Assegnazione gruppi e tipo risorsa da dropdown

This commit is contained in:
Samuele Locatelli
2021-10-19 08:38:57 +02:00
parent 5ba57ced59
commit ebc495fe77
6 changed files with 345 additions and 287 deletions
+307 -284
View File
@@ -5,136 +5,220 @@ using System.Text;
namespace ETS_Data
{
/// <summary>
/// classe proxy dati x PROJ-ETS
/// </summary>
public class DataProxy_ProjEts
{
#region area table adapters
/* Ds_ProjEts */
public Ds_ProjEtsTableAdapters.AnagLabelsTableAdapter taAL;
public Ds_ProjEtsTableAdapters.AnagProgettiTableAdapter taAP;
public Ds_ProjEtsTableAdapters.AnagFasiTableAdapter taAF;
public Ds_ProjEtsTableAdapters.DatiCommessaTableAdapter taDC;
public Ds_ProjEtsTableAdapters.DatiCommFornTableAdapter taDCF;
public Ds_ProjEtsTableAdapters.DatiCommIntegTableAdapter taDCI;
public Ds_ProjEtsTableAdapters.BdgtRisorseFasiTableAdapter taBRF;
public Ds_ProjEtsTableAdapters.AnagTipoRisorseTableAdapter taATR;
public Ds_ProjEtsTableAdapters.BazaarRisorseTableAdapter taBaz;
public Ds_ProjEtsTableAdapters.Dip2ATRTableAdapter taD2ATR;
public Ds_ProjEtsTableAdapters.DipendentiTableAdapter taDip;
public Ds_ProjEtsTableAdapters.ImpiegoRisorseTableAdapter taIR;
public Ds_ProjEtsTableAdapters.LabelsCommTableAdapter taL2C;
public Ds_ProjEtsTableAdapters.LogEmailBazTableAdapter taLEB;
public Ds_ProjEtsTableAdapters.ReleasedWeekTableAdapter taReW;
public Ds_ProjEtsTableAdapters.TLockBazRATableAdapter taTLB;
public Ds_ProjEtsTableAdapters.v_CommessaTableAdapter taVComm;
/* DS_utilsProjEts */
public DS_utilsProjEtsTableAdapters.v_selClientiTableAdapter taSelCli;
public DS_utilsProjEtsTableAdapters.v_selProgettiTableAdapter taSelPro;
public DS_utilsProjEtsTableAdapters.v_selCommesseTableAdapter taSelCom;
public DS_utilsProjEtsTableAdapters.v_selFornitoriClaTableAdapter taSelForn;
public DS_utilsProjEtsTableAdapters.v_FattureETSTableAdapter taFattETS;
/// <summary>
/// init dei table adapters
/// classe proxy dati x PROJ-ETS
/// </summary>
protected void initTA()
public class DataProxy_ProjEts
{
taAL = new Ds_ProjEtsTableAdapters.AnagLabelsTableAdapter();
taAP = new Ds_ProjEtsTableAdapters.AnagProgettiTableAdapter();
taAF = new Ds_ProjEtsTableAdapters.AnagFasiTableAdapter();
taDC = new Ds_ProjEtsTableAdapters.DatiCommessaTableAdapter();
taDCF = new Ds_ProjEtsTableAdapters.DatiCommFornTableAdapter();
taDCI = new Ds_ProjEtsTableAdapters.DatiCommIntegTableAdapter();
taBRF = new Ds_ProjEtsTableAdapters.BdgtRisorseFasiTableAdapter();
taATR = new Ds_ProjEtsTableAdapters.AnagTipoRisorseTableAdapter();
taBaz = new Ds_ProjEtsTableAdapters.BazaarRisorseTableAdapter();
taD2ATR = new Ds_ProjEtsTableAdapters.Dip2ATRTableAdapter();
taDip = new Ds_ProjEtsTableAdapters.DipendentiTableAdapter();
taIR = new Ds_ProjEtsTableAdapters.ImpiegoRisorseTableAdapter();
taL2C = new Ds_ProjEtsTableAdapters.LabelsCommTableAdapter();
taLEB = new Ds_ProjEtsTableAdapters.LogEmailBazTableAdapter();
taReW = new Ds_ProjEtsTableAdapters.ReleasedWeekTableAdapter();
taTLB = new Ds_ProjEtsTableAdapters.TLockBazRATableAdapter();
taVComm = new Ds_ProjEtsTableAdapters.v_CommessaTableAdapter();
taSelCli = new DS_utilsProjEtsTableAdapters.v_selClientiTableAdapter();
taSelPro = new DS_utilsProjEtsTableAdapters.v_selProgettiTableAdapter();
taSelCom = new DS_utilsProjEtsTableAdapters.v_selCommesseTableAdapter();
taSelForn = new DS_utilsProjEtsTableAdapters.v_selFornitoriClaTableAdapter();
taFattETS = new DS_utilsProjEtsTableAdapters.v_FattureETSTableAdapter();
}
/// <summary>
/// effettua setup dei connection strings da web.config delal singola applicazione
/// </summary>
protected virtual void setupConnectionStringBase()
{
// connections del db
taAL.Connection.ConnectionString = utils.obj.confReadString("ETS_PROJConnectionString");
taAP.Connection.ConnectionString = utils.obj.confReadString("ETS_PROJConnectionString");
taAF.Connection.ConnectionString = utils.obj.confReadString("ETS_PROJConnectionString");
taDC.Connection.ConnectionString = utils.obj.confReadString("ETS_PROJConnectionString");
taDCF.Connection.ConnectionString = utils.obj.confReadString("ETS_PROJConnectionString");
taDCI.Connection.ConnectionString = utils.obj.confReadString("ETS_PROJConnectionString");
taBRF.Connection.ConnectionString = utils.obj.confReadString("ETS_PROJConnectionString");
taATR.Connection.ConnectionString = utils.obj.confReadString("ETS_PROJConnectionString");
taBaz.Connection.ConnectionString = utils.obj.confReadString("ETS_PROJConnectionString");
taD2ATR.Connection.ConnectionString = utils.obj.confReadString("ETS_PROJConnectionString");
taDip.Connection.ConnectionString = utils.obj.confReadString("ETS_PROJConnectionString");
taIR.Connection.ConnectionString = utils.obj.confReadString("ETS_PROJConnectionString");
taL2C.Connection.ConnectionString = utils.obj.confReadString("ETS_PROJConnectionString");
taLEB.Connection.ConnectionString = utils.obj.confReadString("ETS_PROJConnectionString");
taReW.Connection.ConnectionString = utils.obj.confReadString("ETS_PROJConnectionString");
taTLB.Connection.ConnectionString = utils.obj.confReadString("ETS_PROJConnectionString");
taVComm.Connection.ConnectionString = utils.obj.confReadString("ETS_PROJConnectionString");
taSelCli.Connection.ConnectionString = utils.obj.confReadString("ETS_PROJConnectionString");
taSelPro.Connection.ConnectionString = utils.obj.confReadString("ETS_PROJConnectionString");
taSelCom.Connection.ConnectionString = utils.obj.confReadString("ETS_PROJConnectionString");
taSelForn.Connection.ConnectionString = utils.obj.confReadString("ETS_PROJConnectionString");
taFattETS.Connection.ConnectionString = utils.obj.confReadString("ETS_PROJConnectionString");
}
/* Ds_ProjEts */
#endregion
#region Protected Fields
protected DataProxy_ProjEts()
{
initTA();
setupConnectionStringBase();
}
/// <summary>
/// Singleton accesso a DataProxy
/// </summary>
public static DataProxy_ProjEts DP = new DataProxy_ProjEts();
protected Ds_ProjEts.BazaarRisorseDataTable tabBazSingle = new Ds_ProjEts.BazaarRisorseDataTable();
protected DS_utilsProjEts.v_selCommesseDataTable tabComm = new DS_utilsProjEts.v_selCommesseDataTable();
protected Ds_ProjEts.Dip2ATRDataTable tabD2ATR = new Ds_ProjEts.Dip2ATRDataTable();
protected Ds_ProjEts.DipendentiDataTable tabDip = new Ds_ProjEts.DipendentiDataTable();
#region utility public esposte
#endregion Protected Fields
#region Public Fields
/// <summary>
/// idxDipendente in sessione
/// </summary>
public static int idxDipendente
{
get
{
int idx = 0;
try
/// <summary>
/// Singleton accesso a DataProxy
/// </summary>
public static DataProxy_ProjEts DP = new DataProxy_ProjEts();
public Ds_ProjEtsTableAdapters.AnagFasiTableAdapter taAF;
public Ds_ProjEtsTableAdapters.AnagLabelsTableAdapter taAL;
public Ds_ProjEtsTableAdapters.AnagProgettiTableAdapter taAP;
public Ds_ProjEtsTableAdapters.AnagTipoRisorseTableAdapter taATR;
public Ds_ProjEtsTableAdapters.BazaarRisorseTableAdapter taBaz;
public Ds_ProjEtsTableAdapters.BdgtRisorseFasiTableAdapter taBRF;
public Ds_ProjEtsTableAdapters.Dip2ATRTableAdapter taD2ATR;
public Ds_ProjEtsTableAdapters.DatiCommessaTableAdapter taDC;
public Ds_ProjEtsTableAdapters.DatiCommFornTableAdapter taDCF;
public Ds_ProjEtsTableAdapters.DatiCommIntegTableAdapter taDCI;
public Ds_ProjEtsTableAdapters.DipendentiTableAdapter taDip;
public DS_utilsProjEtsTableAdapters.v_FattureETSTableAdapter taFattETS;
public Ds_ProjEtsTableAdapters.ImpiegoRisorseTableAdapter taIR;
public Ds_ProjEtsTableAdapters.LabelsCommTableAdapter taL2C;
public Ds_ProjEtsTableAdapters.LogEmailBazTableAdapter taLEB;
public Ds_ProjEtsTableAdapters.ReleasedWeekTableAdapter taReW;
public DS_utilsProjEtsTableAdapters.v_selClientiTableAdapter taSelCli;
public DS_utilsProjEtsTableAdapters.v_selCommesseTableAdapter taSelCom;
public DS_utilsProjEtsTableAdapters.v_selFornitoriClaTableAdapter taSelForn;
public DS_utilsProjEtsTableAdapters.v_selProgettiTableAdapter taSelPro;
public Ds_ProjEtsTableAdapters.TLockBazRATableAdapter taTLB;
public Ds_ProjEtsTableAdapters.v_CommessaTableAdapter taVComm;
#endregion Public Fields
/* DS_utilsProjEts */
#region Protected Constructors
protected DataProxy_ProjEts()
{
idx = utils.obj.IntSessionObj("IdxDipendente");
initTA();
setupConnectionStringBase();
}
catch
{ }
return idx;
}
set
{
utils.obj.setSessionVal("idxDipendente", value);
}
}
public string CognomeNomeByIdx(int idxDip)
{
string answ = "";
#endregion Protected Constructors
#region Public Properties
/// <summary>
/// idxDipendente in sessione
/// </summary>
public static int idxDipendente
{
get
{
int idx = 0;
try
{
idx = utils.obj.IntSessionObj("IdxDipendente");
}
catch
{ }
return idx;
}
set
{
utils.obj.setSessionVal("idxDipendente", value);
}
}
#endregion Public Properties
#region Protected Methods
/// <summary>
/// Formatta blocco impegno x dipendente x una specifica data
/// </summary>
/// <param name="idxDipendente">identificativo dipendente</param>
/// <param name="anno">anno di riferimento</param>
/// <param name="sett">settimana desiderata</param>
/// <param name="shiftDay">shift (add) da applicare con base lunedì (0..4)</param>
/// <returns></returns>
protected string getAgendByDate(int idxDipendente, int anno, int sett, int shiftDay)
{
// variabili
string answ = "";
DS_utilsProjEts.v_selCommesseRow rigaComm;
// parto dal lunedì della sett indicata!
DateTime dataRif = datario.FirstDateOfWeekISO8601(anno, sett);
dataRif = dataRif.AddDays(shiftDay);
// inserisco intestazione con data
answ += string.Format("<tr><td colspan=\"2\" style=\"border-bottom: 1px solid black; font-size: 1.2em;\">{0:dd.MM.yyyy} <b>{0:dddd}</b></td><td></td></tr>", dataRif).ToUpper();
// recupero tutte le assegnazioni x la giornata indicata (cerco alla posizione shiftDay se è != 0)
Ds_ProjEts.BazaarRisorseRow[] commGG = (Ds_ProjEts.BazaarRisorseRow[])tabBazSingle.Select(string.Format("SUBSTRING(SchemaWeek, {0}, 1) <> 0", shiftDay + 1));
foreach (Ds_ProjEts.BazaarRisorseRow riga in commGG)
{
// recupero dati commessa...
rigaComm = (DS_utilsProjEts.v_selCommesseRow)tabComm.Select(string.Format("value = {0}", riga.idxFase))[0];
answ += string.Format("<tr><td>{0}</td><td>&nbsp;<b>{1}</b></td></tr>", utils.trimChar(rigaComm.label, utils.obj.confReadInt("maxCharNomeComm")), riga.SchemaWeek);
}
// aggiungo spaziatura
answ += "<br/><br/>";
return answ;
}
/// <summary>
/// Formatta blocco impegni del dipendente x la settimana indicata
/// </summary>
/// <param name="idxDipendente">identificativo dipendente</param>
/// <param name="anno">anno di riferimento</param>
/// <param name="sett">settimana desiderata</param>
/// <returns></returns>
protected string getAgendDip(int idxDipendente, int anno, int sett)
{
//default
string answ = "";
// inizio a comporre tabella utente
answ += "<table style=\"width: 100%;\">";
// recupero i dati x il dipendente corrente...
tabBazSingle = DataProxy_ProjEts.DP.taBaz.getByAnnoSettDip(anno, sett, idxDipendente);
// compongo la settimana a partire dalla data richiesta...
for (int i = 0; i < 5; i++)
{
answ += getAgendByDate(idxDipendente, anno, sett, i);
}
answ += "</table>";
// restituisco risultato
return answ;
}
/// <summary>
/// init dei table adapters
/// </summary>
protected void initTA()
{
taAF = new Ds_ProjEtsTableAdapters.AnagFasiTableAdapter();
taAL = new Ds_ProjEtsTableAdapters.AnagLabelsTableAdapter();
taAP = new Ds_ProjEtsTableAdapters.AnagProgettiTableAdapter();
taATR = new Ds_ProjEtsTableAdapters.AnagTipoRisorseTableAdapter();
taDC = new Ds_ProjEtsTableAdapters.DatiCommessaTableAdapter();
taDCF = new Ds_ProjEtsTableAdapters.DatiCommFornTableAdapter();
taDCI = new Ds_ProjEtsTableAdapters.DatiCommIntegTableAdapter();
taBRF = new Ds_ProjEtsTableAdapters.BdgtRisorseFasiTableAdapter();
taBaz = new Ds_ProjEtsTableAdapters.BazaarRisorseTableAdapter();
taD2ATR = new Ds_ProjEtsTableAdapters.Dip2ATRTableAdapter();
taDip = new Ds_ProjEtsTableAdapters.DipendentiTableAdapter();
taIR = new Ds_ProjEtsTableAdapters.ImpiegoRisorseTableAdapter();
taL2C = new Ds_ProjEtsTableAdapters.LabelsCommTableAdapter();
taLEB = new Ds_ProjEtsTableAdapters.LogEmailBazTableAdapter();
taReW = new Ds_ProjEtsTableAdapters.ReleasedWeekTableAdapter();
taTLB = new Ds_ProjEtsTableAdapters.TLockBazRATableAdapter();
taVComm = new Ds_ProjEtsTableAdapters.v_CommessaTableAdapter();
taSelCli = new DS_utilsProjEtsTableAdapters.v_selClientiTableAdapter();
taSelPro = new DS_utilsProjEtsTableAdapters.v_selProgettiTableAdapter();
taSelCom = new DS_utilsProjEtsTableAdapters.v_selCommesseTableAdapter();
taSelForn = new DS_utilsProjEtsTableAdapters.v_selFornitoriClaTableAdapter();
taFattETS = new DS_utilsProjEtsTableAdapters.v_FattureETSTableAdapter();
}
/// <summary>
/// effettua setup dei connection strings da web.config delal singola applicazione
/// </summary>
protected virtual void setupConnectionStringBase()
{
// connections del db
taAF.Connection.ConnectionString = utils.obj.confReadString("ETS_PROJConnectionString");
taAL.Connection.ConnectionString = utils.obj.confReadString("ETS_PROJConnectionString");
taAP.Connection.ConnectionString = utils.obj.confReadString("ETS_PROJConnectionString");
taATR.Connection.ConnectionString = utils.obj.confReadString("ETS_PROJConnectionString");
taDC.Connection.ConnectionString = utils.obj.confReadString("ETS_PROJConnectionString");
taDCF.Connection.ConnectionString = utils.obj.confReadString("ETS_PROJConnectionString");
taDCI.Connection.ConnectionString = utils.obj.confReadString("ETS_PROJConnectionString");
taBRF.Connection.ConnectionString = utils.obj.confReadString("ETS_PROJConnectionString");
taBaz.Connection.ConnectionString = utils.obj.confReadString("ETS_PROJConnectionString");
taD2ATR.Connection.ConnectionString = utils.obj.confReadString("ETS_PROJConnectionString");
taDip.Connection.ConnectionString = utils.obj.confReadString("ETS_PROJConnectionString");
taIR.Connection.ConnectionString = utils.obj.confReadString("ETS_PROJConnectionString");
taL2C.Connection.ConnectionString = utils.obj.confReadString("ETS_PROJConnectionString");
taLEB.Connection.ConnectionString = utils.obj.confReadString("ETS_PROJConnectionString");
taReW.Connection.ConnectionString = utils.obj.confReadString("ETS_PROJConnectionString");
taTLB.Connection.ConnectionString = utils.obj.confReadString("ETS_PROJConnectionString");
taVComm.Connection.ConnectionString = utils.obj.confReadString("ETS_PROJConnectionString");
taSelCli.Connection.ConnectionString = utils.obj.confReadString("ETS_PROJConnectionString");
taSelPro.Connection.ConnectionString = utils.obj.confReadString("ETS_PROJConnectionString");
taSelCom.Connection.ConnectionString = utils.obj.confReadString("ETS_PROJConnectionString");
taSelForn.Connection.ConnectionString = utils.obj.confReadString("ETS_PROJConnectionString");
taFattETS.Connection.ConnectionString = utils.obj.confReadString("ETS_PROJConnectionString");
}
#endregion Protected Methods
#region Public Methods
public string CognomeNomeByIdx(int idxDip)
{
string answ = "";
#if false
try
{
@@ -142,178 +226,117 @@ namespace ETS_Data
answ = string.Format("{0} {1}", rigaDip.Cognome, rigaDip.Nome);
}
catch
{ }
{ }
#endif
return answ;
}
/// <summary>
/// calcola se una commessa sia attiva (da idxFase)
/// </summary>
/// <param name="idxFase"></param>
/// <returns></returns>
public bool commessaAttiva(int idxFase)
{
bool answ = false;
try
{
answ = taAF.getByIdx(idxFase)[0].Attivo;
}
catch
{ }
return answ;
}
/// <summary>
/// effettua export su GPW dei singoli dipendenti delle ore programmate x la settimana indicata
/// </summary>
/// <param name="anno">anno</param>
/// <param name="settimana">num settimana 1-53</param>
/// <param name="UsernameAD">Utente che congela la settimana</param>
/// <returns></returns>
public bool esportaBazaarSuGPW(int anno, int settimana, string UsernameAD)
{
bool answ = false;
try
{
taBaz.copy2GPW(anno, settimana, UsernameAD);
answ = true;
}
catch
{ }
return answ;
}
/// <summary>
/// invia email ai singoli dipendenti delle ore programmate x la settimana indicata con link a bazaar
/// </summary>
/// <param name="anno">anno</param>
/// <param name="settimana">num settimana 1-53</param>
/// <returns></returns>
public bool inviaEmailBazaar(int anno, int settimana)
{
bool answ = false;
int inviate = 0;
string oggettoEmail = utils.obj.confReadString("emailBaz_subject");
string fromEmail = utils.obj.confReadString("_fromEmail");
string toEmail = "";
string aCapo = "<br />";
string corpoEmail = "";
string progSett = "";
int idxDipendente = 0;
// leggo tutte commesse ed i dipendenti...
tabComm = DataProxy_ProjEts.DP.taSelCom.GetData();
tabDip = DataProxy_ProjEts.DP.taDip.GetData();
tabD2ATR = DataProxy_ProjEts.DP.taD2ATR.getBazOrd();
Ds_ProjEts.DipendentiRow rigaDip;
// ciclo su TUTTI i dipendenti inseriti come risorse in bazaar
foreach (Ds_ProjEts.Dip2ATRRow riga in tabD2ATR)
{
idxDipendente = riga.idxDipendente;
rigaDip = (Ds_ProjEts.DipendentiRow)tabDip.Select(string.Format("idxDipendente={0}", idxDipendente))[0];
// se sono in testing resetto email a mia...
if (utils.obj.confReadBool("testMode"))
{
toEmail = utils.obj.confReadString("stdEmail");
}
else
{
toEmail = rigaDip.email;
return answ;
}
corpoEmail = "<div style=\"background-color: #0A64A4; margin-bottom: 0.2em; color: #FDFDFD; text-align: center; font-size: 2em; font-weight: bold; width: 100%;\">PROJ-ETS</div>";
corpoEmail += string.Format(utils.obj.confReadString("emailBaz_body_Head") + " <b>{1:00}/{0}</b> - {2} {3}", anno, settimana, rigaDip.Cognome, rigaDip.Nome) + aCapo + aCapo;
corpoEmail += string.Format(@"<a href='{0}/Bazaar'>{1}</a>", utils.obj.confReadString("baseUrl"), utils.obj.confReadString("emailBaz_body_Link"));
corpoEmail += aCapo + aCapo;
// compongo la programmazione settimanale utente... EVENTUALMENTE CON GIORNI VUOTI!!!
progSett = getAgendDip(idxDipendente, anno, settimana);
corpoEmail += progSett;
corpoEmail += "<i style=\"color: #696969;\">" + utils.obj.confReadString("emailBaz_body_Firma") + "</i>";
try
/// <summary>
/// calcola se una commessa sia attiva (da idxFase)
/// </summary>
/// <param name="idxFase"></param>
/// <returns></returns>
public bool commessaAttiva(int idxFase)
{
// invio email con link + resoconto breve impegno settimanale
utils.gestEmail.geAuth.mandaEmail(fromEmail, toEmail, oggettoEmail, corpoEmail);
inviate++;
bool answ = false;
try
{
answ = taAF.getByIdx(idxFase)[0].Attivo;
}
catch
{ }
return answ;
}
catch
{ }
if (utils.obj.confReadBool("testMode") && inviate > 5)
/// <summary>
/// effettua export su GPW dei singoli dipendenti delle ore programmate x la settimana indicata
/// </summary>
/// <param name="anno">anno</param>
/// <param name="settimana">num settimana 1-53</param>
/// <param name="UsernameAD">Utente che congela la settimana</param>
/// <returns></returns>
public bool esportaBazaarSuGPW(int anno, int settimana, string UsernameAD)
{
answ = true;
return answ;
bool answ = false;
try
{
taBaz.copy2GPW(anno, settimana, UsernameAD);
answ = true;
}
catch
{ }
return answ;
}
}
answ = inviate > 0; // controlla che ALMENO 1 email sia stata inviata...
return answ;
/// <summary>
/// invia email ai singoli dipendenti delle ore programmate x la settimana indicata con link a bazaar
/// </summary>
/// <param name="anno">anno</param>
/// <param name="settimana">num settimana 1-53</param>
/// <returns></returns>
public bool inviaEmailBazaar(int anno, int settimana)
{
bool answ = false;
int inviate = 0;
string oggettoEmail = utils.obj.confReadString("emailBaz_subject");
string fromEmail = utils.obj.confReadString("_fromEmail");
string toEmail = "";
string aCapo = "<br />";
string corpoEmail = "";
string progSett = "";
int idxDipendente = 0;
// leggo tutte commesse ed i dipendenti...
tabComm = DataProxy_ProjEts.DP.taSelCom.GetData();
tabDip = DataProxy_ProjEts.DP.taDip.GetData();
tabD2ATR = DataProxy_ProjEts.DP.taD2ATR.getBazOrd();
Ds_ProjEts.DipendentiRow rigaDip;
// ciclo su TUTTI i dipendenti inseriti come risorse in bazaar
foreach (Ds_ProjEts.Dip2ATRRow riga in tabD2ATR)
{
idxDipendente = riga.idxDipendente;
rigaDip = (Ds_ProjEts.DipendentiRow)tabDip.Select(string.Format("idxDipendente={0}", idxDipendente))[0];
// se sono in testing resetto email a mia...
if (utils.obj.confReadBool("testMode"))
{
toEmail = utils.obj.confReadString("stdEmail");
}
else
{
toEmail = rigaDip.email;
}
corpoEmail = "<div style=\"background-color: #0A64A4; margin-bottom: 0.2em; color: #FDFDFD; text-align: center; font-size: 2em; font-weight: bold; width: 100%;\">PROJ-ETS</div>";
corpoEmail += string.Format(utils.obj.confReadString("emailBaz_body_Head") + " <b>{1:00}/{0}</b> - {2} {3}", anno, settimana, rigaDip.Cognome, rigaDip.Nome) + aCapo + aCapo;
corpoEmail += string.Format(@"<a href='{0}/Bazaar'>{1}</a>", utils.obj.confReadString("baseUrl"), utils.obj.confReadString("emailBaz_body_Link"));
corpoEmail += aCapo + aCapo;
// compongo la programmazione settimanale utente... EVENTUALMENTE CON GIORNI VUOTI!!!
progSett = getAgendDip(idxDipendente, anno, settimana);
corpoEmail += progSett;
corpoEmail += "<i style=\"color: #696969;\">" + utils.obj.confReadString("emailBaz_body_Firma") + "</i>";
try
{
// invio email con link + resoconto breve impegno settimanale
utils.gestEmail.geAuth.mandaEmail(fromEmail, toEmail, oggettoEmail, corpoEmail);
inviate++;
}
catch
{ }
if (utils.obj.confReadBool("testMode") && inviate > 5)
{
answ = true;
return answ;
}
}
answ = inviate > 0; // controlla che ALMENO 1 email sia stata inviata...
return answ;
}
#endregion Public Methods
}
protected Ds_ProjEts.DipendentiDataTable tabDip = new Ds_ProjEts.DipendentiDataTable();
protected Ds_ProjEts.Dip2ATRDataTable tabD2ATR = new Ds_ProjEts.Dip2ATRDataTable();
protected Ds_ProjEts.BazaarRisorseDataTable tabBazSingle = new Ds_ProjEts.BazaarRisorseDataTable();
protected DS_utilsProjEts.v_selCommesseDataTable tabComm = new DS_utilsProjEts.v_selCommesseDataTable();
/// <summary>
/// Formatta blocco impegni del dipendente x la settimana indicata
/// </summary>
/// <param name="idxDipendente">identificativo dipendente</param>
/// <param name="anno">anno di riferimento</param>
/// <param name="sett">settimana desiderata</param>
/// <returns></returns>
protected string getAgendDip(int idxDipendente, int anno, int sett)
{
//default
string answ = "";
// inizio a comporre tabella utente
answ += "<table style=\"width: 100%;\">";
// recupero i dati x il dipendente corrente...
tabBazSingle = DataProxy_ProjEts.DP.taBaz.getByAnnoSettDip(anno, sett, idxDipendente);
// compongo la settimana a partire dalla data richiesta...
for (int i = 0; i < 5; i++)
{
answ += getAgendByDate(idxDipendente, anno, sett, i);
}
answ += "</table>";
// restituisco risultato
return answ;
}
/// <summary>
/// Formatta blocco impegno x dipendente x una specifica data
/// </summary>
/// <param name="idxDipendente">identificativo dipendente</param>
/// <param name="anno">anno di riferimento</param>
/// <param name="sett">settimana desiderata</param>
/// <param name="shiftDay">shift (add) da applicare con base lunedì (0..4)</param>
/// <returns></returns>
protected string getAgendByDate(int idxDipendente, int anno, int sett, int shiftDay)
{
// variabili
string answ = "";
DS_utilsProjEts.v_selCommesseRow rigaComm;
// parto dal lunedì della sett indicata!
DateTime dataRif = datario.FirstDateOfWeekISO8601(anno, sett);
dataRif = dataRif.AddDays(shiftDay);
// inserisco intestazione con data
answ += string.Format("<tr><td colspan=\"2\" style=\"border-bottom: 1px solid black; font-size: 1.2em;\">{0:dd.MM.yyyy} <b>{0:dddd}</b></td><td></td></tr>", dataRif).ToUpper();
// recupero tutte le assegnazioni x la giornata indicata (cerco alla posizione shiftDay se è != 0)
Ds_ProjEts.BazaarRisorseRow[] commGG = (Ds_ProjEts.BazaarRisorseRow[])tabBazSingle.Select(string.Format("SUBSTRING(SchemaWeek, {0}, 1) <> 0", shiftDay + 1));
foreach (Ds_ProjEts.BazaarRisorseRow riga in commGG)
{
// recupero dati commessa...
rigaComm = (DS_utilsProjEts.v_selCommesseRow)tabComm.Select(string.Format("value = {0}", riga.idxFase))[0];
answ += string.Format("<tr><td>{0}</td><td>&nbsp;<b>{1}</b></td></tr>", utils.trimChar(rigaComm.label, utils.obj.confReadInt("maxCharNomeComm")), riga.SchemaWeek);
}
// aggiungo spaziatura
answ += "<br/><br/>";
return answ;
}
#endregion
}
}
}
@@ -32,8 +32,23 @@
<asp:LinkButton ID="lbDelete" runat="server" CausesValidation="False" CommandName="Delete" Text="Delete" CssClass="btn btn-sm btn-danger text-light" OnClientClick="return confirm('Confermi eliminazione record?')" Visible='<%# Eval("NumDip").ToString() == "0" %>'><i class="fa fa-trash" aria-hidden="true"></i></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>--%>
<asp:BoundField DataField="CodTipoRisorsa" HeaderText="Tipo" SortExpression="CodTipoRisorsa" />
<asp:BoundField DataField="Gruppo" HeaderText="Gruppo" SortExpression="Gruppo" />
<asp:TemplateField HeaderText="Tipo" SortExpression="CodTipoRisorsa">
<EditItemTemplate>
<asp:DropDownList runat="server" ID="ddlTipoRisorsa" DataSourceID="odsTipoRis" DataTextField="CodTipoRisorsa" DataValueField="CodTipoRisorsa" SelectedValue='<%# Bind("CodTipoRisorsa") %>'></asp:DropDownList>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="lblCodTipoRisorsa" runat="server" Text='<%# Bind("CodTipoRisorsa") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Gruppo" SortExpression="Gruppo">
<EditItemTemplate>
<%--<asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("Gruppo") %>'></asp:TextBox>--%>
<asp:DropDownList runat="server" ID="ddlGruppo" DataSourceID="odsGruppo" DataTextField="Gruppo" DataValueField="Gruppo" SelectedValue='<%# Bind("Gruppo") %>'></asp:DropDownList>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Bind("Gruppo") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="GrpOrder" HeaderText="Ord." SortExpression="GrpOrder" />
<asp:BoundField DataField="Cognome" HeaderText="Cognome" SortExpression="Cognome" ReadOnly="True" />
<asp:BoundField DataField="Nome" HeaderText="Nome" SortExpression="Nome" ReadOnly="True" />
@@ -53,4 +68,6 @@
<asp:Parameter Name="Original_idxDipendente" Type="Int32" />
</UpdateParameters>
</asp:ObjectDataSource>
<asp:HiddenField runat="server" ID="hfGruppo" Value="" />
<asp:HiddenField runat="server" ID="hfGruppo" Value="" />
<asp:ObjectDataSource runat="server" ID="odsTipoRis" OldValuesParameterFormatString="Original_{0}" SelectMethod="GetData" TypeName="ETS_Data.Ds_ProjEtsTableAdapters.AnagTipoRisorseTableAdapter"></asp:ObjectDataSource>
<asp:ObjectDataSource runat="server" ID="odsGruppo" OldValuesParameterFormatString="original_{0}" SelectMethod="GetData" TypeName="ETS_Data.Ds_ProjEtsTableAdapters.AnagGruppiTableAdapter"></asp:ObjectDataSource>
@@ -40,5 +40,23 @@ namespace PROJ_ETS.WebUserControls
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.HiddenField hfGruppo;
/// <summary>
/// odsTipoRis control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.ObjectDataSource odsTipoRis;
/// <summary>
/// odsGruppo control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.ObjectDataSource odsGruppo;
}
}
Binary file not shown.
Binary file not shown.