コード例 #1
0
        private void LoadData()
        {
            string projectCode = Request["ProjectCode"] + "";

            try
            {
                string isDynamic         = Request["IsDynamic"] + "";
                BudgetStrategyBuilder sb = new BudgetStrategyBuilder();
                sb.AddStrategy(new Strategy(BudgetStrategyName.ProjectCode, projectCode));
                if (isDynamic != "")
                {
                    sb.AddStrategy(new Strategy(BudgetStrategyName.IsDynamic, isDynamic));
                }

                string     sql = sb.BuildMainQueryString();
                QueryAgent qa  = new QueryAgent();
                qa.SetTopNumber(1);
                EntityData budget = qa.FillEntityData("Budget", sql);
                qa.Dispose();

                this.dgList.DataSource = budget.CurrentTable;
                this.dgList.DataBind();
                budget.Dispose();
            }
            catch (Exception ex)
            {
                ApplicationLog.WriteLog(this.ToString(), ex, "加载列表错误");
            }
        }
コード例 #2
0
        private void BuildSearchString()
        {
            string projectCode       = Request["ProjectCode"] + "";
            BudgetStrategyBuilder sb = new BudgetStrategyBuilder();

            sb.AddStrategy(new Strategy(BudgetStrategyName.ProjectCode, projectCode));
            sb.AddStrategy(new Strategy(BudgetStrategyName.IsDynamic, "2"));                                                    //动态申请
            if (this.sltFlag.Value != "")
            {
                sb.AddStrategy(new Strategy(BudgetStrategyName.Flag, this.sltFlag.Value));                              //申请审核状态
            }
            ArrayList ar = new ArrayList();

            if (this.dtMakeDate0.Value != "" || this.dtMakeDate1.Value != "")
            {
                ar.Add(this.dtMakeDate0.Value);
                ar.Add(this.dtMakeDate1.Value);
                sb.AddStrategy(new Strategy(BudgetStrategyName.MakeDate, ar));
            }

            ar.Clear();
            if (this.dtCheckDate0.Value != "" || this.dtCheckDate1.Value != "")
            {
                ar.Add(this.dtCheckDate0.Value);
                ar.Add(this.dtCheckDate1.Value);
                sb.AddStrategy(new Strategy(BudgetStrategyName.CheckDate, ar));
            }

            sb.AddOrder("MakeDate", false);

            string sql = sb.BuildMainQueryString();

            this.ViewState.Add("SearchString", sql);
        }
コード例 #3
0
ファイル: BudgetNavigate.aspx.cs プロジェクト: riyuexing/rms
        protected void Page_Load(object sender, System.EventArgs e)
        {
            string projectCode   = Request["ProjectCode"] + "";
            string isDynamic     = Request["IsDynamic"] + "";
            string isDynamicName = (isDynamic == "0")? "费用预算":"动态费用";

            try
            {
                BudgetStrategyBuilder sb = new BudgetStrategyBuilder();
                sb.AddStrategy(new Strategy(BudgetStrategyName.ProjectCode, projectCode));
                sb.AddStrategy(new Strategy(BudgetStrategyName.IsDynamic, isDynamic));
                sb.AddStrategy(new Strategy(BudgetStrategyName.Flag, "0,1"));
                sb.AddOrder("MakeDate", false);
                string     sql    = sb.BuildMainQueryString();
                QueryAgent qa     = new QueryAgent();
                EntityData budget = qa.FillEntityData("Budget", sql);
                qa.Dispose();

                string budgetCode = "";
                // 如果有审核过的生效的版本,看这个版本
                // 没有就看最新的版本
                DataRow[] drs = budget.CurrentTable.Select("Flag=0", "MakeDate DESC");
                if (drs.Length > 0)
                {
                    budgetCode = (string)drs[0]["BudgetCode"];
                }
                else
                {
                    if (budget.HasRecord())
                    {
                        budgetCode = budget.GetString("BudgetCode");
                    }
                }
                budget.Dispose();

                Response.Write(Rms.Web.JavaScript.ScriptStart);
//				if ( budgetCode == "" )
//					Response.Write( Rms.Web.JavaScript.Alert(false,"还没有做过"+isDynamicName+" !"   ));

                if (isDynamic == "0")
                {
                    Response.Write(Rms.Web.JavaScript.PageTo(false, "Budget.aspx?projectCode=" + projectCode + "&BudgetCode=" + budgetCode));
                }
                else
                {
                    Response.Write(Rms.Web.JavaScript.PageTo(false, "DynamicCost.aspx?projectCode=" + projectCode + "&BudgetCode=" + budgetCode));
                }
                Response.Write(Rms.Web.JavaScript.ScriptEnd);
            }
            catch (Exception ex)
            {
                ApplicationLog.WriteLog(this.ToString(), ex, "");
            }
        }
コード例 #4
0
ファイル: Control_rpAudit.ascx.cs プロジェクト: ishui/rms2
        /// <summary>
        /// 取得最新的动态费用
        /// </summary>
        /// <param name="num"></param>
        /// <returns></returns>
        private DataTable GetDynamicCost(int num)
        {
            BudgetStrategyBuilder sb  = new BudgetStrategyBuilder();
            ArrayList             arA = new ArrayList();

            arA.Add("040403");
            arA.Add(base.user.UserCode);
            arA.Add(base.user.BuildStationCodes());
            sb.AddStrategy(new Strategy(BudgetStrategyName.AccessRange, arA));
            sb.AddStrategy(new Strategy(BudgetStrategyName.IsDynamic, "2"));    //动态申请
            sb.AddStrategy(new Strategy(BudgetStrategyName.Flag, "1"));         //申请审核状态
            sb.AddOrder("MakeDate", false);
            string     sql = sb.BuildMainQueryString();
            QueryAgent qa  = new QueryAgent();
            //qa.SetTopNumber(num);
            EntityData budgets = qa.FillEntityData("Budget", sql);
            DataTable  dt      = budgets.CurrentTable;

            qa.Dispose();
            return(dt);
        }
コード例 #5
0
ファイル: Budget.aspx.cs プロジェクト: riyuexing/rms
        protected void Page_Load(object sender, System.EventArgs e)
        {
            if (IsPostBack)
            {
                return;
            }

            string budgetCode  = Request["BudgetCode"] + "";
            string projectCode = Request["ProjectCode"] + "";

            if (budgetCode == "")
            {
//				this.lblYear.Text = " ( 没有制定预算 !) ";
                this.btnBudgetCheck.Visible  = false;
                this.btnNewestBudget.Visible = false;
                return;
            }
            else
            {
                try
                {
                    EntityData budget = DAL.EntityDAO.CBSDAO.GetBudgetByCode(budgetCode);
                    if (budget.HasRecord())
                    {
                        int iYear       = budget.GetInt("IYear");
                        int iMonth      = budget.GetInt("IMonth");
                        int afterPeriod = budget.GetInt("AfterPeriod");
//						this.lblYear.Text = iYear.ToString();
//						this.lblMonth.Text = iMonth.ToString();

                        int    flag     = budget.GetInt("Flag");
                        string flagName = "";
                        if (flag == 0)
                        {
                            flagName = "(当前预算,生效中)";
                        }
                        else if (flag == 1)
                        {
                            flagName = "(制定中,未审核)";
                        }
                        else if (flag == 2)
                        {
                            flagName = "(历年预算)";
                        }

                        this.lblBudgetName.Text     = budget.GetString("BudgetName");
                        this.lblRemark.Text         = budget.GetString("Remark");
                        this.lblStatus.Text         = flagName;
                        this.lblMakePersonName.Text = BLL.SystemRule.GetUserName(budget.GetString("MakePerson"));

                        this.lblCheckDate.Text       = budget.GetDateTimeOnlyDate("CheckDate");
                        this.lblCheckPersonName.Text = BLL.SystemRule.GetUserName(budget.GetString("CheckPerson"));

                        this.lblAfterPeriod.Text = afterPeriod.ToString();

                        int pMonth = budget.GetInt("PeriodMonth");


                        int endMonth = iMonth + pMonth - 1;
                        int endYear  = iYear;
                        if (endMonth > 12)
                        {
                            endYear  = endYear + 1;
                            endMonth = endMonth - 12;
                        }

                        int startAfterPeriod = iYear + 1;
                        int endAfterPerod    = iYear + afterPeriod;
                        int endPeriod        = iYear + afterPeriod;

                        this.lblPeriodMonth.Text = iYear.ToString() + "年" + iMonth.ToString() + "月 到 " + endYear.ToString() + "年" + endMonth.ToString() + "月";
                        this.lblAfterPeriod.Text = startAfterPeriod.ToString() + "年 到 " + endPeriod.ToString() + "年";


                        if (flag == 1)
                        {
                            this.btnNewestBudget.Visible = false;
                            this.btnNewBudget.Visible    = false;
                        }
                        else
                        {
                            this.btnBudgetCheck.Visible = false;

                            // 检查是否有正在做的预算
                            BudgetStrategyBuilder sb = new BudgetStrategyBuilder();
                            sb.AddStrategy(new Strategy(BudgetStrategyName.ProjectCode, projectCode));
                            sb.AddStrategy(new Strategy(BudgetStrategyName.IsDynamic, "0"));
                            sb.AddStrategy(new Strategy(BudgetStrategyName.Flag, "1"));
                            string     sql     = sb.BuildMainQueryString();
                            QueryAgent qa      = new QueryAgent();
                            EntityData budgets = qa.FillEntityData("Budget", sql);
                            qa.Dispose();
                            if (budgets.HasRecord())
                            {
                                this.btnNewBudget.Visible = false;
                                string budgetNewestCode = budgets.GetString("BudgetCode");
                                this.btnNewestBudget.Attributes.Add("onclick", @"gotoBudget('" + budgetNewestCode + @"'); return false;");
                            }
                            else
                            {
                                this.btnNewestBudget.Visible = false;
                            }
                            budgets.Dispose();
                        }
                    }
                }
                catch (Exception ex)
                {
                    ApplicationLog.WriteLog(this.ToString(), ex, "");
                }
            }

            if (!user.HasRight("040302"))
            {
                this.btnNewBudget.Visible = false;
            }

            if (!user.HasRight("040303"))
            {
                this.btnBudgetCheck.Visible = false;
            }
        }
コード例 #6
0
        private void LoadData()
        {
            string projectCode = Request["ProjectCode"] + "";

            try
            {
                int periodMonth        = 12;
                int totalPeriods       = 0;
                int currentPeriodIndex = 0;
                int periodIndex        = 1;

                // 取项目的计划定义

                EntityData planData = DAL.EntityDAO.SystemManageDAO.GetPeriodDefineByProjectCode(projectCode);
                if (!planData.HasRecord())
                {
                    planData.Dispose();
                    Response.Write(Rms.Web.JavaScript.ScriptStart);
                    Response.Write(Rms.Web.JavaScript.Alert(false, "请先在系统管理中定义项目的计划 !"));
                    Response.Write(Rms.Web.JavaScript.WinClose(false));
                    Response.Write(Rms.Web.JavaScript.ScriptEnd);
                    Response.End();
                }

                // 取项目定义
                ProjectConfigStrategyBuilder sb = new ProjectConfigStrategyBuilder();
                sb.AddStrategy(new Strategy(ProjectConfigStrategyName.ProjectCode, projectCode));
                string     sql           = sb.BuildMainQueryString();
                QueryAgent qa            = new QueryAgent();
                EntityData projectConfig = qa.FillEntityData("ProjectConfig", sql);

                DataRow[] drSelects = projectConfig.CurrentTable.Select(String.Format(" ConfigName='PeriodMonth'"));
                if (drSelects.Length > 0)
                {
                    if (!drSelects[0].IsNull("ConfigData"))
                    {
                        periodMonth = int.Parse((string)drSelects[0]["ConfigData"]);
                    }
                }
                projectConfig.Dispose();

                drSelects = projectConfig.CurrentTable.Select(String.Format(" ConfigName='TotalPeriods'"));
                if (drSelects.Length > 0)
                {
                    if (!drSelects[0].IsNull("ConfigData"))
                    {
                        totalPeriods = int.Parse((string)drSelects[0]["ConfigData"]);
                    }
                }
                projectConfig.Dispose();
                this.txtTotalPeriods.Value = totalPeriods.ToString();
                this.txtPeriodMonth.Value  = periodMonth.ToString();


                // 检查所有预算,如果最新的预算是没有审核过的新预算, 就跳到这个预算
                // 否则计算下一个预算Index,进入这个预算中
                BudgetStrategyBuilder sb0 = new BudgetStrategyBuilder();
                sb0.AddStrategy(new Strategy(BudgetStrategyName.ProjectCode, projectCode));
                sb0.AddStrategy(new Strategy(BudgetStrategyName.IsDynamic, "0"));
                sb0.AddStrategy(new Strategy(BudgetStrategyName.Flag, "0,1,2"));
                sb0.AddOrder("MakeDate", false);
                sql = sb0.BuildMainQueryString();
                EntityData budget = qa.FillEntityData("Budget", sql);
                qa.Dispose();

                int iCurrentYear = DateTime.Now.Year;
                if (budget.HasRecord())
                {
                    int flag = budget.GetInt("Flag");
                    currentPeriodIndex = budget.GetInt("PeriodIndex");

                    int    iYear      = budget.GetInt("IYear");
                    string budgetCode = budget.GetString("BudgetCode");
                    budget.Dispose();
                    if (flag == 1)
                    {
                        Response.Write(Rms.Web.JavaScript.ScriptStart);
                        Response.Write("window.opener.navigate( '../Cost/Budget.aspx?IsDynamic=0&BudgetCode='" + budgetCode + " );");
                        Response.Write("window.close();");
                        Response.Write(Rms.Web.JavaScript.ScriptEnd);
                        return;
                    }
                }
                periodIndex = currentPeriodIndex + 1;
                this.txtPeriodIndex.Value = periodIndex.ToString();

                DataRow[] drsPlan = planData.CurrentTable.Select(String.Format(" PeriodIndex={0} ", periodIndex));
                if (drsPlan.Length == 0)
                {
                    planData.Dispose();
                    Response.Write(Rms.Web.JavaScript.ScriptStart);
                    Response.Write(Rms.Web.JavaScript.Alert(false, "请先在系统管理中定义项目的计划 !"));
                    Response.Write(Rms.Web.JavaScript.WinClose(false));
                    Response.Write(Rms.Web.JavaScript.ScriptEnd);
                    Response.End();
                }

                DateTime dtStart = (DateTime)drsPlan[0]["StartDate"];
                DateTime dtEnd   = (DateTime)drsPlan[0]["EndDate"];
                this.txtStartDate.Value  = dtStart.ToString("yyyy-MM-dd");
                this.txtEndDate.Value    = dtEnd.ToString("yyyy-MM-dd");
                this.txtbudgetName.Value = dtStart.Year.ToString() + "年 年度预算";

                budget.Dispose();
                planData.Dispose();
            }
            catch (Exception ex)
            {
                ApplicationLog.WriteLog(this.ToString(), ex, "");
            }
        }
コード例 #7
0
ファイル: BudgetModify.aspx.cs プロジェクト: ishui/rms2
        private void LoadData()
        {
            string costCode    = Request["CostCode"] + "";
            string projectCode = Request["ProjectCode"] + "";
            string budgetCode  = Request["BudgetCode"] + "";
            string type        = Request["Type"] + "";

            try
            {
                // 取费用分解结构和估算费用
                V_CBSCostStrategyBuilder sb = new V_CBSCostStrategyBuilder();
                sb.AddStrategy(new Strategy(V_CBSCostStrategyName.ProjectCode, projectCode));
                sb.AddStrategy(new Strategy(V_CBSCostStrategyName.Flag, "-1"));
                sb.AddOrder("SortID", true);
                string sql = sb.BuildMainQueryString();

                BudgetStrategyBuilder sb0 = new BudgetStrategyBuilder();
                sb0.AddStrategy(new Strategy(BudgetStrategyName.ProjectCode, projectCode));
                sb0.AddStrategy(new Strategy(BudgetStrategyName.IsDynamic, "0,1"));
                sb0.AddOrder("MakeDate", false);
                string sql0 = sb0.BuildMainQueryString();

                QueryAgent qa        = new QueryAgent();
                EntityData allBudget = qa.FillEntityData("Budget", sql0);
                EntityData allCost   = qa.FillEntityData("V_CBSCost", sql);
                qa.Dispose();

                // 找历年的最后一次生效的预算(动态)
                string     lastBudgetCode = "";
                DataRow[]  drLast         = allBudget.CurrentTable.Select(String.Format(" BudgetCode <> '{0}' and Flag in (0,2) ", budgetCode), " MakeDate DESC ");
                EntityData lastBudget     = new EntityData("Standard_Budget");
                if (drLast.Length > 0)
                {
                    lastBudgetCode = (string)drLast[0]["BudgetCode"];
                    lastBudget     = DAL.EntityDAO.CBSDAO.GetStandard_BudgetByCode(lastBudgetCode);
                }
                lastBudget.SetCurrentTable("BudgetYear");

                DataTable tb = allCost.CurrentTable;
                tb.Columns.Add("BudgetCost");                                                   // 预算费用
                tb.Columns.Add("BeforeHappenCost");                                             // 年前发生
                tb.Columns.Add("CurrentPlanCost");                                              // 当年计划
                tb.Columns.Add("AfterPlanCost");                                                // 剩余预算

                for (int i = 1; i <= IMaxMonth; i++)
                {
                    tb.Columns.Add("CurrentPlanCost" + i.ToString());
                }
                for (int i = 1; i <= IMaxPeriod; i++)
                {
                    tb.Columns.Add("AfterPlanCost" + i.ToString());
                }

                for (int i = 1; i <= IMaxMonth; i++)
                {
                    tb.Columns.Add("MonthAH" + i.ToString());
                }
                for (int i = 1; i <= IMaxMonth; i++)
                {
                    tb.Columns.Add("MonthUse" + i.ToString());
                }
                for (int i = 1; i <= IMaxMonth; i++)
                {
                    tb.Columns.Add("MonthApply" + i.ToString());
                }

                for (int i = 1; i <= IMaxPeriod; i++)
                {
                    tb.Columns.Add("YearAH" + i.ToString());
                }
                for (int i = 1; i <= IMaxPeriod; i++)
                {
                    tb.Columns.Add("YearUse" + i.ToString());
                }
                for (int i = 1; i <= IMaxPeriod; i++)
                {
                    tb.Columns.Add("YearApply" + i.ToString());
                }


                // 取相关的成本项
                DataRow[] drs0     = tb.Select("CostCode='" + costCode + "'");
                string    fullCode = (string)drs0[0]["FullCode"];
                string    costName = (string)drs0[0]["CostName"];

                DataRow[] drs = null;
                if (type == "Detail")
                {
                    drs = allCost.CurrentTable.Select(String.Format("ParentCode = '{0}' or CostCode = '{0}' ", costCode), "SortID");
                    foreach (DataRow drC in drs)
                    {
                        string ccc = (string)drC["CostCode"];
                        if (ccc != costCode)
                        {
                            drC["ChildCount"] = 0;
                        }
                    }
                }
                else
                {
                    drs = allCost.CurrentTable.Select(String.Format("CostCode = '{0}' ", costCode));
                    foreach (DataRow drC in drs)
                    {
                        drC["ChildCount"] = 0;
                    }
                }

                int    iLength = drs.Length;
                string codes   = "";

                EntityData budget = DAL.EntityDAO.CBSDAO.GetStandard_BudgetByCode(budgetCode);
                int        iYear  = budget.GetInt("IYear");
                int        iMonth = budget.GetInt("IMonth");
                this.txtYear.Value  = iYear.ToString();
                this.txtMonth.Value = iMonth.ToString();
                int periodMonth = budget.GetInt("PeriodMonth");
                this.txtPeriodMonth.Value = periodMonth.ToString();
                int afterPeriod = budget.GetInt("AfterPeriod");
                int periodIndex = budget.GetInt("PeriodIndex");
                this.txtAfterPeriod.Value = afterPeriod.ToString();

                DateTime periodStartDate = DateTime.Parse(budget.GetDateTime("StartDate"));
                // 上一个周期最后一天
                string lastDateLastPeriod = periodStartDate.AddDays(-1).ToString("yyyy-MM-dd");

                this.lblBudgetName.Text = budget.GetString("BudgetName") + "  " + costName;

                // 处理每期预算的名称
                EntityData planName = DAL.EntityDAO.SystemManageDAO.GetPeriodDefineByProjectCode(projectCode);
                for (int i = 1; i <= afterPeriod; i++)
                {
                    HtmlTableCell cell = (HtmlTableCell)this.FindControl("tdYearTitle" + i.ToString());
                    if (cell != null)
                    {
                        int       index       = periodIndex + i;
                        DataRow[] drYearNames = planName.CurrentTable.Select(String.Format("PeriodIndex={0}", index));
                        if (drYearNames.Length > 0)
                        {
                            if (!drYearNames[0].IsNull("PeriodName"))
                            {
                                string yearName = (string)drYearNames[0]["PeriodName"];
                                if (yearName != "")
                                {
                                    cell.InnerHtml = yearName;
                                }
                            }
                        }
                    }
                }
                planName.Dispose();

                for (int i = 0; i < iLength; i++)
                {
                    string tempCode = (string)drs[i]["CostCode"];
                    codes += tempCode + ",";

                    budget.SetCurrentTable("BudgetCost");
                    DataRow[] drSelect = budget.CurrentTable.Select(String.Format("CostCode ='{0}' ", tempCode));
                    if (drSelect.Length > 0)
                    {
                        drs[i]["BudgetCost"]       = drSelect[0]["BudgetCost"];
                        drs[i]["BeforeHappenCost"] = drSelect[0]["BeforeHappenCost"];
                        drs[i]["CurrentPlanCost"]  = drSelect[0]["CurrentPlanCost"];
                        drs[i]["AfterPlanCost"]    = drSelect[0]["AfterPlanCost"];
                    }
                    else
                    {
                        drs[i]["BeforeHappenCost"] = BLL.CBSRule.GetAHMoney(tempCode, "", lastDateLastPeriod);
                    }

                    // 取月份
                    budget.SetCurrentTable("BudgetMonth");
                    drSelect = budget.CurrentTable.Select(String.Format("CostCode ='{0}' ", tempCode));
                    foreach (DataRow drMonth in drSelect)
                    {
                        int month = (int)drMonth["IMonth"];

                        // 本期开始时间
                        string tempStartDate = DateTime.Parse(String.Format("{0}-{1}-1", iYear, iMonth)).AddMonths(month - 1).ToString("yyyy-MM-dd");
                        // 本期结束时间
                        string tempEndDate = DateTime.Parse(String.Format("{0}-{1}-1", iYear, iMonth)).AddMonths(month).AddDays(-1).ToString("yyyy-MM-dd");
                        // 上期开始时间
                        string preTempStartDate = DateTime.Parse(tempStartDate).AddMonths(-1).ToString("yyyy-MM-dd");
                        // 上期结束时间
                        string preTempEndDate = DateTime.Parse(tempStartDate).AddDays(-1).ToString("yyyy-MM-dd");

                        decimal monthAH    = decimal.Zero;
                        decimal monthUse   = decimal.Zero;
                        decimal monthApply = decimal.Zero;

                        // 已发生
                        monthAH = BLL.CBSRule.GetAHMoney(tempCode, tempStartDate, tempEndDate, "", "");


                        // 合同占用:
                        // 合同占用 = 本时间段以内的合同款项总和-本时间段内的合同款项中已经发生的部分(该部分已经计算在已发生金额中了)
                        monthUse = BLL.CBSRule.GetContractAllocationCost(tempCode, "", "", tempStartDate, tempEndDate)
                                   - BLL.CBSRule.GetContractAllocationHappenedCost(tempCode, "", "", tempStartDate, tempEndDate);


                        // 待审批的合同
                        monthApply = BLL.CBSRule.GetApplyContractAllocationCost(tempCode, "", "", tempStartDate, tempEndDate);

                        drs[i]["MonthAH" + month.ToString()] = @"<a href=## class=trAH code='" + tempCode + @"' startDate='" + tempStartDate + @"' endDate='" + tempEndDate + @"'  NumberType='AH' onclick='ShowNumberDetail(this.code,this.NumberType,this.startDate,this.endDate);' >"
                                                               + BLL.StringRule.BuildMoneyWanFormatString(monthAH) + @"</a>";

                        drs[i]["MonthUse" + month.ToString()] = @"<a href=## class=trUse code='" + tempCode + @"' startDate='" + tempStartDate + @"' endDate='" + tempEndDate + @"'  NumberType='Use' onclick='ShowNumberDetail(this.code,this.NumberType,this.startDate,this.endDate);' >"
                                                                + BLL.StringRule.BuildMoneyWanFormatString(monthUse) + "</a>";

                        drs[i]["MonthApply" + month.ToString()] = @"<a href=## class=trApply code='" + tempCode + @"' startDate='" + tempStartDate + @"' endDate='" + tempEndDate + @"'  NumberType='Apply' onclick='ShowNumberDetail(this.code,this.NumberType,this.startDate,this.endDate);' >"
                                                                  + BLL.StringRule.BuildMoneyWanFormatString(monthApply) + "</a>";

                        drs[i]["CurrentPlanCost" + month.ToString()] = drMonth["Money"];
                    }


                    // 取年份
                    budget.SetCurrentTable("BudgetYear");
                    drSelect = budget.CurrentTable.Select(String.Format("CostCode ='{0}' and IYear <> 0 ", tempCode));
                    foreach (DataRow drYear in drSelect)
                    {
                        int    year          = (int)drYear["IYear"];
                        string tempStartDate = periodStartDate.AddMonths(periodMonth * (year + periodIndex)).ToString("yyyy-MM-dd");
                        string tempEndDate   = periodStartDate.AddMonths(periodMonth * (year + periodIndex + 1)).AddDays(-1).ToString("yyyy-MM-dd");

                        decimal yearAH    = decimal.Zero;
                        decimal yearUse   = decimal.Zero;
                        decimal yearApply = decimal.Zero;

                        // 已发生
                        yearAH = BLL.CBSRule.GetAHMoney(tempCode, tempStartDate, tempEndDate, "", "");

                        yearUse = BLL.CBSRule.GetContractAllocationCost(tempCode, "", "", tempStartDate, tempEndDate)
                                  - BLL.CBSRule.GetContractAllocationHappenedCost(tempCode, "", "", tempStartDate, tempEndDate);

                        yearApply = BLL.CBSRule.GetApplyContractAllocationCost(tempCode, "", "", tempStartDate, tempEndDate);

                        drs[i]["YearAH" + year.ToString()] = @"<a href=## class=trAH code='" + tempCode + @"' startDate='" + tempStartDate + @"' endDate='" + tempEndDate + @"'  NumberType='AH' onclick='ShowNumberDetail(this.code,this.NumberType,this.startDate,this.endDate);' >"
                                                             + BLL.StringRule.BuildMoneyWanFormatString(yearAH) + "</a>";

                        drs[i]["YearUse" + year.ToString()] = @"<a href=## class=trUse code='" + tempCode + @"' startDate='" + tempStartDate + @"' endDate='" + tempEndDate + @"'  NumberType='Use' onclick='ShowNumberDetail(this.code,this.NumberType,this.startDate,this.endDate);' >"
                                                              + BLL.StringRule.BuildMoneyWanFormatString(yearUse) + "</a>";

                        drs[i]["YearApply" + year.ToString()] = @"<a href=## class=trApply code='" + tempCode + @"' startDate='" + tempStartDate + @"' endDate='" + tempEndDate + @"'  NumberType='Apply' onclick='ShowNumberDetail(this.code,this.NumberType,this.startDate,this.endDate);' >"
                                                                + BLL.StringRule.BuildMoneyWanFormatString(yearApply) + "</a>";

                        DataRow[] yearSelect = budget.CurrentTable.Select(String.Format("CostCode ='{0}' and IYear={1}  ", tempCode, year));
                        if (yearSelect.Length > 0)
                        {
                            drs[i]["AfterPlanCost" + year.ToString()] = yearSelect[0]["Money"];
                        }
                        else
                        {
                            // 现在IYear是期数。 所以,上次预算的第 5 期,应该等于这次预算的第4期
                            DataRow[] lastYearSelect = lastBudget.CurrentTable.Select(String.Format("CostCode ='{0}' and IYear={1}  ", tempCode, (year + 1)));
                            if (lastYearSelect.Length > 0)
                            {
                                drs[i]["AfterPlanCost" + year.ToString()] = lastYearSelect[0]["Money"];
                            }
                        }
                    }
                }
                budget.Dispose();

                this.txtAllCode.Value = codes;
                if (type == "Detail")
                {
                    this.repeat1.DataSource = new DataView(tb, String.Format(" ParentCode = '{0}'  or CostCode = '{0}' ", costCode), "SortID", DataViewRowState.CurrentRows);
                }
                else
                {
                    this.repeat1.DataSource = new DataView(tb, String.Format(" CostCode = '{0}' ", costCode), "", DataViewRowState.CurrentRows);
                }

                this.repeat1.DataBind();

                allCost.Dispose();
            }
            catch (Exception ex)
            {
                ApplicationLog.WriteLog(this.ToString(), ex, "");
            }
        }
コード例 #8
0
ファイル: CostContrast.aspx.cs プロジェクト: riyuexing/rms
        // costCode == ""时, 是总成本
        private void LoadData()
        {
            string costCode    = Request["CostCode"] + "";
            string projectCode = Request["ProjectCode"] + "";

            try
            {
                if (costCode == "")
                {
                    this.lblCostName.Text = "总成本";
                }
                else
                {
                    this.lblCostName.Text = BLL.CBSRule.GetCostName(costCode);
                }


                DateTime tStart   = DateTime.Today;                             //整个图表的起始时间
                DateTime tEnd     = DateTime.Today;                             //整个图标的结束时间, 用来确定图表的时间轴
                decimal  maxValue = decimal.Zero;                               //整个图表中的最高数值, 用来确定图表的高度

                EntityData estimateCheck = RmsPM.DAL.EntityDAO.CBSDAO.GetCostEstimateCheckByCode(projectCode);

                if (!estimateCheck.HasRecord())
                {
                    Response.Write(Rms.Web.JavaScript.ScriptStart);
                    Response.Write(Rms.Web.JavaScript.Alert(false, "还没有做好估算,请先做好估算 !"));
                    Response.Write(Rms.Web.JavaScript.WinClose(false));
                    Response.Write(Rms.Web.JavaScript.ScriptEnd);
                    return;
                }

                tStart = DateTime.Parse(estimateCheck.GetDateTimeOnlyDate("CheckDate"));
                estimateCheck.Dispose();
                this.lblDate.Text = "时间: 从 " + tStart.ToString("yyyy-MM-dd") + " 到 " + tEnd.ToString("yyyy-MM-dd");

                // 估算费用
                decimal ce = BLL.CBSRule.SumTotalEstimateCost(costCode, projectCode);

                TimeSpan ts     = tEnd - tStart;
                int      Length = Math.Abs(ts.Days) + 1;

                string [] CEs = new string[Length];                                     //估算成本数组
                string [] Bs  = new string[Length];                                     //预算成本数组
                string [] Ds  = new string[Length];                                     //动态成本数组

                //设置初值
                for (int i = 0; i < Length; i++)
                {
                    CEs[i] = ce.ToString();
                    Bs[i]  = ce.ToString();
                    Ds[i]  = ce.ToString();
                }

                string     sql    = "";
                int        iCount = 0;
                TimeSpan   tSpan;
                int        iS    = 0;
                decimal    dTemp = decimal.Zero;
                DateTime   checkDate;
                QueryAgent qa = new QueryAgent();
                // 费用项在BudgetCost中找
                if (costCode != "")
                {
                    // 预算 , 以及必然存在的动态
                    V_BudgetCostStrategyBuilder sb = new V_BudgetCostStrategyBuilder();
                    sb.AddStrategy(new Strategy(V_BudgetCostStrategyName.ProjectCode, projectCode));
                    sb.AddStrategy(new Strategy(V_BudgetCostStrategyName.IsDynamic, "0"));
                    sb.AddStrategy(new Strategy(V_BudgetCostStrategyName.Flag, "0,2"));
                    sb.AddStrategy(new Strategy(V_BudgetCostStrategyName.CostCode, costCode));
                    sb.AddOrder("CheckDate", true);
                    sql = sb.BuildMainQueryString();
                    EntityData yuBudgetCost = qa.FillEntityData("V_BudgetCost", sql);
                    iCount = yuBudgetCost.CurrentTable.Rows.Count;
                    for (int i = 0; i < iCount; i++)
                    {
                        yuBudgetCost.SetCurrentRow(i);
                        dTemp = yuBudgetCost.GetDecimal("BudgetCost");
                        if (dTemp > maxValue)
                        {
                            maxValue = dTemp;
                        }
                        checkDate = DateTime.Parse(yuBudgetCost.GetDateTimeOnlyDate("CheckDate"));
                        tSpan     = checkDate - tStart;
                        iS        = tSpan.Days;
                        for (int j = iS; j < Length; j++)
                        {
                            Bs[j] = dTemp.ToString();
                            Ds[j] = dTemp.ToString();
                        }
                    }

                    // 动态修改申请
                    sb = new V_BudgetCostStrategyBuilder();
                    sb.AddStrategy(new Strategy(V_BudgetCostStrategyName.ProjectCode, projectCode));
                    sb.AddStrategy(new Strategy(V_BudgetCostStrategyName.IsDynamic, "2"));
                    sb.AddStrategy(new Strategy(V_BudgetCostStrategyName.Flag, "2"));
                    sb.AddStrategy(new Strategy(V_BudgetCostStrategyName.CostCode, costCode));
                    sb.AddOrder("CheckDate", true);

                    sql          = sb.BuildMainQueryString();
                    yuBudgetCost = qa.FillEntityData("V_BudgetCost", sql);
                    iCount       = yuBudgetCost.CurrentTable.Rows.Count;
                    for (int i = 0; i < iCount; i++)
                    {
                        yuBudgetCost.SetCurrentRow(i);
                        dTemp = yuBudgetCost.GetDecimal("BudgetCost");
                        if (dTemp > maxValue)
                        {
                            maxValue = dTemp;
                        }
                        checkDate = DateTime.Parse(yuBudgetCost.GetDateTimeOnlyDate("CheckDate"));
                        tSpan     = checkDate - tStart;
                        iS        = tSpan.Days;
                        for (int j = iS; j < Length; j++)
                        {
                            Ds[j] = dTemp.ToString();
                        }
                    }
                    yuBudgetCost.Dispose();
                }
                // 总费用
                else
                {
                    // 预算 , 以及必然存在的动态
                    BudgetStrategyBuilder sb = new BudgetStrategyBuilder();
                    sb.AddStrategy(new Strategy(BudgetStrategyName.ProjectCode, projectCode));
                    sb.AddStrategy(new Strategy(BudgetStrategyName.IsDynamic, "0"));
                    sb.AddStrategy(new Strategy(BudgetStrategyName.Flag, "0,2"));
                    sb.AddOrder("CheckDate", true);
                    sql = sb.BuildMainQueryString();
                    EntityData budget = qa.FillEntityData("Budget", sql);
                    iCount = budget.CurrentTable.Rows.Count;
                    for (int i = 0; i < iCount; i++)
                    {
                        budget.SetCurrentRow(i);
                        dTemp = budget.GetDecimal("TotalMoney");
                        if (dTemp > maxValue)
                        {
                            maxValue = dTemp;
                        }
                        checkDate = DateTime.Parse(budget.GetDateTimeOnlyDate("CheckDate"));
                        tSpan     = checkDate - tStart;
                        iS        = tSpan.Days;
                        for (int j = iS; j < Length; j++)
                        {
                            Bs[j] = dTemp.ToString();
                            Ds[j] = dTemp.ToString();
                        }
                    }

                    // 动态修改申请
                    sb = new BudgetStrategyBuilder();
                    sb.AddStrategy(new Strategy(BudgetStrategyName.ProjectCode, projectCode));
                    sb.AddStrategy(new Strategy(BudgetStrategyName.IsDynamic, "2"));
                    sb.AddStrategy(new Strategy(BudgetStrategyName.Flag, "2"));
                    sb.AddOrder("CheckDate", true);

                    sql    = sb.BuildMainQueryString();
                    budget = qa.FillEntityData("Budget", sql);
                    iCount = budget.CurrentTable.Rows.Count;
                    for (int i = 0; i < iCount; i++)
                    {
                        budget.SetCurrentRow(i);
                        dTemp = budget.GetDecimal("TotalMoney");
                        if (dTemp > maxValue)
                        {
                            maxValue = dTemp;
                        }
                        checkDate = DateTime.Parse(budget.GetDateTimeOnlyDate("CheckDate"));
                        tSpan     = checkDate - tStart;
                        iS        = tSpan.Days;
                        for (int j = iS; j < Length; j++)
                        {
                            Ds[j] = dTemp.ToString();
                        }
                    }
                    budget.Dispose();
                }

                qa.Dispose();

//
//				//生成字符串
                string cString = "";
                string bString = "";
                string dString = "";
                for (int i = 0; i < Length; i++)
                {
                    if (i != 0)
                    {
                        cString += ",";
                        bString += ",";
                        dString += ",";
                    }

                    cString += CEs[i];
                    bString += Bs[i];
                    dString += Ds[i];
                }

                ShowChar(cString, bString, dString, maxValue, this.tdGraphy);
            }
            catch (Exception ex)
            {
                ApplicationLog.WriteLog(this.ToString(), ex, "加载成本数据错误。");
            }
        }