예제 #1
0
 public PortageRow()
 {
     ListInjurysTbl = new List <web_sard.Models.tbls.alltbl>();
     rowPeerSard    = new ASardKhane.Models.tbls.portage.PortageRow();
     rowPeerAnbar   = new ASabad.Models.tbls.portage.PortageRow();
     ListProducts   = new List <web_db._Weighing.TblProduct>();
     ListPackings   = new List <web_db._Weighing.TblPacking>();
 }
예제 #2
0
        public async Task <JsonResult> getlistRowsAsync(Guid id, Guid fkcontract)
        {
            var portage             = db.TblPortages.Find(id);
            var portageContractType = db.TblContractTypes.Find(portage.FkContracttype);

            if (portageContractType.KindCotractType == web_db._Weighing.TblContractType.KindCotractTypeEnum.ASurting)
            {
                var xrows = await(from n in db.TblPortageRows
                                  where n.FkPortage == id && n.FkContract == fkcontract
                                  orderby n.Date descending
                                  select new Models.tbls.portage.PortageRow(n, db, false, true)).ToListAsync();



                foreach (var item in xrows)
                {
                    try
                    {
                        if (item.rowPeerSard.Id.IsEmpty() == false)
                        {
                            item.ListProducts = db.TblContractProducts.Include(a => a.FkProductNavigation).Where(a => a.FkContract == item.rowPeerSard.FkContract).Select(a => a.FkProductNavigation).ToList();

                            item.ListPackings = web_sard.Models.cl._ListPacking.Where(a => a.ForContractType().Contains(web_db._Weighing.TblContractType.KindCotractTypeEnum.ASardKhane) && a.ForContractType().Contains(web_db._Weighing.TblContractType.KindCotractTypeEnum.ASurting)).ToList();
                        }
                        else if (item.rowPeerAnbar.Id.IsEmpty() == false)
                        {
                            item.ListPackings = db.TblContractPackings.Include(a => a.FkPackingNavigation).Where(a => a.FkContract == item.rowPeerAnbar.FkContract).Select(a => a.FkPackingNavigation).ToList();
                            item.ListProducts = new List <web_db._Weighing.TblProduct>();
                        }
                        else
                        {
                            item.ListProducts = db.TblContractProducts.Include(a => a.FkProductNavigation).Where(a => a.FkContract == portage._FkContractMain).Select(a => a.FkProductNavigation).ToList();

                            var xpackings = web_sard.Models.cl._ListPacking.Where(a => a.ForContractType().Contains(web_db._Weighing.TblContractType.KindCotractTypeEnum.ASurting)).ToList();
                            item.ListPackings = xpackings;
                        }
                    }
                    catch
                    {
                    }
                }



                Models.tbls.portage.PortageRow z = xrows.FirstOrDefault();

                ASardKhane.Models.tbls.portage.PortageRow zfromsard  = null;
                ASabad.Models.tbls.portage.PortageRow     zfromanbar = null;


                if (z != null && z.rowPeerSard != null)
                {
                    zfromsard = z.rowPeerSard;
                }
                else if (z != null && z.rowPeerAnbar != null)

                {
                    zfromanbar = z.rowPeerAnbar;
                }
                var listinjdef = db.TblPortageInjuries.Where(a => a.FkPortage == id).Select(a => a.FkInjury).ToArray();

                if (z == null)
                {
                    var fkgroup = HttpContext.Session.Get <Guid?>("fkgroup");

                    var k = cl.GuidToLocationCode((cl._ListGroup.SingleOrDefault(a => a.Id == fkgroup) ?? new web_db.TblGroup()).Fklocation);
                    z = new Models.tbls.portage.PortageRow()
                    {
                        L1 = k[0],
                        L2 = k[1],
                        L3 = k[2]
                    };
                    if (Models.tbls.portage.kindPortage.istofromSard(portage.KindCode))
                    {
                        zfromsard = new ASardKhane.Models.tbls.portage.PortageRow
                        {
                            CodeLocation = z.CodeLocation,
                            FkPacking    = z.FkPacking,
                            FkProduct    = z.FkProduct,
                            ListInjurys  = listinjdef,
                            L1           = z.L1,
                            L2           = z.L2,
                            L3           = z.L3
                        };
                    }
                    else
                    if (Models.tbls.portage.kindPortage.istofromAnbar(portage.KindCode))
                    {
                        zfromanbar = new ASabad.Models.tbls.portage.PortageRow
                        {
                            CodeLocation = z.CodeLocation,
                            FkPacking    = z.FkPacking,
                            FkProduct    = z.FkProduct,
                            ListInjurys  = listinjdef,
                            L1           = z.L1,
                            L2           = z.L2,
                            L3           = z.L3
                        };
                    }
                }


                var r = new Models.tbls.portage.PortageRow
                {
                    CodeLocation = z.CodeLocation,
                    FkPacking    = z.FkPacking,
                    FkProduct    = z.FkProduct,
                    ListInjurys  = listinjdef,
                    L1           = z.L1,
                    L2           = z.L2,
                    L3           = z.L3,
                    rowPeerAnbar = zfromanbar,
                    rowPeerSard  = zfromsard
                };
                r.ListProducts = new List <web_db._Weighing.TblProduct>();
                r.ListPackings = new List <web_db._Weighing.TblPacking>();

                if (Models.tbls.portage.kindPortage.istofrom(portage.KindCode) == false)
                {
                    r.ListProducts = db.TblContractProducts.Include(a => a.FkProductNavigation).Where(a => a.FkContract == portage._FkContractMain).Select(a => a.FkProductNavigation).ToList();

                    var xpackings = web_sard.Models.cl._ListPacking.Where(a => a.ForContractType().Contains(web_db._Weighing.TblContractType.KindCotractTypeEnum.ASurting)).ToList();
                    r.ListPackings = xpackings;
                }
                else
                {
                    Guid?conper = null;
                    if (r.rowPeerSard != null && r.rowPeerSard.FkContract.HasValue)
                    {
                        conper = r.rowPeerSard.FkContract;

                        var xproducts = db.TblContractProducts.Include(a => a.FkProductNavigation).Where(a => a.FkContract == conper).Select(a => a.FkProductNavigation).ToList();

                        var xpackings = web_sard.Models.cl._ListPacking.Where(a => a.ForContractType().Contains(web_db._Weighing.TblContractType.KindCotractTypeEnum.ASurting) && a.ForContractType().Contains(web_db._Weighing.TblContractType.KindCotractTypeEnum.ASardKhane)).ToList();
                        r.ListProducts = xproducts;
                        r.ListPackings = xpackings;
                    }
                    else if (r.rowPeerAnbar != null && r.rowPeerAnbar.FkContract.HasValue)
                    {
                        conper = r.rowPeerAnbar.FkContract;
                        var xpackings = db.TblContractPackings.Include(a => a.FkPackingNavigation).Where(a => a.FkContract == conper).Select(a => a.FkPackingNavigation).ToList();
                        r.ListProducts = new List <web_db._Weighing.TblProduct>();
                        r.ListPackings = xpackings;
                    }
                }


                xrows.Insert(0, r);

                List <web_db._Weighing.TblInjury> xinjury = null;
                List <string> nimpalets = null;



                xinjury = cl._ListInjury.Where(a => a.ForContractType().Any(s => s == web_db._Weighing.TblContractType.KindCotractTypeEnum.ASurting) && a.IsActive).ToList();
                var plast = db.TblPortages.Include(a => a.TblPortageRows).OrderByDescending(a => a.Date2).FirstOrDefault(a => a.Id != portage.Id && a.FkCustomer == portage.FkCustomer && a.TblPortageRows.Any(s => s.FkContract == fkcontract));
                if (plast != null)
                {
                    nimpalets = db.TblPortageRows.Where(a => a.FkPortage == plast.Id && a.FkContract == fkcontract && a.IsNimPalet).Select(a =>
                                                                                                                                           new
                    {
                        aa = "(" + a.CodeLocation + ")" + a.Count.ToString()
                    }).Select(a => a.aa).ToList();
                }

                return(Json(Newtonsoft.Json.JsonConvert.SerializeObject(new { rows = xrows, /* packings = xpackings, products = xproducts,*/ injurys = xinjury, nimpalets = nimpalets })));
            }
            return(null);
        }
예제 #3
0
        public PortageRow(web_db._Weighing.TblPortageRow row, web_db.sardweb_Context db, bool portage, bool peer = false)
        {
            this.Code      = row.Code;
            this.Count     = row.Count.gadrmotlagh();
            this.WeightOne = row.WeightOne;

            this.Weight = WeightOne > 0 ? Math.Round((this.WeightOne * this.Count) ?? 0) : null;

            this.Date      = row.Date;
            this.FkPacking = row.FkPacking;
            this.FkProduct = row.FkProduct;

            this.Packing = (web_sard.Models.cl._ListPacking.SingleOrDefault(a => a.Id == row.FkPacking) ?? new web_db._Weighing.TblPacking()).Title;
            this.Product = (web_sard.Models.cl._ListProduct.SingleOrDefault(a => a.Id == row.FkProduct) ?? new web_db._Weighing.TblProduct()).Title;


            this.Id           = row.Id;
            this.FkContract   = row.FkContract;
            this.CodeContract = (db.TblContracts.Find(row.FkContract) ?? new web_db._Weighing.TblContract()).Code;
            this.Txt          = row.Txt;

            this.IsNimPalet = row.IsNimPalet;

            this.ListInjurys = db.TblPortageRowInjuries.Where(a => a.FkPortageRow == row.Id).Select(a => a.FkInjury).ToArray();

            this.ListInjurysTbl = (from n in db.TblPortageRowInjuries.Include(a => a.FkInjuryNavigation)
                                   where n.FkPortageRow == row.Id
                                   let inj = n.FkInjuryNavigation
                                             select new web_sard.Models.tbls.alltbl {
                code = inj.Ord, key = inj.Id, title = inj.Title
            }).ToList();
            this.CodeLocation = row.CodeLocation;
            if (this.CodeLocation.IsEmpty() == false)
            {
                var z = this.CodeLocation.Split("-");
                if (z.Count() > 0)
                {
                    L1 = Convert.ToInt32(z[0]);
                }
                if (z.Count() > 1)
                {
                    L2 = Convert.ToInt32(z[1]);
                }
                if (z.Count() > 2)
                {
                    L3 = Convert.ToInt32(z[2]);
                }
            }
            UserAddStr     = db.TblUsers.Find(row.FkUser).Title;
            this.fkportage = row.FkPortage;
            tblportage     = new portage();
            if (this.fkportage.HasValue && portage)
            {
                tblportage = new portage(db.TblPortages.Find(this.fkportage), db);
            }

            rowPeerSard  = new ASardKhane.Models.tbls.portage.PortageRow();
            rowPeerAnbar = new ASabad.Models.tbls.portage.PortageRow();

            ListProducts = new List <web_db._Weighing.TblProduct>();
            ListPackings = new List <web_db._Weighing.TblPacking>();

            if (peer == true && row.FkRowPeer.HasValue)
            {
                var por = new portage(db.TblPortages.Find(this.fkportage), db);

                var v = db.TblPortageRows.Find(row.FkRowPeer);
                if (v != null)
                {
                    if (por.KindCode == (int)Models.tbls.portage.kindPortage.kindPortageEnum.InFromSardkhane || por.KindCode == (int)Models.tbls.portage.kindPortage.kindPortageEnum.OutToSardkhane)
                    {
                        rowPeerSard = new web_sard.Areas.ASardKhane.Models.tbls.portage.PortageRow(v, db, false, false);
                    }
                    else if (por.KindCode == (int)Models.tbls.portage.kindPortage.kindPortageEnum.InFromAnbar || por.KindCode == (int)Models.tbls.portage.kindPortage.kindPortageEnum.OutToAnbar)

                    {
                        rowPeerAnbar = new web_sard.Areas.ASabad.Models.tbls.portage.PortageRow(v, db, false);
                    }
                }
            }
        }