Esempio n. 1
0
        public store(web_db._Weighing.TblStoreLog n, web_db.sardweb_Context db)
        {
            var contract     = db.TblContracts.Find(n.FkContract) ?? new web_db._Weighing.TblContract();
            var contracttype = db.TblContractTypes.Find(n.FkContractType);
            var loc3         = db.TblLocations.SingleOrDefault(z => z.Id == n.FkLocation3);
            var loc2         = db.TblLocations.SingleOrDefault(z => z.Id == n.FkLocation2);
            var loc1         = db.TblLocations.SingleOrDefault(z => z.Id == n.FkLocation1);


            this.id          = n.Id;
            this.fklocation1 = n.FkLocation1;
            this.fklocation2 = n.FkLocation2;
            this.fklocation3 = n.FkLocation3;
            this.fkcontract  = n.FkContract;
            this.fkPacking   = n.FkPacking;
            this.fkProdoct   = n.FkProduct;
            this.count       = n.Count;
            this.Weight      = n.Weight;

            this.countin  = n.CountIn;
            this.Weightin = n.WeightIn;


            this.countout  = n.CountOut;
            this.Weightout = n.WeightOut;

            this.location     = (loc3 ?? loc2 ?? loc1 ?? new web_db._Weighing.TblLocation()).CodeFull;
            this.contracttype = contracttype.Title;
            this.customer     = (db.TblCustomers.Find(contract.FkCustomer) ?? new web_db.TblCustomer()).Title;
            this.contract     = contract.Code;
            this.Packing      = (db.TblPackings.SingleOrDefault(z => z.Id == n.FkPacking) ?? new web_db._Weighing.TblPacking()).Title;
            this.Prodoct      = (db.TblProducts.SingleOrDefault(z => z.Id == n.FkProduct) ?? new web_db._Weighing.TblProduct()).Title;
        }
Esempio n. 2
0
        public static void refTblStoreLogcontractTypeSabad(Guid fkcontracttype, web_db.sardweb_Context db)
        {
            var rowOK     = new List <Guid>();
            var contrType = db.TblContractTypes.Find(fkcontracttype);

            {
                var x = (from n in db.TblContracts.Include(a => a.TblPortageRows).ThenInclude(a => a.FkPortageNavigation)
                         where

                         n.FkSalmali == contrType.FkSalmali &&

                         n.FkContractType == fkcontracttype
                         select n);

                foreach (var it in x)
                {
                    var inn  = it.TblPortageRows.Where(a => a.FkPortageNavigation.IsEnd && ((a.FkPortageNavigation.KindCode == (int)kindPortage.kindPortageEnum.In) || (a.FkPortageNavigation.KindCode == (int)kindPortage.kindPortageEnum.InBack)));
                    var outt = it.TblPortageRows.Where(a => a.FkPortageNavigation.IsEnd && ((a.FkPortageNavigation.KindCode == (int)kindPortage.kindPortageEnum.Out) || (a.FkPortageNavigation.KindCode == (int)kindPortage.kindPortageEnum.OutBack)));
                    var item = new
                    {
                        c            = it,
                        SumInCount   = inn.Sum(a => a.Count),
                        SumInWeight  = inn.Sum(a => (decimal?)(a.Count * a.WeightOne)),
                        SumOutCount  = outt.Sum(a => a.Count),
                        SumOutWeight = outt.Sum(a => (decimal?)(a.Count * a.WeightOne))
                    };

                    it.SumInCount   = item.SumInCount;
                    it.SumInWeight  = item.SumInWeight;
                    it.SumOutCount  = item.SumOutCount;
                    it.SumOutWeight = item.SumOutWeight;
                }
            }


            {
                var x = db.TblPortageRows.Include(a => a.FkPortageNavigation).Where(a => a.FkContractType == fkcontracttype && (a.FkPortage.HasValue ? a.FkPortageNavigation.IsEnd : true)).AsEnumerable();


                // fkyear
                //if (contrType.KindCotractType==web_db._Weighing.TblContractType.KindCotractTypeEnum.ASardKhane)
                //{

                //    var xx = x.GroupBy(a => new { a.FkContract, a.FkLocation1, a.FkLocation2, a.FkLocation3, a.FkPacking, a.FkProduct });

                //    foreach (var item in xx)
                //    {

                //        var i = db.TblStoreLogs.SingleOrDefault(a =>
                //             a.FkContractType == contrType.Id &&
                //             a.FkSalmali == contrType.FkSalmali &&
                //             a.FkContract == item.Key.FkContract &&
                //             a.FkLocation1 == item.Key.FkLocation1 &&
                //             a.FkLocation2 == item.Key.FkLocation2 &&
                //             a.FkLocation3 == item.Key.FkLocation3 &&
                //             a.FkPacking == item.Key.FkPacking &&
                //             a.FkProduct == item.Key.FkProduct
                //            );
                //        if (i == null)
                //        {
                //            i = new web_db.TblStoreLog
                //            {
                //                Id = Guid.NewGuid(),

                //                FkContractType = fkcontracttype,
                //                FkLocation1 = item.Key.FkLocation1,
                //                FkLocation2 = item.Key.FkLocation2,
                //                FkLocation3 = item.Key.FkLocation3,
                //                FkPacking = item.Key.FkPacking,
                //                FkProduct = item.Key.FkProduct,
                //                FkSalmali = contrType.FkSalmali,
                //            };
                //            db.TblStoreLogs.Add(i);
                //        }

                //        i.Count = item.Sum(a => a.Count);
                //        i.Weight = item.Sum(a => a.Count * (decimal?)a.WeightOne);

                //        i.CountIn = item.Where(a => a.FkPortage.HasValue && a.Count > 0).Sum(a => a.Count);
                //        i.CountOut = item.Where(a => a.FkPortage.HasValue && a.Count < 0).Sum(a => a.Count);
                //        i.CountMovement = item.Where(a => a.FkPortage.HasValue == false && a.IsInitial == false).Sum(a => a.Count);
                //        i.CountInitial = item.Where(a => a.FkPortage.HasValue == false && a.IsInitial == true).Sum(a => a.Count);

                //        i.WeightIn = item.Where(a => a.FkPortage.HasValue && a.Count > 0).Sum(a => a.Count * (decimal?)a.WeightOne);
                //        i.WeightOut = item.Where(a => a.FkPortage.HasValue && a.Count < 0).Sum(a => a.Count * (decimal?)a.WeightOne);
                //        i.WeightMovement = item.Where(a => a.FkPortage.HasValue == false&&a.IsInitial==false).Sum(a => a.Count * (decimal?)a.WeightOne);
                //        i.WeightInitial= item.Where(a => a.FkPortage.HasValue == false && a.IsInitial == true).Sum(a => a.Count * (decimal?)a.WeightOne);

                //        rowOK.Add(i.Id);

                //    }
                //}
                //else
                if (contrType.KindCotractType == web_db._Weighing.TblContractType.KindCotractTypeEnum.ASabad)

                {
                    var xx = x.GroupBy(a => new { a.FkLocation1, a.FkLocation2, a.FkLocation3, a.FkPacking, a.FkProduct });

                    foreach (var item in xx)
                    {
                        var i = db.TblStoreLogs.SingleOrDefault(a =>
                                                                a.FkContractType == contrType.Id &&
                                                                a.FkSalmali == contrType.FkSalmali &&
                                                                a.FkLocation1 == item.Key.FkLocation1 &&
                                                                a.FkLocation2 == item.Key.FkLocation2 &&
                                                                a.FkLocation3 == item.Key.FkLocation3 &&
                                                                a.FkPacking == item.Key.FkPacking &&
                                                                a.FkProduct == item.Key.FkProduct

                                                                );
                        if (i == null)
                        {
                            i = new web_db._Weighing.TblStoreLog
                            {
                                Id = Guid.NewGuid(),

                                FkContractType = contrType.Id,

                                FkLocation1 = item.Key.FkLocation1,
                                FkLocation2 = item.Key.FkLocation2,
                                FkLocation3 = item.Key.FkLocation3,
                                FkPacking   = item.Key.FkPacking,
                                FkProduct   = item.Key.FkProduct,
                                FkSalmali   = contrType.FkSalmali,
                            };
                            db.TblStoreLogs.Add(i);
                        }

                        i.Count         = item.Sum(a => a.Count);
                        i.CountIn       = item.Where(a => a.FkPortage.HasValue && a.Count > 0).Sum(a => a.Count);
                        i.CountOut      = item.Where(a => a.FkPortage.HasValue && a.Count < 0).Sum(a => a.Count);
                        i.CountMovement = item.Where(a => a.FkPortage.HasValue == false).Sum(a => a.Count);
                        i.CountInitial  = item.Where(a => a.FkPortage.HasValue == false && a.IsInitial == true).Sum(a => a.Count);

                        rowOK.Add(i.Id);
                    }
                }
                db.TblStoreLogs.RemoveRange(db.TblStoreLogs.Where(a => a.FkContractType == fkcontracttype && (rowOK.Contains(a.Id) == false)));
            }
        }
Esempio n. 3
0
        public static void refTblStoreLogcontractSardKhane(Guid fkcontract, web_db.sardweb_Context db)
        {
            var rowOK = new List <Guid>();
            //Add
            {
                var contr     = db.TblContracts.Find(fkcontract);
                var contrType = db.TblContractTypes.Find(contr.FkContractType);
                var x         = db.TblPortageRows.Include(a => a.FkPortageNavigation).Where(a => a.FkContract == fkcontract && (a.FkPortage.HasValue ? (a.FkPortageNavigation.IsEnd && a.FkPortageNavigation.IsDel == false) : true)).AsEnumerable();


                contr.SumInCount  = x.Where(a => a.FkPortageNavigation.KindCode == (int)kindPortage.kindPortageEnum.In || a.FkPortageNavigation.KindCode == (int)kindPortage.kindPortageEnum.InBack).Sum(a => a.Count);
                contr.SumInWeight = x.Where(a => a.FkPortageNavigation.KindCode == (int)kindPortage.kindPortageEnum.In || a.FkPortageNavigation.KindCode == (int)kindPortage.kindPortageEnum.InBack).Sum(a => (decimal?)(a.Count * a.WeightOne));

                contr.SumOutCount  = x.Where(a => a.FkPortageNavigation.KindCode == (int)kindPortage.kindPortageEnum.Out || a.FkPortageNavigation.KindCode == (int)kindPortage.kindPortageEnum.OutBack).Sum(a => a.Count);
                contr.SumOutWeight = x.Where(a => a.FkPortageNavigation.KindCode == (int)kindPortage.kindPortageEnum.Out || a.FkPortageNavigation.KindCode == (int)kindPortage.kindPortageEnum.OutBack).Sum(a => (decimal?)(a.Count * a.WeightOne));

                if (contrType.KindCotractType == web_db._Weighing.TblContractType.KindCotractTypeEnum.ASardKhane)
                {
                    var xx = x.GroupBy(a => new { a.FkContract, a.FkLocation1, a.FkLocation2, a.FkLocation3, a.FkPacking, a.FkProduct }).ToList();

                    foreach (var item in xx)
                    {
                        var iall = db.TblStoreLogs.Where(a =>
                                                         a.FkContractType == contrType.Id &&
                                                         a.FkSalmali == contr.FkSalmali &&
                                                         a.FkContract == item.Key.FkContract &&
                                                         a.FkLocation1 == item.Key.FkLocation1 &&
                                                         a.FkLocation2 == item.Key.FkLocation2 &&
                                                         a.FkLocation3 == item.Key.FkLocation3 &&
                                                         a.FkPacking == item.Key.FkPacking &&
                                                         a.FkProduct == item.Key.FkProduct
                                                         );
                        if (iall.Count() > 1)
                        {
                            db.TblStoreLogs.RemoveRange(iall);
                            db.SaveChanges();
                        }
                        var i = db.TblStoreLogs.SingleOrDefault(a =>
                                                                a.FkContractType == contrType.Id &&
                                                                a.FkSalmali == contr.FkSalmali &&
                                                                a.FkContract == item.Key.FkContract &&
                                                                a.FkLocation1 == item.Key.FkLocation1 &&
                                                                a.FkLocation2 == item.Key.FkLocation2 &&
                                                                a.FkLocation3 == item.Key.FkLocation3 &&
                                                                a.FkPacking == item.Key.FkPacking &&
                                                                a.FkProduct == item.Key.FkProduct
                                                                );
                        if (i == null)
                        {
                            i = new web_db._Weighing.TblStoreLog
                            {
                                Id             = Guid.NewGuid(),
                                FkContract     = fkcontract,
                                FkContractType = contrType.Id,
                                FkCustomer     = contr.FkCustomer,
                                FkLocation1    = item.Key.FkLocation1,
                                FkLocation2    = item.Key.FkLocation2,
                                FkLocation3    = item.Key.FkLocation3,
                                FkPacking      = item.Key.FkPacking,
                                FkProduct      = item.Key.FkProduct,
                                FkSalmali      = contr.FkSalmali,
                            };
                            db.TblStoreLogs.Add(i);
                        }
                        i.Count          = item.Sum(a => a.Count);
                        i.Weight         = item.Sum(a => a.Count * (decimal?)a.WeightOne);
                        i.CountIn        = item.Where(a => a.FkPortage.HasValue && a.Count > 0).Sum(a => a.Count);
                        i.CountOut       = item.Where(a => a.FkPortage.HasValue && a.Count < 0).Sum(a => a.Count);
                        i.CountMovement  = item.Where(a => a.FkPortage.HasValue == false).Sum(a => a.Count);
                        i.WeightIn       = item.Where(a => a.FkPortage.HasValue && a.Count > 0).Sum(a => a.Count * (decimal?)a.WeightOne);
                        i.WeightOut      = item.Where(a => a.FkPortage.HasValue && a.Count < 0).Sum(a => a.Count * (decimal?)a.WeightOne);
                        i.WeightMovement = item.Where(a => a.FkPortage.HasValue == false).Sum(a => a.Count * (decimal?)a.WeightOne);
                        rowOK.Add(i.Id);
                    }
                }



                db.TblStoreLogs.RemoveRange(db.TblStoreLogs.Where(a => a.FkContract == fkcontract && (rowOK.Contains(a.Id) == false)));
            }
        }