Example #1
0
        public override bool CheckVisibility(object dataItem)
        {
            if (dataItem != null && dataItem is BusinessObject)
            {
                bool isVisible = false;
                if (dataItem is TimeTrackingBlock)
                {
                    TimeTrackingBlock blk = (TimeTrackingBlock)dataItem;

                    // New or old (4.1) Finance schema
                    bool areFinancesNew = true;
                    if (blk.ProjectId.HasValue)
                    {
                        areFinancesNew = ProjectSpreadSheet.IsActive(blk.ProjectId.Value);
                    }

                    if (areFinancesNew)
                    {
                        SecurityService ss = ((TimeTrackingBlock)dataItem).GetService <SecurityService>();
                        if (ss != null && ss.CheckUserRight(TimeTrackingManager.Right_ViewFinances))
                        {
                            isVisible = true;
                        }
                    }
                }
                return(isVisible);
            }
            return(base.CheckVisibility(dataItem));
        }
Example #2
0
        void BindDropDown()
        {
            Mediachase.IBN.Business.SpreadSheet.Row[] mas = ProjectSpreadSheet.GetFactAvailableRows(CommonHelper.GetProjectIdByObjectIdObjectType(ObjectId, ObjectTypeId));
            DataTable dt = new DataTable();

            dt.Columns.Add(new DataColumn("Name", typeof(string)));
            dt.Columns.Add(new DataColumn("Id", typeof(string)));

            foreach (Row row in mas)
            {
                if (!(row.Name == string.Empty && row.ReadOnly))
                {
                    DataRow datarow = dt.NewRow();
                    datarow["Id"] = row.Id;

                    if (!row.HasChildRows && !row.ReadOnly && row.Visibility == RowVisibility.User)
                    {
                        datarow["Name"] = "--- " + row.Name;
                    }
                    else
                    {
                        datarow["Name"] = row.Name;
                    }

                    dt.Rows.Add(datarow);
                }
            }

            ddAccounts.DataSource     = dt;
            ddAccounts.DataTextField  = "Name";
            ddAccounts.DataValueField = "Id";
            ddAccounts.DataBind();
        }
 /// <summary>
 /// Handles the ServerClick event of the btnDeactivateFinance control.
 /// </summary>
 /// <param name="sender">The source of the event.</param>
 /// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param>
 void btnDeactivateFinance_ServerClick(object sender, EventArgs e)
 {
     ProjectSpreadSheet.Deactivate(int.Parse(Request["ProjectId"]));
     Response.Redirect(
         String.Format(CultureInfo.InvariantCulture,
                       "~/Projects/ProjectView.aspx?ProjectId={0}",
                       Request["ProjectId"]));
 }
Example #4
0
        /// <summary>
        /// Handles the ServerClick event of the btnOk control.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param>
        private void btnOk_ServerClick(object sender, EventArgs e)
        {
            ProjectSpreadSheet.SetUserRowName(int.Parse(Request["ProjectId"]), RowId, tbName.Text);

            StringBuilder sb = new StringBuilder();

            sb.Append("<script language=JavaScript>");
            sb.AppendFormat("window.opener.mygrid.setItemText('{0}','{2}');", RowId, Index, tbName.Text);
            sb.Append("window.close();");
            sb.Append("</script>");
            Page.ClientScript.RegisterClientScriptBlock(this.GetType(), Guid.NewGuid().ToString(), sb.ToString());
        }
Example #5
0
        protected void Page_Load(object sender, System.EventArgs e)
        {
            UserLightPropertyCollection pc = Security.CurrentUser.Properties;

            // Add Tabs
            string link        = String.Format("ProjectView.aspx?ProjectId={0}&Tab=4&SubTab=0", ProjectId);
            bool   IsFinance41 = (Finance.GetListActualFinancesByProject(int.Parse(this.Request["ProjectId"]), false).Rows.Count > 0);

            blockControl.AddTab("0", LocRM.GetString("tSpreadSheet"), link, "../Projects/Modules/FinanceSpreadSheet.ascx");

            if ((SubTab == "0" || SubTab == "1" || SubTab == "2"))
            {
                pc[pcKey] = SubTab;
            }
            else if (pc[pcKey] == null)
            {
                pc[pcKey] = "0";
            }

            bool projectSpreadSheetIsActive = ProjectSpreadSheet.IsActive(int.Parse(this.Request["ProjectId"]));

            if (!projectSpreadSheetIsActive)
            {
                link = String.Format("ProjectView.aspx?ProjectId={0}&Tab=4&SubTab=1", ProjectId);
                if (IsFinance41)
                {
                    blockControl.AddTab("1", LocRM.GetString("tActFinances"), link, "../Projects/Modules/FinanceActualList.ascx");
                }

                if (pc[pcKey] != "2" && !IsFinance41)
                {
                    pc[pcKey] = "0";
                }
            }
            else
            {
                //blockControl.AddTab("0", LocRM.GetString("tSpreadSheet"), link, "../Projects/Modules/FinanceSpreadSheet.ascx");

                link = String.Format("ProjectView.aspx?ProjectId={0}&Tab=4&SubTab=1", ProjectId);
                blockControl.AddTab("1", LocRM.GetString("tActFinances"), link, "../Projects/Modules/FinanceActualList2.ascx");
            }

            //IBN 4.1 Finances
            if (IsFinance41 && !projectSpreadSheetIsActive)
            {
                link = String.Format("ProjectView.aspx?ProjectId={0}&Tab=4&SubTab=2", ProjectId);
                blockControl.AddTab("2", LocRM.GetString("tAccounts"), link, "../Projects/Modules/FinanceAccountsList.ascx");
            }

            // Select Tab
            blockControl.SelectTab(pc[pcKey]);
        }
 private void BindToolbar()
 {
     if (this.Parent.Parent is IToolbarLight)
     {
         bool projectSpreadSheetIsActive = ProjectSpreadSheet.IsActive(int.Parse(this.Request["ProjectId"]));
         if (projectSpreadSheetIsActive)
         {
             BlockHeaderLightWithMenu secHeaderLight = (BlockHeaderLightWithMenu)((IToolbarLight)this.Parent.Parent).GetToolBar();
             secHeaderLight.AddRightLink("<img alt='' src='../Layouts/Images/icons/xlsexport.gif'/> " + LocRM2.GetString("ExcelExport"), "../Projects/ProjectBSExport.aspx?" +
                                         "ProjectId=" + ProjectId.ToString() + "&BasePlan1=" + pc["SpreadSheet_dd1" + ProjectId.ToString()] +
                                         "&BasePlan2=" + pc["SpreadSheet_dd2" + ProjectId.ToString()] + "&FromYear=" + pc["SpreadSheet_From" + ProjectId.ToString()] +
                                         "&ToYear=" + pc["SpreadSheet_To" + ProjectId.ToString()] + "&FinanceType=" + pc["SpreadSheet_DocumentType" + ProjectId.ToString()]);
         }
     }
 }
Example #7
0
        protected void BindBasePlans()
        {
            DataTable dt = new DataTable();

            dt.Columns.Add(new DataColumn("Name", typeof(string)));
            dt.Columns.Add(new DataColumn("BasePlanSlotId", typeof(int)));
            Hashtable ht = ProjectSpreadSheet.GetFilledSlotHash(int.Parse(Request["ProjectId"]));

            if (ht.Keys.Count <= 0)
            {
                trBasePlanFilter.Visible = false;
            }

            foreach (BasePlanSlot bps in BasePlanSlot.List())
            {
                DataRow row = dt.NewRow();

                row["BasePlanSlotId"] = bps.BasePlanSlotId;
                DateTime d_time = DateTime.MinValue;
                if (ht.Contains(bps.BasePlanSlotId))
                {
                    foreach (BasePlan bp in BasePlan.List(int.Parse(Request["ProjectId"])))
                    {
                        if (bp.BasePlanSlotId == bps.BasePlanSlotId)
                        {
                            d_time = bp.Created;
                            break;
                        }
                    }
                }
                if (d_time != DateTime.MinValue)
                {
                    row["Name"] = String.Format("{0} ({1}: {2})", bps.Name, LocRM.GetString("LastSaved"), d_time);
                }
                else
                {
                    continue;
                }
                dt.Rows.Add(row);
            }

            ddlBasePlans.DataSource     = dt;
            ddlBasePlans.DataTextField  = "Name";
            ddlBasePlans.DataValueField = "BasePlanSlotId";
            ddlBasePlans.DataBind();
            ddlBasePlans.Items.Insert(0, new ListItem(LocRM.GetString("NotSet"), "-1"));
            ddlBasePlans.SelectedValue = BasePlanSlotId.ToString();
        }
Example #8
0
        void BindDropDown()
        {
            DataTable dt = new DataTable();

            dt.Columns.Add(new DataColumn("Name", typeof(string)));
            dt.Columns.Add(new DataColumn("BasePlanSlotId", typeof(int)));

            Hashtable ht       = ProjectSpreadSheet.GetFilledSlotHash(int.Parse(Request["ProjectId"]));
            int       selvalue = -1;
            DateTime  d_time   = DateTime.Now;

            foreach (BasePlanSlot bps in BasePlanSlot.List())
            {
                if (bps.IsDefault)
                {
                    selvalue = bps.BasePlanSlotId;
                }
                DataRow row = dt.NewRow();

                row["BasePlanSlotId"] = bps.BasePlanSlotId;

                if (ht.Contains(bps.BasePlanSlotId))
                {
                    foreach (BasePlan bp in BasePlan.List(int.Parse(Request["ProjectId"])))
                    {
                        if (bp.BasePlanSlotId == bps.BasePlanSlotId)
                        {
                            d_time = bp.Created;
                            break;
                        }
                    }

                    row["Name"] = String.Format("{0} ({1}: {2})", bps.Name, LocRM.GetString("LastSaved"), d_time);
                    //row["Created"] = ht[bps.BasePlanSlotId];
                }
                else
                {
                    row["Name"] = bps.Name;
                }
                dt.Rows.Add(row);
            }

            ddBasePlan.DataSource     = dt;
            ddBasePlan.DataTextField  = "Name";
            ddBasePlan.DataValueField = "BasePlanSlotId";
            ddBasePlan.DataBind();
            ddBasePlan.SelectedValue = selvalue.ToString();
        }
        private void btnActivate_ServerClick(object sender, EventArgs e)
        {
            ProjectSpreadSheet.Activate(int.Parse(Request["ProjectId"]), (SpreadSheetDocumentType)int.Parse(ddDocType.SelectedValue), ddTemplate.SelectedValue);

            #region tmpversion

            /*DataTable dt = Finance.GetListActualFinancesByProject(int.Parse(Request["ProjectId"]));
             * if (dt.Rows.Count > 0)
             * {
             *      SpreadSheetView view = ProjectSpreadSheet.LoadView(int.Parse(Request["ProjectId"]), 0, DateTime.Now.Year, DateTime.Now.Year);
             *      string[] newIds = new string[100];
             *      int counter = 0;
             *      foreach (DataRow row in dt.Rows)
             *      {
             #region GetBlockRowId
             *              string _id = string.Empty;
             *              foreach (Row r in view.Rows)
             *              {
             *                      if (r is Block)
             *                      {
             *                              _id = r.Id;
             *                              break;
             *                      }
             *              }
             #endregion
             *
             *              //DV: Convert finances from IBN 4.1
             *              newIds[counter] = Guid.NewGuid().ToString();
             *              view.AddBlockRow(_id, newIds[counter]);
             *              counter++;
             *              if (row == null) return;
             *      }
             *      counter = 0;
             *      ProjectSpreadSheet.SaveView(int.Parse(Request["ProjectId"]), 0, view);
             *      foreach (DataRow row in dt.Rows)
             *      {
             *              ProjectSpreadSheet.SetUserRowName(int.Parse(Request["ProjectId"]), newIds[counter], (string)row[2]);
             *              ActualFinances.Create((int)row["ObjectId"], (ObjectTypes)row["ObjectTypeId"], (DateTime)row["LastSavedDate"], newIds[counter], Convert.ToDouble(row["AValue"]), (string)row[2]);
             *              counter++;
             *      }
             * }*/
            #endregion

            Page.ClientScript.RegisterClientScriptBlock(this.GetType(), Guid.NewGuid().ToString(), "<script language=JavaScript> window.location.href=window.location.href; </script>");
        }
Example #10
0
        protected void Page_Load(object sender, System.EventArgs e)
        {
            divGrid.Visible     = false;
            divActivate.Visible = false;

            BindHeader();
            ApplyLocalization();

            btnDeactivate.Click += new EventHandler(btnDeactivate_Click);
            btnDeactivateFinance.ServerClick += new EventHandler(btnDeactivateFinance_ServerClick);
            btnDeactivateFinance.Attributes.Add("onclick", String.Format("if(!confirm('{0}')) return false;", LocRM.GetString("ReactivateMsg")));
            btnApplyFilter.ServerClick      += new EventHandler(btnApplyFilter_ServerClick);
            btnDeactivateFinance.CustomImage = this.Page.ResolveUrl("~/layouts/images/card-delete.gif");
            btnApplyFilter.CustomImage       = this.Page.ResolveUrl("~/layouts/images/accept.gif");
            btnActivate.CustomImage          = this.Page.ResolveUrl("~/layouts/images/accept.gif");
            btnCancel.CustomImage            = this.Page.ResolveUrl("~/layouts/images/cancel.gif");

            if (!IsPostBack)
            {
                BindDropDowns();
            }

            if (ProjectSpreadSheet.IsActive(int.Parse(this.Request["ProjectId"])))
            {
                divGrid.Visible = true;
                if (!IsPostBack)
                {
                    GenerateScript();
                }
                // Put user code to initialize the page here
                AddOnkeydownAttribute();
                //AddOnMouseClickListener();
            }
            else
            {
                divActivate.Visible = true;
            }
            BindToolbar();
        }
Example #11
0
        protected void Page_Load(object sender, System.EventArgs e)
        {
            if (pc["FinAct_Sort"] == null)
            {
                pc["FinAct_Sort"] = "ActualDate";
            }

            DefineParentProjectId();
            ApplyLocalization();

            int ProjectId = Util.CommonHelper.GetProjectIdByObjectIdObjectType(this.ObjectId, this.ObjectTypeId);

            if (!IsPostBack)
            {
                BindValues();
            }

            if (!Page.IsPostBack && ProjectSpreadSheet.IsActive(ProjectId))
            {
                BindDG(dgAccounts);
            }
            BindToolbar();
        }
        private void BindFinanceTable()
        {
            XmlDocument doc   = new XmlDocument();
            ArrayList   PrIds = LoadProjectList();

            SpreadSheetDocumentType type = SpreadSheetDocumentType.WeekYear;

            switch (FinanceType)
            {
            case "1":
                type = SpreadSheetDocumentType.WeekYear;
                break;

            case "2":
                type = SpreadSheetDocumentType.MonthQuarterYear;
                break;

            case "3":
                type = SpreadSheetDocumentType.QuarterYear;
                break;

            case "4":
                type = SpreadSheetDocumentType.Year;
                break;

            case "5":
                type = SpreadSheetDocumentType.Total;
                break;
            }

            SpreadSheetView view = null;

            if (!Reverse)
            {
                view = ProjectSpreadSheet.CompareProjects(PrIds, type, BasePlan1,
                                                          FromYear, ToYear);
            }
            else
            {
                view = ProjectSpreadSheet.CompareProjectsReverse(PrIds, type, BasePlan1,
                                                                 FromYear, ToYear);
            }

            if (BasePlan2 == -2)
            {
                doc = ProjectSpreadSheet.CreateViewDocForAnalysis(view);
            }
            else
            {
                SpreadSheetView view2 = null;
                if (!Reverse)
                {
                    view2 = ProjectSpreadSheet.CompareProjects(PrIds, type,
                                                               BasePlan2, FromYear, ToYear);
                }
                else
                {
                    view2 = ProjectSpreadSheet.CompareProjectsReverse(PrIds, type,
                                                                      BasePlan2, FromYear, ToYear);
                }

                doc = ProjectSpreadSheet.CreateViewCompareDocForAnalysis(view, view2);
            }

            if (doc != null)
            {
                #region BindTableHeader
                HtmlTableRow rheader1 = new HtmlTableRow();
                HtmlTableRow rheader2 = new HtmlTableRow();
                HtmlTableRow rheader3 = new HtmlTableRow();
                if (view.Document.DocumentType != SpreadSheetDocumentType.Total && view.Document.DocumentType != SpreadSheetDocumentType.Year)
                {
                    int YearCounter = ToYear - FromYear + 1;
                    int ColSpanRate = -1;

                    #region Year
                    if (view.Document.DocumentType == SpreadSheetDocumentType.QuarterYear)
                    {
                        ColSpanRate = 5;
                        HtmlTableCell c1 = new HtmlTableCell();
                        c1.RowSpan   = 2;
                        c1.InnerText = LocRM.GetString("tProjects");
                        rheader1.Cells.Add(c1);
                    }
                    else
                    if (view.Document.DocumentType == SpreadSheetDocumentType.MonthQuarterYear)
                    {
                        ColSpanRate = 17;
                        HtmlTableCell c1 = new HtmlTableCell();
                        c1.RowSpan   = 3;
                        c1.InnerText = LocRM.GetString("tProjects");
                        rheader1.Cells.Add(c1);
                    }
                    else
                    if (view.Document.DocumentType == SpreadSheetDocumentType.WeekYear)
                    {
                        ColSpanRate = 53;
                        HtmlTableCell c1 = new HtmlTableCell();
                        c1.RowSpan   = 2;
                        c1.InnerText = LocRM.GetString("tProjects");
                        rheader1.Cells.Add(c1);
                    }

                    int RowSpanRate = (view.Columns.Length - YearCounter) / (YearCounter * 4);
                    int yearCount   = 0;
                    int tmp         = 0;
                    int tmp2        = 0;
                    for (int i = 0; i < view.Columns.Length - 1; i++)
                    {
                        if (view.Document.DocumentType == SpreadSheetDocumentType.MonthQuarterYear)
                        {
                            if (i % (ColSpanRate) == 0)
                            {
                                tmp  = FromYear + yearCount;
                                tmp2 = ColSpanRate - 1;
                                HtmlTableCell c1 = new HtmlTableCell();
                                c1.Align     = "center";
                                c1.ColSpan   = tmp2;
                                c1.InnerHtml = tmp.ToString();
                                rheader1.Cells.Add(c1);
                            }
                            else
                            if (((i - yearCount + 1) % (ColSpanRate - 1) == 0) && (i - yearCount + 1 != 0))
                            {
                                HtmlTableCell c1 = new HtmlTableCell();
                                c1.RowSpan   = 3;
                                c1.Align     = "center";
                                c1.InnerHtml = LocRM.GetString("tYear");
                                rheader1.Cells.Add(c1);
                            }
                        }
                        else                        //Week/Year or Quarter/Year
                        {
                            if (i % (ColSpanRate) == 0)
                            {
                                tmp  = FromYear + yearCount;
                                tmp2 = ColSpanRate - 1;
                                HtmlTableCell c1 = new HtmlTableCell();
                                c1.ColSpan   = tmp2;
                                c1.Align     = "center";
                                c1.InnerHtml = tmp.ToString();
                                rheader1.Cells.Add(c1);
                            }
                            else
                            if (((i - yearCount + 1) % (ColSpanRate - 1) == 0) && (i - yearCount + 1 != 0))
                            {
                                HtmlTableCell c1 = new HtmlTableCell();
                                c1.RowSpan   = 2;
                                c1.InnerHtml = LocRM.GetString("tYear");
                                c1.Align     = "center";
                                rheader1.Cells.Add(c1);
                            }
                        }
                        if (i % (ColSpanRate) == 0)
                        {
                            yearCount++;
                        }
                    }
                    if (view.Document.DocumentType == SpreadSheetDocumentType.MonthQuarterYear)
                    {
                        HtmlTableCell c1 = new HtmlTableCell();
                        c1.RowSpan   = 3;
                        c1.InnerHtml = LocRM.GetString("tTotalSum");
                        c1.Align     = "center";
                        rheader1.Cells.Add(c1);
                    }
                    else
                    {
                        HtmlTableCell c1 = new HtmlTableCell();
                        c1.RowSpan   = 2;
                        c1.InnerHtml = LocRM.GetString("tTotalSum");
                        c1.Align     = "center";
                        rheader1.Cells.Add(c1);
                    }
                    #endregion

                    #region Quartals
                    if (view.Document.DocumentType == SpreadSheetDocumentType.MonthQuarterYear)
                    {
                        for (int i = 0; i < view.Columns.Length - 1; i++)
                        {
                            int counter = i % ColSpanRate;

                            if (counter % (RowSpanRate) == 0 && counter != 16)
                            {
                                tmp = (counter / 4) + 1;
                                HtmlTableCell c1 = new HtmlTableCell();
                                c1.ColSpan   = 3;
                                c1.Align     = "center";
                                c1.InnerHtml = LocRM.GetString("tQuarterYear") + " " + tmp.ToString();
                                rheader2.Cells.Add(c1);
                            }
                            else
                            if ((counter + 1) % RowSpanRate == 0)
                            {
                                HtmlTableCell c1 = new HtmlTableCell();
                                c1.RowSpan   = 2;
                                c1.InnerHtml = LocRM.GetString("tQuarterTotal");
                                c1.Align     = "center";
                                rheader2.Cells.Add(c1);
                            }
                            else
                            if (counter == 16)
                            {
                            }
                        }
                    }
                    #endregion

                    #region BindServerData
                    int _counter = 0;
                    for (int i = 0; i < view.Columns.Length - 1; i++)
                    {
                        if (view.Document.DocumentType == SpreadSheetDocumentType.MonthQuarterYear)
                        {
                            if (i % ColSpanRate == 0 && i > 0)
                            {
                                _counter++;
                            }
                            if ((i + 1 - _counter) % RowSpanRate == 0 && i > 0)
                            {
                            }
                            else

                            if ((i + 1) % ColSpanRate == 0 && i > 0)
                            {
                            }
                            else
                            {
                                HtmlTableCell c1 = new HtmlTableCell();
                                c1.InnerHtml = ((Column)view.Columns[i]).Name;
                                c1.Align     = "center";
                                rheader3.Cells.Add(c1);
                            }
                        }

                        else
                        {
                            if ((i + 1) % ColSpanRate == 0)
                            {
                            }
                            else
                            {
                                HtmlTableCell c1 = new HtmlTableCell();
                                c1.InnerHtml = ((Column)view.Columns[i]).Name;
                                c1.Align     = "center";
                                rheader3.Cells.Add(c1);
                            }
                        }
                    }
                    #endregion
                    rheader1.Attributes.Add("class", "gridheader");
                    tGrid.Rows.Add(rheader1);
                    rheader2.Attributes.Add("class", "gridheader");
                    if (rheader2.Cells.Count > 0)
                    {
                        tGrid.Rows.Add(rheader2);
                    }
                    rheader3.Attributes.Add("class", "gridheader");
                    if (rheader3.Cells.Count > 0)
                    {
                        tGrid.Rows.Add(rheader3);
                    }
                }
                else
                {
                    rheader1 = new HtmlTableRow();
                    HtmlTableCell c1 = new HtmlTableCell();
                    c1.InnerHtml = LocRM.GetString("tProjects");
                    rheader1.Cells.Add(c1);
                    for (int i = 0; i < view.Columns.Length; i++)
                    {
                        c1           = new HtmlTableCell();
                        c1.InnerHtml = ((Column)view.Columns[i]).Name;
                        c1.Align     = "center";
                        rheader1.Cells.Add(c1);
                    }
                    rheader1.Attributes.Add("class", "gridheader");
                    tGrid.Rows.Add(rheader1);
                }

                #endregion

                #region BindTableBody
                XmlNode ParentNode = doc.DocumentElement;

                foreach (XmlNode node in ParentNode.ChildNodes)
                {
                    HtmlTableRow rbody = new HtmlTableRow();
                    ArrayList    alcr  = new ArrayList();
                    foreach (XmlNode node2 in node.ChildNodes)
                    {
                        HtmlTableRow crbody = new HtmlTableRow();
                        foreach (XmlNode cnode in node2.ChildNodes)
                        {
                            if (node2.Name == "row")
                            {
                                HtmlTableCell c1 = new HtmlTableCell();
                                c1.Align     = "right";
                                c1.InnerHtml = cnode.InnerText;
                                crbody.Cells.Add(c1);
                            }
                            else
                            {
                                if (node2.Name == "cell")
                                {
                                    HtmlTableCell c2 = new HtmlTableCell();
                                    c2.InnerHtml = "<b>" + node2.InnerText + "</b>";
                                    rbody.Cells.Add(c2);
                                }
                            }
                        }
                        alcr.Add(crbody);
                        crbody = new HtmlTableRow();
                    }
                    if (rbody.Cells.Count > 0)
                    {
                        tGrid.Rows.Add(rbody);
                    }
                    for (int i = 0; i < alcr.Count; i++)
                    {
                        if (((HtmlTableRow)alcr[i]).Cells.Count > 0)
                        {
                            tGrid.Rows.Add((HtmlTableRow)alcr[i]);
                        }
                    }
                    for (int i = 0; i < tGrid.Rows.Count; i++)
                    {
                        if (tGrid.Rows[i].Cells.Count > 0)
                        {
                            tGrid.Rows[i].Cells[0].Attributes.Add("class", "gridheader");
                        }
                    }
                }
                #endregion
            }
        }
Example #13
0
        private void BindToolbar()
        {
            //DV: Esli netu userskih row v spreadshhete proekta to dobavit actual finansy nevozmozhno
            if (ProjectSpreadSheet.GetFactAvailableRows(Util.CommonHelper.GetProjectIdByObjectIdObjectType(ObjectId, ObjectTypeId)).Length == 0)
            {
                return;
            }

            if (this.Parent.Parent is IToolbarLight)
            {
                BlockHeaderLightWithMenu secHeaderLight = (BlockHeaderLightWithMenu)((IToolbarLight)this.Parent.Parent).GetToolBar();
                secHeaderLight.ActionsMenu.Items.Clear();
                secHeaderLight.ClearRightItems();

                if (ProjectId < 0)
                {
                    secHeaderLight.AddText(LocRM.GetString("tActFinances"));
                }

                ComponentArt.Web.UI.MenuItem subItem;

                #region New Item
                string command = String.Empty;

                if (ProjectId > 0 && Project.CanEditFinances(ProjectId))
                {
                    command = String.Format(CultureInfo.InvariantCulture, "OpenWindow(\"{0}?ObjectId={1}&ObjectTypeId={2}&btn={3}\",520,220,false);",
                                            ResolveClientUrl("~/projects/AddFinanceActual.aspx"), ProjectId, (int)ObjectTypes.Project, Page.ClientScript.GetPostBackEventReference(RefreshButton, ""));
                }
                if (TaskId > 0 && Task.CanViewFinances(TaskId))
                {
                    command = String.Format(CultureInfo.InvariantCulture, "OpenWindow(\"{0}?ObjectId={1}&ObjectTypeId={2}&btn={3}\",520,220,false);",
                                            ResolveClientUrl("~/projects/AddFinanceActual.aspx"), TaskId, (int)ObjectTypes.Task, Page.ClientScript.GetPostBackEventReference(RefreshButton, ""));
                }
                if (IncidentId > 0 && Incident.CanViewFinances(IncidentId))
                {
                    command = String.Format(CultureInfo.InvariantCulture, "OpenWindow(\"{0}?ObjectId={1}&ObjectTypeId={2}&btn={3}\",520,220,false);",
                                            ResolveClientUrl("~/projects/AddFinanceActual.aspx"), IncidentId, (int)ObjectTypes.Issue, Page.ClientScript.GetPostBackEventReference(RefreshButton, ""));
                }
                if (DocumentId > 0 && Document.CanViewFinances(DocumentId))
                {
                    command = String.Format(CultureInfo.InvariantCulture, "OpenWindow(\"{0}?ObjectId={1}&ObjectTypeId={2}&btn={3}\",520,220,false);",
                                            ResolveClientUrl("~/projects/AddFinanceActual.aspx"), DocumentId, (int)ObjectTypes.Document, Page.ClientScript.GetPostBackEventReference(RefreshButton, ""));
                }
                if (EventId > 0 && CalendarEntry.CanViewFinances(EventId))
                {
                    command = String.Format(CultureInfo.InvariantCulture, "OpenWindow(\"{0}?ObjectId={1}&ObjectTypeId={2}&btn={3}\",520,220,false);",
                                            ResolveClientUrl("~/projects/AddFinanceActual.aspx"), EventId, (int)ObjectTypes.CalendarEntry, Page.ClientScript.GetPostBackEventReference(RefreshButton, ""));
                }
                if (ToDoId > 0 && Mediachase.IBN.Business.ToDo.CanViewFinances(ToDoId))
                {
                    command = String.Format(CultureInfo.InvariantCulture, "OpenWindow(\"{0}?ObjectId={1}&ObjectTypeId={2}&btn={3}\",520,220,false);",
                                            ResolveClientUrl("~/projects/AddFinanceActual.aspx"), ToDoId, (int)ObjectTypes.ToDo, Page.ClientScript.GetPostBackEventReference(RefreshButton, ""));
                }

                if (command != String.Empty)
                {
                    subItem                     = new ComponentArt.Web.UI.MenuItem();
                    subItem.LookId              = "TopItemLook";
                    subItem.Look.LeftIconUrl    = "~/Layouts/Images/newitem.gif";
                    subItem.Look.LeftIconHeight = Unit.Pixel(16);
                    subItem.Look.LeftIconWidth  = Unit.Pixel(16);
                    subItem.ClientSideCommand   = command;
                    subItem.Text                = LocRM.GetString("tbAdd");
                    secHeaderLight.ActionsMenu.Items.Add(subItem);
                }
                #endregion

                #region Export
                subItem                     = new ComponentArt.Web.UI.MenuItem();
                subItem.LookId              = "TopItemLook";
                subItem.Look.LeftIconUrl    = "~/Layouts/Images/Icons/xlsexport.gif";
                subItem.Look.LeftIconHeight = Unit.Pixel(16);
                subItem.Look.LeftIconWidth  = Unit.Pixel(16);
                subItem.ClientSideCommand   = Page.ClientScript.GetPostBackEventReference(ExportButton, "");
                subItem.Text                = LocRM2.GetString("ExcelExport");
                secHeaderLight.ActionsMenu.Items.Add(subItem);
                #endregion
            }
            else if (this.Parent is IToolbarLight)
            {
                BlockHeaderLightWithMenu secHeaderLight = (BlockHeaderLightWithMenu)((IToolbarLight)this.Parent).GetToolBar();
                secHeaderLight.AddText(LocRM.GetString("tActFinances"));

                if (Project.CanEditFinances(ProjectId) && ProjectId > 0)
                {
                    secHeaderLight.AddRightLink("<img alt='' src='../Layouts/Images/newitem.gif'/>&nbsp;" + LocRM.GetString("tbAdd"), "javascript:OpenWindow('../projects/AddFinanceActual.aspx?ObjectId=" + ProjectId.ToString() + "&ObjectTypeId=" + (int)ObjectTypes.Project + "',520,270,false);");
                }
                if (TaskId > 0 && Task.CanViewFinances(TaskId))
                {
                    secHeaderLight.AddRightLink("<img alt='' src='../Layouts/Images/newitem.gif'/>  " + LocRM.GetString("tbAdd"), "javascript:OpenWindow('../Projects/AddFinanceActual.aspx?ObjectId=" + TaskId + "&ObjectTypeId=" + (int)ObjectTypes.Task + "',520,270,false);");
                }
                if (IncidentId > 0 && Incident.CanViewFinances(IncidentId))
                {
                    secHeaderLight.AddRightLink("<img alt='' src='../Layouts/Images/newitem.gif'/>  " + LocRM.GetString("tbAdd"), "javascript:OpenWindow('../Projects/AddFinanceActual.aspx?ObjectId=" + IncidentId + "&ObjectTypeId=" + (int)ObjectTypes.Issue + "',520,270,false);");
                }
                if (DocumentId > 0 && Document.CanViewFinances(DocumentId))
                {
                    secHeaderLight.AddRightLink("<img alt='' src='../Layouts/Images/newitem.gif'/>  " + LocRM.GetString("tbAdd"), "javascript:OpenWindow('../Projects/AddFinanceActual.aspx?ObjectId=" + DocumentId + "&ObjectTypeId=" + (int)ObjectTypes.Document + "',520,270,false);");
                }
                if (EventId > 0 && CalendarEntry.CanViewFinances(EventId))
                {
                    secHeaderLight.AddRightLink("<img alt='' src='../Layouts/Images/newitem.gif'/>  " + LocRM.GetString("tbAdd"), "javascript:OpenWindow('../Projects/AddFinanceActual.aspx?ObjectId=" + EventId + "&ObjectTypeId=" + (int)ObjectTypes.CalendarEntry + "',520,270,false);");
                }
                if (ToDoId > 0 && Mediachase.IBN.Business.ToDo.CanViewFinances(ToDoId))
                {
                    secHeaderLight.AddRightLink("<img alt='' src='../Layouts/Images/newitem.gif'/>  " + LocRM.GetString("tbAdd"), "javascript:OpenWindow('../Projects/AddFinanceActual.aspx?ObjectId=" + ToDoId + "&ObjectTypeId=" + (int)ObjectTypes.ToDo + "',520,270,false);");
                }
            }
        }
Example #14
0
 /// <summary>
 /// Handles the Click event of the btnDeactivateFinance control.
 /// </summary>
 /// <param name="sender">The source of the event.</param>
 /// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param>
 void btnDeactivateFinance_Click(object sender, EventArgs e)
 {
     ProjectSpreadSheet.Deactivate(ProjectId);
     Page.ClientScript.RegisterClientScriptBlock(this.GetType(), Guid.NewGuid().ToString(), "<script language=JavaScript> window.location.href=window.location.href; </script>");
 }
Example #15
0
        private void BindToolbar()
        {
            CommandManager cm = CommandManager.GetCurrent(this.Page);

            secHeader.Title = LocRM.GetString("QuickTools");

            bool canUpdate       = Project.CanUpdate(ProjectId);
            bool canViewFinances = Project.CanViewFinances(ProjectId);
            bool canDelete       = Project.CanDelete(ProjectId);
            bool isExternal      = Mediachase.IBN.Business.Security.CurrentUser.IsExternal;

            ComponentArt.Web.UI.MenuItem topMenuItem = new ComponentArt.Web.UI.MenuItem();
            topMenuItem.Text                = LocRM.GetString("Actions");
            topMenuItem.Look.LeftIconUrl    = ResolveUrl("~/Layouts/Images/downbtn1.gif");
            topMenuItem.Look.LeftIconHeight = Unit.Pixel(5);
            topMenuItem.Look.LeftIconWidth  = Unit.Pixel(16);
            topMenuItem.LookId              = "TopItemLook";

            ComponentArt.Web.UI.MenuItem subItem;

            #region Quick Add Tasks / To-dos
            if (Mediachase.IBN.Business.ToDo.CanCreate(ProjectId) || Task.CanCreate(ProjectId))
            {
                ComponentArt.Web.UI.MenuItem listToDo = new ComponentArt.Web.UI.MenuItem();

                listToDo.Look.LeftIconUrl    = "~/Layouts/Images/rulesnew.gif";
                listToDo.Look.LeftIconWidth  = Unit.Pixel(16);
                listToDo.Look.LeftIconHeight = Unit.Pixel(16);
                CommandParameters cpQT  = new CommandParameters("MC_MetaUI_CreateTaskTodoGrid");
                string            cmdQT = cm.AddCommand("Project", "", "ProjectView", cpQT);
                cmdQT = cmdQT.Replace("\"", "&quot;");
                listToDo.ClientSideCommand = "javascript:" + cmdQT;
                listToDo.Text = GetGlobalResourceObject("IbnFramework.Project", "CreateTaskTodoGrid").ToString();
                secHeader.ActionsMenu.Items.Add(listToDo);
            }

            if (Mediachase.IBN.Business.ToDo.CanCreate(ProjectId))
            {
                ComponentArt.Web.UI.MenuItem quickToDo = new ComponentArt.Web.UI.MenuItem();

                quickToDo.Look.LeftIconUrl    = "~/Layouts/Images/icons/task_create.gif";
                quickToDo.Look.LeftIconWidth  = Unit.Pixel(16);
                quickToDo.Look.LeftIconHeight = Unit.Pixel(16);
                CommandParameters cpQT  = new CommandParameters("MC_MetaUI_CreateTodoQuick");
                string            cmdQT = cm.AddCommand("Project", "", "ProjectView", cpQT);
                cmdQT = cmdQT.Replace("\"", "&quot;");
                quickToDo.ClientSideCommand = "javascript:" + cmdQT;
                quickToDo.Text = LocRM.GetString("CreateToDo");
                secHeader.ActionsMenu.Items.Add(quickToDo);
            }
            #endregion

            #region Create: Task, CalendarEntry, ToDo, Incident, Document
            ComponentArt.Web.UI.MenuItem createItem = new ComponentArt.Web.UI.MenuItem();

            createItem.Text                = LocRM.GetString("Create");
            createItem.Look.LeftIconUrl    = ResolveUrl("~/Layouts/Images/downbtn1.gif");
            createItem.Look.LeftIconHeight = Unit.Pixel(5);
            createItem.Look.LeftIconWidth  = Unit.Pixel(16);
            createItem.LookId              = "TopItemLook";

            #region Create Task
            if (!isMSProject && Task.CanCreate(ProjectId))
            {
                subItem = new ComponentArt.Web.UI.MenuItem();
                subItem.Look.LeftIconUrl    = "~/Layouts/Images/icons/task1_create.gif";
                subItem.Look.LeftIconWidth  = Unit.Pixel(16);
                subItem.Look.LeftIconHeight = Unit.Pixel(16);
                subItem.NavigateUrl         = "~/Tasks/TaskEdit.aspx?ProjectId=" + ProjectId;
                subItem.Text = LocRM.GetString("CreateTask");
                createItem.Items.Add(subItem);
            }
            #endregion

            #region Create ToDo
            if (Mediachase.IBN.Business.ToDo.CanCreate(ProjectId))
            {
                subItem = new ComponentArt.Web.UI.MenuItem();
                subItem.Look.LeftIconUrl    = "~/Layouts/Images/icons/task_create.gif";
                subItem.Look.LeftIconWidth  = Unit.Pixel(16);
                subItem.Look.LeftIconHeight = Unit.Pixel(16);
                subItem.NavigateUrl         = "~/ToDo/ToDoEdit.aspx?ProjectId=" + ProjectId;
                subItem.Text = LocRM.GetString("CreateToDo");
                createItem.Items.Add(subItem);
            }
            #endregion

            #region Create CalendarEntry
            if (CalendarEntry.CanCreate(ProjectId))
            {
                subItem = new ComponentArt.Web.UI.MenuItem();
                subItem.Look.LeftIconUrl    = "~/Layouts/Images/icons/event_create.gif";
                subItem.Look.LeftIconWidth  = Unit.Pixel(16);
                subItem.Look.LeftIconHeight = Unit.Pixel(16);
                subItem.NavigateUrl         = "~/Events/EventEdit.aspx?ProjectId=" + ProjectId;
                subItem.Text = LocRM.GetString("CreateEvent");
                createItem.Items.Add(subItem);
            }
            #endregion

            #region Create Incident
            if (Configuration.HelpDeskEnabled && Incident.CanCreate(ProjectId))
            {
                subItem = new ComponentArt.Web.UI.MenuItem();
                subItem.Look.LeftIconUrl    = "~/Layouts/Images/icons/incident_create.gif";
                subItem.Look.LeftIconWidth  = Unit.Pixel(16);
                subItem.Look.LeftIconHeight = Unit.Pixel(16);
                subItem.NavigateUrl         = "~/Incidents/IncidentEdit.aspx?ProjectId=" + ProjectId;
                subItem.Text = LocRM.GetString("CreateIncident");
                createItem.Items.Add(subItem);
            }
            #endregion

            #region Create Document
            if (Document.CanCreate(ProjectId))
            {
                subItem = new ComponentArt.Web.UI.MenuItem();
                subItem.Look.LeftIconUrl    = "~/Layouts/Images/icons/document_create.gif";
                subItem.Look.LeftIconWidth  = Unit.Pixel(16);
                subItem.Look.LeftIconHeight = Unit.Pixel(16);
                subItem.NavigateUrl         = "~/Documents/DocumentEdit.aspx?ProjectId=" + ProjectId;
                subItem.Text = LocRM.GetString("CreateDocument");
                createItem.Items.Add(subItem);
            }
            #endregion

            if (createItem.Items.Count > 0)
            {
                secHeader.ActionsMenu.Items.Add(createItem);
            }

            //			topMenuItem.Items.Add(createItem);
            #endregion

            if (canUpdate)
            {
                #region Edit: Project, Timeline, GeneralInfo, ConfigurationInfo, Categories, Managers, Client
                ComponentArt.Web.UI.MenuItem editItem = new ComponentArt.Web.UI.MenuItem();
                editItem.Text                = LocRM.GetString("Edit");
                editItem.Look.LeftIconUrl    = ResolveUrl("~/Layouts/Images/downbtn1.gif");
                editItem.Look.LeftIconHeight = Unit.Pixel(5);
                editItem.Look.LeftIconWidth  = Unit.Pixel(16);
                editItem.LookId              = "TopItemLook";

                #region Edit Project
                subItem = new ComponentArt.Web.UI.MenuItem();
                subItem.Look.LeftIconUrl = "~/Layouts/Images/icons/project_edit.gif";
                subItem.NavigateUrl      = "~/Projects/ProjectEdit.aspx?ProjectId=" + ProjectId + "&Back=project";
                subItem.Text             = LocRM.GetString("Project");
                editItem.Items.Add(subItem);
                #endregion

                #region Participants: Team, Sponsors, Stakeholders, Managers
                ComponentArt.Web.UI.MenuItem participantsItem = new ComponentArt.Web.UI.MenuItem();
                participantsItem.Text = LocRM.GetString("tParticipants");
                participantsItem.Look.RightIconUrl = "~/Layouts/Images/arrow_right.gif";

                #region Modify Team
                subItem = new ComponentArt.Web.UI.MenuItem();
                subItem.Look.LeftIconUrl    = "~/Layouts/Images/icons/newgroup.gif";
                subItem.Look.LeftIconWidth  = Unit.Pixel(16);
                subItem.Look.LeftIconHeight = Unit.Pixel(16);
                CommandParameters cpTeam  = new CommandParameters("MC_PM_TeamEdit");
                string            cmdTeam = cm.AddCommand("Project", "", "ProjectView", cpTeam);
                subItem.ClientSideCommand = "javascript:" + cmdTeam;
                subItem.Text = LocRM.GetString("ModifyTeam");
                participantsItem.Items.Add(subItem);
                #endregion

                #region Modify Sponsors
                subItem = new ComponentArt.Web.UI.MenuItem();
                subItem.Look.LeftIconUrl    = "~/Layouts/Images/icons/sponsors.gif";
                subItem.Look.LeftIconWidth  = Unit.Pixel(16);
                subItem.Look.LeftIconHeight = Unit.Pixel(16);
                CommandParameters cpSpons  = new CommandParameters("MC_PM_SponsorsEdit");
                string            cmdSpons = cm.AddCommand("Project", "", "ProjectView", cpSpons);
                subItem.ClientSideCommand = "javascript:" + cmdSpons;
                subItem.Text = LocRM.GetString("ModifySponsors");
                participantsItem.Items.Add(subItem);
                #endregion

                #region Modify Stakeholders
                subItem = new ComponentArt.Web.UI.MenuItem();
                subItem.Look.LeftIconUrl    = "~/Layouts/Images/icons/stakeholders.gif";
                subItem.Look.LeftIconWidth  = Unit.Pixel(16);
                subItem.Look.LeftIconHeight = Unit.Pixel(16);
                CommandParameters cpSt  = new CommandParameters("MC_PM_StakesEdit");
                string            cmdSt = cm.AddCommand("Project", "", "ProjectView", cpSt);
                subItem.ClientSideCommand = "javascript:" + cmdSt;
                subItem.Text = LocRM.GetString("ModifyStakeholders");
                participantsItem.Items.Add(subItem);
                #endregion

                editItem.Items.Add(participantsItem);
                #endregion

                #region Edit Target Timileme
                subItem = new ComponentArt.Web.UI.MenuItem();
                subItem.ClientSideCommand = String.Format(CultureInfo.InvariantCulture,
                                                          "javascript:ShowWizard('{0}?ProjectId={1}', 400, 250);",
                                                          ResolveClientUrl("~/Projects/EditTargetTimeline.aspx"),
                                                          ProjectId);
                subItem.Text = LocRM.GetString("EditTargetTimeline");
                editItem.Items.Add(subItem);
                #endregion

                #region Edit Actual Timileme
                subItem = new ComponentArt.Web.UI.MenuItem();
                subItem.ClientSideCommand = String.Format(CultureInfo.InvariantCulture,
                                                          "javascript:ShowWizard('{0}?ProjectId={1}', 400, 250);",
                                                          ResolveClientUrl("~/Projects/EditActualTimeline.aspx"),
                                                          ProjectId);
                subItem.Text = LocRM.GetString("EditActualTimeline");
                editItem.Items.Add(subItem);
                #endregion

                #region Edit State Info
                subItem = new ComponentArt.Web.UI.MenuItem();
                subItem.ClientSideCommand = String.Format(CultureInfo.InvariantCulture,
                                                          "javascript:ShowWizard('{0}?ProjectId={1}', 350, 265);",
                                                          ResolveClientUrl("~/Projects/EditStateInfo.aspx"),
                                                          ProjectId);
                subItem.Text = LocRM.GetString("EditStateInfo");
                editItem.Items.Add(subItem);
                #endregion

                #region Edit General Info
                subItem = new ComponentArt.Web.UI.MenuItem();
                subItem.ClientSideCommand = String.Format(CultureInfo.InvariantCulture,
                                                          "javascript:ShowWizard('{0}?ProjectId={1}', 550, 450);",
                                                          ResolveClientUrl("~/Projects/EditGeneralInfo.aspx"),
                                                          ProjectId);
                subItem.Text = LocRM.GetString("EditGeneralInfo");
                editItem.Items.Add(subItem);
                #endregion

                #region Edit Configuration Info
                subItem = new ComponentArt.Web.UI.MenuItem();
                subItem.ClientSideCommand = String.Format(CultureInfo.InvariantCulture,
                                                          "javascript:ShowWizard('{0}?ProjectId={1}', 380, 270);",
                                                          ResolveClientUrl("~/Projects/EditConfigurationInfo.aspx"),
                                                          ProjectId);
                subItem.Text = LocRM.GetString("EditConfigurationInfo");
                editItem.Items.Add(subItem);
                #endregion

                #region Edit Categories
                subItem = new ComponentArt.Web.UI.MenuItem();
                subItem.ClientSideCommand = String.Format(CultureInfo.InvariantCulture,
                                                          "javascript:ShowWizard('{0}?ProjectId={1}', 300, 450);",
                                                          ResolveClientUrl("~/Projects/EditCategories.aspx"),
                                                          ProjectId);
                subItem.Text = LocRM.GetString("EditCategories");
                editItem.Items.Add(subItem);
                #endregion

                #region Edit Managers
                subItem = new ComponentArt.Web.UI.MenuItem();
                CommandParameters cpMan  = new CommandParameters("MC_PM_Managers");
                string            cmdMan = cm.AddCommand("Project", "", "ProjectView", cpMan);
                subItem.ClientSideCommand = "javascript:" + cmdMan;
                subItem.Text = LocRM.GetString("EditManagers");
                editItem.Items.Add(subItem);
                #endregion

                #region Edit Security
                subItem = new ComponentArt.Web.UI.MenuItem();
                subItem.ClientSideCommand = String.Format(CultureInfo.InvariantCulture,
                                                          "javascript:ShowWizard('{0}?ProjectId={1}', 650, 280);",
                                                          ResolveClientUrl("~/Projects/EditSecurity.aspx"),
                                                          ProjectId);
                subItem.Text = LocRM2.GetString("SecuritySettings");
                editItem.Items.Add(subItem);
                #endregion

                secHeader.ActionsMenu.Items.Add(editItem);
                //				topMenuItem.Items.Add(editItem);
                #endregion
            }

            #region Copy to Clipboard
            subItem = new ComponentArt.Web.UI.MenuItem();
            subItem.Look.LeftIconUrl    = "~/Layouts/Images/xp-copy.gif";
            subItem.Look.LeftIconWidth  = Unit.Pixel(16);
            subItem.Look.LeftIconHeight = Unit.Pixel(16);
            subItem.ClientSideCommand   = "javascript:try{_XMLReqForClip('AddClip=Prj&ProjectId=" + ProjectId.ToString() + "', '" + LocRM.GetString("tXMLError") + "')}catch(e){}";
            subItem.Text = LocRM.GetString("tCopyPrjToClipboard");
            topMenuItem.Items.Add(subItem);
            #endregion

            #region Add from Clipboard
            if (canUpdate)
            {
                subItem = new ComponentArt.Web.UI.MenuItem();
                subItem.Look.LeftIconUrl    = "~/Layouts/Images/xp-paste.gif";
                subItem.Look.LeftIconWidth  = Unit.Pixel(16);
                subItem.Look.LeftIconHeight = Unit.Pixel(16);
                CommandManager    cm1  = CommandManager.GetCurrent(this.Page);
                CommandParameters cp1  = new CommandParameters("MC_PM_RelatedPrjClipboard");
                string            cmd1 = cm1.AddCommand("Project", "", "ProjectView", cp1);
                cmd1 = cmd1.Replace("\"", "&quot;");
                subItem.ClientSideCommand = "javascript:" + cmd1;
                subItem.Text = LocRM.GetString("tPastePrjFromClipboard");
                topMenuItem.Items.Add(subItem);
            }
            #endregion

            #region Clear Clipboard
            if (canUpdate)
            {
                subItem = new ComponentArt.Web.UI.MenuItem();
                subItem.Look.LeftIconUrl    = "~/Layouts/Images/clearbuffer.gif";
                subItem.Look.LeftIconWidth  = Unit.Pixel(16);
                subItem.Look.LeftIconHeight = Unit.Pixel(16);
                subItem.ClientSideCommand   = "javascript:try{_XMLReqForClip('ClearClip=Prj', '" + LocRM.GetString("tXMLError") + "')}catch(e){}";
                subItem.Text = LocRM.GetString("tClearClipboard");
                topMenuItem.Items.Add(subItem);
            }
            #endregion

            #region --- Separator ---
            subItem        = new ComponentArt.Web.UI.MenuItem();
            subItem.LookId = "BreakItem";
            topMenuItem.Items.Add(subItem);
            #endregion

            #region Add Related Project
            if (canUpdate)
            {
                subItem = new ComponentArt.Web.UI.MenuItem();
                subItem.Look.LeftIconUrl    = "~/Layouts/Images/icons/relprojects.gif";
                subItem.Look.LeftIconWidth  = Unit.Pixel(16);
                subItem.Look.LeftIconHeight = Unit.Pixel(16);
                CommandManager    cm1  = CommandManager.GetCurrent(this.Page);
                CommandParameters cp1  = new CommandParameters("MC_PM_RelatedPrj");
                string            cmd1 = cm1.AddCommand("Project", "", "ProjectView", cp1);
                cmd1 = cmd1.Replace("\"", "&quot;");
                subItem.ClientSideCommand = "javascript:" + cmd1;
                subItem.Text = LocRM.GetString("AddRelated");
                topMenuItem.Items.Add(subItem);
            }
            #endregion

            #region Add Comments
            subItem = new ComponentArt.Web.UI.MenuItem();
            subItem.Look.LeftIconUrl    = "~/Layouts/Images/icons/comments.gif";
            subItem.Look.LeftIconWidth  = Unit.Pixel(16);
            subItem.Look.LeftIconHeight = Unit.Pixel(16);
            subItem.ClientSideCommand   = String.Format(CultureInfo.InvariantCulture,
                                                        "javascript:OpenWindow('{0}?ProjectId={1}',520,270,false);",
                                                        ResolveClientUrl("~/Common/CommentAdd.aspx"),
                                                        ProjectId);
            subItem.Text = LocRM.GetString("CreateComment");
            topMenuItem.Items.Add(subItem);
            #endregion

            #region Delete
            if (canDelete)
            {
                subItem = new ComponentArt.Web.UI.MenuItem();
                subItem.Look.LeftIconUrl    = "~/Layouts/Images/icons/project_delete.gif";
                subItem.Look.LeftIconWidth  = Unit.Pixel(16);
                subItem.Look.LeftIconHeight = Unit.Pixel(16);
                subItem.ClientSideCommand   = "javascript:DeleteProject()";
                subItem.Text = LocRM2.GetString("Delete");
                topMenuItem.Items.Add(subItem);
            }
            #endregion

            #region --- Separator ---
            subItem        = new ComponentArt.Web.UI.MenuItem();
            subItem.LookId = "BreakItem";
            topMenuItem.Items.Add(subItem);
            #endregion

            #region Snapshot
            if (canViewFinances)
            {
                subItem = new ComponentArt.Web.UI.MenuItem();
                subItem.Look.LeftIconUrl    = "~/Layouts/Images/report.gif";
                subItem.Look.LeftIconWidth  = Unit.Pixel(16);
                subItem.Look.LeftIconHeight = Unit.Pixel(16);
                subItem.ClientSideCommand   = String.Format(CultureInfo.InvariantCulture,
                                                            "javascript:ShowWizard2('{0}?ProjectId={1}', 750, 466, true);",
                                                            ResolveClientUrl("~/Reports/OverallProjectSnapshot.aspx"),
                                                            ProjectId);
                subItem.Text = LocRM.GetString("Snapshot");
                topMenuItem.Items.Add(subItem);
            }
            #endregion

            #region CreateTemplate2             //DV
            if (canUpdate && !isMSProject)
            {
                subItem = new ComponentArt.Web.UI.MenuItem();
                subItem.Look.LeftIconUrl    = "~/Layouts/Images/icons/newtemplate.gif";
                subItem.Look.LeftIconWidth  = Unit.Pixel(16);
                subItem.Look.LeftIconHeight = Unit.Pixel(16);
                subItem.ClientSideCommand   = String.Format(CultureInfo.InvariantCulture,
                                                            "javascript:ShowWizard('{0}?ProjectId={1}', 640, 600);",
                                                            ResolveClientUrl("~/Projects/EditProjectTemplate2.aspx"),
                                                            ProjectId);
                subItem.Text = LocRM.GetString("CreateTemplate");
                topMenuItem.Items.Add(subItem);
            }
            #endregion

            #region SaveBasePlan
            if (canUpdate)
            {
                subItem = new ComponentArt.Web.UI.MenuItem();
                subItem.Look.LeftIconUrl    = "~/Layouts/Images/SAVEITEM.GIF";
                subItem.Look.LeftIconWidth  = Unit.Pixel(16);
                subItem.Look.LeftIconHeight = Unit.Pixel(16);
                subItem.ClientSideCommand   = String.Format(CultureInfo.InvariantCulture,
                                                            "javascript:ShowWizard('{0}?ProjectId={1}', 380, 100);",
                                                            ResolveClientUrl("~/Projects/SaveBasePlanPopUp.aspx"),
                                                            ProjectId);
                subItem.Text = LocRM.GetString("SaveBasePlan");
                topMenuItem.Items.Add(subItem);
            }
            #endregion

            if (canUpdate && ProjectSpreadSheet.IsActive(ProjectId))
            {
                subItem = new ComponentArt.Web.UI.MenuItem();
                subItem.Look.LeftIconUrl    = "~/Layouts/Images/card-delete.gif";
                subItem.Look.LeftIconWidth  = Unit.Pixel(16);
                subItem.Look.LeftIconHeight = Unit.Pixel(16);

                subItem.ClientSideCommand = string.Format("if (confirm('{0}')) {{ {1} }}", LocRM4.GetString("ReactivateMsg"), this.Page.ClientScript.GetPostBackEventReference(btnDeactivateFinance, string.Empty));
                subItem.Text = LocRM4.GetString("ReactivateText");
                topMenuItem.Items.Add(subItem);
            }

            #region Export/Import
            if (canUpdate && Project.IsMSProjectSynchronizationEnabled() && !Project.GetIsMSProject(ProjectId))
            {
                subItem = new ComponentArt.Web.UI.MenuItem();
                subItem.Look.LeftIconUrl    = "~/Layouts/Images/Synch.png";
                subItem.Look.LeftIconWidth  = Unit.Pixel(16);
                subItem.Look.LeftIconHeight = Unit.Pixel(16);
                subItem.ClientSideCommand   = String.Format(CultureInfo.InvariantCulture,
                                                            "OpenWindow('{0}?ToMSPrj=1&ProjectId={1}',600,400);",
                                                            ResolveClientUrl("~/Projects/ProjectExportImportNew.aspx"),
                                                            ProjectId);
                subItem.Text = LocRM.GetString("ToMSProjSync");
                topMenuItem.Items.Add(subItem);
            }
            if (canUpdate &&
                (
                    (Project.IsMSProjectIntegrationEnabled() && !Project.GetIsMSProject(ProjectId))
                    ||
                    (Project.IsMSProjectSynchronizationEnabled() && Project.GetIsMSProject(ProjectId))
                )
                )
            {
                subItem = new ComponentArt.Web.UI.MenuItem();
                subItem.Look.LeftIconUrl    = "~/Layouts/Images/icons/export.gif";
                subItem.Look.LeftIconWidth  = Unit.Pixel(16);
                subItem.Look.LeftIconHeight = Unit.Pixel(16);
                subItem.ClientSideCommand   = String.Format(CultureInfo.InvariantCulture,
                                                            "OpenWindow('{0}?ProjectId={1}',600,410);",
                                                            ResolveClientUrl("~/Projects/ProjectExportImportNew.aspx"),
                                                            ProjectId);
                subItem.Text = LocRM.GetString("MSProjectExchange");
                topMenuItem.Items.Add(subItem);
            }
            #endregion

            #region --- Separator ---
            if (canViewFinances || canUpdate)
            {
                subItem        = new ComponentArt.Web.UI.MenuItem();
                subItem.LookId = "BreakItem";
                topMenuItem.Items.Add(subItem);
            }
            #endregion

            #region UpdateHistory
            subItem = new ComponentArt.Web.UI.MenuItem();
            subItem.ClientSideCommand = String.Format(CultureInfo.InvariantCulture,
                                                      "javascript:ShowWizard('{0}?ObjectId={1}&ObjectTypeId={1}', 750, 466);",
                                                      ResolveClientUrl("~/Common/SystemEventsByObject.aspx"),
                                                      ProjectId,
                                                      (int)ObjectTypes.Project);
            subItem.Text = LocRM3.GetString("UpdateHistory");
            topMenuItem.Items.Add(subItem);
            #endregion

            #region Latest Visitors
            subItem = new ComponentArt.Web.UI.MenuItem();
            subItem.ClientSideCommand = String.Format(CultureInfo.InvariantCulture,
                                                      "javascript:ShowWizard('{0}?ObjectId={1}&ObjectTypeId={2}', 450, 266);",
                                                      ResolveClientUrl("~/Common/LatestVisitors.aspx"),
                                                      ProjectId,
                                                      (int)ObjectTypes.Project);
            subItem.Text = LocRM3.GetString("LatestVisitors");
            topMenuItem.Items.Add(subItem);
            #endregion

            #region System Notifications
            subItem = new ComponentArt.Web.UI.MenuItem();
            subItem.Look.LeftIconUrl    = "~/Layouts/Images/accept_1.gif";
            subItem.Look.LeftIconWidth  = Unit.Pixel(16);
            subItem.Look.LeftIconHeight = Unit.Pixel(16);
            subItem.NavigateUrl         = String.Format(CultureInfo.InvariantCulture,
                                                        "~/Directory/SystemNotificationForObject.aspx?ObjectId={0}&ObjectTypeId={1}",
                                                        ProjectId,
                                                        ((int)ObjectTypes.Project).ToString());
            subItem.Text = LocRM.GetString("SystemNotifications");
            topMenuItem.Items.Add(subItem);
            #endregion

            #region System Reminder
            Project.ProjectSecurity ps = Project.GetSecurity(ProjectId);
            if (ps.IsManager || ps.IsManager || ps.IsTeamMember || ps.IsSponsor || ps.IsStakeHolder)
            {
                subItem = new ComponentArt.Web.UI.MenuItem();
                subItem.Look.LeftIconUrl    = "~/Layouts/Images/reminder.gif";
                subItem.Look.LeftIconWidth  = Unit.Pixel(16);
                subItem.Look.LeftIconHeight = Unit.Pixel(16);
                subItem.ClientSideCommand   = String.Format(CultureInfo.InvariantCulture,
                                                            "javascript:ShowWizard('{0}?ObjectTypeId={1}&ObjectId={2}', 420, 150)",
                                                            ResolveClientUrl("~/Directory/SystemRemindersForObject.aspx"),
                                                            (int)ObjectTypes.Project, ProjectId);
                subItem.Text = LocRM.GetString("EditReminder");
                topMenuItem.Items.Add(subItem);
            }
            #endregion

            #region Favorites
            if (!Project.CheckFavorites(ProjectId))
            {
                subItem = new ComponentArt.Web.UI.MenuItem();
                subItem.Look.LeftIconUrl    = "~/Layouts/Images/Favorites.gif";
                subItem.Look.LeftIconWidth  = Unit.Pixel(16);
                subItem.Look.LeftIconHeight = Unit.Pixel(16);
                subItem.ClientSideCommand   = "javascript:" + Page.ClientScript.GetPostBackEventReference(btnAddToFavorites, "");
                subItem.Text = LocRM.GetString("AddToFavorites");
                topMenuItem.Items.Add(subItem);
            }
            #endregion

            secHeader.ActionsMenu.Items.Add(topMenuItem);
        }
        protected void Page_Load(object sender, System.EventArgs e)
        {
            XmlDocument doc = new XmlDocument();
            UserLightPropertyCollection pc = Security.CurrentUser.Properties;

            ArrayList PrIds = LoadProjectList();

            SpreadSheetDocumentType type = SpreadSheetDocumentType.WeekYear;

            switch (FinanceType)
            {
            case "1":
                type = SpreadSheetDocumentType.WeekYear;
                break;

            case "2":
                type = SpreadSheetDocumentType.MonthQuarterYear;
                break;

            case "3":
                type = SpreadSheetDocumentType.QuarterYear;
                break;

            case "4":
                type = SpreadSheetDocumentType.Year;
                break;

            case "5":
                type = SpreadSheetDocumentType.Total;
                break;
            }

            SpreadSheetView view = null;

            if (!Reverse)
            {
                view = ProjectSpreadSheet.CompareProjects(PrIds, type, BasePlan1,
                                                          FromYear, ToYear);
            }
            else
            {
                view = ProjectSpreadSheet.CompareProjectsReverse(PrIds, type, BasePlan1,
                                                                 FromYear, ToYear);
            }
            Response.ContentType = "text/xml";

            if (BasePlan2 == -2)
            {
                doc = ProjectSpreadSheet.CreateViewDocForAnalysis(view);
            }
            else
            {
                SpreadSheetView view2 = null;
                if (!Reverse)
                {
                    view2 = ProjectSpreadSheet.CompareProjects(PrIds, type,
                                                               BasePlan2, FromYear, ToYear);
                }
                else
                {
                    view2 = ProjectSpreadSheet.CompareProjectsReverse(PrIds, type,
                                                                      BasePlan2, FromYear, ToYear);
                }

                doc = ProjectSpreadSheet.CreateViewCompareDocForAnalysis(view, view2);
            }
            if (doc != null)
            {
                HttpContext.Current.Response.Clear();
                HttpContext.Current.Response.Charset = "utf-8";
                HttpContext.Current.Response.AddHeader("Content-Type", "application/octet-stream");
                HttpContext.Current.Response.AddHeader("content-disposition", "attachment; filename=BusinessScores.xls");
                string Header = "<html><head><meta http-equiv=\"Content-Type\" content=\"application/octet-stream; charset=utf-8\"></head><body><table>";
                string Footer = "</table></body></html>";

                #region BindTableBody
                string  body       = string.Empty;
                string  sbody      = string.Empty;
                string  childrows  = string.Empty;;
                XmlNode ParentNode = doc.DocumentElement;
                foreach (XmlNode node in ParentNode.ChildNodes)
                {
                    sbody     = "<tr>";
                    childrows = "<tr>";
                    foreach (XmlNode node2 in node.ChildNodes)
                    {
                        foreach (XmlNode cnode in node2.ChildNodes)
                        {
                            if (node2.Name == "row")
                            {
                                if (BasePlan2 != -2)
                                {
                                    childrows += "<td style='mso-number-format:\\@'>";
                                }
                                else
                                {
                                    childrows += "<td>";
                                }
                                childrows += cnode.InnerText;
                                childrows += "</td>";
                            }
                            else
                            {
                                if (node2.Name == "cell")
                                {
                                    if (BasePlan2 != -2)
                                    {
                                        sbody += "<td style='border-top:1px solid black; mso-number-format:\\@'><b>";
                                    }
                                    else
                                    {
                                        sbody += "<td style='border-top:1px solid black'><b>";
                                    }
                                    sbody += node2.InnerText;
                                    sbody += "<b></td>";
                                }
                            }
                        }
                        childrows += "</tr>";
                    }
                    sbody += "</tr>";
                    sbody += childrows;
                    body  += sbody;
                }
                #endregion

                #region BindTableHeader
                string header1 = string.Empty;
                string header2 = string.Empty;
                string header3 = string.Empty;

                if (view.Document.DocumentType != SpreadSheetDocumentType.Total && view.Document.DocumentType != SpreadSheetDocumentType.Year)
                {
                    int YearCounter = ToYear - FromYear + 1;
                    int ColSpanRate = -1;

                    #region Year
                    if (view.Document.DocumentType == SpreadSheetDocumentType.QuarterYear)
                    {
                        ColSpanRate = 5;
                        header1    += "<tr><td rowspan='2' style='border:1px solid black' align='center' >" + LocRM.GetString("tProjects") + "</td>";
                        header2    += "<tr>";
                    }
                    else
                    if (view.Document.DocumentType == SpreadSheetDocumentType.MonthQuarterYear)
                    {
                        ColSpanRate = 17;
                        header1    += "<tr><td rowspan='3' style='border:1px solid black' align='center' >" + LocRM.GetString("tProjects") + "</td>";
                        header2    += "<tr>";
                        header3    += "<tr>";
                    }
                    else
                    if (view.Document.DocumentType == SpreadSheetDocumentType.WeekYear)
                    {
                        ColSpanRate = 53;
                        header1    += "<tr><td rowspan='2' style='border:1px solid black' align='center' >" + LocRM.GetString("tProjects") + "</td>";
                        header2    += "<tr>";
                    }

                    int RowSpanRate = (view.Columns.Length - YearCounter) / (YearCounter * 4);
                    //int RowSpanRate = 45;
                    int yearCount = 0;
                    int tmp       = 0;
                    int tmp2      = 0;
                    for (int i = 0; i < view.Columns.Length - 1; i++)
                    {
                        if (view.Document.DocumentType == SpreadSheetDocumentType.MonthQuarterYear)
                        {
                            if (i % (ColSpanRate) == 0)
                            {
                                tmp      = FromYear + yearCount;
                                tmp2     = ColSpanRate - 1;
                                header1 += "<td colspan='" + tmp2.ToString() + "' style='border:1px solid black' align='center' >" + tmp.ToString() + "</td>";
                            }
                            else
                            if (((i - yearCount + 1) % (ColSpanRate - 1) == 0) && (i - yearCount + 1 != 0))
                            {
                                header1 += "<td rowspan='3' style='border:1px solid black' align='center' >" + LocRM.GetString("tYear") + "</td>";
                            }
                        }
                        else                        //Week/Year or Quarter/Year
                        {
                            if (i % (ColSpanRate) == 0)
                            {
                                tmp      = FromYear + yearCount;
                                tmp2     = ColSpanRate - 1;
                                header1 += "<td colspan='" + tmp2.ToString() + "' style='border:1px solid black' align='center' >" + tmp.ToString() + "</td>";
                            }
                            else
                            if (((i - yearCount + 1) % (ColSpanRate - 1) == 0) && (i - yearCount + 1 != 0))
                            {
                                header1 += "<td rowspan='2' style='border:1px solid black' align='center' >" + LocRM.GetString("tYear") + "</td>";
                            }
                        }
                        if (i % (ColSpanRate) == 0)
                        {
                            yearCount++;
                        }
                    }
                    if (view.Document.DocumentType == SpreadSheetDocumentType.MonthQuarterYear)
                    {
                        header1 += "<td rowspan='3' style='border:1px solid black' align='center' >" + LocRM.GetString("tTotalSum") + "</td></tr>";
                    }
                    else
                    {
                        header1 += "<td rowspan='2' style='border:1px solid black' align='center' >" + LocRM.GetString("tTotalSum") + "</td></tr>";
                    }
                    #endregion

                    #region Quartals
                    if (view.Document.DocumentType == SpreadSheetDocumentType.MonthQuarterYear)
                    {
                        for (int i = 0; i < view.Columns.Length - 1; i++)
                        {
                            int counter = i % ColSpanRate;

                            if (counter % (RowSpanRate) == 0 && counter != 16)
                            {
                                tmp      = (counter / 4) + 1;
                                header2 += "<td colspan='3' style='border:1px solid black' align='center' >" + LocRM.GetString("tQuarterYear") + " " + tmp.ToString() + "</td>";
                            }
                            else
                            if ((counter + 1) % RowSpanRate == 0)
                            {
                                header2 += "<td rowspan='2' style='border:1px solid black' align='center' >" + LocRM.GetString("tQuarterTotal") + "</td>";
                            }
                            else
                            if (counter == 16)
                            {
                                //header2+="<td></td>";
                            }
                        }
                        header2 += "</tr>";
                    }
                    #endregion

                    #region BindServerData

                    //sb.AppendFormat("mygrid2.attachHeader([\"#rspan\", \"{0}\"",((Column)view.Columns[0]).Name);
                    int _counter = 0;
                    //header3+="<td>"+((Column)view.Columns[0]).Name+"</td>";
                    for (int i = 0; i < view.Columns.Length - 1; i++)
                    {
                        if (view.Document.DocumentType == SpreadSheetDocumentType.MonthQuarterYear)
                        {
                            if (i % ColSpanRate == 0 && i > 0)
                            {
                                _counter++;
                            }
                            if ((i + 1 - _counter) % RowSpanRate == 0 && i > 0)
                            {
                            }
                            else

                            if ((i + 1) % ColSpanRate == 0 && i > 0)
                            {
                            }
                            else
                            {
                                header3 += "<td style='border:1px solid black' align='center' >" + ((Column)view.Columns[i]).Name + "</td>";
                            }
                        }

                        else
                        {
                            if ((i + 1) % ColSpanRate == 0)
                            {
                            }
                            else
                            {
                                header3 += "<td style='border:1px solid black' align='center' >" + ((Column)view.Columns[i]).Name + "</td>";
                            }
                        }
                    }
                    header3 += "</tr>";
                    #endregion
                    body = body.Insert(0, header1 + header2 + header3);
                }
                else
                {
                    header1  = "<tr>";
                    header1 += "<td style='border:1px solid black' align='center' >" + LocRM.GetString("tProjects") + "</td>";
                    for (int i = 0; i < view.Columns.Length; i++)
                    {
                        header1 += "<td style='border:1px solid black' align='center' >" + ((Column)view.Columns[i]).Name + "</td>";
                    }
                    header1 += "</tr>";
                    body     = body.Insert(0, header1);
                }
                #endregion
                HttpContext.Current.Response.Write(String.Concat(Header, body, Footer));
                HttpContext.Current.Response.End();
            }
        }
Example #17
0
        void GenerateScript()
        {
            SpreadSheetView view = ProjectSpreadSheet.LoadView(int.Parse(this.Request["ProjectId"]), 0, int.Parse(tbFrom.Text), int.Parse(tbTo.Text));

            projType = (int)view.Document.DocumentType;

            int           colCount = view.Columns.Length;
            int           YearFrom = int.Parse(tbFrom.Text);
            int           YearTo   = int.Parse(tbTo.Text);
            StringBuilder sb       = new StringBuilder();

            sb.Append("<script type='text/javascript'>");
            sb.Append("if (mygrid == null) mygrid = new dhtmlXGridObject('gridbox');");

            #region Bind: Header Caption
            if (view.Document.DocumentType != SpreadSheetDocumentType.Total && view.Document.DocumentType != SpreadSheetDocumentType.Year)
            {
                // Generate procedure for scale grid
                GenerateScaleUpDownScript(view);

                #region Generate Html for scaling
                StringBuilder scaleHtml = new StringBuilder();
                scaleHtml.Append("<div style='margin: 2px; padding: 2px;'>");
                scaleHtml.Append("<table class='text' cellspacing='2' cellpadding='0'><tr>");
                scaleHtml.AppendFormat("<td valign='top'><img alt='' src='{0}' border='0'/>&nbsp;</td>", ResolveUrl("~/Layouts/Images/zoomin.gif"));
                string disableKeyboard = ((bool)(ddPrimarySheet.SelectedValue != "0")).ToString().ToLower();
                if (view.Document.DocumentType == SpreadSheetDocumentType.MonthQuarterYear)
                {
                    scaleHtml.AppendFormat("<td id='span-link-month' class='dhtmlLink_Active' onclick='gridScale=-1; GridScaleUpDown2(110); DisableSelection = {1}; this.className=\"dhtmlLink_Active\";'>&nbsp;{0}&nbsp;</td><td class='ibn-separator'>|</td>", LocRM.GetString("tMonthQuarterYear"), disableKeyboard);
                    scaleHtml.AppendFormat("<td id='span-link-quartal' class='dhtmlLink_Passive' onclick='gridScale=2; GridScaleUpDown(110); gridScale=0; GridScaleUpDown2(0); DisableSelection = true; this.className=\"dhtmlLink_Active\";'>&nbsp;{0}&nbsp;</td><td class='ibn-separator'>|</td>", LocRM.GetString("tQuarterYear"));
                    scaleHtml.AppendFormat("<td id='span-link-year' class='dhtmlLink_Passive' onclick='gridScale=-1; GridScaleUpDown(110); gridScale=1; GridScaleUpDown2(0); DisableSelection = true; this.className=\"dhtmlLink_Active\"; '>&nbsp;{0}&nbsp;</td><td class='ibn-separator'>|</td>", LocRM.GetString("tYear"));
                    scaleHtml.AppendFormat("<td id='span-link-project' class='dhtmlLink_Passive' onclick='gridScale=-1; GridScaleUpDown2(0); DisableSelection = true; this.className=\"dhtmlLink_Active\"; '>&nbsp;{0}&nbsp;</td>", LocRM.GetString("tTotal"));
                }
                else
                if (view.Document.DocumentType == SpreadSheetDocumentType.WeekYear)
                {
                    scaleHtml.AppendFormat("<td id='span-link-week' class='dhtmlLink_Active' onclick='gridScale=-1; GridScaleUpDown2(110); DisableSelection = {1}; this.className=\"dhtmlLink_Active\";'>&nbsp;{0}&nbsp;</td><td class='ibn-separator'>|</td>", LocRM.GetString("tWeekYear"), disableKeyboard);
                    scaleHtml.AppendFormat("<td id='span-link-year' class='dhtmlLink_Passive' onclick='gridScale=-1; GridScaleUpDown(110); gridScale=0; GridScaleUpDown2(0); DisableSelection = true; this.className=\"dhtmlLink_Active\"; '>&nbsp;{0}&nbsp;</td><td class='ibn-separator'>|</td>", LocRM.GetString("tYear"));
                    scaleHtml.AppendFormat("<td id='span-link-project' class='dhtmlLink_Passive' onclick='gridScale=-1; GridScaleUpDown2(0); DisableSelection = true; this.className=\"dhtmlLink_Active\"; '>&nbsp;{0}&nbsp;</td>", LocRM.GetString("tTotal"));
                }
                else
                if (view.Document.DocumentType == SpreadSheetDocumentType.QuarterYear)
                {
                    scaleHtml.AppendFormat("<td id='span-link-quartal' class='dhtmlLink_Active' onclick='gridScale=-1; GridScaleUpDown2(110); DisableSelection = {1}; this.className=\"dhtmlLink_Active\";'>&nbsp;{0}&nbsp;</td><td class='ibn-separator'>|</td>", LocRM.GetString("tQuarterYear"), disableKeyboard);
                    scaleHtml.AppendFormat("<td id='span-link-year' class='dhtmlLink_Passive' onclick='gridScale=-1; GridScaleUpDown(110); gridScale=0; GridScaleUpDown2(0); DisableSelection = true; this.className=\"dhtmlLink_Active\"; '>&nbsp;{0}&nbsp;</td><td class='ibn-separator'>|</td>", LocRM.GetString("tYear"));
                    scaleHtml.AppendFormat("<td id='span-link-project' class='dhtmlLink_Passive' onclick='gridScale=-1; GridScaleUpDown2(0); DisableSelection = true; this.className=\"dhtmlLink_Active\"; '>&nbsp;{0}&nbsp;</td>", LocRM.GetString("tTotal"));
                }
                scaleHtml.Append("</tr></table>");
                scaleHtml.Append("</div>");
                #endregion

                //Absolute panel for scale up/down finance grid
                panelScale.InnerHtml = scaleHtml.ToString();

                sb.AppendFormat("mygrid.setHeader(\"{0},&nbsp;", LocRM.GetString("tGridHeader1"));
                int YearCounter = YearTo - YearFrom + 1;
                int ColSpanRate = -1;

                #region Year
                if (view.Document.DocumentType == SpreadSheetDocumentType.QuarterYear)
                {
                    ColSpanRate = 5;
                }
                else if (view.Document.DocumentType == SpreadSheetDocumentType.MonthQuarterYear)
                {
                    ColSpanRate = 17;
                }
                else if (view.Document.DocumentType == SpreadSheetDocumentType.WeekYear)
                {
                    ColSpanRate = 53;
                }

                int RowSpanRate = (view.Columns.Length - YearCounter) / (YearCounter * 4);
                //int RowSpanRate = 45;
                int yearCount = 0;

                for (int i = 0; i < view.Columns.Length - 1; i++)
                {
                    if (view.Document.DocumentType == SpreadSheetDocumentType.MonthQuarterYear)
                    {
                        if (i % (ColSpanRate) == 0)
                        {
                            sb.AppendFormat(",{0}", YearFrom + yearCount);
                        }
                        else if (((i - yearCount + 1) % (ColSpanRate - 1) == 0) && (i - yearCount + 1 != 0))
                        {
                            sb.AppendFormat(",{0} {1}", LocRM.GetString("tYearTotal"), YearFrom + yearCount - 1);
                        }
                        else
                        {
                            sb.Append(",#cspan");
                        }
                    }
                    else
                    {
                        if (i % (ColSpanRate) == 0)
                        {
                            sb.AppendFormat(",{0}", YearFrom + yearCount);
                        }
                        else if (((i - yearCount + 1) % (ColSpanRate - 1) == 0) && (i - yearCount + 1 != 0))
                        {
                            sb.AppendFormat(",{0} {1}", LocRM.GetString("tYearTotal"), YearFrom + yearCount - 1);
                        }
                        else
                        {
                            sb.Append(",#cspan");
                        }
                    }
                    if (i % (ColSpanRate) == 0)
                    {
                        yearCount++;
                    }
                }
                //}
                sb.AppendFormat(",{0}\");", LocRM.GetString("tProjectTotal"));
                #endregion

                #region Quartals
                if (view.Document.DocumentType == SpreadSheetDocumentType.MonthQuarterYear)
                {
                    sb.Append("mygrid.attachHeader([\"#rspan\", \"#rspan\"");
                    for (int i = 0; i < view.Columns.Length - 1; i++)
                    {
                        int counter = i % ColSpanRate;

                        if (counter % (RowSpanRate) == 0 && counter != 16)
                        {
                            sb.AppendFormat(",\"{0} {1}\"", LocRM.GetString("tQuarterYear"), /*(((i + 1) / RowSpanRate) % 4) + 1*/ (counter / 4) + 1);
                        }
                        else
                        if ((counter + 1) % RowSpanRate == 0)
                        {
                            sb.AppendFormat(", \"{0}{1}\"", LocRM.GetString("tQuartalTotal"), (counter / 4) + 1);
                        }
                        else
                        if (counter == 16)
                        {
                            sb.Append(",\"#rspan\"");
                        }

                        else
                        {
                            sb.Append(",\"#cspan\"");
                        }
                    }
                    sb.Append(",\"#rspan\"]);");
                }
                #endregion

                #region BindServerData
                sb.AppendFormat("mygrid.attachHeader([\"#rspan\",\"#rspan\", \"{0}\"", ((Column)view.Columns[0]).Name);
                int _counter = 0;
                for (int i = 1; i < view.Columns.Length - 1; i++)
                {
                    if (view.Document.DocumentType == SpreadSheetDocumentType.MonthQuarterYear)
                    {
                        if (i % ColSpanRate == 0)
                        {
                            _counter++;
                        }
                        // Total for quartal
                        if ((i + 1 - _counter) % RowSpanRate == 0)
                        {
                            sb.Append(",\"#rspan\"");
                        }
                        else
                        //Total for year
                        if ((i + 1) % ColSpanRate == 0)
                        {
                            sb.Append(",\"#rspan\"");
                        }
                        else
                        {
                            sb.AppendFormat(",\" {0}\"", ((Column)view.Columns[i]).Name);
                        }
                    }
                    else
                    {
                        if ((i + 1) % ColSpanRate == 0)
                        {
                            sb.Append(",\"#rspan\"");
                        }
                        else
                        {
                            sb.AppendFormat(",\" {0}\"", ((Column)view.Columns[i]).Name);
                        }
                    }
                }
                sb.Append(",\"#rspan\"]);");
                #endregion
            }
            else
            {
                //for scales: Year, Project Total
                sb.AppendFormat("mygrid.setHeader(\"{1},&nbsp;, {0}", ((Column)view.Columns[0]).Name, LocRM.GetString("tGridHeader1"));

                for (int i = 1; i < view.Columns.Length; i++)
                {
                    sb.AppendFormat(", {0}", ((Column)view.Columns[i]).Name);
                }
                sb.Append("\");");
            }
            #endregion

            #region Bind: Header Width
            sb.AppendFormat("mygrid.setImagePath('{0}');", ResolveUrl("~/Layouts/Images/dhtmlGrid/imgs"));

            sb.AppendFormat("mygrid.setInitWidths(\"120,25,{0}", 110 /*(int)(maxWidth / view.Columns.Length)*/);
            for (int i = 1; i < view.Columns.Length; i++)
            {
                sb.AppendFormat(",{0}", 110 /*(int)(maxWidth / view.Columns.Length)*/);
            }
            sb.Append("\");");
            #endregion

            #region Bind: Header Align
            sb.Append("mygrid.setColAlign(\"left,left,right");
            for (int i = 1; i < view.Columns.Length; i++)
            {
                sb.Append(",right");
            }
            sb.Append("\");");
            #endregion

            #region Bind: Cols CanEdit

            if (ddPrimarySheet.SelectedValue != "0")
            {
                sb.Append("mygrid.setColTypes(\"tree,ro,ro");
            }
            else
            {
                sb.Append("mygrid.setColTypes(\"tree,ro,ed");
            }
            for (int i = 1; i < colCount; i++)
            {
                if (ddPrimarySheet.SelectedValue != "0")
                {
                    sb.Append(",ro");
                }
                else
                {
                    sb.Append(",ed");
                }
            }
            sb.Append("\");");
            #endregion

            #region Bind: Cols Color
            sb.Append("mygrid.setColumnColor(\"#E1ECFC,#E1ECFC");
            for (int i = 1; i < colCount; i++)
            {
                sb.Append(",white");
            }
            sb.Append("\");");
            #endregion

            sb.Append("gridScale = 0;");
            sb.Append(" mygrid.enableKeyboardSupport(false); mygrid.enableDragAndDrop(true); mygrid.setDragBehavior('sibling'); mygrid.init(); ");
            sb.Append("mygrid.setDragHandler(drag_f); mygrid.setDropHandler(drop_f);");


            if (ddSecondarySheet.SelectedValue != "-2")
            {
                sb.AppendFormat("qstring2='&BasePlanSlotId1={0}&BasePlanSlotId2={1}&FromYear={2}&ToYear={3}&compare=1';", ddPrimarySheet.SelectedValue, ddSecondarySheet.SelectedValue, tbFrom.Text, tbTo.Text);
                sb.AppendFormat("var xmlurl = '{0}?ProjectId={1}&ProjectFinance=1'+qstring2;", ResolveUrl("~/Modules/XmlForTreeView.aspx"), ProjectId);
                sb.AppendFormat("mygrid.loadXML(xmlurl);", ResolveUrl("~/Modules/XmlForTreeView.aspx"), ProjectId);
                //sb.Append("function({HighlightCell(null, -1, mygrid.getRowId(0), 2);});");
                sb.Append("compareMode = 1;");
            }
            else
            {
                sb.AppendFormat("qstring2='&BasePlanSlotId1={0}&BasePlanSlotId2={1}&FromYear={2}&ToYear={3}';", ddPrimarySheet.SelectedValue, ddSecondarySheet.SelectedValue, tbFrom.Text, tbTo.Text);
                sb.AppendFormat("var xmlurl = '{0}?ProjectId={1}&ProjectFinance=1'+qstring2;", ResolveUrl("~/Modules/XmlForTreeView.aspx"), ProjectId);
                sb.AppendFormat("mygrid.loadXML(xmlurl);", ResolveUrl("~/Modules/XmlForTreeView.aspx"), ProjectId);
                //sb.Append("function({HighlightCell(null, -1, mygrid.getRowId(0), 2);});");
                sb.Append("compareMode = 0;");
            }
            //sb.Append("mygrid.attachHeader([\"#rspan\", \"#rspan\", \"TEST MF\", \"#cspan\", \"T2\", \"_\", \"_\", \"T3\", \"_\", \"_\", \"_\", \"_\", \"_\", \"_\", \"_\", \"_\", \"_\", \"_\", \"_\", \"_\"]);");
            //sb.Append("mygrid.setSizes();");

            if (ddPrimarySheet.SelectedValue == "0")
            {
                sb.Append("DisableSelection = false;");
                sb.Append(" setTimeout(\"HighlightCell(null,-1,mygrid.getRowId(0), 2)\", 500); ");
            }
            else
            {
                sb.Append("DisableSelection = true;");
            }
            sb.Append("mygrid.setOnEditCellHandler(GridCellEdit); ");

            //DV: Fix bug with new doctype
            sb.Append("window.setTimeout(function () ");
            sb.Append("{ if (document.getElementById('gridbox')) { ");
            sb.Append("	document.getElementById('gridbox').style.height = '399px'; ");
            sb.Append("	window.setTimeout(function() { document.getElementById('gridbox').style.height = '400px'; }, 1000);");
            sb.Append("	}");
            sb.Append("}, 100);");

            sb.Append("</script>");

            //Page.RegisterClientScriptBlock();
            this.Page.ClientScript.RegisterStartupScript(this.GetType(), Guid.NewGuid().ToString(), sb.ToString());
        }
Example #18
0
        public static IList <GanttObject> GetAnalysisObjects(int originalPlanSlotId, int basePlanSlotId)
        {
            List <GanttObject> ret = new List <GanttObject>();

            IFormatProvider provider = CultureInfo.InvariantCulture;

            List <int> projects            = new List <int>();
            UserLightPropertyCollection pc = Security.CurrentUser.Properties;

            switch (pc["Report_ProjectListType"])
            {
            case "Custom":
                string projectList = pc["Report_ProjectListData"];
                if (!string.IsNullOrEmpty(projectList))
                {
                    foreach (string id in projectList.Split(';'))
                    {
                        int projectId;
                        if (int.TryParse(id.Trim(), out projectId))
                        {
                            projects.Add(projectId);
                        }
                    }
                }
                break;

            case "Portfolio":
                string    portfolioId = pc["Report_ProjectListData"];
                DataTable dt          = Project.GetListProjectGroupedByPortfolio(int.Parse(portfolioId, provider), 0, 0);
                foreach (DataRow row in dt.Rows)
                {
                    int projectId = (int)row["ProjectId"];
                    if (projectId > 0)
                    {
                        projects.Add(projectId);
                    }
                }
                break;

            default:                     // All projects
                using (IDataReader reader = Project.GetListProjects())
                {
                    while (reader.Read())
                    {
                        projects.Add((int)reader["ProjectId"]);
                    }
                }
                break;
            }

            List <int> collapsedProjects    = new List <int>();
            string     collapsedProjectList = pc["Report_CollapsedProjectsList"];

            if (!string.IsNullOrEmpty(collapsedProjectList))
            {
                foreach (string id in collapsedProjectList.Split(';'))
                {
                    int projectId;
                    if (int.TryParse(id.Trim(), out projectId))
                    {
                        if (!collapsedProjects.Contains(projectId))
                        {
                            collapsedProjects.Add(projectId);
                        }
                    }
                }
            }

            foreach (int projectId in projects)
            {
                GanttObject project = new GanttObject();

                project.Id              = projectId;
                project.IsProject       = true;
                project.IsCollapsed     = collapsedProjects.Contains(projectId);
                project.MilestonesCount = Task.TasksGetMilestonesCount(projectId);

                // O.R. [2009-03-30]: if current user is PM, then he can got AccessDeniedException for some projects
                try
                {
                    using (IDataReader reader = Project.GetProject(projectId))
                    {
                        if (reader.Read())
                        {
                            project.Title       = reader["Title"].ToString();
                            project.Start       = (DateTime)reader["TargetStartDate"];
                            project.Finish      = (DateTime)reader["TargetFinishDate"];
                            project.IsCompleted = !(bool)reader["IsActive"];
                        }
                    }
                }
                catch (AccessDeniedException)
                {
                    continue;
                }

                ret.Add(project);

                // Load milestones
                Dictionary <int, DateTime> originalPlan = null;
                if (originalPlanSlotId > 0)
                {
                    originalPlan = ProjectSpreadSheet.GetTaskHash(projectId, originalPlanSlotId);
                }

                Dictionary <int, DateTime> basePlan = null;
                if (basePlanSlotId > 0)
                {
                    basePlan = ProjectSpreadSheet.GetTaskHash(projectId, basePlanSlotId);
                }

                int milestonesCount = 0;
                using (IDataReader reader = Task.GetListTasksByProject(projectId))
                {
                    while (reader.Read())
                    {
                        if ((bool)reader["IsMilestone"])
                        {
                            GanttObject milestone = new GanttObject();

                            milestone.Id          = (int)reader["TaskId"];
                            milestone.IsProject   = false;
                            milestone.IsCompleted = (bool)reader["IsCompleted"];
                            milestone.Title       = reader["Title"].ToString();

                            if (originalPlan != null)
                            {
                                if (originalPlan.ContainsKey(milestone.Id))
                                {
                                    milestone.Start = originalPlan[milestone.Id];
                                }
                            }
                            else
                            {
                                milestone.Start = (DateTime)reader["StartDate"];
                            }

                            milestone.Finish = milestone.Start;

                            if (basePlan != null && basePlan.ContainsKey(milestone.Id))
                            {
                                milestone.Finish = basePlan[milestone.Id];
                            }

                            if (milestone.Start != DateTime.MinValue)
                            {
                                milestonesCount++;
                                if (!project.IsCollapsed)
                                {
                                    ret.Add(milestone);
                                }
                            }
                        }
                    }
                }

                project.MilestonesCount = milestonesCount;
            }

            return(ret);
        }
Example #19
0
        private void BindDG(DataGrid dg)
        {
            DataTable dt = new DataTable();

            dt.Columns.Add(new DataColumn("ActualId", typeof(int)));
            dt.Columns.Add(new DataColumn("OutlineLevel", typeof(int)));
            dt.Columns.Add(new DataColumn("Description", typeof(string)));
            dt.Columns.Add(new DataColumn("ActualDate", typeof(DateTime)));
            dt.Columns.Add(new DataColumn("AValue", typeof(double)));
            dt.Columns.Add(new DataColumn("LastEditorId", typeof(int)));
            dt.Columns.Add(new DataColumn("LastEditorName", typeof(string)));
            dt.Columns.Add(new DataColumn("ObjectTypeId", typeof(int)));
            dt.Columns.Add(new DataColumn("ObjectId", typeof(int)));
            dt.Columns.Add(new DataColumn("RowId", typeof(string)));
            dt.Columns.Add(new DataColumn("BlockId", typeof(int)));
            dt.Columns.Add(new DataColumn("TotalApproved", typeof(string)));
            dt.Columns.Add(new DataColumn("OwnerDisplayName", typeof(string)));
            dt.Columns.Add(new DataColumn("OwnerName", typeof(string)));

            if (ObjectId > 0)
            {
                int       projectId = Util.CommonHelper.GetProjectIdByObjectIdObjectType(ObjectId, ObjectTypeId);
                bool      projectSpreadSheetIsActive = ProjectSpreadSheet.IsActive(projectId);
                Hashtable rowNameHashtable           = ProjectSpreadSheet.GetRowNameByIdHash(projectId);

                #region dates
                DateTime?dt1 = null;
                DateTime?dt2 = null;
                switch (PeriodList.SelectedValue)
                {
                case "[DateTimeThisAny]":
                    break;

                case "[DateTimeThisWeek]":
                    dt1 = CHelper.GetRealWeekStartByDate(DateTime.Today);
                    dt2 = CHelper.GetRealWeekEndByDate(DateTime.Today);
                    break;

                case "[DateTimeLastWeek]":
                    dt1 = CHelper.GetRealWeekStartByDate(DateTime.Today.AddDays(-7));
                    dt2 = CHelper.GetRealWeekEndByDate(DateTime.Today.AddDays(-7));
                    break;

                case "[DateTimeThisMonth]":
                    dt1 = DateTime.Today.AddDays(1 - DateTime.Today.Day);
                    dt2 = DateTime.Today;
                    break;

                case "[DateTimeLastMonth]":
                    dt1 = DateTime.Today.AddDays(1 - DateTime.Today.Day).AddMonths(-1);
                    dt2 = DateTime.Today.AddDays(-DateTime.Today.Day);
                    break;

                case "[DateTimeThisYear]":
                    dt1 = DateTime.Today.AddDays(1 - DateTime.Today.DayOfYear);
                    dt2 = DateTime.Today;
                    break;

                case "[DateTimeLastYear]":
                    dt1 = DateTime.Today.AddDays(1 - DateTime.Now.DayOfYear).AddYears(-1);
                    dt2 = DateTime.Today.AddDays(-DateTime.Now.DayOfYear);
                    break;

                case "0":
                    dt1 = Dtc0.SelectedDate;
                    dt2 = CHelper.GetRealWeekEndByDate(Dtc0.SelectedDate);
                    break;

                case "-1":
                    dt1 = Dtc1.SelectedDate;
                    dt2 = Dtc2.SelectedDate;
                    break;

                default:
                    break;
                }
                #endregion

                foreach (ActualFinances af in ActualFinances.List(ObjectId, (ObjectTypes)ObjectTypeId, dt1, dt2))
                {
                    DataRow row = dt.NewRow();
                    row["ActualId"]       = af.ActualFinancesId;
                    row["Description"]    = af.Comment;
                    row["ActualDate"]     = af.Date;
                    row["AValue"]         = af.Value;
                    row["LastEditorId"]   = af.CreatorId;
                    row["LastEditorName"] = Util.CommonHelper.GetUserStatusPureName(af.CreatorId);
                    row["OutlineLevel"]   = 1;
                    row["ObjectTypeId"]   = af.ObjectTypeId;
                    row["ObjectId"]       = af.ObjectId;
                    if (projectSpreadSheetIsActive && rowNameHashtable.ContainsKey(af.RowId))
                    {
                        row["RowId"] = rowNameHashtable[af.RowId].ToString();
                    }
                    else
                    {
                        row["RowId"] = string.Empty;
                    }

                    if (af.BlockId.HasValue)
                    {
                        row["BlockId"] = af.BlockId.Value;
                    }

                    if (af.TotalApproved.HasValue)
                    {
                        if (dg == dgExport)
                        {
                            row["TotalApproved"] = (int)af.TotalApproved.Value;
                        }
                        else
                        {
                            row["TotalApproved"] = CommonHelper.GetHours((int)af.TotalApproved.Value);
                        }
                    }

                    if (af.OwnerId.HasValue)
                    {
                        row["OwnerDisplayName"] = Util.CommonHelper.GetUserStatus(af.OwnerId.Value);
                        if (dgExport.Visible)
                        {
                            row["OwnerName"] = Util.CommonHelper.GetUserStatusAndPositionPureName(af.OwnerId.Value);
                        }
                        else
                        {
                            row["OwnerName"] = Util.CommonHelper.GetUserStatusPureName(af.OwnerId.Value);
                        }
                    }

                    dt.Rows.Add(row);
                }
            }

            /*else if(TaskId>0)
             *      dt = Finance.GetListActualFinancesByTask(TaskId);
             * else if(IncidentId>0)
             *      dt = Finance.GetListActualFinancesByIncident(IncidentId);
             * else if(DocumentId>0)
             *      dt = Finance.GetListActualFinancesByDocument(DocumentId);
             * else if(EventId>0)
             *      dt = Finance.GetListActualFinancesByEvent(EventId);
             * else if(ToDoId>0)
             *      dt = Finance.GetListActualFinancesByToDo(ToDoId);*/

            DataView dv = dt.DefaultView;
            dv.Sort = pc["FinAct_Sort"].ToString();

            if (pc["FinAct_PageSize"] != null)
            {
                dg.PageSize = int.Parse(pc["FinAct_PageSize"]);
            }

            if (pc["FinAct_Page"] != null)
            {
                dg.CurrentPageIndex = int.Parse(pc["FinAct_Page"]);
            }

            int pageindex = dg.CurrentPageIndex;
            int ppi       = dv.Count / dg.PageSize;
            if (dv.Count % dg.PageSize == 0)
            {
                ppi = ppi - 1;
            }

            if (pageindex <= ppi)
            {
                dg.CurrentPageIndex = pageindex;
            }
            else
            {
                dg.CurrentPageIndex = 0;
                pc["FinAct_Page"]   = "0";
            }

            dg.DataSource = dv;
            dg.DataBind();

            bool haveRights = false;
            if (ProjectId > 0)
            {
                haveRights = Project.CanEditFinances(ProjectId);
            }
            if (TaskId > 0)
            {
                haveRights = Task.CanViewFinances(TaskId);
            }
            if (IncidentId > 0)
            {
                haveRights = Incident.CanViewFinances(IncidentId);
            }
            if (DocumentId > 0)
            {
                haveRights = Document.CanViewFinances(DocumentId);
            }
            if (EventId > 0)
            {
                haveRights = CalendarEntry.CanViewFinances(EventId);
            }
            if (ToDoId > 0)
            {
                haveRights = Mediachase.IBN.Business.ToDo.CanViewFinances(ToDoId);
            }

            foreach (DataGridItem dgi in dg.Items)
            {
                if (dgi.FindControl("ibDelete") != null)
                {
                    ImageButton ibDelete = (ImageButton)dgi.FindControl("ibDelete");
                    ibDelete.Attributes.Add("onclick", "return confirm('" + LocRM.GetString("Warning") + "')");
                }

                if (dgi.FindControl("ibEdit") != null)
                {
                    ImageButton ibEdit = (ImageButton)dgi.FindControl("ibEdit");

                    string link = string.Empty;
                    if (ObjectId > 0 && haveRights)
                    {
                        link = String.Format(CultureInfo.InvariantCulture,
                                             "javascript:OpenWindow(\"{0}?ObjectId={1}&ObjectTypeId={2}&ActualFinancesId={3}&btn={4}\",520,270,false);return false;",
                                             ResolveClientUrl("~/projects/AddFinanceActual.aspx"),
                                             ObjectId,
                                             ObjectTypeId, dgi.Cells[0].Text,
                                             Page.ClientScript.GetPostBackEventReference(RefreshButton, ""));
                    }
                    ibEdit.Attributes.Add("onclick", link);
                }
            }
            //			if(!Project.CanEditFinances(ProjectId))
            //				dg.Columns[10].Visible = false;
        }
        private void BindDD()
        {
            // Group
            GroupingList.Items.Add(new ListItem(GetGlobalResourceObject("IbnFramework.TimeTracking", "GroupingWeekUser").ToString(), GroupingWeekUser));
            GroupingList.Items.Add(new ListItem(GetGlobalResourceObject("IbnFramework.TimeTracking", "GroupingUserWeek").ToString(), GroupingUserWeek));

            // Projects
            bool   isPpmExec       = Mediachase.IBN.Business.Security.IsUserInGroup(InternalSecureGroups.PowerProjectManager) || Mediachase.IBN.Business.Security.IsUserInGroup(InternalSecureGroups.ExecutiveManager);
            string titledFieldName = TimeTrackingManager.GetBlockTypeInstanceMetaClass().TitleFieldName;

            foreach (TimeTrackingBlockTypeInstance bo in TimeTrackingManager.GetProjectBlockTypeInstances())
            {
                // Условия для того, чтобы BlockTypeInstances попал в список:
                //	- он должен быть связан с проектом
                //	- у него должны быть активны финансы
                //	- текущий пользователь - либо PPM/Exec, либо менеджер/исп.менеджер проекта

                if (bo.ProjectId.HasValue)
                {
                    int projectId = bo.ProjectId.Value;

                    if (ProjectSpreadSheet.IsActive(projectId))
                    {
                        bool add = false;
                        if (isPpmExec)
                        {
                            add = true;
                        }
                        else
                        {
                            Project.ProjectSecurity ps = Project.GetSecurity(projectId);
                            if (ps.IsManager || ps.IsExecutiveManager)
                            {
                                add = true;
                            }
                        }

                        if (add)
                        {
                            ListItem li = new ListItem(bo.Properties[titledFieldName].Value.ToString(), bo.PrimaryKeyId.ToString());
                            ProjectList.Items.Add(li);
                        }
                    }
                }
            }

            if (ProjectList.Items.Count <= 0)
            {
                NoProjectsDiv.Visible = true;
                PanelFilters.Visible  = false;
                return;
            }
            else
            {
                NoProjectsDiv.Visible = false;
            }

            // Users
            UserList.Items.Add(new ListItem(CHelper.GetResFileString("{IbnFramework.Global:_mc_All}"), "0"));
            Principal[] mas = Principal.List(new FilterElementCollection(FilterElement.EqualElement("Card", "User"), FilterElement.EqualElement("Activity", 3)), new SortingElementCollection(new SortingElement("Name", SortingElementType.Asc)));
            foreach (Principal pl in mas)
            {
                UserList.Items.Add(new ListItem(pl.Name, pl.PrimaryKeyId.ToString()));
            }

            // Dates
            PeriodList.Items.Add(new ListItem(CHelper.GetResFileString("{IbnFramework.TimeTracking:_mc_Any}"), "[DateTimeThisAny]"));
            PeriodList.Items.Add(new ListItem(CHelper.GetResFileString("{IbnFramework.TimeTracking:_mc_ThisWeek}"), "[DateTimeThisWeek]"));
            PeriodList.Items.Add(new ListItem(CHelper.GetResFileString("{IbnFramework.TimeTracking:_mc_LastWeek}"), "[DateTimeLastWeek]"));
            PeriodList.Items.Add(new ListItem(CHelper.GetResFileString("{IbnFramework.TimeTracking:_mc_ThisMonth}"), "[DateTimeThisMonth]"));
            PeriodList.Items.Add(new ListItem(CHelper.GetResFileString("{IbnFramework.TimeTracking:_mc_LastMonth}"), "[DateTimeLastMonth]"));
            PeriodList.Items.Add(new ListItem(CHelper.GetResFileString("{IbnFramework.TimeTracking:_mc_ThisYear}"), "[DateTimeThisYear]"));
            PeriodList.Items.Add(new ListItem(CHelper.GetResFileString("{IbnFramework.TimeTracking:_mc_LastYear}"), "[DateTimeLastYear]"));
            PeriodList.Items.Add(new ListItem(CHelper.GetResFileString("{IbnFramework.TimeTracking:_mc_CustomWeek}"), "0"));
            PeriodList.Items.Add(new ListItem(CHelper.GetResFileString("{IbnFramework.TimeTracking:_mc_CustomPeriod}"), "-1"));

            Dtc1.SelectedDate = CHelper.GetRealWeekStartByDate(DateTime.Today);
            Dtc2.SelectedDate = CHelper.GetRealWeekStartByDate(DateTime.Today);
        }
Example #21
0
        private void GenerateScript()
        {
            ArrayList ProjectIds = new ArrayList();

            switch (ProjectListType)
            {
            case "All":
                using (IDataReader reader = Project.GetListProjects())
                {
                    while (reader.Read())
                    {
                        ProjectIds.Add(int.Parse(reader["ProjectId"].ToString()));
                    }
                }
                break;

            case "Portfolio":
                DataTable dt = Project.GetListProjectGroupedByPortfolio(int.Parse(ProjectListData), 0, 0);
                if (dt != null && dt.Rows.Count > 0)
                {
                    foreach (DataRow dr in dt.Rows)
                    {
                        int prid = int.Parse(dr["ProjectId"].ToString());
                        if (prid > 0)
                        {
                            ProjectIds.Add(prid);
                        }
                    }
                }
                break;

            case "Custom":
                if (ProjectListData != null && ProjectListData.Length > 0)
                {
                    string[] Ids = ProjectListData.Split(';');
                    if (Ids != null && Ids.Length > 0)
                    {
                        for (int i = 0; i < Ids.Length; i++)
                        {
                            ProjectIds.Add(int.Parse(Ids[i]));
                        }
                    }
                }
                break;

            default:
                break;
            }
            SpreadSheetDocumentType type = SpreadSheetDocumentType.Total;

            switch (FinanceType)
            {
            case "1":
                type = SpreadSheetDocumentType.WeekYear;
                break;

            case "2":
                type = SpreadSheetDocumentType.MonthQuarterYear;
                break;

            case "3":
                type = SpreadSheetDocumentType.QuarterYear;
                break;

            case "4":
                type = SpreadSheetDocumentType.Year;
                break;

            case "5":
                type = SpreadSheetDocumentType.Total;
                break;
            }

            SpreadSheetView view = null;

            if (!Reverse)
            {
                view = ProjectSpreadSheet.CompareProjects(ProjectIds, type, BasePlan1, FromYear, ToYear);
            }
            else
            {
                view = ProjectSpreadSheet.CompareProjectsReverse(ProjectIds, type, BasePlan1, FromYear, ToYear);
            }
            SpreadSheetView view2;

            if (BasePlan2 != -2)
            {
                if (!Reverse)
                {
                    view2 = ProjectSpreadSheet.CompareProjects(ProjectIds, type, BasePlan2, FromYear, ToYear);
                }
                else
                {
                    view2 = ProjectSpreadSheet.CompareProjectsReverse(ProjectIds, type, BasePlan2, FromYear, ToYear);
                }
            }


            int colCount = view.Columns.Length;
            //int maxWidth = 950;

            StringBuilder sb = new StringBuilder();

            sb.AppendLine("<script type='text/javascript'>");
            sb.AppendLine("//<![CDATA[");
            sb.AppendLine("if (mygrid2 == null)");
            sb.AppendLine("	mygrid2 = new dhtmlXGridObject('gridbox');");
            //sb.Append("");


            #region Bind: Header Caption

            if (view.Document.DocumentType != SpreadSheetDocumentType.Total && view.Document.DocumentType != SpreadSheetDocumentType.Year)
            {
                sb.AppendFormat("mygrid2.setHeader(\"{0}", LocRM.GetString("tProjects"));
                int YearCounter = ToYear - FromYear + 1;
                int ColSpanRate = -1;

                #region Year
                if (view.Document.DocumentType == SpreadSheetDocumentType.QuarterYear)
                {
                    ColSpanRate = 5;
                }
                else if (view.Document.DocumentType == SpreadSheetDocumentType.MonthQuarterYear)
                {
                    ColSpanRate = 17;
                }
                else if (view.Document.DocumentType == SpreadSheetDocumentType.WeekYear)
                {
                    ColSpanRate = 53;
                }

                int RowSpanRate = (view.Columns.Length - YearCounter) / (YearCounter * 4);
                //int RowSpanRate = 45;
                int yearCount = 0;

                for (int i = 0; i < view.Columns.Length - 1; i++)
                {
                    if (view.Document.DocumentType == SpreadSheetDocumentType.MonthQuarterYear)
                    {
                        if (i % (ColSpanRate) == 0)
                        {
                            sb.AppendFormat(",{0}", FromYear + yearCount);
                        }
                        else if (((i - yearCount + 1) % (ColSpanRate - 1) == 0) && (i - yearCount + 1 != 0))
                        {
                            sb.AppendFormat(",{0}", LocRM.GetString("tYear"));
                        }
                        else
                        {
                            sb.Append(",#cspan");
                        }
                    }
                    else
                    {
                        if (i % (ColSpanRate) == 0)
                        {
                            sb.AppendFormat(",{0}", FromYear + yearCount);
                        }
                        else if (((i - yearCount + 1) % (ColSpanRate - 1) == 0) && (i - yearCount + 1 != 0))
                        {
                            sb.AppendFormat(",{0}", LocRM.GetString("tYear"));
                        }
                        else
                        {
                            sb.Append(",#cspan");
                        }
                    }
                    if (i % (ColSpanRate) == 0)
                    {
                        yearCount++;
                    }
                }
                //}
                sb.AppendFormat(",{0}\");", LocRM.GetString("tTotalSum"));
                #endregion

                #region Quartals
                if (view.Document.DocumentType == SpreadSheetDocumentType.MonthQuarterYear)
                {
                    sb.Append("mygrid2.attachHeader([\"#rspan\"");
                    for (int i = 0; i < view.Columns.Length - 1; i++)
                    {
                        int counter = i % ColSpanRate;

                        if (counter % (RowSpanRate) == 0 && counter != 16)
                        {
                            sb.AppendFormat(",\"{0} {1}\"", LocRM.GetString("tQuarterYear"), /*(((i + 1) / RowSpanRate) % 4) + 1*/ (counter / 4) + 1);
                        }
                        else
                        if ((counter + 1) % RowSpanRate == 0)
                        {
                            sb.AppendFormat(", \"{0}\"", LocRM.GetString("tQuarterTotal"));
                        }
                        else
                        if (counter == 16)
                        {
                            sb.Append(",\"#rspan\"");
                        }

                        else
                        {
                            sb.Append(",\"#cspan\"");
                        }
                    }
                    sb.Append(",\"#rspan\"]);");
                }
                #endregion

                #region BindServerData
                sb.AppendFormat("mygrid2.attachHeader([\"#rspan\", \"{0}\"", ((Column)view.Columns[0]).Name);
                int _counter = 0;
                for (int i = 1; i < view.Columns.Length - 1; i++)
                {
                    if (view.Document.DocumentType == SpreadSheetDocumentType.MonthQuarterYear)
                    {
                        if (i % ColSpanRate == 0)
                        {
                            _counter++;
                        }
                        if ((i + 1 - _counter) % RowSpanRate == 0)
                        {
                            sb.Append(",\"#rspan\"");
                        }
                        else
                        if ((i + 1) % ColSpanRate == 0)
                        {
                            sb.Append(",\"#rspan\"");
                        }
                        else
                        {
                            sb.AppendFormat(",\" {0}\"", ((Column)view.Columns[i]).Name);
                        }
                    }
                    else
                    {
                        if ((i + 1) % ColSpanRate == 0)
                        {
                            sb.Append(",\"#rspan\"");
                        }
                        else
                        {
                            sb.AppendFormat(",\" {0}\"", ((Column)view.Columns[i]).Name);
                        }
                    }
                }
                sb.Append(",\"#rspan\"]);");
                #endregion
            }
            else
            {
                //for scales: Year, Project Total
                sb.AppendFormat("mygrid2.setHeader(\"{0}", LocRM.GetString("tProjects"));

                for (int i = 0; i < view.Columns.Length; i++)
                {
                    sb.AppendFormat(",{0}", ((Column)view.Columns[i]).Name);
                }
                sb.Append("\");");
            }
            #endregion

            #region Bind: Header Width
            sb.AppendFormat("mygrid2.setImagePath('{0}');", ResolveUrl("~/Layouts/Images/dhtmlGrid/imgs"));

            sb.Append("mygrid2.setInitWidths(\"100");
            for (int i = 0; i < view.Columns.Length; i++)
            {
                sb.AppendFormat(",{0}", 60 /*(int)(maxWidth / view.Columns.Length)*/);
            }
            sb.Append("\");");
            #endregion

            #region Bind: Header Align
            sb.Append("mygrid2.setColAlign(\"left");
            for (int i = 0; i < view.Columns.Length; i++)
            {
                sb.Append(",right");
            }
            sb.Append("\");");
            #endregion

            #region Bind: Cols CanEdit
            sb.Append("mygrid2.setColTypes(\"tree");

            for (int i = 0; i < colCount; i++)
            {
                sb.Append(",ro");
            }
            sb.Append("\");");
            #endregion

            #region Bind: Cols Color
            sb.Append("mygrid2.setColumnColor(\"#E1ECFC");
            for (int i = 1; i < colCount; i++)
            {
                sb.Append(",white");
            }
            sb.Append("\");");
            #endregion


            sb.AppendLine("mygrid2.enableKeyboardSupport(false);mygrid2.setOnLoadingEnd('EnableApplyButton');mygrid2.enableEditEvents(false,false,false);mygrid2.init();");

            if (ddBasePlan2.SelectedValue != "-2")
            {
                sb.AppendLine("qstring2='&compare=1';");
                sb.AppendFormat("var xmlurl='{0}?ProjectFinanceCompare=1'+qstring2;", ResolveUrl("~/Modules/XmlForTreeView.aspx"));
                sb.AppendLine("mygrid2.loadXML(xmlurl);");
                sb.AppendLine("compareMode=1;");
            }
            else
            {
                sb.AppendFormat("var xmlurl='{0}?ProjectFinanceCompare=1';", ResolveUrl("~/Modules/XmlForTreeView.aspx"));
                sb.AppendLine("mygrid2.loadXML(xmlurl);");

                sb.AppendLine("compareMode=0;");
            }

            sb.AppendLine("//]]>");
            sb.AppendLine("</script>");
            this.Page.ClientScript.RegisterStartupScript(this.GetType(), Guid.NewGuid().ToString(), sb.ToString());
        }
Example #22
0
        /// <summary>
        /// Saves the specified Active Data by Project to Base Plan Slot.
        /// </summary>
        /// <param name="ProjectId">The project id.</param>
        /// <param name="BasePlanSlotId">The base plan slot id.</param>
        public static void Save(int ProjectId, int BasePlanSlotId)
        {
            using (DbTransaction tran = DbTransaction.Begin())
            {
                // Step. Create or Update ProjectBasePlanInfoRow


                ProjectBasePlanInfoRow infoRow = new ProjectBasePlanInfoRow();

                ProjectBasePlanInfoRow[] activeInfoRowList = ProjectBasePlanInfoRow.List(ProjectId);

                foreach (ProjectBasePlanInfoRow activeInfoRow in activeInfoRowList)
                {
                    if (activeInfoRow.BasePlanSlotId == BasePlanSlotId)
                    {
                        infoRow = activeInfoRow;
                        break;
                    }
                }

                infoRow.BasePlanSlotId = BasePlanSlotId;
                infoRow.ProjectId      = ProjectId;
                infoRow.Created        = DateTime.UtcNow;

                infoRow.Update();
                //DV. Fix Exception, when finances are not active!
                if (ProjectSpreadSheet.IsActive(ProjectId))
                {
                    // Step 1. Save Spread Sheet View from Currency
                    ProjectSpreadSheetDataRow.Delete(ProjectId, BasePlanSlotId);

                    ProjectSpreadSheetDataRow[] srcRowList = ProjectSpreadSheetDataRow.ListCurrentByProjectId(ProjectId);

                    foreach (ProjectSpreadSheetDataRow srcRow in srcRowList)
                    {
                        ProjectSpreadSheetDataRow newRow = new ProjectSpreadSheetDataRow();

                        newRow.Index = BasePlanSlotId;

                        newRow.ProjectSpreadSheetId = srcRow.ProjectSpreadSheetId;

                        newRow.ColumnId = srcRow.ColumnId;
                        newRow.RowId    = srcRow.RowId;

                        newRow.CellType = srcRow.CellType;

                        newRow.Value = srcRow.Value;

                        newRow.Update();
                    }

                    SpreadSheetView view = ProjectSpreadSheet.LoadView(ProjectId, BasePlanSlotId, 2001, 2001);
                    ProjectSpreadSheet.SaveBusinessScore(ProjectId, BasePlanSlotId, view.Document);
                }

                // Step 2. Save Tasks
                ProjectTaskBasePlanRow.Fill(ProjectId, BasePlanSlotId);

                tran.Commit();
            }
        }