src/Controller/TesteurController.php line 31

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Repository\AdresseRepository;
  4. use App\Repository\MessageRepository;
  5. use App\Repository\AdressesTypeRepository;
  6. use App\Repository\SendingMessageRepository;
  7. use Symfony\Component\HttpFoundation\Response;
  8. use Symfony\Component\Routing\Annotation\Route;
  9. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  10. class TesteurController extends AbstractController
  11. {
  12.     private $messageRepository;
  13.     private $adresseRepository;
  14.     private $adressesTypeRepository;
  15.     private $sendingMessageRepository;
  16.     public function __construct(MessageRepository $messageRepositoryAdresseRepository $adresseRepositoryAdressesTypeRepository $adressesTypeRepositorySendingMessageRepository $sendingMessageRepository)
  17.     {
  18.         $this->messageRepository $messageRepository;
  19.         $this->adresseRepository $adresseRepository;
  20.         $this->adressesTypeRepository $adressesTypeRepository;
  21.         $this->sendingMessageRepository $sendingMessageRepository;
  22.     }
  23.     /**
  24.      * @Route("/gestion/testeur", name="testeur")
  25.      */
  26.     public function testeur()
  27.     {
  28.     //liste de toutes les catégories (ou types) possibles pour une lettre
  29.     $listeTypes = array(1,2,3,4,6,7,8,16,18,34);
  30.     //récupération des adressesId pour la liste des catégories
  31.     $listeAdressesId $this->_listeAdressesId($listeTypes);
  32.     //dd($listeAdressesId);
  33.     
  34.     //épuration des adresses archivées
  35.         //et construction du tableau des mails avec infos
  36.         //pour la liste des destinataires
  37.     $retour $this->_epurArchives($listeAdressesId);
  38.     
  39.     $retour $this->_salaries($retour['tabmail'],$retour['tabemail'],$retour['t'],$retour['taberror']);
  40.     $retour $this->_administrateurs($retour['tabmail'],$retour['tabemail'],$retour['t'],$retour['taberror']);
  41.     $retour $this->_membres($retour['tabmail'],$retour['tabemail'],$retour['t'],$retour['taberror']);
  42.     $taberror $retour['taberror'];
  43.     //dd($taberror);
  44.     return $this->render('testeur/index.html.twig', [
  45.         'taberror' =>$taberror,
  46.         'total' => count($taberror)
  47.     ]);
  48.     }
  49.     private function _listeAdressesId($listeTypes){
  50.         $listAdressId = array();
  51.         if(!empty($listeTypes)){
  52.             foreach($listeTypes as $l){
  53.                 $adressesId $this->adressesTypeRepository->findByTypeId($l);
  54.                 foreach($adressesId as $a){
  55.                     //dd($a);
  56.                     if(!in_array($a->getAdressId(), $listAdressId)){
  57.                         $listAdressId[]= $a->getAdressId();
  58.                     }
  59.                 }
  60.                 
  61.             }
  62.             // dd($listAdressId);
  63.         
  64.         }
  65.         return $listAdressId;
  66.     }
  67.     private function _epurArchives($listeAdressesId){
  68.         $tabmail = array();
  69.         $tabemail = array();
  70.         $taberror = array();
  71.         $t 1;
  72.         if(!empty($listeAdressesId)){
  73.         foreach($listeAdressesId as $aId){
  74.             //exclure les adresses en archive
  75.             $archiv 0;
  76.             $adresseTypes $this->adressesTypeRepository->findAdresseTypes($aId);
  77.             //dump($adresseTypes);exit;
  78.             foreach($adresseTypes as $ty){
  79.                 //dd($ty);
  80.                 if($ty->getTypeId() == 17){
  81.                     $archiv 1;
  82.                 }
  83.             }
  84.             if($archiv == 0){
  85.                 //dd($aId);
  86.                 $adresse $this->adresseRepository->find($aId);
  87.                 // dd($adresse);
  88.                 if(!is_null($adresse))
  89.                     {    
  90.                         //choisir la préférence de l'adresse email
  91.                         $mail $adresse->getEmail();
  92.              
  93.                         if(strlen($adresse->getEmailAdmin()) > 0){
  94.                             //les emails admin peuvent être séparés par des point-virgules
  95.                             if(strpos($adresse->getEmailAdmin(),';') > 0){
  96.                                 $mailAdmins explode(';',$adresse->getEmailAdmin());
  97.                             }else{
  98.                                 $mail $adresse->getEmailAdmin();
  99.                             }
  100.                         }
  101.                         
  102.                         $mail trim($mail);
  103.     
  104.                         $name $adresse->getRaisonSociale().' '.$adresse->getName();
  105.                         $name str_replace('É','É',$name);
  106.                         $name str_replace('À','À',$name);
  107.                         $name str_replace('Â','Â',$name);
  108.                         $name str_replace('é','é',$name);
  109.                         $name str_replace('è','è',$name);
  110.     
  111.                         if(strlen($mail) == 0){
  112.                             $taberror[$aId] = "Pas de mail pour ".$name." - id = ".$aId;
  113.                         }
  114.     
  115.                         if(!in_array($mail,$tabemail)){
  116.                             $tabemail[$t] = $mail;
  117.                             $tabmail[$t]['mail'] = $mail;
  118.                             
  119.                             $tabmail[$t]['name'] = trim(mb_strtoupper($name));
  120.                             // $tabmail[$t]['cp'] = $a['codePostal'];
  121.                             if(isset($mailAdmins)){
  122.                                 foreach($mailAdmins as $m){
  123.                                     $t++;
  124.                                     $tabemail[$t] = $m;
  125.                                     $tabmail[$t]['mail'] = $m;
  126.                                     $tabmail[$t]['name'] = trim(mb_strtoupper($name));
  127.                                     // $tabmail[$t]['cp'] = $a['codePostal'];
  128.                                 }
  129.                             }
  130.                         }
  131.                     }else{
  132.                         //le fichier adresses_types contient des lignes
  133.                         //erronées avec des adress_id qui n'existent plus dans adresses
  134.                         //throw new Exception('Pas d\'adresse n° '.$aId);
  135.                     }
  136.                 
  137.                 $t++;
  138.             }
  139.         }
  140.         
  141.     }
  142.     //dump(count($tabmail));
  143.     //dump($tabemail);exit;
  144.      //dd($taberror);
  145.     return array('tabmail'=>$tabmail,'tabemail'=>$tabemail,'t'=>$t'taberror' => $taberror);
  146.     }
  147.     private function _salaries($tabmail,$tabemail,$t$taberror){
  148.         $t++;
  149.         //dump($t);
  150.         $salaries $this->adresseRepository->findSalaries();
  151.         //dump($salaries);exit;
  152.         
  153.         foreach($salaries as $s){
  154.             //dd($s);
  155.             $d $this->adresseRepository->find($s['adress_id']);
  156.             //dd($d);
  157.             if(is_null($d)){
  158.                 //dump($s);exit;
  159.                 continue;
  160.             }
  161.             $mail $d->getEmail();
  162.             if($mail == '') {
  163.                 $taberror[$d->getId()] = "Pas de mail pour le salarié ".$d->getName();
  164.             }else{
  165.                 //dump(count($tabemail));
  166.                 //dump($mail);
  167.                 $mail trim($mail);
  168.                 if(!in_array($mail,$tabemail)){
  169.                     //dump($mail);
  170.                     $tabemail[$t] = $mail;
  171.                     $tabmail[$t]['mail'] = $mail;
  172.                     $tabmail[$t]['name'] = trim(mb_strtoupper($d->getName()));
  173.                     // $tabmail[$t]['cp'] = 'non';
  174.                     
  175.                 }
  176.             }
  177.             $t++;
  178.         }
  179.         //dump($t);
  180.         //dump(count($tabmail));
  181.         //dump($tabemail);exit;
  182.         return array('tabmail'=>$tabmail,'tabemail'=>$tabemail't'=>$t,'taberror'=>$taberror);
  183.     }
  184.     private function _administrateurs($tabmail,$tabemail,$t,$taberror){
  185.         $t++;
  186.         //dump($t);
  187.         $admins $this->adresseRepository->findAdmins();
  188.         //dump($admins);exit;
  189.         
  190.         foreach($admins as $s){
  191.             //dd($s);
  192.             $d $this->adresseRepository->find($s['adress_id']);
  193.             //dd($d);
  194.             if(is_null($d)){
  195.                 //dump($s);exit;
  196.                 continue;
  197.             }
  198.             $mail $d->getEmail();
  199.             if($mail == '') {
  200.                 $taberror[$d->getId()] = "Pas de mail pour l'administrateur' ".$d->getName();
  201.             }else{
  202.                 //dump(count($tabemail));
  203.                 //dump($mail);
  204.                 $mail trim($mail);
  205.                 if(!in_array($mail,$tabemail)){
  206.                     //dump($mail);
  207.                     $tabemail[$t] = $mail;
  208.                     $tabmail[$t]['mail'] = $mail;
  209.                     $tabmail[$t]['name'] = trim(mb_strtoupper($d->getName()));
  210.                     // $tabmail[$t]['cp'] = 'non';
  211.                     
  212.                 }
  213.             }
  214.             $t++;
  215.         }
  216.         //dump($t);
  217.         //dump(count($tabmail));
  218.         //dump($tabemail);exit;
  219.         return array('tabmail'=>$tabmail,'tabemail'=>$tabemail't'=>$t,'taberror'=>$taberror);
  220.     }
  221.     private function _membres($tabmail,$tabemail,$t,$taberror){
  222.         $t++;
  223.         //dump($t);
  224.         $membres $this->adresseRepository->findMembres();
  225.         //dump($membres);exit;
  226.         
  227.         foreach($membres as $s){
  228.             //dd($s);
  229.             $d $this->adresseRepository->find($s['adress_id']);
  230.             //dd($d);
  231.             if(is_null($d)){
  232.                 //dump($s);exit;
  233.                 continue;
  234.             }
  235.             $mail $d->getEmail();
  236.             if($mail == '') {
  237.                 $taberror[$d->getId()] = "Pas de mail pour le membre de l\'AG ' ".$d->getName();
  238.             }else{
  239.                 //dump(count($tabemail));
  240.                 //dump($mail);
  241.                 $mail trim($mail);
  242.                 if(!in_array($mail,$tabemail)){
  243.                     //dump($mail);
  244.                     $tabemail[$t] = $mail;
  245.                     $tabmail[$t]['mail'] = $mail;
  246.                     $tabmail[$t]['name'] = trim(mb_strtoupper($d->getName()));
  247.                     // $tabmail[$t]['cp'] = 'non';
  248.                     
  249.                 }
  250.             }
  251.             $t++;
  252.         }
  253.         //dump($t);
  254.         //dump(count($tabmail));
  255.         //dump($tabemail);exit;
  256.         return array('tabmail'=>$tabmail,'tabemail'=>$tabemail't'=>$t,'taberror'=>$taberror);
  257.     }
  258. }