コード例 #1
0
        private void FillDropdown()
        {
            YearDesc.DataSource = MABL.BL.AppBL.DD_Get_YearList(DateTime.Now.Year);
            YearDesc.DataBind();
            YearDesc.SelectedIndex = 1;

            MonthDesc.DataSource = MaheshV17.Utility.M_DropDownList.Fill_Drop_Down_List("AAA_M_RT_Month", "MonthID", "Month_ShortName", "", "0", "Month", 0, "N", "");
            MonthDesc.DataBind();
            MonthDesc.SelectedIndex = DateTime.Now.Month;
        }
コード例 #2
0
 // 使用月份描述物件 - Added by Evan 20160826
 protected void initMonthDesc()
 {
     if (monthDescList != null)
     {
         return;
     }
     monthDescList = new List <MonthDesc>();
     MonthDesc month0  = new MonthDesc(); month0.Numble = "01"; month0.NameCht = "一月"; monthDescList.Add(month0);
     MonthDesc month1  = new MonthDesc(); month1.Numble = "02"; month1.NameCht = "二月"; monthDescList.Add(month1);
     MonthDesc month2  = new MonthDesc(); month2.Numble = "03"; month2.NameCht = "三月"; monthDescList.Add(month2);
     MonthDesc month3  = new MonthDesc(); month3.Numble = "04"; month3.NameCht = "四月"; monthDescList.Add(month3);
     MonthDesc month4  = new MonthDesc(); month4.Numble = "05"; month4.NameCht = "五月"; monthDescList.Add(month4);
     MonthDesc month5  = new MonthDesc(); month5.Numble = "06"; month5.NameCht = "六月"; monthDescList.Add(month5);
     MonthDesc month6  = new MonthDesc(); month6.Numble = "07"; month6.NameCht = "七月"; monthDescList.Add(month6);
     MonthDesc month7  = new MonthDesc(); month7.Numble = "08"; month7.NameCht = "八月"; monthDescList.Add(month7);
     MonthDesc month8  = new MonthDesc(); month8.Numble = "09"; month8.NameCht = "九月"; monthDescList.Add(month8);
     MonthDesc month9  = new MonthDesc(); month9.Numble = "10"; month9.NameCht = "十月"; monthDescList.Add(month9);
     MonthDesc month10 = new MonthDesc(); month10.Numble = "11"; month10.NameCht = "十一月"; monthDescList.Add(month10);
     MonthDesc month11 = new MonthDesc(); month11.Numble = "12"; month11.NameCht = "十二月"; monthDescList.Add(month11);
 }
コード例 #3
0
ファイル: ValuationController.cs プロジェクト: 10101818/atoi2
        /// <summary>
        /// 获取VaR数据源
        /// </summary>
        /// <param name="showType">展示类型:导入期、稳定期</param>
        /// <param name="assetsAmountRate">资产金额比例</param>
        /// <param name="riskRate">风险控制度</param>
        /// <param name="forecastQuantity">预测年数量</param>
        /// <returns></returns>
        public JsonResult GetVaRData(VaRType showType, double assetsAmountRate, int forecastQuantity = 0, double riskRate = 0d)
        {
            if (CheckSession() == false)
            {
                return(Json(ResultModelBase.CreateTimeoutModel(), JsonRequestBehavior.AllowGet));
            }
            if (CheckSessionID() == false)
            {
                return(Json(ResultModelBase.CreateLogoutModel(), JsonRequestBehavior.AllowGet));
            }

            ResultModel <Dictionary <string, object> > result = new ResultModel <Dictionary <string, object> >();

            try
            {
                int userID  = GetLoginUser().ID;
                var control = this.valuationDao.GetControl(userID);
                if (forecastQuantity == 0)
                {
                    forecastQuantity = control.Years;
                }
                if (riskRate == 0)
                {
                    riskRate = control.RiskRatio;
                }
                var resultData = this.valuationManager.GetValResultData(userID);


                double assetsAmount = this.valuationDao.QueryEquipmentList(userID, -1, -1, "", "", "", 0, 0, "", "", "f2.ID", true).Sum(e => e.Equipment.PurchaseAmount), deviationAvg = 0, stdDeviation = 0, length = ValControlInfo.ForecastYears.ForecastYear * 12;
                double vaR = assetsAmount * assetsAmountRate * 0.01;


                List <double> deviations = new List <double>();
                List <Dictionary <string, object> > cost = new List <Dictionary <string, object> >();
                if (showType == VaRType.StablePeriod)
                {
                    Dictionary <string, object> costDetail;
                    Dictionary <string, object> forecastCost;
                    Dictionary <string, object> actualCost;
                    for (int i = 0; i < length; i++)
                    {
                        bool flag = i < 12;
                        costDetail   = new Dictionary <string, object>();
                        forecastCost = new Dictionary <string, object>();
                        actualCost   = new Dictionary <string, object>();

                        DateTime date       = control.ContractStartDate.AddMonths(i);
                        DateTime actualDate = control.ContractStartDate.AddYears(-ValControlInfo.ActualYears.ActualYear).AddMonths(i);

                        var    amountForecasts = (List <object>)resultData["AmountForecast"];
                        int    index           = i / 12;
                        var    amountForecast  = (Dictionary <string, object>)amountForecasts[index];
                        var    forecastValues  = (List <double>)amountForecast["data"];
                        double forecastValue   = SQLUtil.ConvertDouble(forecastValues[i % 12]);

                        double actualValue = 0;
                        if (flag)
                        {
                            var amountActuals = (List <object>)resultData["AmountActual"];
                            int indexActual   = i / 12;
                            var amountActual  = (Dictionary <string, object>)amountActuals[indexActual];
                            var actualValues  = (List <double>)amountActual["data"];
                            actualValue = SQLUtil.ConvertDouble(actualValues[i % 12]);
                        }

                        forecastCost.Add("Year", date.Year);
                        forecastCost.Add("Month", MonthDesc.GetMonthDesc(date.Month));
                        forecastCost.Add("Value", forecastValue);

                        actualCost.Add("Year", flag ? actualDate.Year.ToString() : "");
                        actualCost.Add("Month", flag ? MonthDesc.GetMonthDesc(actualDate.Month) : "");
                        actualCost.Add("Value", flag ? actualValue.ToString() : "-");
                        costDetail.Add("ForecastCost", forecastCost);
                        costDetail.Add("ActualCost", actualCost);
                        costDetail.Add("Deviation", flag ? (actualValue - forecastValue).ToString() : "-");
                        if (flag)
                        {
                            deviations.Add(actualValue - forecastValue);
                        }
                        cost.Add(costDetail);
                    }

                    deviationAvg = (deviations.Sum()) / deviations.Count;
                    stdDeviation = Statistics.StandardDeviation(deviations);
                    double NORMINV = Normal.InvCDF(0, 1, riskRate * 0.01);
                    double SQRT    = Math.Sqrt(forecastQuantity * 12);
                    vaR = NORMINV * SQRT * stdDeviation + deviationAvg * forecastQuantity * 12;
                    if (double.IsNaN(vaR) || vaR < 0)
                    {
                        vaR = 0;
                    }
                }
                Dictionary <string, object> data = new Dictionary <string, object>();
                data.Add("AssetsAmount", assetsAmount);
                data.Add("Cost", cost);
                data.Add("DeviationAvg", deviationAvg);
                data.Add("StdDeviation", stdDeviation);
                data.Add("VaR", vaR);
                result.Data = data;
            }
            catch (Exception ex)
            {
                NLog.LogManager.GetCurrentClassLogger().Error(ex, ex.Message);
                result.SetFailed(ResultCodes.SystemError, ControlManager.GetSettingInfo().ErrorMessage);
            }
            return(JsonResult(result));
        }