```
✨ feat(Product): Ajoute la publication des produits et les périodes bloquées
Ajoute la possibilité de publier ou masquer un produit.
Permet de bloquer des périodes pour un produit.
Corrige des bugs liés à la suppression des produits du panier.
Mise à jour de l'affichage du calendrier pour les blocages.
```
This commit is contained in:
@@ -171,7 +171,7 @@ class ReserverController extends AbstractController
|
||||
#[Route('/', name: 'reservation')]
|
||||
public function revervation(FormulesRepository $formulesRepository, ProductRepository $productRepository): Response
|
||||
{
|
||||
$products = $productRepository->findBy(['category' => '3-15 ans'], ['updatedAt' => 'DESC'], 3);
|
||||
$products = $productRepository->findBy(['category' => '3-15 ans', 'isPublish' => true], ['updatedAt' => 'DESC'], 3);
|
||||
$formules = $formulesRepository->findBy(['isPublish' => true], ['pos' => 'ASC'], 3);
|
||||
|
||||
return $this->render('revervation/home.twig', [
|
||||
@@ -339,15 +339,14 @@ class ReserverController extends AbstractController
|
||||
}
|
||||
}
|
||||
|
||||
if (!is_array($ids)) {
|
||||
$ids = [];
|
||||
}
|
||||
|
||||
$products = [];
|
||||
if (!empty($ids)) {
|
||||
$products = $productRepository->findBy(['id' => $ids]);
|
||||
}
|
||||
|
||||
$foundIds = array_map(fn($p) => $p->getId(), $products);
|
||||
$removedIds = array_values(array_diff($ids, $foundIds));
|
||||
|
||||
$items = [];
|
||||
$totalHT = 0;
|
||||
$tvaEnabled = isset($_ENV['TVA_ENABLED']) && $_ENV['TVA_ENABLED'] === "true";
|
||||
@@ -382,6 +381,7 @@ class ReserverController extends AbstractController
|
||||
'start_date' => $startStr,
|
||||
'end_date' => $endStr,
|
||||
'products' => $items,
|
||||
'unavailable_products_ids' => $removedIds,
|
||||
'total' => [
|
||||
'totalHT' => $totalHT,
|
||||
'totalTva' => $totalTva,
|
||||
@@ -431,7 +431,8 @@ class ReserverController extends AbstractController
|
||||
OrderSessionRepository $repository,
|
||||
ProductRepository $productRepository,
|
||||
UploaderHelper $uploaderHelper,
|
||||
ProductReserveRepository $productReserveRepository
|
||||
ProductReserveRepository $productReserveRepository,
|
||||
EntityManagerInterface $em
|
||||
): Response {
|
||||
$session = $repository->findOneBy(['uuid' => $sessionId]);
|
||||
if (!$session) {
|
||||
@@ -470,6 +471,14 @@ class ReserverController extends AbstractController
|
||||
$products = $productRepository->findBy(['id' => $ids]);
|
||||
}
|
||||
|
||||
// Cleanup missing products from session
|
||||
$foundIds = array_map(fn($p) => $p->getId(), $products);
|
||||
if (count($foundIds) !== count($ids)) {
|
||||
$sessionData['ids'] = $foundIds;
|
||||
$session->setProducts($sessionData);
|
||||
$em->flush();
|
||||
}
|
||||
|
||||
$items = [];
|
||||
$totalHT = 0;
|
||||
$tvaEnabled = isset($_ENV['TVA_ENABLED']) && $_ENV['TVA_ENABLED'] === "true";
|
||||
@@ -520,7 +529,8 @@ class ReserverController extends AbstractController
|
||||
OrderSessionRepository $repository,
|
||||
ProductRepository $productRepository,
|
||||
UploaderHelper $uploaderHelper,
|
||||
ProductReserveRepository $productReserveRepository // Added dependency
|
||||
ProductReserveRepository $productReserveRepository, // Added dependency
|
||||
EntityManagerInterface $em
|
||||
): Response {
|
||||
// This is the POST target for the login form, but also the GET page.
|
||||
// The authenticator handles the POST. For GET, we just render the page.
|
||||
@@ -561,6 +571,14 @@ class ReserverController extends AbstractController
|
||||
$products = $productRepository->findBy(['id' => $ids]);
|
||||
}
|
||||
|
||||
// Cleanup missing products from session
|
||||
$foundIds = array_map(fn($p) => $p->getId(), $products);
|
||||
if (count($foundIds) !== count($ids)) {
|
||||
$sessionData['ids'] = $foundIds;
|
||||
$session->setProducts($sessionData);
|
||||
$em->flush();
|
||||
}
|
||||
|
||||
$items = [];
|
||||
$totalHT = 0;
|
||||
$tvaEnabled = isset($_ENV['TVA_ENABLED']) && $_ENV['TVA_ENABLED'] === "true";
|
||||
@@ -685,7 +703,7 @@ class ReserverController extends AbstractController
|
||||
public function revervationCatalogue(ProductRepository $productRepository): Response
|
||||
{
|
||||
return $this->render('revervation/catalogue.twig', [
|
||||
'products' => $productRepository->findAll(),
|
||||
'products' => $productRepository->findBy(['isPublish' => true]),
|
||||
'tvaEnabled' => isset($_ENV['TVA_ENABLED']) && $_ENV['TVA_ENABLED'] === "true",
|
||||
]);
|
||||
}
|
||||
@@ -801,7 +819,7 @@ class ReserverController extends AbstractController
|
||||
$customer->getName() . " " . $customer->getSurname(),
|
||||
"[Ludikevent] - Code de récupération",
|
||||
"mails/welcome.twig",
|
||||
['account' => $customer]
|
||||
['customer' => $customer]
|
||||
);
|
||||
|
||||
$em->persist($customer);
|
||||
@@ -933,7 +951,7 @@ class ReserverController extends AbstractController
|
||||
|
||||
foreach ($results['hits'] as $result) {
|
||||
$p = $productRepository->find($result['id']);
|
||||
if ($p instanceof Product) {
|
||||
if ($p instanceof Product && $p->isPublish()) {
|
||||
$items[] = [
|
||||
'image' => $uploaderHelper->asset($p, 'imageFile') ?: "/provider/images/favicon.png",
|
||||
"name" => $p->getName(),
|
||||
|
||||
Reference in New Issue
Block a user