// 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); } }
public void Update(InnerMovementDTO dto) { var elementToUpdate = GetInnerMovement(dto.Id ?? 0); elementToUpdate.Quantity = dto.Quantity; elementToUpdate.TotalPrice = dto.TotalPrice; elementToUpdate.MoveDate = dto.MoveDate; elementToUpdate.UpdatedDate = DateTime.Now; db.SubmitChanges(); }
// private static void AddProductStock(InnerMovementDTO dto) { var productStock = new ProductStockDTO() { WorkPlaceId = dto.ToWorkPlaceId, ProductId = dto.ProductId, Quantity = dto.Quantity, }; new ProductStockDalFacade().Add(productStock); }
public void Add(InnerMovementDTO dto) { var elementToAdd = new InnerMovement(dto.Id, dto.MoveDate, dto.ProductId, dto.Quantity, dto.FromWorkPlaceId, dto.ToWorkPlaceId) { CreatedDate = DateTime.Now.Date, GroupId = GetRandomGroupId(), TotalPrice = dto.TotalPrice, }; db.InnerMovements.InsertOnSubmit(elementToAdd); db.SubmitChanges(); }
public void Update(InnerMovementDTO dto, int userId) { 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 { throw new ArgumentOutOfRangeException($"Not Enough Product ({dto.ProductId}-{dto.ProductName}) in ProductStock to complete transaction."); } 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); }
public HttpResponseMessage Update(InnerMovementDTO dto) { try { var userId = AuthHelper.GetUserIdFromClaims(User.Identity as ClaimsIdentity); new InnerMovementBL().Update(dto, userId); return(Request.CreateResponse(HttpStatusCode.OK, true)); } catch (ArgumentOutOfRangeException ex) { LogManager.Instance.Error(ex); return(Request.CreateResponse(HttpStatusCode.BadRequest, ex.Message)); } catch (Exception ex) { LogManager.Instance.Error(ex); return(Request.CreateResponse(HttpStatusCode.InternalServerError, false)); } }
public void Add(InnerMovementDTO dto, int userId) { new ProductStockBL().UpdateProductStock(dto); new InnerMovementDalFacade().Add(dto); var incomeProducts = new List <IncomeProductDTO>(); incomeProducts.Add(new IncomeProductDTO() { ProductId = dto.ProductId, Quantity = dto.Quantity }); var incomeDTO = new IncomeDTO() { FromWorkplaceId = dto.FromWorkPlaceId, ToWorkplaceId = dto.ToWorkPlaceId, IncomeProducts = incomeProducts, IsProductStock = false, UserId = userId }; new IncomeDalFacade().AddIncome(incomeDTO); }