src/Controller/MainController.php line 186
<?phpnamespace App\Controller;use App\Entity\BuAtelier;use App\Entity\CatMetiers;use App\Entity\Certificat;use App\Entity\Coloris;use App\Entity\Composants;use App\Entity\Droits;use App\Entity\Fibre;use App\Entity\FicheControle;use App\Entity\FicheDeveloppement;use App\Entity\FicheLi;use App\Entity\FicheRetourAtelier;use App\Entity\Fournisseur;use App\Entity\GroupesUtilisateur;use App\Entity\Jdearticle;use App\Entity\JdearticlecolorisLignecoloris;use App\Entity\JdearticleFournisseur;use App\Entity\JdecommandeAchat;use App\Entity\Jdelignes;use App\Entity\JdeparcoursReception;use App\Entity\JdeqteExp;use App\Entity\Jdestocks;use App\Entity\NotationHa;use App\Entity\ParametrageEchantillons;use App\Entity\Saisons;use App\Entity\TypeMail;use Symfony\Component\HttpFoundation\Request;use Symfony\Component\HttpFoundation\Session\Session;use App\Entity\Utilisateurs;use App\Form\AtelierType;use App\Form\CategorieMetierType;use App\Form\CertificatType;use App\Form\ColorisType;use App\Form\DroitType;use App\Form\FibreType;use App\Form\FournisseurType;use App\Form\SaisonType;use App\Form\TypeMailType;use App\Form\UtilisateurType;use App\Form\ProfilType;use App\Service\DatatablesHomeService;use App\Service\ExcelService;use App\Service\MailService;use App\Service\DatatablesService;use Doctrine\ORM\EntityManagerInterface;use Symfony\Component\HttpFoundation\JsonResponse;use Symfony\Component\Routing\Attribute\Route;use Symfony\Component\PasswordHasher\Hasher\UserPasswordHasherInterface;use Symfony\Component\DependencyInjection\ParameterBag\ContainerBagInterface;use Symfony\Component\HttpFoundation\BinaryFileResponse;use Symfony\Component\HttpFoundation\ResponseHeaderBag;use Symfony\Contracts\Translation\TranslatorInterface;ini_set('memory_limit', '-1');ini_set('max_execution_time', '0');class MainController extends BaseController{protected $params = array();public function __construct(private EntityManagerInterface $em, private TranslatorInterface $translator, private UserPasswordHasherInterface $encoder,private ContainerBagInterface $containerbag, private DatatablesHomeService $datatable_home_service, private MailService $mail_service,private DatatablesService $datatables_service){$this->mail_service = $mail_service;$this->containerbag = $containerbag;$this->datatables_service = $datatables_service;$this->datatable_home_service = $datatable_home_service;$this->params['leftbar_open'] = 'parametrages';$this->params['leftbar_open_2'] = null;$this->params['title'] = null;$this->encoder = $encoder;$this->em = $em;$this->params['mdatas'] = json_encode(array());}#[Route(path: '/export_table_xls/{table}', name: 'export_table_xls')]public function export_table_xls(Request $request, $table){$root_path = $this->containerbag->get('kernel.project_dir')."/public/xls/";$excel = new ExcelService;switch($table){case 'jdearticles':$header = array('Id', 'Code article', 'Coloris', 'Taille', 'Imdsc1', 'Imdsc2', 'Cout', 'Reference', 'Date import', 'Code matiere', 'Unite');$excel->dataRows[] = $header;$array = $this->em->getRepository(Jdearticle::class)->getAsArray();break;case 'jdearticles_fournisseurs':$header = array('Id', 'Code article', 'Code fournisseur', 'Date import', 'Référence fournisseur');$excel->dataRows[] = $header;$array = $this->em->getRepository(JdearticleFournisseur::class)->getAsArray();break;case 'jdelignes':$header = array('Id', 'Code ligne', 'Libellé ligne', 'Date import');$excel->dataRows[] = $header;$array = $this->em->getRepository(Jdelignes::class)->getAsArray();break;case 'jdecommandeachat':$header = array('Id', 'Société', 'N° de commande', 'Type commande', 'Ligne commande','Magasin', 'Code fournisseur', 'Code livre', 'Date livraison demandé', 'Date commande','Date livraison promise', 'Date livraison réelle', 'Date supression', 'Date mise en compta','Code article', 'Type stockage article', 'Prochain statut', 'Dernier statut', 'Unité mesure achat','Quantité commande', 'Quantité reçue', 'Cout unitaire achat', 'Cout total achat', 'Nb modif sur ligne','Date client', 'User saisie cmd', 'User derniere modif', 'Date maj', 'Heure maj', 'Date import');$excel->dataRows[] = $header;$array = $this->em->getRepository(JdecommandeAchat::class)->getAsArray();break;case 'jdeparcoursreception':$header = array('Id', 'Etape', 'N° de commande', 'Type commande', 'Code article', 'Quantité', 'Unite de mesure','Date de réception', 'Date import');$excel->dataRows[] = $header;$array = $this->em->getRepository(JdeparcoursReception::class)->getAsArray();break;case 'jdestock':$header = array('Id', 'Code article', 'Magasin', 'Emplacement', 'Quantité controle', 'Unité mesure stockage', 'Cout total','Quantité stock', 'Quantité transit', 'Date import');$excel->dataRows[] = $header;$array = $this->em->getRepository(Jdestocks::class)->getAsArray();break;case 'jdearticlelignecoloris':$header = array('Id', 'Code article', 'Ligne', 'Coloris ligne', 'Date import');$excel->dataRows[] = $header;$array = $this->em->getRepository(JdearticlecolorisLignecoloris::class)->getAsArray();break;case 'jdeqteexp':$header = array('Id', 'Id atelier', 'Code article', 'Unité', 'Quantité', 'Cout', 'Date', 'Date import');$excel->dataRows[] = $header;$array = $this->em->getRepository(JdeqteExp::class)->getAsArray();break;}$excel->setDatas($array);$filename = bin2hex(random_bytes(8)).'_'.$table;$file = $excel->getExcelFromCommand($filename, $root_path);$response = new BinaryFileResponse($root_path.$file);$response->setContentDisposition(ResponseHeaderBag::DISPOSITION_ATTACHMENT,$file);return $response;}#[Route(path: '/access_denied', name: 'forbidden_access')]public function forbidden_access(Request $request){$this->params['leftbar_open'] = null;return $this->render('access_denied.html.twig', $this->params);}public function redirect_home(Request $request){return $this->redirectToRoute('index');}#[Route(path: '/error', name: 'custom_error')]public function error(Request $request){$email_administrateur = $this->containerbag->get('app.email_administrateur');/** @var Session $session */$session = $request->getSession();$code = $session->getFlashBag()->get('code')[0];$referer = $session->getFlashBag()->get('referer');$erreur = $session->getFlashBag()->get('erreur');$line = $session->getFlashBag()->get('line');$this->params['leftbar_open'] = null;$this->params['code'] = $code;$message = null;$message_admin = null;switch($code){case 404:$message = "La page demandée n'existe pas";break;case 500:$message = "Une erreur est survenue. Un mail a été envoyé a l'administrateur";$message_admin = "Erreur ".$code."<br>Page: ".$referer[0]."<br>Erreur: ".$erreur[0]." - Ligne ".$line[0];$content_mail = $this->renderView('Mail/administrateur_mail_erreur.html.twig',array('message_admin' => $message_admin));$this->mail_service->setDestinataires(array($email_administrateur));$this->mail_service->setDatas($content_mail, $content_mail, "Webqualite - Erreur", "Webqualite - Erreur");$this->mail_service->send();break;}$this->params['message'] = $message;$this->params['message_admin'] = $message_admin;return $this->render('error_custom.html.twig', $this->params);}#[Route(path: '/', name: 'index')]public function index(Request $request){$this->params['leftbar_open'] = null;switch($this->getUser()->getDroits()->getRole()){case "ROLE_SUPERADMIN":case "ROLE_ADMIN":case "ROLE_RESPONSABLE_QUALITE":$table_qualite = $this->datatable_home_service->getSuperadminControlesReception()->handleRequest($request);if ($table_qualite->isCallback()) {return $table_qualite->getResponse();}$this->params['datatable_qualite'] = $table_qualite;$table_atelier = $this->datatable_home_service->getSuperadminAtelierAttente($this->getUser())->handleRequest($request);if ($table_atelier->isCallback()) {return $table_atelier->getResponse();}$this->params['datatable_atelier'] = $table_atelier;$bu_id = ($this->getUser()->getBu() != null)?$this->getUser()->getBu()->getId():null;$this->params['nombre_attentes'] = $this->em->getRepository(FicheControle::class)->countStatut(10, $bu_id)['cnt'];$this->params['nombre_attentes_decision'] = $this->em->getRepository(FicheControle::class)->countStatut(9, $bu_id)['cnt'];$this->params['nombre_attentes_decision_nouvelles_matieres'] = $this->em->getRepository(FicheControle::class)->countStatut(20, $bu_id)['cnt'];$this->params['atelier_attente_decision'] = $this->em->getRepository(FicheRetourAtelier::class)->countAttenteDecision()['cnt'];$this->params['atelier_attente_atelier'] = $this->em->getRepository(FicheRetourAtelier::class)->countAttenteAtelier()['cnt'];$this->params['developpements_current'] = $this->em->getRepository(FicheDeveloppement::class)->countCurrentDeveloppement()['cnt'];break;case "ROLE_RESPONSABLE_CONTROLE_BU":case "ROLE_TECHNICIEN_CONTROLE_BU":case "ROLE_RESPONSABLE_COLORIS":case "ROLE_TECHNICIEN_COLORIS_SP":case "ROLE_RESPONSABLE_COLORIS_ATELIER":case "ROLE_TECHNICIEN_COLORIS_ATELIER":case "ROLE_DEVELOPPEUR_MATIERE":case "ROLE_TECHNICIEN_CONTROLE_LAIZES":case "ROLE_TECHNICIEN_BU_ATELIER":case "ROLE_ACHAT":case "ROLE_MAGASIN":case "ROLE_ASSISTANT_QUALITE":$bu_id = ($this->getUser()->getBu() != null)?$this->getUser()->getBu()->getId():null;$this->params['nombre_attentes'] = $this->em->getRepository(FicheControle::class)->countStatut(10, $bu_id)['cnt'];$this->params['nombre_attentes_decision'] = $this->em->getRepository(FicheControle::class)->countStatut(9, $bu_id)['cnt'];$this->params['nombre_attentes_decision_nouvelles_matieres'] = $this->em->getRepository(FicheControle::class)->countStatut(20, $bu_id)['cnt'];$this->params['developpements_current'] = $this->em->getRepository(FicheDeveloppement::class)->countCurrentDeveloppement()['cnt'];$table_qualite = $this->datatable_home_service->getFournisseurDerogation($this->getUser())->handleRequest($request);if ($table_qualite->isCallback()) {return $table_qualite->getResponse();}$this->params['datatable_qualite'] = $table_qualite;break;case "ROLE_CONSULTATION":case "ROLE_ACHAT_APPRO":$bu_id = ($this->getUser()->getBu() != null)?$this->getUser()->getBu()->getId():null;$this->params['nombre_attentes'] = $this->em->getRepository(FicheControle::class)->countStatut(10, $bu_id)['cnt'];$this->params['nombre_attentes_decision'] = $this->em->getRepository(FicheControle::class)->countStatut(9, $bu_id)['cnt'];$this->params['nombre_attentes_decision_nouvelles_matieres'] = $this->em->getRepository(FicheControle::class)->countStatut(20, $bu_id)['cnt'];$this->params['developpements_current'] = $this->em->getRepository(FicheDeveloppement::class)->countCurrentDeveloppement()['cnt'];break;case "ROLE_ATELIER":$this->params['atelier_attente_decision'] = $this->em->getRepository(FicheRetourAtelier::class)->countAttenteDecision($this->getUser()->getAtelier()->getId())['cnt'];$this->params['atelier_attente_atelier'] = $this->em->getRepository(FicheRetourAtelier::class)->countAttenteAtelier($this->getUser()->getAtelier()->getId())['cnt'];$table_atelier_attente_decision = $this->datatable_home_service->getAtelierAttenteDecision($this->getUser())->handleRequest($request);if ($table_atelier_attente_decision->isCallback()) {return $table_atelier_attente_decision->getResponse();}$this->params['datatable_atelier_attente_decision'] = $table_atelier_attente_decision;$table_atelier = $this->datatable_home_service->getAtelierAttenteAtelier($this->getUser())->handleRequest($request);if ($table_atelier->isCallback()) {return $table_atelier->getResponse();}$this->params['datatable_atelier_attente'] = $table_atelier;break;case "ROLE_RESPONSABLE_QUALITE_PRODUITS_FINIS":case "ROLE_PLANIFICATION":case "ROLE_RESPONSABLE_CONTROLE_PRODUITS_FINIS":$this->params['atelier_attente_decision'] = $this->em->getRepository(FicheRetourAtelier::class)->countAttenteDecision()['cnt'];$this->params['atelier_attente_atelier'] = $this->em->getRepository(FicheRetourAtelier::class)->countAttenteAtelier()['cnt'];$table_atelier_attente_decision = $this->datatable_home_service->getAtelierAttenteDecision($this->getUser())->handleRequest($request);if ($table_atelier_attente_decision->isCallback()) {return $table_atelier_attente_decision->getResponse();}$this->params['datatable_atelier_attente_decision'] = $table_atelier_attente_decision;break;case "ROLE_RESPONSABLE_BU_ATELIER":$this->params['atelier_attente_decision'] = $this->em->getRepository(FicheRetourAtelier::class)->countAttenteDecision($this->getUser()->getAtelier()->getId())['cnt'];$this->params['atelier_attente_atelier'] = $this->em->getRepository(FicheRetourAtelier::class)->countAttenteAtelier($this->getUser()->getAtelier()->getId())['cnt'];$table_atelier_attente_decision = $this->datatable_home_service->getAtelierAttenteDecision($this->getUser())->handleRequest($request);if ($table_atelier_attente_decision->isCallback()) {return $table_atelier_attente_decision->getResponse();}$this->params['datatable_atelier_attente_decision'] = $table_atelier_attente_decision;$table_atelier = $this->datatable_home_service->getAtelierAttenteAtelier($this->getUser())->handleRequest($request);if ($table_atelier->isCallback()) {return $table_atelier->getResponse();}$this->params['datatable_atelier_attente'] = $table_atelier;$bu_id = ($this->getUser()->getBu() != null)?$this->getUser()->getBu()->getId():null;$this->params['nombre_attentes'] = $this->em->getRepository(FicheControle::class)->countStatut(10, $bu_id)['cnt'];$this->params['nombre_attentes_decision'] = $this->em->getRepository(FicheControle::class)->countStatut(9, $bu_id)['cnt'];$this->params['nombre_attentes_decision_nouvelles_matieres'] = $this->em->getRepository(FicheControle::class)->countStatut(20, $bu_id)['cnt'];$this->params['developpements_current'] = $this->em->getRepository(FicheDeveloppement::class)->countCurrentDeveloppement()['cnt'];$table_qualite = $this->datatable_home_service->getFournisseurDerogation($this->getUser())->handleRequest($request);if ($table_qualite->isCallback()) {return $table_qualite->getResponse();}$this->params['datatable_qualite'] = $table_qualite;break;case "ROLE_ADMIN_FOURNISSEUR":case "ROLE_FOURNISSEUR":$table_qualite = $this->datatable_home_service->getFournisseurDerogation($this->getUser())->handleRequest($request);if ($table_qualite->isCallback()) {return $table_qualite->getResponse();}$this->params['datatable_qualite'] = $table_qualite;$this->params['nombre_attentes'] = $this->em->getRepository(FicheControle::class)->countStatut(10, null, $this->getUser()->getFournisseur()->getId())['cnt'];$this->params['nombre_derogations'] = $this->em->getRepository(FicheControle::class)->countDeroFournisseur($this->getUser()->getFournisseur()->getId())['cnt'];$scores = $this->em->getRepository(FicheControle::class)->sumPointsFournisseur($this->getUser()->getFournisseur()->getId());$perf = 0;if($scores != null && $scores['totalscoref'] != 0){$perf = round(($scores['scoref']/$scores['totalscoref'])*100,2);}$this->params['perfannuelle'] = $perf;$totalColoris = $this->em->getRepository(FicheLi::class)->countFichesFournisseur($this->getUser()->getFournisseur()->getId(), true);$okColoris = $this->em->getRepository(FicheLi::class)->countFichesFournisseur($this->getUser()->getFournisseur()->getId(), false);$perfli = 0;if($totalColoris != null && $totalColoris['cnt'] != 0){$perfli = round(($okColoris['cnt']/$totalColoris['cnt'])*100,2);}else{$perfli = 0;}$this->params['perfli'] = $perfli;break;}return $this->render('index.html.twig', $this->params);}#[Route(path: '/profil', name: 'profil')]public function profil(Request $request){$this->params['title'] = 'Mon profil';$this->params['leftbar_open_2'] = 'parametrages_gestion';$object = $this->em->getRepository(Utilisateurs::class)->find($this->getUser()->getId());$form = $this->createForm(ProfilType::class, $object);$form->handleRequest($request);if ($form->isSubmitted() && $form->isValid()) {$object = $form->getData();if ($object->getPlainPassword() != "" && $object->getPlainPassword() != null) {$encodedPassword = $this->encoder->hashPassword($object, $object->getPlainPassword());//, $object->getSalt()$object->setPassword($encodedPassword);}$this->em->persist($object);$this->em->flush();//Mail utilisateur$this->mail_service->createMail(1, $this->getUser()->getEmail());$this->mail_service->setDestinataires(array($object->getEmail()), $this->getUser()->getLangue());$this->mail_service->send();//Mail administrateur$societe = "Simone Pérèle";if($object->getFournisseur() != null){$societe = $object->getFournisseur()->getName();}else if($object->getAtelier() != null){$societe = $object->getAtelier()->getNameFr();}$this->mail_service->createMail(2, $this->getUser()->getEmail(),array("Var1" => $object->getNom(),"Var2" => $object->getPrenom(),"Var3" => $societe));$this->mail_service->send();return new JsonResponse(array('success' => true));}$this->params['form'] = $form->createView();return $this->render('Parametrages/profil.html.twig', $this->params);}#[Route(path: '/ateliers', name: 'ateliers')]public function ateliers(Request $request){$this->params['leftbar_open_2'] = 'parametrages_gestion';$table = $this->datatables_service->getTableAteliers()->handleRequest($request);if ($table->isCallback()) {return $table->getResponse();}$this->params['datatable'] = $table;return $this->render('Parametrages/ateliers.html.twig', $this->params);}#[Route(path: '/parametrages/atelier/{slug}', name: 'atelier', defaults: ['slug' => 0])]public function atelier(Request $request, $slug){$this->params['title'] = 'Atelier';$this->params['leftbar_open_2'] = 'parametrages_gestion';$object = new BuAtelier();if ($slug != 0) {$object = $this->em->getRepository(BuAtelier::class)->find($slug);}$form = $this->createForm(AtelierType::class, $object);$form->handleRequest($request);if ($form->isSubmitted() && $form->isValid()) {$object = $form->getData();$this->em->persist($object);$this->em->flush();return $this->redirectToRoute('ateliers');}$this->params['form'] = $form->createView();return $this->render('Parametrages/atelier.html.twig', $this->params);}#[Route(path: '/parametrages/notation-achat', name: 'notationha')]public function notationha(Request $request){$this->params['title'] = 'Notation achat';$this->params['leftbar_open_2'] = 'parametrages_gestion';$this->params['notation_achat_developpement'] = $this->em->getRepository(NotationHa::class)->find(1);$this->params['notation_achat_qualite'] = $this->em->getRepository(NotationHa::class)->find(2);$this->params['notation_achat_coloris'] = $this->em->getRepository(NotationHa::class)->find(3);return $this->render('Parametrages/notationachat.html.twig', $this->params);}#[Route(path: '/parametrages/parametrage-echantillon', name: 'parametrageechantillon')]public function parametrageechantillon(Request $request){$this->params['title'] = 'Paramétrage échantillon';$this->params['leftbar_open_2'] = 'parametrages_gestion';$this->params['parametrages'] = $this->em->getRepository(ParametrageEchantillons::class)->findAll();return $this->render('Parametrages/parametrageechantillon.html.twig', $this->params);}#[Route(path: '/parametrages/menus', name: 'menus')]public function menus(Request $request){$this->params['leftbar_open_2'] = 'parametrages_gestion';$table = $this->datatables_service->getTableDroits()->handleRequest($request);if ($table->isCallback()) {return $table->getResponse();}$this->params['datatable'] = $table;return $this->render('Parametrages/menus.html.twig', $this->params);}#[Route(path: '/parametrages/categorie-metier/{slug}', name: 'categorie', defaults: ['slug' => 0])]public function categorie(Request $request, $slug){$this->params['title'] = 'Categorie métier';$this->params['leftbar_open_2'] = 'parametrages_gestion';$object = new CatMetiers();if ($slug != 0) {$object = $this->em->getRepository(CatMetiers::class)->find($slug);}$form = $this->createForm(CategorieMetierType::class, $object);$form->handleRequest($request);if ($form->isSubmitted() && $form->isValid()) {$object = $form->getData();$this->em->persist($object);$this->em->flush();return $this->redirectToRoute('categories');}$this->params['form'] = $form->createView();return $this->render('Parametrages/categorie.html.twig', $this->params);}#[Route(path: '/parametrages/categories-metier', name: 'categories')]public function categories(Request $request){$this->params['leftbar_open_2'] = 'parametrages_gestion';$table = $this->datatables_service->getTableCategories()->handleRequest($request);if ($table->isCallback()) {return $table->getResponse();}$this->params['datatable'] = $table;$this->params['composants'] = $this->em->getRepository(Composants::class)->getAll();return $this->render('Parametrages/categoriesmetier.html.twig', $this->params);}#[Route(path: '/parametrages/typemails', name: 'type_mails')]public function typemails(Request $request){$this->params['leftbar_open_2'] = 'parametrages_messagerie';$table = $this->datatables_service->getDatatableTypeMails()->handleRequest($request);if ($table->isCallback()) {return $table->getResponse();}$this->params['datatable'] = $table;return $this->render('Parametrages/typemails.html.twig', $this->params);}#[Route(path: '/parametrages/typemail/{slug}', name: 'type_mail', defaults: ['slug' => 0])]public function typemail(Request $request, $slug){$this->params['title'] = 'Type mail';$this->params['leftbar_open_2'] = 'parametrages_messagerie';$object = new TypeMail();if ($slug != 0) {$object = $this->em->getRepository(TypeMail::class)->find($slug);}$form = $this->createForm(TypeMailType::class, $object);$form->handleRequest($request);if ($form->isSubmitted() && $form->isValid()) {$object = $form->getData();$this->em->persist($object);$this->em->flush();return $this->redirectToRoute('type_mails');}$this->params['form'] = $form->createView();return $this->render('Parametrages/typemail.html.twig', $this->params);}#[Route(path: '/parametrages/groupes_utilisateurs', name: 'groupes_utilisateurs')]public function groupes_utilisateurs(Request $request){$params = $request->request;$this->params['leftbar_open_2'] = 'parametrages_messagerie';$table = $this->datatables_service->getDatatableGroupesUtilisateurs($params)->handleRequest($request);if ($table->isCallback()) {return $table->getResponse();}$this->params['datatable'] = $table;$this->params['groupes'] = $this->em->getRepository(GroupesUtilisateur::class)->getAll();$this->params['utilisateurs'] = $this->em->getRepository(Utilisateurs::class)->getAll();return $this->render('Parametrages/groupesutilisateurs.html.twig', $this->params);}#[Route(path: '/parametrages/groupes_type_mails', name: 'groupes_type_mails')]public function groupes_type_mails(Request $request){$params = $request->request;$this->params['leftbar_open_2'] = 'parametrages_messagerie';$table = $this->datatables_service->getDatatableLightTypeMails()->handleRequest($request);if ($table->isCallback()) {return $table->getResponse();}$table_groupes = $this->datatables_service->getDatatableGroupes($params)->handleRequest($request);if ($table_groupes->isCallback()) {return $table_groupes->getResponse();}$table_copie_groupes = $this->datatables_service->getDatatableGroupesCopie($params)->handleRequest($request);if ($table_copie_groupes->isCallback()) {return $table_copie_groupes->getResponse();}$this->params['datatable'] = $table;$this->params['datatable_groupe'] = $table_groupes;$this->params['datatable_copie_groupes'] = $table_copie_groupes;$this->params['groupes'] = $this->em->getRepository(GroupesUtilisateur::class)->getAll();return $this->render('Parametrages/groupestypemails.html.twig', $this->params);}#[Route(path: '/parametrages/coloris', name: 'coloris')]public function coloris(Request $request){$this->params['leftbar_open_2'] = 'parametrages_gestion';$table = $this->datatables_service->getDatatableColoris()->handleRequest($request);if ($table->isCallback()) {return $table->getResponse();}$table_secondaire = $this->datatables_service->getDatatableColorisSecondaire()->handleRequest($request);if ($table_secondaire->isCallback()) {return $table_secondaire->getResponse();}$this->params['datatable_coloris'] = $table;$this->params['datatable_coloris_secondaire'] = $table_secondaire;return $this->render('Parametrages/coloris.html.twig', $this->params);}#[Route(path: '/parametrages/form_coloris/{slug}', name: 'color', defaults: ['slug' => 0])]public function coloris_secondaire(Request $request, $slug){$this->params['title'] = 'Coloris';$this->params['leftbar_open_2'] = 'parametrages_gestion';$object = new Coloris();if ($slug != 0) {$object = $this->em->getRepository(Coloris::class)->find($slug);}$form = $this->createForm(ColorisType::class, $object);$form->handleRequest($request);if ($form->isSubmitted() && $form->isValid()) {$object = $form->getData();if($object->getJde() == null){$object->setJde(0);}$this->em->persist($object);$this->em->flush();return $this->redirectToRoute('coloris');}$this->params['form'] = $form->createView();return $this->render('Parametrages/colorissecondaire.html.twig', $this->params);}#[Route(path: '/parametrages/fibre/{slug}', name: 'fibre', defaults: ['slug' => 0])]public function fibre(Request $request, $slug){$this->params['title'] = 'Fibre';$this->params['leftbar_open_2'] = 'parametrages_gestion';$object = new Fibre();if ($slug != 0) {$object = $this->em->getRepository(Fibre::class)->find($slug);}$form = $this->createForm(FibreType::class, $object);$form->handleRequest($request);if ($form->isSubmitted() && $form->isValid()) {$object = $form->getData();$this->em->persist($object);$this->em->flush();return $this->redirectToRoute('fibres');}$this->params['form'] = $form->createView();return $this->render('Parametrages/fibre.html.twig', $this->params);}#[Route(path: '/parametrages/fibres', name: 'fibres')]public function fibres(Request $request){$this->params['leftbar_open_2'] = 'parametrages_gestion';$table = $this->datatables_service->getDatatableFibres()->handleRequest($request);if ($table->isCallback()) {return $table->getResponse();}$this->params['datatable'] = $table;return $this->render('Parametrages/fibres.html.twig', $this->params);}#[Route(path: '/parametrages/fournisseurs', name: 'fournisseurs')]public function fournisseurs(Request $request){$this->params['leftbar_open_2'] = 'parametrages_gestion';$table = $this->datatables_service->getDatatableFournisseurs($request->request)->handleRequest($request);if ($table->isCallback()) {return $table->getResponse();}$this->params['datatable'] = $table;return $this->render('Parametrages/fournisseurs.html.twig', $this->params);}#[Route(path: '/parametrages/fournisseur/{slug}', name: 'fournisseur', defaults: ['slug' => 0])]public function fournisseur(Request $request, $slug){$this->params['title'] = 'Fournisseur';$this->params['leftbar_open_2'] = 'parametrages_gestion';$object = new Fournisseur();if ($slug != 0) {$object = $this->em->getRepository(Fournisseur::class)->find($slug);}$form = $this->createForm(FournisseurType::class, $object);$form->handleRequest($request);if ($form->isSubmitted() && $form->isValid()) {$object = $form->getData();$this->em->persist($object);$this->em->flush();return $this->redirectToRoute('fournisseurs');}$this->params['form'] = $form->createView();return $this->render('Parametrages/fournisseur.html.twig', $this->params);}#[Route(path: '/gestion/utilisateurs', name: 'utilisateurs')]public function utilisateurs(Request $request){$this->params['leftbar_open_2'] = 'parametrages_gestion';$table_users = $this->datatables_service->getDatatableUsers($request->request, $this->getUser())->handleRequest($request);if ($table_users->isCallback()) {return $table_users->getResponse();}$this->params['datatable'] = $table_users;return $this->render('Parametrages/utilisateurs.html.twig', $this->params);}#[Route(path: '/gestion/utilisateur/{slug}', name: 'utilisateur', defaults: ['slug' => 0])]public function utilisateur(Request $request, $slug){$this->params['title'] = 'Utilisateur';$this->params['leftbar_open_2'] = 'parametrages_gestion';$object = new Utilisateurs();if ($slug != 0) {$object = $this->em->getRepository(Utilisateurs::class)->find($slug);}$form = $this->createForm(UtilisateurType::class, $object);$form->handleRequest($request);if ($form->isSubmitted() && $form->isValid()) {$object = $form->getData();if ($object->getPlainPassword() != "" && $object->getPlainPassword() != null) {//$encoder = $this->encoder->getEncoder($object);$encodedPassword = $this->encoder->hashPassword($object, $object->getPlainPassword());//, $object->getSalt()$object->setPassword($encodedPassword);}$this->em->persist($object);$this->em->flush();return $this->redirectToRoute('utilisateurs');}$this->params['droit'] = null;if($this->getUser()->getFournisseur() != null){$this->params['droit'] = 'fournisseur';}$this->params['form'] = $form->createView();return $this->render('Parametrages/utilisateur.html.twig', $this->params);}#[Route(path: '/parametrages/saisons', name: 'saisons')]public function saisons(Request $request){$this->params['leftbar_open_2'] = 'parametrages_gestion';$table_users = $this->datatables_service->getDatatableSaisons()->handleRequest($request);if ($table_users->isCallback()) {return $table_users->getResponse();}$this->params['datatable'] = $table_users;return $this->render('Parametrages/saisons.html.twig', $this->params);}#[Route(path: '/parametrages/saison/{slug}', name: 'saison', defaults: ['slug' => 0])]public function saison(Request $request, $slug){$this->params['title'] = 'Saison';$this->params['leftbar_open_2'] = 'parametrages_gestion';$object = new Saisons();if ($slug != 0) {$object = $this->em->getRepository(Saisons::class)->find($slug);}$form = $this->createForm(SaisonType::class, $object);$form->handleRequest($request);if ($form->isSubmitted() && $form->isValid()) {$object = $form->getData();$this->em->persist($object);$this->em->flush();return $this->redirectToRoute('saisons');}$this->params['form'] = $form->createView();return $this->render('Parametrages/saison.html.twig', $this->params);}#[Route(path: '/parametrages/droits', name: 'droits')]public function droits(Request $request){$this->params['leftbar_open_2'] = 'parametrages_gestion';$table_users = $this->datatables_service->getDatatableDroits()->handleRequest($request);if ($table_users->isCallback()) {return $table_users->getResponse();}$this->params['datatable'] = $table_users;return $this->render('Parametrages/droits.html.twig', $this->params);}#[Route(path: '/parametrages/droit/{slug}', name: 'droit', defaults: ['slug' => 0])]public function droit(Request $request, $slug){//Créer form$droit = $this->em->getRepository(Droits::class)->find($slug);$form = $this->createForm(DroitType::class, $droit);$form->handleRequest($request);if ($form->isSubmitted() && $form->isValid()) {$object = $form->getData();$this->em->persist($object);$this->em->flush();return $this->redirectToRoute('droits');}$this->params['form'] = $form->createView();return $this->render('Parametrages/droit.html.twig', $this->params);}#[Route(path: '/parametrages/jde', name: 'tablesjde')]public function tablesjde(Request $request){$this->params['leftbar_open_2'] = 'parametrages_gestion';$post = $request->request;$table_articles = $this->datatables_service->getDatatableJdearticles()->handleRequest($request);if ($table_articles->isCallback()) {return $table_articles->getResponse();}$table_article_fournisseurs = $this->datatables_service->getDatatableJdearticlesfourniseurs()->handleRequest($request);if ($table_article_fournisseurs->isCallback()) {return $table_article_fournisseurs->getResponse();}$table_lignes = $this->datatables_service->getDatatableJdelignes()->handleRequest($request);if ($table_lignes->isCallback()) {return $table_lignes->getResponse();}$table_commandeachat = $this->datatables_service->getDatatableJdecommandesachat($post)->handleRequest($request);if ($table_commandeachat->isCallback()) {return $table_commandeachat->getResponse();}$table_parcoursreception = $this->datatables_service->getDatatableJdeparcoursreception($post)->handleRequest($request);if ($table_parcoursreception->isCallback()) {return $table_parcoursreception->getResponse();}$table_stocks = $this->datatables_service->getDatatableJdestocks()->handleRequest($request);if ($table_stocks->isCallback()) {return $table_stocks->getResponse();}$table_articlelignecoloris= $this->datatables_service->getDatatableJdearticlelignecoloris()->handleRequest($request);if ($table_articlelignecoloris->isCallback()) {return $table_articlelignecoloris->getResponse();}$table_qteexp= $this->datatables_service->getDatatableJdeqteexp($post)->handleRequest($request);if ($table_qteexp->isCallback()) {return $table_qteexp->getResponse();}$this->params['datatable_qteexp'] = $table_qteexp;$this->params['datatable_articlelignecoloris'] = $table_articlelignecoloris;$this->params['datatable_stocks'] = $table_stocks;$this->params['datatable_parcoursreception'] = $table_parcoursreception;$this->params['datatable_articles'] = $table_articles;$this->params['datatable_articles_fournisseurs'] = $table_article_fournisseurs;$this->params['datatable_lignes'] = $table_lignes;$this->params['datatable_commandeachat'] = $table_commandeachat;return $this->render('Parametrages/jde.html.twig', $this->params);}#[Route(path: '/demo-pdf', name: 'demo_pdf')]public function demoPdf(Request $request){//$this->get('pdf_service')->getPdf('demo');//$this->get('pdf_service')->renderFile();}#[Route(path: '/demo-elements', name: 'demo_elements')]public function demoElements(Request $request){return $this->render('demo/demo-elements.html.twig', $this->params);}#[Route(path: '/parametrages/logs_fichetechnique', name: 'logsfichetechnique')]public function logsfichetechnique(Request $request){$this->params['leftbar_open_2'] = 'parametrages_logs';$table_users = $this->datatables_service->getDatatableLogsFt()->handleRequest($request);if ($table_users->isCallback()) {return $table_users->getResponse();}$this->params['datatable'] = $table_users;return $this->render('Parametrages/logs_fichetechnique.html.twig', $this->params);}#[Route(path: '/parametrages/logs_qualite', name: 'logsqualite')]public function logsqualite(Request $request){$this->params['leftbar_open_2'] = 'parametrages_logs';$table_users = $this->datatables_service->getDatatableLogsQualite()->handleRequest($request);if ($table_users->isCallback()) {return $table_users->getResponse();}$this->params['datatable'] = $table_users;return $this->render('Parametrages/logs_qualite.html.twig', $this->params);}#[Route(path: '/parametrages/mailing', name: 'mailing')]public function mailing(Request $request){$this->params['leftbar_open_2'] = 'parametrages_messagerie';$table = $this->datatables_service->getDatatableMailing($request->request)->handleRequest($request);if ($table->isCallback()) {return $table->getResponse();}$this->params['datatable'] = $table;return $this->render('Parametrages/mailing.html.twig', $this->params);}#[Route(path: '/parametrages/certificat/{slug}', name: 'certificat', defaults: ['slug' => 0])]public function certificat(Request $request, $slug){$this->params['title'] = 'Certificat';$this->params['leftbar_open_2'] = 'parametrages_gestion';$object = new Certificat();if ($slug != 0) {$object = $this->em->getRepository(Certificat::class)->find($slug);}$form = $this->createForm(CertificatType::class, $object);$form->handleRequest($request);if ($form->isSubmitted() && $form->isValid()) {$object = $form->getData();$this->em->persist($object);$this->em->flush();return $this->redirectToRoute('certificats');}$this->params['form'] = $form->createView();return $this->render('Parametrages/certificat.html.twig', $this->params);}#[Route(path: '/parametrages/certificats', name: 'certificats')]public function certificats(Request $request){$this->params['leftbar_open_2'] = 'parametrages_gestion';$table = $this->datatables_service->getDatatableCertificats()->handleRequest($request);if ($table->isCallback()) {return $table->getResponse();}$this->params['datatable'] = $table;return $this->render('Parametrages/certificats.html.twig', $this->params);}}