From 0a9ccffe287fb51eb81b8a97a8da6a34516bbb21 Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Tue, 18 Oct 2022 09:26:04 +0200 Subject: [PATCH] Fix ODL/PODL x setup ed avvio --- MP.Data/Controllers/MpSpecController.cs | 107 +++++++++++++++++------- MP.SPEC/Components/ListODL.razor.cs | 3 + MP.SPEC/Components/ListPODL.razor.cs | 27 ++++-- MP.SPEC/Data/MpDataService.cs | 26 +++++- MP.SPEC/MP.SPEC.csproj | 2 +- MP.SPEC/Resources/ChangeLog.html | 2 +- MP.SPEC/Resources/VersNum.txt | 2 +- MP.SPEC/Resources/manifest.xml | 2 +- 8 files changed, 127 insertions(+), 44 deletions(-) diff --git a/MP.Data/Controllers/MpSpecController.cs b/MP.Data/Controllers/MpSpecController.cs index 2e9cd40a..ead7a188 100644 --- a/MP.Data/Controllers/MpSpecController.cs +++ b/MP.Data/Controllers/MpSpecController.cs @@ -741,6 +741,47 @@ namespace MP.Data.Controllers return dbResult; } + /// + /// Recupero Odl CORRENTE x macchina (SE c'รจ) + /// + /// + /// + public ODLModel OdlGetCurrentByMacc(string idxMacchina) + { + ODLModel dbResult = new ODLModel(); + + using (var dbCtx = new MoonProContext(_configuration)) + { + dbResult = dbCtx + .DbSetODL + .FirstOrDefault(x => x.IdxMacchina == idxMacchina && x.DataInizio != null && x.DataFine == null); + } + return dbResult; + } + + /// + /// Statistiche ODL calcolate (da stored stp_STAT_ODL) + /// + /// + public async Task> OdlStart(int IdxOdl) + { + List dbResult = new List(); + if (IdxOdl > 0) + { + using (var dbCtx = new MoonProContext(_configuration)) + { + var IdxODL = new SqlParameter("@IdxODL", IdxOdl); + + dbResult = await dbCtx + .DbSetStatOdl + .FromSqlRaw("EXEC stp_STAT_ODL @IdxODL", IdxODL) + .AsNoTracking() + .ToListAsync(); + } + } + return dbResult; + } + /// /// Elenco parametri validi x una data macchina /// @@ -762,6 +803,33 @@ namespace MP.Data.Controllers return dbResult; } + /// + /// Recupero PODL da chiave + /// + /// + /// + public async Task PODL_getByKey(int idxPODL) + { + PODLModel dbResult = new PODLModel(); + using (var dbCtx = new MoonProContext(_configuration)) + { + try + { + dbResult = dbCtx + .DbSetPODL + .AsNoTracking() + .Where(x => x.IdxPromessa == idxPODL) + .FirstOrDefault(); + } + catch (Exception exc) + { + Log.Error($"Eccezione durante PODL_getByKey{Environment.NewLine}{exc}"); + } + } + await Task.Delay(1); + return dbResult; + } + /// /// Avvio setup ODL da PODL /// @@ -771,17 +839,19 @@ namespace MP.Data.Controllers /// /// /// - public async Task PODL_startSetup(PODLModel editRec, int matrOpr, double tcRich, int pzPallet, string note) + public async Task PODL_startSetup(PODLModel editRec, int matrOpr, double tcRich, int pzPallet, string note) { - ODLModel dbResult = new ODLModel(); + bool answ = false; using (var dbCtx = new MoonProContext(_configuration)) { try { var currRec = dbCtx .DbSetPODL + .AsNoTracking() .Where(x => x.IdxPromessa == editRec.IdxPromessa) .FirstOrDefault(); + if (currRec != null) { // eseguo stored attrezzaggio @@ -793,13 +863,9 @@ namespace MP.Data.Controllers var Note = new SqlParameter("@Note", note); var callResult = await dbCtx .Database - .ExecuteSqlRawAsync("EXEC stp_ODL_inizioSetupPromessa @idxPromessa, @MatrOpr, @IdxMacchina @TCRichAttr, @PzPallet, @Note", IdxPromessa, MatrOpr, IdxMacchina, TCRichAttr, PzPallet, Note); + .ExecuteSqlRawAsync("EXEC stp_ODL_inizioSetupPromessa @idxPromessa, @MatrOpr, @IdxMacchina, @TCRichAttr, @PzPallet, @Note", IdxPromessa, MatrOpr, IdxMacchina, TCRichAttr, PzPallet, Note); - // recupero info su ODL corrente - dbResult = await dbCtx - .DbSetODL - .Where(x => x.IdxMacchina == editRec.IdxMacchina && x.DataInizio != null && x.DataFine == null) - .FirstOrDefaultAsync(); + answ = true; } } catch (Exception exc) @@ -808,7 +874,7 @@ namespace MP.Data.Controllers } } await Task.Delay(1); - return dbResult; + return answ; } /// @@ -911,29 +977,6 @@ namespace MP.Data.Controllers return answ; } - /// - /// Statistiche ODL calcolate (da stored stp_STAT_ODL) - /// - /// - public async Task> StatOdl(int IdxOdl) - { - List dbResult = new List(); - if (IdxOdl > 0) - { - using (var dbCtx = new MoonProContext(_configuration)) - { - var IdxODL = new SqlParameter("@IdxODL", IdxOdl); - - dbResult = await dbCtx - .DbSetStatOdl - .FromSqlRaw("EXEC stp_STAT_ODL @IdxODL", IdxODL) - .AsNoTracking() - .ToListAsync(); - } - } - return dbResult; - } - /// /// Stato prod macchina /// diff --git a/MP.SPEC/Components/ListODL.razor.cs b/MP.SPEC/Components/ListODL.razor.cs index 4be64bc9..06ca8848 100644 --- a/MP.SPEC/Components/ListODL.razor.cs +++ b/MP.SPEC/Components/ListODL.razor.cs @@ -90,6 +90,9 @@ namespace MP.SPEC.Components /// protected async Task chiudiOdl() { + if (!await JSRuntime.InvokeAsync("confirm", "Sei sicuro di voler chiudere l'ODL corrente?")) + return; + if (currRecord != null) { // effettua chiusura sul DB diff --git a/MP.SPEC/Components/ListPODL.razor.cs b/MP.SPEC/Components/ListPODL.razor.cs index c6c46400..ad5575e3 100644 --- a/MP.SPEC/Components/ListPODL.razor.cs +++ b/MP.SPEC/Components/ListPODL.razor.cs @@ -144,6 +144,9 @@ namespace MP.SPEC.Components protected async Task startOdl(PODLModel selRec) { + if (!await JSRuntime.InvokeAsync("confirm", "Sei sicuro di voler avviare PODL selezionato?")) + return; + if (selRec != null) { int idxEvento = 0; @@ -154,9 +157,12 @@ namespace MP.SPEC.Components await callStartSetup(selRec.IdxMacchina); await Task.Delay(1); // chiamo stored stp_ODL_inizioSetupPromessa e recupero ODL corrente - var newOdl = await MDService.POdlDoSetup(selRec); - if (newOdl != null) + bool fatto = await MDService.POdlDoSetup(selRec); + if (fatto) { + var currPOdl = await MDService.PODL_getByKey(selRec.IdxPromessa); + var newOdl = await MDService.OdlGetByKey(currPOdl.IdxOdl); + // registro evento... idxEvento = 2; evMess = $"Inizio Setup | PODL {selRec.IdxPromessa}"; @@ -244,7 +250,13 @@ namespace MP.SPEC.Components { // compongo URL e chiamo string restUrl = $"IOB/addTask2Exe/{idxMacc}?taskName={taskName}&taskVal={taskVal}"; - var response = await MpIoApiCall.callMpIoUrlGet(restUrl); + try + { + var response = await MpIoApiCall.callMpIoUrlGet(restUrl); + } + catch(Exception exc) + { + } } /// @@ -292,8 +304,8 @@ namespace MP.SPEC.Components /// private bool canStartOdl(string idxMacchina) { - // fare!!! - bool answ = idxMacchina.Contains("BAG"); + var currOdl = MDService.OdlGetCurrentByMacc(idxMacchina); + bool answ = currOdl == null; return answ; } @@ -326,7 +338,10 @@ namespace MP.SPEC.Components if (string.IsNullOrEmpty(codArticolo)) { var currOdl = await MDService.OdlGetByKey(idxODL); - codArticolo = currOdl.CodArticolo; + if (currOdl != null) + { + codArticolo = currOdl.CodArticolo; + } } // scrivo evento scriviRigaEventoBarcode diff --git a/MP.SPEC/Data/MpDataService.cs b/MP.SPEC/Data/MpDataService.cs index 75c9ce78..2dd41035 100644 --- a/MP.SPEC/Data/MpDataService.cs +++ b/MP.SPEC/Data/MpDataService.cs @@ -664,6 +664,18 @@ namespace MP.SPEC.Data return dbResult; } + /// + /// ODL corrente x macchina + /// + /// + /// + public ODLModel OdlGetCurrentByMacc(string idxMacchina) + { + // cache REDIS... + var dbResult = dbController.OdlGetCurrentByMacc(idxMacchina); + return dbResult; + } + /// /// Elenco di tutti i parametri filtrati x macchina /// @@ -700,6 +712,16 @@ namespace MP.SPEC.Data return result; } + /// + /// Recupero PODL da chiave + /// + /// + /// + public async Task PODL_getByKey(int idxPODL) + { + return await dbController.PODL_getByKey(idxPODL); + } + /// /// Eliminazione record selezionato /// @@ -715,7 +737,7 @@ namespace MP.SPEC.Data /// /// /// - public async Task POdlDoSetup(PODLModel currRec) + public async Task POdlDoSetup(PODLModel currRec) { return await dbController.PODL_startSetup(currRec, 0, 1, 1, ""); } @@ -736,7 +758,7 @@ namespace MP.SPEC.Data /// public Task> StatOdl(int IdxOdl) { - return dbController.StatOdl(IdxOdl); + return dbController.OdlStart(IdxOdl); } public async Task updateDossierValue(Dossiers currDoss, FluxLogDTO editFL) diff --git a/MP.SPEC/MP.SPEC.csproj b/MP.SPEC/MP.SPEC.csproj index dff9d1e3..88ad3e02 100644 --- a/MP.SPEC/MP.SPEC.csproj +++ b/MP.SPEC/MP.SPEC.csproj @@ -5,7 +5,7 @@ enable enable MP.SPEC - 6.16.2210.1808 + 6.16.2210.1809 diff --git a/MP.SPEC/Resources/ChangeLog.html b/MP.SPEC/Resources/ChangeLog.html index 6223fb6c..34cb2d33 100644 --- a/MP.SPEC/Resources/ChangeLog.html +++ b/MP.SPEC/Resources/ChangeLog.html @@ -1,6 +1,6 @@ Modulo MAPOSPEC -

Versione: 6.16.2210.1808

+

Versione: 6.16.2210.1809


Note di rilascio:
  • diff --git a/MP.SPEC/Resources/VersNum.txt b/MP.SPEC/Resources/VersNum.txt index 96c69795..9140f6db 100644 --- a/MP.SPEC/Resources/VersNum.txt +++ b/MP.SPEC/Resources/VersNum.txt @@ -1 +1 @@ -6.16.2210.1808 +6.16.2210.1809 diff --git a/MP.SPEC/Resources/manifest.xml b/MP.SPEC/Resources/manifest.xml index c877fcf2..e152c102 100644 --- a/MP.SPEC/Resources/manifest.xml +++ b/MP.SPEC/Resources/manifest.xml @@ -1,6 +1,6 @@ - 6.16.2210.1808 + 6.16.2210.1809 https://nexus.steamware.net/repository/SWS/MP-SPEC/stable/LAST/MP.SPEC.zip https://nexus.steamware.net/repository/SWS/MP-SPEC/stable/LAST/ChangeLog.html false