Files
MoonPro.net/MP-DASH/WebUserControls/mod_infoAggiuntive.ascx.cs
T
2018-06-08 09:48:15 +02:00

267 lines
11 KiB
C#

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();
}
/// <summary>
/// popola le labels
/// </summary>
private void popolaLabels()
{
// popolo labels sezione ODL
setLabelsODL();
// popolo labels sezione periodo selezionato
setLabelsPeriodo();
}
/// <summary>
/// imposta le labels sezione "ODL"
/// </summary>
/// <param name="odl"></param>
/// <param name="dataFrom"></param>
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";
}
}
/// <summary>
/// imposta le labels sezione "Periodo"
/// </summary>
/// <param name="odl"></param>
/// <param name="dataFrom"></param>
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";
}
}
/// <summary>
/// idx della macchina da mostrare
/// </summary>
public string idxMacchina
{
get
{
string idxMacchina = "1";
try
{
idxMacchina = (string)Session["IdxMacchina"];
}
catch
{
}
return idxMacchina;
}
set
{
Session["IdxMacchina"] = value;
}
}
/// <summary>
/// aggiorna visualizzazione
/// </summary>
public void doUpdate()
{
popolaLabels();
}
}
}