コード例 #1
0
        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();
        }