Esempio n. 1
0
        public ActionResult GetRatingHistory(string id)
        {
            Thread.CurrentThread.CurrentUICulture = CultureInfo.CreateSpecificCulture("zh-cn");
            var code = BondInfoRepository.GetBondCodeById(id);

            if (string.IsNullOrEmpty(code))
            {
                return(Json(new
                {
                    IssuerRatingList = new List <RATE_ORG_CRED_HIS>(),
                    BondRatingList = new List <BondRatingHist>(),
                }, JsonRequestBehavior.AllowGet));
            }
            var comCode             = ZcxRepository.GetComCodeFromBondCode(code).ToString();
            var issuerRatingHistory = ZcxRepository.GetIssuerRating(comCode).Select(i => new
            {
                RATE_DATE = i.RATE_WRIT_DATE.ToString("yyyy-MM-dd"),
                RATE_ORG  = i.Org,
                RATE      = i.ISS_CRED_LEVEL
            });
            var bondRatingHistory = BondReportRepository.GetBondRatingByCode(code).Select(b => new
            {
                RATE_DATE = b.RATE_DATE.ToString("yyyy-MM-dd"),
                RATE_ORG  = b.RATE_ORG,
                RATE      = b.RATE
            });

            return(Json(new
            {
                IssuerRatingList = issuerRatingHistory,
                BondRatingList = bondRatingHistory
            }, JsonRequestBehavior.AllowGet));
        }
Esempio n. 2
0
        private JsonTable GetBottomTable(BondDetailParams param, int id)
        {
            var userColumnService = (UserColumnService)DependencyResolver.Current.GetService(typeof(UserColumnService));
            var columns           = userColumnService.GetUserColumns(UserSettingHelper.GetUserId(Request), id);
            int total;
            var bottomTable             = BondReportRepository.GetBondDetailByTypeNew(param, out total);
            var reportcolumndefinitions = columns as REPORTCOLUMNDEFINITION[] ?? columns.ToArray();
            var jsonTable = BuidJsonTable(bottomTable, reportcolumndefinitions, total, param.StartPage, param.PageSize);
            List <Dictionary <string, string> > rowData = jsonTable.RowData;

            foreach (Dictionary <string, string> currentRow in rowData)
            {
                foreach (DataRow row in bottomTable.Rows)
                {
                    if (row["AssetId"].ToString() == currentRow["AssetId"])
                    {
                        if (!reportcolumndefinitions.Any(x => x.COLUMN_NAME == "IssuerOrgId"))
                        {
                            currentRow.Add("IssuerOrgId", row["IssuerOrgId"].ToString());
                        }
                        break;
                    }
                }
            }
            return(jsonTable);
        }
Esempio n. 3
0
        public ActionResult ExportExcelForIssuanceMaturesDetail(DateTime start, DateTime end, string type, string typeValue, int useSubType, string subType, string subTypeValue, string unit, string term, string reportName, int id, string order, string itemList, int startPage, int pageSize)
        {
            var userColumnService = (UserColumnService)DependencyResolver.Current.GetService(typeof(UserColumnService));
            var columns           = userColumnService.GetUserColumns(UserSettingHelper.GetUserId(Request), id);
            var param             = new BondDetailParams
            {
                Type         = type,
                TypeValue    = typeValue,
                UseSubType   = useSubType == 1,
                SubType      = subType,
                SubTypeValue = subTypeValue,
                StartDate    = start,
                EndDate      = end,
                Term         = term,
                OrderBy      = order,
                ItemList     = itemList,
                StartPage    = startPage,
                PageSize     = pageSize
            };
            int total;
            var bottomTable = BondReportRepository.GetBondDetailByTypeNew(param, out total);

            ReportParameter reportParam = new ReportParameter
            {
                StartDate = start,
                EndDate   = end,
                Unit      = string.IsNullOrEmpty(unit) ? "100M" : unit,
            };

            var reportcolumndefinitions = columns as REPORTCOLUMNDEFINITION[] ?? columns.ToArray();

            return(new ExcelResult(bottomTable.AsEnumerable().AsQueryable(), reportcolumndefinitions.Select(x => x.DisplayName).ToArray(), reportcolumndefinitions.Select(x => x.COLUMN_NAME).ToArray(), reportName, reportName, false, null, reportParam, false, specificDateFormat: "yyyy-MM-dd"));
        }
Esempio n. 4
0
        public ActionResult ExportExcelForBondIm(DateTime start, DateTime end, string category, string itemList, int useSubType, string subType, string unit, string reportName)
        {
            var table  = BondReportRepository.GetBondDepositoryBalanceNew(category, start, end, unit, itemList, useSubType, subType);
            var jtable = BuildBondIssuMaturesTopTable(table);
            var jP     = new JsonExcelParameter {
                Table = jtable, TableName = reportName, Source = Resources.Global.Source
            };

            return(new JsonTableExcelResult(jP));
        }
Esempio n. 5
0
        public JsonResult GetBondIssuMatures(DateTime start, DateTime end, string category, string itemList, int useSubType, string subType, string unit, int id, string rate, string chartType, string columnType)
        {
            var topTable = BondReportRepository.GetBondDepositoryBalanceNew(category, start, end, unit, itemList, useSubType, subType);
            var chart    = GetIssuMaturesTopChart(rate, chartType, columnType, start, end, category, itemList, unit);
            var SumData  =
                new
            {
                TopTable = BuildBondIssuMaturesTopTable(topTable),
                Chart    = chart
            };

            return(Json(SumData, JsonRequestBehavior.AllowGet));
        }
Esempio n. 6
0
        public BondRatingHistViewModel(string bondCode, BondReportRepository repository, ResearchReportRepository CMARepository)
        {
            RatingHistData = repository.GetBondRatingByCode(bondCode);
            var idlist = RatingHistData.Select(r => r.RATE_ID.ToString()).ToList();

            if (idlist != null && idlist.Count() != 0)
            {
                var ids       = idlist.Aggregate((a, b) => a + "," + b).ToString();
                var dataTable = CMARepository.CheckCommonFileExsit(ids, "RATE_REP_DATA", "RATE_ID");

                if (dataTable != null)
                {
                    foreach (DataRow row in dataTable.Rows)
                    {
                        RatingHistData.Where(r => r.RATE_ID == Convert.ToInt64(row["RATE_ID"])).ToList().ForEach(r => r.ContainFile = true);
                    }
                }
            }

            BondCode = bondCode;
        }
Esempio n. 7
0
        private JsonTable BuildBondIssuMaturesChartDataForExcel(string rate, string columnType, DateTime start, DateTime end, string category, string itemList, string unit, int isUseSubCategory = 0, string subCategory = "Bond_Class", string subCategoryValue = "", bool isTotal = false)
        {
            var jTable      = new JsonTable();
            var typeName    = "TypeCn";
            var subTypeName = "SubTypeCn";

            if (CultureHelper.IsEnglishCulture())
            {
                typeName    = "TypeEn";
                subTypeName = "SubTypeEn";
            }

            var yearsDic = new Dictionary <string, DataTable>();
            var dates    = PopulateRateTimes(start, end, rate);

            for (var i = 0; i < dates.Count; i += 2)
            {
                var currentStart = dates[i];
                var currentEnd   = dates[i + 1];
                var summaryData  = BondReportRepository.GetBondDepositoryBalanceChart(columnType, currentStart, currentEnd, category, itemList, unit, isUseSubCategory, subCategory, subCategoryValue);
                yearsDic.Add(rate == "y" ? currentEnd.ToString("yyyy") : currentEnd.ToString("yyyy-M"), summaryData);
            }
            var    rows     = yearsDic.FirstOrDefault().Value.Rows;
            var    typeList = new Dictionary <string, string>();
            string header;

            foreach (DataRow row in rows)
            {
                header = (string.IsNullOrEmpty(subCategoryValue) || subCategoryValue == "undefined")
                    ? row[typeName].ToString()
                    : String.Format("{0}({1})", row[typeName], row[subTypeName]);
                typeList.Add(row["Type"].ToString(), header);
            }

            jTable.ColumTemplate.Add(new JsonColumn {
                Name = Resources.Global.Date, ColumnName = "Date"
            });
            if (!isTotal)
            {
                foreach (var t in typeList)
                {
                    jTable.ColumTemplate.Add(new JsonColumn {
                        Name = t.Value, ColumnName = t.Key + "_" + t.Value
                    });
                }
            }
            else
            {
                jTable.ColumTemplate.Add(new JsonColumn {
                    Name = Resources.Global.Total, ColumnName = "Total"
                });
            }


            foreach (var f in yearsDic)
            {
                var currentRow = new Dictionary <string, string>();
                currentRow.Add("Date", f.Key);
                if (isTotal)
                {
                    double total = 0;
                    foreach (DataRow v in f.Value.Rows)
                    {
                        total += Convert.ToDouble(v[columnType]);
                    }
                    currentRow.Add("Total", total.ToString(CultureInfo.InvariantCulture));
                }
                else
                {
                    foreach (DataRow v in f.Value.Rows)
                    {
                        var name = (string.IsNullOrEmpty(subCategoryValue) || subCategoryValue == "undefined")
                            ? v[typeName]
                            : String.Format("{0}({1})", v[typeName], v[subTypeName]);
                        currentRow.Add(v["Type"] + "_" + name, v[columnType].ToString());
                    }
                }

                jTable.RowData.Add(currentRow);
            }
            return(jTable);
        }
Esempio n. 8
0
        private ChartData GetIssuMaturesTopChart(string rate, string chartType, string columnType, DateTime start, DateTime end, string category, string itemList, string unit, int isUseSubCategory = 0, string subCategory = "Bond_Class", string subCategoryValue = "", bool isTotal = false)
        {
            if (start > end)
            {
                return(new ChartData());
            }
            var chartData = new ChartData
            {
                ChartType = chartType,
                YText     = Resources.Global.Unit + "(" + HtmlUtil.GetUnitOptionByKey(unit) + ")"
            };

            switch (columnType)
            {
            case "InitialBalance":
                chartData.Decimal = 2;
                break;

            case "Issues":
                chartData.YText   = string.Empty;
                chartData.Decimal = 0;
                break;

            case "IssuesPercent":
                chartData.YText   = string.Empty;
                chartData.Decimal = 2;
                break;

            case "IssuesAmount":
                chartData.Decimal = 2;
                break;

            case "IssuesAmountPercent":
                chartData.YText   = string.Empty;
                chartData.Decimal = 2;
                break;

            case "MaturityBonds":
                chartData.YText   = string.Empty;
                chartData.Decimal = 0;
                break;

            case "MaturityAmount":
                chartData.Decimal = 2;
                break;

            case "EndBalance":
                chartData.Decimal = 2;
                break;

            case "EndIssuesPercent":
                chartData.YText   = string.Empty;
                chartData.Decimal = 2;
                break;
            }
            var typeName    = "TypeCn";
            var subTypeName = "SubTypeCn";

            if (CultureHelper.IsEnglishCulture())
            {
                typeName    = "TypeEn";
                subTypeName = "SubTypeEn";
            }
            if (chartType == "bar" || chartType == "line")
            {
                var yearsDic = new Dictionary <string, DataTable>();
                var dates    = PopulateRateTimes(start, end, rate);
                for (var i = 0; i < dates.Count; i += 2)
                {
                    var currentStart = dates[i];
                    var currentEnd   = dates[i + 1];
                    var summaryData  = BondReportRepository.GetBondDepositoryBalanceChart(columnType, currentStart, currentEnd, category, itemList, unit, isUseSubCategory, subCategory, subCategoryValue);
                    yearsDic.Add(rate == "y" ? currentEnd.ToString("yyyy") : currentEnd.ToString("yyyy-M"), summaryData);
                }
                chartData.ColumnCategories = yearsDic.Keys.Select(x => x.ToString()).ToArray();
                var groupDic = new Dictionary <string, List <double> >();
                if (isTotal)
                {
                    groupDic.Add(Resources.Global.Total, new List <double>());
                    foreach (var keyValue in yearsDic)
                    {
                        double total = 0;
                        for (var j = 0; j < keyValue.Value.Rows.Count; j++)
                        {
                            total += Convert.ToDouble(keyValue.Value.Rows[j][columnType]);
                        }
                        groupDic[Resources.Global.Total].Add(total);
                    }
                }
                else
                {
                    foreach (var keyValue in yearsDic)
                    {
                        for (var j = 0; j < keyValue.Value.Rows.Count; j++)
                        {
                            var name = keyValue.Value.Rows[j][typeName].ToString();
                            if (string.IsNullOrEmpty(subCategoryValue))
                            {
                                if (!groupDic.ContainsKey(name))
                                {
                                    groupDic.Add(name, new List <double>());
                                }
                            }
                            else
                            {
                                name = string.Format("{0}({1})", keyValue.Value.Rows[j][typeName], keyValue.Value.Rows[j][subTypeName]);
                                if (!groupDic.ContainsKey(name))
                                {
                                    groupDic.Add(name, new List <double>());
                                }
                            }
                            groupDic[name].Add(Convert.ToDouble(keyValue.Value.Rows[j][columnType]));
                        }
                    }
                }
                var seriesDataList = new List <SeriesData>();
                foreach (var keyValue in groupDic)
                {
                    var sData = new SeriesData {
                        name = keyValue.Key
                    };
                    if (keyValue.Value != null)
                    {
                        sData.data = keyValue.Value.ToArray();
                        seriesDataList.Add(sData);
                    }
                }
                chartData.ColumnSeriesData = seriesDataList.ToArray();
            }
            else
            {
                var groupData = BondReportRepository.GetBondDepositoryBalanceChart(columnType, start, end, category, itemList, unit, isUseSubCategory, subCategory, subCategoryValue);
                var pieData   = new List <PieSectionData>();
                for (int j = 0; j < groupData.Rows.Count; j++)
                {
                    var currentSection = new PieSectionData {
                        name = groupData.Rows[j][typeName].ToString(), y = Convert.ToDouble(groupData.Rows[j][columnType])
                    };
                    pieData.Add(currentSection);
                }
                chartData.PieSeriesData = pieData.ToArray();
            }


            return(chartData);
        }