public JsonResult OntimeAcceptSummaryDaily(string DepartmentId, string SectionId, DateTime? FromDateSearch, DateTime? ToDateSearch, string MatNameId) { // add IEnumerable<AcceptOntimeSummaryViewModels> List<AcceptOntimeSummaryViewModels> viewSummaryModel = new List<AcceptOntimeSummaryViewModels>(); // filter by department var q = objBs.ontimeAcceptBs.GetAll().Where(x => !String.IsNullOrEmpty(x.DepartmentName)); //var q = objBs.ontimeAcceptBs.GetAll().Where(x => !String.IsNullOrEmpty(x.DepartmentName) // && !String.IsNullOrEmpty(x.SectionName) // && !String.IsNullOrEmpty(x.MatName)); //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); } var results = (from c in q group c by new { c.DepartmentName, c.SectionName } into g select new { DepartmentName = g.Key.DepartmentName, SectionName = g.Key.SectionName, SumOfAccept = g.Sum(x => x.SumOfAccept), OnTime = g.Sum(x => x.OnTime), Delay = g.Sum(x => x.Delay), Adjust = g.Sum(x => x.AdjustAccept) }).OrderBy(x => x.DepartmentName); foreach (var item in results) { AcceptOntimeSummaryViewModels model = new AcceptOntimeSummaryViewModels(); model.DepartmentName = item.DepartmentName; model.SectionName = item.SectionName; model.SumOfAccept = item.SumOfAccept; model.OnTime = item.OnTime; model.Delay = item.Delay; model.Adjust = item.Adjust; model.Plan = 98.0; model.Percent = Math.Round(((double)item.OnTime / (double)item.SumOfAccept) * 100, 2); model.PercentAdjust = Math.Round((((double)item.OnTime + (double)item.Adjust) / (double)item.SumOfAccept) * 100, 2); viewSummaryModel.Add(model); } return Json(viewSummaryModel, JsonRequestBehavior.AllowGet); }
public JsonResult OntimeAcceptSummaryDaily(string DepartmentId, string SectionId, DateTime?FromDateSearch, DateTime?ToDateSearch, string MatNameId) { // add IEnumerable<AcceptOntimeSummaryViewModels> List <AcceptOntimeSummaryViewModels> viewSummaryModel = new List <AcceptOntimeSummaryViewModels>(); // filter by department var q = objBs.ontimeAcceptBs.GetAll().Where(x => !String.IsNullOrEmpty(x.DepartmentName)); //var q = objBs.ontimeAcceptBs.GetAll().Where(x => !String.IsNullOrEmpty(x.DepartmentName) // && !String.IsNullOrEmpty(x.SectionName) // && !String.IsNullOrEmpty(x.MatName)); //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); } var results = (from c in q group c by new { c.DepartmentName, c.SectionName } into g select new { DepartmentName = g.Key.DepartmentName, SectionName = g.Key.SectionName, SumOfAccept = g.Sum(x => x.SumOfAccept), OnTime = g.Sum(x => x.OnTime), Delay = g.Sum(x => x.Delay), Adjust = g.Sum(x => x.AdjustAccept) }).OrderBy(x => x.DepartmentName); foreach (var item in results) { AcceptOntimeSummaryViewModels model = new AcceptOntimeSummaryViewModels(); model.DepartmentName = item.DepartmentName; model.SectionName = item.SectionName; model.SumOfAccept = item.SumOfAccept; model.OnTime = item.OnTime; model.Delay = item.Delay; model.Adjust = item.Adjust; model.Plan = 98.0; model.Percent = Math.Round(((double)item.OnTime / (double)item.SumOfAccept) * 100, 2); model.PercentAdjust = Math.Round((((double)item.OnTime + (double)item.Adjust) / (double)item.SumOfAccept) * 100, 2); viewSummaryModel.Add(model); } return(Json(viewSummaryModel, JsonRequestBehavior.AllowGet)); }