src/Controller/CpController.php line 37

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\Client;
  4. use App\Entity\Mailling;
  5. use App\Entity\OpenDate;
  6. use App\Entity\SuivitOuvertureMailling;
  7. use App\Entity\SuivitOuverturePartie;
  8. use Doctrine\ORM\EntityManager;
  9. use Doctrine\ORM\EntityManagerInterface;
  10. use PhpOffice\PhpSpreadsheet\Shared\Date;
  11. use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
  12. use Symfony\Bundle\FrameworkBundle\Controller\Controller;
  13. use Symfony\Component\HttpFoundation\Request;
  14. use Symfony\Component\HttpFoundation\Response;
  15. use Symfony\Component\HttpFoundation\ResponseHeaderBag;
  16. use Symfony\Component\HttpFoundation\BinaryFileResponse;
  17. class CpController extends Controller
  18. {
  19.     /**
  20.      * @var EntityManager
  21.      */
  22.     private $em;
  23.     public function __construct(EntityManagerInterface $em)
  24.     {
  25.         $this->em $em;
  26.     }
  27.     /**
  28.      * @Route("/cp/{idMailling}/{idUser}/{idPartie}",methods={"GET"},name="get.cp.client")
  29.      */
  30.     public function getCpClientAction($idMailling,$idUser,$idPartie)
  31.     {
  32.         $mailling $this->em->getRepository('App:Mailling')
  33.             ->find($idMailling);
  34.         $suivitMailling $this->em->getRepository('App\Entity\SuivitOuvertureMailling')
  35.             ->findOneBy(['mailling' => $mailling'idContact' => $idUser]);
  36.         /** @var SuivitOuvertureMailling $suivitMailling */
  37.         if(!$suivitMailling){
  38.             $suivitMailling = new SuivitOuvertureMailling();
  39.             $suivitMailling->setIdContact($idUser);
  40.             $suivitMailling->setMailling($mailling);
  41.             $curl curl_init();
  42.             curl_setopt_array($curl, array(
  43.                 CURLOPT_RETURNTRANSFER => 1,
  44.                 CURLOPT_URL => 'extranet.escalconsulting.com/information/getNomPrenom.php?id=' $idUser,
  45.             ));
  46.             $nomContact curl_exec($curl);
  47.             $suivitMailling->setNomContact($nomContact);
  48.             curl_close($curl);
  49.         } else {
  50.             $suivitMailling->setLastOpenDate(new \DateTime('now'));
  51.             $suivitMailling->Open();
  52.         }
  53.         $opentDate = new OpenDate();
  54.         $opentDate->setDate(new \DateTime('now'));
  55.         $opentDate->setSuivitsMailling($suivitMailling);
  56.         $partie $this->em->getRepository('App:PartieCp')->find($idPartie);
  57.         if($partie){
  58.             $suivitOuverturePartie = new SuivitOuverturePartie();
  59.             $suivitOuverturePartie->setPartie($partie);
  60.             $suivitOuverturePartie->setSuivitOuverture($suivitMailling);
  61.             $this->em->persist($suivitOuverturePartie);
  62.         }
  63.         $this->em->persist($suivitMailling);
  64.         $this->em->persist($opentDate);
  65.         $this->em->flush();
  66.         return new Response('ok');
  67.     }
  68.     /**
  69.      * @Route("/cp/client/intranet/{idClient}/{dateDebut}/{dateFin}",methods={"GET"},name="get.cp.client.intranet")
  70.      */
  71.     public function getCpClientEnvoyer($idClient,$dateDebut,$dateFinEntityManagerInterface $em)
  72.     {
  73.         $client $em->getRepository('App\Entity\Client')->findOneBy(['ancienId' => $idClient]);
  74.         $nbMailling 0;
  75.         if($client){
  76.             $dateDebut = new \DateTime($dateDebut);
  77.             $dateDebut->setTime(0,0,0);
  78.             $dateFin = new \DateTime($dateFin);
  79.             $dateFin->setTime(23,59,59);
  80.             /** @var Client $client */
  81.             $maillings $client->getMaillings();
  82.             foreach ($maillings as $mailling){
  83.                 if($mailling->getEnvoyer() == true AND $mailling->getTypeMail() == 'CP'){
  84.                     if($mailling->getDateEnvoi() >= $dateDebut AND $mailling->getDateEnvoi() <= $dateFin){
  85.                         $nbMailling $nbMailling 1;
  86.                     }
  87.                 }
  88.             }
  89.         }
  90.         return new Response($nbMailling);
  91.     }
  92. }