src/Controller/MainController.php line 52

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\Atelier;
  4. use App\Entity\CategorieFamille;
  5. use App\Entity\CategorieMetier;
  6. use App\Entity\Droit;
  7. use App\Entity\GroupesUtilisateur;
  8. use App\Entity\MoisSemaine;
  9. use App\Entity\NombreOperationPreserie;
  10. use App\Entity\Operation;
  11. use App\Entity\ParametrageEchantillon;
  12. use App\Entity\SouscategorieMetier;
  13. use App\Entity\TableauMesureLibelle;
  14. use App\Entity\TypeMail;
  15. use App\Form\AtelierType;
  16. use App\Form\DroitType;
  17. use App\Form\OperationType;
  18. use App\Form\ProfilType;
  19. use App\Form\TableauMesureLibelleType;
  20. use App\Form\TypeMailType;
  21. use App\Form\UserType;
  22. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  23. use Doctrine\ORM\EntityManagerInterface;
  24. use Symfony\Component\HttpFoundation\Request;
  25. use Symfony\Component\Routing\Annotation\Route;
  26. use App\Service\DatatablesService;
  27. use Symfony\Component\HttpFoundation\JsonResponse;
  28. use Symfony\Component\HttpKernel\KernelInterface;
  29. use Symfony\Component\PasswordHasher\Hasher\UserPasswordHasherInterface;
  30. use App\Entity\User;
  31. /**
  32. * @method User getUser()
  33. */
  34. class MainController extends AbstractController
  35. {
  36. protected $params = [];
  37. public function __construct(private EntityManagerInterface $em, private DatatablesService $datatables_service, private UserPasswordHasherInterface $encoder,
  38. private KernelInterface $kernel)
  39. {
  40. $this->params['leftbar_open'] = 'parametrages';
  41. $this->params['leftbar_open_2'] = null;
  42. $this->params['title'] = null;
  43. }
  44. public function redirect_home(Request $request){
  45. return $this->redirectToRoute('index');
  46. }
  47. #[Route(path: '/', name: 'index')]
  48. public function index(Request $request)
  49. {
  50. return $this->render('index.html.twig', $this->params);
  51. }
  52. #[Route(path: '/profil', name: 'profil')]
  53. public function profil(Request $request)
  54. {
  55. $this->params['title'] = 'Mon profil';
  56. $this->params['leftbar_open_2'] = 'parametrages_gestion';
  57. $object = $this->em->getRepository(User::class)->find($this->getUser()->getId());
  58. $form = $this->createForm(ProfilType::class, $object);
  59. $form->handleRequest($request);
  60. if ($form->isSubmitted() && $form->isValid()) {
  61. $object = $form->getData();
  62. if ($object->getPlainPassword() != "" && $object->getPlainPassword() != null) {
  63. $encodedPassword = $this->encoder->hashPassword($object, $object->getPlainPassword());//, $object->getSalt()
  64. $object->setPassword($encodedPassword);
  65. }
  66. $this->em->persist($object);
  67. $this->em->flush();
  68. return new JsonResponse(['success' => true]);
  69. }
  70. $this->params['form'] = $form->createView();
  71. return $this->render('Parametrages/profil.html.twig', $this->params);
  72. }
  73. #[Route(path: '/parametrages/menus', name: 'menus')]
  74. public function menus(Request $request)
  75. {
  76. $this->params['leftbar_open_2'] = 'parametrages_gestion';
  77. $table = $this->datatables_service->getTableDroits()->handleRequest($request);
  78. if ($table->isCallback()) {
  79. return $table->getResponse();
  80. }
  81. $this->params['datatable'] = $table;
  82. return $this->render('Parametrages/menus.html.twig', $this->params);
  83. }
  84. #[Route(path: '/parametrages/droits', name: 'droits')]
  85. public function droits(Request $request)
  86. {
  87. $this->params['leftbar_open_2'] = 'parametrages_gestion';
  88. $table_users = $this->datatables_service->getDatatableDroits()->handleRequest($request);
  89. if ($table_users->isCallback()) {
  90. return $table_users->getResponse();
  91. }
  92. $this->params['datatable'] = $table_users;
  93. return $this->render('Parametrages/droits.html.twig', $this->params);
  94. }
  95. #[Route(path: '/parametrages/droit/{slug}', name: 'droit', defaults: ['slug' => 0])]
  96. public function droit(Request $request, $slug)
  97. {
  98. //Créer form
  99. $droit = $this->em->getRepository(Droit::class)->find($slug);
  100. $form = $this->createForm(DroitType::class, $droit);
  101. $form->handleRequest($request);
  102. if ($form->isSubmitted() && $form->isValid()) {
  103. $object = $form->getData();
  104. $this->em->persist($object);
  105. $this->em->flush();
  106. return $this->redirectToRoute('droits');
  107. }
  108. $this->params['form'] = $form->createView();
  109. return $this->render('Parametrages/droit.html.twig', $this->params);
  110. }
  111. #[Route(path: '/gestion/utilisateurs', name: 'utilisateurs')]
  112. public function utilisateurs(Request $request)
  113. {
  114. if($this->getUser()->getAtelier() != null){
  115. return $this->redirectToRoute('utilisateurs_atelier');
  116. }
  117. $this->params['leftbar_open_2'] = 'parametrages_gestion';
  118. $table_users = $this->datatables_service->getDatatableUsers($request->request, $this->getUser())->handleRequest($request);
  119. if ($table_users->isCallback()) {
  120. return $table_users->getResponse();
  121. }
  122. $this->params['datatable'] = $table_users;
  123. return $this->render('Parametrages/utilisateurs.html.twig', $this->params);
  124. }
  125. #[Route(path: '/gestion/utilisateur/{slug}', name: 'utilisateur', defaults: ['slug' => 0])]
  126. public function utilisateur(Request $request, $slug)
  127. {
  128. $this->params['title'] = 'Utilisateur';
  129. $this->params['leftbar_open_2'] = 'parametrages_gestion';
  130. $object = new User();
  131. if ($slug != 0) {
  132. $object = $this->em->getRepository(User::class)->find($slug);
  133. }
  134. $form = $this->createForm(UserType::class, $object);
  135. $form->handleRequest($request);
  136. if ($form->isSubmitted() && $form->isValid()) {
  137. $object = $form->getData();
  138. if ($object->getPlainPassword() != "" && $object->getPlainPassword() != null) {
  139. //$encoder = $this->encoder->getEncoder($object);
  140. $encodedPassword = $this->encoder->hashPassword($object, $object->getPlainPassword());//, $object->getSalt()
  141. $object->setPassword($encodedPassword);
  142. }
  143. $this->em->persist($object);
  144. $this->em->flush();
  145. return $this->redirectToRoute('utilisateurs');
  146. }
  147. $this->params['droit'] = null;
  148. /*if($this->getUser()->getFournisseur() != null){
  149. $this->params['droit'] = 'fournisseur';
  150. }*/
  151. $this->params['form'] = $form->createView();
  152. return $this->render('Parametrages/utilisateur.html.twig', $this->params);
  153. }
  154. #[Route(path: '/parametrages/typemails', name: 'type_mails')]
  155. public function typemails(Request $request)
  156. {
  157. $this->params['leftbar_open_2'] = 'parametrages_messagerie';
  158. $table = $this->datatables_service->getDatatableTypeMails()->handleRequest($request);
  159. if ($table->isCallback()) {
  160. return $table->getResponse();
  161. }
  162. $this->params['datatable'] = $table;
  163. return $this->render('Parametrages/typemails.html.twig', $this->params);
  164. }
  165. #[Route(path: '/parametrages/typemail/{slug}', name: 'type_mail', defaults: ['slug' => 0])]
  166. public function typemail(Request $request, $slug)
  167. {
  168. $this->params['title'] = 'Type mail';
  169. $this->params['leftbar_open_2'] = 'parametrages_messagerie';
  170. $object = new TypeMail();
  171. if ($slug != 0) {
  172. $object = $this->em->getRepository(TypeMail::class)->find($slug);
  173. }
  174. $form = $this->createForm(TypeMailType::class, $object);
  175. $form->handleRequest($request);
  176. if ($form->isSubmitted() && $form->isValid()) {
  177. $object = $form->getData();
  178. $this->em->persist($object);
  179. $this->em->flush();
  180. return $this->redirectToRoute('type_mails');
  181. }
  182. $this->params['form'] = $form->createView();
  183. return $this->render('Parametrages/typemail.html.twig', $this->params);
  184. }
  185. #[Route(path: '/parametrages/groupes_utilisateurs', name: 'groupes_utilisateurs')]
  186. public function groupes_utilisateurs(Request $request)
  187. {
  188. $params = $request->request;
  189. $this->params['leftbar_open_2'] = 'parametrages_messagerie';
  190. $table = $this->datatables_service->getDatatableGroupesUtilisateurs($params)->handleRequest($request);
  191. if ($table->isCallback()) {
  192. return $table->getResponse();
  193. }
  194. $this->params['datatable'] = $table;
  195. $this->params['groupes'] = $this->em->getRepository(GroupesUtilisateur::class)->getAll();
  196. $this->params['utilisateurs'] = $this->em->getRepository(User::class)->getAll();
  197. return $this->render('Parametrages/groupesutilisateurs.html.twig', $this->params);
  198. }
  199. #[Route(path: '/parametrages/groupes_type_mails', name: 'groupes_type_mails')]
  200. public function groupes_type_mails(Request $request)
  201. {
  202. $params = $request->request;
  203. $this->params['leftbar_open_2'] = 'parametrages_messagerie';
  204. $table = $this->datatables_service->getDatatableLightTypeMails()->handleRequest($request);
  205. if ($table->isCallback()) {
  206. return $table->getResponse();
  207. }
  208. $table_groupes = $this->datatables_service->getDatatableGroupes($params)->handleRequest($request);
  209. if ($table_groupes->isCallback()) {
  210. return $table_groupes->getResponse();
  211. }
  212. $table_copie_groupes = $this->datatables_service->getDatatableGroupesCopie($params)->handleRequest($request);
  213. if ($table_copie_groupes->isCallback()) {
  214. return $table_copie_groupes->getResponse();
  215. }
  216. $this->params['datatable'] = $table;
  217. $this->params['datatable_groupe'] = $table_groupes;
  218. $this->params['datatable_copie_groupes'] = $table_copie_groupes;
  219. $this->params['groupes'] = $this->em->getRepository(GroupesUtilisateur::class)->getAll();
  220. return $this->render('Parametrages/groupestypemails.html.twig', $this->params);
  221. }
  222. #[Route(path: '/parametrages/mailing', name: 'mailing')]
  223. public function mailing(Request $request)
  224. {
  225. $this->params['leftbar_open_2'] = 'parametrages_messagerie';
  226. $table = $this->datatables_service->getDatatableMailing($request->request)->handleRequest($request);
  227. if ($table->isCallback()) {
  228. return $table->getResponse();
  229. }
  230. $this->params['datatable'] = $table;
  231. return $this->render('Parametrages/mailing.html.twig', $this->params);
  232. }
  233. #[Route(path: '/parametrages/operations', name: 'operations')]
  234. public function operations(Request $request)
  235. {
  236. $this->params['leftbar_open_2'] = 'parametrages_gestion';
  237. $table = $this->datatables_service->getDatatableOperations($request->request)->handleRequest($request);
  238. if ($table->isCallback()) {
  239. return $table->getResponse();
  240. }
  241. $this->params['datatable'] = $table;
  242. return $this->render('Parametrages/operations.html.twig', $this->params);
  243. }
  244. #[Route(path: '/parametrages/operation/{slug}', name: 'operation', defaults: ['slug' => 0])]
  245. public function operation(Request $request, $slug)
  246. {
  247. $this->params['title'] = 'Opération';
  248. $this->params['leftbar_open_2'] = 'parametrages_gestion';
  249. $object = new Operation();
  250. if ($slug != 0) {
  251. $object = $this->em->getRepository(Operation::class)->find($slug);
  252. }
  253. $form = $this->createForm(OperationType::class, $object);
  254. $form->handleRequest($request);
  255. if ($form->isSubmitted() && $form->isValid()) {
  256. $object = $form->getData();
  257. $this->em->persist($object);
  258. $this->em->flush();
  259. return $this->redirectToRoute('operations');
  260. }
  261. $this->params['form'] = $form->createView();
  262. return $this->render('Parametrages/operation.html.twig', $this->params);
  263. }
  264. #[Route(path: '/parametrages/mesures', name: 'mesures')]
  265. public function mesures(Request $request){
  266. $this->params['leftbar_open_2'] = 'parametrages_gestion';
  267. $table = $this->datatables_service->getDatatableMesures($request->request)->handleRequest($request);
  268. if ($table->isCallback()) {
  269. return $table->getResponse();
  270. }
  271. $this->params['datatable'] = $table;
  272. return $this->render('Parametrages/mesures.html.twig', $this->params);
  273. }
  274. #[Route(path: '/parametrages/mesure/{slug}', name: 'mesure', defaults: ['slug' => 0])]
  275. public function mesure(Request $request, $slug)
  276. {
  277. $this->params['title'] = 'Mesure';
  278. $this->params['leftbar_open_2'] = 'parametrages_gestion';
  279. $object = new TableauMesureLibelle();
  280. if ($slug != 0) {
  281. $object = $this->em->getRepository(TableauMesureLibelle::class)->find($slug);
  282. }
  283. $form = $this->createForm(TableauMesureLibelleType::class, $object);
  284. $form->handleRequest($request);
  285. if ($form->isSubmitted() && $form->isValid()) {
  286. $object = $form->getData();
  287. $this->em->persist($object);
  288. $this->em->flush();
  289. return $this->redirectToRoute('mesures');
  290. }
  291. $this->params['form'] = $form->createView();
  292. return $this->render('Parametrages/mesure.html.twig', $this->params);
  293. }
  294. #[Route(path: '/parametrages/categoriesmetiers', name: 'categoriesmetiers')]
  295. public function categoriesmetiers(Request $request)
  296. {
  297. $this->params['title'] = 'Catégories/Sous catégorie métier';
  298. $this->params['leftbar_open_2'] = 'parametrages_gestion';
  299. //Categorie
  300. $table_categorie_metier = $this->datatables_service->getDatatableCategorieMetiers($request->request)->handleRequest($request);
  301. if ($table_categorie_metier->isCallback()) {
  302. return $table_categorie_metier->getResponse();
  303. }
  304. $this->params['datatable_categorie_metier'] = $table_categorie_metier;
  305. //Sous categorie
  306. $table_souscategorie_metier = $this->datatables_service->getDatatableSousCategorieMetiers($request->request)->handleRequest($request);
  307. if ($table_souscategorie_metier->isCallback()) {
  308. return $table_souscategorie_metier->getResponse();
  309. }
  310. $this->params['datatable_souscategorie_metier'] = $table_souscategorie_metier;
  311. //lien categories / sous categorie
  312. $table_lien_metier = $this->datatables_service->getDatatableSousCategorieFromCategorie($request->request)->handleRequest($request);
  313. if ($table_lien_metier->isCallback()) {
  314. return $table_lien_metier->getResponse();
  315. }
  316. $this->params['datatable_lien_metier'] = $table_lien_metier;
  317. return $this->render('Parametrages/categoriesmetiers.html.twig', $this->params);
  318. }
  319. #[Route(path: '/parametrages/familles', name: 'familles')]
  320. public function familles(Request $request){
  321. $this->params['categories'] = $this->em->getRepository(CategorieMetier::class)->findAll();
  322. //Familles
  323. $table_familles = $this->datatables_service->getDatatableFamilles($request->request)->handleRequest($request);
  324. if ($table_familles->isCallback()) {
  325. return $table_familles->getResponse();
  326. }
  327. $this->params['datatable_familles'] = $table_familles;
  328. return $this->render('Parametrages/familles.html.twig', $this->params);
  329. }
  330. #[Route(path: '/ajax/famille/save_nombre_operation', name: 'save_nombre_operation')]
  331. public function save_nombre_operation(Request $request){
  332. $categorie = $this->em->getRepository(CategorieMetier::class)->find($request->request->get('categorie'));
  333. $souscategorie = $this->em->getRepository(SouscategorieMetier::class)->find($request->request->get('souscategorie'));
  334. $nombre_operation = $request->request->get('nombre_operation');
  335. $obj_nombre_operation = $this->em->getRepository(NombreOperationPreserie::class)->findOneBy(['categorie' => $categorie, 'souscategorie' => $souscategorie]);
  336. if($obj_nombre_operation != null){
  337. $obj_nombre_operation->setNombreOperation($nombre_operation);
  338. $this->em->persist($obj_nombre_operation);
  339. $this->em->flush();
  340. }else{
  341. $obj_nombre_operation = new NombreOperationPreserie;
  342. $obj_nombre_operation
  343. ->setCategorie($categorie)
  344. ->setSouscategorie($souscategorie)
  345. ->setNombreOperation($nombre_operation);
  346. $this->em->persist($obj_nombre_operation);
  347. $this->em->flush();
  348. }
  349. return new JsonResponse(['success' => true]);
  350. }
  351. #[Route(path: '/ajax/famille/get_nombre_operation', name: 'get_nombre_operation')]
  352. public function get_nombre_operation(Request $request){
  353. $categorie = $this->em->getRepository(CategorieMetier::class)->find($request->request->get('categorie'));
  354. $souscategorie = $this->em->getRepository(SouscategorieMetier::class)->find($request->request->get('souscategorie'));
  355. $obj_nombre_operation = $this->em->getRepository(NombreOperationPreserie::class)->findOneBy(['categorie' => $categorie, 'souscategorie' => $souscategorie]);
  356. $nombre = 0;
  357. if($obj_nombre_operation != null){
  358. $nombre = $obj_nombre_operation->getNombreOperation();
  359. }
  360. return new JsonResponse(['success' => true, 'nombre_operation' => $nombre]);
  361. }
  362. #[Route(path: '/parametrages/parametrage-echantillon', name: 'parametrageechantillon')]
  363. public function parametrageechantillon(Request $request){
  364. $this->params['title'] = 'Paramétrage échantillon';
  365. $this->params['leftbar_open_2'] = 'parametrages_gestion';
  366. $this->params['parametrages'] = $this->em->getRepository(ParametrageEchantillon::class)->findAll();
  367. return $this->render('Parametrages/parametrageechantillon.html.twig', $this->params);
  368. }
  369. #[Route(path: '/parametrages/categoriearticle', name: 'categoriearticle')]
  370. public function categoriearticle(Request $request)
  371. {
  372. $this->params['title'] = 'Familles/Catégorie article';
  373. $this->params['leftbar_open_2'] = 'parametrages_gestion';
  374. //Familles
  375. $table_familles = $this->datatables_service->getDatatableFamilles($request->request, true)->handleRequest($request);
  376. if ($table_familles->isCallback()) {
  377. return $table_familles->getResponse();
  378. }
  379. $this->params['datatable_familles'] = $table_familles;
  380. //Categorie article
  381. $table_categoriearticle = $this->datatables_service->getDatatableCategorieArticle($request->request)->handleRequest($request);
  382. if ($table_categoriearticle->isCallback()) {
  383. return $table_categoriearticle->getResponse();
  384. }
  385. $this->params['datatable_categoriearticle'] = $table_categoriearticle;
  386. //lien categories / sous categorie
  387. $table_lien_metier = $this->datatables_service->getDatatableCategoriearticleFromFamille($request->request)->handleRequest($request);
  388. if ($table_lien_metier->isCallback()) {
  389. return $table_lien_metier->getResponse();
  390. }
  391. $this->params['datatable_lien'] = $table_lien_metier;
  392. return $this->render('Parametrages/categoriesarticles.html.twig', $this->params);
  393. }
  394. #[Route(path: '/parametrages/gestiondefaut', name: 'gestiondefaut')]
  395. public function gestiondefaut(Request $request){
  396. $this->params['title'] = 'Gestion des défauts';
  397. $this->params['leftbar_open_2'] = 'parametrages_gestion';
  398. //Défauts
  399. $table_defauts = $this->datatables_service->getDatatableDefaut($request->request)->handleRequest($request);
  400. if ($table_defauts->isCallback()) {
  401. return $table_defauts->getResponse();
  402. }
  403. $this->params['datatable_defauts'] = $table_defauts;
  404. //Catégories defauts
  405. $table_categoriedefauts = $this->datatables_service->getDatatableCategorieDefaut($request->request)->handleRequest($request);
  406. if ($table_categoriedefauts->isCallback()) {
  407. return $table_categoriedefauts->getResponse();
  408. }
  409. $this->params['datatable_categoriedefauts'] = $table_categoriedefauts;
  410. //lien categoriesdefaut / defauts
  411. $table_lien = $this->datatables_service->getDatatableDefautsFromCategorie($request->request)->handleRequest($request);
  412. if ($table_lien->isCallback()) {
  413. return $table_lien->getResponse();
  414. }
  415. $this->params['datatable_lien'] = $table_lien;
  416. return $this->render('Parametrages/gestiondefaut.html.twig', $this->params);
  417. }
  418. #[Route(path: '/parametrages/gestionfamilledefaut', name: 'gestionfamilledefaut')]
  419. public function gestionfamilledefaut(Request $request){
  420. $this->params['title'] = 'Gestion des défauts par famille';
  421. $this->params['leftbar_open_2'] = 'parametrages_gestion';
  422. //Catégories defauts
  423. $table_categoriedefauts = $this->datatables_service->getDatatableCategorieDefaut($request->request, true)->handleRequest($request);
  424. if ($table_categoriedefauts->isCallback()) {
  425. return $table_categoriedefauts->getResponse();
  426. }
  427. $this->params['datatable_categoriedefauts'] = $table_categoriedefauts;
  428. //Familles
  429. $table_familles = $this->datatables_service->getDatatableFamilles($request->request, true)->handleRequest($request);
  430. if ($table_familles->isCallback()) {
  431. return $table_familles->getResponse();
  432. }
  433. $this->params['datatable_familles'] = $table_familles;
  434. //lien categoriesdefaut / familles
  435. $table_lien = $this->datatables_service->getDatatableCategoriedefautFromFamille($request->request)->handleRequest($request);
  436. if ($table_lien->isCallback()) {
  437. return $table_lien->getResponse();
  438. }
  439. $this->params['datatable_lien'] = $table_lien;
  440. return $this->render('Parametrages/gestionfamilledefaut.html.twig', $this->params);
  441. }
  442. #[Route(path: '/parametrages/matricefamilledefaut', name: 'matricefamilledefaut')]
  443. public function matricefamilledefaut(Request $request){
  444. $this->params['title'] = 'Matrice des défauts';
  445. $this->params['leftbar_open_2'] = 'parametrages_gestion';
  446. $this->params['familles'] = $this->em->getRepository(CategorieFamille::class)->findAll();
  447. return $this->render('Parametrages/matricedefaut.html.twig', $this->params);
  448. }
  449. #[Route(path: '/parametrages/ateliers', name: 'ateliers')]
  450. public function ateliers(Request $request)
  451. {
  452. $this->params['leftbar_open_2'] = 'parametrages_gestion';
  453. $table_users = $this->datatables_service->getDatatableAteliers()->handleRequest($request);
  454. if ($table_users->isCallback()) {
  455. return $table_users->getResponse();
  456. }
  457. $this->params['datatable'] = $table_users;
  458. return $this->render('Parametrages/ateliers.html.twig', $this->params);
  459. }
  460. #[Route(path: '/parametrages/atelier/{slug}', name: 'atelier', defaults: ['slug' => 0])]
  461. public function atelier(Request $request, $slug)
  462. {
  463. //Créer form
  464. $droit = $this->em->getRepository(Atelier::class)->find($slug);
  465. $form = $this->createForm(AtelierType::class, $droit);
  466. $form->handleRequest($request);
  467. if ($form->isSubmitted() && $form->isValid()) {
  468. $object = $form->getData();
  469. $this->em->persist($object);
  470. $this->em->flush();
  471. return $this->redirectToRoute('ateliers');
  472. }
  473. $this->params['form'] = $form->createView();
  474. return $this->render('Parametrages/atelier.html.twig', $this->params);
  475. }
  476. #[Route(path: '/parametrages/moissemaines', name: 'moissemaines')]
  477. public function moissemaines(Request $request)
  478. {
  479. $this->params['moissemaines'] = $this->em->getRepository(MoisSemaine::class)->findAll();
  480. return $this->render('Parametrages/moissemaines.html.twig', $this->params);
  481. }
  482. #[Route(path: '/ajax/parametrages/moissemaines', name: 'ajax_moissemaines')]
  483. public function ajax_moissemaines(Request $request)
  484. {
  485. if($request->request->get('id') !== ''){
  486. $mois = $this->em->getRepository(MoisSemaine::class)->find($request->request->get('id'));
  487. $mois->setSemaines($request->request->get('semaines'));
  488. $this->em->persist($mois);
  489. }else{
  490. $numero_php = 1;
  491. switch($request->request->get('mois')){
  492. case 'janvier':
  493. $numero_php = 1;
  494. break;
  495. case 'fevrier':
  496. $numero_php = 2;
  497. break;
  498. case 'mars':
  499. $numero_php = 3;
  500. break;
  501. case 'avril':
  502. $numero_php = 4;
  503. break;
  504. case 'mai':
  505. $numero_php = 5;
  506. break;
  507. case 'juin':
  508. $numero_php = 6;
  509. break;
  510. case 'juillet':
  511. $numero_php = 7;
  512. break;
  513. case 'aout':
  514. $numero_php = 8;
  515. break;
  516. case 'septembre':
  517. $numero_php = 9;
  518. break;
  519. case 'octobre':
  520. $numero_php = 10;
  521. break;
  522. case 'novembre':
  523. $numero_php = 11;
  524. break;
  525. case 'decembre':
  526. $numero_php = 12;
  527. break;
  528. }
  529. $mois = new MoisSemaine;
  530. $mois->setSemaines($request->request->get('semaines'))
  531. ->setMois($request->request->get('mois'))
  532. ->setAnnee($request->request->get('annee'))
  533. ->setNumeroPhp($numero_php)
  534. ;
  535. $this->em->persist($mois);
  536. }
  537. $this->em->flush();
  538. return new JsonResponse(['success' => true, 'id' => $mois->getId()]);
  539. }
  540. #[Route(path: '/ajax/parametrages/loadmoissemaines', name: 'ajax_loadmoissemaines')]
  541. public function ajax_loadmoissemaines(Request $request)
  542. {
  543. $mois = $this->em->getRepository(MoisSemaine::class)->getByAnnee($request->request->get('annee'));
  544. return new JsonResponse(['success' => true, 'mois' => $mois]);
  545. }
  546. }