Files
GPW/GPW_Admin/WebUserControls/cmp_gestRichDip.ascx.cs
T
Samuele Locatelli 1e7b4147ea GPW:
- Gestione flusso malattie
- email eliminazione (mal e richieste)
2023-01-04 13:59:43 +01:00

353 lines
14 KiB
C#

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_gestRichDip : BaseUserControl
{
#region Public Methods
public void doUpdate()
{
// aggiorno!
grView.PageSize = utils.pageSize;
grView.DataBind();
}
#endregion Public Methods
#region Protected Properties
/// <summary>
/// Anno corrente
/// </summary>
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 DS_Applicazione.DipendentiDataTable listaDip { get; set; }
protected List<DS_Applicazione.RegistroRichiesteRow> listRR { 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.showAll = 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()
{
listRR = RRListByAnno(anno);
}
protected void ods_Deleted(object sender, System.Web.UI.WebControls.ObjectDataSourceStatusEventArgs e)
{
doUpdateCal();
}
protected void ods_Updated(object sender, System.Web.UI.WebControls.ObjectDataSourceStatusEventArgs e)
{
doUpdateCal();
}
/// <summary>
/// check licenze in fase di eliminazione...
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
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_IdxRegRich"] != null)
{
string sIdxRegRich = $"{e.InputParameters["Original_IdxRegRich"]}";
int IdxRegRich = 0;
int.TryParse(sIdxRegRich, out IdxRegRich);
if (IdxRegRich > 0)
{
// recupero richiesta x i dati utente
if (listRR == null || listRR.Count == 0)
{
listRR = RRListByAnno(anno);
}
var richDip = listRR.Where(x => x.IdxRegRich == IdxRegRich).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 adminRichDip = memLayer.ML.CRS("adminRichDip");
string subjMess = $"ELIMINAZIONE richiesta n.{IdxRegRich}";
DateTime adesso = DateTime.Now;
StringBuilder sbMain = new StringBuilder();
sbMain.AppendLine($"Il giorno {adesso:yyyy.MM.dd} alle ore {adesso:HH:mm:ss} è stata <b>ELIMINAZIONE</b> la richiesta in oggetto.");
sbMain.AppendLine("");
sbMain.Append("<div style=\"font-size: 1.3em; color: #CC0066;\">");
sbMain.Append($"<b>{currUser.Cognome}</b> {currUser.Nome} ({currUser.matricola})");
sbMain.Append("</div>");
sbMain.AppendLine("<hr/>");
sbMain.AppendLine($"Richiesta: <b>{richDip.CodGiust}</b>");
string sConf = $"{e.InputParameters["Conf"]}";
bool isConf = false;
bool.TryParse(sConf, out isConf);
string stato = isConf ? "CONFERMATA" : "RIFIUTATA";
sbMain.AppendLine($"Stato: <b>{stato}</b>");
sbMain.AppendLine($"Inizio: <b>{richDip.DtStart}</b>");
sbMain.AppendLine($"Fine: <b>{richDip.DtEnd}</b>");
sbMain.AppendLine($"Note: <b>{richDip.Note}</b>");
sbMain.AppendLine("<hr/>");
string bodyMess = sbMain.ToString().Replace($"{Environment.NewLine}", "<br/>");
// invio email!
gestEmail.geAuth.mandaEmail(fromEmail, destEmail, subjMess, bodyMess);
// ora sistemo x admin
var adminList = adminRichDip.Split(',');
string urlRedir = memLayer.ML.CRS("urlRedirRich");
bodyMess += $"<hr/><br/>Cliccare sul <a href=\"{urlRedir}\">seguente link</a> per accedere alla pagina di gestione";
foreach (var dest in adminList)
{
gestEmail.geAuth.mandaEmail(fromEmail, dest, subjMess, bodyMess);
}
}
}
}
}
}
}
/// <summary>
/// check licenze in fase di update...
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
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_IdxRegRich"] != null)
{
string sIdxRegRich = $"{e.InputParameters["Original_IdxRegRich"]}";
int IdxRegRich = 0;
int.TryParse(sIdxRegRich, out IdxRegRich);
if (IdxRegRich > 0)
{
// recupero richiesta x i dati utente
if (listRR == null || listRR.Count == 0)
{
listRR = RRListByAnno(anno);
}
var richDip = listRR.Where(x => x.IdxRegRich == IdxRegRich).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 adminRichDip = memLayer.ML.CRS("adminRichDip");
string subjMess = $"Aggiornamento richiesta n.{IdxRegRich}";
DateTime adesso = DateTime.Now;
StringBuilder sbMain = new StringBuilder();
sbMain.AppendLine($"Il giorno {adesso:yyyy.MM.dd} alle ore {adesso:HH:mm:ss} è stata <b>modificata</b> la richiesta in oggetto.");
sbMain.AppendLine("");
sbMain.Append("<div style=\"font-size: 1.3em; color: #CC0066;\">");
sbMain.Append($"<b>{currUser.Cognome}</b> {currUser.Nome} ({currUser.matricola})");
sbMain.Append("</div>");
sbMain.AppendLine("<hr/>");
sbMain.AppendLine($"Richiesta: <b>{richDip.CodGiust}</b>");
string sConf = $"{e.InputParameters["Conf"]}";
bool isConf = false;
bool.TryParse(sConf, out isConf);
string stato = isConf ? "CONFERMATA" : "RIFIUTATA";
sbMain.AppendLine($"Stato: <b>{stato}</b>");
sbMain.AppendLine($"Inizio: <b>{richDip.DtStart}</b>");
sbMain.AppendLine($"Fine: <b>{richDip.DtEnd}</b>");
sbMain.AppendLine($"Note: <b>{richDip.Note}</b>");
sbMain.AppendLine("<hr/>");
string bodyMess = sbMain.ToString().Replace($"{Environment.NewLine}", "<br/>");
// invio email!
gestEmail.geAuth.mandaEmail(fromEmail, destEmail, subjMess, bodyMess);
// ora sistemo x admin
var adminList = adminRichDip.Split(',');
string urlRedir = memLayer.ML.CRS("urlRedirRich");
bodyMess += $"<hr/><br/>Cliccare sul <a href=\"{urlRedir}\">seguente link</a> 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;
}
/// <summary>
/// Elenco Richieste Dipendenti x anno
/// </summary>
/// <param name="reqYear"></param>
private List<DS_Applicazione.RegistroRichiesteRow> RRListByAnno(int reqYear)
{
DateTime inizio = new DateTime(reqYear, 1, 1);
DateTime fine = inizio.AddYears(1);
List<DS_Applicazione.RegistroRichiesteRow> result = DataProxy.DP.taRR.getPeriod(0, inizio, fine, chkShowAll.Checked).ToList();
return result;
}
#endregion Private Methods
}
}