Exemplo n.º 1
0
        public void Update(ReturnedSaleDTO dto, int userId)
        {
            //var sale = new SaleDalFacade().GetSale(dto.SaleId);
            var workPlaceId          = new UserDalFacade().GetAccountUser(userId).WorkPlace.Id.Value;
            var existingReturnedSale = GetReturnedSale(dto.Id);
            var dasd = existingReturnedSale.Quantity - existingReturnedSale.DefectedQuantity;
            var diff = (dto.Quantity - dto.DefectedQuantity) - dasd; // quantity - deffectedQuantity !!!(So quantity is general for both)

            var productInStockFrom = new ProductStockDalFacade().GetProductStockByPlaceAndProduct(workPlaceId, dto.ProductId);

            productInStockFrom.Quantity += diff;

            new ProductStockDalFacade().Update(productInStockFrom);

            new ReturnedSaleDalFacade().Update(dto);
            //

            var existingReturnSale  = new ReturnedSaleBL().GetReturnedSale(dto.Id);
            var lostInMoneyInInsert = existingReturnSale.ReturnedPrice * existingReturnSale.Quantity;
            var lostInMoneyInUpdate = dto.ReturnedPrice * dto.Quantity;
            var lostInMoney         = lostInMoneyInInsert - lostInMoneyInUpdate;
            var quantity            = existingReturnSale.Quantity - dto.Quantity;
            //var sale2 = new SaleDalFacade().GetSale(dto.SaleId);
            //sale2.SalesPrice -= lostInMoney;
            //sale2.Quantity -= quantity;
            //new SaleDalFacade().Update(sale2);

            //var order = new OrderDalFacade().GetClientOrder(sale.OrderId);
            //order.OverallPrice -= lostInMoney;
            //order.PaymentByCash -= lostInMoney;
            //new OrderDalFacade().Update(order);
        }
Exemplo n.º 2
0
        // To Keep up-to-Date with Movements and sales
        public void UpdateProductStock(InnerMovementDTO dto)
        {
            var productInStockMinus =
                new ProductStockDalFacade().GetProductStockByPlaceAndProduct(dto.FromWorkPlaceId, dto.ProductId);

            if (dto.Quantity > productInStockMinus.Quantity)
            {
                throw new ArgumentOutOfRangeException(
                          $"Not Enough Product ({productInStockMinus.ProductId}-{productInStockMinus.ProductName}) in ProductStock to complete transaction");
            }

            productInStockMinus.Quantity -= dto.Quantity;
            new ProductStockDalFacade().Update(productInStockMinus);

            var productInStockAdd = new ProductStockDalFacade().GetProductStockByPlaceAndProduct(dto.ToWorkPlaceId, dto.ProductId);

            if (productInStockAdd == null)
            {
                AddProductStock(dto);
            }
            else
            {
                productInStockAdd.Quantity += dto.Quantity;
                new ProductStockDalFacade().Update(productInStockAdd);
            }
        }
Exemplo n.º 3
0
        public void UpdateProductStocks(SaleDTO sale, int userId)
        {
            var errorMessage = string.Empty;
            var workplaceId  = new UserDalFacade().GetAccountUser(userId).WorkPlace.Id.Value;
            var productStock =
                new ProductStockDalFacade().GetProductStockByPlaceAndProduct(workplaceId, sale.ProductId);

            if (sale.Quantity > productStock.Quantity)
            {
                errorMessage +=
                    $"Not Enough Product ({productStock.ProductId}-{productStock.ProductName}) in ProductStock to complete transaction.";
            }

            if (!string.IsNullOrEmpty(errorMessage))
            {
                errorMessage += Environment.NewLine;
            }

            if (!string.IsNullOrEmpty(errorMessage))
            {
                throw new ArgumentOutOfRangeException(errorMessage);
            }

            var productInStockMinus =
                new ProductStockDalFacade().GetProductStockByPlaceAndProduct(workplaceId, sale.ProductId);

            productInStockMinus.Quantity -= sale.Quantity;
            new ProductStockDalFacade().Update(productInStockMinus);
        }
Exemplo n.º 4
0
        public void Delete(int?id, int userId)
        {
            var workPlaceId  = new UserDalFacade().GetAccountUser(userId).WorkPlace.Id;
            var existedStock = new ProductStockDalFacade().GetProductStock(id);
            var quantity     = existedStock.Quantity * -1;
            var income       = CreateLogIncome(userId, existedStock.ProductId, quantity, workPlaceId);

            new IncomeDalFacade().AddIncome(income);
            new ProductStockDalFacade().Delete(id);
        }
Exemplo n.º 5
0
        public void Update(ProductStockDTO stock, int userId)
        {
            var workPlaceId  = new UserDalFacade().GetAccountUser(userId).WorkPlace.Id;
            var existedStock = new ProductStockDalFacade().GetProductStock(stock.Id);
            var quantity     = stock.Quantity - existedStock.Quantity;
            var income       = CreateLogIncome(userId, existedStock.ProductId, quantity, workPlaceId);

            new IncomeDalFacade().AddIncome(income);
            new ProductStockDalFacade().Update(stock);
        }
Exemplo n.º 6
0
        public void Update(InnerMovementDTO[] dtos, int userId)
        {
            string exMsg = null;

            foreach (var dto in dtos)
            {
                var inMovement         = new InnerMovementDalFacade().GetInnerMovement(dto.Id.Value);
                var diff               = dto.Quantity - inMovement.Quantity; // should-Be - was
                var productInStockFrom = new ProductStockDalFacade().GetProductStockByPlaceAndProduct(dto.FromWorkPlaceId, dto.ProductId);

                var productInStockTo = new ProductStockDalFacade().GetProductStockByPlaceAndProduct(dto.ToWorkPlaceId, dto.ProductId);
                if (diff != 0 && productInStockFrom.Quantity > diff && (productInStockTo.Quantity + diff) >= 0)
                {
                    productInStockFrom.Quantity -= diff;// dto.Quantity - inMovement.Quantity;
                    new ProductStockDalFacade().Update(productInStockFrom);

                    productInStockTo.Quantity += diff;
                    new ProductStockDalFacade().Update(productInStockTo);
                }
                else if (diff == 0)
                {
                }
                else
                {
                    exMsg = $"Not Enough Product ({dto.ProductId}-{dto.ProductName}) in ProductStock to complete transaction.";
                }
            }

            if (exMsg != null)
            {
                throw new ArgumentOutOfRangeException(exMsg);
            }
            foreach (var dto in dtos)
            {
                var inMovement     = new InnerMovementDalFacade().GetInnerMovement(dto.Id.Value);
                var quantity       = inMovement.Quantity - dto.Quantity;
                var incomeProducts = new List <IncomeProductDTO>();
                incomeProducts.Add(new IncomeProductDTO()
                {
                    ProductId = dto.ProductId,
                    Quantity  = quantity
                });
                var incomeDTO = new IncomeDTO()
                {
                    FromWorkplaceId = dto.FromWorkPlaceId,
                    ToWorkplaceId   = dto.ToWorkPlaceId,
                    IncomeProducts  = incomeProducts,
                    IsProductStock  = false,
                    UserId          = userId
                };
                new IncomeDalFacade().AddIncome(incomeDTO);
                new InnerMovementDalFacade().Update(dto);
            }
        }
Exemplo n.º 7
0
        public void Delete(int id, int userId)
        {
            var workPlaceId        = new UserDalFacade().GetAccountUser(userId).WorkPlace.Id.Value;
            var existing           = GetReturnedSale(id);
            var existingDiff       = existing.Quantity - existing.DefectedQuantity;
            var productInStockFrom = new ProductStockDalFacade().GetProductStockByPlaceAndProduct(workPlaceId, existing.ProductId);

            productInStockFrom.Quantity -= existingDiff;

            new ProductStockDalFacade().Update(productInStockFrom);

            new ReturnedSaleDalFacade().Delete(id);
        }
Exemplo n.º 8
0
        public void UpdateProductStock(ReturnedSaleDTO dto, int userId)
        {
            var workplaceId = new UserDalFacade().GetAccountUser(userId).WorkPlace.Id.Value;

            var productInStockAdd =
                new ProductStockDalFacade().GetProductStockByPlaceAndProduct(workplaceId, dto.ProductId, true);

            if (productInStockAdd == null)
            {
                AddProductStock(workplaceId, dto.ProductId, dto.Quantity - dto.DefectedQuantity);
            }
            else
            {
                productInStockAdd.Quantity += dto.Quantity - dto.DefectedQuantity;
                new ProductStockDalFacade().Update(productInStockAdd);
            }
        }
Exemplo n.º 9
0
        public void UpdateProductStocks(List <InnerMovementDTO> dtos)
        {
            var errorMessage = string.Empty;

            foreach (var dto in dtos)
            {
                var productInStockMinus =
                    new ProductStockDalFacade().GetProductStockByPlaceAndProduct(dto.FromWorkPlaceId, dto.ProductId);
                if (dto.Quantity > productInStockMinus.Quantity)
                {
                    errorMessage +=
                        $"Not Enough Product ({productInStockMinus.ProductId}-{productInStockMinus.ProductName}) in ProductStock to complete transaction.";
                }

                if (!string.IsNullOrEmpty(errorMessage))
                {
                    errorMessage += Environment.NewLine;
                }
            }

            if (!string.IsNullOrEmpty(errorMessage))
            {
                throw new ArgumentOutOfRangeException(errorMessage);
            }

            foreach (var dto in dtos)
            {
                var productInStockMinus =
                    new ProductStockDalFacade().GetProductStockByPlaceAndProduct(dto.FromWorkPlaceId, dto.ProductId);
                productInStockMinus.Quantity -= dto.Quantity;
                new ProductStockDalFacade().Update(productInStockMinus);

                var productInStockAdd =
                    new ProductStockDalFacade().GetProductStockByPlaceAndProduct(dto.ToWorkPlaceId, dto.ProductId, true);
                if (productInStockAdd == null)
                {
                    AddProductStock(dto);
                }
                else
                {
                    productInStockAdd.Quantity += dto.Quantity;
                    new ProductStockDalFacade().Update(productInStockAdd);
                }
            }
        }
Exemplo n.º 10
0
        public void Update(SaleDTO sale, int userId)
        {
            var saleOld            = new SaleDalFacade().GetSale(sale.Id);
            var workPlaceId        = new UserDalFacade().GetAccountUser(userId).WorkPlace.Id.Value;
            var diff               = sale.Quantity - saleOld.Quantity; // should-Be - was
            var productInStockFrom = new ProductStockDalFacade().GetProductStockByPlaceAndProduct(workPlaceId, sale.ProductId);

            if (productInStockFrom.Quantity > diff)
            {
                productInStockFrom.Quantity -= diff;// dto.Quantity - inMovement.Quantity;
                new ProductStockDalFacade().Update(productInStockFrom);
            }
            else if (diff == 0)
            {
                //do nothing
            }
            else
            {
                throw new ArgumentOutOfRangeException($"Not Enough Product ({saleOld.ProductId}-{saleOld.ProductName}) in ProductStock to complete transaction.");
            }
            new SaleDalFacade().Update(saleOld);
        }
Exemplo n.º 11
0
        ////
        public void AuditDailyBalance()
        {
            var dtos = new ProductStockDalFacade().GetAllDailyBalanceDTO();

            Add(dtos);
        }