コード例 #1
0
        protected void btnNewSession_Click(object sender, EventArgs e)
        {
            SelectSession.Text      = "-1";
            SectionName.Text        = string.Empty;
            SectionDescription.Text = string.Empty;
            SectionOwnerID.Text     = string.Empty;
            SectionOwner.Text       = string.Empty;

            PlannedStartDate.Text      = string.Empty;
            PlannedEndDate.Text        = string.Empty;
            PlannedMinuteDuration.Text = string.Empty;

            RealStartDate.Text         = string.Empty;
            RealEndDate.Text           = string.Empty;
            CurrentMinuteDuration.Text = string.Empty;

            FillSectionParent(string.Empty);
            SectionParent.SelectedIndex = 0;

            ProjectToDo1.prjID     = prjID;
            ProjectToDo1.sectionID = long.Parse(SelectSession.Text);
            ProjectToDo1.BindToDo();

            MainTable.Visible    = false;
            SessionTable.Visible = true;
            LoadFilterColors();
        }
コード例 #2
0
        public void FillSection()
        {
            string  q  = @"SELECT     PROJECT_SECTION.TITLE, PROJECT_SECTION.DESCRIPTION, PROJECT_SECTION.PARENT, PROJECT_SECTION.MEMBERID, PROJECT_TIMING.STATUS,
                      PROJECT_TIMING.PLANNEDSTARTDATE, PROJECT_TIMING.REALSTARTDATE, PROJECT_TIMING.PLANNEDENDDATE, PROJECT_TIMING.REALENDDATE,
                      PROJECT_TIMING.PROGRESS, PROJECT_TIMING.PLANNEDMINUTEDURATION, PROJECT_TIMING.CURRENTMINUTEDURATION, PROJECT_TIMING.ID AS TIMINGID,
                      PROJECT_SECTION.ID,PROJECT_SECTION.COLOR, PROJECT_SECTION.COSTTYPE, PROJECT_SECTION.AMOUNT
                      FROM         PROJECT_SECTION LEFT OUTER JOIN
                      PROJECT_TIMING ON (PROJECT_SECTION.ID = PROJECT_TIMING.IDRIF AND PROJECT_TIMING.RIFTYPE = 0) WHERE PROJECT_SECTION.ID=" + SelectSession.Text;
            DataRow dr = DatabaseConnection.CreateDataset(q).Tables[0].Rows[0];

            SectionName.Text        = dr["TITLE"].ToString();
            SectionDescription.Text = dr["DESCRIPTION"].ToString();
            SectionOwnerID.Text     = dr["MEMBERID"].ToString();
            SectionOwner.Text       = DatabaseConnection.SqlScalar("SELECT ISNULL(NAME,'')+' '+ISNULL(SURNAME,'') FROM ACCOUNT WHERE UID=" + SectionOwnerID.Text);

            if (dr["PLANNEDSTARTDATE"] != System.DBNull.Value)
            {
                PlannedStartDate.Text = UC.LTZ.ToLocalTime((DateTime)dr["PLANNEDSTARTDATE"]).ToShortDateString();
            }
            if (dr["PLANNEDENDDATE"] != System.DBNull.Value)
            {
                PlannedEndDate.Text = UC.LTZ.ToLocalTime((DateTime)dr["PLANNEDENDDATE"]).ToShortDateString();
            }
            PlannedMinuteDuration.Text = dr["PLANNEDMINUTEDURATION"].ToString();

            if (dr["REALSTARTDATE"] != System.DBNull.Value)
            {
                RealStartDate.Text = UC.LTZ.ToLocalTime((DateTime)dr["REALSTARTDATE"]).ToShortDateString();
            }
            if (dr["REALENDDATE"] != System.DBNull.Value)
            {
                RealEndDate.Text = UC.LTZ.ToLocalTime((DateTime)dr["REALENDDATE"]).ToShortDateString();
            }

            FillSectionParent(SelectSession.Text);
            if (dr["PARENT"] != System.DBNull.Value)
            {
                foreach (ListItem li in SectionParent.Items)
                {
                    if (li.Value == dr["PARENT"].ToString())
                    {
                        li.Selected = true;
                        break;
                    }
                }
            }
            else
            {
                SectionParent.SelectedIndex = 0;
            }

            CostType.SelectedIndex = Convert.ToInt32((byte)dr["COSTTYPE"]);
            if (dr["Amount"] != System.DBNull.Value)
            {
                SectionAmount.Text = ((decimal)dr["Amount"]).ToString(UC.myDTFI);
            }

            LoadFilterColors();
            if (dr["COLOR"] != System.DBNull.Value)
            {
                for (int i = 0; i < FilterColor.Items.Count; i++)
                {
                    Trace.Warn(FilterColor.Items[i].Value, dr["COLOR"].ToString());
                    FilterColor.SelectedIndex = -1;
                    if (FilterColor.Items[i].Value == dr["COLOR"].ToString())
                    {
                        FilterColor.Items[i].Selected = true;
                        break;
                    }
                }
            }

            string avquery = @"SELECT PROGRESS,WEIGHT FROM PROJECT_TIMING RIGHT OUTER JOIN PROJECT_SECTION_MEMBERS ON (PROJECT_TIMING.IDRIF=PROJECT_SECTION_MEMBERS.ID AND PROJECT_TIMING.RIFTYPE=1)
WHERE PROJECT_SECTION_MEMBERS.IDSECTIONRIF=" + SelectSession.Text;

            ProjectCalculator pc      = new ProjectCalculator();
            string            average = pc.GetSectionProgress(DatabaseConnection.CreateDataset(avquery).Tables[0]).ToString();

            SectionProgress.Text = string.Format("<span style=\"border:1px solid #000000;width:100%\"><span style=\"background-color:gold;width:{0}%;color:#000000;text-align:center\">{0}%</span></span>", average);

            string  variation = string.Empty;
            DataRow drstart   = DatabaseConnection.CreateDataset(string.Format(@"SELECT (SELECT TOP 1 NEWSTARTDATE FROM PROJECT_TIMING_VARIATION
INNER JOIN PROJECT_TIMING ON (PROJECT_TIMING_VARIATION.IDTIMING=PROJECT_TIMING.ID AND PROJECT_TIMING.RIFTYPE=1)
inner join PROJECT_SECTION_MEMBERS on PROJECT_TIMING.idrif=PROJECT_SECTION_MEMBERS.id
inner join PROJECT_SECTION on (PROJECT_SECTION_MEMBERS.IDSectionRif = PROJECT_SECTION.id)
WHERE PROJECT_SECTION.ID={0} AND PROJECT_TIMING_VARIATION.RIFTYPE=1
ORDER BY NEWSTARTDATE ASC) AS VARIATION,
(SELECT TOP 1 NEWSTARTDATE FROM PROJECT_TIMING_VARIATION
INNER JOIN PROJECT_TIMING ON (PROJECT_TIMING_VARIATION.IDTIMING=PROJECT_TIMING.ID AND PROJECT_TIMING.RIFTYPE=0)
INNER JOIN PROJECT_SECTION ON (PROJECT_TIMING.IDRIF = PROJECT_SECTION.ID)
WHERE PROJECT_SECTION.ID={0} AND PROJECT_TIMING_VARIATION.RIFTYPE=0
ORDER BY NEWSTARTDATE ASC) AS GLOBALVARIATION
FROM PROJECT_SECTION
INNER JOIN PROJECT_TIMING ON (PROJECT_SECTION.ID=PROJECT_TIMING.IDRIF AND RIFTYPE=0)
WHERE PROJECT_SECTION.ID={0};", SelectSession.Text)).Tables[0].Rows[0];

            if (drstart[1] != System.DBNull.Value)
            {
                variation = "Data inizio: " + UC.LTZ.ToLocalTime((DateTime)drstart[1]).ToShortDateString() + "<br>";
            }
            else if (drstart[0] != System.DBNull.Value)
            {
                variation = "Data inizio: " + UC.LTZ.ToLocalTime((DateTime)drstart[0]).ToShortDateString() + "<br>";
            }

            DataRow drend = DatabaseConnection.CreateDataset(string.Format(@"SELECT (select top 1 newplanneddate from PROJECT_TIMING_VARIATION
inner join PROJECT_TIMING on (PROJECT_TIMING_VARIATION.idtiming=PROJECT_TIMING.ID AND PROJECT_TIMING.RIFTYPE=1)
inner join PROJECT_SECTION_MEMBERS on PROJECT_TIMING.idrif=PROJECT_SECTION_MEMBERS.id
inner join PROJECT_SECTION on (PROJECT_SECTION_MEMBERS.IDSectionRif = PROJECT_SECTION.id)
where PROJECT_SECTION.ID={0} AND PROJECT_TIMING_VARIATION.RIFTYPE=1
order by newplanneddate desc) as variation,
(select top 1 newplanneddate from PROJECT_TIMING_VARIATION
inner join PROJECT_TIMING on (PROJECT_TIMING_VARIATION.idtiming=PROJECT_TIMING.ID AND PROJECT_TIMING.RIFTYPE=0)
inner join PROJECT_SECTION on (PROJECT_Timing.idrif = PROJECT_SECTION.id)
where PROJECT_SECTION.ID={0} AND PROJECT_TIMING_VARIATION.RIFTYPE=0
order by newplanneddate desc) as globalvariation
FROM PROJECT_SECTION
 JOIN PROJECT_TIMING ON (PROJECT_SECTION.ID=PROJECT_TIMING.IDRIF AND RIFTYPE=0)
WHERE PROJECT_SECTION.ID={0};", SelectSession.Text)).Tables[0].Rows[0];

            if (drend[1] != System.DBNull.Value)
            {
                variation += "Data fine: " + UC.LTZ.ToLocalTime((DateTime)drend[1]).ToShortDateString() + "<br>";
            }
            else if (drend[0] != System.DBNull.Value)
            {
                variation += "Data fine: " + UC.LTZ.ToLocalTime((DateTime)drend[0]).ToShortDateString() + "<br>";
            }

            object varminute = DatabaseConnection.SqlScalartoObj(@"select sum(plannedminute) from PROJECT_TIMING_VARIATION
inner join PROJECT_TIMING on (PROJECT_TIMING_VARIATION.idtiming=PROJECT_TIMING.ID AND PROJECT_TIMING.RIFTYPE=1)
inner join PROJECT_SECTION_MEMBERS on PROJECT_TIMING.idrif=PROJECT_SECTION_MEMBERS.id
inner join PROJECT_SECTION on (PROJECT_SECTION_MEMBERS.IDSectionRif = PROJECT_SECTION.id)
where PROJECT_TIMING_VARIATION.RIFTYPE=1 AND PROJECT_SECTION.ID=" + SelectSession.Text);

            if (varminute != null && varminute != System.DBNull.Value)
            {
                variation += "Ore previste: " + (int.Parse(varminute.ToString()) + int.Parse(PlannedMinuteDuration.Text)).ToString();
            }

            if (variation.Length > 0)
            {
                LitVariation.Text    = variation;
                VariationRow.Visible = true;
            }

            MainTable.Visible      = false;
            SessionTable.Visible   = true;
            ProjectToDo1.prjID     = prjID;
            ProjectToDo1.sectionID = long.Parse(SelectSession.Text);
            ProjectToDo1.BindToDo();
            ProjectToDo1.FillToDo();
        }
コード例 #3
0
        void btnSaveSection_Click(object sender, EventArgs e)
        {
            bool newsection = false;

            using (DigiDapter dg = new DigiDapter())
            {
                dg.Add("IDRIF", prjID);
                dg.Add("TITLE", SectionName.Text);
                dg.Add("DESCRIPTION", SectionDescription.Text);
                if (SectionParent.SelectedIndex < 1)
                {
                    dg.Add("PARENT", System.DBNull.Value);
                }
                else
                {
                    dg.Add("PARENT", SectionParent.SelectedValue);
                }

                dg.Add("MEMBERID", SectionOwnerID.Text);
                if (SelectSession.Text == "-1")
                {
                    dg.Add("CREATEDDATE", DateTime.UtcNow);
                    dg.Add("CREATEDBYID", UC.UserId);
                }

                dg.Add("COLOR", FilterColor.Items[FilterColor.SelectedIndex].Value);
                dg.Add("LASTMODIFIEDDATE", DateTime.UtcNow);
                dg.Add("LASTMODIFIEDBYID", UC.UserId);

                if (CostType.SelectedIndex > -1)
                {
                    dg.Add("COSTTYPE", CostType.SelectedIndex);
                }
                if (SectionAmount.Text.Length > 0)
                {
                    dg.Add("AMOUNT", StaticFunctions.FixDecimal(SectionAmount.Text));
                }

                object newid = dg.Execute("PROJECT_SECTION", "ID=" + SelectSession.Text, DigiDapter.Identities.Identity);
                if (dg.RecordInserted)
                {
                    SelectSession.Text = ((decimal)newid).ToString();
                    newsection         = true;
                }
            }

            if (!newsection)
            {
                if (int.Parse(DatabaseConnection.SqlScalar("SELECT COUNT(*) FROM PROJECT_TIMING WHERE IDRIF=" + SelectSession.Text)) <= 0)
                {
                    newsection = true;
                }
            }


            ProjectToDo1.sectionID = long.Parse(SelectSession.Text);
            ProjectToDo1.UpdateToDo();
            ProjectToDo1.BindToDo();

            DateTime planneddate = ((DateTime)DatabaseConnection.SqlScalartoObj(string.Format(@"SELECT PLANNEDENDDATE FROM PROJECT_TIMING
INNER JOIN PROJECT_SECTION_MEMBERS ON (PROJECT_TIMING.IDRIF=PROJECT_SECTION_MEMBERS.ID AND PROJECT_TIMING.RIFTYPE=1)
WHERE PROJECT_SECTION_MEMBERS.IDSECTIONRIF={0}
ORDER BY PLANNEDENDDATE DESC", SelectSession.Text)));

            if (PlannedEndDate.Text.Length > 0)
            {
                if (UC.LTZ.ToUniversalTime(Convert.ToDateTime(PlannedEndDate.Text, UC.myDTFI)) > planneddate)
                {
                    planneddate = UC.LTZ.ToUniversalTime(Convert.ToDateTime(PlannedEndDate.Text, UC.myDTFI));
                }
            }

            using (DigiDapter dg = new DigiDapter())
            {
                dg.Add("RIFTYPE", 0);
                if (newsection)
                {
                    dg.Add("IDRIF", SelectSession.Text);
                }
                dg.Add("PLANNEDSTARTDATE", UC.LTZ.ToUniversalTime(Convert.ToDateTime(PlannedStartDate.Text, UC.myDTFI)));
                dg.Add("PLANNEDENDDATE", planneddate);
                if (RealStartDate.Text.Length > 0)
                {
                    dg.Add("REALSTARTDATE", UC.LTZ.ToUniversalTime(Convert.ToDateTime(RealStartDate.Text, UC.myDTFI)));
                }
                else
                {
                    dg.Add("REALSTARTDATE", UC.LTZ.ToUniversalTime(Convert.ToDateTime(PlannedStartDate.Text, UC.myDTFI)));
                }
                if (RealEndDate.Text.Length > 0)
                {
                    dg.Add("REALENDDATE", UC.LTZ.ToUniversalTime(Convert.ToDateTime(RealEndDate.Text, UC.myDTFI)));
                }
                else
                {
                    dg.Add("REALENDDATE", planneddate);
                }

                dg.Add("PLANNEDMINUTEDURATION", (PlannedMinuteDuration.Text.Length > 0) ? int.Parse(PlannedMinuteDuration.Text) : 0);
                dg.Add("CURRENTMINUTEDURATION", (CurrentMinuteDuration.Text.Length > 0) ? int.Parse(CurrentMinuteDuration.Text) : 0);

                if (newsection)
                {
                    dg.Add("CREATEDDATE", DateTime.UtcNow);
                    dg.Add("CREATEDBYID", UC.UserId);
                }
                dg.Add("LASTMODIFIEDDATE", DateTime.UtcNow);
                dg.Add("LASTMODIFIEDBYID", UC.UserId);
                dg.Execute("PROJECT_TIMING", "IDRIF=" + SelectSession.Text);
            }



            DatabaseConnection.DoCommand(string.Format(@"update project_timing set plannedminuteduration=(
select sum(plannedminuteduration) from project_timing
inner join project_section_members on project_timing.idrif=project_section_members.ID and project_timing.riftype=1
where project_section_members.IDSectionRif={0})
where project_timing.IDRif={0} AND project_timing.riftype=0", SelectSession.Text));

            if (GanttEdit)
            {
                Session["currentproject"] = prjID;
                Page.ClientScript.RegisterStartupScript(this.GetType(), "reloadgantt", "<script>alert('Sezione aggiornata.');opener.location=opener.location;self.close();</script>");
            }
            else
            {
                BindSections();
            }
        }