Modifica userControl x ereditare da BaseUserControl

This commit is contained in:
Samuele E. Locatelli
2020-09-14 21:56:39 +02:00
parent e85159d108
commit 76841fb5d8
44 changed files with 3525 additions and 3853 deletions
-3
View File
@@ -1198,9 +1198,6 @@
<Compile Include="WebUserControls\mod_turni.ascx.designer.cs">
<DependentUpon>mod_turni.ascx</DependentUpon>
</Compile>
<Compile Include="WebUserControls\MpTabUserControl.cs">
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="windowSize.ashx.cs">
<DependentUpon>windowSize.ashx</DependentUpon>
</Compile>
+1 -1
View File
@@ -117,7 +117,7 @@ namespace MoonProTablet
fixSelMacc();
memLayer.ML.setSessionVal("TipoLink", "EditMacch");
// imposto idxMacchina x subControl...
mod_ODL1.idxMacchina = idxMacchinaFix;
mod_ODL1.idxMacchinaFix = idxMacchinaFix;
checkConfProd();
mod_ODL1.checkAll();
}
+185 -3
View File
@@ -7,8 +7,14 @@ using System.Web;
namespace MoonProTablet.WebUserControls
{
public class BaseUserControl : System.Web.UI.UserControl
public class BaseUserControl : System.Web.UI.UserControl //SteamWare.UserControl //
{
public string encodeAuthKey(object plainUserAuthKey)
{
string answ = "";
answ = SteamCrypto.EncryptString(plainUserAuthKey.ToString(), memLayer.ML.CRS("cookieName"));
return answ;
}
/// <summary>
/// idx macchina selezionata
/// </summary>
@@ -26,7 +32,11 @@ namespace MoonProTablet.WebUserControls
/// <summary>
/// Oggetto datalayer specifico
/// </summary>
DataLayer DataLayerObj = new DataLayer();
internal DataLayer DataLayerObj = new DataLayer();
/// <summary>
/// classe MapoDB x uso locale
/// </summary>
internal MapoDb.MapoDb controllerMapo = new MapoDb.MapoDb();
/// <summary>
/// effettua traduzione del lemma
/// </summary>
@@ -36,7 +46,16 @@ namespace MoonProTablet.WebUserControls
{
return user_std.UtSn.Traduci(lemma);
}
/// <summary>
/// effettua traduzione del lemma
/// </summary>
/// <param name="_lemma"></param>
/// <returns></returns>
public string traduci(object _lemma)
{
_lemma = _lemma == null ? "" : _lemma;
return user_std.UtSn.Traduci(_lemma.ToString());
}
/// <summary>
/// effettua traduzione in inglese del lemma
/// </summary>
@@ -46,5 +65,168 @@ namespace MoonProTablet.WebUserControls
{
return user_std.UtSn.TraduciEn(lemma);
}
public string TCMinSec(object _TC)
{
string TC_MinSec = "";
decimal TC = 0;
decimal.TryParse(_TC.ToString(), out TC);
int min = 0;
int sec = 0;
try
{
// cerco di convertire in min/sec
min = Convert.ToInt32(Math.Floor(Convert.ToDouble(TC)));
sec = Convert.ToInt32((Convert.ToDouble(TC) - min) * 60);
TC_MinSec = string.Format("{0}:{1:00}", min, sec);
}
catch
{ }
return TC_MinSec;
}
/// <summary>
/// Sotto sistema (macchina) selezionato in sessione
/// </summary>
public string subMaccSel
{
get
{
return memLayer.ML.StringSessionObj("subMaccSel");
}
set
{
memLayer.ML.setSessionVal("subMaccSel", value);
}
}
/// <summary>
/// idxOdl corrente in sessione
/// </summary>
public int idxOdl
{
get
{
return memLayer.ML.IntSessionObj("idxODL");
}
set
{
memLayer.ML.setSessionVal("idxODL", value);
}
}
/// <summary>
/// url completo immagine
/// </summary>
/// <param name="url"></param>
/// <returns></returns>
public string ImgUrlMacc(object url)
{
if (string.IsNullOrEmpty(url.ToString()))
{
url = "empty.png";
}
return string.Format("./images/macchine/{0}", url);
}
/// <summary>
/// url completo immagine icona
/// </summary>
/// <param name="url"></param>
/// <returns></returns>
public string ImgUrlIcon(object url)
{
return string.Format("./images/iconDic/{0}.png", url);
}
/// <summary>
/// titolo pagina
/// </summary>
public string titolo
{
get
{
return devicesAuthProxy.getPage(Request.Url);
}
}
/// <summary>
/// fomratta durata in minuti/ore/gg a seconda del totale...
/// </summary>
/// <param name="minuti"></param>
/// <returns></returns>
public string formatDurata(object min)
{
return utility.formatDurata(min);
}
public string urlDisegno(object _codArticolo)
{
// default è ND...
string outVal = "~/Files/Disegni/ND.pdf";
// recupero da anagrafica articoli...
try
{
DS_ProdTempi.AnagArticoliRow riga = selData.mng.rigaArt(_codArticolo.ToString());
if (riga != null)
{
outVal = string.Format("~/Files/Disegni/{0}.pdf", riga.Disegno);
}
else
{
logger.lg.scriviLog(string.Format("Attenzione! nessuna informazione trovata per l'articolo {0}", _codArticolo), tipoLog.WARNING);
}
}
catch (Exception exc)
{
logger.lg.scriviLog(string.Format("Errore in ricostruzione URL disegno:{0}{1}", Environment.NewLine, exc), tipoLog.EXCEPTION);
}
return outVal;
}
/// <summary>
/// Verifica se la macchina MAIN sia MULTI (da DatiMacchina / redis...)
/// </summary>
internal bool isMulti
{
get
{
return DataLayerObj.isMulti(idxMacchina);
}
}
/// <summary>
/// stringa UID univoca
/// </summary>
public string uid
{
get
{
return this.UniqueID.Replace("$", "_").Replace("-", "_");
}
}
/// <summary>
/// conversione da tempo minuti/secondi a minuti centesimali
/// </summary>
/// <param name="valore"></param>
/// <returns></returns>
protected decimal minSec2Cent(TimeSpan valore)
{
Decimal answ = 0;
try
{
answ = Math.Round((valore.Minutes + (decimal)valore.Seconds / 60), 3);
}
catch
{ }
return answ;
}
/// <summary>
/// conversione da tempo minuti centesimali a minuti/secondi
/// </summary>
/// <param name="valore"></param>
/// <returns></returns>
protected TimeSpan minCent2Sec(decimal valore)
{
TimeSpan answ = new TimeSpan(0, 0, 1);
try
{
answ = new TimeSpan(0, Convert.ToInt32(valore), Convert.ToInt32((valore - Convert.ToInt32(valore)) * 60));
}
catch
{ }
return answ;
}
}
}
@@ -1,64 +0,0 @@
using SteamWare;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace MoonProTablet.WebUserControls
{
public class MpTabUserControl : System.Web.UI.UserControl
{
/// <summary>
/// idxMacchina corrente in sessione
/// </summary>
public string idxMacchina
{
get
{
return memLayer.ML.StringSessionObj("idxMacchina");
}
set
{
memLayer.ML.setSessionVal("idxMacchina", value);
}
}
/// <summary>
/// Sotto sistema (macchina) selezionato in sessione
/// </summary>
public string subMaccSel
{
get
{
return memLayer.ML.StringSessionObj("subMaccSel");
}
set
{
memLayer.ML.setSessionVal("subMaccSel", value);
}
}
/// <summary>
/// idxOdl corrente in sessione
/// </summary>
public int idxOdl
{
get
{
return memLayer.ML.IntSessionObj("idxODL");
}
set
{
memLayer.ML.setSessionVal("idxODL", value);
}
}
/// <summary>
/// effettua traduzione del lemma
/// </summary>
/// <param name="_lemma"></param>
/// <returns></returns>
public string traduci(object _lemma)
{
_lemma = _lemma == null ? "":_lemma;
return user_std.UtSn.Traduci(_lemma.ToString());
}
}
}
+4 -4
View File
@@ -7,11 +7,11 @@ using System.Web.UI.WebControls;
namespace MoonProTablet.WebUserControls
{
public partial class cmp_HwSwInfo : System.Web.UI.UserControl
{
protected void Page_Load(object sender, EventArgs e)
public partial class cmp_HwSwInfo : BaseUserControl
{
protected void Page_Load(object sender, EventArgs e)
{
}
}
}
}
+1 -1
View File
@@ -7,7 +7,7 @@ using System.Web.UI.WebControls;
namespace MoonProTablet.WebUserControls
{
public partial class cmp_ST_detail : MpTabUserControl
public partial class cmp_ST_detail : BaseUserControl
{
protected void Page_Load(object sender, EventArgs e)
{
@@ -7,7 +7,7 @@ using System.Web.UI.WebControls;
namespace MoonProTablet.WebUserControls
{
public partial class cmp_ST_objCheck : System.Web.UI.UserControl
public partial class cmp_ST_objCheck : BaseUserControl
{
protected void Page_Load(object sender, EventArgs e)
{
@@ -8,7 +8,7 @@ using System.Web.UI.WebControls;
namespace MoonProTablet.WebUserControls
{
public partial class cmp_ST_objView : MpTabUserControl
public partial class cmp_ST_objView : BaseUserControl
{
public string dataType
{
+27 -27
View File
@@ -2,34 +2,34 @@
namespace MoonProTablet.WebUserControls
{
public partial class cmp_dettODL : System.Web.UI.UserControl
{
protected void Page_Load(object sender, EventArgs e)
public partial class cmp_dettODL : BaseUserControl
{
}
/// <summary>
/// codice odl selezionato
/// </summary>
public int idxODLSel
{
get
{
int answ = 0;
try
protected void Page_Load(object sender, EventArgs e)
{
answ = Convert.ToInt32(hfIdxODL.Value);
}
catch
{ }
return answ;
}
set
{
hfIdxODL.Value = value.ToString();
frmView.DataBind();
}
}
}
}
/// <summary>
/// codice odl selezionato
/// </summary>
public int idxODLSel
{
get
{
int answ = 0;
try
{
answ = Convert.ToInt32(hfIdxODL.Value);
}
catch
{ }
return answ;
}
set
{
hfIdxODL.Value = value.ToString();
frmView.DataBind();
}
}
}
}
+55 -74
View File
@@ -5,81 +5,62 @@ using System.Web.UI;
namespace MoonProTablet.WebUserControls
{
public partial class cmp_newODL : System.Web.UI.UserControl
{
public partial class cmp_newODL : BaseUserControl
{
/// <summary>
/// registrato nuovo valore
/// </summary>
public event EventHandler eh_newVal;
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
setDefaults();
}
}
/// <summary>
/// imposta valori std
/// </summary>
private void setDefaults()
{
txtNumPz.Text = "1";
txtTC_min.Text = "1";
txtTC_sec.Text = "0";
}
/// <summary>
/// Oggetto datalayer specifico
/// </summary>
DataLayer DataLayerObj = new DataLayer();
/// <summary>
/// registrato nuovo valore
/// </summary>
public event EventHandler eh_newVal;
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
setDefaults();
}
}
/// <summary>
/// idxMacchina selezionata
/// </summary>
public string idxMacchina
{
get
{
return hfIdxMacchina.Value;
}
set
{
hfIdxMacchina.Value = value;
}
}
/// <summary>
/// imposta valori std
/// </summary>
private void setDefaults()
{
txtNumPz.Text = "1";
txtTC_min.Text = "1";
txtTC_sec.Text = "0";
}
protected void lbtCreaOdlProvv_Click(object sender, EventArgs e)
{
// effettua creazione ODL provvisorio e riporta a parent...
int numPz = 1;
int.TryParse(txtNumPz.Text, out numPz);
int numMin = 0;
int numSec = 0;
int.TryParse(txtTC_min.Text, out numMin);
int.TryParse(txtTC_sec.Text, out numSec);
decimal tCiclo = numMin + ((decimal)numSec) / 60;
string note = txtNote.Text.Trim();
// insert su DB
DataLayerObj.taODL.insertProvv(ddlArticolo.SelectedValue, DataLayerObj.MatrOpr, idxMacchina, numPz, tCiclo, note);
// calcolo stringa macchina e articolo...
var rMacchina = DataLayerObj.taMacchine.GetByIdx(idxMacchina)[0];
var rArticolo = DataLayerObj.taAnagArt.getByCod(ddlArticolo.SelectedValue)[0];
string macchina = string.Format("{0} ({1} | {2} | {3})", rMacchina.Nome, rMacchina.IdxMacchina, rMacchina.CodMacchina, rMacchina.Descrizione);
string articolo = string.Format("{0} ({1} | {2})", rArticolo.DescArticolo, rArticolo.CodArticolo, rArticolo.Disegno);
// invio email notifica creazione ODL PROVVISORIO (da riconciliare...)
string subject = "Effettuato attrezzaggio con ODL provvisorio";
string oggetto = string.Format("E' stato effettuato un attrezzaggio con ODL provvisorio.<br/>Macchina: <b>{0}</b><br>Articolo: <b>{1}</b><br>Lanciati <b>{2}</b> pezzi con T.Ciclo <b>{3:N3}</b> (min.cent) / <b>{4}:{5}</b> (min:sec).<br><br>Note operatore: <b>{6}</b>", macchina, articolo, numPz, tCiclo, numMin, numSec, note);
gestEmail.geAuth.mandaEmail(memLayer.ML.CRS("_fromEmail"), memLayer.ML.CRS("_adminEmail"), subject, oggetto);
// sollevo evento!
if (eh_newVal != null)
{
eh_newVal(this, new EventArgs());
}
}
protected void lbtCreaOdlProvv_Click(object sender, EventArgs e)
{
// effettua creazione ODL provvisorio e riporta a parent...
int numPz = 1;
int.TryParse(txtNumPz.Text, out numPz);
int numMin = 0;
int numSec = 0;
int.TryParse(txtTC_min.Text, out numMin);
int.TryParse(txtTC_sec.Text, out numSec);
decimal tCiclo = numMin + ((decimal)numSec) / 60;
string note = txtNote.Text.Trim();
// insert su DB
DataLayerObj.taODL.insertProvv(ddlArticolo.SelectedValue, DataLayerObj.MatrOpr, idxMacchina, numPz, tCiclo, note);
// calcolo stringa macchina e articolo...
var rMacchina = DataLayerObj.taMacchine.GetByIdx(idxMacchina)[0];
var rArticolo = DataLayerObj.taAnagArt.getByCod(ddlArticolo.SelectedValue)[0];
string macchina = string.Format("{0} ({1} | {2} | {3})", rMacchina.Nome, rMacchina.IdxMacchina, rMacchina.CodMacchina, rMacchina.Descrizione);
string articolo = string.Format("{0} ({1} | {2})", rArticolo.DescArticolo, rArticolo.CodArticolo, rArticolo.Disegno);
// invio email notifica creazione ODL PROVVISORIO (da riconciliare...)
string subject = "Effettuato attrezzaggio con ODL provvisorio";
string oggetto = string.Format("E' stato effettuato un attrezzaggio con ODL provvisorio.<br/>Macchina: <b>{0}</b><br>Articolo: <b>{1}</b><br>Lanciati <b>{2}</b> pezzi con T.Ciclo <b>{3:N3}</b> (min.cent) / <b>{4}:{5}</b> (min:sec).<br><br>Note operatore: <b>{6}</b>", macchina, articolo, numPz, tCiclo, numMin, numSec, note);
gestEmail.geAuth.mandaEmail(memLayer.ML.CRS("_fromEmail"), memLayer.ML.CRS("_adminEmail"), subject, oggetto);
// sollevo evento!
if (eh_newVal != null)
{
eh_newVal(this, new EventArgs());
}
protected void txtSearch_TextChanged(object sender, EventArgs e)
{
// bind dati!
ddlArticolo.DataBind();
}
}
protected void txtSearch_TextChanged(object sender, EventArgs e)
{
// bind dati!
ddlArticolo.DataBind();
}
}
}
+39 -39
View File
@@ -3,49 +3,49 @@ using System;
namespace MoonProTablet.WebUserControls
{
public partial class cmp_selPzPallet : System.Web.UI.UserControl
{
protected void Page_Load(object sender, EventArgs e)
public partial class cmp_selPzPallet : BaseUserControl
{
protected void Page_Load(object sender, EventArgs e)
{
}
/// <summary>
/// Valore PzPallet selezionato
/// </summary>
public int pzPallet
{
get
{
int answ = 1;
// provo a recuperare pz Pallet
int.TryParse(ddlPzPallet.SelectedValue, out answ);
return answ;
}
set
{
try
{
ddlPzPallet.SelectedValue = value.ToString();
}
catch (Exception exc)
/// <summary>
/// Valore PzPallet selezionato
/// </summary>
public int pzPallet
{
logger.lg.scriviLog(string.Format("Errore in assegnazione pz pallet ({0}){1}{2}", value, Environment.NewLine, exc), tipoLog.EXCEPTION);
get
{
int answ = 1;
// provo a recuperare pz Pallet
int.TryParse(ddlPzPallet.SelectedValue, out answ);
return answ;
}
set
{
try
{
ddlPzPallet.SelectedValue = value.ToString();
}
catch (Exception exc)
{
logger.lg.scriviLog(string.Format("Errore in assegnazione pz pallet ({0}){1}{2}", value, Environment.NewLine, exc), tipoLog.EXCEPTION);
}
}
}
/// <summary>
/// Imposta abilitazione alla modifica
/// </summary>
public bool enableSet
{
get
{
return ddlPzPallet.Enabled;
}
set
{
ddlPzPallet.Enabled = value;
}
}
}
}
/// <summary>
/// Imposta abilitazione alla modifica
/// </summary>
public bool enableSet
{
get
{
return ddlPzPallet.Enabled;
}
set
{
ddlPzPallet.Enabled = value;
}
}
}
}
+1 -1
View File
@@ -7,7 +7,7 @@ using System.Web.UI.WebControls;
namespace MoonProTablet.WebUserControls
{
public partial class cmp_sheetTech : System.Web.UI.UserControl
public partial class cmp_sheetTech : BaseUserControl
{
protected void Page_Load(object sender, EventArgs e)
{
File diff suppressed because it is too large Load Diff
+40 -45
View File
@@ -5,54 +5,49 @@ using System.Web.UI;
namespace MoonProTablet.WebUserControls
{
public partial class mod_QRScanner : System.Web.UI.UserControl
{
protected void Page_Load(object sender, EventArgs e)
public partial class mod_QRScanner : BaseUserControl
{
// Richiesto https
// basato su instascan:
// https://github.com/schmich/instascan
if (!Page.IsPostBack)
{
txtQRCode.Text = "";
hlReload.Enabled = false;
}
}
protected void txtQRCode_TextChanged(object sender, EventArgs e)
{
checkloginPwdOnly();
}
/// <summary>
/// Oggetto datalayer specifico
/// </summary>
DataLayer DataLayerObj = new DataLayer();
/// <summary>
/// controllo login solo con pwd
/// </summary>
private void checkloginPwdOnly()
{
// se abilitato login "pwdOnly" rimando a login...
if (memLayer.ML.cdvb("loginPwdOnly"))
{
string UserAuthKey = txtQRCode.Text.Trim();
// cerco se la pwd valida ci sia...
var results = DataLayerObj.taOp.getByAuthKey(UserAuthKey);
if (results.Count > 0)
protected void Page_Load(object sender, EventArgs e)
{
// in questo caso rimando a jumper...
int MatrOpr = results[0].MatrOpr;
string baseAuthUrl = memLayer.ML.CRS("baseAuthUrl");
// rimando a pagina login con pwdOnly...
Response.Redirect(string.Format("{0}MatrOpr={1}&UserAuthKey={2}", baseAuthUrl, MatrOpr, UserAuthKey));
// Richiesto https
// basato su instascan:
// https://github.com/schmich/instascan
if (!Page.IsPostBack)
{
txtQRCode.Text = "";
hlReload.Enabled = false;
}
}
}
}
protected void lbtGo_Click(object sender, EventArgs e)
{
checkloginPwdOnly();
protected void txtQRCode_TextChanged(object sender, EventArgs e)
{
checkloginPwdOnly();
}
/// <summary>
/// controllo login solo con pwd
/// </summary>
private void checkloginPwdOnly()
{
// se abilitato login "pwdOnly" rimando a login...
if (memLayer.ML.cdvb("loginPwdOnly"))
{
string UserAuthKey = txtQRCode.Text.Trim();
// cerco se la pwd valida ci sia...
var results = DataLayerObj.taOp.getByAuthKey(UserAuthKey);
if (results.Count > 0)
{
// in questo caso rimando a jumper...
int MatrOpr = results[0].MatrOpr;
string baseAuthUrl = memLayer.ML.CRS("baseAuthUrl");
// rimando a pagina login con pwdOnly...
Response.Redirect(string.Format("{0}MatrOpr={1}&UserAuthKey={2}", baseAuthUrl, MatrOpr, UserAuthKey));
}
}
}
protected void lbtGo_Click(object sender, EventArgs e)
{
checkloginPwdOnly();
}
}
}
}
@@ -3,7 +3,7 @@ using System.Web.UI;
namespace MoonProTablet.WebUserControls
{
public partial class mod_RepProd_GG : System.Web.UI.UserControl
public partial class mod_RepProd_GG : BaseUserControl
{
protected void Page_Load(object sender, EventArgs e)
{
+83 -87
View File
@@ -6,100 +6,96 @@ using System.Web.UI.WebControls;
namespace MoonProTablet.WebUserControls
{
public partial class mod_commenti : System.Web.UI.UserControl
{
/// <summary>
/// Oggetto datalayer specifico
/// </summary>
DataLayer DataLayerObj = new DataLayer();
/// <summary>
/// registrata richiesta
/// </summary>
public event EventHandler eh_reqEdit;
protected void Page_Load(object sender, EventArgs e)
public partial class mod_commenti : BaseUserControl
{
if (!Page.IsPostBack)
{
ddlPageSize.DataBind();
// verifico SE deve rileggere da sessione
if (memLayer.ML.CRB("preselFromSession"))
/// <summary>
/// registrata richiesta
/// </summary>
public event EventHandler eh_reqEdit;
protected void Page_Load(object sender, EventArgs e)
{
try
{
ddlPageSize.SelectedValue = numPagSize.ToString();
}
catch
{ }
if (!Page.IsPostBack)
{
ddlPageSize.DataBind();
// verifico SE deve rileggere da sessione
if (memLayer.ML.CRB("preselFromSession"))
{
try
{
ddlPageSize.SelectedValue = numPagSize.ToString();
}
catch
{ }
}
else
{
// imposto da valore DEFAULT
ddlPageSize.SelectedValue = memLayer.ML.CRS("mod_commenti_ddlPageSize");
}
}
}
else
protected int numPagSize
{
// imposto da valore DEFAULT
ddlPageSize.SelectedValue = memLayer.ML.CRS("mod_commenti_ddlPageSize");
get
{
return memLayer.ML.IntSessionObj("mod_commenti_numPagSize");
}
set
{
memLayer.ML.setSessionVal("mod_commenti_numPagSize", value);
}
}
/// <summary>
/// abilitazione edit commenti
/// </summary>
public bool enableEdit
{
get
{
return memLayer.ML.CRB("commEnableEditDel");
}
}
}
}
protected int numPagSize
{
get
{
return memLayer.ML.IntSessionObj("mod_commenti_numPagSize");
}
set
{
memLayer.ML.setSessionVal("mod_commenti_numPagSize", value);
}
}
/// <summary>
/// abilitazione edit commenti
/// </summary>
public bool enableEdit
{
get
{
return memLayer.ML.CRB("commEnableEditDel");
}
}
public void doUpdate()
{
repComm.DataBind();
}
public void doUpdate()
{
repComm.DataBind();
}
/// <summary>
/// carico x edit commento
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void lbtEdit_Click(object sender, EventArgs e)
{
LinkButton imgBtn = (LinkButton)sender;
DateTime inizioStato = Convert.ToDateTime(imgBtn.CommandArgument);
memLayer.ML.setSessionVal("inizioStato", inizioStato);
// sollevo evento!
if (eh_reqEdit != null)
{
eh_reqEdit(this, new EventArgs());
}
}
/// <summary>
/// elimina commento
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void lbtDel_Click(object sender, EventArgs e)
{
LinkButton imgBtn = (LinkButton)sender;
DateTime inizioStato = Convert.ToDateTime(imgBtn.CommandArgument);
string idxMacchina = memLayer.ML.StringSessionObj("idxMacchina");
DataLayerObj.taEventi.DeleteQuery(idxMacchina, inizioStato);
doUpdate();
}
/// <summary>
/// carico x edit commento
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void lbtEdit_Click(object sender, EventArgs e)
{
LinkButton imgBtn = (LinkButton)sender;
DateTime inizioStato = Convert.ToDateTime(imgBtn.CommandArgument);
memLayer.ML.setSessionVal("inizioStato", inizioStato);
// sollevo evento!
if (eh_reqEdit != null)
{
eh_reqEdit(this, new EventArgs());
}
protected void ddlPageSize_SelectedIndexChanged(object sender, EventArgs e)
{
numPagSize = Convert.ToInt16(ddlPageSize.SelectedValue);
}
}
/// <summary>
/// elimina commento
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void lbtDel_Click(object sender, EventArgs e)
{
LinkButton imgBtn = (LinkButton)sender;
DateTime inizioStato = Convert.ToDateTime(imgBtn.CommandArgument);
string idxMacchina = memLayer.ML.StringSessionObj("idxMacchina");
DataLayerObj.taEventi.DeleteQuery(idxMacchina, inizioStato);
doUpdate();
}
protected void ddlPageSize_SelectedIndexChanged(object sender, EventArgs e)
{
numPagSize = Convert.ToInt16(ddlPageSize.SelectedValue);
}
}
}
+1 -5
View File
@@ -5,17 +5,13 @@ using System.Web.UI;
namespace MoonProTablet.WebUserControls
{
public partial class mod_confProd : MpTabUserControl
public partial class mod_confProd : BaseUserControl
{
/// <summary>
/// indica conferma con rettifica (evento 121)
/// </summary>
protected bool confRett = memLayer.ML.CRB("confRett");
/// <summary>
/// Oggetto datalayer specifico
/// </summary>
DataLayer DataLayerObj = new DataLayer();
/// <summary>
/// registrato nuovo valore
/// </summary>
public event EventHandler eh_inserting;
+240 -258
View File
@@ -5,272 +5,254 @@ using System.Web.UI;
namespace MoonProTablet.WebUserControls
{
public partial class mod_controlliProd : System.Web.UI.UserControl
{
/// <summary>
/// Oggetto datalayer specifico
/// </summary>
DataLayer DataLayerObj = new DataLayer();
/// <summary>
/// registrato nuovo valore
/// </summary>
public event EventHandler eh_newVal;
/// <summary>
/// registrato nuovo valore
/// </summary>
public event EventHandler eh_reset;
/// <summary>
/// caricamento pagina
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
public partial class mod_controlliProd : BaseUserControl
{
if (!Page.IsPostBack)
{
checkAll();
}
}
private void checkAll()
{
fixSelMacc();
checkOdl();
lblOut.Text = "";
switchBtnConferma(false);
lbtShowContr.Visible = odlOk;
lblConfProd.Visible = !odlOk;
}
/// <summary>
/// Verifica se abbia un ODL ATTIVO
/// </summary>
private void checkOdl()
{
lbtShowContr.Visible = odlOk;
lblConfProd.Visible = !odlOk;
lblMancaODL.Visible = !odlOk;
}
/// <summary>
/// Verifica se la macchina MAIN sia MULTI (da DatiMacchina / redis...)
/// </summary>
protected bool isMulti
{
get
{
return DataLayerObj.isMulti(idxMacchinaSession);
}
}
/// <summary>
/// Se la machcina è MULTI --> mostro selettore
/// </summary>
private void fixSelMacc()
{
divSelMacc.Visible = isMulti;
fixSelMaccControlli();
}
/// <summary>
/// restituisce css disabled SE odl NON OK...
/// </summary>
public string cssBtnConf
{
get
{
return odlOk ? "" : "disabled";
}
}
/// <summary>
/// Verifica ODL OK (ovvero caricato x macchina...)
/// </summary>
public bool odlOk
{
get
{
bool answ = true;
// carico i dati preliminari: ODL
int idxOdl = 0; // userò ODL del turno
try
/// <summary>
/// registrato nuovo valore
/// </summary>
public event EventHandler eh_newVal;
/// <summary>
/// registrato nuovo valore
/// </summary>
public event EventHandler eh_reset;
/// <summary>
/// caricamento pagina
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
{
idxOdl = DataLayerObj.taODL.getByMacchina(idxMacchina)[0].IdxODL;
if (!Page.IsPostBack)
{
checkAll();
}
}
catch
{
logger.lg.scriviLog(string.Format("Errore a recuperare ODL per la macchina {0}", idxMacchina), tipoLog.ERROR);
}
// se ODL > 0 è ok!!!
answ = (idxOdl > 0);
return answ;
}
}
/// <summary>
/// idx macchina selezionata
/// </summary>
public string idxMacchina
{
get
{
string answ = memLayer.ML.StringSessionObj("IdxMacchina");
// verifoc: se multi uso selettore tendina...
if (isMulti)
{
if (ddlSubMacc.SelectedValue == "")
{
ddlSubMacc.DataBind();
}
if (ddlSubMacc.SelectedValue != "")
{
answ = ddlSubMacc.SelectedValue;
}
}
return answ;
}
set
{
memLayer.ML.setSessionVal("IdxMacchina", value);
}
}
/// <summary>
/// idx macchina selezionata
/// </summary>
public string idxMacchinaSession
{
get
{
return memLayer.ML.StringSessionObj("IdxMacchina");
}
set
{
memLayer.ML.setSessionVal("IdxMacchina", value);
}
}
/// <summary>
/// cambio stato visibilità pannello e testo button
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void lbtShowContr_Click(object sender, EventArgs e)
{
switchBtnConferma(!lbtOK.Visible);
}
/// <summary>
/// determina comportamento btn conferma
/// </summary>
private void switchBtnConferma(bool showConf)
{
lbtOK.Visible = showConf;
lbtKO.Visible = showConf;
lbtSalva.Visible = showConf;
if (showConf)
{
lblShowContr.Text = "Nascondi Controllo";
}
else
{
lblShowContr.Text = "Registra Controllo";
// sollevo evento!
if (eh_reset != null)
{
eh_reset(this, new EventArgs());
}
}
}
/// <summary>
/// salvo produzione
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void lbtSalva_Click(object sender, EventArgs e)
{
// se ODL ok...
if (odlOk)
{
// salvo controllo KO
DataLayerObj.taRC.insertQuery(idxMacchina, DataLayerObj.MatrOpr, false, txtNoteContr.Text.Trim(), DateTime.Now);
// sollevo evento!
if (eh_newVal != null)
{
eh_newVal(this, new EventArgs());
}
resetControlli();
}
}
private void resetControlli()
{
txtNoteContr.Text = "";
// nascondo!
switchBtnConferma(false);
divNote.Visible = false;
}
protected void ddlSubMacc_SelectedIndexChanged(object sender, EventArgs e)
{
subMaccSel = ddlSubMacc.SelectedValue;
fixSelMaccControlli();
checkAll();
}
private void fixSelMaccControlli()
{
if (isMulti)
{
memLayer.ML.setSessionVal("IdxMacchinaControlli", subMaccSel);
}
else
{
memLayer.ML.setSessionVal("IdxMacchinaControlli", idxMacchinaSession);
}
}
protected void ddlSubMacc_DataBound(object sender, EventArgs e)
{
// se ho in memoria un valore LO REIMPOSTO...
if (subMaccSel != "")
{
// provo a preselezionare...
try
private void checkAll()
{
ddlSubMacc.SelectedValue = subMaccSel;
fixSelMacc();
checkOdl();
lblOut.Text = "";
switchBtnConferma(false);
lbtShowContr.Visible = odlOk;
lblConfProd.Visible = !odlOk;
}
catch
{ }
}
}
/// <summary>
/// Sotto sistema (macchina) selezionato
/// </summary>
public string subMaccSel
{
get
{
return memLayer.ML.StringSessionObj("subMaccSel");
}
set
{
memLayer.ML.setSessionVal("subMaccSel", value);
}
}
protected void lbtOK_Click(object sender, EventArgs e)
{
// se ODL ok...
if (odlOk)
{
// Salvo controllo come OK
// sollevo evento!
DataLayerObj.taRC.insertQuery(idxMacchina, DataLayerObj.MatrOpr, true, "", DateTime.Now);
if (eh_newVal != null)
/// <summary>
/// Verifica se abbia un ODL ATTIVO
/// </summary>
private void checkOdl()
{
eh_newVal(this, new EventArgs());
lbtShowContr.Visible = odlOk;
lblConfProd.Visible = !odlOk;
lblMancaODL.Visible = !odlOk;
}
}
resetControlli();
}
protected void lbtKO_Click(object sender, EventArgs e)
{
divNote.Visible = true;
/// <summary>
/// Verifica se la macchina MAIN sia MULTI (da DatiMacchina / redis...)
/// </summary>
protected bool isMulti
{
get
{
return DataLayerObj.isMulti(idxMacchina);
}
}
/// <summary>
/// Se la machcina è MULTI --> mostro selettore
/// </summary>
private void fixSelMacc()
{
divSelMacc.Visible = isMulti;
fixSelMaccControlli();
}
/// <summary>
/// restituisce css disabled SE odl NON OK...
/// </summary>
public string cssBtnConf
{
get
{
return odlOk ? "" : "disabled";
}
}
/// <summary>
/// Verifica ODL OK (ovvero caricato x macchina...)
/// </summary>
public bool odlOk
{
get
{
bool answ = true;
// carico i dati preliminari: ODL
int idxOdl = 0; // userò ODL del turno
try
{
idxOdl = DataLayerObj.taODL.getByMacchina(idxMacchinaFix)[0].IdxODL;
}
catch
{
logger.lg.scriviLog(string.Format("Errore a recuperare ODL per la macchina {0}", idxMacchinaFix), tipoLog.ERROR);
}
// se ODL > 0 è ok!!!
answ = (idxOdl > 0);
return answ;
}
}
/// <summary>
/// idx macchina selezionata
/// </summary>
public string idxMacchinaFix
{
get
{
string answ = idxMacchina;
// verifoc: se multi uso selettore tendina...
if (isMulti)
{
if (ddlSubMacc.SelectedValue == "")
{
ddlSubMacc.DataBind();
}
if (ddlSubMacc.SelectedValue != "")
{
answ = ddlSubMacc.SelectedValue;
}
}
return answ;
}
set
{
memLayer.ML.setSessionVal("IdxMacchina", value);
}
}
/// <summary>
/// cambio stato visibilità pannello e testo button
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void lbtShowContr_Click(object sender, EventArgs e)
{
switchBtnConferma(!lbtOK.Visible);
}
/// <summary>
/// determina comportamento btn conferma
/// </summary>
private void switchBtnConferma(bool showConf)
{
lbtOK.Visible = showConf;
lbtKO.Visible = showConf;
lbtSalva.Visible = showConf;
if (showConf)
{
lblShowContr.Text = "Nascondi Controllo";
}
else
{
lblShowContr.Text = "Registra Controllo";
// sollevo evento!
if (eh_reset != null)
{
eh_reset(this, new EventArgs());
}
}
}
/// <summary>
/// salvo produzione
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void lbtSalva_Click(object sender, EventArgs e)
{
// se ODL ok...
if (odlOk)
{
// salvo controllo KO
DataLayerObj.taRC.insertQuery(idxMacchinaFix, DataLayerObj.MatrOpr, false, txtNoteContr.Text.Trim(), DateTime.Now);
// sollevo evento!
if (eh_newVal != null)
{
eh_newVal(this, new EventArgs());
}
resetControlli();
}
}
private void resetControlli()
{
txtNoteContr.Text = "";
// nascondo!
switchBtnConferma(false);
divNote.Visible = false;
}
protected void ddlSubMacc_SelectedIndexChanged(object sender, EventArgs e)
{
subMaccSel = ddlSubMacc.SelectedValue;
fixSelMaccControlli();
checkAll();
}
private void fixSelMaccControlli()
{
if (isMulti)
{
memLayer.ML.setSessionVal("IdxMacchinaControlli", subMaccSel);
}
else
{
memLayer.ML.setSessionVal("IdxMacchinaControlli", idxMacchina);
}
}
protected void ddlSubMacc_DataBound(object sender, EventArgs e)
{
// se ho in memoria un valore LO REIMPOSTO...
if (subMaccSel != "")
{
// provo a preselezionare...
try
{
ddlSubMacc.SelectedValue = subMaccSel;
}
catch
{ }
}
}
/// <summary>
/// Sotto sistema (macchina) selezionato
/// </summary>
public string subMaccSel
{
get
{
return memLayer.ML.StringSessionObj("subMaccSel");
}
set
{
memLayer.ML.setSessionVal("subMaccSel", value);
}
}
protected void lbtOK_Click(object sender, EventArgs e)
{
// se ODL ok...
if (odlOk)
{
// Salvo controllo come OK
// sollevo evento!
DataLayerObj.taRC.insertQuery(idxMacchinaFix, DataLayerObj.MatrOpr, true, "", DateTime.Now);
if (eh_newVal != null)
{
eh_newVal(this, new EventArgs());
}
}
resetControlli();
}
protected void lbtKO_Click(object sender, EventArgs e)
{
divNote.Visible = true;
}
}
}
}
@@ -5,12 +5,8 @@ using System.Web.UI;
namespace MoonProTablet.WebUserControls
{
public partial class mod_dettMacchina : MpTabUserControl
public partial class mod_dettMacchina : BaseUserControl
{
/// <summary>
/// Oggetto datalayer specifico
/// </summary>
DataLayer DataLayerObj = new DataLayer();
/// <summary>
/// fatto refresh --> chiedo remove modal (se c'è)
/// </summary>
@@ -61,28 +57,6 @@ namespace MoonProTablet.WebUserControls
}
}
/// <summary>
/// url completo immagine
/// </summary>
/// <param name="url"></param>
/// <returns></returns>
public string ImgUrl(object url)
{
if (url.ToString() == "")
{
url = "empty.png";
}
return string.Format("./images/macchine/{0}", url);
}
/// <summary>
/// fomratta durata in minuti/ore/gg a seconda del totale...
/// </summary>
/// <param name="minuti"></param>
/// <returns></returns>
public string formatDurata(object min)
{
return utility.formatDurata(min);
}
/// <summary>
/// fa update del controllo
/// </summary>
public void doUpdate()
@@ -178,29 +152,5 @@ namespace MoonProTablet.WebUserControls
}
return answ;
}
public string urlDisegno(object _codArticolo)
{
// default è ND...
string outVal = "~/Files/Disegni/ND.pdf";
// recupero da anagrafica articoli...
try
{
DS_ProdTempi.AnagArticoliRow riga = selData.mng.rigaArt(_codArticolo.ToString());
if (riga != null)
{
outVal = string.Format("~/Files/Disegni/{0}.pdf", riga.Disegno);
}
else
{
logger.lg.scriviLog(string.Format("Attenzione! nessuna informazione trovata per l'articolo {0}", _codArticolo), tipoLog.WARNING);
}
}
catch (Exception exc)
{
logger.lg.scriviLog(string.Format("Errore in ricostruzione URL disegno:{0}{1}", Environment.NewLine, exc), tipoLog.EXCEPTION);
}
return outVal;
}
}
}
+29 -29
View File
@@ -2,35 +2,35 @@
namespace MoonProTablet.WebUserControls
{
public partial class mod_dettTurni : System.Web.UI.UserControl
{
protected void Page_Load(object sender, EventArgs e)
public partial class mod_dettTurni : BaseUserControl
{
updateTurni();
protected void Page_Load(object sender, EventArgs e)
{
updateTurni();
}
/// <summary>
/// aggiorna classi grafiche turni
/// </summary>
protected void updateTurni()
{
}
/// <summary>
/// fornisce classe CSS x colorare il turno secondo apertura o meno
/// </summary>
/// <param name="turno"></param>
/// <returns></returns>
public string coloreDaTurno(object turno)
{
string answ = "sGr px-2";
bool aperto = false;
try
{
aperto = Convert.ToBoolean(turno);
}
catch
{ }
if (aperto) answ = "sVe px-2";
return answ;
}
}
/// <summary>
/// aggiorna classi grafiche turni
/// </summary>
protected void updateTurni()
{
}
/// <summary>
/// fornisce classe CSS x colorare il turno secondo apertura o meno
/// </summary>
/// <param name="turno"></param>
/// <returns></returns>
public string coloreDaTurno(object turno)
{
string answ = "sGr px-2";
bool aperto = false;
try
{
aperto = Convert.ToBoolean(turno);
}
catch
{ }
if (aperto) answ = "sVe px-2";
return answ;
}
}
}
+110 -137
View File
@@ -4,143 +4,116 @@ using System;
namespace MoonProTablet.WebUserControls
{
public partial class mod_dettaglioProd : System.Web.UI.UserControl
{
/// <summary>
/// Oggetto datalayer specifico
/// </summary>
DataLayer DataLayerObj = new DataLayer();
/// <summary>
/// effettua traduzione del lemma
/// </summary>
/// <param name="lemma"></param>
/// <returns></returns>
public string traduci(string lemma)
public partial class mod_dettaglioProd : BaseUserControl
{
return user_std.UtSn.Traduci(lemma);
/// <summary>
/// caricamento pagina
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
{
popolaLabels();
}
/// <summary>
/// popola le labels
/// </summary>
private void popolaLabels()
{
// forzo ricalcolo
DataLayerObj.taMSE.forceRecalc(0, idxMacchina);
// leggo riga...
DS_ProdTempi.MappaStatoExplRow rigaDati = DataLayerObj.taMSE.getByIdxMacchina(idxMacchina)[0];
// carico le info!
lblOdl.Text = string.Format("ODL num: {0}, iniziato il {1:dd/MM/yy} alle {1:HH:mm}", rigaDati.idxODL, rigaDati.DataInizioODL);
/************************************
* data la postazione corrente decide cosa mostrare e come
************************************/
lblCodArticolo.Text = rigaDati.CodArticolo;
lblNumPzLanciati.Text = string.Format("{0} pz.", rigaDati.NumPezzi);
lblNumPzConf.Text = string.Format("{0} pz.", rigaDati.PezziConf);
lblNumPzFatti.Text = string.Format("({0} pz.)", rigaDati.PezziProd);
/************************************
* calcolo efficienza totale
* se il calcolo non è possibile mette n/a
************************************/
decimal tempoProd = rigaDati.TCAssegnato * rigaDati.PezziConf;
try
{
lblEfficienzaTot.Text = Convert.ToString(String.Format("{0:p2}", tempoProd / rigaDati.TempoOn / 100));
}
catch
{
lblEfficienzaTot.Text = "n/a";
}
// calcolo efficienza lavoro - se il calcolo non è possibile mette n/a
try
{
lblEfficienzaLavoro.Text = Convert.ToString(String.Format("{0:p2}", tempoProd / rigaDati.TempoAuto / 100));
}
catch
{
lblEfficienzaLavoro.Text = "n/a";
}
// calcolo efficienza Teorica - se il calcolo non è possibile mette n/a
try
{
lblEfficienzaEff.Text = Convert.ToString(String.Format("{0:p2}", tempoProd / rigaDati.TempoRun / 100));
}
catch
{
lblEfficienzaEff.Text = "n/a";
}
/************************************
* imposto i TEMPI CICLO
************************************/
// riporto Tempo ciclo impostato
lblTcImpostato.Text = Convert.ToString(String.Format("{0:0.###}", rigaDati.TCAssegnato));
// riporto Tempo ciclo medio
lblTcMedio.Text = Convert.ToString(String.Format("{0:0.###}", rigaDati.TCMedio));
lblTcMedioRT.Text = Convert.ToString(String.Format("({0:0.###})", rigaDati.TCMedioRT));
// riporto Tempo ciclo lavoro
lblTcLavoro.Text = Convert.ToString(String.Format("{0:0.###}", rigaDati.TCLav));
lblTcLavoroRT.Text = Convert.ToString(String.Format("({0:0.###})", rigaDati.TCLavRT));
// riporto Tempo ciclo effettivo/tecnico, come media dei 10 migliori delle ultime 8 ore
lblTcEffettivo.Text = Convert.ToString(String.Format("{0:0.###}", rigaDati.TCEff));
lblTcEffettivoRT.Text = Convert.ToString(String.Format("({0:0.###})", rigaDati.TCEffRT));
/************************************
* Sistemo efficienze RT da tempi ciclo
************************************/
try
{
lblEfficienzaTotRT.Text = Convert.ToString(String.Format("({0:p2})", rigaDati.TCAssegnato / rigaDati.TCMedioRT));
}
catch
{
lblEfficienzaTotRT.Text = "n/a";
}
// calcolo efficienza lavoro - se il calcolo non è possibile mette n/a
try
{
lblEfficienzaLavoroRT.Text = Convert.ToString(String.Format("({0:p2})", rigaDati.TCAssegnato / rigaDati.TCLavRT));
}
catch
{
lblEfficienzaLavoroRT.Text = "n/a";
}
// calcolo efficienza Teorica - se il calcolo non è possibile mette n/a
try
{
lblEfficienzaEffRT.Text = Convert.ToString(String.Format("({0:p2})", rigaDati.TCAssegnato / rigaDati.TCEffRT));
}
catch
{
lblEfficienzaEffRT.Text = "n/a";
}
}
}
/// <summary>
/// caricamento pagina
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
{
popolaLabels();
}
/// <summary>
/// popola le labels
/// </summary>
private void popolaLabels()
{
// forzo ricalcolo
DataLayerObj.taMSE.forceRecalc(0, idxMacchina);
// leggo riga...
DS_ProdTempi.MappaStatoExplRow rigaDati = DataLayerObj.taMSE.getByIdxMacchina(idxMacchina)[0];
// carico le info!
lblOdl.Text = string.Format("ODL num: {0}, iniziato il {1:dd/MM/yy} alle {1:HH:mm}", rigaDati.idxODL, rigaDati.DataInizioODL);
/************************************
* data la postazione corrente decide cosa mostrare e come
************************************/
lblCodArticolo.Text = rigaDati.CodArticolo;
lblNumPzLanciati.Text = string.Format("{0} pz.", rigaDati.NumPezzi);
lblNumPzConf.Text = string.Format("{0} pz.", rigaDati.PezziConf);
lblNumPzFatti.Text = string.Format("({0} pz.)", rigaDati.PezziProd);
/************************************
* calcolo efficienza totale
* se il calcolo non è possibile mette n/a
************************************/
decimal tempoProd = rigaDati.TCAssegnato * rigaDati.PezziConf;
try
{
lblEfficienzaTot.Text = Convert.ToString(String.Format("{0:p2}", tempoProd / rigaDati.TempoOn / 100));
}
catch
{
lblEfficienzaTot.Text = "n/a";
}
// calcolo efficienza lavoro - se il calcolo non è possibile mette n/a
try
{
lblEfficienzaLavoro.Text = Convert.ToString(String.Format("{0:p2}", tempoProd / rigaDati.TempoAuto / 100));
}
catch
{
lblEfficienzaLavoro.Text = "n/a";
}
// calcolo efficienza Teorica - se il calcolo non è possibile mette n/a
try
{
lblEfficienzaEff.Text = Convert.ToString(String.Format("{0:p2}", tempoProd / rigaDati.TempoRun / 100));
}
catch
{
lblEfficienzaEff.Text = "n/a";
}
/************************************
* imposto i TEMPI CICLO
************************************/
// riporto Tempo ciclo impostato
lblTcImpostato.Text = Convert.ToString(String.Format("{0:0.###}", rigaDati.TCAssegnato));
// riporto Tempo ciclo medio
lblTcMedio.Text = Convert.ToString(String.Format("{0:0.###}", rigaDati.TCMedio));
lblTcMedioRT.Text = Convert.ToString(String.Format("({0:0.###})", rigaDati.TCMedioRT));
// riporto Tempo ciclo lavoro
lblTcLavoro.Text = Convert.ToString(String.Format("{0:0.###}", rigaDati.TCLav));
lblTcLavoroRT.Text = Convert.ToString(String.Format("({0:0.###})", rigaDati.TCLavRT));
// riporto Tempo ciclo effettivo/tecnico, come media dei 10 migliori delle ultime 8 ore
lblTcEffettivo.Text = Convert.ToString(String.Format("{0:0.###}", rigaDati.TCEff));
lblTcEffettivoRT.Text = Convert.ToString(String.Format("({0:0.###})", rigaDati.TCEffRT));
/************************************
* Sistemo efficienze RT da tempi ciclo
************************************/
try
{
lblEfficienzaTotRT.Text = Convert.ToString(String.Format("({0:p2})", rigaDati.TCAssegnato / rigaDati.TCMedioRT));
}
catch
{
lblEfficienzaTotRT.Text = "n/a";
}
// calcolo efficienza lavoro - se il calcolo non è possibile mette n/a
try
{
lblEfficienzaLavoroRT.Text = Convert.ToString(String.Format("({0:p2})", rigaDati.TCAssegnato / rigaDati.TCLavRT));
}
catch
{
lblEfficienzaLavoroRT.Text = "n/a";
}
// calcolo efficienza Teorica - se il calcolo non è possibile mette n/a
try
{
lblEfficienzaEffRT.Text = Convert.ToString(String.Format("({0:p2})", rigaDati.TCAssegnato / rigaDati.TCEffRT));
}
catch
{
lblEfficienzaEffRT.Text = "n/a";
}
}
/// <summary>
/// idxMacchina
/// </summary>
public string idxMacchina
{
get
{
return memLayer.ML.StringSessionObj("idxMacchina");
}
set
{
memLayer.ML.setSessionVal("idxMacchina", value);
}
}
}
}
@@ -23,7 +23,7 @@
<div class="m-1 p-0">
<asp:LinkButton ID="hlEvento" runat="server" OnClick="hlEvento_Click" CommandArgument='<%# Eval("value") %>'>
<div class="card text-white dichBlock rCAll">
<img class="card-img bg-dark rCAll" src='<%# ImgUrl(Eval("value")) %>' alt='<%# Eval("label") %>'>
<img class="card-img bg-dark rCAll" src='<%# ImgUrlIcon(Eval("value")) %>' alt='<%# Eval("label") %>'>
<div class="card-img-overlay p-0 d-flex flex-row-reverse align-items-end rCBot">
<div class="labelBottom text-center px-2 text-uppercase">
<asp:Label runat="server" ID="lblBadge" Text='<%# Eval("label") %>' />
+146 -176
View File
@@ -5,198 +5,168 @@ using System.Web.UI.WebControls;
namespace MoonProTablet.WebUserControls
{
public partial class mod_dichiarazione : System.Web.UI.UserControl
{
/// <summary>
/// classe MapoDB x uso locale
/// </summary>
protected MapoDb.MapoDb controllerMapo = new MapoDb.MapoDb();
/// <summary>
/// Oggetto datalayer specifico
/// </summary>
DataLayer DataLayerObj = new DataLayer();
/// <summary>
/// registrato nuovo valore
/// </summary>
public event EventHandler eh_newVal;
/// <summary>
/// idx macchina selezionata
/// </summary>
public string idxMacchina
public partial class mod_dichiarazione : BaseUserControl
{
get
{
return memLayer.ML.StringSessionObj("IdxMacchina");
}
set
{
memLayer.ML.setSessionVal("IdxMacchina", value);
}
}
/// <summary>
/// caricamento principale
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
{
repLI.DataBind();
}
/// <summary>
/// rimanda alla pagina di dettaglio della macchina scelta
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void hlEvento_Click(object sender, EventArgs e)
{
LinkButton lnkbtn = (LinkButton)sender;
int idxEvento = 0;
try
{
idxEvento = Convert.ToInt32(lnkbtn.CommandArgument);
}
catch
{ }
if (idxEvento > 0)
{
DS_applicazione.AnagraficaEventiRow rigaEvento = DataLayerObj.taAnagEventi.GetByIdx(idxEvento)[0];
if (rigaEvento != null)
/// <summary>
/// registrato nuovo valore
/// </summary>
public event EventHandler eh_newVal;
/// <summary>
/// caricamento principale
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
{
DS_applicazione.StatoMacchineRow rigaStato = DataLayerObj.taStatoMacchine.GetDataByIdxMacchina(idxMacchina)[0];
// processo evento...
if (insRealtime)
{
// se realtime
DataLayerObj.scriviRigaEventoBarcode(idxMacchina, idxEvento, rigaStato.CodArticolo, "DRT", DataLayerObj.MatrOpr, rigaStato.pallet);
}
else
{
// in primis disabilito insert...
DataLayerObj.taStatoMacchine.setInsEnabled(idxMacchina, false);
// calcolo evento
string evento = idxEvento.ToString();
string commento = "";
repLI.DataBind();
}
/// <summary>
/// rimanda alla pagina di dettaglio della macchina scelta
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void hlEvento_Click(object sender, EventArgs e)
{
LinkButton lnkbtn = (LinkButton)sender;
int idxEvento = 0;
try
{
evento = DataLayerObj.taAnagEventi.GetByIdx(idxEvento)[0].Nome.Replace("Barcode - ", "");
idxEvento = Convert.ToInt32(lnkbtn.CommandArgument);
}
catch
{ }
// genero stringa pseudo-univoca
string codRich = string.Format("{0:yyMMddHHmmss}-{1}", DateTime.Now, idxEvento);
// x prima cosa scrivo un evento tipo "1" x chiudere la durata appena prima dell'evento successivo
try
if (idxEvento > 0)
{
// cerco da 1 sec DOPO evento...
DS_applicazione.DiarioDiBordoDataTable tabNext = controllerMapo.nextEventoImpiantoFrom(idxMacchina, dataOraEv.AddSeconds(1));
DS_applicazione.AnagraficaEventiRow rigaEvento = DataLayerObj.taAnagEventi.GetByIdx(idxEvento)[0];
if (rigaEvento != null)
{
DS_applicazione.StatoMacchineRow rigaStato = DataLayerObj.taStatoMacchine.GetDataByIdxMacchina(idxMacchina)[0];
// processo evento...
if (insRealtime)
{
// se realtime
DataLayerObj.scriviRigaEventoBarcode(idxMacchina, idxEvento, rigaStato.CodArticolo, "DRT", DataLayerObj.MatrOpr, rigaStato.pallet);
}
else
{
// in primis disabilito insert...
DataLayerObj.taStatoMacchine.setInsEnabled(idxMacchina, false);
// calcolo evento
string evento = idxEvento.ToString();
string commento = "";
try
{
evento = DataLayerObj.taAnagEventi.GetByIdx(idxEvento)[0].Nome.Replace("Barcode - ", "");
}
catch
{ }
// genero stringa pseudo-univoca
string codRich = string.Format("{0:yyMMddHHmmss}-{1}", DateTime.Now, idxEvento);
// x prima cosa scrivo un evento tipo "1" x chiudere la durata appena prima dell'evento successivo
try
{
// cerco da 1 sec DOPO evento...
DS_applicazione.DiarioDiBordoDataTable tabNext = controllerMapo.nextEventoImpiantoFrom(idxMacchina, dataOraEv.AddSeconds(1));
DateTime nextEvDT = DateTime.Now;
if (tabNext.Rows.Count > 0)
{
nextEvDT = tabNext[0].InizioStato;
}
// se non trovo chiusura evento inserisco a 1 minuto prima di adesso la chiusura...
else
{
nextEvDT = DateTime.Now.AddMinutes(-1);
}
// fix salvo la dichiarazione di chiusura
commento = string.Format("999 - M.Lav EndEvt: {0} [{1}]", evento, codRich);
DataLayerObj.scriviRigaEventoBarcode(idxMacchina, 1, rigaStato.CodArticolo, commento, DataLayerObj.MatrOpr, rigaStato.pallet, nextEvDT.AddSeconds(-1), DateTime.Now); // 1 hard-coded x resettare
DateTime nextEvDT = DateTime.Now;
if (tabNext.Rows.Count > 0)
{
nextEvDT = tabNext[0].InizioStato;
}
// se non trovo chiusura evento inserisco a 1 minuto prima di adesso la chiusura...
else
{
nextEvDT = DateTime.Now.AddMinutes(-1);
}
// fix salvo la dichiarazione di chiusura
commento = string.Format("999 - M.Lav EndEvt: {0} [{1}]", evento, codRich);
DataLayerObj.scriviRigaEventoBarcode(idxMacchina, 1, rigaStato.CodArticolo, commento, DataLayerObj.MatrOpr, rigaStato.pallet, nextEvDT.AddSeconds(-1), DateTime.Now); // 1 hard-coded x resettare
}
catch
{ }
// update commento!
commento = string.Format("999 - Dich StartEvt: {0} [{1}]", evento, codRich);
// recupero data/ora evento da inserire (quella selezionata) ed AGGIUNGO 1 sec!!! così rimane traccia
DataLayerObj.scriviRigaEventoBarcode(idxMacchina, idxEvento, rigaStato.CodArticolo, commento, DataLayerObj.MatrOpr, rigaStato.pallet, dataOraEv.AddSeconds(1), DateTime.Now);
// eseguo ricalcolo!
DateTime startRicalcolo = dataOraEv.AddMinutes(memLayer.ML.CRI("minAnticipoRicalcolo"));
// leggo parametri x esecuzione...
int rdm_nEvStep = memLayer.ML.CRI("rdm_nEvStep");
int rdm_nEvCheck = memLayer.ML.CRI("rdm_nEvCheck");
bool rdm_ChkOnly = memLayer.ML.CRB("rdm_ChkOnly");
DataLayerObj.taComm.stp_ricalcolaDatiMacchinaFromDate(idxMacchina, startRicalcolo, 1, rdm_nEvStep, rdm_nEvCheck, rdm_ChkOnly); // nella stored imposto macchina OFFline e poi ONline, parto da "minAnticipoRicalcolo" minuti prima...
// aggiorno data evento x insert eventuale commento (5 sec...)
dataOraEv = dataOraEv.AddSeconds(5);
// riabilito insert... anche se non dovrebbe servire x stored ricalcolo precedente...
DataLayerObj.taStatoMacchine.setInsEnabled(idxMacchina, true);
}
// mostro esito
lblOut.Text = "Registrata dichiarazione fermata";
}
else
{
lblOut.Text = string.Format("Codice evento non valido! {0}", idxEvento);
}
}
// refresh fermate
repLI.DataBind();
// faccio refresh x singola macchina 2019.03.26
DataLayerObj.taMSE.forceRecalc(0, idxMacchina);
// sollevo evento!
if (eh_newVal != null)
{
eh_newVal(this, new EventArgs());
}
catch
{ }
// update commento!
commento = string.Format("999 - Dich StartEvt: {0} [{1}]", evento, codRich);
// recupero data/ora evento da inserire (quella selezionata) ed AGGIUNGO 1 sec!!! così rimane traccia
DataLayerObj.scriviRigaEventoBarcode(idxMacchina, idxEvento, rigaStato.CodArticolo, commento, DataLayerObj.MatrOpr, rigaStato.pallet, dataOraEv.AddSeconds(1), DateTime.Now);
// eseguo ricalcolo!
DateTime startRicalcolo = dataOraEv.AddMinutes(memLayer.ML.CRI("minAnticipoRicalcolo"));
// leggo parametri x esecuzione...
int rdm_nEvStep = memLayer.ML.CRI("rdm_nEvStep");
int rdm_nEvCheck = memLayer.ML.CRI("rdm_nEvCheck");
bool rdm_ChkOnly = memLayer.ML.CRB("rdm_ChkOnly");
DataLayerObj.taComm.stp_ricalcolaDatiMacchinaFromDate(idxMacchina, startRicalcolo, 1, rdm_nEvStep, rdm_nEvCheck, rdm_ChkOnly); // nella stored imposto macchina OFFline e poi ONline, parto da "minAnticipoRicalcolo" minuti prima...
// aggiorno data evento x insert eventuale commento (5 sec...)
dataOraEv = dataOraEv.AddSeconds(5);
// riabilito insert... anche se non dovrebbe servire x stored ricalcolo precedente...
DataLayerObj.taStatoMacchine.setInsEnabled(idxMacchina, true);
}
// mostro esito
lblOut.Text = "Registrata dichiarazione fermata";
}
else
/// <summary>
/// update (resetta testo)
/// </summary>
public void doUpdate()
{
lblOut.Text = string.Format("Codice evento non valido! {0}", idxEvento);
lblOut.Text = "";
}
}
// refresh fermate
repLI.DataBind();
// faccio refresh x singola macchina 2019.03.26
DataLayerObj.taMSE.forceRecalc(0, idxMacchina);
// sollevo evento!
if (eh_newVal != null)
{
eh_newVal(this, new EventArgs());
}
}
/// <summary>
/// url completo immagine
/// </summary>
/// <param name="url"></param>
/// <returns></returns>
public string ImgUrl(object url)
{
return string.Format("./images/iconDic/{0}.png", url);
}
/// <summary>
/// update (resetta testo)
/// </summary>
public void doUpdate()
{
lblOut.Text = "";
}
/// <summary>
/// determina se insert sia realtime o dataOra (in base a diff tra dataora sel ed evento, se superiore ad X minuto NON è realtime)
/// </summary>
public bool insRealtime
{
get
{
bool answ = true;
try
/// <summary>
/// determina se insert sia realtime o dataOra (in base a diff tra dataora sel ed evento, se superiore ad X minuto NON è realtime)
/// </summary>
public bool insRealtime
{
if (Math.Abs(dataOraEv.Subtract(DateTime.Now).TotalMinutes) > memLayer.ML.CRI("dltMinRealtime"))
{
answ = false;
}
get
{
bool answ = true;
try
{
if (Math.Abs(dataOraEv.Subtract(DateTime.Now).TotalMinutes) > memLayer.ML.CRI("dltMinRealtime"))
{
answ = false;
}
}
catch
{ }
return answ;
}
}
catch
{ }
return answ;
}
}
/// <summary>
/// data-ora selezionata
/// </summary>
protected DateTime dataOraEv
{
set
{
memLayer.ML.setSessionVal("dataOraEv", value);
}
get
{
DateTime answ = DateTime.Now;
try
/// <summary>
/// data-ora selezionata
/// </summary>
protected DateTime dataOraEv
{
answ = Convert.ToDateTime(memLayer.ML.objSessionObj("dataOraEv"));
set
{
memLayer.ML.setSessionVal("dataOraEv", value);
}
get
{
DateTime answ = DateTime.Now;
try
{
answ = Convert.ToDateTime(memLayer.ML.objSessionObj("dataOraEv"));
}
catch
{ }
return answ;
}
}
catch
{ }
return answ;
}
}
}
}
+46 -56
View File
@@ -8,63 +8,53 @@ using System.Web.UI.WebControls;
namespace MoonProTablet.WebUserControls
{
public partial class mod_directLinks : System.Web.UI.UserControl
{
protected void Page_Load(object sender, EventArgs e)
public partial class mod_directLinks : BaseUserControl
{
protected void Page_Load(object sender, EventArgs e)
{
}
/// <summary>
/// Verifica se la pagina corrente sia URL indicato --> mostra ACTIVE
/// </summary>
/// <param name="navUrl"></param>
/// <returns></returns>
public string checkPage(object navUrl)
{
string answ = "p-2 list-group-item list-group-item-action";
if (navUrl.ToString().Replace(".aspx", "").Replace("~/", "") == titolo.Replace(".aspx", ""))
{
answ += " disabled";
}
return answ;
}
/// <summary>
/// Verifica se la pagina corrente sia URL indicato --> mostra ACTIVE
/// </summary>
/// <param name="navUrl"></param>
/// <returns></returns>
public bool linkEnabled(object navUrl)
{
bool answ = true;
if (navUrl.ToString().Replace(".aspx", "").Replace("~/", "") == titolo.Replace(".aspx", ""))
{
answ = false;
}
return answ;
}
/// <summary>
/// Verifica se la pagina corrente sia URL indicato --> mostra ACTIVE
/// </summary>
/// <param name="navUrl"></param>
/// <returns></returns>
public string cssPage(object navUrl)
{
string answ = "list-group-item list-group-item-action text-uppercase";
if (navUrl.ToString().Replace(".aspx", "").Replace("~/", "") == titolo.Replace(".aspx", ""))
{
answ += " bg-secondary text-warning";
}
return answ;
}
}
/// <summary>
/// Verifica se la pagina corrente sia URL indicato --> mostra ACTIVE
/// </summary>
/// <param name="navUrl"></param>
/// <returns></returns>
public string checkPage(object navUrl)
{
string answ = "p-2 list-group-item list-group-item-action";
if (navUrl.ToString().Replace(".aspx", "").Replace("~/", "") == titolo.Replace(".aspx", ""))
{
answ += " disabled";
}
return answ;
}
/// <summary>
/// Verifica se la pagina corrente sia URL indicato --> mostra ACTIVE
/// </summary>
/// <param name="navUrl"></param>
/// <returns></returns>
public bool linkEnabled(object navUrl)
{
bool answ = true;
if (navUrl.ToString().Replace(".aspx", "").Replace("~/", "") == titolo.Replace(".aspx", ""))
{
answ = false;
}
return answ;
}
/// <summary>
/// Verifica se la pagina corrente sia URL indicato --> mostra ACTIVE
/// </summary>
/// <param name="navUrl"></param>
/// <returns></returns>
public string cssPage(object navUrl)
{
string answ = "list-group-item list-group-item-action text-uppercase";
if (navUrl.ToString().Replace(".aspx", "").Replace("~/", "") == titolo.Replace(".aspx", ""))
{
answ += " bg-secondary text-warning";
}
return answ;
}
/// <summary>
/// titolo pagina
/// </summary>
public string titolo
{
get
{
return devicesAuthProxy.getPage(Request.Url);
}
}
}
}
@@ -8,15 +8,15 @@ using System.Web.UI.WebControls;
namespace MoonProTablet.WebUserControls
{
public partial class mod_elencoControlli : System.Web.UI.UserControl
{
protected void Page_Load(object sender, EventArgs e)
public partial class mod_elencoControlli : BaseUserControl
{
}
protected void Page_Load(object sender, EventArgs e)
{
}
public void doUpdate()
{
grView.DataBind();
public void doUpdate()
{
grView.DataBind();
}
}
}
}
@@ -7,16 +7,16 @@ using System.Web.UI.WebControls;
namespace MoonProTablet.WebUserControls
{
public partial class mod_elencoScarti : System.Web.UI.UserControl
{
protected void Page_Load(object sender, EventArgs e)
public partial class mod_elencoScarti : BaseUserControl
{
protected void Page_Load(object sender, EventArgs e)
{
}
}
public void doUpdate()
{
grView.DataBind();
public void doUpdate()
{
grView.DataBind();
}
}
}
}
@@ -4,113 +4,109 @@ using System;
namespace MoonProTablet.WebUserControls
{
public partial class mod_enrollByAuthKey : System.Web.UI.UserControl
{
/// <summary>
/// Oggetto datalayer specifico
/// </summary>
DataLayer DataLayerObj = new DataLayer();
/// <summary>
/// Page load (vuoto)
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
public partial class mod_enrollByAuthKey : BaseUserControl
{
/// <summary>
/// Page load (vuoto)
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
{
}
/// <summary>
/// salvo nuovo device...
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnConferma_Click(object sender, EventArgs e)
{
bool fatto = false;
// controllo se ho i dati...
string plainUserAuthKey = txtUserAuthKey.Text.Trim();
// in primis cerco il dipendente data la authKey...
int MatrOpr = 0;
try
{
MatrOpr = Convert.ToInt32(ddlIdxDipendente.SelectedValue);
}
catch
{ }
try
{
// controllo dipendente... che sia selezionato uno valido
if (MatrOpr > 0)
{
// recupero dati...
string userAgent = "";
string DeviceName = "";
string IPv4 = "";
userAgent = Request.UserAgent;
DeviceName = Request.UserHostName;
IPv4 = Request.UserHostName;
// calcolo authKey MD5...
string md5UserAuthKey = SteamCrypto.EncryptString(plainUserAuthKey, memLayer.ML.CRS("cookieName"));
if (DataLayerObj.taOp.getByMatrAuthKey(MatrOpr, md5UserAuthKey).Rows.Count > 0)
{
fatto = tryEnroll(MatrOpr, userAgent, fatto, DeviceName, IPv4, md5UserAuthKey);
}
// provo con "plainUserKey"
else if (DataLayerObj.taOp.getByMatrAuthKey(MatrOpr, plainUserAuthKey).Rows.Count > 0)
{
fatto = tryEnroll(MatrOpr, userAgent, fatto, DeviceName, IPv4, plainUserAuthKey);
}
else
{
lblWarning.Text = "AuthKey non trovata! richiedere reset ad Admin.";
lblWarning.Visible = true;
}
}
else
/// <summary>
/// salvo nuovo device...
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnConferma_Click(object sender, EventArgs e)
{
lblWarning.Text = "Dipendente non trovato!";
lblWarning.Visible = true;
bool fatto = false;
// controllo se ho i dati...
string plainUserAuthKey = txtUserAuthKey.Text.Trim();
// in primis cerco il dipendente data la authKey...
int MatrOpr = 0;
try
{
MatrOpr = Convert.ToInt32(ddlIdxDipendente.SelectedValue);
}
catch
{ }
try
{
// controllo dipendente... che sia selezionato uno valido
if (MatrOpr > 0)
{
// recupero dati...
string userAgent = "";
string DeviceName = "";
string IPv4 = "";
userAgent = Request.UserAgent;
DeviceName = Request.UserHostName;
IPv4 = Request.UserHostName;
// calcolo authKey MD5...
string md5UserAuthKey = SteamCrypto.EncryptString(plainUserAuthKey, memLayer.ML.CRS("cookieName"));
if (DataLayerObj.taOp.getByMatrAuthKey(MatrOpr, md5UserAuthKey).Rows.Count > 0)
{
fatto = tryEnroll(MatrOpr, userAgent, fatto, DeviceName, IPv4, md5UserAuthKey);
}
// provo con "plainUserKey"
else if (DataLayerObj.taOp.getByMatrAuthKey(MatrOpr, plainUserAuthKey).Rows.Count > 0)
{
fatto = tryEnroll(MatrOpr, userAgent, fatto, DeviceName, IPv4, plainUserAuthKey);
}
else
{
lblWarning.Text = "AuthKey non trovata! richiedere reset ad Admin.";
lblWarning.Visible = true;
}
}
else
{
lblWarning.Text = "Dipendente non trovato!";
lblWarning.Visible = true;
}
}
catch (Exception exc)
{
logger.lg.scriviLog(string.Format("Errore in registrazione device: {0}{1}", Environment.NewLine, exc), tipoLog.EXCEPTION);
}
if (fatto)
{
Response.Redirect(memLayer.ML.CRS("mainPage"), true);
}
}
/// <summary>
/// prova a fare enroll device data chiave...
/// </summary>
/// <param name="MatrOpr"></param>
/// <param name="userAgent"></param>
/// <param name="fatto"></param>
/// <param name="DeviceName"></param>
/// <param name="IPv4"></param>
/// <param name="userKey"></param>
/// <returns></returns>
private bool tryEnroll(int MatrOpr, string userAgent, bool fatto, string DeviceName, string IPv4, string userKey)
{
try
{
fatto = DataLayerObj.enrollDevice(userKey, IPv4, DeviceName, userAgent, MatrOpr);
}
catch (Exception exc)
{
logger.lg.scriviLog(string.Format("Errore in registrazione nuovo device con AuthKey utente: {0}{1}", Environment.NewLine, exc), tipoLog.EXCEPTION);
}
return fatto;
}
/// <summary>
/// resetto tutto
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnAnnulla_Click(object sender, EventArgs e)
{
txtUserAuthKey.Text = "";
}
}
catch (Exception exc)
{
logger.lg.scriviLog(string.Format("Errore in registrazione device: {0}{1}", Environment.NewLine, exc), tipoLog.EXCEPTION);
}
if (fatto)
{
Response.Redirect(memLayer.ML.CRS("mainPage"), true);
}
}
/// <summary>
/// prova a fare enroll device data chiave...
/// </summary>
/// <param name="MatrOpr"></param>
/// <param name="userAgent"></param>
/// <param name="fatto"></param>
/// <param name="DeviceName"></param>
/// <param name="IPv4"></param>
/// <param name="userKey"></param>
/// <returns></returns>
private bool tryEnroll(int MatrOpr, string userAgent, bool fatto, string DeviceName, string IPv4, string userKey)
{
try
{
fatto = DataLayerObj.enrollDevice(userKey, IPv4, DeviceName, userAgent, MatrOpr);
}
catch (Exception exc)
{
logger.lg.scriviLog(string.Format("Errore in registrazione nuovo device con AuthKey utente: {0}{1}", Environment.NewLine, exc), tipoLog.EXCEPTION);
}
return fatto;
}
/// <summary>
/// resetto tutto
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnAnnulla_Click(object sender, EventArgs e)
{
txtUserAuthKey.Text = "";
}
}
}
@@ -4,55 +4,51 @@ using System;
namespace MoonProTablet.WebUserControls
{
public partial class mod_enrollByJumperAuthKey : System.Web.UI.UserControl
{
/// <summary>
/// Oggetto datalayer specifico
/// </summary>
DataLayer DataLayerObj = new DataLayer();
/// <summary>
/// Caricamento pagina
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
public partial class mod_enrollByJumperAuthKey : BaseUserControl
{
// procedo alla ricerca di dati via sessione x User AuthKey
tryAutoEnroll();
}
/// <summary>
/// prova a fare auto enroll
/// </summary>
public void tryAutoEnroll()
{
// recupero dati da session
string UserAuthKey = "";
int MatrOpr = 0;
string userAgent = "";
bool fatto = false;
string DeviceName = "";
string IPv4 = "";
try
{
UserAuthKey = memLayer.ML.StringSessionObj("UserAuthKey");
MatrOpr = DataLayerObj.MatrOpr;
userAgent = Request.UserAgent;
}
catch
{ }
// se ci sono i dati effettua tentativo di AutoEnroll del device
if (MatrOpr >= 0 && UserAuthKey != "")
{
DeviceName = Request.UserHostName;
IPv4 = Request.UserHostName;
memLayer.ML.emptyCookieVal(memLayer.ML.CRS("cookieName"));
fatto = DataLayerObj.enrollDevice(UserAuthKey, IPv4, DeviceName, userAgent, MatrOpr);
if (fatto)
/// <summary>
/// Caricamento pagina
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
{
Response.Redirect(memLayer.ML.CRS("mainPage"));
// procedo alla ricerca di dati via sessione x User AuthKey
tryAutoEnroll();
}
/// <summary>
/// prova a fare auto enroll
/// </summary>
public void tryAutoEnroll()
{
// recupero dati da session
string UserAuthKey = "";
int MatrOpr = 0;
string userAgent = "";
bool fatto = false;
string DeviceName = "";
string IPv4 = "";
try
{
UserAuthKey = memLayer.ML.StringSessionObj("UserAuthKey");
MatrOpr = DataLayerObj.MatrOpr;
userAgent = Request.UserAgent;
}
catch
{ }
// se ci sono i dati effettua tentativo di AutoEnroll del device
if (MatrOpr >= 0 && UserAuthKey != "")
{
DeviceName = Request.UserHostName;
IPv4 = Request.UserHostName;
memLayer.ML.emptyCookieVal(memLayer.ML.CRS("cookieName"));
fatto = DataLayerObj.enrollDevice(UserAuthKey, IPv4, DeviceName, userAgent, MatrOpr);
if (fatto)
{
Response.Redirect(memLayer.ML.CRS("mainPage"));
}
}
}
}
}
}
}
}
+1 -1
View File
@@ -5,7 +5,7 @@ using System.Web.UI.WebControls;
namespace MoonProTablet.WebUserControls
{
public partial class mod_fermate : System.Web.UI.UserControl
public partial class mod_fermate : BaseUserControl
{
/// <summary>
/// registrata richiesta
+34 -34
View File
@@ -2,42 +2,42 @@
namespace MoonProTablet.WebUserControls
{
public partial class mod_footer : System.Web.UI.UserControl
{
protected void Page_Load(object sender, EventArgs e)
public partial class mod_footer : BaseUserControl
{
if (!Page.IsPostBack)
{
updateLabels();
}
}
/// <summary>
/// Versione corrente sw
/// </summary>
public Version currVersion
{
get
{
return System.Reflection.Assembly.GetExecutingAssembly().GetName().Version;
}
}
private void updateLabels()
{
}
/// <summary>
/// Dimensione schermata video attuale
/// </summary>
public string videoSize
{
get
{
string answ = "?x?";
if (Session["BrowserWidth"] != null)
protected void Page_Load(object sender, EventArgs e)
{
answ = string.Format("{0} x {1}", Session["BrowserWidth"], Session["BrowserHeight"]);
if (!Page.IsPostBack)
{
updateLabels();
}
}
/// <summary>
/// Versione corrente sw
/// </summary>
public Version currVersion
{
get
{
return System.Reflection.Assembly.GetExecutingAssembly().GetName().Version;
}
}
private void updateLabels()
{
}
/// <summary>
/// Dimensione schermata video attuale
/// </summary>
public string videoSize
{
get
{
string answ = "?x?";
if (Session["BrowserWidth"] != null)
{
answ = string.Format("{0} x {1}", Session["BrowserWidth"], Session["BrowserHeight"]);
}
return answ;
}
}
return answ;
}
}
}
}
+210 -215
View File
@@ -4,223 +4,218 @@ using System;
namespace MoonProTablet.WebUserControls
{
public partial class mod_insComm : System.Web.UI.UserControl
{
/// <summary>
/// registrato nuovo valore
/// </summary>
public event EventHandler eh_inserting;
/// <summary>
/// registrato nuovo valore
/// </summary>
public event EventHandler eh_newVal;
/// <summary>
/// registrato nuovo valore
/// </summary>
public event EventHandler eh_reset;
/// <summary>
/// Oggetto datalayer specifico
/// </summary>
DataLayer DataLayerObj = new DataLayer();
/// <summary>
/// caricamento pagina
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
public partial class mod_insComm : BaseUserControl
{
}
protected void lbtAddCommento_Click(object sender, EventArgs e)
{
dataOraEv = DateTime.Now;
showInsert();
}
protected void showInsert()
{
fixPanels(false, true, false);
// imposto valori
txtDate.Text = dataOraEv.ToString("yyyy-MM-dd");
txtTime.Text = dataOraEv.ToString("HH:mm");
txtCommento.Text = "";
// sollevo evento!
if (eh_inserting != null)
{
eh_inserting(this, new EventArgs());
}
}
private void fixPanels(bool showBtn, bool showComm, bool showEventi)
{
// mostro dati da compilare e nascondo button...
pnlButtons.Visible = showBtn;
pnlDate.Visible = !showBtn;
}
protected void lbtAnnulla_Click(object sender, EventArgs e)
{
// tolgo da sessione dataOra corrente...
memLayer.ML.emptySessionVal("dataOraEv");
fixPanels(true, false, false);
// sollevo evento!
if (eh_reset != null)
{
eh_reset(this, new EventArgs());
}
}
protected void lbtSalva_Click(object sender, EventArgs e)
{
salvaCommento();
}
/// <summary>
/// effettua salvataggio del commento indicato (data/ora e testo)
/// </summary>
public void salvaCommento()
{
// salvo!
string idxMacchina = memLayer.ML.StringSessionObj("idxMacchina");
int idxTipo = memLayer.ML.CRI("idxTipoCommento");
string CodArticolo = "ND";
try
{
// cerco di recuperare CodArticolo da evento
CodArticolo = DataLayerObj.taODL.getByMacchinaPeriodo(idxMacchina, dataOraEv, dataOraEv)[0].CodArticolo;
}
catch
{
CodArticolo = "ND";
}
string commento = txtCommento.Text.Trim();
// elimino eventuale record precedente
try
{
DataLayerObj.taEventi.DeleteQuery(idxMacchina, dataOraEv);
}
catch
{ }
// inserisco nuovo record
DataLayerObj.taEventi.Insert(idxMacchina, dataOraEv, idxTipo, CodArticolo, commento, DataLayerObj.MatrOpr, "-");
doUpdate();
}
private void doUpdate()
{
// aggiorno vista...
fixPanels(true, false, false);
if (eh_newVal != null)
{
eh_newVal(this, new EventArgs());
}
}
protected void txtDate_TextChanged(object sender, EventArgs e)
{
salvaDataOra();
}
private void salvaDataOra()
{
DateTime inizioStato = DateTime.Now;
try
{
DateTime ora = Convert.ToDateTime(txtTime.Text);
inizioStato = Convert.ToDateTime(txtDate.Text).AddHours(ora.Hour).AddMinutes(ora.Minute);
}
catch
{ }
dataOraEv = inizioStato;
}
protected void txtTime_TextChanged(object sender, EventArgs e)
{
salvaDataOra();
}
public void caricaCommento()
{
string idxMacchina = memLayer.ML.StringSessionObj("idxMacchina");
DS_applicazione.EventListRow riga = null;
DateTime inizioStato = DateTime.Now;
try
{
inizioStato = Convert.ToDateTime(memLayer.ML.objSessionObj("inizioStato"));
dataOraEv = inizioStato;
riga = DataLayerObj.taEventi.GetByMacchinaPeriodo(idxMacchina, inizioStato, inizioStato)[0];
txtDate.Text = riga.InizioStato.ToString("yyyy-MM-dd");
txtTime.Text = riga.InizioStato.ToString("HH:mm");
txtCommento.Text = riga.Value;
}
catch
{ }
fixPanels(false, true, false);
}
/// <summary>
/// determian se mostrare pulsante salva (non serve x dichiarazioni fermata)
/// </summary>
public bool showSalva
{
set
{
lbtSalva.Visible = value;
}
}
/// <summary>
/// imposta la label x inserimento commento singolo / con dichiarazione fermata
/// </summary>
public string labelAddCommento
{
set
{
lblAddComm.Text = value;
}
}
/// <summary>
/// imposta data/ora del commento
/// </summary>
public DateTime dataEv
{
set
{
// salvo in sessione dataOra corrente...
dataOraEv = value;
// mostro insert!
showInsert();
}
}
/// <summary>
/// commento inserito
/// </summary>
public string commento
{
get
{
return txtCommento.Text.Trim();
}
}
/// <summary>
/// data-ora selezionata
/// </summary>
protected DateTime dataOraEv
{
set
{
memLayer.ML.setSessionVal("dataOraEv", value);
}
get
{
DateTime answ = DateTime.Now;
try
/// <summary>
/// registrato nuovo valore
/// </summary>
public event EventHandler eh_inserting;
/// <summary>
/// registrato nuovo valore
/// </summary>
public event EventHandler eh_newVal;
/// <summary>
/// registrato nuovo valore
/// </summary>
public event EventHandler eh_reset;
/// <summary>
/// caricamento pagina
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
{
answ = Convert.ToDateTime(memLayer.ML.objSessionObj("dataOraEv"));
}
protected void lbtAddCommento_Click(object sender, EventArgs e)
{
dataOraEv = DateTime.Now;
showInsert();
}
protected void showInsert()
{
fixPanels(false, true, false);
// imposto valori
txtDate.Text = dataOraEv.ToString("yyyy-MM-dd");
txtTime.Text = dataOraEv.ToString("HH:mm");
txtCommento.Text = "";
// sollevo evento!
if (eh_inserting != null)
{
eh_inserting(this, new EventArgs());
}
}
private void fixPanels(bool showBtn, bool showComm, bool showEventi)
{
// mostro dati da compilare e nascondo button...
pnlButtons.Visible = showBtn;
pnlDate.Visible = !showBtn;
}
protected void lbtAnnulla_Click(object sender, EventArgs e)
{
// tolgo da sessione dataOra corrente...
memLayer.ML.emptySessionVal("dataOraEv");
fixPanels(true, false, false);
// sollevo evento!
if (eh_reset != null)
{
eh_reset(this, new EventArgs());
}
}
protected void lbtSalva_Click(object sender, EventArgs e)
{
salvaCommento();
}
/// <summary>
/// effettua salvataggio del commento indicato (data/ora e testo)
/// </summary>
public void salvaCommento()
{
// salvo!
string idxMacchina = memLayer.ML.StringSessionObj("idxMacchina");
int idxTipo = memLayer.ML.CRI("idxTipoCommento");
string CodArticolo = "ND";
try
{
// cerco di recuperare CodArticolo da evento
CodArticolo = DataLayerObj.taODL.getByMacchinaPeriodo(idxMacchina, dataOraEv, dataOraEv)[0].CodArticolo;
}
catch
{
CodArticolo = "ND";
}
string commento = txtCommento.Text.Trim();
// elimino eventuale record precedente
try
{
DataLayerObj.taEventi.DeleteQuery(idxMacchina, dataOraEv);
}
catch
{ }
// inserisco nuovo record
DataLayerObj.taEventi.Insert(idxMacchina, dataOraEv, idxTipo, CodArticolo, commento, DataLayerObj.MatrOpr, "-");
doUpdate();
}
private void doUpdate()
{
// aggiorno vista...
fixPanels(true, false, false);
if (eh_newVal != null)
{
eh_newVal(this, new EventArgs());
}
}
protected void txtDate_TextChanged(object sender, EventArgs e)
{
salvaDataOra();
}
private void salvaDataOra()
{
DateTime inizioStato = DateTime.Now;
try
{
DateTime ora = Convert.ToDateTime(txtTime.Text);
inizioStato = Convert.ToDateTime(txtDate.Text).AddHours(ora.Hour).AddMinutes(ora.Minute);
}
catch
{ }
dataOraEv = inizioStato;
}
protected void txtTime_TextChanged(object sender, EventArgs e)
{
salvaDataOra();
}
public void caricaCommento()
{
string idxMacchina = memLayer.ML.StringSessionObj("idxMacchina");
DS_applicazione.EventListRow riga = null;
DateTime inizioStato = DateTime.Now;
try
{
inizioStato = Convert.ToDateTime(memLayer.ML.objSessionObj("inizioStato"));
dataOraEv = inizioStato;
riga = DataLayerObj.taEventi.GetByMacchinaPeriodo(idxMacchina, inizioStato, inizioStato)[0];
txtDate.Text = riga.InizioStato.ToString("yyyy-MM-dd");
txtTime.Text = riga.InizioStato.ToString("HH:mm");
txtCommento.Text = riga.Value;
}
catch
{ }
fixPanels(false, true, false);
}
/// <summary>
/// determian se mostrare pulsante salva (non serve x dichiarazioni fermata)
/// </summary>
public bool showSalva
{
set
{
lbtSalva.Visible = value;
}
}
/// <summary>
/// imposta la label x inserimento commento singolo / con dichiarazione fermata
/// </summary>
public string labelAddCommento
{
set
{
lblAddComm.Text = value;
}
}
/// <summary>
/// imposta data/ora del commento
/// </summary>
public DateTime dataEv
{
set
{
// salvo in sessione dataOra corrente...
dataOraEv = value;
// mostro insert!
showInsert();
}
}
/// <summary>
/// commento inserito
/// </summary>
public string commento
{
get
{
return txtCommento.Text.Trim();
}
}
/// <summary>
/// data-ora selezionata
/// </summary>
protected DateTime dataOraEv
{
set
{
memLayer.ML.setSessionVal("dataOraEv", value);
}
get
{
DateTime answ = DateTime.Now;
try
{
answ = Convert.ToDateTime(memLayer.ML.objSessionObj("dataOraEv"));
}
catch
{ }
return answ;
}
}
catch
{ }
return answ;
}
}
}
}
+4 -10
View File
@@ -8,17 +8,11 @@ using System.Web.UI.WebControls;
namespace MoonProTablet.WebUserControls
{
public partial class mod_listUserAK : System.Web.UI.UserControl
{
protected void Page_Load(object sender, EventArgs e)
public partial class mod_listUserAK : BaseUserControl
{
protected void Page_Load(object sender, EventArgs e)
{
}
}
public string encodeAuthKey(object plainUserAuthKey)
{
string answ = "";
answ = SteamCrypto.EncryptString(plainUserAuthKey.ToString(), memLayer.ML.CRS("cookieName"));
return answ;
}
}
}
+1 -1
View File
@@ -7,7 +7,7 @@
<div class="col-6 col-sm-6 col-md-4 col-lg-3 col-xl-2 mb-3 px-1 bloccoMacc">
<asp:LinkButton ID="hlMacchina" runat="server" OnClick="hlMacchina_Click" CommandArgument='<%# Eval("IdxMacchina") %>'>
<div class='card text-white mapBlock rCAll <%# Eval("Semaforo") %> p-0 m-0'>
<img class="card-img bg-dark rCTop" src='<%# ImgUrl(Eval("url")) %>' alt='<%# Eval("CodMacchina") %>'>
<img class="card-img bg-dark rCTop" src='<%# ImgUrlMacc(Eval("url")) %>' alt='<%# Eval("CodMacchina") %>'>
<div class="m-1 bg-black rCAll">
<div class="card-img-overlay p-0 d-flex flex-row-reverse align-items-start rCTop">
<div class="labelTopDx text-right px-2">
+34 -57
View File
@@ -5,64 +5,41 @@ using System.Web.UI.WebControls;
namespace MoonProTablet.WebUserControls
{
public partial class mod_mappaStato : System.Web.UI.UserControl
{
protected void Page_Load(object sender, EventArgs e)
public partial class mod_mappaStato : BaseUserControl
{
}
/// <summary>
/// url completo immagine
/// </summary>
/// <param name="url"></param>
/// <returns></returns>
public string ImgUrl(object url)
{
// se vuoto metto empty...
if (url.ToString() == "")
{
url = "empty.png";
}
return string.Format("./images/macchine/{0}", url);
}
/// <summary>
/// fomratta durata in minuti/ore/gg a seconda del totale...
/// </summary>
/// <param name="minuti"></param>
/// <returns></returns>
public string formatDurata(object min)
{
return utility.formatDurata(min);
}
protected void Page_Load(object sender, EventArgs e)
{
}
/// <summary>
/// rimanda alla pagina di dettaglio della macchina scelta
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void hlMacchina_Click(object sender, EventArgs e)
{
LinkButton lnkbtn = (LinkButton)sender;
memLayer.ML.setSessionVal("IdxMacchina", lnkbtn.CommandArgument);
memLayer.ML.setSessionVal("subMaccSel", lnkbtn.CommandArgument);
Response.Redirect("~/DettaglioMacchina.aspx");
/// <summary>
/// rimanda alla pagina di dettaglio della macchina scelta
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void hlMacchina_Click(object sender, EventArgs e)
{
LinkButton lnkbtn = (LinkButton)sender;
memLayer.ML.setSessionVal("IdxMacchina", lnkbtn.CommandArgument);
memLayer.ML.setSessionVal("subMaccSel", lnkbtn.CommandArgument);
Response.Redirect("~/DettaglioMacchina.aspx");
}
/// <summary>
/// fa update del controllo
/// </summary>
public void doUpdate()
{
ods.DataBind();
repLI.DataBind();
}
/// <summary>
/// timeout scaduto
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Timer1_Tick(object sender, EventArgs e)
{
doUpdate();
ScriptManager.RegisterStartupScript(Page, GetType(), "temp", "<script type='text/javascript'>$('#dettMacch').trigger('create');</script>", false);
}
}
/// <summary>
/// fa update del controllo
/// </summary>
public void doUpdate()
{
ods.DataBind();
repLI.DataBind();
}
/// <summary>
/// timeout scaduto
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Timer1_Tick(object sender, EventArgs e)
{
doUpdate();
ScriptManager.RegisterStartupScript(Page, GetType(), "temp", "<script type='text/javascript'>$('#dettMacch').trigger('create');</script>", false);
}
}
}
+72 -132
View File
@@ -4,143 +4,83 @@ using System;
namespace MoonProTablet.WebUserControls
{
public partial class mod_pianoProdMacc : System.Web.UI.UserControl
{
/// <summary>
/// Oggetto datalayer specifico
/// </summary>
DataLayer DataLayerObj = new DataLayer();
protected void Page_Load(object sender, EventArgs e)
public partial class mod_pianoProdMacc : BaseUserControl
{
if (!Page.IsPostBack)
{
fixSelMaccPianoProd();
}
}
public string TCMinSec(object _TC)
{
string TC_MinSec = "";
decimal TC = 0;
decimal.TryParse(_TC.ToString(), out TC);
int min = 0;
int sec = 0;
try
{
// cerco di convertire in min/sec
min = Convert.ToInt32(Math.Floor(Convert.ToDouble(TC)));
sec = Convert.ToInt32((Convert.ToDouble(TC) - min) * 60);
TC_MinSec = string.Format("{0}:{1:00}", min, sec);
}
catch
{ }
return TC_MinSec;
}
/// <summary>
/// idx macchina selezionata
/// </summary>
public string idxMacchina
{
get
{
string answ = memLayer.ML.StringSessionObj("IdxMacchina");
// verifoc: se multi uso selettore tendina...
if (isMulti)
protected void Page_Load(object sender, EventArgs e)
{
if (ddlSubMacc.SelectedValue == "")
{
ddlSubMacc.DataBind();
}
if (ddlSubMacc.SelectedValue != "")
{
answ = ddlSubMacc.SelectedValue;
}
if (!Page.IsPostBack)
{
fixSelMaccPianoProd();
}
}
return answ;
}
set
{
memLayer.ML.setSessionVal("IdxMacchina", value);
}
}
/// <summary>
/// idx macchina selezionata
/// </summary>
public string idxMacchinaSession
{
get
{
return memLayer.ML.StringSessionObj("IdxMacchina");
}
set
{
memLayer.ML.setSessionVal("IdxMacchina", value);
}
}
protected void ddlSubMacc_SelectedIndexChanged(object sender, EventArgs e)
{
subMaccSel = ddlSubMacc.SelectedValue;
fixSelMaccPianoProd();
fixSelMacc();
}
private void fixSelMaccPianoProd()
{
if (isMulti)
{
memLayer.ML.setSessionVal("IdxMacchinaPianoProd", subMaccSel);
}
else
{
memLayer.ML.setSessionVal("IdxMacchinaPianoProd", idxMacchinaSession);
}
}
protected void ddlSubMacc_DataBound(object sender, EventArgs e)
{
// se ho in memoria un valore LO REIMPOSTO...
if (subMaccSel != "")
{
// provo a preselezionare...
try
/// <summary>
/// idx macchina selezionata
/// </summary>
public string idxMacchinaFix
{
ddlSubMacc.SelectedValue = subMaccSel;
get
{
string answ = idxMacchina;
// verifoc: se multi uso selettore tendina...
if (isMulti)
{
if (ddlSubMacc.SelectedValue == "")
{
ddlSubMacc.DataBind();
}
if (ddlSubMacc.SelectedValue != "")
{
answ = ddlSubMacc.SelectedValue;
}
}
return answ;
}
set
{
memLayer.ML.setSessionVal("IdxMacchina", value);
}
}
protected void ddlSubMacc_SelectedIndexChanged(object sender, EventArgs e)
{
subMaccSel = ddlSubMacc.SelectedValue;
fixSelMaccPianoProd();
fixSelMacc();
}
private void fixSelMaccPianoProd()
{
if (isMulti)
{
memLayer.ML.setSessionVal("IdxMacchinaPianoProd", subMaccSel);
}
else
{
memLayer.ML.setSessionVal("IdxMacchinaPianoProd", idxMacchina);
}
}
protected void ddlSubMacc_DataBound(object sender, EventArgs e)
{
// se ho in memoria un valore LO REIMPOSTO...
if (subMaccSel != "")
{
// provo a preselezionare...
try
{
ddlSubMacc.SelectedValue = subMaccSel;
}
catch
{ }
}
}
/// <summary>
/// Se la machcina è MULTI --> mostro selettore
/// </summary>
private void fixSelMacc()
{
divSelMacc.Visible = isMulti;
fixSelMaccPianoProd();
}
catch
{ }
}
}
/// <summary>
/// Sotto sistema (macchina) selezionato
/// </summary>
public string subMaccSel
{
get
{
return memLayer.ML.StringSessionObj("subMaccSel");
}
set
{
memLayer.ML.setSessionVal("subMaccSel", value);
}
}
/// <summary>
/// Se la machcina è MULTI --> mostro selettore
/// </summary>
private void fixSelMacc()
{
divSelMacc.Visible = isMulti;
fixSelMaccPianoProd();
}
/// <summary>
/// Verifica se la macchina MAIN sia MULTI (da DatiMacchina / redis...)
/// </summary>
protected bool isMulti
{
get
{
return DataLayerObj.isMulti(idxMacchinaSession);
}
}
}
}
+14 -14
View File
@@ -2,20 +2,20 @@
namespace MoonProTablet.WebUserControls
{
public partial class mod_regNewDevice : System.Web.UI.UserControl
{
protected void Page_Load(object sender, EventArgs e)
public partial class mod_regNewDevice : BaseUserControl
{
/*************************************************************************
* REGISTRAZIONE nuovi devices
*
* ci sono tre modalità
* - idxDipendente + authKey (manuale)
* - con richiesta reset ed invio authKey (generazione pwd casuale da email dipendente + dataora in MD5, INSERENDO EMAIL e cercando se esista...)
* - con "rimbalzo" su ~/jumper.aspx?UserAuthkey={0}&idxDipendente={1}... poi messe in session x cui autosetup
*
* ***********************************************************************/
}
protected void Page_Load(object sender, EventArgs e)
{
/*************************************************************************
* REGISTRAZIONE nuovi devices
*
* ci sono tre modalità
* - idxDipendente + authKey (manuale)
* - con richiesta reset ed invio authKey (generazione pwd casuale da email dipendente + dataora in MD5, INSERENDO EMAIL e cercando se esista...)
* - con "rimbalzo" su ~/jumper.aspx?UserAuthkey={0}&idxDipendente={1}... poi messe in session x cui autosetup
*
* ***********************************************************************/
}
}
}
}
+261 -303
View File
@@ -6,322 +6,280 @@ using System.Web.UI.WebControls;
namespace MoonProTablet.WebUserControls
{
public partial class mod_regScarti : System.Web.UI.UserControl
{
public partial class mod_regScarti : BaseUserControl
{
/// <summary>
/// registrato nuovo valore
/// </summary>
public event EventHandler eh_newVal;
/// <summary>
/// registrato nuovo valore
/// </summary>
public event EventHandler eh_reset;
/// <summary>
/// Oggetto datalayer specifico
/// </summary>
DataLayer DataLayerObj = new DataLayer();
/// <summary>
/// caricamento pagina
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
checkAll();
}
}
private void checkAll()
{
fixSelMacc();
fixData();
checkOdl();
lblOut.Text = "";
switchBtnConferma(true);
lbtShowScarti.Visible = odlOk;
lblConfScarti.Visible = !odlOk;
}
private void fixData()
{
DateTime adesso = DateTime.Now;
txtData.Text = adesso.ToString("yyyy-MM-dd");
txtOra.Text = adesso.ToString("HH:mm");
numPzScarto = 1;
}
/// <summary>
/// Num pezzi scarto
/// </summary>
protected int numPzScarto
{
set
{
txtNumPz.Text = value.ToString();
}
get
{
int answ = 0;
int.TryParse(txtNumPz.Text, out answ);
return answ;
}
}
/// <summary>
/// Verifica se abbia un ODL ATTIVO
/// </summary>
private void checkOdl()
{
lbtShowScarti.Visible = odlOk;
lblConfScarti.Visible = !odlOk;
lblMancaODL.Visible = !odlOk;
}
/// <summary>
/// Se la machcina è MULTI --> mostro selettore
/// </summary>
private void fixSelMacc()
{
divSelMacc.Visible = isMulti;
fixSelMaccScarti();
}
/// <summary>
/// Verifica se la macchina MAIN sia MULTI (da DatiMacchina / redis...)
/// </summary>
protected bool isMulti
{
get
{
return DataLayerObj.isMulti(idxMacchinaSession);
}
}
/// <summary>
/// Verifica se la macchina MAIN sia MULTI (da DatiMacchina / redis...)
/// </summary>
/// <summary>
/// restituisce css disabled SE odl NON OK...
/// </summary>
public string cssBtnConf
{
get
{
return odlOk ? "" : "disabled";
}
}
/// <summary>
/// Verifica ODL OK (ovvero caricato x macchina...)
/// </summary>
public bool odlOk
{
get
{
bool answ = true;
// carico i dati preliminari: ODL
int idxOdl = 0; // userò ODL del turno
try
/// <summary>
/// registrato nuovo valore
/// </summary>
public event EventHandler eh_newVal;
/// <summary>
/// registrato nuovo valore
/// </summary>
public event EventHandler eh_reset;
/// <summary>
/// caricamento pagina
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
{
idxOdl = DataLayerObj.taODL.getByMacchina(idxMacchina)[0].IdxODL;
if (!Page.IsPostBack)
{
checkAll();
}
}
catch
private void checkAll()
{
logger.lg.scriviLog(string.Format("Errore a recuperare ODL per la macchina {0}", idxMacchina), tipoLog.ERROR);
fixSelMacc();
fixData();
checkOdl();
lblOut.Text = "";
switchBtnConferma(true);
lbtShowScarti.Visible = odlOk;
lblConfScarti.Visible = !odlOk;
}
// se ODL > 0 è ok!!!
answ = (idxOdl > 0);
return answ;
}
}
/// <summary>
/// idx macchina selezionata
/// </summary>
public string idxMacchina
{
get
{
string answ = memLayer.ML.StringSessionObj("IdxMacchina");
// verifoc: se multi uso selettore tendina...
if (isMulti)
private void fixData()
{
if (ddlSubMacc.SelectedValue == "")
{
ddlSubMacc.DataBind();
}
if (ddlSubMacc.SelectedValue != "")
{
answ = ddlSubMacc.SelectedValue;
}
DateTime adesso = DateTime.Now;
txtData.Text = adesso.ToString("yyyy-MM-dd");
txtOra.Text = adesso.ToString("HH:mm");
numPzScarto = 1;
}
return answ;
}
set
{
memLayer.ML.setSessionVal("IdxMacchina", value);
}
}
/// <summary>
/// idx macchina selezionata
/// </summary>
public string idxMacchinaSession
{
get
{
return memLayer.ML.StringSessionObj("IdxMacchina");
}
set
{
memLayer.ML.setSessionVal("IdxMacchina", value);
}
}
/// <summary>
/// cambio stato visibilità pannello e testo button
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void lbtShowContr_Click(object sender, EventArgs e)
{
switchBtnConferma(!divDetail.Visible);
}
/// <summary>
/// determina comportamento btn conferma
/// </summary>
private void switchBtnConferma(bool showConf)
{
divDetail.Visible = showConf;
if (showConf)
{
lblShowScarti.Text = "Nascondi Registrazione SCARTI";
}
else
{
lblShowScarti.Text = "Mostra Registrazione SCARTI";
// sollevo evento!
if (eh_reset != null)
/// <summary>
/// Num pezzi scarto
/// </summary>
protected int numPzScarto
{
eh_reset(this, new EventArgs());
set
{
txtNumPz.Text = value.ToString();
}
get
{
int answ = 0;
int.TryParse(txtNumPz.Text, out answ);
return answ;
}
}
}
}
private void resetControlli()
{
txtNote.Text = "";
// nascondo!
switchBtnConferma(false);
}
protected void ddlSubMacc_SelectedIndexChanged(object sender, EventArgs e)
{
subMaccSel = ddlSubMacc.SelectedValue;
fixSelMaccScarti();
checkAll();
}
private void fixSelMaccScarti()
{
if (isMulti)
{
memLayer.ML.setSessionVal("IdxMacchinaScarti", subMaccSel);
}
else
{
memLayer.ML.setSessionVal("IdxMacchinaScarti", idxMacchinaSession);
}
}
protected void ddlSubMacc_DataBound(object sender, EventArgs e)
{
// se ho in memoria un valore LO REIMPOSTO...
if (subMaccSel != "")
{
// provo a preselezionare...
try
/// <summary>
/// Verifica se abbia un ODL ATTIVO
/// </summary>
private void checkOdl()
{
ddlSubMacc.SelectedValue = subMaccSel;
lbtShowScarti.Visible = odlOk;
lblConfScarti.Visible = !odlOk;
lblMancaODL.Visible = !odlOk;
}
catch
{ }
}
}
/// <summary>
/// Sotto sistema (macchina) selezionato
/// </summary>
public string subMaccSel
{
get
{
return memLayer.ML.StringSessionObj("subMaccSel");
}
set
{
memLayer.ML.setSessionVal("subMaccSel", value);
}
}
/// <summary>
/// salvo produzione
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void lbtSalva_Click(object sender, EventArgs e)
{
salvaRegScarti("ND");
}
/// <summary>
/// Effettua salvataggio in registro scarti
/// </summary>
private void salvaRegScarti(string causale)
{
// salvo registrazione scarto...
DateTime dataRif = DateTime.Now;
try
{
// ricompongo data dai 2 controlli
DateTime dateOnly;
DateTime timeOnly;
DateTime.TryParse(txtData.Text, out dateOnly);
DateTime.TryParse(txtOra.Text, out timeOnly);
dataRif = dateOnly.Add(timeOnly.TimeOfDay);
}
catch
{ }
DataLayerObj.taRS.insertQuery(idxMacchina, dataRif, causale, numPzScarto, txtNote.Text.Trim(), DataLayerObj.MatrOpr);
// sollevo evento!
if (eh_newVal != null)
{
eh_newVal(this, new EventArgs());
}
resetControlli();
}
/// <summary>
/// rimanda alla pagina di dettaglio della macchina scelta
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void hlRegistra_Click(object sender, EventArgs e)
{
LinkButton lnkbtn = (LinkButton)sender;
string causale = "";
try
{
causale = lnkbtn.CommandArgument;
}
catch
{ }
// se vuoto metto ND...
causale = (causale == "") ? "ND" : causale;
salvaRegScarti(causale);
// sollevo evento!
if (eh_newVal != null)
{
eh_newVal(this, new EventArgs());
}
}
/// <summary>
/// Se la machcina è MULTI --> mostro selettore
/// </summary>
private void fixSelMacc()
{
divSelMacc.Visible = isMulti;
fixSelMaccScarti();
}
/// <summary>
/// Verifica se la macchina MAIN sia MULTI (da DatiMacchina / redis...)
/// </summary>
/// <summary>
/// restituisce css disabled SE odl NON OK...
/// </summary>
public string cssBtnConf
{
get
{
return odlOk ? "" : "disabled";
}
}
/// <summary>
/// Verifica ODL OK (ovvero caricato x macchina...)
/// </summary>
public bool odlOk
{
get
{
bool answ = true;
// carico i dati preliminari: ODL
int idxOdl = 0; // userò ODL del turno
try
{
idxOdl = DataLayerObj.taODL.getByMacchina(idxMacchinaFix)[0].IdxODL;
}
catch
{
logger.lg.scriviLog(string.Format("Errore a recuperare ODL per la macchina {0}", idxMacchinaFix), tipoLog.ERROR);
}
// se ODL > 0 è ok!!!
answ = (idxOdl > 0);
return answ;
}
}
protected void lbtResetNumPz_Click(object sender, EventArgs e)
{
txtNumPz.Text = "";
/// <summary>
/// idx macchina selezionata
/// </summary>
public string idxMacchinaFix
{
get
{
string answ = idxMacchina;
// verifoc: se multi uso selettore tendina...
if (isMulti)
{
if (ddlSubMacc.SelectedValue == "")
{
ddlSubMacc.DataBind();
}
if (ddlSubMacc.SelectedValue != "")
{
answ = ddlSubMacc.SelectedValue;
}
}
return answ;
}
set
{
memLayer.ML.setSessionVal("IdxMacchina", value);
}
}
/// <summary>
/// cambio stato visibilità pannello e testo button
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void lbtShowContr_Click(object sender, EventArgs e)
{
switchBtnConferma(!divDetail.Visible);
}
/// <summary>
/// determina comportamento btn conferma
/// </summary>
private void switchBtnConferma(bool showConf)
{
divDetail.Visible = showConf;
if (showConf)
{
lblShowScarti.Text = "Nascondi Registrazione SCARTI";
}
else
{
lblShowScarti.Text = "Mostra Registrazione SCARTI";
// sollevo evento!
if (eh_reset != null)
{
eh_reset(this, new EventArgs());
}
}
}
private void resetControlli()
{
txtNote.Text = "";
// nascondo!
switchBtnConferma(false);
}
protected void ddlSubMacc_SelectedIndexChanged(object sender, EventArgs e)
{
subMaccSel = ddlSubMacc.SelectedValue;
fixSelMaccScarti();
checkAll();
}
private void fixSelMaccScarti()
{
if (isMulti)
{
memLayer.ML.setSessionVal("IdxMacchinaScarti", subMaccSel);
}
else
{
memLayer.ML.setSessionVal("IdxMacchinaScarti", idxMacchina);
}
}
protected void ddlSubMacc_DataBound(object sender, EventArgs e)
{
// se ho in memoria un valore LO REIMPOSTO...
if (subMaccSel != "")
{
// provo a preselezionare...
try
{
ddlSubMacc.SelectedValue = subMaccSel;
}
catch
{ }
}
}
/// <summary>
/// salvo produzione
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void lbtSalva_Click(object sender, EventArgs e)
{
salvaRegScarti("ND");
}
/// <summary>
/// Effettua salvataggio in registro scarti
/// </summary>
private void salvaRegScarti(string causale)
{
// salvo registrazione scarto...
DateTime dataRif = DateTime.Now;
try
{
// ricompongo data dai 2 controlli
DateTime dateOnly;
DateTime timeOnly;
DateTime.TryParse(txtData.Text, out dateOnly);
DateTime.TryParse(txtOra.Text, out timeOnly);
dataRif = dateOnly.Add(timeOnly.TimeOfDay);
}
catch
{ }
DataLayerObj.taRS.insertQuery(idxMacchinaFix, dataRif, causale, numPzScarto, txtNote.Text.Trim(), DataLayerObj.MatrOpr);
// sollevo evento!
if (eh_newVal != null)
{
eh_newVal(this, new EventArgs());
}
resetControlli();
}
/// <summary>
/// rimanda alla pagina di dettaglio della macchina scelta
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void hlRegistra_Click(object sender, EventArgs e)
{
LinkButton lnkbtn = (LinkButton)sender;
string causale = "";
try
{
causale = lnkbtn.CommandArgument;
}
catch
{ }
// se vuoto metto ND...
causale = (causale == "") ? "ND" : causale;
salvaRegScarti(causale);
// sollevo evento!
if (eh_newVal != null)
{
eh_newVal(this, new EventArgs());
}
}
protected void lbtResetNumPz_Click(object sender, EventArgs e)
{
txtNumPz.Text = "";
}
}
}
}
+1 -10
View File
@@ -9,7 +9,7 @@ using SteamWare;
namespace MoonProTablet.WebUserControls
{
public partial class mod_selPeriodo : System.Web.UI.UserControl
public partial class mod_selPeriodo : BaseUserControl
{
protected intervalloDate _intervallo;
/// <summary>
@@ -308,15 +308,6 @@ namespace MoonProTablet.WebUserControls
/// indica se il controllo debba fare update in automatico o attendere pressione button update da utente
/// </summary>
public bool autoUpdate { get; set; }
/// <summary>
/// wrapper traduzione
/// </summary>
/// <param name="lemma"></param>
/// <returns></returns>
public string traduci(object lemma)
{
return user_std.UtSn.Traduci(lemma.ToString());
}
#region gestione eventi
@@ -11,63 +11,48 @@ using System.Web.UI.WebControls;
namespace MoonProTablet.WebUserControls
{
public partial class mod_sendParameters : System.Web.UI.UserControl
{
DataLayer DataLayerObj = new DataLayer();
protected void Page_Load(object sender, EventArgs e)
public partial class mod_sendParameters : BaseUserControl
{
}
protected void Page_Load(object sender, EventArgs e)
{
}
/// <summary>
/// idx macchina selezionata
/// </summary>
public string idxMacchina
{
get
{
return memLayer.ML.StringSessionObj("IdxMacchina");
}
set
{
memLayer.ML.setSessionVal("IdxMacchina", value);
}
}
/// <summary>
/// wrapper recupero parametri macchina
/// </summary>
/// <returns></returns>
public List<objItem> GetParameters()
{
List<objItem> dcList = DataLayerObj.getCurrObjItems(idxMacchina);
return dcList;
}
/// <summary>
/// wrapper recupero parametri macchina
/// </summary>
/// <returns></returns>
public List<objItem> GetParameters()
{
List<objItem> dcList = DataLayerObj.getCurrObjItems(idxMacchina);
return dcList;
}
public void updateParameter(string Original_uid, string reqValue)
{
// recupero items...
List<objItem> dcList = DataLayerObj.getCurrObjItems(idxMacchina);
// cerco quello da aggiornare
objItem trovato = dcList.Find(obj => obj.uid == Original_uid);
List<objItem> list2Update = new List<objItem>();
// se trovato procedo
if (trovato != null)
{
// aggiorno valore richiesto + dt richiesta
trovato.reqValue = reqValue;
trovato.lastRequest = DateTime.Now;
list2Update.Add(trovato);
DataLayerObj.upsertCurrObjItems(idxMacchina, list2Update);
// accodo in task 2 exe la richiesta di processing
DataLayerObj.addTask4Machine(idxMacchina, taskType.setParameter, trovato.uid);
}
}
protected void lbtReload_Click(object sender, EventArgs e)
{
grView.DataBind();
}
public void updateParameter(string Original_uid, string reqValue)
{
// recupero items...
List<objItem> dcList = DataLayerObj.getCurrObjItems(idxMacchina);
// cerco quello da aggiornare
objItem trovato = dcList.Find(obj => obj.uid == Original_uid);
List<objItem> list2Update = new List<objItem>();
// se trovato procedo
if (trovato != null)
{
// aggiorno valore richiesto + dt richiesta
trovato.reqValue = reqValue;
trovato.lastRequest = DateTime.Now;
list2Update.Add(trovato);
DataLayerObj.upsertCurrObjItems(idxMacchina, list2Update);
// accodo in task 2 exe la richiesta di processing
DataLayerObj.addTask4Machine(idxMacchina, taskType.setParameter, trovato.uid);
}
}
protected void lbtReload_Click(object sender, EventArgs e)
{
grView.DataBind();
}
protected void grView_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
protected void grView_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
#if false
var txtReqVal = grView.Rows[e.RowIndex].FindControl("txtReqValue") as TextBox;
string Original_uid = e.Keys[0].ToString();
@@ -88,11 +73,11 @@ namespace MoonProTablet.WebUserControls
DataLayer.addTask4Machine(idxMacchina, taskType.setParameter, trovato.uid);
}
#endif
}
}
protected void grView_RowEditing(object sender, GridViewEditEventArgs e)
{
protected void grView_RowEditing(object sender, GridViewEditEventArgs e)
{
}
}
}
}
+18 -28
View File
@@ -8,35 +8,25 @@ using System.Web.UI.WebControls;
namespace MoonProTablet.WebUserControls
{
public partial class mod_slideMenu : System.Web.UI.UserControl
{
protected void Page_Load(object sender, EventArgs e)
public partial class mod_slideMenu : BaseUserControl
{
protected void Page_Load(object sender, EventArgs e)
{
}
/// <summary>
/// Verifica se la pagina corrente sia URL indicato --> mostra ACTIVE
/// </summary>
/// <param name="navUrl"></param>
/// <returns></returns>
public string checkPage(object navUrl)
{
string answ = "p-2 list-group-item list-group-item-action";
if (navUrl.ToString().Replace(".aspx", "").Replace("~/", "") == titolo.Replace(".aspx", ""))
{
answ += " active";
}
return answ;
}
}
/// <summary>
/// Verifica se la pagina corrente sia URL indicato --> mostra ACTIVE
/// </summary>
/// <param name="navUrl"></param>
/// <returns></returns>
public string checkPage(object navUrl)
{
string answ = "p-2 list-group-item list-group-item-action";
if (navUrl.ToString().Replace(".aspx", "").Replace("~/", "") == titolo.Replace(".aspx", ""))
{
answ += " active";
}
return answ;
}
/// <summary>
/// titolo pagina
/// </summary>
public string titolo
{
get
{
return devicesAuthProxy.getPage(Request.Url);
}
}
}
}
+1 -1
View File
@@ -3,7 +3,7 @@ using System.Web.UI;
namespace MoonProTablet.WebUserControls
{
public partial class mod_storicoTC : System.Web.UI.UserControl
public partial class mod_storicoTC : BaseUserControl
{
protected void Page_Load(object sender, EventArgs e)
{
+280 -322
View File
@@ -4,344 +4,302 @@ using System.Web.UI;
namespace MoonProTablet.WebUserControls
{
public partial class mod_tempoMSMC : System.Web.UI.UserControl
{
/// <summary>
/// stringa UID univoca
/// </summary>
public string uid
public partial class mod_tempoMSMC : BaseUserControl
{
get
{
return this.UniqueID.Replace("$", "_").Replace("-", "_");
}
}
/// <summary>
/// modalità rendering controllo
/// </summary>
public timeControlMode modoControllo { get; set; }
/// <summary>
/// modalità controllo tempo
/// </summary>
public timeMode modoTempo
{
get
{
timeMode answ = timeMode.MC;
try
/// <summary>
/// modalità rendering controllo
/// </summary>
public timeControlMode modoControllo { get; set; }
/// <summary>
/// modalità controllo tempo
/// </summary>
public timeMode modoTempo
{
answ = (timeMode)memLayer.ML.objSessionObj("modoTempo");
get
{
timeMode answ = timeMode.MC;
try
{
answ = (timeMode)memLayer.ML.objSessionObj("modoTempo");
}
catch
{ }
return answ;
}
set
{
memLayer.ML.setSessionVal("modoTempo", value);
}
}
catch
{ }
return answ;
}
set
{
memLayer.ML.setSessionVal("modoTempo", value);
}
}
/// <summary>
/// tempo min.cent
/// </summary>
protected decimal _tempoMC
{
get
{
decimal answ = 0;
try
/// <summary>
/// tempo min.cent
/// </summary>
protected decimal _tempoMC
{
answ = Convert.ToDecimal(memLayer.ML.objSessionObj(string.Format("tempoMC-{0}", uid)));
get
{
decimal answ = 0;
try
{
answ = Convert.ToDecimal(memLayer.ML.objSessionObj(string.Format("tempoMC-{0}", uid)));
}
catch
{ }
return answ;
}
set
{
memLayer.ML.setSessionVal(string.Format("tempoMC-{0}", uid), value);
}
}
catch
{ }
return answ;
}
set
{
memLayer.ML.setSessionVal(string.Format("tempoMC-{0}", uid), value);
}
}
/// <summary>
/// tempo min:sec
/// </summary>
protected TimeSpan _tempoMS
{
get
{
TimeSpan answ = new TimeSpan(0, 0, 0);
try
/// <summary>
/// tempo min:sec
/// </summary>
protected TimeSpan _tempoMS
{
answ = (TimeSpan)memLayer.ML.objSessionObj(string.Format("tempoMS-{0}", uid));
get
{
TimeSpan answ = new TimeSpan(0, 0, 0);
try
{
answ = (TimeSpan)memLayer.ML.objSessionObj(string.Format("tempoMS-{0}", uid));
}
catch
{ }
return answ;
}
set
{
memLayer.ML.setSessionVal(string.Format("tempoMS-{0}", uid), value);
}
}
catch
{ }
return answ;
}
set
{
memLayer.ML.setSessionVal(string.Format("tempoMS-{0}", uid), value);
}
}
/// <summary>
/// INdica il formato del tempo IN INGRESSO (selezionato)
/// </summary>
public string labelTempoIN
{
get
{
string answ = "";
if (modoTempo == timeMode.MC)
/// <summary>
/// INdica il formato del tempo IN INGRESSO (selezionato)
/// </summary>
public string labelTempoIN
{
answ = "min.cent";
get
{
string answ = "";
if (modoTempo == timeMode.MC)
{
answ = "min.cent";
}
else
{
answ = "min:sec";
}
return answ;
}
}
else
/// <summary>
/// caricamento pagina
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
{
answ = "min:sec";
// a secondo del modo di controllo mostro textbox o selettori...
bool showTesto = true;
if (modoControllo == timeControlMode.testo)
{
showTesto = true;
}
else
{
showTesto = false;
}
// sistemo visualizzazione dei 2 div
divTesto.Visible = showTesto;
divSelettori.Visible = !showTesto;
if (!Page.IsPostBack)
{
// fix numero item secondi
odsSecondi.SelectParameters.Clear();
odsSecondi.SelectParameters.Add("minVal", "0");
odsSecondi.SelectParameters.Add("maxVal", numItemSec.ToString());
// fix visualizzazione
showControls();
}
}
return answ;
}
}
/// <summary>
/// caricamento pagina
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
{
// a secondo del modo di controllo mostro textbox o selettori...
bool showTesto = true;
if (modoControllo == timeControlMode.testo)
{
showTesto = true;
}
else
{
showTesto = false;
}
// sistemo visualizzazione dei 2 div
divTesto.Visible = showTesto;
divSelettori.Visible = !showTesto;
if (!Page.IsPostBack)
{
// fix numero item secondi
odsSecondi.SelectParameters.Clear();
odsSecondi.SelectParameters.Add("minVal", "0");
odsSecondi.SelectParameters.Add("maxVal", numItemSec.ToString());
// fix visualizzazione
showControls();
}
}
/// <summary>
/// mostra i controlli secondo richiesta
/// </summary>
private void showControls()
{
if (modoControllo == timeControlMode.testo)
{
if (modoTempo == timeMode.MC)
/// <summary>
/// mostra i controlli secondo richiesta
/// </summary>
private void showControls()
{
txtTempo.Text = string.Format("{0:0.000}", tempoMC);
if (modoControllo == timeControlMode.testo)
{
if (modoTempo == timeMode.MC)
{
txtTempo.Text = string.Format("{0:0.000}", tempoMC);
}
else
{
txtTempo.Text = string.Format("{0:#0}:{1:00}", tempoMS.Minutes, tempoMS.Seconds);
}
}
else
{
ddlMinuti.SelectedValue = tempoMS.Minutes.ToString();
if (modoTempo == timeMode.MC)
{
ddlSecondi.SelectedValue = Convert.ToInt32((tempoMC - Math.Floor(tempoMC)) * 100).ToString();
}
else
{
ddlSecondi.SelectedValue = tempoMS.Seconds.ToString();
}
}
// fix label...
if (modoTempo == timeMode.MC)
{
lblTempo.Text = string.Format("--> {0:#0}:{1:00} (min:sec)", tempoMS.Minutes, tempoMS.Seconds);
}
else
{
lblTempo.Text = string.Format("--> {0:0.000} (min.cent)", tempoMC);
}
}
else
/// <summary>
/// num item x controllo secondi/centesimi
/// </summary>
public int numItemSec
{
txtTempo.Text = string.Format("{0:#0}:{1:00}", tempoMS.Minutes, tempoMS.Seconds);
get
{
int answ = 60;
if (modoTempo == timeMode.MS)
{
answ = 59;
}
else
{
answ = 99;
}
return answ;
}
}
}
else
{
ddlMinuti.SelectedValue = tempoMS.Minutes.ToString();
if (modoTempo == timeMode.MC)
/// <summary>
/// tempo selezionato in formato Minuti Secondi
/// </summary>
public TimeSpan tempoMS
{
ddlSecondi.SelectedValue = Convert.ToInt32((tempoMC - Math.Floor(tempoMC)) * 100).ToString();
get
{
return _tempoMS;
}
set
{
_tempoMS = value;
_tempoMC = minSec2Cent(value);
showControls();
}
}
else
/// <summary>
/// verifica se TC sia stato caricato dai controlli, se zero va caricato (almento tentato caricamento...)
/// </summary>
public void checkTC()
{
ddlSecondi.SelectedValue = tempoMS.Seconds.ToString();
if (tempoMC == 0)
{
if (modoControllo == timeControlMode.testo)
{
updFromTextBox();
}
else
{
updFromDropDown();
}
}
}
}
// fix label...
if (modoTempo == timeMode.MC)
{
lblTempo.Text = string.Format("--> {0:#0}:{1:00} (min:sec)", tempoMS.Minutes, tempoMS.Seconds);
}
else
{
lblTempo.Text = string.Format("--> {0:0.000} (min.cent)", tempoMC);
}
}
/// <summary>
/// num item x controllo secondi/centesimi
/// </summary>
public int numItemSec
{
get
{
int answ = 60;
if (modoTempo == timeMode.MS)
/// <summary>
/// tempo selezionato in formato Minuti Centesimi
/// </summary>
public decimal tempoMC
{
answ = 59;
get
{
return _tempoMC;
}
set
{
_tempoMC = value;
_tempoMS = minCent2Sec(value);
showControls();
}
}
else
/// <summary>
/// cambiato valore tempo...
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void txtTempo_TextChanged(object sender, EventArgs e)
{
answ = 99;
updFromTextBox();
}
return answ;
}
}
/// <summary>
/// tempo selezionato in formato Minuti Secondi
/// </summary>
public TimeSpan tempoMS
{
get
{
return _tempoMS;
}
set
{
_tempoMS = value;
_tempoMC = minSec2Cent(value);
showControls();
}
}
/// <summary>
/// verifica se TC sia stato caricato dai controlli, se zero va caricato (almento tentato caricamento...)
/// </summary>
public void checkTC()
{
if (tempoMC == 0)
{
if (modoControllo == timeControlMode.testo)
/// <summary>
/// update da casella testo
/// </summary>
private void updFromTextBox()
{
updFromTextBox();
if (modoControllo == timeControlMode.testo)
{
if (modoTempo == timeMode.MC)
{
tempoMC = Convert.ToDecimal(txtTempo.Text.Replace(".", ","));
}
else
{
string tempoDP = txtTempo.Text.Replace(".", ":").Replace(",", ":");
int min = 0;
int sec = 0;
try
{
min = Convert.ToInt32(tempoDP.Substring(0, tempoDP.IndexOf(":")));
sec = Convert.ToInt32(tempoDP.Substring(tempoDP.IndexOf(":") + 1, tempoDP.Length - tempoDP.IndexOf(":") - 1));
}
catch
{ }
tempoMS = new TimeSpan(0, min, sec);
}
}
}
else
/// <summary>
/// update da controlli dropdown
/// </summary>
private void updFromDropDown()
{
updFromDropDown();
if (modoControllo == timeControlMode.selettori)
{
if (modoTempo == timeMode.MS)
{
tempoMS = new TimeSpan(0, Convert.ToInt32(ddlMinuti.SelectedValue), Convert.ToInt32(ddlSecondi.SelectedValue));
}
else
{
tempoMC = Convert.ToDecimal(Convert.ToDecimal(ddlMinuti.SelectedValue) + Convert.ToDecimal(ddlSecondi.SelectedValue) / 100);
}
}
}
}
}
/// <summary>
/// tempo selezionato in formato Minuti Centesimi
/// </summary>
public decimal tempoMC
{
get
{
return _tempoMC;
}
set
{
_tempoMC = value;
_tempoMS = minCent2Sec(value);
showControls();
}
}
/// <summary>
/// conversione da tempo minuti/secondi a minuti centesimali
/// </summary>
/// <param name="valore"></param>
/// <returns></returns>
protected decimal minSec2Cent(TimeSpan valore)
{
Decimal answ = 0;
try
{
answ = Math.Round((valore.Minutes + (decimal)valore.Seconds / 60), 3);
}
catch
{ }
return answ;
}
/// <summary>
/// conversione da tempo minuti centesimali a minuti/secondi
/// </summary>
/// <param name="valore"></param>
/// <returns></returns>
protected TimeSpan minCent2Sec(decimal valore)
{
TimeSpan answ = new TimeSpan(0, 0, 1);
try
{
answ = new TimeSpan(0, Convert.ToInt32(valore), Convert.ToInt32((valore - Convert.ToInt32(valore)) * 60));
}
catch
{ }
return answ;
}
/// <summary>
/// cambiato valore tempo...
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void txtTempo_TextChanged(object sender, EventArgs e)
{
updFromTextBox();
}
/// <summary>
/// update da casella testo
/// </summary>
private void updFromTextBox()
{
if (modoControllo == timeControlMode.testo)
{
if (modoTempo == timeMode.MC)
/// <summary>
/// selezione minuti
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void ddlMinuti_SelectedIndexChanged(object sender, EventArgs e)
{
tempoMC = Convert.ToDecimal(txtTempo.Text.Replace(".", ","));
updFromDropDown();
}
else
/// <summary>
/// selezione secondi/centesimi
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void ddlSecondi_SelectedIndexChanged(object sender, EventArgs e)
{
string tempoDP = txtTempo.Text.Replace(".", ":").Replace(",", ":");
int min = 0;
int sec = 0;
try
{
min = Convert.ToInt32(tempoDP.Substring(0, tempoDP.IndexOf(":")));
sec = Convert.ToInt32(tempoDP.Substring(tempoDP.IndexOf(":") + 1, tempoDP.Length - tempoDP.IndexOf(":") - 1));
}
catch
{ }
tempoMS = new TimeSpan(0, min, sec);
updFromDropDown();
}
}
}
/// <summary>
/// update da controlli dropdown
/// </summary>
private void updFromDropDown()
{
if (modoControllo == timeControlMode.selettori)
{
if (modoTempo == timeMode.MS)
{
tempoMS = new TimeSpan(0, Convert.ToInt32(ddlMinuti.SelectedValue), Convert.ToInt32(ddlSecondi.SelectedValue));
}
else
{
tempoMC = Convert.ToDecimal(Convert.ToDecimal(ddlMinuti.SelectedValue) + Convert.ToDecimal(ddlSecondi.SelectedValue) / 100);
}
}
}
/// <summary>
/// selezione minuti
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void ddlMinuti_SelectedIndexChanged(object sender, EventArgs e)
{
updFromDropDown();
}
/// <summary>
/// selezione secondi/centesimi
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void ddlSecondi_SelectedIndexChanged(object sender, EventArgs e)
{
updFromDropDown();
}
}
}
/// <summary>
@@ -349,14 +307,14 @@ namespace MoonProTablet.WebUserControls
/// </summary>
public enum timeMode
{
/// <summary>
/// Minuti Secondi
/// </summary>
MS = 0,
/// <summary>
/// Minuti Centesimali
/// </summary>
MC = 1
/// <summary>
/// Minuti Secondi
/// </summary>
MS = 0,
/// <summary>
/// Minuti Centesimali
/// </summary>
MC = 1
}
/// <summary>
@@ -364,12 +322,12 @@ public enum timeMode
/// </summary>
public enum timeControlMode
{
/// <summary>
/// controllo textbox
/// </summary>
testo = 0,
/// <summary>
/// selettori dropdown list
/// </summary>
selettori = 1
/// <summary>
/// controllo textbox
/// </summary>
testo = 0,
/// <summary>
/// selettori dropdown list
/// </summary>
selettori = 1
}
+181 -195
View File
@@ -6,208 +6,194 @@ using System.Web.UI;
namespace MoonProTablet.WebUserControls
{
public partial class mod_title : System.Web.UI.UserControl
{
/// <summary>
/// user agent corrente
/// </summary>
protected string userAgent = "";
/// <summary>
/// IP corrente
/// </summary>
protected string postazione_IP = "";
/// <summary>
/// Oggetto datalayer specifico
/// </summary>
DataLayer DataLayerObj = new DataLayer();
/// <summary>
/// Versione corrente sw
/// </summary>
protected Version currVersion
public partial class mod_title : BaseUserControl
{
get
{
return System.Reflection.Assembly.GetExecutingAssembly().GetName().Version;
}
}
/// <summary>
/// caricamento pagina
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
// prima apertura registro NO popup = refresh enabled
memLayer.ML.setSessionVal("refreshEnabled", true);
}
// se ho user/dominio e matricola in sessione NON controllo coockie
if (user_std.UtSn.utente == "" || user_std.UtSn.dominio == "" || DataLayerObj.MatrOpr == 0)
{
// altrimenti controllo se c'è utente in sessione..
checkAuthCookieMoonProTablet();
}
}
/// <summary>
/// verifica al presenza di un cookie VALIDO per autorizzare il device
/// </summary>
private void checkAuthCookieMoonProTablet()
{
Uri MyUrl = Request.Url;
string delimStr = "/";
char[] delimiter = delimStr.ToCharArray();
string[] finalUrl = MyUrl.LocalPath.ToString().Split(delimiter);
int n = finalUrl.Length;
string _paginaCorrente = finalUrl[n - 1].ToString().Replace(".aspx", "");
try
{
HttpCookie cookie = Request.Cookies[memLayer.ML.CRS("cookieName")];
if (cookie == null || cookie.Value == "")
/// <summary>
/// user agent corrente
/// </summary>
protected string userAgent = "";
/// <summary>
/// IP corrente
/// </summary>
protected string postazione_IP = "";
/// <summary>
/// Versione corrente sw
/// </summary>
protected Version currVersion
{
// rimando pagina x registrazione devices
logger.lg.scriviLog("Cookie non valido / non trovato", tipoLog.STARTUP);
// solo se NON sono alla pagina di registrazione o altre SAFE pages......
if (memLayer.ML.CRS("safePages").ToLower().IndexOf(_paginaCorrente.ToLower()) < 0)
{
Response.Redirect("~/regNewDevice");
}
}
else
{
// ricavo utente da cookie...
string devSecret = cookie.Value;
DS_devices.AnagDevicesRow device = null;
// cerco il device...ogni dipendente può averne + di 1 registrato a suo nome...
string UsrName = "";
string Dominio = "";
try
{
logger.lg.scriviLog(string.Format("Cookie trovato con devSecret {0}", devSecret), tipoLog.STARTUP);
device = DataWrap.DW.taAnagDev.getByDeviceSecret(devSecret)[0];
UsrName = device.User_Name;
Dominio = device.Dominio;
DataLayerObj.MatrOpr = device.MatrOpr; // salvo MatrOpr!
}
catch (Exception exc)
{
logger.lg.scriviLog(string.Format("Errore recupero dati da cookie:{0}{1}", Environment.NewLine, exc), tipoLog.EXCEPTION);
}
if (UsrName != "" && Dominio != "")
{
logger.lg.scriviLog(string.Format("Dati utente da cookie: dominio {0}, user:{1}", Dominio, UsrName), tipoLog.STARTUP);
// aggiorno descrizione (user agent) ed IP...
userAgent = Request.UserAgent;
postazione_IP = Request.UserHostName;
// controllo IP e DeviceDescription x eventuale update
if ((device.lastIPv4 != postazione_IP) || (device.Description != userAgent))
get
{
// salvo ultimo "contatto" del device aggiornando descrizione ed IP
DataWrap.DW.taAnagDev.updateIP(device.IdxDevice, DateTime.Now, postazione_IP, userAgent);
return System.Reflection.Assembly.GetExecutingAssembly().GetName().Version;
}
}
/// <summary>
/// caricamento pagina
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
// prima apertura registro NO popup = refresh enabled
memLayer.ML.setSessionVal("refreshEnabled", true);
}
// se ho user/dominio e matricola in sessione NON controllo coockie
if (user_std.UtSn.utente == "" || user_std.UtSn.dominio == "" || DataLayerObj.MatrOpr == 0)
{
// altrimenti controllo se c'è utente in sessione..
checkAuthCookieMoonProTablet();
}
}
/// <summary>
/// verifica al presenza di un cookie VALIDO per autorizzare il device
/// </summary>
private void checkAuthCookieMoonProTablet()
{
Uri MyUrl = Request.Url;
string delimStr = "/";
char[] delimiter = delimStr.ToCharArray();
string[] finalUrl = MyUrl.LocalPath.ToString().Split(delimiter);
int n = finalUrl.Length;
string _paginaCorrente = finalUrl[n - 1].ToString().Replace(".aspx", "");
try
{
HttpCookie cookie = Request.Cookies[memLayer.ML.CRS("cookieName")];
if (cookie == null || cookie.Value == "")
{
// rimando pagina x registrazione devices
logger.lg.scriviLog("Cookie non valido / non trovato", tipoLog.STARTUP);
// solo se NON sono alla pagina di registrazione o altre SAFE pages......
if (memLayer.ML.CRS("safePages").ToLower().IndexOf(_paginaCorrente.ToLower()) < 0)
{
Response.Redirect("~/regNewDevice");
}
}
else
{
// ricavo utente da cookie...
string devSecret = cookie.Value;
DS_devices.AnagDevicesRow device = null;
// cerco il device...ogni dipendente può averne + di 1 registrato a suo nome...
string UsrName = "";
string Dominio = "";
try
{
logger.lg.scriviLog(string.Format("Cookie trovato con devSecret {0}", devSecret), tipoLog.STARTUP);
device = DataWrap.DW.taAnagDev.getByDeviceSecret(devSecret)[0];
UsrName = device.User_Name;
Dominio = device.Dominio;
DataLayerObj.MatrOpr = device.MatrOpr; // salvo MatrOpr!
}
catch (Exception exc)
{
logger.lg.scriviLog(string.Format("Errore recupero dati da cookie:{0}{1}", Environment.NewLine, exc), tipoLog.EXCEPTION);
}
if (UsrName != "" && Dominio != "")
{
logger.lg.scriviLog(string.Format("Dati utente da cookie: dominio {0}, user:{1}", Dominio, UsrName), tipoLog.STARTUP);
// aggiorno descrizione (user agent) ed IP...
userAgent = Request.UserAgent;
postazione_IP = Request.UserHostName;
// controllo IP e DeviceDescription x eventuale update
if ((device.lastIPv4 != postazione_IP) || (device.Description != userAgent))
{
// salvo ultimo "contatto" del device aggiornando descrizione ed IP
DataWrap.DW.taAnagDev.updateIP(device.IdxDevice, DateTime.Now, postazione_IP, userAgent);
}
// avvio utente...
user_std.UtSn.startUpUtente(Dominio, UsrName);
}
else
{
// svuoto cookie...
memLayer.ML.emptyCookieVal(memLayer.ML.CRS("cookieName"));
// rimando pagina x registrazione devices
logger.lg.scriviLog(string.Format("Dominio / UsrName non validi / non trovati:{0}devSec:{1}{0}UsrName{2}{0}Dominio{3}", Environment.NewLine, devSecret, UsrName, Dominio), tipoLog.STARTUP);
Response.Redirect("~/regNewDevice.aspx");
}
}
}
catch (Exception exc)
{
logger.lg.scriviLog(string.Format("Errore in checkAuthCookie:{0}{1}", Environment.NewLine, exc), tipoLog.EXCEPTION);
}
}
/// <summary>
/// URL stringa di UPDATE...
/// </summary>
protected string updateUrl
{
get
{
return string.Format("http://seriate.steamware.net:8083/SWS/MAPO/TAB/{0}/manifest.xml", memLayer.ML.CRS("appVers"));
}
}
public string isActive(object pageName)
{
string answ = "";
if (true)
{
answ = "active";
}
return answ;
}
/// <summary>
/// Verifica se la pagina corrente sia URL indicato --> mostra ACTIVE
/// </summary>
/// <param name="navUrl"></param>
/// <returns></returns>
public string checkPage(object navUrl)
{
string answ = "";
if (navUrl.ToString().Replace(".aspx", "").Replace("~/", "") == titolo.Replace(".aspx", ""))
{
answ = "active btn-primary";
}
return answ;
}
/// <summary>
/// Cognome Nome utente
/// </summary>
public string MatrOpr
{
get
{
return DataLayerObj.MatrOpr.ToString();
}
// avvio utente...
user_std.UtSn.startUpUtente(Dominio, UsrName);
}
else
{
// svuoto cookie...
memLayer.ML.emptyCookieVal(memLayer.ML.CRS("cookieName"));
// rimando pagina x registrazione devices
logger.lg.scriviLog(string.Format("Dominio / UsrName non validi / non trovati:{0}devSec:{1}{0}UsrName{2}{0}Dominio{3}", Environment.NewLine, devSecret, UsrName, Dominio), tipoLog.STARTUP);
Response.Redirect("~/regNewDevice.aspx");
}
}
}
catch (Exception exc)
{
logger.lg.scriviLog(string.Format("Errore in checkAuthCookie:{0}{1}", Environment.NewLine, exc), tipoLog.EXCEPTION);
}
}
/// <summary>
/// URL stringa di UPDATE...
/// </summary>
protected string updateUrl
{
get
{
return string.Format("http://seriate.steamware.net:8083/SWS/MAPO/TAB/{0}/manifest.xml", memLayer.ML.CRS("appVers"));
}
}
public string isActive(object pageName)
{
string answ = "";
if (true)
{
answ = "active";
}
return answ;
}
/// <summary>
/// Verifica se la pagina corrente sia URL indicato --> mostra ACTIVE
/// </summary>
/// <param name="navUrl"></param>
/// <returns></returns>
public string checkPage(object navUrl)
{
string answ = "";
if (navUrl.ToString().Replace(".aspx", "").Replace("~/", "") == titolo.Replace(".aspx", ""))
{
answ = "active btn-primary";
}
return answ;
}
/// <summary>
/// titolo pagina
/// </summary>
public string titolo
{
get
{
return devicesAuthProxy.getPage(Request.Url);
}
}
/// <summary>
/// Cognome Nome utente
/// </summary>
public string MatrOpr
{
get
{
return DataLayerObj.MatrOpr.ToString();
}
}
/// <summary>
/// Cognome Nome utente
/// </summary>
public string CognomeNome
{
get
{
string swData = "";
string cognomeNome = "";
try
/// <summary>
/// Cognome Nome utente
/// </summary>
public string CognomeNome
{
cognomeNome = user_std.UtSn.CognomeNome;
get
{
string swData = "";
string cognomeNome = "";
try
{
cognomeNome = user_std.UtSn.CognomeNome;
}
catch (Exception exc)
{
logger.lg.scriviLog(string.Format("Eccezione in User.aspx - page_load: {0}", exc), tipoLog.EXCEPTION);
}
if (DataLayerObj.MatrOpr > 0)
{
swData = DataLayerObj.CognomeNomeOpr;
}
else if (cognomeNome != "")
{
swData = cognomeNome;
}
else
{
swData = "MoonProTablet";
}
return swData;
}
}
catch (Exception exc)
{
logger.lg.scriviLog(string.Format("Eccezione in User.aspx - page_load: {0}", exc), tipoLog.EXCEPTION);
}
if (DataLayerObj.MatrOpr > 0)
{
swData = DataLayerObj.CognomeNomeOpr;
}
else if (cognomeNome != "")
{
swData = cognomeNome;
}
else
{
swData = "MoonProTablet";
}
return swData;
}
}
}
}
+57 -75
View File
@@ -4,84 +4,66 @@ using System;
namespace MoonProTablet.WebUserControls
{
public partial class mod_turni : System.Web.UI.UserControl
{
/// <summary>
/// registrato nuovo valore
/// </summary>
public event EventHandler eh_updated;
/// <summary>
/// Oggetto datalayer specifico
/// </summary>
DataLayer DataLayerObj = new DataLayer();
/// <summary>
/// idx macchina selezionata
/// </summary>
public string idxMacchina
public partial class mod_turni : BaseUserControl
{
get
{
return memLayer.ML.StringSessionObj("IdxMacchina");
}
set
{
memLayer.ML.setSessionVal("IdxMacchina", value);
}
}
/// <summary>
/// caricamento pagina
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
{
setupTurni();
}
/// <summary>
/// setta i valori turni attivi x macchina
/// </summary>
private void setupTurni()
{
// carico dati macchina attiva...
try
{
DS_ProdTempi.TurniMacchinaRow rigaTurni = DataLayerObj.taTurniMacc.getByIdxMacc(idxMacchina.ToString())[0];
// fix checkboxes
chkT1.Checked = rigaTurni.T1;
chkT2.Checked = rigaTurni.T2;
chkT3.Checked = rigaTurni.T3;
}
catch
{ }
}
/// <summary>
/// fa toggle del valore attivo/disattivo del turno
/// </summary>
/// <param name="turno"></param>
private void toggleTurno(int turno)
{
DataLayerObj.taTurniMacc.stp_turniMacchineUpdateTurno(idxMacchina.ToString(), turno);
setupTurni();
// sollevo evento!
if (eh_updated != null)
{
eh_updated(this, new EventArgs());
}
}
/// <summary>
/// registrato nuovo valore
/// </summary>
public event EventHandler eh_updated;
/// <summary>
/// caricamento pagina
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
{
setupTurni();
}
/// <summary>
/// setta i valori turni attivi x macchina
/// </summary>
private void setupTurni()
{
// carico dati macchina attiva...
try
{
DS_ProdTempi.TurniMacchinaRow rigaTurni = DataLayerObj.taTurniMacc.getByIdxMacc(idxMacchina.ToString())[0];
// fix checkboxes
chkT1.Checked = rigaTurni.T1;
chkT2.Checked = rigaTurni.T2;
chkT3.Checked = rigaTurni.T3;
}
catch
{ }
}
/// <summary>
/// fa toggle del valore attivo/disattivo del turno
/// </summary>
/// <param name="turno"></param>
private void toggleTurno(int turno)
{
DataLayerObj.taTurniMacc.stp_turniMacchineUpdateTurno(idxMacchina.ToString(), turno);
setupTurni();
// sollevo evento!
if (eh_updated != null)
{
eh_updated(this, new EventArgs());
}
}
protected void chkT1_CheckedChanged(object sender, EventArgs e)
{
toggleTurno(1);
}
protected void chkT1_CheckedChanged(object sender, EventArgs e)
{
toggleTurno(1);
}
protected void chkT2_CheckedChanged(object sender, EventArgs e)
{
toggleTurno(2);
}
protected void chkT2_CheckedChanged(object sender, EventArgs e)
{
toggleTurno(2);
}
protected void chkT3_CheckedChanged(object sender, EventArgs e)
{
toggleTurno(3);
protected void chkT3_CheckedChanged(object sender, EventArgs e)
{
toggleTurno(3);
}
}
}
}