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(); }
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(); }
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(); } }