using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using SteamWare; using System.Globalization; using GPW_data; namespace GPW.WebUserControls { /// /// modalità ammesse per il controllo /// public enum modoCommesse { /// /// elenco giornate e resoconto /// elenco, /// /// edit timbrature attivo /// editTimb, /// /// edit Registro Attività attivo /// editRegAtt } public partial class mod_commUtLog : System.Web.UI.UserControl { public modoCommesse activeMode { get { modoCommesse answ = modoCommesse.elenco; try { answ = (modoCommesse)memLayer.ML.objSessionObj("activeModeComm"); } catch { } return answ; } set { memLayer.ML.setSessionVal("activeModeComm", value); } } /// /// Avvio pagina /// /// /// protected void Page_Load(object sender, EventArgs e) { memLayer.ML.setSessionVal("maxErrMin", memLayer.ML.confReadInt("maxErrMin")); memLayer.ML.setSessionVal("maxErrPlus", memLayer.ML.confReadInt("maxErrPlus")); if (!Page.IsPostBack) { activeMode = modoCommesse.elenco; intervalloDate periodo = new intervalloDate(); periodo.fine = DateTime.Now.AddDays(1); periodo.inizio = periodo.fine.AddDays(-10); mod_periodoAnalisi1.intervalloAnalisi = periodo; // salvo link in HF hfDataFrom.Value = periodo.inizio.ToString(); hfDataTo.Value = periodo.fine.ToString(); // imposto modo tag cloud string modoTC = memLayer.ML.confReadString("TagCloudMode"); switch (modoTC) { case "elenco": mod_TagCloudProgetti1.modo = TagCloudMode.elenco; break; case "elencoCPF": mod_TagCloudProgetti1.modo = TagCloudMode.elencoCPF; break; case "piramide": mod_TagCloudProgetti1.modo = TagCloudMode.piramide; break; case "standard": default: mod_TagCloudProgetti1.modo = TagCloudMode.standard; break; } } showPanels(); grView.DataBind(); mod_commUtMancTimbr1.eh_nuovoValore += new EventHandler(mod_commUtMancTimbr1_eh_nuovoValore); mod_commAttivitaDesk1.eh_nuovoValore += new EventHandler(mod_commAttivitaDesk1_eh_nuovoValore); mod_TagCloudProgetti1.eh_newVal += new EventHandler(mod_TagCloudProgetti1_eh_newVal); mod_TagCloudProgetti1.eh_refresh += mod_TagCloudProgetti1_eh_refresh; mod_periodoAnalisi1.eh_doUpdate += mod_periodoAnalisi1_eh_doUpdate; } void mod_TagCloudProgetti1_eh_refresh(object sender, EventArgs e) { mod_commAttivitaDesk1.doUpdate(); grView.DataBind(); } void mod_periodoAnalisi1_eh_doUpdate(object sender, EventArgs e) { // 2016.04.07: salvo intervallo nei 2 hidden field hfDataFrom.Value = mod_periodoAnalisi1.intervalloAnalisi.inizio.ToString(); hfDataTo.Value= mod_periodoAnalisi1.intervalloAnalisi.fine.ToString(); // update mod_commAttivitaDesk1.doUpdate(); grView.DataBind(); } void mod_TagCloudProgetti1_eh_newVal(object sender, EventArgs e) { mod_commAttivitaDesk1.doUpdate(); grView.DataBind(); } void mod_commAttivitaDesk1_eh_nuovoValore(object sender, EventArgs e) { mod_TagCloudProgetti1.doUpdate(); grView.DataBind(); } void mod_commUtMancTimbr1_eh_nuovoValore(object sender, EventArgs e) { grView.DataBind(); } /// /// inverte valore booleano /// /// /// public bool invBool(object valore) { bool answ = true; try { answ = !Convert.ToBoolean(valore); } catch { } return answ; } /// /// idxDipendente insessione /// protected int idxDip { get { return memLayer.ML.IntSessionObj("idxDipBCode"); } set { memLayer.ML.setSessionVal("idxDipBCode", value); } } /// /// gestione evento richiesta edit timbrature /// /// /// protected void imgEditTimbr_Click(object sender, EventArgs e) { DateTime adesso = DateTime.Now; string dataRif = ((ImageButton)sender).CommandArgument; CultureInfo ita = new CultureInfo("it-IT"); mod_commUtMancTimbr1.valoreDateTime = Convert.ToDateTime(dataRif, ita).AddHours(adesso.Hour).AddMinutes(adesso.Minute - adesso.Minute % 5); //salvo in sessione dati x detail timbrature memLayer.ML.setSessionVal("inizioDet", Convert.ToDateTime(dataRif, ita).Date); memLayer.ML.setSessionVal("fineDet", Convert.ToDateTime(dataRif, ita).Date.AddDays(1)); memLayer.ML.setSessionVal("idxDip_det", DataProxy.idxDipendente); // imposto modalità activeMode = modoCommesse.editTimb; showPanels(); } /// /// gestione evento richiesta edit commesse /// /// /// protected void imgEditComm_Click(object sender, EventArgs e) { DateTime adesso = DateTime.Now; string dataRif = ((ImageButton)sender).CommandArgument; CultureInfo ita = new CultureInfo("it-IT"); mod_commAttivitaDesk1.idxDipCurr = DataProxy.idxDipendente; mod_commAttivitaDesk1.valoreDateTime = Convert.ToDateTime(dataRif, ita); mod_TagCloudProgetti1.dataRif = Convert.ToDateTime(dataRif, ita); activeMode = modoCommesse.editRegAtt; showPanels(); mod_commAttivitaDesk1.doUpdate(); } /// /// indica se sia abilitato l'editing delle attività legate alle commesse /// public bool regAttEnabled { get { return memLayer.ML.confReadBool("regAttEnabled"); } } /// /// /// /// /// public string classByPerm(object minPerm) { string answ = ""; if (Convert.ToDouble(minPerm) > 0) { answ = "lblWarning"; } return answ; } /// /// prepara tooltip permessi/straordinarie /// /// /// /// public string tooltipPermStra(object minStra, object minPerm) { string answ = ""; try { if (memLayer.ML.confReadBool("reviewShowOreMin")) { answ = string.Format("Straordinarie: {0} - Permessi: {1} (h:mm)", utils.formOreMin(Convert.ToDecimal(minStra) / 60), utils.formOreMin(Convert.ToDecimal(minPerm) / 60)); } else { answ = string.Format("Straordinarie: {0:0.##} h - Permessi: {1:0.##} h", Convert.ToDouble(minStra) / 60, Convert.ToDouble(minPerm) / 60); } } catch { } return answ; } /// /// imposta visualizzazione dei pannelli opzionali laterali a seocnda del modo attivo /// protected void showPanels() { // imposto valori default bool timbr = false; bool commesse = false; switch (activeMode) { case modoCommesse.editTimb: timbr = true; break; case modoCommesse.editRegAtt: commesse = true; break; case modoCommesse.elenco: default: break; } pnlEditCom.Visible = commesse; pnlEditOre.Visible = timbr; mod_commUtMancTimbr1.Visible = timbr; mod_commAttivitaDesk1.Visible = commesse; } /// /// chiamata del button close (entrambi) /// /// /// protected void btnClose_Click(object sender, EventArgs e) { activeMode = modoCommesse.elenco; showPanels(); grView.DataBind(); } /// /// fornisce img x check coerenza ore timbrate e commesse /// /// /// public string imgChk(object okLavCom) { string answ = "~/images/statoKo_m.png"; try { if (Convert.ToBoolean(okLavCom)) { answ = "~/images/statoOk_m.png"; } } catch { } return answ; } /// /// formatta stringa giustificativi /// /// permessi /// ferie /// malattia /// festività /// MPP /// public string txtGiust(object _minPerm, object _minFer, object _minMal, object _minFest, object _minMPP) { string answ = ""; double minPerm = Convert.ToInt32(_minPerm); double minFer = Convert.ToInt32(_minFer); double minMal = Convert.ToInt32(_minMal); double minFest = Convert.ToInt32(_minFest); double minMpp = Convert.ToInt32(_minMPP); if (memLayer.ML.confReadBool("reviewShowOreMin")) { if (minPerm > 0) answ += string.Format("{0} Pe ", utils.formOreMin(Convert.ToDecimal(minPerm / 60))); if (minFer > 0) answ += string.Format("{0} Fe ", utils.formOreMin(Convert.ToDecimal(minFer / 60))); if (minMal > 0) answ += string.Format("{0} Ma ", utils.formOreMin(Convert.ToDecimal(minMal / 60))); if (minFest > 0) answ += string.Format("{0} Fs ", utils.formOreMin(Convert.ToDecimal(minFest / 60))); if (minMpp > 0) answ += string.Format("{0} Mpp ", utils.formOreMin(Convert.ToDecimal(minMpp / 60))); } else { if (minPerm > 0) answ += string.Format("{0:0.00} Pe ", minPerm / 60); if (minFer > 0) answ += string.Format("{0:0.00} Fe ", minFer / 60); if (minMal > 0) answ += string.Format("{0:0.00} Ma ", minMal / 60); if (minFest > 0) answ += string.Format("{0:0.00} Fs ", minFest / 60); if (minMpp > 0) answ += string.Format("{0:0.00} Mpp ", minMpp / 60); } return answ; } /// /// formatta stringa tooltip giustificativi /// /// permessi /// ferie /// malattia /// festività /// MPP /// public string tooltipGiust(object _minPerm, object _minFer, object _minMal, object _minFest, object _minMPP) { string answ = ""; double minPerm = Convert.ToInt32(_minPerm); double minFer = Convert.ToInt32(_minFer); double minMal = Convert.ToInt32(_minMal); double minFest = Convert.ToInt32(_minFest); double minMpp = Convert.ToInt32(_minMPP); if (memLayer.ML.confReadBool("reviewShowOreMin")) { if (minPerm > 0) answ += string.Format("{0} Permesso ", utils.formOreMin(Convert.ToDecimal(minPerm / 60))); if (minFer > 0) answ += string.Format("{0} Ferie ", utils.formOreMin(Convert.ToDecimal(minFer / 60))); if (minMal > 0) answ += string.Format("{0} Malattia ", utils.formOreMin(Convert.ToDecimal(minMal / 60))); if (minFest > 0) answ += string.Format("{0} Festività ", utils.formOreMin(Convert.ToDecimal(minFest / 60))); if (minMpp > 0) answ += string.Format("{0} Manc.Pausa Pranzo ", utils.formOreMin(Convert.ToDecimal(minMpp / 60))); } else { if (minPerm > 0) answ += string.Format("{0:0.00}h Permesso ", minPerm / 60); if (minFer > 0) answ += string.Format("{0:0.00}h Ferie ", minFer / 60); if (minMal > 0) answ += string.Format("{0:0.00}h Malattia ", minMal / 60); if (minFest > 0) answ += string.Format("{0:0.00}h Festività ", minFest / 60); if (minMpp > 0) answ += string.Format("{0:0.00}h Manc.Pausa Pranzo ", minMpp / 60); } return answ; } /// /// formatta la durata in ore secondo web.config (centesimale/ore:min) /// /// /// public string formatDurata(object oreCent) { decimal ore = 0; try { ore = Convert.ToDecimal(oreCent); } catch { } string answ = ""; if (memLayer.ML.confReadBool("reviewShowOreMin")) { answ = utils.formOreMin(ore); } else { answ = ore.ToString("0.00"); } return answ; } } }