using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using SteamWare; using XPS_data; namespace XPST.WebUserControls { public partial class mod_btnComandi : System.Web.UI.UserControl { /// /// evento comando clicked /// public event EventHandler eh_clickComando; protected void Page_Load(object sender, EventArgs e) { setupComandiBarcode(); updateBtn(); } /// /// Aggiorna stato buttons /// public void updateBtn() { // determino visibilità lbt4: SOLO se ho un UDC valido ed è in stato 05... int currState = 0; bool emailReq = false; string emailSent = ""; string emailDest = ""; string CodCliente = ""; DS_applicazione.IstObjRow rigaIstObj; // calcolo lo stato dell'oggetto... try { rigaIstObj = XPS_data.XPS.obj.taObj.getByIdxObj(comando.valore)[0]; currState = Convert.ToInt32(rigaIstObj.CodStato); emailReq = rigaIstObj.emailReq; CodCliente = rigaIstObj.CodCliente; emailDest = XPS_data.XPS.obj.getEmailDest(CodCliente); } catch { } try { rigaIstObj = XPS_data.XPS.obj.taObj.getByIdxObj(comando.valore)[0]; emailSent = rigaIstObj.emailSent.ToString("dd/MM/yy HH:mm"); } catch { } switch (currState) { case 1: case 2: case 3: lbt1.Enabled = true; lbt2.Enabled = false; lbt3.Enabled = false; lbt4.Enabled = false; break; case 4: lbt1.Enabled = false; lbt2.Enabled = true; lbt3.Enabled = false; lbt4.Enabled = false; break; case 5: lbt1.Enabled = false; lbt2.Enabled = false; lbt3.Enabled = true; lbt4.Enabled = true; break; case 6: case 7: lbt1.Enabled = false; lbt2.Enabled = false; lbt3.Enabled = false; lbt4.Enabled = true; break; default: lbt1.Enabled = false; lbt2.Enabled = false; lbt3.Enabled = false; lbt4.Enabled = false; break; } // fix CSS... inizio togliendo disabled... lbt1.CssClass = lbt1.CssClass.Replace("disabled", "").Trim(); lbt2.CssClass = lbt2.CssClass.Replace("disabled", "").Trim(); lbt3.CssClass = lbt3.CssClass.Replace("disabled", "").Trim(); lbt4.CssClass = lbt4.CssClass.Replace("disabled", "").Trim(); lbt5.CssClass = lbt5.CssClass.Replace("disabled", "").Trim(); lbt6.CssClass = lbt6.CssClass.Replace("disabled", "").Trim(); // rimetto dove serve disabled... if (!lbt1.Enabled) lbt1.CssClass += " disabled"; if (!lbt2.Enabled) lbt2.CssClass += " disabled"; if (!lbt3.Enabled) lbt3.CssClass += " disabled"; if (!lbt4.Enabled) lbt4.CssClass += " disabled"; if (!lbt5.Enabled) lbt5.CssClass += " disabled"; if (!lbt6.Enabled) lbt6.CssClass += " disabled"; if (currState >= 5) { // controllo se c'è email del cliente... if (emailDest != "") { lbt4.Enabled = true; } else { lbt4.Enabled = false; } // controllo se era indicato email richiesta! if (emailReq) { lbt4.Text = string.Format("{0}{1}{2}", comandiAmmessi["07"], Environment.NewLine, user_std.UtSn.Traduci("emailReq")); } else { lbt4.Enabled = false; } // controllo se mai spedita email... if (emailSent != "") { lbt4.Text += string.Format("{0}{1}: {2}", Environment.NewLine, user_std.UtSn.Traduci("emailSent"), emailSent); } } // se autoconferma nascondo button conferma... if (memLayer.ML.confReadBool("autoConfCmd")) { lbt5.Visible = false; } else { lbt5.Visible = true; } } /// /// carico da tab i comandi ammessi per il barcode... /// private void setupComandiBarcode() { XPS_data.DS_applicazioneTableAdapters.TraEv2StatiTableAdapter taTrEv2St = new XPS_data.DS_applicazioneTableAdapters.TraEv2StatiTableAdapter(); DS_applicazione.TraEv2StatiDataTable _tabTran = taTrEv2St.getByCodMappa("E_BC"); Dictionary comandi = new Dictionary(); foreach (DS_applicazione.TraEv2StatiRow riga in _tabTran) { comandi.Add(riga.CodEvento, user_std.UtSn.Traduci(riga.text2show)); } // impongo i comandi al barcode... comandiAmmessi = comandi; } /// /// dictionary comandi ammessi /// protected Dictionary _comandi = new Dictionary(); /// /// elenco dei comandi riconosciuti /// public Dictionary comandiAmmessi { get { return _comandi; } set { _comandi = value; } } /// /// segnala click su button comando /// public void segnalaClick() { if (eh_clickComando != null) { eh_clickComando(this, new EventArgs()); } } protected void lbt1_Click(object sender, EventArgs e) { memLayer.ML.setSessionVal("btnCmdPress", "04", false); segnalaClick(); } protected void lbt2_Click(object sender, EventArgs e) { memLayer.ML.setSessionVal("btnCmdPress", "05", false); segnalaClick(); } protected void lbt3_Click(object sender, EventArgs e) { memLayer.ML.setSessionVal("btnCmdPress", "06", false); segnalaClick(); } protected void lbt4_Click(object sender, EventArgs e) { // determino visibilità lbt4: SOLO se ho un UDC valido ed è in stato 05... XPS_data.XPS.obj.sendEmailCliente(comando.valore); updateBtn(); } protected void lbt5_Click(object sender, EventArgs e) { memLayer.ML.setSessionVal("btnCmdPress", "ok", false); segnalaClick(); } protected void lbt6_Click(object sender, EventArgs e) { memLayer.ML.setSessionVal("btnCmdPress", "ko", false); segnalaClick(); } /// /// oggetto comando locale alla classe /// protected inputComando comando { get { inputComando answ; if (memLayer.ML.isInSessionObject("barcodeCmd")) { answ = (inputComando)memLayer.ML.objSessionObj("barcodeCmd"); } else { answ = new inputComando(); } return answ; } } } }