mirror of
https://github.com/grocy/grocy.git
synced 2025-10-15 17:58:32 +00:00
Add a "consume all ingredients of this recipe" button (this now closes #32)
This commit is contained in:
@@ -2,8 +2,18 @@
|
||||
|
||||
namespace Grocy\Services;
|
||||
|
||||
use \Grocy\Services\StockService;
|
||||
|
||||
class RecipesService extends BaseService
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
$this->StockService = new StockService();
|
||||
}
|
||||
|
||||
protected $StockService;
|
||||
|
||||
public function GetRecipesFulfillment()
|
||||
{
|
||||
$sql = 'SELECT * from recipes_fulfillment';
|
||||
@@ -38,4 +48,27 @@ class RecipesService extends BaseService
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function ConsumeRecipe($recipeId)
|
||||
{
|
||||
if (!$this->RecipeExists($recipeId))
|
||||
{
|
||||
throw new \Exception('Recipe does not exist');
|
||||
}
|
||||
|
||||
$recipePositions = $this->Database->recipes_pos()->where('recipe_id', $recipeId)->fetchAll();
|
||||
foreach ($recipePositions as $recipePosition)
|
||||
{
|
||||
if ($recipePosition->only_check_single_unit_in_stock == 0)
|
||||
{
|
||||
$this->StockService->ConsumeProduct($recipePosition->product_id, $recipePosition->amount, false, StockService::TRANSACTION_TYPE_CONSUME);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private function RecipeExists($recipeId)
|
||||
{
|
||||
$recipeRow = $this->Database->recipes()->where('id = :1', $recipeId)->fetch();
|
||||
return $recipeRow !== null;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user