public BarChartDto GetCanhBaoBarChart(int nam, long thang) { List <string> labels = new List <string>(); List <double> values = new List <double>(); var lsCanhBao = _repository.GetAll(); BarChartDto kq = new BarChartDto(); kq.LABELS = labels; kq.VALUES = values; return(kq); }
public JsonResult BarChart() { List <BarChartDto> list = new List <BarChartDto>(); var date = DateTime.Now; var startDate = date.AddMonths(-11); for (int i = 0; i < 12; i++) { BarChartDto dto = new BarChartDto(); string month = ((Months)startDate.Month).ToString(); var saleDetails = rpsaledetails .GetListWithQuery(x => x.AddDate.Month == startDate.Month && x.AddDate.Year == startDate.Year).Select(x => new SaleDetailsVM { UnitSalePrice = x.Price, KdvPrice = x.KdvPrice, ID = x.ID }).ToList(); saleDetails.ForEach(d => d.InfoList = rpsaledetailinfo.GetListWithQuery(inf => inf.SaleDetailID == d.ID).Select(inf => new SaleDetailsInfoDto { Quantity = inf.Quantity, UnitBuyPrice = rppaymentinfo.Find(inf.PaymentInfoID).UnitPrice }).ToList()); saleDetails.ForEach(d => d.UnitBuyPrice = d.InfoList.Sum(x => x.UnitBuyPrice * x.Quantity)); var serviceSales = rpservicesale.GetListWithQuery(s => s.AddDate.Month == startDate.Month && s.AddDate.Year == startDate.Year).Select(s => new ServiceSaleVM { Price = s.Price }); var technicalCosts = rptechservicecost.GetListWithQuery(s => s.AddDate.Month == startDate.Month && s.AddDate.Year == startDate.Year); decimal serviceSalePrice = serviceSales.Sum(x => x.Price); decimal technicalCost = technicalCosts.Sum(x => x.Cost); dto.month = month; dto.ciro = saleDetails.Sum(x => x.UnitSalePrice + x.KdvPrice); decimal detailPrice = saleDetails.Sum(x => x.UnitSalePrice - x.UnitBuyPrice); dto.kar = (detailPrice + serviceSalePrice) - technicalCost; dto.ciro += serviceSalePrice; list.Add(dto); startDate = startDate.AddMonths(1); } return(Json(list, JsonRequestBehavior.AllowGet)); }
public List <BarChartDto> GetAssVendorAnalysisChart(QueryAssCusandVenAnalysisInputDto inputDto) { var types = (from type1 in SMOWMSDbContext.AssetsTypes where type1.TLEVEL == 1 select new { Level1 = type1.TYPEID, Level2 = "", Level3 = "" }).Union(from type1 in SMOWMSDbContext.AssetsTypes where type1.TLEVEL == 2 select new { Level1 = type1.PARENTTYPEID, Level2 = type1.TYPEID, Level3 = "" }).Union(from type1 in SMOWMSDbContext.AssetsTypes join type2 in SMOWMSDbContext.AssetsTypes on type1.PARENTTYPEID equals type2.TYPEID where type1.TLEVEL == 3 select new { Level1 = type2.PARENTTYPEID, Level2 = type1.PARENTTYPEID, Level3 = type1.TYPEID }); var vendorlist = _vendorReposity.GetAll(); if (inputDto.ID != null) { vendorlist = vendorlist.Where(a => a.VID == inputDto.ID); } var poRowResult = from assTemplate in SMOWMSDbContext.AssTemplates from type in types from type2 in SMOWMSDbContext.AssetsTypes join porow in SMOWMSDbContext.AssPurchaseOrderRows on assTemplate.TEMPLATEID equals porow.TEMPLATEID from vendor in vendorlist from po in SMOWMSDbContext.AssPurchaseOrders where ((assTemplate.TYPEID == type.Level1 && type.Level2 == "") || (assTemplate.TYPEID == type.Level2 && type.Level3 == "") || assTemplate.TYPEID == type.Level3) && porow.CREATEDATE >= inputDto.StarTime && porow.CREATEDATE <= inputDto.EndTime && po.STATUS > 0 && po.VID == vendor.VID && po.POID == porow.POID && type.Level1 == type2.TYPEID select new BarChartDto() { XValue = type2.NAME, Series = vendor.NAME, YValue = porow.QUANTPURCHASED }; var poRowfresult = from assQuantDto in poRowResult group assQuantDto by new { assQuantDto.XValue, assQuantDto.Series } into quant select new BarChartDto() { XValue = quant.Key.XValue, Series = quant.Key.Series, YValue = quant.Sum(a => a.YValue) }; var t3 = poRowfresult.ToList(); var t4 = new List <BarChartDto>(); if (inputDto.ID == null) { //如果是全部,则需要补全数量为0的项 //得到所有需要显示的一级资产类型 var allLevel1 = from assTemplate in SMOWMSDbContext.AssTemplates from type in types from type2 in SMOWMSDbContext.AssetsTypes join porow in SMOWMSDbContext.AssPurchaseOrderRows on assTemplate.TEMPLATEID equals porow.TEMPLATEID from vendor in vendorlist from po in SMOWMSDbContext.AssPurchaseOrders where ((assTemplate.TYPEID == type.Level1 && type.Level2 == "") || (assTemplate.TYPEID == type.Level2 && type.Level3 == "") || assTemplate.TYPEID == type.Level3) && porow.CREATEDATE >= inputDto.StarTime && porow.CREATEDATE <= inputDto.EndTime && porow.STATUS > 0 && po.VID == vendor.VID && po.POID == porow.POID && type.Level1 == type2.TYPEID select type2.NAME; List <string> typeList = allLevel1.ToList(); //得到符合条件的供应商列表 var allVendor = from assTemplate in SMOWMSDbContext.AssTemplates from type in types from type2 in SMOWMSDbContext.AssetsTypes join porow in SMOWMSDbContext.AssPurchaseOrderRows on assTemplate.TEMPLATEID equals porow.TEMPLATEID from vendor in vendorlist from po in SMOWMSDbContext.AssPurchaseOrders where ((assTemplate.TYPEID == type.Level1 && type.Level2 == "") || (assTemplate.TYPEID == type.Level2 && type.Level3 == "") || assTemplate.TYPEID == type.Level3) && porow.CREATEDATE >= inputDto.StarTime && porow.CREATEDATE <= inputDto.EndTime && porow.STATUS > 0 && po.VID == vendor.VID && po.POID == porow.POID && type.Level1 == type2.TYPEID select vendor.NAME; List <string> vendorLists = allVendor.ToList(); foreach (var vendor in vendorLists) { foreach (var tp in typeList) { var row = t3.Find(a => a.XValue == tp && a.Series == vendor); if (row == null) { BarChartDto dto = new BarChartDto(); dto.XValue = tp; dto.Series = vendor; dto.YValue = 0; t4.Add(dto); } else { t4.Add(row); } } } } else { t4 = t3; } return(t4); }