protected void LinqDataSourceEnd_Selecting(object sender, LinqDataSourceSelectEventArgs e) { ucDateRange.Validated(); var packBLL = new PackBLL(); e.Result = packBLL.GetRemainByDate(ucDateRange.ToDate.Value) .Select(r => new { r.ProductCode, r.Donation.BloodGroup, r.Volume }) .ToList() .GroupBy(r => new { r.ProductCode }, (r, sub) => new { r.ProductCode, ProductDesc = ProductBLL.GetDesc(r.ProductCode), Total = sub.Count(), BloodGroupSumary = sub.GroupBy(r1 => r1.BloodGroup, (r1, BGSub) => new { BloodGroupDesc = BloodGroupBLL.GetDescription(r1), Total = BGSub.Count(), Order = BloodGroupBLL.GetOrder(r1), }).OrderBy(r1 => r1.Order).ThenBy(r1 => r1.BloodGroupDesc), VolumeSumary = sub.GroupBy(r1 => r1.Volume, (r1, VolSub) => new { Volume = r1, Total = VolSub.Count() }) }) .OrderBy(r => r.ProductDesc); }
public ActionResult _609(string productCode, DateTime? from, DateTime? to, bool? Start, bool? In, bool? Out, bool? End) { if (!Start.HasValue) Start = true; if (!End.HasValue) End = true; if (!In.HasValue) In = true; if (!Out.HasValue) Out = true; if (!from.HasValue || !to.HasValue) { from = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1); to = DateTime.Now.Date; } ViewBag.from = from.Value.ToStringVNLong(); ViewBag.to = to.Value.ToStringVNLong(); ViewBag.chkStart = Start.Value; ViewBag.chkEnd = End.Value; ViewBag.chkIn = In.Value; ViewBag.chkOut = Out.Value; RedBloodDataContext db = new RedBloodDataContext(); ViewBag.Start = new List<RptModel1>(); ViewBag.End = new List<RptModel1>(); ViewBag.In = new List<RptModel1>(); ViewBag.Out = new List<RptModel1>(); PackBLL packBLL = new PackBLL(); if (Start.HasValue && Start.Value) { ViewBag.Start = packBLL.GetRemainByDate(from.Value) .Where(r => r.ProductCode == productCode) .Select(r => new { r.ID }.ToExpando()) .ToList() ; } if (End.HasValue && End.Value) { ViewBag.End = packBLL.GetRemainByDate(to.Value) .Where(r => r.ProductCode == productCode) .Select(r => new { r.ID }.ToExpando()) .ToList() ; } Func<IGrouping<string, Rpt608_M1>, string, int> f1 = (l, aboLetter) => { return l.Where(r1 => BloodGroupBLL.GetLetter(r1.BloodGroup) == aboLetter).Sum(r1 => r1.Count); }; if (In.HasValue && In.Value) { ViewBag.In = db.PackTransactions .Where(r => (r.Type == PackTransaction.TypeX.In_Collect || r.Type == PackTransaction.TypeX.In_Product) && from <= r.Date && r.Date <= to ) .Where(r => r.Pack.ProductCode == productCode) .Select(r => new { ID = r.PackID }.ToExpando()) .ToList() ; } if (Out.HasValue && Out.Value) { ViewBag.Out = db.PackTransactions .Where(r => PackTransactionBLL.OutTypeList.Contains(r.Type) && from <= r.Date && r.Date <= to ) .Where(r => r.Pack.ProductCode == productCode) .Select(r => new { ID = r.PackID }.ToExpando()) .ToList() ; } return View(); }
public ActionResult _612(DateTime? from, DateTime? to) { if (!from.HasValue || !to.HasValue) { from = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1); to = DateTime.Now.Date; } ViewBag.from = from.Value.ToStringVNLong(); ViewBag.to = to.Value.ToStringVNLong(); RedBloodDataContext db = new RedBloodDataContext(); db.CommandTimeout = 3600; PackBLL packBLL = new PackBLL(); var end = packBLL.GetRemainByDate(to.Value) .Where(r => Product.Apheresis.ProductCodeList.Contains(r.ProductCode)) .Select(r => new { r.Donation.BloodGroup }) .ToList() .GroupBy(r => BloodGroupBLL.GetLetter(r.BloodGroup)) .Select(r => new { ABO = r.Key, Count = r.Count(), }) .ToList(); ViewBag.L = db.PackTransactions .Where(r => from <= r.Date && r.Date <= to && Product.Apheresis.ProductCodeList.Contains(r.Pack.ProductCode)) .Select(r => new { r.Pack.ProductCode, r.Pack.Donation.BloodGroup, r.Type }) .ToList() .GroupBy(r => new { r.ProductCode, r.BloodGroup, r.Type }) .Select(r => new { r.Key.ProductCode, r.Key.BloodGroup, r.Key.Type, Count = r.Count() }) .ToList() .GroupBy(r => BloodGroupBLL.GetLetter(r.BloodGroup)) .Select(r => new Rpt612 { ABO = r.Key, In = r.Where(r1 => PackTransactionBLL.InTypeList.Contains(r1.Type)).Sum(r1 => r1.Count), Out = r.Where(r1 => PackTransactionBLL.OutTypeList.Contains(r1.Type)).Sum(r1 => r1.Count), End = end.Where(r1 => r1.ABO == r.Key).FirstOrDefault() != null ? end.Where(r1 => r1.ABO == r.Key).FirstOrDefault().Count : 0, }).ToList(); return View(); }
public ActionResult _608(DateTime? from, DateTime? to, bool? Start, bool? In, bool? Out, bool? End) { if (!Start.HasValue) Start = true; if (!End.HasValue) End = true; if (!In.HasValue) In = true; if (!Out.HasValue) Out = true; if (!from.HasValue || !to.HasValue) { from = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1); to = DateTime.Now.Date; } ViewBag.from = from.Value.ToStringVNLong(); ViewBag.to = to.Value.ToStringVNLong(); ViewBag.chkStart = Start.Value; ViewBag.chkEnd = End.Value; ViewBag.chkIn = In.Value; ViewBag.chkOut = Out.Value; RedBloodDataContext db = new RedBloodDataContext(); db.CommandTimeout = 3600; ViewBag.Start = new List<RptModel1>(); ViewBag.End = new List<RptModel1>(); ViewBag.In = new List<RptModel1>(); ViewBag.Out = new List<RptModel1>(); PackBLL packBLL = new PackBLL(); if (Start.HasValue && Start.Value) { ViewBag.Start = packBLL.GetRemainByDate(from.Value) .Select(r => new { r.ProductCode, r.Donation.BloodGroup }) .ToList() .GroupBy(r => r.ProductCode) .Select(r => new RptModel1 { ProductCode = r.Key, Name = ProductBLL.GetGroupName(r.Key), Sum = r.Count(), A = r.Where(r1 => BloodGroupBLL.GetLetter(r1.BloodGroup) == BloodGroup.ABOLetter_A).Count(), B = r.Where(r1 => BloodGroupBLL.GetLetter(r1.BloodGroup) == BloodGroup.ABOLetter_B).Count(), AB = r.Where(r1 => BloodGroupBLL.GetLetter(r1.BloodGroup) == BloodGroup.ABOLetter_AB).Count(), O = r.Where(r1 => BloodGroupBLL.GetLetter(r1.BloodGroup) == BloodGroup.ABOLetter_O).Count(), }).ToList(); } if (End.HasValue && End.Value) { ViewBag.End = packBLL.GetRemainByDate(to.Value) .Select(r => new { r.ProductCode, r.Donation.BloodGroup }) .ToList() .GroupBy(r => r.ProductCode) .Select(r => new RptModel1 { ProductCode = r.Key, Name = ProductBLL.GetGroupName(r.Key), Sum = r.Count(), A = r.Where(r1 => BloodGroupBLL.GetLetter(r1.BloodGroup) == BloodGroup.ABOLetter_A).Count(), B = r.Where(r1 => BloodGroupBLL.GetLetter(r1.BloodGroup) == BloodGroup.ABOLetter_B).Count(), AB = r.Where(r1 => BloodGroupBLL.GetLetter(r1.BloodGroup) == BloodGroup.ABOLetter_AB).Count(), O = r.Where(r1 => BloodGroupBLL.GetLetter(r1.BloodGroup) == BloodGroup.ABOLetter_O).Count(), }).ToList(); } Func<IGrouping<string, Rpt608_M1>, string, int> f1 = (l, aboLetter) => { return l.Where(r1 => BloodGroupBLL.GetLetter(r1.BloodGroup) == aboLetter).Sum(r1 => r1.Count); }; if (In.HasValue && In.Value) { ViewBag.In = db.PackTransactions .Where(r => (r.Type == PackTransaction.TypeX.In_Collect || r.Type == PackTransaction.TypeX.In_Product) && from <= r.Date && r.Date <= to ) .GroupBy(r => new { r.Pack.ProductCode, r.Pack.Donation.BloodGroup }) .Select(r => new Rpt608_M1 { ProductCode = r.Key.ProductCode, BloodGroup = r.Key.BloodGroup, Count = r.Count() }) .ToList() .GroupBy(r => r.ProductCode) .Select(r => new RptModel1 { ProductCode = r.Key, Name = ProductBLL.GetGroupName(r.Key), Sum = r.Sum(r1 => r1.Count), A = f1(r, BloodGroup.ABOLetter_A), B = f1(r, BloodGroup.ABOLetter_B), AB = f1(r, BloodGroup.ABOLetter_AB), O = f1(r, BloodGroup.ABOLetter_O), }).ToList(); } if (Out.HasValue && Out.Value) { ViewBag.Out = db.PackTransactions .Where(r => PackTransactionBLL.OutTypeList.Contains(r.Type) && from <= r.Date && r.Date <= to ) .GroupBy(r => new { r.Pack.ProductCode, r.Pack.Donation.BloodGroup }) .Select(r => new Rpt608_M1 { ProductCode = r.Key.ProductCode, BloodGroup = r.Key.BloodGroup, Count = r.Count() }) .ToList() .ToList() .GroupBy(r => r.ProductCode) .Select(r => new RptModel1 { ProductCode = r.Key, Name = ProductBLL.GetGroupName(r.Key), Sum = r.Sum(r1 => r1.Count), A = f1(r, BloodGroup.ABOLetter_A), B = f1(r, BloodGroup.ABOLetter_B), AB = f1(r, BloodGroup.ABOLetter_AB), O = f1(r, BloodGroup.ABOLetter_O), }).ToList(); } return View(); }