using GPW_data; using SteamWare; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Web.UI; using System.Web.UI.WebControls; namespace GPW_Admin.WebUserControls { public partial class cmp_gestMalattia : BaseUserControl { #region Public Methods public void doUpdate() { // aggiorno! grView.PageSize = utils.pageSize; grView.DataBind(); } #endregion Public Methods #region Protected Properties /// /// Anno corrente /// protected int anno { get { int answ = 0; if (txtAnno != null && !string.IsNullOrEmpty(txtAnno.Text)) { _ = int.TryParse(txtAnno.Text, out answ); } else { answ = DateTime.Today.Year; } return answ; } set { txtAnno.Text = value.ToString(); } } protected DateTime Fine { get { DateTime answ = new DateTime(anno + 1, 1, 1); if (!string.IsNullOrEmpty(hfFine.Value)) { DateTime.TryParse(hfFine.Value, out answ); } else { hfFine.Value = $"{answ}"; } return answ; } set { hfFine.Value = $"{value}"; } } protected DateTime Inizio { get { DateTime answ = new DateTime(anno, 1, 1); if (!string.IsNullOrEmpty(hfInizio.Value)) { DateTime.TryParse(hfInizio.Value, out answ); } else { hfInizio.Value = $"{answ}"; } return answ; } set { hfInizio.Value = $"{value}"; } } protected List listRM { get; set; } #endregion Protected Properties #region Protected Methods protected void chkShowAll_CheckedChanged(object sender, EventArgs e) { chkShowAll.Text = chkShowAll.Checked ? "Mostra Tutti" : "Da Confermare"; cmp_calAnnuale.showAlsoConf = chkShowAll.Checked; } protected string datiDip(object idxDip) { int idxDipendente = 0; int.TryParse($"{idxDip}", out idxDipendente); string answ = "NA"; var rigaDip = listaDip.FirstOrDefault(x => x.idxDipendente == idxDipendente); if (rigaDip != null) { answ = $"{rigaDip.Cognome} {rigaDip.Nome}"; } return answ; } protected void doUpdateCal() { listRM = RMListByAnno(anno); } protected void ods_Deleted(object sender, System.Web.UI.WebControls.ObjectDataSourceStatusEventArgs e) { doUpdateCal(); } /// /// check licenze in fase di eliminazione... /// /// /// protected void ods_Deleting(object sender, ObjectDataSourceMethodEventArgs e) { if (e != null) { if (!licenzeGPW.checkLicenze) { // annullo update se licenze sforate... e.Cancel = true; grView.EditIndex = -1; grView.DataBind(); } else { // cerco! if (e.InputParameters["Original_IdxRegMal"] != null) { string sIdxRegMal = $"{e.InputParameters["Original_IdxRegMal"]}"; int IdxRegMal = 0; int.TryParse(sIdxRegMal, out IdxRegMal); if (IdxRegMal > 0) { // recupero richiesta x i dati utente if (listRM == null || listRM.Count == 0) { listRM = RMListByAnno(anno); } var richDip = listRM.Where(x => x.IdxRegMal == IdxRegMal).FirstOrDefault(); if (richDip != null) { // recupero dipendente... var currUser = listaDip.Where(x => x.idxDipendente == richDip.IdxDipendente).FirstOrDefault(); string destEmail = currUser.email; string fromEmail = memLayer.ML.CRS("_fromEmail"); string adminEmail = memLayer.ML.CRS("adminRichDip"); // calcolo il responsabile if (currUser.idxResp > 0) { string mailResp = emailResp(currUser.idxResp); if (!string.IsNullOrEmpty(mailResp) && !adminEmail.Contains(mailResp)) { adminEmail += $",{mailResp}"; } } string subjMess = $"ELIMINAZIONE richiesta Malattia n.{IdxRegMal}"; DateTime adesso = DateTime.Now; StringBuilder sbMain = new StringBuilder(); sbMain.AppendLine($"Il giorno {adesso:yyyy.MM.dd} alle ore {adesso:HH:mm:ss} è stata ELIMINATA la richiesta in oggetto."); sbMain.AppendLine(""); sbMain.Append("
"); sbMain.Append($"{currUser.Cognome} {currUser.Nome} ({currUser.matricola})"); sbMain.Append("
"); sbMain.AppendLine("
"); sbMain.AppendLine($"Richiesta: MAL"); string sConf = $"{e.InputParameters["Conf"]}"; bool isConf = false; bool.TryParse(sConf, out isConf); string stato = isConf ? "CONFERMATA" : "RIFIUTATA"; sbMain.AppendLine($"Stato: {stato}"); sbMain.AppendLine($"Inizio: {richDip.DtInizio}"); string NumGG = $"{e.InputParameters["NumGG"]}"; sbMain.AppendLine($"Num gg: {NumGG}"); string CodCert = $"{e.InputParameters["CodCert"]}"; sbMain.AppendLine($"Certificato INPS: {CodCert}"); sbMain.AppendLine("
"); string bodyMess = sbMain.ToString().Replace($"{Environment.NewLine}", "
"); // invio email! gestEmail.geAuth.mandaEmail(fromEmail, destEmail, subjMess, bodyMess); // ora sistemo x admin var adminList = adminEmail.Split(','); string urlRedir = memLayer.ML.CRS("urlRedirMal"); bodyMess += $"

Cliccare sul seguente link per accedere alla pagina di gestione"; foreach (var dest in adminList) { gestEmail.geAuth.mandaEmail(fromEmail, dest, subjMess, bodyMess); } } } } } } } protected void ods_Updated(object sender, System.Web.UI.WebControls.ObjectDataSourceStatusEventArgs e) { doUpdateCal(); } /// /// check licenze in fase di update... /// /// /// protected void ods_Updating(object sender, ObjectDataSourceMethodEventArgs e) { if (e != null) { if (!licenzeGPW.checkLicenze) { // annullo update se licenze sforate... e.Cancel = true; grView.EditIndex = -1; grView.DataBind(); } else { // cerco! if (e.InputParameters["Original_IdxRegMal"] != null) { string sIdxRegMal = $"{e.InputParameters["Original_IdxRegMal"]}"; int IdxRegMal = 0; int.TryParse(sIdxRegMal, out IdxRegMal); if (IdxRegMal > 0) { // recupero richiesta x i dati utente if (listRM == null || listRM.Count == 0) { listRM = RMListByAnno(anno); } var richDip = listRM.Where(x => x.IdxRegMal == IdxRegMal).FirstOrDefault(); if (richDip != null) { // recupero dipendente... var currUser = listaDip.Where(x => x.idxDipendente == richDip.IdxDipendente).FirstOrDefault(); string destEmail = currUser.email; string fromEmail = memLayer.ML.CRS("_fromEmail"); string adminEmail = memLayer.ML.CRS("adminRichDip"); // calcolo il responsabile if (currUser.idxResp > 0) { string mailResp = emailResp(currUser.idxResp); if (!string.IsNullOrEmpty(mailResp) && !adminEmail.Contains(mailResp)) { adminEmail += $",{mailResp}"; } } string subjMess = $"Aggiornamento richiesta Malattia n.{IdxRegMal}"; DateTime adesso = DateTime.Now; StringBuilder sbMain = new StringBuilder(); sbMain.AppendLine($"Il giorno {adesso:yyyy.MM.dd} alle ore {adesso:HH:mm:ss} è stata modificata la richiesta in oggetto."); sbMain.AppendLine(""); sbMain.Append("
"); sbMain.Append($"{currUser.Cognome} {currUser.Nome} ({currUser.matricola})"); sbMain.Append("
"); sbMain.AppendLine("
"); sbMain.AppendLine($"Richiesta: MAL"); string sConf = $"{e.InputParameters["Conf"]}"; bool isConf = false; bool.TryParse(sConf, out isConf); string stato = isConf ? "CONFERMATA" : "RIFIUTATA"; sbMain.AppendLine($"Stato: {stato}"); sbMain.AppendLine($"Inizio: {richDip.DtInizio}"); string NumGG = $"{e.InputParameters["NumGG"]}"; sbMain.AppendLine($"Num gg: {NumGG}"); string CodCert = $"{e.InputParameters["CodCert"]}"; sbMain.AppendLine($"Certificato INPS: {CodCert}"); sbMain.AppendLine("
"); string bodyMess = sbMain.ToString().Replace($"{Environment.NewLine}", "
"); // invio email! gestEmail.geAuth.mandaEmail(fromEmail, destEmail, subjMess, bodyMess); // ora sistemo x admin var adminList = adminEmail.Split(','); string urlRedir = memLayer.ML.CRS("urlRedirMal"); bodyMess += $"

Cliccare sul seguente link per accedere alla pagina di gestione"; foreach (var dest in adminList) { gestEmail.geAuth.mandaEmail(fromEmail, dest, subjMess, bodyMess); } } } } } } } protected void Page_Load(object sender, EventArgs e) { grView.PageSize = utils.pageSize; if (!Page.IsPostBack) { anno = DateTime.Now.Year; cmp_calAnnuale.anno = anno; reportAnno(); doUpdateCal(); } listaDip = licenzeGPW.getDipAttivi(); grView.Visible = chkLicOk; cmp_selettoreMesi.eh_doRefresh += Cmp_selettoreMesi_eh_doRefresh; } protected void repCal_PreRender(object sender, EventArgs e) { doUpdateCal(); } protected void txtAnno_TextChanged(object sender, EventArgs e) { reportAnno(); doUpdateCal(); } #endregion Protected Methods #region Private Methods private void Cmp_selettoreMesi_eh_doRefresh(object sender, EventArgs e) { Inizio = cmp_selettoreMesi.inizio; Fine = cmp_selettoreMesi.fine; doUpdate(); } private void reportAnno() { Inizio = new DateTime(anno, 1, 1); Fine = new DateTime(anno + 1, 1, 1); intervalloDate currAnno = new intervalloDate { inizio = Inizio, fine = Fine }; cmp_selettoreMesi.anno = anno; cmp_selettoreMesi.intervalloAnalisi = currAnno; cmp_calAnnuale.anno = anno; } /// /// Elenco Richieste Malattie (anno indicato + precedente...) /// /// private List RMListByAnno(int reqYear) { DateTime inizio = new DateTime(reqYear - 1, 1, 1); DateTime fine = new DateTime(reqYear + 1, 1, 1); List result = DataProxy.DP.taRM.getPeriod(0, inizio, fine).ToList(); return result; } #endregion Private Methods } }