Files
MoonPro.net/MP-TAB/ODL.aspx.cs
T
2019-07-09 08:32:53 +02:00

256 lines
6.4 KiB
C#

using MapoDb;
using SteamWare;
using System;
using System.Web.UI;
namespace MoonProTablet
{
public partial class ODL : System.Web.UI.Page
{
/// <summary>
/// Valore protected idxODL
/// </summary>
protected string _idxOdlMacc;
/// <summary>
/// Valore protected idxODL
/// </summary>
protected string _idxOdlAltraMacc;
/// <summary>
/// IdxODL sulla macchina
/// </summary>
public string idxOdlMacc
{
get
{
if (_idxOdlMacc == null)
{
_idxOdlMacc = DataLayer.currODL(idxMacchina, true);
}
return _idxOdlMacc;
}
set
{
_idxOdlMacc = value;
}
}
/// <summary>
/// Verifica se la macchina NON abbia ODL (valido, > 0)
/// </summary>
public bool emptyOdlMacc
{
get
{
return (idxOdlMacc == "" || idxOdlMacc == "0");
}
}
/// <summary>
/// idx macchina selezionata
/// </summary>
public string idxMacchinaSession
{
get
{
return memLayer.ML.StringSessionObj("IdxMacchina");
}
set
{
memLayer.ML.setSessionVal("IdxMacchina", value);
}
}
/// <summary>
/// Verifica se la macchina MAIN sia MULTI (da DatiMacchina / redis...)
/// </summary>
protected bool isMulti
{
get
{
bool answ = false;
answ = DataLayer.isMulti(idxMacchinaSession);
return answ;
}
}
/// <summary>
/// idx macchina selezionata
/// </summary>
public string idxMacchina
{
get
{
string answ = idxMacchinaSession;
// verifico: se multi uso selettore tendina...
if (isMulti)
{
if (ddlSubMacc.SelectedValue == "")
{
ddlSubMacc.DataBind();
}
if (ddlSubMacc.SelectedValue != "")
{
answ = ddlSubMacc.SelectedValue;
}
}
return answ;
}
set
{
memLayer.ML.setSessionVal("IdxMacchina", value);
}
}
/// <summary>
/// Se la machcina è MULTI --> mostro selettore
/// </summary>
private void fixSelMacc()
{
divSelMacc.Visible = isMulti;
if (isMulti)
{
// salvo selezione submacc
ddlSubMacc.DataBind();
subMaccSel = ddlSubMacc.SelectedValue;
}
}
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
checkAll();
if (isMulti)
{
mod_dettMacchina1.doUpdate();
}
}
mod_ODL1.eh_reqUpdate += Mod_ODL1_eh_reqUpdate;
}
/// <summary>
/// Update controlli post richiesta refresh da child
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Mod_ODL1_eh_reqUpdate(object sender, EventArgs e)
{
// forzo update macchina...
DataLayer.obj.taMSE.forceRecalc(0, idxMacchina);
// update display!
ddlSubMacc.DataBind();
mod_dettMacchina1.doUpdate();
}
private void checkAll()
{
// parto: nascondo tutto...
mod_ODL1.hideAll();
fixSelMacc();
memLayer.ML.setSessionVal("TipoLink", "EditMacch");
// imposto idxMacchina x subControl...
mod_ODL1.idxMacchina = idxMacchina;
checkConfProd();
mod_ODL1.checkAll();
}
/// <summary>
/// verifica se sia necessario confermare la produzione PRIMA di operare sull'ODL
/// </summary>
private void checkConfProd()
{
// controllo ODL mancante, x cui SE ci fossero pezzi --> va fatto attrezzaggio ODL retrodatato
bool odlOk = false;
try
{
odlOk = !emptyOdlMacc;
}
catch (Exception exc)
{
logger.lg.scriviLog(string.Format("Errore recupero ODL corrente da confermare per la macchina {0}{1}{2}", idxMacchina, Environment.NewLine, exc), tipoLog.ERROR);
}
// verifica se sia necessario confermare produzione
bool needConfProd = true;
int pz2conf = 0;
DS_ProdTempi.stp_PzProd_getByMacchinaRow rigaProd;
try
{
rigaProd = DataLayer.obj.taPzProd2conf.GetData(idxMacchina)[0];
pz2conf = rigaProd.pezziNonConfermati;
needConfProd = (pz2conf > 0);
}
catch (Exception exc)
{
logger.lg.scriviLog(string.Format("Errore recupero pezzi da confermare per la macchina {0}{1}{2}", idxMacchina, Environment.NewLine, exc), tipoLog.ERROR);
}
// se necessario mostro warning...
if (needConfProd)
{
// SE mancasse ODL mostro info x poter caricare ODL retrodatato
if (odlOk)
{
lblWarningHead.Text = traduci("ConfProdBeforeContinueHead");
lblWarningBody.Text = traduci("ConfProdBeforeContinueBody");
lblNumPz2Conf.Text = string.Format("{0} pz NC", pz2conf);
}
else
{
lblWarningHead.Text = traduci("setOdlBeforeContinueHead");
lblWarningBody.Text = traduci("setOdlBeforeContinueBody");
lblNumPz2Conf.Text = string.Format("{0} pz NC", pz2conf);
}
}
divPz2Conf.Visible = needConfProd;
divWarn.Visible = needConfProd;
lbtFixOdl.Visible = !odlOk;
mod_ODL1.isEnabled = !needConfProd;
}
/// <summary>
/// effettua traduzione del lemma
/// </summary>
/// <param name="lemma"></param>
/// <returns></returns>
public string traduci(string lemma)
{
return user_std.UtSn.Traduci(lemma);
}
protected void lbtFixOdl_Click(object sender, EventArgs e)
{
Response.Redirect("~/fixODL");
}
protected void ddlSubMacc_SelectedIndexChanged(object sender, EventArgs e)
{
// procedo...
subMaccSel = ddlSubMacc.SelectedValue;
checkAll();
}
protected void ddlSubMacc_DataBound(object sender, EventArgs e)
{
// se ho in memoria un valore LO REIMPOSTO...
if (subMaccSel != "")
{
// provo a preselezionare...
try
{
ddlSubMacc.SelectedValue = subMaccSel;
}
catch
{ }
}
}
/// <summary>
/// Sotto sistema (macchina) selezionato
/// </summary>
public string subMaccSel
{
get
{
return memLayer.ML.StringSessionObj("subMaccSel");
}
set
{
memLayer.ML.setSessionVal("subMaccSel", value);
}
}
}
}