Exemplo n.º 1
0
 @Transactional
 public void PrepareDish(Dish dish, Employee employee, OrderNum orderNum, Date date)
     throws EmptyRecipeException, NotEnoughStockException {
   List<Ingredient> missingIngredients = stockDao.getIngredientsMissingOnStock(dish);
   if (missingIngredients.size() == 0) {
     List<Recipe> recipeList = recipeDao.getAllByDish(dish);
     for (Recipe r : recipeList) {
       Ingredient ingredient = r.getIngredient();
       Stock stock = stockDao.getStockByName(r.getIngredient().getIngredientName());
       Double qty = stock.getQty() - r.getQty();
       if (qty > 0) {
         stock.setQty(qty);
         stockDao.add(stock);
       } else throw new NotEnoughStockException("Not enough ingredient on stock", stock);
     }
     PreparedDish preparedDish = new PreparedDish();
     preparedDish.setDish(dish);
     preparedDish.setEmployee(employee);
     preparedDish.setOrder(orderNum);
     preparedDish.setPrepareDate(date);
     add(preparedDish);
   } else throw new NotEnoughStockException("Not enough ingredient on stock", null);
 }