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 } }