Files
MoonPro.net/MP-TAB/WebUserControls/mod_controlliProd.ascx.cs
2020-11-26 10:33:37 +01:00

258 lines
6.9 KiB
C#

using MapoDb;
using SteamWare;
using System;
using System.Web.UI;
namespace MoonProTablet.WebUserControls
{
public partial class mod_controlliProd : BaseUserControl
{
#region Public Events
/// <summary>
/// registrato nuovo valore
/// </summary>
public event EventHandler eh_newVal;
/// <summary>
/// registrato nuovo valore
/// </summary>
public event EventHandler eh_reset;
#endregion Public Events
#region Public Properties
/// <summary>
/// restituisce css disabled SE odl NON OK...
/// </summary>
public string cssBtnConf
{
get
{
return odlOk ? "" : "disabled";
}
}
/// <summary>
/// idx macchina selezionata
/// </summary>
public new string idxMacchinaFix
{
get
{
string answ = idxMacchina;
// verifoc: 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>
/// Verifica ODL OK (ovvero caricato x macchina...)
/// </summary>
public bool odlOk
{
get
{
bool answ = true;
// carico i dati preliminari: ODL
int idxOdl = 0; // userò ODL del turno
try
{
idxOdl = DataLayerObj.taODL.getByMacchina(idxMacchinaFix)[0].IdxODL;
}
catch
{
logger.lg.scriviLog(string.Format("Errore a recuperare ODL per la macchina {0}", idxMacchinaFix), tipoLog.ERROR);
}
// se ODL > 0 è ok!!!
answ = (idxOdl > 0);
return answ;
}
}
#endregion Public Properties
#region Private Methods
private void checkAll()
{
fixSelMacc();
checkOdl();
lblOut.Text = "";
switchBtnConferma(false);
lbtShowContr.Visible = odlOk;
lblConfProd.Visible = !odlOk;
}
/// <summary>
/// Verifica se abbia un ODL ATTIVO
/// </summary>
private void checkOdl()
{
lbtShowContr.Visible = odlOk;
lblConfProd.Visible = !odlOk;
lblMancaODL.Visible = !odlOk;
}
/// <summary>
/// Se la machcina è MULTI --> mostro selettore
/// </summary>
private void fixSelMacc()
{
divSelMacc.Visible = isMulti;
fixSelMaccControlli();
}
private void fixSelMaccControlli()
{
if (isMulti)
{
memLayer.ML.setSessionVal("IdxMacchinaControlli", subMaccSel);
}
else
{
memLayer.ML.setSessionVal("IdxMacchinaControlli", idxMacchina);
}
}
private void resetControlli()
{
txtNoteContr.Text = "";
// nascondo!
switchBtnConferma(false);
divNote.Visible = false;
}
/// <summary>
/// determina comportamento btn conferma
/// </summary>
private void switchBtnConferma(bool showConf)
{
lbtOK.Visible = showConf;
lbtKO.Visible = showConf;
lbtSalva.Visible = showConf;
if (showConf)
{
lblShowContr.Text = "Nascondi Controllo";
}
else
{
lblShowContr.Text = "Registra Controllo";
// sollevo evento!
if (eh_reset != null)
{
eh_reset(this, new EventArgs());
}
}
}
#endregion Private Methods
#region Protected Methods
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
{ }
}
}
protected void ddlSubMacc_SelectedIndexChanged(object sender, EventArgs e)
{
subMaccSel = ddlSubMacc.SelectedValue;
fixSelMaccControlli();
checkAll();
}
protected void lbtKO_Click(object sender, EventArgs e)
{
divNote.Visible = true;
}
protected void lbtOK_Click(object sender, EventArgs e)
{
// se ODL ok...
if (odlOk)
{
// Salvo controllo come OK
// sollevo evento!
DataLayerObj.taRC.insertQuery(idxMacchinaFix, DataLayerObj.MatrOpr, true, "", DateTime.Now);
if (eh_newVal != null)
{
eh_newVal(this, new EventArgs());
}
}
resetControlli();
}
/// <summary>
/// salvo produzione
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void lbtSalva_Click(object sender, EventArgs e)
{
// se ODL ok...
if (odlOk)
{
// salvo controllo KO
DataLayerObj.taRC.insertQuery(idxMacchinaFix, DataLayerObj.MatrOpr, false, txtNoteContr.Text.Trim(), DateTime.Now);
// sollevo evento!
if (eh_newVal != null)
{
eh_newVal(this, new EventArgs());
}
resetControlli();
}
}
/// <summary>
/// cambio stato visibilità pannello e testo button
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void lbtShowContr_Click(object sender, EventArgs e)
{
switchBtnConferma(!lbtOK.Visible);
}
/// <summary>
/// caricamento pagina
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
checkAll();
}
}
#endregion Protected Methods
}
}