forked from lubiana/futtern
add option to select previous menuitems
This commit is contained in:
parent
57b4e33028
commit
45029e0a4c
11 changed files with 410 additions and 94 deletions
66
src/Command/MigrateOrderitemsMenuitemsCommand.php
Normal file
66
src/Command/MigrateOrderitemsMenuitemsCommand.php
Normal file
|
@ -0,0 +1,66 @@
|
|||
<?php declare(strict_types=1);
|
||||
|
||||
namespace App\Command;
|
||||
|
||||
use App\Entity\MenuItem;
|
||||
use App\Repository\MenuItemRepository;
|
||||
use App\Repository\OrderItemRepository;
|
||||
use Doctrine\ORM\EntityManagerInterface;
|
||||
use Override;
|
||||
use Symfony\Component\Console\Attribute\AsCommand;
|
||||
use Symfony\Component\Console\Command\Command;
|
||||
use Symfony\Component\Console\Input\InputInterface;
|
||||
use Symfony\Component\Console\Output\OutputInterface;
|
||||
use Symfony\Component\Console\Style\SymfonyStyle;
|
||||
|
||||
use function sprintf;
|
||||
|
||||
#[AsCommand(
|
||||
name: 'app:migrate-orderitems-menuitems',
|
||||
description: 'Migrate orderitems to menu items',
|
||||
)]
|
||||
final class MigrateOrderitemsMenuitemsCommand extends Command
|
||||
{
|
||||
public function __construct(
|
||||
private readonly EntityManagerInterface $entityManager,
|
||||
private readonly OrderItemRepository $orderItemRepository,
|
||||
private readonly MenuItemRepository $menuItemRepository,
|
||||
) {
|
||||
parent::__construct();
|
||||
}
|
||||
|
||||
#[Override]
|
||||
protected function configure(): void {}
|
||||
|
||||
#[Override]
|
||||
protected function execute(InputInterface $input, OutputInterface $output): int
|
||||
{
|
||||
$io = new SymfonyStyle($input, $output);
|
||||
$orderItems = $this->orderItemRepository->findAll();
|
||||
|
||||
foreach ($orderItems as $orderItem) {
|
||||
|
||||
$menuItem = $this->menuItemRepository->findOneBy([
|
||||
'name' => $orderItem->getName(),
|
||||
'foodVendor' => $orderItem->getFoodOrder()
|
||||
->getFoodVendor(),
|
||||
]);
|
||||
|
||||
if ($menuItem === null) {
|
||||
$menuItem = new MenuItem;
|
||||
$menuItem->setName($orderItem->getName());
|
||||
$menuItem->setFoodVendor($orderItem->getFoodOrder()->getFoodVendor());
|
||||
$this->entityManager->persist($menuItem);
|
||||
$this->entityManager->flush();
|
||||
$output->writeln(sprintf('Menu item %s added', $menuItem->getName()));
|
||||
}
|
||||
$orderItem->setMenuItem($menuItem);
|
||||
$this->entityManager->persist($orderItem);
|
||||
}
|
||||
|
||||
$this->entityManager->flush();
|
||||
$io->success('You have a new command! Now make it your own! Pass --help to see your options.');
|
||||
|
||||
return Command::SUCCESS;
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue