public void GetAllStocksTest()
        {
            //Arrange
            var mockUnitOfWork = new Mock <IUnitOfWork>();

            IEnumerable <Stock> stocks = new List <Stock>()
            {
                new Stock()
                {
                    Code = "AAA"
                },
                new Stock()
                {
                    Code = "BBBB"
                },
                new Stock()
                {
                    Code = "CCCC"
                },
            };

            mockUnitOfWork.Setup(un => un.StockRepository.Get(null, null, "")).Returns(stocks);

            IStockLogic stockLogic = new StockLogic(mockUnitOfWork.Object);
            var         result     = stockLogic.GetAllStocks();

            mockUnitOfWork.Verify(un => un.StockRepository.Get(null, null, ""), Times.Once());
            Assert.Equal(result, stocks);
        }
        private void ActDatasWhenBinding(IEnumerable items)
        {
            var        bill = _dataContext.Master;
            List <int> pids = new List <int>();

            TraverseDatas(items, p => pids.Add(p.ProductID));
            if (bill.StorageIDOut != default(int))
            {
                var stocks = StockLogic.GetStockInStorage(bill.StorageIDOut, productIDs: pids.ToArray());
                TraverseDatas(items, p =>
                {
                    var stock         = stocks.Find(s => s.ProductID == p.ProductID);
                    p.OutStorageStock = (stock == null ? 0 : stock.Quantity);
                });
            }
            if (bill.StorageIDIn != default(int))
            {
                if (bill.StorageIDOut == bill.StorageIDIn)//出入仓库一样就直接赋值
                {
                    TraverseDatas(items, p => p.InStorageStock = p.OutStorageStock);
                }
                else
                {
                    var stocks = StockLogic.GetStockInStorage(bill.StorageIDIn, productIDs: pids.ToArray());
                    TraverseDatas(items, p =>
                    {
                        var stock        = stocks.Find(s => s.ProductID == p.ProductID);
                        p.InStorageStock = (stock == null ? 0 : stock.Quantity);
                    });
                }
            }
        }
 public ValidationController(ClienteLogic ClienteLogic, CommonLogic CommonLogic, ProveedorLogic ProveedorLogic, ProductoLogic ProductoLogic, VendedorLogic VendedorLogic, ListaPreciosLogic ListaPreciosLogic, StockLogic StockLogic)
 {
     clienteBL      = ClienteLogic;
     commonBL       = CommonLogic;
     proveedorBL    = ProveedorLogic;
     productoBL     = ProductoLogic;
     vendedorBL     = VendedorLogic;
     listaPreciosBL = ListaPreciosLogic;
     stockBL        = StockLogic;
 }
Exemple #4
0
        public JsonResult GetStock(string ProductID, string ShadeID, string PackingID)
        {
            var responseValue = new
            {
                StockData = StockLogic.GetStockReport(null, null, ProductID, ShadeID, PackingID),
                Factor    = PackingLogic.GetPackingByID(Convert.ToInt32(PackingID))
            };

            return(Json(new ResponseMsg {
                IsSuccess = true, ResponseValue = responseValue
            }, JsonRequestBehavior.AllowGet));
        }
Exemple #5
0
        public JsonResult GetClosingQty(int ProductID, int ShadeID, string PackingIDs)
        {
            ResponseMsg response = new ResponseMsg();
            var         packings = StockLogic.GetClosingQty(ProductID, ShadeID, PackingIDs);

            if (packings != null && packings.Count() > 0)
            {
                response.IsSuccess     = true;
                response.ResponseValue = packings;
            }
            return(Json(response, JsonRequestBehavior.AllowGet));
        }
Exemple #6
0
 public CompraController(CompraLogic CompraLogic,
                         ProveedorLogic ProveedorLogic,
                         CommonLogic CommonLogic,
                         StockLogic StockLogic,
                         ProductoLogic ProductoLogic,
                         ProductoXCompraLogic ProductoXCompraLogic)
 {
     compraBL          = CompraLogic;
     proveedorBL       = ProveedorLogic;
     productoBL        = ProductoLogic;
     commonBL          = CommonLogic;
     stockBL           = StockLogic;
     productoxCompraBL = ProductoXCompraLogic;
 }
 public VentaMayoristaController(VentaMayoristaLogic VentaMayoristaLogic,
                                 ClienteLogic ClienteLogic,
                                 EstadoCuentaClienteLogic EstadoCuentaClienteLogic,
                                 CommonLogic CommonLogic,
                                 StockLogic StockLogic,
                                 ProductoXVentaLogic ProductoXVentaLogic,
                                 ProductoLogic ProductoLogic)
 {
     ventaMayoristaBL      = VentaMayoristaLogic;
     clienteBL             = ClienteLogic;
     estadoCuentaClienteBL = EstadoCuentaClienteLogic;
     commonBL         = CommonLogic;
     stockBL          = StockLogic;
     productoxVentaBL = ProductoXVentaLogic;
     productoBL       = ProductoLogic;
 }
Exemple #8
0
        void cbxStorageOut_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            var bill = _dataContext.Master;

            if (bill.StorageID != default(int))
            {
                List <int> pids = new List <int>();
                SysProcessView.UIHelper.TraverseGridViewData <ProductForCannibalize>(gvDatas, p => pids.Add(p.ProductID));
                var stocks = StockLogic.GetStockInStorage(bill.StorageID, productIDs: pids.ToArray());
                SysProcessView.UIHelper.TraverseGridViewData <ProductForCannibalize>(gvDatas, p =>
                {
                    var stock         = stocks.Find(s => s.ProductID == p.ProductID);
                    p.OutStorageStock = (stock == null ? 0 : stock.Quantity);
                });
            }
        }
 void GridDataItems_CollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e)
 {
     if (e.NewItems != null)
     {
         List <int> pids = new List <int>();
         TraverseDatas(e.NewItems, p => pids.Add(p.ProductID));
         if (Master.StorageID != default(int))
         {
             var stocks = StockLogic.GetStockInStorage(Master.StorageID, productIDs: pids.ToArray());
             TraverseDatas(e.NewItems, p =>
             {
                 var stock         = stocks.Find(s => s.ProductID == p.ProductID);
                 p.OutStorageStock = (stock == null ? 0 : stock.Quantity);
             });
         }
     }
 }
Exemple #10
0
 public CompraController(IRepository <Compra> CompraRepo,
                         IRepository <Stock> StockRepo,
                         //IRepository<Cliente> ClienteRepo,
                         IRepository <Proveedor> ProveedorRepo,
                         IRepository <Clasificacion> ClasificacionRepo,
                         IRepository <Producto> ProductoRepo,
                         //IRepository<ListaPrecioBlister> ListaPrecioBlisterRepo,
                         IRepository <ProductoXCompra> ProductoXCompraRepo,
                         //IRepository<ProductoMix> ProductoMixRepo)
                         IRepository <TipoDeUnidad> TipoDeUnidadRepo)
 {
     compraBL = new CompraLogic(CompraRepo);
     stockBL  = new StockLogic(StockRepo);
     //clienteBL = new ClienteLogic(ClienteRepo);
     proveedorBL       = new ProveedorLogic(ProveedorRepo);
     clasificacionBL   = new CommonLogic(TipoDeUnidadRepo);
     productoBL        = new ProductoLogic(ProductoRepo);
     productoXCompraBL = new ProductoXCompraLogic(ProductoXCompraRepo);
 }
        public void GetStockTest()
        {
            //Arrange
            var mockUnitOfWork = new Mock <IUnitOfWork>();

            var stock = new Stock()
            {
                Id = 1
            };

            mockUnitOfWork.Setup(un => un.StockRepository.Get(It.IsAny <Expression <Func <Stock, bool> > >(), null, It.IsAny <string>())).Returns(new List <Stock>()
            {
                stock
            });

            IStockLogic stockLogic = new StockLogic(mockUnitOfWork.Object);
            var         result     = stockLogic.GetStock(stock.Id);

            Assert.Equal(result, stock);
        }
        public void CreateStockTest()
        {
            //Arrange
            var mockUnitOfWork = new Mock <IUnitOfWork>();

            mockUnitOfWork.Setup(un => un.StockRepository.Get(null, null, ""));
            mockUnitOfWork.Setup(un => un.StockRepository.Insert(It.IsAny <Stock>()));
            mockUnitOfWork.Setup(un => un.Save());


            IStockLogic stockLogic = new StockLogic(mockUnitOfWork.Object);
            var         result     = stockLogic.CreateStock(new Stock()
            {
                Code = "aaaa"
            });

            mockUnitOfWork.Verify(un => un.StockRepository.Get(null, null, ""), Times.Once());
            mockUnitOfWork.Verify(un => un.StockRepository.Insert(It.IsAny <Stock>()), Times.Once());
            mockUnitOfWork.Verify(un => un.Save(), Times.Once());
            Assert.True(result);
        }
Exemple #13
0
        public PartialViewResult GetGrindingStock(int BatchID)
        {
            var grindingStock = StockLogic.GetGrindingStock(BatchID);

            if (grindingStock != null)
            {
                foreach (var item in grindingStock)
                {
                    var productStock = StockLogic.GetStockReport(null, null, Convert.ToString(item.ProductID), null, null);
                    if (productStock != null && productStock.Count() > 0)
                    {
                        item.StockQty = Convert.ToString(productStock.FirstOrDefault().ClosingQty);
                    }
                    else
                    {
                        item.StockQty = "0";
                    }
                }
            }
            return(PartialView("_GrindingStock", grindingStock));
        }
        public void UpdateStockTest()
        {
            //Arrange
            var mockUnitOfWork = new Mock <IUnitOfWork>();

            var stock = new Stock()
            {
                Id = 1
            };

            mockUnitOfWork.Setup(un => un.StockRepository.Update(It.IsAny <Stock>()));
            mockUnitOfWork.Setup(un => un.Save());


            IStockLogic stockLogic = new StockLogic(mockUnitOfWork.Object);

            stock.Code = "AAAA";
            var result = stockLogic.UpdateStock(stock);

            mockUnitOfWork.Verify(un => un.StockRepository.Update(It.IsAny <Stock>()), Times.Once());
            mockUnitOfWork.Verify(un => un.Save(), Times.Once());
            Assert.True(result);
        }
Exemple #15
0
 public StockController(IRepository <Stock> StockRepo, IRepository <Producto> ProductoRepo, IRepository <TipoDeUnidad> TipoDeUnidadRepo)
 {
     stockBL        = new StockLogic(StockRepo);
     productoBL     = new ProductoLogic(ProductoRepo);
     tipoDeUnidadBL = new CommonLogic(TipoDeUnidadRepo);
 }
        private void btnUpdate_Click(object sender, RoutedEventArgs e)
        {
            if (cbxStorage.SelectedIndex == -1)
            {
                cbxStorage.Focus();
                MessageBox.Show("请选择盘点仓库");
                return;
            }
            if (!rbUpdateAll.IsChecked.Value && !rbUpdatePart.IsChecked.Value && !rbUpdateExact.IsChecked.Value)
            {
                MessageBox.Show("请选择更新方式.");
                return;
            }
            if (RadGridView1.ItemsSource == null || RadGridView1.Items.Count == 0)
            {
                var mbResult = MessageBox.Show("没有盘点数据,如果选择继续将产生如下影响,是否继续?\n全局更新将清空全部库存\n局部更新将清空局部库存\n精确更新将不影响库存", "注意", MessageBoxButton.YesNo);
                if (mbResult == MessageBoxResult.No)
                {
                    return;
                }
            }

            List <DistributionCommonBillVM <BillStocktakeContrast, BillStocktakeContrastDetails> > contrasts = new List <DistributionCommonBillVM <BillStocktakeContrast, BillStocktakeContrastDetails> >();
            var stocktakeDatas = RadGridView1.ItemsSource as IEnumerable <StocktakeAggregationEntityForStockUpdate>;

            if (stocktakeDatas == null)
            {
                stocktakeDatas = new List <StocktakeAggregationEntityForStockUpdate>();
            }
            if (rbUpdateAll.IsChecked.Value)                                         //全局更新
            {
                int[] brandIDs = VMGlobal.PoweredBrands.Select(o => o.ID).ToArray(); //GetBrandIDsForUpdate(stocktakeDatas);
                foreach (int bid in brandIDs)
                {
                    var stocks   = StockLogic.GetStockInStorage((int)cbxStorage.SelectedValue, bid);
                    var contrast = this.GenerateContrast(bid, stocks, stocktakeDatas.Where(o => o.BrandID == bid).ToList());
                    //contrast.SaveWithNoTran();//添加盈亏单
                    contrasts.Add(contrast);
                }
            }
            else if (rbUpdatePart.IsChecked.Value)//局部更新
            {
                if (string.IsNullOrWhiteSpace(txtStyleCodeForPartUpdate.Text))
                {
                    txtStyleCodeForPartUpdate.Focus();
                    MessageBox.Show("请输入局部更新条码区间,多个区间以逗号分隔.");
                    return;
                }
                var pcodes = txtStyleCodeForPartUpdate.Text.Trim().Split(',');
                pcodes         = pcodes.Select(o => o.Trim()).ToArray();
                stocktakeDatas = stocktakeDatas.ToList().Where(StockLogic.GenerateOrElseConditionWithArray <StocktakeAggregationEntityForStockUpdate>("ProductCode", "StartsWith", pcodes).Compile());
                int[] brandIDs = GetBrandIDsForUpdate(stocktakeDatas);
                foreach (int bid in brandIDs)
                {
                    var stocks   = StockLogic.GetStockInStorage((int)cbxStorage.SelectedValue, bid, pcodes);
                    var contrast = this.GenerateContrast(bid, stocks, stocktakeDatas.Where(o => o.BrandID == bid).ToList());
                    contrasts.Add(contrast);
                }
            }
            else if (rbUpdateExact.IsChecked.Value)//精确更新
            {
                if (stocktakeDatas.Count() == 0)
                {
                    return;
                }
                int[] brandIDs = GetBrandIDsForUpdate(stocktakeDatas);
                foreach (int bid in brandIDs)
                {
                    var stocks   = StockLogic.GetStockInStorage((int)cbxStorage.SelectedValue, bid, stocktakeDatas.Where(o => o.BrandID == bid).Select(o => o.ProductID).ToArray());
                    var contrast = this.GenerateContrast(bid, stocks, stocktakeDatas.Where(o => o.BrandID == bid).ToList());
                    contrasts.Add(contrast);
                }
            }
            UpdateStockWithContrast(contrasts);
        }
Exemple #17
0
 public PartialViewResult Stock(DateTime?FromDate, DateTime?ToDate, string ProductID, string ShadeID, string PackingID)
 {
     return(PartialView("_StockDetail", StockLogic.GetStockReport(FromDate, ToDate, ProductID, ShadeID, PackingID)));
 }
Exemple #18
0
        //
        // GET: /Report/

        public ActionResult Stock()
        {
            ViewBag.Products = ProductLogic.GetFinishedProducts();
            return(View(StockLogic.GetStockReport(null, null, null, null, null)));
        }
Exemple #19
0
 public HomeController(ProductoLogic ProductoLogic, StockLogic StockLogic)
 {
     productoBL = ProductoLogic;
     stockBL    = StockLogic;
 }
Exemple #20
0
        static void Main(string[] args)
        {
            _coreCount = Environment.ProcessorCount;
            _apiKey    = ConfigurationManager.AppSettings["apiKey"].ToString();

            //var scores = StockLogic.GetNaivePicks().OrderByDescending(o => o.Score).ToList();
            //foreach(var score in scores)
            //{
            //    Console.WriteLine(score.Symbol + "\t" + score.Score);
            //}

            DrawMenu();

            while (true)
            {
                var key = Console.ReadKey();
                Console.WriteLine();
                switch (key.Key)
                {
                case ConsoleKey.NumPad1:
                case ConsoleKey.D1:
                {
                    InitializeNYSE();
                    DrawMenu();
                    break;
                }

                case ConsoleKey.NumPad2:
                case ConsoleKey.D2:
                {
                    Console.WriteLine("Not Implemented");
                    DrawMenu();
                    break;
                }

                case ConsoleKey.NumPad3:
                case ConsoleKey.D3:
                {
                    Console.WriteLine("Not Implemented");
                    DrawMenu();
                    break;
                }

                case ConsoleKey.NumPad4:
                case ConsoleKey.D4:
                {
                    GetPricesForAll();
                    DrawMenu();
                    break;
                }

                case ConsoleKey.NumPad5:
                case ConsoleKey.D5:
                {
                    Console.WriteLine("Not Implemented");
                    DrawMenu();
                    break;
                }

                case ConsoleKey.NumPad6:
                case ConsoleKey.D6:
                {
                    CalculateDeltas();
                    DrawMenu();
                    break;
                }

                case ConsoleKey.NumPad7:
                case ConsoleKey.D7:
                {
                    GetPricesForRetry();
                    DrawMenu();
                    break;
                }

                case ConsoleKey.NumPad8:
                case ConsoleKey.D8:
                {
                    var scores = StockLogic.GetNaivePicks().OrderByDescending(o => o.Score).ToList();
                    foreach (var score in scores)
                    {
                        if (score.Score > 10)
                        {
                            Console.WriteLine(score.Symbol + "\t" + score.Score);
                        }
                    }
                    DrawMenu();
                    break;
                }

                case ConsoleKey.Q:
                {
                    Environment.Exit(0);
                    break;
                }
                }
            }
        }
Exemple #21
0
        /// <summary>
        /// 微盟-全量更新库存
        /// </summary>
        private void SyncStock()
        {
            StockLogic stockLogic = new StockLogic();

            stockLogic.WholeUpdateStockToWm(_startTime, _endTime);
        }
Exemple #22
0
        static void Main(string[] args)
        {
            bool flag = true;

            while (flag)
            {
                ProductLogic ProductLogic = new ProductLogic();
                StockLogic   StockLogic   = new StockLogic();

                Console.WriteLine("=>Выберите действие<=");
                Console.WriteLine(new String('*', 20));
                Console.WriteLine("1)Посмотреть товары");
                Console.WriteLine("2)Добавить товар");
                Console.WriteLine("3)Удалить товар");
                Console.WriteLine("4)Найти товар по названию");
                Console.WriteLine(new String('*', 20));
                Console.WriteLine("5)Посмотреть акции");
                Console.WriteLine("6)Добавить акцию");
                Console.WriteLine("7)Удалить акцию");
                Console.WriteLine("8)Найти акцию по дане");
                Console.WriteLine(new String('*', 20));
                Console.WriteLine("9)Выйти из программы");
                Console.WriteLine();
                string message = "Возврат в меню";

                if (int.TryParse(Console.ReadLine(), out int action))
                {
                    switch (action)
                    {
                    case 1:
                        List <Product> all = ProductLogic.GetAll();
                        if (all.Count == 0)
                        {
                            Console.WriteLine("Товаров нет");
                        }
                        Console.WriteLine("Все товары:");
                        foreach (var item in all)
                        {
                            Console.WriteLine($"{item.Id} {item.Title} {item.Price}");
                        }
                        Console.WriteLine();
                        break;

                    case 2:
                        Console.WriteLine("Введите");
                        Console.Write("Название:");
                        string title = Console.ReadLine();
                        Console.Write("Цену:");
                        if (!int.TryParse(Console.ReadLine(), out int Price))
                        {
                            Console.WriteLine("неверная цена, возврат в меню");
                            break;
                        }
                        Product product = new Product
                        {
                            Price = Price,
                            Title = title,
                        };

                        ProductLogic.Add(product);

                        Console.WriteLine(new String('!', 20));
                        Console.WriteLine("Продукт добавлен");
                        Console.WriteLine(new String('!', 20));
                        Console.WriteLine();
                        break;

                    case 3:
                        Console.WriteLine("Введите id:");

                        if (int.TryParse(Console.ReadLine(), out int id))
                        {
                            ProductLogic.DeleteById(id);
                        }
                        else
                        {
                            Console.WriteLine("Не верное id");
                        }
                        Console.WriteLine();
                        break;

                    case 4:
                        Console.WriteLine("Введите название товара:");

                        string titile = Console.ReadLine();

                        var findList = ProductLogic.FindByTitile(titile);
                        if (findList != null)
                        {
                            if (findList.Count == 0)
                            {
                                Console.WriteLine("Товаров нет");
                                Console.WriteLine();
                                break;
                            }
                            Console.WriteLine("Найденые товары");
                            Console.WriteLine(new String('=', 20));
                            foreach (var item in findList)
                            {
                                Console.WriteLine($"{item.Id} {item.Title} {item.Price}");
                            }
                            Console.WriteLine(new String('=', 20));
                        }
                        else
                        {
                            Console.WriteLine("Товаров с таким названием нет");
                        }
                        Console.WriteLine();
                        break;

                    case 5:
                        List <Stock> allAcii = StockLogic.GetAll();
                        if (allAcii.Count == 0)
                        {
                            Console.WriteLine("Акций нет");
                            break;
                        }
                        Console.WriteLine("Все акции:");
                        foreach (var item in allAcii)
                        {
                            Console.WriteLine($"{item.Id} {item.Title} {item.Date.Date:MM/dd/yyyy}");
                        }
                        Console.WriteLine();
                        break;

                    case 6:
                        Console.WriteLine("Введите");
                        Console.Write("Название:");
                        string titleStock = Console.ReadLine();
                        Console.Write("Дату проведения ММ/ДД/ГГГГ:");
                        string dateString = Console.ReadLine();

                        try
                        {
                            DateTime dateAdd = DateTime.ParseExact(dateString, "MM/dd/yyyy", null);
                            Stock    stock   = new Stock
                            {
                                Title = titleStock,
                                Date  = dateAdd,
                            };

                            StockLogic.Add(stock);
                            Console.WriteLine(new String('!', 20));
                            Console.WriteLine("Акция добавлена");
                            Console.WriteLine(new String('!', 20));
                            Console.WriteLine();
                            break;
                        }
                        catch (Exception)
                        {
                            Console.WriteLine(new String('!', 20));
                            Console.WriteLine("Неверная дата");
                            Console.WriteLine(new String('!', 20));
                            Console.WriteLine();
                            break;
                        }


                    case 7:
                        Console.WriteLine("Введите id:");

                        if (int.TryParse(Console.ReadLine(), out int idS))
                        {
                            StockLogic.DeleteById(idS);
                        }
                        else
                        {
                            Console.WriteLine("Не верное id");
                        }
                        Console.WriteLine();
                        break;

                    case 8:
                        DateTime date;
                        Console.Write("Введите дату ММ/ДД/ГГГГ:");
                        string dateFind = Console.ReadLine();
                        try
                        {
                            date = DateTime.ParseExact(dateFind, "MM/dd/yyyy", null);
                            var listStock = StockLogic.FindByDate(date);
                            if (listStock.Count == 0)
                            {
                                Console.WriteLine("Акций нет");
                                Console.WriteLine();
                                break;
                            }
                            Console.WriteLine("Найденые акции");
                            foreach (var item in listStock)
                            {
                                Console.WriteLine($"{item.Id} {item.Title} {item.Date.Date:MM/dd/yyyy}");
                            }
                            Console.WriteLine();
                        }
                        catch
                        {
                            Console.WriteLine("Введите нормальную дату: ММ/ДД/ГГГГ");
                        }
                        Console.WriteLine();
                        break;

                    case 9:
                        flag    = false;
                        message = "Завершение работы";
                        break;

                    default:
                        break;
                    }

                    Console.WriteLine(new String('!', 20));
                    Console.WriteLine(message);
                    Console.WriteLine(new String('!', 20));

                    Console.WriteLine("Нажмите любую кнопку что бы продолжить");
                    Console.ReadLine();
                }
            }
        }