improvements

This commit is contained in:
Loretta 2025-10-15 15:42:11 +02:00
parent 51aef27828
commit d93cb107b6
9 changed files with 99 additions and 264 deletions

View File

@ -41,12 +41,20 @@ public class OrderDto : MgOrderDto<OrderItemDto, ProductDto>, IOrderDto
}
[NotColumn, JsonIgnore, System.Text.Json.Serialization.JsonIgnore]
public DateTime DateOfReceipt
public string TimeOfReceiptText => $"{DateOfReceiptOrCreated:H:mm} - {Customer.Company}";
[NotColumn, JsonIgnore, System.Text.Json.Serialization.JsonIgnore]
public DateTime DateOfReceiptOrCreated => DateOfReceipt ?? CreatedOnUtc;
[NotColumn, JsonIgnore, System.Text.Json.Serialization.JsonIgnore]
public DateTime? DateOfReceipt
{
get
{
//return CommonHelper.To<DateTime?>(GenericAttributes.SingleOrDefault(x => x.Key == nameof(IOrderDto.DateOfReceipt))?.Value);
var dateOfReceipt = GenericAttributes.SingleOrDefault(x => x.Key == nameof(IOrderDto.DateOfReceipt))?.Value ?? string.Empty;
return dateOfReceipt.IsNullOrWhiteSpace() ? CreatedOnUtc : CommonHelper.To<DateTime>(dateOfReceipt);
return dateOfReceipt.IsNullOrWhiteSpace() ? null : CommonHelper.To<DateTime>(dateOfReceipt);
}
}

View File

@ -68,9 +68,14 @@ public class OrderItemDto : MgOrderItemDto<ProductDto>, IOrderItemDto
[NotColumn, JsonIgnore, System.Text.Json.Serialization.JsonIgnore]
public double GrossWeight
{
get => CommonHelper.To<double>(GenericAttributes.SingleOrDefault(x => x.Key == nameof(IMeasuringGrossWeight.GrossWeight))?.Value ?? "0");
get
{
return double.Round(OrderItemPallets.Sum(x => x.NetWeight), 1);
//CommonHelper.To<double>(GenericAttributes.SingleOrDefault(x => x.Key == nameof(IMeasuringGrossWeight.GrossWeight))?.Value ?? "0");
}
set
{
throw new Exception($"OrderItemDto.GrossWeight not set");
//Direkt legyen exception! - J.
var ga = GenericAttributes?.SingleOrDefault(x => x.Key == nameof(IMeasuringGrossWeight.GrossWeight))!;
ga.Value = value.ToString(CultureInfo.InvariantCulture);

View File

@ -6,5 +6,8 @@ namespace FruitBank.Common.Interfaces;
public interface IOrderDto : IMgOrderDto<OrderItemDto, ProductDto>, IMeasured, IMeasurable
{
DateTime DateOfReceipt { get; }
DateTime? DateOfReceipt { get; }
DateTime DateOfReceiptOrCreated { get; }
string TimeOfReceiptText { get; }
}

View File

@ -1,5 +1,6 @@
@using AyCode.Core.Loggers
@using FruitBank.Common.Entities
@using FruitBank.Common.Helpers
@using FruitBank.Common.Interfaces
@using FruitBank.Common.Models
@using FruitBank.Common.SignalRs
@ -55,8 +56,8 @@
[Parameter] public int? AddOrUpdateSignalRTag { get; set; } = null;
//[Parameter] public EventCallback OnPalletItemSaveClick { get; set; }
[Parameter] public Func<TPalletItem?, Task>? OnPalletItemSaveClick { get; set; }
[Parameter] public Func<TPalletItem?, Task>? OnPalletItemValueChanged { get; set; }
[Parameter] public Func<TPalletItem?, Task>? OnPalletItemSaved { get; set; }
[Parameter] public Func<TPalletItem, Task>? OnPalletItemValueChanged { get; set; }
[Inject] public required IEnumerable<IAcLogWriterClientBase> LogWriters { get; set; }
[Inject] public required FruitBankSignalRClient FruitBankSignalRClient { get; set; }
@ -81,12 +82,12 @@
if (AddOrUpdateSignalRTag == null) throw new Exception($"PalletItemComponent->PalletItemSaveClick(); AddOrUpdateSignalRTag == null");
PalletItem.ModifierId = LoggedInModel.CustomerDto?.Id;
var responseShippingItemPallet = await FruitBankSignalRClient.PostDataAsync<TPalletItem>(AddOrUpdateSignalRTag!.Value, PalletItem);
var responseShippingItemPallet = await FruitBankSignalRClient.PostDataAsync(AddOrUpdateSignalRTag!.Value, PalletItem);
if (responseShippingItemPallet != null)
PalletItem.Id = responseShippingItemPallet.Id; //Az UpdateCollection miatt kell, hogy megtalálja mit kell kicserélni! - J.
if (responseShippingItemPallet != null) PalletItem.Id = responseShippingItemPallet.Id; //Az UpdateCollection miatt kell, hogy megtalálja mit kell kicserélni! - J.
//else _logger.Error($"Sikertelen volt a raklap adatainak mentése!");
if (OnPalletItemSaveClick != null) await OnPalletItemSaveClick.Invoke(responseShippingItemPallet);
if (OnPalletItemSaved != null) await OnPalletItemSaved.Invoke(responseShippingItemPallet);
}
protected async Task OnItemUpdating(string fieldName, object newValue, TPalletItem palletItem)
@ -96,25 +97,25 @@
switch (fieldName)
{
case nameof(OrderItemPallet.PalletWeight):
case nameof(IMeasuringItemPalletBase.PalletWeight):
palletItem.PalletWeight = (double)newValue;
break;
case nameof(OrderItemPallet.TareWeight):
case nameof(IMeasuringItemPalletBase.TareWeight):
palletItem.TareWeight = (double)newValue;
break;
case nameof(OrderItemPallet.TrayQuantity):
case nameof(IMeasuringItemPalletBase.TrayQuantity):
palletItem.TrayQuantity = (int)newValue;
break;
case nameof(OrderItemPallet.GrossWeight):
case nameof(IMeasuringItemPalletBase.GrossWeight):
palletItem.GrossWeight = (double)newValue;
break;
}
palletItem.IsMeasured = false;
//MeasuringValuesHelper.SetShippingItemTotalMeasuringValues(SelectedShippingItem);
//MeasuringValuesHelper.SetShippingItemTotalMeasuringValues(palletItem);
//BtnSaveEnabled = SelectedShippingItem.IsValidMeasuringValues() && shippingItemPallet.IsValidMeasuringValues(SelectedShippingItem.IsMeasurable);
_btnSaveEnabled = palletItem.IsValidMeasuringValues(IsMeasurable) && !palletItem.IsMeasured;

View File

@ -3,6 +3,8 @@
@using DevExpress.Blazor
@using DevExpress.Blazor.Internal
@using FruitBank.Common.Entities
@using FruitBank.Common.SignalRs
@using FruitBankHybrid.Shared.Components
@using FruitBankHybrid.Shared.Services
@using Mango.Nop.Core.Dtos
@ -98,159 +100,54 @@
</div>
<div style="margin-top: 50px;">
@if (SelectedShippingItem != null)
@if (SelectedShippingItem != null && SelectedShippingItem.ProductId.GetValueOrDefault(0) > 0)
{
<h3 style="margin-bottom: 30px;" class="@(SelectedShippingItem.IsMeasured && SelectedShippingItem.ShippingItemPallets!.All(x => x.IsMeasuredAndValid(SelectedShippingItem.IsMeasurable)) ? "text-success" : "")">
@SelectedShippingItem.Name
</h3>
<EditForm Model="@SelectedShippingItem" Context="FrmContext"
OnValidSubmit="@HandleValidSubmit"
OnInvalidSubmit="@HandleInvalidSubmit">
@* <DataAnnotationsValidator /> *@
<DxFormLayout Data="@SelectedShippingItem" CaptionPosition="CaptionPosition.Vertical" CssClass="w-100" ItemUpdating="@((pair) => OnItemUpdating(pair.Key, pair.Value))">
@* <DxFormLayoutItem CaptionCssClass="@(SelectedShippingItem.IsMeasured ? "text-success" : "")" Field="@nameof(ShippingItem.Name)" Caption="Item Name:" Enabled="false" ColSpanMd="8" />
<DxFormLayoutItem Visible="false" CaptionCssClass="@(SelectedShippingItem.IsMeasured ? "text-success" : "")" Field="@nameof(ShippingItem.GrossWeightOnDocument)" Caption="GrossWeightOnDocument:" Enabled="false" ColSpanMd="3" />
<DxFormLayoutItem Visible="false" CaptionCssClass="@(SelectedShippingItem.IsMeasured ? "text-success" : "")" Field="@nameof(ShippingItem.NetWeightOnDocument)" Caption="NetWeightOnDocument:" Enabled="false" ColSpanMd="3" />
<DxFormLayout Data="@SelectedShippingItem" CaptionPosition="CaptionPosition.Vertical" CssClass="w-100">
<DxFormLayoutItem Context="dfsdf" ColSpanMd="12">
@for (var index = 0; index < SelectedShippingItem.ShippingItemPallets!.Count; index++)
{
var localI = index + 1;
var currentShippingItemPallet = SelectedShippingItem.ShippingItemPallets![index];
<DxFormLayoutItem CaptionCssClass="@(SelectedShippingItem.IsMeasured ? "text-success" : "")"
Field="@nameof(ShippingItem.PalletsOnDocument)"
Enabled="@(SelectedShippingItem.ProductId.GetValueOrDefault(0) > 0)"
Caption="Pallets:" ColSpanMd="2" BeginRow="false">
</DxFormLayoutItem>
<PalletItemComponent IsMeasurable="@SelectedShippingItem.IsMeasurable"
MeasuringIndex="@localI"
PalletItem="@currentShippingItemPallet"
ProductId="@SelectedShippingItem.ProductId!.Value"
AddOrUpdateSignalRTag="SignalRTags.AddOrUpdateMeasuredShippingItemPallet"
OnPalletItemSaved="pallet => OnShippingItemPalletSaved(pallet)"
OnPalletItemValueChanged="pallet => OnShippingItemPalletValueChanged(pallet, SelectedShippingItem)">
</PalletItemComponent>
}
</DxFormLayoutItem>
<DxFormLayoutItem Visible="true" CaptionCssClass="@(SelectedShippingItem.IsMeasured ? "text-success" : "")"
Field="@nameof(ShippingItem.IsMeasured)"
Enabled="false" Caption="Sikeres mérés:" ColSpanMd="2">
</DxFormLayoutItem>
<DxFormLayoutItem ColSpanMd="3" BeginRow="true" />
<DxFormLayoutItem Context="vfdfgfd" ColSpanMd="12" BeginRow="true">
<DxFormLayout CssClass="w-100">
<DxFormLayoutItem ColSpanMd="1" BeginRow="false"><strong>TOTAL:</strong></DxFormLayoutItem>
<DxFormLayoutItem ColSpanMd="2" BeginRow="false"/>
<DxFormLayoutItem ColSpanMd="2" BeginRow="false"/>
<DxFormLayoutItem ColSpanMd="1" BeginRow="false"/>
<DxFormLayoutItem ColSpanMd="2" BeginRow="false"><strong>@(SelectedShippingItem.MeasuredQuantity) db</strong></DxFormLayoutItem>
<DxFormLayoutItem ColSpanMd="2" BeginRow="false"><strong>@(SelectedShippingItem.MeasuredGrossWeight) kg</strong></DxFormLayoutItem>
<DxFormLayoutItem ColSpanMd="1" BeginRow="false"><strong>@(SelectedShippingItem.MeasuredNetWeight) kg</strong></DxFormLayoutItem>
<DxFormLayoutItem ColSpanMd="1" BeginRow="false"/>
</DxFormLayout>
</DxFormLayoutItem>
<DxFormLayoutItem CaptionCssClass="@(SelectedShippingItem.IsMeasured ? "text-success" : "")"
Field="@nameof(ShippingItem.MeasuredQuantity)"
Enabled="@(SelectedShippingItem.ProductId.GetValueOrDefault(0) > 0)"
Caption="MeasuredQuantity:" ColSpanMd="3" BeginRow="false">
</DxFormLayoutItem>
<DxFormLayoutItem CaptionCssClass="@(SelectedShippingItem.IsMeasured ? "text-success" : "")"
Field="@nameof(ShippingItem.MeasuredNetWeight)"
Enabled="@(SelectedShippingItem.IsMeasurable && SelectedShippingItem.ProductId.GetValueOrDefault(0) > 0)"
Caption="MeasuredNetWeight:" ColSpanMd="3">
</DxFormLayoutItem>
<DxFormLayoutItem CaptionCssClass="@(SelectedShippingItem.IsMeasured ? "text-success" : "")"
Field="@nameof(ShippingItem.MeasuredGrossWeight)"
Enabled="@(SelectedShippingItem.IsMeasurable && SelectedShippingItem.ProductId.GetValueOrDefault(0) > 0)"
Caption="MeasuredGrossWeight:" ColSpanMd="3">
</DxFormLayoutItem> *@
<DxFormLayoutItem Context="dfsdf" ColSpanMd="12">
@for (var index = 0; index < SelectedShippingItem.ShippingItemPallets!.Count; index++)
{
var localI = index + 1;
var currentShippingItemPallet = SelectedShippingItem.ShippingItemPallets![index];
<DxFormLayout Data="@currentShippingItemPallet" CaptionPosition="CaptionPosition.Vertical" CssClass="w-100 measuring-form-layout"
ItemUpdating="@((pair) => OnItemUpdating2(pair.Key, pair.Value, currentShippingItemPallet))">
<DxFormLayoutItem ColSpanMd="1" BeginRow="true">
<text>@(localI).mérés</text>
</DxFormLayoutItem>
<DxFormLayoutItem CaptionCssClass="@(GetShippingPalletsCssClassNames(nameof(ShippingItemPallet.PalletWeight), currentShippingItemPallet))"
Field="@nameof(ShippingItemPallet.PalletWeight)"
Enabled="@(SelectedShippingItem.IsMeasurable && SelectedShippingItem.ProductId.GetValueOrDefault(0) > 0)"
Caption="Rakl.súly(kg)" ColSpanMd="2"/>
<DxFormLayoutItem CaptionCssClass="@(GetShippingPalletsCssClassNames(nameof(ShippingItemPallet.TareWeight), currentShippingItemPallet))"
Field="@nameof(ShippingItemPallet.TareWeight)"
Enabled="@(SelectedShippingItem.IsMeasurable && SelectedShippingItem.ProductId.GetValueOrDefault(0) > 0)"
Caption="Tára(kg)" ColSpanMd="2"/>
<DxFormLayoutItem ColSpanMd="1" />
<DxFormLayoutItem CaptionCssClass="@(GetShippingPalletsCssClassNames(nameof(ShippingItemPallet.TrayQuantity), currentShippingItemPallet))"
Field="@nameof(ShippingItemPallet.TrayQuantity)"
Enabled="@(SelectedShippingItem.ProductId.GetValueOrDefault(0) > 0)"
Caption="Rekesz/csomag" ColSpanMd="2"/>
<DxFormLayoutItem CaptionCssClass="@(GetShippingPalletsCssClassNames(nameof(ShippingItemPallet.GrossWeight), currentShippingItemPallet))"
Field="@nameof(ShippingItemPallet.GrossWeight)"
Enabled="@(SelectedShippingItem.IsMeasurable && SelectedShippingItem.ProductId.GetValueOrDefault(0) > 0)"
Caption="Br.súly(kg)" ColSpanMd="2">
</DxFormLayoutItem>
<DxFormLayoutItem Caption="Net.súly(kg)" ColSpanMd="1" CaptionCssClass="@(GetShippingPalletsCssClassNames(nameof(ShippingItemPallet.NetWeight), currentShippingItemPallet))">
<text>@(currentShippingItemPallet.NetWeight) kg.</text>
</DxFormLayoutItem>
<DxFormLayoutItem ColSpanMd="1">
<DxButton Text="@(currentShippingItemPallet.Id == 0 ? "Mentés" : "Módosítás")" Click="() => OnShippingItemPalletSaveClick(currentShippingItemPallet)" CssClass="w-100"/>
</DxFormLayoutItem>
</DxFormLayout>
}
</DxFormLayoutItem>
<DxFormLayoutItem Context="vfdfgfd" ColSpanMd="12" BeginRow="true">
<DxFormLayout CssClass="w-100">
<DxFormLayoutItem ColSpanMd="1" BeginRow="false"><strong>TOTAL:</strong></DxFormLayoutItem>
<DxFormLayoutItem ColSpanMd="2" BeginRow="false" />
<DxFormLayoutItem ColSpanMd="2" BeginRow="false" />
<DxFormLayoutItem ColSpanMd="1" BeginRow="false" />
<DxFormLayoutItem ColSpanMd="2" BeginRow="false"><strong>@(SelectedShippingItem.MeasuredQuantity) db</strong></DxFormLayoutItem>
<DxFormLayoutItem ColSpanMd="2" BeginRow="false"><strong>@(SelectedShippingItem.MeasuredGrossWeight) kg</strong></DxFormLayoutItem>
<DxFormLayoutItem ColSpanMd="1" BeginRow="false"><strong>@(SelectedShippingItem.MeasuredNetWeight) kg</strong></DxFormLayoutItem>
<DxFormLayoutItem ColSpanMd="1" BeginRow="false" />
</DxFormLayout>
</DxFormLayoutItem>
@* <DxFormLayoutItem ColSpanMd="12" BeginRow="true">
<ValidationSummary/>
</DxFormLayoutItem> *@
@if (!_errorText.IsNullOrWhiteSpace())
{
<DxFormLayoutItem ColSpanMd="12" BeginRow="true">
<ValidationSummary />
<text>HIBA! @_errorText</text>
</DxFormLayoutItem>
@* @if (SelectedShippingItem.ProductId.GetValueOrDefault(0) > 0)
{
<DxFormLayoutItem ColSpanMd="12" BeginRow="true">
<DxButton Text="@(SelectedShippingItem.IsMeasured ? "Befejezett mérés módosítása" : "Mérés befejezése")"
Enabled="@BtnSaveEnabled"
SubmitFormOnClick="true" CssClass="w-100" />
</DxFormLayoutItem>
}
else
{
_errorText = "Nem végezhető el a mérés, nincs megadva a ProductId! Jelezze a vezetőségnek...";
}
*@
@if (!_errorText.IsNullOrWhiteSpace())
{
<DxFormLayoutItem ColSpanMd="12" BeginRow="true">
<text>HIBA! @_errorText</text>
</DxFormLayoutItem>
//_errorText = string.Empty;
}
</DxFormLayout>
</EditForm>
//_errorText = string.Empty;
}
</DxFormLayout>
}
</div>
@*
<div class="row w-100" style="margin-top: 100px;">
<div class="col-md-12">
<input @bind="_userName" placeholder="Your name" />
<input @bind="_message" placeholder="Partner ID..." />
<button @onclick="GetPartner">Get partner</button>
</div>
</div>
<div class="row w-100">
<div class="col-md-12">
<ul>
@foreach (var m in _messages)
{
<li><b>@m.User:</b> @m.Text</li>
}
</ul>
</div>
</div>
*@

View File

@ -132,121 +132,42 @@ namespace FruitBankHybrid.Shared.Pages
StateHasChanged();
}
private async Task UpdateShippingItem(ShippingItem? shippingItem)
private Task OnShippingItemPalletValueChanged(ShippingItemPallet shippingItemPallet, ShippingItem shippingItem)
{
if (shippingItem != null && shippingItem.IsValidMeasuringValues())
{
BtnSaveEnabled = false;
shippingItem.ShippingItemPallets = shippingItem.ShippingItemPallets!.Where(x => x.IsValidMeasuringValues(shippingItem.IsMeasurable)).ToList();
MeasuringValuesHelper.SetShippingItemTotalMeasuringValues(shippingItem);
BtnSaveEnabled = shippingItem.IsValidMeasuringValues() && shippingItemPallet.IsValidMeasuringValues(shippingItem.IsMeasurable);
var updatedShippingItem = await FruitBankSignalRClient.UpdateMeasuredShippingItem(shippingItem);
//var updatedShippingItem = await FruitBankSignalRClient.AddOrUpdateMeasuredShippingItemPallets(shippingItem.ShippingItemPallets!.Where(x => x.IsValidMeasuringValues(shippingItem.IsMeasurable)).ToList());
if (updatedShippingItem == null)
{
LogErrorAndDisplayText($"Sikertelen volt a shippingItem mentése! {shippingItem}");
return;
}
RefreshSelectedShippingItemMeasuredValuesFromDb(updatedShippingItem);
}
StateHasChanged();
return Task.CompletedTask;
}
private async Task OnShippingItemPalletSaveClick(ShippingItemPallet shippingItemPallet)
private Task OnShippingItemPalletSaved(ShippingItemPallet? responseShippingItemPallet)
{
ShippingItemPallet? responseShippingItemPallet;
shippingItemPallet.ModifierId = LoggedInModel.CustomerDto?.Id;
if (shippingItemPallet.Id <= 0) responseShippingItemPallet = await FruitBankSignalRClient.AddShippingItemPallet(shippingItemPallet);
else responseShippingItemPallet = await FruitBankSignalRClient.UpdateShippingItemPallet(shippingItemPallet);
if (responseShippingItemPallet != null)
{
shippingItemPallet.Id = responseShippingItemPallet.Id; //Az UpdateCollection miatt kell, hogy megtalálja mit kell kicserélni! - J.
SelectedShippingItem!.ShippingItemPallets!.UpdateCollection(responseShippingItemPallet, false);
MeasuringValuesHelper.SetShippingItemTotalMeasuringValues(SelectedShippingItem);
}
else LogErrorAndDisplayText($"Sikertelen volt a raklap adatainak mentése! {shippingItemPallet}");
else DisplayErrorText($"Sikertelen volt a raklap adatainak mentése!");
StateHasChanged();
return Task.CompletedTask;
}
private bool IsShippingitemPalletMeasuredAndValid(ShippingItemPallet shippingItemPallet)
=> MeasuringService.IsCustomItemPalletMeasuredAndValid(shippingItemPallet, SelectedShippingItem!.IsMeasurable);
private async Task HandleValidSubmit()
{
await UpdateShippingItem(SelectedShippingItem);
}
private void HandleInvalidSubmit()
{
//FormValidationState = @"Form data is invalid";
}
protected void OnItemUpdating(string fieldName, object newValue)
{
return;
BtnSaveEnabled = false;
if (SelectedShippingItem == null) return;
switch (fieldName)
{
case nameof(ShippingItem.MeasuredQuantity):
SelectedShippingItem.MeasuredQuantity = (int)newValue <= 0 ? 0 : (int)newValue;
break;
case nameof(ShippingItem.MeasuredNetWeight):
SelectedShippingItem.MeasuredNetWeight = !SelectedShippingItem.IsMeasurable || (double)newValue <= 0 ? 0 : (double)newValue;
break;
case nameof(ShippingItem.MeasuredGrossWeight):
SelectedShippingItem.MeasuredGrossWeight = !SelectedShippingItem.IsMeasurable || (double)newValue <= 0 ? 0 : (double)newValue;
break;
}
BtnSaveEnabled = SelectedShippingItem.IsValidMeasuringValues();
}
protected void OnItemUpdating2(string fieldName, object newValue, ShippingItemPallet shippingItemPallet)
{
BtnSaveEnabled = false;
if (SelectedShippingItem == null) return;
switch (fieldName)
{
case nameof(ShippingItemPallet.PalletWeight):
shippingItemPallet.PalletWeight = (double)newValue;
break;
case nameof(ShippingItemPallet.TareWeight):
shippingItemPallet.TareWeight = (double)newValue;
break;
case nameof(ShippingItemPallet.TrayQuantity):
shippingItemPallet.TrayQuantity = (int)newValue;
break;
case nameof(ShippingItemPallet.GrossWeight):
shippingItemPallet.GrossWeight = (double)newValue;
break;
}
MeasuringValuesHelper.SetShippingItemTotalMeasuringValues(SelectedShippingItem);
BtnSaveEnabled = SelectedShippingItem.IsValidMeasuringValues() && shippingItemPallet.IsValidMeasuringValues(SelectedShippingItem.IsMeasurable);
//BtnSaveEnabled = SelectedShippingItem.IsValidMeasuringValues() &&
// shippingItemPallet.IsValidSafeMeasuringValues() &&
// SelectedShippingItem.ShippingItemPallets!.Any(sip => sip.IsValidMeasuringValues(SelectedShippingItem.IsMeasurable));
}
private void LogErrorAndDisplayText(string errorText, Exception? ex = null)
{
_errorText = errorText;
_logger.Error($"{errorText}", ex);
DisplayErrorText(errorText);
}
private void DisplayErrorText(string errorText)
{
_errorText = errorText;
//Nem végezhető el a mérés, nincs megadva a ProductId! Jelezze a vezetőségnek...
}
}
}

View File

@ -13,12 +13,12 @@
<div style="margin-top: 50px;">
<DxFormLayout CaptionPosition="CaptionPosition.Vertical" CssClass="w-100">
<DxFormLayoutItem Caption="Átvétel dátuma" ColSpanMd="2"
CaptionCssClass="@(SelectedOrder != null && _measuringDates.Where(x => MeasuringService.DaysEqual(x.DateTime, SelectedOrder.DateOfReceipt)).All(x => x.IsMeasured) ? "text-success" : "")">
CaptionCssClass="@(SelectedOrder != null && _measuringDates.Where(x => MeasuringService.DaysEqual(x.DateTime, SelectedOrder.DateOfReceiptOrCreated)).All(x => x.IsMeasured) ? "text-success" : "")">
<DxDateEdit CssClass="cw-320"
DisplayFormat="m"
Format="m"
Context="ctxOrderDate"
Date="@(SelectedOrder?.DateOfReceipt.Date ?? DateTime.Now.Date)"
Date="@(SelectedOrder?.DateOfReceiptOrCreated.Date ?? DateTime.Now.Date)"
CustomDisabledDate="@OnCustomDisabledMeasuringDate"
DateChanged="@((DateTime newValue) => OnMeasuringDateChanged(newValue))"
InputId="deDisabledDates">
@ -44,7 +44,7 @@
@bind-Value="@SelectedOrder"
Text="Válasszon időpontot..."
ValueFieldName="@nameof(OrderDto.Id)"
TextFieldName="@nameof(OrderDto.DateOfReceipt)"
TextFieldName="@nameof(OrderDto.TimeOfReceiptText)"
CssClass="cw-480"
Context="ctxOrder"
DropDownBodyCssClass="dd-body-class"
@ -92,7 +92,7 @@
if (isValidAndMeasured) cssClass = "text-success";
else if (isValid) cssClass = string.Empty;
<h5 class="@cssClass">@($"{selectedOrderItemDto.ProductName} - {trayQuantity}/{selectedOrderItemDto.Quantity} rekesz, {(selectedOrderItemDto.IsMeasurable ? selectedOrderItemDto.NetWeight + "kg." : "nem mérendő!")}")</h5>
<h5 class="@cssClass">@($"{selectedOrderItemDto.ProductName} - {trayQuantity}/{selectedOrderItemDto.Quantity} rekesz, {(selectedOrderItemDto.IsMeasurable ? "net súly: " + selectedOrderItemDto.NetWeight + "kg." : "nem mérendő!")}")</h5>
}
}
</ItemHeaderTextTemplate>
@ -116,8 +116,8 @@
PalletItem="@currentOrderItemPallet"
ProductId="@selectedOrderItemDto.ProductId"
AddOrUpdateSignalRTag="SignalRTags.AddOrUpdateMeasuredOrderItemPallet"
OnPalletItemSaveClick="pallet => OnShippingItemPalletSaveClick(pallet, selectedOrderItemDto)"
OnPalletItemValueChanged="pallet => OnPalletItemValueChanged(pallet, selectedOrderItemDto)">
OnPalletItemSaved="pallet => OnOrderItemPalletSaved(pallet, selectedOrderItemDto)"
OnPalletItemValueChanged="pallet => OnOrderItemPalletValueChanged(pallet, selectedOrderItemDto)">
</PalletItemComponent>
}
</DxFormLayoutItem>

View File

@ -49,9 +49,9 @@ namespace FruitBankHybrid.Shared.Pages
{
var orders = await FruitBankSignalRClient.GetPendingOrderDtos() ?? [];
_measuringDates = orders.Select(order => new MeasuringDateSelectorModel(order.Id, order.DateOfReceipt, order.IsMeasured)).ToList();
_measuringDates = orders.Select(order => new MeasuringDateSelectorModel(order.Id, order.DateOfReceiptOrCreated, order.IsMeasured)).ToList();
SelectedDayOrders = orders.Where(order => MeasuringService.DaysEqual(order.DateOfReceipt, dateTime)).ToList();
SelectedDayOrders = orders.Where(order => MeasuringService.DaysEqual(order.DateOfReceiptOrCreated, dateTime)).ToList();
SelectedOrder = SelectedDayOrders.FirstOrDefault();
foreach (var orderItem in SelectedDayOrders.SelectMany(order => order.OrderItemDtos.Where(orderItem => orderItem.OrderItemPallets.Count == 0)))
@ -115,13 +115,13 @@ namespace FruitBankHybrid.Shared.Pages
//BtnSaveEnabled = SelectedShippingItem.IsValidMeasuringValues() && shippingItemPallet.IsValidMeasuringValues(SelectedShippingItem.IsMeasurable);
}
private Task OnPalletItemValueChanged(OrderItemPallet? orderItemPallet, OrderItemDto selectedOrderItemDto)
private Task OnOrderItemPalletValueChanged(OrderItemPallet orderItemPallet, OrderItemDto selectedOrderItemDto)
{
StateHasChanged();
return Task.CompletedTask;
}
private Task OnShippingItemPalletSaveClick(OrderItemPallet? orderItemPallet, OrderItemDto selectedOrderItemDto)
private Task OnOrderItemPalletSaved(OrderItemPallet? orderItemPallet, OrderItemDto selectedOrderItemDto)
{
if (orderItemPallet != null)
{

View File

@ -18,7 +18,7 @@ public class MeasuringService
=> (date1.Year == date2.Year && date1.DayOfYear == date2.DayOfYear);
public static void OnCustomDisabledDate(CalendarCustomDisabledDateEventArgs args, List<MeasuringDateSelectorModel> measuringDates)
=> args.IsDisabled = !measuringDates.Exists(shippingDateModel => DaysEqual(shippingDateModel.DateTime, args.Date));
=> args.IsDisabled = measuringDates == null || !measuringDates.Exists(shippingDateModel => DaysEqual(shippingDateModel.DateTime, args.Date));
public static string GetShippingDateCssClassNames(DateTime date, List<MeasuringDateSelectorModel> measuringDates)
{