diff --git a/MP-TAB/WebUserControls/mod_confProd.ascx.cs b/MP-TAB/WebUserControls/mod_confProd.ascx.cs index 54d23ac6..e019a535 100644 --- a/MP-TAB/WebUserControls/mod_confProd.ascx.cs +++ b/MP-TAB/WebUserControls/mod_confProd.ascx.cs @@ -7,99 +7,92 @@ namespace MoonProTablet.WebUserControls { public partial class mod_confProd : BaseUserControl { + #region Protected Fields + /// /// indica conferma con rettifica (evento 121) /// protected bool confRett = memLayer.ML.CRB("confRett"); - /// - /// registrato nuovo valore - /// - public event EventHandler eh_inserting; - /// - /// registrato nuovo valore - /// - public event EventHandler eh_newVal; - /// - /// registrato nuovo valore - /// - public event EventHandler eh_reset; - /// - /// Data-Ora ultimo update valori produzione - /// - public DateTime dtReqUpdate - { - get - { - DateTime answ = DateTime.Now; - DateTime.TryParse(memLayer.ML.StringSessionObj("dtReqUpdate"), out answ); - return answ; - } - set - { - memLayer.ML.setSessionVal("dtReqUpdate", value); - } - } + + #endregion Protected Fields + + #region Public Fields + /// /// Dati produzioen rilevati /// public DS_ProdTempi.StatoProdRow datiProdAct; + + #endregion Public Fields + + #region Public Events + /// - /// caricamento pagina + /// registrato nuovo valore /// - /// - /// - protected void Page_Load(object sender, EventArgs e) + public event EventHandler eh_inserting; + + /// + /// registrato nuovo valore + /// + public event EventHandler eh_newVal; + + /// + /// registrato nuovo valore + /// + public event EventHandler eh_reset; + + #endregion Public Events + + #region Protected Properties + + /// + /// Verifica se la macchina MAIN sia MULTI (da DatiMacchina / redis...) + /// + protected bool isMulti { - if (!Page.IsPostBack) + get { - checkAll(); - if (isMulti) - { - // sollevo evento! - if (eh_reset != null) - { - eh_reset(this, new EventArgs()); - } - } + return DataLayerObj.isMulti(idxMacchina); } } - /// - /// Reset parametri x calcolo pezzi (no pezzi lasciati, dataora attuale...) - /// - private void resetParam() - { - dtReqUpdate = DateTime.Now; - numPzLasciati = 0; - } /// - /// Aggiorno valori produzione alla data richiesta... + /// Numero pezzi PRODOTTI da ultima conferma /// - /// - public void doUpdate() - { - datiProdAct = DataLayerObj.taStatoProd.GetData(idxMacchinaSel, dtReqUpdate)[0]; - // aggiorno visualizzazione... - numPzProdotti = datiProdAct.PzTotODL; - numPz2Rec = datiProdAct.Pz2RecTot; - numPzScaConf = datiProdAct.PzConfScarto; - numPzBuoniConf = datiProdAct.PzConfBuoni; - numPzProdotti2Rec = datiProdAct.Pz2RecTot; - numPzScarto2Rec = datiProdAct.Pz2RecScarto; - } - /// - /// Numero pezzi PRODOTTI GLOBALI - /// - protected int numPzProdotti + protected int numPz2Rec { set { - lblPzTotODL.Text = value.ToString(); + lblPz2RecTot.Text = value.ToString(); } } + + /// + /// Numero pezzi BUONI già confermati + /// + protected int numPzBuoniConf + { + set + { + lblPzConfBuoni.Text = value.ToString(); + } + } + + /// + /// Numero pezzi confermati (buoni - scarto) + /// + protected int numPzConfermati + { + get + { + return numPzProdotti2Rec - numPzScarto2Rec; + } + } + /// /// Numero pezzi da LASCIARE non dichiarati - /// + /// protected int numPzLasciati { set @@ -118,36 +111,18 @@ namespace MoonProTablet.WebUserControls return answ; } } + /// - /// Numero pezzi PRODOTTI da ultima conferma + /// Numero pezzi PRODOTTI GLOBALI /// - protected int numPz2Rec + protected int numPzProdotti { set { - lblPz2RecTot.Text = value.ToString(); - } - } - /// - /// Numero pezzi SCARTO già confermati - /// - protected int numPzScaConf - { - set - { - lblPzConfScarto.Text = value.ToString(); - } - } - /// - /// Numero pezzi BUONI già confermati - /// - protected int numPzBuoniConf - { - set - { - lblPzConfBuoni.Text = value.ToString(); + lblPzTotODL.Text = value.ToString(); } } + /// /// Numero pezzi PRODOTTI da registrare /// da ultima conferma @@ -169,6 +144,18 @@ namespace MoonProTablet.WebUserControls return answ; } } + + /// + /// Numero pezzi SCARTO già confermati + /// + protected int numPzScaConf + { + set + { + lblPzConfScarto.Text = value.ToString(); + } + } + /// /// Numero pezzi SCARTATI da registrare /// @@ -191,72 +178,11 @@ namespace MoonProTablet.WebUserControls return answ; } } - /// - /// Numero pezzi confermati (buoni - scarto) - /// - protected int numPzConfermati - { - get - { - return numPzProdotti2Rec - numPzScarto2Rec; - } - } - private void checkAll() - { - updateOdl(); - checkConfig(); - fixSelMacc(); - checkOdl(); - lblOut.Text = ""; - switchBtnConferma(false); - lbtShowConfProd.Visible = odlOk; - lblConfProd.Visible = !odlOk; - } - /// - /// verifica config x modalità permesse - /// - private void checkConfig() - { - // verifico SE sia permesso gestire i "Pezzi lasciati" in macchina... - lblNumLasciati.Visible = memLayer.ML.cdvb("enablePzProdLasciati"); - txtNumLasciati.Visible = memLayer.ML.cdvb("enablePzProdLasciati"); - } - /// - /// Verifica se abbia un ODL ATTIVO - /// - private void checkOdl() - { - lbtShowConfProd.Visible = odlOk; - lblConfProd.Visible = !odlOk; - lblMancaODL.Visible = !odlOk; - } + #endregion Protected Properties - /// - /// Verifica se la macchina MAIN sia MULTI (da DatiMacchina / redis...) - /// - protected bool isMulti - { - get - { - return DataLayerObj.isMulti(idxMacchina); - } - } + #region Public Properties - /// - /// Se la machcina è MULTI --> mostro selettore - /// - private void fixSelMacc() - { - divSelMacc.Visible = isMulti; - if (isMulti) - { - // salvo selezione submacc - ddlSubMacc.DataBind(); - subMaccSel = ddlSubMacc.SelectedValue; - } - updateOdl(); - } /// /// restituisce css disabled SE odl NON OK... /// @@ -267,32 +193,22 @@ namespace MoonProTablet.WebUserControls return odlOk ? "" : "disabled"; } } + /// - /// Verifica ODL OK (ovvero caricato x macchina...) + /// Data-Ora ultimo update valori produzione /// - public bool odlOk + public DateTime dtReqUpdate { get { - bool answ = true; - // se ODL > 0 è ok!!! - answ = (idxOdl > 0); + DateTime answ = DateTime.Now; + DateTime.TryParse(memLayer.ML.StringSessionObj("dtReqUpdate"), out answ); return answ; } - } - /// - /// ODL correntemente sulla macchina - /// - cerca in Redis (TTL 5 sec) - /// - altrimenti recupera da DB... - /// - protected void updateOdl() - { - // userò ODL del turno - int answ = 0; - // cerco da redis... - int.TryParse(DataLayerObj.currODL(idxMacchinaSel, true), out answ); - // salvo! - idxOdl = answ; + set + { + memLayer.ML.setSessionVal("dtReqUpdate", value); + } } /// @@ -322,14 +238,102 @@ namespace MoonProTablet.WebUserControls memLayer.ML.setSessionVal("IdxMacchina", value); } } + /// - /// cambio stato visibilità pannello e testo button + /// Verifica ODL OK (ovvero caricato x macchina...) /// - /// - /// - protected void lbtShowConfProd_Click(object sender, EventArgs e) + public bool odlOk { - switchBtnConferma(!divInnovazioni.Visible); + get + { + bool answ = true; + // se ODL > 0 è ok!!! + answ = (idxOdl > 0); + return answ; + } + } + + #endregion Public Properties + + #region Private Methods + + private void checkAll() + { + updateOdl(); + checkConfig(); + fixSelMacc(); + checkOdl(); + lblOut.Text = ""; + switchBtnConferma(false); + lbtShowConfProd.Visible = odlOk; + lblConfProd.Visible = !odlOk; + } + + /// + /// verifica config x modalità permesse + /// + private void checkConfig() + { + // verifico SE sia permesso gestire i "Pezzi lasciati" in macchina... + lblNumLasciati.Visible = memLayer.ML.cdvb("enablePzProdLasciati"); + txtNumLasciati.Visible = memLayer.ML.cdvb("enablePzProdLasciati"); + } + + /// + /// Verifica se abbia un ODL ATTIVO + /// + private void checkOdl() + { + lbtShowConfProd.Visible = odlOk; + lblConfProd.Visible = !odlOk; + lblMancaODL.Visible = !odlOk; + } + + /// + /// Registra conferma produzione in modalità nuova (con rettifica pezzi lasciati) o legacy (con anticipo periodo) + /// + private bool effettuaConfermaProd() + { + bool fatto = false; + if (confRett) + { + // confermo al netto dei pezzi lasciati... + fatto = DataLayerObj.confermaProdMacchinaFull(idxMacchinaSel, memLayer.ML.CRI("modoConfProd"), numPzConfermati - numPzLasciati, numPzLasciati, numPzScarto2Rec, dtReqUpdate); + } + else + { + fatto = DataLayerObj.confermaProdMacchina(idxMacchinaSel, memLayer.ML.CRI("modoConfProd"), numPzConfermati, numPzScarto2Rec, dtReqUpdate); + } + return fatto; + } + + /// + /// Se la machcina è MULTI --> mostro selettore + /// + private void fixSelMacc() + { + divSelMacc.Visible = isMulti; + if (isMulti) + { + try + { + // salvo selezione submacc + ddlSubMacc.DataBind(); + subMaccSel = ddlSubMacc.SelectedValue; + } + catch + { } + } + updateOdl(); + } + + /// + /// Reset parametri x calcolo pezzi (no pezzi lasciati, dataora attuale...) + /// + private void resetParam() + { + dtReqUpdate = DateTime.Now; + numPzLasciati = 0; } /// @@ -375,56 +379,6 @@ namespace MoonProTablet.WebUserControls } } - /// - /// salvo produzione - /// - /// - /// - protected void lbtSalva_Click(object sender, EventArgs e) - { - // effettua conferma con conf da DB del tipo (giorni / turni / periodo - bool fatto = effettuaConfermaProd(); - // refresh tabella dati tablet... - DataLayerObj.taMSE.forceRecalc(0, idxMacchinaSel); - // mostro output - lblOut.Text = string.Format("Confermata la produzione per {0} pezzi! (+{1} pz scarto) alle {2:yyyy-MM-dd HH:mm:ss}", numPzConfermati, numPzScarto2Rec, dtReqUpdate); - // cambio button conferma... - switchBtnConferma(!txtNumPezzi.Enabled); - // sollevo evento! - if (eh_newVal != null) - { - eh_newVal(this, new EventArgs()); - } - doUpdate(); - } - /// - /// Registra conferma produzione in modalità nuova (con rettifica pezzi lasciati) o legacy (con anticipo periodo) - /// - private bool effettuaConfermaProd() - { - bool fatto = false; - if (confRett) - { - // confermo al netto dei pezzi lasciati... - fatto = DataLayerObj.confermaProdMacchinaFull(idxMacchinaSel, memLayer.ML.CRI("modoConfProd"), numPzConfermati - numPzLasciati, numPzLasciati, numPzScarto2Rec, dtReqUpdate); - } - else - { - fatto = DataLayerObj.confermaProdMacchina(idxMacchinaSel, memLayer.ML.CRI("modoConfProd"), numPzConfermati, numPzScarto2Rec, dtReqUpdate); - } - return fatto; - } - - /// - /// update post modifica pz buoni - /// - /// - /// - protected void txtNumPezzi_TextChanged(object sender, EventArgs e) - { - lblOut.Text = ""; - updatePzBuoni(); - } /// /// aggiorna visualizzazione pz buoni /prodotti - scarti) /// @@ -454,24 +408,10 @@ namespace MoonProTablet.WebUserControls // aggiorno la data calcolo + pezzi buoni... lblDtRec.Text = dtReqUpdate.ToString(); } - /// - /// Update pz lasciati --> aggiorno! - /// - /// - /// - protected void txtNumLasciati_TextChanged(object sender, EventArgs e) - { - lblOut.Text = ""; - updatePzBuoni(); - } - protected void ddlSubMacc_SelectedIndexChanged(object sender, EventArgs e) - { - subMaccSel = ddlSubMacc.SelectedValue; - // salvo ODL - DataLayerObj.taMSE.getByIdxMaccAndSub(idxMacchinaSel, subMaccSel); - //altri controlli - checkAll(); - } + + #endregion Private Methods + + #region Protected Methods protected void ddlSubMacc_DataBound(object sender, EventArgs e) { @@ -488,5 +428,126 @@ namespace MoonProTablet.WebUserControls } } + protected void ddlSubMacc_SelectedIndexChanged(object sender, EventArgs e) + { + subMaccSel = ddlSubMacc.SelectedValue; + // salvo ODL + DataLayerObj.taMSE.getByIdxMaccAndSub(idxMacchinaSel, subMaccSel); + //altri controlli + checkAll(); + } + + /// + /// salvo produzione + /// + /// + /// + protected void lbtSalva_Click(object sender, EventArgs e) + { + // effettua conferma con conf da DB del tipo (giorni / turni / periodo + bool fatto = effettuaConfermaProd(); + // refresh tabella dati tablet... + DataLayerObj.taMSE.forceRecalc(0, idxMacchinaSel); + // mostro output + lblOut.Text = string.Format("Confermata la produzione per {0} pezzi! (+{1} pz scarto) alle {2:yyyy-MM-dd HH:mm:ss}", numPzConfermati, numPzScarto2Rec, dtReqUpdate); + // cambio button conferma... + switchBtnConferma(!txtNumPezzi.Enabled); + // sollevo evento! + if (eh_newVal != null) + { + eh_newVal(this, new EventArgs()); + } + doUpdate(); + } + + /// + /// cambio stato visibilità pannello e testo button + /// + /// + /// + protected void lbtShowConfProd_Click(object sender, EventArgs e) + { + switchBtnConferma(!divInnovazioni.Visible); + } + + /// + /// caricamento pagina + /// + /// + /// + protected void Page_Load(object sender, EventArgs e) + { + if (!Page.IsPostBack) + { + checkAll(); + if (isMulti) + { + // sollevo evento! + if (eh_reset != null) + { + eh_reset(this, new EventArgs()); + } + } + } + } + + /// + /// Update pz lasciati --> aggiorno! + /// + /// + /// + protected void txtNumLasciati_TextChanged(object sender, EventArgs e) + { + lblOut.Text = ""; + updatePzBuoni(); + } + + /// + /// update post modifica pz buoni + /// + /// + /// + protected void txtNumPezzi_TextChanged(object sender, EventArgs e) + { + lblOut.Text = ""; + updatePzBuoni(); + } + + /// + /// ODL correntemente sulla macchina + /// - cerca in Redis (TTL 5 sec) + /// - altrimenti recupera da DB... + /// + protected void updateOdl() + { + // userò ODL del turno + int answ = 0; + // cerco da redis... + int.TryParse(DataLayerObj.currODL(idxMacchinaSel, true), out answ); + // salvo! + idxOdl = answ; + } + + #endregion Protected Methods + + #region Public Methods + + /// + /// Aggiorno valori produzione alla data richiesta... + /// + /// + public void doUpdate() + { + datiProdAct = DataLayerObj.taStatoProd.GetData(idxMacchinaSel, dtReqUpdate)[0]; + // aggiorno visualizzazione... + numPzProdotti = datiProdAct.PzTotODL; + numPz2Rec = datiProdAct.Pz2RecTot; + numPzScaConf = datiProdAct.PzConfScarto; + numPzBuoniConf = datiProdAct.PzConfBuoni; + numPzProdotti2Rec = datiProdAct.Pz2RecTot; + numPzScarto2Rec = datiProdAct.Pz2RecScarto; + } + + #endregion Public Methods } } \ No newline at end of file