mock add selling, get real sellings in history

This commit is contained in:
Tykayn 2025-02-17 23:29:40 +01:00 committed by tykayn
parent 9885d6f937
commit 7e120c030b

View file

@ -13,6 +13,7 @@ use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response; use Symfony\Component\HttpFoundation\Response;
final class DefaultController extends AbstractController final class DefaultController extends AbstractController
{ {
#[Route('/', name: 'app_default')] #[Route('/', name: 'app_default')]
@ -69,6 +70,7 @@ final class DefaultController extends AbstractController
#[Route('/history', name: 'history')] #[Route('/history', name: 'history')]
public function history(): Response public function history(): Response
{ {
$user = $this->getUser();
return $this->render('logged/history.html.twig', [ return $this->render('logged/history.html.twig', [
'controller_name' => 'DefaultController', 'controller_name' => 'DefaultController',
'chiffreAffaires' => 10000, 'chiffreAffaires' => 10000,
@ -91,17 +93,19 @@ final class DefaultController extends AbstractController
], ],
'allSellings' => 12, 'allSellings' => 12,
'recentSellings' => [], 'recentSellings' => [],
'recentSells' => [ 'recentSells' =>
[ $user->getSellings(),
'id' => '1234', // [
'date' => date_create('now'), // [
'comment' => 'blah', // 'id' => '1234',
'amount' => 52, // 'date' => date_create('now'),
'productsSold' => [ // 'comment' => 'blah',
'name' => 'un truc de démo aussi làààà' // 'amount' => 52,
], // 'productsSold' => [
], // 'name' => 'un truc de démo aussi làààà'
], // ],
// ],
// ],
'activeSelling' => [], 'activeSelling' => [],
// 'sellingComment' => [], // 'sellingComment' => [],
'statisticsFestivals' => 'todo', 'statisticsFestivals' => 'todo',
@ -123,14 +127,14 @@ final class DefaultController extends AbstractController
'products' => $user->getProducts(), 'products' => $user->getProducts(),
// mock land // mock land
'lastFestival' => ['id' => 1, 'lastFestival' => ['id' => 1,
'name' => 'le festival de mock', 'name' => 'le festival de mock',
'dateCreation' => '2025-02-16', 'dateCreation' => '2025-02-16',
'commentaire' => 'MOCK: hop le commentaire de festival', 'commentaire' => 'MOCK: hop le commentaire de festival',
'chiffreAffaire' => '1234', 'chiffreAffaire' => '1234',
'fondDeCaisseAvant' => '100', 'fondDeCaisseAvant' => '100',
'fondDeCaisseAprès' => '150', 'fondDeCaisseAprès' => '150',
'sold' => 123 'sold' => 123
], ],
'history' => [], 'history' => [],
]); ]);
} }
@ -146,9 +150,10 @@ final class DefaultController extends AbstractController
public function mass_create(Request $request, EntityManagerInterface $entityManager): Response public function mass_create(Request $request, EntityManagerInterface $entityManager): Response
{ {
// TODO prendre en compte l'ajout de nouveaux produits si on a une valeur dans le POST // TODO prendre en compte l'ajout de nouveaux produits si on a une valeur dans le POST
$request = Request::createFromGlobals(); // $request = Request::createFromGlobals();
$data = json_decode($request->getContent(), true); $data = json_decode($request->getContent(), true);
$loggedUser = $this->getUser();
// les imports listent des catégories de produits et des noms de produits avec leur prix comme ceci: // les imports listent des catégories de produits et des noms de produits avec leur prix comme ceci:
// catégorie: livre // catégorie: livre
// les moutaines;5€ // les moutaines;5€
@ -161,6 +166,18 @@ final class DefaultController extends AbstractController
// Vérifiez si une requête POST a été faite // Vérifiez si une requête POST a été faite
if ($request->isMethod('POST')) { if ($request->isMethod('POST')) {
$data = $request->getContent(); $data = $request->getContent();
return new Response(var_dump($data));
$lines = explode("\n", $data); // Séparez les lignes $lines = explode("\n", $data); // Séparez les lignes
$currentCategory = null; $currentCategory = null;
@ -175,6 +192,7 @@ final class DefaultController extends AbstractController
if (preg_match('/^(.*):$/', $line, $matches)) { if (preg_match('/^(.*):$/', $line, $matches)) {
$currentCategory = new GroupOfProducts(); $currentCategory = new GroupOfProducts();
$currentCategory->setName(trim($matches[1])); $currentCategory->setName(trim($matches[1]));
$currentCategory->setOwner($loggedUser);
$entityManager->persist($currentCategory); $entityManager->persist($currentCategory);
continue; continue;
} }
@ -186,6 +204,7 @@ final class DefaultController extends AbstractController
// Créez un nouvel objet Product // Créez un nouvel objet Product
$product = new Product(); $product = new Product();
$product->setUser($loggedUser);
$product->setName($productName); $product->setName($productName);
$product->setPrice($productPrice); $product->setPrice($productPrice);
@ -198,6 +217,8 @@ final class DefaultController extends AbstractController
// Enregistrez tous les changements dans la base de données // Enregistrez tous les changements dans la base de données
$entityManager->flush(); $entityManager->flush();
// return $this->redirectToRoute('app_product_index');
return new Response('Produits importés avec succès.', Response::HTTP_CREATED); return new Response('Produits importés avec succès.', Response::HTTP_CREATED);
} }
} }
@ -221,23 +242,23 @@ final class DefaultController extends AbstractController
// si l'utilisateur courant n'a pas de festival actuel, en créer un // si l'utilisateur courant n'a pas de festival actuel, en créer un
$currentFestival = $loggedUser->getCurrentFestival(); // $currentFestival = $loggedUser->getCurrentFestival();
if (!$currentFestival) { // if (!$currentFestival) {
//
$currentFestival = new Festival(); // $currentFestival = new Festival();
$currentFestival // $currentFestival
->setName('festival auto créé') // ->setName('festival auto créé')
->setUser($loggedUser) // ->setUser($loggedUser)
->setDateCreation(new \DateTime()) // ->setDateCreation(new \DateTime())
->setDateStart(new \DateTime()) // ->setDateStart(new \DateTime())
->setDateEnd((new \DateTime())->modify('+1 year')) // ->setDateEnd((new \DateTime())->modify('+1 year'))
->setClientsCount(1); // ->setClientsCount(1);
//
$entityManager->persist($currentFestival); // $entityManager->persist($currentFestival);
} else { // } else {
$currentFestival->setClientsCount($currentFestival->getClientsCount() + 1); // $currentFestival->setClientsCount($currentFestival->getClientsCount() + 1);
} // }
$currentFestival->addSelling($newSelling); // $currentFestival->addSelling($newSelling);
// prendre les identifiants des produits en base et les ajouter aux produits de ce Selling // prendre les identifiants des produits en base et les ajouter aux produits de ce Selling
// Récupérer les produits à partir des identifiants // Récupérer les produits à partir des identifiants
@ -274,9 +295,20 @@ final class DefaultController extends AbstractController
$response = [ $response = [
'message' => 'yes', 'message' => 'yes',
'newChiffreAffaire' => $currentFestival->getChiffreAffaire(), // TODO démocker 'newChiffreAffaire' => $currentFestival->getChiffreAffaire(),
'clientsCount' => $currentFestival->getClientsCount(), 'newChiffreAffaire' => 12,
'activeFestival' => $currentFestival, // 'clientsCount' => $currentFestival->getClientsCount(),
'clientsCount' => 12,
// 'activeFestival' => $currentFestival,
'activeFestival' => ['id' => 1,
'name' => 'le festival de mock',
'dateCreation' => '2025-02-16',
'commentaire' => 'MOCK: hop le commentaire de festival',
'chiffreAffaire' => '1234',
'fondDeCaisseAvant' => '100',
'fondDeCaisseAprès' => '150',
'sold' => 123
],
]; ];
// prendre en compte l'ajout de nouveaux produits si on a une valeur dans le POST // prendre en compte l'ajout de nouveaux produits si on a une valeur dans le POST