+
+
W.I.P.
+ (procedure under revision)
diff --git a/NKC_WF/WebUserControls/cmp_menuTop.ascx.cs b/NKC_WF/WebUserControls/cmp_menuTop.ascx.cs
index 31e2e10..2d85a2a 100644
--- a/NKC_WF/WebUserControls/cmp_menuTop.ascx.cs
+++ b/NKC_WF/WebUserControls/cmp_menuTop.ascx.cs
@@ -110,7 +110,7 @@ namespace NKC_WF.WebUserControls
if (doFullReset)
{
// reset REDIS x css
- ComLib.man.resetPostUnload();
+ ComLib.man.resetSheetUnload();
// aggiorno vocabolario
DataWrap.DW.resetVocabolario();
// reset dati in cache x DbConfig...
diff --git a/NKC_WF/WebUserControls/cmp_unloadSmart.ascx.cs b/NKC_WF/WebUserControls/cmp_unloadSmart.ascx.cs
index c1c3a6b..4c810cd 100644
--- a/NKC_WF/WebUserControls/cmp_unloadSmart.ascx.cs
+++ b/NKC_WF/WebUserControls/cmp_unloadSmart.ascx.cs
@@ -9,6 +9,39 @@ namespace NKC_WF.WebUserControls
protected bool showBin = false;
protected bool showCart = false;
protected bool showSecOp = false;
+ ///
+ /// ID univoco da IP
+ ///
+ protected string deviceId = "AAA";
+
+ ///
+ /// Batch selezionato
+ ///
+ protected int BatchID;
+ ///
+ /// Sheet selezionato...
+ ///
+ protected int SheetID;
+ ///
+ /// IP del device
+ ///
+ ///
+ protected string GetIPAddress()
+ {
+ System.Web.HttpContext context = System.Web.HttpContext.Current;
+ string ipAddress = context.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
+
+ if (!string.IsNullOrEmpty(ipAddress))
+ {
+ string[] addresses = ipAddress.Split(',');
+ if (addresses.Length != 0)
+ {
+ return addresses[0];
+ }
+ }
+
+ return context.Request.ServerVariables["REMOTE_ADDR"];
+ }
protected string secOp
{
get
@@ -20,11 +53,27 @@ namespace NKC_WF.WebUserControls
hfSecOp.Value = value;
}
}
+ ///
+ /// Aggiorna dati correnti (IP, batch, sheet...)
+ ///
+ protected void updateCurrData()
+ {
+ //!!!FIXME!!! fare calcolo del VERO batch corrente...
+ BatchID = 242;
+ // FORSE 5/5?!?
+ var sheetList = DataLayer.man.taSHL.getByMLStatus(BatchID, 3, 5);
+ if (sheetList.Count > 0)
+ {
+ SheetID = sheetList[0].SheetID;
+ }
+ }
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
+ deviceId = GetIPAddress().Replace(".", "_");
resetIcons();
+ updateCurrData();
}
cmp_barcode.eh_doRefresh += Cmp_barcode_eh_doRefresh;
cmp_barcode.eh_doReset += Cmp_barcode_eh_doReset;
@@ -82,15 +131,6 @@ namespace NKC_WF.WebUserControls
cmp_barcode.inputAcquired = "";
// aggiorno...
doUpdate();
-#if false
- // se richiesto faccio raiseEvent
- if (doRaiseEv)
- {
- cmp_stackNextloading.doUpdate();
- raiseEvent();
- }
-#endif
-
}
private bool processLastCmd(bool doRaiseEv)
@@ -102,13 +142,17 @@ namespace NKC_WF.WebUserControls
{
case codeType.UNK:
cmp_barcode.showOutput("text-danger", $"Unknown Data: {decoData.rawData} --> no action");
+ // elimino item sel...
+ ComLib.resetItemPickup(SheetID, deviceId);
doRaiseEv = true;
break;
case codeType.Item:
+ tryPickup(decoData.rawData);
cmp_barcode.showOutput("badge badge-success", $"Valid IT Code: {decoData.rawData}");
processItemSuggestion(decoData.codeType, decoData.rawData, decoData.codeInt);
break;
case codeType.ItemGeneric:
+ tryPickup(decoData.rawData);
cmp_barcode.showOutput("badge badge-success", $"Valid IG Code: {decoData.rawData}");
processItemSuggestion(decoData.codeType, decoData.rawData, decoData.codeInt);
break;
@@ -138,11 +182,24 @@ namespace NKC_WF.WebUserControls
break;
default:
cmp_barcode.showOutput("text-danger", $"Unknown Data: {decoData.rawData} --> no action");
+ // elimino item sel...
+ ComLib.resetItemPickup(SheetID, deviceId);
break;
}
return doRaiseEv;
}
+ ///
+ /// Prova a fare pickup (SOLO SE il mio item è nel foglio corrente...)
+ ///
+ ///
+ protected void tryPickup(string itemDtmx)
+ {
+ // salvo in item sel...
+ updateCurrData();
+ deviceId = GetIPAddress().Replace(".", "0").Replace(":", "0");
+ ComLib.saveItemPickup(SheetID, deviceId, itemDtmx);
+ }
///
/// Processo il DataMatrix letto
@@ -199,6 +256,8 @@ namespace NKC_WF.WebUserControls
// dichiaro che è depositato
DataLayer.man.taIL.updateStatus(itemIdSelected, 4, "WRK001");
lblDestination.Text = $"Item {itemIdSelected} PUT IN CART {rawData}";
+ // elimino item sel...
+ ComLib.resetItemPickup(SheetID, deviceId);
}
}
break;
@@ -217,6 +276,8 @@ namespace NKC_WF.WebUserControls
// dichiaro che è depositato
DataLayer.man.taIL.updateStatus(itemIdSelected, 5, "WRK001");
lblDestination.Text = $"Item {itemIdSelected} PUT IN BIN {rawData}";
+ // elimino item sel...
+ ComLib.resetItemPickup(SheetID, deviceId);
}
}
break;
diff --git a/NKC_WF/WebUserControls/cmp_unloadSmart.ascx.designer.cs b/NKC_WF/WebUserControls/cmp_unloadSmart.ascx.designer.cs
index 7ec4d2b..f458543 100644
--- a/NKC_WF/WebUserControls/cmp_unloadSmart.ascx.designer.cs
+++ b/NKC_WF/WebUserControls/cmp_unloadSmart.ascx.designer.cs
@@ -7,198 +7,200 @@
//
//------------------------------------------------------------------------------
-namespace NKC_WF.WebUserControls {
-
-
- public partial class cmp_unloadSmart {
-
- ///
- /// Controllo cmp_barcode.
- ///
- ///
- /// Campo generato automaticamente.
- /// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind.
- ///
- protected global::NKC_WF.WebUserControls.cmp_barcode cmp_barcode;
-
- ///
- /// Controllo hfLastBCode.
- ///
- ///
- /// Campo generato automaticamente.
- /// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind.
- ///
- protected global::System.Web.UI.WebControls.HiddenField hfLastBCode;
-
- ///
- /// Controllo hfLastValidBCode.
- ///
- ///
- /// Campo generato automaticamente.
- /// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind.
- ///
- protected global::System.Web.UI.WebControls.HiddenField hfLastValidBCode;
-
- ///
- /// Controllo divItemDet.
- ///
- ///
- /// Campo generato automaticamente.
- /// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind.
- ///
- protected global::System.Web.UI.HtmlControls.HtmlGenericControl divItemDet;
-
- ///
- /// Controllo hfItemID.
- ///
- ///
- /// Campo generato automaticamente.
- /// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind.
- ///
- protected global::System.Web.UI.WebControls.HiddenField hfItemID;
-
- ///
- /// Controllo lblItemCode.
- ///
- ///
- /// Campo generato automaticamente.
- /// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind.
- ///
- protected global::System.Web.UI.WebControls.Label lblItemCode;
-
- ///
- /// Controllo lblItemDesc.
- ///
- ///
- /// Campo generato automaticamente.
- /// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind.
- ///
- protected global::System.Web.UI.WebControls.Label lblItemDesc;
-
- ///
- /// Controllo lblItemDtmx.
- ///
- ///
- /// Campo generato automaticamente.
- /// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind.
- ///
- protected global::System.Web.UI.WebControls.Label lblItemDtmx;
-
- ///
- /// Controllo divItemError.
- ///
- ///
- /// Campo generato automaticamente.
- /// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind.
- ///
- protected global::System.Web.UI.HtmlControls.HtmlGenericControl divItemError;
-
- ///
- /// Controllo lblErrorMsg.
- ///
- ///
- /// Campo generato automaticamente.
- /// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind.
- ///
- protected global::System.Web.UI.WebControls.Label lblErrorMsg;
-
- ///
- /// Controllo hfSecOp.
- ///
- ///
- /// Campo generato automaticamente.
- /// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind.
- ///
- protected global::System.Web.UI.WebControls.HiddenField hfSecOp;
-
- ///
- /// Controllo icnCart.
- ///
- ///
- /// Campo generato automaticamente.
- /// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind.
- ///
- protected global::System.Web.UI.HtmlControls.HtmlGenericControl icnCart;
-
- ///
- /// Controllo icnBin.
- ///
- ///
- /// Campo generato automaticamente.
- /// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind.
- ///
- protected global::System.Web.UI.HtmlControls.HtmlGenericControl icnBin;
-
- ///
- /// Controllo icnSecOp.
- ///
- ///
- /// Campo generato automaticamente.
- /// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind.
- ///
- protected global::System.Web.UI.HtmlControls.HtmlGenericControl icnSecOp;
-
- ///
- /// Controllo lbtCancel.
- ///
- ///
- /// Campo generato automaticamente.
- /// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind.
- ///
- protected global::System.Web.UI.WebControls.LinkButton lbtCancel;
-
- ///
- /// Controllo lblLastBCode.
- ///
- ///
- /// Campo generato automaticamente.
- /// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind.
- ///
- protected global::System.Web.UI.WebControls.Label lblLastBCode;
-
- ///
- /// Controllo lblMessage.
- ///
- ///
- /// Campo generato automaticamente.
- /// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind.
- ///
- protected global::System.Web.UI.WebControls.Label lblMessage;
-
- ///
- /// Controllo lblDestination.
- ///
- ///
- /// Campo generato automaticamente.
- /// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind.
- ///
- protected global::System.Web.UI.WebControls.Label lblDestination;
-
- ///
- /// Controllo lbtScrapped.
- ///
- ///
- /// Campo generato automaticamente.
- /// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind.
- ///
- protected global::System.Web.UI.WebControls.LinkButton lbtScrapped;
-
- ///
- /// Controllo lbtParkArea.
- ///
- ///
- /// Campo generato automaticamente.
- /// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind.
- ///
- protected global::System.Web.UI.WebControls.LinkButton lbtParkArea;
-
- ///
- /// Controllo lbtResetSel.
- ///
- ///
- /// Campo generato automaticamente.
- /// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind.
- ///
- protected global::System.Web.UI.WebControls.LinkButton lbtResetSel;
- }
+namespace NKC_WF.WebUserControls
+{
+
+
+ public partial class cmp_unloadSmart
+ {
+
+ ///
+ /// Controllo cmp_barcode.
+ ///
+ ///
+ /// Campo generato automaticamente.
+ /// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind.
+ ///
+ protected global::NKC_WF.WebUserControls.cmp_barcode cmp_barcode;
+
+ ///
+ /// Controllo hfLastBCode.
+ ///
+ ///
+ /// Campo generato automaticamente.
+ /// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind.
+ ///
+ protected global::System.Web.UI.WebControls.HiddenField hfLastBCode;
+
+ ///
+ /// Controllo hfLastValidBCode.
+ ///
+ ///
+ /// Campo generato automaticamente.
+ /// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind.
+ ///
+ protected global::System.Web.UI.WebControls.HiddenField hfLastValidBCode;
+
+ ///
+ /// Controllo divItemDet.
+ ///
+ ///
+ /// Campo generato automaticamente.
+ /// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind.
+ ///
+ protected global::System.Web.UI.HtmlControls.HtmlGenericControl divItemDet;
+
+ ///
+ /// Controllo hfItemID.
+ ///
+ ///
+ /// Campo generato automaticamente.
+ /// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind.
+ ///
+ protected global::System.Web.UI.WebControls.HiddenField hfItemID;
+
+ ///
+ /// Controllo lblItemCode.
+ ///
+ ///
+ /// Campo generato automaticamente.
+ /// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind.
+ ///
+ protected global::System.Web.UI.WebControls.Label lblItemCode;
+
+ ///
+ /// Controllo lblItemDesc.
+ ///
+ ///
+ /// Campo generato automaticamente.
+ /// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind.
+ ///
+ protected global::System.Web.UI.WebControls.Label lblItemDesc;
+
+ ///
+ /// Controllo lblItemDtmx.
+ ///
+ ///
+ /// Campo generato automaticamente.
+ /// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind.
+ ///
+ protected global::System.Web.UI.WebControls.Label lblItemDtmx;
+
+ ///
+ /// Controllo divItemError.
+ ///
+ ///
+ /// Campo generato automaticamente.
+ /// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind.
+ ///
+ protected global::System.Web.UI.HtmlControls.HtmlGenericControl divItemError;
+
+ ///
+ /// Controllo lblErrorMsg.
+ ///
+ ///
+ /// Campo generato automaticamente.
+ /// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind.
+ ///
+ protected global::System.Web.UI.WebControls.Label lblErrorMsg;
+
+ ///
+ /// Controllo hfSecOp.
+ ///
+ ///
+ /// Campo generato automaticamente.
+ /// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind.
+ ///
+ protected global::System.Web.UI.WebControls.HiddenField hfSecOp;
+
+ ///
+ /// Controllo icnCart.
+ ///
+ ///
+ /// Campo generato automaticamente.
+ /// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind.
+ ///
+ protected global::System.Web.UI.HtmlControls.HtmlGenericControl icnCart;
+
+ ///
+ /// Controllo icnBin.
+ ///
+ ///
+ /// Campo generato automaticamente.
+ /// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind.
+ ///
+ protected global::System.Web.UI.HtmlControls.HtmlGenericControl icnBin;
+
+ ///
+ /// Controllo icnSecOp.
+ ///
+ ///
+ /// Campo generato automaticamente.
+ /// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind.
+ ///
+ protected global::System.Web.UI.HtmlControls.HtmlGenericControl icnSecOp;
+
+ ///
+ /// Controllo lbtCancel.
+ ///
+ ///
+ /// Campo generato automaticamente.
+ /// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind.
+ ///
+ protected global::System.Web.UI.WebControls.LinkButton lbtCancel;
+
+ ///
+ /// Controllo lblLastBCode.
+ ///
+ ///
+ /// Campo generato automaticamente.
+ /// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind.
+ ///
+ protected global::System.Web.UI.WebControls.Label lblLastBCode;
+
+ ///
+ /// Controllo lblMessage.
+ ///
+ ///
+ /// Campo generato automaticamente.
+ /// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind.
+ ///
+ protected global::System.Web.UI.WebControls.Label lblMessage;
+
+ ///
+ /// Controllo lblDestination.
+ ///
+ ///
+ /// Campo generato automaticamente.
+ /// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind.
+ ///
+ protected global::System.Web.UI.WebControls.Label lblDestination;
+
+ ///
+ /// Controllo lbtScrapped.
+ ///
+ ///
+ /// Campo generato automaticamente.
+ /// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind.
+ ///
+ protected global::System.Web.UI.WebControls.LinkButton lbtScrapped;
+
+ ///
+ /// Controllo lbtParkArea.
+ ///
+ ///
+ /// Campo generato automaticamente.
+ /// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind.
+ ///
+ protected global::System.Web.UI.WebControls.LinkButton lbtParkArea;
+
+ ///
+ /// Controllo lbtResetSel.
+ ///
+ ///
+ /// Campo generato automaticamente.
+ /// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind.
+ ///
+ protected global::System.Web.UI.WebControls.LinkButton lbtResetSel;
+ }
}