add option to select previous menuitems
All checks were successful
/ ls (pull_request) Successful in 33s
/ ls (push) Successful in 29s

This commit is contained in:
lubiana 2024-06-26 20:12:27 +02:00
parent 57b4e33028
commit 45029e0a4c
No known key found for this signature in database
11 changed files with 410 additions and 94 deletions

View file

@ -3,8 +3,10 @@
namespace App\Controller;
use App\Entity\FoodOrder;
use App\Entity\MenuItem;
use App\Entity\OrderItem;
use App\Form\OrderItemType;
use App\Repository\MenuItemRepository;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
@ -15,18 +17,32 @@ use Symfony\Component\Routing\Attribute\Route;
final class OrderItemController extends AbstractController
{
#[Route('/new/{foodOrder}', name: 'app_order_item_new', methods: ['GET', 'POST'])]
public function new(Request $request, FoodOrder $foodOrder, EntityManagerInterface $entityManager): Response
public function new(Request $request, FoodOrder $foodOrder, EntityManagerInterface $entityManager, MenuItemRepository $menuItemRepository): Response
{
if ($foodOrder->isClosed()) {
return $this->redirectToRoute('app_food_order_show', [
'id' => $foodOrder->getId(),
], Response::HTTP_SEE_OTHER);
}
$orderItem = new OrderItem;
$form = $this->createForm(OrderItemType::class, $orderItem);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$menuItem = $menuItemRepository->findOneBy([
'name' => $orderItem->getName(),
'foodVendor' => $foodOrder->getFoodVendor(),
]);
if ($menuItem === null) {
$menuItem = new MenuItem;
$menuItem->setName($orderItem->getName());
$menuItem->setFoodVendor($foodOrder->getFoodVendor());
$entityManager->persist($menuItem);
}
$orderItem->setMenuItem($menuItem);
$orderItem->setFoodOrder($foodOrder);
$entityManager->persist($orderItem);
$entityManager->flush();
@ -35,11 +51,15 @@ final class OrderItemController extends AbstractController
'id' => $foodOrder->getId(),
], Response::HTTP_SEE_OTHER);
}
$menuItems = $menuItemRepository->findBy([
'foodVendor' => $foodOrder->getFoodVendor(),
]);
return $this->render('order_item/new.html.twig', [
'order_item' => $orderItem,
'food_order' => $foodOrder,
'form' => $form,
'menuItems' => $menuItems,
]);
}