From d93cb107b6262f1c86b0d7c52751f24974e818c0 Mon Sep 17 00:00:00 2001 From: Loretta Date: Wed, 15 Oct 2025 15:42:11 +0200 Subject: [PATCH] improvements --- FruitBank.Common/Dtos/OrderDto.cs | 12 +- FruitBank.Common/Dtos/OrderItemDto.cs | 7 +- FruitBank.Common/Interfaces/IOrderDto.cs | 5 +- .../Components/PalletItemComponent.razor | 23 +-- .../Pages/MeasuringIn.razor | 183 ++++-------------- .../Pages/MeasuringIn.razor.cs | 111 ++--------- .../Pages/MeasuringOut.razor | 12 +- .../Pages/MeasuringOut.razor.cs | 8 +- .../Services/MeasuringService.cs | 2 +- 9 files changed, 99 insertions(+), 264 deletions(-) diff --git a/FruitBank.Common/Dtos/OrderDto.cs b/FruitBank.Common/Dtos/OrderDto.cs index 4094df9..0b1f16a 100644 --- a/FruitBank.Common/Dtos/OrderDto.cs +++ b/FruitBank.Common/Dtos/OrderDto.cs @@ -41,12 +41,20 @@ public class OrderDto : MgOrderDto, 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(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(dateOfReceipt); + return dateOfReceipt.IsNullOrWhiteSpace() ? null : CommonHelper.To(dateOfReceipt); } } diff --git a/FruitBank.Common/Dtos/OrderItemDto.cs b/FruitBank.Common/Dtos/OrderItemDto.cs index 17a009a..453619c 100644 --- a/FruitBank.Common/Dtos/OrderItemDto.cs +++ b/FruitBank.Common/Dtos/OrderItemDto.cs @@ -68,9 +68,14 @@ public class OrderItemDto : MgOrderItemDto, IOrderItemDto [NotColumn, JsonIgnore, System.Text.Json.Serialization.JsonIgnore] public double GrossWeight { - get => CommonHelper.To(GenericAttributes.SingleOrDefault(x => x.Key == nameof(IMeasuringGrossWeight.GrossWeight))?.Value ?? "0"); + get + { + return double.Round(OrderItemPallets.Sum(x => x.NetWeight), 1); + //CommonHelper.To(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); diff --git a/FruitBank.Common/Interfaces/IOrderDto.cs b/FruitBank.Common/Interfaces/IOrderDto.cs index 1dfe3b6..d2923be 100644 --- a/FruitBank.Common/Interfaces/IOrderDto.cs +++ b/FruitBank.Common/Interfaces/IOrderDto.cs @@ -6,5 +6,8 @@ namespace FruitBank.Common.Interfaces; public interface IOrderDto : IMgOrderDto, IMeasured, IMeasurable { - DateTime DateOfReceipt { get; } + DateTime? DateOfReceipt { get; } + DateTime DateOfReceiptOrCreated { get; } + + string TimeOfReceiptText { get; } } \ No newline at end of file diff --git a/FruitBankHybrid.Shared/Components/PalletItemComponent.razor b/FruitBankHybrid.Shared/Components/PalletItemComponent.razor index cecd3ba..f8114b3 100644 --- a/FruitBankHybrid.Shared/Components/PalletItemComponent.razor +++ b/FruitBankHybrid.Shared/Components/PalletItemComponent.razor @@ -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? OnPalletItemSaveClick { get; set; } - [Parameter] public Func? OnPalletItemValueChanged { get; set; } + [Parameter] public Func? OnPalletItemSaved { get; set; } + [Parameter] public Func? OnPalletItemValueChanged { get; set; } [Inject] public required IEnumerable 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(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; diff --git a/FruitBankHybrid.Shared/Pages/MeasuringIn.razor b/FruitBankHybrid.Shared/Pages/MeasuringIn.razor index 2848dfa..993ae2f 100644 --- a/FruitBankHybrid.Shared/Pages/MeasuringIn.razor +++ b/FruitBankHybrid.Shared/Pages/MeasuringIn.razor @@ -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 @@
- @if (SelectedShippingItem != null) + @if (SelectedShippingItem != null && SelectedShippingItem.ProductId.GetValueOrDefault(0) > 0) {

@SelectedShippingItem.Name

- - @* *@ - - @* - - + + + @for (var index = 0; index < SelectedShippingItem.ShippingItemPallets!.Count; index++) + { + var localI = index + 1; + var currentShippingItemPallet = SelectedShippingItem.ShippingItemPallets![index]; - - + + + } + - - - + + + TOTAL: + + + + @(SelectedShippingItem.MeasuredQuantity) db + @(SelectedShippingItem.MeasuredGrossWeight) kg + @(SelectedShippingItem.MeasuredNetWeight) kg + + + - - - - - - - - *@ - - - @for (var index = 0; index < SelectedShippingItem.ShippingItemPallets!.Count; index++) - { - var localI = index + 1; - var currentShippingItemPallet = SelectedShippingItem.ShippingItemPallets![index]; - - - - - @(localI).mérés - - - - - - - - - - - - - - - - @(currentShippingItemPallet.NetWeight) kg. - - - - - - - - } - - - - - TOTAL: - - - - @(SelectedShippingItem.MeasuredQuantity) db - @(SelectedShippingItem.MeasuredGrossWeight) kg - @(SelectedShippingItem.MeasuredNetWeight) kg - - - + @* + + *@ + @if (!_errorText.IsNullOrWhiteSpace()) + { - + HIBA! @_errorText - -@* @if (SelectedShippingItem.ProductId.GetValueOrDefault(0) > 0) - { - - - - } - else - { - _errorText = "Nem végezhető el a mérés, nincs megadva a ProductId! Jelezze a vezetőségnek..."; - } - *@ - @if (!_errorText.IsNullOrWhiteSpace()) - { - - HIBA! @_errorText - - //_errorText = string.Empty; - } - - + //_errorText = string.Empty; + } + }
- -@* -
-
- - - -
-
- -
-
-
    - @foreach (var m in _messages) - { -
  • @m.User: @m.Text
  • - } -
-
-
- *@ \ No newline at end of file diff --git a/FruitBankHybrid.Shared/Pages/MeasuringIn.razor.cs b/FruitBankHybrid.Shared/Pages/MeasuringIn.razor.cs index be4a5fd..a71fae4 100644 --- a/FruitBankHybrid.Shared/Pages/MeasuringIn.razor.cs +++ b/FruitBankHybrid.Shared/Pages/MeasuringIn.razor.cs @@ -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... } + } } diff --git a/FruitBankHybrid.Shared/Pages/MeasuringOut.razor b/FruitBankHybrid.Shared/Pages/MeasuringOut.razor index b5fa973..eaf0a3d 100644 --- a/FruitBankHybrid.Shared/Pages/MeasuringOut.razor +++ b/FruitBankHybrid.Shared/Pages/MeasuringOut.razor @@ -13,12 +13,12 @@
+ CaptionCssClass="@(SelectedOrder != null && _measuringDates.Where(x => MeasuringService.DaysEqual(x.DateTime, SelectedOrder.DateOfReceiptOrCreated)).All(x => x.IsMeasured) ? "text-success" : "")"> @@ -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; -
@($"{selectedOrderItemDto.ProductName} - {trayQuantity}/{selectedOrderItemDto.Quantity} rekesz, {(selectedOrderItemDto.IsMeasurable ? selectedOrderItemDto.NetWeight + "kg." : "nem mérendő!")}")
+
@($"{selectedOrderItemDto.ProductName} - {trayQuantity}/{selectedOrderItemDto.Quantity} rekesz, {(selectedOrderItemDto.IsMeasurable ? "net súly: " + selectedOrderItemDto.NetWeight + "kg." : "nem mérendő!")}")
} } @@ -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)"> }
diff --git a/FruitBankHybrid.Shared/Pages/MeasuringOut.razor.cs b/FruitBankHybrid.Shared/Pages/MeasuringOut.razor.cs index 33f81a4..12a68a4 100644 --- a/FruitBankHybrid.Shared/Pages/MeasuringOut.razor.cs +++ b/FruitBankHybrid.Shared/Pages/MeasuringOut.razor.cs @@ -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) { diff --git a/FruitBankHybrid.Shared/Services/MeasuringService.cs b/FruitBankHybrid.Shared/Services/MeasuringService.cs index 1e27f06..6a7f2e3 100644 --- a/FruitBankHybrid.Shared/Services/MeasuringService.cs +++ b/FruitBankHybrid.Shared/Services/MeasuringService.cs @@ -18,7 +18,7 @@ public class MeasuringService => (date1.Year == date2.Year && date1.DayOfYear == date2.DayOfYear); public static void OnCustomDisabledDate(CalendarCustomDisabledDateEventArgs args, List 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 measuringDates) {