using MapoDb; using SteamWare; using System; using System.Web.UI; namespace MoonProTablet { public partial class ODL : System.Web.UI.Page { /// /// Valore protected idxODL /// protected string _idxOdlMacc; /// /// Valore protected idxODL /// protected string _idxOdlAltraMacc; /// /// IdxODL sulla macchina /// public string idxOdlMacc { get { if (_idxOdlMacc == null) { _idxOdlMacc = DataLayer.currODL(idxMacchina, true); } return _idxOdlMacc; } set { _idxOdlMacc = value; } } /// /// Verifica se la macchina NON abbia ODL (valido, > 0) /// public bool emptyOdlMacc { get { return (idxOdlMacc == "" || idxOdlMacc == "0"); } } /// /// idx macchina selezionata /// public string idxMacchinaSession { get { return memLayer.ML.StringSessionObj("IdxMacchina"); } set { memLayer.ML.setSessionVal("IdxMacchina", value); } } /// /// Verifica se la macchina MAIN sia MULTI (da DatiMacchina / redis...) /// protected bool isMulti { get { bool answ = false; answ = DataLayer.isMulti(idxMacchinaSession); return answ; } } /// /// idx macchina selezionata /// 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); } } /// /// Se la machcina è MULTI --> mostro selettore /// 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; } /// /// Update controlli post richiesta refresh da child /// /// /// 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(); } /// /// verifica se sia necessario confermare la produzione PRIMA di operare sull'ODL /// 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; } /// /// effettua traduzione del lemma /// /// /// 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 { } } } /// /// Sotto sistema (macchina) selezionato /// public string subMaccSel { get { return memLayer.ML.StringSessionObj("subMaccSel"); } set { memLayer.ML.setSessionVal("subMaccSel", value); } } } }