Exemplo n.º 1
0
        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));
        }
Exemplo n.º 2
0
        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());
            }
        }
Exemplo n.º 3
0
        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());
            }
        }