Merge branch 'release/BatchProcAddLogNesting01'
This commit is contained in:
+13
-6
@@ -516,6 +516,7 @@ namespace AppData
|
||||
/// <returns></returns>
|
||||
public static bool checkSendBatchSplit(int BatchID)
|
||||
{
|
||||
string logIdKey = $"checkSendBatchSplit | BatchID: {BatchID} |";
|
||||
int nextIndex = 10;
|
||||
bool batchSent = false;
|
||||
bool batchProcessed = false;
|
||||
@@ -523,11 +524,11 @@ namespace AppData
|
||||
var currType = ComLib.BType(BatchID);
|
||||
|
||||
// log tipo di batch
|
||||
Log.Instance.Info($"Batch currType: {currType}");
|
||||
Log.Instance.Info($"{logIdKey} | Batch currType: {currType}");
|
||||
// NKC2: controllo SE sia un batch tipo ancestor (1° invio)
|
||||
if (currType == BatchType.Ancestor)
|
||||
{
|
||||
Log.Instance.Info("Batch Ancestor | 01");
|
||||
Log.Instance.Info($"{logIdKey} | Batch Ancestor | 01");
|
||||
// recupero batch descendant
|
||||
var tabDesc = ComLib.BatchDescendant(BatchID);
|
||||
if (tabDesc != null && tabDesc.Count > 0)
|
||||
@@ -566,12 +567,12 @@ namespace AppData
|
||||
break;
|
||||
}
|
||||
}
|
||||
Log.Instance.Info("Batch Ancestor | 02");
|
||||
Log.Instance.Info($"{logIdKey} | Batch Ancestor | 02");
|
||||
}
|
||||
// NKC2: se è un batch ti dipo descendant (invii successivi)
|
||||
if (currType == BatchType.Descendant)
|
||||
{
|
||||
Log.Instance.Info("Batch Descendant | 01");
|
||||
Log.Instance.Info($"{logIdKey} | Batch Descendant | 01");
|
||||
// verifico se ce ne siano altri NON validati (ma splitted)
|
||||
var tabDesc = ComLib.BatchOtherDescendant(BatchID);
|
||||
if (tabDesc != null && tabDesc.Count > 0)
|
||||
@@ -585,6 +586,7 @@ namespace AppData
|
||||
if (item.STATUS == 2)
|
||||
{
|
||||
nextIndex += 50;
|
||||
Log.Instance.Info($"{logIdKey} | Batch Descendant | PlaceCod: {item.PlaceCod} | Takt: {item.Takt} | nextIndex: {nextIndex}");
|
||||
// 2021.07.19 FIX x caso batch vuoto: se non ho pezzi --> approvo
|
||||
// direttamente e passo al successivo...
|
||||
var tabItems = DLMan.taIL.getByBatch(item.BatchID);
|
||||
@@ -616,10 +618,10 @@ namespace AppData
|
||||
}
|
||||
}
|
||||
|
||||
Log.Instance.Info("Batch Descendant | 02");
|
||||
Log.Instance.Info($"{logIdKey} | Batch Descendant | 02");
|
||||
}
|
||||
|
||||
Log.Instance.Info($"Batch test result: {batchSent}");
|
||||
Log.Instance.Info($"{logIdKey} | Batch test result: {batchSent}");
|
||||
return batchSent;
|
||||
}
|
||||
|
||||
@@ -1907,6 +1909,10 @@ namespace AppData
|
||||
/// <returns></returns>
|
||||
public static bool sendBatchReq(int BatchID, string note, int pType, bool isValidation, int numIndexStart, bool createPng)
|
||||
{
|
||||
string logIdKey = $"sendBatchReq | BatchID: {BatchID}";
|
||||
// loggo richiesta
|
||||
Log.Instance.Info($"{logIdKey} | numIndexStart: {numIndexStart}");
|
||||
Log.Instance.Info($"{logIdKey} | note: {note} | pType: {pType} | isValidation: {isValidation} | createPng: {createPng}");
|
||||
DataLayer DLMan = new DataLayer();
|
||||
bool answ = false;
|
||||
// per prima cosa mi serve una "nuova busta" per inviare i messaggi
|
||||
@@ -2021,6 +2027,7 @@ namespace AppData
|
||||
}
|
||||
catch
|
||||
{ }
|
||||
Log.Instance.Info($"{logIdKey} | req completed | currBatchReq: {nextEnv}");
|
||||
// restituisco ok
|
||||
return answ;
|
||||
}
|
||||
|
||||
@@ -92,6 +92,7 @@ namespace NKC_WF.Controllers
|
||||
[HttpPost]
|
||||
public string Post()
|
||||
{
|
||||
string logIdKey = "BatchProcController.Post()";
|
||||
string answ = "";
|
||||
bool resetOk = false;
|
||||
string envNum = "";
|
||||
@@ -114,7 +115,7 @@ namespace NKC_WF.Controllers
|
||||
// DEBUG: salvo su redis x fare DEBUG
|
||||
string redKey = $"{ComLib.redNestAnsw}:LAST_CALL";
|
||||
memLayer.ML.setRSV(redKey, content);
|
||||
Log.Instance.Info($"BatchProcController | Post() data received | length: {content.Length}");
|
||||
Log.Instance.Info($"{logIdKey} | Post() data received | length: {content.Length}");
|
||||
|
||||
// deserializzo
|
||||
batchProcAnsw = JsonConvert.DeserializeObject<baseNestAnsw>(content);
|
||||
@@ -123,11 +124,11 @@ namespace NKC_WF.Controllers
|
||||
if (envNum == batchProcAnsw.EnvNum)
|
||||
{
|
||||
resetOk = ComLib.resetBatchReq();
|
||||
Log.Instance.Info($"BatchProcController | resetBatchReq() DONE");
|
||||
Log.Instance.Info($"{logIdKey} | resetBatchReq() DONE | envNum: {envNum}");
|
||||
}
|
||||
else
|
||||
{
|
||||
Log.Instance.Info($"BatchProcController | resetBatchReq() NOT executed | envNum: {envNum} | batchProcAnsw.EnvNum: {batchProcAnsw.EnvNum}");
|
||||
Log.Instance.Info($"{logIdKey} | resetBatchReq() NOT executed | envNum: {envNum} | batchProcAnsw.EnvNum: {batchProcAnsw.EnvNum}");
|
||||
}
|
||||
// procedura idempotente: elimino eventuali dati della "busta" precedente...
|
||||
DLMan.taEL.deteteByParent("", batchProcAnsw.EnvNum);
|
||||
@@ -144,7 +145,7 @@ namespace NKC_WF.Controllers
|
||||
// se non nullo...
|
||||
if (batchProcAnsw != null)
|
||||
{
|
||||
Log.Instance.Info($"And | OrderType: {batchProcAnsw.OrderType} | ProcType: {batchProcAnsw.ProcType}");
|
||||
Log.Instance.Info($"{logIdKey} | OrderType: {batchProcAnsw.OrderType} | ProcType: {batchProcAnsw.ProcType}");
|
||||
/*************************************************
|
||||
* IN BASE al tipo di risposta saprò se
|
||||
* - è BatchReq / OfflineOrder
|
||||
@@ -156,11 +157,11 @@ namespace NKC_WF.Controllers
|
||||
*************************************************/
|
||||
if (batchProcAnsw.OrderType == oType.BatchRequest)
|
||||
{
|
||||
Log.Instance.Info("Processing oType.BatchRequest");
|
||||
Log.Instance.Info($"{logIdKey} | Processing oType.BatchRequest");
|
||||
// stima "classica"
|
||||
if (batchProcAnsw.ProcType == 1)
|
||||
{
|
||||
Log.Instance.Info("Processing ProcType == 1");
|
||||
Log.Instance.Info($"{logIdKey} | Processing ProcType == 1");
|
||||
BatchStatus bStatus = BatchStatus.Imported;
|
||||
// deserializzo come BatchreqIniziale (stima)
|
||||
nestReplyBatchInitial rispStima = JsonConvert.DeserializeObject<nestReplyBatchInitial>(content);
|
||||
@@ -172,7 +173,7 @@ namespace NKC_WF.Controllers
|
||||
if (currBatchStatus != BatchStatus.EstimationRequested)
|
||||
{
|
||||
string message = $"E.BR.1 Impossibile processing della risposta da EgtNest | ProcType: {batchProcAnsw.ProcType} | BatchID: {rispStima.BatchID} | stato da DB: {currBatchStatus} | stato richiesto: {BatchStatus.EstimationRequested}";
|
||||
logger.lg.scriviLog(message, tipoLog.ERROR);
|
||||
Log.Instance.Error($"{logIdKey} | {message}");
|
||||
// registro KO
|
||||
answ = "KO";
|
||||
}
|
||||
@@ -275,7 +276,7 @@ namespace NKC_WF.Controllers
|
||||
}
|
||||
break;
|
||||
}
|
||||
Log.Instance.Info($"Batch Status calculated | BatchID: {rispStima.BatchID} | bStatus {bStatus}");
|
||||
Log.Instance.Info($"{logIdKey} | Batch Status calculated | BatchID: {rispStima.BatchID} | bStatus {bStatus}");
|
||||
// SALVO info riguardo al batch running
|
||||
DLMan.taBL.updateStatus(rispStima.BatchID, (int)bStatus, rispStima.EnvNum, (decimal)rispStima.EstimatedWorktime / 60);
|
||||
// salvo update elenco ITEMS
|
||||
@@ -315,7 +316,7 @@ namespace NKC_WF.Controllers
|
||||
// stima "extended" x splitting
|
||||
else if (batchProcAnsw.ProcType == 3)
|
||||
{
|
||||
Log.Instance.Info("Processing ProcType == 3");
|
||||
Log.Instance.Info($"{logIdKey} | Processing ProcType == 3");
|
||||
BatchStatus bStatus = BatchStatus.Imported;
|
||||
// deserializzo come BatchreqIniziale (stima)
|
||||
nestReplyBatchExtEst rispStima = JsonConvert.DeserializeObject<nestReplyBatchExtEst>(content);
|
||||
@@ -324,7 +325,7 @@ namespace NKC_WF.Controllers
|
||||
if (currBatchStatus != BatchStatus.EstimationRequested)
|
||||
{
|
||||
string message = $"E.BR.2 Impossibile processing della risposta da EgtNest | ProcType: {batchProcAnsw.ProcType} | BatchID: {rispStima.BatchID} | stato da DB: {currBatchStatus} | stato richiesto: {BatchStatus.EstimationRequested}";
|
||||
logger.lg.scriviLog(message, tipoLog.ERROR);
|
||||
Log.Instance.Error($"{logIdKey} | {message}");
|
||||
// registro KO
|
||||
answ = "KO";
|
||||
}
|
||||
@@ -427,7 +428,7 @@ namespace NKC_WF.Controllers
|
||||
}
|
||||
break;
|
||||
}
|
||||
Log.Instance.Info($"Batch Status calculated | BatchID: {rispStima.BatchID} | bStatus {bStatus}");
|
||||
Log.Instance.Info($"{logIdKey} | Batch Status calculated | BatchID: {rispStima.BatchID} | bStatus {bStatus}");
|
||||
// SALVO info riguardo al batch running
|
||||
DLMan.taBL.updateStatus(rispStima.BatchID, (int)bStatus, rispStima.EnvNum, (decimal)rispStima.EstimatedWorktime / 60);
|
||||
// salvo update elenco ITEMS
|
||||
@@ -458,7 +459,7 @@ namespace NKC_WF.Controllers
|
||||
// nesting
|
||||
else if (batchProcAnsw.ProcType == 2)
|
||||
{
|
||||
Log.Instance.Info("Processing ProcType == 2 | NESTING");
|
||||
Log.Instance.Info($"{logIdKey} | Processing ProcType == 2 | NESTING");
|
||||
// deserializzo come BatchreqFinale
|
||||
nestReplyBatchFinal rispNest = JsonConvert.DeserializeObject<nestReplyBatchFinal>(content);
|
||||
|
||||
@@ -468,13 +469,13 @@ namespace NKC_WF.Controllers
|
||||
if (currBatchStatus != BatchStatus.NestRequested)
|
||||
{
|
||||
string message = $"E.BR.3 Impossibile processing della risposta da EgtNest | ProcType: {batchProcAnsw.ProcType} | BatchID: {rispNest.BatchID} | stato da DB: {currBatchStatus} | stato richiesto: {BatchStatus.NestRequested}";
|
||||
logger.lg.scriviLog(message, tipoLog.ERROR);
|
||||
Log.Instance.Error($"{logIdKey} | {message}");
|
||||
// registro KO
|
||||
answ = "KO";
|
||||
}
|
||||
else
|
||||
{
|
||||
Log.Instance.Info($"Response status OK | ProcType: {batchProcAnsw.ProcType} | BatchID: {rispNest.BatchID} | stato da DB: {currBatchStatus} | stato richiesto: {BatchStatus.NestRequested}");
|
||||
Log.Instance.Info($"{logIdKey} | Response status OK | ProcType: {batchProcAnsw.ProcType} | BatchID: {rispNest.BatchID} | stato da DB: {currBatchStatus} | stato richiesto: {BatchStatus.NestRequested}");
|
||||
// 2020.01.16 salvo su mongoDb la risposta...
|
||||
ComLib.man.saveNestAnsw(rispNest);
|
||||
|
||||
@@ -508,7 +509,7 @@ namespace NKC_WF.Controllers
|
||||
bStatus = BatchStatus.EstimationDone;
|
||||
break;
|
||||
}
|
||||
Log.Instance.Info($"Batch Status calculated | BatchID: {rispNest.BatchID} | bStatus {bStatus} | stato da DB: {currBatchStatus} | rispNest.ProcessStatus: {rispNest.ProcessStatus}");
|
||||
Log.Instance.Info($"{logIdKey} | Batch Status calculated | BatchID: {rispNest.BatchID} | bStatus {bStatus} | stato da DB: {currBatchStatus} | rispNest.ProcessStatus: {rispNest.ProcessStatus}");
|
||||
// aggiorno il resto SOLO SE status == completo...
|
||||
if (rispNest.ProcessStatus == procStatus.completed || rispNest.ProcessStatus == procStatus.error)
|
||||
{
|
||||
@@ -517,7 +518,7 @@ namespace NKC_WF.Controllers
|
||||
// SALVO info riguardo al batch completato
|
||||
DLMan.taBL.updateStatus(rispNest.BatchID, (int)bStatus, rispNest.EnvNum, (decimal)rispNest.EstimatedWorktime / 60);
|
||||
|
||||
Log.Instance.Info($"BL.updateStatus | BatchID: {rispNest.BatchID} | bStatus: {bStatus} | EnvNum: {rispNest.EnvNum} | EstimatedWorktime: {rispNest.EstimatedWorktime}");
|
||||
Log.Instance.Info($"{logIdKey} | BL.updateStatus | BatchID: {rispNest.BatchID} | bStatus: {bStatus} | EnvNum: {rispNest.EnvNum} | EstimatedWorktime: {rispNest.EstimatedWorktime}");
|
||||
|
||||
// salvo info riguardo ai vari Bunk / Sheets / Items...
|
||||
if (rispNest.BunkList != null && rispNest.BunkList.Count > 0)
|
||||
@@ -541,7 +542,7 @@ namespace NKC_WF.Controllers
|
||||
stopWatchLap.Start();
|
||||
ComLib.man.updateSheetStatsByBatch(rispNest.BatchID);
|
||||
stopWatchLap.Stop();
|
||||
Log.Instance.Info($"Batch Stat Calculation after NEST answ | BatchID: {rispNest.BatchID} | elapsed {stopWatchLap.Elapsed.TotalMilliseconds} ms");
|
||||
Log.Instance.Info($"{logIdKey} | Batch Stat Calculation after NEST answ | BatchID: {rispNest.BatchID} | elapsed {stopWatchLap.Elapsed.TotalMilliseconds} ms");
|
||||
}
|
||||
|
||||
// registro OK
|
||||
@@ -551,7 +552,7 @@ namespace NKC_WF.Controllers
|
||||
}
|
||||
else if (batchProcAnsw.OrderType == oType.OfflineOrder)
|
||||
{
|
||||
Log.Instance.Info("Processing oType.OfflineOrder");
|
||||
Log.Instance.Info($"{logIdKey} | Processing oType.OfflineOrder");
|
||||
// deserializzo come OfflineOrder
|
||||
nestReplyOffOrd rispOffOrd = JsonConvert.DeserializeObject<nestReplyOffOrd>(content);
|
||||
|
||||
@@ -602,36 +603,36 @@ namespace NKC_WF.Controllers
|
||||
{
|
||||
answ = "WRONG DATA (expected baseNestAnsw object)";
|
||||
//Log.inf
|
||||
Log.Instance.Error(answ);
|
||||
Log.Instance.Error($"{logIdKey} | {answ}");
|
||||
}
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
answ = "NO";
|
||||
Log.Instance.Error($"EXCEPTION api/BatchProc{Environment.NewLine}{exc}");
|
||||
Log.Instance.Error($"{logIdKey} | EXCEPTION api/BatchProc{Environment.NewLine}{exc}");
|
||||
}
|
||||
// se tutto OK --> tolgo ultimo batch
|
||||
if (answ == "OK")
|
||||
{
|
||||
Log.Instance.Info($"Close A.01 | batchProcAnsw.EnvNum {batchProcAnsw.EnvNum}");
|
||||
Log.Instance.Info($"{logIdKey} | Close A.01 | batchProcAnsw.EnvNum {batchProcAnsw.EnvNum}");
|
||||
// se è una split req --> NON resetto...
|
||||
if (!isSplitReq)
|
||||
{
|
||||
Log.Instance.Info("Close B.01");
|
||||
Log.Instance.Info($"{logIdKey} | Close B.01");
|
||||
// reset
|
||||
resetOk = ComLib.resetBatchReq();
|
||||
Log.Instance.Info("Effettuato reset resetBatchReq");
|
||||
Log.Instance.Info($"{logIdKey} | Effettuato reset resetBatchReq");
|
||||
// se tutto ok e ci sono da validare parts --> procedo!
|
||||
Log.Instance.Info("Close B.02");
|
||||
Log.Instance.Info($"{logIdKey} | Close B.02");
|
||||
if (resetOk)
|
||||
{
|
||||
Log.Instance.Info("Close B.03");
|
||||
Log.Instance.Info($"{logIdKey} | Close B.03");
|
||||
|
||||
bool PartValForCreatePng = memLayer.ML.cdvb("PartValidationForceCreatePng");
|
||||
bool DxfValForceCreatePng = memLayer.ML.cdvb("DxfValidationForceCreatePng");
|
||||
bool forceCreatePng = (isValidation || isTesting) && (PartValForCreatePng || DxfValForceCreatePng);
|
||||
bool nextValidSent = ComLib.sendFirstValidationBatch(forceCreatePng);
|
||||
Log.Instance.Info("Close B.04");
|
||||
Log.Instance.Info($"{logIdKey} | Close B.04");
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -640,10 +641,10 @@ namespace NKC_WF.Controllers
|
||||
//// rimetto in coda la richiesta SUCCESSIVA
|
||||
//ComLib.currBatchReq = envNum;
|
||||
#endif
|
||||
Log.Instance.Info($"Close C.01 - requeue DENIED for {envNum}");
|
||||
Log.Instance.Info($"{logIdKey} | Close C.01 - requeue DENIED for {envNum}");
|
||||
}
|
||||
}
|
||||
Log.Instance.Info("Close D.01");
|
||||
Log.Instance.Info($"{logIdKey} | Close D.01");
|
||||
// restituisco risposta
|
||||
return answ;
|
||||
}
|
||||
|
||||
@@ -41,7 +41,7 @@
|
||||
<asp:Parameter DefaultValue="999" Name="maxStatus" Type="Int32" />
|
||||
</SelectParameters>
|
||||
</asp:ObjectDataSource>
|
||||
<asp:LinkButton runat="server" ID="lbtCreateOffOrd" CssClass="btn btn-outline-success btn-block" OnClick="lbtCreateOffOrd_Click" OnClientClick='return confirm("Confirm create order fo selected items?")'><%: traduci("CreateOrder") %> <i class="fa fa-arrow-circle-right" aria-hidden="true"></i></asp:LinkButton>
|
||||
<asp:LinkButton runat="server" ID="lbtCreateOffOrd" CssClass="btn btn-outline-success btn-block" OnClick="lbtCreateOffOrd_Click" OnClientClick='return confirm("Confirm create order for selected items?")'><%: traduci("CreateOrder") %> <i class="fa fa-arrow-circle-right" aria-hidden="true"></i></asp:LinkButton>
|
||||
</div>
|
||||
<div class="card-footer">
|
||||
<uc1:mod_righePag runat="server" ID="mod_righePag" />
|
||||
|
||||
+27
-25
@@ -1,50 +1,52 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <generato automaticamente>
|
||||
// Codice generato da uno strumento.
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
//
|
||||
// Le modifiche a questo file possono causare un comportamento non corretto e verranno perse se
|
||||
// il codice viene rigenerato.
|
||||
// </generato automaticamente>
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace NKC_WF.WebUserControls {
|
||||
|
||||
|
||||
public partial class cmp_scrapList {
|
||||
|
||||
namespace NKC_WF.WebUserControls
|
||||
{
|
||||
|
||||
|
||||
public partial class cmp_scrapList
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// Controllo grView.
|
||||
/// grView control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Campo generato automaticamente.
|
||||
/// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind.
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.GridView grView;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Controllo ods.
|
||||
/// ods control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Campo generato automaticamente.
|
||||
/// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind.
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.ObjectDataSource ods;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Controllo lbtCreateOffOrd.
|
||||
/// lbtCreateOffOrd control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Campo generato automaticamente.
|
||||
/// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind.
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.LinkButton lbtCreateOffOrd;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Controllo mod_righePag.
|
||||
/// mod_righePag control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Campo generato automaticamente.
|
||||
/// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind.
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::NKC_WF.WebUserControls.mod_righePag mod_righePag;
|
||||
}
|
||||
|
||||
@@ -833,8 +833,15 @@ namespace NKC_WF.WebUserControls
|
||||
itemIdSelected = 0;
|
||||
}
|
||||
resetShowData();
|
||||
ComLib.resetItemPickup(SheetID, DeviceId);
|
||||
lgDebug($"ComLib.resetItemPickup | SheetID {SheetID} | DeviceId: {DeviceId}");
|
||||
if (SheetID > 0)
|
||||
{
|
||||
ComLib.resetItemPickup(SheetID, DeviceId);
|
||||
lgDebug($"ComLib.resetItemPickup | SheetID {SheetID} | DeviceId: {DeviceId}");
|
||||
}
|
||||
else
|
||||
{
|
||||
lgInfo($"Errore in resetSelection: SheetID=0 | resetStatus: {resetStatus} | DeviceId: {DeviceId}");
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -845,8 +852,15 @@ namespace NKC_WF.WebUserControls
|
||||
{
|
||||
// salvo in item sel...
|
||||
updateCurrData();
|
||||
bool fatto = ComLib.saveItemPickup(SheetID, DeviceId, itemDtmx);
|
||||
lgInfo($"cmp_unloadSmart | tryPickup | item: {itemDtmx} | SheetID: {SheetID} | DeviceId: {DeviceId} | done: {fatto}");
|
||||
if (SheetID > 0)
|
||||
{
|
||||
bool fatto = ComLib.saveItemPickup(SheetID, DeviceId, itemDtmx);
|
||||
lgInfo($"cmp_unloadSmart | tryPickup | item: {itemDtmx} | SheetID: {SheetID} | DeviceId: {DeviceId} | done: {fatto}");
|
||||
}
|
||||
else
|
||||
{
|
||||
lgInfo($"Errore in tryPickup: SheetID=0 | itemDtmx: {itemDtmx}");
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
Reference in New Issue
Block a user