using MapoDb; using SteamWare; using System; namespace MoonPro.WebUserControls { public partial class mod_semaforo : System.Web.UI.UserControl { #region area protected / private /// /// seriale associato alla macchina da controllare /// protected string _IdxMacchina; /// /// posizione macchina nella tabella /// protected string _locazione; protected resoconti _resoconti; protected DS_applicazione.MacchineDataTable tabMacchine; protected DS_applicazione.StatoMacchineDataTable tabStatoMacchine; protected DS_applicazione.AnagraficaStatiDataTable tabAnagStati; protected DS_applicazione.KeepAliveDataTable tabKeepAlive; protected void Page_Load(object sender, EventArgs e) { updateMe(); } /// /// effettua traduzione del lemma /// /// /// public string traduci(string lemma) { return user_std.UtSn.Traduci(lemma); } /// /// sistema il testo /// private void updateText() { if (_IdxMacchina != "nd") { // labels lblDurata.Text = traduci("DurataStato"); // valori lblMacchina.Text = tabMacchine.FindByIdxMacchina(IdxMacchina).Nome; lblCodArticolo.Text = tabStatoMacchine.FindByIdxMacchina(IdxMacchina).CodArticolo; int matrOper = tabStatoMacchine.FindByIdxMacchina(IdxMacchina).MatrOpr; DS_applicazione.AnagraficaOperatoriRow rigaOper = DataLayer.obj.taOp.getByMatrOpr(matrOper)[0]; lblOper.Text = string.Format("{0} {1}", rigaOper.Cognome, rigaOper.Nome); int idxStato = 0; int oreTot = 0; float minuti = 0; try { MapoDb.DS_ProdTempi.stp_repDonati_getLastStatoDurataMacchinaRow rigaStato = DataLayer.obj.taDatiStatoMacch.GetData(IdxMacchina, 0.1)[0]; idxStato = rigaStato.idxStato; oreTot = Convert.ToInt32(Math.Floor(rigaStato.Minuti / 60)); minuti = (float)rigaStato.Minuti - 60 * oreTot; } catch { idxStato = tabStatoMacchine.FindByIdxMacchina(IdxMacchina).IdxStato; DateTime inizioStato = tabStatoMacchine.FindByIdxMacchina(IdxMacchina).InizioStato; DateTime ora = DateTime.Now; TimeSpan durata = ora.Subtract(inizioStato); oreTot = durata.Days * 24 + durata.Hours; minuti = durata.Minutes; } // aggiorno stato e durata lblStato.Text = tabAnagStati.FindByIdxStato(idxStato).Descrizione; valDurata.Text = string.Format("{0}h {1}min", oreTot, minuti); // solo se in stato NON di run... if (idxStato != 13) { lblCausale.Text = traduci("Causale"); valCausale.Text = tabStatoMacchine.FindByIdxMacchina(IdxMacchina).Value; } lblDurataCiclo.Text = traduci("UltimoEvento"); } } /// /// aggiorna il layout grafico /// private void updateLayout() { if (_IdxMacchina != "nd") { string filtro = string.Format("IdxMacchina = '{0}'", _IdxMacchina); int stato = ((DS_applicazione.StatoMacchineRow)tabStatoMacchine.Select(filtro)[0]).IdxStato; // in base allo stato recupero il colore... string codColore = ((DS_applicazione.AnagraficaStatiRow)tabAnagStati.FindByIdxStato(stato)).Semaforo; pnlMacchina.CssClass = codColore; } } /// /// metto a posto l'immagine /// protected void updateImg() { string urlMacchina; if (_IdxMacchina != "nd") { urlMacchina = string.Format("~/images/macchine/thumb_{0}", _resoconti.urlMacchina(IdxMacchina)); if (urlMacchina == "thumb_") { urlMacchina = "~/images/empty.png"; imgThumb.ImageUrl = urlMacchina; } else { imgThumb.ImageUrl = urlMacchina; imgThumb.ToolTip = _resoconti.nomeMacchina(IdxMacchina); } } else { urlMacchina = "~/images/empty.png"; imgThumb.ImageUrl = urlMacchina; } } /// /// recupera i dati /// private void retrieveData() { _resoconti = new resoconti(); // popolazione tabelle tabMacchine = MapoDb.DataLayer.obj.taMacchine.GetData(); tabStatoMacchine = MapoDb.DataLayer.obj.taStatoMacchine.GetData(); tabAnagStati = MapoDb.DataLayer.obj.taAnagStati.GetData(); tabKeepAlive = MapoDb.DataLayer.obj.taKeepAlive.GetData(); } #endregion #region area public /// /// Idx della macchina controllata /// public string IdxMacchina { get { return _IdxMacchina; } set { if (_resoconti == null) { _resoconti = new resoconti(); } _IdxMacchina = value; _locazione = _resoconti.locazioneDaIdx(_IdxMacchina); } } /// /// stringa locazione macchina in tabella /// public string locazione { get { return _locazione; } set { if (_resoconti == null) { _resoconti = new resoconti(); } _locazione = value; try { _IdxMacchina = _resoconti.idxDaLocazione(_locazione); } catch { _IdxMacchina = "nd"; } } } /// /// aggiorna controllo /// public void updateMe() { // effettua update visualizzazione retrieveData(); updateLayout(); updateText(); updateImg(); } #endregion } }