Files
XPS/XPST/WebUserControls/mod_btnComandi.ascx.cs
T
Samuele Locatelli f5ae99144a update XPST
2017-01-31 14:33:04 +01:00

298 lines
10 KiB
C#

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
{
/// <summary>
/// evento comando clicked
/// </summary>
public event EventHandler eh_clickComando;
protected void Page_Load(object sender, EventArgs e)
{
setupComandiBarcode();
disegnaBtn();
}
/// <summary>
/// effettua disegno dei buttons
/// </summary>
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();
}
/// <summary>
/// Aggiorna stato buttons
/// </summary>
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;
}
}
/// <summary>
/// carico da tab i comandi ammessi per il barcode...
/// </summary>
private void setupComandiBarcode()
{
XPS_data.DS_applicazioneTableAdapters.TraEv2StatiTableAdapter taTrEv2St = new XPS_data.DS_applicazioneTableAdapters.TraEv2StatiTableAdapter();
DS_applicazione.TraEv2StatiDataTable _tabTran = taTrEv2St.getByCodMappa("E_BC");
Dictionary<string, string> comandi = new Dictionary<string, string>();
foreach (DS_applicazione.TraEv2StatiRow riga in _tabTran)
{
comandi.Add(riga.CodEvento, user_std.UtSn.Traduci(riga.text2show));
}
// impongo i comandi al barcode...
comandiAmmessi = comandi;
}
/// <summary>
/// dictionary comandi ammessi
/// </summary>
protected Dictionary<string, string> _comandi = new Dictionary<string, string>();
/// <summary>
/// elenco dei comandi riconosciuti
/// </summary>
public Dictionary<string, string> comandiAmmessi
{
get
{
return _comandi;
}
set
{
_comandi = value;
}
}
/// <summary>
/// segnala click su button comando
/// </summary>
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();
}
/// <summary>
/// oggetto comando locale alla classe
/// </summary>
protected inputComando comando
{
get
{
inputComando answ;
if (memLayer.ML.isInSessionObject("barcodeCmd"))
{
answ = (inputComando)memLayer.ML.objSessionObj("barcodeCmd");
}
else
{
answ = new inputComando();
}
return answ;
}
}
}
}