diff --git a/MP-TAB/MP-TAB.csproj b/MP-TAB/MP-TAB.csproj index 5f96648e..58e0516f 100644 --- a/MP-TAB/MP-TAB.csproj +++ b/MP-TAB/MP-TAB.csproj @@ -1198,9 +1198,6 @@ mod_turni.ascx - - ASPXCodeBehind - windowSize.ashx diff --git a/MP-TAB/ODL.aspx.cs b/MP-TAB/ODL.aspx.cs index 3881939c..48cb366b 100644 --- a/MP-TAB/ODL.aspx.cs +++ b/MP-TAB/ODL.aspx.cs @@ -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(); } diff --git a/MP-TAB/WebUserControls/BaseUserControl.cs b/MP-TAB/WebUserControls/BaseUserControl.cs index bf6dd9fc..611924b5 100644 --- a/MP-TAB/WebUserControls/BaseUserControl.cs +++ b/MP-TAB/WebUserControls/BaseUserControl.cs @@ -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; + } /// /// idx macchina selezionata /// @@ -26,7 +32,11 @@ namespace MoonProTablet.WebUserControls /// /// Oggetto datalayer specifico /// - DataLayer DataLayerObj = new DataLayer(); + internal DataLayer DataLayerObj = new DataLayer(); + /// + /// classe MapoDB x uso locale + /// + internal MapoDb.MapoDb controllerMapo = new MapoDb.MapoDb(); /// /// effettua traduzione del lemma /// @@ -36,7 +46,16 @@ namespace MoonProTablet.WebUserControls { return user_std.UtSn.Traduci(lemma); } - + /// + /// effettua traduzione del lemma + /// + /// + /// + public string traduci(object _lemma) + { + _lemma = _lemma == null ? "" : _lemma; + return user_std.UtSn.Traduci(_lemma.ToString()); + } /// /// effettua traduzione in inglese del lemma /// @@ -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; + } + /// + /// Sotto sistema (macchina) selezionato in sessione + /// + public string subMaccSel + { + get + { + return memLayer.ML.StringSessionObj("subMaccSel"); + } + set + { + memLayer.ML.setSessionVal("subMaccSel", value); + } + } + /// + /// idxOdl corrente in sessione + /// + public int idxOdl + { + get + { + return memLayer.ML.IntSessionObj("idxODL"); + } + set + { + memLayer.ML.setSessionVal("idxODL", value); + } + } + /// + /// url completo immagine + /// + /// + /// + public string ImgUrlMacc(object url) + { + if (string.IsNullOrEmpty(url.ToString())) + { + url = "empty.png"; + } + return string.Format("./images/macchine/{0}", url); + } + /// + /// url completo immagine icona + /// + /// + /// + public string ImgUrlIcon(object url) + { + return string.Format("./images/iconDic/{0}.png", url); + } + /// + /// titolo pagina + /// + public string titolo + { + get + { + return devicesAuthProxy.getPage(Request.Url); + } + } + /// + /// fomratta durata in minuti/ore/gg a seconda del totale... + /// + /// + /// + 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; + } + /// + /// Verifica se la macchina MAIN sia MULTI (da DatiMacchina / redis...) + /// + internal bool isMulti + { + get + { + return DataLayerObj.isMulti(idxMacchina); + } + } + /// + /// stringa UID univoca + /// + public string uid + { + get + { + return this.UniqueID.Replace("$", "_").Replace("-", "_"); + } + } + /// + /// conversione da tempo minuti/secondi a minuti centesimali + /// + /// + /// + protected decimal minSec2Cent(TimeSpan valore) + { + Decimal answ = 0; + try + { + answ = Math.Round((valore.Minutes + (decimal)valore.Seconds / 60), 3); + } + catch + { } + return answ; + } + /// + /// conversione da tempo minuti centesimali a minuti/secondi + /// + /// + /// + 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; + } } } \ No newline at end of file diff --git a/MP-TAB/WebUserControls/MpTabUserControl.cs b/MP-TAB/WebUserControls/MpTabUserControl.cs deleted file mode 100644 index 8b96b4ba..00000000 --- a/MP-TAB/WebUserControls/MpTabUserControl.cs +++ /dev/null @@ -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 - { - /// - /// idxMacchina corrente in sessione - /// - public string idxMacchina - { - get - { - return memLayer.ML.StringSessionObj("idxMacchina"); - } - set - { - memLayer.ML.setSessionVal("idxMacchina", value); - } - } - /// - /// Sotto sistema (macchina) selezionato in sessione - /// - public string subMaccSel - { - get - { - return memLayer.ML.StringSessionObj("subMaccSel"); - } - set - { - memLayer.ML.setSessionVal("subMaccSel", value); - } - } - /// - /// idxOdl corrente in sessione - /// - public int idxOdl - { - get - { - return memLayer.ML.IntSessionObj("idxODL"); - } - set - { - memLayer.ML.setSessionVal("idxODL", value); - } - } - /// - /// effettua traduzione del lemma - /// - /// - /// - public string traduci(object _lemma) - { - _lemma = _lemma == null ? "":_lemma; - return user_std.UtSn.Traduci(_lemma.ToString()); - } - } -} \ No newline at end of file diff --git a/MP-TAB/WebUserControls/cmp_HwSwInfo.ascx.cs b/MP-TAB/WebUserControls/cmp_HwSwInfo.ascx.cs index 99fc5eca..53149a93 100644 --- a/MP-TAB/WebUserControls/cmp_HwSwInfo.ascx.cs +++ b/MP-TAB/WebUserControls/cmp_HwSwInfo.ascx.cs @@ -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) + { + } } - } } \ No newline at end of file diff --git a/MP-TAB/WebUserControls/cmp_ST_detail.ascx.cs b/MP-TAB/WebUserControls/cmp_ST_detail.ascx.cs index e53fdd42..4333671d 100644 --- a/MP-TAB/WebUserControls/cmp_ST_detail.ascx.cs +++ b/MP-TAB/WebUserControls/cmp_ST_detail.ascx.cs @@ -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) { diff --git a/MP-TAB/WebUserControls/cmp_ST_objCheck.ascx.cs b/MP-TAB/WebUserControls/cmp_ST_objCheck.ascx.cs index 0cfaaec3..67326888 100644 --- a/MP-TAB/WebUserControls/cmp_ST_objCheck.ascx.cs +++ b/MP-TAB/WebUserControls/cmp_ST_objCheck.ascx.cs @@ -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) { diff --git a/MP-TAB/WebUserControls/cmp_ST_objView.ascx.cs b/MP-TAB/WebUserControls/cmp_ST_objView.ascx.cs index 2c6e15aa..18549b0e 100644 --- a/MP-TAB/WebUserControls/cmp_ST_objView.ascx.cs +++ b/MP-TAB/WebUserControls/cmp_ST_objView.ascx.cs @@ -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 { diff --git a/MP-TAB/WebUserControls/cmp_dettODL.ascx.cs b/MP-TAB/WebUserControls/cmp_dettODL.ascx.cs index e8e1dd59..f9dd64ed 100644 --- a/MP-TAB/WebUserControls/cmp_dettODL.ascx.cs +++ b/MP-TAB/WebUserControls/cmp_dettODL.ascx.cs @@ -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 { - - } - /// - /// codice odl selezionato - /// - 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(); - } - } - } + } + /// + /// codice odl selezionato + /// + public int idxODLSel + { + get + { + int answ = 0; + try + { + answ = Convert.ToInt32(hfIdxODL.Value); + } + catch + { } + return answ; + } + set + { + hfIdxODL.Value = value.ToString(); + frmView.DataBind(); + } + } + + } } \ No newline at end of file diff --git a/MP-TAB/WebUserControls/cmp_newODL.ascx.cs b/MP-TAB/WebUserControls/cmp_newODL.ascx.cs index fc0b79f8..f646db3a 100644 --- a/MP-TAB/WebUserControls/cmp_newODL.ascx.cs +++ b/MP-TAB/WebUserControls/cmp_newODL.ascx.cs @@ -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 + { + /// + /// registrato nuovo valore + /// + public event EventHandler eh_newVal; + protected void Page_Load(object sender, EventArgs e) + { + if (!Page.IsPostBack) + { + setDefaults(); + } + } + /// + /// imposta valori std + /// + private void setDefaults() + { + txtNumPz.Text = "1"; + txtTC_min.Text = "1"; + txtTC_sec.Text = "0"; + } - /// - /// Oggetto datalayer specifico - /// - DataLayer DataLayerObj = new DataLayer(); - /// - /// registrato nuovo valore - /// - public event EventHandler eh_newVal; - protected void Page_Load(object sender, EventArgs e) - { - if (!Page.IsPostBack) - { - setDefaults(); - } - } - /// - /// idxMacchina selezionata - /// - public string idxMacchina - { - get - { - return hfIdxMacchina.Value; - } - set - { - hfIdxMacchina.Value = value; - } - } - /// - /// imposta valori std - /// - 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.
Macchina: {0}
Articolo: {1}
Lanciati {2} pezzi con T.Ciclo {3:N3} (min.cent) / {4}:{5} (min:sec).

Note operatore: {6}", 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.
Macchina: {0}
Articolo: {1}
Lanciati {2} pezzi con T.Ciclo {3:N3} (min.cent) / {4}:{5} (min:sec).

Note operatore: {6}", 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(); - } - } } \ No newline at end of file diff --git a/MP-TAB/WebUserControls/cmp_selPzPallet.ascx.cs b/MP-TAB/WebUserControls/cmp_selPzPallet.ascx.cs index fae4f18c..c6bda4d4 100644 --- a/MP-TAB/WebUserControls/cmp_selPzPallet.ascx.cs +++ b/MP-TAB/WebUserControls/cmp_selPzPallet.ascx.cs @@ -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) + { - } - /// - /// Valore PzPallet selezionato - /// - 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) + /// + /// Valore PzPallet selezionato + /// + 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); + } + } + } + /// + /// Imposta abilitazione alla modifica + /// + public bool enableSet + { + get + { + return ddlPzPallet.Enabled; + } + set + { + ddlPzPallet.Enabled = value; + } } - } } - /// - /// Imposta abilitazione alla modifica - /// - public bool enableSet - { - get - { - return ddlPzPallet.Enabled; - } - set - { - ddlPzPallet.Enabled = value; - } - } - } } \ No newline at end of file diff --git a/MP-TAB/WebUserControls/cmp_sheetTech.ascx.cs b/MP-TAB/WebUserControls/cmp_sheetTech.ascx.cs index a88fe8ac..9c8a3863 100644 --- a/MP-TAB/WebUserControls/cmp_sheetTech.ascx.cs +++ b/MP-TAB/WebUserControls/cmp_sheetTech.ascx.cs @@ -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) { diff --git a/MP-TAB/WebUserControls/mod_ODL.ascx.cs b/MP-TAB/WebUserControls/mod_ODL.ascx.cs index 201cb863..19fca8e8 100644 --- a/MP-TAB/WebUserControls/mod_ODL.ascx.cs +++ b/MP-TAB/WebUserControls/mod_ODL.ascx.cs @@ -8,1202 +8,1178 @@ using System.Web.UI.WebControls; namespace MoonProTablet.WebUserControls { - public partial class mod_ODL : System.Web.UI.UserControl - { - /// - /// registrato nuovo valore - /// - public event EventHandler eh_reqUpdate; - /// - /// Valore protected idxODL - /// - protected string _idxOdlMacc; - /// - /// Valore protected idxODL - /// - protected string _idxOdlAltraMacc; - /// - /// Oggetto DataLayer della classe - /// - protected DataLayer DataLayerObj = new DataLayer(); - /// - /// IdxODL sulla macchina - /// - public string idxOdlMacc + public partial class mod_ODL : BaseUserControl { - get - { - if (_idxOdlMacc == null) + /// + /// registrato nuovo valore + /// + public event EventHandler eh_reqUpdate; + /// + /// Valore protected idxODL + /// + protected string _idxOdlMacc; + /// + /// Valore protected idxODL + /// + protected string _idxOdlAltraMacc; + /// + /// IdxODL sulla macchina + /// + public string idxOdlMacc { - _idxOdlMacc = DataLayerObj.currODL(idxMacchina, true); - } - return _idxOdlMacc; - } - set - { - _idxOdlMacc = value; - } - } - /// - /// IdxODL su ALTRA macchina (se multi) - /// - public string idxOdlAltraMacc - { - get - { - if (_idxOdlAltraMacc == null) - { - _idxOdlAltraMacc = DataLayerObj.currODL(idxMaccAltraTav, true); - } - return _idxOdlAltraMacc; - } - set - { - _idxOdlAltraMacc = value; - } - } - /// - /// Verifica se la macchina sia MULTI - /// - public bool isMulti - { - get - { - return DataLayerObj.isMulti(idxMacchina); - } - } - - public bool maccInAttr - { - get - { - bool answ = false; - // controllo se la macchina è in attrezzaggio... - DS_applicazione.StatoMacchineRow rigaStato = null; - try - { - // se è multi controllo parent... - if (isMulti) - { - rigaStato = selData.mng.rigaStato(idxMaccParent); - } - else - { - rigaStato = selData.mng.rigaStato(idxMacchina); - } - answ = (rigaStato.IdxStato == 2); - } - catch (Exception exc) - { - logger.lg.scriviLog(string.Format("Eccezione in recupero dati rigaStato! {0}{1}", Environment.NewLine, exc), tipoLog.EXCEPTION); - } - return answ; - } - } - /// - /// Verifica se la macchina NON abbia ODL (valido, > 0) - /// - public bool emptyOdlMacc - { - get - { - return (idxOdlMacc == "" || idxOdlMacc == "0"); - } - } - /// - /// Verifica se la macchina NON abbia ODL (valido, > 0) - /// - public bool emptyOdlAltraMacc - { - get - { - return (idxOdlAltraMacc == "" || idxOdlAltraMacc == "0"); - } - } - /// - /// Verifica visibilità btn split ODL su 2° tavola SE: - /// - sia un impianto MULTI (= con + tavole) - /// - sia già attrezzata la prima tavola - /// - in tab Congif: se sia abilitato lo split ODL sulla seconda tavola - /// - la macchina SIA ANCORA in attrezzaggio (2019.07.08) = 2 - /// - protected bool showSplitOdlOnTavVal - { - get - { - bool answ = false; - // se è multi controllo - if (isMulti) - { - // verifico se NON HA ODL ma ce l'ha altra tavola... - if (emptyOdlMacc) - { - // ora verifico SE ALTRA TAVOLA ha ODL... - if (!emptyOdlAltraMacc) + get { - // ora verifico SE E SOLO SE è ANCORA in attrezzaggio - if (maccInAttr) - { - answ = memLayer.ML.cdvb("showSplitOdlOnTav"); - } + if (_idxOdlMacc == null) + { + _idxOdlMacc = DataLayerObj.currODL(idxMacchinaFix, true); + } + return _idxOdlMacc; + } + set + { + _idxOdlMacc = value; } - } } - return answ; - } - } - /// - /// Verifica visibilità btn riprendi ODL su 2° tavola SE: - /// - sia un impianto MULTI (= con + tavole) - /// - sia disattrezzata la tavola - /// - in tab congif: se sia abilitato la ripresa ODL sulla seconda tavola - /// - in tab config: sia il grace period - /// - NON SIANO passati i minuti indicati dalla chiusura - /// - protected bool showReopOdlTav - { - get - { - bool answ = false; - // se è multi controllo - if (isMulti) + /// + /// IdxODL su ALTRA macchina (se multi) + /// + public string idxOdlAltraMacc { - // verifico se NON HA ODL... - if (emptyOdlMacc) - { - // verifico SE siamo nel gracePeriod - int gPeriod = memLayer.ML.cdvi("gPeriodReopenOdlTav"); - DateTime adesso = DateTime.Now; - DateTime dtChiusura = DateTime.Now.AddHours(-1); + get + { + if (_idxOdlAltraMacc == null) + { + _idxOdlAltraMacc = DataLayerObj.currODL(idxMaccAltraTav, true); + } + return _idxOdlAltraMacc; + } + set + { + _idxOdlAltraMacc = value; + } + } + + public bool maccInAttr + { + get + { + bool answ = false; + // controllo se la macchina è in attrezzaggio... + DS_applicazione.StatoMacchineRow rigaStato = null; + try + { + // se è multi controllo parent... + if (isMulti) + { + rigaStato = selData.mng.rigaStato(idxMaccParent); + } + else + { + rigaStato = selData.mng.rigaStato(idxMacchinaFix); + } + answ = (rigaStato.IdxStato == 2); + } + catch (Exception exc) + { + logger.lg.scriviLog(string.Format("Eccezione in recupero dati rigaStato! {0}{1}", Environment.NewLine, exc), tipoLog.EXCEPTION); + } + return answ; + } + } + /// + /// Verifica se la macchina NON abbia ODL (valido, > 0) + /// + public bool emptyOdlMacc + { + get + { + return (idxOdlMacc == "" || idxOdlMacc == "0"); + } + } + /// + /// Verifica se la macchina NON abbia ODL (valido, > 0) + /// + public bool emptyOdlAltraMacc + { + get + { + return (idxOdlAltraMacc == "" || idxOdlAltraMacc == "0"); + } + } + /// + /// Verifica visibilità btn split ODL su 2° tavola SE: + /// - sia un impianto MULTI (= con + tavole) + /// - sia già attrezzata la prima tavola + /// - in tab Congif: se sia abilitato lo split ODL sulla seconda tavola + /// - la macchina SIA ANCORA in attrezzaggio (2019.07.08) = 2 + /// + protected bool showSplitOdlOnTavVal + { + get + { + bool answ = false; + // se è multi controllo + if (isMulti) + { + // verifico se NON HA ODL ma ce l'ha altra tavola... + if (emptyOdlMacc) + { + // ora verifico SE ALTRA TAVOLA ha ODL... + if (!emptyOdlAltraMacc) + { + // ora verifico SE E SOLO SE è ANCORA in attrezzaggio + if (maccInAttr) + { + answ = memLayer.ML.cdvb("showSplitOdlOnTav"); + } + } + } + } + return answ; + } + } + /// + /// Verifica visibilità btn riprendi ODL su 2° tavola SE: + /// - sia un impianto MULTI (= con + tavole) + /// - sia disattrezzata la tavola + /// - in tab congif: se sia abilitato la ripresa ODL sulla seconda tavola + /// - in tab config: sia il grace period + /// - NON SIANO passati i minuti indicati dalla chiusura + /// + protected bool showReopOdlTav + { + get + { + bool answ = false; + // se è multi controllo + if (isMulti) + { + // verifico se NON HA ODL... + if (emptyOdlMacc) + { + // verifico SE siamo nel gracePeriod + int gPeriod = memLayer.ML.cdvi("gPeriodReopenOdlTav"); + DateTime adesso = DateTime.Now; + DateTime dtChiusura = DateTime.Now.AddHours(-1); + try + { + dtChiusura = DataLayerObj.taODL.getLastByMacc(idxMacchinaFix)[0].DataFine; + } + catch + { } + + // ora verifico SE E SOLO SE è ANCORA in attrezzaggio + if (maccInAttr) + { + // ora verifico SE ALTRA TAVOLA ha ODL... + if (dtChiusura.AddMinutes(gPeriod) > adesso) + { + answ = memLayer.ML.cdvb("showReopenOdlTav"); + } + } + } + } + return answ; + } + } + /// + /// Verifica se la tavola SIA in fase di attrezzaggio, ovvero SE: + /// - sia un impianto MULTI (= con + tavole) + /// - sia già attrezzata + /// + protected bool tavHasOdl + { + get + { + bool answ = false; + // se è multi controllo + if (isMulti) + { + answ = !emptyOdlMacc; + } + return answ; + } + } + /// + /// Restituisce il codice IdxMacchina dell'altra tavola (se multi) altrimenti la stessa macchina... + /// + protected string idxMaccAltraTav + { + get + { + string answ = ""; + try + { + // verifico se SIA una tavola (ha char "#") + int iSharp = idxMacchinaFix.IndexOf('#'); + if (iSharp > 0) + { + // ora verifico SE ALTRA TAVOLA ha ODL... + string nomeTav = idxMacchinaFix.Substring(iSharp); + string altraTav = nomeTav.Substring(0, nomeTav.Length - 1); + altraTav += nomeTav.EndsWith("1") ? "2" : "1"; + // sistemo nome + answ = idxMacchinaFix.Replace(nomeTav, altraTav); + } + } + catch + { } + return answ; + } + } + /// + /// Restituisce il codice IdxMacchina dell'impianto PARENT (se multi) altrimenti la stessa macchina... + /// + protected string idxMaccParent + { + get + { + string answ = ""; + // se è multi controllo + if (isMulti) + { + // verifico se SIA una tavola (ha char "#") + int iSharp = idxMacchinaFix.IndexOf('#'); + if (iSharp > 0) + { + // sistemo nome + answ = idxMacchinaFix.Substring(0, iSharp); + } + } + return answ; + } + } + + /// + /// Verifica chiave chkCloseOdl in tab Config + /// + protected bool chkCloseOdlVal + { + get + { + return memLayer.ML.cdvb("chkCloseOdl"); + } + } + /// + /// Verifica chiave showChkCloseOdl in tab Config + /// + protected bool showChkCloseOdlVal + { + get + { + return memLayer.ML.cdvb("showChkCloseOdl"); + } + } + /// + /// Verifica chiave showOdlProvv in tab Config + /// + protected bool showOdlProvvVal + { + get + { + return memLayer.ML.cdvb("showOdlProvv"); + } + } + + /// + /// idx macchina selezionata + /// + public string idxMacchinaFix + { + get + { + string answ = ""; + try + { + answ = memLayer.ML.StringSessionObj(string.Format("idxMacchina-{0}", uid)); + } + catch + { } + return answ; + } + set + { + memLayer.ML.setSessionVal(string.Format("idxMacchina-{0}", uid), value); + hfIdxMacchina.Value = value; + cmp_newODL.idxMacchina = value; + } + } + /// + /// Determina se sia abilitato il controllo x editing + /// + public bool isEnabled + { + get + { + bool answ = false; + try + { + answ = memLayer.ML.BoolSessionObj(string.Format("isEnabled-{0}", uid)); + } + catch + { } + return answ; + } + set + { + memLayer.ML.setSessionVal(string.Format("isEnabled-{0}", uid), value); + } + } + /// + /// codice odl selezionato + /// + public int idxODLSel + { + get + { + int answ = 0; + try + { + answ = Convert.ToInt32(ddlODL.SelectedValue); + } + catch + { } + return answ; + } + } + /// + /// Cod articolo dell'ODL selezionato + /// + public string CodArtSel + { + get + { + string CodArticolo = ""; + try + { + CodArticolo = DataLayerObj.taODL.getByIdx(idxODLSel, false)[0].CodArticolo; + } + catch + { } + return CodArticolo; + } + } + /// + /// avvio pagina + /// + /// + /// + protected void Page_Load(object sender, EventArgs e) + { + if (!Page.IsPostBack) + { + // fix modo tempo... + if (memLayer.ML.cdvb("TAB_TC_MinSec")) + { + mod_tempoMSMC.modoTempo = timeMode.MS; + } + else + { + mod_tempoMSMC.modoTempo = timeMode.MC; + } + } + cmp_newODL.eh_newVal += Cmp_newODL_eh_newVal; + } + /// + /// Verifica (su tab config) se sia abilitata la gestione flusso RPO (Richieste - Promesse - ODL) + /// + protected bool enableRPO + { + get + { + return memLayer.ML.cdvb("enableRPO"); + } + } + + private void Cmp_newODL_eh_newVal(object sender, EventArgs e) + { + // creato nuovo ODL, faccio refresh ricaricando pagina! + Response.Redirect("~/ODL"); + } + + public void hideAll() + { + divDettOdl.Visible = false; + } + + public void checkAll() + { + lblOut.Text = ""; + checkBtnStatus(); + chkCloseOdl.Checked = chkCloseOdlVal; + chkCloseOdl.Visible = showChkCloseOdlVal; + divOdlProvv.Visible = showOdlProvvVal; + divOpRiattr.Visible = (showSplitOdlOnTavVal || showReopOdlTav); + lbtSplitOdlSuTav.Visible = showSplitOdlOnTavVal; + lbtReopOdlSuTav.Visible = showReopOdlTav; + lbtFixEndSetup.Visible = !maccInAttr && memLayer.ML.CRB("OptEnableFixSetup"); + } + /// + /// Sistema CSS x status enabled/disabled + /// + /// + protected void fixWCtrStatus(object lbtn) + { + // tolgo (eventuale) classe try { - dtChiusura = DataLayerObj.taODL.getLastByMacc(idxMacchina)[0].DataFine; + ((WebControl)lbtn).CssClass = ((WebControl)lbtn).CssClass.Replace("disabled", ""); + // se richiesto metto disabled... + if (!((WebControl)lbtn).Enabled) + { + ((WebControl)lbtn).CssClass += " disabled"; + } } catch { } + } - // ora verifico SE E SOLO SE è ANCORA in attrezzaggio - if (maccInAttr) - { - // ora verifico SE ALTRA TAVOLA ha ODL... - if (dtChiusura.AddMinutes(gPeriod) > adesso) - { - answ = memLayer.ML.cdvb("showReopenOdlTav"); - } - } - } - } - return answ; - } - } - /// - /// Verifica se la tavola SIA in fase di attrezzaggio, ovvero SE: - /// - sia un impianto MULTI (= con + tavole) - /// - sia già attrezzata - /// - protected bool tavHasOdl - { - get - { - bool answ = false; - // se è multi controllo - if (isMulti) + /// + /// controlla stato bottoni abilitato + /// + private void checkBtnStatus() { - answ = !emptyOdlMacc; - } - return answ; - } - } - /// - /// Restituisce il codice IdxMacchina dell'altra tavola (se multi) altrimenti la stessa macchina... - /// - protected string idxMaccAltraTav - { - get - { - string answ = ""; - try - { - // verifico se SIA una tavola (ha char "#") - int iSharp = idxMacchina.IndexOf('#'); - if (iSharp > 0) - { - // ora verifico SE ALTRA TAVOLA ha ODL... - string nomeTav = idxMacchina.Substring(iSharp); - string altraTav = nomeTav.Substring(0, nomeTav.Length - 1); - altraTav += nomeTav.EndsWith("1") ? "2" : "1"; - // sistemo nome - answ = idxMacchina.Replace(nomeTav, altraTav); - } - } - catch - { } - return answ; - } - } - /// - /// Restituisce il codice IdxMacchina dell'impianto PARENT (se multi) altrimenti la stessa macchina... - /// - protected string idxMaccParent - { - get - { - string answ = ""; - // se è multi controllo - if (isMulti) - { - // verifico se SIA una tavola (ha char "#") - int iSharp = idxMacchina.IndexOf('#'); - if (iSharp > 0) - { - // sistemo nome - answ = idxMacchina.Substring(0, iSharp); - } - } - return answ; - } - } + // di default rendo abilitato / disabilitato tutto in base al valore "isEnabled" + lbtShowSplitODL.Enabled = isEnabled; + lbtSplitODL.Enabled = isEnabled; + chkCloseOdl.Enabled = isEnabled; + fixWCtrStatus(lbtShowSplitODL); + fixWCtrStatus(lbtSplitODL); + fixWCtrStatus(chkCloseOdl); - /// - /// Verifica chiave chkCloseOdl in tab Config - /// - protected bool chkCloseOdlVal - { - get - { - return memLayer.ML.cdvb("chkCloseOdl"); - } - } - /// - /// Verifica chiave showChkCloseOdl in tab Config - /// - protected bool showChkCloseOdlVal - { - get - { - return memLayer.ML.cdvb("showChkCloseOdl"); - } - } - /// - /// Verifica chiave showOdlProvv in tab Config - /// - protected bool showOdlProvvVal - { - get - { - return memLayer.ML.cdvb("showOdlProvv"); - } - } - - /// - /// stringa UID univoca - /// - public string uid - { - get - { - return this.UniqueID.Replace("$", "_").Replace("-", "_"); - } - } - /// - /// idx macchina selezionata - /// - public string idxMacchina - { - get - { - string answ = ""; - try - { - answ = memLayer.ML.StringSessionObj(string.Format("idxMacchina-{0}", uid)); - } - catch - { } - return answ; - } - set - { - memLayer.ML.setSessionVal(string.Format("idxMacchina-{0}", uid), value); - hfIdxMacchina.Value = value; - cmp_newODL.idxMacchina = value; - } - } - /// - /// Determina se sia abilitato il controllo x editing - /// - public bool isEnabled - { - get - { - bool answ = false; - try - { - answ = memLayer.ML.BoolSessionObj(string.Format("isEnabled-{0}", uid)); - } - catch - { } - return answ; - } - set - { - memLayer.ML.setSessionVal(string.Format("isEnabled-{0}", uid), value); - } - } - /// - /// codice odl selezionato - /// - public int idxODLSel - { - get - { - int answ = 0; - try - { - answ = Convert.ToInt32(ddlODL.SelectedValue); - } - catch - { } - return answ; - } - } - /// - /// Cod articolo dell'ODL selezionato - /// - public string CodArtSel - { - get - { - string CodArticolo = ""; - try - { - CodArticolo = DataLayerObj.taODL.getByIdx(idxODLSel, false)[0].CodArticolo; - } - catch - { } - return CodArticolo; - } - } - /// - /// avvio pagina - /// - /// - /// - protected void Page_Load(object sender, EventArgs e) - { - if (!Page.IsPostBack) - { - // fix modo tempo... - if (memLayer.ML.cdvb("TAB_TC_MinSec")) - { - mod_tempoMSMC.modoTempo = timeMode.MS; - } - else - { - mod_tempoMSMC.modoTempo = timeMode.MC; - } - } - cmp_newODL.eh_newVal += Cmp_newODL_eh_newVal; - } - /// - /// Verifica (su tab config) se sia abilitata la gestione flusso RPO (Richieste - Promesse - ODL) - /// - protected bool enableRPO - { - get - { - return memLayer.ML.cdvb("enableRPO"); - } - } - - private void Cmp_newODL_eh_newVal(object sender, EventArgs e) - { - // creato nuovo ODL, faccio refresh ricaricando pagina! - Response.Redirect("~/ODL"); - } - - public void hideAll() - { - divDettOdl.Visible = false; - } - - public void checkAll() - { - lblOut.Text = ""; - checkBtnStatus(); - chkCloseOdl.Checked = chkCloseOdlVal; - chkCloseOdl.Visible = showChkCloseOdlVal; - divOdlProvv.Visible = showOdlProvvVal; - divOpRiattr.Visible = (showSplitOdlOnTavVal || showReopOdlTav); - lbtSplitOdlSuTav.Visible = showSplitOdlOnTavVal; - lbtReopOdlSuTav.Visible = showReopOdlTav; - lbtFixEndSetup.Visible = !maccInAttr && memLayer.ML.CRB("OptEnableFixSetup"); - } - /// - /// Sistema CSS x status enabled/disabled - /// - /// - protected void fixWCtrStatus(object lbtn) - { - // tolgo (eventuale) classe - try - { - ((WebControl)lbtn).CssClass = ((WebControl)lbtn).CssClass.Replace("disabled", ""); - // se richiesto metto disabled... - if (!((WebControl)lbtn).Enabled) - { - ((WebControl)lbtn).CssClass += " disabled"; - } - } - catch - { } - } - - /// - /// controlla stato bottoni abilitato - /// - private void checkBtnStatus() - { - // di default rendo abilitato / disabilitato tutto in base al valore "isEnabled" - lbtShowSplitODL.Enabled = isEnabled; - lbtSplitODL.Enabled = isEnabled; - chkCloseOdl.Enabled = isEnabled; - fixWCtrStatus(lbtShowSplitODL); - fixWCtrStatus(lbtSplitODL); - fixWCtrStatus(chkCloseOdl); - - // condizioni booleane - bool inAttr = false; - bool currHasOdl = false; - // controllo se la macchina è in attrezzaggio... - DS_applicazione.StatoMacchineRow rigaStato = null; - try - { - // se è multi controllo parent... - if (isMulti) - { - rigaStato = selData.mng.rigaStato(idxMaccParent); - inAttr = (rigaStato.IdxStato == 2 && tavHasOdl); - } - else - { - rigaStato = selData.mng.rigaStato(idxMacchina); - inAttr = (rigaStato.IdxStato == 2); - } - } - catch (Exception exc) - { - logger.lg.scriviLog(string.Format("Eccezione in recupero dati rigaStato! {0}{1}", Environment.NewLine, exc), tipoLog.EXCEPTION); - } - try - { - currHasOdl = DataLayerObj.taODL.getByMacchina(idxMacchina)[0].IdxODL != 0; - } - catch (Exception exc) - { - logger.lg.scriviLog(string.Format("Eccezione in recupero dati currHasOdl! {0}{1}", Environment.NewLine, exc), tipoLog.EXCEPTION); - } - // deve controllare abbia ODL o PROMESSE odl... - bool hasNewOdl = DataLayerObj.taSelOdlFree.getUnused(idxMacchina, chkTutti.Checked).Rows.Count > 1; - // sistemo buttons! - lbtStartAttr.Enabled = (isEnabled && (!inAttr && hasNewOdl)); - lbtStartProd.Enabled = (isEnabled && inAttr); - lbtEndProd.Enabled = (isEnabled && (!inAttr && currHasOdl)); - ddlODL.Enabled = (isEnabled && (!inAttr && hasNewOdl)); - odsODL.DataBind(); - // sistemo anche come css.. - fixWCtrStatus(lbtStartAttr); - fixWCtrStatus(lbtStartProd); - fixWCtrStatus(lbtEndProd); - fixWCtrStatus(ddlODL); - // sistemo show tempo/note attrezzaggio.. - if (inAttr) - { - showNoteTC(true); - int idxOdl = 0; - try - { - idxOdl = DataLayerObj.taODL.getByMacchina(idxMacchina)[0].IdxODL; - updateTempoTc(idxOdl, inAttr); - updateNoteTC(idxOdl); - } - catch (Exception exc) - { - logger.lg.scriviLog(string.Format("Eccezione in recupero dati ODL! {0}{1}", Environment.NewLine, exc), tipoLog.EXCEPTION); - } - } - - // verifico se l'articolo corrente sia in revisione x mostrare conferma modifica revisione... - if (CodArtSel != "") - { - bool showWarn = false; - try - { - showWarn = DataLayerObj.taAnagArt.getByCod(CodArtSel)[0].FlagIsNew; - } - catch (Exception exc) - { - logger.lg.scriviLog(string.Format("Eccezione in recupero dati showWarn! {0}{1}", Environment.NewLine, exc), tipoLog.EXCEPTION); - } - divWarningArt.Visible = showWarn; - } - } - /// - /// processa evento richiesto - /// - /// - /// - /// - /// - private void processaEvento(string idxMaccCurr, int idxEvento, string userMsg, int idxODL) - { - inputComandoMapo inCmd; - inputComandoMapo inCmd2; - DS_applicazione.StatoMacchineRow rigaStato = selData.mng.rigaStato(idxMaccCurr); - // ricavo codice articolo... - string CodArticolo = DataLayerObj.taODL.getByIdx(idxODL, false)[0].CodArticolo; - // processo evento... - inCmd = DataLayerObj.scriviRigaEventoBarcode(idxMaccCurr, idxEvento, CodArticolo, "", DataLayerObj.MatrOpr, rigaStato.pallet); - // se la macchina è MULTI (cod#tavola) e sonoa INIZIO/FINE attrezzaggio (idxEv <=2) oppure FINE PROD processo ANCHE per la macchina madre... - if (idxMaccCurr.IndexOf('#') > 0 && (idxEvento <= 2 || idxEvento == 7)) - { - inCmd2 = DataLayerObj.scriviRigaEventoBarcode(idxMaccParent, idxEvento, CodArticolo, "", DataLayerObj.MatrOpr, rigaStato.pallet); - } - // chiamo refresh MSE - DataLayerObj.taMSE.forceRecalc(0, idxMaccCurr); - // invalido la cache di selData - selData.mng.invalidateCache(); - lblOut.Text = userMsg; - // loggo USR MSG - logger.lg.scriviLog(userMsg, tipoLog.INFO); - checkBtnStatus(); - } - /// - /// valore decimal del TC richiesto... - /// - protected decimal TCRichAttr - { - get - { - decimal answ = 0; - try - { - answ = mod_tempoMSMC.tempoMC; - } - catch - { } - return answ; - } - set - { - mod_tempoMSMC.tempoMC = value; - } - } - /// - /// valore INT di num Pz per Pallet... - /// - protected int PzPallet - { - get - { - int answ = 0; - try - { - answ = cmp_selPzPallet.pzPallet; - } - catch - { } - return answ; - } - set - { - cmp_selPzPallet.pzPallet = value; - } - } - /// - /// valore decimal del TC ASSEGNATO... - /// - protected decimal TCAssegnato(int idxODL) - { - decimal answ = 0; - try - { - if (enableRPO) - { - // leggo info da promessa... - var rigaProm = DataLayerObj.taPODL.getByKey(idxODL)[0]; - answ = rigaProm.TCAssegnato; - } - else - { - // leggo idxOdl da ultimo odl attivo x macchina - DS_ProdTempi.ODLRow rigaOdl = DataLayerObj.taODL.getByIdx(idxODL, false)[0]; - answ = rigaOdl.TCAssegnato; - } - } - catch - { } - return answ; - } - /// - /// dichiara inizio attrezzaggio ODL indicato.. - /// - /// - /// - protected void lbtStartAttr_Click(object sender, EventArgs e) - { - /*************************************************** - * * DA VALUTARE (x macchine tipo linea con + impianti... es valvital) SE - * - creare una gestione ALTERNATIVA sul server che preveda impianto LEADER e impianti follower (RIGIDAMENTE CONFIGURATI) - * - ogni volta che si fa setup LEADER --> si ripete su impianti FOLLOWER (eventi!!!) - * - viene fatto reset contapezzi sui follower (+ altre operazioni opzionali, ES imposstazione nome commessa, quantità, articolo...) - * - viene fatto reset + nuovo ODL (con stessi articoli e quantità) su follower, SENZA avere gestione x ODL di un codice esterno (quindi registra TUTTO ma NON RITORNERA' dati on avendo link verso esterno) - * - serve NUOVA TABELLA delle macchine LEADER | FOLLOWER (1:n) e gestione da MP/IO - * - ***************************************************/ - - bool inAttr = false; - // se è multi mi chiedo se sia DAVVERO in attrezzaggio... - if (isMulti) - { - try - { - // controllo se NON SONO già in attrezzaggio... - DS_applicazione.StatoMacchineRow rigaStato = selData.mng.rigaStato(idxMaccParent); - inAttr = (rigaStato.IdxStato == 2); - } - catch - { } - } - // proseguo - int idxODL_curr = 0; - confermaProdOdl(false); - if (idxODLSel > 0) - { - // se vedesse TCRich a zero lo reimposta a quello assegnato... - if (TCRichAttr == 0) - { - TCRichAttr = TCAssegnato(idxODLSel); - } - int idxODL = 0; - if (memLayer.ML.CRB("enableSplitODL")) - { - // splitto VECCHIO ODL (se è rimasto qualcosa da produrre e se ce ne è rimasto uno.......) - try - { - idxODL = DataLayerObj.taODL.getByMacchina(idxMacchina)[0].IdxODL; - DataLayerObj.taODL.splitODL(idxODL, DataLayerObj.MatrOpr, idxMacchina, TCAssegnato(idxODL), PzPallet, string.Format("inizio attrezzaggio, Sospensione ODL {0}, generato residuo con pari TCiclo: {1}", idxODL, TCAssegnato(idxODL)), false); - // se è multi processo ANCHE x altra tavola... - if (isMulti) - { - int _idxOdl = DataLayerObj.taODL.getByMacchina(idxMaccAltraTav)[0].IdxODL; - DataLayerObj.taODL.splitODL(_idxOdl, DataLayerObj.MatrOpr, idxMaccAltraTav, TCAssegnato(_idxOdl), PzPallet, string.Format("inizio attrezzaggio, Sospensione ODL {0}, generato residuo con pari TCiclo: {1}", _idxOdl, TCAssegnato(_idxOdl)), false); - } - } - catch - { } - } - // 2018.07.24 verifico se devo lavorare come ODL classico o come RPO (Richiesta / Promessa / ODL) - if (enableRPO) - { - // creo nuovo ODL da promessa ed associo - DataLayerObj.taODL.inizioSetupPromessa(idxODLSel, DataLayerObj.MatrOpr, idxMacchina, TCRichAttr, PzPallet, txtNote.Text); - // salvo ODL attrezzato - idxODL_curr = DataLayerObj.taODL.getByMacchina(idxMacchina)[0].IdxODL; - } - // ODL classico - else - { - // avvio NUOVO ODL - DataLayerObj.taODL.inizioSetup(idxODLSel, DataLayerObj.MatrOpr, idxMacchina, TCRichAttr, PzPallet, txtNote.Text); - // salvo ODL Current - idxODL_curr = idxODLSel; - } - // process evento - int idxEvento = 2; // !!!HARD CODED - string evText = "Registrato inizio attrezzaggio per ODL {0}"; - StringBuilder sb = new StringBuilder(); - sb.AppendLine(String.Format(evText, idxODL_curr)); - processaEvento(idxMacchina, idxEvento, sb.ToString(), idxODL_curr); - // indico INIZIO SETUP su REDIS come EXE della macchina... - string ts = string.Format("{0:yyMMdd}T{0:HHmmss.fff}Z", DateTime.Now); - DataLayerObj.addTask4Machine(idxMacchina, taskType.startSetup, $"TS:{ts}|MATR:{DataLayerObj.MatrOpr}|ODL:{idxODL_curr}"); - // se è multi CHIUDO ODL x altra tavola... - if (isMulti) - { - // se NON sono in attrezzaggio... - if (!inAttr) - { - int idxOdlAltra = 0; + // condizioni booleane + bool inAttr = false; + bool currHasOdl = false; + // controllo se la macchina è in attrezzaggio... + DS_applicazione.StatoMacchineRow rigaStato = null; try { - var tabOdl = DataLayerObj.taODL.getByMacchina(idxMaccAltraTav); - if (tabOdl.Rows.Count > 0) - { - idxOdlAltra = DataLayerObj.taODL.getByMacchina(idxMaccAltraTav)[0].IdxODL; - } + // se è multi controllo parent... + if (isMulti) + { + rigaStato = selData.mng.rigaStato(idxMaccParent); + inAttr = (rigaStato.IdxStato == 2 && tavHasOdl); + } + else + { + rigaStato = selData.mng.rigaStato(idxMacchinaFix); + inAttr = (rigaStato.IdxStato == 2); + } } catch (Exception exc) { - logger.lg.scriviLog("Durante recupero idxOdlAltra " + exc.ToString(), tipoLog.EXCEPTION); + logger.lg.scriviLog(string.Format("Eccezione in recupero dati rigaStato! {0}{1}", Environment.NewLine, exc), tipoLog.EXCEPTION); } - // procedo se ho ODL + try + { + currHasOdl = DataLayerObj.taODL.getByMacchina(idxMacchinaFix)[0].IdxODL != 0; + } + catch (Exception exc) + { + logger.lg.scriviLog(string.Format("Eccezione in recupero dati currHasOdl! {0}{1}", Environment.NewLine, exc), tipoLog.EXCEPTION); + } + // deve controllare abbia ODL o PROMESSE odl... + bool hasNewOdl = DataLayerObj.taSelOdlFree.getUnused(idxMacchinaFix, chkTutti.Checked).Rows.Count > 1; + // sistemo buttons! + lbtStartAttr.Enabled = (isEnabled && (!inAttr && hasNewOdl)); + lbtStartProd.Enabled = (isEnabled && inAttr); + lbtEndProd.Enabled = (isEnabled && (!inAttr && currHasOdl)); + ddlODL.Enabled = (isEnabled && (!inAttr && hasNewOdl)); + odsODL.DataBind(); + // sistemo anche come css.. + fixWCtrStatus(lbtStartAttr); + fixWCtrStatus(lbtStartProd); + fixWCtrStatus(lbtEndProd); + fixWCtrStatus(ddlODL); + // sistemo show tempo/note attrezzaggio.. + if (inAttr) + { + showNoteTC(true); + int idxOdl = 0; + try + { + idxOdl = DataLayerObj.taODL.getByMacchina(idxMacchinaFix)[0].IdxODL; + updateTempoTc(idxOdl, inAttr); + updateNoteTC(idxOdl); + } + catch (Exception exc) + { + logger.lg.scriviLog(string.Format("Eccezione in recupero dati ODL! {0}{1}", Environment.NewLine, exc), tipoLog.EXCEPTION); + } + } + + // verifico se l'articolo corrente sia in revisione x mostrare conferma modifica revisione... + if (CodArtSel != "") + { + bool showWarn = false; + try + { + showWarn = DataLayerObj.taAnagArt.getByCod(CodArtSel)[0].FlagIsNew; + } + catch (Exception exc) + { + logger.lg.scriviLog(string.Format("Eccezione in recupero dati showWarn! {0}{1}", Environment.NewLine, exc), tipoLog.EXCEPTION); + } + divWarningArt.Visible = showWarn; + } + } + /// + /// processa evento richiesto + /// + /// + /// + /// + /// + private void processaEvento(string idxMaccCurr, int idxEvento, string userMsg, int idxODL) + { + inputComandoMapo inCmd; + inputComandoMapo inCmd2; + DS_applicazione.StatoMacchineRow rigaStato = selData.mng.rigaStato(idxMaccCurr); + // ricavo codice articolo... + string CodArticolo = DataLayerObj.taODL.getByIdx(idxODL, false)[0].CodArticolo; + // processo evento... + inCmd = DataLayerObj.scriviRigaEventoBarcode(idxMaccCurr, idxEvento, CodArticolo, "", DataLayerObj.MatrOpr, rigaStato.pallet); + // se la macchina è MULTI (cod#tavola) e sonoa INIZIO/FINE attrezzaggio (idxEv <=2) oppure FINE PROD processo ANCHE per la macchina madre... + if (idxMaccCurr.IndexOf('#') > 0 && (idxEvento <= 2 || idxEvento == 7)) + { + inCmd2 = DataLayerObj.scriviRigaEventoBarcode(idxMaccParent, idxEvento, CodArticolo, "", DataLayerObj.MatrOpr, rigaStato.pallet); + } + // chiamo refresh MSE + DataLayerObj.taMSE.forceRecalc(0, idxMaccCurr); + // invalido la cache di selData + selData.mng.invalidateCache(); + lblOut.Text = userMsg; + // loggo USR MSG + logger.lg.scriviLog(userMsg, tipoLog.INFO); + checkBtnStatus(); + } + /// + /// valore decimal del TC richiesto... + /// + protected decimal TCRichAttr + { + get + { + decimal answ = 0; + try + { + answ = mod_tempoMSMC.tempoMC; + } + catch + { } + return answ; + } + set + { + mod_tempoMSMC.tempoMC = value; + } + } + /// + /// valore INT di num Pz per Pallet... + /// + protected int PzPallet + { + get + { + int answ = 0; + try + { + answ = cmp_selPzPallet.pzPallet; + } + catch + { } + return answ; + } + set + { + cmp_selPzPallet.pzPallet = value; + } + } + /// + /// valore decimal del TC ASSEGNATO... + /// + protected decimal TCAssegnato(int idxODL) + { + decimal answ = 0; + try + { + if (enableRPO) + { + // leggo info da promessa... + var rigaProm = DataLayerObj.taPODL.getByKey(idxODL)[0]; + answ = rigaProm.TCAssegnato; + } + else + { + // leggo idxOdl da ultimo odl attivo x macchina + DS_ProdTempi.ODLRow rigaOdl = DataLayerObj.taODL.getByIdx(idxODL, false)[0]; + answ = rigaOdl.TCAssegnato; + } + } + catch + { } + return answ; + } + /// + /// dichiara inizio attrezzaggio ODL indicato.. + /// + /// + /// + protected void lbtStartAttr_Click(object sender, EventArgs e) + { + /*************************************************** + * * DA VALUTARE (x macchine tipo linea con + impianti... es valvital) SE + * - creare una gestione ALTERNATIVA sul server che preveda impianto LEADER e impianti follower (RIGIDAMENTE CONFIGURATI) + * - ogni volta che si fa setup LEADER --> si ripete su impianti FOLLOWER (eventi!!!) + * - viene fatto reset contapezzi sui follower (+ altre operazioni opzionali, ES imposstazione nome commessa, quantità, articolo...) + * - viene fatto reset + nuovo ODL (con stessi articoli e quantità) su follower, SENZA avere gestione x ODL di un codice esterno (quindi registra TUTTO ma NON RITORNERA' dati on avendo link verso esterno) + * - serve NUOVA TABELLA delle macchine LEADER | FOLLOWER (1:n) e gestione da MP/IO + * + ***************************************************/ + + bool inAttr = false; + // se è multi mi chiedo se sia DAVVERO in attrezzaggio... + if (isMulti) + { + try + { + // controllo se NON SONO già in attrezzaggio... + DS_applicazione.StatoMacchineRow rigaStato = selData.mng.rigaStato(idxMaccParent); + inAttr = (rigaStato.IdxStato == 2); + } + catch + { } + } + // proseguo + int idxODL_curr = 0; + confermaProdOdl(false); + if (idxODLSel > 0) + { + // se vedesse TCRich a zero lo reimposta a quello assegnato... + if (TCRichAttr == 0) + { + TCRichAttr = TCAssegnato(idxODLSel); + } + int idxODL = 0; + if (memLayer.ML.CRB("enableSplitODL")) + { + // splitto VECCHIO ODL (se è rimasto qualcosa da produrre e se ce ne è rimasto uno.......) + try + { + idxODL = DataLayerObj.taODL.getByMacchina(idxMacchinaFix)[0].IdxODL; + DataLayerObj.taODL.splitODL(idxODL, DataLayerObj.MatrOpr, idxMacchinaFix, TCAssegnato(idxODL), PzPallet, string.Format("inizio attrezzaggio, Sospensione ODL {0}, generato residuo con pari TCiclo: {1}", idxODL, TCAssegnato(idxODL)), false); + // se è multi processo ANCHE x altra tavola... + if (isMulti) + { + int _idxOdl = DataLayerObj.taODL.getByMacchina(idxMaccAltraTav)[0].IdxODL; + DataLayerObj.taODL.splitODL(_idxOdl, DataLayerObj.MatrOpr, idxMaccAltraTav, TCAssegnato(_idxOdl), PzPallet, string.Format("inizio attrezzaggio, Sospensione ODL {0}, generato residuo con pari TCiclo: {1}", _idxOdl, TCAssegnato(_idxOdl)), false); + } + } + catch + { } + } + // 2018.07.24 verifico se devo lavorare come ODL classico o come RPO (Richiesta / Promessa / ODL) + if (enableRPO) + { + // creo nuovo ODL da promessa ed associo + DataLayerObj.taODL.inizioSetupPromessa(idxODLSel, DataLayerObj.MatrOpr, idxMacchinaFix, TCRichAttr, PzPallet, txtNote.Text); + // salvo ODL attrezzato + idxODL_curr = DataLayerObj.taODL.getByMacchina(idxMacchinaFix)[0].IdxODL; + } + // ODL classico + else + { + // avvio NUOVO ODL + DataLayerObj.taODL.inizioSetup(idxODLSel, DataLayerObj.MatrOpr, idxMacchinaFix, TCRichAttr, PzPallet, txtNote.Text); + // salvo ODL Current + idxODL_curr = idxODLSel; + } + // process evento + int idxEvento = 2; // !!!HARD CODED + string evText = "Registrato inizio attrezzaggio per ODL {0}"; + StringBuilder sb = new StringBuilder(); + sb.AppendLine(String.Format(evText, idxODL_curr)); + processaEvento(idxMacchinaFix, idxEvento, sb.ToString(), idxODL_curr); + // indico INIZIO SETUP su REDIS come EXE della macchina... + string ts = string.Format("{0:yyMMdd}T{0:HHmmss.fff}Z", DateTime.Now); + DataLayerObj.addTask4Machine(idxMacchinaFix, taskType.startSetup, $"TS:{ts}|MATR:{DataLayerObj.MatrOpr}|ODL:{idxODL_curr}"); + // se è multi CHIUDO ODL x altra tavola... + if (isMulti) + { + // se NON sono in attrezzaggio... + if (!inAttr) + { + int idxOdlAltra = 0; + try + { + var tabOdl = DataLayerObj.taODL.getByMacchina(idxMaccAltraTav); + if (tabOdl.Rows.Count > 0) + { + idxOdlAltra = DataLayerObj.taODL.getByMacchina(idxMaccAltraTav)[0].IdxODL; + } + } + catch (Exception exc) + { + logger.lg.scriviLog("Durante recupero idxOdlAltra " + exc.ToString(), tipoLog.EXCEPTION); + } + // procedo se ho ODL + if (idxOdlAltra > 0) + { + sb.AppendLine("---"); + DataLayerObj.taODL.fineProd(idxOdlAltra, idxMaccAltraTav); + evText = "Registrato inizio attrezzaggio per ODL {0} (setup seconda tavola)"; + sb.AppendLine(String.Format(evText, idxOdlAltra)); + processaEvento(idxMaccAltraTav, idxEvento, String.Format(evText, idxOdlAltra), idxOdlAltra); + } + lblOut.Text = sb.ToString().Replace("---", "
"); + } + // update buttons... + checkAll(); + } + // resetto contapezzi redis... + DataLayerObj.saveCounter(idxMacchinaFix, "0"); + // imposto ODL su redis... + DataLayerObj.saveCurrODL(idxMacchinaFix, idxODL_curr.ToString()); + } + else + { + lblOut.Text = "Selezionare un ORDINE valido!"; + } + // sollevo evento! + if (eh_reqUpdate != null) + { + eh_reqUpdate(this, new EventArgs()); + } + } + /// + /// inizio prod + /// + /// + /// + protected void lbtStartProd_Click(object sender, EventArgs e) + { + confermaProdOdl(true); + // se vedesse TCRich a zero lo reimposta a quello assegnato... + if (TCRichAttr == 0) + { + TCRichAttr = TCAssegnato(idxODLSel); + } + // leggo idxOdl da ultimo odl attivo x macchina + int idxODL = DataLayerObj.taODL.getByMacchina(idxMacchinaFix)[0].IdxODL; + int idxEvento = 1; // !!!HARD CODED + // aggiorno (se necessario) note e tempo setup + DataLayerObj.taODL.updateSetup(idxODL, DataLayerObj.MatrOpr, TCRichAttr, PzPallet, txtNote.Text); + // controllo se TC Assegnato != TCRichiesto allora invio email x verifiche... + DS_ProdTempi.ODLRow rigaOdl = DataLayerObj.taODL.getByIdx(idxODL, false)[0]; + if (rigaOdl.TCAssegnato != TCRichAttr) + { + // invio email! + DataLayerObj.sendWarnTcChangeReq(memLayer.ML.CRS("_adminEmail")); + } + // processo chiusura setup + string evText = "Registrata inizio produzione per ODL {0}"; + StringBuilder sb = new StringBuilder(); + sb.AppendLine(String.Format(evText, idxODL)); + processaEvento(idxMacchinaFix, idxEvento, sb.ToString(), idxODL); + // indico INIZIO SETUP su REDIS come EXE della macchina... + string ts = string.Format("{0:yyMMdd}T{0:HHmmss.fff}Z", DateTime.Now); + //DataLayerObj.addTask4Machine(idxMacchina, "stopSetup", $"TS:{ts}|MATR:{DataLayerObj.MatrOpr}|ODL:{idxODL}"); + DataLayerObj.addTask4Machine(idxMacchinaFix, taskType.stopSetup, $"TS:{ts}|MATR:{DataLayerObj.MatrOpr}|ODL:{idxODL}"); + // se è multi processo chiusura setup x altra tavola... + if (isMulti) + { + sb.AppendLine("---"); + int idxOdlAltra = DataLayerObj.taODL.getByMacchina(idxMaccAltraTav)[0].IdxODL; + sb.AppendLine(String.Format(evText, idxOdlAltra)); + processaEvento(idxMaccAltraTav, idxEvento, String.Format(evText, idxOdlAltra), idxOdlAltra); + } + // riporto stringa + lblOut.Text = sb.ToString().Replace("---", "
"); + // nascondo note! + showNoteTC(false); + // update buttons... + checkAll(); + // sollevo evento! + if (eh_reqUpdate != null) + { + eh_reqUpdate(this, new EventArgs()); + } + } + /// + /// fine prod + /// + /// + /// + protected void lbtEndProd_Click(object sender, EventArgs e) + { + // leggo idxOdl da ultimo odl attivo x macchina + int idxODL = DataLayerObj.taODL.getByMacchina(idxMacchinaFix)[0].IdxODL; + int idxEvento = 7; // !!!HARD CODED + + // confermo prod vecchio ODL + confermaProdOdl(false); + + // se chk flaggato ovvero richiesta di chiudere ODL procedo come prima (chiudendo ODL senza averne altri...) + if (chkCloseOdl.Checked) + { + // aggiungo try/catch x capire se sia qui che si "impasta" in chiusura ODL + try + { + // processo x macchina selezionata + DataLayerObj.taODL.fineProd(idxODL, idxMacchinaFix); + string evText = "Registrata fine produzione per ODL {0}"; + StringBuilder sb = new StringBuilder(); + sb.AppendLine(String.Format(evText, idxODL)); + processaEvento(idxMacchinaFix, idxEvento, sb.ToString(), idxODL); + // se è multi processo ANCHE x altra tavola... + if (isMulti) + { + sb.AppendLine("---"); + int idxOdlAltra = 0; + string _idxOdl = idxOdlAltraMacc; + int.TryParse(_idxOdl, out idxOdlAltra); + DataLayerObj.taODL.fineProd(idxOdlAltra, idxMaccAltraTav); + sb.AppendLine(String.Format(evText, idxOdlAltra)); + processaEvento(idxMaccAltraTav, idxEvento, String.Format(evText, idxOdlAltra), idxOdlAltra); + } + // riporto stringa + lblOut.Text = sb.ToString().Replace("---", "
"); + } + catch (Exception exc) + { + logger.lg.scriviLog(string.Format("Eccezione in operazione chiusura ODL! {0}{1}", Environment.NewLine, exc), tipoLog.EXCEPTION); + Response.Redirect("~/DettaglioMacchina.aspx"); + } + } + // altrimenti split ODL x completare IN FUTURO la produzione... + else + { + try + { + // effettuo split su nuovo ODL + DataLayerObj.taODL.splitODL(idxODL, DataLayerObj.MatrOpr, idxMacchinaFix, TCAssegnato(idxODL), PzPallet, string.Format("Fine Produzione, Sospensione ODL {0}, generato residuo con pari TCiclo: {1}", idxODL, TCAssegnato(idxODL)), false); + // processo chiusura setup + processaEvento(idxMacchinaFix, idxEvento, String.Format("Registrata fine produzione per ODL {0}, nuovo ODL per quantità residua", idxODL), idxODL); + + // se è multi processo ANCHE x altra tavola... + if (isMulti) + { + int idxOdlAltra = 0; + string _idxOdl = idxOdlAltraMacc; + int.TryParse(_idxOdl, out idxOdlAltra); + // effettuo split su nuovo ODL + DataLayerObj.taODL.splitODL(idxOdlAltra, DataLayerObj.MatrOpr, idxMaccAltraTav, TCAssegnato(idxOdlAltra), PzPallet, string.Format("Fine Produzione, Sospensione ODL {0}, generato residuo con pari TCiclo: {1}", idxOdlAltra, TCAssegnato(idxOdlAltra)), false); + // processo chiusura setup + processaEvento(idxMaccAltraTav, idxEvento, String.Format("Registrata fine produzione per ODL {0}, nuovo ODL per quantità residua", idxOdlAltra), idxOdlAltra); + } + // sistemo buttons! + bool splitOdl = false; + fixSplitBtn(splitOdl); + } + catch (Exception exc) + { + logger.lg.scriviLog(string.Format("Eccezione in operazione Chiusura + Split ODL su nuovo! {0}{1}", Environment.NewLine, exc), tipoLog.EXCEPTION); + Response.Redirect("~/DettaglioMacchina.aspx"); + } + } + // resetto ODL su redis... + DataLayerObj.emptyCurrODL(idxMacchinaFix); + // aggiorno visualizzazione + checkAll(); + // sollevo evento! + if (eh_reqUpdate != null) + { + eh_reqUpdate(this, new EventArgs()); + } + } + /// + /// verifica se sia necessario confermare la prod dell'ODL precedente prima di chiudere e lo fa in automatico... + /// + /// boolean, true = deve confermare 0 pezzi (es. in setup) + private void confermaProdOdl(bool confZero) + { + // 2016.11.17 NOTA: introdotti scarti, li confermiamo SEMPRE a zero se in setup, però da valutare SE a FINE ATTREZZAGGIO chiedere num pezzi e num scarti (saldo zero buoni) da inserire... + if (confZero) + { + // confermo produzione ZERO pezzi (in setup) + DataLayerObj.confermaProdMacchina(idxMacchinaFix, memLayer.ML.CRI("modoConfProd"), 0, 0, DateTime.Now); + } + else // se NON sono in setup verifico se ho pz da confermare + { + // recupero pz da confermare + DS_ProdTempi.stp_PzProd_getByMacchinaRow rigaProd = DataLayerObj.taPzProd2conf.GetData(idxMacchinaFix)[0]; + if (rigaProd.pezziNonConfermati > 0) + { + DataLayerObj.confermaProdMacchina(idxMacchinaFix, memLayer.ML.CRI("modoConfProd"), rigaProd.pezziNonConfermati, 0, DateTime.Now); + } + } + } + /// + /// mostra dati ed opzione x split ODL + /// + /// + /// + protected void lbtShowSplitODL_Click(object sender, EventArgs e) + { + bool splitOdl = true; + fixSplitBtn(splitOdl); + // recupero current idx + int currODL = DataLayerObj.taODL.getByMacchina(idxMacchinaFix)[0].IdxODL; + updateTempoTc(currODL, true); + updateNoteTC(currODL); + } + /// + /// sistema buttons split + /// + /// + private void fixSplitBtn(bool splitOdl) + { + lbtShowSplitODL.Visible = !splitOdl; + chkCloseOdl.Visible = !splitOdl; + lbtSplitODL.Visible = splitOdl; + showNoteTC(splitOdl); + ddlODL.Visible = !splitOdl; + chkTutti.Visible = !splitOdl; + lbtStartAttr.Visible = !splitOdl; + lbtStartProd.Visible = !splitOdl; + lbtEndProd.Visible = !splitOdl; + } + /// + /// split ODL con creazione nuovo ODL + /// + /// + /// + protected void lbtSplitODL_Click(object sender, EventArgs e) + { + // chiamo stored che genera nuovo ODL, mette note e tempo, chiude vecchi e assegna nuovo... + int currODL = DataLayerObj.taODL.getByMacchina(idxMacchinaFix)[0].IdxODL; + int idxEvento = 1; // !!!HARD CODED + // controllo se TC è valorizzato.. + if (TCRichAttr == 0) + { + mod_tempoMSMC.checkTC(); + } + + // confermo prod vecchio ODL + confermaProdOdl(false); + + // effettuo split su nuovo ODL + DataLayerObj.taODL.splitODL(currODL, DataLayerObj.MatrOpr, idxMacchinaFix, TCRichAttr, PzPallet, txtNote.Text, true); + + // resetto ODL su redis... + DataLayerObj.emptyCurrODL(idxMacchinaFix); + + // invio email! + DataLayerObj.sendWarnTcChangeReq(memLayer.ML.CRS("_adminEmail")); + // processo chiusura setup + processaEvento(idxMacchinaFix, idxEvento, String.Format("Registrato Riattrezzaggio ODL (old: {0})", currODL), currODL); + // sistemo buttons! + bool splitOdl = false; + fixSplitBtn(splitOdl); + + // sollevo evento! + if (eh_reqUpdate != null) + { + eh_reqUpdate(this, new EventArgs()); + } + } + /// + /// selezionato un ODL mostro note/tempo da validare + /// + /// + /// + protected void ddlODL_SelectedIndexChanged(object sender, EventArgs e) + { + checkDDL(); + } + + private void checkDDL() + { + if (ddlODL.SelectedIndex > 0) + { + showNoteTC(true); + updateTempoTc(idxODLSel, false); + updateNoteTC(idxODLSel); + } + else + { + showNoteTC(false); + } + } + + + /// + /// mostra/nasconde note + /// + private void showNoteTC(bool show) + { + // mostra/nasconde note da compilare + divTempo.Visible = show; + divNote.Visible = show; + divPzPallet.Visible = show; + lbtStartAttr.Visible = show; + cmp_dettODL.idxODLSel = idxODLSel; + divDettOdl.Visible = show && idxODLSel > 0; + // se abilitato da config su DB mostro selezione del numPzPallet... + cmp_selPzPallet.enableSet = memLayer.ML.CRB("enableTabSetPzPallet"); + + } + /// + /// aggiorna note ODL + /// + /// + private void updateNoteTC(int idxOdl) + { + string testo = ""; + if (idxOdl > 0) + { + try + { + testo = DataLayerObj.taODL.getByIdx(idxOdl, false)[0].Note; + } + catch + { } + } + txtNote.Text = testo; + } + + /// + /// update TC mostrato + /// + /// idx dell'ODL / PODL + /// + private void updateTempoTc(int idxOdlPodl, bool inAttr) + { + // riporta TC + decimal _TCRichAttr = 0; + int pzPallet = 1; + if (enableRPO && !inAttr) + { + var rigaProm = DataLayerObj.taPODL.getByKey(idxOdlPodl)[0]; + _TCRichAttr = rigaProm.TCAssegnato; + pzPallet = rigaProm.PzPallet; + } + else + { + DS_ProdTempi.ODLRow rigaOdl = DataLayerObj.taODL.getByIdx(idxOdlPodl, false)[0]; + if (rigaOdl.TCRichAttr > 0) + { + _TCRichAttr = rigaOdl.TCRichAttr; + } + else + { + _TCRichAttr = rigaOdl.TCAssegnato; + } + pzPallet = rigaOdl.PzPallet; + } + // aggiorno dati! + TCRichAttr = _TCRichAttr; + PzPallet = pzPallet; + } + + protected void lbtConfNewRevProd_Click(object sender, EventArgs e) + { + // chiamo stored x allineare revProd a revUT + string CodArticolo = DataLayerObj.taODL.getByIdx(idxODLSel, false)[0].CodArticolo; + DataLayerObj.taAnagArt.setNewRev(CodArticolo); + checkBtnStatus(); + } + /// + /// toggle visualizzazione creazioen ODL provvisorio + /// + /// + /// + protected void lbtShowCreaOdlProvv_Click(object sender, EventArgs e) + { + cmp_newODL.Visible = !cmp_newODL.Visible; + } + /// + /// Testo x button creazione nuovo ODL + /// + public string lblCreaOdl + { + get + { + string answ = "CREAZIONE ODL PROVVISORIO"; + if (cmp_newODL.Visible) + { + answ = "NASCONDI creazione ODL provvisorio"; + } + return answ; + } + } + + protected void chkTutti_CheckedChanged(object sender, EventArgs e) + { + checkBtnStatus(); + } + /// + /// Effettua split ODL da ALTRA tavola su tav corrente + /// + /// + /// + protected void lbtSplitOdlSuTav_Click(object sender, EventArgs e) + { + // chiamo stored x splittare ODL... + int idxOdlAltra = 0; + int.TryParse(idxOdlAltraMacc, out idxOdlAltra); + // se ho trovato... if (idxOdlAltra > 0) { - sb.AppendLine("---"); - DataLayerObj.taODL.fineProd(idxOdlAltra, idxMaccAltraTav); - evText = "Registrato inizio attrezzaggio per ODL {0} (setup seconda tavola)"; - sb.AppendLine(String.Format(evText, idxOdlAltra)); - processaEvento(idxMaccAltraTav, idxEvento, String.Format(evText, idxOdlAltra), idxOdlAltra); + DataLayerObj.taODL.dividiDaAltraTav(idxOdlAltra, DataLayerObj.MatrOpr, idxMacchinaFix); + // messaggio utente + string evText = "Registrata inizio attrezzaggio da split ODL {0} (come da altra tavola)"; + StringBuilder sb = new StringBuilder(); + sb.AppendLine(String.Format(evText, idxOdlAltra)); + lblOut.Text = sb.ToString(); + } + // update button x setup da altra tavola... + checkAll(); + // sollevo evento! + if (eh_reqUpdate != null) + { + eh_reqUpdate(this, new EventArgs()); } - lblOut.Text = sb.ToString().Replace("---", "
"); - } - // update buttons... - checkAll(); } - // resetto contapezzi redis... - DataLayerObj.saveCounter(idxMacchina, "0"); - // imposto ODL su redis... - DataLayerObj.saveCurrODL(idxMacchina, idxODL_curr.ToString()); - } - else - { - lblOut.Text = "Selezionare un ORDINE valido!"; - } - // sollevo evento! - if (eh_reqUpdate != null) - { - eh_reqUpdate(this, new EventArgs()); - } - } - /// - /// inizio prod - /// - /// - /// - protected void lbtStartProd_Click(object sender, EventArgs e) - { - confermaProdOdl(true); - // se vedesse TCRich a zero lo reimposta a quello assegnato... - if (TCRichAttr == 0) - { - TCRichAttr = TCAssegnato(idxODLSel); - } - // leggo idxOdl da ultimo odl attivo x macchina - int idxODL = DataLayerObj.taODL.getByMacchina(idxMacchina)[0].IdxODL; - int idxEvento = 1; // !!!HARD CODED - // aggiorno (se necessario) note e tempo setup - DataLayerObj.taODL.updateSetup(idxODL, DataLayerObj.MatrOpr, TCRichAttr, PzPallet, txtNote.Text); - // controllo se TC Assegnato != TCRichiesto allora invio email x verifiche... - DS_ProdTempi.ODLRow rigaOdl = DataLayerObj.taODL.getByIdx(idxODL, false)[0]; - if (rigaOdl.TCAssegnato != TCRichAttr) - { - // invio email! - DataLayerObj.sendWarnTcChangeReq(memLayer.ML.CRS("_adminEmail")); - } - // processo chiusura setup - string evText = "Registrata inizio produzione per ODL {0}"; - StringBuilder sb = new StringBuilder(); - sb.AppendLine(String.Format(evText, idxODL)); - processaEvento(idxMacchina, idxEvento, sb.ToString(), idxODL); - // indico INIZIO SETUP su REDIS come EXE della macchina... - string ts = string.Format("{0:yyMMdd}T{0:HHmmss.fff}Z", DateTime.Now); - //DataLayerObj.addTask4Machine(idxMacchina, "stopSetup", $"TS:{ts}|MATR:{DataLayerObj.MatrOpr}|ODL:{idxODL}"); - DataLayerObj.addTask4Machine(idxMacchina, taskType.stopSetup, $"TS:{ts}|MATR:{DataLayerObj.MatrOpr}|ODL:{idxODL}"); - // se è multi processo chiusura setup x altra tavola... - if (isMulti) - { - sb.AppendLine("---"); - int idxOdlAltra = DataLayerObj.taODL.getByMacchina(idxMaccAltraTav)[0].IdxODL; - sb.AppendLine(String.Format(evText, idxOdlAltra)); - processaEvento(idxMaccAltraTav, idxEvento, String.Format(evText, idxOdlAltra), idxOdlAltra); - } - // riporto stringa - lblOut.Text = sb.ToString().Replace("---", "
"); - // nascondo note! - showNoteTC(false); - // update buttons... - checkAll(); - // sollevo evento! - if (eh_reqUpdate != null) - { - eh_reqUpdate(this, new EventArgs()); - } - } - /// - /// fine prod - /// - /// - /// - protected void lbtEndProd_Click(object sender, EventArgs e) - { - // leggo idxOdl da ultimo odl attivo x macchina - int idxODL = DataLayerObj.taODL.getByMacchina(idxMacchina)[0].IdxODL; - int idxEvento = 7; // !!!HARD CODED - - // confermo prod vecchio ODL - confermaProdOdl(false); - - // se chk flaggato ovvero richiesta di chiudere ODL procedo come prima (chiudendo ODL senza averne altri...) - if (chkCloseOdl.Checked) - { - // aggiungo try/catch x capire se sia qui che si "impasta" in chiusura ODL - try + /// + /// Effettua ripresa ODL su tavola + /// + /// + /// + protected void lbtReopOdlSuTav_Click(object sender, EventArgs e) { - // processo x macchina selezionata - DataLayerObj.taODL.fineProd(idxODL, idxMacchina); - string evText = "Registrata fine produzione per ODL {0}"; - StringBuilder sb = new StringBuilder(); - sb.AppendLine(String.Format(evText, idxODL)); - processaEvento(idxMacchina, idxEvento, sb.ToString(), idxODL); - // se è multi processo ANCHE x altra tavola... - if (isMulti) - { - sb.AppendLine("---"); - int idxOdlAltra = 0; - string _idxOdl = idxOdlAltraMacc; - int.TryParse(_idxOdl, out idxOdlAltra); - DataLayerObj.taODL.fineProd(idxOdlAltra, idxMaccAltraTav); - sb.AppendLine(String.Format(evText, idxOdlAltra)); - processaEvento(idxMaccAltraTav, idxEvento, String.Format(evText, idxOdlAltra), idxOdlAltra); - } - // riporto stringa - lblOut.Text = sb.ToString().Replace("---", "
"); + // chiamo stored x riprendere ODL (toglie data chiusura...) + DS_ProdTempi.ODLDataTable tabRes = DataLayerObj.taODL.reopenGetLast(idxMacchinaFix); + if (tabRes.Rows.Count > 0) + { + var riga = tabRes[0]; + // messaggio utente + string evText = "Registrato riapertura ODL {0} | art {1}"; + StringBuilder sb = new StringBuilder(); + sb.AppendLine(String.Format(evText, riga.IdxODL, riga.CodArticolo)); + lblOut.Text = sb.ToString(); + } + // update buttons... + checkAll(); + // sollevo evento! + if (eh_reqUpdate != null) + { + eh_reqUpdate(this, new EventArgs()); + } } - catch (Exception exc) + + protected void txtSearchODL_TextChanged(object sender, EventArgs e) { - logger.lg.scriviLog(string.Format("Eccezione in operazione chiusura ODL! {0}{1}", Environment.NewLine, exc), tipoLog.EXCEPTION); - Response.Redirect("~/DettaglioMacchina.aspx"); + odsODL.DataBind(); } - } - // altrimenti split ODL x completare IN FUTURO la produzione... - else - { - try + + protected void lbtFixEndSetup_Click(object sender, EventArgs e) { - // effettuo split su nuovo ODL - DataLayerObj.taODL.splitODL(idxODL, DataLayerObj.MatrOpr, idxMacchina, TCAssegnato(idxODL), PzPallet, string.Format("Fine Produzione, Sospensione ODL {0}, generato residuo con pari TCiclo: {1}", idxODL, TCAssegnato(idxODL)), false); - // processo chiusura setup - processaEvento(idxMacchina, idxEvento, String.Format("Registrata fine produzione per ODL {0}, nuovo ODL per quantità residua", idxODL), idxODL); - - // se è multi processo ANCHE x altra tavola... - if (isMulti) - { - int idxOdlAltra = 0; - string _idxOdl = idxOdlAltraMacc; - int.TryParse(_idxOdl, out idxOdlAltra); - // effettuo split su nuovo ODL - DataLayerObj.taODL.splitODL(idxOdlAltra, DataLayerObj.MatrOpr, idxMaccAltraTav, TCAssegnato(idxOdlAltra), PzPallet, string.Format("Fine Produzione, Sospensione ODL {0}, generato residuo con pari TCiclo: {1}", idxOdlAltra, TCAssegnato(idxOdlAltra)), false); - // processo chiusura setup - processaEvento(idxMaccAltraTav, idxEvento, String.Format("Registrata fine produzione per ODL {0}, nuovo ODL per quantità residua", idxOdlAltra), idxOdlAltra); - } - // sistemo buttons! - bool splitOdl = false; - fixSplitBtn(splitOdl); + string ts = string.Format("{0:yyMMdd}T{0:HHmmss.fff}Z", DateTime.Now); + string outData = $"TS:{ts}|MATR:{DataLayerObj.MatrOpr}|ODL:{idxOdlMacc}"; + DataLayerObj.addTask4Machine(idxMacchinaFix, taskType.fixStopSetup, outData); + outData = "Inserita richiesta invio Fix chiusura attrezzaggio " + outData; + lblOut.Text = outData; } - catch (Exception exc) - { - logger.lg.scriviLog(string.Format("Eccezione in operazione Chiusura + Split ODL su nuovo! {0}{1}", Environment.NewLine, exc), tipoLog.EXCEPTION); - Response.Redirect("~/DettaglioMacchina.aspx"); - } - } - // resetto ODL su redis... - DataLayerObj.emptyCurrODL(idxMacchina); - // aggiorno visualizzazione - checkAll(); - // sollevo evento! - if (eh_reqUpdate != null) - { - eh_reqUpdate(this, new EventArgs()); - } } - /// - /// verifica se sia necessario confermare la prod dell'ODL precedente prima di chiudere e lo fa in automatico... - /// - /// boolean, true = deve confermare 0 pezzi (es. in setup) - private void confermaProdOdl(bool confZero) - { - // 2016.11.17 NOTA: introdotti scarti, li confermiamo SEMPRE a zero se in setup, però da valutare SE a FINE ATTREZZAGGIO chiedere num pezzi e num scarti (saldo zero buoni) da inserire... - if (confZero) - { - // confermo produzione ZERO pezzi (in setup) - DataLayerObj.confermaProdMacchina(idxMacchina, memLayer.ML.CRI("modoConfProd"), 0, 0, DateTime.Now); - } - else // se NON sono in setup verifico se ho pz da confermare - { - // recupero pz da confermare - DS_ProdTempi.stp_PzProd_getByMacchinaRow rigaProd = DataLayerObj.taPzProd2conf.GetData(idxMacchina)[0]; - if (rigaProd.pezziNonConfermati > 0) - { - DataLayerObj.confermaProdMacchina(idxMacchina, memLayer.ML.CRI("modoConfProd"), rigaProd.pezziNonConfermati, 0, DateTime.Now); - } - } - } - /// - /// mostra dati ed opzione x split ODL - /// - /// - /// - protected void lbtShowSplitODL_Click(object sender, EventArgs e) - { - bool splitOdl = true; - fixSplitBtn(splitOdl); - // recupero current idx - int currODL = DataLayerObj.taODL.getByMacchina(idxMacchina)[0].IdxODL; - updateTempoTc(currODL, true); - updateNoteTC(currODL); - } - /// - /// sistema buttons split - /// - /// - private void fixSplitBtn(bool splitOdl) - { - lbtShowSplitODL.Visible = !splitOdl; - chkCloseOdl.Visible = !splitOdl; - lbtSplitODL.Visible = splitOdl; - showNoteTC(splitOdl); - ddlODL.Visible = !splitOdl; - chkTutti.Visible = !splitOdl; - lbtStartAttr.Visible = !splitOdl; - lbtStartProd.Visible = !splitOdl; - lbtEndProd.Visible = !splitOdl; - } - /// - /// split ODL con creazione nuovo ODL - /// - /// - /// - protected void lbtSplitODL_Click(object sender, EventArgs e) - { - // chiamo stored che genera nuovo ODL, mette note e tempo, chiude vecchi e assegna nuovo... - int currODL = DataLayerObj.taODL.getByMacchina(idxMacchina)[0].IdxODL; - int idxEvento = 1; // !!!HARD CODED - // controllo se TC è valorizzato.. - if (TCRichAttr == 0) - { - mod_tempoMSMC.checkTC(); - } - - // confermo prod vecchio ODL - confermaProdOdl(false); - - // effettuo split su nuovo ODL - DataLayerObj.taODL.splitODL(currODL, DataLayerObj.MatrOpr, idxMacchina, TCRichAttr, PzPallet, txtNote.Text, true); - - // resetto ODL su redis... - DataLayerObj.emptyCurrODL(idxMacchina); - - // invio email! - DataLayerObj.sendWarnTcChangeReq(memLayer.ML.CRS("_adminEmail")); - // processo chiusura setup - processaEvento(idxMacchina, idxEvento, String.Format("Registrato Riattrezzaggio ODL (old: {0})", currODL), currODL); - // sistemo buttons! - bool splitOdl = false; - fixSplitBtn(splitOdl); - - // sollevo evento! - if (eh_reqUpdate != null) - { - eh_reqUpdate(this, new EventArgs()); - } - } - /// - /// selezionato un ODL mostro note/tempo da validare - /// - /// - /// - protected void ddlODL_SelectedIndexChanged(object sender, EventArgs e) - { - checkDDL(); - } - - private void checkDDL() - { - if (ddlODL.SelectedIndex > 0) - { - showNoteTC(true); - updateTempoTc(idxODLSel, false); - updateNoteTC(idxODLSel); - } - else - { - showNoteTC(false); - } - } - - - /// - /// mostra/nasconde note - /// - private void showNoteTC(bool show) - { - // mostra/nasconde note da compilare - divTempo.Visible = show; - divNote.Visible = show; - divPzPallet.Visible = show; - lbtStartAttr.Visible = show; - cmp_dettODL.idxODLSel = idxODLSel; - divDettOdl.Visible = show && idxODLSel > 0; - // se abilitato da config su DB mostro selezione del numPzPallet... - cmp_selPzPallet.enableSet = memLayer.ML.CRB("enableTabSetPzPallet"); - - } - /// - /// aggiorna note ODL - /// - /// - private void updateNoteTC(int idxOdl) - { - string testo = ""; - if (idxOdl > 0) - { - try - { - testo = DataLayerObj.taODL.getByIdx(idxOdl, false)[0].Note; - } - catch - { } - } - txtNote.Text = testo; - } - - /// - /// update TC mostrato - /// - /// idx dell'ODL / PODL - /// - private void updateTempoTc(int idxOdlPodl, bool inAttr) - { - // riporta TC - decimal _TCRichAttr = 0; - int pzPallet = 1; - if (enableRPO && !inAttr) - { - var rigaProm = DataLayerObj.taPODL.getByKey(idxOdlPodl)[0]; - _TCRichAttr = rigaProm.TCAssegnato; - pzPallet = rigaProm.PzPallet; - } - else - { - DS_ProdTempi.ODLRow rigaOdl = DataLayerObj.taODL.getByIdx(idxOdlPodl, false)[0]; - if (rigaOdl.TCRichAttr > 0) - { - _TCRichAttr = rigaOdl.TCRichAttr; - } - else - { - _TCRichAttr = rigaOdl.TCAssegnato; - } - pzPallet = rigaOdl.PzPallet; - } - // aggiorno dati! - TCRichAttr = _TCRichAttr; - PzPallet = pzPallet; - } - - protected void lbtConfNewRevProd_Click(object sender, EventArgs e) - { - // chiamo stored x allineare revProd a revUT - string CodArticolo = DataLayerObj.taODL.getByIdx(idxODLSel, false)[0].CodArticolo; - DataLayerObj.taAnagArt.setNewRev(CodArticolo); - checkBtnStatus(); - } - /// - /// toggle visualizzazione creazioen ODL provvisorio - /// - /// - /// - protected void lbtShowCreaOdlProvv_Click(object sender, EventArgs e) - { - cmp_newODL.Visible = !cmp_newODL.Visible; - } - /// - /// Testo x button creazione nuovo ODL - /// - public string lblCreaOdl - { - get - { - string answ = "CREAZIONE ODL PROVVISORIO"; - if (cmp_newODL.Visible) - { - answ = "NASCONDI creazione ODL provvisorio"; - } - return answ; - } - } - - protected void chkTutti_CheckedChanged(object sender, EventArgs e) - { - checkBtnStatus(); - } - /// - /// Effettua split ODL da ALTRA tavola su tav corrente - /// - /// - /// - protected void lbtSplitOdlSuTav_Click(object sender, EventArgs e) - { - // chiamo stored x splittare ODL... - int idxOdlAltra = 0; - int.TryParse(idxOdlAltraMacc, out idxOdlAltra); - // se ho trovato... - if (idxOdlAltra > 0) - { - DataLayerObj.taODL.dividiDaAltraTav(idxOdlAltra, DataLayerObj.MatrOpr, idxMacchina); - // messaggio utente - string evText = "Registrata inizio attrezzaggio da split ODL {0} (come da altra tavola)"; - StringBuilder sb = new StringBuilder(); - sb.AppendLine(String.Format(evText, idxOdlAltra)); - lblOut.Text = sb.ToString(); - } - // update button x setup da altra tavola... - checkAll(); - // sollevo evento! - if (eh_reqUpdate != null) - { - eh_reqUpdate(this, new EventArgs()); - } - } - /// - /// Effettua ripresa ODL su tavola - /// - /// - /// - protected void lbtReopOdlSuTav_Click(object sender, EventArgs e) - { - // chiamo stored x riprendere ODL (toglie data chiusura...) - DS_ProdTempi.ODLDataTable tabRes = DataLayerObj.taODL.reopenGetLast(idxMacchina); - if (tabRes.Rows.Count > 0) - { - var riga = tabRes[0]; - // messaggio utente - string evText = "Registrato riapertura ODL {0} | art {1}"; - StringBuilder sb = new StringBuilder(); - sb.AppendLine(String.Format(evText, riga.IdxODL, riga.CodArticolo)); - lblOut.Text = sb.ToString(); - } - // update buttons... - checkAll(); - // sollevo evento! - if (eh_reqUpdate != null) - { - eh_reqUpdate(this, new EventArgs()); - } - } - - protected void txtSearchODL_TextChanged(object sender, EventArgs e) - { - odsODL.DataBind(); - } - - protected void lbtFixEndSetup_Click(object sender, EventArgs e) - { - string ts = string.Format("{0:yyMMdd}T{0:HHmmss.fff}Z", DateTime.Now); - string outData = $"TS:{ts}|MATR:{DataLayerObj.MatrOpr}|ODL:{idxOdlMacc}"; - DataLayerObj.addTask4Machine(idxMacchina, taskType.fixStopSetup, outData); - outData = "Inserita richiesta invio Fix chiusura attrezzaggio " + outData; - lblOut.Text = outData; - } - } } \ No newline at end of file diff --git a/MP-TAB/WebUserControls/mod_QRScanner.ascx.cs b/MP-TAB/WebUserControls/mod_QRScanner.ascx.cs index cbc9c446..078db724 100644 --- a/MP-TAB/WebUserControls/mod_QRScanner.ascx.cs +++ b/MP-TAB/WebUserControls/mod_QRScanner.ascx.cs @@ -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(); - } - - /// - /// Oggetto datalayer specifico - /// - DataLayer DataLayerObj = new DataLayer(); - /// - /// controllo login solo con pwd - /// - 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(); + } + /// + /// controllo login solo con pwd + /// + 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(); + } } - } } \ No newline at end of file diff --git a/MP-TAB/WebUserControls/mod_RepProd_GG.ascx.cs b/MP-TAB/WebUserControls/mod_RepProd_GG.ascx.cs index a0e57dd2..b8a935c6 100644 --- a/MP-TAB/WebUserControls/mod_RepProd_GG.ascx.cs +++ b/MP-TAB/WebUserControls/mod_RepProd_GG.ascx.cs @@ -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) { diff --git a/MP-TAB/WebUserControls/mod_commenti.ascx.cs b/MP-TAB/WebUserControls/mod_commenti.ascx.cs index 46ac4b44..55ae2470 100644 --- a/MP-TAB/WebUserControls/mod_commenti.ascx.cs +++ b/MP-TAB/WebUserControls/mod_commenti.ascx.cs @@ -6,100 +6,96 @@ using System.Web.UI.WebControls; namespace MoonProTablet.WebUserControls { - public partial class mod_commenti : System.Web.UI.UserControl - { - /// - /// Oggetto datalayer specifico - /// - DataLayer DataLayerObj = new DataLayer(); - /// - /// registrata richiesta - /// - 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")) + /// + /// registrata richiesta + /// + 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); + } + } + /// + /// abilitazione edit commenti + /// + 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); - } - } - /// - /// abilitazione edit commenti - /// - public bool enableEdit - { - get - { - return memLayer.ML.CRB("commEnableEditDel"); - } - } + public void doUpdate() + { + repComm.DataBind(); + } - public void doUpdate() - { - repComm.DataBind(); - } + /// + /// carico x edit commento + /// + /// + /// + 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()); + } + } + /// + /// elimina commento + /// + /// + /// + 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(); + } - /// - /// carico x edit commento - /// - /// - /// - 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); + } } - /// - /// elimina commento - /// - /// - /// - 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); - } - } } \ No newline at end of file diff --git a/MP-TAB/WebUserControls/mod_confProd.ascx.cs b/MP-TAB/WebUserControls/mod_confProd.ascx.cs index 377b494f..54d23ac6 100644 --- a/MP-TAB/WebUserControls/mod_confProd.ascx.cs +++ b/MP-TAB/WebUserControls/mod_confProd.ascx.cs @@ -5,17 +5,13 @@ using System.Web.UI; namespace MoonProTablet.WebUserControls { - public partial class mod_confProd : MpTabUserControl + public partial class mod_confProd : BaseUserControl { /// /// indica conferma con rettifica (evento 121) /// protected bool confRett = memLayer.ML.CRB("confRett"); /// - /// Oggetto datalayer specifico - /// - DataLayer DataLayerObj = new DataLayer(); - /// /// registrato nuovo valore /// public event EventHandler eh_inserting; diff --git a/MP-TAB/WebUserControls/mod_controlliProd.ascx.cs b/MP-TAB/WebUserControls/mod_controlliProd.ascx.cs index 6a10f009..fea8036e 100644 --- a/MP-TAB/WebUserControls/mod_controlliProd.ascx.cs +++ b/MP-TAB/WebUserControls/mod_controlliProd.ascx.cs @@ -5,272 +5,254 @@ using System.Web.UI; namespace MoonProTablet.WebUserControls { - public partial class mod_controlliProd : System.Web.UI.UserControl - { - /// - /// Oggetto datalayer specifico - /// - DataLayer DataLayerObj = new DataLayer(); - /// - /// registrato nuovo valore - /// - public event EventHandler eh_newVal; - /// - /// registrato nuovo valore - /// - public event EventHandler eh_reset; - /// - /// caricamento pagina - /// - /// - /// - 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; - } - /// - /// Verifica se abbia un ODL ATTIVO - /// - private void checkOdl() - { - lbtShowContr.Visible = odlOk; - lblConfProd.Visible = !odlOk; - lblMancaODL.Visible = !odlOk; - } - - /// - /// Verifica se la macchina MAIN sia MULTI (da DatiMacchina / redis...) - /// - protected bool isMulti - { - get - { - return DataLayerObj.isMulti(idxMacchinaSession); - } - } - - /// - /// Se la machcina è MULTI --> mostro selettore - /// - private void fixSelMacc() - { - divSelMacc.Visible = isMulti; - fixSelMaccControlli(); - } - /// - /// restituisce css disabled SE odl NON OK... - /// - public string cssBtnConf - { - get - { - return odlOk ? "" : "disabled"; - } - } - /// - /// Verifica ODL OK (ovvero caricato x macchina...) - /// - public bool odlOk - { - get - { - bool answ = true; - // carico i dati preliminari: ODL - int idxOdl = 0; // userò ODL del turno - try + /// + /// registrato nuovo valore + /// + public event EventHandler eh_newVal; + /// + /// registrato nuovo valore + /// + public event EventHandler eh_reset; + /// + /// caricamento pagina + /// + /// + /// + 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; - } - } - /// - /// idx macchina selezionata - /// - 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); - } - } - /// - /// idx macchina selezionata - /// - public string idxMacchinaSession - { - get - { - return memLayer.ML.StringSessionObj("IdxMacchina"); - } - set - { - memLayer.ML.setSessionVal("IdxMacchina", value); - } - } - /// - /// cambio stato visibilità pannello e testo button - /// - /// - /// - protected void lbtShowContr_Click(object sender, EventArgs e) - { - switchBtnConferma(!lbtOK.Visible); - } - /// - /// determina comportamento btn conferma - /// - 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()); - } - } - } - /// - /// salvo produzione - /// - /// - /// - 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 - { } - } - } - /// - /// Sotto sistema (macchina) selezionato - /// - 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) + /// + /// Verifica se abbia un ODL ATTIVO + /// + 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; + /// + /// Verifica se la macchina MAIN sia MULTI (da DatiMacchina / redis...) + /// + protected bool isMulti + { + get + { + return DataLayerObj.isMulti(idxMacchina); + } + } + + /// + /// Se la machcina è MULTI --> mostro selettore + /// + private void fixSelMacc() + { + divSelMacc.Visible = isMulti; + fixSelMaccControlli(); + } + /// + /// restituisce css disabled SE odl NON OK... + /// + public string cssBtnConf + { + get + { + return odlOk ? "" : "disabled"; + } + } + /// + /// Verifica ODL OK (ovvero caricato x macchina...) + /// + 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; + } + } + /// + /// idx macchina selezionata + /// + 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); + } + } + /// + /// cambio stato visibilità pannello e testo button + /// + /// + /// + protected void lbtShowContr_Click(object sender, EventArgs e) + { + switchBtnConferma(!lbtOK.Visible); + } + /// + /// determina comportamento btn conferma + /// + 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()); + } + } + } + /// + /// salvo produzione + /// + /// + /// + 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 + { } + } + } + /// + /// Sotto sistema (macchina) selezionato + /// + 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; + } } - } } \ No newline at end of file diff --git a/MP-TAB/WebUserControls/mod_dettMacchina.ascx.cs b/MP-TAB/WebUserControls/mod_dettMacchina.ascx.cs index 892fb067..ea8d4cfe 100644 --- a/MP-TAB/WebUserControls/mod_dettMacchina.ascx.cs +++ b/MP-TAB/WebUserControls/mod_dettMacchina.ascx.cs @@ -5,12 +5,8 @@ using System.Web.UI; namespace MoonProTablet.WebUserControls { - public partial class mod_dettMacchina : MpTabUserControl + public partial class mod_dettMacchina : BaseUserControl { - /// - /// Oggetto datalayer specifico - /// - DataLayer DataLayerObj = new DataLayer(); /// /// fatto refresh --> chiedo remove modal (se c'è) /// @@ -61,28 +57,6 @@ namespace MoonProTablet.WebUserControls } } /// - /// url completo immagine - /// - /// - /// - public string ImgUrl(object url) - { - if (url.ToString() == "") - { - url = "empty.png"; - } - return string.Format("./images/macchine/{0}", url); - } - /// - /// fomratta durata in minuti/ore/gg a seconda del totale... - /// - /// - /// - public string formatDurata(object min) - { - return utility.formatDurata(min); - } - /// /// fa update del controllo /// 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; - } } } \ No newline at end of file diff --git a/MP-TAB/WebUserControls/mod_dettTurni.ascx.cs b/MP-TAB/WebUserControls/mod_dettTurni.ascx.cs index a22cc0cb..65fd5598 100644 --- a/MP-TAB/WebUserControls/mod_dettTurni.ascx.cs +++ b/MP-TAB/WebUserControls/mod_dettTurni.ascx.cs @@ -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(); + } + /// + /// aggiorna classi grafiche turni + /// + protected void updateTurni() + { + } + /// + /// fornisce classe CSS x colorare il turno secondo apertura o meno + /// + /// + /// + 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; + } } - /// - /// aggiorna classi grafiche turni - /// - protected void updateTurni() - { - } - /// - /// fornisce classe CSS x colorare il turno secondo apertura o meno - /// - /// - /// - 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; - } - } } \ No newline at end of file diff --git a/MP-TAB/WebUserControls/mod_dettaglioProd.ascx.cs b/MP-TAB/WebUserControls/mod_dettaglioProd.ascx.cs index ff8c85f4..8888b7da 100644 --- a/MP-TAB/WebUserControls/mod_dettaglioProd.ascx.cs +++ b/MP-TAB/WebUserControls/mod_dettaglioProd.ascx.cs @@ -4,143 +4,116 @@ using System; namespace MoonProTablet.WebUserControls { - public partial class mod_dettaglioProd : System.Web.UI.UserControl - { - /// - /// Oggetto datalayer specifico - /// - DataLayer DataLayerObj = new DataLayer(); - /// - /// effettua traduzione del lemma - /// - /// - /// - public string traduci(string lemma) + public partial class mod_dettaglioProd : BaseUserControl { - return user_std.UtSn.Traduci(lemma); + /// + /// caricamento pagina + /// + /// + /// + protected void Page_Load(object sender, EventArgs e) + { + popolaLabels(); + } + /// + /// popola le labels + /// + 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"; + } + } } - /// - /// caricamento pagina - /// - /// - /// - protected void Page_Load(object sender, EventArgs e) - { - popolaLabels(); - } - /// - /// popola le labels - /// - 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"; - } - } - /// - /// idxMacchina - /// - public string idxMacchina - { - get - { - return memLayer.ML.StringSessionObj("idxMacchina"); - } - set - { - memLayer.ML.setSessionVal("idxMacchina", value); - } - } - } } \ No newline at end of file diff --git a/MP-TAB/WebUserControls/mod_dichiarazione.ascx b/MP-TAB/WebUserControls/mod_dichiarazione.ascx index 51a9c8b5..176cc649 100644 --- a/MP-TAB/WebUserControls/mod_dichiarazione.ascx +++ b/MP-TAB/WebUserControls/mod_dichiarazione.ascx @@ -23,7 +23,7 @@
- <%# Eval("label") %> + <%# Eval("label") %>
diff --git a/MP-TAB/WebUserControls/mod_dichiarazione.ascx.cs b/MP-TAB/WebUserControls/mod_dichiarazione.ascx.cs index ea7db7ac..fb8f79a4 100644 --- a/MP-TAB/WebUserControls/mod_dichiarazione.ascx.cs +++ b/MP-TAB/WebUserControls/mod_dichiarazione.ascx.cs @@ -5,198 +5,168 @@ using System.Web.UI.WebControls; namespace MoonProTablet.WebUserControls { - public partial class mod_dichiarazione : System.Web.UI.UserControl - { - /// - /// classe MapoDB x uso locale - /// - protected MapoDb.MapoDb controllerMapo = new MapoDb.MapoDb(); - /// - /// Oggetto datalayer specifico - /// - DataLayer DataLayerObj = new DataLayer(); - /// - /// registrato nuovo valore - /// - public event EventHandler eh_newVal; - /// - /// idx macchina selezionata - /// - public string idxMacchina + public partial class mod_dichiarazione : BaseUserControl { - get - { - return memLayer.ML.StringSessionObj("IdxMacchina"); - } - set - { - memLayer.ML.setSessionVal("IdxMacchina", value); - } - } - /// - /// caricamento principale - /// - /// - /// - protected void Page_Load(object sender, EventArgs e) - { - repLI.DataBind(); - } - /// - /// rimanda alla pagina di dettaglio della macchina scelta - /// - /// - /// - 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) + /// + /// registrato nuovo valore + /// + public event EventHandler eh_newVal; + + /// + /// caricamento principale + /// + /// + /// + 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(); + } + /// + /// rimanda alla pagina di dettaglio della macchina scelta + /// + /// + /// + 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 + /// + /// update (resetta testo) + /// + 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()); - } - } - /// - /// url completo immagine - /// - /// - /// - public string ImgUrl(object url) - { - return string.Format("./images/iconDic/{0}.png", url); - } - /// - /// update (resetta testo) - /// - public void doUpdate() - { - lblOut.Text = ""; - } - /// - /// determina se insert sia realtime o dataOra (in base a diff tra dataora sel ed evento, se superiore ad X minuto NON è realtime) - /// - public bool insRealtime - { - get - { - bool answ = true; - try + /// + /// determina se insert sia realtime o dataOra (in base a diff tra dataora sel ed evento, se superiore ad X minuto NON è realtime) + /// + 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; - } - } - /// - /// data-ora selezionata - /// - protected DateTime dataOraEv - { - set - { - memLayer.ML.setSessionVal("dataOraEv", value); - } - get - { - DateTime answ = DateTime.Now; - try + /// + /// data-ora selezionata + /// + 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; - } } - } } \ No newline at end of file diff --git a/MP-TAB/WebUserControls/mod_directLinks.ascx.cs b/MP-TAB/WebUserControls/mod_directLinks.ascx.cs index b1a11ab6..ac5d7adc 100644 --- a/MP-TAB/WebUserControls/mod_directLinks.ascx.cs +++ b/MP-TAB/WebUserControls/mod_directLinks.ascx.cs @@ -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) + { + } + /// + /// Verifica se la pagina corrente sia URL indicato --> mostra ACTIVE + /// + /// + /// + 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; + } + /// + /// Verifica se la pagina corrente sia URL indicato --> mostra ACTIVE + /// + /// + /// + public bool linkEnabled(object navUrl) + { + bool answ = true; + if (navUrl.ToString().Replace(".aspx", "").Replace("~/", "") == titolo.Replace(".aspx", "")) + { + answ = false; + } + return answ; + } + /// + /// Verifica se la pagina corrente sia URL indicato --> mostra ACTIVE + /// + /// + /// + 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; + } } - /// - /// Verifica se la pagina corrente sia URL indicato --> mostra ACTIVE - /// - /// - /// - 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; - } - /// - /// Verifica se la pagina corrente sia URL indicato --> mostra ACTIVE - /// - /// - /// - public bool linkEnabled(object navUrl) - { - bool answ = true; - if (navUrl.ToString().Replace(".aspx", "").Replace("~/", "") == titolo.Replace(".aspx", "")) - { - answ = false; - } - return answ; - } - /// - /// Verifica se la pagina corrente sia URL indicato --> mostra ACTIVE - /// - /// - /// - 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; - } - /// - /// titolo pagina - /// - public string titolo - { - get - { - return devicesAuthProxy.getPage(Request.Url); - } - } - } } \ No newline at end of file diff --git a/MP-TAB/WebUserControls/mod_elencoControlli.ascx.cs b/MP-TAB/WebUserControls/mod_elencoControlli.ascx.cs index 1749966a..21959707 100644 --- a/MP-TAB/WebUserControls/mod_elencoControlli.ascx.cs +++ b/MP-TAB/WebUserControls/mod_elencoControlli.ascx.cs @@ -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(); + } } - } } \ No newline at end of file diff --git a/MP-TAB/WebUserControls/mod_elencoScarti.ascx.cs b/MP-TAB/WebUserControls/mod_elencoScarti.ascx.cs index 3652e652..9684ef3f 100644 --- a/MP-TAB/WebUserControls/mod_elencoScarti.ascx.cs +++ b/MP-TAB/WebUserControls/mod_elencoScarti.ascx.cs @@ -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(); + } } - } } \ No newline at end of file diff --git a/MP-TAB/WebUserControls/mod_enrollByAuthKey.ascx.cs b/MP-TAB/WebUserControls/mod_enrollByAuthKey.ascx.cs index 076ba8a6..fe6d7489 100644 --- a/MP-TAB/WebUserControls/mod_enrollByAuthKey.ascx.cs +++ b/MP-TAB/WebUserControls/mod_enrollByAuthKey.ascx.cs @@ -4,113 +4,109 @@ using System; namespace MoonProTablet.WebUserControls { - public partial class mod_enrollByAuthKey : System.Web.UI.UserControl - { - /// - /// Oggetto datalayer specifico - /// - DataLayer DataLayerObj = new DataLayer(); - /// - /// Page load (vuoto) - /// - /// - /// - protected void Page_Load(object sender, EventArgs e) + public partial class mod_enrollByAuthKey : BaseUserControl { + /// + /// Page load (vuoto) + /// + /// + /// + protected void Page_Load(object sender, EventArgs e) + { - } - /// - /// salvo nuovo device... - /// - /// - /// - 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 + /// + /// salvo nuovo device... + /// + /// + /// + 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); + } + } + /// + /// prova a fare enroll device data chiave... + /// + /// + /// + /// + /// + /// + /// + /// + 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; + } + /// + /// resetto tutto + /// + /// + /// + 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); - } } - /// - /// prova a fare enroll device data chiave... - /// - /// - /// - /// - /// - /// - /// - /// - 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; - } - /// - /// resetto tutto - /// - /// - /// - protected void btnAnnulla_Click(object sender, EventArgs e) - { - txtUserAuthKey.Text = ""; - } - } } \ No newline at end of file diff --git a/MP-TAB/WebUserControls/mod_enrollByJumperAuthKey.ascx.cs b/MP-TAB/WebUserControls/mod_enrollByJumperAuthKey.ascx.cs index 8eee5dc6..96f21e62 100644 --- a/MP-TAB/WebUserControls/mod_enrollByJumperAuthKey.ascx.cs +++ b/MP-TAB/WebUserControls/mod_enrollByJumperAuthKey.ascx.cs @@ -4,55 +4,51 @@ using System; namespace MoonProTablet.WebUserControls { - public partial class mod_enrollByJumperAuthKey : System.Web.UI.UserControl - { - /// - /// Oggetto datalayer specifico - /// - DataLayer DataLayerObj = new DataLayer(); - /// - /// Caricamento pagina - /// - /// - /// - 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(); - } - /// - /// prova a fare auto enroll - /// - 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) + /// + /// Caricamento pagina + /// + /// + /// + 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(); + } + /// + /// prova a fare auto enroll + /// + 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")); + } + } } - } - } - } + } } \ No newline at end of file diff --git a/MP-TAB/WebUserControls/mod_fermate.ascx.cs b/MP-TAB/WebUserControls/mod_fermate.ascx.cs index ac5debb7..9a3ae2b1 100644 --- a/MP-TAB/WebUserControls/mod_fermate.ascx.cs +++ b/MP-TAB/WebUserControls/mod_fermate.ascx.cs @@ -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 { /// /// registrata richiesta diff --git a/MP-TAB/WebUserControls/mod_footer.ascx.cs b/MP-TAB/WebUserControls/mod_footer.ascx.cs index 82d41dc3..41702556 100644 --- a/MP-TAB/WebUserControls/mod_footer.ascx.cs +++ b/MP-TAB/WebUserControls/mod_footer.ascx.cs @@ -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(); - } - } - /// - /// Versione corrente sw - /// - public Version currVersion - { - get - { - return System.Reflection.Assembly.GetExecutingAssembly().GetName().Version; - } - } - private void updateLabels() - { - } - /// - /// Dimensione schermata video attuale - /// - 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(); + } + } + /// + /// Versione corrente sw + /// + public Version currVersion + { + get + { + return System.Reflection.Assembly.GetExecutingAssembly().GetName().Version; + } + } + private void updateLabels() + { + } + /// + /// Dimensione schermata video attuale + /// + 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; - } } - } } \ No newline at end of file diff --git a/MP-TAB/WebUserControls/mod_insComm.ascx.cs b/MP-TAB/WebUserControls/mod_insComm.ascx.cs index b5c5868e..802daa03 100644 --- a/MP-TAB/WebUserControls/mod_insComm.ascx.cs +++ b/MP-TAB/WebUserControls/mod_insComm.ascx.cs @@ -4,223 +4,218 @@ using System; namespace MoonProTablet.WebUserControls { - public partial class mod_insComm : System.Web.UI.UserControl - { - /// - /// registrato nuovo valore - /// - public event EventHandler eh_inserting; - /// - /// registrato nuovo valore - /// - public event EventHandler eh_newVal; - /// - /// registrato nuovo valore - /// - public event EventHandler eh_reset; - - /// - /// Oggetto datalayer specifico - /// - DataLayer DataLayerObj = new DataLayer(); - /// - /// caricamento pagina - /// - /// - /// - 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(); - } - /// - /// effettua salvataggio del commento indicato (data/ora e testo) - /// - 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); - } - /// - /// determian se mostrare pulsante salva (non serve x dichiarazioni fermata) - /// - public bool showSalva - { - set - { - lbtSalva.Visible = value; - } - } - /// - /// imposta la label x inserimento commento singolo / con dichiarazione fermata - /// - public string labelAddCommento - { - set - { - lblAddComm.Text = value; - } - } - /// - /// imposta data/ora del commento - /// - public DateTime dataEv - { - set - { - // salvo in sessione dataOra corrente... - dataOraEv = value; - // mostro insert! - showInsert(); - } - } - /// - /// commento inserito - /// - public string commento - { - get - { - return txtCommento.Text.Trim(); - } - } - /// - /// data-ora selezionata - /// - protected DateTime dataOraEv - { - set - { - memLayer.ML.setSessionVal("dataOraEv", value); - } - get - { - DateTime answ = DateTime.Now; - try + /// + /// registrato nuovo valore + /// + public event EventHandler eh_inserting; + /// + /// registrato nuovo valore + /// + public event EventHandler eh_newVal; + /// + /// registrato nuovo valore + /// + public event EventHandler eh_reset; + /// + /// caricamento pagina + /// + /// + /// + 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(); + } + /// + /// effettua salvataggio del commento indicato (data/ora e testo) + /// + 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); + } + /// + /// determian se mostrare pulsante salva (non serve x dichiarazioni fermata) + /// + public bool showSalva + { + set + { + lbtSalva.Visible = value; + } + } + /// + /// imposta la label x inserimento commento singolo / con dichiarazione fermata + /// + public string labelAddCommento + { + set + { + lblAddComm.Text = value; + } + } + /// + /// imposta data/ora del commento + /// + public DateTime dataEv + { + set + { + // salvo in sessione dataOra corrente... + dataOraEv = value; + // mostro insert! + showInsert(); + } + } + /// + /// commento inserito + /// + public string commento + { + get + { + return txtCommento.Text.Trim(); + } + } + /// + /// data-ora selezionata + /// + 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; - } } - } } \ No newline at end of file diff --git a/MP-TAB/WebUserControls/mod_listUserAK.ascx.cs b/MP-TAB/WebUserControls/mod_listUserAK.ascx.cs index f9b739ec..53839874 100644 --- a/MP-TAB/WebUserControls/mod_listUserAK.ascx.cs +++ b/MP-TAB/WebUserControls/mod_listUserAK.ascx.cs @@ -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; - } - } } \ No newline at end of file diff --git a/MP-TAB/WebUserControls/mod_mappaStato.ascx b/MP-TAB/WebUserControls/mod_mappaStato.ascx index d9ea305c..f7cc7595 100644 --- a/MP-TAB/WebUserControls/mod_mappaStato.ascx +++ b/MP-TAB/WebUserControls/mod_mappaStato.ascx @@ -7,7 +7,7 @@
- <%# Eval("CodMacchina") %> + <%# Eval("CodMacchina") %>
diff --git a/MP-TAB/WebUserControls/mod_mappaStato.ascx.cs b/MP-TAB/WebUserControls/mod_mappaStato.ascx.cs index fc308e25..ec087324 100644 --- a/MP-TAB/WebUserControls/mod_mappaStato.ascx.cs +++ b/MP-TAB/WebUserControls/mod_mappaStato.ascx.cs @@ -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 { - } - /// - /// url completo immagine - /// - /// - /// - public string ImgUrl(object url) - { - // se vuoto metto empty... - if (url.ToString() == "") - { - url = "empty.png"; - } - return string.Format("./images/macchine/{0}", url); - } - /// - /// fomratta durata in minuti/ore/gg a seconda del totale... - /// - /// - /// - public string formatDurata(object min) - { - return utility.formatDurata(min); - } + protected void Page_Load(object sender, EventArgs e) + { + } - /// - /// rimanda alla pagina di dettaglio della macchina scelta - /// - /// - /// - 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"); + /// + /// rimanda alla pagina di dettaglio della macchina scelta + /// + /// + /// + 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"); + } + /// + /// fa update del controllo + /// + public void doUpdate() + { + ods.DataBind(); + repLI.DataBind(); + } + /// + /// timeout scaduto + /// + /// + /// + protected void Timer1_Tick(object sender, EventArgs e) + { + doUpdate(); + ScriptManager.RegisterStartupScript(Page, GetType(), "temp", "", false); + } } - /// - /// fa update del controllo - /// - public void doUpdate() - { - ods.DataBind(); - repLI.DataBind(); - } - /// - /// timeout scaduto - /// - /// - /// - protected void Timer1_Tick(object sender, EventArgs e) - { - doUpdate(); - ScriptManager.RegisterStartupScript(Page, GetType(), "temp", "", false); - } - } } \ No newline at end of file diff --git a/MP-TAB/WebUserControls/mod_pianoProdMacc.ascx.cs b/MP-TAB/WebUserControls/mod_pianoProdMacc.ascx.cs index e5957dfb..f9f3a84f 100644 --- a/MP-TAB/WebUserControls/mod_pianoProdMacc.ascx.cs +++ b/MP-TAB/WebUserControls/mod_pianoProdMacc.ascx.cs @@ -4,143 +4,83 @@ using System; namespace MoonProTablet.WebUserControls { - public partial class mod_pianoProdMacc : System.Web.UI.UserControl - { - /// - /// Oggetto datalayer specifico - /// - 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; - } - - /// - /// idx macchina selezionata - /// - 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); - } - } - /// - /// idx macchina selezionata - /// - 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 + /// + /// idx macchina selezionata + /// + 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 + { } + } + } + /// + /// Se la machcina è MULTI --> mostro selettore + /// + private void fixSelMacc() + { + divSelMacc.Visible = isMulti; + fixSelMaccPianoProd(); } - catch - { } - } } - /// - /// Sotto sistema (macchina) selezionato - /// - public string subMaccSel - { - get - { - return memLayer.ML.StringSessionObj("subMaccSel"); - } - set - { - memLayer.ML.setSessionVal("subMaccSel", value); - } - } - /// - /// Se la machcina è MULTI --> mostro selettore - /// - private void fixSelMacc() - { - divSelMacc.Visible = isMulti; - fixSelMaccPianoProd(); - } - /// - /// Verifica se la macchina MAIN sia MULTI (da DatiMacchina / redis...) - /// - protected bool isMulti - { - get - { - return DataLayerObj.isMulti(idxMacchinaSession); - } - } - } } \ No newline at end of file diff --git a/MP-TAB/WebUserControls/mod_regNewDevice.ascx.cs b/MP-TAB/WebUserControls/mod_regNewDevice.ascx.cs index c6c92b54..8cc76038 100644 --- a/MP-TAB/WebUserControls/mod_regNewDevice.ascx.cs +++ b/MP-TAB/WebUserControls/mod_regNewDevice.ascx.cs @@ -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 + * + * ***********************************************************************/ + } - } + } } \ No newline at end of file diff --git a/MP-TAB/WebUserControls/mod_regScarti.ascx.cs b/MP-TAB/WebUserControls/mod_regScarti.ascx.cs index 7abbc70d..ae89180b 100644 --- a/MP-TAB/WebUserControls/mod_regScarti.ascx.cs +++ b/MP-TAB/WebUserControls/mod_regScarti.ascx.cs @@ -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 + { - /// - /// registrato nuovo valore - /// - public event EventHandler eh_newVal; - /// - /// registrato nuovo valore - /// - public event EventHandler eh_reset; - /// - /// Oggetto datalayer specifico - /// - DataLayer DataLayerObj = new DataLayer(); - /// - /// caricamento pagina - /// - /// - /// - 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; - } - /// - /// Num pezzi scarto - /// - protected int numPzScarto - { - set - { - txtNumPz.Text = value.ToString(); - } - get - { - int answ = 0; - int.TryParse(txtNumPz.Text, out answ); - return answ; - } - } - /// - /// Verifica se abbia un ODL ATTIVO - /// - private void checkOdl() - { - lbtShowScarti.Visible = odlOk; - lblConfScarti.Visible = !odlOk; - lblMancaODL.Visible = !odlOk; - } - - /// - /// Se la machcina è MULTI --> mostro selettore - /// - private void fixSelMacc() - { - divSelMacc.Visible = isMulti; - fixSelMaccScarti(); - } - /// - /// Verifica se la macchina MAIN sia MULTI (da DatiMacchina / redis...) - /// - protected bool isMulti - { - get - { - return DataLayerObj.isMulti(idxMacchinaSession); - } - } - /// - /// Verifica se la macchina MAIN sia MULTI (da DatiMacchina / redis...) - /// - /// - /// restituisce css disabled SE odl NON OK... - /// - public string cssBtnConf - { - get - { - return odlOk ? "" : "disabled"; - } - } - /// - /// Verifica ODL OK (ovvero caricato x macchina...) - /// - public bool odlOk - { - get - { - bool answ = true; - // carico i dati preliminari: ODL - int idxOdl = 0; // userò ODL del turno - try + /// + /// registrato nuovo valore + /// + public event EventHandler eh_newVal; + /// + /// registrato nuovo valore + /// + public event EventHandler eh_reset; + /// + /// caricamento pagina + /// + /// + /// + 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; - } - } - /// - /// idx macchina selezionata - /// - 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); - } - } - /// - /// idx macchina selezionata - /// - public string idxMacchinaSession - { - get - { - return memLayer.ML.StringSessionObj("IdxMacchina"); - } - set - { - memLayer.ML.setSessionVal("IdxMacchina", value); - } - } - /// - /// cambio stato visibilità pannello e testo button - /// - /// - /// - protected void lbtShowContr_Click(object sender, EventArgs e) - { - switchBtnConferma(!divDetail.Visible); - } - /// - /// determina comportamento btn conferma - /// - 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) + /// + /// Num pezzi scarto + /// + 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 + /// + /// Verifica se abbia un ODL ATTIVO + /// + private void checkOdl() { - ddlSubMacc.SelectedValue = subMaccSel; + lbtShowScarti.Visible = odlOk; + lblConfScarti.Visible = !odlOk; + lblMancaODL.Visible = !odlOk; } - catch - { } - } - } - /// - /// Sotto sistema (macchina) selezionato - /// - public string subMaccSel - { - get - { - return memLayer.ML.StringSessionObj("subMaccSel"); - } - set - { - memLayer.ML.setSessionVal("subMaccSel", value); - } - } - /// - /// salvo produzione - /// - /// - /// - protected void lbtSalva_Click(object sender, EventArgs e) - { - salvaRegScarti("ND"); - } - /// - /// Effettua salvataggio in registro scarti - /// - 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(); - } - /// - /// rimanda alla pagina di dettaglio della macchina scelta - /// - /// - /// - 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()); - } - } + /// + /// Se la machcina è MULTI --> mostro selettore + /// + private void fixSelMacc() + { + divSelMacc.Visible = isMulti; + fixSelMaccScarti(); + } + /// + /// Verifica se la macchina MAIN sia MULTI (da DatiMacchina / redis...) + /// + /// + /// restituisce css disabled SE odl NON OK... + /// + public string cssBtnConf + { + get + { + return odlOk ? "" : "disabled"; + } + } + /// + /// Verifica ODL OK (ovvero caricato x macchina...) + /// + 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 = ""; + /// + /// idx macchina selezionata + /// + 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); + } + } + /// + /// cambio stato visibilità pannello e testo button + /// + /// + /// + protected void lbtShowContr_Click(object sender, EventArgs e) + { + switchBtnConferma(!divDetail.Visible); + } + /// + /// determina comportamento btn conferma + /// + 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 + { } + } + } + /// + /// salvo produzione + /// + /// + /// + protected void lbtSalva_Click(object sender, EventArgs e) + { + salvaRegScarti("ND"); + } + /// + /// Effettua salvataggio in registro scarti + /// + 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(); + } + + /// + /// rimanda alla pagina di dettaglio della macchina scelta + /// + /// + /// + 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 = ""; + } } - } } \ No newline at end of file diff --git a/MP-TAB/WebUserControls/mod_selPeriodo.ascx.cs b/MP-TAB/WebUserControls/mod_selPeriodo.ascx.cs index 52c22025..e8935872 100644 --- a/MP-TAB/WebUserControls/mod_selPeriodo.ascx.cs +++ b/MP-TAB/WebUserControls/mod_selPeriodo.ascx.cs @@ -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; /// @@ -308,15 +308,6 @@ namespace MoonProTablet.WebUserControls /// indica se il controllo debba fare update in automatico o attendere pressione button update da utente /// public bool autoUpdate { get; set; } - /// - /// wrapper traduzione - /// - /// - /// - public string traduci(object lemma) - { - return user_std.UtSn.Traduci(lemma.ToString()); - } #region gestione eventi diff --git a/MP-TAB/WebUserControls/mod_sendParameters.ascx.cs b/MP-TAB/WebUserControls/mod_sendParameters.ascx.cs index c2271bf7..586d8b1e 100644 --- a/MP-TAB/WebUserControls/mod_sendParameters.ascx.cs +++ b/MP-TAB/WebUserControls/mod_sendParameters.ascx.cs @@ -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) + { + } - /// - /// idx macchina selezionata - /// - public string idxMacchina - { - get - { - return memLayer.ML.StringSessionObj("IdxMacchina"); - } - set - { - memLayer.ML.setSessionVal("IdxMacchina", value); - } - } - /// - /// wrapper recupero parametri macchina - /// - /// - public List GetParameters() - { - List dcList = DataLayerObj.getCurrObjItems(idxMacchina); - return dcList; - } + /// + /// wrapper recupero parametri macchina + /// + /// + public List GetParameters() + { + List dcList = DataLayerObj.getCurrObjItems(idxMacchina); + return dcList; + } - public void updateParameter(string Original_uid, string reqValue) - { - // recupero items... - List dcList = DataLayerObj.getCurrObjItems(idxMacchina); - // cerco quello da aggiornare - objItem trovato = dcList.Find(obj => obj.uid == Original_uid); - List list2Update = new List(); - // 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 dcList = DataLayerObj.getCurrObjItems(idxMacchina); + // cerco quello da aggiornare + objItem trovato = dcList.Find(obj => obj.uid == Original_uid); + List list2Update = new List(); + // 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) + { + } } - } } \ No newline at end of file diff --git a/MP-TAB/WebUserControls/mod_slideMenu.ascx.cs b/MP-TAB/WebUserControls/mod_slideMenu.ascx.cs index 68bdb19c..77e15b09 100644 --- a/MP-TAB/WebUserControls/mod_slideMenu.ascx.cs +++ b/MP-TAB/WebUserControls/mod_slideMenu.ascx.cs @@ -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) + { + } + /// + /// Verifica se la pagina corrente sia URL indicato --> mostra ACTIVE + /// + /// + /// + 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; + } } - /// - /// Verifica se la pagina corrente sia URL indicato --> mostra ACTIVE - /// - /// - /// - 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; - } - /// - /// titolo pagina - /// - public string titolo - { - get - { - return devicesAuthProxy.getPage(Request.Url); - } - } - } } \ No newline at end of file diff --git a/MP-TAB/WebUserControls/mod_storicoTC.ascx.cs b/MP-TAB/WebUserControls/mod_storicoTC.ascx.cs index 8ed215ff..24275cf2 100644 --- a/MP-TAB/WebUserControls/mod_storicoTC.ascx.cs +++ b/MP-TAB/WebUserControls/mod_storicoTC.ascx.cs @@ -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) { diff --git a/MP-TAB/WebUserControls/mod_tempoMSMC.ascx.cs b/MP-TAB/WebUserControls/mod_tempoMSMC.ascx.cs index 36d8bddf..886864e8 100644 --- a/MP-TAB/WebUserControls/mod_tempoMSMC.ascx.cs +++ b/MP-TAB/WebUserControls/mod_tempoMSMC.ascx.cs @@ -4,344 +4,302 @@ using System.Web.UI; namespace MoonProTablet.WebUserControls { - public partial class mod_tempoMSMC : System.Web.UI.UserControl - { - /// - /// stringa UID univoca - /// - public string uid + public partial class mod_tempoMSMC : BaseUserControl { - get - { - return this.UniqueID.Replace("$", "_").Replace("-", "_"); - } - } - /// - /// modalità rendering controllo - /// - public timeControlMode modoControllo { get; set; } - /// - /// modalità controllo tempo - /// - public timeMode modoTempo - { - get - { - timeMode answ = timeMode.MC; - try + /// + /// modalità rendering controllo + /// + public timeControlMode modoControllo { get; set; } + /// + /// modalità controllo tempo + /// + 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); - } - } - /// - /// tempo min.cent - /// - protected decimal _tempoMC - { - get - { - decimal answ = 0; - try + /// + /// tempo min.cent + /// + 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); - } - } - /// - /// tempo min:sec - /// - protected TimeSpan _tempoMS - { - get - { - TimeSpan answ = new TimeSpan(0, 0, 0); - try + /// + /// tempo min:sec + /// + 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); - } - } - /// - /// INdica il formato del tempo IN INGRESSO (selezionato) - /// - public string labelTempoIN - { - get - { - string answ = ""; - if (modoTempo == timeMode.MC) + /// + /// INdica il formato del tempo IN INGRESSO (selezionato) + /// + public string labelTempoIN { - answ = "min.cent"; + get + { + string answ = ""; + if (modoTempo == timeMode.MC) + { + answ = "min.cent"; + } + else + { + answ = "min:sec"; + } + return answ; + } } - else + /// + /// caricamento pagina + /// + /// + /// + 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; - } - } - /// - /// caricamento pagina - /// - /// - /// - 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(); - } - } - /// - /// mostra i controlli secondo richiesta - /// - private void showControls() - { - if (modoControllo == timeControlMode.testo) - { - if (modoTempo == timeMode.MC) + /// + /// mostra i controlli secondo richiesta + /// + 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 + /// + /// num item x controllo secondi/centesimi + /// + 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) + /// + /// tempo selezionato in formato Minuti Secondi + /// + public TimeSpan tempoMS { - ddlSecondi.SelectedValue = Convert.ToInt32((tempoMC - Math.Floor(tempoMC)) * 100).ToString(); + get + { + return _tempoMS; + } + set + { + _tempoMS = value; + _tempoMC = minSec2Cent(value); + showControls(); + } } - else + /// + /// verifica se TC sia stato caricato dai controlli, se zero va caricato (almento tentato caricamento...) + /// + 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); - } - } - /// - /// num item x controllo secondi/centesimi - /// - public int numItemSec - { - get - { - int answ = 60; - if (modoTempo == timeMode.MS) + /// + /// tempo selezionato in formato Minuti Centesimi + /// + public decimal tempoMC { - answ = 59; + get + { + return _tempoMC; + } + set + { + _tempoMC = value; + _tempoMS = minCent2Sec(value); + showControls(); + } } - else + /// + /// cambiato valore tempo... + /// + /// + /// + protected void txtTempo_TextChanged(object sender, EventArgs e) { - answ = 99; + updFromTextBox(); } - return answ; - } - } - /// - /// tempo selezionato in formato Minuti Secondi - /// - public TimeSpan tempoMS - { - get - { - return _tempoMS; - } - set - { - _tempoMS = value; - _tempoMC = minSec2Cent(value); - showControls(); - } - } - /// - /// verifica se TC sia stato caricato dai controlli, se zero va caricato (almento tentato caricamento...) - /// - public void checkTC() - { - if (tempoMC == 0) - { - if (modoControllo == timeControlMode.testo) + /// + /// update da casella testo + /// + 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 + /// + /// update da controlli dropdown + /// + 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); + } + } } - } - } - /// - /// tempo selezionato in formato Minuti Centesimi - /// - public decimal tempoMC - { - get - { - return _tempoMC; - } - set - { - _tempoMC = value; - _tempoMS = minCent2Sec(value); - showControls(); - } - } - /// - /// conversione da tempo minuti/secondi a minuti centesimali - /// - /// - /// - protected decimal minSec2Cent(TimeSpan valore) - { - Decimal answ = 0; - try - { - answ = Math.Round((valore.Minutes + (decimal)valore.Seconds / 60), 3); - } - catch - { } - return answ; - } - /// - /// conversione da tempo minuti centesimali a minuti/secondi - /// - /// - /// - 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; - } - /// - /// cambiato valore tempo... - /// - /// - /// - protected void txtTempo_TextChanged(object sender, EventArgs e) - { - updFromTextBox(); - } - /// - /// update da casella testo - /// - private void updFromTextBox() - { - if (modoControllo == timeControlMode.testo) - { - if (modoTempo == timeMode.MC) + /// + /// selezione minuti + /// + /// + /// + protected void ddlMinuti_SelectedIndexChanged(object sender, EventArgs e) { - tempoMC = Convert.ToDecimal(txtTempo.Text.Replace(".", ",")); + updFromDropDown(); } - else + /// + /// selezione secondi/centesimi + /// + /// + /// + 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(); } - } } - /// - /// update da controlli dropdown - /// - 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); - } - } - } - /// - /// selezione minuti - /// - /// - /// - protected void ddlMinuti_SelectedIndexChanged(object sender, EventArgs e) - { - updFromDropDown(); - } - /// - /// selezione secondi/centesimi - /// - /// - /// - protected void ddlSecondi_SelectedIndexChanged(object sender, EventArgs e) - { - updFromDropDown(); - } - } } /// @@ -349,14 +307,14 @@ namespace MoonProTablet.WebUserControls /// public enum timeMode { - /// - /// Minuti Secondi - /// - MS = 0, - /// - /// Minuti Centesimali - /// - MC = 1 + /// + /// Minuti Secondi + /// + MS = 0, + /// + /// Minuti Centesimali + /// + MC = 1 } /// @@ -364,12 +322,12 @@ public enum timeMode /// public enum timeControlMode { - /// - /// controllo textbox - /// - testo = 0, - /// - /// selettori dropdown list - /// - selettori = 1 + /// + /// controllo textbox + /// + testo = 0, + /// + /// selettori dropdown list + /// + selettori = 1 } \ No newline at end of file diff --git a/MP-TAB/WebUserControls/mod_title.ascx.cs b/MP-TAB/WebUserControls/mod_title.ascx.cs index f51c21d4..2757b322 100644 --- a/MP-TAB/WebUserControls/mod_title.ascx.cs +++ b/MP-TAB/WebUserControls/mod_title.ascx.cs @@ -6,208 +6,194 @@ using System.Web.UI; namespace MoonProTablet.WebUserControls { - public partial class mod_title : System.Web.UI.UserControl - { - /// - /// user agent corrente - /// - protected string userAgent = ""; - /// - /// IP corrente - /// - protected string postazione_IP = ""; - /// - /// Oggetto datalayer specifico - /// - DataLayer DataLayerObj = new DataLayer(); - /// - /// Versione corrente sw - /// - protected Version currVersion + public partial class mod_title : BaseUserControl { - get - { - return System.Reflection.Assembly.GetExecutingAssembly().GetName().Version; - } - } - /// - /// caricamento pagina - /// - /// - /// - 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(); - } - } - /// - /// verifica al presenza di un cookie VALIDO per autorizzare il device - /// - 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 == "") + /// + /// user agent corrente + /// + protected string userAgent = ""; + /// + /// IP corrente + /// + protected string postazione_IP = ""; + /// + /// Versione corrente sw + /// + 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; + } + } + /// + /// caricamento pagina + /// + /// + /// + 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(); + } + } + /// + /// verifica al presenza di un cookie VALIDO per autorizzare il device + /// + 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); + } + } + /// + /// URL stringa di UPDATE... + /// + 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; + } + /// + /// Verifica se la pagina corrente sia URL indicato --> mostra ACTIVE + /// + /// + /// + public string checkPage(object navUrl) + { + string answ = ""; + if (navUrl.ToString().Replace(".aspx", "").Replace("~/", "") == titolo.Replace(".aspx", "")) + { + answ = "active btn-primary"; + } + return answ; + } + /// + /// Cognome Nome utente + /// + 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); - } - } - /// - /// URL stringa di UPDATE... - /// - 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; - } - /// - /// Verifica se la pagina corrente sia URL indicato --> mostra ACTIVE - /// - /// - /// - public string checkPage(object navUrl) - { - string answ = ""; - if (navUrl.ToString().Replace(".aspx", "").Replace("~/", "") == titolo.Replace(".aspx", "")) - { - answ = "active btn-primary"; - } - return answ; - } - /// - /// titolo pagina - /// - public string titolo - { - get - { - return devicesAuthProxy.getPage(Request.Url); - } - } - /// - /// Cognome Nome utente - /// - public string MatrOpr - { - get - { - return DataLayerObj.MatrOpr.ToString(); - } - } - /// - /// Cognome Nome utente - /// - public string CognomeNome - { - get - { - string swData = ""; - string cognomeNome = ""; - try + /// + /// Cognome Nome utente + /// + 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; - } } - } } \ No newline at end of file diff --git a/MP-TAB/WebUserControls/mod_turni.ascx.cs b/MP-TAB/WebUserControls/mod_turni.ascx.cs index ce8d05d8..9573532e 100644 --- a/MP-TAB/WebUserControls/mod_turni.ascx.cs +++ b/MP-TAB/WebUserControls/mod_turni.ascx.cs @@ -4,84 +4,66 @@ using System; namespace MoonProTablet.WebUserControls { - public partial class mod_turni : System.Web.UI.UserControl - { - /// - /// registrato nuovo valore - /// - public event EventHandler eh_updated; - /// - /// Oggetto datalayer specifico - /// - DataLayer DataLayerObj = new DataLayer(); - /// - /// idx macchina selezionata - /// - public string idxMacchina + public partial class mod_turni : BaseUserControl { - get - { - return memLayer.ML.StringSessionObj("IdxMacchina"); - } - set - { - memLayer.ML.setSessionVal("IdxMacchina", value); - } - } - /// - /// caricamento pagina - /// - /// - /// - protected void Page_Load(object sender, EventArgs e) - { - setupTurni(); - } - /// - /// setta i valori turni attivi x macchina - /// - 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 - { } - } - /// - /// fa toggle del valore attivo/disattivo del turno - /// - /// - private void toggleTurno(int turno) - { - DataLayerObj.taTurniMacc.stp_turniMacchineUpdateTurno(idxMacchina.ToString(), turno); - setupTurni(); - // sollevo evento! - if (eh_updated != null) - { - eh_updated(this, new EventArgs()); - } - } + /// + /// registrato nuovo valore + /// + public event EventHandler eh_updated; + /// + /// caricamento pagina + /// + /// + /// + protected void Page_Load(object sender, EventArgs e) + { + setupTurni(); + } + /// + /// setta i valori turni attivi x macchina + /// + 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 + { } + } + /// + /// fa toggle del valore attivo/disattivo del turno + /// + /// + 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); + } } - } } \ No newline at end of file