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(); disegnaBtn(); } /// /// effettua disegno dei buttons /// private void disegnaBtn() { // carico i comandi nei buttons btn1.Text = comandiAmmessi["04"]; btn2.Text = comandiAmmessi["05"]; btn3.Text = comandiAmmessi["06"]; btn4.Text = comandiAmmessi["07"]; btn5.Text = comandiAmmessi["ok"]; btn6.Text = comandiAmmessi["ko"]; updateBtn(); } /// /// Aggiorna stato buttons /// public void updateBtn() { // determino visibilità btn4: 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.taAnCli.getByKey(CodCliente)[0].email; } 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: btn1.Enabled = true; btn2.Enabled = false; btn3.Enabled = false; btn4.Enabled = false; break; case 4: btn1.Enabled = false; btn2.Enabled = true; btn3.Enabled = false; btn4.Enabled = false; break; case 5: btn1.Enabled = false; btn2.Enabled = false; btn3.Enabled = true; btn4.Enabled = true; break; case 6: btn1.Enabled = false; btn2.Enabled = false; btn3.Enabled = false; btn4.Enabled = true; break; case 7: btn1.Enabled = false; btn2.Enabled = false; btn3.Enabled = false; btn4.Enabled = true; break; default: btn1.Enabled = false; btn2.Enabled = false; btn3.Enabled = false; btn4.Enabled = false; break; } if (currState >= 5) { // controllo se c'è email del cliente... if (emailDest != "") { btn4.Enabled = true; } else { btn4.Enabled = false; } // controllo se era indicato email richiesta! if (emailReq) { btn4.Text = string.Format("{0}{1}{2}", comandiAmmessi["07"], Environment.NewLine, user_std.UtSn.Traduci("emailReq")); } // controllo se mai spedita email... if (emailSent != "") { btn4.Text += string.Format("{0}{1}: {2}", Environment.NewLine, user_std.UtSn.Traduci("emailSent"), emailSent); } } // se autoconferma nascondo button conferma... if (memLayer.ML.confReadBool("autoConfCmd")) { btn5.Visible = false; } else { btn5.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 btn1_Click(object sender, EventArgs e) { memLayer.ML.setSessionVal("btnCmdPress", "04", false); segnalaClick(); } protected void btn2_Click(object sender, EventArgs e) { memLayer.ML.setSessionVal("btnCmdPress", "05", false); segnalaClick(); } protected void btn3_Click(object sender, EventArgs e) { memLayer.ML.setSessionVal("btnCmdPress", "06", false); segnalaClick(); } protected void btn4_Click(object sender, EventArgs e) { // mi limito a mandare email e non segnalo altro... carico dati! // determino visibilità btn4: SOLO se ho un UDC valido ed è in stato 05... int currState = 0; bool emailReq = false; string emailSent = ""; string emailDest = ""; string CodCliente = ""; string ddt = ""; string dataRif = ""; string descr = ""; string peso = ""; DS_applicazione.IstObjRow rigaIstObj = null; // 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.taAnCli.getByKey(CodCliente)[0].email; } catch { } try { rigaIstObj = XPS_data.XPS.obj.taObj.getByIdxObj(comando.valore)[0]; emailSent = rigaIstObj.emailSent.ToString("dd/MM/yy HH:mm"); } catch { } try { ddt = rigaIstObj.Nome; dataRif = rigaIstObj.DataRif.ToString("dd/MM/yy HH:mm"); descr = rigaIstObj.Note; peso = rigaIstObj.Peso.ToString(); } catch { ddt = "n.d."; dataRif = "n.d."; descr = "n.d."; peso = "n.d."; } if (currState >= 5 && emailDest != "") { // invio email string subject = user_std.UtSn.Traduci("emailSubject"); string corpo = string.Format(user_std.UtSn.Traduci("emailBody"), ddt, dataRif, descr, peso); //'Attenzione, la merce relativa al DDT {0} del {1}, ({2}, peso {3} kg) è pronta per il ritiro presso EQUA s.p.a di Pedrengo' bool fatto = gestEmail.geAuth.mandaEmail(memLayer.ML.confReadString("_emailUser"), emailDest, subject, corpo); if (fatto) { // aggiorno stato obj XPS.obj.taObj.updateEmailSent(comando.valore); } } updateBtn(); #if false memLayer.ML.setSessionVal("btnCmdPress", "07", false); segnalaClick(); #endif } protected void btn5_Click(object sender, EventArgs e) { memLayer.ML.setSessionVal("btnCmdPress", "ok", false); segnalaClick(); } protected void btn6_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; } } } }