public IActionResult printGardeshLocation(Models.reports.rep_gardeshlocation.Model model) { if (model.kindPortage == null || model.kindPortage.Any() == false) { model.isMajmuh = true; model.isTafkik = true; } if (model.d1.IsEmpty()) { model.d1 = db.TblSalMalis.Single(A => A.Id == User._getuserSalMaliDef()).SalAz.ToPersianDate(); } if (model.d2.IsEmpty()) { model.d2 = db.TblSalMalis.Single(A => A.Id == User._getuserSalMaliDef()).SalTa.ToPersianDate(); } if (ModelState.IsValid) { ViewBag.table = printGardeshLocationdata(model); } ViewBag.custumers = db.TblCustomers.Include(a => a.TblContracts).Where(a => a.FkSalmali == User._getuserSalMaliDef() && a.IsEnable).OrderBy(a => a.Code).Select(a => new web_sard.Models.tbls.customer.customer(a, db, web_db._Weighing.TblContractType.KindCotractTypeEnum.ASardKhane, true)).ToList(); return(View(model)); }
public List <Models.reports.rep_gardeshlocation.Rows> printGardeshLocationdata(Models.reports.rep_gardeshlocation.Model model) { model.pakings = model.pakings ?? new Guid[] { }; model.prodocts = model.prodocts ?? new Guid[] { }; model.custumer = model.custumer ?? new Guid[] { }; model.contract = model.contract ?? new Guid[] { }; var d1 = model.d1.ToDate(); var d2 = model.d2.ToDate(); var sal = User._getuserSalMaliDef(); var x = (from n in db.TblPortageRows.Where(a => a.FkPortage.HasValue).Include(a => a.FkPortageNavigation) let portage = n.FkPortageNavigation where portage.IsEnd && portage.IsDel == false && portage.FkSalmali == sal && (portage.Date1.Date >= d1 && portage.Date1.Date <= d2) && ( model.locations.Contains(n.FkLocation1 ?? Guid.Empty) || model.locations.Contains(n.FkLocation2 ?? Guid.Empty) || model.locations.Contains(n.FkLocation3 ?? Guid.Empty) ) && (model.pakings.Any() ? model.pakings.Contains(n.FkPacking ?? Guid.Empty) : true) && (model.prodocts.Any() ? model.prodocts.Contains(n.FkProduct ?? Guid.Empty) : true) && ( model.contract.Any() ? model.contract.Contains(n.FkContract ?? Guid.Empty) : ( model.custumer.Any() ? model.custumer.Contains(portage.FkCustomer) : true) ) && model.kindPortage.Contains(portage.KindCode) orderby portage.Date1 descending select n); if (model.isMajmuh == false) { return(x.Select(n => new Models.reports.rep_gardeshlocation.Rows(n, db)).AsEnumerable().ToList()); } if (model.isTafkik == true) { var x2 = from n in x.AsEnumerable() group n by new { n.FkContract, n.FkContractType, n.FkPortage, n.FkProduct, n.FkLocation1, n.FkLocation2, n.FkPacking } into m let por = db.TblPortages.Find(m.Key.FkPortage) ?? new web_db._Weighing.TblPortage() let con = db.TblContracts.Find(m.Key.FkContract) ?? new web_db._Weighing.TblContract() let contype = db.TblContractTypes.Find(m.Key.FkContractType) let cus = db.TblCustomers.Find(con.FkCustomer) let loc = db.TblLocations.Find(m.Key.FkLocation2) ?? new web_db._Weighing.TblLocation() let pro = db.TblProducts.Find(m.Key.FkProduct) let pack = db.TblPackings.Find(m.Key.FkPacking) select new Models.reports.rep_gardeshlocation.Rows { Contract = cus.Title + $" ({cus.Code})", Contractcode = con.Code, ContractType = contype.Title, ContractTypecode = contype.Code, Count = m.Sum(a => a.Count), date = por.Date1, datestr = por.Date1.ToPersianDate(), IdPort = m.Key.FkPortage, Location = loc.CodeFull, Packing = m.Key.FkPacking.HasValue ? pack.Title : "", Product = m.Key.FkProduct.HasValue ? pro.Title : "", UserAdd = db.TblUsers.Find(por.FkUsAdd1).Title, Weight = m.Sum(a => a.WeightOne * a.Count) / m.Sum(a => a.Count) ?? 0, Portagekindcode = por.KindCode, Portagekindstr = por.KindTitle, residcode = por.Code, Car = por.CarMashin + " " + por.CarShMashin + " (" + por.CarRanande + por.CarTell + ")" }; return(x2.ToList()); } else { var x2 = from n in x.AsEnumerable() group n by new { n.FkContractType, n.FkPortage } into m let por = db.TblPortages.Find(m.Key.FkPortage) ?? new web_db._Weighing.TblPortage() let contype = db.TblContractTypes.Find(m.Key.FkContractType) let cus = db.TblCustomers.Find(por.FkCustomer) select new Models.reports.rep_gardeshlocation.Rows { Contract = cus.Title + $" ({cus.Code})", ContractType = contype.Title, ContractTypecode = contype.Code, Count = m.Sum(a => a.Count), date = por.Date1, datestr = por.Date1.ToPersianDate(), IdPort = m.Key.FkPortage, UserAdd = db.TblUsers.Find(por.FkUsAdd1).Title, Weight = m.Sum(a => a.WeightOne * a.Count) / m.Sum(a => a.Count) ?? 0, Portagekindcode = por.KindCode, Portagekindstr = por.KindTitle, residcode = por.Code, Car = por.CarMashin + " " + por.CarShMashin + " (" + por.CarRanande + por.CarTell + ")" }; return(x2.ToList()); } }
public List <Models.reports.rep_gardeshlocation.Rows> printGardeshLocationdata(Models.reports.rep_gardeshlocation.Model model) { model.pakings = model.pakings ?? new Guid[] { }; model.custumer = model.custumer ?? new Guid[] { }; var d1 = model.d1.ToDate(); var d2 = model.d2.ToDate(); var sal = User._getuserSalMaliDef(); var x = (from n in db.TblPortageRows.Where(a => a.FkPortage.HasValue).Include(a => a.FkPortageNavigation) let portage = n.FkPortageNavigation let ctype = db.TblContractTypes.SingleOrDefault(a => a.Id == n.FkContractType) where ctype.KindCotractType == web_db._Weighing.TblContractType.KindCotractTypeEnum.ABaskul && portage.IsEnd && portage.IsDel == false && portage.FkSalmali == sal && (portage.Date1.Date >= d1 && portage.Date1.Date <= d2) && (model.pakings.Any() ? model.pakings.Contains(n.FkPacking ?? Guid.Empty) : true) && (model.custumer.Any() ? model.custumer.Contains(portage.FkCustomer) : true) && model.kindPortage.Contains(portage.KindCode) orderby portage.Date1 descending select n); return(x.Select(n => new Models.reports.rep_gardeshlocation.Rows(n, db)).AsEnumerable().ToList()); { var x2 = from n in x.AsEnumerable() group n by new { n.FkContractType, n.FkPortage } into m let por = db.TblPortages.Find(m.Key.FkPortage) ?? new web_db._Weighing.TblPortage() let contype = db.TblContractTypes.Find(m.Key.FkContractType) let cus = db.TblCustomers.Find(por.FkCustomer) select new Models.reports.rep_gardeshlocation.Rows { Contract = cus.Title + $" ({cus.Code})", ContractType = contype.Title, ContractTypecode = contype.Code, date = por.Date1, datestr = por.Date1.ToPersianDate(), IdPort = m.Key.FkPortage, UserAdd = db.TblUsers.Find(por.FkUsAdd1).Title, Weight = por.WeightNet, Weight1 = por.Weight1, Weight2 = por.Weight2, Portagekindcode = por.KindCode, Portagekindstr = por.KindTitle, residcode = por.Code, Car = por.CarMashin + " " + por.CarShMashin + " (" + por.CarRanande + por.CarTell + ")" }; return(x2.ToList()); } }