267 lines
11 KiB
C#
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();
|
|
}
|
|
}
|
|
} |