diff --git a/FruitBankHybrid.Shared/Pages/MeasuringIn.razor b/FruitBankHybrid.Shared/Pages/MeasuringIn.razor
index a523bff..9421a2c 100644
--- a/FruitBankHybrid.Shared/Pages/MeasuringIn.razor
+++ b/FruitBankHybrid.Shared/Pages/MeasuringIn.razor
@@ -1,4 +1,5 @@
@page "/MeasuringIn"
+@using AyCode.Utils.Extensions
@using DevExpress.Blazor
@using DevExpress.Blazor.Internal
@using FruitBank.Common.Entities
@@ -9,50 +10,78 @@
-
- Összes szállítmány listázása
+
+
+
+ @{
+ var cssClass = GetCssClassNames(ctxShippingDate);
+ if (!cssClass.IsNullOrWhiteSpace())
+ {
+ @ctxShippingDate.Day.ToString()
+ }
+ else
+ {
+ @ctxShippingDate.Day.ToString()
+ }
+ }
+
+
+
-
+
-
-
-
- @($"{ctxCombo.DataItem.ShippingDate} [{ctxCombo.DataItem.LicencePlate}]")
- @* @(string.Join("; ", context.DataItem?.ShippingDocuments?.Select(x => x.Partner?.Name ?? string.Empty))) *@
-
-
+ @bind-Value="@SelectedShipping"
+ Text="Select licence plate"
+ ValueFieldName="@nameof(Shipping.Id)"
+ TextFieldName="@nameof(Shipping.LicencePlate)"
+ CssClass="cw-480"
+ Context="ctxShipping"
+ SelectedDataItemChanged="@((SelectedDataItemChangedEventArgs args) => OnSelectedShippingChanged(args))"
+ InputId="cbNotMeasuredShippings">
+
+ @ctxShipping.DisplayText
-
+
+ InputId="cbShippingDocument">
+
+ @ctxShippingDocument.DisplayText
+
+
-
+
+ InputId="cbShippingItem">
+
+ @ctxShippingitem.DisplayText)
+
+
@@ -61,23 +90,23 @@
@if (SelectedShippingItem != null)
{
-
+ OnValidSubmit="@HandleValidSubmit"
+ OnInvalidSubmit="@HandleInvalidSubmit">
+
-
-
-
-
-
+
+
+
+
+
-
+
-
+
-
+
diff --git a/FruitBankHybrid.Shared/Pages/MeasuringIn.razor.cs b/FruitBankHybrid.Shared/Pages/MeasuringIn.razor.cs
index 25e7054..42c349f 100644
--- a/FruitBankHybrid.Shared/Pages/MeasuringIn.razor.cs
+++ b/FruitBankHybrid.Shared/Pages/MeasuringIn.razor.cs
@@ -17,6 +17,7 @@ using System.Linq;
using System.Security.Cryptography.X509Certificates;
using System.Text;
using System.Threading.Tasks;
+using DevExpress.Data.Mask.Internal;
using Microsoft.AspNetCore.Components.Forms;
using static System.Net.Mime.MediaTypeNames;
using static System.Runtime.InteropServices.JavaScript.JSType;
@@ -24,6 +25,17 @@ using ILogger = FruitBank.Common.Loggers.ILogger;
namespace FruitBankHybrid.Shared.Pages
{
+ public class ShippingDateModel
+ {
+ public DateTime DateTime { get; set; }
+ public bool IsMeasured { get; set; }
+
+ public ShippingDateModel(DateTime dateTime, bool isMeasured)
+ {
+ DateTime = dateTime;
+ IsMeasured = isMeasured;
+ }
+ }
public partial class MeasuringIn : ComponentBase
{
[Inject] public required IEnumerable LogWriters { get; set; }
@@ -36,8 +48,10 @@ namespace FruitBankHybrid.Shared.Pages
private ShippingDocument? SelectedShippingDocument { get; set; }
private ShippingItem? SelectedShippingItem { get; set; }
+ DateTime DateTimeValue { get; set; } = DateTime.Today;
protected bool BtnSaveEnabled { get; set; }
- protected bool ChkAllShipping { get; set; }
+
+ private List _shippingDates = null!;
private string _userName = "Partner name";
private string _message = string.Empty;
@@ -48,24 +62,47 @@ namespace FruitBankHybrid.Shared.Pages
_logger = new LoggerClient(LogWriters.ToArray());
_logger.Info("OnInitializedAsync");
- await RefreshShippingsFromDb(ChkAllShipping);
+ await RefreshShippingsFromDb(DateTime.Now);
await base.OnInitializedAsync();
}
- private async Task RefreshShippingsFromDb(bool getAllShipping)
+ private async Task RefreshShippingsFromDb(DateTime dateTime)
{
- if (getAllShipping) NotMeasuredShippings = await FruitBankSignalRClient.GetShippings() ?? [];
- else NotMeasuredShippings = await FruitBankSignalRClient.GetNotMeasuredShippings() ?? [];
+ var shippings = await FruitBankSignalRClient.GetShippings() ?? [];
+
+ _shippingDates = shippings.Select(x => new ShippingDateModel(x.ShippingDate.Date, x.IsAllMeasured)).ToList();
+ NotMeasuredShippings = shippings.Where(x => DaysEqual(x.ShippingDate.Date, dateTime)).ToList();
+
+ //if (getAllShipping) NotMeasuredShippings = await FruitBankSignalRClient.GetShippings() ?? [];
+ //else NotMeasuredShippings = await FruitBankSignalRClient.GetNotMeasuredShippings() ?? [];
SelectedShipping = NotMeasuredShippings.FirstOrDefault();
}
- private async Task OnChkAllShippingChanged(bool value)
+ private async Task OnSelectedShippingDateChanged(DateTime selectedDateTime)
+ => await RefreshShippingsFromDb(selectedDateTime);
+
+
+ private void OnCustomDisabledDate(CalendarCustomDisabledDateEventArgs args)
+ => args.IsDisabled = !_shippingDates.Exists(shippingDateModel => DaysEqual(shippingDateModel.DateTime, args.Date));
+
+ private string GetCssClassNames(DateTime date)
{
- ChkAllShipping = value;
- await RefreshShippingsFromDb(ChkAllShipping);
+ if (_shippingDates.Exists(shipping => !shipping.IsMeasured && shipping.DateTime.Date <= DateTime.Now.Date && DaysEqual(shipping.DateTime, date)))
+ return "fw-bold text-danger";
+
+ if (_shippingDates.Exists(shipping => shipping.IsMeasured && DaysEqual(shipping.DateTime, date)))
+ return "fw-bold text-success";
+
+ if (_shippingDates.Exists(shipping => !shipping.IsMeasured && DaysEqual(shipping.DateTime, date)))
+ return "fw-bold";
+
+ return string.Empty;
}
+ private static bool DaysEqual(DateTime date1, DateTime date2)
+ => (date1.Year == date2.Year && date1.DayOfYear == date2.DayOfYear);
+
private void OnSelectedShippingChanged(SelectedDataItemChangedEventArgs eventArgs)
{
SelectedShippingDocument = eventArgs.DataItem?.ShippingDocuments?.FirstOrDefault();
@@ -102,11 +139,11 @@ namespace FruitBankHybrid.Shared.Pages
SelectedShippingItem.MeasuredGrossWeight = shippingItemFromDb.MeasuredGrossWeight;
SelectedShippingItem.IsMeasured = shippingItemFromDb.IsMeasured;
- if (SelectedShippingItem is { IsMeasured: true })
- {
- SelectedShippingDocument?.ShippingItems?.Remove(SelectedShippingItem);
- SelectedShippingItem = SelectedShippingDocument?.ShippingItems?.FirstOrDefault();
- }
+ //if (SelectedShippingItem is { IsMeasured: true })
+ //{
+ // SelectedShippingDocument?.ShippingItems?.Remove(SelectedShippingItem);
+ // SelectedShippingItem = SelectedShippingDocument?.ShippingItems?.FirstOrDefault();
+ //}
StateHasChanged();
}