<?php
namespace 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 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\Annotation\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');
$code = $this->get('session')->getFlashBag()->get('code')[0];
$referer = $this->get('session')->getFlashBag()->get('referer');
$erreur = $this->get('session')->getFlashBag()->get('erreur');
$line = $this->get('session')->getFlashBag()->get('line');
$this->params['leftbar_open'] = null;
$this->params['code'] = $code[0];
$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");
$mail = $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());
$mail = $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
)
);
$mail = $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);
}
}