Verifica risposte nesting (scarto se incoerente)
This commit is contained in:
@@ -135,6 +135,8 @@ namespace NKC_WF.Controllers
|
||||
* - è BatchReq / OfflineOrder
|
||||
* - è stima iniziale o NEST dettagliato
|
||||
* - si tratta di una stima di validazione ITEM ...
|
||||
*
|
||||
* 2021.07.21: aggiunto controllo coerenza risposta: accetto solo se sono in stato di richiesta (se ho annullato in precedenza scarto la risposta)
|
||||
*
|
||||
*************************************************/
|
||||
if (batchProcAnsw.OrderType == oType.BatchRequest)
|
||||
@@ -146,139 +148,151 @@ namespace NKC_WF.Controllers
|
||||
// deserializzo come BatchreqIniziale (stima)
|
||||
nestReplyBatchInitial rispStima = JsonConvert.DeserializeObject<nestReplyBatchInitial>(content);
|
||||
|
||||
// 2020.01.16 salvo su mongoDb la risposta...
|
||||
ComLib.man.saveEstAnsw(rispStima);
|
||||
|
||||
// recupero info sul batch / KIT specifico x capire se sia di tipo "validation"
|
||||
bool isValidation = false;
|
||||
bool isTesting = false;
|
||||
var tabOrd = DLMan.taOL.getByBatch(rispStima.BatchID);
|
||||
if (tabOrd.Count > 0)
|
||||
// verifica preliminare che il batch possa accettare la risposta
|
||||
var currBatchStatus = ComLib.BStatus(rispStima.BatchID);
|
||||
if (currBatchStatus != BatchStatus.EstimationRequested)
|
||||
{
|
||||
isValidation = tabOrd[0].OrdType == "V";
|
||||
isTesting = tabOrd[0].OrdType == "T";
|
||||
string message = $"Impossibile processing risposta da EgtNest | ProcType: {batchProcAnsw.ProcType} | BatchID: {rispStima.BatchID} | stato: {currBatchStatus}";
|
||||
logger.lg.scriviLog(message, tipoLog.ERROR);
|
||||
// registro KO
|
||||
answ = "KO";
|
||||
}
|
||||
// calcolo status del batch...
|
||||
switch (rispStima.ProcessStatus)
|
||||
else
|
||||
{
|
||||
case procStatus.waiting:
|
||||
case procStatus.running:
|
||||
bStatus = 1;
|
||||
break;
|
||||
// 2020.01.16 salvo su mongoDb la risposta...
|
||||
ComLib.man.saveEstAnsw(rispStima);
|
||||
|
||||
case procStatus.completed:
|
||||
if (isValidation || isTesting)
|
||||
{
|
||||
bool pdfOk = true;
|
||||
// se richiesto CheckPDF
|
||||
if (memLayer.ML.CRB("checkPdfPathTV"))
|
||||
// recupero info sul batch / KIT specifico x capire se sia di tipo "validation"
|
||||
bool isValidation = false;
|
||||
bool isTesting = false;
|
||||
var tabOrd = DLMan.taOL.getByBatch(rispStima.BatchID);
|
||||
if (tabOrd.Count > 0)
|
||||
{
|
||||
isValidation = tabOrd[0].OrdType == "V";
|
||||
isTesting = tabOrd[0].OrdType == "T";
|
||||
}
|
||||
// calcolo status del batch...
|
||||
switch (rispStima.ProcessStatus)
|
||||
{
|
||||
case procStatus.waiting:
|
||||
case procStatus.running:
|
||||
bStatus = 1;
|
||||
break;
|
||||
|
||||
case procStatus.completed:
|
||||
if (isValidation || isTesting)
|
||||
{
|
||||
// verifico PDF, se NON OK --> errore
|
||||
string pdfPath = "";
|
||||
foreach (var item in rispStima.PartList)
|
||||
bool pdfOk = true;
|
||||
// se richiesto CheckPDF
|
||||
if (memLayer.ML.CRB("checkPdfPathTV"))
|
||||
{
|
||||
pdfOk = pdfOk && ComLib.checkPdfExistAccessible(item, out pdfPath);
|
||||
if (!pdfOk)
|
||||
// verifico PDF, se NON OK --> errore
|
||||
string pdfPath = "";
|
||||
foreach (var item in rispStima.PartList)
|
||||
{
|
||||
// codice è B.xxx dove xxx = BatchID
|
||||
DLMan.taEL.insertQuery(DateTime.Now, "Check PDF path", $"B.{rispStima.BatchID}", $"{rispStima.BatchID}.{item.PartExtCode}", $"Error: PDF file not found: {pdfPath}");
|
||||
pdfOk = pdfOk && ComLib.checkPdfExistAccessible(item, out pdfPath);
|
||||
if (!pdfOk)
|
||||
{
|
||||
// codice è B.xxx dove xxx = BatchID
|
||||
DLMan.taEL.insertQuery(DateTime.Now, "Check PDF path", $"B.{rispStima.BatchID}", $"{rispStima.BatchID}.{item.PartExtCode}", $"Error: PDF file not found: {pdfPath}");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// se non OK --> registro errore...
|
||||
if (!pdfOk)
|
||||
{
|
||||
bStatus = 9;
|
||||
}
|
||||
// verifico se il tempo di procesisng stimato sia > minimo...
|
||||
else if (rispStima.EstimatedWorktime > memLayer.ML.CRI("minValidEstSec"))
|
||||
{
|
||||
bStatus = 10;
|
||||
// se non OK --> registro errore...
|
||||
if (!pdfOk)
|
||||
{
|
||||
bStatus = 9;
|
||||
}
|
||||
// verifico se il tempo di procesisng stimato sia > minimo...
|
||||
else if (rispStima.EstimatedWorktime > memLayer.ML.CRI("minValidEstSec"))
|
||||
{
|
||||
bStatus = 10;
|
||||
}
|
||||
else
|
||||
{
|
||||
bStatus = 9;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
bStatus = 2;
|
||||
}
|
||||
break;
|
||||
|
||||
case procStatus.accepted:
|
||||
bStatus = 5;
|
||||
break;
|
||||
|
||||
case procStatus.refused:
|
||||
if (isValidation || isTesting)
|
||||
{
|
||||
bStatus = 9;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
bStatus = 2;
|
||||
}
|
||||
break;
|
||||
else
|
||||
{
|
||||
bStatus = 6;
|
||||
}
|
||||
break;
|
||||
|
||||
case procStatus.accepted:
|
||||
bStatus = 5;
|
||||
break;
|
||||
case procStatus.error:
|
||||
if (isValidation || isTesting)
|
||||
{
|
||||
bStatus = 9;
|
||||
}
|
||||
else
|
||||
{
|
||||
bStatus = 7;
|
||||
}
|
||||
break;
|
||||
|
||||
case procStatus.refused:
|
||||
if (isValidation || isTesting)
|
||||
{
|
||||
bStatus = 9;
|
||||
}
|
||||
else
|
||||
{
|
||||
bStatus = 6;
|
||||
}
|
||||
break;
|
||||
|
||||
case procStatus.error:
|
||||
if (isValidation || isTesting)
|
||||
{
|
||||
bStatus = 9;
|
||||
}
|
||||
else
|
||||
{
|
||||
bStatus = 7;
|
||||
}
|
||||
break;
|
||||
|
||||
case procStatus.aborted:
|
||||
default:
|
||||
if (isValidation || isTesting)
|
||||
{
|
||||
bStatus = 9;
|
||||
}
|
||||
else
|
||||
{
|
||||
bStatus = 0;
|
||||
}
|
||||
break;
|
||||
}
|
||||
// SALVO info riguardo al batch running
|
||||
DLMan.taBL.updateStatus(rispStima.BatchID, bStatus, rispStima.EnvNum, (decimal)rispStima.EstimatedWorktime / 60);
|
||||
// salvo update elenco ITEMS
|
||||
ComLib.updatePartsFromNesting(rispStima.PartList);
|
||||
// aggiorno cadPath x items che non abbiano valorizzato...
|
||||
string dxfFolder = memLayer.ML.CRS("drawingFolder");
|
||||
if (isTesting)
|
||||
{
|
||||
dxfFolder = memLayer.ML.CRS("fileTestFolder");
|
||||
}
|
||||
string cadBasePath = $"{memLayer.ML.CRS("nestBasePath")}{dxfFolder}/";
|
||||
DLMan.taIL.updateCadPath(cadBasePath, rispStima.BatchID, false);
|
||||
// verifico IN CASO di validazione andata a buon fine --> valorizzo tabella!
|
||||
if (bStatus > 7)
|
||||
{
|
||||
if (isValidation)
|
||||
case procStatus.aborted:
|
||||
default:
|
||||
if (isValidation || isTesting)
|
||||
{
|
||||
bStatus = 9;
|
||||
}
|
||||
else
|
||||
{
|
||||
bStatus = 0;
|
||||
}
|
||||
break;
|
||||
}
|
||||
// SALVO info riguardo al batch running
|
||||
DLMan.taBL.updateStatus(rispStima.BatchID, bStatus, rispStima.EnvNum, (decimal)rispStima.EstimatedWorktime / 60);
|
||||
// salvo update elenco ITEMS
|
||||
ComLib.updatePartsFromNesting(rispStima.PartList);
|
||||
// aggiorno cadPath x items che non abbiano valorizzato...
|
||||
string dxfFolder = memLayer.ML.CRS("drawingFolder");
|
||||
if (isTesting)
|
||||
{
|
||||
// recupero ordine da batch
|
||||
if (tabOrd.Count > 0)
|
||||
dxfFolder = memLayer.ML.CRS("fileTestFolder");
|
||||
}
|
||||
string cadBasePath = $"{memLayer.ML.CRS("nestBasePath")}{dxfFolder}/";
|
||||
DLMan.taIL.updateCadPath(cadBasePath, rispStima.BatchID, false);
|
||||
// verifico IN CASO di validazione andata a buon fine --> valorizzo tabella!
|
||||
if (bStatus > 7)
|
||||
{
|
||||
if (isValidation)
|
||||
{
|
||||
DLMan.taIV.upsertQuery(tabOrd[0].OrderExtCode, rispStima.BatchID, bStatus, rispStima.EstimatedWorktime);
|
||||
}
|
||||
}
|
||||
else if (isTesting)
|
||||
{
|
||||
// recupero ordine da batch
|
||||
if (tabOrd.Count > 0)
|
||||
{
|
||||
DLMan.taFV.upsertQuery(tabOrd[0].OrderExtCode, rispStima.BatchID, bStatus, rispStima.EstimatedWorktime);
|
||||
// recupero ordine da batch
|
||||
if (tabOrd.Count > 0)
|
||||
{
|
||||
DLMan.taIV.upsertQuery(tabOrd[0].OrderExtCode, rispStima.BatchID, bStatus, rispStima.EstimatedWorktime);
|
||||
}
|
||||
}
|
||||
else if (isTesting)
|
||||
{
|
||||
// recupero ordine da batch
|
||||
if (tabOrd.Count > 0)
|
||||
{
|
||||
DLMan.taFV.upsertQuery(tabOrd[0].OrderExtCode, rispStima.BatchID, bStatus, rispStima.EstimatedWorktime);
|
||||
}
|
||||
}
|
||||
}
|
||||
// registro OK
|
||||
answ = "OK";
|
||||
}
|
||||
// registro OK
|
||||
answ = "OK";
|
||||
}
|
||||
// stima "extended" x splitting
|
||||
else if (batchProcAnsw.ProcType == 3)
|
||||
@@ -286,124 +300,135 @@ namespace NKC_WF.Controllers
|
||||
int bStatus = 0;
|
||||
// deserializzo come BatchreqIniziale (stima)
|
||||
nestReplyBatchExtEst rispStima = JsonConvert.DeserializeObject<nestReplyBatchExtEst>(content);
|
||||
|
||||
// salvo su mongoDb la risposta...
|
||||
ComLib.man.saveExtEstAnsw(rispStima);
|
||||
|
||||
// recupero info sul batch / KIT specifico x capire se sia di tipo "validation"
|
||||
bool isValidation = false;
|
||||
bool isTesting = false;
|
||||
var tabOrd = DLMan.taOL.getByBatch(rispStima.BatchID);
|
||||
if (tabOrd.Count > 0)
|
||||
// verifica preliminare che il batch possa accettare la risposta
|
||||
var currBatchStatus = ComLib.BStatus(rispStima.BatchID);
|
||||
if (currBatchStatus != BatchStatus.EstimationRequested)
|
||||
{
|
||||
isValidation = tabOrd[0].OrdType == "V";
|
||||
isTesting = tabOrd[0].OrdType == "T";
|
||||
string message = $"Impossibile processing risposta da EgtNest | ProcType: {batchProcAnsw.ProcType} | BatchID: {rispStima.BatchID} | stato: {currBatchStatus}";
|
||||
logger.lg.scriviLog(message, tipoLog.ERROR);
|
||||
// registro KO
|
||||
answ = "KO";
|
||||
}
|
||||
// calcolo status del batch...
|
||||
switch (rispStima.ProcessStatus)
|
||||
else
|
||||
{
|
||||
case procStatus.waiting:
|
||||
case procStatus.running:
|
||||
bStatus = 1;
|
||||
break;
|
||||
// salvo su mongoDb la risposta...
|
||||
ComLib.man.saveExtEstAnsw(rispStima);
|
||||
|
||||
case procStatus.completed:
|
||||
if (isValidation || isTesting)
|
||||
{
|
||||
bool pdfOk = true;
|
||||
// se richiesto CheckPDF
|
||||
if (memLayer.ML.CRB("checkPdfPathTV"))
|
||||
// recupero info sul batch / KIT specifico x capire se sia di tipo "validation"
|
||||
bool isValidation = false;
|
||||
bool isTesting = false;
|
||||
var tabOrd = DLMan.taOL.getByBatch(rispStima.BatchID);
|
||||
if (tabOrd.Count > 0)
|
||||
{
|
||||
isValidation = tabOrd[0].OrdType == "V";
|
||||
isTesting = tabOrd[0].OrdType == "T";
|
||||
}
|
||||
// calcolo status del batch...
|
||||
switch (rispStima.ProcessStatus)
|
||||
{
|
||||
case procStatus.waiting:
|
||||
case procStatus.running:
|
||||
bStatus = 1;
|
||||
break;
|
||||
|
||||
case procStatus.completed:
|
||||
if (isValidation || isTesting)
|
||||
{
|
||||
// verifico PDF, se NON OK --> errore
|
||||
string pdfPath = "";
|
||||
foreach (var item in rispStima.PartList)
|
||||
bool pdfOk = true;
|
||||
// se richiesto CheckPDF
|
||||
if (memLayer.ML.CRB("checkPdfPathTV"))
|
||||
{
|
||||
pdfOk = pdfOk && ComLib.checkPdfExistAccessible(item, out pdfPath);
|
||||
if (!pdfOk)
|
||||
// verifico PDF, se NON OK --> errore
|
||||
string pdfPath = "";
|
||||
foreach (var item in rispStima.PartList)
|
||||
{
|
||||
// codice è B.xxx dove xxx = BatchID
|
||||
DLMan.taEL.insertQuery(DateTime.Now, "Check PDF path", $"B.{rispStima.BatchID}", $"{rispStima.BatchID}.{item.PartExtCode}", $"Error: PDF file not found: {pdfPath}");
|
||||
pdfOk = pdfOk && ComLib.checkPdfExistAccessible(item, out pdfPath);
|
||||
if (!pdfOk)
|
||||
{
|
||||
// codice è B.xxx dove xxx = BatchID
|
||||
DLMan.taEL.insertQuery(DateTime.Now, "Check PDF path", $"B.{rispStima.BatchID}", $"{rispStima.BatchID}.{item.PartExtCode}", $"Error: PDF file not found: {pdfPath}");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// se non OK --> registro errore...
|
||||
if (!pdfOk)
|
||||
{
|
||||
bStatus = 9;
|
||||
}
|
||||
// verifico se il tempo di procesisng stimato sia > minimo...
|
||||
else if (rispStima.EstimatedWorktime > memLayer.ML.CRI("minValidEstSec"))
|
||||
{
|
||||
bStatus = 10;
|
||||
// se non OK --> registro errore...
|
||||
if (!pdfOk)
|
||||
{
|
||||
bStatus = 9;
|
||||
}
|
||||
// verifico se il tempo di procesisng stimato sia > minimo...
|
||||
else if (rispStima.EstimatedWorktime > memLayer.ML.CRI("minValidEstSec"))
|
||||
{
|
||||
bStatus = 10;
|
||||
}
|
||||
else
|
||||
{
|
||||
bStatus = 9;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
bStatus = 2;
|
||||
}
|
||||
break;
|
||||
|
||||
case procStatus.accepted:
|
||||
bStatus = 5;
|
||||
break;
|
||||
|
||||
case procStatus.refused:
|
||||
if (isValidation || isTesting)
|
||||
{
|
||||
bStatus = 9;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
bStatus = 2;
|
||||
}
|
||||
break;
|
||||
else
|
||||
{
|
||||
bStatus = 6;
|
||||
}
|
||||
break;
|
||||
|
||||
case procStatus.accepted:
|
||||
bStatus = 5;
|
||||
break;
|
||||
case procStatus.error:
|
||||
if (isValidation || isTesting)
|
||||
{
|
||||
bStatus = 9;
|
||||
}
|
||||
else
|
||||
{
|
||||
bStatus = 7;
|
||||
}
|
||||
break;
|
||||
|
||||
case procStatus.refused:
|
||||
if (isValidation || isTesting)
|
||||
{
|
||||
bStatus = 9;
|
||||
}
|
||||
else
|
||||
{
|
||||
bStatus = 6;
|
||||
}
|
||||
break;
|
||||
case procStatus.aborted:
|
||||
default:
|
||||
if (isValidation || isTesting)
|
||||
{
|
||||
bStatus = 9;
|
||||
}
|
||||
else
|
||||
{
|
||||
bStatus = 0;
|
||||
}
|
||||
break;
|
||||
}
|
||||
// SALVO info riguardo al batch running
|
||||
DLMan.taBL.updateStatus(rispStima.BatchID, bStatus, rispStima.EnvNum, (decimal)rispStima.EstimatedWorktime / 60);
|
||||
// salvo update elenco ITEMS
|
||||
ComLib.updatePartsFromNesting(rispStima.PartList);
|
||||
|
||||
case procStatus.error:
|
||||
if (isValidation || isTesting)
|
||||
{
|
||||
bStatus = 9;
|
||||
}
|
||||
else
|
||||
{
|
||||
bStatus = 7;
|
||||
}
|
||||
break;
|
||||
// aggiorno la risposta dei tempi di esecuzione (+ NUM cart/part) degli ordini x permettere aggiustamenti
|
||||
ComLib.updateExtEstimFromNesting(rispStima.BatchID, rispStima.EstOrderList);
|
||||
|
||||
case procStatus.aborted:
|
||||
default:
|
||||
if (isValidation || isTesting)
|
||||
{
|
||||
bStatus = 9;
|
||||
}
|
||||
else
|
||||
{
|
||||
bStatus = 0;
|
||||
}
|
||||
break;
|
||||
// aggiorno cadPath x items che non abbiano valorizzato...
|
||||
string dxfFolder = memLayer.ML.CRS("drawingFolder");
|
||||
if (isTesting)
|
||||
{
|
||||
dxfFolder = memLayer.ML.CRS("fileTestFolder");
|
||||
}
|
||||
string cadBasePath = $"{memLayer.ML.CRS("nestBasePath")}{dxfFolder}/";
|
||||
DLMan.taIL.updateCadPath(cadBasePath, rispStima.BatchID, false);
|
||||
// registro OK
|
||||
answ = "OK";
|
||||
}
|
||||
// SALVO info riguardo al batch running
|
||||
DLMan.taBL.updateStatus(rispStima.BatchID, bStatus, rispStima.EnvNum, (decimal)rispStima.EstimatedWorktime / 60);
|
||||
// salvo update elenco ITEMS
|
||||
ComLib.updatePartsFromNesting(rispStima.PartList);
|
||||
|
||||
// aggiorno la risposta dei tempi di esecuzione (+ NUM cart/part) degli ordini x permettere aggiustamenti
|
||||
ComLib.updateExtEstimFromNesting(rispStima.BatchID, rispStima.EstOrderList);
|
||||
|
||||
// aggiorno cadPath x items che non abbiano valorizzato...
|
||||
string dxfFolder = memLayer.ML.CRS("drawingFolder");
|
||||
if (isTesting)
|
||||
{
|
||||
dxfFolder = memLayer.ML.CRS("fileTestFolder");
|
||||
}
|
||||
string cadBasePath = $"{memLayer.ML.CRS("nestBasePath")}{dxfFolder}/";
|
||||
DLMan.taIL.updateCadPath(cadBasePath, rispStima.BatchID, false);
|
||||
// registro OK
|
||||
answ = "OK";
|
||||
}
|
||||
// nesting
|
||||
else if (batchProcAnsw.ProcType == 2)
|
||||
@@ -411,84 +436,71 @@ namespace NKC_WF.Controllers
|
||||
// deserializzo come BatchreqFinale
|
||||
nestReplyBatchFinal rispNest = JsonConvert.DeserializeObject<nestReplyBatchFinal>(content);
|
||||
|
||||
// 2020.01.16 salvo su mongoDb la risposta...
|
||||
ComLib.man.saveNestAnsw(rispNest);
|
||||
|
||||
// calcolo status del batch...
|
||||
int bStatus = 2;
|
||||
switch (rispNest.ProcessStatus)
|
||||
// verifica preliminare che il batch possa accettare la risposta
|
||||
var currBatchStatus = ComLib.BStatus(rispNest.BatchID);
|
||||
if (currBatchStatus != BatchStatus.NestRequested)
|
||||
{
|
||||
case procStatus.waiting:
|
||||
case procStatus.running:
|
||||
bStatus = 3;
|
||||
break;
|
||||
|
||||
case procStatus.completed:
|
||||
bStatus = 4;
|
||||
break;
|
||||
|
||||
case procStatus.accepted:
|
||||
bStatus = 5;
|
||||
break;
|
||||
|
||||
case procStatus.refused:
|
||||
bStatus = 6;
|
||||
break;
|
||||
|
||||
case procStatus.error:
|
||||
bStatus = 7;
|
||||
break;
|
||||
|
||||
case procStatus.aborted:
|
||||
default:
|
||||
bStatus = 2;
|
||||
break;
|
||||
string message = $"Impossibile processing risposta da EgtNest | ProcType: {batchProcAnsw.ProcType} | BatchID: {rispNest.BatchID} | stato: {currBatchStatus}";
|
||||
logger.lg.scriviLog(message, tipoLog.ERROR);
|
||||
// registro KO
|
||||
answ = "KO";
|
||||
}
|
||||
// aggiorno il resto SOLO SE status == completo...
|
||||
if (rispNest.ProcessStatus == procStatus.completed || rispNest.ProcessStatus == procStatus.error)
|
||||
else
|
||||
{
|
||||
// resetto le precedenti elaborazioni: elimino dati child MA NON il batch...
|
||||
DLMan.taBL.resetTree(rispNest.BatchID);
|
||||
// SALVO info riguardo al batch completato
|
||||
DLMan.taBL.updateStatus(rispNest.BatchID, bStatus, rispNest.EnvNum, (decimal)rispNest.EstimatedWorktime / 60);
|
||||
// salvo info riguardo ai vari Bunk / Sheets / Items...
|
||||
ComLib.updateBunksFromNesting(rispNest.BatchID, rispNest.BunkList);
|
||||
// salvo info x CART & BINS previsti
|
||||
ComLib.updateBinsFromNesting(rispNest.BatchID, rispNest.BinList);
|
||||
ComLib.updateCartsFromNesting(rispNest.BatchID, rispNest.CartList);
|
||||
|
||||
#if false
|
||||
// NKC2: se è un batch ti dipo descendant
|
||||
if (ComLib.BType(rispNest.BatchID) == BatchType.Descendant)
|
||||
|
||||
// 2020.01.16 salvo su mongoDb la risposta...
|
||||
ComLib.man.saveNestAnsw(rispNest);
|
||||
|
||||
// calcolo status del batch...
|
||||
int bStatus = 2;
|
||||
switch (rispNest.ProcessStatus)
|
||||
{
|
||||
// verifico se ce ne siano altri NON validati (ma splitted)
|
||||
var tabDesc = ComLib.BatchOtherDescendant(rispNest.BatchID);
|
||||
if (tabDesc != null && tabDesc.Count > 0)
|
||||
{
|
||||
// ciclo x tutte le righe che NON fossero con nesting effettuato
|
||||
foreach (var item in tabDesc)
|
||||
{
|
||||
// se c'è qualcosa da processare lo richiede
|
||||
if (item.STATUS == 2)
|
||||
{
|
||||
// invio il PRIMO batch descendant
|
||||
ComLib.sendBatchReq(item.BatchID, "Nesting", 2, false);
|
||||
// registro su DB nesting iniziato...
|
||||
DLMan.taBL.updateStatus(item.BatchID, (int)BatchStatus.NestRequested, "", -1);
|
||||
isSplitReq = true;
|
||||
// esco
|
||||
break;
|
||||
}
|
||||
// se non ha trovato nulla --> prova update Batch Ancestor...
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
isSplitReq = ComLib.checkSendBatchSplit(rispNest.BatchID);
|
||||
}
|
||||
case procStatus.waiting:
|
||||
case procStatus.running:
|
||||
bStatus = 3;
|
||||
break;
|
||||
|
||||
// registro OK
|
||||
answ = "OK";
|
||||
case procStatus.completed:
|
||||
bStatus = 4;
|
||||
break;
|
||||
|
||||
case procStatus.accepted:
|
||||
bStatus = 5;
|
||||
break;
|
||||
|
||||
case procStatus.refused:
|
||||
bStatus = 6;
|
||||
break;
|
||||
|
||||
case procStatus.error:
|
||||
bStatus = 7;
|
||||
break;
|
||||
|
||||
case procStatus.aborted:
|
||||
default:
|
||||
bStatus = 2;
|
||||
break;
|
||||
}
|
||||
// aggiorno il resto SOLO SE status == completo...
|
||||
if (rispNest.ProcessStatus == procStatus.completed || rispNest.ProcessStatus == procStatus.error)
|
||||
{
|
||||
// resetto le precedenti elaborazioni: elimino dati child MA NON il batch...
|
||||
DLMan.taBL.resetTree(rispNest.BatchID);
|
||||
// SALVO info riguardo al batch completato
|
||||
DLMan.taBL.updateStatus(rispNest.BatchID, bStatus, rispNest.EnvNum, (decimal)rispNest.EstimatedWorktime / 60);
|
||||
// salvo info riguardo ai vari Bunk / Sheets / Items...
|
||||
ComLib.updateBunksFromNesting(rispNest.BatchID, rispNest.BunkList);
|
||||
// salvo info x CART & BINS previsti
|
||||
ComLib.updateBinsFromNesting(rispNest.BatchID, rispNest.BinList);
|
||||
ComLib.updateCartsFromNesting(rispNest.BatchID, rispNest.CartList);
|
||||
|
||||
isSplitReq = ComLib.checkSendBatchSplit(rispNest.BatchID);
|
||||
}
|
||||
|
||||
// registro OK
|
||||
answ = "OK";
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (batchProcAnsw.OrderType == oType.OfflineOrder)
|
||||
|
||||
Reference in New Issue
Block a user