src/Controller/AgentOepController.php line 735

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  4. use Symfony\Component\HttpFoundation\Response;
  5. use Symfony\Component\HttpFoundation\Request;
  6. use Symfony\Component\Routing\Annotation\Route;
  7. use Sensio\Bundle\FrameworkExtraBundle\Configuration\Security;
  8. use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted;
  9. use Symfony\Component\PasswordHasher\Hasher\UserPasswordHasherInterface;
  10. use Doctrine\Persistence\ManagerRegistry;
  11. use Psr\Log\LoggerInterface;
  12. use App\Entity\DicGouvernorat;
  13. use App\Entity\DicDelegation;
  14. use App\Entity\DicImada;
  15. use App\Entity\DicEspece;
  16. use App\Entity\DicRace;
  17. use App\Entity\Troupeau;
  18. use App\Entity\Ferme;
  19. use App\Entity\Animal;
  20. use App\Entity\Eleveur;
  21. use App\Entity\Inseminateur;
  22. use App\Entity\AgentOep;
  23. use App\Entity\Agent;
  24. use App\Entity\User;
  25. use App\Entity\OperationIdentification;
  26. use App\Entity\OperationInsemination;
  27. use App\Entity\DemandeRebouclage;
  28. use App\Entity\DemandeAcquisition;
  29. use App\Entity\DemandeEnree;
  30. use App\Entity\DemandeSortie;
  31. use App\Entity\DemandeUpdate;
  32. use App\Entity\DemandeFormation;
  33. use App\Entity\DocDiplome;
  34. use App\Form\EleveurType;
  35. use App\Form\InseminateurType;
  36. use App\Form\AgentOepType;
  37. use App\Form\AgentType;
  38. use App\Form\DemandeFormationType;
  39. use PhpOffice\PhpSpreadsheet\IOFactory;
  40. use TCPDF;
  41. use PhpOffice\PhpSpreadsheet\Spreadsheet;
  42. use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
  43. use PhpOffice\PhpSpreadsheet\Style\Alignment;
  44. /**
  45.  * @Route("/{_locale}", requirements={"_locale": "ar|fr"})
  46.  */
  47. class AgentOepController extends AbstractController
  48. {
  49.     #[Route('/agent/oep'name'app_agent_oep')]
  50.     public function index(): Response
  51.     {
  52.         return $this->render('agent_oep/index.html.twig', [
  53.             'controller_name' => 'AgentOepController',
  54.         ]);
  55.     }
  56.     /**
  57.      * @IsGranted("ROLE_AGENT_OEP")
  58.      */
  59.     #[Route('/agentOEP/rapprts/list'name'agent_oep_rapport_annee_list'methods: ['GET''POST'])]
  60.          public function rapportByAnnee(Request $requestManagerRegistry $doctrine): Response
  61.          {
  62.             if($this->isGranted('ROLE_AGENT_OEP')== false){
  63.                 return $this->render('erreur/access_denied.html.twig', []);
  64.             }
  65.             $em $doctrine->getManager();
  66.             $user $this->getUser();
  67.              // Récupérer la valeur de l'année dans l'URL
  68.         $annee $request->query->get('annee');
  69.     
  70.         // Si la valeur n'est pas définie dans l'URL, utiliser l'année en cours
  71.        if (!$annee) {
  72.             $annee date('Y');
  73.         }
  74.         $anneeCourant date('Y');
  75.             return $this->render('agent_oep/rapports.html.twig', [
  76.                 'controller_name' => 'ProfilController',
  77.                 'annee'=> $annee,
  78.                 'anneeCourant'=>$anneeCourant
  79.             ]);
  80.         }
  81.      /**
  82.      * @IsGranted("ROLE_AGENT_OEP")
  83.      */
  84.     #[Route('/agentOEP/rapprts/find'name'agent_oep_rapport_find'methods: ['GET''POST'])]
  85.      public function findRapportByAnnee(Request $requestManagerRegistry $doctrine): Response
  86.      {
  87.         if($this->isGranted('ROLE_AGENT_OEP')== false){
  88.             return $this->render('erreur/access_denied.html.twig', []);
  89.         }
  90.         $em $doctrine->getManager();
  91.         $user $this->getUser();
  92.         return $this->redirectToRoute('agent_oep_rapport_annee_list',['annee'=>$request->request->get('annee')]);
  93.     }
  94.     /**
  95.      * @IsGranted("ROLE_AGENT_OEP")
  96.      */
  97.     #[Route('/agentOEP/rapprts/{annee}/{mois}/list'name'agent_oep_rapport_list'methods: ['GET''POST'])]
  98.     public function rapportList(Request $requestint $anneeint $moisManagerRegistry $doctrine): Response
  99.     {
  100.         if($this->isGranted('ROLE_AGENT_OEP')== false){
  101.             return $this->render('erreur/access_denied.html.twig', []);
  102.         }
  103.         $em $doctrine->getManager();
  104.         $user $this->getUser();
  105.         $agent=$doctrine->getRepository(AgentOep::class)->findOneBy(['user'=>$user]);
  106.         $idGouvernorat=-1;
  107.         if($agent->getGouvernorat() != null){
  108.             $idGouvernorat=$agent->getGouvernorat()->getId();
  109.         }
  110.         if($agent->isIsCentral() == true){
  111.             $operations$doctrine->getRepository(OperationIdentification::class)->findBy(['annee'=>$annee'mois'=>$mois]);
  112.         }else{
  113.             $operations$doctrine->getRepository(OperationIdentification::class)->getListByGouvernorat($idGouvernorat,$annee,$mois);
  114.         }
  115.         //dump($operations);die;
  116.         return $this->render('agent_oep/rapports_list.html.twig', [
  117.             'controller_name' => 'ProfilController',
  118.             'operations'=>$operations,
  119.             'annee'=> $annee,
  120.             'mois'=> $mois
  121.         ]);
  122.     }
  123.     /**
  124.      * @IsGranted("ROLE_AGENT_OEP")
  125.      */
  126.     #[Route('/agentOEP/operationIdent/{annee}/{mois}/add'name'agent_oep_operation_ident_add')]
  127.     public function operationIdentAdd(Request $requestint $anneeint $moisManagerRegistry $doctrine): Response
  128.     {
  129.         $em $doctrine->getManager();
  130.         $user $this->getUser();
  131.         $agent=$doctrine->getRepository(AgentOep::class)->findOneBy(['user'=>$user]);
  132.         $eleveurs$doctrine->getRepository(Eleveur::class)->findBy(['gouvernorat'=>$agent->getGouvernorat()]);
  133.        // dump($agent, $eleveurs);
  134.         $especes$doctrine->getRepository(DicEspece::class)->findAll();
  135.         $minDate = new \DateTime(sprintf('01-%02d-%04d'$mois$annee));
  136.         if($mois ==){
  137.         $maxDate = new \DateTime(sprintf('28-%02d-%04d'$mois$annee));
  138.         }else{
  139.         $maxDate = new \DateTime(sprintf('31-%02d-%04d'$mois$annee));
  140.         }
  141.         return $this->render('agent_oep/add_indentification.html.twig', [
  142.             'controller_name' => 'ProfilController',
  143.             'eleveurs'=>$eleveurs,
  144.             'especes'=>$especes,
  145.             'annee'=> $annee,
  146.             'mois'=> $mois,
  147.             'minDate'=> $minDate,
  148.             'maxDate' => $maxDate
  149.         ]);  
  150.     }
  151.     /**
  152.      * @IsGranted("ROLE_AGENT_OEP")
  153.      */
  154.     #[Route('/agentOEP/rapprts/{annee}/{mois}/add'name'agent_oep_rapport_add')]
  155.     public function rapportAdd(Request $requestint $anneeint $moisManagerRegistry $doctrine): Response
  156.     {
  157.          
  158.         if($this->isGranted('ROLE_AGENT_OEP')== false){
  159.             return $this->render('erreur/access_denied.html.twig', []);
  160.         }
  161.         $em $doctrine->getManager();
  162.         $user $this->getUser();
  163.         $agent=$doctrine->getRepository(AgentOep::class)->findOneBy(['user'=>$user]);
  164.         $eleveur=$doctrine->getRepository(Eleveur::class)->find($request->request->get('ident_eleveur'));
  165.         $ferme=$doctrine->getRepository(Ferme::class)->find($request->request->get('ferme'));
  166.         $race=$doctrine->getRepository(DicRace::class)->find($request->request->get('race'));
  167.         $troupeau=$doctrine->getRepository(Troupeau::class)->find($request->request->get('troupeau'));
  168.         $codAgent $agent->getIdentAgent();
  169.         $demande = new OperationIdentification();
  170.         $demande->setEleveur($eleveur);
  171.         $demande->setIdentAnimal($request->request->get('ident'));
  172.         $demande->setFerme($ferme);
  173.         $demande->setDicRace($race);
  174.         $demande->setTroupeau($troupeau);
  175.         $demande->setDateOp(new \DateTime($request->request->get('date')));
  176.         $demande->setAnnee($annee);
  177.         $demande->setMois($mois);
  178.         $demande->setSexAnm($request->request->get('sexe'));
  179.         $demande->setAnnNai($request->request->get('ann_nais'));
  180.         $demande->setDateNai(new \DateTime($request->request->get('date_nais')));
  181.         $demande->setEtatTraitement(0);
  182.         $demande->setCreatedAt(new \DateTime());
  183.         $demande->setCodAgent($codAgent);
  184.         $em->persist($demande);
  185.         $em->flush();
  186.         return $this->redirectToRoute('agent_oep_rapport_list',['annee'=>$annee,'mois'=>$mois]);
  187.     }
  188.     /**
  189.      * @IsGranted("ROLE_AGENT_OEP")
  190.      */
  191.     #[Route('/agentOEP/operationIdent/{id}/edit'name'agent_oep_operation_ident_edit')]
  192.     public function operationIdentEdit(Request $requestOperationIdentification $operationManagerRegistry $doctrine): Response
  193.     {
  194.         if($this->isGranted('ROLE_AGENT_OEP')== false){
  195.             return $this->render('erreur/access_denied.html.twig', []);
  196.         }
  197.         $em $doctrine->getManager();
  198.         $user $this->getUser();
  199.         $agent=$doctrine->getRepository(AgentOep::class)->findOneBy(['user'=>$user]);
  200.         $eleveurs$doctrine->getRepository(Eleveur::class)->findBy(['gouvernorat'=>$agent->getGouvernorat()]);
  201.         $fermes$doctrine->getRepository(Ferme::class)->findBy(['eleveur'=>$operation->getEleveur()]);
  202.         $troupeaux$doctrine->getRepository(Troupeau::class)->findBy(['ferme'=>$operation->getFerme()]);
  203.         $especes$doctrine->getRepository(DicEspece::class)->findAll();
  204.         $races$doctrine->getRepository(DicRace::class)->findBy(['dicEspece'=>$operation->getDicRace()->getDicEspece()]);
  205.        // dump($operation,$eleveurs);die;
  206.         return $this->render('agent_oep/edit_indentification.html.twig', [
  207.             'controller_name' => 'ProfilController',
  208.             'operation'=>$operation,
  209.             'eleveurs'=>$eleveurs,
  210.             'fermes'=>$fermes,
  211.             'troupeaux'=>$troupeaux,
  212.             'especes'=>$especes,
  213.             'races'=>$races,
  214.             'annee'=> $operation->getAnnee(),
  215.             'mois'=> $operation->getMois()
  216.         ]);
  217.     }
  218.     /**
  219.      * @IsGranted("ROLE_AGENT_OEP")
  220.      */
  221.     #[Route('/agentOEP/rapprts/{id}/edit'name'agent_oep_rapport_edit')]
  222.     public function rapportEdit(Request $requestOperationIdentification $operationManagerRegistry $doctrine): Response
  223.     {
  224.         if($this->isGranted('ROLE_AGENT_OEP')== false){
  225.             return $this->render('erreur/access_denied.html.twig', []);
  226.         }
  227.         $em $doctrine->getManager();
  228.         $user $this->getUser();
  229.         $eleveur=$doctrine->getRepository(Eleveur::class)->find($request->request->get('ident_eleveur'));
  230.         $ferme=$doctrine->getRepository(Ferme::class)->find($request->request->get('ferme'));
  231.         $race=$doctrine->getRepository(DicRace::class)->find($request->request->get('race'));
  232.         $troupeau=$doctrine->getRepository(Troupeau::class)->find($request->request->get('troupeau'));
  233.         $agent=$doctrine->getRepository(AgentOep::class)->findOneBy(['user'=>$user]);
  234.         $operation->setEleveur($eleveur);
  235.         $operation->setIdentAnimal($request->request->get('ident'));
  236.         $operation->setFerme($ferme);
  237.         $operation->setDicRace($race);
  238.         $operation->setTroupeau($troupeau);
  239.         $operation->setSexAnm($request->request->get('sexe'));
  240.         $operation->setAnnNai($request->request->get('ann_nais'));
  241.         $operation->setDateNai(new \DateTime($request->request->get('date_nais')));
  242.         $operation->setDateOp(new \DateTime($request->request->get('date')));
  243.         $operation->setUpdatedAt(new \DateTime());
  244.         $em->persist($operation);
  245.         $em->flush();
  246.         return $this->redirectToRoute('agent_oep_rapport_list',['annee'=>$operation->getAnnee(),'mois'=>$operation->getMois()]);
  247.     }
  248.      /**
  249.      * @IsGranted("ROLE_AGENT_OEP")
  250.      */
  251.     #[Route('/agentOEP/rapprts/{id}/{annee}/{mois}/traiter'name'agent_oep_rapport_traiter'methods: ['GET''POST'])]
  252.      public function rapportSend(Request $request,OperationIdentification $demande,int $anneeint $mois,ManagerRegistry $doctrine): Response
  253.      {
  254.         if($this->isGranted('ROLE_AGENT_OEP')== false){
  255.             return $this->render('erreur/access_denied.html.twig', []);
  256.         }
  257.         $em $doctrine->getManager();
  258.         $demande->setEtatTraitement(1);
  259.         $demande->setUpdatedAt(new \DateTime());
  260.         $em->persist($demande);
  261.         $em->flush();
  262.        /* $animal = new Animal();
  263.         $animal->setEleveur($demande->getEleveur());
  264.         $animal->setTroupeau($demande->getTroupeau());
  265.         $animal->setDicRace($demande->getDicRace());
  266.         $animal->setIdentAnm($demande->getIdentAnimal());
  267.         $animal->setSexAnm($demande->getSexAnm());
  268.         $animal->setDateNai($demande->getDateNai());
  269.         $animal->setAnnNai($demande->getAnnNai());
  270.         $animal->setCreatedAt(new \DateTime());
  271.         $em->persist($animal);
  272.         $em->flush();*/
  273.         
  274.         return $this->redirectToRoute('agent_oep_rapport_list',['annee'=>$annee,'mois'=>$mois]);
  275.     }
  276.     /**
  277.      * @IsGranted("ROLE_AGENT_OEP")
  278.      */
  279.     #[Route('/agentOEP/rapprts/{id}/{annee}/{mois}/delete'name'agent_oep_rapport_delete')]
  280.     public function rapportDelete(Request $request,OperationIdentification $demande,int $anneeint $moisManagerRegistry $doctrine): Response
  281.     {
  282.         if($this->isGranted('ROLE_AGENT_OEP')== false){
  283.             return $this->render('erreur/access_denied.html.twig', []);
  284.         }
  285.         $em $doctrine->getManager();
  286.         
  287.         $em->remove($demande);
  288.         $em->flush();
  289.         return $this->redirectToRoute('agent_oep_rapport_list',['annee'=>$annee,'mois'=>$mois]);
  290.     }
  291.    /**
  292.      * @IsGranted("ROLE_AGENT_OEP")
  293.      */
  294.     #[Route('/agentOEP/demandes/list'name'agent_oep_demande_list'methods: ['GET''POST'])]
  295.    public function getDemandes(Request $requestManagerRegistry $doctrine,LoggerInterface $logger): Response
  296.    {
  297.     if($this->isGranted('ROLE_AGENT_OEP')== false){
  298.         return $this->render('erreur/access_denied.html.twig', []);
  299.     }
  300.     $em $doctrine->getManager();
  301.     $user $this->getUser();
  302.     $agent=$doctrine->getRepository(AgentOep::class)->findOneBy(['user'=>$user]);
  303.     $s $request->query->get('s');
  304.     $logger->info('sync ************************** '.$s.'   ***********************'); 
  305.  
  306.     $demandesReb = [];
  307.     $demandesAc = [];
  308.     $demandesEnt=[];
  309.     $demandesSort=[];
  310.     $demandesUpdate=[];
  311.     switch ($s) {
  312.         case '1':
  313.             if($agent->isIsCentral()== true){
  314.                 $demandesReb $doctrine->getRepository(DemandeRebouclage::class)->getDemandeEnvoyer();
  315.             }else{
  316.                 $idGouvernorat=-1;
  317.                 if($agent->getGouvernorat() != null){
  318.                     $idGouvernorat=$agent->getGouvernorat()->getId();
  319.                 }
  320.                 $demandesReb $doctrine->getRepository(DemandeRebouclage::class)->getDemandeEnvoyerByGouvernorat($idGouvernorat);
  321.             }
  322.             break;
  323.         case '2':
  324.             if($agent->isIsCentral()== true){
  325.                 $demandesUpdate=$doctrine->getRepository(DemandeUpdate::class)->getDemandeEnvoyer();
  326.             }else{
  327.                 $idGouvernorat=-1;
  328.                 if($agent->getGouvernorat() != null){
  329.                     $idGouvernorat=$agent->getGouvernorat()->getId();
  330.                 }
  331.                 $demandesUpdate=$doctrine->getRepository(DemandeUpdate::class)->getDemandeEnvoyerByGouvernorat($idGouvernorat);
  332.             }
  333.             break;
  334.         case '3':
  335.             if($agent->isIsCentral()== true){
  336.                     $demandesAc $doctrine->getRepository(DemandeAcquisition::class)->getDemandeEnvoyer();
  337.                 }else{
  338.                     $idGouvernorat=-1;
  339.                     if($agent->getGouvernorat() != null){
  340.                         $idGouvernorat=$agent->getGouvernorat()->getId();
  341.                     }
  342.                     $demandesAc $doctrine->getRepository(DemandeAcquisition::class)->getDemandeEnvoyerByGouvernorat($idGouvernorat);
  343.                 }
  344.             break;
  345.         case '4':
  346.             if($agent->isIsCentral()== true){
  347.                 $demandesEnt=$doctrine->getRepository(DemandeEnree::class)->getDemandeEnvoyer();
  348.             }else{
  349.                 $idGouvernorat=-1;
  350.                 if($agent->getGouvernorat() != null){
  351.                     $idGouvernorat=$agent->getGouvernorat()->getId();
  352.                 }
  353.                 $demandesEnt=$doctrine->getRepository(DemandeEnree::class)->getDemandeEnvoyerByGouvernorat($idGouvernorat);
  354.             }
  355.             break;
  356.         case '5':
  357.             if($agent->isIsCentral()== true){
  358.                 $demandesSort=$doctrine->getRepository(DemandeSortie::class)->getDemandeEnvoyer();
  359.             }else{
  360.                 $idGouvernorat=-1;
  361.                 if($agent->getGouvernorat() != null){
  362.                     $idGouvernorat=$agent->getGouvernorat()->getId();
  363.                 }
  364.                 $demandesSort=$doctrine->getRepository(DemandeSortie::class)->getDemandeEnvoyerByGouvernorat($idGouvernorat);
  365.             }
  366.             break;    
  367.         default: 
  368.             if($agent->isIsCentral()== true){
  369.                 $demandesReb $doctrine->getRepository(DemandeRebouclage::class)->getDemandeEnvoyer();
  370.                 $demandesAc $doctrine->getRepository(DemandeAcquisition::class)->getDemandeEnvoyer();
  371.                 $demandesEnt=$doctrine->getRepository(DemandeEnree::class)->getDemandeEnvoyer();
  372.                 $demandesSort=$doctrine->getRepository(DemandeSortie::class)->getDemandeEnvoyer();
  373.                 $demandesUpdate=$doctrine->getRepository(DemandeUpdate::class)->getDemandeEnvoyer();
  374.             }else{
  375.                 $idGouvernorat=-1;
  376.                 if($agent->getGouvernorat() != null){
  377.                     $idGouvernorat=$agent->getGouvernorat()->getId();
  378.                 }
  379.                 $demandesReb $doctrine->getRepository(DemandeRebouclage::class)->getDemandeEnvoyerByGouvernorat($idGouvernorat);
  380.                 $demandesAc $doctrine->getRepository(DemandeAcquisition::class)->getDemandeEnvoyerByGouvernorat($idGouvernorat);
  381.                 $demandesEnt=$doctrine->getRepository(DemandeEnree::class)->getDemandeEnvoyerByGouvernorat($idGouvernorat);
  382.                 $demandesSort=$doctrine->getRepository(DemandeSortie::class)->getDemandeEnvoyerByGouvernorat($idGouvernorat);
  383.                 $demandesUpdate=$doctrine->getRepository(DemandeUpdate::class)->getDemandeEnvoyerByGouvernorat($idGouvernorat);
  384.             }
  385.             break;
  386.     }
  387.     /*
  388.     if ($s == 1  ){
  389.         if($agent->isIsCentral()== true){
  390.             $demandesReb = $doctrine->getRepository(DemandeRebouclage::class)->getDemandeEnvoyer();
  391.             $demandesAc = [];
  392.             $demandesEnt=[];
  393.             $demandesSort=[];
  394.             $demandesUpdate=[];
  395.         }else{
  396.             $idGouvernorat=-1;
  397.             if($agent->getGouvernorat() != null){
  398.                 $idGouvernorat=$agent->getGouvernorat()->getId();
  399.             }
  400.             $demandesReb = $doctrine->getRepository(DemandeRebouclage::class)->getDemandeEnvoyerByGouvernorat($idGouvernorat);
  401.             $demandesAc = [];
  402.             $demandesEnt=[];
  403.             $demandesSort=[];
  404.             $demandesUpdate=[];
  405.         }
  406.     }elseif ( $s == 2) {
  407.         
  408.         if($agent->isIsCentral()== true){
  409.             $demandesReb = [];
  410.             $demandesAc = [];
  411.             $demandesEnt=[];
  412.             $demandesSort=[];
  413.             $demandesUpdate=$doctrine->getRepository(DemandeUpdate::class)->getDemandeEnvoyer();
  414.         }else{
  415.             $idGouvernorat=-1;
  416.             if($agent->getGouvernorat() != null){
  417.                 $idGouvernorat=$agent->getGouvernorat()->getId();
  418.             }
  419.             $demandesReb = [];
  420.             $demandesAc = [];
  421.             $demandesEnt=[];
  422.             $demandesSort=[];
  423.             $demandesUpdate=$doctrine->getRepository(DemandeUpdate::class)->getDemandeEnvoyerByGouvernorat($idGouvernorat);
  424.         }
  425.     }elseif( $s = 3 ){
  426.         if($agent->isIsCentral()== true){
  427.             $demandesReb = [];
  428.             $demandesAc = $doctrine->getRepository(DemandeAcquisition::class)->getDemandeEnvoyer();
  429.             $demandesEnt=[];
  430.             $demandesSort=[];
  431.             $demandesUpdate=[];
  432.         }else{
  433.             $idGouvernorat=-1;
  434.             if($agent->getGouvernorat() != null){
  435.                 $idGouvernorat=$agent->getGouvernorat()->getId();
  436.             }
  437.             $demandesReb = [];
  438.             $demandesAc = $doctrine->getRepository(DemandeAcquisition::class)->getDemandeEnvoyerByGouvernorat($idGouvernorat);
  439.             $demandesEnt=[];
  440.             $demandesSort = [];
  441.             $demandesUpdate=[];
  442.         }
  443.     
  444.     }elseif( $s = 4){
  445.         if($agent->isIsCentral()== true){
  446.             $demandesReb = [];
  447.             $demandesAc = [];
  448.             $demandesEnt=$doctrine->getRepository(DemandeEnree::class)->getDemandeEnvoyer();
  449.             $demandesSort=[];
  450.             $demandesUpdate=[];
  451.         }else{
  452.             $idGouvernorat=-1;
  453.             if($agent->getGouvernorat() != null){
  454.                 $idGouvernorat=$agent->getGouvernorat()->getId();
  455.             }
  456.             $demandesReb = [];
  457.             $demandesAc = [];
  458.             $demandesEnt=$doctrine->getRepository(DemandeEnree::class)->getDemandeEnvoyerByGouvernorat($idGouvernorat);
  459.             $demandesSort=[];
  460.             $demandesUpdate=[];
  461.         }
  462.     }elseif ($s = 5){
  463.         if($agent->isIsCentral()== true){
  464.             $demandesReb = [];
  465.             $demandesAc = [];
  466.             $demandesEnt=[];
  467.             $demandesSort=$doctrine->getRepository(DemandeSortie::class)->getDemandeEnvoyer();
  468.             $demandesUpdate=[];
  469.         }else{
  470.             $idGouvernorat=-1;
  471.             if($agent->getGouvernorat() != null){
  472.                 $idGouvernorat=$agent->getGouvernorat()->getId();
  473.             }
  474.             $demandesReb = [];
  475.             $demandesAc = [];
  476.             $demandesEnt=[];
  477.             $demandesSort=$doctrine->getRepository(DemandeSortie::class)->getDemandeEnvoyerByGouvernorat($idGouvernorat);
  478.             $demandesUpdate=[];
  479.         }
  480.     }else{
  481.         if($agent->isIsCentral()== true){
  482.             $demandesReb = $doctrine->getRepository(DemandeRebouclage::class)->getDemandeEnvoyer();
  483.             $demandesAc = $doctrine->getRepository(DemandeAcquisition::class)->getDemandeEnvoyer();
  484.             $demandesEnt=$doctrine->getRepository(DemandeEnree::class)->getDemandeEnvoyer();
  485.             $demandesSort=$doctrine->getRepository(DemandeSortie::class)->getDemandeEnvoyer();
  486.             $demandesUpdate=$doctrine->getRepository(DemandeUpdate::class)->getDemandeEnvoyer();
  487.         }else{
  488.             $idGouvernorat=-1;
  489.             if($agent->getGouvernorat() != null){
  490.                 $idGouvernorat=$agent->getGouvernorat()->getId();
  491.             }
  492.             $demandesReb = $doctrine->getRepository(DemandeRebouclage::class)->getDemandeEnvoyerByGouvernorat($idGouvernorat);
  493.             $demandesAc = $doctrine->getRepository(DemandeAcquisition::class)->getDemandeEnvoyerByGouvernorat($idGouvernorat);
  494.             $demandesEnt=$doctrine->getRepository(DemandeEnree::class)->getDemandeEnvoyerByGouvernorat($idGouvernorat);
  495.             $demandesSort=$doctrine->getRepository(DemandeSortie::class)->getDemandeEnvoyerByGouvernorat($idGouvernorat);
  496.             $demandesUpdate=$doctrine->getRepository(DemandeUpdate::class)->getDemandeEnvoyerByGouvernorat($idGouvernorat);
  497.         }
  498.     } */
  499.    
  500.     //dump($demandesReb,$demandesAc,$demandesUpdate,$demandesEnt);die;
  501.     return $this->render('agent_oep/demandes_list.html.twig', [
  502.         'controller_name' => 'ProfilController',
  503.         'demandesReb' => $demandesReb,
  504.         'demandesAc' => $demandesAc,
  505.         'demandesEnt' => $demandesEnt,
  506.         'demandesSort' => $demandesSort,
  507.         'demandesUpdate' => $demandesUpdate,
  508.         'agent'=>$agent
  509.     ]);
  510. }
  511.  /**
  512.      * @IsGranted("ROLE_AGENT_OEP")
  513.      */
  514.     #[Route('/agentOEP/demandes/rebouclage/{id}/{etat}/traiter'name'agent_oep_demandereb_traiter'methods: ['GET''POST'])]
  515.  public function demandeRebTraiter(Request $requestDemandeRebouclage $demandeint $etatManagerRegistry $doctrine): Response
  516.  {
  517.     if($this->isGranted('ROLE_AGENT_OEP')== false){
  518.         return $this->render('erreur/access_denied.html.twig', []);
  519.     }
  520.     $em $doctrine->getManager();
  521.     $user $this->getUser();
  522.     $agent=$doctrine->getRepository(AgentOep::class)->findOneBy(['user'=>$user]);
  523.     $demande->setEtatTraitement($etat);
  524.     $demande->setCodAgn($agent->getIdentAgent());
  525.     $em->persist($demande);
  526.     $em->flush();
  527.     return $this->redirectToRoute('agent_oep_demande_list');
  528. }
  529.     /**
  530.      * @IsGranted("ROLE_AGENT_OEP")
  531.      */
  532.     #[Route('/agentOEP/demandes/acquisition/{id}/{etat}/traiter'name'agent_oep_demanderacq_traiter'methods: ['GET''POST'])]
  533.     public function demandeAcTraiter(Request $requestDemandeAcquisition $demandeint $etatManagerRegistry $doctrine): Response
  534.     {
  535.         if($this->isGranted('ROLE_AGENT_OEP')== false){
  536.             return $this->render('erreur/access_denied.html.twig', []);
  537.         }
  538.         $em $doctrine->getManager();
  539.         $user $this->getUser();
  540.         $agent=$doctrine->getRepository(AgentOep::class)->findOneBy(['user'=>$user]);
  541.         $codAgn $agent->getIdentAgent();
  542.         $demande->setEtatTraitement($etat);
  543.         $demande->setCodAgn($codAgn);
  544.         $em->persist($demande);
  545.         $em->flush();
  546.         return $this->redirectToRoute('agent_oep_demande_list');
  547.     }
  548.      /**
  549.      * @IsGranted("ROLE_AGENT_OEP")
  550.      */
  551.     #[Route('/agentOEP/demandes/entree/{id}/{etat}/traiter'name'agent_oep_demande_ent_trait'methods: ['GET''POST'])]
  552.      public function demandeEntreeTraiter(Request $requestDemandeEnree $demandeint $etatManagerRegistry $doctrine): Response
  553.      {
  554.         if($this->isGranted('ROLE_AGENT_OEP')== false){
  555.             return $this->render('erreur/access_denied.html.twig', []);
  556.         }
  557.         $em $doctrine->getManager();
  558.         $user $this->getUser();
  559.         $agent=$doctrine->getRepository(AgentOep::class)->findOneBy(['user'=>$user]);
  560.         $codAgn $agent->getIdentAgent();
  561.         $demande->setEtatTraitement($etat);
  562.         $demande->setCodAgn($codAgn);
  563.         $em->persist($demande);
  564.         $em->flush();
  565.         return $this->redirectToRoute('agent_oep_demande_list');
  566.     }
  567.      /**
  568.      * @IsGranted("ROLE_AGENT_OEP")
  569.      */
  570.     #[Route('/agentOEP/demandes/sortie/{id}/{etat}/traiter'name'agent_oep_demande_sort_trait'methods: ['GET''POST'])]
  571.      public function demandeSortieTraiter(Request $requestDemandeSortie $demandeint $etatManagerRegistry $doctrine): Response
  572.      {
  573.         $em $doctrine->getManager();
  574.         $user $this->getUser();
  575.         $agent=$doctrine->getRepository(AgentOep::class)->findOneBy(['user'=>$user]);
  576.         $codAgn $agent->getIdentAgent();
  577.         $demande->setEtatTraitement($etat);
  578.         $demande->setCodAgn($codAgn);
  579.         $em->persist($demande);
  580.         $em->flush();
  581.         return $this->redirectToRoute('agent_oep_demande_list');
  582.     }
  583.      /**
  584.      * @IsGranted("ROLE_AGENT_OEP")
  585.      */
  586.     #[Route('/agentOEP/demandes/update/{id}/{etat}/traiter'name'agent_oep_demande_upd_trait'methods: ['GET''POST'])]
  587.      public function demandeUpdateTraiter(Request $requestDemandeUpdate $demandeint $etatManagerRegistry $doctrine): Response
  588.      {
  589.         if($this->isGranted('ROLE_AGENT_OEP')== false){
  590.             return $this->render('erreur/access_denied.html.twig', []);
  591.         }
  592.         $em $doctrine->getManager();
  593.         $user $this->getUser();
  594.         $agent=$doctrine->getRepository(AgentOep::class)->findOneBy(['user'=>$user]);
  595.         $codAg $agent->getIdentAgent();
  596.         $demande->setEtatTraitement($etat);
  597.         $demande->setCodAgn($agent->getIdentAgent());
  598.         $em->persist($demande);
  599.         $em->flush();
  600.         return $this->redirectToRoute('agent_oep_demande_list');
  601.     }
  602.     /**
  603.      * @IsGranted("ROLE_AGENT_OEP")
  604.      */
  605.     #[Route('/agentOEP/formations/list'name'agent_oep_formations_list'methods: ['GET''POST'])]
  606.     public function formationsList(Request $requestManagerRegistry $doctrine): Response
  607.     {
  608.         if($this->isGranted('ROLE_AGENT_OEP')== false){
  609.             return $this->render('erreur/access_denied.html.twig', []);
  610.         }
  611.         $em $doctrine->getManager();
  612.         $user $this->getUser();
  613.         $agent=$doctrine->getRepository(AgentOep::class)->findOneBy(['user'=>$user]);
  614.         if($agent->isIsCentral() == true){
  615.             $formations $doctrine->getRepository(DemandeFormation::class)->findAll();
  616.         }else{
  617.             $formations $doctrine->getRepository(DemandeFormation::class)->findBy(['gouvernorat'=>$agent->getGouvernorat()]);
  618.         }
  619.         return $this->render('agent_oep/formations_list.html.twig', [
  620.             'controller_name' => 'ProfilController',
  621.             'formations' => $formations,
  622.         ]);
  623.     }
  624.     /**
  625.      * @IsGranted("ROLE_AGENT_OEP")
  626.      */
  627.     #[Route('/agentOEP/formations/{id}/traiter'name'agent_oep_formation_traiter'methods: ['GET''POST'])]
  628.     public function formationTraiter(Request $requestDemandeFormation $demandeManagerRegistry $doctrine): Response
  629.     {
  630.         if($this->isGranted('ROLE_AGENT_OEP')== false){
  631.             return $this->render('erreur/access_denied.html.twig', []);
  632.         }
  633.         $em $doctrine->getManager();
  634.         if($request->request->get('etat') == '1'){
  635.             $demande->setEtatTraitement(2);
  636.         }else if($request->request->get('etat') == '0'){
  637.             $demande->setEtatTraitement(3);
  638.         }
  639.         $demande->setMotif($request->request->get('motif'));
  640.         $demande->setDateTraitement(new \DateTime());
  641.         $demande->setUpdatedAt(new \DateTime());
  642.         $em->persist($demande);
  643.         $em->flush();
  644.         return $this->redirectToRoute('agent_oep_formations_list');
  645.     }
  646.     /*************************************Add Formation*****************************************/
  647.     #[Route('/demande_formation/add'name'demande_formation_add'methods: ['GET''POST'])]
  648.     public function demandeFormationAdd(Request $requestManagerRegistry $doctrine): Response
  649.     {
  650.         $em $doctrine->getManager();
  651.         $user $this->getUser();
  652.         $demandeFormation = new DemandeFormation();
  653.         $form $this->createForm(DemandeFormationType::class, $demandeFormation);
  654.         $form->handleRequest($request);
  655.     
  656.         if ($form->isSubmitted()) {
  657.             if ($request->request->has('g-recaptcha-response')) {
  658.                 if ($request->request->get('g-recaptcha-response') != '') {
  659.                     $doc $request->files->get('demande_formation')['docDiplomes'];
  660.     
  661.                     if ($doc != null) {
  662.                         // Vérification stricte du type de fichier
  663.                         $ext strtolower($doc->getClientOriginalExtension());
  664.                         if ($ext !== 'pdf') {
  665.                             $this->addFlash('failure_insert_pdf''true');
  666.                             return $this->render('formations/add_demande_formation.html.twig', [
  667.                                 'controller_name' => 'ProfilController',
  668.                                 'form' => $form->createView()
  669.                             ]);
  670.                         }
  671.     
  672.                         $demandeFormation->setEtatTraitement(1);
  673.                         $demandeFormation->setDateDemande(new \DateTime());
  674.                         $demandeFormation->setCreatedAt(new \DateTime());
  675.                         $em->persist($demandeFormation);
  676.                         $em->flush();
  677.     
  678.                         $imageName 'diplome_' uniqid() . '.' $ext;
  679.                         $nameFile $doc->getClientOriginalName();
  680.                         $doc->move('uploads/demande_formation/diplomes'$imageName);
  681.     
  682.                         $fileNew = new DocDiplome();
  683.                         $fileNew->setDemandeFormation($demandeFormation);
  684.                         $fileNew->setNomOriginale($nameFile);
  685.                         $fileNew->setNomFichier($imageName);
  686.                         $fileNew->setCreatedAt(new \DateTime());
  687.                         $em->persist($fileNew);
  688.                         $em->flush();
  689.     
  690.                         return $this->render('formations/insert_success.html.twig', [
  691.                             'controller_name' => 'ProfilController',
  692.                         ]);
  693.                     }
  694.                 }
  695.             }
  696.     
  697.             $this->addFlash('failure_insert''true');
  698.             $user->setEmail($request->request->get('email'));
  699.             $user->setUsername($request->request->get('username'));
  700.             return $this->render('formations/add_demande_formation.html.twig', [
  701.                 'controller_name' => 'ProfilController',
  702.                 'form' => $form->createView()
  703.             ]);
  704.         }
  705.     
  706.         return $this->render('formations/add_demande_formation.html.twig', [
  707.             'controller_name' => 'ProfilController',
  708.             'form' => $form->createView()
  709.         ]);
  710.     }
  711.     
  712.     /**
  713.      * @IsGranted("ROLE_AGENT_OEP")
  714.      */
  715.     #[Route('/agentOEP/rapportIns/list'name'agent_oep_rapport_ins_annee_list'methods: ['GET''POST'])]
  716.          public function rapportInsByAnnee(Request $request,  ManagerRegistry $doctrine): Response
  717.          {
  718.             if($this->isGranted('ROLE_AGENT_OEP')== false){
  719.                 return $this->render('erreur/access_denied.html.twig', []);
  720.             }
  721.             $em $doctrine->getManager();
  722.             $user $this->getUser();
  723.               // Récupérer la valeur de l'année dans l'URL
  724.         $annee $request->query->get('annee');
  725.     
  726.         // Si la valeur n'est pas définie dans l'URL, utiliser l'année en cours
  727.        if (!$annee) {
  728.             $annee date('Y');
  729.         }
  730.         $anneeCourant date('Y');
  731.             return $this->render('agent_oep/rapports_ins.html.twig', [
  732.                 //'controller_name' => 'ProfilController',
  733.                 'annee'=> $annee,
  734.                 'anneeCourant'=>$anneeCourant
  735.             ]);
  736.         }
  737.     /**
  738.      * @IsGranted("ROLE_AGENT_OEP")
  739.      */
  740.     #[Route('/agentOEP/rapportIns/{annee}/{mois}/list'name'agent_oep_rapport_ins_list'methods: ['GET''POST'])]
  741.     public function rapportInsList(Request $requestint $anneeint $moisManagerRegistry $doctrine): Response
  742.     {
  743.         if($this->isGranted('ROLE_AGENT_OEP')== false){
  744.             return $this->render('erreur/access_denied.html.twig', []);
  745.         }
  746.         $em $doctrine->getManager();
  747.         $user $this->getUser();
  748.         $agent=$doctrine->getRepository(AgentOep::class)->findOneBy(['user'=>$user]);  
  749.         if($agent->isIsCentral() == true){
  750.             
  751.         
  752.         $inseminateurs $doctrine->getRepository(Inseminateur::class)->findAll();
  753.         }else{
  754.             $inseminateurs $doctrine->getRepository(Inseminateur::class)->findBy(['dicGouvernorat' => $agent->getGouvernorat()]);
  755.         }
  756.         
  757.         $etat 0;
  758.         $inss = [];
  759.    
  760.        
  761.         foreach ($inseminateurs as $ins) {
  762.             $insem $ins->getCodIns();
  763.             $operationsIns $doctrine->getRepository(OperationInsemination::class)->getListByCircuitAndInsAndEtat($annee$mois$insem);
  764.             $operationsIns2 $doctrine->getRepository(OperationInsemination::class)->getListByCircuitAndIns($annee$mois$insem);
  765.             if ($operationsIns)  {
  766.                 $inss[] = $ins->getId();
  767.                 $etat 1;
  768.             } else {
  769.                 $etat 2;
  770.             }
  771.             if ($operationsIns2 )  {
  772.                 $etat 1;
  773.             } else {
  774.                 $inss[] = $ins->getId();
  775.             }
  776.         }
  777.         //dump($inseminateurs,$operationsIns,$inss);die;
  778.         return $this->render('agent_oep/rapports_list_ins.html.twig', [
  779.             'controller_name' => 'ProfilController',
  780.             'inseminateurs' => $inseminateurs,
  781.             'annee'=>$annee,
  782.             'mois'=>$mois,
  783.             'inss'=>$inss,
  784.         ]);
  785.     }
  786.     /**
  787.      * @IsGranted("ROLE_AGENT_OEP")
  788.      */  
  789. #[Route('/pdf/agent/generator/rapport/ins/{annee}/{mois}/{ins}'name'agentOep_pdf_generator'methods: ['GET''POST'])]
  790. public function rapportPdf(Request $requestint $anneeint $moisint $ins ManagerRegistry $doctrine): Response
  791.   {
  792.     
  793.     if($this->isGranted('ROLE_AGENT_OEP')== false){
  794.         return $this->render('erreur/access_denied.html.twig', []);
  795.     }
  796.     $em $doctrine->getManager();
  797.     $user $this->getUser();
  798.     $inseminateur $doctrine->getRepository(Inseminateur::class)->findOneBy(['id' => $ins]);
  799.     $ins $inseminateur->getCodIns();
  800.     $operationsIns $doctrine->getRepository(OperationInsemination::class)->getListByCircuitANDIns($annee$mois$ins);
  801.     // Render the 'rapport_pdf.html.twig' template to generate HTML content
  802.     $htmlContent $this->renderView('inseminateur/rapport_pfd.html.twig', [
  803.         'data' => $operationsIns,
  804.         'inseminateur' => $inseminateur,
  805.         'mois'=>$mois,
  806.         'annee'=>$annee
  807.     ]);
  808.     // Create a TCPDF instance
  809.    // $pdf = new TCPDF();
  810.     $pdf = new TCPDF('L''mm''A4'true'UTF-8'false);
  811.    // $pdf->SetFont('dejavusans', '', 12);
  812.    $pdf->SetFont('freeserif'''11);
  813.     $pdf->setRTL(true);
  814.     // Add a page
  815.          /*$pdf->AddPage();*/
  816.          $pdf->AddPage('L');
  817.     // Add the HTML content to the PDF
  818.    // $pdf->writeHTML($htmlContent);
  819.     $pdf->writeHTML($htmlContenttruefalsetruefalse'');
  820.     // Close and output the PDF
  821.     $pdf->Output('Rapport_Insemination.pdf''D');
  822.     return new Response();
  823. }
  824.  /**
  825.      * @IsGranted("ROLE_AGENT_OEP")
  826.      */  
  827. /**
  828.  * @Route("/csv/generator/rapport/ins/{annee}/{mois}/{ins}", name="agentOep_excel_generator", methods={"GET", "POST"})
  829.  */
  830. public function rapportExcel(Request $requestint $anneeint $moisint $ins,  ManagerRegistry $doctrine): Response
  831. {
  832.     if($this->isGranted('ROLE_AGENT_OEP')== false){
  833.         return $this->render('erreur/access_denied.html.twig', []);
  834.     }
  835.     $em $doctrine->getManager();
  836.     $user $this->getUser();
  837.     $inseminateur $doctrine->getRepository(Inseminateur::class)->findOneBy(['id' => $ins]);
  838.     $ins $inseminateur->getCodIns();
  839.    
  840.    
  841.    
  842.     $operationsIns $doctrine->getRepository(OperationInsemination::class)->getListByCircuitANDIns($annee$mois$ins);
  843.     
  844.    
  845.    
  846.     $spreadsheet = new Spreadsheet();
  847.     $sheet $spreadsheet->getActiveSheet();
  848.     
  849.    
  850.    
  851.     $writer IOFactory::createWriter($spreadsheet'Csv');
  852.     $writer->setUseBOM(true);
  853.     $writer->setDelimiter(';');
  854.     $writer->setEnclosure('');
  855.     $writer->setLineEnding("\r\n");
  856.     
  857.     // Écrire les en-têtes
  858.     $enTetes = [
  859.         'gouv',
  860.         $inseminateur->getDicGouvernorat()->getCodeGou(),
  861.         $inseminateur->getDicGouvernorat()->getGouvernorat(),
  862.        
  863.     ];
  864.     $sheet->fromArray([$enTetes], null'A1'true);
  865.     
  866.     $enTetes = [
  867.         'num circuit',
  868.         $inseminateur->getDicCircuit()->getCodCircuit(),
  869.         $inseminateur->getDicCircuit()->getDesCirLt(),
  870.         
  871.     ];
  872.     $sheet->fromArray([$enTetes], null'A2'true);
  873.     
  874.     $enTetes = [
  875.         'cod inséminateur',
  876.         $inseminateur->getCodIns(),
  877.         $inseminateur->getNprInsFr(),
  878.         
  879.         
  880.     ];
  881.     
  882.     $sheet->fromArray([$enTetes], null'A3'true);
  883.     
  884.    
  885.     
  886.     $enTetes = [
  887.         'N° animal',
  888.         'Date inséminat',
  889.         'N° taureau',
  890.         'CIN',
  891.         '',
  892.         '',
  893.     ];
  894.     $sheet->fromArray([$enTetes], null'A5'true);
  895.     
  896.     $row 5// Commencer à la ligne 5 pour les en-têtes
  897.     foreach ($operationsIns as $item) {
  898.         $row++;
  899.         $rowData = [
  900.             $item['numero_animal'],
  901.             $item['date_op'],
  902.             $item['numero_taureau'],
  903.             $item['numero_eleveur'],
  904.             '',
  905.             ''
  906.         ];
  907.     
  908.         $sheet->fromArray([$rowData], null'A' $rowtrue);
  909.     }
  910.     
  911.     $response = new Response();
  912.     $response->headers->set('Content-Type''text/csv');
  913.     $response->headers->set('Content-Disposition''attachment; filename="Rapport_Insemination.csv');
  914.     $writer->save('php://output');
  915.     
  916.     return $response;
  917.     
  918. }
  919. }