Fix selezione macchina x nuovo ODL ed errori relativi

This commit is contained in:
Samuele E. Locatelli
2020-11-16 11:23:45 +01:00
parent 5c83a5b276
commit f478a8e061
6 changed files with 189 additions and 125 deletions
+15
View File
@@ -86,6 +86,21 @@ namespace MoonProTablet.WebUserControls
}
}
/// <summary>
/// Idx macchina selezionata FIX (esempio x nuovo ODL su doppia tavola)
/// </summary>
public string idxMacchinaFix
{
get
{
return memLayer.ML.StringSessionObj("IdxMacchinaFix");
}
set
{
memLayer.ML.setSessionVal("IdxMacchinaFix", value);
}
}
/// <summary>
/// idxOdl corrente in sessione
/// </summary>
+26 -12
View File
@@ -7,17 +7,17 @@ namespace MoonProTablet.WebUserControls
{
public partial class cmp_newODL : BaseUserControl
{
#region Public Events
/// <summary>
/// registrato nuovo valore
/// </summary>
public event EventHandler eh_newVal;
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
setDefaults();
}
}
#endregion Public Events
#region Private Methods
/// <summary>
/// imposta valori std
/// </summary>
@@ -28,6 +28,10 @@ namespace MoonProTablet.WebUserControls
txtTC_sec.Text = "0";
}
#endregion Private Methods
#region Protected Methods
protected void lbtCreaOdlProvv_Click(object sender, EventArgs e)
{
// effettua creazione ODL provvisorio e riporta a parent...
@@ -40,13 +44,13 @@ namespace MoonProTablet.WebUserControls
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];
DataLayerObj.taODL.insertProvv(ddlArticolo.SelectedValue, DataLayerObj.MatrOpr, idxMacchinaFix, numPz, tCiclo, note);
// calcolo stringa macchina e articolo...
var rMacchina = DataLayerObj.taMacchine.GetByIdx(idxMacchinaFix)[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 macchina = string.Format("{0} ({1} | {2} | {3})", rMacchina.Nome, idxMacchinaFix, 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...)
// 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.<br/>Macchina: <b>{0}</b><br>Articolo: <b>{1}</b><br>Lanciati <b>{2}</b> pezzi con T.Ciclo <b>{3:N3}</b> (min.cent) / <b>{4}:{5}</b> (min:sec).<br><br>Note operatore: <b>{6}</b>", macchina, articolo, numPz, tCiclo, numMin, numSec, note);
gestEmail.geAuth.mandaEmail(memLayer.ML.CRS("_fromEmail"), memLayer.ML.CRS("_adminEmail"), subject, oggetto);
@@ -57,10 +61,20 @@ namespace MoonProTablet.WebUserControls
}
}
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
setDefaults();
}
}
protected void txtSearch_TextChanged(object sender, EventArgs e)
{
// bind dati!
ddlArticolo.DataBind();
}
#endregion Protected Methods
}
}
+1 -1
View File
@@ -335,7 +335,7 @@ namespace MoonProTablet.WebUserControls
{
memLayer.ML.setSessionVal(string.Format("idxMacchina-{0}", uid), value);
hfIdxMacchina.Value = value;
cmp_newODL.idxMacchina = value;
cmp_newODL.idxMacchinaFix = value;
}
}
+15 -6
View File
@@ -405,15 +405,24 @@ namespace MoonProTablet.WebUserControls
protected void ddlSubMacc_DataBound(object sender, EventArgs e)
{
// se ho in memoria un valore LO REIMPOSTO...
if (subMaccSel != "")
if (!string.IsNullOrEmpty(subMaccSel))
{
// provo a preselezionare...
try
// se è una SUB machcina (contiene "#")
if (subMaccSel.Contains("#"))
{
ddlSubMacc.SelectedValue = subMaccSel;
// provo a preselezionare...
try
{
ddlSubMacc.SelectedValue = subMaccSel;
}
catch
{ }
}
// altrimenti salvo!
else
{
subMaccSel = ddlSubMacc.SelectedValue;
}
catch
{ }
}
}
+112 -96
View File
@@ -6,6 +6,113 @@ namespace MoonProTablet.WebUserControls
{
public partial class mod_dettaglioProd : BaseUserControl
{
#region Private Methods
/// <summary>
/// popola le labels
/// </summary>
private void popolaLabels()
{
if (!string.IsNullOrEmpty(idxMacchina))
{
// 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";
}
}
}
#endregion Private Methods
#region Protected Methods
/// <summary>
/// caricamento pagina
/// </summary>
@@ -13,107 +120,16 @@ namespace MoonProTablet.WebUserControls
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
{
popolaLabels();
}
/// <summary>
/// popola le labels
/// </summary>
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));
popolaLabels();
}
catch
catch (Exception exc)
{
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";
logger.lg.scriviLog($"Eccezione in popolaLablels:{Environment.NewLine}{exc}");
}
}
#endregion Protected Methods
}
}
+20 -10
View File
@@ -7,9 +7,7 @@ namespace MoonProTablet.WebUserControls
{
public partial class mod_mappaStato : BaseUserControl
{
protected void Page_Load(object sender, EventArgs e)
{
}
#region Protected Methods
/// <summary>
/// rimanda alla pagina di dettaglio della macchina scelta
@@ -20,17 +18,14 @@ namespace MoonProTablet.WebUserControls
{
LinkButton lnkbtn = (LinkButton)sender;
memLayer.ML.setSessionVal("IdxMacchina", lnkbtn.CommandArgument);
memLayer.ML.setSessionVal("subMaccSel", lnkbtn.CommandArgument);
subMaccSel = lnkbtn.CommandArgument;
Response.Redirect("~/DettaglioMacchina.aspx");
}
/// <summary>
/// fa update del controllo
/// </summary>
public void doUpdate()
protected void Page_Load(object sender, EventArgs e)
{
ods.DataBind();
repLI.DataBind();
}
/// <summary>
/// timeout scaduto
/// </summary>
@@ -41,5 +36,20 @@ namespace MoonProTablet.WebUserControls
doUpdate();
ScriptManager.RegisterStartupScript(Page, GetType(), "temp", "<script type='text/javascript'>$('#dettMacch').trigger('create');</script>", false);
}
#endregion Protected Methods
#region Public Methods
/// <summary>
/// fa update del controllo
/// </summary>
public void doUpdate()
{
ods.DataBind();
repLI.DataBind();
}
#endregion Public Methods
}
}