コード例 #1
0
ファイル: contract.cs プロジェクト: kpkamrava/web_sard
        public static bool IsPermitOK(web_db._Weighing.TblPortage por, web_db.sardweb_Context db)
        {
            if (por.KindCode == (int)portage.kindPortage.kindPortageEnum.In)
            {
                long?   countForIn;
                decimal?weightForIn;
                cl.GetMojavez(por.FkCustomer, por.FkContracttype, db, true, out countForIn, out weightForIn);


                countForIn  -= por.PackingCount;
                weightForIn -= por.WeightNet;


                if (countForIn < 0 || weightForIn < 0)
                {
                    return(false);
                }
            }

            if (por.KindCode == (int)portage.kindPortage.kindPortageEnum.Out)
            {
                long?   countForOut;
                decimal?weightForOut;
                cl.GetMojavez(por.FkCustomer, por.FkContracttype, db, false, out countForOut, out weightForOut);
                countForOut  += por.PackingCount;
                weightForOut += por.WeightNet;


                if (countForOut < 0 || weightForOut < 0)
                {
                    return(false);
                }
            }
            return(true);
        }
コード例 #2
0
        string checkportage(web_db._Weighing.TblPortage row)
        {
            var x = db.TblPortageRows.Where(a => a.FkPortage == row.Id && a.FkContract != null).Include(a => a.FkContractNavigation).Select(a => a.FkContractNavigation).Distinct();

            if (x.Any(a => a.FkCustomer != row.FkCustomer))
            {
                return("اشکال در ساختار -  طرف حساب با قرارداد همخوانی ندارد");
            }



            return("");
        }
コード例 #3
0
        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.ASabad)
            {
                ModelState.Remove("Weight1");


                var conf = typecontract.ConfigASabad();


                if (ModelState.IsValid)
                {
                    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      = Models.tbls.portage.kindPortage.listkindcontract.Find(a => a.code == kindPortage).txt,
                        };
                        db.TblPortages.Add(x);
                    }
                    else
                    {
                        x.Dateedit1 = DateTime.Now;
                        x.FkUsEdit1 = User._getuserid().Value;
                    }



                    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;
                    var dbdoc = new web_dbDocument.db_Context();

                    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       = "";

                    ViewBag.error = checkportage(x);
                    if (((string)ViewBag.error).IsEmpty())
                    {
                        db.SaveChanges();
                        dbdoc.SaveChanges();
                        Models.cl._refstoreTow(db, x.Id);
                        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);
        }
コード例 #4
0
        public portage(web_db._Weighing.TblPortage row, web_db.sardweb_Context db, bool rowChilds = false, bool isprint = false, bool documents = false)
        {
            this.Code  = row.Code;
            this.Date1 = row.Date1;

            this.Date1date = row.Date1.ToPersianDate();
            this.Date1time = new TimeSpan(row.Date1.Hour, row.Date1.Minute, 0);
            this.Date2     = row.Date2;
            if (Date2.HasValue)
            {
                this.Date2date = row.Date2.ToPersianDate();
                this.Date2time = new TimeSpan(row.Date2.Value.Hour, row.Date2.Value.Minute, 0);
            }
            this.FkSalmali       = row.FkSalmali;
            this.Id              = row.Id;
            this.KindCode        = row.KindCode;
            this.KindTitle       = row.KindTitle;
            this.PackingCount    = row.PackingCount;
            this.PackingOfWeight = row.PackingOfWeight;
            this.Txt             = row.Txt;
            this.Weight1         = row.Weight1;
            this.Weight2         = row.Weight2;
            this.WeightNet       = row.WeightNet;

            this.CarRanande = row.CarRanande;

            this.CarShMashin = row.CarShMashin;

            this.CarTell = row.CarTell;

            this.CarMashin = row.CarMashin;

            this.Weight1IsBascul = row.Weight1IsBascul;
            this.Weight2IsBascul = row.Weight2IsBascul;



            this.IsDel = row.IsDel;
            this.IsEnd = row.IsEnd;

            {
                this.FkCustomer = row.FkCustomer;
                var cus = row.FkCustomerNavigation ?? db.TblCustomers.Find(FkCustomer);
                this.Customer       = new customer.customer();
                this.Customer.Title = cus.Title;
                this.Customerstr    = cus.Title;
                this.Customer.Id    = cus.Id;
                if (rowChilds)
                {
                    this.Customer = Models.tbls.customer.customer.get(cus, db);
                }
            }

            this.Dateadd1  = row.Dateadd1.ToPersianDateTime();
            this.Dateedit1 = row.Dateedit1.ToPersianDateTime();
            this.UsAdd1    = (db.TblUsers.Find(row.FkUsAdd1) ?? new web_db.TblUser()).Title;
            this.UsEdit1   = (db.TblUsers.Find(row.FkUsEdit1) ?? new web_db.TblUser()).Title;

            this.Dateadd2       = row.Dateadd2.ToPersianDateTime();
            this.Dateedit2      = row.Dateedit2.ToPersianDateTime();
            this.UsAdd2         = (db.TblUsers.Find(row.FkUsAdd2) ?? new web_db.TblUser()).Title;
            this.UsEdit2        = (db.TblUsers.Find(row.FkUsEdit2) ?? new web_db.TblUser()).Title;
            this.FkContractType = row.FkContracttype;
            this.ContractType   = new contract.ContractType(db.TblContractTypes.Single(a => a.Id == this.FkContractType));
            this.FkCar          = row.FkCar;

            this.SmsOk       = row.SmsOk;
            this.OtcodeResid = row.OtcodeResid;
            this.SmsVaziat   = row.SmsVaziat;
            this.UsPermit    = (db.TblUsers.Find(row.FkUsPermit) ?? new web_db.TblUser()).Title;
            this.IsPermitOk  = row.IsPermitOk;
            this.TxtPermit   = row.TxtPermit ?? "";
            ListRows         = new List <PortageRow>()
            {
                new PortageRow()
            };
            Sadamat = new List <alltbl>()
            {
                new alltbl()
            };
            SadamatStr = "";
            if (rowChilds)
            {
                ListRows = new List <PortageRow>();
                var z = db.TblPortageRows.Where(a => a.FkPortage == this.Id).OrderBy(a => a.Date).Select(a => new PortageRow(a, db));
                ListRows = z.ToList();
                var zs = z.Select(a => a.ListInjurysTbl);
                if (zs.Any())
                {
                    Sadamat = new List <alltbl>();
                }

                if (isprint)
                {
                    var t = new List <alltbl>();
                    foreach (var item in zs)
                    {
                        t.AddRange(item);
                    }
                    Sadamat    = t.GroupBy(a => a.key).Select(a => a.First()).ToList();
                    SadamatStr = string.Join(" , ", Sadamat.Select(a => a.title));
                }
            }

            Documents = new List <PortageDocument>();
            if (documents)
            {
                Documents = db.TblDocuments.Where(a => a.FkPortage == row.Id).OrderByDescending(a => a.Date).Select(a => new PortageDocument(a)).ToList();


                DocumentSign = Documents.SingleOrDefault(a => a.Kind == "Sign");
            }
        }
コード例 #5
0
ファイル: YearController.cs プロジェクト: kpkamrava/web_sard
        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);
        }
コード例 #6
0
        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 kindPortageenum = (web_sard.Areas.ASurting.Models.tbls.portage.kindPortage.kindPortageEnum)kindPortage;

            if (kindPortageenum == Models.tbls.portage.kindPortage.kindPortageEnum.InFromSardkhane || kindPortageenum == Models.tbls.portage.kindPortage.kindPortageEnum.OutToSardkhane ||
                kindPortageenum == Models.tbls.portage.kindPortage.kindPortageEnum.InFromAnbar || kindPortageenum == Models.tbls.portage.kindPortage.kindPortageEnum.OutToAnbar)
            {
                ModelState.Remove("CarShMashin");
                ModelState.Remove("FkCar");
                ModelState.Remove("CarRanande");
                ModelState.Remove("CarTell");
                ModelState.Remove("Weight1IsBascul");
                ModelState.Remove("Weight1");
            }

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


            if (typecontract.KindCotractType == web_db._Weighing.TblContractType.KindCotractTypeEnum.ASurting)
            {
                var conf = typecontract.ConfigASurting();

                if (ModelState.IsValid)
                {
                    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      = Models.tbls.portage.kindPortage.listkindcontract.Find(a => a.code == kindPortage).txt,
                        };
                        db.TblPortages.Add(x);
                    }
                    else
                    {
                        x.Dateedit1 = DateTime.Now;
                        x.FkUsEdit1 = User._getuserid().Value;
                    }

                    x.CarMashin   = model.CarMashin ?? "";
                    x.CarRanande  = model.CarRanande ?? "";
                    x.CarShMashin = model.CarShMashin ?? "";
                    x.CarTell     = model.CarTell ?? "";
                    x.FkCar       = model.FkCar;
                    x.CarMashin   = (web_sard.Models.cl._ListCar.SingleOrDefault(a => a.Id == model.FkCar) ?? new web_db._Weighing.TblCar()).Title;


                    x._FkContractMain = model._FkContractMain;

                    x.FkCustomer = db.TblContracts.Find(model._FkContractMain).FkCustomer;


                    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 dbdoc = new web_dbDocument.db_Context();

                    #region captureDorbinBaskul
                    if (kindPortageenum == Models.tbls.portage.kindPortage.kindPortageEnum.In || kindPortageenum == Models.tbls.portage.kindPortage.kindPortageEnum.Out)
                    {
                        if (x.Weight1 != model.Weight1)
                        {
                            var z = web_sard.Models.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 = ""
                                });
                            }
                        }
                    }

                    #endregion



                    #region PeerSardKhane

                    if (kindPortageenum == Models.tbls.portage.kindPortage.kindPortageEnum.InFromSardkhane || kindPortageenum == Models.tbls.portage.kindPortage.kindPortageEnum.OutToSardkhane)
                    {
                        var xpkind = (kindPortageenum == Models.tbls.portage.kindPortage.kindPortageEnum.InFromSardkhane ? web_sard.Areas.ASardKhane.Models.tbls.portage.kindPortage.kindPortageEnum.OutToSurt :
                                      web_sard.Areas.ASardKhane.Models.tbls.portage.kindPortage.kindPortageEnum.InFromSurt);

                        foreach (var item in web_sard.Models.cl._ListContractType(x.FkSalmali).Where(a => a.KindCotractType == web_db._Weighing.TblContractType.KindCotractTypeEnum.ASardKhane))
                        {
                            var xp = db.TblPortages.Find(x._FkPortagePeer);

                            if (xp == null)
                            {
                                xp = new web_db._Weighing.TblPortage
                                {
                                    FkSalmali      = User._getuserSalMaliDef(),
                                    Code           = model.Code,
                                    _FkPortagePeer = x.Id,
                                    Dateadd1       = DateTime.Now,
                                    FkContracttype = item.Id,
                                    FkUsAdd1       = User._getuserid().Value,
                                    Id             = Guid.NewGuid(),
                                    KindCode       = (int)xpkind,
                                    KindTitle      = web_sard.Areas.ASardKhane.Models.tbls.portage.kindPortage.listkindcontract.Find(a => a.code == (int)xpkind).txt,
                                };
                                xp.Code = (db.TblPortages.Where(a => a.FkSalmali == User._getuserSalMaliDef() && a.FkContracttype == item.Id && a.KindCode == (int)xpkind).Max(a => (long?)a.Code) ?? 0) + 1;

                                db.TblPortages.Add(xp);



                                x._FkPortagePeer = xp.Id;
                            }
                            else
                            {
                                xp.Dateedit1 = DateTime.Now;
                                xp.FkUsEdit1 = User._getuserid().Value;
                            }



                            xp.CarMashin   = x.CarMashin ?? "";
                            xp.CarRanande  = x.CarRanande ?? "";
                            xp.CarShMashin = x.CarShMashin ?? "";
                            xp.CarTell     = x.CarTell ?? "";
                            xp.FkCar       = x.FkCar;
                            xp.CarMashin   = (web_sard.Models.cl._ListCar.SingleOrDefault(a => a.Id == model.FkCar) ?? new web_db._Weighing.TblCar()).Title;

                            xp.FkCustomer = x.FkCustomer;


                            xp.Weight1         = x.Weight1;
                            xp.Weight1IsBascul = x.Weight1IsBascul;
                            xp.Txt             = x.Txt;
                            xp.Date1           = x.Date1;
                            xp.IsDel           = false;
                            xp.IsPermitOk      = null;
                            xp.FkUsPermit      = null;
                            xp.TxtPermit       = "";
                        }
                    }



                    #endregion


                    #region PeerAnbar

                    if (kindPortageenum == Models.tbls.portage.kindPortage.kindPortageEnum.InFromAnbar || kindPortageenum == Models.tbls.portage.kindPortage.kindPortageEnum.OutToAnbar)
                    {
                        var xpkind = (kindPortageenum == Models.tbls.portage.kindPortage.kindPortageEnum.InFromAnbar ? web_sard.Areas.ASabad.Models.tbls.portage.kindPortage.kindPortageEnum.OutToSurt :
                                      web_sard.Areas.ASabad.Models.tbls.portage.kindPortage.kindPortageEnum.InFromSurt);

                        foreach (var item in web_sard.Models.cl._ListContractType(x.FkSalmali).Where(a => a.KindCotractType == web_db._Weighing.TblContractType.KindCotractTypeEnum.ASabad))
                        {
                            var xp = db.TblPortages.SingleOrDefault(a => a.FkContracttype == item.Id && a.Id == x._FkPortagePeer);

                            if (xp == null)
                            {
                                xp = new web_db._Weighing.TblPortage
                                {
                                    FkSalmali      = User._getuserSalMaliDef(),
                                    Code           = model.Code,
                                    Dateadd1       = DateTime.Now,
                                    FkContracttype = item.Id,
                                    FkUsAdd1       = User._getuserid().Value,
                                    _FkPortagePeer = x.Id,
                                    Id             = Guid.NewGuid(),
                                    KindCode       = (int)xpkind,
                                    KindTitle      = web_sard.Areas.ASabad.Models.tbls.portage.kindPortage.listkindcontract.Find(a => a.code == (int)xpkind).txt,
                                };
                                xp.Code = (db.TblPortages.Where(a => a.FkSalmali == User._getuserSalMaliDef() && a.FkContracttype == item.Id && a.KindCode == (int)xpkind).Max(a => (long?)a.Code) ?? 0) + 1;

                                db.TblPortages.Add(xp);



                                x._FkPortagePeer = xp.Id;
                            }
                            else
                            {
                                xp.Dateedit1 = DateTime.Now;
                                xp.FkUsEdit1 = User._getuserid().Value;
                            }


                            xp.CarMashin   = x.CarMashin ?? "";
                            xp.CarRanande  = x.CarRanande ?? "";
                            xp.CarShMashin = x.CarShMashin ?? "";
                            xp.CarTell     = x.CarTell ?? "";
                            xp.FkCar       = x.FkCar;
                            xp.CarMashin   = (web_sard.Models.cl._ListCar.SingleOrDefault(a => a.Id == model.FkCar) ?? new web_db._Weighing.TblCar()).Title;

                            xp.FkCustomer = x.FkCustomer;


                            xp.Weight1         = x.Weight1;
                            xp.Weight1IsBascul = x.Weight1IsBascul;
                            xp.Txt             = x.Txt;
                            xp.Date1           = x.Date1;
                            xp.IsDel           = false;
                            xp.IsPermitOk      = null;
                            xp.FkUsPermit      = null;
                            xp.TxtPermit       = "";
                        }
                    }



                    #endregion

                    ViewBag.error = checkportage(x);
                    if (((string)ViewBag.error).IsEmpty())
                    {
                        db.SaveChanges();
                        dbdoc.SaveChanges();
                        _refstoreTow(x.Id);

                        if (kindPortageenum == Models.tbls.portage.kindPortage.kindPortageEnum.InFromSardkhane || kindPortageenum == Models.tbls.portage.kindPortage.kindPortageEnum.OutToSardkhane)
                        {
                            ASardKhane.Models.cl._refstoreTow(db, x.Id);
                        }
                        if (kindPortageenum == Models.tbls.portage.kindPortage.kindPortageEnum.InFromAnbar || kindPortageenum == Models.tbls.portage.kindPortage.kindPortageEnum.OutToAnbar)
                        {
                            ASabad.Models.cl._refstoreTow(db, x.Id);
                        }


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



                var intosard = false;
                if ((kindPortage == (int)Models.tbls.portage.kindPortage.kindPortageEnum.InFromSardkhane) || (kindPortage == (int)Models.tbls.portage.kindPortage.kindPortageEnum.OutToSardkhane))
                {
                    intosard = true;
                }

                ViewBag.contrs = (from n in db.TblContracts.Include(a => a.FkContractTypeNavigation).Include(a => a.FkCustomerNavigation)
                                  where n.FkSalmali == typecontract.FkSalmali && n.FkContractType == idtype
                                  //&&

                                  //(intosard == false ? true : (n._FkContractPeer.HasValue))
                                  orderby n.Code ascending
                                  select n).ToList();


                return(View(model));
            }



            return(null);
        }