Fix ricalcolo MSE x macchina POST evento manuale

This commit is contained in:
Samuele E. Locatelli
2018-10-18 16:00:56 +02:00
parent 94aba28d2b
commit 07e403af50
5 changed files with 82 additions and 37 deletions
+3 -6
View File
@@ -58,13 +58,10 @@
</ItemTemplate>
</asp:Repeater>
</div>
<asp:ObjectDataSource ID="ods" runat="server" OldValuesParameterFormatString="original_{0}" SelectMethod="getByRefreshData"
TypeName="MapoDb.DS_ProdTempiTableAdapters.MappaStatoExplTableAdapter" FilterExpression="IdxMacchina = '{0}'">
<FilterParameters>
<asp:SessionParameter Type="String" DefaultValue="0" SessionField="IdxMacchina" Name="IdxMacchina" />
</FilterParameters>
<asp:ObjectDataSource ID="ods" runat="server" OldValuesParameterFormatString="original_{0}" SelectMethod="getByIdxMacchina"
TypeName="MapoDb.DS_ProdTempiTableAdapters.MappaStatoExplTableAdapter">
<SelectParameters>
<asp:Parameter DefaultValue="1" Name="maxAgeSec" Type="Int32" />
<asp:SessionParameter DefaultValue="0" Name="IdxMacchina" SessionField="IdxMacchina" Type="String" />
</SelectParameters>
</asp:ObjectDataSource>
<asp:HiddenField runat="server" ID="hfIdxMacchina" />
@@ -58,17 +58,17 @@ namespace MoonProTablet.WebUserControls
DS_applicazione.AnagraficaEventiRow rigaEvento = DataLayer.obj.taAnagEventi.GetByIdx(idxEvento)[0];
if (rigaEvento != null)
{
DS_applicazione.StatoMacchineRow rigaStato = DataLayer.obj.taStatoMacchine.GetDataByIdxMacchina(idxMacchina.ToString())[0];
DS_applicazione.StatoMacchineRow rigaStato = DataLayer.obj.taStatoMacchine.GetDataByIdxMacchina(idxMacchina)[0];
// processo evento...
if (insRealtime)
{
// se realtime
controllerMapo.scriviRigaEventoBarcode(idxMacchina.ToString(), idxEvento, rigaStato.CodArticolo, "DRT", DataLayer.MatrOpr, rigaStato.pallet);
controllerMapo.scriviRigaEventoBarcode(idxMacchina, idxEvento, rigaStato.CodArticolo, "DRT", DataLayer.MatrOpr, rigaStato.pallet);
}
else
{
// in primis disabilito insert...
DataLayer.obj.taStatoMacchine.setInsEnabled(idxMacchina.ToString(), false);
DataLayer.obj.taStatoMacchine.setInsEnabled(idxMacchina, false);
// calcolo evento
string evento = idxEvento.ToString();
string commento = "";
@@ -84,7 +84,7 @@ namespace MoonProTablet.WebUserControls
try
{
// cerco da 1 sec DOPO evento...
DS_applicazione.DiarioDiBordoDataTable tabNext = controllerMapo.nextEventoImpiantoFrom(idxMacchina.ToString(), dataOraEv.AddSeconds(1));
DS_applicazione.DiarioDiBordoDataTable tabNext = controllerMapo.nextEventoImpiantoFrom(idxMacchina, dataOraEv.AddSeconds(1));
DateTime nextEvDT = DateTime.Now;
if (tabNext.Rows.Count > 0)
@@ -98,14 +98,14 @@ namespace MoonProTablet.WebUserControls
}
// fix salvo la dichiarazione di chiusura
commento = string.Format("999 - M.Lav EndEvt: {0} [{1}]", evento, codRich);
controllerMapo.scriviRigaEventoBarcode(idxMacchina.ToString(), 1, rigaStato.CodArticolo, commento, DataLayer.MatrOpr, rigaStato.pallet, nextEvDT.AddSeconds(-1), DateTime.Now); // 1 hard-coded x resettare
controllerMapo.scriviRigaEventoBarcode(idxMacchina, 1, rigaStato.CodArticolo, commento, DataLayer.MatrOpr, rigaStato.pallet, nextEvDT.AddSeconds(-1), DateTime.Now); // 1 hard-coded x resettare
}
catch
{ }
// update commento!
commento = string.Format("999 - Dich StartEvt: {0} [{1}]", evento, codRich);
// recupero data/ora evento da inserire (quella selezionata) ed AGGIUNGO 1 sec!!! così rimane traccia
controllerMapo.scriviRigaEventoBarcode(idxMacchina.ToString(), idxEvento, rigaStato.CodArticolo, commento, DataLayer.MatrOpr, rigaStato.pallet, dataOraEv.AddSeconds(1), DateTime.Now);
controllerMapo.scriviRigaEventoBarcode(idxMacchina, idxEvento, rigaStato.CodArticolo, commento, DataLayer.MatrOpr, rigaStato.pallet, dataOraEv.AddSeconds(1), DateTime.Now);
// eseguo ricalcolo!
DateTime startRicalcolo = dataOraEv.AddMinutes(memLayer.ML.confReadInt("minAnticipoRicalcolo"));
@@ -113,11 +113,11 @@ namespace MoonProTablet.WebUserControls
int rdm_nEvStep = memLayer.ML.CRI("rdm_nEvStep");
int rdm_nEvCheck = memLayer.ML.CRI("rdm_nEvCheck");
bool rdm_ChkOnly = memLayer.ML.CRB("rdm_ChkOnly");
DataLayer.obj.taComm.stp_ricalcolaDatiMacchinaFromDate(idxMacchina.ToString(), startRicalcolo, 1, rdm_nEvStep, rdm_nEvCheck, rdm_ChkOnly); // nella stored imposto macchina OFFline e poi ONline, parto da "minAnticipoRicalcolo" minuti prima...
// aggiorno data evento x insert eventuale commento (5 sec...)
DataLayer.obj.taComm.stp_ricalcolaDatiMacchinaFromDate(idxMacchina, startRicalcolo, 1, rdm_nEvStep, rdm_nEvCheck, rdm_ChkOnly); // nella stored imposto macchina OFFline e poi ONline, parto da "minAnticipoRicalcolo" minuti prima...
// aggiorno data evento x insert eventuale commento (5 sec...)
dataOraEv = dataOraEv.AddSeconds(5);
// riabilito insert... anche se non dovrebbe servire x stored ricalcolo precedente...
DataLayer.obj.taStatoMacchine.setInsEnabled(idxMacchina.ToString(), true);
DataLayer.obj.taStatoMacchine.setInsEnabled(idxMacchina, true);
}
// mostro esito
lblOut.Text = "Registrata dichiarazione fermata";
@@ -127,7 +127,10 @@ namespace MoonProTablet.WebUserControls
lblOut.Text = string.Format("Codice evento non valido! {0}", idxEvento);
}
}
// refresh fermate
repLI.DataBind();
// faccio refresh SOLO macchina corrente
DataLayer.obj.taMSE.forceRefreshMacchina(idxMacchina);
// sollevo evento!
if (eh_newVal != null)
{