src/Controller/ParutionController.php line 65

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\CategoriesGenerales;
  4. use App\Entity\Contact;
  5. use App\Entity\ContactSupport;
  6. use App\Entity\Coordonnees;
  7. use App\Entity\Fonction;
  8. use App\Entity\Organisation;
  9. use App\Entity\Secteur;
  10. use App\Entity\SousCategoriesGenerales;
  11. use App\Entity\Support;
  12. use App\Service\Office\Word\WordParutionInterface;
  13. use App\Service\Office\Word\WordRAInterface;
  14. use Doctrine\ORM\EntityManagerInterface;
  15. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  16. use Symfony\Component\HttpFoundation\JsonResponse;
  17. use Symfony\Component\HttpFoundation\Request;
  18. use Symfony\Component\HttpFoundation\Response;
  19. use Symfony\Component\Routing\Annotation\Route;
  20. use PDO;
  21. class ParutionController extends AbstractController
  22. {
  23.     /**
  24.      * @Route("/api/parutions/recherche/intranet/contact/{recherche}", methods={"GET"}, name="rechercher_contact_intranet_parution")
  25.      */
  26.     public function rechercherContact ($recherche)
  27.     {
  28.         $url 'extranet.escalconsulting.com/information/getContactSuivitSuggestion.php?name='.$recherche;
  29.         $c curl_init();
  30.         curl_setopt($cCURLOPT_URL$url);
  31.         curl_setopt($cCURLOPT_RETURNTRANSFERtrue);
  32.         curl_setopt($cCURLOPT_HEADERfalse);
  33.         $output curl_exec($c);
  34.         curl_close($c);
  35.         $output json_decode($output);
  36.         $response = new JsonResponse($output);
  37.         $response->headers->set('Content-Type''application/json');
  38.         return $response;
  39.     }
  40.     /**
  41.      * @Route("/api/parutions/recherche/intranet/support/{recherche}", methods={"GET"}, name="rechercher_support_intranet_parution")
  42.      */
  43.     public function rechercherSupport ($recherche)
  44.     {
  45.         $url 'extranet.escalconsulting.com/information/getSupportSuggestion.php?name='.$recherche;
  46.         $c curl_init();
  47.         curl_setopt($cCURLOPT_URL$url);
  48.         curl_setopt($cCURLOPT_RETURNTRANSFERtrue);
  49.         curl_setopt($cCURLOPT_HEADERfalse);
  50.         $output curl_exec($c);
  51.         curl_close($c);
  52.         $output json_decode($output);
  53.         $response = new JsonResponse($output);
  54.         $response->headers->set('Content-Type''application/json');
  55.         return $response;
  56.     }
  57.     /**
  58.      * @Route("/api/parutions/recherche/intranet/interview/{recherche}/{clientAncienId}", methods={"GET"}, name="rechercher_interview_intranet_parution")
  59.      */
  60.     public function rechercherInterview ($recherche$clientAncienId)
  61.     {
  62.         $url 'extranet.escalconsulting.com/information/getInterviewSuggestion.php?search='.$recherche.'&client='.$clientAncienId;
  63.         $c curl_init();
  64.         curl_setopt($cCURLOPT_URL$url);
  65.         curl_setopt($cCURLOPT_RETURNTRANSFERtrue);
  66.         curl_setopt($cCURLOPT_HEADERfalse);
  67.         $output curl_exec($c);
  68.         curl_close($c);
  69.         $output json_decode($output);
  70.         $response = new JsonResponse($output);
  71.         $response->headers->set('Content-Type''application/json');
  72.         return $response;
  73.     }
  74.     /**
  75.      * @Route("/api/parutions/recuperer/intranet/interview/{clientAncienId}", methods={"GET"}, name="recuperer_interview_intranet_parution")
  76.      */
  77.     public function getInterview ($clientAncienId)
  78.     {
  79.         $url 'extranet.escalconsulting.com/information/getInterviewsClient.php?client='.$clientAncienId;
  80.         $c curl_init();
  81.         curl_setopt($cCURLOPT_URL$url);
  82.         curl_setopt($cCURLOPT_RETURNTRANSFERtrue);
  83.         curl_setopt($cCURLOPT_HEADERfalse);
  84.         $output curl_exec($c);
  85.         curl_close($c);
  86.         $output json_decode($output);
  87.         $response = new JsonResponse($output);
  88.         $response->headers->set('Content-Type''application/json');
  89.         return $response;
  90.     }
  91.     /**
  92.      * @Route("/api/parutions/recherche/intranet/suivi/{recherche}/{clientAncienId}/{supportAncienId}", methods={"GET"}, name="rechercher_suivi_intranet_parution")
  93.      */
  94.     public function rechercherSuivi ($recherche$clientAncienId$supportAncienId)
  95.     {
  96.         $url 'extranet.escalconsulting.com/information/getSuivisParutionSuggestion.php?search='.$recherche.'&client='.$clientAncienId.'&support='.$supportAncienId;
  97.         $c curl_init();
  98.         curl_setopt($cCURLOPT_URL$url);
  99.         curl_setopt($cCURLOPT_RETURNTRANSFERtrue);
  100.         curl_setopt($cCURLOPT_HEADERfalse);
  101.         $output curl_exec($c);
  102.         curl_close($c);
  103.         $output json_decode($output);
  104.         $response = new JsonResponse($output);
  105.         $response->headers->set('Content-Type''application/json');
  106.         return $response;
  107.     }
  108.     /**
  109.      * @Route("/api/parutions/recuperer/intranet/suivi/{clientAncienId}/{supportAncienId}", methods={"GET"}, name="recuperer_suivi_intranet_parution")
  110.      */
  111.     public function getSuivi ($clientAncienId$supportAncienId)
  112.     {
  113.         $url 'extranet.escalconsulting.com/information/getSuivisParutionClient.php?client='.$clientAncienId.'&support='.$supportAncienId;
  114.         $c curl_init();
  115.         curl_setopt($cCURLOPT_URL$url);
  116.         curl_setopt($cCURLOPT_RETURNTRANSFERtrue);
  117.         curl_setopt($cCURLOPT_HEADERfalse);
  118.         $output curl_exec($c);
  119.         curl_close($c);
  120.         $output json_decode($output);
  121.         $response = new JsonResponse($output);
  122.         $response->headers->set('Content-Type''application/json');
  123.         return $response;
  124.     }
  125.     /**
  126.      * @Route("/api/parutions/recuperer/intranet/campagnes/concurrents", methods={"GET"}, name="recuperer_campagnes_concurrents_intranet_parution")
  127.      */
  128.     public function getCampagnesConcurrents ()
  129.     {
  130.         $url 'extranet.escalconsulting.com/information/getCampagnesConcurrentsParution.php';
  131.         $c curl_init();
  132.         curl_setopt($cCURLOPT_URL$url);
  133.         curl_setopt($cCURLOPT_RETURNTRANSFERtrue);
  134.         curl_setopt($cCURLOPT_HEADERfalse);
  135.         $output curl_exec($c);
  136.         curl_close($c);
  137.         $output json_decode($output);
  138.         $response = new JsonResponse($output);
  139.         $response->headers->set('Content-Type''application/json');
  140.         return $response;
  141.     }
  142.     /**
  143.      * @Route("/api/parutions/recuperer/intranet/listes/contacts", methods={"GET"}, name="recuperer_listes_contacts_intranet_parution")
  144.      */
  145.     public function getListesContacts ()
  146.     {
  147.         $url 'extranet.escalconsulting.com/information/getListesContacts.php';
  148.         $c curl_init();
  149.         curl_setopt($cCURLOPT_URL$url);
  150.         curl_setopt($cCURLOPT_RETURNTRANSFERtrue);
  151.         curl_setopt($cCURLOPT_HEADERfalse);
  152.         $output curl_exec($c);
  153.         curl_close($c);
  154.         $output json_decode($output);
  155.         $response = new JsonResponse($output);
  156.         $response->headers->set('Content-Type''application/json');
  157.         return $response;
  158.     }
  159.     /**
  160.      * @Route("/api/parutions/recuperer/intranet/listes/parutions", methods={"GET"}, name="recuperer_listes_parutions_intranet_parution")
  161.      */
  162.     public function getListesParutions ()
  163.     {
  164.         $url 'extranet.escalconsulting.com/information/getListesParutions.php';
  165.         $c curl_init();
  166.         curl_setopt($cCURLOPT_URL$url);
  167.         curl_setopt($cCURLOPT_RETURNTRANSFERtrue);
  168.         curl_setopt($cCURLOPT_HEADERfalse);
  169.         $output curl_exec($c);
  170.         curl_close($c);
  171.         $output json_decode($output);
  172.         $response = new JsonResponse($output);
  173.         $response->headers->set('Content-Type''application/json');
  174.         return $response;
  175.     }
  176.     /**
  177.      * @Route("/api/parutions/campagne/intranet/creer/{campagneId}", methods={"GET"}, name="creer_campagnes_intranet_parution")
  178.      */
  179.     public function creerCampagneIntranetParution ($campagneIdEntityManagerInterface $em)
  180.     {
  181.         $campagne $em->getRepository('App:CampagneParution')->find($campagneId);
  182.         if($campagne != null) {
  183.             $url 'extranet.escalconsulting.com/information/addCampagneParution.php?campagne='.$campagne->getLibelle();
  184.             $c curl_init();
  185.             curl_setopt($cCURLOPT_URL$url);
  186.             curl_setopt($cCURLOPT_RETURNTRANSFERtrue);
  187.             curl_setopt($cCURLOPT_HEADERfalse);
  188.             $output curl_exec($c);
  189.             curl_close($c);
  190.             $output json_decode($output);
  191.             $response = new JsonResponse($output);
  192.             $response->headers->set('Content-Type''application/json');
  193.             return $response;
  194.         } else {
  195.             return new JsonResponse([]);
  196.         }
  197.     }
  198.     /**
  199.      * @Route("/api/parutions/theme/intranet/importer/{themeId}", methods={"GET"}, name="theme_parution_importer")
  200.      */
  201.     public function importerThemeParution($themeIdEntityManagerInterface $em)
  202.     {
  203.         // importer theme dans la base escalnet
  204.         $url 'extranet.escalconsulting.com/information/getCategorieGeneraleById.php?id='.$themeId;
  205.         $c curl_init();
  206.         curl_setopt($cCURLOPT_URL$url);
  207.         curl_setopt($cCURLOPT_RETURNTRANSFERtrue);
  208.         curl_setopt($cCURLOPT_HEADERfalse);
  209.         $output curl_exec($c);
  210.         curl_close($c);
  211.         $output json_decode($output);
  212.         $output = (array)$output;
  213.         $theme null;
  214.         // si il existe
  215.         if(count($output) != 0) {
  216.             $theme = new CategoriesGenerales();
  217.             $theme->setAncienId($output['id']);
  218.             $output['lib'] = str_replace("&#039;""'"$output['lib']);
  219.             $output['lib'] = str_replace("&amp;""&"$output['lib']);
  220.             $theme->setLibelle($output['lib']);
  221.             // verif si theme pas deja existant dans la base
  222.             $verifTheme $this->getDoctrine()->getRepository('App:CategoriesGenerales')->findOneBy(['ancienId' => $output['id']]);
  223.             if(!$verifTheme){
  224.                 $em->persist($theme);
  225.                 $em->flush();
  226.             }
  227.         }
  228.         return new JsonResponse('ok');
  229.     }
  230.     /**
  231.      * @Route("/api/parutions/support/intranet/importer/{supportId}", methods={"GET"}, name="support_parution_importer")
  232.      */
  233.     public function importerSupportParution($supportIdEntityManagerInterface $em)
  234.     {
  235.         // créer objet support
  236.         $support = new Support();
  237.         // importer le secteur du support dans la base escalnet
  238.         $url 'extranet.escalconsulting.com/information/getSecteurSupport.php?id='.$supportId;
  239.         $c curl_init();
  240.         curl_setopt($cCURLOPT_URL$url);
  241.         curl_setopt($cCURLOPT_RETURNTRANSFERtrue);
  242.         curl_setopt($cCURLOPT_HEADERfalse);
  243.         $output curl_exec($c);
  244.         curl_close($c);
  245.         $output json_decode($output);
  246.         $output = (array)$output;
  247.         //verif si support avec secteur
  248.         $secteur null;
  249.         if(count($output) != 0) {
  250.             $secteur = new Secteur();
  251.             $secteur->setAncienId($output['id']);
  252.             $secteur->setLibelle($output['lib']);
  253.             // verif si secteur pas deja existant dans la base
  254.             $verifSecteur $this->getDoctrine()->getRepository('App:Secteur')->findOneBy(['ancienId' => $output['id']]);
  255.             if(!$verifSecteur){
  256.                 $em->persist($secteur);
  257.                 $em->flush();
  258.                 $secteur $this->getDoctrine()->getRepository('App:Secteur')->findOneBy(['ancienId' => $output['id']]);
  259.             } else {
  260.                 $secteur $verifSecteur;
  261.             }
  262.             if($secteur != null){
  263.                 $support->addSecteur($secteur);
  264.             }
  265.         }
  266.         // récupérer les langues du support
  267.         $url 'extranet.escalconsulting.com/information/getLanguesSupport.php?id='.$supportId;
  268.         $c curl_init();
  269.         curl_setopt($cCURLOPT_URL$url);
  270.         curl_setopt($cCURLOPT_RETURNTRANSFERtrue);
  271.         curl_setopt($cCURLOPT_HEADERfalse);
  272.         $output curl_exec($c);
  273.         curl_close($c);
  274.         $output json_decode($output);
  275.         $output = (array)$output;
  276.         //verif si support avec langues
  277.         foreach ($output as $key => $value) {
  278.             $value = (array)$value;
  279.             $langue $this->getDoctrine()->getRepository('App:Langues')->find($value['id']);
  280.             if($langue != null) {
  281.                 $support->addLangue($langue);
  282.             }
  283.         }
  284.         // récupérer les pays du support
  285.         $url 'extranet.escalconsulting.com/information/getPaysSupport.php?id='.$supportId;
  286.         $c curl_init();
  287.         curl_setopt($cCURLOPT_URL$url);
  288.         curl_setopt($cCURLOPT_RETURNTRANSFERtrue);
  289.         curl_setopt($cCURLOPT_HEADERfalse);
  290.         $output curl_exec($c);
  291.         curl_close($c);
  292.         $output json_decode($output);
  293.         $output = (array)$output;
  294.         //verif si support avec pays
  295.         foreach ($output as $key => $value) {
  296.             $value = (array)$value;
  297.             $pays $this->getDoctrine()->getRepository('App:Pays')->find($value['id']);
  298.             if($pays != null) {
  299.                 $support->addPay($pays);
  300.             }
  301.         }
  302.         // importer coordonnees du support dans la base escalnet
  303.         $url 'extranet.escalconsulting.com/information/getSupportCoordonnees.php?id='.$supportId;
  304.         $c curl_init();
  305.         curl_setopt($cCURLOPT_URL$url);
  306.         curl_setopt($cCURLOPT_RETURNTRANSFERtrue);
  307.         curl_setopt($cCURLOPT_HEADERfalse);
  308.         $output curl_exec($c);
  309.         curl_close($c);
  310.         $output json_decode($output);
  311.         $output = (array)$output;
  312.         $coordSupport null;
  313.         //verif si support avec coordonnees
  314.         if(count($output) != 0) {
  315.             $coordSupport = new Coordonnees();
  316.             $coordSupport->setAncienId($output['id']);
  317.             $coordSupport->setRue($output['adresse1']);
  318.             $coordSupport->setComplements($output['adresse2']);
  319.             $coordSupport->setBoitePostale($output['bpostal']);
  320.             $coordSupport->setCodePostal($output['cpostal']);
  321.             $coordSupport->setVille($output['ville']);
  322.             $coordSupport->setPremierTel($output['tel']);
  323.             $coordSupport->setDeuxiemeTel($output['tel_gsm']);
  324.             $coordSupport->setEmail($output['email']);
  325.             $coordSupport->setPremierURL($output['web1']);
  326.             $coordSupport->setDeuxiemeURL($output['web2']);
  327.             if($output['ID_pays']){
  328.                 $pays $this->getDoctrine()->getRepository('App\Entity\Pays')->find($output['ID_pays']);
  329.                 $coordSupport->setPays($pays);
  330.             }
  331.             // verif si coordonnees pas deja existante dans la base
  332.             $verifCoordSup $this->getDoctrine()->getRepository('App:Coordonnees')->findOneBy(['ancienId' => $output['id']]);
  333.             if(!$verifCoordSup){
  334.                 $em->persist($coordSupport);
  335.                 $em->flush();
  336.                 $coordSupport $this->getDoctrine()->getRepository('App:Coordonnees')->findOneBy(['ancienId' => $output['id']]);
  337.             } else {
  338.                 $coordSupport $verifCoordSup;
  339.             }
  340.         }
  341.         // importer le support dans la base escalnet
  342.         $url 'extranet.escalconsulting.com/information/getSupportInformations.php?id='.$supportId;
  343.         $c curl_init();
  344.         curl_setopt($cCURLOPT_URL$url);
  345.         curl_setopt($cCURLOPT_RETURNTRANSFERtrue);
  346.         curl_setopt($cCURLOPT_HEADERfalse);
  347.         $output curl_exec($c);
  348.         curl_close($c);
  349.         $output json_decode($output);
  350.         $output = (array)$output;
  351.         //verif si support récupéré
  352.         if(count($output) != 0) {
  353.             $support->setAncienId($output['id']);
  354.             $output['lib_support'] = str_replace("&#039;""'"$output['lib_support']);
  355.             $output['lib_support'] = str_replace("&amp;""&"$output['lib_support']);
  356.             $support->setNom($output['lib_support']);
  357.             $support->setTelStandard($output['tel_standard']);
  358.             $support->setTelPublicite($output['tel_publicite']);
  359.             $support->setAudience($output['diffusion']);
  360.             $support->setOJD($output['ojd']);
  361.             $support->setPositionnement($output['positionmt']);
  362.             $support->setCible($output['cible']);
  363.             $commentaire $output['contenu'];
  364.             if(strlen($output['contenu']) >= 5000){
  365.                 $deb strlen($output['contenu']) - 4000;
  366.                 $commentaire substr($output['contenu'], $debstrlen($output['contenu']));
  367.             }
  368.             $support->setCommentaires(htmlspecialchars($commentaire));
  369.             if($output['created'] != "0000-00-00" && $output['created'] != null){
  370.                 $creationSup = new \DateTime($output['created']);
  371.                 $support->setCreation($creationSup);
  372.             }
  373.             $support->setPrecisions($output['txt_zonediff']);
  374.             $support->setDisponibilite($output['dispo_reserve']);
  375.             $support->setExempDispo($output['exemp_dispo']);
  376.             $support->setEquivPub($output['equiv_pub']);
  377.             $support->setMediametrie($output['mediametrie']);
  378.             $support->setDateBouclage($output['date_bouclage']);
  379.             $support->setDateParution($output['parution']);
  380.             if($output['ID_etat_sup'] != null){
  381.                 $etatSup $this->getDoctrine()->getRepository('App:Etat')->find($output['ID_etat_sup']);
  382.                 $support->setEtat($etatSup);
  383.             }
  384.             if($output['ID_supp_period'] != null){
  385.                 $periodSUpp $this->getDoctrine()->getRepository('App:Periodicite')->find($output['ID_supp_period']);
  386.                 $support->setPeriodicite($periodSUpp);
  387.             }
  388.             if($output['lib_supp_genre'] != ''){
  389.                 $typeMediaSUpp $this->getDoctrine()->getRepository('App:TypeMedia')->findOneBy(['libelle' => $output['lib_supp_genre']]);
  390.                 $support->setTypeMedia($typeMediaSUpp);
  391.             }
  392.             if($output['ID_type_presse'] != ''){
  393.                 $famille $this->getDoctrine()->getRepository('App:Famille')->find($output['ID_type_presse']);
  394.                 $support->setFamille($famille);
  395.             }
  396.             if($output['ID_zonediff'] != ''){
  397.                 $zonediffSUp $this->getDoctrine()->getRepository('App:ZoneDiffusion')->find($output['ID_zonediff']);
  398.                 $support->setZoneDiffusion($zonediffSUp);
  399.             }
  400.             $support->setCoordonnees($coordSupport);
  401.             if($output['ID_casier'] != ''){
  402.                 $casierSupp $this->getDoctrine()->getRepository('App:Casier')->find($output['ID_casier']);
  403.                 $support->setCasier($casierSupp);
  404.             }
  405.             if($output['ID_type_ojd'] != ''){
  406.                 $typeOjdSup $this->getDoctrine()->getRepository('App:TypeOJD')->find($output['ID_type_ojd']);
  407.                 $support->setTypeOJD($typeOjdSup);
  408.             }
  409.             // verif si support pas deja existant dans la base
  410.             $verifSupport $this->getDoctrine()->getRepository('App:Support')->findOneBy(['ancienId' => $output['id']]);
  411.             if(!$verifSupport){
  412.                 $em->persist($support);
  413.                 $em->flush();
  414.             }
  415.         }
  416.         return new JsonResponse('ok');
  417.     }
  418.     /**
  419.      * @Route("/api/parutions/auteurs/intranet/importer/tout/{contactIdsSelect}", methods={"GET"}, name="auteurs_parution_importer_tout")
  420.      */
  421.     public function importerAuteursParution($contactIdsSelectEntityManagerInterface $em)
  422.     {
  423.         $listeIDContacts '';
  424.         // passer les ids des contacts en tableau
  425.         $contactsIDList explode(","$contactIdsSelect);
  426.         foreach ($contactsIDList as $key => $contactId) {
  427.             if ($contactId != "") {
  428.                 // créer objet contact
  429.                 $contact = new Contact();
  430.                 // importer fonction du contact dans la base escalnet
  431.                 $url 'extranet.escalconsulting.com/information/getContactFonction.php?id='.$contactId;
  432.                 $c curl_init();
  433.                 curl_setopt($cCURLOPT_URL$url);
  434.                 curl_setopt($cCURLOPT_RETURNTRANSFERtrue);
  435.                 curl_setopt($cCURLOPT_HEADERfalse);
  436.                 $output curl_exec($c);
  437.                 curl_close($c);
  438.                 $output json_decode($output);
  439.                 $output = (array)$output;
  440.                 $fonction null;
  441.                 //verif si contact avec fonction
  442.                 if(count($output) != 0) {
  443.                     $fonction = new Fonction();
  444.                     $fonction->setAncienId($output['id']);
  445.                     $fonction->setLibelle($output['lib']);
  446.                     // verif si fonction pas deja existante dans la base
  447.                     $verifFonction $this->getDoctrine()->getRepository('App:Fonction')->findOneBy(['ancienId' => $output['id']]);
  448.                     if(!$verifFonction){
  449.                         $em->persist($fonction);
  450.                         $em->flush();
  451.                         $fonction $this->getDoctrine()->getRepository('App:Fonction')->findOneBy(['ancienId' => $output['id']]);
  452.                     } else {
  453.                         $fonction $verifFonction;
  454.                     }
  455.                 }
  456.                 // importer categories générales du contact dans la base escalnet
  457.                 $url 'extranet.escalconsulting.com/information/getContactCategoriesGenerales.php?id='.$contactId;
  458.                 $c curl_init();
  459.                 curl_setopt($cCURLOPT_URL$url);
  460.                 curl_setopt($cCURLOPT_RETURNTRANSFERtrue);
  461.                 curl_setopt($cCURLOPT_HEADERfalse);
  462.                 $output curl_exec($c);
  463.                 curl_close($c);
  464.                 $output json_decode($output);
  465.                 //verif si contact avec categ
  466.                 if(count($output) != 0) {
  467.                     foreach ($output as $key => $value) {
  468.                         $value = (array)$value;
  469.                         $categ = new CategoriesGenerales();
  470.                         $categ->setAncienId($value['id']);
  471.                         $categ->setLibelle($value['lib']);
  472.                         $verifCateg $this->getDoctrine()->getRepository('App:CategoriesGenerales')->findOneBy(['ancienId' => $value['id']]);
  473.                         // verif si categ pas deja existante dans la base
  474.                         if(!$verifCateg){
  475.                             $em->persist($categ);
  476.                             $em->flush();
  477.                             $categ $this->getDoctrine()->getRepository('App:CategoriesGenerales')->findOneBy(['ancienId' => $value['id']]);
  478.                         } else {
  479.                             $categ $verifCateg;
  480.                         }
  481.                         $contact->addCategoriesGenerale($categ);
  482.                     }
  483.                 }
  484.                 // importer sous categories générales du contact dans la base escalnet
  485.                 $url 'extranet.escalconsulting.com/information/getContactSousCategoriesGenerales.php?id='.$contactId;
  486.                 $c curl_init();
  487.                 curl_setopt($cCURLOPT_URL$url);
  488.                 curl_setopt($cCURLOPT_RETURNTRANSFERtrue);
  489.                 curl_setopt($cCURLOPT_HEADERfalse);
  490.                 $output curl_exec($c);
  491.                 curl_close($c);
  492.                 $output json_decode($output);
  493.                 //verif si contact avec souscateg
  494.                 if(count($output) != 0) {
  495.                     foreach ($output as $key => $value) {
  496.                         $value = (array)$value;
  497.                         $sousCateg = new SousCategoriesGenerales();
  498.                         $sousCateg->setAncienId($value['id']);
  499.                         $sousCateg->setLibelle($value['lib']);
  500.                         $verifSousCateg $this->getDoctrine()->getRepository('App:SousCategoriesGenerales')->findOneBy(['ancienId' => $value['id']]);
  501.                         // verif si souscateg pas deja existante dans la base
  502.                         if(!$verifSousCateg){
  503.                             $em->persist($sousCateg);
  504.                             $em->flush();
  505.                             $sousCateg $this->getDoctrine()->getRepository('App:SousCategoriesGenerales')->findOneBy(['ancienId' => $value['id']]);
  506.                         } else {
  507.                             $sousCateg $verifSousCateg;
  508.                         }
  509.                         $contact->addSousCategoriesGenerale($sousCateg);
  510.                     }
  511.                 }
  512.                 // importer coordonnees du contact dans la base escalnet
  513.                 $url 'extranet.escalconsulting.com/information/getContactCoordonnees.php?id='.$contactId;
  514.                 $c curl_init();
  515.                 curl_setopt($cCURLOPT_URL$url);
  516.                 curl_setopt($cCURLOPT_RETURNTRANSFERtrue);
  517.                 curl_setopt($cCURLOPT_HEADERfalse);
  518.                 $output curl_exec($c);
  519.                 curl_close($c);
  520.                 $output json_decode($output);
  521.                 $output = (array)$output;
  522.                 $coord null;
  523.                 //verif si contact avec coordonnees
  524.                 if(count($output) != 0) {
  525.                     $coord = new Coordonnees();
  526.                     $coord->setAncienId($output['id']);
  527.                     $coord->setRue($output['adresse1']);
  528.                     $coord->setComplements($output['adresse2']);
  529.                     $coord->setBoitePostale($output['bpostal']);
  530.                     $coord->setCodePostal($output['cpostal']);
  531.                     $coord->setVille($output['ville']);
  532.                     $coord->setPremierTel($output['tel']);
  533.                     $coord->setDeuxiemeTel($output['tel_gsm']);
  534.                     $coord->setEmail($output['email']);
  535.                     $coord->setPremierURL($output['web1']);
  536.                     $coord->setDeuxiemeURL($output['web2']);
  537.                     if($output['ID_pays']){
  538.                         $pays $this->getDoctrine()->getRepository('App\Entity\Pays')->find($output['ID_pays']);
  539.                         $coord->setPays($pays);
  540.                     }
  541.                     // verif si coordonnees pas deja existante dans la base
  542.                     $verifCoord $this->getDoctrine()->getRepository('App:Coordonnees')->findOneBy(['ancienId' => $output['id']]);
  543.                     if(!$verifCoord){
  544.                         $em->persist($coord);
  545.                         $em->flush();
  546.                         $coord $this->getDoctrine()->getRepository('App:Coordonnees')->findOneBy(['ancienId' => $output['id']]);
  547.                     } else {
  548.                         $coord $verifCoord;
  549.                     }
  550.                 }
  551.                 // importer categorie de l'organisation du contact dans la base escalnet
  552.                 $url 'extranet.escalconsulting.com/information/getOrganisationCategoriesGenerales.php?id='.$contactId;
  553.                 $c curl_init();
  554.                 curl_setopt($cCURLOPT_URL$url);
  555.                 curl_setopt($cCURLOPT_RETURNTRANSFERtrue);
  556.                 curl_setopt($cCURLOPT_HEADERfalse);
  557.                 $output curl_exec($c);
  558.                 curl_close($c);
  559.                 $output json_decode($output);
  560.                 $output = (array)$output;
  561.                 $categOrg null;
  562.                 //verif si organisation avec categ
  563.                 if(count($output) != 0) {
  564.                     $categOrg = new CategoriesGenerales();
  565.                     $categOrg->setAncienId($output['id']);
  566.                     $categOrg->setLibelle($output['lib']);
  567.                     // verif si categ pas deja existante dans la base
  568.                     $verifCategOrg $this->getDoctrine()->getRepository('App:CategoriesGenerales')->findOneBy(['ancienId' => $output['id']]);
  569.                     if(!$verifCategOrg){
  570.                         $em->persist($categOrg);
  571.                         $em->flush();
  572.                         $categOrg $this->getDoctrine()->getRepository('App:CategoriesGenerales')->findOneBy(['ancienId' => $output['id']]);
  573.                     } else {
  574.                         $categOrg $verifCategOrg;
  575.                     }
  576.                 }
  577.                 // importer coordonnees de l'organisation du contact dans la base escalnet
  578.                 $url 'extranet.escalconsulting.com/information/getOrganisationCoordonnees.php?id='.$contactId;
  579.                 $c curl_init();
  580.                 curl_setopt($cCURLOPT_URL$url);
  581.                 curl_setopt($cCURLOPT_RETURNTRANSFERtrue);
  582.                 curl_setopt($cCURLOPT_HEADERfalse);
  583.                 $output curl_exec($c);
  584.                 curl_close($c);
  585.                 $output json_decode($output);
  586.                 $output = (array)$output;
  587.                 $coordOrg null;
  588.                 //verif si organisation avec coordonnees
  589.                 if(count($output) != 0) {
  590.                     $coordOrg = new Coordonnees();
  591.                     $coordOrg->setAncienId($output['id']);
  592.                     $coordOrg->setRue($output['adresse1']);
  593.                     $coordOrg->setComplements($output['adresse2']);
  594.                     $coordOrg->setBoitePostale($output['bpostal']);
  595.                     $coordOrg->setCodePostal($output['cpostal']);
  596.                     $coordOrg->setVille($output['ville']);
  597.                     $coordOrg->setPremierTel($output['tel']);
  598.                     $coordOrg->setDeuxiemeTel($output['tel_gsm']);
  599.                     $coordOrg->setEmail($output['email']);
  600.                     $coordOrg->setPremierURL($output['web1']);
  601.                     $coordOrg->setDeuxiemeURL($output['web2']);
  602.                     if($output['ID_pays']){
  603.                         $pays $this->getDoctrine()->getRepository('App\Entity\Pays')->find($output['ID_pays']);
  604.                         $coordOrg->setPays($pays);
  605.                     }
  606.                     // verif si coordonnees pas deja existante dans la base
  607.                     $verifCoordOrg $this->getDoctrine()->getRepository('App:Coordonnees')->findOneBy(['ancienId' => $output['id']]);
  608.                     if(!$verifCoordOrg){
  609.                         $em->persist($coordOrg);
  610.                         $em->flush();
  611.                         $coordOrg $this->getDoctrine()->getRepository('App:Coordonnees')->findOneBy(['ancienId' => $output['id']]);
  612.                     } else {
  613.                         $coordOrg $verifCoordOrg;
  614.                     }
  615.                 }
  616.                 // importer dirigeant de l'organisation du contact dans la base escalnet
  617.                 $url 'extranet.escalconsulting.com/information/getOrganisationDirigeant.php?id='.$contactId;
  618.                 $c curl_init();
  619.                 curl_setopt($cCURLOPT_URL$url);
  620.                 curl_setopt($cCURLOPT_RETURNTRANSFERtrue);
  621.                 curl_setopt($cCURLOPT_HEADERfalse);
  622.                 $output curl_exec($c);
  623.                 curl_close($c);
  624.                 $output json_decode($output);
  625.                 $output = (array)$output;
  626.                 //verif si organisation avec dirigeant
  627.                 $dirigeant null;
  628.                 if(count($output) != 0) {
  629.                     $dirigeant = new Contact();
  630.                     $dirigeant->setAncienId($output['id']);
  631.                     $dirigeant->setNom($output['nom']);
  632.                     $dirigeant->setPrenom($output['prenom']);
  633.                     $dirigeant->setModeEnvoiPref($output['ID_mode_envoi']);
  634.                     $dirigeant->setPiecesJointes($output['piecejointe']);
  635.                     $commentaire $output['comments'];
  636.                     if(strlen($output['comments']) >= 5000){
  637.                         $deb strlen($output['comments']) - 4000;
  638.                         $commentaire substr($output['comments'], $debstrlen($output['comments']));
  639.                     }
  640.                     $dirigeant->setCommentaires(htmlspecialchars($commentaire));
  641.                     $civiDir $this->getDoctrine()->getRepository('App:Civilite')->findOneBy(['ancienId' => $output['civilite']]);
  642.                     $dirigeant->setCivilite($civiDir);
  643.                     if($output['ID_type'] != null){
  644.                         $genreDir $this->getDoctrine()->getRepository('App:Genre')->find($output['ID_type']);
  645.                         $dirigeant->setGenre($genreDir);
  646.                     }
  647.                     // verif si dirigeant pas deja existant dans la base
  648.                     $verifDirigeant $this->getDoctrine()->getRepository('App:Contact')->findOneBy(['ancienId' => $output['id']]);
  649.                     if (!$verifDirigeant) {
  650.                         $em->persist($dirigeant);
  651.                         $em->flush();
  652.                         $dirigeant $this->getDoctrine()->getRepository('App:Contact')->findOneBy(['ancienId' => $output['id']]);
  653.                     } else {
  654.                         $dirigeant $verifDirigeant;
  655.                     }
  656.                 }
  657.                 // importer l'organisation du contact dans la base escalnet
  658.                 $url 'extranet.escalconsulting.com/information/getOrganisationInformations.php?id='.$contactId;
  659.                 $c curl_init();
  660.                 curl_setopt($cCURLOPT_URL$url);
  661.                 curl_setopt($cCURLOPT_RETURNTRANSFERtrue);
  662.                 curl_setopt($cCURLOPT_HEADERfalse);
  663.                 $output curl_exec($c);
  664.                 curl_close($c);
  665.                 $output json_decode($output);
  666.                 $output = (array)$output;
  667.                 $organisation null;
  668.                 //verif si contact a une organisation
  669.                 if(count($output) != 0) {
  670.                     $organisation = new Organisation();
  671.                     $organisation->setAncienId($output['id']);
  672.                     $output['nom_soc'] = str_replace("&#039;""'"$output['nom_soc']);
  673.                     $output['nom_soc'] = str_replace("&amp;""&"$output['nom_soc']);
  674.                     $organisation->setNom($output['nom_soc']);
  675.                     $organisation->setSiren($output['siren_soc']);
  676.                     $organisation->setCapital($output['capital_soc']);
  677.                     $organisation->setEffectif($output['effectif_soc']);
  678.                     $organisation->setImplantation($output['implantation_soc']);
  679.                     $organisation->setCategorieGenerale($categOrg);
  680.                     $organisation->setCoordonnees($coordOrg);
  681.                     $organisation->setDirigeant($dirigeant);
  682.                     if($output['ID_formjuri_soc'] != null){
  683.                         $formeJOrg $this->getDoctrine()->getRepository('App:FormeJuridique')->find($output['ID_formjuri_soc']);
  684.                         $organisation->setFormeJuridique($formeJOrg);
  685.                     }
  686.                     if($output['lib_type'] != ''){
  687.                         $genreOrg $this->getDoctrine()->getRepository('App:Genre')->findOneBy(['libelle' => $output['lib_type']]);
  688.                         $organisation->setGenre($genreOrg);
  689.                     }
  690.                     if($output['datecreation_soc'] != "0000-00-00" && $output['datecreation_soc'] != null){
  691.                         $dateCreOrg = new \DateTime($output['datecreation_soc']);
  692.                         $organisation->setDateCreation($dateCreOrg);
  693.                     }
  694.                     if($output['created'] != "0000-00-00" && $output['created'] != null){
  695.                         $creationOrg = new \DateTime($output['created']);
  696.                         $organisation->setCreation($creationOrg);
  697.                     }
  698.                     // verif si organisation pas deja existant dans la base
  699.                     $verifOrga $this->getDoctrine()->getRepository('App:Organisation')->findOneBy(['ancienId' => $output['id']]);
  700.                     if (!$verifOrga) {
  701.                         $em->persist($organisation);
  702.                         $em->flush();
  703.                         $organisation $this->getDoctrine()->getRepository('App:Organisation')->findOneBy(['ancienId' => $output['id']]);
  704.                     } else {
  705.                         $organisation$verifOrga;
  706.                     }
  707.                 }
  708.                 // récupérer les langues du contact
  709.                 $url 'extranet.escalconsulting.com/information/getLanguesContact.php?id='.$contactId;
  710.                 $c curl_init();
  711.                 curl_setopt($cCURLOPT_URL$url);
  712.                 curl_setopt($cCURLOPT_RETURNTRANSFERtrue);
  713.                 curl_setopt($cCURLOPT_HEADERfalse);
  714.                 $output curl_exec($c);
  715.                 curl_close($c);
  716.                 $output json_decode($output);
  717.                 $output = (array)$output;
  718.                 //verif si contact avec langues
  719.                 foreach ($output as $key => $value) {
  720.                     $value = (array)$value;
  721.                     $langue $this->getDoctrine()->getRepository('App:Langues')->find($value['id']);
  722.                     if($langue != null) {
  723.                         $contact->addLangue($langue);
  724.                     }
  725.                 }
  726.                 // récupérer les pays du contact
  727.                 $url 'extranet.escalconsulting.com/information/getPaysContact.php?id='.$contactId;
  728.                 $c curl_init();
  729.                 curl_setopt($cCURLOPT_URL$url);
  730.                 curl_setopt($cCURLOPT_RETURNTRANSFERtrue);
  731.                 curl_setopt($cCURLOPT_HEADERfalse);
  732.                 $output curl_exec($c);
  733.                 curl_close($c);
  734.                 $output json_decode($output);
  735.                 $output = (array)$output;
  736.                 //verif si contact avec pays
  737.                 foreach ($output as $key => $value) {
  738.                     $value = (array)$value;
  739.                     $pays $this->getDoctrine()->getRepository('App:Pays')->find($value['id']);
  740.                     if($pays != null) {
  741.                         $contact->addPay($pays);
  742.                     }
  743.                 }
  744.                 // importation contact dans la base escalnet
  745.                 $url 'extranet.escalconsulting.com/information/getContactInformations.php?id='.$contactId;
  746.                 $c curl_init();
  747.                 curl_setopt($cCURLOPT_URL$url);
  748.                 curl_setopt($cCURLOPT_RETURNTRANSFERtrue);
  749.                 curl_setopt($cCURLOPT_HEADERfalse);
  750.                 $output curl_exec($c);
  751.                 curl_close($c);
  752.                 $output json_decode($output);
  753.                 $output = (array)$output;
  754.                 //verif si contact récupéré
  755.                 if(count($output) != 0) {
  756.                     $contact->setAncienId($output['id']);
  757.                     $contact->setPrenom($output['prenom']);
  758.                     $contact->setNom($output['nom']);
  759.                     $contact->setFonction($fonction);
  760.                     $contact->setCoordonnees($coord);
  761.                     $contact->setModeEnvoiPref($output['ID_mode_envoi']);
  762.                     $contact->setPiecesJointes($output['piecejointe']);
  763.                     $commentaire $output['comments'];
  764.                     if(strlen($output['comments']) >= 5000){
  765.                         $deb strlen($output['comments']) - 4000;
  766.                         $commentaire substr($output['comments'], $debstrlen($output['comments']));
  767.                     }
  768.                     $contact->setCommentaires(htmlspecialchars($commentaire));
  769.                     $civilite $this->getDoctrine()->getRepository('App:Civilite')->findOneBy(['ancienId' => $output['civilite']]);
  770.                     $contact->setCivilite($civilite);
  771.                     $genre $this->getDoctrine()->getRepository('App:Genre')->findOneBy(['libelle' => $output['lib_type']]);
  772.                     $contact->setGenre($genre);
  773.                     if($output['created'] != "0000-00-00" && $output['created'] != null){
  774.                         $creationCont = new \DateTime($output['created']);
  775.                         $contact->setCreation($creationCont);
  776.                     }
  777.                     if($output['date_conclusion'] != "0000-00-00" && $output['date_conclusion'] != null){
  778.                         $dateConc = new \DateTime($output['date_conclusion']);
  779.                         $contact->setDateConclusion($dateConc);
  780.                     }
  781.                     $contact->setObjet($output['objet']);
  782.                     // verif si contact pas deja existant dans la base
  783.                     $verifContact $this->getDoctrine()->getRepository('App:Contact')->findOneBy(['ancienId' => $output['id']]);
  784.                     if(!$verifContact){
  785.                         $em->persist($contact);
  786.                         $em->flush();
  787.                         $contact $this->getDoctrine()->getRepository('App:Contact')->findOneBy(['ancienId' => $contact->getAncienId()]);
  788.                     } else {
  789.                         $contact $verifContact;
  790.                     }
  791.                     $listeIDContacts $listeIDContacts.$contact->getId().',';
  792.                 }
  793.             }
  794.         }
  795.         $tab = [];
  796.         foreach ($contactsIDList as $key => $contactId){
  797.             if($contactId != ""){
  798.                 $tab['contacts'] = $listeIDContacts;
  799.             }
  800.         }
  801.         return new JsonResponse($tab);
  802.     }
  803.     /**
  804.      * @Route("/api/parutions/associer/intranet/contact/liste/{contactId}/{listeId}", methods={"GET"}, name="associer_auteur_liste_parution")
  805.      */
  806.     public function associerContactAuteurListeParution ($contactId$listeId)
  807.     {
  808.         $url 'extranet.escalconsulting.com/information/addContactListe.php?idContact='.$contactId."&id=".$listeId;
  809.         $c curl_init();
  810.         curl_setopt($cCURLOPT_URL$url);
  811.         curl_setopt($cCURLOPT_RETURNTRANSFERtrue);
  812.         curl_setopt($cCURLOPT_HEADERfalse);
  813.         $output curl_exec($c);
  814.         curl_close($c);
  815.         $output json_decode($output);
  816.         $response = new JsonResponse($output);
  817.         $response->headers->set('Content-Type''application/json');
  818.         return $response;
  819.     }
  820.     /**
  821.      * @Route("/api/parutions/importation/copie/parution/{parutionId}/{ancienId}", methods={"GET"}, name="parution_importer_copie_intranet")
  822.      */
  823.     public function parutionImporterCopie ($parutionId$ancienIdEntityManagerInterface $em)
  824.     {
  825.         // récupérer données parution
  826.         $parution $this->getDoctrine()->getRepository('App:Parution')->find($parutionId);
  827.         // récupérer ancien id auteur
  828.         $authUserId 0;
  829.         if($parution->getAuteur() != null) {
  830.             $nomPrenom $parution->getAuteur()->getUser()->getPrenom().".".$parution->getAuteur()->getUser()->getNom();
  831.             if (strpos($nomPrenom,' ') !== false) {
  832.                 $nomPrenom str_replace(' ','.'$nomPrenom);
  833.             }
  834.             $url 'extranet.escalconsulting.com/information/getMembreByNom.php?name='.$nomPrenom;
  835.             $c curl_init();
  836.             curl_setopt($cCURLOPT_URL$url);
  837.             curl_setopt($cCURLOPT_RETURNTRANSFERtrue);
  838.             curl_setopt($cCURLOPT_HEADERfalse);
  839.             $output curl_exec($c);
  840.             curl_close($c);
  841.             $output json_decode($output);
  842.             $output = (array)$output;
  843.             $authUserId $output['id'];
  844.         }
  845.         // récupérer nom
  846.         $titreParution $parution->getNom();
  847.         // récupérer date
  848.         if ($parution->getDate() != null) {
  849.             $dateParution $parution->getDate()->format('Y-m-d H:i');
  850.         } else {
  851.             $dateParution '';
  852.         }
  853.         // récupérer résume
  854.         $citationParution $parution->getResume();
  855.         // récupérer commentaires
  856.         $commentaire $parution->getCommentaire();
  857.         // récupérer id theme
  858.         if($parution->getTheme() != null){
  859.             $idThemeParution $parution->getTheme()->getAncienId();
  860.         } else {
  861.             $idThemeParution 0;
  862.         }
  863.         // récupérer qualification
  864.         $qualificationParution $parution->getQualification();
  865.         // récupérer coefficient
  866.         $coefficientParution $parution->getCoefficient();
  867.         // récupérer id type retombee
  868.         if($parution->getTypeRetombee() != null){
  869.             $idTypeRetombe $parution->getTypeRetombee()->getId();
  870.         } else {
  871.             $idTypeRetombe 0;
  872.         }
  873.         // récupérer id type annonce
  874.         if($parution->getTypeAnnonce() != null){
  875.             $idTypeAnnonce $parution->getTypeAnnonce()->getId();
  876.         } else {
  877.             $idTypeAnnonce 0;
  878.         }
  879.         // récupérer id support
  880.         if($parution->getSupport() != null){
  881.             $idSupportParution $parution->getSupport()->getAncienId();
  882.         } else {
  883.             $idSupportParution 0;
  884.         }
  885.         // récupérer id client
  886.         if($parution->getClient() != null){
  887.             $idclientParution $parution->getClient()->getAncienId();
  888.         } else {
  889.             $idclientParution 0;
  890.         }
  891.         // récupérer id format
  892.         if($parution->getFormat() != null){
  893.             $idFormatParution $parution->getFormat()->getId();
  894.         } else {
  895.             $idFormatParution 0;
  896.         }
  897.         // récupérer id suite itw
  898.         $idItvParution 0;
  899.         if($parution->getSuiteItw() != null){
  900.             $idItvParution $parution->getSuiteItw()->getAncienId();
  901.         } else {
  902.             $idItvParution 0;
  903.         }
  904.         // récupérer id suite suivi
  905.         $idSuiviParution 0;
  906.         if($parution->getSuiteSuivi() != null){
  907.             $idSuiviParution $parution->getSuiteSuivi()->getAncienId();
  908.         } else {
  909.             $idSuiviParution 0;
  910.         }
  911.         // récupérer id suite communique
  912.         $idCommuniqueParution 0;
  913.         if($parution->getSuiteCommunique() != null){
  914.             $idCommuniqueParution $parution->getSuiteCommunique()->getAncienId();
  915.         } else {
  916.             $idCommuniqueParution 0;
  917.         }
  918.         // récupérer id suite campagne concurrente
  919.         if($parution->getCampagne() != null){
  920.             $libelleCampagne $parution->getCampagne()->getLibelle();
  921.             $campagne $this->getDoctrine()->getRepository('App:CampagneParution')->findOneBy(['libelle' => $libelleCampagne]);
  922.             $idCampagneParution $campagne->getId();
  923.         } else {
  924.             $idCampagneParution 0;
  925.         }
  926.         // récupérer divers
  927.         $diversParution $this->getDoctrine()->getRepository('App:DiversParution')->findOneBy(['parution' => $parutionId]);
  928.         // récupérer photo
  929.         if($diversParution->getPhoto()) {
  930.             $photo 'O';
  931.         } else {
  932.             $photo 'N';
  933.         }
  934.         // récupérer illustration
  935.         if($diversParution->getIllustration()) {
  936.             $illustration 'O';
  937.         } else {
  938.             $illustration 'N';
  939.         }
  940.         // récupérer logo
  941.         if($diversParution->getLogo()) {
  942.             $logo 'O';
  943.         } else {
  944.             $logo 'N';
  945.         }
  946.         // récupérer urlclient
  947.         if($diversParution->getUrlClient()) {
  948.             $urlClient 'O';
  949.         } else {
  950.             $urlClient 'N';
  951.         }
  952.         // récupérer agenda
  953.         if($diversParution->getAgenda()) {
  954.             $agenda 'O';
  955.         } else {
  956.             $agenda 'N';
  957.         }
  958.         // récupérer graphique
  959.         if($diversParution->getGraphique()) {
  960.             $graphique 'O';
  961.         } else {
  962.             $graphique 'N';
  963.         }
  964.         // récupérer tableau
  965.         if($diversParution->getTableau()) {
  966.             $tableau 'O';
  967.         } else {
  968.             $tableau 'N';
  969.         }
  970.         // récupérer nomination
  971.         if($diversParution->getNomination()) {
  972.             $nomination 'O';
  973.         } else {
  974.             $nomination 'N';
  975.         }
  976.         // récupérer courriers des lecteurs
  977.         if($diversParution->getCourrierLecteur()) {
  978.             $cLecteur 'O';
  979.         } else {
  980.             $cLecteur 'N';
  981.         }
  982.         // récupérer pressroom
  983.         if($diversParution->getPressroom()) {
  984.             $pressroom 'O';
  985.         } else {
  986.             $pressroom 'N';
  987.         }
  988.         // récupérer mailing
  989.         if($diversParution->getMailing()) {
  990.             $mailing 'O';
  991.         } else {
  992.             $mailing 'N';
  993.         }
  994.         // récupérer mail créé
  995.         if($diversParution->getMailCree()) {
  996.             $mailCree 'O';
  997.         } else {
  998.             $mailCree 'N';
  999.         }
  1000.         // récupérer imprimer
  1001.         if($diversParution->getImprimer()) {
  1002.             $imprimer 'O';
  1003.         } else {
  1004.             $imprimer 'N';
  1005.         }
  1006.         // récupérer bestOfClient
  1007.         if($diversParution->getBestOfClient()) {
  1008.             $bestOfClient 'O';
  1009.         } else {
  1010.             $bestOfClient 'N';
  1011.         }
  1012.         // récupérer bestOfGeneral
  1013.         if($diversParution->getBestOfGeneral()) {
  1014.             $bestOfGeneral 'O';
  1015.         } else {
  1016.             $bestOfGeneral 'N';
  1017.         }
  1018.         // récupérer paruFacebook
  1019.         if($diversParution->getParuFb()) {
  1020.             $paruFacebook 'O';
  1021.         } else {
  1022.             $paruFacebook 'N';
  1023.         }
  1024.         // récupérer paruTwitter
  1025.         if($diversParution->getParuTw()) {
  1026.             $paruTwitter 'O';
  1027.         } else {
  1028.             $paruTwitter 'N';
  1029.         }
  1030.         // récupérer paruFacebookEscal
  1031.         if($diversParution->getParuFbEscal()) {
  1032.             $paruFacebookEscal 'O';
  1033.         } else {
  1034.             $paruFacebookEscal 'N';
  1035.         }
  1036.         // récupérer paruTwitterEscal
  1037.         if($diversParution->getParuTwEscal()) {
  1038.             $paruTwitterEscal 'O';
  1039.         } else {
  1040.             $paruTwitterEscal 'N';
  1041.         }
  1042.         // récupérer création
  1043.         if ($parution->getCreation() != null) {
  1044.             $creationParution $parution->getCreation()->format('Y-m-d H:i');
  1045.         } else {
  1046.             $creationParution '';
  1047.         }
  1048.         // récupérer modification
  1049.         if ($parution->getModification() != null) {
  1050.             $modificationParution $parution->getModification()->format('Y-m-d H:i');
  1051.         } else {
  1052.             $modificationParution '';
  1053.         }
  1054.         try
  1055.         {
  1056.             $bdd = new PDO('mysql:host=185.126.230.125;dbname=escal_web;charset=utf8''escalprod''skl001');
  1057.         }
  1058.         catch (Exception $e)
  1059.         {
  1060.             die('Erreur : ' $e->getMessage());
  1061.         }
  1062.         // si ce n'est pas une mise à jour
  1063.         if ($ancienId == 0) {
  1064.             // on insère la parution
  1065.             if (strpos($titreParution,'"') !== false) {
  1066.                 $titreParution str_replace('"','\"'$titreParution);
  1067.             }
  1068.             if (strpos($citationParution,'"') !== false) {
  1069.                 $citationParution str_replace('"','\"'$citationParution);
  1070.             }
  1071.             if (strpos($qualificationParution,'"') !== false) {
  1072.                 $qualificationParution str_replace('"','\"'$qualificationParution);
  1073.             }
  1074.             if (strpos($coefficientParution,'"') !== false) {
  1075.                 $coefficientParution str_replace('"','\"'$coefficientParution);
  1076.             }
  1077.             $query 'INSERT INTO `ecw_parutions` (`nom_parution`,`date_parution`,`citation_parution`,`IDtheme_parution`,`qualification_parution`,`IDtype_retombe`,`IDtype_annonce`,`IDsupport_parution`, `IDclient_parution`,`IDformat_parution`,`IDsuiteitv_parution`,`IDsuitesuiviaction_parution`,`IDcommunique_parution`,`IDcampagne_parution`,`commentaire_parution`,`photo_parution`, `illustration_parution`,`logo_parution`,`urlclient_parution`,`agenda_parution`,`graphique_parution`,`tableau_parution`,`nomination_parution`, `clecteur_parution`,`pressroom_parution`,`mailing_parution`,`mailcree_parution`,`imprimer_parution`,`nbimpression_parution`,`imprimante_parution`, `best_of_client`,`best_of_general`,`IDauteur_parution`,`creation_parution`,`modification_parution`,`coefficient`,`lien_RS`,`paru_facebook`, `paru_twitter`,`paru_facebook_escal`,`paru_twitter_escal`) '
  1078.                 .' VALUES ("'.$titreParution.'","'.$dateParution.'","'.$citationParution.'",'.$idThemeParution.',"'.$qualificationParution.'",'.$idTypeRetombe.','.$idTypeAnnonce.','.$idSupportParution.','.$idclientParution.','.$idFormatParution.','.$idItvParution.','.$idSuiviParution.','.$idCommuniqueParution.','.$idCampagneParution.',"'.$commentaire.'","'.$photo.'","'.$illustration.'","'.$logo.'","'.$urlClient.'","'.$agenda.'","'.$graphique.'","'.$tableau.'","'.$nomination.'","'.$cLecteur.'","'.$pressroom.'","'.$mailing.'","'.$mailCree.'","'.$imprimer.'", 0, "","'.$bestOfClient.'","'.$bestOfGeneral.'",'.$authUserId.',"'.$creationParution.'","'.$modificationParution.'","'.$coefficientParution.'","","'.$paruFacebook.'","'.$paruTwitter.'","'.$paruFacebookEscal.'","'.$paruTwitterEscal.'")';
  1079.             $retour $bdd->exec($query);
  1080.             if (!$retour) {
  1081.                 echo 'Problème lors de l\'insertion de la parution';
  1082.             }
  1083.             // on récupère la parution nouvellement créée
  1084.             $query 'SELECT MAX(`ID_parution`) as parutionId FROM `ecw_parutions`';
  1085.             $reponse $bdd->query($query);
  1086.             while ($row $reponse->fetch()) {
  1087.                 $parutionAncienId $row['parutionId'];
  1088.             }
  1089.             $reponse->closeCursor();
  1090.             // insérer asso parution contact
  1091.             $parutionContacts $this->getDoctrine()->getRepository('App:ParutionContact')->findBy(['parution' => $parutionId]);
  1092.             foreach ($parutionContacts as $parutionContact) {
  1093.                 $query2 'INSERT INTO `ecw_contact_parution_asso` (`ID_contact`,`ID_parution`) '
  1094.                     .' VALUES ('.$parutionContact->getContact()->getAncienId().','.$parutionAncienId.')';
  1095.                 $retour $bdd->exec($query2);
  1096.                 if (!$retour) {
  1097.                     echo 'Problème lors de l\'insertion de l\'asso parution contact';
  1098.                 }
  1099.             }
  1100.             return new JsonResponse($parutionAncienId);
  1101.         }
  1102.         // si c'est une mise à jour
  1103.         else if ($ancienId != 0) {
  1104.             // on met à jour la parution
  1105.             if (strpos($titreParution,'"') !== false) {
  1106.                 $titreParution str_replace('"','\"'$titreParution);
  1107.             }
  1108.             if (strpos($citationParution,'"') !== false) {
  1109.                 $citationParution str_replace('"','\"'$citationParution);
  1110.             }
  1111.             if (strpos($qualificationParution,'"') !== false) {
  1112.                 $qualificationParution str_replace('"','\"'$qualificationParution);
  1113.             }
  1114.             if (strpos($coefficientParution,'"') !== false) {
  1115.                 $coefficientParution str_replace('"','\"'$coefficientParution);
  1116.             }
  1117.             $query 'UPDATE `ecw_parutions` SET `nom_parution`="'.$titreParution.'", `date_parution`="'.$dateParution.'", `citation_parution`="'.$citationParution.'", `IDtheme_parution`='.$idThemeParution.', `qualification_parution`="'.$qualificationParution.'", `IDtype_retombe`='.$idTypeRetombe.', `IDtype_annonce`='.$idTypeAnnonce.', `IDsupport_parution`='.$idSupportParution.', `IDclient_parution`='.$idclientParution.', `IDformat_parution`='.$idFormatParution.', `IDsuiteitv_parution`='.$idItvParution.', `IDsuitesuiviaction_parution`='.$idSuiviParution.', `IDcommunique_parution`='.$idCommuniqueParution.', `IDcampagne_parution`='.$idCampagneParution.', `commentaire_parution`="'.$commentaire.'", `photo_parution`="'.$photo.'", `illustration_parution`="'.$illustration.'",`logo_parution`="'.$logo.'", `urlclient_parution`="'.$urlClient.'", `agenda_parution`="'.$agenda.'", `graphique_parution`="'.$graphique.'", `tableau_parution`="'.$tableau.'", `nomination_parution`="'.$nomination.'",  `clecteur_parution`="'.$cLecteur.'", `pressroom_parution`="'.$pressroom.'", `mailing_parution`="'.$mailing.'", `mailcree_parution`="'.$mailCree.'", `imprimer_parution`="'.$imprimer.'", `nbimpression_parution`= 0, `imprimante_parution`= "", `best_of_client`="'.$bestOfClient.'", `best_of_general`="'.$bestOfGeneral.'",`IDauteur_parution`='.$authUserId.', `creation_parution`="'.$creationParution.'", `modification_parution`="'.$modificationParution.'", `coefficient`="'.$coefficientParution.'", `lien_RS`= "", `paru_facebook`="'.$paruFacebook.'", `paru_twitter`="'.$paruTwitter.'", `paru_facebook_escal`="'.$paruFacebookEscal.'", `paru_twitter_escal`="'.$paruTwitterEscal.'" WHERE `ID_parution`='.$ancienId;
  1118.             $retour $bdd->exec($query);
  1119.             // maj asso parution contact
  1120.             $parutionContacts $this->getDoctrine()->getRepository('App:ParutionContact')->findBy(['parution' => $parutionId]);
  1121.             $query 'DELETE FROM `ecw_contact_parution_asso` WHERE `ID_parution`='.$ancienId;
  1122.             $retour $bdd->exec($query);
  1123.             foreach ($parutionContacts as $parutionContact) {
  1124.                 $query2 'INSERT INTO `ecw_contact_parution_asso` (`ID_contact`,`ID_parution`) '
  1125.                     .' VALUES ('.$parutionContact->getContact()->getAncienId().','.$ancienId.')';
  1126.                 $retour $bdd->exec($query2);
  1127.                 if (!$retour) {
  1128.                     echo 'Problème lors de l\'insertion de l\'asso parution contact';
  1129.                 }
  1130.             }
  1131.             return new JsonResponse($ancienId);
  1132.         }
  1133.     }
  1134.     /**
  1135.      * @Route("/api/parutions/auteur/intranet/{parutionId}", methods={"GET"}, name="rechercher_auteur_intranet_parution")
  1136.      */
  1137.     public function rechercherAncienIdAuteur ($parutionId)
  1138.     {
  1139.         $parution $this->getDoctrine()->getRepository('App:Parution')->find($parutionId);
  1140.         $authUserId 0;
  1141.         // récupérer ancien id authuser
  1142.         if($parution->getAuteur() != null) {
  1143.             if($parution->getAuteur()->getUser() != null) {
  1144.                 $nomPrenom $parution->getAuteur()->getUser()->getPrenom() . "." $parution->getAuteur()->getUser()->getNom();
  1145.                 if (strpos($nomPrenom' ') !== false) {
  1146.                     $nomPrenom str_replace(' ''.'$nomPrenom);
  1147.                 }
  1148.                 $url 'extranet.escalconsulting.com/information/getMembreByNom.php?name=' $nomPrenom;
  1149.                 $c curl_init();
  1150.                 curl_setopt($cCURLOPT_URL$url);
  1151.                 curl_setopt($cCURLOPT_RETURNTRANSFERtrue);
  1152.                 curl_setopt($cCURLOPT_HEADERfalse);
  1153.                 $output curl_exec($c);
  1154.                 curl_close($c);
  1155.                 $output json_decode($output);
  1156.                 $output = (array)$output;
  1157.                 $authUserId $output['id'];
  1158.             }
  1159.         }
  1160.         return new JsonResponse($authUserId);
  1161.     }
  1162.     /**
  1163.      * @Route("/api/parutions/importation/supprimer/copie/parution/{ancienIdParution}", methods={"GET"}, name="parution_supprimer_copie_intranet")
  1164.      */
  1165.     public function societeSupprimerCopie ($ancienIdParution)
  1166.     {
  1167.         try
  1168.         {
  1169.             $bdd = new PDO('mysql:host=185.126.230.125;dbname=escal_web;charset=utf8''escalprod''skl001');
  1170.         }
  1171.         catch (Exception $e)
  1172.         {
  1173.             die('Erreur : ' $e->getMessage());
  1174.         }
  1175.         // supprimer asso contacts
  1176.         $query1 'DELETE FROM `ecw_contact_parution_asso` WHERE `ID_parution`='.$ancienIdParution;
  1177.         $retour1 $bdd->exec($query1);
  1178.         // supprimer asso docs_lies
  1179.         $query2 'DELETE FROM `ecw_docslies` WHERE `IDparution_doc`='.$ancienIdParution;
  1180.         $retour2 $bdd->exec($query2);
  1181.         // supprimer parution
  1182.         $query3 'DELETE FROM `ecw_parutions` WHERE `ID_parution`='.$ancienIdParution;
  1183.         $retour5 $bdd->exec($query3);
  1184.         $query4 'DELETE FROM `ecw_listeparution_parution_asso` WHERE `ID_parution`='.$ancienIdParution;
  1185.         $retour4 $bdd->exec($query4);
  1186.         return new JsonResponse('ok');
  1187.     }
  1188.     /**
  1189.      * @Route("/api/parutions/recherche/intranet/liste/parution/{recherche}/{clientAncien}", methods={"GET"}, name="rechercher_liste_parution_associee_intranet")
  1190.      */
  1191.     public function rechercherListeParutionAssociee ($recherche$clientAncien)
  1192.     {
  1193.         $url 'extranet.escalconsulting.com/information/getRechercheListeParutionsSuggestion.php?name='.$recherche.'&client='.$clientAncien;
  1194.         $c curl_init();
  1195.         curl_setopt($cCURLOPT_URL$url);
  1196.         curl_setopt($cCURLOPT_RETURNTRANSFERtrue);
  1197.         curl_setopt($cCURLOPT_HEADERfalse);
  1198.         $output curl_exec($c);
  1199.         curl_close($c);
  1200.         $output json_decode($output);
  1201.         $response = new JsonResponse($output);
  1202.         $response->headers->set('Content-Type''application/json');
  1203.         return $response;
  1204.     }
  1205.     /**
  1206.      * @Route("/api/parutions/associer/intranet/liste/parution/{listeId}/{parutionAncienId}", methods={"GET"}, name="associer_parution_liste_intranet")
  1207.      */
  1208.     public function associerParutionListe ($listeId$parutionAncienId)
  1209.     {
  1210.         $url 'extranet.escalconsulting.com/information/associerParutionListe.php?liste='.$listeId.'&parution='.$parutionAncienId;
  1211.         $c curl_init();
  1212.         curl_setopt($cCURLOPT_URL$url);
  1213.         curl_setopt($cCURLOPT_RETURNTRANSFERtrue);
  1214.         curl_setopt($cCURLOPT_HEADERfalse);
  1215.         $output curl_exec($c);
  1216.         curl_close($c);
  1217.         $output json_decode($output);
  1218.         $response = new JsonResponse($output);
  1219.         $response->headers->set('Content-Type''application/json');
  1220.         return $response;
  1221.     }
  1222.     /**
  1223.      * @Route("/api/parutions/recuperer/intranet/listes/parution/{parutionAncienId}", methods={"GET"}, name="recuperer_parution_liste_associee_intranet")
  1224.      */
  1225.     public function recupererParutionListeAssociee ($parutionAncienId)
  1226.     {
  1227.         $url 'extranet.escalconsulting.com/information/getParutionListeAssociee.php?id='.$parutionAncienId;
  1228.         $c curl_init();
  1229.         curl_setopt($cCURLOPT_URL$url);
  1230.         curl_setopt($cCURLOPT_RETURNTRANSFERtrue);
  1231.         curl_setopt($cCURLOPT_HEADERfalse);
  1232.         $output curl_exec($c);
  1233.         curl_close($c);
  1234.         $output json_decode($output);
  1235.         $response = new JsonResponse($output);
  1236.         $response->headers->set('Content-Type''application/json');
  1237.         return $response;
  1238.     }
  1239.     /**
  1240.      * @Route("/api/parutions/desassocier/intranet/liste/parution/{listesId}/{parutionAncienId}", methods={"GET"}, name="desassocier_parution_liste_intranet")
  1241.      */
  1242.     public function desassocierParutionListe ($listesId$parutionAncienId)
  1243.     {
  1244.         $listesIdTab explode(","$listesId);
  1245.         foreach ($listesIdTab as $key => $listeId) {
  1246.             if ($listeId != "") {
  1247.                 $url 'extranet.escalconsulting.com/information/desassocierParutionListe.php?liste='.$listeId.'&parution='.$parutionAncienId;
  1248.                 $c curl_init();
  1249.                 curl_setopt($cCURLOPT_URL$url);
  1250.                 curl_setopt($cCURLOPT_RETURNTRANSFERtrue);
  1251.                 curl_setopt($cCURLOPT_HEADERfalse);
  1252.                 $output curl_exec($c);
  1253.                 curl_close($c);
  1254.                 $output json_decode($output);
  1255.                 $response = new JsonResponse($output);
  1256.                 $response->headers->set('Content-Type''application/json');
  1257.             }
  1258.         }
  1259.         return new JsonResponse('ok');
  1260.     }
  1261.     /**
  1262.      * @Route("/api/parutions/associer/intranet/mailing/parution/{parutionAncienId}/{associer}", methods={"GET"}, name="associer_parution_mailing_intranet")
  1263.      */
  1264.     public function associerParutionMailing ($parutionAncienId$associer)
  1265.     {
  1266.         $url 'extranet.escalconsulting.com/information/associerParutionMailing.php?associer='.$associer.'&parution='.$parutionAncienId;
  1267.         $c curl_init();
  1268.         curl_setopt($cCURLOPT_URL$url);
  1269.         curl_setopt($cCURLOPT_RETURNTRANSFERtrue);
  1270.         curl_setopt($cCURLOPT_HEADERfalse);
  1271.         $output curl_exec($c);
  1272.         curl_close($c);
  1273.         $output json_decode($output);
  1274.         $response = new JsonResponse($output);
  1275.         $response->headers->set('Content-Type''application/json');
  1276.         return $response;
  1277.     }
  1278.     /**
  1279.      * @Route("/api/parutions/inclure/pressroom/parution/{parutionAncienId}/{parutionId}", methods={"GET"}, name="inclure_pressroom_parution_intranet")
  1280.      */
  1281.     public function inclurePressroomParution ($parutionAncienId$parutionId)
  1282.     {
  1283.         // récupérer divers
  1284.         $diversParution $this->getDoctrine()->getRepository('App:DiversParution')->findOneBy(['parution' => $parutionId]);
  1285.         // récupérer pressroom
  1286.         if($diversParution->getPressroom()) {
  1287.             $pressroom 'O';
  1288.         } else {
  1289.             $pressroom 'N';
  1290.         }
  1291.         try
  1292.         {
  1293.             $bdd = new PDO('mysql:host=185.126.230.125;dbname=escal_web;charset=utf8''escalprod''skl001');
  1294.         }
  1295.         catch (Exception $e)
  1296.         {
  1297.             die('Erreur : ' $e->getMessage());
  1298.         }
  1299.         $query 'UPDATE `ecw_parutions` SET `pressroom_parution`="'.$pressroom.'" WHERE `ID_parution`='.$parutionAncienId;
  1300.         $retour $bdd->exec($query);
  1301.         return new JsonResponse('ok');
  1302.     }
  1303.     /**
  1304.      * @Route("/api/parutions/recherche/intranet/{recherche}/{typeRecherche}", methods={"GET"}, name="suggestion_recherche_parution_intranet")
  1305.      */
  1306.     public function getParutionIntranetSuggestion ($recherche$typeRecherche)
  1307.     {
  1308.         $url 'extranet.escalconsulting.com/information/getParutionsIntranetByType.php?search='.$recherche.'&type='.$typeRecherche;
  1309.         $c curl_init();
  1310.         curl_setopt($cCURLOPT_URL$url);
  1311.         curl_setopt($cCURLOPT_RETURNTRANSFERtrue);
  1312.         curl_setopt($cCURLOPT_HEADERfalse);
  1313.         $output curl_exec($c);
  1314.         curl_close($c);
  1315.         $output json_decode($output);
  1316.         $response = new JsonResponse($output);
  1317.         $response->headers->set('Content-Type''application/json');
  1318.         return $response;
  1319.     }
  1320.     /**
  1321.      * @Route("/api/parutions/recherche/fiche/intranet/{id}", methods={"GET"}, name="fiche_recherche_parution_intranet")
  1322.      */
  1323.     public function getParutionIntranetFiche ($id)
  1324.     {
  1325.         $url 'extranet.escalconsulting.com/information/getParutionIntranetById.php?id='.$id;
  1326.         $c curl_init();
  1327.         curl_setopt($cCURLOPT_URL$url);
  1328.         curl_setopt($cCURLOPT_RETURNTRANSFERtrue);
  1329.         curl_setopt($cCURLOPT_HEADERfalse);
  1330.         $output curl_exec($c);
  1331.         curl_close($c);
  1332.         $output json_decode($output);
  1333.         $response = new JsonResponse($output);
  1334.         $response->headers->set('Content-Type''application/json');
  1335.         return $response;
  1336.     }
  1337.     /**
  1338.      * @Route("/api/parutions/article/client/generer/pdf", name="generer_pdf_parution_retombee", methods={"POST"})
  1339.      * @param Request $request
  1340.      * @param WordParutionInterface $wordParution
  1341.      * @return Response
  1342.      * @throws \PhpOffice\PhpWord\Exception\Exception
  1343.      */
  1344.     public function PostGenererPdfParutionClient(Request $requestWordParutionInterface $wordParution)
  1345.     {
  1346.         ini_set('memory_limit',-1);
  1347.         set_time_limit(0);
  1348.         // récupération des datas post
  1349.         $content $request->getContent();
  1350.         $content str_replace("\n","",$content);
  1351.         $content str_replace("\r","",$content);
  1352.         $content str_replace("\t","",$content);
  1353.         $datas json_decode($contenttrue);
  1354.         // creation du pressbook
  1355.         $result $wordParution->genererParution($datas$request->server->get('DOCUMENT_ROOT'));
  1356.         if(isset($result['type'])){
  1357.             return new Response(json_encode($result));
  1358.         }
  1359.         return new Response('{ "status": "ok" }');
  1360.     }
  1361.     /**
  1362.      * @Route("/api/parutions/recuperer/logo/support/intranet/{supportAncienId}", methods={"GET"}, name="recuperer_logo_support_intranet_parution")
  1363.      */
  1364.     public function recupererLogoSupportIntranet ($supportAncienId)
  1365.     {
  1366.         $url 'extranet.escalconsulting.com/information/getLogoSupportById.php?support='.$supportAncienId;
  1367.         $c curl_init();
  1368.         curl_setopt($cCURLOPT_URL$url);
  1369.         curl_setopt($cCURLOPT_RETURNTRANSFERtrue);
  1370.         curl_setopt($cCURLOPT_HEADERfalse);
  1371.         $output curl_exec($c);
  1372.         curl_close($c);
  1373.         $output json_decode($output);
  1374.         $response = new JsonResponse($output);
  1375.         $response->headers->set('Content-Type''application/json');
  1376.         return $response;
  1377.     }
  1378.     /**
  1379.      * @Route("/api/parutions/contacts/desassocier/{parutionId}", methods={"GET"}, name="parution_contact_desassocier")
  1380.      */
  1381.     public function deleteParutionContact($parutionIdEntityManagerInterface $em): JsonResponse
  1382.     {
  1383.         $parution $this->getDoctrine()->getRepository('App:Parution')->find($parutionId);
  1384.         if ($parution != null) {
  1385.             $associations $parution->getParutionContacts();
  1386.             foreach ($associations as $association) {
  1387.                 $parution->removeContact($association);
  1388.             }
  1389.             $em->flush();
  1390.         }
  1391.         return new JsonResponse("ok");
  1392.     }
  1393. }