...
This commit is contained in:
parent
581c4ee0a5
commit
51aef27828
|
|
@ -27,7 +27,11 @@ public class OrderDto : MgOrderDto<OrderItemDto, ProductDto>, IOrderDto
|
|||
public List<GenericAttribute> GenericAttributes { get; set; }
|
||||
|
||||
[NotColumn, JsonIgnore, System.Text.Json.Serialization.JsonIgnore]
|
||||
public bool IsMeasured => OrderItemDtos.All(oi => oi.IsMeasured);
|
||||
public bool IsMeasured
|
||||
{
|
||||
get => IsMeasuredAndValid();
|
||||
set => throw new Exception($"OrderDto.IsMeasured not set");
|
||||
}
|
||||
|
||||
[NotColumn, JsonIgnore, System.Text.Json.Serialization.JsonIgnore]
|
||||
public bool IsMeasurable
|
||||
|
|
@ -52,4 +56,8 @@ public class OrderDto : MgOrderDto<OrderItemDto, ProductDto>, IOrderDto
|
|||
{ }
|
||||
public OrderDto(Order order) : base(order)
|
||||
{ }
|
||||
|
||||
public bool IsMeasuredAndValid() => Id > 0 && OrderItemDtos.Count > 0 && OrderItemDtos.All(x => x.IsMeasured);
|
||||
public bool IsValidMeasuringValues() => OrderItemDtos.Count > 0 && OrderItemDtos.All(x => x.IsValidMeasuringValues());
|
||||
|
||||
}
|
||||
|
|
@ -24,8 +24,15 @@ public class OrderItemDto : MgOrderItemDto<ProductDto>, IOrderItemDto
|
|||
[Association(ThisKey = nameof(Id), OtherKey = nameof(OrderItemPallet.OrderItemId), CanBeNull = true)]
|
||||
public List<OrderItemPallet> OrderItemPallets { get; set; }
|
||||
|
||||
[Association(ThisKey = nameof(OrderId), OtherKey = nameof(OrderDto.Id), CanBeNull = false)]
|
||||
public OrderDto OrderDto { get; set; }
|
||||
|
||||
[NotColumn, JsonIgnore, System.Text.Json.Serialization.JsonIgnore]
|
||||
public bool IsMeasured => OrderItemPallets.All(oip => oip.IsMeasured);
|
||||
public bool IsMeasured
|
||||
{
|
||||
get => IsMeasuredAndValid();
|
||||
set => throw new Exception($"OrderItemDto.IsMeasured not set");
|
||||
}
|
||||
|
||||
[NotColumn, JsonIgnore, System.Text.Json.Serialization.JsonIgnore]
|
||||
public bool IsMeasurable
|
||||
|
|
@ -44,12 +51,17 @@ public class OrderItemDto : MgOrderItemDto<ProductDto>, IOrderItemDto
|
|||
[NotColumn, JsonIgnore, System.Text.Json.Serialization.JsonIgnore]
|
||||
public double NetWeight
|
||||
{
|
||||
get => CommonHelper.To<double>(GenericAttributes.SingleOrDefault(x => x.Key == nameof(IMeasuringNetWeight.NetWeight))?.Value ?? "0");
|
||||
get
|
||||
{
|
||||
return double.Round(OrderItemPallets.Sum(x => x.NetWeight), 1);
|
||||
//return CommonHelper.To<double>(GenericAttributes.SingleOrDefault(x => x.Key == nameof(IMeasuringNetWeight.NetWeight))?.Value ?? "0");
|
||||
}
|
||||
set
|
||||
{
|
||||
//Direkt legyen exception! - J.
|
||||
var ga = GenericAttributes?.SingleOrDefault(x => x.Key == nameof(IMeasuringNetWeight.NetWeight))!;
|
||||
ga.Value = value.ToString(CultureInfo.InvariantCulture);
|
||||
throw new Exception($"OrderItemDto.NetWeight not set");
|
||||
////Direkt legyen exception! - J.
|
||||
//var ga = GenericAttributes?.SingleOrDefault(x => x.Key == nameof(IMeasuringNetWeight.NetWeight))!;
|
||||
//ga.Value = value.ToString(CultureInfo.InvariantCulture);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -88,4 +100,7 @@ public class OrderItemDto : MgOrderItemDto<ProductDto>, IOrderItemDto
|
|||
{
|
||||
OrderItemPallets = orderItemPallets;
|
||||
}
|
||||
|
||||
public bool IsMeasuredAndValid() => Id > 0 && IsValidMeasuringValues() && OrderItemPallets.All(oip => oip.IsMeasuredAndValid(IsMeasurable));
|
||||
public bool IsValidMeasuringValues() => OrderItemPallets.Count > 0 && (!IsMeasurable || NetWeight > 0) && TrayQuantity == Quantity;
|
||||
}
|
||||
|
|
@ -2,6 +2,7 @@
|
|||
using LinqToDB;
|
||||
using LinqToDB.Mapping;
|
||||
using Mango.Nop.Core.Entities;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace FruitBank.Common.Entities;
|
||||
|
||||
|
|
@ -32,7 +33,12 @@ public abstract class MeasuringItemPalletBase : MgEntityBase, IMeasuringItemPall
|
|||
set => _palletWeight = double.Round(value, 1);
|
||||
}
|
||||
|
||||
[NotColumn] public double NetWeight => CalculateNetWeight();
|
||||
[NotColumn, JsonIgnore, System.Text.Json.Serialization.JsonIgnore]
|
||||
public double NetWeight
|
||||
{
|
||||
get => CalculateNetWeight();
|
||||
set => throw new Exception($"MeasuringItemPalletBase.NetWeight not set");
|
||||
}
|
||||
|
||||
[Column(DataType = DataType.DecFloat, CanBeNull = false)]
|
||||
public double GrossWeight
|
||||
|
|
@ -78,6 +84,18 @@ public abstract class MeasuringItemPalletBase : MgEntityBase, IMeasuringItemPall
|
|||
return Id > 0 && IsMeasured && IsValidMeasuringValues(isMeasurable);
|
||||
}
|
||||
|
||||
public virtual void SetupCustomItemPalletMeauringValues(bool isMeasurable)
|
||||
{
|
||||
if (!isMeasurable)
|
||||
{
|
||||
TareWeight = 0;
|
||||
PalletWeight = 0;
|
||||
GrossWeight = 0;
|
||||
}
|
||||
|
||||
IsMeasured = IsValidMeasuringValues(isMeasurable);
|
||||
}
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
return $"{base.ToString()} [ForeignItemId: {ForeignItemId}; IsMeasured: {IsMeasured}; PalletWeight: {PalletWeight}; TareWeight: {TareWeight}; Quantity: {TrayQuantity}; NetWeight: {NetWeight}; GrossWeight: {GrossWeight}]";
|
||||
|
|
|
|||
|
|
@ -1,4 +1,6 @@
|
|||
namespace FruitBank.Common.Interfaces;
|
||||
using FruitBank.Common.Dtos;
|
||||
|
||||
namespace FruitBank.Common.Interfaces;
|
||||
|
||||
public interface ICustomOrderSignalREndpointClient : ICustomOrderSignalREndpointCommon
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
using FruitBank.Common.Dtos;
|
||||
using FruitBank.Common.Entities;
|
||||
using Mango.Nop.Core.Models;
|
||||
|
||||
namespace FruitBank.Common.Interfaces;
|
||||
|
|
@ -7,6 +8,8 @@ public interface ICustomOrderSignalREndpointCommon
|
|||
{
|
||||
Task<List<OrderDto>?> GetAllOrderDtos();
|
||||
Task<List<OrderDto>?> GetPendingOrderDtos();
|
||||
Task<List<OrderDto>?> GetAllByIds(int[] orderIds);
|
||||
Task<List<OrderDto>?> GetAllOrderDtoByIds(int[] orderIds);
|
||||
Task<OrderDto?> GetOrderDtoById(int orderId);
|
||||
Task<OrderItemPallet?> AddOrUpdateMeasuredOrderItemPallet(OrderItemPallet orderItemPallet);
|
||||
Task<OrderDto?> SetOrderStatusToComplete(int orderId);
|
||||
}
|
||||
|
|
@ -34,6 +34,7 @@ public interface IFruitBankDataControllerCommon
|
|||
#region ShippingItemPallet
|
||||
public Task<ShippingItemPallet?> AddShippingItemPallet(ShippingItemPallet shippingItemPallet);
|
||||
public Task<ShippingItemPallet?> UpdateShippingItemPallet(ShippingItemPallet shippingItemPallet);
|
||||
public Task<ShippingItemPallet?> AddOrUpdateMeasuredShippingItemPallet(ShippingItemPallet shippingItemPallet);
|
||||
public Task<ShippingItem?> AddOrUpdateMeasuredShippingItemPallets(List<ShippingItemPallet> shippingItemPallets);
|
||||
#endregion ShippingItemPallet
|
||||
|
||||
|
|
|
|||
|
|
@ -2,5 +2,5 @@
|
|||
|
||||
public interface IMeasured
|
||||
{
|
||||
bool IsMeasured { get; }
|
||||
bool IsMeasured { get; set; }
|
||||
}
|
||||
|
|
@ -5,16 +5,19 @@ using FruitBank.Common.Entities;
|
|||
|
||||
namespace FruitBank.Common.Interfaces;
|
||||
|
||||
public interface IMeasuringItemPalletBase : IEntityInt, IMeasuringQuantity, IMeasuringGrossWeight, IMeasured, ITimeStampInfo, ICustomForeignKeyInt
|
||||
public interface IMeasuringItemPalletBase : IEntityInt, IMeasuringValues, IMeasured, ITimeStampInfo, ICustomForeignKeyInt
|
||||
{
|
||||
public double TareWeight { get; set; }
|
||||
public double PalletWeight { get; set; }
|
||||
double TareWeight { get; set; }
|
||||
double PalletWeight { get; set; }
|
||||
|
||||
public int? CreatorId { get; set; }
|
||||
public int? ModifierId { get; set; }
|
||||
int? CreatorId { get; set; }
|
||||
int? ModifierId { get; set; }
|
||||
|
||||
public double CalculateNetWeight();
|
||||
double CalculateNetWeight();
|
||||
|
||||
public bool IsValidSafeMeasuringValues();
|
||||
public bool IsValidMeasuringValues(bool isMeasurable);
|
||||
bool IsValidSafeMeasuringValues();
|
||||
bool IsValidMeasuringValues(bool isMeasurable);
|
||||
bool IsMeasuredAndValid(bool isMeasurable);
|
||||
|
||||
void SetupCustomItemPalletMeauringValues(bool isMeasurable);
|
||||
}
|
||||
|
|
@ -8,6 +8,7 @@ namespace FruitBank.Common.Interfaces;
|
|||
|
||||
public interface IOrderItemDto : IMgOrderItemDto<ProductDto>, IMeasuringValues, IMeasured, IMeasurable
|
||||
{
|
||||
public OrderDto OrderDto { get; set; }
|
||||
public List<OrderItemPallet> OrderItemPallets { get; set; }
|
||||
public void InitializeOrderItemPallets(List<OrderItemPallet> orderItemPallets);
|
||||
}
|
||||
|
|
@ -47,10 +47,16 @@ public class SignalRTags : AcSignalRTags
|
|||
|
||||
public const int GetAllOrderDtos = 111;
|
||||
public const int GetOrderDtoById = 112;
|
||||
public const int GetAllByIdList = 114;
|
||||
public const int GetAllOrderDtoByIds = 114;
|
||||
public const int GetPendingOrderDtos = 115;
|
||||
public const int SetOrderStatusToComplete = 116;
|
||||
|
||||
public const int AuthenticateUser = 160;
|
||||
public const int AddOrderItemPallet = 131;
|
||||
public const int UpdateOrderItemPallet = 132;
|
||||
public const int AddOrUpdateMeasuredOrderItemPallet = 133;
|
||||
public const int AddOrUpdateMeasuredOrderItemPallets = 134;
|
||||
|
||||
public const int AuthenticateUser = 195;
|
||||
public const int RefreshToken = 200;
|
||||
|
||||
public const int GetAllLogItemsByFilterText = 1000;
|
||||
|
|
|
|||
|
|
@ -64,7 +64,7 @@ public sealed class OrderClientTests
|
|||
[DataRow(new[] {1,2,4,7})]
|
||||
public async Task GetOrderDtoById(int[] orderIds)
|
||||
{
|
||||
var orderDtoList = await _signalRClient.GetAllByIds(orderIds);
|
||||
var orderDtoList = await _signalRClient.GetAllOrderDtoByIds(orderIds);
|
||||
|
||||
Assert.IsNotNull(orderDtoList);
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,124 @@
|
|||
@using AyCode.Core.Loggers
|
||||
@using FruitBank.Common.Entities
|
||||
@using FruitBank.Common.Interfaces
|
||||
@using FruitBank.Common.Models
|
||||
@using FruitBank.Common.SignalRs
|
||||
@using FruitBankHybrid.Shared.Services
|
||||
@using FruitBankHybrid.Shared.Services.SignalRs
|
||||
@typeparam TPalletItem where TPalletItem : class, IMeasuringItemPalletBase
|
||||
|
||||
<DxFormLayout Context="ctxFromLayoutPallet" Data="@PalletItem" CaptionPosition="CaptionPosition.Vertical" CssClass="w-100 measuring-form-layout"
|
||||
ItemUpdating="@((pair) => OnItemUpdating(pair.Key, pair.Value, PalletItem))">
|
||||
|
||||
<DxFormLayoutItem Context="ctxFromLayoutItemPallet" ColSpanMd="1" BeginRow="true">
|
||||
<text>@(MeasuringIndex).mérés</text>
|
||||
</DxFormLayoutItem>
|
||||
|
||||
|
||||
<DxFormLayoutItem Context="ctxFromLayoutItemPallet" CaptionCssClass="@(GetOrderItemPalletsCssClassNames(nameof(IMeasuringItemPalletBase.PalletWeight)))"
|
||||
Field="@nameof(ShippingItemPallet.PalletWeight)"
|
||||
Enabled="@(IsMeasurable && ProductId > 0)"
|
||||
Caption="Rakl.súly(kg)" ColSpanMd="2" />
|
||||
|
||||
<DxFormLayoutItem Context="ctxFromLayoutItemPallet" CaptionCssClass="@(GetOrderItemPalletsCssClassNames(nameof(IMeasuringItemPalletBase.TareWeight)))"
|
||||
Field="@nameof(ShippingItemPallet.TareWeight)"
|
||||
Enabled="@(IsMeasurable && ProductId > 0)"
|
||||
Caption="Tára(kg)" ColSpanMd="2" />
|
||||
|
||||
<DxFormLayoutItem Context="ctxFromLayoutItemPallet" ColSpanMd="1" />
|
||||
<DxFormLayoutItem Context="ctxFromLayoutItemPallet" CaptionCssClass="@(GetOrderItemPalletsCssClassNames(nameof(IMeasuringItemPalletBase.TrayQuantity)))"
|
||||
Field="@nameof(ShippingItemPallet.TrayQuantity)"
|
||||
Enabled="@(ProductId > 0)"
|
||||
Caption="Rekesz/csomag" ColSpanMd="2" />
|
||||
|
||||
<DxFormLayoutItem Context="ctxFromLayoutItemPallet" CaptionCssClass="@(GetOrderItemPalletsCssClassNames(nameof(IMeasuringItemPalletBase.GrossWeight)))"
|
||||
Field="@nameof(ShippingItemPallet.GrossWeight)"
|
||||
Enabled="@(IsMeasurable && ProductId > 0)"
|
||||
Caption="Br.súly(kg)" ColSpanMd="2">
|
||||
</DxFormLayoutItem>
|
||||
|
||||
<DxFormLayoutItem Context="ctxFromLayoutItemPallet" Caption="Net.súly(kg)" ColSpanMd="1" CaptionCssClass="@(GetOrderItemPalletsCssClassNames(nameof(IMeasuringItemPalletBase.NetWeight)))">
|
||||
<text>@(PalletItem.NetWeight) kg.</text>
|
||||
</DxFormLayoutItem>
|
||||
|
||||
<DxFormLayoutItem Context="ctxFromLayoutItemPallet" ColSpanMd="1">
|
||||
<DxButton Enabled="@_btnSaveEnabled" Text="@(PalletItem.Id == 0 ? "Mentés" : "Módosítás")" Click="() => PalletItemSaveClick()" CssClass="w-100" />
|
||||
</DxFormLayoutItem>
|
||||
|
||||
</DxFormLayout>
|
||||
|
||||
@code {
|
||||
[Parameter] public required TPalletItem PalletItem { get; set; }
|
||||
[Parameter] public required bool IsMeasurable { get; set; }
|
||||
[Parameter] public required int ProductId { get; set; }
|
||||
[Parameter] public required int MeasuringIndex { get; set; }
|
||||
[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; }
|
||||
|
||||
[Inject] public required IEnumerable<IAcLogWriterClientBase> LogWriters { get; set; }
|
||||
[Inject] public required FruitBankSignalRClient FruitBankSignalRClient { get; set; }
|
||||
[Inject] public required LoggedInModel LoggedInModel { get; set; }
|
||||
|
||||
public bool _btnSaveEnabled { get; set; }
|
||||
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
_btnSaveEnabled = PalletItem.IsValidMeasuringValues(IsMeasurable) && !PalletItem.IsMeasured;
|
||||
await base.OnInitializedAsync();
|
||||
}
|
||||
|
||||
|
||||
private string GetOrderItemPalletsCssClassNames(string fieldName)
|
||||
=> MeasuringService.GetCustomItemPalletsCssClassNames(fieldName, PalletItem, IsMeasurable);
|
||||
|
||||
private async Task PalletItemSaveClick()
|
||||
{
|
||||
_btnSaveEnabled = false;
|
||||
|
||||
if (AddOrUpdateSignalRTag == null) throw new Exception($"PalletItemComponent->PalletItemSaveClick(); AddOrUpdateSignalRTag == null");
|
||||
|
||||
PalletItem.ModifierId = LoggedInModel.CustomerDto?.Id;
|
||||
var responseShippingItemPallet = await FruitBankSignalRClient.PostDataAsync<TPalletItem>(AddOrUpdateSignalRTag!.Value, PalletItem);
|
||||
|
||||
if (responseShippingItemPallet != null)
|
||||
PalletItem.Id = responseShippingItemPallet.Id; //Az UpdateCollection miatt kell, hogy megtalálja mit kell kicserélni! - J.
|
||||
|
||||
if (OnPalletItemSaveClick != null) await OnPalletItemSaveClick.Invoke(responseShippingItemPallet);
|
||||
}
|
||||
|
||||
protected async Task OnItemUpdating(string fieldName, object newValue, TPalletItem palletItem)
|
||||
{
|
||||
_btnSaveEnabled = false;
|
||||
// if (SelectedOrderItem == null) return;
|
||||
|
||||
switch (fieldName)
|
||||
{
|
||||
case nameof(OrderItemPallet.PalletWeight):
|
||||
palletItem.PalletWeight = (double)newValue;
|
||||
break;
|
||||
|
||||
case nameof(OrderItemPallet.TareWeight):
|
||||
palletItem.TareWeight = (double)newValue;
|
||||
break;
|
||||
|
||||
case nameof(OrderItemPallet.TrayQuantity):
|
||||
palletItem.TrayQuantity = (int)newValue;
|
||||
break;
|
||||
|
||||
case nameof(OrderItemPallet.GrossWeight):
|
||||
palletItem.GrossWeight = (double)newValue;
|
||||
break;
|
||||
}
|
||||
|
||||
palletItem.IsMeasured = false;
|
||||
//MeasuringValuesHelper.SetShippingItemTotalMeasuringValues(SelectedShippingItem);
|
||||
//BtnSaveEnabled = SelectedShippingItem.IsValidMeasuringValues() && shippingItemPallet.IsValidMeasuringValues(SelectedShippingItem.IsMeasurable);
|
||||
|
||||
_btnSaveEnabled = palletItem.IsValidMeasuringValues(IsMeasurable) && !palletItem.IsMeasured;
|
||||
|
||||
if (OnPalletItemValueChanged != null) await OnPalletItemValueChanged.Invoke(palletItem);
|
||||
}
|
||||
}
|
||||
|
|
@ -43,6 +43,7 @@
|
|||
ValueFieldName="@nameof(Shipping.Id)"
|
||||
TextFieldName="@nameof(Shipping.LicencePlate)"
|
||||
CssClass="cw-480"
|
||||
DropDownBodyCssClass="dd-body-class"
|
||||
Context="ctxShipping"
|
||||
SelectedDataItemChanged="@((SelectedDataItemChangedEventArgs<Shipping> args) => OnSelectedShippingChanged(args))"
|
||||
InputId="cbNotMeasuredShippings">
|
||||
|
|
@ -59,6 +60,7 @@
|
|||
ValueFieldName="@nameof(ShippingDocument.Id)"
|
||||
TextFieldName="@(nameof(ShippingDocument.Partner) + '.' + nameof(Partner.Name))"
|
||||
CssClass="cw-480"
|
||||
DropDownBodyCssClass="dd-body-class"
|
||||
Context="ctxShippingDocument"
|
||||
SelectedDataItemChanged="@((SelectedDataItemChangedEventArgs<ShippingDocument> args) => OnSelectedShippingDocumentChanged(args))"
|
||||
InputId="cbShippingDocument">
|
||||
|
|
@ -75,6 +77,7 @@
|
|||
ValueFieldName="@nameof(ShippingItem.Id)"
|
||||
TextFieldName="@(nameof(ShippingItem.Name))"
|
||||
CssClass="cw-480"
|
||||
DropDownBodyCssClass="dd-body-class"
|
||||
Context="ctxShippingitem"
|
||||
SelectedDataItemChanged="@((SelectedDataItemChangedEventArgs<ShippingItem> args) => OnSelectedShippingItemChanged(args))"
|
||||
InputId="cbShippingItem">
|
||||
|
|
@ -159,12 +162,13 @@
|
|||
Enabled="@(SelectedShippingItem.IsMeasurable && SelectedShippingItem.ProductId.GetValueOrDefault(0) > 0)"
|
||||
Caption="Rakl.súly(kg)" ColSpanMd="2"/>
|
||||
|
||||
<DxFormLayoutItem ColSpanMd="1"/>
|
||||
<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)"
|
||||
|
|
@ -192,8 +196,8 @@
|
|||
<DxFormLayout CssClass="w-100">
|
||||
<DxFormLayoutItem ColSpanMd="1" BeginRow="false"><strong>TOTAL:</strong></DxFormLayoutItem>
|
||||
<DxFormLayoutItem ColSpanMd="2" BeginRow="false" />
|
||||
<DxFormLayoutItem ColSpanMd="1" 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>
|
||||
|
|
|
|||
|
|
@ -102,6 +102,9 @@ namespace FruitBankHybrid.Shared.Pages
|
|||
{
|
||||
ShippingItemId = shippingItem.Id,
|
||||
PalletWeight = shippingItem.Pallet?.Weight ?? 0,
|
||||
|
||||
CreatorId = LoggedInModel.CustomerDto?.Id,
|
||||
ModifierId = LoggedInModel.CustomerDto?.Id
|
||||
});
|
||||
|
||||
//if (shippingItem.Id == SelectedShippingItem?.Id) return;
|
||||
|
|
@ -152,7 +155,9 @@ namespace FruitBankHybrid.Shared.Pages
|
|||
{
|
||||
ShippingItemPallet? responseShippingItemPallet;
|
||||
|
||||
if (shippingItemPallet.Id == 0) responseShippingItemPallet = await FruitBankSignalRClient.AddShippingItemPallet(shippingItemPallet);
|
||||
shippingItemPallet.ModifierId = LoggedInModel.CustomerDto?.Id;
|
||||
|
||||
if (shippingItemPallet.Id <= 0) responseShippingItemPallet = await FruitBankSignalRClient.AddShippingItemPallet(shippingItemPallet);
|
||||
else responseShippingItemPallet = await FruitBankSignalRClient.UpdateShippingItemPallet(shippingItemPallet);
|
||||
|
||||
if (responseShippingItemPallet != null)
|
||||
|
|
|
|||
|
|
@ -1,14 +1,19 @@
|
|||
@page "/MeasuringOut"
|
||||
@using AyCode.Utils.Extensions
|
||||
@using FruitBank.Common
|
||||
@using FruitBank.Common.Dtos
|
||||
@using FruitBank.Common.Entities
|
||||
@using FruitBank.Common.SignalRs
|
||||
@using FruitBankHybrid.Shared.Components
|
||||
@using FruitBankHybrid.Shared.Services
|
||||
@using Nop.Core.Domain.Orders
|
||||
<h3>Kimenő mérés</h3>
|
||||
|
||||
|
||||
<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" : "")">
|
||||
<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" : "")">
|
||||
<DxDateEdit CssClass="cw-320"
|
||||
DisplayFormat="m"
|
||||
Format="m"
|
||||
|
|
@ -33,8 +38,8 @@
|
|||
</DayCellTemplate>
|
||||
</DxDateEdit>
|
||||
</DxFormLayoutItem>
|
||||
|
||||
<DxFormLayoutItem Caption="Átvétel időpontja:" ColSpanMd="2" CaptionCssClass="@(SelectedOrder?.IsMeasured == true ? "text-success" : "")">
|
||||
|
||||
<DxFormLayoutItem Caption="Átvétel időpontja:" ColSpanMd="3" CaptionCssClass="@(SelectedOrder?.IsMeasured == true ? "text-success" : "")">
|
||||
<DxComboBox Data="@SelectedDayOrders"
|
||||
@bind-Value="@SelectedOrder"
|
||||
Text="Válasszon időpontot..."
|
||||
|
|
@ -42,6 +47,7 @@
|
|||
TextFieldName="@nameof(OrderDto.DateOfReceipt)"
|
||||
CssClass="cw-480"
|
||||
Context="ctxOrder"
|
||||
DropDownBodyCssClass="dd-body-class"
|
||||
SelectedDataItemChanged="@((SelectedDataItemChangedEventArgs<OrderDto> args) => OnSelectedOrderChanged(args))"
|
||||
InputId="cbOrders">
|
||||
<ItemDisplayTemplate>
|
||||
|
|
@ -50,43 +56,22 @@
|
|||
</DxComboBox>
|
||||
</DxFormLayoutItem>
|
||||
|
||||
@*<DxFormLayoutItem Caption="Partner:" ColSpanMd="3" CaptionCssClass="@(SelectedShippingDocument?.IsAllMeasured == true ? "text-success" : "")">
|
||||
<DxComboBox Data="@SelectedShipping?.ShippingDocuments"
|
||||
@bind-Value="@SelectedShippingDocument"
|
||||
Text="Select partner"
|
||||
ValueFieldName="@nameof(ShippingDocument.Id)"
|
||||
TextFieldName="@(nameof(ShippingDocument.Partner) + '.' + nameof(Partner.Name))"
|
||||
CssClass="cw-480"
|
||||
Context="ctxShippingDocument"
|
||||
SelectedDataItemChanged="@((SelectedDataItemChangedEventArgs<ShippingDocument> args) => OnSelectedShippingDocumentChanged(args))"
|
||||
InputId="cbShippingDocument">
|
||||
<ItemDisplayTemplate>
|
||||
<span class="@(ctxShippingDocument.DataItem.IsAllMeasured ? "text-success" : "")">@ctxShippingDocument.DisplayText</span>
|
||||
</ItemDisplayTemplate>
|
||||
</DxComboBox>
|
||||
</DxFormLayoutItem>
|
||||
<DxFormLayoutItem ColSpanMd="1"></DxFormLayoutItem>
|
||||
@if (SelectedOrder != null && LoggedInModel.IsLoggedIn && LoggedInModel.CustomerRoles.Any(x => x.SystemName.ToLowerInvariant() == "measuringrevisor"))
|
||||
{
|
||||
var isCompleteOrder = SelectedOrder.OrderStatus == OrderStatus.Complete;
|
||||
|
||||
<DxFormLayoutItem Caption="Termék:" ColSpanMd="5" CaptionCssClass="@(SelectedShippingItem?.IsMeasured == true ? "text-success" : "")">
|
||||
<DxComboBox Data="@SelectedShippingDocument?.ShippingItems"
|
||||
@bind-Value="@SelectedShippingItem"
|
||||
Text="Select item"
|
||||
ValueFieldName="@nameof(ShippingItem.Id)"
|
||||
TextFieldName="@(nameof(ShippingItem.Name))"
|
||||
CssClass="cw-480"
|
||||
Context="ctxShippingitem"
|
||||
SelectedDataItemChanged="@((SelectedDataItemChangedEventArgs<ShippingItem> args) => OnSelectedShippingItemChanged(args))"
|
||||
InputId="cbShippingItem">
|
||||
<ItemDisplayTemplate>
|
||||
<span class="@(ctxShippingitem.DataItem.IsMeasured ? "text-success" : "")">@ctxShippingitem.DisplayText)</span>
|
||||
</ItemDisplayTemplate>
|
||||
</DxComboBox>
|
||||
</DxFormLayoutItem> *@
|
||||
<DxFormLayoutItem Caption="Revizor:" ColSpanMd="3" CaptionCssClass="@(isCompleteOrder ? "text-success" : "")">
|
||||
<DxButton Text="@(isCompleteOrder ? "Jóváhagyva" : "Mérés jóváhagyása")" Enabled="@(!isCompleteOrder && SelectedOrder.IsMeasured)" CssClass="w-100"
|
||||
Click="() => OnMeasuringAuditorClick()"/>
|
||||
</DxFormLayoutItem>
|
||||
}
|
||||
</DxFormLayout>
|
||||
|
||||
<div style="margin-top: 50px;">
|
||||
<DxAccordion Data="@SelectedOrder?.OrderItemDtos"
|
||||
ExpandMode="AccordionExpandMode.SingleOrNone"
|
||||
ExpandCollapseAction="AccordionExpandCollapseAction.HeaderClick"
|
||||
ExpandCollapseAction="AccordionExpandCollapseAction.ExpandButtonClick"
|
||||
AnimationType="LayoutAnimationType.Slide">
|
||||
<DataMappings>
|
||||
<DxAccordionDataMapping Text="ProductName"></DxAccordionDataMapping>
|
||||
|
|
@ -96,91 +81,81 @@
|
|||
@{
|
||||
if (context.Level == 0)
|
||||
{
|
||||
var cssClass = "text-danger";
|
||||
|
||||
var selectedOrderItemDto = (OrderItemDto)(context.DataItem);
|
||||
<h5>@(selectedOrderItemDto.ProductName) - @(selectedOrderItemDto.Quantity) rekesz</h5>
|
||||
var trayQuantity = selectedOrderItemDto.TrayQuantity; //selectedOrderItemDto.OrderItemPallets.Where(x => x.IsMeasured).Sum(x => x.TrayQuantity);
|
||||
|
||||
var isValid = selectedOrderItemDto.IsValidMeasuringValues();
|
||||
var isValidAndMeasured = isValid && selectedOrderItemDto.IsMeasuredAndValid();// && selectedOrderItemDto.;
|
||||
|
||||
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>
|
||||
}
|
||||
}
|
||||
</ItemHeaderTextTemplate>
|
||||
<ItemContentTemplate>
|
||||
@{
|
||||
if (context.Level == 0)
|
||||
{
|
||||
//var orderItemPallet = ((OrderItemPallet)(context.DataItem));
|
||||
//text = ((OrderItemPallet)(context.DataItem)).OrderItemId.ToString() + " dfgdfsg";
|
||||
//var selectedOrderItemDto = SelectedOrder!.OrderItemDtos.First(x => x.Id == orderItemPallet.OrderItemId);
|
||||
@{
|
||||
if (context.Level == 0)
|
||||
{
|
||||
//var orderItemPallet = ((OrderItemPallet)(context.DataItem));
|
||||
//text = ((OrderItemPallet)(context.DataItem)).OrderItemId.ToString() + " dfgdfsg";
|
||||
//var selectedOrderItemDto = SelectedOrder!.OrderItemDtos.First(x => x.Id == orderItemPallet.OrderItemId);
|
||||
var selectedOrderItemDto = (OrderItemDto)(context.DataItem);
|
||||
<DxFormLayout Context="ctxFormLayout" Data="@selectedOrderItemDto" CaptionPosition="CaptionPosition.Vertical" CssClass="w-100" ItemUpdating="@((pair) => OnItemUpdating(pair.Key, pair.Value))">
|
||||
<DxFormLayoutItem Context="ctxFormLayoutItem" ColSpanMd="12">
|
||||
@for (var index = 0; index < selectedOrderItemDto.OrderItemPallets!.Count; index++)
|
||||
{
|
||||
var localI = index + 1;
|
||||
var currentOrderItemPallet = selectedOrderItemDto.OrderItemPallets![index];
|
||||
<DxFormLayout Context="ctxFormLayout" Data="@selectedOrderItemDto" CaptionPosition="CaptionPosition.Vertical" CssClass="w-100" ItemUpdating="@((pair) => OnItemUpdating(pair.Key, pair.Value))">
|
||||
<DxFormLayoutItem Context="ctxFormLayoutItem" ColSpanMd="12">
|
||||
@for (var index = 0; index < selectedOrderItemDto.OrderItemPallets!.Count; index++)
|
||||
{
|
||||
var localI = index + 1;
|
||||
var currentOrderItemPallet = selectedOrderItemDto.OrderItemPallets![index];
|
||||
|
||||
<DxFormLayout Context="ctxFromLayoutPallet" Data="@currentOrderItemPallet" CaptionPosition="CaptionPosition.Vertical" CssClass="w-100 measuring-form-layout"
|
||||
ItemUpdating="@((pair) => OnItemUpdating2(pair.Key, pair.Value, currentOrderItemPallet))">
|
||||
|
||||
<DxFormLayoutItem Context="ctxFromLayoutItemPallet" ColSpanMd="1" BeginRow="true">
|
||||
<text>@(localI).mérés</text>
|
||||
</DxFormLayoutItem>
|
||||
|
||||
|
||||
<DxFormLayoutItem Context="ctxFromLayoutItemPallet" CaptionCssClass="@(GetOrderItemPalletsCssClassNames(nameof(ShippingItemPallet.PalletWeight), currentOrderItemPallet))"
|
||||
Field="@nameof(ShippingItemPallet.PalletWeight)"
|
||||
Enabled="@(selectedOrderItemDto.IsMeasurable && selectedOrderItemDto.ProductId > 0)"
|
||||
Caption="Rakl.súly(kg)" ColSpanMd="2"/>
|
||||
|
||||
<DxFormLayoutItem Context="ctxFromLayoutItemPallet" ColSpanMd="1"/>
|
||||
<DxFormLayoutItem Context="ctxFromLayoutItemPallet" CaptionCssClass="@(GetOrderItemPalletsCssClassNames(nameof(ShippingItemPallet.TareWeight), currentOrderItemPallet))"
|
||||
Field="@nameof(ShippingItemPallet.TareWeight)"
|
||||
Enabled="@(selectedOrderItemDto.IsMeasurable && selectedOrderItemDto.ProductId > 0)"
|
||||
Caption="Tára(kg)" ColSpanMd="2"/>
|
||||
|
||||
<DxFormLayoutItem Context="ctxFromLayoutItemPallet" CaptionCssClass="@(GetOrderItemPalletsCssClassNames(nameof(ShippingItemPallet.TrayQuantity), currentOrderItemPallet))"
|
||||
Field="@nameof(ShippingItemPallet.TrayQuantity)"
|
||||
Enabled="@(selectedOrderItemDto.ProductId > 0)"
|
||||
Caption="Rekesz/csomag" ColSpanMd="2"/>
|
||||
|
||||
<DxFormLayoutItem Context="ctxFromLayoutItemPallet" CaptionCssClass="@(GetOrderItemPalletsCssClassNames(nameof(ShippingItemPallet.GrossWeight), currentOrderItemPallet))"
|
||||
Field="@nameof(ShippingItemPallet.GrossWeight)"
|
||||
Enabled="@(selectedOrderItemDto.IsMeasurable && selectedOrderItemDto.ProductId > 0)"
|
||||
Caption="Br.súly(kg)" ColSpanMd="2">
|
||||
</DxFormLayoutItem>
|
||||
|
||||
<DxFormLayoutItem Context="ctxFromLayoutItemPallet" Caption="Net.súly(kg)" ColSpanMd="1" CaptionCssClass="@(GetOrderItemPalletsCssClassNames(nameof(ShippingItemPallet.NetWeight), currentOrderItemPallet))">
|
||||
<text>@(currentOrderItemPallet.NetWeight) kg.</text>
|
||||
</DxFormLayoutItem>
|
||||
|
||||
<DxFormLayoutItem Context="ctxFromLayoutItemPallet" ColSpanMd="1">
|
||||
<DxButton Text="@(currentOrderItemPallet.Id == 0 ? "Mentés" : "Módosítás")" Click="() => OnShippingItemPalletSaveClick(currentOrderItemPallet)" CssClass="w-100"/>
|
||||
</DxFormLayoutItem>
|
||||
|
||||
</DxFormLayout>
|
||||
}
|
||||
</DxFormLayoutItem>
|
||||
|
||||
<DxFormLayoutItem Context="vfdfgfd" ColSpanMd="12" BeginRow="true">
|
||||
<DxFormLayout CssClass="w-100" Context="dfcadsc">
|
||||
<DxFormLayoutItem Context="dfcadsc2" ColSpanMd="1" BeginRow="false"><strong>TOTAL:</strong></DxFormLayoutItem>
|
||||
<DxFormLayoutItem Context="dfcadsc2" ColSpanMd="2" BeginRow="false"/>
|
||||
<DxFormLayoutItem Context="dfcadsc2" ColSpanMd="1" BeginRow="false"/>
|
||||
<DxFormLayoutItem Context="dfcadsc2" ColSpanMd="2" BeginRow="false"/>
|
||||
<DxFormLayoutItem Context="dfcadsc2" ColSpanMd="2" BeginRow="false"><strong>@(selectedOrderItemDto.TrayQuantity) db</strong></DxFormLayoutItem>
|
||||
<DxFormLayoutItem Context="dfcadsc2" ColSpanMd="2" BeginRow="false"><strong>@(selectedOrderItemDto.GrossWeight) kg</strong></DxFormLayoutItem>
|
||||
<DxFormLayoutItem Context="dfcadsc2" ColSpanMd="1" BeginRow="false"><strong>@(selectedOrderItemDto.NetWeight) kg</strong></DxFormLayoutItem>
|
||||
<DxFormLayoutItem Context="dfcadsc2" ColSpanMd="1" BeginRow="false"/>
|
||||
</DxFormLayout>
|
||||
</DxFormLayoutItem>
|
||||
|
||||
@if (!_errorText.IsNullOrWhiteSpace())
|
||||
{
|
||||
<DxFormLayoutItem Context="ctxFromLayoutItemError" ColSpanMd="12" BeginRow="true">
|
||||
<text>HIBA! @_errorText</text>
|
||||
<PalletItemComponent IsMeasurable="@selectedOrderItemDto.IsMeasurable"
|
||||
MeasuringIndex="@localI"
|
||||
PalletItem="@currentOrderItemPallet"
|
||||
ProductId="@selectedOrderItemDto.ProductId"
|
||||
AddOrUpdateSignalRTag="SignalRTags.AddOrUpdateMeasuredOrderItemPallet"
|
||||
OnPalletItemSaveClick="pallet => OnShippingItemPalletSaveClick(pallet, selectedOrderItemDto)"
|
||||
OnPalletItemValueChanged="pallet => OnPalletItemValueChanged(pallet, selectedOrderItemDto)">
|
||||
</PalletItemComponent>
|
||||
}
|
||||
</DxFormLayoutItem>
|
||||
//_errorText = string.Empty;
|
||||
}
|
||||
</DxFormLayout>
|
||||
|
||||
<DxFormLayoutItem Context="ctxFromLayoutNewPallet" ColSpanMd="2" BeginRow="true">
|
||||
<DxButton Text="Új mérés" Click="() => AddNewPalletItemClick(selectedOrderItemDto)" CssClass="w-100"
|
||||
Enabled="@(selectedOrderItemDto.OrderItemPallets[^1].Id > 0)" />
|
||||
</DxFormLayoutItem>
|
||||
<DxFormLayoutItem Context="ctxFromLayoutNewPallet" ColSpanMd="2">
|
||||
<DxButton Text="Utolsó mérés törlése" Click="() => LastPalletItemDeleteClick(selectedOrderItemDto)" CssClass="w-100"
|
||||
Enabled="@(selectedOrderItemDto.OrderItemPallets.Count > 1 && selectedOrderItemDto.OrderItemPallets[^1].Id <= 0)" />
|
||||
</DxFormLayoutItem>
|
||||
<DxFormLayoutItem Context="ctxFromLayoutNewPallet" ColSpanMd="6" />
|
||||
|
||||
<DxFormLayoutItem Context="vfdfgfd" ColSpanMd="12" BeginRow="true">
|
||||
<DxFormLayout CssClass="w-100" Context="dfcadsc">
|
||||
<DxFormLayoutItem Context="dfcadsc2" ColSpanMd="1" BeginRow="false"><strong>TOTAL:</strong></DxFormLayoutItem>
|
||||
<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="2" BeginRow="false"><strong>@(selectedOrderItemDto.TrayQuantity) db</strong></DxFormLayoutItem>
|
||||
<DxFormLayoutItem Context="dfcadsc2" ColSpanMd="2" BeginRow="false"><strong>@(selectedOrderItemDto.GrossWeight) kg</strong></DxFormLayoutItem>
|
||||
<DxFormLayoutItem Context="dfcadsc2" ColSpanMd="1" BeginRow="false"><strong>@(selectedOrderItemDto.NetWeight) kg</strong></DxFormLayoutItem>
|
||||
<DxFormLayoutItem Context="dfcadsc2" ColSpanMd="1" BeginRow="false" />
|
||||
</DxFormLayout>
|
||||
</DxFormLayoutItem>
|
||||
|
||||
@if (!_errorText.IsNullOrWhiteSpace())
|
||||
{
|
||||
<DxFormLayoutItem Context="ctxFromLayoutItemError" ColSpanMd="12" BeginRow="true">
|
||||
<text>HIBA! @_errorText</text>
|
||||
</DxFormLayoutItem>
|
||||
//_errorText = string.Empty;
|
||||
}
|
||||
</DxFormLayout>
|
||||
<div style="margin-bottom: 20px;"></div>
|
||||
}
|
||||
}
|
||||
}
|
||||
</ItemContentTemplate>
|
||||
</DxAccordion>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -15,6 +15,9 @@ using System.Linq;
|
|||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using FruitBank.Common.Helpers;
|
||||
using FruitBank.Common.Interfaces;
|
||||
using AyCode.Core.Extensions;
|
||||
using Nop.Core.Domain.Orders;
|
||||
|
||||
namespace FruitBankHybrid.Shared.Pages
|
||||
{
|
||||
|
|
@ -47,27 +50,13 @@ namespace FruitBankHybrid.Shared.Pages
|
|||
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 SelectedDayOrders.SelectMany(order => order.OrderItemDtos.Where(orderItem => orderItem.OrderItemPallets.Count == 0)))
|
||||
{
|
||||
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,
|
||||
});
|
||||
|
||||
}
|
||||
orderItem.OrderItemPallets.Add(MeasuringService.CreateNewOrderItemPallet(orderItem, LoggedInModel.CustomerDto));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -90,6 +79,7 @@ namespace FruitBankHybrid.Shared.Pages
|
|||
{
|
||||
//SelectedOrderItem = eventArgs.DataItem?.OrderItemDtos?.FirstOrDefault();
|
||||
}
|
||||
|
||||
protected bool BtnSaveEnabled { get; set; }
|
||||
|
||||
protected void OnItemUpdating(string fieldName, object newValue)
|
||||
|
|
@ -125,23 +115,63 @@ namespace FruitBankHybrid.Shared.Pages
|
|||
//BtnSaveEnabled = SelectedShippingItem.IsValidMeasuringValues() && shippingItemPallet.IsValidMeasuringValues(SelectedShippingItem.IsMeasurable);
|
||||
}
|
||||
|
||||
private async Task OnShippingItemPalletSaveClick(OrderItemPallet orderItemPallet)
|
||||
private Task OnPalletItemValueChanged(OrderItemPallet? orderItemPallet, OrderItemDto selectedOrderItemDto)
|
||||
{
|
||||
//ShippingItemPallet? responseShippingItemPallet;
|
||||
StateHasChanged();
|
||||
return Task.CompletedTask;
|
||||
}
|
||||
|
||||
//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);
|
||||
//}
|
||||
private Task OnShippingItemPalletSaveClick(OrderItemPallet? orderItemPallet, OrderItemDto selectedOrderItemDto)
|
||||
{
|
||||
if (orderItemPallet != null)
|
||||
{
|
||||
selectedOrderItemDto.OrderItemPallets.UpdateCollection(orderItemPallet, false);
|
||||
//MeasuringValuesHelper.SetShippingItemTotalMeasuringValues(SelectedShippingItem);
|
||||
}
|
||||
//else LogErrorAndDisplayText($"Sikertelen volt a raklap adatainak mentése! {orderItemPallet}");
|
||||
|
||||
//StateHasChanged();
|
||||
StateHasChanged();
|
||||
return Task.CompletedTask;
|
||||
}
|
||||
|
||||
private Task AddNewPalletItemClick(OrderItemDto selectedOrderItemDto)
|
||||
{
|
||||
if (selectedOrderItemDto.OrderItemPallets[^1].Id > 0)
|
||||
{
|
||||
selectedOrderItemDto.OrderItemPallets.Add(MeasuringService.CreateNewOrderItemPallet(selectedOrderItemDto, LoggedInModel.CustomerDto));
|
||||
StateHasChanged();
|
||||
}
|
||||
|
||||
return Task.CompletedTask;
|
||||
}
|
||||
|
||||
private Task LastPalletItemDeleteClick(OrderItemDto selectedOrderItemDto)
|
||||
{
|
||||
if (selectedOrderItemDto.OrderItemPallets.Count <= 1) return Task.CompletedTask;
|
||||
|
||||
var lastPalletItem = selectedOrderItemDto.OrderItemPallets[^1];
|
||||
|
||||
if (lastPalletItem.Id > 0) return Task.CompletedTask;
|
||||
selectedOrderItemDto.OrderItemPallets.Remove(lastPalletItem);
|
||||
|
||||
StateHasChanged();
|
||||
return Task.CompletedTask;
|
||||
}
|
||||
|
||||
private async Task OnMeasuringAuditorClick()
|
||||
{
|
||||
if (SelectedOrder != null && SelectedOrder.IsMeasured && SelectedOrder.OrderStatus != OrderStatus.Complete)
|
||||
{
|
||||
var responseOrderDto = await FruitBankSignalRClient.SetOrderStatusToComplete(SelectedOrder.Id);
|
||||
if (responseOrderDto != null)
|
||||
{
|
||||
SelectedDayOrders.UpdateCollection(responseOrderDto, false);
|
||||
SelectedOrder = responseOrderDto;
|
||||
}
|
||||
|
||||
StateHasChanged();
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,4 @@
|
|||
.dd-body-class,
|
||||
.dd-body-class .dxbl-list-box-render-container {
|
||||
max-height: 600px !important;
|
||||
}
|
||||
|
|
@ -1,11 +1,19 @@
|
|||
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);
|
||||
|
||||
|
|
@ -26,7 +34,7 @@ public class MeasuringService
|
|||
return string.Empty;
|
||||
}
|
||||
|
||||
public static string GetCustomItemPalletsCssClassNames(string fieldName, MeasuringItemPalletBase shippingItemPallet, bool isMeasurable)
|
||||
public static string GetCustomItemPalletsCssClassNames(string fieldName, IMeasuringItemPalletBase shippingItemPallet, bool isMeasurable)
|
||||
{
|
||||
//if (shippingItemPallet.NetWeight < 0) return "text-danger";
|
||||
|
||||
|
|
@ -52,6 +60,20 @@ public class MeasuringService
|
|||
return string.Empty;
|
||||
}
|
||||
|
||||
public static bool IsCustomItemPalletMeasuredAndValid(MeasuringItemPalletBase customItemPallet, bool isMeasurable)
|
||||
public static OrderItemPallet CreateNewOrderItemPallet(OrderItemDto orderItemDto, CustomerDto? customerDto)
|
||||
{
|
||||
var orderItemPallet = new OrderItemPallet
|
||||
{
|
||||
OrderItemId = orderItemDto.Id,
|
||||
OrderItemDto = orderItemDto,
|
||||
|
||||
CreatorId = customerDto?.Id,
|
||||
ModifierId = customerDto?.Id
|
||||
};
|
||||
|
||||
return orderItemPallet;
|
||||
}
|
||||
|
||||
public static bool IsCustomItemPalletMeasuredAndValid(IMeasuringItemPalletBase customItemPallet, bool isMeasurable)
|
||||
=> customItemPallet.IsMeasuredAndValid(isMeasurable);
|
||||
}
|
||||
|
|
@ -77,8 +77,11 @@ namespace FruitBankHybrid.Shared.Services.SignalRs
|
|||
public Task<ShippingItemPallet?> UpdateShippingItemPallet(ShippingItemPallet shippingItemPallet)
|
||||
=> PostDataAsync(SignalRTags.UpdateShippingItemPallet, shippingItemPallet);
|
||||
|
||||
public Task<ShippingItemPallet?> AddOrUpdateMeasuredShippingItemPallet(ShippingItemPallet shippingItemPallet)
|
||||
=> PostDataAsync(SignalRTags.AddOrUpdateMeasuredShippingItemPallet, shippingItemPallet);
|
||||
|
||||
public Task<ShippingItem?> AddOrUpdateMeasuredShippingItemPallets(List<ShippingItemPallet> shippingItemPallets)
|
||||
=> PostDataAsync<List<ShippingItemPallet>, ShippingItem>(SignalRTags.UpdateShippingItemPallet, shippingItemPallets);
|
||||
=> PostDataAsync<List<ShippingItemPallet>, ShippingItem>(SignalRTags.AddOrUpdateMeasuredShippingItemPallets, shippingItemPallets);
|
||||
|
||||
#endregion ShippingItemPallet
|
||||
|
||||
|
|
@ -134,8 +137,14 @@ namespace FruitBankHybrid.Shared.Services.SignalRs
|
|||
public Task<List<OrderDto>?> GetPendingOrderDtos()
|
||||
=> GetAllAsync<List<OrderDto>>(SignalRTags.GetPendingOrderDtos);
|
||||
|
||||
public Task<List<OrderDto>?> GetAllByIds(int[] orderIds)
|
||||
=> GetAllAsync<List<OrderDto>>(SignalRTags.GetAllByIdList, [orderIds]);
|
||||
public Task<List<OrderDto>?> GetAllOrderDtoByIds(int[] orderIds)
|
||||
=> GetAllAsync<List<OrderDto>>(SignalRTags.GetAllOrderDtoByIds, [orderIds]);
|
||||
|
||||
public Task<OrderItemPallet?> AddOrUpdateMeasuredOrderItemPallet(OrderItemPallet orderItemPallet)
|
||||
=> PostDataAsync(SignalRTags.AddOrUpdateMeasuredOrderItemPallet, orderItemPallet);
|
||||
|
||||
public Task<OrderDto?> SetOrderStatusToComplete(int orderId)
|
||||
=> GetByIdAsync<OrderDto>(SignalRTags.SetOrderStatusToComplete, orderId);
|
||||
|
||||
#endregion Orders
|
||||
}
|
||||
|
|
|
|||
|
|
@ -73,3 +73,8 @@ h1:focus {
|
|||
.measuring-form-layout {
|
||||
margin-top: 15px;
|
||||
}
|
||||
|
||||
.dd-body-class,
|
||||
.dd-body-class .dxbl-list-box-render-container {
|
||||
max-height: 600px !important;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue