diff --git a/MapoDb/DataLayer.cs b/MapoDb/DataLayer.cs index 43a9d3ec..945f13dd 100644 --- a/MapoDb/DataLayer.cs +++ b/MapoDb/DataLayer.cs @@ -723,23 +723,28 @@ namespace MapoDb public string AutoStartOdl(string idxMacchina, bool doConfirm, bool qtyFromLast, int roundStep = 100, string keyRichiesta = "") { string answ = "KO"; + DateTime adesso = DateTime.Now; // verifico NON CI SIA un veto a NUOVI split... 2 min di default... string redKey = vetoSplitOdlMaccHash(idxMacchina); string rawData = memLayer.ML.getRSV(redKey); if (string.IsNullOrEmpty(rawData)) { // registro VETO x altri split... 5 minuti - memLayer.ML.setRSV(redKey, $"Inizio SPLIT-ODL {DateTime.Now}", 300); + memLayer.ML.setRSV(redKey, $"Inizio SPLIT-ODL {adesso}", 300); // calcolo la qta da gestire int qtyConf = 0; int qtyNew = 0; + int qtyScarto = 0; if (doConfirm) { DS_ProdTempi.stp_PzProd_getByMacchinaRow rigaProd; + DS_ProdTempi.StatoProdRow statoProd; try { rigaProd = taPzProd2conf.GetData(idxMacchina)[0]; + statoProd = taStatoProd.GetData(idxMacchina, adesso)[0]; qtyConf = rigaProd.pezziNonConfermati; + qtyScarto = statoProd.Pz2RecScarto; // calcolo nuovi pezzi da confermare if (qtyFromLast) { @@ -756,7 +761,6 @@ namespace MapoDb // proseguo DS_ProdTempi.ODLDataTable currData = null; - DateTime adesso = DateTime.Now; // chiamo metodo redis/db... try { @@ -769,7 +773,7 @@ namespace MapoDb DS_ProdTempi.Macchine2SlaveDataTable slaveList = isMachMaster ? taM2S.getByMaster(idxMacchina) : new DS_ProdTempi.Macchine2SlaveDataTable(); // registro un evento di inizio attrezzaggio (idxTipoEv = 2) int idxEvento = 2; - Log.Info($"Invio evento ODL-SPLIT per macchina {idxMacchina}, evento {idxEvento}, articolo {currData[0].CodArticolo}, qty confermata {qtyConf}, nuova qty {qtyNew}", tipoLog.INFO); + Log.Info($"Invio evento ODL-SPLIT per macchina {idxMacchina} | ev: {idxEvento} | art: {currData[0].CodArticolo} | qty conf: {qtyConf} | sty sca: {qtyScarto} | new qty: {qtyNew}", tipoLog.INFO); inputComandoMapo resCmd = scriviRigaEventoBarcode(idxMacchina, idxEvento, currData[0].CodArticolo, "ODL-SPLIT", 0, "", adesso, adesso); if (doConfirm) @@ -781,29 +785,29 @@ namespace MapoDb try { string chiamata = confRett ? "confermaProdMacchinaFull" : "confermaProdMacchina"; - Log.Info($"Chiamata a {chiamata} con parametri {currData[0].IdxMacchina} |{MatrOpr} | {DateTime.Now.AddDays(-10)} | {DateTime.Now} | {qtyConf} | 0 | 1 | {DateTime.Now} | false", tipoLog.INFO); + Log.Info($"Chiamata a {chiamata} con parametri {currData[0].IdxMacchina} |{MatrOpr} | {DateTime.Now.AddDays(-10)} | {DateTime.Now} | {qtyConf} | 0 | {qtyScarto} | {DateTime.Now} | false", tipoLog.INFO); string idxMacchinaSel = currData[0].IdxMacchina; bool fatto = false; if (confRett) { // confermo al netto dei pezzi lasciati... - fatto = confermaProdMacchinaFull(idxMacchinaSel, memLayer.ML.CRI("modoConfProd"), qtyConf, 0, 0, adesso); + fatto = confermaProdMacchinaFull(idxMacchinaSel, memLayer.ML.CRI("modoConfProd"), qtyConf, 0, qtyScarto, adesso); if (memLayer.ML.CRB("SlaveConfirmPzProd")) { foreach (var machine in slaveList) { - confermaProdMacchinaFull(machine.IdxMacchinaSlave, memLayer.ML.CRI("modoConfProd"), qtyConf, 0, 0, adesso); + confermaProdMacchinaFull(machine.IdxMacchinaSlave, memLayer.ML.CRI("modoConfProd"), qtyConf, 0, qtyScarto, adesso); } } } else { - fatto = confermaProdMacchina(idxMacchinaSel, memLayer.ML.CRI("modoConfProd"), qtyConf, 0, adesso); + fatto = confermaProdMacchina(idxMacchinaSel, memLayer.ML.CRI("modoConfProd"), qtyConf, qtyScarto, adesso); if (memLayer.ML.CRB("SlaveConfirmPzProd")) { foreach (var machine in slaveList) { - confermaProdMacchina(idxMacchinaSel, memLayer.ML.CRI("modoConfProd"), qtyConf, 0, adesso); + confermaProdMacchina(idxMacchinaSel, memLayer.ML.CRI("modoConfProd"), qtyConf, qtyScarto, adesso); } } }