using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using SteamWare; using GMW_data; namespace GMW_Term.WebUserControls { public partial class mod_smartList : System.Web.UI.UserControl { /// /// wrapper traduzione termini /// /// /// public string traduci(string lemma) { return user_std.UtSn.Traduci(lemma); } /// /// chiamata principale /// /// /// protected void Page_Load(object sender, EventArgs e) { updatePackListStatus(); // resetto! resetAndUpdate(); } /// /// aggiorna lo stato della packing list corrente /// private void updatePackListStatus() { // recupero barcode e controllo sia valido string barcode = memLayer.ML.StringSessionObj("UDC_sel"); string particolare = ""; bool barcodeOk = MagClass.magazzino.checkUDC(barcode); bool checkUDC_mov = MagClass.magazzino.checkUDC_mov(barcode); //2013.07.24 aggiunto controllo x movimentabile poiché NON in LDP scaricata bool udcIsConsumabile = MagClass.magazzino.IdxPosizioneUdc(barcode) >= 0; //2013.07.24 aggiunto controllo x sapere se sia consumabile (idxPosizione > 0) bool udcPrelevabile = (MagClass.magazzino.taRigheListePrelievo.getPrelevateByUdc(barcode).Rows.Count == 0); if (barcodeOk && checkUDC_mov && udcIsConsumabile && udcPrelevabile) { try { // calcolo particolare particolare = MagClass.magazzino.getParticolareByUDC(barcode); } catch { } if (particolare != "") { /* *************************************************** * Ricalcola e salva: * - elenco UDC * - elenco particolari * - crea LDP e relative righe x ogni UDC * ***************************************************/ // lista di prelievo string currLDP = ""; // cerco la LDP dato utente, tipo e particolare... try { currLDP = MagClass.magazzino.taElencoListePrelievo.getOpenByUserTipoPart(MagClass.magazzino.CodSoggCurrUser, "00-Smart", particolare)[0].CodLista; } catch { } // controllo se vada aggiunto particolare if (currLDP == "") { // creo nuova LDP smart currLDP = MagClass.magazzino.creaListaPrelievoSmart(memLayer.ML.confReadString("CodCS"), "00-Smart", particolare, "*", "*", 1, "*", "", ""); // imposto ad iniziata MagClass.magazzino.attivaListaPrelievo(memLayer.ML.confReadString("CodCS"), currLDP, MagClass.magazzino.CodSoggCurrUser); MagClass.magazzino.iniziaListaPrelievo(memLayer.ML.confReadString("CodCS"), currLDP, MagClass.magazzino.CodSoggCurrUser); } // controllo se vada aggiunto UDC: lo cerco nelle RLP prelevate if (MagClass.magazzino.taRigheListePrelievo.getPrelevateByUdc(barcode).Rows.Count < 1) { if (currLDP != "") { // aggiungo particolare a LDP Smart esistente MagClass.magazzino.confermaUdcPrelevatoPerLista(currLDP, barcode); } lblErrore.Visible = false; } else { // indico barcode già caricato lblErrore.Visible = true; lblErrore.Text = string.Format("{0}: {1}", barcode, traduci("udcGiaPrelevato")); } } } else { if (barcode != "") { lblErrore.Visible = true; if (!udcIsConsumabile) { lblErrore.Text = string.Format("{0}: {1}", barcode, traduci("udcConsumato")); } else if (!checkUDC_mov) { lblErrore.Text = string.Format("{0}: {1}", barcode, traduci("udcInLdpScaricata")); } else { // indico barcode già caricato lblErrore.Text = string.Format("{0}: {1}", barcode, traduci("udcGiaPrelevato")); } } } /* *************************************************** * update visualizzazione, aggiorna: * - tot UDC * - tot particolari * ***************************************************/ lblGeneraListe.Text = traduci("lblGeneraListe"); lblResetListe.Text = traduci("lblResetListe"); lblTotColli.Text = traduci("lblTotColli"); lblNumColli.Text = string.Format("{0} UDC", MagClass.magazzino.taRigheListePrelievo.getOpenByUserTipo(MagClass.magazzino.CodSoggCurrUser, "00-Smart").Rows.Count); lblParticolari.Text = traduci("lblParticolari"); lblNumPart.Text = string.Format("{0} {1}", MagClass.magazzino.taElencoListePrelievo.getOpenByUserTipo(MagClass.magazzino.CodSoggCurrUser, "00-Smart").Rows.Count, traduci("Particolari")); } /// /// Generazione delle liste di prelievo /// /// /// protected void btnGeneraListe_Click(object sender, EventArgs e) { // prendo le liste smart e le completo foreach (DS_magazzino.ElencoListePrelievoRow riga in MagClass.magazzino.taElencoListePrelievo.getOpenByUserTipo(MagClass.magazzino.CodSoggCurrUser, "00-Smart")) { try { // indico completata MagClass.magazzino.completaListaPrelievo(memLayer.ML.confReadString("CodCS"), riga.CodLista, MagClass.magazzino.CodSoggCurrUser, Request.UserHostName); } catch { } } resetAndUpdate(); } /// /// aggiorna visualizzazioni e resetta /// private void resetAndUpdate() { //memLayer.ML.emptySessionVal("UDC_sel"); GMW_data.TermClass.Ter.resetScanBarcode(true, false, false); // aggiorno visualizzazione updatePackListStatus(); //lblErrore.Visible = false; } /// /// reset UDC x le liste di prelievo /// /// /// protected void btnResetListe_Click(object sender, EventArgs e) { // prendo le liste smart e le completo foreach (DS_magazzino.ElencoListePrelievoRow riga in MagClass.magazzino.taElencoListePrelievo.getOpenByUserTipo(MagClass.magazzino.CodSoggCurrUser, "00-Smart")) { try { // elimino righe MagClass.magazzino.taRigheListePrelievo.stp_RLP_deleteFromCodLista(riga.CodLista); // elimino lista MagClass.magazzino.taElencoListePrelievo.DeleteQuery(riga.CodLista); // elimino task attivo e cod lista attuale memLayer.ML.emptySessionVal("CodListaAttiva"); memLayer.ML.emptySessionVal("activeTask"); lblErrore.Visible = false; } catch { } } resetAndUpdate(); } /// /// fornisce verifica se l'udc sia già stato prelevato altrove... /// /// /// public bool udcPrelevato(object udc) { return GMW_data.MagClass.magazzino.taRigheListePrelievo.getPrelevateByUdc(udc.ToString()).Rows.Count > 0; } } }