using Microsoft.AspNetCore.Components; using MP.Data.DbModels; using MP.SPEC.Data; using System.Reflection.PortableExecutable; namespace MP.SPEC.Components.ProdKit { public partial class Manager { #region Public Properties [Parameter] public SelectXdlParams ActFilt { get; set; } = new SelectXdlParams(); [Parameter] public bool DoAddNew { get; set; } = false; #endregion Public Properties #region Protected Properties [Inject] protected MpDataService MDService { get; set; } = null!; #endregion Protected Properties #region Protected Methods protected override void OnInitialized() { isLoading = false; if (string.IsNullOrEmpty(padCodXdl)) { padCodXdl = MDService.ConfigTryGet("padCodXdl"); } currPodlRec = null; // Verifico chiave Kit o la rigenero if (string.IsNullOrEmpty(keyFilt)) { DateTime adesso = DateTime.Now; keyFilt = $"KIT_{adesso:yyMMdd}_{adesso:HHmmss}"; } DateTime oggi = DateTime.Today; ActFilt = new SelectXdlParams() { DtEnd = oggi.AddDays(1), DtStart = oggi.AddYears(-1), HasOdl = false, MaxRecord = 1000, NumRec = 5 }; ReloadData(); } /// /// Salvataggio su Tab WIP dei dati del PODL ricevuto... /// /// protected void SavePodl(PODLExpModel selRec) { if (currPodlRec == null || currPodlRec.IdxPromessa != selRec.IdxPromessa) { if (selRec != null) { // chiamo tentativo update! WipSetupKitModel newRec = new WipSetupKitModel() { KeyFilt = keyFilt, CodArt = selRec.CodArticolo, CodOrd = selRec.KeyRichiesta, IdxPODL = selRec.IdxPromessa, DescArt = selRec.DescArticolo, Qta = selRec.NumPezzi, DataIns = DateTime.Now }; bool fatto = MDService.WipKitUpsert(newRec); } currPodlRec = selRec; // rileggoi ReloadData(); } } #endregion Protected Methods #region Private Fields private string codArtKit = ""; /// /// Record PODL corrente da inserire /// private PODLExpModel? currPodlRec = null; private bool isLoading = false; private string keyFilt = ""; private List listIKP = new List(); private List listPOdlAct = new List(); private List listPOdlCheck = new List(); private List listTSM = new List(); private List listWSM = new List(); private string padCodXdl = "00000"; #endregion Private Fields #region Private Properties private string KPColClass { get => DoAddNew ? "col-6" : "col-12"; } #endregion Private Properties #region Private Methods private void ForceReloadData(bool doReload) { isLoading = true; listWSM = new List(); // se richiesto resetto KIT... if (doReload) { DateTime adesso = DateTime.Now; keyFilt = $"KIT_{adesso:yyMMdd}_{adesso:HHmmss}"; } ReloadData(); } private void ReloadData() { listPOdlCheck = new List(); listPOdlAct = MDService.POdlListGetFilt(ActFilt.HasOdl, ActFilt.CodFase, ActFilt.IdxMacchina, ActFilt.CodReparto, ActFilt.DtStart, ActFilt.DtEnd); listWSM = MDService.WipKitFilt(keyFilt); listTSM = MDService.TksScore(keyFilt, 1000, true); listIKP = MDService.IstKitFilt("", ""); // verifico se ho score 100%... var recMaxScore = listTSM .Where(x => x.TotalScore == 1) .OrderByDescending(x => x.TotalScore) .FirstOrDefault(); codArtKit = recMaxScore != null ? recMaxScore.CodArtParent : ""; // continuo con PODL if (!string.IsNullOrEmpty(codArtKit)) { listPOdlCheck = MDService.ListPODL_ByCodArt(codArtKit, true); } isLoading = false; } #endregion Private Methods } }