FruitBankHybridApp/FruitBankHybrid.Shared/Pages/MeasuringOut.razor.cs

148 lines
6.1 KiB
C#

using AyCode.Core.Loggers;
using DevExpress.Blazor;
using FruitBank.Common.Dtos;
using FruitBank.Common.Entities;
using FruitBank.Common.Models;
using FruitBankHybrid.Shared.Models;
using FruitBankHybrid.Shared.Services;
using FruitBankHybrid.Shared.Services.Loggers;
using FruitBankHybrid.Shared.Services.SignalRs;
using Mango.Nop.Core.Loggers;
using Microsoft.AspNetCore.Components;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using FruitBank.Common.Helpers;
namespace FruitBankHybrid.Shared.Pages
{
public partial class MeasuringOut : ComponentBase
{
[Inject] public required IEnumerable<IAcLogWriterClientBase> LogWriters { get; set; }
[Inject] public required FruitBankSignalRClient FruitBankSignalRClient { get; set; }
[Inject] public required LoggedInModel LoggedInModel { get; set; }
private ILogger _logger = null!;
private string _errorText;
private List<OrderDto> SelectedDayOrders { get; set; } = null!;
private OrderDto? SelectedOrder { get; set; }
private OrderItemDto? SelectedOrderItem { get; set; }
private List<MeasuringDateSelectorModel> _measuringDates = null!;
protected override async Task OnInitializedAsync()
{
_logger = new LoggerClient<MeasuringOut>(LogWriters.ToArray());
_logger.Info("OnInitializedAsync");
await RefreshOrdersFromDb(DateTime.Now);
await base.OnInitializedAsync();
}
private async Task RefreshOrdersFromDb(DateTime dateTime)
{
var orders = await FruitBankSignalRClient.GetPendingOrderDtos() ?? [];
_measuringDates = orders.Select(order => new MeasuringDateSelectorModel(order.Id, order.DateOfReceipt, order.IsMeasured)).ToList();
SelectedDayOrders = orders.Where(order => MeasuringService.DaysEqual(order.DateOfReceipt, dateTime)).ToList();
SelectedOrder = SelectedDayOrders.FirstOrDefault();
foreach (var order in SelectedDayOrders)
{
foreach (var orderItem in order.OrderItemDtos.Where(orderItem => orderItem.OrderItemPallets.Count == 0))
{
orderItem.OrderItemPallets.Add(new OrderItemPallet
{
OrderItemId = orderItem.Id,
OrderItemDto = orderItem,
});
orderItem.OrderItemPallets.Add(new OrderItemPallet
{
OrderItemId = orderItem.Id,
OrderItemDto = orderItem,
});
}
}
}
private async Task OnMeasuringDateChanged(DateTime selectedDateTime)
=> await RefreshOrdersFromDb(selectedDateTime);
private void OnCustomDisabledMeasuringDate(CalendarCustomDisabledDateEventArgs args)
=> MeasuringService.OnCustomDisabledDate(args, _measuringDates);
private string GetMeasuringDateCssClassNames(DateTime date)
=> MeasuringService.GetShippingDateCssClassNames(date, _measuringDates);
private string GetOrderItemPalletsCssClassNames(string fieldName, OrderItemPallet orderItemPallet)
=> MeasuringService.GetCustomItemPalletsCssClassNames(fieldName, orderItemPallet, orderItemPallet.OrderItemDto!.IsMeasurable);
private bool IsOrderItemPalletMeasuredAndValid(OrderItemPallet orderItemPallet)
=> MeasuringService.IsCustomItemPalletMeasuredAndValid(orderItemPallet, orderItemPallet.OrderItemDto!.IsMeasurable);
private void OnSelectedOrderChanged(SelectedDataItemChangedEventArgs<OrderDto> eventArgs)
{
//SelectedOrderItem = eventArgs.DataItem?.OrderItemDtos?.FirstOrDefault();
}
protected bool BtnSaveEnabled { get; set; }
protected void OnItemUpdating(string fieldName, object newValue)
{
return;
}
protected void OnItemUpdating2(string fieldName, object newValue, OrderItemPallet orderItemPallet)
{
BtnSaveEnabled = false;
if (SelectedOrderItem == null) return;
switch (fieldName)
{
case nameof(OrderItemPallet.PalletWeight):
orderItemPallet.PalletWeight = (double)newValue;
break;
case nameof(OrderItemPallet.TareWeight):
orderItemPallet.TareWeight = (double)newValue;
break;
case nameof(OrderItemPallet.TrayQuantity):
orderItemPallet.TrayQuantity = (int)newValue;
break;
case nameof(OrderItemPallet.GrossWeight):
orderItemPallet.GrossWeight = (double)newValue;
break;
}
//MeasuringValuesHelper.SetShippingItemTotalMeasuringValues(SelectedShippingItem);
//BtnSaveEnabled = SelectedShippingItem.IsValidMeasuringValues() && shippingItemPallet.IsValidMeasuringValues(SelectedShippingItem.IsMeasurable);
}
private async Task OnShippingItemPalletSaveClick(OrderItemPallet orderItemPallet)
{
//ShippingItemPallet? responseShippingItemPallet;
//if (orderItemPallet.Id == 0) responseShippingItemPallet = await FruitBankSignalRClient.AddShippingItemPallet(orderItemPallet);
//else responseShippingItemPallet = await FruitBankSignalRClient.UpdateShippingItemPallet(orderItemPallet);
//if (responseShippingItemPallet != null)
//{
// orderItemPallet.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! {orderItemPallet}");
//StateHasChanged();
}
}
}