Files
mapo-core/MP.SPEC/Pages/PODL.razor.cs
T
2022-09-13 16:17:34 +02:00

260 lines
6.9 KiB
C#

using Microsoft.AspNetCore.Components;
using Microsoft.JSInterop;
using MP.SPEC.Components;
using MP.SPEC.Data;
namespace MP.SPEC.Pages
{
public partial class PODL
{
#region Protected Fields
protected DataPager pagerODL;
protected bool reqNew = false;
#endregion Protected Fields
#region Protected Properties
[Inject]
protected IJSRuntime JSRuntime { get; set; }
[Inject]
protected MpDataService MDService { get; set; }
[Inject]
protected MessageService MsgService { get; set; }
[Inject]
protected NavigationManager NavManager { get; set; }
#endregion Protected Properties
#region Protected Methods
/// <summary>
/// Crea nuovo record e va in editing...
/// </summary>
/// <returns></returns>
protected async Task addNew()
{
currRecord = new MP.Data.DatabaseModels.PODLModel()
{
CodArticolo = $"_NEW_{DateTime.Now:yyyyMMdd.HHmmss}"
};
await Task.Delay(1);
}
protected async Task cancel()
{
currRecord = null;
await reloadData();
await Task.Delay(1);
}
protected void ForceReload(int newNum)
{
numRecord = newNum;
}
protected void ForceReloadPage(int newNum)
{
currPage = newNum;
}
protected override async Task OnInitializedAsync()
{
// abilito ricerca...
MsgService.ShowSearch = true;
// resetto search
MsgService.SearchVal = "";
ListAziende = await MDService.ElencoAziende();
ListStati = await MDService.AnagStatiComm();
// carico dati
await reloadData();
}
protected async Task pgResetReq(bool doReset)
{
if (doReset)
{
await pagerODL.resetCurrPage();
}
}
/// <summary>
/// Crea nuovo record e va in editing...
/// </summary>
/// <returns></returns>
protected async Task reqNewPODL()
{
if (string.IsNullOrEmpty(currArticolo))
{
reqNew = !reqNew;
}
else
{
// aggiungo record articolo
DateTime adesso = DateTime.Now;
string codExt = $"{selStato}_{currArticolo}_{adesso:yyMMdd-HHmm}";
string codGruppo = "STEAMWARE-SIM-FASE-01";
string codMacc = "SIMUL_01";
currRecord = new MP.Data.DatabaseModels.PODLModel()
{
CodArticolo = currArticolo,
KeyBCode = codExt,
KeyRichiesta = codExt,
CodGruppo = codGruppo,
IdxMacchina = codMacc,
NumPezzi = 1
};
}
await Task.Delay(1);
}
protected async Task selRecord(MP.Data.DatabaseModels.PODLModel selRec)
{
currRecord = selRec;
await Task.Delay(1);
}
protected async Task update(MP.Data.DatabaseModels.PODLModel selRec)
{
if (!await JSRuntime.InvokeAsync<bool>("confirm", "Confermi di voler salvare le modifiche?"))
return;
await Task.Delay(1);
var done = await MDService.POdlUpdateRecord(selRec);
currRecord = null;
await reloadData();
await Task.Delay(1);
}
#endregion Protected Methods
#region Private Fields
private MP.Data.DatabaseModels.PODLModel? _currRecord = null;
private MP.Data.DatabaseModels.PODLModel? currRecord
{
get => _currRecord;
set
{
_currRecord = value;
artSearch = value == null ? "" : value.CodArticolo;
}
}
private List<MP.Data.DatabaseModels.AnagArticoli>? ListArticoli;
private List<MP.Data.DatabaseModels.AnagGruppi>? ListAziende;
private List<MP.Data.DatabaseModels.ListValues>? ListStati;
#endregion Private Fields
#region Private Properties
private string _artSearch { get; set; } = "";
private string _currAzienda { get; set; } = "*";
private bool addEnabled
{
get => selStato != "*";
}
private string artSearch
{
get => _artSearch;
set
{
if (!_artSearch.Equals(value))
{
_artSearch = value;
var pUpd = Task.Run(async () =>
{
await reloadData();
});
pUpd.Wait();
}
}
}
private string btnNewText
{
get => currArticolo == "" ? "Sel Articolo" : "Nuovo PODL";
}
private string currArticolo { get; set; } = "";
private string currAzienda
{
get => _currAzienda;
set
{
if (!_currAzienda.Equals(value))
{
_currAzienda = value;
var pUpd = Task.Run(async () =>
{
await reloadData();
//await Task.Delay(1);
//await InvokeAsync(() => StateHasChanged());
});
pUpd.Wait();
}
}
}
private int currPage
{
get => MsgService.currPage;
set => MsgService.currPage = value;
}
private bool isLoading { get; set; } = false;
private int numRecord
{
get => MsgService.numRecord;
set => MsgService.numRecord = value;
}
private string selStato
{
get => MsgService.StateSel;
set => MsgService.StateSel = value;
}
private int totalCount
{
get => MsgService.totalCount;
set => MsgService.totalCount = value;
}
#endregion Private Properties
#region Private Methods
private async Task navToODL()
{
await Task.Delay(1);
NavManager.NavigateTo("/ODL");
}
private async Task reloadData()
{
isLoading = true;
await Task.Delay(1);
if (currAzienda != "*")
{
ListArticoli = await MDService.ArticoliGetSearch(100, currAzienda, artSearch);
}
else
{
ListArticoli = new List<MP.Data.DatabaseModels.AnagArticoli>();
}
isLoading = false;
}
#endregion Private Methods
}
}