187 lines
5.0 KiB
C#
187 lines
5.0 KiB
C#
using GPW.CORE.Data.DbModels;
|
|
using GPW.CORE.UI.Data;
|
|
using Microsoft.AspNetCore.Components;
|
|
using Microsoft.JSInterop;
|
|
|
|
namespace GPW.CORE.UI.Components
|
|
{
|
|
public partial class TimbrEditor
|
|
{
|
|
#region Protected Fields
|
|
|
|
protected bool vetoUpd = false;
|
|
|
|
#endregion Protected Fields
|
|
|
|
#region Private Properties
|
|
|
|
[Inject]
|
|
private MessageService AppMServ { get; set; }
|
|
|
|
[Inject]
|
|
private IHttpContextAccessor httpContextAccessor { get; set; }
|
|
|
|
[Inject]
|
|
private IJSRuntime JSRuntime { get; set; }
|
|
|
|
#endregion Private Properties
|
|
|
|
#region Protected Properties
|
|
|
|
|
|
[Inject]
|
|
protected GpwDataService GDataServ { get; set; }
|
|
|
|
protected bool IsUscita { get; set; } = false;
|
|
|
|
protected List<TimbratureModel>? ListTimbAppr { get; set; }
|
|
|
|
protected List<TimbratureModel>? ListTimbRich { get; set; }
|
|
|
|
protected string txtMsgInOut
|
|
{
|
|
get => IsUscita ? "Uscita" : "Entrata";
|
|
}
|
|
|
|
#endregion Protected Properties
|
|
|
|
#region Public Properties
|
|
|
|
[Parameter]
|
|
public EventCallback<bool> CloseReq { get; set; }
|
|
|
|
[Parameter]
|
|
public DateTime DataRif { get; set; }
|
|
|
|
[Parameter]
|
|
public EventCallback<bool> ItemReset { get; set; }
|
|
|
|
[Parameter]
|
|
public EventCallback<bool> ItemUpdated { get; set; }
|
|
|
|
[Parameter]
|
|
public List<TimbratureModel> ListTimb { get; set; } = new List<TimbratureModel>();
|
|
|
|
#endregion Public Properties
|
|
|
|
#region Private Methods
|
|
|
|
private async Task ReloadData()
|
|
{
|
|
DateTime adesso = DateTime.Now;
|
|
ListTimb = (ListTimb == null) ? new List<TimbratureModel>() : ListTimb;
|
|
|
|
// prendo primo record timbrature o oggi...
|
|
if (ListTimb.Count > 0)
|
|
{
|
|
DataRif = ListTimb.FirstOrDefault().DataOra.Date.AddHours(adesso.Hour).AddMinutes(Math.Ceiling((double)adesso.Minute / 5) * 5);
|
|
}
|
|
else
|
|
{
|
|
DataRif = DateTime.Today.AddHours(adesso.Hour).AddMinutes(Math.Ceiling((double)adesso.Minute / 5) * 5);
|
|
}
|
|
await Task.Delay(1);
|
|
if (ListTimb != null)
|
|
{
|
|
ListTimbAppr = ListTimb.Where(x => x.Approv == true).OrderByDescending(x => x.DataOra).ToList();
|
|
ListTimbRich = ListTimb.Where(x => x.Approv == false).OrderByDescending(x => x.DataOra).ToList();
|
|
}
|
|
}
|
|
|
|
#endregion Private Methods
|
|
|
|
#region Protected Methods
|
|
|
|
protected async void DoAdd()
|
|
{
|
|
var remoteIp = httpContextAccessor.HttpContext.Connection?.RemoteIpAddress.ToString();
|
|
TimbratureModel currRecord = new TimbratureModel()
|
|
{
|
|
Entrata = !IsUscita,
|
|
Approv = false,
|
|
CodTipoTimb = "NoTim",
|
|
DataOra = DataRif,
|
|
IdxDipendente = AppMServ.IdxDipendente,
|
|
Ipv4 = $"{remoteIp}"
|
|
};
|
|
|
|
// aggiungo alla lista...
|
|
ListTimb.Add(currRecord);
|
|
ListTimbRich.Add(currRecord);
|
|
|
|
|
|
// aggiorno
|
|
await GDataServ.TimbratureUpdate(currRecord);
|
|
|
|
await Task.Delay(10);
|
|
|
|
await ReloadData();
|
|
}
|
|
|
|
/// <summary>
|
|
/// Indico item selezionato
|
|
/// </summary>
|
|
protected async void DoClose()
|
|
{
|
|
await CloseReq.InvokeAsync(true);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Aggiorno e riporto update
|
|
/// </summary>
|
|
protected async void DoDelete(TimbratureModel currRecord)
|
|
{
|
|
// chiedo verifica
|
|
if (!await JSRuntime.InvokeAsync<bool>("confirm", "Sicuro di voler eliminare la richiesta selezionata??"))
|
|
return;
|
|
|
|
// elimino dalla lista...
|
|
ListTimb.Remove(currRecord);
|
|
if (ListTimbAppr.Contains(currRecord))
|
|
{
|
|
ListTimbAppr.Remove(currRecord);
|
|
}
|
|
|
|
if (ListTimbRich.Contains(currRecord))
|
|
{
|
|
ListTimbRich.Remove(currRecord);
|
|
}
|
|
|
|
// aggiorno
|
|
await GDataServ.TimbratureDelete(currRecord);
|
|
|
|
await Task.Delay(10);
|
|
|
|
await ReloadData();
|
|
|
|
await ItemUpdated.InvokeAsync(true);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Aggiorno e riporto update
|
|
/// </summary>
|
|
protected async void DoUpdate(TimbratureModel currRecord)
|
|
{
|
|
// elimino da lista
|
|
ListTimb.Remove(currRecord);
|
|
|
|
// scambio
|
|
currRecord.Entrata = !currRecord.Entrata;
|
|
|
|
// aggiorno
|
|
await GDataServ.TimbratureUpdate(currRecord);
|
|
|
|
// ri-aggiungo in lista...
|
|
ListTimb.Add(currRecord);
|
|
|
|
await ReloadData();
|
|
}
|
|
|
|
protected override async Task OnInitializedAsync()
|
|
{
|
|
await ReloadData();
|
|
}
|
|
|
|
#endregion Protected Methods
|
|
}
|
|
} |