void DayLogSave_Click(object sender, EventArgs e) { using (DigiDapter dg = new DigiDapter()) { dg.Add("IDRIF", long.Parse(Request["DayLogSection"].Split('|')[0])); dg.Add("TODORIF", long.Parse(Request["DayLogTodo"])); dg.Add("MEMBERID", long.Parse(DayOwnerRealID.Text)); dg.Add("DESCRIPTION", DayLogDescription.Text); dg.Add("STARTDATE", UC.LTZ.ToUniversalTime(Convert.ToDateTime(DayLogDate.Text, UC.myDTFI))); dg.Add("MINUTEDURATION", DayLogDuration.Text); if (DayLogMaterial.Text.Length > 0) { dg.Add("MATERIAL", DayLogMaterial.Text); } if (DayLogDelay.Text.Length > 0) { dg.Add("DELAY", DayLogDelay.Text); } dg.Add("CREATEDDATE", DateTime.UtcNow); dg.Add("CREATEDBYID", UC.UserId); dg.Add("LASTMODIFIEDDATE", DateTime.UtcNow); dg.Add("LASTMODIFIEDBYID", UC.UserId); dg.Execute("PROJECT_DAYLOG"); } if (AddMinute.Text.Length > 0) { using (DigiDapter dg = new DigiDapter()) { dg.Add("IDTIMING", long.Parse(DatabaseConnection.SqlScalar("select id from PROJECT_TIMING where RIFTYPE=1 AND IDRIF=" + Request["DayLogTodo"]))); dg.Add("PLANNEDMINUTE", int.Parse(plusminus.SelectedValue + AddMinute.Text)); dg.Add("DESCRIPTION", VariationDescription.Text); if (NewData.Text.Length > 0) { dg.Add("NEWPLANNEDDATE", UC.LTZ.ToUniversalTime(Convert.ToDateTime(NewData.Text, UC.myDTFI))); } dg.Add("CREATEDBYID", UC.UserId); dg.Add("CREATEDDATE", DateTime.UtcNow); dg.Add("RIFTYPE", 1); dg.Execute("PROJECT_TIMING_VARIATION"); } StringBuilder sb = new StringBuilder(); string prjtxt = DatabaseConnection.SqlScalar("SELECT TITLE FROM PROJECT WHERE ID=" + prjID); string sectiontxt = DatabaseConnection.SqlScalar("SELECT TITLE FROM PROJECT_SECTION WHERE ID=" + Request["DayLogSection"].Split('|')[0]); sb.AppendFormat("Progetto: {0}{1}", prjtxt, System.Environment.NewLine); sb.AppendFormat("Sezione: {0}{1}", sectiontxt, System.Environment.NewLine); sb.AppendFormat("To Do: {0}{1}", DatabaseConnection.SqlScalar("SELECT TODODESCRIPTION FROM PROJECT_SECTION_MEMBERS WHERE ID=" + Request["DayLogTodo"]), System.Environment.NewLine); sb.AppendFormat("Utente: {0}{1}{1}", DayOwner.Text, System.Environment.NewLine); sb.AppendFormat("Motivo della variazione:{1}{0}", VariationDescription.Text, System.Environment.NewLine); sb.AppendFormat("Ore:{0}{1}", plusminus.SelectedValue + AddMinute.Text, System.Environment.NewLine); if (NewData.Text.Length > 0) { sb.AppendFormat("Nuova data prevista:{0}{1}", NewData.Text, System.Environment.NewLine); } string mailTo = string.Empty; string[] adminId = DatabaseConnection.SqlScalar("select adminaccount+cast(owner as varchar(10)) from project where id=" + prjID).Split('|'); foreach (string adm in adminId) { if (adm.Length > 0) { mailTo += DatabaseConnection.SqlScalar("SELECT CASE ISNULL(NOTIFYEMAIL,'') WHEN '' THEN USERACCOUNT ELSE NOTIFYEMAIL END AS MAIL FROM ACCOUNT WHERE UID=" + adm) + ";"; } } mailTo += DatabaseConnection.SqlScalar(string.Format("SELECT CASE ISNULL(NOTIFYEMAIL,'') WHEN '' THEN USERACCOUNT ELSE NOTIFYEMAIL END AS MAIL FROM ACCOUNT WHERE UID=(select memberid from project_section where id={0})", Request["DayLogSection"].Split('|')[0])); MessagesHandler.SendMail(mailTo, "*****@*****.**", string.Format("Variazione tempi [{0}] [{1}]", prjtxt, sectiontxt), sb.ToString()); ProjectData pd = new ProjectData(); if (NewData.Text.Length > 0) { pd.ChangeStartEndFromRelation(long.Parse(Request["DayLogSection"].Split('|')[0]), Convert.ToDateTime(NewData.Text, UC.myDTFI), Convert.ToDateTime(DatabaseConnection.SqlScalartoObj("select plannedenddate from project_timing where riftype=0 and idrif=" + Request["DayLogSection"].Split('|')[0])), UC.UserId); } } using (DigiDapter dg = new DigiDapter()) { dg.Add("CURRENTMINUTEDURATION", int.Parse(Request["DayLogCurrent"]) + int.Parse(DayLogDuration.Text)); decimal planned = decimal.Parse(Request["DayLogPlanned"]); if (AddMinute.Text.Length > 0) { planned += decimal.Parse(plusminus.SelectedValue + AddMinute.Text); } decimal progress = (decimal.Parse(Request["DayLogCurrent"]) + decimal.Parse(DayLogDuration.Text)) * 100 / planned; dg.Add("PROGRESS", Convert.ToByte(progress)); dg.Execute("PROJECT_TIMING", "RIFTYPE=1 AND IDRIF=" + Request["DayLogTodo"]); } if (DayLogDelay.Text.Length > 0) { StringBuilder sb = new StringBuilder(); string prjtxt = DatabaseConnection.SqlScalar("SELECT TITLE FROM PROJECT WHERE ID=" + prjID); string sectiontxt = DatabaseConnection.SqlScalar("SELECT TITLE FROM PROJECT_SECTION WHERE ID=" + Request["DayLogSection"].Split('|')[0]); sb.AppendFormat("Progetto: {0}{1}", prjtxt, System.Environment.NewLine); sb.AppendFormat("Sezione: {0}{1}", sectiontxt, System.Environment.NewLine); sb.AppendFormat("To Do: {0}{1}", DatabaseConnection.SqlScalar("SELECT TODODESCRIPTION FROM PROJECT_SECTION_MEMBERS WHERE ID=" + Request["DayLogTodo"]), System.Environment.NewLine); sb.AppendFormat("Utente: {0}{1}{1}", DayOwner.Text, System.Environment.NewLine); sb.AppendFormat("Motivazione del ritardo:{1}{0}", DayLogDelay.Text, System.Environment.NewLine); string mailTo = string.Empty; string[] adminId = DatabaseConnection.SqlScalar("select adminaccount+cast(owner as varchar(10)) from project where id=" + prjID).Split('|'); foreach (string adm in adminId) { if (adm.Length > 0) { mailTo += DatabaseConnection.SqlScalar("SELECT CASE ISNULL(NOTIFYEMAIL,'') WHEN '' THEN USERACCOUNT ELSE NOTIFYEMAIL END AS MAIL FROM ACCOUNT WHERE UID=" + adm) + ";"; } } mailTo += DatabaseConnection.SqlScalar(string.Format("SELECT CASE ISNULL(NOTIFYEMAIL,'') WHEN '' THEN USERACCOUNT ELSE NOTIFYEMAIL END AS MAIL FROM ACCOUNT WHERE UID=(select memberid from project_section where id={0})", Request["DayLogSection"].Split('|')[0])); MessagesHandler.SendMail(mailTo, "*****@*****.**", string.Format("Notifica di ritardo [{0}] [{1}]", prjtxt, sectiontxt), sb.ToString()); } FillRepeater(); }