Completata procedura recupero dati x VERO dipendente selezionato (manca il ciclo x tutti i dipendenti ora...)
This commit is contained in:
@@ -190,45 +190,110 @@ namespace ETS_Data
|
||||
bool answ = false;
|
||||
int inviate = 0;
|
||||
string oggettoEmail = utils.obj.confReadString("emailBaz_subject");
|
||||
string fromEmail = utils.obj.confReadString("_fromEmail");
|
||||
string aCapo = "<br />";
|
||||
string corpoEmail = "";
|
||||
string progSett = "";
|
||||
string fromEmail = utils.obj.confReadString("_fromEmail");
|
||||
int idxDipendente = 0;
|
||||
Ds_ProjEts.DipendentiRow rigaDip;
|
||||
// leggo tutte commesse ed i dipendenti...
|
||||
tabComm = DataProxy_ProjEts.DP.taSelCom.GetData();
|
||||
tabDip = DataProxy_ProjEts.DP.taDip.GetData();
|
||||
|
||||
|
||||
// ciclo su TUTTI i dipendenti inseriti come risorse in bazaar
|
||||
|
||||
corpoEmail += "<div style=\"background-color: #0A64A4; margin-bottom: 0.2em; color: #DEDEDE; 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>", anno, settimana) + aCapo + aCapo;
|
||||
// test: invio forzato sett 9, dip 5 !!!
|
||||
idxDipendente = 5;
|
||||
settimana = 9;
|
||||
|
||||
rigaDip = (Ds_ProjEts.DipendentiRow)tabDip.Select(string.Format("idxDipendente={0}", idxDipendente))[0];
|
||||
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... se ci sono task assegnati!!!
|
||||
if (true)
|
||||
{
|
||||
progSett += "<table>";
|
||||
progSett += "<tr><td colspan=\"2\" style=\"border-bottom: 1px solid black;\">22.02.16 <b>Lunedì</b></td><td></td></tr>";
|
||||
progSett += "<tr><td><b>0232-2014</b> Ispra 103</td><td><b>80088</b></td></tr>";
|
||||
progSett += "<tr><td>0073-2015 La Spezia ospedale</td><td><b>84400</b></td></tr>";
|
||||
progSett += aCapo + aCapo;
|
||||
progSett += "<tr><td colspan=\"2\" style=\"border-bottom: 1px solid black;\">23.02.16 <b>Martedì</b></td><td></td></tr>";
|
||||
progSett += "<tr><td>0073-2015 La Spezia ospedale</td><td><b>84400</b></td></tr>";
|
||||
progSett += "<tr><td></td><td></td></tr>";
|
||||
progSett += "</table>";
|
||||
}
|
||||
// compongo la programmazione settimanale utente... EVENTUALMENTE CON GIORNI VUOTI!!!
|
||||
|
||||
corpoEmail += progSett + aCapo + aCapo;
|
||||
corpoEmail += "<i>" + utils.obj.confReadString("emailBaz_body_Firma") + "</i>";
|
||||
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
|
||||
ETS_Data.utils.gestEmail.geAuth.mandaEmail(fromEmail, "samuele@steamware.net", oggettoEmail, corpoEmail);
|
||||
utils.gestEmail.geAuth.mandaEmail(fromEmail, "samuele@steamware.net", oggettoEmail, corpoEmail);
|
||||
inviate++;
|
||||
}
|
||||
catch
|
||||
{ }
|
||||
|
||||
|
||||
|
||||
answ = inviate > 0; // controlla che ALMENO 1 email sia stata inviata...
|
||||
return answ;
|
||||
}
|
||||
protected Ds_ProjEts.BazaarRisorseDataTable tabBazSingle = new Ds_ProjEts.BazaarRisorseDataTable();
|
||||
protected DS_utilsProjEts.v_selCommesseDataTable tabComm = new DS_utilsProjEts.v_selCommesseDataTable();
|
||||
protected Ds_ProjEts.DipendentiDataTable tabDip = new Ds_ProjEts.DipendentiDataTable();
|
||||
/// <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>";
|
||||
// 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> <b>{1}</b></td></tr>", utils.trimChar(rigaComm.label, 40), riga.SchemaWeek);
|
||||
}
|
||||
// aggiungo spaziatura
|
||||
answ += "<br/><br/>";
|
||||
|
||||
return answ;
|
||||
}
|
||||
|
||||
|
||||
|
||||
#endregion
|
||||
|
||||
Binary file not shown.
+24
-1
@@ -671,7 +671,7 @@ namespace ETS_Data
|
||||
/// </summary>
|
||||
/// <param name="stringaIn"></param>
|
||||
/// <returns></returns>
|
||||
public string trimChar(object stringaIn, object maxChar)
|
||||
public static string trimChar(object stringaIn, object maxChar)
|
||||
{
|
||||
string answ = "";
|
||||
int maxNum = 0;
|
||||
@@ -1117,5 +1117,28 @@ namespace ETS_Data
|
||||
var day = (int)CultureInfo.CurrentCulture.Calendar.GetDayOfWeek(date);
|
||||
return CultureInfo.CurrentCulture.Calendar.GetWeekOfYear(date.AddDays(4 - (day == 0 ? 7 : day)), CalendarWeekRule.FirstFourDayWeek, DayOfWeek.Monday);
|
||||
}
|
||||
/// <summary>
|
||||
/// restituisce la prima data della settimana richiesta
|
||||
/// </summary>
|
||||
/// <param name="year"></param>
|
||||
/// <param name="weekOfYear"></param>
|
||||
/// <returns></returns>
|
||||
public static DateTime FirstDateOfWeekISO8601(int year, int weekOfYear)
|
||||
{
|
||||
DateTime jan1 = new DateTime(year, 1, 1);
|
||||
int daysOffset = DayOfWeek.Thursday - jan1.DayOfWeek;
|
||||
|
||||
DateTime firstThursday = jan1.AddDays(daysOffset);
|
||||
var cal = CultureInfo.CurrentCulture.Calendar;
|
||||
int firstWeek = cal.GetWeekOfYear(firstThursday, CalendarWeekRule.FirstFourDayWeek, DayOfWeek.Monday);
|
||||
|
||||
var weekNum = weekOfYear;
|
||||
if (firstWeek <= 1)
|
||||
{
|
||||
weekNum -= 1;
|
||||
}
|
||||
var result = firstThursday.AddDays(weekNum * 7);
|
||||
return result.AddDays(-3);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -48,8 +48,10 @@ namespace PROJ_ETS.Task
|
||||
string answ = "NA";
|
||||
int anno = DateTime.Now.Year;
|
||||
int sett = datario.WeekOfYearISO8601(DateTime.Now);
|
||||
|
||||
bool force = utils.obj.QSB("force");
|
||||
// verifico che NON sia stata inviata email x settimana corrente...
|
||||
if (DataProxy_ProjEts.DP.taLEB.getByWeek(anno, sett).Rows.Count == 0)
|
||||
if (DataProxy_ProjEts.DP.taLEB.getByWeek(anno, sett).Rows.Count == 0 || force)
|
||||
{
|
||||
// invio email
|
||||
try
|
||||
|
||||
@@ -715,7 +715,7 @@ namespace PROJ_ETS.WebUserControls
|
||||
/// <returns></returns>
|
||||
public string trimChar(object stringaIn, object maxChar)
|
||||
{
|
||||
return utils.obj.trimChar(stringaIn, maxChar);
|
||||
return utils.trimChar(stringaIn, maxChar);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user