using MagData; using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace MP_MAG.WebUserControls { public partial class cmp_LoadScan : BaseUserControl { #region Protected Properties /// /// Comando ULTIMO barcode letto /// protected string lastCmd { get { return hfLastBCode.Value; } set { hfLastBCode.Value = value; lastValidCmd = value; } } /// /// ULTIMO Comando barcode VALIDO (!="") letto /// protected string lastValidCmd { get { return hfLastValidBCode.Value; } set { // solo se è non nullo/vuoto if (!string.IsNullOrEmpty(value)) { hfLastValidBCode.Value = value; } } } /// /// Pedana selezionata /// protected string SelPedana { get { return cmp_SelPedana.Pedana; } set { cmp_SelPedana.Pedana = value; } } #endregion Protected Properties #region Private Methods private void Cmp_barcode_eh_doRefresh(object sender, EventArgs e) { bool doRaiseEv = false; // processo evento.. lastCmd = cmp_barcode.inputAcquired.ToUpper(); doRaiseEv = processLastCmd(doRaiseEv); // reset comando cmp_barcode.inputAcquired = ""; // aggiorno... doUpdate(); } private void Cmp_barcode_eh_doReset(object sender, EventArgs e) { } private void doUpdate() { } private bool processLastCmd(bool doRaiseEv) { if (string.IsNullOrEmpty(lastCmd)) doRaiseEv = true; // processiamo barcode letto decodedData decoData = MagDataLayer.man.decodeBcode(lastValidCmd); switch (decoData.codeType) { case codeType.Command: case codeType.Pedana: cmp_barcode.showOutput("badge badge-success", $"{decoData.description}"); processSuggestion(decoData.codeType, decoData.rawData, decoData.code, decoData.codeInt); doRaiseEv = true; break; case codeType.PackList: case codeType.Udc: default: cmp_barcode.showOutput("badge badge-danger", $"Codice sconosciuto: {decoData.rawData} --> ignoro"); resetSelection(false); doRaiseEv = true; break; } return doRaiseEv; } /// /// Processo il codice letto /// /// /// /// /// private void processSuggestion(codeType tipoCod, string rawData, string code, int codeInt) { // processo suggerimenti switch (tipoCod) { case codeType.Command: // verifico tipo comando switch (rawData) { case "CMDRESET": SelPedana = "ND"; resetSelection(true); break; default: break; } break; case codeType.Pedana: // verifico AL esista var tabAL = MagDataLayer.man.taEAL.getByKey(rawData); if (tabAL.Rows.Count == 0) { cmp_barcode.showOutput("badge badge-warning", $"Errore: Pedana non trovata: {rawData}"); } else { if (tabAL[0].Status == 0) { cmp_barcode.showOutput("badge badge-danger", $"Errore: AL {rawData} NON completata"); } else if (tabAL[0].Status == 2) { cmp_barcode.showOutput("badge badge-danger", $"Errore: AL {rawData} già caricato"); } else if (tabAL[0].Status == 1) { if (rawData == SelPedana) { // se non associata associo... MagDataLayer.man.taEAL.updateStatus(rawData, 2); cmp_barcode.showOutput("badge badge-success", $"Pedana {rawData} caricata su vettore"); SelPedana = ""; } else { cmp_barcode.showOutput("badge badge-info", $"Pedana {rawData} valida, rileggere per confermare"); SelPedana = rawData; } } } break; default: break; } } #endregion Private Methods #region Protected Methods protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { SelPedana = ""; } // eventi barcode cmp_barcode.eh_doRefresh += Cmp_barcode_eh_doRefresh; // eventi reset lotti IN cmp_barcode.eh_doReset += Cmp_barcode_eh_doReset; ; } /// /// Reset selezione item + blocchi suggerimento + sel REDIS x pagina unload /// /// protected void resetSelection(bool resetStatus) { } #endregion Protected Methods } }