using AppData; using NKC_SDK; using System; using System.Diagnostics; using System.Web.UI; namespace NKC_WF.WebUserControls { public partial class cmp_stackBuilding : BaseUserControl { /// /// Comando barcode letto /// protected string lastCmd { get { return hfLastBCode.Value; } set { hfLastBCode.Value = value; } } protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { // pulisco dir temp dai file dei cartellini stampati reportPrinter.obj.pulisciDir(); } cmp_barcode.eh_doRefresh += Cmp_barcode_eh_doRefresh; } /// /// Verifica bvisibilità button stampa /// ...se NON ci sono altri campi "next" allora posso mostrare stampa... /// private void checkPrint() { DS_App.SheetListDataTable nextTbl = DataLayer.man.taSHL.getNextByStack(StackId); // se tab vuota --> HO FINITO, mostro stampa... divPrint.Visible = (nextTbl.Count == 0); } private void Cmp_barcode_eh_doRefresh(object sender, EventArgs e) { bool doRaiseEv = false; lastCmd = cmp_barcode.inputAcquired.ToUpper(); processLastCmd(doRaiseEv); doUpdate(); } private bool processLastCmd(bool doRaiseEv) { // verifico il datamatrix dei BIN da pitturare if (string.IsNullOrEmpty(lastCmd)) doRaiseEv = true; // processiamo barcode letto decodedData decoData = DataLayer.man.decodeBcode(lastCmd); switch (decoData.codeType) { case codeType.UNK: cmp_barcode.showOutput("text-danger", "Unknown Data"); doRaiseEv = true; break; case codeType.Item: case codeType.ItemGeneric: cmp_barcode.showOutput("text-warning", "Item - ignored"); doRaiseEv = true; break; case codeType.Material: // verifico SE il materiale SIA quello dello sheet richiesto dallo stack/bunk corrente... DS_App.SheetListDataTable nextTbl = DataLayer.man.taSHL.getNextByStack(StackId); // se tab vuota --> HO FINITO!!!! if (nextTbl.Count == 0) { cmp_barcode.showOutput("badge badge-warning", $"STACK IS COMPLETED, {decoData.description}"); } // se ho valori --> controllo se corretto... else { string codReq = nextTbl[0].MatExtCode.ToString(); if (codReq == decoData.codeInt.ToString()) { cmp_barcode.showOutput("badge badge-success", $"SHEET RECORDED: {decoData.description}"); // chiamo stored x indicare preparato DataLayer.man.taSHL.setPrepared(nextTbl[0].SheetID); } else { cmp_barcode.showOutput("badge badge-danger", $"WRONG SHEET: {decoData.description}"); } } break; case codeType.Sheet: cmp_barcode.showOutput("badge badge-warning", "Sheet - ignored"); doRaiseEv = true; break; case codeType.Stack: cmp_barcode.showOutput("badge badge-warning", "Stack - ignored"); doRaiseEv = true; break; case codeType.Batch: cmp_barcode.showOutput("badge badge-warning", "Batch - ignored"); doRaiseEv = true; break; default: break; } lastCmd = ""; cmp_barcode.inputAcquired = ""; cmp_barcode.resetInput(); return doRaiseEv; } public void doUpdate() { cmp_StackBuildDetail.doUpdate(); checkPrint(); } public int StackId { set { cmp_StackBuildDetail.StackId = value; lastCmd = ""; cmp_barcode.resetMessage(); ComLib.updateBatchPositionByBunk(value); doUpdate(); } get { return cmp_StackBuildDetail.StackId; } } /// /// Chiesta stampa stack corrente /// /// /// protected void lbtPrint_Click(object sender, EventArgs e) { // chiamo procedura stampa report x stack string printer = DataLayer.man.getPrinter("PC-MACHINE-STACK-BUILD"); DataLayer.man.stampaDoc(StackId.ToString(), printer, tipoDocumento.docStack, Request.UserHostName); // aggiorno stato BATCH ComLib.updateBatchPositionByBunk(StackId); } } }