using MapoDb;
using SteamWare;
using System;
using System.Web.UI;
namespace MoonProTablet.WebUserControls
{
public partial class mod_dettMacchina : BaseUserControl
{
#region Public Events
///
/// fatto refresh --> chiedo remove modal (se c'è)
///
public event EventHandler eh_reqRemoveModal;
#endregion Public Events
#region Public Properties
///
/// Determina se il refresh (via timer) sia o meno abilitato
///
public bool refreshEnabled
{
get
{
return dmTimer.Enabled;
}
set
{
dmTimer.Enabled = value;
}
}
#endregion Public Properties
#region Public Methods
///
/// css blocco disegno dato codArt + check
///
///
///
public string cssDisegno(object codArt)
{
return showDisegno(codArt) ? "col-3 col-sm-2 ps-1" : "d-none";
}
///
/// css blocco principale dato codArt + check
///
///
///
public string cssMain(object codArt)
{
return showDisegno(codArt) ? "col-9 col-sm-10 pe-0" : "col-12";
}
///
/// fa update del controllo
///
public void doUpdate()
{
ods.DataBind();
repLI.DataBind();
}
public bool showDisegno(object _codArticolo)
{
// default è ND...
bool answ = false;
// SE abilitata gestione disegni...
if (enableDisegno)
{
// recupero da anagrafica articoli...
try
{
DS_ProdTempi.AnagArticoliRow riga = selData.mng.rigaArt(_codArticolo.ToString());
if (riga != null)
{
answ = (riga.Disegno != "");
}
else
{
logger.lg.scriviLog($"showDisegno | nessuna informazione trovata per l'articolo {_codArticolo}", tipoLog.WARNING);
}
}
catch (Exception exc)
{
logger.lg.scriviLog($"showDisegno | eccezione in ricostruzione URL disegno:{Environment.NewLine}{exc}", tipoLog.EXCEPTION);
}
}
return answ;
}
///
/// Determina se dato lo stato dell'impianto si debba mostrare btn fermata perché
/// - fermo > xx min (da web.config, es 20')
/// - impianto fermo (controllando idxStato: priorità > 1)
///
public bool showInsFermata(object _idxStato, object _durata)
{
int idxStato = 0;
int durata = 0;
int durMinWarning = memLayer.ML.CRI("durMinWarning");
int.TryParse(_idxStato.ToString(), out idxStato);
int.TryParse(_durata.ToString(), out durata);
bool answ = false;
if (durata >= durMinWarning)
{
try
{
// in questo caso controllo idxStato... e recupero priorità se > 1 --> richiesta qualifica
answ = (DataLayerObj.taAnagStati.GetByIdx(idxStato)[0].Priorita > 1);
}
catch
{ }
}
return answ;
}
///
/// Determina se sia necessario richiedere un controllo per la macchina secondo condizione
/// - cerco ultimo controllo fatto
/// - se è più lontano di "intervalloControlli" --> attivo!
///
public bool showReqControl(object IdxMacchina)
{
bool answ = false;
// SE abilitata gestione controlli...
if (memLayer.ML.cdvb("enableControlli"))
{
int intervalloControlli = memLayer.ML.CRI("intervalloControlli");
// cerco ultimo controllo fatto
DateTime lastControl = DateTime.Now.AddYears(-1);
try
{
var tab = DataLayerObj.taRC.getLast(idxMacchina);
if (tab.Count > 0)
{
lastControl = tab[0].DataOra;
}
}
catch
{ }
if (Math.Abs(DateTime.Now.Subtract(lastControl).TotalMinutes) >= intervalloControlli)
{
answ = true;
}
}
return answ;
}
#endregion Public Methods
#region Protected Methods
///
/// caricamento pagina
///
///
///
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
dmTimer.Interval = memLayer.ML.CRI("dtTimerInt");
}
// controllo se ho dett macchina altrimenti ritorno a pagina generale...
if (idxMacchina == "")
{
Response.Redirect("~/MappaStato.aspx");
}
}
///
/// timeout scaduto
///
///
///
protected void Timer1_Tick(object sender, EventArgs e)
{
// update
doUpdate();
// sollevo evento!
if (eh_reqRemoveModal != null)
{
eh_reqRemoveModal(this, new EventArgs());
}
// 2022.09.28 forse NON necessario...
//ScriptManager.RegisterStartupScript(Page, GetType(), "temp", "", false);
}
#endregion Protected Methods
}
}