Esempio n. 1
0
        public void Delete(int id)
        {
            var sales = new SaleDalFacade().GetOrderSale(id);

            foreach (var sale in sales)
            {
                new SaleBL().Delete(sale.Id);
            }
            new OrderDalFacade().Delete(id);
        }
Esempio n. 2
0
        public void Delete(int id)
        {
            var sale  = new SaleDalFacade().GetSale(id);
            var order = new OrderBL().GetClientOrder(sale.OrderId);
            var saler = new UserBL().GetAccountUser(order.SalerId);

            if (saler.WorkPlace.Id != null)
            {
                var productStock = new ProductStockDTO()
                {
                    WorkPlaceId = saler.WorkPlace.Id.Value,
                    ProductId   = sale.ProductId,
                    Quantity    = sale.Quantity
                };
                new ProductStockBL().Add(productStock, order.SalerId);
            }

            new SaleDalFacade().Delete(id);
        }
Esempio n. 3
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);
        }