imporvements, fixes, etc...
This commit is contained in:
parent
d53c44d2db
commit
dd270f6eca
|
|
@ -6,6 +6,7 @@ using FruitBank.Common.Models.SignalRs;
|
||||||
using FruitBank.Common.SignalRs;
|
using FruitBank.Common.SignalRs;
|
||||||
using Mango.Nop.Core.Loggers;
|
using Mango.Nop.Core.Loggers;
|
||||||
using Microsoft.AspNetCore.SignalR;
|
using Microsoft.AspNetCore.SignalR;
|
||||||
|
using Nop.Core.Domain.Orders;
|
||||||
|
|
||||||
namespace FruitBank.Common.Server.Services.SignalRs;
|
namespace FruitBank.Common.Server.Services.SignalRs;
|
||||||
|
|
||||||
|
|
@ -25,6 +26,7 @@ public class SignalRSendToClientService(IHubContext<DevAdminSignalRHub, IAcSigna
|
||||||
|
|
||||||
public Task SendOrderChanged(OrderDto orderDto) => base.SendMessageToAllClients(SignalRTags.SendOrderChanged, orderDto);
|
public Task SendOrderChanged(OrderDto orderDto) => base.SendMessageToAllClients(SignalRTags.SendOrderChanged, orderDto);
|
||||||
public Task SendOrderItemChanged(OrderItemDto orderItemDto) => base.SendMessageToAllClients(SignalRTags.SendOrderItemChanged, orderItemDto);
|
public Task SendOrderItemChanged(OrderItemDto orderItemDto) => base.SendMessageToAllClients(SignalRTags.SendOrderItemChanged, orderItemDto);
|
||||||
|
public Task SendOrderItemDeleted(OrderItem orderItem) => base.SendMessageToAllClients(SignalRTags.SendOrderItemDeleted, orderItem);
|
||||||
public Task SendOrderItemPalletChanged(OrderItemPallet orderItemPallet) => base.SendMessageToAllClients(SignalRTags.SendOrderItemPalletChanged, orderItemPallet);
|
public Task SendOrderItemPalletChanged(OrderItemPallet orderItemPallet) => base.SendMessageToAllClients(SignalRTags.SendOrderItemPalletChanged, orderItemPallet);
|
||||||
|
|
||||||
public Task SendShippingChanged(Shipping shipping) => base.SendMessageToAllClients(SignalRTags.SendShippingChanged, shipping);
|
public Task SendShippingChanged(Shipping shipping) => base.SendMessageToAllClients(SignalRTags.SendShippingChanged, shipping);
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,10 @@
|
||||||
using FruitBank.Common.Interfaces;
|
using AyCode.Core.Loggers;
|
||||||
|
using FruitBank.Common.Interfaces;
|
||||||
|
using Mango.Nop.Core.Loggers;
|
||||||
|
|
||||||
namespace FruitBank.Common.Services;
|
namespace FruitBank.Common.Services;
|
||||||
|
|
||||||
public class MeasurementServiceBase : IMeasurementServiceBase
|
public abstract class MeasurementServiceBase<TLogger>(TLogger logger) : IMeasurementServiceBase where TLogger : ILogger
|
||||||
{
|
{
|
||||||
|
public TLogger Logger => logger;
|
||||||
}
|
}
|
||||||
|
|
@ -76,7 +76,8 @@ public class SignalRTags : AcSignalRTags
|
||||||
#region SendToClient
|
#region SendToClient
|
||||||
public const int SendOrderChanged = 500;
|
public const int SendOrderChanged = 500;
|
||||||
public const int SendOrderItemChanged = 501;
|
public const int SendOrderItemChanged = 501;
|
||||||
public const int SendOrderItemPalletChanged = 502;
|
public const int SendOrderItemDeleted = 502;
|
||||||
|
public const int SendOrderItemPalletChanged = 503;
|
||||||
|
|
||||||
public const int SendShippingChanged = 520;
|
public const int SendShippingChanged = 520;
|
||||||
public const int SendShippingItemChanged = 521;
|
public const int SendShippingItemChanged = 521;
|
||||||
|
|
|
||||||
|
|
@ -52,7 +52,7 @@
|
||||||
@if (HasAuditButton)
|
@if (HasAuditButton)
|
||||||
{
|
{
|
||||||
<DxFormLayoutItem Context="ctxFromLayoutItemPallet" ColSpanMd="1">
|
<DxFormLayoutItem Context="ctxFromLayoutItemPallet" ColSpanMd="1">
|
||||||
<DxButton Enabled="@(IsEditable && OrderItemPallet!.IsMeasuredAndValid(IsMeasurable) && !OrderItemPallet.IsAudited)"
|
<DxButton Enabled="@(IsEditable && OrderItemPallet!.IsMeasuredAndValid(IsMeasurable) && !OrderItemPallet.IsAudited && IsMaxTrayQuantityValid)"
|
||||||
Text="@(OrderItemPallet!.IsAudited ? "Jóváhagyva" : "Jóváhagy")" Click="() => PalletItemAuditedClick()" CssClass="w-100" />
|
Text="@(OrderItemPallet!.IsAudited ? "Jóváhagyva" : "Jóváhagy")" Click="() => PalletItemAuditedClick()" CssClass="w-100" />
|
||||||
</DxFormLayoutItem>
|
</DxFormLayoutItem>
|
||||||
}
|
}
|
||||||
|
|
@ -91,9 +91,11 @@
|
||||||
|
|
||||||
private bool GetBtnSaveEnabled()
|
private bool GetBtnSaveEnabled()
|
||||||
{
|
{
|
||||||
return IsEditable && PalletItem.IsValidMeasuringValues(IsMeasurable) && !PalletItem.IsMeasured && (!MaxTrayQuantity.HasValue || PalletItem.TrayQuantity <= MaxTrayQuantity.Value);
|
return IsEditable && PalletItem.IsValidMeasuringValues(IsMeasurable) && !PalletItem.IsMeasured && IsMaxTrayQuantityValid;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private bool IsMaxTrayQuantityValid => (!MaxTrayQuantity.HasValue || PalletItem.TrayQuantity <= MaxTrayQuantity.Value);
|
||||||
|
|
||||||
protected override async Task OnInitializedAsync()
|
protected override async Task OnInitializedAsync()
|
||||||
{
|
{
|
||||||
BtnSaveEnabled = GetBtnSaveEnabled();// PalletItem.IsValidMeasuringValues(IsMeasurable) && !PalletItem.IsMeasured;
|
BtnSaveEnabled = GetBtnSaveEnabled();// PalletItem.IsValidMeasuringValues(IsMeasurable) && !PalletItem.IsMeasured;
|
||||||
|
|
@ -147,7 +149,7 @@
|
||||||
palletItem.TrayQuantity = (int)newValue;
|
palletItem.TrayQuantity = (int)newValue;
|
||||||
|
|
||||||
if (palletItem.TrayQuantity < 0) palletItem.TrayQuantity = 0;
|
if (palletItem.TrayQuantity < 0) palletItem.TrayQuantity = 0;
|
||||||
//else if (MaxTrayQuantity.HasValue && palletItem.TrayQuantity > MaxTrayQuantity.Value) palletItem.TrayQuantity = MaxTrayQuantity.Value;
|
//else if (!IsMaxTrayQuantityValid) palletItem.TrayQuantity = MaxTrayQuantity!.Value;
|
||||||
|
|
||||||
break;
|
break;
|
||||||
case nameof(IMeasuringItemPalletBase.GrossWeight):
|
case nameof(IMeasuringItemPalletBase.GrossWeight):
|
||||||
|
|
|
||||||
|
|
@ -26,7 +26,7 @@ public partial class MainLayout : LayoutComponentBase
|
||||||
|
|
||||||
private EventCallback RefreshMainLayoutEventCallback => EventCallback.Factory.Create(this, RefreshMainLayout);
|
private EventCallback RefreshMainLayoutEventCallback => EventCallback.Factory.Create(this, RefreshMainLayout);
|
||||||
private NavMenu _navMenu = null!;
|
private NavMenu _navMenu = null!;
|
||||||
private ILogger _logger = null!;
|
private LoggerClient _logger = null!;
|
||||||
|
|
||||||
protected override void OnInitialized()
|
protected override void OnInitialized()
|
||||||
{
|
{
|
||||||
|
|
@ -54,26 +54,30 @@ public partial class MainLayout : LayoutComponentBase
|
||||||
return Task.CompletedTask;
|
return Task.CompletedTask;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!(notificationMessage.Content?.HasMeasuringAccess(LoggedInModel.CustomerDto!.Id, LoggedInModel.IsRevisor) ?? LoggedInModel.IsRevisor)) return Task.CompletedTask;
|
var orderDto = notificationMessage.Content;
|
||||||
|
if ((orderDto?.HasMeasuringAccess(LoggedInModel.CustomerDto!.Id, LoggedInModel.IsRevisor) ?? LoggedInModel.IsRevisor) || orderDto?.MeasurementOwnerId == 0)
|
||||||
var messageText = $"{notificationMessage.Message}";
|
|
||||||
if (notificationMessage.Content != null)
|
|
||||||
{
|
{
|
||||||
messageText += $" Rendelés: #{notificationMessage.Content.CustomOrderNumber}. Átvétel: {notificationMessage.Content.DateOfReceipt}";
|
var messageText = $"{notificationMessage.Message}";
|
||||||
|
if (orderDto != null)
|
||||||
|
{
|
||||||
|
messageText += $" Rendelés: #{orderDto.CustomOrderNumber}. Átvétel: {orderDto.DateOfReceipt}";
|
||||||
}
|
}
|
||||||
|
|
||||||
_logger.Info($"NotificationMessage received. {messageText}");
|
_logger.Debug($"NotificationMessage received. {messageText}");
|
||||||
|
|
||||||
ToastService.ShowToast(new ToastOptions
|
ToastService.ShowToast(new ToastOptions
|
||||||
{
|
{
|
||||||
ProviderName = "Positioning",
|
ProviderName = "Positioning",
|
||||||
Title = "Király vagyok!",
|
Title = "Értesítő!",
|
||||||
Text = messageText,
|
Text = messageText,
|
||||||
});
|
});
|
||||||
|
|
||||||
return Task.CompletedTask;
|
return Task.CompletedTask;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return Task.CompletedTask;
|
||||||
|
}
|
||||||
|
|
||||||
private void OnLogoutClick()
|
private void OnLogoutClick()
|
||||||
{
|
{
|
||||||
LoggedInModel.LogOut();
|
LoggedInModel.LogOut();
|
||||||
|
|
|
||||||
|
|
@ -156,41 +156,38 @@
|
||||||
@{
|
@{
|
||||||
if (context.Level == 0)
|
if (context.Level == 0)
|
||||||
{
|
{
|
||||||
//var orderItemPallet = ((OrderItemPallet)(context.DataItem));
|
var selectedOrderItem = (OrderItemDto)(context.DataItem);
|
||||||
//text = ((OrderItemPallet)(context.DataItem)).OrderItemId.ToString() + " dfgdfsg";
|
|
||||||
//var selectedOrderItemDto = SelectedOrder!.OrderItemDtos.First(x => x.Id == orderItemPallet.OrderItemId);
|
<DxFormLayout Context="ctxFormLayout" Data="@selectedOrderItem" CaptionPosition="CaptionPosition.Vertical" CssClass="w-100">
|
||||||
var selectedOrderItemDto = (OrderItemDto)(context.DataItem);
|
|
||||||
SelectedOrderItem = selectedOrderItemDto;
|
|
||||||
<DxFormLayout Context="ctxFormLayout" Data="@selectedOrderItemDto" CaptionPosition="CaptionPosition.Vertical" CssClass="w-100">
|
|
||||||
<DxFormLayoutItem Context="ctxFormLayoutItem" ColSpanMd="12">
|
<DxFormLayoutItem Context="ctxFormLayoutItem" ColSpanMd="12">
|
||||||
@for (var index = 0; index < (selectedOrderItemDto?.OrderItemPallets?.Count ?? 0); index++)
|
@for (var index = 0; index < (selectedOrderItem?.OrderItemPallets?.Count ?? 0); index++)
|
||||||
{
|
{
|
||||||
var localI = index + 1;
|
var localI = index + 1;
|
||||||
var currentOrderItemPallet = selectedOrderItemDto!.OrderItemPallets![index];
|
var currentOrderItemPallet = selectedOrderItem!.OrderItemPallets![index];
|
||||||
|
|
||||||
<PalletItemComponent IsMeasurable="@selectedOrderItemDto.IsMeasurable"
|
<PalletItemComponent IsMeasurable="@selectedOrderItem.IsMeasurable"
|
||||||
MeasuringIndex="@localI"
|
MeasuringIndex="@localI"
|
||||||
IsEditable="@(!currentOrderItemPallet.IsAudited && !(SelectedOrder?.IsComplete ?? false))"
|
IsEditable="@(!currentOrderItemPallet.IsAudited && !(SelectedOrder?.IsComplete ?? false))"
|
||||||
PalletItem="@currentOrderItemPallet"
|
PalletItem="@currentOrderItemPallet"
|
||||||
ProductId="@selectedOrderItemDto.ProductId"
|
ProductId="@selectedOrderItem.ProductId"
|
||||||
MaxTrayQuantity="@selectedOrderItemDto.Quantity"
|
MaxTrayQuantity="@selectedOrderItem.Quantity"
|
||||||
AddOrUpdateSignalRTag="SignalRTags.AddOrUpdateMeasuredOrderItemPallet"
|
AddOrUpdateSignalRTag="SignalRTags.AddOrUpdateMeasuredOrderItemPallet"
|
||||||
OnPalletItemSaved="pallet => OnOrderItemPalletSaved(pallet, selectedOrderItemDto)"
|
OnPalletItemSaved="pallet => OnOrderItemPalletSaved(pallet, selectedOrderItem)"
|
||||||
OnPalletItemValueChanged="pallet => OnOrderItemPalletValueChanged(pallet, selectedOrderItemDto)"
|
OnPalletItemValueChanged="pallet => OnOrderItemPalletValueChanged(pallet, selectedOrderItem)"
|
||||||
OnPalletItemAuditedClick="pallet => OnPalletItemAuditedClick(pallet, selectedOrderItemDto)">
|
OnPalletItemAuditedClick="pallet => OnPalletItemAuditedClick(pallet, selectedOrderItem)">
|
||||||
</PalletItemComponent>
|
</PalletItemComponent>
|
||||||
}
|
}
|
||||||
</DxFormLayoutItem>
|
</DxFormLayoutItem>
|
||||||
|
|
||||||
<DxFormLayoutItem Context="ctxFromLayoutNewPallet" ColSpanMd="2" BeginRow="true">
|
<DxFormLayoutItem Context="ctxFromLayoutNewPallet" ColSpanMd="2" BeginRow="true">
|
||||||
<DxButton Text="Új sor" Click="() => AddNewPalletItemClick(selectedOrderItemDto)" CssClass="w-100"
|
<DxButton Text="Új sor" Click="() => AddNewPalletItemClick(selectedOrderItem)" CssClass="w-100"
|
||||||
Visible="@(!(SelectedOrder?.IsComplete ?? false))"
|
Visible="@(!(SelectedOrder?.IsComplete ?? false))"
|
||||||
Enabled="@(selectedOrderItemDto.OrderItemPallets[^1].Id > 0)" />
|
Enabled="@(selectedOrderItem.OrderItemPallets[^1].Id > 0)" />
|
||||||
</DxFormLayoutItem>
|
</DxFormLayoutItem>
|
||||||
<DxFormLayoutItem Context="ctxFromLayoutNewPallet" ColSpanMd="3">
|
<DxFormLayoutItem Context="ctxFromLayoutNewPallet" ColSpanMd="3">
|
||||||
<DxButton Text="Utolsó sor törlése" Click="() => LastPalletItemDeleteClick(selectedOrderItemDto)" CssClass="w-100"
|
<DxButton Text="Utolsó sor törlése" Click="() => LastPalletItemDeleteClick(selectedOrderItem)" CssClass="w-100"
|
||||||
Visible="@(!(SelectedOrder?.IsComplete ?? false))"
|
Visible="@(!(SelectedOrder?.IsComplete ?? false))"
|
||||||
Enabled="@(selectedOrderItemDto.OrderItemPallets.Count > 1 && selectedOrderItemDto.OrderItemPallets[^1].Id <= 0)" />
|
Enabled="@(selectedOrderItem.OrderItemPallets.Count > 1 && selectedOrderItem.OrderItemPallets[^1].Id <= 0)" />
|
||||||
</DxFormLayoutItem>
|
</DxFormLayoutItem>
|
||||||
|
|
||||||
<DxFormLayoutItem Context="ctxFromLayoutNewPallet" ColSpanMd="7" />
|
<DxFormLayoutItem Context="ctxFromLayoutNewPallet" ColSpanMd="7" />
|
||||||
|
|
@ -201,9 +198,9 @@
|
||||||
<DxFormLayoutItem Context="dfcadsc2" ColSpanMd="2" BeginRow="false" />
|
<DxFormLayoutItem Context="dfcadsc2" ColSpanMd="2" BeginRow="false" />
|
||||||
<DxFormLayoutItem Context="dfcadsc2" ColSpanMd="2" BeginRow="false" />
|
<DxFormLayoutItem Context="dfcadsc2" ColSpanMd="2" BeginRow="false" />
|
||||||
<DxFormLayoutItem Context="dfcadsc2" ColSpanMd="1" BeginRow="false" />
|
<DxFormLayoutItem Context="dfcadsc2" ColSpanMd="1" BeginRow="false" />
|
||||||
<DxFormLayoutItem Context="dfcadsc2" ColSpanMd="2" BeginRow="false"><strong>Rekesz: @(selectedOrderItemDto.TrayQuantity) db</strong></DxFormLayoutItem>
|
<DxFormLayoutItem Context="dfcadsc2" ColSpanMd="2" BeginRow="false"><strong>Rekesz: @(selectedOrderItem.TrayQuantity) db</strong></DxFormLayoutItem>
|
||||||
<DxFormLayoutItem Context="dfcadsc2" ColSpanMd="2" BeginRow="false"><strong>Br: @(selectedOrderItemDto.GrossWeight) kg</strong></DxFormLayoutItem>
|
<DxFormLayoutItem Context="dfcadsc2" ColSpanMd="2" BeginRow="false"><strong>Br: @(selectedOrderItem.GrossWeight) kg</strong></DxFormLayoutItem>
|
||||||
<DxFormLayoutItem Context="dfcadsc2" ColSpanMd="1" BeginRow="false"><strong>Net: @(selectedOrderItemDto.NetWeight) kg</strong></DxFormLayoutItem>
|
<DxFormLayoutItem Context="dfcadsc2" ColSpanMd="1" BeginRow="false"><strong>Net: @(selectedOrderItem.NetWeight) kg</strong></DxFormLayoutItem>
|
||||||
<DxFormLayoutItem Context="dfcadsc2" ColSpanMd="1" BeginRow="false" />
|
<DxFormLayoutItem Context="dfcadsc2" ColSpanMd="1" BeginRow="false" />
|
||||||
</DxFormLayout>
|
</DxFormLayout>
|
||||||
</DxFormLayoutItem>
|
</DxFormLayoutItem>
|
||||||
|
|
|
||||||
|
|
@ -37,7 +37,7 @@ namespace FruitBankHybrid.Shared.Pages
|
||||||
[Inject] private IDialogService DialogService { get; set; } = null!;
|
[Inject] private IDialogService DialogService { get; set; } = null!;
|
||||||
[Inject] public required LoggedInModel LoggedInModel { get; set; }
|
[Inject] public required LoggedInModel LoggedInModel { get; set; }
|
||||||
|
|
||||||
private ILogger _logger = null!;
|
private LoggerClient _logger = null!;
|
||||||
private string _errorText;
|
private string _errorText;
|
||||||
|
|
||||||
public bool HasMeasuringAccess;
|
public bool HasMeasuringAccess;
|
||||||
|
|
@ -46,7 +46,7 @@ namespace FruitBankHybrid.Shared.Pages
|
||||||
private DateTime SelectedDate;
|
private DateTime SelectedDate;
|
||||||
private List<OrderDto> SelectedDayOrders { get; set; } = null!;
|
private List<OrderDto> SelectedDayOrders { get; set; } = null!;
|
||||||
private OrderDto? SelectedOrder { get; set; }
|
private OrderDto? SelectedOrder { get; set; }
|
||||||
private OrderItemDto? SelectedOrderItem { get; set; }
|
//private OrderItemDto? SelectedOrderItem { get; set; }
|
||||||
|
|
||||||
private List<MeasuringDateSelectorModel> _measuringDates = null!;
|
private List<MeasuringDateSelectorModel> _measuringDates = null!;
|
||||||
|
|
||||||
|
|
@ -68,15 +68,29 @@ namespace FruitBankHybrid.Shared.Pages
|
||||||
{
|
{
|
||||||
if (!LoggedInModel.IsLoggedIn) return;
|
if (!LoggedInModel.IsLoggedIn) return;
|
||||||
|
|
||||||
if (messageTag != SignalRTags.SendOrderChanged && messageTag != SignalRTags.SendOrderItemChanged &&
|
if (messageTag != SignalRTags.SendOrderItemDeleted && messageTag != SignalRTags.SendOrderChanged && messageTag != SignalRTags.SendOrderItemChanged &&
|
||||||
messageTag != SignalRTags.SendOrderItemPalletChanged && messageTag != SignalRTags.SendProductChanged) return;
|
messageTag != SignalRTags.SendOrderItemPalletChanged && messageTag != SignalRTags.SendProductChanged) return;
|
||||||
|
|
||||||
|
_logger.DebugConditional($"SignalRClientOnMessageReceived received. {jsonMessage}");
|
||||||
_logger.Detail($"SignalRClientOnMessageReceived received. {jsonMessage}");
|
|
||||||
|
|
||||||
OrderDto? orderDto;
|
OrderDto? orderDto;
|
||||||
|
OrderItem? orderItem;
|
||||||
|
OrderItemDto? orderItemDto;
|
||||||
|
|
||||||
switch (messageTag)
|
switch (messageTag)
|
||||||
{
|
{
|
||||||
|
case SignalRTags.SendOrderItemDeleted:
|
||||||
|
orderItem = jsonMessage?.JsonTo<OrderItem>();
|
||||||
|
if (orderItem == null) break;
|
||||||
|
|
||||||
|
lock (_lock)
|
||||||
|
{
|
||||||
|
orderDto = SelectedDayOrders.FirstOrDefault(o => o.OrderItemDtos.Any(oi => oi.Id == orderItem.Id));
|
||||||
|
orderDto?.OrderItemDtos.RemoveAll(oi => oi.Id == orderItem.Id);
|
||||||
|
}
|
||||||
|
|
||||||
|
await InvokeAsync(StateHasChanged);
|
||||||
|
return;
|
||||||
case SignalRTags.SendOrderChanged:
|
case SignalRTags.SendOrderChanged:
|
||||||
orderDto = jsonMessage?.JsonTo<OrderDto>();
|
orderDto = jsonMessage?.JsonTo<OrderDto>();
|
||||||
if (orderDto == null) break;
|
if (orderDto == null) break;
|
||||||
|
|
@ -91,17 +105,27 @@ namespace FruitBankHybrid.Shared.Pages
|
||||||
if (SelectedDate != orderDto.DateOfReceipt.Value.Date) return;
|
if (SelectedDate != orderDto.DateOfReceipt.Value.Date) return;
|
||||||
|
|
||||||
var selectedOrderId = SelectedOrder?.Id;
|
var selectedOrderId = SelectedOrder?.Id;
|
||||||
|
|
||||||
SelectedDayOrders.UpdateCollection(orderDto, false);
|
SelectedDayOrders.UpdateCollection(orderDto, false);
|
||||||
|
|
||||||
if (selectedOrderId.GetValueOrDefault(-1) == orderDto.Id) SelectedOrder = orderDto;
|
if (selectedOrderId.GetValueOrDefault(-1) == orderDto.Id) SelectedOrder = orderDto;
|
||||||
}
|
}
|
||||||
|
|
||||||
await InvokeAsync(StateHasChanged);
|
await InvokeAsync(StateHasChanged);
|
||||||
return;
|
return;
|
||||||
case SignalRTags.SendOrderItemChanged:
|
case SignalRTags.SendOrderItemChanged:
|
||||||
var orderItemDto = jsonMessage?.JsonTo<OrderItemDto>();
|
orderItemDto = jsonMessage?.JsonTo<OrderItemDto>();
|
||||||
if (orderItemDto == null) break;
|
if (orderItemDto == null) break;
|
||||||
|
|
||||||
|
lock (_lock)
|
||||||
|
{
|
||||||
|
var localOrderDto = SelectedDayOrders.FirstOrDefault(o => o.OrderItemDtos.Any(oi => oi.Id == orderItemDto.Id));
|
||||||
|
var localOrderItemDto = localOrderDto?.OrderItemDtos.First(x => x.Id == orderItemDto.Id)!;
|
||||||
|
|
||||||
|
localOrderItemDto.Quantity = orderItemDto.Quantity;
|
||||||
|
localOrderItemDto.GenericAttributes.UpdateBaseEntityCollection(orderItemDto.GenericAttributes, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
await InvokeAsync(StateHasChanged);
|
||||||
return;
|
return;
|
||||||
case SignalRTags.SendOrderItemPalletChanged:
|
case SignalRTags.SendOrderItemPalletChanged:
|
||||||
var orderItemPallet = jsonMessage?.JsonTo<OrderItemPallet>();
|
var orderItemPallet = jsonMessage?.JsonTo<OrderItemPallet>();
|
||||||
|
|
@ -110,13 +134,14 @@ namespace FruitBankHybrid.Shared.Pages
|
||||||
lock (_lock)
|
lock (_lock)
|
||||||
{
|
{
|
||||||
var orderItemDtos = SelectedDayOrders.FirstOrDefault(x => x.OrderItemDtos.Any(oi => oi.Id == orderItemPallet.OrderItemId))?.OrderItemDtos;
|
var orderItemDtos = SelectedDayOrders.FirstOrDefault(x => x.OrderItemDtos.Any(oi => oi.Id == orderItemPallet.OrderItemId))?.OrderItemDtos;
|
||||||
var orderItem = orderItemDtos?.FirstOrDefault(oi => oi.Id == orderItemPallet.OrderItemId);
|
|
||||||
if (orderItem == null) return;
|
|
||||||
|
|
||||||
var orderItemPalletsCount = orderItem.OrderItemPallets.Count;
|
orderItemDto = orderItemDtos?.FirstOrDefault(oi => oi.Id == orderItemPallet.OrderItemId);
|
||||||
|
if (orderItemDto == null) return;
|
||||||
|
|
||||||
if (orderItem.OrderItemPallets[orderItemPalletsCount - 1].Id == 0) orderItem.OrderItemPallets.Insert(orderItemPalletsCount - 1, orderItemPallet);
|
var orderItemPalletsCount = orderItemDto.OrderItemPallets.Count;
|
||||||
else orderItem.OrderItemPallets.UpdateCollection(orderItemPallet, false);
|
|
||||||
|
if (orderItemDto.OrderItemPallets[orderItemPalletsCount - 1].Id == 0) orderItemDto.OrderItemPallets.Insert(orderItemPalletsCount - 1, orderItemPallet);
|
||||||
|
else orderItemDto.OrderItemPallets.UpdateCollection(orderItemPallet, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
await InvokeAsync(StateHasChanged);
|
await InvokeAsync(StateHasChanged);
|
||||||
|
|
@ -125,6 +150,7 @@ namespace FruitBankHybrid.Shared.Pages
|
||||||
var productDto = jsonMessage?.JsonTo<ProductDto>();
|
var productDto = jsonMessage?.JsonTo<ProductDto>();
|
||||||
if (productDto == null) break;
|
if (productDto == null) break;
|
||||||
|
|
||||||
|
await InvokeAsync(StateHasChanged);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,20 +1,19 @@
|
||||||
using DevExpress.Blazor;
|
using AyCode.Core.Loggers;
|
||||||
|
using DevExpress.Blazor;
|
||||||
using FruitBank.Common.Dtos;
|
using FruitBank.Common.Dtos;
|
||||||
using FruitBank.Common.Entities;
|
using FruitBank.Common.Entities;
|
||||||
using FruitBank.Common.Interfaces;
|
using FruitBank.Common.Interfaces;
|
||||||
using FruitBank.Common.Services;
|
using FruitBank.Common.Services;
|
||||||
using FruitBankHybrid.Shared.Models;
|
using FruitBankHybrid.Shared.Models;
|
||||||
|
using FruitBankHybrid.Shared.Services.Loggers;
|
||||||
using Mango.Nop.Core.Dtos;
|
using Mango.Nop.Core.Dtos;
|
||||||
|
using Mango.Nop.Core.Loggers;
|
||||||
|
|
||||||
namespace FruitBankHybrid.Shared.Services;
|
namespace FruitBankHybrid.Shared.Services;
|
||||||
|
|
||||||
public class MeasurementService : MeasurementServiceBase, IMeasurementService
|
public class MeasurementService(IEnumerable<IAcLogWriterClientBase> logWriters) :
|
||||||
|
MeasurementServiceBase<LoggerClient>(new LoggerClient<MeasurementService>(logWriters.ToArray())), IMeasurementService
|
||||||
{
|
{
|
||||||
public MeasurementService()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public static bool DaysEqual(DateTime date1, DateTime date2)
|
public static bool DaysEqual(DateTime date1, DateTime date2)
|
||||||
=> (date1.Year == date2.Year && date1.DayOfYear == date2.DayOfYear);
|
=> (date1.Year == date2.Year && date1.DayOfYear == date2.DayOfYear);
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue