<?php
namespace App\Controller;
use App\Entity\CategoriesGenerales;
use App\Entity\Contact;
use App\Entity\ContactSupport;
use App\Entity\Coordonnees;
use App\Entity\Fonction;
use App\Entity\Organisation;
use App\Entity\Secteur;
use App\Entity\SousCategoriesGenerales;
use App\Entity\Support;
use App\Service\Office\Word\WordParutionInterface;
use App\Service\Office\Word\WordRAInterface;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use PDO;
class ParutionController extends AbstractController
{
/**
* @Route("/api/parutions/recherche/intranet/contact/{recherche}", methods={"GET"}, name="rechercher_contact_intranet_parution")
*/
public function rechercherContact ($recherche)
{
$url = 'extranet.escalconsulting.com/information/getContactSuivitSuggestion.php?name='.$recherche;
$c = curl_init();
curl_setopt($c, CURLOPT_URL, $url);
curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
curl_setopt($c, CURLOPT_HEADER, false);
$output = curl_exec($c);
curl_close($c);
$output = json_decode($output);
$response = new JsonResponse($output);
$response->headers->set('Content-Type', 'application/json');
return $response;
}
/**
* @Route("/api/parutions/recherche/intranet/support/{recherche}", methods={"GET"}, name="rechercher_support_intranet_parution")
*/
public function rechercherSupport ($recherche)
{
$url = 'extranet.escalconsulting.com/information/getSupportSuggestion.php?name='.$recherche;
$c = curl_init();
curl_setopt($c, CURLOPT_URL, $url);
curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
curl_setopt($c, CURLOPT_HEADER, false);
$output = curl_exec($c);
curl_close($c);
$output = json_decode($output);
$response = new JsonResponse($output);
$response->headers->set('Content-Type', 'application/json');
return $response;
}
/**
* @Route("/api/parutions/recherche/intranet/interview/{recherche}/{clientAncienId}", methods={"GET"}, name="rechercher_interview_intranet_parution")
*/
public function rechercherInterview ($recherche, $clientAncienId)
{
$url = 'extranet.escalconsulting.com/information/getInterviewSuggestion.php?search='.$recherche.'&client='.$clientAncienId;
$c = curl_init();
curl_setopt($c, CURLOPT_URL, $url);
curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
curl_setopt($c, CURLOPT_HEADER, false);
$output = curl_exec($c);
curl_close($c);
$output = json_decode($output);
$response = new JsonResponse($output);
$response->headers->set('Content-Type', 'application/json');
return $response;
}
/**
* @Route("/api/parutions/recuperer/intranet/interview/{clientAncienId}", methods={"GET"}, name="recuperer_interview_intranet_parution")
*/
public function getInterview ($clientAncienId)
{
$url = 'extranet.escalconsulting.com/information/getInterviewsClient.php?client='.$clientAncienId;
$c = curl_init();
curl_setopt($c, CURLOPT_URL, $url);
curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
curl_setopt($c, CURLOPT_HEADER, false);
$output = curl_exec($c);
curl_close($c);
$output = json_decode($output);
$response = new JsonResponse($output);
$response->headers->set('Content-Type', 'application/json');
return $response;
}
/**
* @Route("/api/parutions/recherche/intranet/suivi/{recherche}/{clientAncienId}/{supportAncienId}", methods={"GET"}, name="rechercher_suivi_intranet_parution")
*/
public function rechercherSuivi ($recherche, $clientAncienId, $supportAncienId)
{
$url = 'extranet.escalconsulting.com/information/getSuivisParutionSuggestion.php?search='.$recherche.'&client='.$clientAncienId.'&support='.$supportAncienId;
$c = curl_init();
curl_setopt($c, CURLOPT_URL, $url);
curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
curl_setopt($c, CURLOPT_HEADER, false);
$output = curl_exec($c);
curl_close($c);
$output = json_decode($output);
$response = new JsonResponse($output);
$response->headers->set('Content-Type', 'application/json');
return $response;
}
/**
* @Route("/api/parutions/recuperer/intranet/suivi/{clientAncienId}/{supportAncienId}", methods={"GET"}, name="recuperer_suivi_intranet_parution")
*/
public function getSuivi ($clientAncienId, $supportAncienId)
{
$url = 'extranet.escalconsulting.com/information/getSuivisParutionClient.php?client='.$clientAncienId.'&support='.$supportAncienId;
$c = curl_init();
curl_setopt($c, CURLOPT_URL, $url);
curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
curl_setopt($c, CURLOPT_HEADER, false);
$output = curl_exec($c);
curl_close($c);
$output = json_decode($output);
$response = new JsonResponse($output);
$response->headers->set('Content-Type', 'application/json');
return $response;
}
/**
* @Route("/api/parutions/recuperer/intranet/campagnes/concurrents", methods={"GET"}, name="recuperer_campagnes_concurrents_intranet_parution")
*/
public function getCampagnesConcurrents ()
{
$url = 'extranet.escalconsulting.com/information/getCampagnesConcurrentsParution.php';
$c = curl_init();
curl_setopt($c, CURLOPT_URL, $url);
curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
curl_setopt($c, CURLOPT_HEADER, false);
$output = curl_exec($c);
curl_close($c);
$output = json_decode($output);
$response = new JsonResponse($output);
$response->headers->set('Content-Type', 'application/json');
return $response;
}
/**
* @Route("/api/parutions/recuperer/intranet/listes/contacts", methods={"GET"}, name="recuperer_listes_contacts_intranet_parution")
*/
public function getListesContacts ()
{
$url = 'extranet.escalconsulting.com/information/getListesContacts.php';
$c = curl_init();
curl_setopt($c, CURLOPT_URL, $url);
curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
curl_setopt($c, CURLOPT_HEADER, false);
$output = curl_exec($c);
curl_close($c);
$output = json_decode($output);
$response = new JsonResponse($output);
$response->headers->set('Content-Type', 'application/json');
return $response;
}
/**
* @Route("/api/parutions/recuperer/intranet/listes/parutions", methods={"GET"}, name="recuperer_listes_parutions_intranet_parution")
*/
public function getListesParutions ()
{
$url = 'extranet.escalconsulting.com/information/getListesParutions.php';
$c = curl_init();
curl_setopt($c, CURLOPT_URL, $url);
curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
curl_setopt($c, CURLOPT_HEADER, false);
$output = curl_exec($c);
curl_close($c);
$output = json_decode($output);
$response = new JsonResponse($output);
$response->headers->set('Content-Type', 'application/json');
return $response;
}
/**
* @Route("/api/parutions/campagne/intranet/creer/{campagneId}", methods={"GET"}, name="creer_campagnes_intranet_parution")
*/
public function creerCampagneIntranetParution ($campagneId, EntityManagerInterface $em)
{
$campagne = $em->getRepository('App:CampagneParution')->find($campagneId);
if($campagne != null) {
$url = 'extranet.escalconsulting.com/information/addCampagneParution.php?campagne='.$campagne->getLibelle();
$c = curl_init();
curl_setopt($c, CURLOPT_URL, $url);
curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
curl_setopt($c, CURLOPT_HEADER, false);
$output = curl_exec($c);
curl_close($c);
$output = json_decode($output);
$response = new JsonResponse($output);
$response->headers->set('Content-Type', 'application/json');
return $response;
} else {
return new JsonResponse([]);
}
}
/**
* @Route("/api/parutions/theme/intranet/importer/{themeId}", methods={"GET"}, name="theme_parution_importer")
*/
public function importerThemeParution($themeId, EntityManagerInterface $em)
{
// importer theme dans la base escalnet
$url = 'extranet.escalconsulting.com/information/getCategorieGeneraleById.php?id='.$themeId;
$c = curl_init();
curl_setopt($c, CURLOPT_URL, $url);
curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
curl_setopt($c, CURLOPT_HEADER, false);
$output = curl_exec($c);
curl_close($c);
$output = json_decode($output);
$output = (array)$output;
$theme = null;
// si il existe
if(count($output) != 0) {
$theme = new CategoriesGenerales();
$theme->setAncienId($output['id']);
$output['lib'] = str_replace("'", "'", $output['lib']);
$output['lib'] = str_replace("&", "&", $output['lib']);
$theme->setLibelle($output['lib']);
// verif si theme pas deja existant dans la base
$verifTheme = $this->getDoctrine()->getRepository('App:CategoriesGenerales')->findOneBy(['ancienId' => $output['id']]);
if(!$verifTheme){
$em->persist($theme);
$em->flush();
}
}
return new JsonResponse('ok');
}
/**
* @Route("/api/parutions/support/intranet/importer/{supportId}", methods={"GET"}, name="support_parution_importer")
*/
public function importerSupportParution($supportId, EntityManagerInterface $em)
{
// créer objet support
$support = new Support();
// importer le secteur du support dans la base escalnet
$url = 'extranet.escalconsulting.com/information/getSecteurSupport.php?id='.$supportId;
$c = curl_init();
curl_setopt($c, CURLOPT_URL, $url);
curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
curl_setopt($c, CURLOPT_HEADER, false);
$output = curl_exec($c);
curl_close($c);
$output = json_decode($output);
$output = (array)$output;
//verif si support avec secteur
$secteur = null;
if(count($output) != 0) {
$secteur = new Secteur();
$secteur->setAncienId($output['id']);
$secteur->setLibelle($output['lib']);
// verif si secteur pas deja existant dans la base
$verifSecteur = $this->getDoctrine()->getRepository('App:Secteur')->findOneBy(['ancienId' => $output['id']]);
if(!$verifSecteur){
$em->persist($secteur);
$em->flush();
$secteur = $this->getDoctrine()->getRepository('App:Secteur')->findOneBy(['ancienId' => $output['id']]);
} else {
$secteur = $verifSecteur;
}
if($secteur != null){
$support->addSecteur($secteur);
}
}
// récupérer les langues du support
$url = 'extranet.escalconsulting.com/information/getLanguesSupport.php?id='.$supportId;
$c = curl_init();
curl_setopt($c, CURLOPT_URL, $url);
curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
curl_setopt($c, CURLOPT_HEADER, false);
$output = curl_exec($c);
curl_close($c);
$output = json_decode($output);
$output = (array)$output;
//verif si support avec langues
foreach ($output as $key => $value) {
$value = (array)$value;
$langue = $this->getDoctrine()->getRepository('App:Langues')->find($value['id']);
if($langue != null) {
$support->addLangue($langue);
}
}
// récupérer les pays du support
$url = 'extranet.escalconsulting.com/information/getPaysSupport.php?id='.$supportId;
$c = curl_init();
curl_setopt($c, CURLOPT_URL, $url);
curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
curl_setopt($c, CURLOPT_HEADER, false);
$output = curl_exec($c);
curl_close($c);
$output = json_decode($output);
$output = (array)$output;
//verif si support avec pays
foreach ($output as $key => $value) {
$value = (array)$value;
$pays = $this->getDoctrine()->getRepository('App:Pays')->find($value['id']);
if($pays != null) {
$support->addPay($pays);
}
}
// importer coordonnees du support dans la base escalnet
$url = 'extranet.escalconsulting.com/information/getSupportCoordonnees.php?id='.$supportId;
$c = curl_init();
curl_setopt($c, CURLOPT_URL, $url);
curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
curl_setopt($c, CURLOPT_HEADER, false);
$output = curl_exec($c);
curl_close($c);
$output = json_decode($output);
$output = (array)$output;
$coordSupport = null;
//verif si support avec coordonnees
if(count($output) != 0) {
$coordSupport = new Coordonnees();
$coordSupport->setAncienId($output['id']);
$coordSupport->setRue($output['adresse1']);
$coordSupport->setComplements($output['adresse2']);
$coordSupport->setBoitePostale($output['bpostal']);
$coordSupport->setCodePostal($output['cpostal']);
$coordSupport->setVille($output['ville']);
$coordSupport->setPremierTel($output['tel']);
$coordSupport->setDeuxiemeTel($output['tel_gsm']);
$coordSupport->setEmail($output['email']);
$coordSupport->setPremierURL($output['web1']);
$coordSupport->setDeuxiemeURL($output['web2']);
if($output['ID_pays']){
$pays = $this->getDoctrine()->getRepository('App\Entity\Pays')->find($output['ID_pays']);
$coordSupport->setPays($pays);
}
// verif si coordonnees pas deja existante dans la base
$verifCoordSup = $this->getDoctrine()->getRepository('App:Coordonnees')->findOneBy(['ancienId' => $output['id']]);
if(!$verifCoordSup){
$em->persist($coordSupport);
$em->flush();
$coordSupport = $this->getDoctrine()->getRepository('App:Coordonnees')->findOneBy(['ancienId' => $output['id']]);
} else {
$coordSupport = $verifCoordSup;
}
}
// importer le support dans la base escalnet
$url = 'extranet.escalconsulting.com/information/getSupportInformations.php?id='.$supportId;
$c = curl_init();
curl_setopt($c, CURLOPT_URL, $url);
curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
curl_setopt($c, CURLOPT_HEADER, false);
$output = curl_exec($c);
curl_close($c);
$output = json_decode($output);
$output = (array)$output;
//verif si support récupéré
if(count($output) != 0) {
$support->setAncienId($output['id']);
$output['lib_support'] = str_replace("'", "'", $output['lib_support']);
$output['lib_support'] = str_replace("&", "&", $output['lib_support']);
$support->setNom($output['lib_support']);
$support->setTelStandard($output['tel_standard']);
$support->setTelPublicite($output['tel_publicite']);
$support->setAudience($output['diffusion']);
$support->setOJD($output['ojd']);
$support->setPositionnement($output['positionmt']);
$support->setCible($output['cible']);
$commentaire = $output['contenu'];
if(strlen($output['contenu']) >= 5000){
$deb = strlen($output['contenu']) - 4000;
$commentaire = substr($output['contenu'], $deb, strlen($output['contenu']));
}
$support->setCommentaires(htmlspecialchars($commentaire));
if($output['created'] != "0000-00-00" && $output['created'] != null){
$creationSup = new \DateTime($output['created']);
$support->setCreation($creationSup);
}
$support->setPrecisions($output['txt_zonediff']);
$support->setDisponibilite($output['dispo_reserve']);
$support->setExempDispo($output['exemp_dispo']);
$support->setEquivPub($output['equiv_pub']);
$support->setMediametrie($output['mediametrie']);
$support->setDateBouclage($output['date_bouclage']);
$support->setDateParution($output['parution']);
if($output['ID_etat_sup'] != null){
$etatSup = $this->getDoctrine()->getRepository('App:Etat')->find($output['ID_etat_sup']);
$support->setEtat($etatSup);
}
if($output['ID_supp_period'] != null){
$periodSUpp = $this->getDoctrine()->getRepository('App:Periodicite')->find($output['ID_supp_period']);
$support->setPeriodicite($periodSUpp);
}
if($output['lib_supp_genre'] != ''){
$typeMediaSUpp = $this->getDoctrine()->getRepository('App:TypeMedia')->findOneBy(['libelle' => $output['lib_supp_genre']]);
$support->setTypeMedia($typeMediaSUpp);
}
if($output['ID_type_presse'] != ''){
$famille = $this->getDoctrine()->getRepository('App:Famille')->find($output['ID_type_presse']);
$support->setFamille($famille);
}
if($output['ID_zonediff'] != ''){
$zonediffSUp = $this->getDoctrine()->getRepository('App:ZoneDiffusion')->find($output['ID_zonediff']);
$support->setZoneDiffusion($zonediffSUp);
}
$support->setCoordonnees($coordSupport);
if($output['ID_casier'] != ''){
$casierSupp = $this->getDoctrine()->getRepository('App:Casier')->find($output['ID_casier']);
$support->setCasier($casierSupp);
}
if($output['ID_type_ojd'] != ''){
$typeOjdSup = $this->getDoctrine()->getRepository('App:TypeOJD')->find($output['ID_type_ojd']);
$support->setTypeOJD($typeOjdSup);
}
// verif si support pas deja existant dans la base
$verifSupport = $this->getDoctrine()->getRepository('App:Support')->findOneBy(['ancienId' => $output['id']]);
if(!$verifSupport){
$em->persist($support);
$em->flush();
}
}
return new JsonResponse('ok');
}
/**
* @Route("/api/parutions/auteurs/intranet/importer/tout/{contactIdsSelect}", methods={"GET"}, name="auteurs_parution_importer_tout")
*/
public function importerAuteursParution($contactIdsSelect, EntityManagerInterface $em)
{
$listeIDContacts = '';
// passer les ids des contacts en tableau
$contactsIDList = explode(",", $contactIdsSelect);
foreach ($contactsIDList as $key => $contactId) {
if ($contactId != "") {
// créer objet contact
$contact = new Contact();
// importer fonction du contact dans la base escalnet
$url = 'extranet.escalconsulting.com/information/getContactFonction.php?id='.$contactId;
$c = curl_init();
curl_setopt($c, CURLOPT_URL, $url);
curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
curl_setopt($c, CURLOPT_HEADER, false);
$output = curl_exec($c);
curl_close($c);
$output = json_decode($output);
$output = (array)$output;
$fonction = null;
//verif si contact avec fonction
if(count($output) != 0) {
$fonction = new Fonction();
$fonction->setAncienId($output['id']);
$fonction->setLibelle($output['lib']);
// verif si fonction pas deja existante dans la base
$verifFonction = $this->getDoctrine()->getRepository('App:Fonction')->findOneBy(['ancienId' => $output['id']]);
if(!$verifFonction){
$em->persist($fonction);
$em->flush();
$fonction = $this->getDoctrine()->getRepository('App:Fonction')->findOneBy(['ancienId' => $output['id']]);
} else {
$fonction = $verifFonction;
}
}
// importer categories générales du contact dans la base escalnet
$url = 'extranet.escalconsulting.com/information/getContactCategoriesGenerales.php?id='.$contactId;
$c = curl_init();
curl_setopt($c, CURLOPT_URL, $url);
curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
curl_setopt($c, CURLOPT_HEADER, false);
$output = curl_exec($c);
curl_close($c);
$output = json_decode($output);
//verif si contact avec categ
if(count($output) != 0) {
foreach ($output as $key => $value) {
$value = (array)$value;
$categ = new CategoriesGenerales();
$categ->setAncienId($value['id']);
$categ->setLibelle($value['lib']);
$verifCateg = $this->getDoctrine()->getRepository('App:CategoriesGenerales')->findOneBy(['ancienId' => $value['id']]);
// verif si categ pas deja existante dans la base
if(!$verifCateg){
$em->persist($categ);
$em->flush();
$categ = $this->getDoctrine()->getRepository('App:CategoriesGenerales')->findOneBy(['ancienId' => $value['id']]);
} else {
$categ = $verifCateg;
}
$contact->addCategoriesGenerale($categ);
}
}
// importer sous categories générales du contact dans la base escalnet
$url = 'extranet.escalconsulting.com/information/getContactSousCategoriesGenerales.php?id='.$contactId;
$c = curl_init();
curl_setopt($c, CURLOPT_URL, $url);
curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
curl_setopt($c, CURLOPT_HEADER, false);
$output = curl_exec($c);
curl_close($c);
$output = json_decode($output);
//verif si contact avec souscateg
if(count($output) != 0) {
foreach ($output as $key => $value) {
$value = (array)$value;
$sousCateg = new SousCategoriesGenerales();
$sousCateg->setAncienId($value['id']);
$sousCateg->setLibelle($value['lib']);
$verifSousCateg = $this->getDoctrine()->getRepository('App:SousCategoriesGenerales')->findOneBy(['ancienId' => $value['id']]);
// verif si souscateg pas deja existante dans la base
if(!$verifSousCateg){
$em->persist($sousCateg);
$em->flush();
$sousCateg = $this->getDoctrine()->getRepository('App:SousCategoriesGenerales')->findOneBy(['ancienId' => $value['id']]);
} else {
$sousCateg = $verifSousCateg;
}
$contact->addSousCategoriesGenerale($sousCateg);
}
}
// importer coordonnees du contact dans la base escalnet
$url = 'extranet.escalconsulting.com/information/getContactCoordonnees.php?id='.$contactId;
$c = curl_init();
curl_setopt($c, CURLOPT_URL, $url);
curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
curl_setopt($c, CURLOPT_HEADER, false);
$output = curl_exec($c);
curl_close($c);
$output = json_decode($output);
$output = (array)$output;
$coord = null;
//verif si contact avec coordonnees
if(count($output) != 0) {
$coord = new Coordonnees();
$coord->setAncienId($output['id']);
$coord->setRue($output['adresse1']);
$coord->setComplements($output['adresse2']);
$coord->setBoitePostale($output['bpostal']);
$coord->setCodePostal($output['cpostal']);
$coord->setVille($output['ville']);
$coord->setPremierTel($output['tel']);
$coord->setDeuxiemeTel($output['tel_gsm']);
$coord->setEmail($output['email']);
$coord->setPremierURL($output['web1']);
$coord->setDeuxiemeURL($output['web2']);
if($output['ID_pays']){
$pays = $this->getDoctrine()->getRepository('App\Entity\Pays')->find($output['ID_pays']);
$coord->setPays($pays);
}
// verif si coordonnees pas deja existante dans la base
$verifCoord = $this->getDoctrine()->getRepository('App:Coordonnees')->findOneBy(['ancienId' => $output['id']]);
if(!$verifCoord){
$em->persist($coord);
$em->flush();
$coord = $this->getDoctrine()->getRepository('App:Coordonnees')->findOneBy(['ancienId' => $output['id']]);
} else {
$coord = $verifCoord;
}
}
// importer categorie de l'organisation du contact dans la base escalnet
$url = 'extranet.escalconsulting.com/information/getOrganisationCategoriesGenerales.php?id='.$contactId;
$c = curl_init();
curl_setopt($c, CURLOPT_URL, $url);
curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
curl_setopt($c, CURLOPT_HEADER, false);
$output = curl_exec($c);
curl_close($c);
$output = json_decode($output);
$output = (array)$output;
$categOrg = null;
//verif si organisation avec categ
if(count($output) != 0) {
$categOrg = new CategoriesGenerales();
$categOrg->setAncienId($output['id']);
$categOrg->setLibelle($output['lib']);
// verif si categ pas deja existante dans la base
$verifCategOrg = $this->getDoctrine()->getRepository('App:CategoriesGenerales')->findOneBy(['ancienId' => $output['id']]);
if(!$verifCategOrg){
$em->persist($categOrg);
$em->flush();
$categOrg = $this->getDoctrine()->getRepository('App:CategoriesGenerales')->findOneBy(['ancienId' => $output['id']]);
} else {
$categOrg = $verifCategOrg;
}
}
// importer coordonnees de l'organisation du contact dans la base escalnet
$url = 'extranet.escalconsulting.com/information/getOrganisationCoordonnees.php?id='.$contactId;
$c = curl_init();
curl_setopt($c, CURLOPT_URL, $url);
curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
curl_setopt($c, CURLOPT_HEADER, false);
$output = curl_exec($c);
curl_close($c);
$output = json_decode($output);
$output = (array)$output;
$coordOrg = null;
//verif si organisation avec coordonnees
if(count($output) != 0) {
$coordOrg = new Coordonnees();
$coordOrg->setAncienId($output['id']);
$coordOrg->setRue($output['adresse1']);
$coordOrg->setComplements($output['adresse2']);
$coordOrg->setBoitePostale($output['bpostal']);
$coordOrg->setCodePostal($output['cpostal']);
$coordOrg->setVille($output['ville']);
$coordOrg->setPremierTel($output['tel']);
$coordOrg->setDeuxiemeTel($output['tel_gsm']);
$coordOrg->setEmail($output['email']);
$coordOrg->setPremierURL($output['web1']);
$coordOrg->setDeuxiemeURL($output['web2']);
if($output['ID_pays']){
$pays = $this->getDoctrine()->getRepository('App\Entity\Pays')->find($output['ID_pays']);
$coordOrg->setPays($pays);
}
// verif si coordonnees pas deja existante dans la base
$verifCoordOrg = $this->getDoctrine()->getRepository('App:Coordonnees')->findOneBy(['ancienId' => $output['id']]);
if(!$verifCoordOrg){
$em->persist($coordOrg);
$em->flush();
$coordOrg = $this->getDoctrine()->getRepository('App:Coordonnees')->findOneBy(['ancienId' => $output['id']]);
} else {
$coordOrg = $verifCoordOrg;
}
}
// importer dirigeant de l'organisation du contact dans la base escalnet
$url = 'extranet.escalconsulting.com/information/getOrganisationDirigeant.php?id='.$contactId;
$c = curl_init();
curl_setopt($c, CURLOPT_URL, $url);
curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
curl_setopt($c, CURLOPT_HEADER, false);
$output = curl_exec($c);
curl_close($c);
$output = json_decode($output);
$output = (array)$output;
//verif si organisation avec dirigeant
$dirigeant = null;
if(count($output) != 0) {
$dirigeant = new Contact();
$dirigeant->setAncienId($output['id']);
$dirigeant->setNom($output['nom']);
$dirigeant->setPrenom($output['prenom']);
$dirigeant->setModeEnvoiPref($output['ID_mode_envoi']);
$dirigeant->setPiecesJointes($output['piecejointe']);
$commentaire = $output['comments'];
if(strlen($output['comments']) >= 5000){
$deb = strlen($output['comments']) - 4000;
$commentaire = substr($output['comments'], $deb, strlen($output['comments']));
}
$dirigeant->setCommentaires(htmlspecialchars($commentaire));
$civiDir = $this->getDoctrine()->getRepository('App:Civilite')->findOneBy(['ancienId' => $output['civilite']]);
$dirigeant->setCivilite($civiDir);
if($output['ID_type'] != null){
$genreDir = $this->getDoctrine()->getRepository('App:Genre')->find($output['ID_type']);
$dirigeant->setGenre($genreDir);
}
// verif si dirigeant pas deja existant dans la base
$verifDirigeant = $this->getDoctrine()->getRepository('App:Contact')->findOneBy(['ancienId' => $output['id']]);
if (!$verifDirigeant) {
$em->persist($dirigeant);
$em->flush();
$dirigeant = $this->getDoctrine()->getRepository('App:Contact')->findOneBy(['ancienId' => $output['id']]);
} else {
$dirigeant = $verifDirigeant;
}
}
// importer l'organisation du contact dans la base escalnet
$url = 'extranet.escalconsulting.com/information/getOrganisationInformations.php?id='.$contactId;
$c = curl_init();
curl_setopt($c, CURLOPT_URL, $url);
curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
curl_setopt($c, CURLOPT_HEADER, false);
$output = curl_exec($c);
curl_close($c);
$output = json_decode($output);
$output = (array)$output;
$organisation = null;
//verif si contact a une organisation
if(count($output) != 0) {
$organisation = new Organisation();
$organisation->setAncienId($output['id']);
$output['nom_soc'] = str_replace("'", "'", $output['nom_soc']);
$output['nom_soc'] = str_replace("&", "&", $output['nom_soc']);
$organisation->setNom($output['nom_soc']);
$organisation->setSiren($output['siren_soc']);
$organisation->setCapital($output['capital_soc']);
$organisation->setEffectif($output['effectif_soc']);
$organisation->setImplantation($output['implantation_soc']);
$organisation->setCategorieGenerale($categOrg);
$organisation->setCoordonnees($coordOrg);
$organisation->setDirigeant($dirigeant);
if($output['ID_formjuri_soc'] != null){
$formeJOrg = $this->getDoctrine()->getRepository('App:FormeJuridique')->find($output['ID_formjuri_soc']);
$organisation->setFormeJuridique($formeJOrg);
}
if($output['lib_type'] != ''){
$genreOrg = $this->getDoctrine()->getRepository('App:Genre')->findOneBy(['libelle' => $output['lib_type']]);
$organisation->setGenre($genreOrg);
}
if($output['datecreation_soc'] != "0000-00-00" && $output['datecreation_soc'] != null){
$dateCreOrg = new \DateTime($output['datecreation_soc']);
$organisation->setDateCreation($dateCreOrg);
}
if($output['created'] != "0000-00-00" && $output['created'] != null){
$creationOrg = new \DateTime($output['created']);
$organisation->setCreation($creationOrg);
}
// verif si organisation pas deja existant dans la base
$verifOrga = $this->getDoctrine()->getRepository('App:Organisation')->findOneBy(['ancienId' => $output['id']]);
if (!$verifOrga) {
$em->persist($organisation);
$em->flush();
$organisation = $this->getDoctrine()->getRepository('App:Organisation')->findOneBy(['ancienId' => $output['id']]);
} else {
$organisation= $verifOrga;
}
}
// récupérer les langues du contact
$url = 'extranet.escalconsulting.com/information/getLanguesContact.php?id='.$contactId;
$c = curl_init();
curl_setopt($c, CURLOPT_URL, $url);
curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
curl_setopt($c, CURLOPT_HEADER, false);
$output = curl_exec($c);
curl_close($c);
$output = json_decode($output);
$output = (array)$output;
//verif si contact avec langues
foreach ($output as $key => $value) {
$value = (array)$value;
$langue = $this->getDoctrine()->getRepository('App:Langues')->find($value['id']);
if($langue != null) {
$contact->addLangue($langue);
}
}
// récupérer les pays du contact
$url = 'extranet.escalconsulting.com/information/getPaysContact.php?id='.$contactId;
$c = curl_init();
curl_setopt($c, CURLOPT_URL, $url);
curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
curl_setopt($c, CURLOPT_HEADER, false);
$output = curl_exec($c);
curl_close($c);
$output = json_decode($output);
$output = (array)$output;
//verif si contact avec pays
foreach ($output as $key => $value) {
$value = (array)$value;
$pays = $this->getDoctrine()->getRepository('App:Pays')->find($value['id']);
if($pays != null) {
$contact->addPay($pays);
}
}
// importation contact dans la base escalnet
$url = 'extranet.escalconsulting.com/information/getContactInformations.php?id='.$contactId;
$c = curl_init();
curl_setopt($c, CURLOPT_URL, $url);
curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
curl_setopt($c, CURLOPT_HEADER, false);
$output = curl_exec($c);
curl_close($c);
$output = json_decode($output);
$output = (array)$output;
//verif si contact récupéré
if(count($output) != 0) {
$contact->setAncienId($output['id']);
$contact->setPrenom($output['prenom']);
$contact->setNom($output['nom']);
$contact->setFonction($fonction);
$contact->setCoordonnees($coord);
$contact->setModeEnvoiPref($output['ID_mode_envoi']);
$contact->setPiecesJointes($output['piecejointe']);
$commentaire = $output['comments'];
if(strlen($output['comments']) >= 5000){
$deb = strlen($output['comments']) - 4000;
$commentaire = substr($output['comments'], $deb, strlen($output['comments']));
}
$contact->setCommentaires(htmlspecialchars($commentaire));
$civilite = $this->getDoctrine()->getRepository('App:Civilite')->findOneBy(['ancienId' => $output['civilite']]);
$contact->setCivilite($civilite);
$genre = $this->getDoctrine()->getRepository('App:Genre')->findOneBy(['libelle' => $output['lib_type']]);
$contact->setGenre($genre);
if($output['created'] != "0000-00-00" && $output['created'] != null){
$creationCont = new \DateTime($output['created']);
$contact->setCreation($creationCont);
}
if($output['date_conclusion'] != "0000-00-00" && $output['date_conclusion'] != null){
$dateConc = new \DateTime($output['date_conclusion']);
$contact->setDateConclusion($dateConc);
}
$contact->setObjet($output['objet']);
// verif si contact pas deja existant dans la base
$verifContact = $this->getDoctrine()->getRepository('App:Contact')->findOneBy(['ancienId' => $output['id']]);
if(!$verifContact){
$em->persist($contact);
$em->flush();
$contact = $this->getDoctrine()->getRepository('App:Contact')->findOneBy(['ancienId' => $contact->getAncienId()]);
} else {
$contact = $verifContact;
}
$listeIDContacts = $listeIDContacts.$contact->getId().',';
}
}
}
$tab = [];
foreach ($contactsIDList as $key => $contactId){
if($contactId != ""){
$tab['contacts'] = $listeIDContacts;
}
}
return new JsonResponse($tab);
}
/**
* @Route("/api/parutions/associer/intranet/contact/liste/{contactId}/{listeId}", methods={"GET"}, name="associer_auteur_liste_parution")
*/
public function associerContactAuteurListeParution ($contactId, $listeId)
{
$url = 'extranet.escalconsulting.com/information/addContactListe.php?idContact='.$contactId."&id=".$listeId;
$c = curl_init();
curl_setopt($c, CURLOPT_URL, $url);
curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
curl_setopt($c, CURLOPT_HEADER, false);
$output = curl_exec($c);
curl_close($c);
$output = json_decode($output);
$response = new JsonResponse($output);
$response->headers->set('Content-Type', 'application/json');
return $response;
}
/**
* @Route("/api/parutions/importation/copie/parution/{parutionId}/{ancienId}", methods={"GET"}, name="parution_importer_copie_intranet")
*/
public function parutionImporterCopie ($parutionId, $ancienId, EntityManagerInterface $em)
{
// récupérer données parution
$parution = $this->getDoctrine()->getRepository('App:Parution')->find($parutionId);
// récupérer ancien id auteur
$authUserId = 0;
if($parution->getAuteur() != null) {
$nomPrenom = $parution->getAuteur()->getUser()->getPrenom().".".$parution->getAuteur()->getUser()->getNom();
if (strpos($nomPrenom,' ') !== false) {
$nomPrenom = str_replace(' ','.', $nomPrenom);
}
$url = 'extranet.escalconsulting.com/information/getMembreByNom.php?name='.$nomPrenom;
$c = curl_init();
curl_setopt($c, CURLOPT_URL, $url);
curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
curl_setopt($c, CURLOPT_HEADER, false);
$output = curl_exec($c);
curl_close($c);
$output = json_decode($output);
$output = (array)$output;
$authUserId = $output['id'];
}
// récupérer nom
$titreParution = $parution->getNom();
// récupérer date
if ($parution->getDate() != null) {
$dateParution = $parution->getDate()->format('Y-m-d H:i');
} else {
$dateParution = '';
}
// récupérer résume
$citationParution = $parution->getResume();
// récupérer commentaires
$commentaire = $parution->getCommentaire();
// récupérer id theme
if($parution->getTheme() != null){
$idThemeParution = $parution->getTheme()->getAncienId();
} else {
$idThemeParution = 0;
}
// récupérer qualification
$qualificationParution = $parution->getQualification();
// récupérer coefficient
$coefficientParution = $parution->getCoefficient();
// récupérer id type retombee
if($parution->getTypeRetombee() != null){
$idTypeRetombe = $parution->getTypeRetombee()->getId();
} else {
$idTypeRetombe = 0;
}
// récupérer id type annonce
if($parution->getTypeAnnonce() != null){
$idTypeAnnonce = $parution->getTypeAnnonce()->getId();
} else {
$idTypeAnnonce = 0;
}
// récupérer id support
if($parution->getSupport() != null){
$idSupportParution = $parution->getSupport()->getAncienId();
} else {
$idSupportParution = 0;
}
// récupérer id client
if($parution->getClient() != null){
$idclientParution = $parution->getClient()->getAncienId();
} else {
$idclientParution = 0;
}
// récupérer id format
if($parution->getFormat() != null){
$idFormatParution = $parution->getFormat()->getId();
} else {
$idFormatParution = 0;
}
// récupérer id suite itw
$idItvParution = 0;
if($parution->getSuiteItw() != null){
$idItvParution = $parution->getSuiteItw()->getAncienId();
} else {
$idItvParution = 0;
}
// récupérer id suite suivi
$idSuiviParution = 0;
if($parution->getSuiteSuivi() != null){
$idSuiviParution = $parution->getSuiteSuivi()->getAncienId();
} else {
$idSuiviParution = 0;
}
// récupérer id suite communique
$idCommuniqueParution = 0;
if($parution->getSuiteCommunique() != null){
$idCommuniqueParution = $parution->getSuiteCommunique()->getAncienId();
} else {
$idCommuniqueParution = 0;
}
// récupérer id suite campagne concurrente
if($parution->getCampagne() != null){
$libelleCampagne = $parution->getCampagne()->getLibelle();
$campagne = $this->getDoctrine()->getRepository('App:CampagneParution')->findOneBy(['libelle' => $libelleCampagne]);
$idCampagneParution = $campagne->getId();
} else {
$idCampagneParution = 0;
}
// récupérer divers
$diversParution = $this->getDoctrine()->getRepository('App:DiversParution')->findOneBy(['parution' => $parutionId]);
// récupérer photo
if($diversParution->getPhoto()) {
$photo = 'O';
} else {
$photo = 'N';
}
// récupérer illustration
if($diversParution->getIllustration()) {
$illustration = 'O';
} else {
$illustration = 'N';
}
// récupérer logo
if($diversParution->getLogo()) {
$logo = 'O';
} else {
$logo = 'N';
}
// récupérer urlclient
if($diversParution->getUrlClient()) {
$urlClient = 'O';
} else {
$urlClient = 'N';
}
// récupérer agenda
if($diversParution->getAgenda()) {
$agenda = 'O';
} else {
$agenda = 'N';
}
// récupérer graphique
if($diversParution->getGraphique()) {
$graphique = 'O';
} else {
$graphique = 'N';
}
// récupérer tableau
if($diversParution->getTableau()) {
$tableau = 'O';
} else {
$tableau = 'N';
}
// récupérer nomination
if($diversParution->getNomination()) {
$nomination = 'O';
} else {
$nomination = 'N';
}
// récupérer courriers des lecteurs
if($diversParution->getCourrierLecteur()) {
$cLecteur = 'O';
} else {
$cLecteur = 'N';
}
// récupérer pressroom
if($diversParution->getPressroom()) {
$pressroom = 'O';
} else {
$pressroom = 'N';
}
// récupérer mailing
if($diversParution->getMailing()) {
$mailing = 'O';
} else {
$mailing = 'N';
}
// récupérer mail créé
if($diversParution->getMailCree()) {
$mailCree = 'O';
} else {
$mailCree = 'N';
}
// récupérer imprimer
if($diversParution->getImprimer()) {
$imprimer = 'O';
} else {
$imprimer = 'N';
}
// récupérer bestOfClient
if($diversParution->getBestOfClient()) {
$bestOfClient = 'O';
} else {
$bestOfClient = 'N';
}
// récupérer bestOfGeneral
if($diversParution->getBestOfGeneral()) {
$bestOfGeneral = 'O';
} else {
$bestOfGeneral = 'N';
}
// récupérer paruFacebook
if($diversParution->getParuFb()) {
$paruFacebook = 'O';
} else {
$paruFacebook = 'N';
}
// récupérer paruTwitter
if($diversParution->getParuTw()) {
$paruTwitter = 'O';
} else {
$paruTwitter = 'N';
}
// récupérer paruFacebookEscal
if($diversParution->getParuFbEscal()) {
$paruFacebookEscal = 'O';
} else {
$paruFacebookEscal = 'N';
}
// récupérer paruTwitterEscal
if($diversParution->getParuTwEscal()) {
$paruTwitterEscal = 'O';
} else {
$paruTwitterEscal = 'N';
}
// récupérer création
if ($parution->getCreation() != null) {
$creationParution = $parution->getCreation()->format('Y-m-d H:i');
} else {
$creationParution = '';
}
// récupérer modification
if ($parution->getModification() != null) {
$modificationParution = $parution->getModification()->format('Y-m-d H:i');
} else {
$modificationParution = '';
}
try
{
$bdd = new PDO('mysql:host=185.126.230.125;dbname=escal_web;charset=utf8', 'escalprod', 'skl001');
}
catch (Exception $e)
{
die('Erreur : ' . $e->getMessage());
}
// si ce n'est pas une mise à jour
if ($ancienId == 0) {
// on insère la parution
if (strpos($titreParution,'"') !== false) {
$titreParution = str_replace('"','\"', $titreParution);
}
if (strpos($citationParution,'"') !== false) {
$citationParution = str_replace('"','\"', $citationParution);
}
if (strpos($qualificationParution,'"') !== false) {
$qualificationParution = str_replace('"','\"', $qualificationParution);
}
if (strpos($coefficientParution,'"') !== false) {
$coefficientParution = str_replace('"','\"', $coefficientParution);
}
$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`) '
.' 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.'")';
$retour = $bdd->exec($query);
if (!$retour) {
echo 'Problème lors de l\'insertion de la parution';
}
// on récupère la parution nouvellement créée
$query = 'SELECT MAX(`ID_parution`) as parutionId FROM `ecw_parutions`';
$reponse = $bdd->query($query);
while ($row = $reponse->fetch()) {
$parutionAncienId = $row['parutionId'];
}
$reponse->closeCursor();
// insérer asso parution contact
$parutionContacts = $this->getDoctrine()->getRepository('App:ParutionContact')->findBy(['parution' => $parutionId]);
foreach ($parutionContacts as $parutionContact) {
$query2 = 'INSERT INTO `ecw_contact_parution_asso` (`ID_contact`,`ID_parution`) '
.' VALUES ('.$parutionContact->getContact()->getAncienId().','.$parutionAncienId.')';
$retour = $bdd->exec($query2);
if (!$retour) {
echo 'Problème lors de l\'insertion de l\'asso parution contact';
}
}
return new JsonResponse($parutionAncienId);
}
// si c'est une mise à jour
else if ($ancienId != 0) {
// on met à jour la parution
if (strpos($titreParution,'"') !== false) {
$titreParution = str_replace('"','\"', $titreParution);
}
if (strpos($citationParution,'"') !== false) {
$citationParution = str_replace('"','\"', $citationParution);
}
if (strpos($qualificationParution,'"') !== false) {
$qualificationParution = str_replace('"','\"', $qualificationParution);
}
if (strpos($coefficientParution,'"') !== false) {
$coefficientParution = str_replace('"','\"', $coefficientParution);
}
$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;
$retour = $bdd->exec($query);
// maj asso parution contact
$parutionContacts = $this->getDoctrine()->getRepository('App:ParutionContact')->findBy(['parution' => $parutionId]);
$query = 'DELETE FROM `ecw_contact_parution_asso` WHERE `ID_parution`='.$ancienId;
$retour = $bdd->exec($query);
foreach ($parutionContacts as $parutionContact) {
$query2 = 'INSERT INTO `ecw_contact_parution_asso` (`ID_contact`,`ID_parution`) '
.' VALUES ('.$parutionContact->getContact()->getAncienId().','.$ancienId.')';
$retour = $bdd->exec($query2);
if (!$retour) {
echo 'Problème lors de l\'insertion de l\'asso parution contact';
}
}
return new JsonResponse($ancienId);
}
}
/**
* @Route("/api/parutions/auteur/intranet/{parutionId}", methods={"GET"}, name="rechercher_auteur_intranet_parution")
*/
public function rechercherAncienIdAuteur ($parutionId)
{
$parution = $this->getDoctrine()->getRepository('App:Parution')->find($parutionId);
$authUserId = 0;
// récupérer ancien id authuser
if($parution->getAuteur() != null) {
if($parution->getAuteur()->getUser() != null) {
$nomPrenom = $parution->getAuteur()->getUser()->getPrenom() . "." . $parution->getAuteur()->getUser()->getNom();
if (strpos($nomPrenom, ' ') !== false) {
$nomPrenom = str_replace(' ', '.', $nomPrenom);
}
$url = 'extranet.escalconsulting.com/information/getMembreByNom.php?name=' . $nomPrenom;
$c = curl_init();
curl_setopt($c, CURLOPT_URL, $url);
curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
curl_setopt($c, CURLOPT_HEADER, false);
$output = curl_exec($c);
curl_close($c);
$output = json_decode($output);
$output = (array)$output;
$authUserId = $output['id'];
}
}
return new JsonResponse($authUserId);
}
/**
* @Route("/api/parutions/importation/supprimer/copie/parution/{ancienIdParution}", methods={"GET"}, name="parution_supprimer_copie_intranet")
*/
public function societeSupprimerCopie ($ancienIdParution)
{
try
{
$bdd = new PDO('mysql:host=185.126.230.125;dbname=escal_web;charset=utf8', 'escalprod', 'skl001');
}
catch (Exception $e)
{
die('Erreur : ' . $e->getMessage());
}
// supprimer asso contacts
$query1 = 'DELETE FROM `ecw_contact_parution_asso` WHERE `ID_parution`='.$ancienIdParution;
$retour1 = $bdd->exec($query1);
// supprimer asso docs_lies
$query2 = 'DELETE FROM `ecw_docslies` WHERE `IDparution_doc`='.$ancienIdParution;
$retour2 = $bdd->exec($query2);
// supprimer parution
$query3 = 'DELETE FROM `ecw_parutions` WHERE `ID_parution`='.$ancienIdParution;
$retour5 = $bdd->exec($query3);
$query4 = 'DELETE FROM `ecw_listeparution_parution_asso` WHERE `ID_parution`='.$ancienIdParution;
$retour4 = $bdd->exec($query4);
return new JsonResponse('ok');
}
/**
* @Route("/api/parutions/recherche/intranet/liste/parution/{recherche}/{clientAncien}", methods={"GET"}, name="rechercher_liste_parution_associee_intranet")
*/
public function rechercherListeParutionAssociee ($recherche, $clientAncien)
{
$url = 'extranet.escalconsulting.com/information/getRechercheListeParutionsSuggestion.php?name='.$recherche.'&client='.$clientAncien;
$c = curl_init();
curl_setopt($c, CURLOPT_URL, $url);
curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
curl_setopt($c, CURLOPT_HEADER, false);
$output = curl_exec($c);
curl_close($c);
$output = json_decode($output);
$response = new JsonResponse($output);
$response->headers->set('Content-Type', 'application/json');
return $response;
}
/**
* @Route("/api/parutions/associer/intranet/liste/parution/{listeId}/{parutionAncienId}", methods={"GET"}, name="associer_parution_liste_intranet")
*/
public function associerParutionListe ($listeId, $parutionAncienId)
{
$url = 'extranet.escalconsulting.com/information/associerParutionListe.php?liste='.$listeId.'&parution='.$parutionAncienId;
$c = curl_init();
curl_setopt($c, CURLOPT_URL, $url);
curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
curl_setopt($c, CURLOPT_HEADER, false);
$output = curl_exec($c);
curl_close($c);
$output = json_decode($output);
$response = new JsonResponse($output);
$response->headers->set('Content-Type', 'application/json');
return $response;
}
/**
* @Route("/api/parutions/recuperer/intranet/listes/parution/{parutionAncienId}", methods={"GET"}, name="recuperer_parution_liste_associee_intranet")
*/
public function recupererParutionListeAssociee ($parutionAncienId)
{
$url = 'extranet.escalconsulting.com/information/getParutionListeAssociee.php?id='.$parutionAncienId;
$c = curl_init();
curl_setopt($c, CURLOPT_URL, $url);
curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
curl_setopt($c, CURLOPT_HEADER, false);
$output = curl_exec($c);
curl_close($c);
$output = json_decode($output);
$response = new JsonResponse($output);
$response->headers->set('Content-Type', 'application/json');
return $response;
}
/**
* @Route("/api/parutions/desassocier/intranet/liste/parution/{listesId}/{parutionAncienId}", methods={"GET"}, name="desassocier_parution_liste_intranet")
*/
public function desassocierParutionListe ($listesId, $parutionAncienId)
{
$listesIdTab = explode(",", $listesId);
foreach ($listesIdTab as $key => $listeId) {
if ($listeId != "") {
$url = 'extranet.escalconsulting.com/information/desassocierParutionListe.php?liste='.$listeId.'&parution='.$parutionAncienId;
$c = curl_init();
curl_setopt($c, CURLOPT_URL, $url);
curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
curl_setopt($c, CURLOPT_HEADER, false);
$output = curl_exec($c);
curl_close($c);
$output = json_decode($output);
$response = new JsonResponse($output);
$response->headers->set('Content-Type', 'application/json');
}
}
return new JsonResponse('ok');
}
/**
* @Route("/api/parutions/associer/intranet/mailing/parution/{parutionAncienId}/{associer}", methods={"GET"}, name="associer_parution_mailing_intranet")
*/
public function associerParutionMailing ($parutionAncienId, $associer)
{
$url = 'extranet.escalconsulting.com/information/associerParutionMailing.php?associer='.$associer.'&parution='.$parutionAncienId;
$c = curl_init();
curl_setopt($c, CURLOPT_URL, $url);
curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
curl_setopt($c, CURLOPT_HEADER, false);
$output = curl_exec($c);
curl_close($c);
$output = json_decode($output);
$response = new JsonResponse($output);
$response->headers->set('Content-Type', 'application/json');
return $response;
}
/**
* @Route("/api/parutions/inclure/pressroom/parution/{parutionAncienId}/{parutionId}", methods={"GET"}, name="inclure_pressroom_parution_intranet")
*/
public function inclurePressroomParution ($parutionAncienId, $parutionId)
{
// récupérer divers
$diversParution = $this->getDoctrine()->getRepository('App:DiversParution')->findOneBy(['parution' => $parutionId]);
// récupérer pressroom
if($diversParution->getPressroom()) {
$pressroom = 'O';
} else {
$pressroom = 'N';
}
try
{
$bdd = new PDO('mysql:host=185.126.230.125;dbname=escal_web;charset=utf8', 'escalprod', 'skl001');
}
catch (Exception $e)
{
die('Erreur : ' . $e->getMessage());
}
$query = 'UPDATE `ecw_parutions` SET `pressroom_parution`="'.$pressroom.'" WHERE `ID_parution`='.$parutionAncienId;
$retour = $bdd->exec($query);
return new JsonResponse('ok');
}
/**
* @Route("/api/parutions/recherche/intranet/{recherche}/{typeRecherche}", methods={"GET"}, name="suggestion_recherche_parution_intranet")
*/
public function getParutionIntranetSuggestion ($recherche, $typeRecherche)
{
$url = 'extranet.escalconsulting.com/information/getParutionsIntranetByType.php?search='.$recherche.'&type='.$typeRecherche;
$c = curl_init();
curl_setopt($c, CURLOPT_URL, $url);
curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
curl_setopt($c, CURLOPT_HEADER, false);
$output = curl_exec($c);
curl_close($c);
$output = json_decode($output);
$response = new JsonResponse($output);
$response->headers->set('Content-Type', 'application/json');
return $response;
}
/**
* @Route("/api/parutions/recherche/fiche/intranet/{id}", methods={"GET"}, name="fiche_recherche_parution_intranet")
*/
public function getParutionIntranetFiche ($id)
{
$url = 'extranet.escalconsulting.com/information/getParutionIntranetById.php?id='.$id;
$c = curl_init();
curl_setopt($c, CURLOPT_URL, $url);
curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
curl_setopt($c, CURLOPT_HEADER, false);
$output = curl_exec($c);
curl_close($c);
$output = json_decode($output);
$response = new JsonResponse($output);
$response->headers->set('Content-Type', 'application/json');
return $response;
}
/**
* @Route("/api/parutions/article/client/generer/pdf", name="generer_pdf_parution_retombee", methods={"POST"})
* @param Request $request
* @param WordParutionInterface $wordParution
* @return Response
* @throws \PhpOffice\PhpWord\Exception\Exception
*/
public function PostGenererPdfParutionClient(Request $request, WordParutionInterface $wordParution)
{
ini_set('memory_limit',-1);
set_time_limit(0);
// récupération des datas post
$content = $request->getContent();
$content = str_replace("\n","",$content);
$content = str_replace("\r","",$content);
$content = str_replace("\t","",$content);
$datas = json_decode($content, true);
// creation du pressbook
$result = $wordParution->genererParution($datas, $request->server->get('DOCUMENT_ROOT'));
if(isset($result['type'])){
return new Response(json_encode($result));
}
return new Response('{ "status": "ok" }');
}
/**
* @Route("/api/parutions/recuperer/logo/support/intranet/{supportAncienId}", methods={"GET"}, name="recuperer_logo_support_intranet_parution")
*/
public function recupererLogoSupportIntranet ($supportAncienId)
{
$url = 'extranet.escalconsulting.com/information/getLogoSupportById.php?support='.$supportAncienId;
$c = curl_init();
curl_setopt($c, CURLOPT_URL, $url);
curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
curl_setopt($c, CURLOPT_HEADER, false);
$output = curl_exec($c);
curl_close($c);
$output = json_decode($output);
$response = new JsonResponse($output);
$response->headers->set('Content-Type', 'application/json');
return $response;
}
/**
* @Route("/api/parutions/contacts/desassocier/{parutionId}", methods={"GET"}, name="parution_contact_desassocier")
*/
public function deleteParutionContact($parutionId, EntityManagerInterface $em): JsonResponse
{
$parution = $this->getDoctrine()->getRepository('App:Parution')->find($parutionId);
if ($parution != null) {
$associations = $parution->getParutionContacts();
foreach ($associations as $association) {
$parution->removeContact($association);
}
$em->flush();
}
return new JsonResponse("ok");
}
}