public JsonResult jsonPieData(string DepartmentId, string SectionId, DateTime? FromDateSearch, DateTime? ToDateSearch, string MatNameId) { //add summary data List<OutboundedOntimePieChartDailyViewModels> viewSummaryModel = new List<OutboundedOntimePieChartDailyViewModels>(); var q = objBs.ontimeOutboundBs.GetAll().Where(x => !String.IsNullOrEmpty(x.DepartmentName)); //filter department if (!String.IsNullOrEmpty(DepartmentId)) q = q.Where(x => x.DepartmentId == DepartmentId); //filter section if (!String.IsNullOrEmpty(SectionId)) q = q.Where(x => x.SectionId == SectionId); //filter matname if (!String.IsNullOrEmpty(MatNameId)) q = q.Where(x => x.MatFriGrp == MatNameId); //filter from date, to date if (FromDateSearch != null && ToDateSearch != null) { if (FromDateSearch == ToDateSearch) { q = q.Where(x => x.ActualGiDate == FromDateSearch); } else { q = q.Where(x => x.ActualGiDate >= FromDateSearch && x.ActualGiDate <= ToDateSearch); } } if (FromDateSearch != null && ToDateSearch == null) { q = q.Where(x => x.ActualGiDate == FromDateSearch); } if (FromDateSearch == null && ToDateSearch != null) { q = q.Where(x => x.ActualGiDate == ToDateSearch); } int TotalOutbound = q.Sum(x => x.SumOfOutbound); var results = (from c in q group c by new { c.MatFriGrp, c.MatName } into g select new { MatFriGrp = g.Key.MatFriGrp, MatName = g.Key.MatName, SumOfOutbound = g.Sum(x => x.SumOfOutbound), Ratio = ((double)g.Sum(x => x.SumOfOutbound) / (double)TotalOutbound) * 100 }); var random = new Random(); foreach (var item in results) { OutboundedOntimePieChartDailyViewModels model = new OutboundedOntimePieChartDailyViewModels(); var color = String.Format("#{0:X6}", random.Next(0x1000000)); // = "#A197B9" //string[] labelArray = (item.MatName + "-" + Math.Round(item.Ratio, 2).ToString()).Split('-'); model.value = Math.Round(item.Ratio, 2); model.color = color; model.highlight = color; model.label = item.MatName + "-" + Math.Round(item.Ratio, 2).ToString(); viewSummaryModel.Add(model); } return Json(viewSummaryModel, JsonRequestBehavior.AllowGet); }
public JsonResult jsonPieData(string DepartmentId, string SectionId, DateTime?FromDateSearch, DateTime?ToDateSearch, string MatNameId) { //add summary data List <OutboundedOntimePieChartDailyViewModels> viewSummaryModel = new List <OutboundedOntimePieChartDailyViewModels>(); var q = objBs.ontimeOutboundBs.GetAll().Where(x => !String.IsNullOrEmpty(x.DepartmentName)); //filter department if (!String.IsNullOrEmpty(DepartmentId)) { q = q.Where(x => x.DepartmentId == DepartmentId); } //filter section if (!String.IsNullOrEmpty(SectionId)) { q = q.Where(x => x.SectionId == SectionId); } //filter matname if (!String.IsNullOrEmpty(MatNameId)) { q = q.Where(x => x.MatFriGrp == MatNameId); } //filter from date, to date if (FromDateSearch != null && ToDateSearch != null) { if (FromDateSearch == ToDateSearch) { q = q.Where(x => x.ActualGiDate == FromDateSearch); } else { q = q.Where(x => x.ActualGiDate >= FromDateSearch && x.ActualGiDate <= ToDateSearch); } } if (FromDateSearch != null && ToDateSearch == null) { q = q.Where(x => x.ActualGiDate == FromDateSearch); } if (FromDateSearch == null && ToDateSearch != null) { q = q.Where(x => x.ActualGiDate == ToDateSearch); } int TotalOutbound = q.Sum(x => x.SumOfOutbound); var results = (from c in q group c by new { c.MatFriGrp, c.MatName } into g select new { MatFriGrp = g.Key.MatFriGrp, MatName = g.Key.MatName, SumOfOutbound = g.Sum(x => x.SumOfOutbound), Ratio = ((double)g.Sum(x => x.SumOfOutbound) / (double)TotalOutbound) * 100 }); var random = new Random(); foreach (var item in results) { OutboundedOntimePieChartDailyViewModels model = new OutboundedOntimePieChartDailyViewModels(); var color = String.Format("#{0:X6}", random.Next(0x1000000)); // = "#A197B9" //string[] labelArray = (item.MatName + "-" + Math.Round(item.Ratio, 2).ToString()).Split('-'); model.value = Math.Round(item.Ratio, 2); model.color = color; model.highlight = color; model.label = item.MatName + "-" + Math.Round(item.Ratio, 2).ToString(); viewSummaryModel.Add(model); } return(Json(viewSummaryModel, JsonRequestBehavior.AllowGet)); }