82 lines
3.7 KiB
C#
82 lines
3.7 KiB
C#
using DevExpress.Blazor;
|
|
using FruitBank.Common.Dtos;
|
|
using FruitBank.Common.Entities;
|
|
using FruitBank.Common.Interfaces;
|
|
using FruitBankHybrid.Shared.Models;
|
|
using Mango.Nop.Core.Dtos;
|
|
|
|
namespace FruitBankHybrid.Shared.Services;
|
|
|
|
public class MeasuringService
|
|
{
|
|
public MeasuringService()
|
|
{
|
|
|
|
}
|
|
|
|
public static bool DaysEqual(DateTime date1, DateTime date2)
|
|
=> (date1.Year == date2.Year && date1.DayOfYear == date2.DayOfYear);
|
|
|
|
public static void OnCustomDisabledDate(CalendarCustomDisabledDateEventArgs args, List<MeasuringDateSelectorModel>? measuringDates)
|
|
=> args.IsDisabled = measuringDates == null || !measuringDates.Exists(shippingDateModel => DaysEqual(shippingDateModel.DateTime, args.Date));
|
|
|
|
public static string GetShippingDateCssClassNames(DateTime date, List<MeasuringDateSelectorModel>? measuringDates)
|
|
{
|
|
if (measuringDates == null) return string.Empty;
|
|
|
|
if (measuringDates.Exists(shipping => !shipping.IsMeasured && shipping.DateTime.Date <= DateTime.Now.Date && DaysEqual(shipping.DateTime, date)))
|
|
return "fw-bold text-danger";
|
|
|
|
if (measuringDates.Exists(shipping => shipping.IsMeasured && DaysEqual(shipping.DateTime, date)))
|
|
return "fw-bold text-success";
|
|
|
|
if (measuringDates.Exists(shipping => !shipping.IsMeasured && DaysEqual(shipping.DateTime, date)))
|
|
return "fw-bold";
|
|
|
|
return string.Empty;
|
|
}
|
|
|
|
public static string GetCustomItemPalletsCssClassNames(string fieldName, IMeasuringItemPalletBase shippingItemPallet, bool isMeasurable)
|
|
{
|
|
//if (shippingItemPallet.NetWeight < 0) return "text-danger";
|
|
|
|
switch (fieldName)
|
|
{
|
|
case nameof(ShippingItemPallet.TareWeight):
|
|
return IsCustomItemPalletMeasuredAndValid(shippingItemPallet, isMeasurable) ? "text-success" : (shippingItemPallet.TareWeight < 0 || shippingItemPallet.NetWeight < 0 ? "text-danger" : "");
|
|
break;
|
|
case nameof(ShippingItemPallet.PalletWeight):
|
|
return IsCustomItemPalletMeasuredAndValid(shippingItemPallet, isMeasurable) ? "text-success" : (shippingItemPallet.PalletWeight < 0 || shippingItemPallet.NetWeight < 0 ? "text-danger" : "");
|
|
break;
|
|
case nameof(ShippingItemPallet.TrayQuantity):
|
|
return IsCustomItemPalletMeasuredAndValid(shippingItemPallet, isMeasurable) ? "text-success" : (shippingItemPallet.TrayQuantity < 0 ? "text-danger" : "");
|
|
break;
|
|
case nameof(ShippingItemPallet.GrossWeight):
|
|
return IsCustomItemPalletMeasuredAndValid(shippingItemPallet, isMeasurable) ? "text-success" : (shippingItemPallet.GrossWeight < 0 || shippingItemPallet.NetWeight < 0 ? "text-danger" : "");
|
|
break;
|
|
case nameof(ShippingItemPallet.NetWeight):
|
|
return IsCustomItemPalletMeasuredAndValid(shippingItemPallet, isMeasurable) ? "text-success" : (shippingItemPallet.NetWeight < 0 ? "text-danger" : "");
|
|
break;
|
|
}
|
|
|
|
return string.Empty;
|
|
}
|
|
|
|
public static OrderItemPallet CreateNewOrderItemPallet(OrderItemDto orderItemDto, CustomerDto? customerDto)
|
|
{
|
|
var orderItemPallet = new OrderItemPallet
|
|
{
|
|
OrderItemId = orderItemDto.Id,
|
|
OrderItemDto = orderItemDto,
|
|
TareWeight = orderItemDto.ProductDto?.Tare ?? 0,
|
|
|
|
CreatorId = customerDto?.Id,
|
|
ModifierId = customerDto?.Id
|
|
};
|
|
|
|
return orderItemPallet;
|
|
}
|
|
|
|
public static bool IsCustomItemPalletMeasuredAndValid(IMeasuringItemPalletBase customItemPallet, bool isMeasurable)
|
|
=> customItemPallet.IsMeasuredAndValid(isMeasurable);
|
|
} |