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);
        }
Beispiel #2
0
        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));
        }