예제 #1
0
        private void ResetProductCost(ProductReceiveLineItem item)
        {
            var product = _unitOfWork.ProductcRepository.FindBy(s => s.ProductcId == item.ProductId).First();

            product.UnitCost = _unitOfWork.ProductReceiveLineItemRepository.FindBy(x => x.ProductId == item.ProductId).LastOrDefault().UnitCost;
            _unitOfWork.ProductcRepository.Edit(product);
        }
예제 #2
0
        void AddLineItemStock(ProductReceiveLineItem item, int branchId)
        {
            var stock = _unitOfWork.StockRepository.FindBy(x => x.BranchId == branchId &&
                                                           x.ProductcId == item.ProductId).SingleOrDefault();

            if (stock == null)
            {
                stock = new Stock()
                {
                    BranchId   = branchId,
                    ProductcId = item.ProductId,
                    Quantity   = item.Quantity,
                };
                _unitOfWork.StockRepository.Add(stock);
            }
            else
            {
                stock.Quantity = stock.Quantity + item.Quantity;
                _unitOfWork.StockRepository.Edit(stock);
            }

            var product = _unitOfWork.ProductcRepository.FindBy(s => s.ProductcId == item.ProductId).First();

            product.UnitCost = item.UnitCost;
            _unitOfWork.ProductcRepository.Edit(product);
        }
예제 #3
0
 public bool AddProductReceiveLineItem(ProductReceive productReceive, ProductReceiveLineItem item)
 {
     _unitOfWork.ProductReceiveRepository.Edit(productReceive);
     AddLineItemStock(item, productReceive.BranchId);
     _unitOfWork.Save();
     return(true);
 }
예제 #4
0
        void SubtractLineItemStock(ProductReceiveLineItem item, int branchId)
        {
            var stock = _unitOfWork.StockRepository.FindBy(x => x.BranchId == branchId &&
                                                           x.ProductcId == item.ProductId).SingleOrDefault();

            stock.Quantity = stock.Quantity - item.Quantity;
            _unitOfWork.StockRepository.Edit(stock);
        }
예제 #5
0
 public bool DeleteProductReceiveLineItem(ProductReceive productReceive, ProductReceiveLineItem lineItem)
 {
     //_unitOfWork.ProductReceiveRepository.Edit(productReceive);
     _unitOfWork.ProductReceiveLineItemRepository.Delete(lineItem);
     SubtractLineItemStock(lineItem, productReceive.BranchId);
     _unitOfWork.Save();
     return(true);
 }
예제 #6
0
        public ActionResult AddLineItem([Bind(Include = "ProductReceiveId,Quantity,ProductId,UnitCost")] ProductReceiveLineItemViewModel productReceiveLineItemViewModel)
        {
            var productReceive = _productReceiveService.Get(t => t.ProductReceiveId == productReceiveLineItemViewModel.ProductReceiveId, null, "ProductReceiveLineItems").FirstOrDefault();
            int exists         = productReceive.ProductReceiveLineItems.Where(t => t.ProductId == productReceiveLineItemViewModel.ProductId).ToList().Count;

            if (exists > 0)
            {
                return(RedirectToAction("Create", "ProductReceives", new { id = productReceive.ProductReceiveId }));
            }
            var productReceiveLineItem = new ProductReceiveLineItem()
            {
                ProductId        = productReceiveLineItemViewModel.ProductId,
                Quantity         = productReceiveLineItemViewModel.Quantity,
                ProductReceiveId = productReceiveLineItemViewModel.ProductReceiveId,
                UnitCost         = productReceiveLineItemViewModel.UnitCost, //_productService.FindById(productReceiveLineItemViewModel.ProductId).UnitCost
            };

            productReceive.ProductReceiveLineItems.Add(productReceiveLineItem);
            _productReceiveService.AddProductReceiveLineItem(productReceive, productReceiveLineItem);
            return(RedirectToAction("Create", "ProductReceives", new { id = productReceive.ProductReceiveId }));
        }