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); }
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); }
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); }