using MapoDb; using SteamWare; using System; namespace MoonPro.WebUserControls { public partial class mod_infoAggiuntive : System.Web.UI.UserControl { protected void Page_Load(object sender, EventArgs e) { popolaLabels(); } /// /// popola le labels /// private void popolaLabels() { // popolo labels sezione ODL setLabelsODL(); // popolo labels sezione periodo selezionato setLabelsPeriodo(); } /// /// imposta le labels sezione "ODL" /// /// /// private void setLabelsODL() { int odl = 0; DateTime dataFrom = DateTime.Now; DateTime dataTo = DateTime.Now; // label ODL try { DS_ProdTempi.ODLRow rigaOdl = DataLayer.obj.taODL.getByMacchina(idxMacchina)[0]; odl = rigaOdl.IdxODL; dataFrom = rigaOdl.DataInizio; lblOdl.Text = string.Format("ODL num: {0}, iniziato il {1:dd/MM/yy} alle {1:HH:mm}", odl, dataFrom); } catch { lblOdl.Text = "n/a"; } /************************************ * data la postazione corrente decide cosa mostrare e come ************************************/ MapoDb.DS_ProdTempi.stp_repDonati_getDatiProdMacchinaRow rigaProd = DataLayer.obj.taDatiProdMacch.GetData(idxMacchina)[0]; lblCodArticolo.Text = rigaProd.CodArticolo; lblNumPzLanciati.Text = string.Format("{0} pz.", rigaProd.PezziLanciati); lblNumPzConf.Text = string.Format("{0} pz.", rigaProd.PezziConf); lblNumPzFatti.Text = string.Format("({0} pz.)", rigaProd.PezziProd); int pezziRimConf = rigaProd.PezziLanciati - rigaProd.PezziConf; int pezziRim = rigaProd.PezziLanciati - rigaProd.PezziProd; if (pezziRimConf > 0) { lblPezziRestantiConf.Text = string.Format("{0} pz.", pezziRimConf); } else { pezziRim = 0; lblPezziRestantiConf.Text = string.Format("!!! {0} !!!", pezziRimConf); lblPezziRestantiConf.ForeColor = System.Drawing.Color.Red; } if (pezziRim > 0) { lblPezziRestanti.Text = string.Format("({0} pz.)", pezziRim); } else { pezziRim = 0; lblPezziRestanti.Text = string.Format("!!! {0} !!!", pezziRim); lblPezziRestanti.ForeColor = System.Drawing.Color.Red; } /************************************ * imposto i TEMPI impiegati/rimanenti ************************************/ lblTDispImpiegatoConf.Text = string.Format("{0:0.0} h", rigaProd.PezziConf * rigaProd.TCAssegnato / 60); lblTDispImpiegato.Text = string.Format("({0:0.0} h)", rigaProd.PezziProd * rigaProd.TCAssegnato / 60); lblTRimanenteConf.Text = string.Format("{0:0.0} h", pezziRimConf * rigaProd.TCAssegnato / 60); lblTRimanente.Text = string.Format("({0:0.0} h)", pezziRim * rigaProd.TCAssegnato / 60); /************************************ * calcolo efficienza totale * se il calcolo non è possibile mette n/a ************************************/ decimal tempoProd = rigaProd.TCAssegnato * rigaProd.PezziConf; try { lblEfficienzaTot.Text = Convert.ToString(String.Format("{0:p2}", tempoProd / rigaProd.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 / rigaProd.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 / rigaProd.TempoRun / 100)); } catch { lblEfficienzaEff.Text = "n/a"; } /************************************ * imposto i TEMPI CICLO ************************************/ // riporto Tempo ciclo impostato lblTcImpostato.Text = Convert.ToString(String.Format("{0:0.###}", rigaProd.TCAssegnato)); // riporto Tempo ciclo medio lblTcMedio.Text = Convert.ToString(String.Format("{0:0.###}", rigaProd.TCMedio)); lblTcMedioRT.Text = Convert.ToString(String.Format("({0:0.###})", rigaProd.TCMedioRT)); // riporto Tempo ciclo lavoro lblTcLavoro.Text = Convert.ToString(String.Format("{0:0.###}", rigaProd.TCLav)); lblTcLavoroRT.Text = Convert.ToString(String.Format("({0:0.###})", rigaProd.TCLavRT)); // riporto Tempo ciclo effettivo/tecnico, come media dei 10 migliori delle ultime 8 ore lblTcEffettivo.Text = Convert.ToString(String.Format("{0:0.###}", rigaProd.TCEff)); lblTcEffettivoRT.Text = Convert.ToString(String.Format("({0:0.###})", rigaProd.TCEffRT)); /************************************ * Sistemo efficienze RT da tempi ciclo ************************************/ try { lblEfficienzaTotRT.Text = Convert.ToString(String.Format("({0:p2})", rigaProd.TCAssegnato / rigaProd.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})", rigaProd.TCAssegnato / rigaProd.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})", rigaProd.TCAssegnato / rigaProd.TCEffRT)); } catch { lblEfficienzaEffRT.Text = "n/a"; } } /// /// imposta le labels sezione "Periodo" /// /// /// private void setLabelsPeriodo() { DateTime dataFrom = Convert.ToDateTime(memLayer.ML.objSessionObj("_inizio")); DateTime dataTo = Convert.ToDateTime(memLayer.ML.objSessionObj("_fine")); lblPeriodo.Text = string.Format("Periodo: {0:dd/MM/yy HH:mm} --> {1:dd/MM/yy HH:mm}", dataFrom, dataTo); /************************************ * recupero dati macchina / periodo ************************************/ MapoDb.DS_ProdTempi.stp_repDonati_getDatiProdMacchinaPeriodoRow rigaProd = DataLayer.obj.taDatiProdMacchPer.GetData(idxMacchina, dataFrom, dataTo)[0]; /************************************ * calcolo pezzi fatti periodo ************************************/ int pezziFatti = 0; try { pezziFatti = rigaProd.PezziProd; } catch { pezziFatti = DataLayer.obj.taTempiCicloRilevati.getByMacchinaPeriodo(idxMacchina, dataFrom, dataTo).Rows.Count; } lblNumPzFattiPer.Text = string.Format("({0} pz.)", pezziFatti); /************************************ * imposto i TEMPI CICLO ************************************/ // riporto Tempo ciclo impostato lblTcImpostatoPerRT.Text = Convert.ToString(String.Format("{0:0.###}", rigaProd.TCAssegnato)); // riporto Tempo ciclo medio lblTcMedioPerRT.Text = Convert.ToString(String.Format("({0:0.###})", rigaProd.TCMedioRT)); // riporto Tempo ciclo lavoro lblTcLavoroPerRT.Text = Convert.ToString(String.Format("({0:0.###})", rigaProd.TCLavRT)); // riporto Tempo ciclo effettivo/tecnico, come media dei 10 migliori delle ultime 8 ore lblTcEffettivoPerRT.Text = Convert.ToString(String.Format("({0:0.###})", rigaProd.TCEffRT)); /************************************ * Sistemo efficienze RT da tempi ciclo ************************************/ try { lblEfficienzaTotPerRT.Text = Convert.ToString(String.Format("({0:p2})", rigaProd.TCAssegnato / rigaProd.TCMedioRT)); } catch { lblEfficienzaTotPerRT.Text = "n/a"; } // calcolo efficienza lavoro - se il calcolo non è possibile mette n/a try { lblEfficienzaLavoroPerRT.Text = Convert.ToString(String.Format("({0:p2})", rigaProd.TCAssegnato / rigaProd.TCLavRT)); } catch { lblEfficienzaLavoroPerRT.Text = "n/a"; } // calcolo efficienza Teorica - se il calcolo non è possibile mette n/a try { lblEfficienzaEffPerRT.Text = Convert.ToString(String.Format("({0:p2})", rigaProd.TCAssegnato / rigaProd.TCEffRT)); } catch { lblEfficienzaEffPerRT.Text = "n/a"; } } /// /// idx della macchina da mostrare /// public string idxMacchina { get { string idxMacchina = "1"; try { idxMacchina = (string)Session["IdxMacchina"]; } catch { } return idxMacchina; } set { Session["IdxMacchina"] = value; } } /// /// aggiorna visualizzazione /// public void doUpdate() { popolaLabels(); } } }