diff --git a/MP-MAG/WebUserControls/cmp_PLScanner.ascx.cs b/MP-MAG/WebUserControls/cmp_PLScanner.ascx.cs
index f946dc0..776c294 100644
--- a/MP-MAG/WebUserControls/cmp_PLScanner.ascx.cs
+++ b/MP-MAG/WebUserControls/cmp_PLScanner.ascx.cs
@@ -28,6 +28,21 @@ namespace MP_MAG.WebUserControls
}
}
+ ///
+ /// UDC selezionato
+ ///
+ protected string LastUDC
+ {
+ get
+ {
+ return hfLastUDC.Value;
+ }
+ set
+ {
+ hfLastUDC.Value = value;
+ }
+ }
+
///
/// ULTIMO Comando barcode VALIDO (!="") letto
///
@@ -59,6 +74,7 @@ namespace MP_MAG.WebUserControls
set
{
cmp_SelPackList.PackListID = value;
+ cmp_SelUdc.PackListID = value;
}
}
@@ -264,7 +280,9 @@ namespace MP_MAG.WebUserControls
{
// seleziono PackList
SelPackList = codeInt;
- tryLinkAlUdc();
+ // resetto PEDANA ed UDC
+ SelPedana = "";
+ SelUDC = "";
}
break;
@@ -295,7 +313,11 @@ namespace MP_MAG.WebUserControls
}
else if (tabAL[0].PackListID != SelPackList)
{
- cmp_barcode.showOutput("badge badge-danger", $"Errore: {rawData} già associata a PackList {tabAL[0].PackListID}");
+ cmp_barcode.showOutput("badge badge-danger", $"Errore: AL {rawData} già associata a PackList {tabAL[0].PackListID}");
+ }
+ else if (tabAL[0].Status > 0)
+ {
+ cmp_barcode.showOutput("badge badge-danger", $"Errore: AL {rawData} non modificabile");
}
else
{
@@ -307,22 +329,91 @@ namespace MP_MAG.WebUserControls
if (allOk)
{
SelPedana = rawData;
+ // resetto UDC
+ SelUDC = "";
}
}
break;
case codeType.Udc:
-
- // verifico e seleziono udc
-
- if (true)
+ // verifico di avere pack list
+ allOk = false;
+ if (SelPackList == 0)
{
- SelUDC = rawData;
+ cmp_barcode.showOutput("badge badge-danger", "Errore: manca PackList!");
+ }
+ else
+ {
+ // verifico di avere Pedana
+ if (string.IsNullOrEmpty(SelPedana))
+ {
+ cmp_barcode.showOutput("badge badge-danger", "Errore: manca Pedana!");
+ }
+ else
+ {
+ // verifico esista
+ var tabUDC = MagDataLayer.man.taEUdc.getByKey(rawData);
+ if (tabUDC.Rows.Count == 0)
+ {
+ cmp_barcode.showOutput("badge badge-warning", $"Errore: UDC non trovato: {rawData}");
+ }
+ else
+ {
+ // ...e NON sia stato TRASFERITO
+ if (tabUDC[0].IdxPosizione > 0)
+ {
+ cmp_barcode.showOutput("badge badge-warning", $"Errore: UDC già trasferito: {rawData}");
+ }
+ else
+ {
+ // cerco AL se sia quello selezionato...
+ var tabAL = MagDataLayer.man.taEAL.getByUdc(rawData);
+ // se non trovo --> associo
+ if (tabAL.Rows.Count == 0)
+ {
+ // tutto ok
+ allOk = true;
+ }
+ // se uguale OK
+ else if (tabAL[0].AL == SelPedana)
+ {
+ // tutto ok
+ allOk = true;
+ }
+ else
+ {
+ // se siamo in seconda lettura --> OK x spostamento
+ if (LastUDC == rawData)
+ {
+ allOk = true;
+ LastUDC = "";
+ }
+ else
+ {
+ // verifico pedana (vecchia/attuale) libera...
+ if (tabAL[0].Status > 0)
+ {
+ cmp_barcode.showOutput("badge badge-danger", $"Attenzione: AL di origine ({tabAL[0].AL}) non modificabile, impossibile spostare");
+ }
+ // chiedo seconda lettura SE AL "libero"
+ else
+ {
+ cmp_barcode.showOutput("badge badge-info", $"Attenzione: UDC {rawData} già associato ad AL ({tabAL[0].AL}), rileggere per confermare ({SelPedana})");
+ LastUDC = rawData;
+ }
+ }
+ }
+ }
+ }
+ // ...e seleziono udc
+ if (allOk)
+ {
+ SelUDC = rawData;
+ tryLinkAlUdc();
+ }
+ }
}
-
- tryLinkAlUdc();
-
break;
default:
@@ -332,7 +423,10 @@ namespace MP_MAG.WebUserControls
private void tryLinkAlUdc()
{
- // verifica UDC ed al, se entrambi validi e LIBERI
+ // se sono qui entrambe sono LIBERE
+
+ // FARE!!! check ordine
+ MagDataLayer.man.taEA2U.upsertQuery(SelUDC, SelPedana, 0);
// se c'è già un associazione UDC con altro AL --> chiede rilettura
@@ -348,6 +442,9 @@ namespace MP_MAG.WebUserControls
if (!Page.IsPostBack)
{
SelPackList = 0;
+ SelPedana = "";
+ SelUDC = "";
+ LastUDC = "";
}
// eventi barcode
cmp_barcode.eh_doRefresh += Cmp_barcode_eh_doRefresh;
diff --git a/MP-MAG/WebUserControls/cmp_PLScanner.ascx.designer.cs b/MP-MAG/WebUserControls/cmp_PLScanner.ascx.designer.cs
index 7f4b6db..255f478 100644
--- a/MP-MAG/WebUserControls/cmp_PLScanner.ascx.designer.cs
+++ b/MP-MAG/WebUserControls/cmp_PLScanner.ascx.designer.cs
@@ -68,6 +68,15 @@ namespace MP_MAG.WebUserControls
///
protected global::MP_MAG.WebUserControls.cmp_SelUdc cmp_SelUdc;
+ ///
+ /// Controllo hfLastUDC.
+ ///
+ ///
+ /// 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 hfLastUDC;
+
///
/// Controllo cmp_SelPedana.
///
diff --git a/MP-MAG/WebUserControls/cmp_SelUdc.ascx b/MP-MAG/WebUserControls/cmp_SelUdc.ascx
index b743591..24b4088 100644
--- a/MP-MAG/WebUserControls/cmp_SelUdc.ascx
+++ b/MP-MAG/WebUserControls/cmp_SelUdc.ascx
@@ -1,4 +1,5 @@
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="cmp_SelUdc.ascx.cs" Inherits="MP_MAG.WebUserControls.cmp_SelUdc" %>
+<%@ Register Src="~/WebUserControls/cmp_OrderListByUdc.ascx" TagPrefix="uc1" TagName="cmp_OrderListByUdc" %>
@@ -9,10 +10,11 @@
- dettaglio UDC?
+
-