public Rows(web_db._Weighing.TblPortageRow row, web_db.sardweb_Context db)
            {
                var por     = db.TblPortages.Find(row.FkPortage);
                var con     = db.TblContracts.Find(row.FkContract) ?? new web_db._Weighing.TblContract();
                var contype = db.TblContractTypes.Find(por.FkContracttype);
                var cus     = db.TblCustomers.Find(row.FkPortageNavigation.FkCustomer) ?? new web_db.TblCustomer();

                Contract         = cus.Title;
                Contractcode     = con.Code;
                ContractType     = contype.Title;
                ContractTypecode = contype.Code;
                Count            = row.Count;
                date             = por.Date1;
                datestr          = por.Date1.ToPersianDate();
                IdPort           = row.FkPortage;
                IdRow            = row.Id;
                Location         = row.CodeLocation;
                Packing          = row.FkPacking.HasValue ? (web_sard.Models.cl._ListPacking.Single(a => a.Id == row.FkPacking).Title) : "";
                Product          = row.FkProduct.HasValue ? (web_sard.Models.cl._ListProduct.Single(a => a.Id == row.FkProduct).Title) : "";
                UserAdd          = db.TblUsers.Find(row.FkUser).Title;
                Weight           = row.WeightOne ?? 0;
                Portagekindcode  = por.KindCode;
                Portagekindstr   = por.KindTitle;
                residcode        = por.Code;
                Car = por.CarMashin + " " + por.CarShMashin + " (" + por.CarRanande + por.CarTell + ")";
            }
Beispiel #2
0
        public PortageRow(web_db._Weighing.TblPortageRow row, web_db.sardweb_Context db, bool portage)
        {
            this.Code      = row.Code;
            this.Count     = row.Count.gadrmotlagh();
            this.WeightOne = row.WeightOne;
            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 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);
            }
        }
Beispiel #3
0
        public JsonResult AddlistRow(Guid idp, Guid id,
                                     int?L1, int?L2, int?L3,
                                     int?L1peer, int?L2peer, int?L3peer, Guid fkcontractpeer,
                                     long Count, float?Weight, Guid fkcontract, Guid?FkPacking, Guid?FkProduct, Guid[] FkInjurys, string Txt)
        {
            if (Count < 1)
            {
                return(Json(Newtonsoft.Json.JsonConvert.SerializeObject(new { ok = false, txt = "تعداد اشتباه است - ثبت انجام نشد" })));
            }
            if ((FkPacking == Guid.Empty) || (FkPacking == null))
            {
                return(Json(Newtonsoft.Json.JsonConvert.SerializeObject(new { ok = false, txt = "سبد انتخاب نشده است - ثبت انجام نشد" })));
            }
            var pp = db.TblPortages.Find(idp);

            if ((pp.FkSalmali != User._getuserSalMaliDef()) || (pp.IsEnd) || (pp.IsDel))
            {
                return(Json(Newtonsoft.Json.JsonConvert.SerializeObject(new { ok = false, txt = "ثبت انجام نشد - غیر مجاز" })));
            }


            #region PEER
            web_db._Weighing.TblLocation ll1P = null;
            string peerloc = "";
            if (Models.tbls.portage.kindPortage.istofrom(pp.KindCode))
            {
                if (fkcontractpeer.IsEmpty())
                {
                    return(Json(Newtonsoft.Json.JsonConvert.SerializeObject(new { ok = false, txt = "قرارداد انتخاب نشده است - قبت انجام نشد" })));
                }

                if ((L1peer ?? 0) < 1)
                {
                    return(Json(Newtonsoft.Json.JsonConvert.SerializeObject(new { ok = false, txt = "فاز طرف قراردادانتخاب نشده است - قبت انجام نشد" })));
                }

                peerloc = L1peer + (L2peer.HasValue ? ("-" + L2peer + (L3peer.HasValue ? ("-" + L3peer) : "")) : "");

                ll1P = web_sard.Models.cl._ListLocation.SingleOrDefault(a => a.CodeFull == peerloc && a.Isdell == false);
                if (ll1P == null)
                {
                    return(Json(Newtonsoft.Json.JsonConvert.SerializeObject(new { ok = false, txt = "فاز و سالن و طبقه اشتباه است - ثبت انجام نشد" })));
                }
            }



            #endregion



            var ppp = db.TblContractTypes.Find(pp.FkContracttype);


            var conf  = ppp.ConfigASurting();
            var pkind = Models.tbls.portage.kindPortage.listkindcontract.Single(a => a.code == pp.KindCode);

            if ((FkProduct == Guid.Empty) || (FkProduct == null))
            {
                return(Json(Newtonsoft.Json.JsonConvert.SerializeObject(new { ok = false, txt = "محصول انتخاب نشده است - ثبت انجام نشد" })));
            }

            if (conf.NeedLocation)
            {
                if (conf.LocationLvlRequired > 0)
                {
                    if ((L1 ?? 0) < 1)
                    {
                        return(Json(Newtonsoft.Json.JsonConvert.SerializeObject(new { ok = false, txt = "فاز اشتباه است - ثبت انجام نشد" })));
                    }
                }
                if (conf.LocationLvlRequired > 1)
                {
                    if ((L2 ?? 0) < 1)
                    {
                        return(Json(Newtonsoft.Json.JsonConvert.SerializeObject(new { ok = false, txt = "سالن اشتباه است - ثبت انجام نشد" })));
                    }
                }
                if (conf.LocationLvlRequired > 2)
                {
                    if ((L3 ?? 0) < 1)
                    {
                        return(Json(Newtonsoft.Json.JsonConvert.SerializeObject(new { ok = false, txt = "طبقه اشتباه است - ثبت انجام نشد" })));
                    }
                }
            }

            var row = db.TblPortageRows.Find(id);

            if (row == null)
            {
                row = new web_db._Weighing.TblPortageRow
                {
                    Id             = Guid.NewGuid(),
                    Date           = DateTime.Now,
                    Code           = 1,
                    FkPortage      = idp,
                    FkContract     = fkcontract,
                    FkContractType = ppp.Id,
                    FkUser         = User._getuserid().Value,
                };
                db.TblPortageRows.Add(row);
            }



            if (L1.HasValue)
            {
                row.CodeLocation = L1 + (L2.HasValue ? ("-" + L2 + (L3.HasValue ? ("-" + L3) : "")) : "");

                var ll1 = web_sard.Models.cl._ListLocation.SingleOrDefault(a => a.CodeFull == row.CodeLocation && a.Isdell == false);
                if (ll1 == null)
                {
                    return(Json(Newtonsoft.Json.JsonConvert.SerializeObject(new { ok = false, txt = "فاز و سالن و طبقه اشتباه است - ثبت انجام نشد" })));
                }

                if (ll1.FkP.HasValue)
                {
                    var ll2 = web_sard.Models.cl._ListLocation.SingleOrDefault(a => a.Id == ll1.FkP);

                    if (ll2.FkP.HasValue)
                    {
                        row.FkLocation1 = ll2.FkP.Value;
                        row.FkLocation2 = ll1.FkP;
                        row.FkLocation3 = ll1.Id;
                    }
                    else
                    {
                        row.FkLocation1 = ll1.FkP.Value;
                        row.FkLocation2 = ll1.Id;
                    }
                }
                else
                {
                    row.FkLocation1 = ll1.Id;
                }
            }


            row.Count = (pkind.Manfi ? -1 : 1) * Count;

            if (Weight > 0)
            {
                row.WeightOne = (float)(((decimal)Weight) / (decimal)row.Count).gadrmotlagh();

                row.WeightPalet1 = (decimal)Weight;
            }
            row.FkPacking = FkPacking;
            row.FkProduct = FkProduct;
            row.Txt       = Txt;

            row.TxtPackingProduct = ((db.TblProducts.Find(FkProduct) ?? new web_db._Weighing.TblProduct()).Title + " " + db.TblPackings.Find(FkPacking).Title).Trim();
            db.TblPortageRowInjuries.RemoveRange(db.TblPortageRowInjuries.Where(a => a.FkPortageRow == row.Id));
            foreach (var item in FkInjurys)
            {
                db.TblPortageRowInjuries.Add(new web_db._Weighing.TblPortageRowInjury {
                    FkPortageRow = row.Id, FkInjury = item
                });
            }


            #region Peer


            if (Models.tbls.portage.kindPortage.istofrom(pp.KindCode))
            {
                var porPeer = db.TblPortages.Find(pp._FkPortagePeer);
                var rowPeer = db.TblPortageRows.Find(row.FkRowPeer);
                if (rowPeer == null)
                {
                    rowPeer = new web_db._Weighing.TblPortageRow {
                        Id        = Guid.NewGuid(),
                        FkRowPeer = row.Id
                    };
                    row.FkRowPeer = rowPeer.Id;
                    db.TblPortageRows.Add(rowPeer);
                }



                rowPeer.FkPortage      = porPeer.Id;
                rowPeer.FkContractType = porPeer.FkContracttype;
                rowPeer.FkPacking      = row.FkPacking;
                rowPeer.FkProduct      = row.FkProduct;
                rowPeer.FkContract     = fkcontractpeer;


                rowPeer.Code  = row.Code;
                rowPeer.Date  = row.Date;
                rowPeer.Count = row.Count;

                rowPeer.Txt    = row.Txt;
                rowPeer.FkUser = row.FkUser;



                rowPeer.WeightOne    = row.WeightOne;
                rowPeer.WeightPalet1 = row.WeightPalet1;



                rowPeer.CodeLocation = peerloc;



                if (ll1P.FkP.HasValue)
                {
                    var ll2P = web_sard.Models.cl._ListLocation.SingleOrDefault(a => a.Id == ll1P.FkP);

                    if (ll2P.FkP.HasValue)
                    {
                        rowPeer.FkLocation1 = ll2P.FkP.Value;
                        rowPeer.FkLocation2 = ll1P.FkP;
                        rowPeer.FkLocation3 = ll1P.Id;
                    }
                    else
                    {
                        rowPeer.FkLocation1 = ll1P.FkP.Value;
                        rowPeer.FkLocation2 = ll1P.Id;
                    }
                }
                else
                {
                    rowPeer.FkLocation1 = ll1P.Id;
                }



                //      rowPeer.TxtPackingProduct =row.TxtPackingProduct,
            }

            #endregion


            db.SaveChanges();


            return(Json(Newtonsoft.Json.JsonConvert.SerializeObject(new { ok = true, txt = "ثبت انجام شد" })));
        }
Beispiel #4
0
        public IActionResult Movement(Guid id, long Count, Guid FkNewLocation)
        {
            var x       = db.TblStoreLogs.Find(id);
            var contype = cl._ListContractType(User._getuserSalMaliDef()).Single(a => a.Id == x.FkContractType);



            if (x.Count < 0 || Count > x.Count || Count < 0)
            {
                return(Redirect(Request.UrlReferer()));
            }
            var row1 = new web_db._Weighing.TblPortageRow
            {
                FkContract     = x.FkContract,
                Date           = DateTime.Now,
                FkPacking      = x.FkPacking,
                FkProduct      = x.FkProduct,
                Id             = Guid.NewGuid(),
                Txt            = "جابجایی",
                FkUser         = User._getuserid().Value,
                FkContractType = contype.Id
            };


            {
                row1.FkLocation1  = x.FkLocation1;
                row1.FkLocation2  = x.FkLocation2;
                row1.FkLocation3  = x.FkLocation3;
                row1.CodeLocation = (
                    cl._ListLocation.SingleOrDefault(a => a.Id == row1.FkLocation3) ??
                    cl._ListLocation.SingleOrDefault(a => a.Id == row1.FkLocation2) ??
                    cl._ListLocation.SingleOrDefault(a => a.Id == row1.FkLocation1) ?? new web_db._Weighing.TblLocation()).CodeFull;
                row1.Count     = -Count;
                row1.WeightOne = (double?)(x.Weight / x.Count);
                db.TblPortageRows.Add(row1);
            }
            var row2 = new web_db._Weighing.TblPortageRow
            {
                FkContract     = x.FkContract,
                Date           = DateTime.Now,
                FkPacking      = x.FkPacking,
                FkProduct      = x.FkProduct,
                Id             = Guid.NewGuid(),
                Txt            = "جابجایی",
                FkUser         = User._getuserid().Value,
                FkContractType = x.FkContractType,
            };

            {
                {
                    var ll1 = cl._ListLocation.SingleOrDefault(a => a.Id == FkNewLocation);
                    row2.CodeLocation = ll1.CodeFull;

                    if (ll1.FkP.HasValue)
                    {
                        var ll2 = cl._ListLocation.SingleOrDefault(a => a.Id == ll1.FkP);

                        if (ll2.FkP.HasValue)
                        {
                            row2.FkLocation1 = ll2.FkP.Value;
                            row2.FkLocation2 = ll1.FkP;
                            row2.FkLocation3 = ll1.Id;
                        }
                        else
                        {
                            row2.FkLocation1 = ll1.FkP.Value;
                            row2.FkLocation2 = ll1.Id;
                        }
                    }
                    else
                    {
                        row2.FkLocation1 = ll1.Id;
                    }
                }

                row2.Count     = Count;
                row2.WeightOne = (double?)(x.Weight / x.Count);
                db.TblPortageRows.Add(row2);
            }
            db.SaveChanges();


            Models.cl.refTblStoreLogcontractSardKhane(x.FkContract.Value, db);



            db.SaveChanges();
            return(Redirect(Request.UrlReferer()));



            return(null);
        }
Beispiel #5
0
        public JsonResult AddlistRow(Guid idp, Guid id, int?L1, int?L2, int?L3, long Count, Guid fkcontract, Guid?FkPacking, Guid?FkProduct, Guid[] FkInjurys, string Txt, bool isNimPalet = false)
        {
            if (Count < 1)
            {
                return(Json(Newtonsoft.Json.JsonConvert.SerializeObject(new { ok = false, txt = "تعداد اشتباه است - ثبت انجام نشد" })));
            }
            if ((FkPacking == Guid.Empty) || (FkPacking == null))
            {
                return(Json(Newtonsoft.Json.JsonConvert.SerializeObject(new { ok = false, txt = "سبد انتخاب نشده است - ثبت انجام نشد" })));
            }


            var pp = db.TblPortages.Find(idp);

            if ((pp.FkSalmali != User._getuserSalMaliDef()) || (pp.IsEnd) || (pp.IsDel))
            {
                return(Json(Newtonsoft.Json.JsonConvert.SerializeObject(new { ok = false, txt = "ثبت انجام نشد - غیر مجاز" })));
            }

            if (pp._FkPortagePeer.HasValue)
            {
                return(Json(Newtonsoft.Json.JsonConvert.SerializeObject(new { ok = false, txt = "ثبت انجام نشد - غیر مجاز" })));
            }

            var ppp = db.TblContractTypes.Find(pp.FkContracttype);



            if (ppp.KindCotractType == web_db._Weighing.TblContractType.KindCotractTypeEnum.ASardKhane)
            {
                var conf  = ppp.ConfigASardKhane();
                var pkind = Models.tbls.portage.kindPortage.listkindcontract.Single(a => a.code == pp.KindCode);

                if ((FkProduct == Guid.Empty) || (FkProduct == null))
                {
                    return(Json(Newtonsoft.Json.JsonConvert.SerializeObject(new { ok = false, txt = "محصول انتخاب نشده است - ثبت انجام نشد" })));
                }

                if (conf.NeedLocation)
                {
                    if (conf.LocationLvlRequired > 0)
                    {
                        if ((L1 ?? 0) < 1)
                        {
                            return(Json(Newtonsoft.Json.JsonConvert.SerializeObject(new { ok = false, txt = "فاز اشتباه است - ثبت انجام نشد" })));
                        }
                    }
                    if (conf.LocationLvlRequired > 1)
                    {
                        if ((L2 ?? 0) < 1)
                        {
                            return(Json(Newtonsoft.Json.JsonConvert.SerializeObject(new { ok = false, txt = "سالن اشتباه است - ثبت انجام نشد" })));
                        }
                    }
                    if (conf.LocationLvlRequired > 2)
                    {
                        if ((L3 ?? 0) < 1)
                        {
                            return(Json(Newtonsoft.Json.JsonConvert.SerializeObject(new { ok = false, txt = "طبقه اشتباه است - ثبت انجام نشد" })));
                        }
                    }
                }

                var row = db.TblPortageRows.Find(id);

                if (row == null)
                {
                    row = new web_db._Weighing.TblPortageRow
                    {
                        Id             = Guid.NewGuid(),
                        Date           = DateTime.Now,
                        Code           = 1,
                        FkPortage      = idp,
                        FkContract     = fkcontract,
                        FkContractType = ppp.Id,
                        FkUser         = User._getuserid().Value,
                    };
                    db.TblPortageRows.Add(row);
                }



                if (L1.HasValue)
                {
                    row.CodeLocation = L1 + (L2.HasValue ? ("-" + L2 + (L3.HasValue ? ("-" + L3) : "")) : "");

                    var ll1 = cl._ListLocation.SingleOrDefault(a => a.CodeFull == row.CodeLocation && a.Isdell == false);
                    if (ll1 == null)
                    {
                        return(Json(Newtonsoft.Json.JsonConvert.SerializeObject(new { ok = false, txt = "فاز و سالن و طبقه اشتباه است - ثبت انجام نشد" })));
                    }

                    if (ll1.FkP.HasValue)
                    {
                        var ll2 = cl._ListLocation.SingleOrDefault(a => a.Id == ll1.FkP);

                        if (ll2.FkP.HasValue)
                        {
                            row.FkLocation1 = ll2.FkP.Value;
                            row.FkLocation2 = ll1.FkP;
                            row.FkLocation3 = ll1.Id;
                        }
                        else
                        {
                            row.FkLocation1 = ll1.FkP.Value;
                            row.FkLocation2 = ll1.Id;
                        }
                    }
                    else
                    {
                        row.FkLocation1 = ll1.Id;
                    }
                }


                row.Count             = (pkind.Manfi ? -1 : 1) * Count;
                row.FkPacking         = FkPacking;
                row.FkProduct         = FkProduct;
                row.Txt               = Txt;
                row.IsNimPalet        = isNimPalet;
                row.TxtPackingProduct = db.TblProducts.Find(FkProduct).Title + " " + db.TblPackings.Find(FkPacking).Title;
                db.TblPortageRowInjuries.RemoveRange(db.TblPortageRowInjuries.Where(a => a.FkPortageRow == row.Id));
                foreach (var item in FkInjurys)
                {
                    db.TblPortageRowInjuries.Add(new web_db._Weighing.TblPortageRowInjury {
                        FkPortageRow = row.Id, FkInjury = item
                    });
                }
                db.SaveChanges();
            }


            return(Json(Newtonsoft.Json.JsonConvert.SerializeObject(new { ok = true, txt = "ثبت انجام شد" })));
        }
Beispiel #6
0
        private porret[] ClonePortage(Guid id, int setYear, bool image)
        {
            var portage  = db.TblPortages.Find(id);
            var customer = db.TblCustomers.Find(portage.FkCustomer);
            var Clone    = db.TblPortages.SingleOrDefault(a => a.Code == portage.Code && a.KindCode == portage.KindCode && a.FkSalmali == setYear);

            var contype       = db.TblContractTypes.Find(portage.FkContracttype);
            var contypeclone  = db.TblContractTypes.Single(a => a.Code == contype.Code && a.FkSalmali == setYear);
            var customerClone = db.TblCustomers.SingleOrDefault(a => a.Code == customer.Code && a.FkSalmali == setYear);;


            if (contypeclone.KindCotractType == web_db._Weighing.TblContractType.KindCotractTypeEnum.ASardKhane)
            {
                #region Clone Portage
                {
                    if (Clone == null)
                    {
                        Clone = new web_db._Weighing.TblPortage
                        {
                            FkSalmali = setYear,
                            Id        = Guid.NewGuid(),
                        };

                        db.TblPortages.Add(Clone);
                    }
                    Clone.FkContracttype = contypeclone.Id;
                    Clone.FkCustomer     = customerClone.Id;
                    Clone.CarMashin      = portage.CarMashin;
                    Clone.CarRanande     = portage.CarRanande;
                    Clone.CarShMashin    = portage.CarShMashin;
                    Clone.CarTell        = portage.CarTell;
                    Clone.Code           = portage.Code;
                    Clone.Date1          = portage.Date1;
                    Clone.Date2          = portage.Date2;
                    Clone.Dateadd1       = portage.Dateadd1;
                    Clone.Dateadd2       = portage.Dateadd2;
                    Clone.Dateedit1      = portage.Dateedit1;
                    Clone.Dateedit2      = portage.Dateedit2;
                    Clone.FkCar          = portage.FkCar;

                    Clone.FkUsAdd1        = portage.FkUsAdd1;
                    Clone.FkUsAdd2        = portage.FkUsAdd2;
                    Clone.FkUsEdit1       = portage.FkUsEdit1;
                    Clone.FkUsEdit2       = portage.FkUsEdit2;
                    Clone.FkUsPermit      = portage.FkUsPermit;
                    Clone.IsDel           = portage.IsDel;
                    Clone.IsEnd           = portage.IsEnd;
                    Clone.IsPermitOk      = portage.IsPermitOk;
                    Clone.KindCode        = portage.KindCode;
                    Clone.KindTitle       = portage.KindTitle;
                    Clone.OtcodeResid     = portage.OtcodeResid;
                    Clone.PackingCount    = portage.PackingCount;
                    Clone.PackingOfWeight = portage.PackingOfWeight;
                    Clone.SmsOk           = portage.SmsOk;
                    // Clone.SaveFaktor = portage.SaveFaktor;
                    Clone.SmsVaziat = portage.SmsVaziat;
                    //    Clone.SumMoney = portage.SumMoney;
                    Clone.Txt             = portage.Txt;
                    Clone.Weight1         = portage.Weight1;
                    Clone.Weight1IsBascul = portage.Weight1IsBascul;
                    Clone.TxtPermit       = portage.TxtPermit;
                    Clone.Weight2         = portage.Weight2;
                    Clone.Weight2IsBascul = portage.Weight2IsBascul;
                    Clone.WeightNet       = portage.WeightNet;
                }
                #endregion


                #region Clone PortageRows
                foreach (var item in db.TblPortageRows.Include(a => a.TblPortageRowInjuries).Where(a => a.FkPortage == Clone.Id))
                {
                    db.TblPortageRowInjuries.RemoveRange(item.TblPortageRowInjuries);
                    db.TblPortageRows.Remove(item);
                }



                foreach (var item in db.TblPortageRows.Include(a => a.TblPortageRowInjuries).Where(a => a.FkPortage == portage.Id))
                {
                    var cont      = db.TblContracts.Find(item.FkContract);
                    var contClone = db.TblContracts.Single(a => a.Code == cont.Code && a.FkSalmali == setYear);

                    var v = new web_db._Weighing.TblPortageRow
                    {
                        Id             = Guid.NewGuid(),
                        FkContractType = Clone.FkContracttype,
                        FkContract     = contClone.Id,
                        FkPortage      = Clone.Id,
                        Code           = item.Code,
                        CodeLocation   = item.CodeLocation,
                        Count          = item.Count,
                        Date           = item.Date,
                        FkLocation1    = item.FkLocation1,
                        FkLocation2    = item.FkLocation2,
                        FkLocation3    = item.FkLocation3,
                        FkPacking      = item.FkPacking,
                        FkProduct      = item.FkProduct,
                        FkUser         = item.FkUser,
                        IsNimPalet     = item.IsNimPalet,
                        Txt            = item.Txt,
                        WeightOne      = item.WeightOne
                    };

                    db.TblPortageRows.Add(v);

                    foreach (var iteminj in item.TblPortageRowInjuries)
                    {
                        db.TblPortageRowInjuries.Add(new web_db._Weighing.TblPortageRowInjury {
                            FkInjury = iteminj.FkInjury, FkPortageRow = v.Id
                        });
                    }
                }


                #endregion

                #region Clone images
                var dbdoc = new web_dbDocument.db_Context();

                dbdoc.TblDocuments.RemoveRange(dbdoc.TblDocuments.Where(a => a.FkPortage == Clone.Id || a.FkP == Clone.Id));
                if (image)
                {
                    foreach (var item in dbdoc.TblDocuments.Where(a => a.FkPortage == portage.Id))
                    {
                        var c = new web_dbDocument.TblDocument
                        {
                            Id = Guid.NewGuid(),

                            Date   = item.Date,
                            Image  = item.Image,
                            Kind   = item.Kind,
                            FkP    = Clone.Id,
                            Format = item.Format
                        };

                        dbdoc.TblDocuments.Add(c);
                    }
                }
                #endregion


                db.SaveChanges();
                dbdoc.SaveChanges();
                var x = db.TblPortageRows.Where(a => a.FkPortage == Clone.Id);
                return(x.Select(a => new porret {
                    id = (Guid)a.FkContract, Product = true
                }).Distinct().ToArray());
            }
            else if (contypeclone.KindCotractType == web_db._Weighing.TblContractType.KindCotractTypeEnum.ASabad)

            {
                #region Clone Portage
                {
                    if (Clone == null)
                    {
                        Clone = new web_db._Weighing.TblPortage
                        {
                            FkSalmali = setYear,
                            Id        = Guid.NewGuid(),
                        };

                        db.TblPortages.Add(Clone);
                    }
                    Clone.FkContracttype = contypeclone.Id;
                    Clone.FkCustomer     = customerClone.Id;
                    Clone.CarMashin      = portage.CarMashin;
                    Clone.CarRanande     = portage.CarRanande;
                    Clone.CarShMashin    = portage.CarShMashin;
                    Clone.CarTell        = portage.CarTell;
                    Clone.Code           = portage.Code;
                    Clone.Date1          = portage.Date1;
                    Clone.Date2          = portage.Date2;
                    Clone.Dateadd1       = portage.Dateadd1;
                    Clone.Dateadd2       = portage.Dateadd2;
                    Clone.Dateedit1      = portage.Dateedit1;
                    Clone.Dateedit2      = portage.Dateedit2;
                    Clone.FkCar          = portage.FkCar;

                    Clone.FkUsAdd1        = portage.FkUsAdd1;
                    Clone.FkUsAdd2        = portage.FkUsAdd2;
                    Clone.FkUsEdit1       = portage.FkUsEdit1;
                    Clone.FkUsEdit2       = portage.FkUsEdit2;
                    Clone.FkUsPermit      = portage.FkUsPermit;
                    Clone.IsDel           = portage.IsDel;
                    Clone.IsEnd           = portage.IsEnd;
                    Clone.IsPermitOk      = portage.IsPermitOk;
                    Clone.KindCode        = portage.KindCode;
                    Clone.KindTitle       = portage.KindTitle;
                    Clone.OtcodeResid     = portage.OtcodeResid;
                    Clone.PackingCount    = portage.PackingCount;
                    Clone.PackingOfWeight = portage.PackingOfWeight;
                    Clone.SmsOk           = portage.SmsOk;
                    // Clone.SaveFaktor = portage.SaveFaktor;
                    Clone.SmsVaziat = portage.SmsVaziat;
                    //    Clone.SumMoney = portage.SumMoney;
                    Clone.Txt             = portage.Txt;
                    Clone.Weight1         = portage.Weight1;
                    Clone.Weight1IsBascul = portage.Weight1IsBascul;
                    Clone.TxtPermit       = portage.TxtPermit;
                    Clone.Weight2         = portage.Weight2;
                    Clone.Weight2IsBascul = portage.Weight2IsBascul;
                    Clone.WeightNet       = portage.WeightNet;
                }
                #endregion


                #region Clone PortageRows


                foreach (var item in db.TblPortageRows.Where(a => a.FkPortage == Clone.Id))
                {
                    db.TblPortageRowInjuries.RemoveRange(db.TblPortageRowInjuries.Where(a => a.FkPortageRow == item.Id));
                    db.TblPortageRows.Remove(item);
                }
                foreach (var item in db.TblPortageRows.Where(a => a.FkPortage == portage.Id))
                {
                    var cont      = db.TblContracts.Find(item.FkContract);
                    var contClone = db.TblContracts.Single(a => a.Code == cont.Code && a.FkSalmali == setYear);

                    var v = new web_db._Weighing.TblPortageRow
                    {
                        Id             = Guid.NewGuid(),
                        FkContractType = Clone.FkContracttype,
                        FkContract     = contClone.Id,
                        FkPortage      = Clone.Id,
                        Code           = item.Code,
                        CodeLocation   = item.CodeLocation,
                        Count          = item.Count,
                        Date           = item.Date,
                        FkLocation1    = item.FkLocation1,
                        FkLocation2    = item.FkLocation2,
                        FkLocation3    = item.FkLocation3,
                        FkPacking      = item.FkPacking,
                        FkProduct      = item.FkProduct,
                        FkUser         = item.FkUser,
                        IsNimPalet     = item.IsNimPalet,
                        Txt            = item.Txt,
                        WeightOne      = item.WeightOne
                    };

                    db.TblPortageRows.Add(v);

                    foreach (var iteminj in db.TblPortageRowInjuries.Where(a => a.FkPortageRow == item.Id))
                    {
                        db.TblPortageRowInjuries.Add(new web_db._Weighing.TblPortageRowInjury {
                            FkInjury = iteminj.FkInjury, FkPortageRow = v.Id
                        });
                    }
                }


                #endregion


                #region Clone images
                var dbdoc = new web_dbDocument.db_Context();

                dbdoc.TblDocuments.RemoveRange(dbdoc.TblDocuments.Where(a => a.FkPortage == Clone.Id));
                foreach (var item in dbdoc.TblDocuments.Where(a => a.FkPortage == portage.Id))
                {
                    var c = new web_dbDocument.TblDocument
                    {
                        Id    = Guid.NewGuid(),
                        FkP   = Clone.Id,
                        Date  = item.Date,
                        Image = item.Image,
                        Kind  = item.Kind
                    };

                    dbdoc.TblDocuments.Add(c);
                }

                #endregion
                dbdoc.SaveChanges();
                db.SaveChanges();
                return(new porret[] { new porret {
                                          id = contypeclone.Id, Product = false
                                      } });
            }

            return(null);
        }
Beispiel #7
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);
                    }
                }
            }
        }
        public IActionResult CreateIN(Guid idtype, int kindPortage, Models.tbls.portage.portage model)
        {
            ModelState.Remove("Weight2");
            ModelState.Remove("Date2date");
            ModelState.Remove("Date2time");
            ModelState.Remove("Customer.Mob");
            ModelState.Remove("Customer.NationalCode");
            ModelState.Remove("Customer.Code");
            ModelState.Remove("Customer.Title");
            ModelState.Remove("Customer.Id");
            ModelState.Remove("FkCarTbl");

            var typecontract = db.TblContractTypes.Find(idtype);



            if (typecontract.KindCotractType == web_db._Weighing.TblContractType.KindCotractTypeEnum.ABaskul)
            {
                var conf = typecontract.ConfigABaskul();

                if (ModelState.IsValid && ((model.ListRows.FirstOrDefault() ?? new Models.tbls.portage.PortageRow()).FkPacking.IsEmpty() == false))
                {
                    var x = db.TblPortages.Find(model.Id);
                    if (x == null)
                    {
                        model.Code = (db.TblPortages.Where(a => a.FkSalmali == User._getuserSalMaliDef() && a.FkContracttype == idtype && a.KindCode == kindPortage).Max(a => (long?)a.Code) ?? 0) + 1;



                        x = new web_db._Weighing.TblPortage
                        {
                            FkSalmali      = User._getuserSalMaliDef(),
                            Code           = model.Code,
                            Dateadd1       = DateTime.Now,
                            FkContracttype = idtype,
                            FkUsAdd1       = User._getuserid().Value,
                            Id             = model.Id,
                            KindCode       = kindPortage,
                            KindTitle      = "توزین",
                        };
                        db.TblPortages.Add(x);
                    }
                    else
                    {
                        x.Dateedit1 = DateTime.Now;
                        x.FkUsEdit1 = User._getuserid().Value;
                    }


                    var dbdoc = new web_dbDocument.db_Context();



                    x.CarMashin   = model.CarMashin;
                    x.CarRanande  = model.CarRanande;
                    x.CarShMashin = model.CarShMashin;
                    x.CarTell     = model.CarTell;
                    x.FkCar       = model.FkCar;
                    x.CarMashin   = cl._ListCar.Single(a => a.Id == model.FkCar).Title;

                    x.FkCustomer = model.FkCustomer;
                    if (x.Weight1 != model.Weight1)
                    {
                        var z = cl.captureDorbinBaskul();
                        if (z != null)
                        {
                            dbdoc.TblDocuments.Add(new web_dbDocument.TblDocument
                            {
                                Date = DateTime.Now,
                                FkP  = x.Id,
                                Id   = Guid.NewGuid(),

                                Image  = z,
                                Kind   = "InBaskul",
                                Format = ""
                            });
                        }
                    }
                    x.Weight1         = model.Weight1;
                    x.Weight1IsBascul = model.Weight1IsBascul;
                    x.Txt             = model.Txt;
                    x.Date1           = model.Date1date.ToDate().AddHours(model.Date1time.Hours).AddMinutes(model.Date1time.Minutes);
                    x.IsDel           = false;
                    x.IsPermitOk      = null;
                    x.FkUsPermit      = null;
                    x.TxtPermit       = "";

                    var c = db.TblPortageRows.FirstOrDefault(a => a.FkPortage == x.Id);
                    if (c == null)
                    {
                        c = new web_db._Weighing.TblPortageRow
                        {
                            Id             = Guid.NewGuid(),
                            Code           = 1,
                            Count          = 0,
                            Date           = DateTime.Now,
                            FkPortage      = x.Id,
                            FkPacking      = model.ListRows.First().FkPacking,
                            FkUser         = User._getuserid().Value,
                            FkContractType = typecontract.Id,
                        };
                        db.TblPortageRows.Add(c);
                    }
                    else
                    {
                        c.FkPacking = model.ListRows.First().FkPacking;
                    }
                    c.TxtPackingProduct = (c.FkPacking.HasValue ? (db.TblPackings.Find(c.FkPacking).Title) : "");



                    ViewBag.error = checkportage(x);
                    if (((string)ViewBag.error).IsEmpty())
                    {
                        x.Weight1   = model.Weight1;
                        x.WeightNet = model.Weight2.HasValue?(x.Weight1 - x.Weight2).gadrmotlagh():null;


                        db.SaveChanges();
                        dbdoc.SaveChanges();


                        return(RedirectToAction("index", new { idtype = x.FkContracttype }));
                    }
                }
                ViewData["type"]        = db.TblContractTypes.Find(idtype);
                ViewData["kindPortage"] = kindPortage;


                ViewData["listcustumer"] = cus(typecontract, model);



                return(View(model));
            }


            return(null);
        }
Beispiel #9
0
        public PortageRow(web_db._Weighing.TblPortageRow row, web_db.sardweb_Context db, bool portage, bool peer = false, bool __Dif = false)
        {
            this.Code      = row.Code;
            this.Count     = row.Count.gadrmotlagh();
            this.WeightOne = row.WeightOne;



            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 || __Dif))
            {
                tblportage = new portage(db.TblPortages.Find(this.fkportage), db);
            }
            if (__Dif)
            {
                WeightOneOther = (from n in db.TblPortageRows.Include(a => a.FkPortageNavigation)
                                  let p = n.FkPortageNavigation
                                          where
                                          (p.IsDel == false)
                                          &&
                                          (p.IsEnd == true) &&
                                          p.Id != fkportage
                                          &&
                                          (p.KindCode == tblportage.KindCode) &&

                                          (n.FkContract == FkContract && n.FkProduct == FkProduct && n.FkPacking == FkPacking)
                                          select n.WeightOne).Average();
            }


            this.Txt = row.Txt;

            if (peer == true && row.FkRowPeer.HasValue)
            {
                rowPeer = new web_sard.Areas.ASurting.Models.tbls.portage.PortageRow(db.TblPortageRows.Find(row.FkRowPeer), db, false, false);
            }
        }