Files
lux/Lux.UI/Components/Compo/Offer/OfferDelivery.razor.cs
T
2026-03-24 16:29:23 +01:00

94 lines
2.5 KiB
C#

using EgwCoreLib.Lux.Core;
using EgwCoreLib.Lux.Data.DbModel.Sales;
using Microsoft.AspNetCore.Components;
namespace Lux.UI.Components.Compo.Offer
{
public partial class OfferDelivery
{
#region Public Properties
[Parameter]
public OfferModel CurrRecord { get; set; } = null!;
[Parameter]
public EventCallback<bool> EC_Cancel { get; set; }
[Parameter]
public EventCallback<OfferModel> EC_Updated { get; set; }
#endregion Public Properties
#region Protected Methods
/// <summary>
/// Chiamato automaticamente all'inizializzazione del componente.
/// </summary>
protected override Task OnInitializedAsync()
{
setOriginal();
return base.OnInitializedAsync();
}
protected override void OnParametersSet()
{
setOriginal();
}
#endregion Protected Methods
#region Private Fields
private bool isLoading = false;
private OfferModel? OrigRecord = null;
#endregion Private Fields
#region Private Methods
private Task DoCancel()
{
return EC_Cancel.InvokeAsync(true);
}
private Task DoSave()
{
// richiesta update con salvataggio record
return EC_Updated.InvokeAsync(CurrRecord);
}
private bool HasChanged()
{
bool answ = false;
if (OrigRecord != null && CurrRecord != null)
{
if (IsChanged(OrigRecord.DueDateReq, CurrRecord.DueDateReq))
return true;
if (IsChanged(OrigRecord.DueDateProm, CurrRecord.DueDateProm))
return true;
if (IsChanged(OrigRecord.ConsNote, CurrRecord.ConsNote))
return true;
}
return answ;
}
/// <summary>
/// Verifica variazione tramite helper
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="original"></param>
/// <param name="edited"></param>
/// <returns></returns>
private bool IsChanged<T>(T original, T edited) => CloneExtensions.IsChanged(original, edited);
private void setOriginal()
{
if (CurrRecord != null && OrigRecord == null)
{
OrigRecord = CurrRecord.DeepClone();
}
}
#endregion Private Methods
}
}