From e61a51264726eaaf5172e04590287a7892b6ecab Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Thu, 9 Nov 2023 10:03:06 +0100 Subject: [PATCH] Update gestione refresh ODL --- MP-TAB-SERV/Components/OdlMan.razor | 153 +++++----- MP-TAB-SERV/Components/OdlMan.razor.cs | 373 +++++++++++++++---------- MP-TAB-SERV/MP-TAB-SERV.csproj | 2 +- MP-TAB-SERV/Resources/ChangeLog.html | 2 +- MP-TAB-SERV/Resources/VersNum.txt | 2 +- MP-TAB-SERV/Resources/manifest.xml | 2 +- MP.Data/Services/TabDataService.cs | 10 + 7 files changed, 318 insertions(+), 226 deletions(-) diff --git a/MP-TAB-SERV/Components/OdlMan.razor b/MP-TAB-SERV/Components/OdlMan.razor index 94f78ec3..bb2743f1 100644 --- a/MP-TAB-SERV/Components/OdlMan.razor +++ b/MP-TAB-SERV/Components/OdlMan.razor @@ -38,12 +38,27 @@ } - @if (showOdlDetail) + @if (!inAttr && !showOdlDetail) + { +
+ +
+ } + + @if (showOdlDetail || inAttr) {
-
-

Verifica parametri attrezzaggio

+
+
+

@titleOdlDetail

+
+
+ @if (idxPOdlSel == 0) + { + + } +
@@ -136,34 +151,36 @@
} -
-
- - -
- - + @if (!inAttr) + { +
+
+ + +
+ + +
-
-
- @if (idxPOdlSel > 0) - { - - } - else - { - - } -
- @if (idxPOdlSel > 0) +
+ @if (idxPOdlSel > 0) + { + + } + else + { + } +
+ } + @if (idxPOdlSel > 0 || inAttr) {
@@ -185,53 +202,43 @@
} - -
-
-
- -
-
- -
+ @if (inAttr) + { +
+ +
+ } +
+ +
+
+
+ +
-
-
-
- -
-
-
- - -
-
-
+
+
-
-
-
- -
-
- - @*
-
-
-
-
- <%: lblCreaOdl %> -
-
-
-
- -
-
-
*@ -
-
+
+ +
+
+ + @*
+
+
+
+
+ <%: lblCreaOdl %> +
+
+
+
+ +
+
+
*@
@lblOut diff --git a/MP-TAB-SERV/Components/OdlMan.razor.cs b/MP-TAB-SERV/Components/OdlMan.razor.cs index c5b1ff62..b2f03b15 100644 --- a/MP-TAB-SERV/Components/OdlMan.razor.cs +++ b/MP-TAB-SERV/Components/OdlMan.razor.cs @@ -1,12 +1,11 @@ using global::Microsoft.AspNetCore.Components; +using Microsoft.JSInterop; using MP.Data; using MP.Data.DatabaseModels; using MP.Data.Objects; using MP.Data.Services; -using MP_TAB_SERV.Shared; using NLog; using System.Text; -using System.Threading.Tasks; using static MP.Data.Objects.Enums; namespace MP_TAB_SERV.Components @@ -80,6 +79,9 @@ namespace MP_TAB_SERV.Components } } + [Inject] + protected IJSRuntime JSRuntime { get; set; } = null!; + protected List ListODL { get; set; } = new List(); [Inject] @@ -91,6 +93,9 @@ namespace MP_TAB_SERV.Components [Inject] protected MessageService MServ { get; set; } = null!; + [Inject] + protected NavigationManager NavMan { get; set; } = null!; + /// /// Verifica ODL OK (ovvero caricato x macchina...) /// @@ -126,6 +131,32 @@ namespace MP_TAB_SERV.Components #region Protected Methods + /// + /// Gestione display avanzamento step + /// + /// + protected async Task advStep(int currStep) + { + currVal = currStep; + nextVal = currVal + 1; + await InvokeAsync(StateHasChanged); + } + + protected async Task CheckAttr() + { + // verifico attrezzaggio su macchina corrente o se multi su parent + string idxMacc2check = isMulti ? IdxMaccParent : IdxMaccSel; + StatoMacchineModel rigaStato = TabDServ.StatoMacchina(idxMacc2check); + //calcolo stato attrezzaggio, hard coded!!! + inAttr = (rigaStato.IdxStato == 2); + // se in attr --> carico podlCurr... + if (inAttr && RecMSE != null) + { + int currIdxPOdl = RecMSE != null ? RecMSE.IdxPOdl ?? 0 : 0; + currPodl = await TabDServ.PODLExp_getByKey(currIdxPOdl); + } + } + /// /// Aggiorno... /// @@ -158,129 +189,6 @@ namespace MP_TAB_SERV.Components return answ; } - /// - /// Gestione display avanzamento step - /// - /// - protected void advStep(int currStep) - { - currVal = currStep; - nextVal = currVal + 1; - } - [Inject] - protected NavigationManager NavMan { get; set; } = null!; - - protected async Task ProdEnd() - { - // preparo gestione progress display - MaxVal = 6; - int currStep = 0; - advStep(currStep); - isProcessing = true; - // leggo idxOdl da ultimo odl attivo x macchina - var currOdl = await TabDServ.OdlCurrByMacc(IdxMaccSel, false); - int idxODLCurr = currOdl.IdxOdl; - int idxEvento = 7; // !!!HARD CODED - // confermo prod vecchio ODL - await confermaProdOdl(false); - advStep(currStep++); - - // se chk flaggato ovvero richiesta di chiudere ODL procedo come prima (chiudendo ODL senza averne altri...) - if (forceCloseOdl) - { - // aggiungo try/catch x capire se sia qui che si "impasta" in chiusura ODL - try - { - // processo x macchina selezionata - await TabDServ.OdlFineProd(idxODLCurr, IdxMaccSel); - string evText = "Registrata fine produzione per ODL {0}"; - StringBuilder sb = new StringBuilder(); - sb.AppendLine(String.Format(evText, idxODLCurr)); - await processaEvento(IdxMaccSel, idxEvento, sb.ToString(), idxODLCurr); - advStep(currStep++); - // se è multi processo ANCHE x altra tavola... - if (isMulti) - { - sb.AppendLine("---"); - var tabOdlAltra = await TabDServ.OdlCurrByMacc(idxMaccAltraTav, true); - int idxOdlAltra = tabOdlAltra.IdxOdl; - await TabDServ.OdlFineProd(idxOdlAltra, idxMaccAltraTav); - sb.AppendLine(String.Format(evText, idxOdlAltra)); - await processaEvento(idxMaccAltraTav, idxEvento, String.Format(evText, idxOdlAltra), idxOdlAltra); - } - advStep(currStep++); - // se è master --> chiamo update child! - if (isMaster) - { - // hard coded 60gg last - await TabDServ.OdlFixMachineSlave(IdxMaccSel, 60, 1); - } - advStep(currStep++); - // riporto stringa - lblOut = sb.ToString().Replace("---", "
"); - } - catch (Exception exc) - { - Log.Error($"Eccezione in operazione chiusura ODL!{Environment.NewLine}{exc}"); - // navigo! - NavMan.NavigateTo($"machine-detail"); - } - } - // altrimenti split ODL x completare IN FUTURO la produzione... - else - { - try - { - // effettuo split su nuovo ODL - await TabDServ.OdlSplit(idxODLCurr, MatrOpr, IdxMaccSel, currOdl.Tcassegnato, PzPallet, $"Fine Produzione, Sospensione ODL {idxODLCurr}, generato residuo con pari TCiclo: {currOdl.Tcassegnato}", false, 0); - // processo chiusura setup - await processaEvento(IdxMaccSel, idxEvento, $"Registrata fine produzione per ODL {idxODLCurr}, nuovo ODL per quantità residua", idxODLCurr); - - advStep(currStep++); - // se è multi processo ANCHE x altra tavola... - if (isMulti) - { - var tabOdlAltra = await TabDServ.OdlCurrByMacc(idxMaccAltraTav, true); - int idxOdlAltra = tabOdlAltra.IdxOdl; - // effettuo split su nuovo ODL - await TabDServ.OdlSplit(idxOdlAltra, MatrOpr, idxMaccAltraTav, tabOdlAltra.Tcassegnato, PzPallet, $"Fine Produzione, Sospensione ODL {idxOdlAltra}, generato residuo con pari TCiclo: {tabOdlAltra.Tcassegnato}", false, 0); - // processo chiusura setup - await processaEvento(idxMaccAltraTav, idxEvento, $"Registrata fine produzione per ODL {idxOdlAltra}, nuovo ODL per quantità residua", idxOdlAltra); - } - advStep(currStep++); - // se è master --> chiamo update child! - if (isMaster) - { - // hard coded 60gg last - await TabDServ.OdlFixMachineSlave(IdxMaccSel, 60, 1); - } - // sistemo buttons! - fixSplitBtn(false); - advStep(currStep++); - } - catch (Exception exc) - { - Log.Error($"Eccezione in operazione Chiusura + Split ODL su nuovo! {Environment.NewLine}{exc}"); - // navigo! - NavMan.NavigateTo($"machine-detail"); - } - } -#if false - doRemoveCurrOdlData(); - - // refresh finale - checkAll(); - // sollevo evento! - if (eh_reqUpdate != null) - { - eh_reqUpdate(this, new EventArgs()); - } - await Task.Delay(1500); -#endif - - isProcessing = false; - } - /// /// Registrazione Fine Setup / Inizio Produzione /// @@ -288,13 +196,18 @@ namespace MP_TAB_SERV.Components /// protected async Task OdlSetupEnd() { + TimeSpan estDur = TimeSpan.FromMinutes((double)tcRichAttr * currPodl.NumPezzi); + string stima = estDur.TotalHours > 1 ? $"{estDur.TotalHours:N1} ore" : $"{estDur.TotalMinutes:N1} min"; + if (!await JSRuntime.InvokeAsync("confirm", $"PODL: {currPodl.IdxPromessa}{Environment.NewLine}Art: [{currPodl.CodArticolo}] {currPodl.DescArticolo}{Environment.NewLine}Pezzi: {currPodl.NumPezzi:N0} * TCiclo: {tcRichAttr:N3}min{Environment.NewLine}Tempo stimato: {stima}{Environment.NewLine}{Environment.NewLine}Confermi la chiusura della fase di attrezzaggio?")) + return; + // preparo gestione progress display MaxVal = 8; int currStep = 0; - advStep(currStep); + await advStep(currStep); isProcessing = true; await confermaProdOdl(true); - advStep(currStep++); + await advStep(currStep++); // se vedesse TCRich a zero lo reimposta a quello assegnato... if (tcRichAttr == 0) { @@ -313,7 +226,7 @@ namespace MP_TAB_SERV.Components // invio email! await SendWarnTcChangeReq(idxODLStart, currOdl.Tcassegnato, tcRichAttr); } - advStep(currStep++); + await advStep(currStep++); // processo chiusura setup string evText = "Registrata inizio produzione per ODL {0}"; @@ -323,7 +236,7 @@ namespace MP_TAB_SERV.Components // indico INIZIO SETUP su REDIS come EXE della macchina... string ts = string.Format("{0:yyMMdd}T{0:HHmmss.fff}Z", DateTime.Now); TabDServ.addTask4Machine(IdxMaccSel, taskType.stopSetup, $"TS:{ts}|MATR:{MatrOpr}|ODL:{idxODLStart}"); - advStep(currStep++); + await advStep(currStep++); // se è multi processo chiusura setup x altra tavola... if (isMulti) { @@ -335,7 +248,7 @@ namespace MP_TAB_SERV.Components // invio su seconda tavola TabDServ.addTask4Machine(idxMaccAltraTav, taskType.stopSetup, $"TS:{ts}|MATR: {MatrOpr}| Master Machine: {IdxMaccSel}"); } - advStep(currStep++); + await advStep(currStep++); // se è master --> chiamo update child! if (isMaster) { @@ -355,13 +268,13 @@ namespace MP_TAB_SERV.Components // hard coded 60gg last await TabDServ.OdlFixMachineSlave(IdxMaccSel, 60, 1); } - advStep(currStep++); + await advStep(currStep++); // se c'è gestione SchedaTecnica --> chiamo procedura update x lotti if (enableSchedaTecnica) { await TabDServ.ElencoLottiUpsertByOdl(idxODLStart, true); } - advStep(currStep++); + await advStep(currStep++); // riporto stringa lblOut = sb.ToString().Replace("---", "
"); @@ -369,9 +282,10 @@ namespace MP_TAB_SERV.Components checkAll(); // imposto odl... idxOdl = idxODLStart; - advStep(currStep++); + await advStep(currStep++); // faccio refresh e riporto await refreshData(); + await CheckAttr(); // chiudo update... isProcessing = false; } @@ -382,6 +296,8 @@ namespace MP_TAB_SERV.Components /// protected async Task OdlSetupStart() { + if (!await JSRuntime.InvokeAsync("confirm", $"Confermi inizio della fase di attrezzaggio per l'articolo [{currPodl.CodArticolo}] {currPodl.DescArticolo}?")) + return; /*************************************************** * comprende gestione machineSlave x fix ODL master --> slave * @@ -390,28 +306,29 @@ namespace MP_TAB_SERV.Components // preparo gestione progress display MaxVal = 11; int currStep = 0; - advStep(currStep); + await advStep(currStep); isProcessing = true; - bool inAttr = false; DateTime adesso = DateTime.Now; +#if false // se fosse multi mi chiedo se sia DAVVERO in attrezzaggio... if (isMulti) { try { - // controllo se NON SONO gi� in attrezzaggio... + // controllo se NON SONO gia in attrezzaggio... var rigaStato = TabDServ.StatoMacchina(IdxMaccParent); inAttr = (rigaStato.IdxStato == 2); } catch { } } - advStep(currStep++); +#endif + await advStep(currStep++); // proseguo int idxODL_curr = 0; await confermaProdOdl(false); - advStep(currStep++); + await advStep(currStep++); if (IdxPOdlSel > 0) { // se vedesse TCRich a zero lo reimposta a quello assegnato... @@ -442,7 +359,7 @@ namespace MP_TAB_SERV.Components Log.Error($"Error StartSetup.01{Environment.NewLine}{exc}"); } } - advStep(currStep++); + await advStep(currStep++); // 2018.07.24 verifico se devo lavorare come ODL classico o come RPO (Richiesta / // Promessa / ODL) if (enableRPO) @@ -461,14 +378,14 @@ namespace MP_TAB_SERV.Components // salvo ODL Current idxODL_curr = IdxPOdlSel; } - advStep(currStep++); + await advStep(currStep++); // process evento int idxEvento = 2; // !!!HARD CODED string evText = "Registrato inizio attrezzaggio per ODL {0}"; StringBuilder sb = new StringBuilder(); sb.AppendLine(String.Format(evText, idxODL_curr)); await processaEvento(IdxMaccSel, idxEvento, sb.ToString(), idxODL_curr); - advStep(currStep++); + await advStep(currStep++); // indico INIZIO SETUP su REDIS come EXE della macchina... string ts = string.Format("{0:yyMMdd}T{0:HHmmss.fff}Z", DateTime.Now); string outData = $"TS:{ts}|MATR:{MatrOpr}|ODL:{idxODL_curr}"; @@ -488,7 +405,7 @@ namespace MP_TAB_SERV.Components TabDServ.MachineParamUpdate(IdxMaccSel, "setComm", setCommVal); TabDServ.MachineParamUpdate(IdxMaccSel, "setPzComm", setPzCommVal); TabDServ.addTask4Machine(IdxMaccSel, taskType.setParameter, "ForceUpdate"); - advStep(currStep++); + await advStep(currStep++); // li aggiungo ANCHE sui PLC slave se ci sono... if (isMaster) { @@ -510,7 +427,7 @@ namespace MP_TAB_SERV.Components TabDServ.addTask4Machine(machine.IdxMacchinaSlave, taskType.setParameter, "ForceUpdate"); } } - advStep(currStep++); + await advStep(currStep++); } catch (Exception exc) { @@ -547,21 +464,21 @@ namespace MP_TAB_SERV.Components // update buttons... checkAll(); } - advStep(currStep++); + await advStep(currStep++); // se fosse master --> chiamo update child! if (isMaster) { // hard coded 60gg last await TabDServ.OdlFixMachineSlave(IdxMaccSel, 60, 1); } - advStep(currStep++); + await advStep(currStep++); // resetto contapezzi redis... await TabDServ.saveCounter(IdxMaccSel, "0"); // imposto ODL su redis... TabDServ.saveCurrODL(IdxMaccSel, idxODL_curr); // salvo odl selezionato idxOdl = idxODL_curr; - advStep(currStep++); + await advStep(currStep++); } else { @@ -573,6 +490,7 @@ namespace MP_TAB_SERV.Components fixSplitBtn(false); // faccio refresh e riporto await refreshData(); + await CheckAttr(); isProcessing = false; } @@ -591,6 +509,8 @@ namespace MP_TAB_SERV.Components { IdxMaccSel = RecMSE.IdxMacchina; IdxMaccParent = getIdxMaccParent(); + // verifica stato inAttr + await CheckAttr(); await ReloadData(true); } checkAll(); @@ -602,6 +522,112 @@ namespace MP_TAB_SERV.Components await ReloadData(false); } + protected async Task ProdEnd() + { + if (!await JSRuntime.InvokeAsync("confirm", $"Confermi fine produzione?")) + return; + // preparo gestione progress display + MaxVal = 7; + isProcessing = true; + int currStep = 0; + await advStep(currStep); + // leggo idxOdl da ultimo odl attivo x macchina + var currOdl = await TabDServ.OdlCurrByMacc(IdxMaccSel, false); + int idxODLCurr = currOdl.IdxOdl; + int idxEvento = 7; // !!!HARD CODED + // confermo prod vecchio ODL + await confermaProdOdl(false); + await advStep(currStep++); + + // se chk flaggato ovvero richiesta di chiudere ODL procedo come prima (chiudendo ODL + // senza averne altri...) + if (forceCloseOdl) + { + // aggiungo try/catch x capire se sia qui che si "impasta" in chiusura ODL + try + { + // processo x macchina selezionata + await TabDServ.OdlFineProd(idxODLCurr, IdxMaccSel); + string evText = "Registrata fine produzione per ODL {0}"; + StringBuilder sb = new StringBuilder(); + sb.AppendLine(String.Format(evText, idxODLCurr)); + await processaEvento(IdxMaccSel, idxEvento, sb.ToString(), idxODLCurr); + await advStep(currStep++); + // se è multi processo ANCHE x altra tavola... + if (isMulti) + { + sb.AppendLine("---"); + var tabOdlAltra = await TabDServ.OdlCurrByMacc(idxMaccAltraTav, true); + int idxOdlAltra = tabOdlAltra.IdxOdl; + await TabDServ.OdlFineProd(idxOdlAltra, idxMaccAltraTav); + sb.AppendLine(String.Format(evText, idxOdlAltra)); + await processaEvento(idxMaccAltraTav, idxEvento, String.Format(evText, idxOdlAltra), idxOdlAltra); + } + await advStep(currStep++); + // se è master --> chiamo update child! + if (isMaster) + { + // hard coded 60gg last + await TabDServ.OdlFixMachineSlave(IdxMaccSel, 60, 1); + } + await advStep(currStep++); + // riporto stringa + lblOut = sb.ToString().Replace("---", "
"); + } + catch (Exception exc) + { + Log.Error($"Eccezione in operazione chiusura ODL!{Environment.NewLine}{exc}"); + // navigo! + NavMan.NavigateTo($"machine-detail"); + } + } + // altrimenti split ODL x completare IN FUTURO la produzione... + else + { + try + { + // effettuo split su nuovo ODL + await TabDServ.OdlSplit(idxODLCurr, MatrOpr, IdxMaccSel, currOdl.Tcassegnato, PzPallet, $"Fine Produzione, Sospensione ODL {idxODLCurr}, generato residuo con pari TCiclo: {currOdl.Tcassegnato}", false, 0); + // processo chiusura setup + await processaEvento(IdxMaccSel, idxEvento, $"Registrata fine produzione per ODL {idxODLCurr}, nuovo ODL per quantità residua", idxODLCurr); + + await advStep(currStep++); + // se è multi processo ANCHE x altra tavola... + if (isMulti) + { + var tabOdlAltra = await TabDServ.OdlCurrByMacc(idxMaccAltraTav, true); + int idxOdlAltra = tabOdlAltra.IdxOdl; + // effettuo split su nuovo ODL + await TabDServ.OdlSplit(idxOdlAltra, MatrOpr, idxMaccAltraTav, tabOdlAltra.Tcassegnato, PzPallet, $"Fine Produzione, Sospensione ODL {idxOdlAltra}, generato residuo con pari TCiclo: {tabOdlAltra.Tcassegnato}", false, 0); + // processo chiusura setup + await processaEvento(idxMaccAltraTav, idxEvento, $"Registrata fine produzione per ODL {idxOdlAltra}, nuovo ODL per quantità residua", idxOdlAltra); + } + await advStep(currStep++); + // se è master --> chiamo update child! + if (isMaster) + { + // hard coded 60gg last + await TabDServ.OdlFixMachineSlave(IdxMaccSel, 60, 1); + } + // sistemo buttons! + fixSplitBtn(false); + await advStep(currStep++); + } + catch (Exception exc) + { + Log.Error($"Eccezione in operazione Chiusura + Split ODL su nuovo! {Environment.NewLine}{exc}"); + // navigo! + NavMan.NavigateTo($"machine-detail"); + } + } + await advStep(currStep++); + // faccio refresh e riporto + await refreshData(); + await CheckAttr(); + await advStep(currStep++); + isProcessing = false; + } + protected async Task refreshData() { // refresh tabella dati tablet... @@ -618,6 +644,8 @@ namespace MP_TAB_SERV.Components #endif await E_Updated.InvokeAsync(ListMSE); } + // update dati liste ODL + await ReloadData(true); } protected void SaveTCRich(decimal newTCRich) @@ -665,9 +693,15 @@ namespace MP_TAB_SERV.Components await Task.Delay(10); } - protected void togOdlDetail() + protected async Task ToggleOdlDetail() { showOdlDetail = !showOdlDetail; + // se devo mostrare, carico dati ODL! + if (showOdlDetail && RecMSE != null) + { + int currIdxPOdl = RecMSE != null ? RecMSE.IdxPOdl ?? 0 : 0; + currPodl = await TabDServ.PODLExp_getByKey(currIdxPOdl); + } } protected string Traduci(string lemma) @@ -680,32 +714,59 @@ namespace MP_TAB_SERV.Components #region Private Fields private static Logger Log = LogManager.GetCurrentClassLogger(); + private bool cancelSetupEnabled = false; + private bool confRett = true; + private double currVal = 0; + private List emailAdmDest = new List(); + private bool enableRPO = true; + private bool enableSchedaTecnica = false; + private bool enableSplitODL = false; - private int expTimeMsec = 2000; + + private int expTimeMsec = 500; + private bool forceCloseOdl = true; + private string IdxMaccSel = ""; + private int idxOdl = 0; + private int idxPOdlSel = 0; - private bool isInAttr = false; + + private bool inAttr = false; + private bool isInProd = false; + private bool isMaster = false; + private bool isMulti = false; + private bool isProcessing = false; + private bool isSlave = false; + private int lastIdxPOdl = 0; + private string lblOut = ""; + private int MaxVal = 10; + private int modoConfProd = 0; + private double nextVal = 0; + private string noteAttr = ""; + private int numDayOdl = 5; + private int PzPallet = 1; + private bool showAll = false; private bool showOdlDetail = false; @@ -781,6 +842,20 @@ namespace MP_TAB_SERV.Components } } + private string txtBtnOdlDetail + { + get => showOdlDetail ? "Nascondi Dettaglio ODL" : "MOSTRA Dettaglio ODL Corrente"; + } + private string titleOdlDetail + { + get => IdxPOdlSel > 0 ? "Verifica parametri attrezzaggio NUOVO PODL" : "Parametri ODL Corrente"; + } + + private string cssDetailOdl + { + get => IdxPOdlSel > 0 ? "bg-primary text-light" : "bg-warning"; + } + #endregion Private Properties #region Private Methods diff --git a/MP-TAB-SERV/MP-TAB-SERV.csproj b/MP-TAB-SERV/MP-TAB-SERV.csproj index 2eff17e0..fd8b09d0 100644 --- a/MP-TAB-SERV/MP-TAB-SERV.csproj +++ b/MP-TAB-SERV/MP-TAB-SERV.csproj @@ -3,7 +3,7 @@ net6.0 enable - 6.16.2311.818 + 6.16.2311.909 enable MP_TAB_SERV diff --git a/MP-TAB-SERV/Resources/ChangeLog.html b/MP-TAB-SERV/Resources/ChangeLog.html index 5bb329c2..514eae7a 100644 --- a/MP-TAB-SERV/Resources/ChangeLog.html +++ b/MP-TAB-SERV/Resources/ChangeLog.html @@ -1,6 +1,6 @@ Modulo MAPOSPEC -

Versione: 6.16.2311.818

+

Versione: 6.16.2311.909


Note di rilascio:
  • diff --git a/MP-TAB-SERV/Resources/VersNum.txt b/MP-TAB-SERV/Resources/VersNum.txt index e96fef11..c3aa4abd 100644 --- a/MP-TAB-SERV/Resources/VersNum.txt +++ b/MP-TAB-SERV/Resources/VersNum.txt @@ -1 +1 @@ -6.16.2311.818 +6.16.2311.909 diff --git a/MP-TAB-SERV/Resources/manifest.xml b/MP-TAB-SERV/Resources/manifest.xml index ad991dec..5ea45187 100644 --- a/MP-TAB-SERV/Resources/manifest.xml +++ b/MP-TAB-SERV/Resources/manifest.xml @@ -1,6 +1,6 @@ - 6.16.2311.818 + 6.16.2311.909 https://nexus.steamware.net/repository/SWS/MP-TAB-SERV/stable/LAST/MP-TAB-SERV.zip https://nexus.steamware.net/repository/SWS/MP-TAB-SERV/stable/LAST/ChangeLog.html false diff --git a/MP.Data/Services/TabDataService.cs b/MP.Data/Services/TabDataService.cs index 53f1539a..8489419e 100644 --- a/MP.Data/Services/TabDataService.cs +++ b/MP.Data/Services/TabDataService.cs @@ -1144,6 +1144,7 @@ namespace MP.Data.Services answ = dbTabController.OdlFineProd(idxODL, idxMacchina); await FlushCache("ODL"); await FlushCache("PODL"); + await FlushCache("VSODL"); } catch (Exception exc) { @@ -1169,6 +1170,7 @@ namespace MP.Data.Services answ = dbTabController.OdlFixMachineSlave(idxMacchina, numDayPrev, doInsert); await FlushCache("ODL"); await FlushCache("PODL"); + await FlushCache("VSODL"); } catch (Exception exc) { @@ -1197,6 +1199,7 @@ namespace MP.Data.Services answ = dbTabController.OdlInizioSetup(idxODL, matrOpr, idxMacchina, tcRich, pzPallet, note); await FlushCache("ODL"); await FlushCache("PODL"); + await FlushCache("VSODL"); } catch (Exception exc) { @@ -1259,6 +1262,8 @@ namespace MP.Data.Services // inserisco evento answ = dbTabController.OdlSetupPostumo(idxODL, idxMacchina); await FlushCache("ODL"); + await FlushCache("PODL"); + await FlushCache("VSODL"); } catch (Exception exc) { @@ -1283,6 +1288,8 @@ namespace MP.Data.Services // inserisco evento answ = dbTabController.OdlSetupPromPostuma(idxPromOdl, matrOpr, idxMacchina); await FlushCache("ODL"); + await FlushCache("PODL"); + await FlushCache("VSODL"); } catch (Exception exc) { @@ -1312,6 +1319,8 @@ namespace MP.Data.Services // inserisco evento answ = dbTabController.OdlSplit(idxODL, matrOpr, idxMacchina, TCRich, pzPallet, note, startNewOdl, qtyRich); await FlushCache("ODL"); + await FlushCache("PODL"); + await FlushCache("VSODL"); } catch (Exception exc) { @@ -1336,6 +1345,7 @@ namespace MP.Data.Services answ = dbTabController.OdlUpdate(idxODL, matrOpr, tCRichAttr, pzPallet, note); await FlushCache("ODL"); await FlushCache("PODL"); + await FlushCache("VSODL"); } catch (Exception exc) {