예제 #1
0
        public IHttpActionResult getAll()
        {
            Dictionary <int, int>          branchlist = new Dictionary <int, int>();
            List <BranchStockStatusReport> result     = new List <BranchStockStatusReport>();
            var products = db.Products.Where(m => m.IsActive == true).Include(n => n.StockBranchInventories).Include(n => n.StockInventories)

                           .Include(i => i.Color)
                           .Include(i => i.Template1)
                           .Include(i => i.StockInventories)
                           .Include(i => i.StockBranchInventories)
                           .Include(i => i.StockBranchInventories.Select(y => y.Branch))
                           .ToList();



            var branches = db.Branches.Where(x => x.IsActive == true).OrderBy(o => o.Id).ToList();

            branches.ForEach(x => branchlist.Add(x.Id, 0));

            var modellist = products.Where(x => x.StockBranchInventories != null && x.StockBranchInventories.Count > 0).ToList();

            foreach (var item in modellist)
            {
                Dictionary <int, int>   branch = new Dictionary <int, int>();
                BranchStockStatusReport model  = new BranchStockStatusReport();
                var Branches = item.StockBranchInventories.Where(x => x.Branch.IsActive == true).Select(s => s.Branch).ToList();

                model.Product       = item.ProductSKU + " " + item.StyleSKU + " " + item.ShortDescription;
                model.Color         = item.Color?.Code + " " + item.Color?.ColorShort;
                model.CostPrice     = item.CostPrice ?? 0;
                model.OriginalPrice = item.ActualSellingPrice ?? 0;
                var sumQunatity  = SumQuantityInventory(item.StockBranchInventories.ToList(), out branch);
                var sumQuantity2 = SumQuantityInventory(item.StockInventories.ToList());
                model.TotalQuantiy      = sumQunatity + sumQuantity2;
                model.WarehoustQuantity = sumQuantity2;
                model.MarkdownTemplate  = item.Template1?.Name;
                model.BranchId          = new Dictionary <int, int>();
                foreach (var bran in branchlist)
                {
                    if (branch.ContainsKey(bran.Key))
                    {
                        var value = branch[bran.Key];
                        model.BranchId.Add(bran.Key, value);
                    }
                    else
                    {
                        model.BranchId.Add(bran.Key, bran.Value);
                    }
                }

                // model.TotalQuantiy = "";
                result.Add(model);
            }
            return(Ok(result));
        }
예제 #2
0
        public IHttpActionResult branchStockStatusFilter(InputBranchStockStatusReportModel inputmodel)
        {
            List <string> BranchIdList;   // = new List<string>();
            List <string> ProductSKUList; // = new List<string>();
            List <string> StyleSKUList;   // = new List<string>();

            var moddel = getProcessingData(inputmodel, out BranchIdList, out ProductSKUList, out StyleSKUList);

            Dictionary <int, int>          branchlist = new Dictionary <int, int>();
            List <BranchStockStatusReport> result     = new List <BranchStockStatusReport>();
            var ProductList = db.Products.Where(x => x.IsActive == true && x.StockInventories.Any(y => y.IsActive ?? false) == true && x.StockBranchInventories.Any(y => y.IsActive ?? false) == true)

                              .Include(i => i.Color)
                              .Include(i => i.Template1)
                              .Include(i => i.StockInventories)
                              .Include(i => i.StockBranchInventories)
                              .Include(i => i.StockBranchInventories.Select(y => y.Branch))
                              //.ToList()
            ;
            var ptemp = ProductList.ToList();

            if (ProductSKUList.Count > 0)
            {
                ProductList = ProductList.Where(x => ProductSKUList.Contains(x.ProductSKU));
                ptemp       = ProductList.ToList();
            }
            if (StyleSKUList.Count > 0)
            {
                ProductList = ProductList.Where(x => StyleSKUList.Contains(x.StyleSKU));
                ptemp       = ProductList.ToList();
            }

            var products         = ProductList.ToList();
            var branchSearchlist = db.Branches.Where(x => x.IsActive == true);
            var btemp            = branchSearchlist.ToList();

            if (BranchIdList.Count > 0)
            {
                branchSearchlist = branchSearchlist.Where(x => BranchIdList.Contains(x.BranchCode));
                btemp            = branchSearchlist.ToList();
            }


            var branches = branchSearchlist.OrderBy(o => o.Id).ToList();

            branches.ForEach(x => branchlist.Add(x.Id, 0));

            var modellist = products.Where(x => x.StockBranchInventories != null && x.StockBranchInventories.Count > 0).ToList();

            foreach (var item in modellist)
            {
                Dictionary <int, int>   branch = new Dictionary <int, int>();
                BranchStockStatusReport model  = new BranchStockStatusReport();
                var Branches = item.StockBranchInventories.Where(x => x.Branch.IsActive == true).Select(s => s.Branch).ToList();

                model.Product       = item.ProductSKU + " " + item.StyleSKU + " " + item.ShortDescription;
                model.Color         = item.Color?.Code + " " + item.Color?.ColorShort;
                model.CostPrice     = item.CostPrice ?? 0;
                model.OriginalPrice = item.ActualSellingPrice ?? 0;
                var sumQunatity  = SumQuantityInventory(item.StockBranchInventories.ToList(), out branch);
                var sumQuantity2 = SumQuantityInventory(item.StockInventories.ToList());
                model.TotalQuantiy      = sumQunatity + sumQuantity2;
                model.WarehoustQuantity = sumQuantity2;
                model.MarkdownTemplate  = item.Template1?.Name;
                model.BranchId          = new Dictionary <int, int>();
                foreach (var bran in branchlist)
                {
                    if (branch.ContainsKey(bran.Key))
                    {
                        var value = branch[bran.Key];
                        model.BranchId.Add(bran.Key, value);
                    }
                    else
                    {
                        model.BranchId.Add(bran.Key, bran.Value);
                    }
                }

                // model.TotalQuantiy = "";
                result.Add(model);
            }
            return(Ok(result));
        }