<?php
namespace App\Controller;
use App\Entity\Agent;
use App\Entity\Filiale;
use App\Entity\GestionnaireFiliale;
use App\Entity\Etat ;
use App\Entity\Formules;
use App\Entity\User;
use App\Entity\Evenement;
use App\Entity\SocialLinks;
use App\Entity\PiecesEvenement;
use App\Entity\Region;
use App\Entity\Pays;
use App\Entity\Langue;
use App\Entity\TailleEntreprise;
use App\Entity\Ape;
use App\Entity\Departement;
use App\Entity\PieceJointeProfessionnel;
use App\Entity\Publicite;
use App\Entity\PiecesPublicite;
use App\Entity\CommMedia ;
use App\Entity\Competences;
use DateTime;
use Symfony\Component\Filesystem\Filesystem;
use App\Repository\UserRepository;
use App\Repository\ConfigSmtpRepository;
use App\Repository\AdministrateursRepository;
use App\Repository\ConnexionGestionnaireEntrepriseRepository;
use App\Repository\DepartementRepository;
use App\Repository\NiveauRepository;
use App\Repository\PartenariatRepository;
use App\Repository\EtatRepository;
use App\Repository\CompetencesRepository;
use App\Repository\GestionnaireEntrepriseRepository;
use App\Repository\EntrepriseRepository;
use App\Repository\GestionnaireFilialeRepository;
use App\Repository\PaysRepository;
use App\Repository\AgentRepository;
use App\Repository\PieceJointeProfessionnelRepository;
use App\Repository\FormulesRepository;
use App\Repository\FilialeRepository;
use App\Repository\ProfessionnelRepository;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use App\Repository\GroupeRestrictionRepository;
use App\Repository\GroupeRestrictionPageRepository;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\Session\SessionInterface;
use Symfony\Component\DependencyInjection\ContainerInterface as Container;
use Doctrine\ORM\EntityManagerInterface;
class EntreprisesController extends AbstractController
{
public function __construct(SessionInterface $session , Container $container , EntityManagerInterface $em )
{
$this->em = $em ;
$this->session = $session ;
}
function genererCode($length){
$chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
$string = '';
for($i=0; $i<$length; $i++){
$string .= $chars[rand(0, strlen($chars)-1)];
}
return $string;
}
public function setSaltMdp($mdp)
{
$salt1 ='kgH94zHr927J3zjT4VvC' ;
$salt2 = 'jA9q52MuFj4u2DxQ9m5X' ;
return sha1($salt1.$mdp.$salt2) ;
}
private function getAdressIp(){
$ip_expediteur = '' ;
if(!empty($_SERVER['HTTP_CLIENT_IP'])){
$ip_expediteur = $_SERVER['HTTP_CLIENT_IP'];
}elseif(!empty($_SERVER['HTTP_X_FORWARDED_FOR'])){
$ip_expediteur = $_SERVER['HTTP_X_FORWARDED_FOR'];
}else{
$ip_expediteur = $_SERVER['REMOTE_ADDR'];
}
return $ip_expediteur ;
}
/**
* @Route("/entreprises", name="entreprises", methods={"GET","POST"} , options={"expose"=true})
*/
public function entreprises(Request $request , AdministrateursRepository $AdministrateursRepository , EtatRepository $EtatRepository , EntrepriseRepository $EntrepriseRepository,GroupeRestrictionRepository $groupeRestrictionRepository,
GroupeRestrictionPageRepository $grouprestrictionpageRepository): Response
{
$accessArray=[];
$niveauAcessPages = [];
if( ($this->session->get('susrD3p9LjjY86') == 'gA64ya3G5N') && ($request->hasSession()) ){
$admin = $this->session->get('supAdT9m2XJzn4');
}else if(($this->session->get('supAdT9m2XJzn4') != null) && ($request->hasSession())){
//return $this->redirectToRoute('connexion');
$admin = $AdministrateursRepository->findOneBy(['email'=>$this->session->get('supAdT9m2XJzn4')['email']]);
$adminId = $admin->getId();
$groupeRestrictions = $groupeRestrictionRepository->findByAdminId($adminId);
$restrictionPages = $grouprestrictionpageRepository->findByRestriction($groupeRestrictions[0]->getId());
$accessArray = $restrictionPages[0]->getAccess();
$niveauAcessPagesCollection = $restrictionPages[0]->getNiveauAcessPages();
$niveauAcessPagesCollection->initialize();
$niveauAcessPages = $niveauAcessPagesCollection->toArray();
}else {
return $this->redirectToRoute('connexion');
}
$etat = $EtatRepository->findAll();
$entreprises = $EntrepriseRepository->findAll();
return $this->render('entreprises/entreprises.html.twig',[
'admin' => $admin,
'etat' => $etat,
'entreprises'=>$entreprises,
//'access' => $accessArray,
//'pages' => $niveauAcessPages
]);
}
/**
* @Route("/serverEntreprise", name="serverEntreprise", methods={"GET","POST"}, options = {"expose" = true})
*/
public function serverEntreprise(Request $request, PaysRepository $paysRepository, AdministrateursRepository $AdministrateursRepository, PieceJointeProfessionnelRepository $PieceJointeProfessionnelRepository): Response
{
$sql_where_geo = '';
$conditions = [];
if (($this->session->get('susrD3p9LjjY86') == 'gA64ya3G5N') && ($request->hasSession())) {
$admin = $this->session->get('supAdT9m2XJzn4');
$sql_where_geo = '';
} else {
$admin = $AdministrateursRepository->findOneBy(['email' => $this->session->get('supAdT9m2XJzn4')['email']]);
$adminCodesGeo = $admin->getGeo();
if (!empty($adminCodesGeo) && $adminCodesGeo[0] !== "") {
foreach ($adminCodesGeo as $code) {
if (str_ends_with($code, '*')) {
$conditions[] = "u.code_pays_dep LIKE '" . rtrim($code, '*') . "%'";
} else {
$conditions[] = "u.code_pays_dep = '$code'";
}
}
$sql_where_geo = implode(' OR ', $conditions);
} else {
$sql_where_geo = '';
}
}
$sql_where = "";
if ($request->get('search')['value'] != "") {
$sql_where .= ' AND (u.nom_entreprise LIKE \'%' . $request->get('search')['value'] . '%\'';
}
$limit = $request->get('length');
$offset = $request->get('start');
$columns = ['u.id', 'u.date_creation_entreprise', 'u.nom_entreprise', 'u.taille', 'u.etat'];
$orders = [];
for ($i = 0; $i < count($request->get('order')); $i++) {
$orders[] = $columns[$request->get('order')[$i]['column']] . ' ' . $request->get('order')[$i]['dir'];
}
$order = count($orders) > 0 ? " ORDER BY " . implode(' , ', $orders) : "";
$total_entreprises = $this->em->createQuery(
'SELECT u
FROM App\Entity\Entreprise u
WHERE 1=1 ' . ($sql_where_geo ? ' AND (' . $sql_where_geo . ')' : '') . $sql_where
)->getResult();
$I_nbResultatsTotal = count($total_entreprises);
$selectedStatusId = $request->get('status_id');
$whereClause = $selectedStatusId !== null ? " AND u.etat = '$selectedStatusId'" : " AND u.etat = '4'";
if (($this->session->get('susrD3p9LjjY86') == 'gA64ya3G5N') && ($request->hasSession())) {
/* $entreprises = $this->em->createQuery(
'SELECT u
FROM App\Entity\Entreprise u
WHERE 1=1 ' . ($sql_where_geo ? ' AND (' . $sql_where_geo . ')' : '') . $sql_where . $whereClause . ' ' . $order
)
->setMaxResults($limit)
->setFirstResult($offset)
->getResult(); */
$entreprises = $this->em->createQuery(
'SELECT u
FROM App\Entity\Entreprise u
WHERE 1=1 '
. $sql_where
. $whereClause
. ' ' . $order
)
->setMaxResults($limit)
->setFirstResult($offset)
->getResult();
} else {
// Récupérer les pays géographiques de l'administrateur
$paysGeo = $admin->getPaysGeo();
// Initialisation de $entreprises
$entreprises = [];
// Si $paysGeo est null, ne pas filtrer par pays
if ($paysGeo !== null) {
// Récupérer les entités Pays par leurs noms
$paysEntities = $paysRepository->createQueryBuilder('p')
->where('p.id IN (:id)')
->setParameter('id', $paysGeo)
->getQuery()
->getResult();
// Récupérer les IDs des pays
$paysIds = array_map(fn($pays) => $pays->getId(), $paysEntities);
// Construire le SQL WHERE pour filtrer par pays
$sql_where_geo_pays = '';
if (!empty($paysIds)) {
$sql_where_geo_pays = ' AND u.Pays IN (:paysIds)';
} else {
$sql_where_geo_pays = ' AND 1 = 0';
}
if ($sql_where_geo == "") {
$entreprises = $this->em->createQuery(
'SELECT u
FROM App\Entity\Entreprise u
WHERE 1=1 '
. $sql_where
. $whereClause
. $sql_where_geo_pays
. ' ' . $order
)
->setParameter('paysIds', $paysIds)
->setMaxResults($limit)
->setFirstResult($offset)
->getResult();
} else {
$entreprises = $this->em->createQuery(
'SELECT u
FROM App\Entity\Entreprise u
WHERE 1=1 '
. ($sql_where_geo ? ' AND (' . $sql_where_geo . ')' : '')
. $sql_where
. $whereClause
. $sql_where_geo_pays
. ' ' . $order
)
->setParameter('paysIds', $paysIds)
->setMaxResults($limit)
->setFirstResult($offset)
->getResult();
}
} else {
// Si $paysGeo est null, ne filtrer que par $sql_where_geo
if ($sql_where_geo == "") {
$entreprises = $this->em->createQuery(
'SELECT u
FROM App\Entity\Entreprise u
WHERE 1=1 '
. $sql_where
. $whereClause
. ' ' . $order
)
->setMaxResults($limit)
->setFirstResult($offset)
->getResult();
} else {
$entreprises = $this->em->createQuery(
'SELECT u
FROM App\Entity\Entreprise u
WHERE 1=1 '
. ($sql_where_geo ? ' AND (' . $sql_where_geo . ')' : '')
. $sql_where
. $whereClause
. ' ' . $order
)
->setMaxResults($limit)
->setFirstResult($offset)
->getResult();
}
}
}
$output = [];
$outputDocuments = [];
$etat = '';
foreach ($entreprises as $entreprise) {
$outputDocuments = [];
$EntrepriseDocuments = $PieceJointeProfessionnelRepository->findBy(['entreprise' => $entreprise->getId()]);
foreach ($EntrepriseDocuments as $EntrepriseDocument) {
$outputDocuments[] = [
'EntrepriseDocumentsNom' => $EntrepriseDocument->getNomDocument(),
'EntrepriseDocumentsDir' => $EntrepriseDocument->getDirectory(),
];
}
$output[] = [
'id' => $entreprise->getId(),
'dateCreation' => $entreprise->getDateCreationCompte() !== null ? date_format($entreprise->getDateCreationCompte(), 'd/m/Y H:i') : '--',
'nom' => $entreprise->getNomEntreprise(),
'taille' => $entreprise->getTaille(),
'status' => $entreprise->getEtat()->getEtat(),
'idCrypter' => sha1($entreprise->getId()),
'EntrepriseDocumentsNom' => $outputDocuments,
];
}
$JSON = json_encode($output);
$JSON = '{"draw": ' . $request->get('draw') . ',"recordsTotal":' . $I_nbResultatsTotal . ',"recordsFiltered":' . $I_nbResultatsTotal . ',"data":' . $JSON . '}';
$response = new Response($JSON, 200, ['Content-Type' => 'application/json']);
return $response;
}
/**
* @Route("/modif_entreprise/{id}", name="modif_entreprise" , methods={"POST"}, options = {"expose"=true})
*/
public function modif_entreprise(int $id, Request $request,EntrepriseRepository $EntrepriseRepository): Response
{
$entreprises = $EntrepriseRepository->find($id);
if (!$entreprises) {
return new JsonResponse(['status' => 'KOO', 'message' => 'Entreprise non trouvé !']);
}
$etatId = $request->get('etat_edit');
$etat = $this->em->getRepository(Etat::class)->find($etatId);
$entreprises->setEtat($etat);
try {
$this->em->persist($entreprises);
$this->em->flush();
return new JsonResponse(['status' => 'OK', 'message' => 'Entreprise mis à jour avec succès !']);
} catch (\Exception $e) {
return new JsonResponse(['status' => 'error', 'message' => 'Erreur lors de la modification du entreprise : ' . $e->getMessage()], Response::HTTP_INTERNAL_SERVER_ERROR);
}
}
/**
* @Route("/edit_competence_entreprise", name="edit_competence_entreprise", methods={"GET","POST"} , options={"expose"=true})
*/
public function edit_competence_entreprise(Request $request,AgentRepository $AgentRepository,CompetencesRepository $CompetencesRepository,FilialeRepository $FilialeRepository,FormulesRepository $FormulesRepository,ProfessionnelRepository $ProfessionnelRepository, PaysRepository $PaysRepository,GestionnaireEntrepriseRepository $GestionnaireEntrepriseRepository, AdministrateursRepository $AdministrateursRepository , EtatRepository $EtatRepository , EntrepriseRepository $EntrepriseRepository,GroupeRestrictionRepository $groupe_restrictionRepository,
GroupeRestrictionPageRepository $grouprestrictionpageRepository): Response{
$accessArray=[];
$niveauAcessPages = [];
if( ($this->session->get('susrD3p9LjjY86') == 'gA64ya3G5N') && ($request->hasSession()) ){
$admin = $this->session->get('supAdT9m2XJzn4');
}else{
if (($this->session->get('supAdT9m2XJzn4') == null)) {
return $this->redirectToRoute('connexion');
}
$admin = $AdministrateursRepository->findOneBy(['email'=>$this->session->get('supAdT9m2XJzn4')['email']]);
$adminId = $admin['userId'];
$groupeRestrictions = $groupe_restrictionRepository->findByAdminId($adminId);
$restrictionPages = $grouprestrictionpageRepository->findByRestriction($groupeRestrictions[0]['id']);
$accessArray = $restrictionPages[0]->getAccess();
$niveauAcessPagesCollection = $restrictionPages[0]->getNiveauAcessPages();
$niveauAcessPagesCollection->initialize();
$niveauAcessPages = $niveauAcessPagesCollection->toArray();
}
$entreprise = $EntrepriseRepository->find($request->get('idEntreprise'));
if (!$entreprise) {
$msg = ['msg'=>'KOO'] ;
$JSON = json_encode($msg);
$response = new Response($JSON, 200, ['Content-Type' => 'application/json']);
return $response ;
}
$entreprise->setCompetences($request->get('competencesEntreprise'));
$entreprise->setDateUpdate(DateTime::createFromFormat('Y-m-d H:i:s', date('Y-m-d H:i:s' ) ));
$this->em->persist($entreprise);
$this->em->flush();
$msg = ['msg'=>'OK'] ;
$JSON = json_encode($msg);
$response = new Response($JSON, 200, ['Content-Type' => 'application/json']);
return $response ;
}
/**
* @Route("/edit_themes_entreprise", name="edit_themes_entreprise", methods={"GET","POST"} , options={"expose"=true})
*/
public function edit_themes_entreprise(Request $request,AgentRepository $AgentRepository,CompetencesRepository $CompetencesRepository,FilialeRepository $FilialeRepository,FormulesRepository $FormulesRepository,ProfessionnelRepository $ProfessionnelRepository, PaysRepository $PaysRepository,GestionnaireEntrepriseRepository $GestionnaireEntrepriseRepository, AdministrateursRepository $AdministrateursRepository , EtatRepository $EtatRepository , EntrepriseRepository $EntrepriseRepository,GroupeRestrictionRepository $groupe_restrictionRepository,GroupeRestrictionPageRepository $grouprestrictionpageRepository): Response
{
$accessArray=[];
$niveauAcessPages = [];
if( ($this->session->get('susrD3p9LjjY86') == 'gA64ya3G5N') && ($request->hasSession()) ){
$admin = $this->session->get('supAdT9m2XJzn4');
}else{
if (($this->session->get('supAdT9m2XJzn4') == null)) {
return $this->redirectToRoute('connexion');
}
$admin = $AdministrateursRepository->findOneBy(['email'=>$this->session->get('supAdT9m2XJzn4')['email']]);
$adminId = $admin['userId'];
$groupeRestrictions = $groupe_restrictionRepository->findByAdminId($adminId);
$restrictionPages = $grouprestrictionpageRepository->findByRestriction($groupeRestrictions[0]['id']);
$accessArray = $restrictionPages[0]->getAccess();
$niveauAcessPagesCollection = $restrictionPages[0]->getNiveauAcessPages();
$niveauAcessPagesCollection->initialize();
$niveauAcessPages = $niveauAcessPagesCollection->toArray();
}
$entreprise = $EntrepriseRepository->find($request->get('idEntrepriseTheme'));
if (!$entreprise) {
$msg = ['msg'=>'KOO'] ;
$JSON = json_encode($msg);
$response = new Response($JSON, 200, ['Content-Type' => 'application/json']);
return $response ;
}
$entreprise->setThemes($request->get('themesEntreprise'));
$entreprise->setDateUpdate(DateTime::createFromFormat('Y-m-d H:i:s', date('Y-m-d H:i:s' ) ));
$this->em->persist($entreprise);
$this->em->flush();
$msg = ['msg'=>'OK'] ;
$JSON = json_encode($msg);
$response = new Response($JSON, 200, ['Content-Type' => 'application/json']);
return $response ;
}
/**
* @Route("/edit_entreprise_formule", name="edit_entreprise_formule", methods={"GET","POST"} , options={"expose"=true})
*/
public function edit_entreprise_formule(Request $request,EntrepriseRepository $EntrepriseRepository,FormulesRepository $FormulesRepository,GestionnaireEntrepriseRepository $GestionnaireEntrepriseRepository): Response
{
//dd($request->request->all());
//$gestionnaire = $GestionnaireEntrepriseRepository->find($request->get('GestionnaireId'));
$entreprise= $EntrepriseRepository->find($request->get('entrepriseId'));
if (!$entreprise) {
$msg = ['msg'=>'KOO'] ;
$JSON = json_encode($msg);
$response = new Response($JSON, 200, ['Content-Type' => 'application/json']);
return $response ;
}
// $formule = $FormulesRepository->find($request->get('NewFormuleId'));
$formule = $FormulesRepository->find($request->get('FormuleId'));
$entreprise->setFormule($formule);
if($formule->getPrix()){
$entreprise->setPrixFormuleHt($formule->getPrix());
if($formule->getRegimeTva()=="Autoliquidation"){
$entreprise->setTvaFormule("0");
$entreprise->setPrixFormuleTtc($formule->getPrix());
}
else
{
$entreprise->setTvaFormule($entreprise->getPays()->getTva());
if($entreprise->getPays()->getTva()){
$prix = (float) $formule->getPrix();
$tva = (float) $entreprise->getPays()->getTva();
$prixFormuleTtc = $prix + ( $prix * ($tva / 100));
$prixFormuleTtcString = (string) $prixFormuleTtc;
$entreprise->setPrixFormuleTtc($prixFormuleTtcString);
}
else{
$entreprise->setPrixFormuleTtc($formule->getPrix());
}
}
}
$entreprise->setDateUpdate(DateTime::createFromFormat('Y-m-d H:i:s', date('Y-m-d H:i:s' ) ));
$this->em->persist($entreprise);
$this->em->flush();
$msg = ['msg'=>'OK'] ;
$JSON = json_encode($msg);
$response = new Response($JSON, 200, ['Content-Type' => 'application/json']);
return $response ;
}
/**
* @Route("/edit_entreprise", name="edit_entreprise", methods={"GET","POST"} , options={"expose"=true})
*/
public function edit_entreprise(Request $request,AgentRepository $AgentRepository,CompetencesRepository $CompetencesRepository,FilialeRepository $FilialeRepository,FormulesRepository $FormulesRepository,ProfessionnelRepository $ProfessionnelRepository, PaysRepository $PaysRepository,GestionnaireEntrepriseRepository $GestionnaireEntrepriseRepository, AdministrateursRepository $AdministrateursRepository , EtatRepository $EtatRepository , EntrepriseRepository $EntrepriseRepository,GroupeRestrictionRepository $groupe_restrictionRepository,
GroupeRestrictionPageRepository $grouprestrictionpageRepository): Response{
$accessArray=[];
$niveauAcessPages = [];
if( ($this->session->get('susrD3p9LjjY86') == 'gA64ya3G5N') && ($request->hasSession()) ){
$admin = $this->session->get('supAdT9m2XJzn4');
}else{
if (($this->session->get('supAdT9m2XJzn4') == null)) {
return $this->redirectToRoute('connexion');
}
$admin = $AdministrateursRepository->findOneBy(['email'=>$this->session->get('supAdT9m2XJzn4')['email']]);
}
$entreprise = $EntrepriseRepository->find($request->get('idEntreprise'));
if (!$entreprise) {
$msg = ['msg'=>'KOO'] ;
$JSON = json_encode($msg);
$response = new Response($JSON, 200, ['Content-Type' => 'application/json']);
return $response ;
}
$entreprise->setNomEntreprise($request->get('nomEntreprise'));
$entreprise->setDescription($request->get('descriptionEntreprise'));
$entreprise->setDateUpdate(DateTime::createFromFormat('Y-m-d H:i:s', date('Y-m-d H:i:s' ) ));
if($request->get('etatEntreprise')){
$etat = $EtatRepository->find($request->get('etatEntreprise'));
$entreprise->setEtat($etat );
}
$entreprise->setTaille($request->get('tailleEntreprise'));
$entreprise->setApe($request->get('apeEntreprise'));
$entreprise->setSiren($request->get('sirenEntreprise'));
$entreprise->setAdresse($request->get('adresseEntreprise'));
$pays = $this->em->getRepository(Pays::class)->find($request->request->get('paysEntreprise'));
//$adresse = $request->request->get('adresse');
//$email = $request->request->get('email');
$entreprise->setVille($request->get('villeEntreprise'));
$entreprise->setPays($pays);
$dep=$this->em->getRepository(Departement::class)->find($request->get('DepartementEntreprise'));
$entreprise->setDepartement($dep);
$code_pays_dep=$pays->getAlpha2().$dep->getNumero();
$entreprise->setCodePaysDep($code_pays_dep);
$entreprise->setNomVoie($request->get('nomVoieEntreprise'));
$entreprise->setNumVoie($request->get('numVoieEntreprise'));
$entreprise->setTypeVoie($request->get('typeVoieEntreprise'));
$entreprise->setCodePostal($request->get('cpEntreprise'));
$entreprise->setTelephone($request->get('telephoneEntreprise'));
/*$imgEntreprise=$request->files->get('imageEntreprise');
if( $imgEntreprise!=null){
$uploadDirRoot = $this->getParameter('uploads_directory') ;
$filesystem = new Filesystem();
$imgName = $imgEntreprise->getClientOriginalName();
$imgDir = $uploadDirRoot.'/entreprises/'.$entreprise->getId().'/siege' ;
if( $filesystem->exists($imgDir ) == false ){
$filesystem->mkdir($imgDir , 0777, true);
}
$imgEntreprise->move($imgDir, $imgName);
$imgEntreprise->setImage($imgName);
$imgEntreprise->setDir('/uploads/entreprise/'.$entreprise->getId().'/siege');
}*/
$imageEntreprise=$request->files->get('imageEntreprise');
if( $imageEntreprise!=null){
$uploadDirRoot = $this->getParameter('uploads_directory') ;
if( $entreprise->getImage()!=null)
{
$filesystem = new Filesystem();
$filePath = $uploadDirRoot.'/entreprises/'.$entreprise->getId().'/siege' . '/' . $entreprise->getImage();
$filesystem->remove($filePath);
}
$filesystem = new Filesystem();
$imgName = $imageEntreprise->getClientOriginalName();
$imgDir = $uploadDirRoot.'/entreprises/'.$entreprise->getId().'/siege' ;
if( $filesystem->exists($imgDir ) == false ){
$filesystem->mkdir($imgDir , 0777, true);
}
$imageEntreprise->move($imgDir, $imgName);
$entreprise->setImage($imgName);
$entreprise->setDir('/uploads/entreprises/'.$entreprise->getId().'/siege');;
}
$this->em->persist($entreprise);
$this->em->flush();
$msg = ['msg'=>'OK'] ;
$JSON = json_encode($msg);
$response = new Response($JSON, 200, ['Content-Type' => 'application/json']);
return $response ;
}
/**
* @Route("/edit_gestionnaire_entreprise", name="edit_gestionnaire_entreprise", methods={"GET","POST"} , options={"expose"=true})
*/
public function edit_gestionnaire_entreprise(Request $request,UserRepository $UserRepository,AgentRepository $AgentRepository,CompetencesRepository $CompetencesRepository,FilialeRepository $FilialeRepository,FormulesRepository $FormulesRepository,ProfessionnelRepository $ProfessionnelRepository, PaysRepository $PaysRepository,GestionnaireEntrepriseRepository $GestionnaireEntrepriseRepository, AdministrateursRepository $AdministrateursRepository , EtatRepository $EtatRepository , EntrepriseRepository $EntrepriseRepository,GroupeRestrictionRepository $groupe_restrictionRepository,
GroupeRestrictionPageRepository $grouprestrictionpageRepository): Response{
$accessArray=[];
$niveauAcessPages = [];
if( ($this->session->get('susrD3p9LjjY86') == 'gA64ya3G5N') && ($request->hasSession()) ){
$admin = $this->session->get('supAdT9m2XJzn4');
}else{
if (($this->session->get('supAdT9m2XJzn4') == null)) {
return $this->redirectToRoute('connexion');
}
$admin = $AdministrateursRepository->findOneBy(['email'=>$this->session->get('supAdT9m2XJzn4')['email']]);
}
$gestionnaire= $GestionnaireEntrepriseRepository->find($request->get('idGestionnaire'));
if (!$gestionnaire) {
$msg = ['msg'=>'KOO'] ;
$JSON = json_encode($msg);
$response = new Response($JSON, 200, ['Content-Type' => 'application/json']);
return $response ;
}
$existingGestionnaire = $GestionnaireEntrepriseRepository->findOneBy(['email' => $request->get('emailGestionnaire')]);
$existingUser = $UserRepository->findOneBy(['email' => $request->get('emailGestionnaire')]);
$gUser=$gestionnaire->getUser();
if(($existingUser && $existingUser->getId()!=$gUser->getId())||($existingGestionnaire &&$existingGestionnaire->getId()!=$gestionnaire->getId()))
{ $msg = ['msg'=>'email error'] ;
$JSON = json_encode($msg);
$response = new Response($JSON, 200, ['Content-Type' => 'application/json']);
return $response ;
}
else
{
$gestionnaire->setEmail($request->get('emailGestionnaire'));
$gUser->setEmail($request->get('emailGestionnaire'));
}
$date_naisance = \DateTime::createFromFormat('d/m/Y', $request->get('date_naisance'));
$pays = $this->em->getRepository(Pays::class)->find($request->get('paysGestionnaire'));
$langue = $this->em->getRepository(Langue::class)->find($request->get('langueGestionnaire'));
$gestionnaire->setCivilite($request->get('civilite'));
$gestionnaire->setNom($request->get('nomGestionnaire'));
$gestionnaire->setPrenom($request->get('prenomGestionnaire'));
$gestionnaire->setTelephone($request->get('telephoneGestionnaire'));
$gestionnaire->setPortable($request->get('portableGestionnaire'));
$gestionnaire->setVille($request->get('villeGestionnaire'));
$gestionnaire->setAdress($request->get('adressGestionnaire'));
$gestionnaire->setNumVoie($request->get('numVoieGestionnaire'));
$gestionnaire->setTypeVoie($request->get('typeVoieGestionnaire'));
$gestionnaire->setNomVoie($request->get('nomVoieGestionnaire'));
$gestionnaire->setCodePostal($request->get('cpGestionnaire'));
$gestionnaire->setPays($pays);
$dep=$this->em->getRepository(Departement::class)->find($request->get('DepartementGestionnaire'));
$gestionnaire->setDepartement($dep);
$code_pays_dep=$pays->getAlpha2().$dep->getNumero();
$gestionnaire->setCodePaysDep($code_pays_dep);
$gestionnaire->setLangue($langue);
$gestionnaire->setDateNaissance($date_naisance);
if($request->get('agentGestionnaire')){
$gestionnaire->setAgent(1);
}
else
{
$gestionnaire->setAgent(0);
}
$gestionnaire->setDateUpdate(DateTime::createFromFormat('Y-m-d H:i:s', date('Y-m-d H:i:s' ) ));
if($request->get('etatGestionnaire')){
$etat = $EtatRepository->find($request->get('etatGestionnaire'));
$gestionnaire->setEtat($etat);
}
if($request->get('PassGestionnaire')!=""){
$gestionnaire->setPassword($this->setSaltMdp($request->get('PassGestionnaire')));
$gUser->setPassword($this->setSaltMdp($request->get('PassGestionnaire')));
}
/* if($request->get('formuleGestionnaire')){
$formuleGestionnaire = $FormuleRepository->find($request->get('formuleGestionnaire'));
$gestionnaire->setFormule($formuleGestionnaire);
}
*/
$this->em->persist($gestionnaire);
$this->em->persist($gUser);
$this->em->flush();
$msg = ['msg'=>'OK'] ;
$JSON = json_encode($msg);
$response = new Response($JSON, 200, ['Content-Type' => 'application/json']);
return $response ;
}
/**
* @Route("/fiche_entreprise/{id}", name="fiche_entreprise", methods={"GET","POST"} , options={"expose"=true})
*/
public function fiche_enreprise(Request $request,$id,NiveauRepository $NiveauRepository,AgentRepository $AgentRepository,CompetencesRepository $CompetencesRepository,FilialeRepository $FilialeRepository,FormulesRepository $FormulesRepository,ProfessionnelRepository $ProfessionnelRepository, PaysRepository $PaysRepository,GestionnaireEntrepriseRepository $GestionnaireEntrepriseRepository, AdministrateursRepository $AdministrateursRepository , EtatRepository $EtatRepository , EntrepriseRepository $EntrepriseRepository,GroupeRestrictionRepository $groupe_restrictionRepository,
GroupeRestrictionPageRepository $grouprestrictionpageRepository,PieceJointeProfessionnelRepository $PieceJointeProfessionnelRepository ): Response{
$accessArray=[];
$niveauAcessPages = [];
if( ($this->session->get('susrD3p9LjjY86') == 'gA64ya3G5N') && ($request->hasSession()) ){
$admin = $this->session->get('supAdT9m2XJzn4');
}else{
if (($this->session->get('supAdT9m2XJzn4') == null)) {
return $this->redirectToRoute('connexion');
}
$admin = $AdministrateursRepository->findOneBy(['email'=>$this->session->get('supAdT9m2XJzn4')['email']]);
}
$entreprise = $this->em->createQuery(
'SELECT c
FROM App\Entity\Entreprise c
WHERE SHA1(c.id) = \''.$id.'\'
'
)
->getOneOrNullResult() ;
if(!$entreprise){
return $this->redirectToRoute('entreprises');
}
//$entreprise = $EntrepriseRepository->find($id);
/*
$etats = $EtatRepository->findAll();
$pays=$PaysRepository->findAll();
$formules=$FormulesRepository->findAll();
$profetionnels=$ProfessionnelRepository->findAll();
$filiales = $FilialeRepository->findBy(['entreprise' => $entreprise->getId()]);
$competences=$CompetencesRepository->findAll();
$niveaux=$NiveauRepository->findAll(); */
//dd($filiales);
//$agents= $AgentRepository->findAll();
//dd($agents);
//$agents = $AgentRepository->findBy(['entreprise'=>$id]);
//dd($profetionnels);
//dd($entreprise->getGestionnaireEntreprise(),$gest);
$gestionnaire = $this->em->createQuery(
'SELECT c
FROM App\Entity\GestionnaireEntreprise c
WHERE SHA1(c.id) = \''.sha1($entreprise->getGestionnaireEntreprise()->getId()).'\'
'
)
->getOneOrNullResult() ;
//$entreprise = $this->entityManager->getRepository(Entreprise::class)->findOneBy(['gestionnaire_entreprise' => $gestionnaire->getId()]);
$competences = $CompetencesRepository->findBy(['etat'=>1]);
$filiales = $FilialeRepository->findBy(['entreprise'=>$entreprise->getId()]);
$regions = $this->em->getRepository(Region::class)->findAll();
// $agents = $AgentRepository->findBy(['entreprise'=>$entreprise->getId()]);
$formules = $this->em->getRepository(Formules::class)->findAll();
$EntrepriseDocuments=$PieceJointeProfessionnelRepository->findBy(['entreprise'=>$entreprise->getId()]);
$gPays= $entreprise->getPays()->getId();//les formules sont basé sur le cpl'entreprise
$codePaysDep=$entreprise->getCodePaysDep();
$codePostal=$entreprise->getPays()->getAlpha2().$entreprise->getCodePostal();
$professionnelFormules = [];
foreach ($formules as $formule) {
if ($formule->getDestination() !== null && in_array('professionnel', $formule->getDestination()) && $formule->getEtat() == "1") {
//$paysMatches = empty($formule->getPaysCibles()) || in_array($gPays, $formule->getPaysCibles());
$cpCibles = $formule->getCpCibles();
$cpMatches = false;
if (empty($cpCibles) && !empty($formule->getPaysCibles()) && in_array($gPays, $formule->getPaysCibles())) {
$professionnelFormules[] = $formule;
}
if($formule->getCpCibles()&&(in_array($entreprise->getPays()->getAlpha2().'*', $formule->getCpCibles()) || in_array($codePaysDep.'*', $formule->getCpCibles()) || in_array($codePaysDep, $formule->getCpCibles()) ||in_array(substr($codePaysDep, 0, 3) .'*', $formule->getCpCibles()) ||in_array($codePostal, $formule->getCpCibles())))
{
$professionnelFormules[] = $formule;
}
}
}
usort($professionnelFormules, function ($a, $b) {
$aPrix = $a->getPrix() ?: 0;
$bPrix = $b->getPrix() ?: 0;
if ($aPrix == $bPrix) {
return 0;
}
return ($aPrix < $bPrix) ? -1 : 1;
});
//dd($professionnelFormules,$formulesWithOptions);
$arr_competence_filiale=[];
foreach($filiales as $filiale){
//$agents_filiale = $AgentRepository->findBy(['entreprise'=>$entreprise->getId(),'filiale'=>$filiale->getId()]);
$arr_competence_filiale[$filiale->getId()]= $filiale->getCompetences();
}
$pays = $this->em->getRepository(Pays::class)->findAll();
$langues = $this->em->getRepository(Langue::class)->findAll();
$tailles = $this->em->getRepository(TailleEntreprise::class)->findAll();
$Apes = $this->em->getRepository(Ape::class)->findAll();
$paysDepartement = $this->em->getRepository(Pays::class)->findOneBy(['alpha2' => 'FR']);
$departements = $this->em->getRepository(Departement::class)->findBy(['pays' => $entreprise->getPays()->getId()]);
$imageNames = json_decode($entreprise->getImage(), true);
$depEntreprise = $this->em->getRepository(Departement::class)->findBy(['id' => $entreprise->getDepartement()]);
$maxlengthEntreprise = $depEntreprise[0]->getCp();
$prefixEntreprise = $depEntreprise[0]->getNumero();
$depGestionnaire = $this->em->getRepository(Departement::class)->findBy(['id' => $gestionnaire->getDepartement()]);
$maxlengthGestionnaire = $depGestionnaire[0]->getCp();
$prefixGestionnaire = $depGestionnaire[0]->getNumero();
$query = $this->em->createQuery(
'SELECT cj
FROM App\Entity\CoutJournalier cj
JOIN cj.type tc
WHERE tc.nom = \'Publicité\'
'
);
$coutsJournaliers = $query->getResult();
//dd($imageNames);
/* if (!$langueExist) {
throw $this->createNotFoundException('La langue spécifiée n\'existe pas.');
} */
$etats = $EtatRepository->findAll();
$niveaux=$NiveauRepository->findAll();
// Récupération de tous les métiers
// Récupération de tous les services
$tous_les_services = $this->em->getRepository(Competences::class)->findBy(['etat' => 1]);
$moyens_comm = $this->em->getRepository(CommMedia::class)->findBy(['status' => 'Actif']);
// Récupération des services de l'entreprise
$services_entreprise = [];
$mes_services = [];
$services = $entreprise->getServices();
if ($services !== null && (is_array($services) || $services instanceof \Countable) && count($services) > 0) {
foreach ($services as $service_id) {
$service = $this->em->getRepository(Competences::class)->find($service_id);
if ($service) {
$mes_services[] = [
'id' => $service->getId(),
'nom' => $service->getNomFr(),
'type' => ($service->getParents()) ? 'child' :'parent' ,
];
}
}
}
// dd($mes_services);
// Récupération des services APE
$services_ape = [];
$ape_entreprise = $this->em->getRepository(Ape::class)->findOneBy(['ape' => $entreprise->getApe()]);
if ($ape_entreprise) {
$services_ape = $this->em->getRepository(Competences::class)->findBy(['ape' => $ape_entreprise->getId()]);
}
// Identification des services parents et enfants par super_parents
$services_parents = [];
$services_enfants = [];
foreach ($tous_les_services as $service) {
if (is_null($service->getParents())) {
$services_parents[] = $service;
} else {
foreach ($service->getSuperParents() as $superParentId) {
// Ajouter enfant sous son super parent
$services_enfants[$superParentId][] = $service;
}
}
}
// Conversion des listes en tableaux d'identifiants pour faciliter la comparaison
$ids_services_ape = array_map(function($service) {
return $service->getId();
}, $services_ape);
// Filtrage des services pour obtenir les services autres que ceux de l'APE
$autre_service = array_filter($tous_les_services, function($service) use ($ids_services_ape) {
return !in_array($service->getId(), $ids_services_ape);
});
// Structurer les résultats
$competences_principales = array_values($services_parents); // Liste des parents
$competences_secondaires = $services_enfants;
$EntreprisePubArr = [];
$eventsArr = [];
$EntreprisePub = $this->em->getRepository(Publicite::class)->findBy(['entreprise' => $entreprise->getId()]);
$EntrepriseEvents = $this->em->getRepository(Evenement::class)->findBy(['proprietaire' => $gestionnaire->getUser()]);
foreach ($EntreprisePub as $pub) {
$piecesJointes = $this->em->getRepository(PiecesPublicite::class)->findBy(['publicite' => $pub->getId()]);
$description_html = $pub->getContenu();
$description_propre = strip_tags($description_html);
$description_pub_courte = substr($description_propre, 0, 140);
$pubData = [
'id' => $pub->getId(),
'titre' => $pub->getTitre(),
'contenu' => $pub->getMetaDescription()!=null?$pub->getMetaDescription():$description_pub_courte,
'dateDebut'=>$pub->getDateDebut(),
'dateFin'=>$pub->getDateFin(),
'departement'=>$pub->getDepartement()->getNom(),
'etat' => [
'id' => $pub->getEtat()->getId(),
'etat' => $pub->getEtat()->getEtat(),
],
'piecesJointes' => [],
];
foreach ($piecesJointes as $piece) {
$pubData['piecesJointes'][] = [
'principale' => $piece->isPrincipale(),
'dir' => '/uploadsFront/'.$gestionnaire->getUser()->getId().'/publicites/'.$pub->getId(),
'nom' => $piece->getNom(),
];
}
$EntreprisePubArr[] = $pubData;
}
foreach ($EntrepriseEvents as $event) {
$piecesJointes = $this->em->getRepository(PiecesEvenement::class)->findBy(['evenement' => $event->getId()]);
$description_html = $event->getContenu();
$description_propre = strip_tags($description_html);
$description_pub_courte = substr($description_propre, 0, 140);
$eventdata = [
'id' => $event->getId(),
'titre' => $event->getTitre(),
'contenu' => $event->getMetaDescription()!=null?$event->getMetaDescription():$description_pub_courte,
'etat' => [
'id' => $event->getEtat()->getId(),
'etat' => $event->getEtat()->getEtat(),
],
'departement'=>$event->getDepartement()->getNom(),
'duree'=>$event->getDuree(),
'dateEvenement'=>$event->getDateEvenement(),
'dateDebutDiffusion'=>$event->getDateDebutDiffusion(),
'dateFinDiffusion'=>$event->getDateFinDiffusion(),
'piecesJointes' => [],
];
foreach ($piecesJointes as $piece) {
$eventdata['piecesJointes'][] = [
'principale' => $piece->getPrincipale(),
'dir' => '/uploadsFront/'.$gestionnaire->getUser()->getId().'/events/'.$event->getId(),
'nom' => $piece->getNom(),
];
}
$eventsArr[] = $eventdata;
}
//dd($eventsArr,$EntreprisePubArr);
$activeSocialLinks = $this->em->getRepository(SocialLinks::class)
->findBy(['status' => 'Actif']);
$socialsLinks = [];
foreach ($activeSocialLinks as $socialLink) {
$positions = $socialLink->getDisplayPosition();
if (is_array($positions)) {
// Si `display_position` est un tableau
if (in_array('header', $positions)) {
$socialsLinks[] = $socialLink;
}
}
else {
// Si `display_position` est une chaîne unique
if ($positions === 'header') {
$socialsLinks[] = $socialLink;
}
}
}
return $this->render('entreprises/fiche_entreprise.html.twig', ['admin' => $admin,
'gestionnaire' => $gestionnaire,
'CoutJournalier'=>$coutsJournaliers[0],
'entreprise' => $entreprise,
'maxlengthEntreprise' => $maxlengthEntreprise,
'maxlengthGestionnaire' => $maxlengthGestionnaire,
'competences' => $competences,//C
'prefixEntreprise' => $prefixEntreprise,
'prefixGestionnaire' => $prefixGestionnaire,
'filiale0'=>$entreprise->getNomEntreprise(),
'filiale0_id'=> $gestionnaire->getId(),
'filiale'=>null,
'etats'=>$etats,
'filiales'=>$filiales,
'agents'=>'$agents',
'arr_competence_filiale2'=>$arr_competence_filiale,
'agents_filiale'=>'$agents_filiale',
'langue' => $langues,
'pays' => $pays,
'niveaux'=>$niveaux,
'regions'=>$regions,
'Departements'=>$departements,
'numero'=>$departements[0]->getNumero(),
'maxlength'=>$departements[0]->getCp(),
'tailles'=>$tailles,
'apes'=>$Apes,
// 'formuleOptions'=>$formuleOptions,
'formuleOptions'=>[],
'imageNames' => $imageNames,
'formules'=>$professionnelFormules,
'EntrepriseDocuments'=>$EntrepriseDocuments,
'pubArr' => $EntreprisePubArr,
'eventsArr' => $eventsArr,
'services_ape' => $services_ape,
'autre_service' => $autre_service,
'tous_les_services'=>$tous_les_services,
//'mes_services'=>$mes_services,
'competences_principales' => $competences_principales,
'competences_secondaires' => $competences_secondaires,
'liste_competences' => $mes_services,
'moyens_comm'=>$moyens_comm,
'socialsLinks'=>$socialsLinks
]);
}
/**
* @Route("/getEntrepriseAgents", name="getEntrepriseAgents", methods={"GET","POST"}, options = {"expose" = true})
*/
public function getEntrepriseAgents(Request $request,PaysRepository $PaysRepository,EtatRepository $EtatRepository,AdministrateursRepository $AdministrateursRepository,CompetencesRepository $CompetencesRepository,AgentRepository $AgentRepository,FilialeRepository $FilialeRepository,EntrepriseRepository $EntrepriseRepository): Response
{
if( ($this->session->get('susrD3p9LjjY86') == 'gA64ya3G5N') && ($request->hasSession()) ){
$admin = $this->session->get('supAdT9m2XJzn4');
}else{
$admin = $AdministrateursRepository->findOneBy(['email'=>$this->session->get('supAdT9m2XJzn4')['email']]);
}
$sql_where = "" ;
if($request->get('search')['value']!=""){
$sql_where .= ' AND ( u.nom_entreprise LIKE \'%'.$request->get('search')['value'].'%\' )';
$sql_where .= ' OR ( u.prenom LIKE \'%'.$request->get('search')['value'].'%\' )';
$sql_where .= ' OR ( u.email LIKE \'%'.$request->get('search')['value'].'%\' )';
}
$user_array = [] ;
$limit = $request->get('length') ;
$offset = $request->get('start') ;
$array_search = array();
$columns = ['u.nom','u.prenom','u.email', 'u.telephone', 'u.pays','u.etat','u.type'];
$orders = [] ;
for($i=0 ; $i<count($request->get('order')) ;$i++ ){
$orders[] = $columns[ $request->get('order')[$i]['column'] ].' '.$request->get('order')[$i]['dir'] ;
}
if( count($orders)>0){
$order = " ORDER BY ".implode(' , ',$orders) ;
}
else{
$order = "" ;
}
$entrepriseAgents = $this->em->createQuery(
'SELECT u
FROM App\Entity\Agent u
WHERE u.entreprise = \'' . $request->get('id') . '\' ' . $sql_where.' '.$order.'
'
)
->setMaxResults($limit)
->setFirstResult($offset)
->getResult() ;
$out=[];
if(!empty($entrepriseAgents))
{
foreach ($entrepriseAgents as $agent) {
$pays=$PaysRepository->findOneBy(['id' => $agent->getPays()]);
$etat=$EtatRepository->findOneBy(['id' =>$agent->getEtat()]);
$out[] = [
'id' => $agent->getId(),
'Nom' => $agent->getNom(),
'prenom'=>$agent->getPrenom(),
'portable'=>$agent->getPortable(),
'telephone'=>$agent->getTelephone(),
'pays'=>$pays->getNomFrFr(),
'paysId'=>$pays->getId(),
'etat'=>$etat->getEtat(),
'type'=>$agent->getType(),
'mail'=>$agent->getEmail(),
'ville'=>$agent->getVille(),
'cp'=>$agent->getCodePostal(),
'adresse'=>$agent->getAdresse(),
'competences'=>$agent->getCompetences(),
];
}
}
$I_nbResultatsTotal = count( $out ) ;
$JSON = json_encode($out);
$JSON = '{"draw": '.$request->get('draw').',"recordsTotal":'.$I_nbResultatsTotal.',"recordsFiltered":'.$I_nbResultatsTotal.',"data":'.$JSON.'}';
$response = new Response($JSON, 200, ['Content-Type' => 'application/json']);
return $response;
}
/**
* @Route("/getEntreprisepartenariats", name="getEntreprisepartenariats", methods={"GET","POST"}, options = {"expose" = true})
*/
public function getEntreprisepartenariats(Request $request,AdministrateursRepository $AdministrateursRepository, PartenariatRepository $PartenariatRepository,CompetencesRepository $CompetencesRepository,AgentRepository $AgentRepository,FilialeRepository $FilialeRepository,EntrepriseRepository $EntrepriseRepository): Response
{
if( ($this->session->get('susrD3p9LjjY86') == 'gA64ya3G5N') && ($request->hasSession()) ){
$admin = $this->session->get('supAdT9m2XJzn4');
}else{
$admin = $AdministrateursRepository->findOneBy(['email'=>$this->session->get('supAdT9m2XJzn4')['email']]);
}
$sql_where = "";
if($request->get('search')['value']!=""){
$sql_where .= ' AND ( u.type_partenariat LIKE \'%'.$request->get('search')['value'].'%\' )' ;
$sql_where .= ' OR ( u.date_debut LIKE \'%'.$request->get('search')['value'].'%\' )';
$sql_where .= ' OR ( u.date_fin LIKE \'%'.$request->get('search')['value'].'%\' )';
$sql_where .= ' OR ( u.date_creation LIKE \'%'.$request->get('search')['value'].'%\' )';
$sql_where .= ' OR ( u.date_update LIKE \'%'.$request->get('search')['value'].'%\' )';
$sql_where .= ' OR ( u.status LIKE \'%'.$request->get('search')['value'].'%\' )';
$sql_where .= ' OR ( u.etat LIKE \'%'.$request->get('search')['value'].'%\' )';
}
$user_array = [] ;
$limit = $request->get('length') ;
$offset = $request->get('start') ;
$array_search = array();
$columns = ['u.id', 'u.type_partenariat', 'u.date_debut', 'u.date_fin', 'u.date_creation', 'u.date_update', 'u.etat', 'u.status', 'u.demandeur', 'u.reception'];
$orders = [] ;
for($i=0 ; $i<count($request->get('order')) ;$i++ ){
$orders[] = $columns[ $request->get('order')[$i]['column'] ].' '.$request->get('order')[$i]['dir'] ;
}
if( count($orders)>0){
$order = " ORDER BY ".implode(' , ',$orders) ;
}
else{
$order = "" ;
}
$total_partenariats = [];
$total_partenariats= $this->em->createQuery(
'SELECT u
FROM App\Entity\Partenariat u
WHERE u.demandeur = \'' . $request->get('id') . '\' ' . $sql_where
)
->getResult() ;
$I_nbResultatsTotal = count( $total_partenariats ) ;
$partenariats = $this->em->createQuery(
'SELECT u
FROM App\Entity\Partenariat u
WHERE u.demandeur = \'' . $request->get('id') . '\' ' . $sql_where.' '.$order.'
'
)
->setMaxResults($limit)
->setFirstResult($offset)
->getResult() ;
$par = $this->em->createQuery(
'SELECT u
FROM App\Entity\Partenariat u
WHERE u.demandeur = \'' . $request->get('id') . '\' '
)
->getResult() ;
$output = [] ;
$etat = '';
foreach($partenariats as $partenariat){
$additionalData = [];
if($partenariat->getEtat() == 1){
$etat = '<span class="badge bg-success">Actif</span>';
}else if($partenariat->getEtat() == 0){
$etat = '<span class="badge bg-danger">Inactif</span>';
};
if($partenariat->getStatus() == 'Activer'){
$status = '<span class="badge bg-success">Activer</span>';
}else if($partenariat->getStatus() == 'Désactiver'){
$status = '<span class="badge bg-danger">Désactiver</span>';
};
if ($partenariat->getTypePartenariat() === 'Externe') {
$agentId = $partenariat->getReception()->getGestionnaire()->getAgent();
$agent = $AgentRepository->find($agentId);
$competencesArrayAgent = $agent->getCompetences();
$competenceNamesAgent = [];
foreach ($competencesArrayAgent as $competenceAgent) {
$competenceNamesAgent[] = $CompetencesRepository->find($competenceAgent)->getCompetence();
}
$competencesArray = $partenariat->getReception()->getCompetences();
$competenceNames = [];
foreach ($competencesArray as $competence) {
$competenceNames[] = $CompetencesRepository->find($competence)->getCompetence();
}
//'parentFiliale' => $partenariat->getReception()->getFilialeParent()->getNom() !== null ? $partenariat->getReception()->getFilialeParent()->getNom() : '',
$additionalData = [
'idNov' => $partenariat->getReception()->getId() !== null ? $partenariat->getReception()->getId() : 0,
'idAgent' => $partenariat->getReception()->getGestionnaire()->getAgent() !== null ? $partenariat->getReception()->getGestionnaire()->getAgent() : 0,
'idGestionnaire' => $partenariat->getReception()->getGestionnaire()->getId() !== null ? $partenariat->getReception()->getGestionnaire()->getId() : 0,
'nom' => $partenariat->getReception()->getNom() !== null ? $partenariat->getReception()->getNom() : '',
'nom_gestionnaire' => $partenariat->getReception()->getGestionnaire()->getNom() !== null ? $partenariat->getReception()->getGestionnaire()->getNom() : '',
'prenom_gestionnaire' => $partenariat->getReception()->getGestionnaire()->getPrenom() !== null ? $partenariat->getReception()->getGestionnaire()->getPrenom() : '',
'email_gestionnaire' => $partenariat->getReception()->getGestionnaire()->getEmail() !== null ? $partenariat->getReception()->getGestionnaire()->getEmail() : '',
'telephone_gestionnaire' => $partenariat->getReception()->getGestionnaire()->getTelephone() !== null ? $partenariat->getReception()->getGestionnaire()->getTelephone() : '',
'portable_gestionnaire' => $partenariat->getReception()->getGestionnaire()->getPortable() !== null ? $partenariat->getReception()->getGestionnaire()->getPortable() : '',
'ville_gestionnaire' => $partenariat->getReception()->getGestionnaire()->getVille() !== null ? $partenariat->getReception()->getGestionnaire()->getVille() : '',
'pays_gestionnaire' => $partenariat->getReception()->getGestionnaire()->getPays() !== null ? $partenariat->getReception()->getGestionnaire()->getPays() : '',
'cp_gestionnaire' => $partenariat->getReception()->getGestionnaire()->getCp() !== null ? $partenariat->getReception()->getGestionnaire()->getCp() : '',
'etat_gestionnaire' => $partenariat->getReception()->getGestionnaire()->getEtat() !== null ? $partenariat->getReception()->getGestionnaire()->getEtat() : '',
'adresse_gestionnaire' => $partenariat->getReception()->getGestionnaire()->getAdresse() !== null ? $partenariat->getReception()->getGestionnaire()->getAdresse() : '',
'nom_agent' => $agent->getNom() !== null ? $agent->getNom() : '',
'prenom_agent' => $agent->getPrenom() !== null ? $agent->getPrenom() : '',
'email_agent' => $agent->getEmail() !== null ? $agent->getEmail() : '',
'telephone_agent' => $agent->getTelephone() !== null ? $agent->getTelephone() : '',
'portable_agent' => $agent->getPortable() !== null ? $agent->getPortable() : '',
'ville_agent' => $agent->getVille() !== null ? $agent->getVille() : '',
'pays_agent' => $agent->getPays() !== null ? $agent->getPays() : '',
'cp_agent' => $agent->getCodePostal() !== null ? $agent->getCodePostal() : '',
'etat_agent' => $agent->getEtat() !== null ? $agent->getEtat() : '',
'adresse_agent' => $agent->getAdresse() !== null ? $agent->getAdresse() : '',
'type_agent' => $agent->getType() !== null ? $agent->getType() : '',
'competenceAgent' => implode(' ', $competenceNamesAgent),
'type' => $partenariat->getReception()->getType() !== null ? $partenariat->getReception()->getType() : '',
'competenceFiliale' => implode(' ', $competenceNames),
'descriptionFiliale' => $partenariat->getReception()->getDescription() !== null ? $partenariat->getReception()->getDescription() : '',
];
}
$output[] = [
'id'=>$partenariat->getId() ,
'type_partenariat'=>$partenariat->getTypePartenariat() ,
'demandeur'=>$partenariat->getDemandeur()->getNom() !== null ?$partenariat->getDemandeur()->getNom() : '',
'entrepriseDemandeur'=>$partenariat->getDemandeur()->getEntreprise()->getNomEntreprise() !== null ?$partenariat->getDemandeur()->getEntreprise()->getNomEntreprise(): '' ,
'status'=>$status ,
'reception'=>$partenariat->getReception()->getNom() !== null ?$partenariat->getReception()->getNom(): '',
'entrepriseReception'=>$partenariat->getReception()->getEntreprise()->getNomEntreprise() !== null ?$partenariat->getReception()->getEntreprise()->getNomEntreprise(): '',
'etat'=>$etat ,
'note'=>$partenariat->getNote() ,
'date_fin'=> date_format( $partenariat->getDateFin(), 'd/m/Y'),
'date_debut'=> date_format( $partenariat->getDateDebut(), 'd/m/Y'),
'date_creation'=> date_format( $partenariat->getDateCreation(), 'd/m/Y H:i')
]+ $additionalData;
}
$JSON = json_encode($output);
$JSON = '{"draw": '.$request->get('draw').',"recordsTotal":'.$I_nbResultatsTotal.',"recordsFiltered":'.$I_nbResultatsTotal.',"data":'.$JSON.'}';
$response = new Response($JSON, 200, ['Content-Type' => 'application/json']);
return $response;
}
/**
* @Route("/add_entreprise_agent", name="add_entreprise_agent", methods={"GET","POST"} , options={"expose"=true})
*/
public function add_entreprise_agent(Request $request,UserRepository $UserRepository,GestionnaireFilialeRepository $GestionnaireFilialeRepository,NiveauRepository $NiveauRepository,AgentRepository $AgentRepository,CompetencesRepository $CompetencesRepository,FilialeRepository $FilialeRepository,FormulesRepository $FormulesRepository,ProfessionnelRepository $ProfessionnelRepository, PaysRepository $PaysRepository,GestionnaireEntrepriseRepository $GestionnaireEntrepriseRepository, AdministrateursRepository $AdministrateursRepository , EtatRepository $EtatRepository , EntrepriseRepository $EntrepriseRepository,GroupeRestrictionRepository $groupe_restrictionRepository): Response{
$accessArray=[];
$niveauAcessPages = [];
if( ($this->session->get('susrD3p9LjjY86') == 'gA64ya3G5N') && ($request->hasSession()) ){
$admin = $this->session->get('supAdT9m2XJzn4');
}
else{
if (($this->session->get('supAdT9m2XJzn4') == null)) {
return $this->redirectToRoute('connexion');
}
$admin = $AdministrateursRepository->findOneBy(['email'=>$this->session->get('supAdT9m2XJzn4')['email']]);
}
$existingAgentWithMail = $AgentRepository->findOneBy(['email' => $request->get('emailAgent')]);
$existingAgent = $AgentRepository->findOneBy(['id'=>$request->get('id')]);
$existingUser = $UserRepository->findOneBy(['email' => $request->get('emailAgent')]);
if($existingAgent!=null){
$agent=$existingAgent;
$user=$agent->getUser();
//$agent->setDateUpdate(DateTime::createFromFormat('Y-m-d H:i:s', date('Y-m-d H:i:s' ) ));
if($existingAgentWithMail!=null && $existingAgentWithMail->getId() != $existingAgent->getId()||($existingUser!=null &&$existingUser->getId() != $user->getId()))
{
$msg = ['msg'=>'email error'] ;
$JSON = json_encode($msg);
$response = new Response($JSON, 200, ['Content-Type' => 'application/json']);
return $response ;
}
else
{
$agent->setEmail($request->get('emailAgent'));
$user->setEmail($request->get('emailAgent'));
}
}
else
{
$agent=new Agent();
$user = new User();
//$agent->setDateCreation(DateTime::createFromFormat('Y-m-d H:i:s', date('Y-m-d H:i:s' ) ));
if($existingAgentWithMail!=null||$existingUser )
{
$msg = ['msg'=>'email error'] ;
$JSON = json_encode($msg);
$response = new Response($JSON, 200, ['Content-Type' => 'application/json']);
return $response ;
}
else
{
$agent->setEmail($request->get('emailAgent'));
$user->setEmail($request->get('emailAgent'));
$user->setRoles(["ROLE_AGENT"]);
$agent->setUser($user);
$etat=$EtatRepository->findOneBy(['id' =>4]);
$agent->setEtat($etat);
}
/*
if($request->get('confirmPassAgent')!=$request->get('PassAgent') && $request->get('PassAgent')!=""){
$mdp = $this->setSaltMdp($request->get('PassAgent'));
$agent->setPassword($mdp);
}
else {
$msg = ['msg'=>'password error'] ;
$JSON = json_encode($msg);
$response = new Response($JSON, 200, ['Content-Type' => 'application/json']);
return $response ;
}*/
}
if($request->get('PassAgent')!="")
{
$mdp = $this->setSaltMdp($request->get('PassAgent'));
$agent->setPassword($mdp);
$user->setPassword($mdp);
}
$agent->setNom($request->get('nomAgent'));
$agent->setPrenom($request->get('prenomAgent'));
$agent->setTelephone($request->get('telephoneAgent'));
$agent->setPortable($request->get('portableAgent'));
$agent->setVille($request->get('villeAgent'));
$agent->setPays($request->get('paysAgent'));
$agent->setAdresse($request->get('adressAgent'));
$agent->setCodePostal($request->get('cpAgent'));
//$agent->setEtat($request->get('etatAgent'));
$agent->setCompetences($request->get('competencesAgent'));
if($request->get('entrepriseId')!="")
{
$entreprise= $EntrepriseRepository->find($request->get('entrepriseId'));
$agent->setEntreprise($entreprise);
}
if($request->get('filialeId')!="")
{
$filiale= $FilialeRepository->find($request->get('filialeId'));
$agent->setFilialeId($filiale);
}
$agent->setType('Interne');
$date_naisance = \DateTime::createFromFormat('d/m/Y', $request->get('date_naisance'));
//dd($date_naisance,$request->get('date_naisance'));
$agent->setDateNaissance($date_naisance);
$langue = $this->em->getRepository(Langue::class)->find($request->get('langueAgent'));
$agent->setCivilite($request->get('civilite'));
$agent->setNumVoie($request->get('numVoieAgent'));
$agent->setTypeVoie($request->get('typeVoieAgent'));
$agent->setNomVoie($request->get('nomVoieAgent'));
$dep=$this->em->getRepository(Departement::class)->find($request->get('DepartementAgent'));
$pays=$this->em->getRepository(Pays::class)->find($request->get('paysAgent'));
$code_pays_dep=$pays->getAlpha2().$dep->getNumero();
$agent->setDepartement($dep);
$agent->setCodePaysDep($code_pays_dep);
$agent->setLangue($langue);
$this->em->persist($user);
$this->em->persist($agent);
$this->em->flush();
$msg = ['msg'=>'OK'] ;
$JSON = json_encode($msg);
$response = new Response($JSON, 200, ['Content-Type' => 'application/json']);
return $response ;
}
/**
* @Route("/edit_etat_entreprise", name="edit_etat_entreprise", methods={"GET","POST"} , options={"expose"=true})
*/
public function edit_etat_entreprise(Request $request , ConfigSmtpRepository $ConfigSmtpRepository,NiveauRepository $NiveauRepository,AgentRepository $AgentRepository,CompetencesRepository $CompetencesRepository,FilialeRepository $FilialeRepository,FormulesRepository $FormulesRepository,ProfessionnelRepository $ProfessionnelRepository, PaysRepository $PaysRepository,GestionnaireEntrepriseRepository $GestionnaireEntrepriseRepository, AdministrateursRepository $AdministrateursRepository , EtatRepository $EtatRepository , EntrepriseRepository $EntrepriseRepository,GroupeRestrictionRepository $groupe_restrictionRepository,
GroupeRestrictionPageRepository $grouprestrictionpageRepository): Response{
$entreprise = $EntrepriseRepository->find($request->get('id_entreprise'));
if (!$entreprise) {
return new JsonResponse(['status' => 'KOO', 'message' => 'Entreprise non trouvé !']);
}
$etatId = $request->get('etat_edit');
$etat = $this->em->getRepository(Etat::class)->find($etatId);
//if($prevEntrepriseEtat==4 &&$etatId==1){
$entrepriseFiliale=$this->em->getRepository(Filiale::class)->findBy(['entreprise'=>$entreprise->getId()]);
if(!empty($entrepriseFiliale)){
foreach($entrepriseFiliale as $f){
$f->setEtat($etat);
$this->em->persist($f);
}
}
$entrepriseAgent=$this->em->getRepository(Agent::class)->findBy(['entreprise'=>$entreprise->getId()]);
if(!empty($entrepriseAgent)){
foreach($entrepriseAgent as $a){
$a->setEtat($etat);
$this->em->persist($a);
}
}
// }
$entreprise->setEtat($etat);
try {
$this->em->persist($entreprise);
$this->em->flush();
$EntrepriseEtat=$entreprise->getEtat()->getETat();
$msg= '';
$emails = $ConfigSmtpRepository->findOneBy([],['id'=>'desc']) ;
/* $email_arr = [];
foreach($emails->getDestinataires() as $email){
$email_arr[] = $email ;
}
foreach($emails->getDestinatairesTransaction() as $email){
$email_arr[] = $email ;
} */
$transport = (new \Swift_SmtpTransport($emails->getHost() , $emails->getPort() , $emails->getTypeConnexion() ))
->setUsername($emails->getUser())
->setPassword($emails->getMdp())
;
$mailer = new \Swift_Mailer($transport);
$sender = $emails->getUser() ;
$message = (new \Swift_Message('Modification Etat Entreprise ')) ;
$message->setFrom($sender)
->setTo( $entreprise->getGestionnaireEntreprise()->getEmail() )
->setBody(
$this->renderView(
'emails/modification_etat_entreprise.html.twig',[
'etat'=>$EntrepriseEtat,
'entreprise'=>$entreprise,
]
), 'text/html'
);
try{
$mailer->send($message);
$msg = 'OK message envoyé' ;
}
catch (\Swift_TransportException $e) {
$msg = $e->getMessage() ;
}
return new JsonResponse(['status' => 'OK', 'message' => 'Entreprise mis à jour avec succès !','msg'=>$msg]);
} catch (\Exception $e) {
return new JsonResponse(['status' => 'error', 'message' => 'Erreur lors de la modification du entreprise : ' . $e->getMessage()], Response::HTTP_INTERNAL_SERVER_ERROR);
}
}
/**
* @Route("/get_document_entreprise", name="get_document_entreprise", methods={"GET","POST"} , options={"expose"=true})
*/
public function get_document_entreprise(Request $request,NiveauRepository $NiveauRepository,AgentRepository $AgentRepository,CompetencesRepository $CompetencesRepository,FilialeRepository $FilialeRepository,FormulesRepository $FormulesRepository,ProfessionnelRepository $ProfessionnelRepository, PaysRepository $PaysRepository,GestionnaireEntrepriseRepository $GestionnaireEntrepriseRepository, AdministrateursRepository $AdministrateursRepository , EtatRepository $EtatRepository , EntrepriseRepository $EntrepriseRepository,GroupeRestrictionRepository $groupe_restrictionRepository,
GroupeRestrictionPageRepository $grouprestrictionpageRepository): Response{
//$files = glob('/home/mitih/public_html/mitih-front-v2.synexta-developpement.fr/public/uploads/'..'/*.docx');
$n = $request->get('entrepriseNom');
$nom = str_replace(' ', '_', $n);
$url = 'http://mitih-front-v2.synexta-developpement.fr/public/uploads/'.$nom.'/';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
curl_close($ch);
echo $result;
return false;
dd($documents);
}
/**
* @Route("/verif_existing_mail", name="verif_existing_mail", methods={"GET","POST"} , options={"expose"=true})
*/
public function verif_existing_mail(Request $request): Response
{
$value = $request->get('mail');
// dd($value);
$exists = $this->em->getRepository(User::class)->findOneBy(['email' => $value]);
return new JsonResponse([
'exists' => $exists ? true : false,
]);
}
/**
* @Route("/add_filiale", name="add_filiale", methods={"GET","POST"} , options={"expose"=true})
*/
public function add_filiale(Request $request,UserRepository $UserRepository,NiveauRepository $NiveauRepository,AgentRepository $AgentRepository,CompetencesRepository $CompetencesRepository,FilialeRepository $FilialeRepository,FormulesRepository $FormulesRepository,ProfessionnelRepository $ProfessionnelRepository, PaysRepository $PaysRepository,GestionnaireEntrepriseRepository $GestionnaireEntrepriseRepository, AdministrateursRepository $AdministrateursRepository , EtatRepository $EtatRepository , EntrepriseRepository $EntrepriseRepository,GroupeRestrictionRepository $groupe_restrictionRepository,
GestionnaireFilialeRepository $GestionnaireFilialeRepository): Response{
$accessArray=[];
$niveauAcessPages = [];
//dd($request->request->all());
if( ($this->session->get('susrD3p9LjjY86') == 'gA64ya3G5N') && ($request->hasSession()) ){
$admin = $this->session->get('supAdT9m2XJzn4');
}
else{
if (($this->session->get('supAdT9m2XJzn4') == null)) {
return $this->redirectToRoute('connexion');
}
$admin = $AdministrateursRepository->findOneBy(['email'=>$this->session->get('supAdT9m2XJzn4')['email']]);
$adminId = $admin['userId'];
$groupeRestrictions = $groupe_restrictionRepository->findByAdminId($adminId);
$restrictionPages = $grouprestrictionpageRepository->findByRestriction($groupeRestrictions[0]['id']);
$accessArray = $restrictionPages[0]->getAccess();
$niveauAcessPagesCollection = $restrictionPages[0]->getNiveauAcessPages();
$niveauAcessPagesCollection->initialize();
$niveauAcessPages = $niveauAcessPagesCollection->toArray();
}
//dd($request->request->all());
$existingGestionnaire = $GestionnaireFilialeRepository->findOneBy(['email' => $request->get('emailGestionnaireFiliale')]);
$existingUser=$UserRepository->findOneBy(['email' => $request->get('emailGestionnaireFiliale')]);
// dd($existingGestionnaire,$existingUser);
if ($existingGestionnaire|| $existingUser)
{
$msg = ['msg'=>'email error'] ;
$JSON = json_encode($msg);
$response = new Response($JSON, 200, ['Content-Type' => 'application/json']);
return $response ;
}
$entreprise = $EntrepriseRepository->findOneBy(['id' => $request->get('entrepriseMere')]);
$gestionnaire= new GestionnaireFiliale();
$pays = $this->em->getRepository(Pays::class)->find($request->get('paysGestionnaireFiliale'));
$langue = $this->em->getRepository(Langue::class)->find($request->get('langueGestionnaireFiliale'));
$gestionnaire->setCivilite($request->get('civilite'));
$gestionnaire->setNom($request->get('nomGestionnaireFiliale'));
$gestionnaire->setPrenom($request->get('prenomGestionnaireFiliale'));
$gestionnaire->setTelephone($request->get('telephoneGestionnaireFiliale'));
$gestionnaire->setPortable($request->get('PortableGestionnaireFiliale'));
$gestionnaire->setEmail($request->get('emailGestionnaireFiliale'));
$gestionnaire->setVille($request->get('villeGestionnaireFiliale'));
$gestionnaire->setAdresse($request->get('adressGestionnaireFiliale'));
$gestionnaire->setCp($request->get('cpGestionnaireFiliale'));
$gestionnaire->setNumVoie($request->get('numVoieGestionnaireFiliale'));
$gestionnaire->setTypeVoie($request->get('typeVoieGestionnaireFiliale'));
$gestionnaire->setNomVoie($request->get('nomVoieGestionnaireFiliale'));
$departement = $this->em->getRepository(Departement::class)->find($request->get('DepartementGestionnaireFiliale'));
$gestionnaire->setDepartement($departement);
$gestionnaire->setPays($pays);
$code_pays_depG=$pays->getAlpha2().$departement->getNumero();
$gestionnaire->setCodePaysDep($code_pays_depG);
$gestionnaire->setLangue($langue);
$gestionnaire->setEntreprise($entreprise);
// $gestionnaire->setEtat($request->get('etatGestionnaireFiliale'));
$date_naisance = \DateTime::createFromFormat('d/m/Y', $request->get('date_naisance'));
//dd($date_naisance,$request->get('date_naisance'));
$gestionnaire->setDateNaissance($date_naisance);
$gestionnaire->setDateCreation(DateTime::createFromFormat('Y-m-d H:i:s', date('Y-m-d H:i:s' ) ));
/*if($request->get('etatGestionnaire')){
$etat = $EtatRepository->find($request->get('etatGestionnaire'));
$gestionnaire->setEtat($etat);
}*/
//$etat=$EtatRepository->findOneBy(['id' =>4]);
//$gestionnaire->setEtat($etat);
$mdp = $this->setSaltMdp($request->get('passGestionnaireFiliale'));
$gestionnaire->setPassword($mdp);
$this->em->persist($gestionnaire);
$user = new User();
$user->setEmail($request->get('emailGestionnaireFiliale'));
$user->setRoles(["ROLE_GESTIONNAIRE_FILIALE"]);
$gestionnaire->setDateCreation(DateTime::createFromFormat('Y-m-d H:i:s', date('Y-m-d H:i:s' ) ));
$user->setPassword($mdp);
$this->em->persist($user);
$gestionnaire->setUser($user);
$paysF = $this->em->getRepository(Pays::class)->find($request->get('paysFiliale'));
$filiale=new Filiale();
$filiale->setNom($request->get('nomFiliale'));
$filiale->setGestionnaire($gestionnaire);
$filiale->setDateCreation(DateTime::createFromFormat('Y-m-d H:i:s', date('Y-m-d H:i:s' ) ));
$filiale->setType('Interne');
if($request->get('parentFiliale'))
{
$parentfiliale = $FilialeRepository->find($request->get('parentFiliale'));
$filiale->setFilialeParent($parentfiliale);
}
$filiale->setCompetences($request->get('competencesFiliale'));
/*if($request->get('niveauFiliale')){
$niveau = $NiveauRepository->find($request->get('niveauFiliale'));
$filiale->setNiveau($niveau);
}*/
$imgFiliale=$request->files->get('imageFiliale');
//dd($imgFiliale); à ajouter dans entreprise controller
$filiale->setDescription($request->get('descriptionFiliale'));
$filiale->setEntreprise($entreprise);
$filiale->setVille($request->get('villeFiliale'));
$filiale->setAdresse($request->get('adressFiliale'));
$filiale->setCodePostal($request->get('cpFiliale'));
$filiale->setNumVoie($request->get('numVoieFiliale'));
$filiale->setTypeVoie($request->get('typeVoieFiliale'));
$filiale->setNomVoie($request->get('nomVoieFiliale'));
$departement = $this->em->getRepository(Departement::class)->find($request->get('DepartementFiliale'));
$filiale->setDepartement($departement);
$filiale->setPays($paysF);
$code_pays_depF=$paysF->getAlpha2().$departement->getNumero();
$filiale->setCodePaysDep($code_pays_depF);
$this->em->persist($filiale);
$this->em->flush();
//dd($filiale->getId() );
if( $imgFiliale!=null){
$uploadDirRoot = $this->getParameter('uploads_directory') ;
$filesystem = new Filesystem();
$imgName = $imgFiliale->getClientOriginalName();
$imgDir = $uploadDirRoot.'/entreprises/'.$request->get('entrepriseMere').'/Filiales/'.$filiale->getId() ;
if( $filesystem->exists($imgDir ) == false ){
$filesystem->mkdir($imgDir , 0777, true);
}
$imgFiliale->move($imgDir, $imgName);
$filiale->setImage($imgName);
$filiale->setDir('/uploads/entreprises/'.$request->get('entrepriseMere').'/Filiales/'.$filiale->getId());
}
$this->em->persist($filiale);
$this->em->flush();
$msg = ['msg'=>'OK','id'=>$filiale->getId()] ;
$JSON = json_encode($msg);
$response = new Response($JSON, 200, ['Content-Type' => 'application/json']);
return $response ;
}
/**
* @Route("/delete_agent/{id}", name="delete_agent",methods={"DELETE"}, options = {"expose"=true})
*/
public function delete_agent(Request $request,$id,AgentRepository $AgentRepository): Response
{
$agent = $AgentRepository->findOneBy(['id'=>$id]);
if (!$agent) {
$msg = ['msg'=>'KOO'] ;
$JSON = json_encode($msg);
$response = new Response($JSON, 200, ['Content-Type' => 'application/json']);
return $response;
}
$this->em->remove($agent);
$this->em->flush();
$msg = ['msg'=>'OK'] ;
$JSON = json_encode($msg);
$response = new Response($JSON, 200, ['Content-Type' => 'application/json']);
return $response;
}
// Nouveau code
/**
* @Route("/get_filiale/{id}", name="get_filiale",methods={"GET"}, options = {"expose"=true})
*/
public function get_filiale(Request $request ,$id, DepartementRepository $DepartementRepository, FilialeRepository $FilialeRepository ,CompetencesRepository $CompetencesRepository, GestionnaireFilialeRepository $GestionnaireFilialeRepository){
$output=[];
$arr_competence = [];
$arr_c_filiale = [];
$filiale = $FilialeRepository->find($id);
$gestionnaire =($filiale->getGestionnaire())? $GestionnaireFilialeRepository->find($filiale->getGestionnaire()):null;
$arr_competence_filiale = $filiale->getCompetences();
foreach($arr_competence_filiale as $cf){
$arr_c_filiale []= (int)$cf;
}
$competences = $CompetencesRepository->findBy(['etat'=>1]);
foreach($competences as $competence){
$arr_competence []= $competence->getId();
}
$departementsFiliale = $DepartementRepository->findBy(['pays' => $filiale->getPays()->getId()]);
$departementsGestionnaire =$gestionnaire? $DepartementRepository->findBy(['pays' => $filiale->getGestionnaire()->getPays()->getId()]):[];
$competences = $CompetencesRepository->findBy(['etat'=>1]);
$arr_departementGestionnaire=[];
$arr_departementsFiliale=[];
foreach ($departementsFiliale as $departementFiliale) {
$arr_departementsFiliale[] = [
'id' => $departementFiliale->getId(),
'nom' => $departementFiliale->getNom()
];
}
foreach ($departementsGestionnaire as $departementGestionnaire) {
$arr_departementGestionnaire[] = [
'id' => $departementGestionnaire->getId(),
'nom' => $departementGestionnaire->getNom()
];
}
$depF = $DepartementRepository->findOneBy(['id' => $filiale->getDepartement()!=null?$filiale->getDepartement()->getId():null]);
$depG = $gestionnaire?$DepartementRepository->findOneBy(['id' => $gestionnaire->getDepartement()!=null?$gestionnaire->getDepartement()->getId():null]):null;
$maxlengthG = $depG?$depG->getCp():'';
$prefixG = $depG?$depG->getNumero():'';
$maxlengthF = $depF->getCp();
$prefixF = $depF->getNumero();
$emailMasque="";
if($gestionnaire && $gestionnaire->getEmail())
{
$atPos = strpos($gestionnaire->getEmail(), '@');
if ($atPos !== false && $atPos > 3) {
$emailName = substr($gestionnaire->getEmail(), 0, $atPos);
$maskedName = substr($emailName, 0, 3) . str_repeat('*', strlen($emailName) - 3);
$emailDomain = substr($gestionnaire->getEmail(), $atPos + 1);
$dotPos = strpos($emailDomain, '.');
if ($dotPos !== false && $dotPos > 3) {
$maskedDomain = str_repeat('*', $dotPos) . substr($emailDomain, $dotPos);
$emailMasque = $maskedName . '*' . $maskedDomain;
} else {
$emailMasque = $maskedName . '*' . $emailDomain;
}
}
}
$filialeFormule=[];
if($filiale->getFormule()!=null)
{$filialeF=$filiale->getFormule();
$filialeFormule=[
'nom'=>$filialeF->getNomFormule(),
'dure'=>$filialeF->getDure()?$filialeF->getDure():null,
'prix'=>$filialeF->getType()=='gratuite'?'Gratuite':$filialeF->getPrix() . $filialeF->getUnite().' / '.$filialeF->getPeriodicite(),
'description'=>$filialeF->getDescription(),
'bonnusGeo'=>$filialeF->getBonnusGeo()?'Disponible sur :'.$filialeF->getBonnusGeo():null,
'bonnusEvent'=>$filialeF->getBonnusEvent()? $filialeF->getBonnusEvent().' événements / '. $filialeF->getDureeBonnusEvent(). ' jours':null,
'bonnusPub'=>$filialeF->getBonnusPub()? $filialeF->getBonnusPub().' publicités / '. $filialeF->getDureeBonnusPub(). ' jours':null,
];
}
$filialePubArr = [];
$filialeEventsArr = [];
if($gestionnaire!=null)
{
$filialeEvents = $this->em->getRepository(Evenement::class)->findBy(['proprietaire' => $gestionnaire->getUser()]);
foreach ($filialeEvents as $event) {
$piecesJointes = $this->em->getRepository(PiecesEvenement::class)->findBy(['evenement' => $event->getId()]);
$description_html = $event->getContenu();
$description_propre = strip_tags($description_html);
$description_pub_courte = substr($description_propre, 0, 140);
$eventdata = [
'id' => $event->getId(),
'titre' => $event->getTitre(),
'contenu' => $event->getMetaDescription()!=null?$event->getMetaDescription():$description_pub_courte,
'etat' => [
'id' => $event->getEtat()->getId(),
'etat' => $event->getEtat()->getEtat(),
],
'departement'=>$event->getDepartement()->getNom(),
'duree'=>$event->getDuree(),
'dateEvenement'=>$event->getDateEvenement(),
'dateDebutDiffusion'=>$event->getDateDebutDiffusion(),
'dateFinDiffusion'=>$event->getDateFinDiffusion(),
'piecesJointes' => [],
];
foreach ($piecesJointes as $piece) {
$eventdata['piecesJointes'][] = [
'principale' => $piece->getPrincipale(),
'dir' => '/uploadsFront/'.$gestionnaire->getUser()->getId().'/events/'.$event->getId(),
'nom' => $piece->getNom(),
];
}
$filialeEventsArr[] = $eventdata;
}
}
$filialePub = $this->em->getRepository(Publicite::class)->findBy(['filiale' => $filiale->getId()]);
foreach ($filialePub as $pub) {
$piecesJointes = $this->em->getRepository(PiecesPublicite::class)->findBy(['publicite' => $pub->getId()]);
$description_html = $pub->getContenu();
$description_propre = strip_tags($description_html);
$description_pub_courte = substr($description_propre, 0, 140);
$pubData = [
'id' => $pub->getId(),
'titre' => $pub->getTitre(),
'contenu' => $pub->getMetaDescription()!=null?$pub->getMetaDescription():$description_pub_courte,
'dateDebut'=>$pub->getDateDebut(),
'dateFin'=>$pub->getDateFin(),
'departement'=>$pub->getDepartement()->getNom(),
'etat' => [
'id' => $pub->getEtat()->getId(),
'etat' => $pub->getEtat()->getEtat(),
],
'piecesJointes' => [],
];
foreach ($piecesJointes as $piece) {
$pubData['piecesJointes'][] = [
'principale' => $piece->isPrincipale(),
'dir' => '/uploadsFront/'.$gestionnaire->getUser()->getId().'/publicites/'.$pub->getId(),
'nom' => $piece->getNom(),
];
}
$filialePubArr[] = $pubData;
}
$output = [
'filialeEventsArr'=>$filialeEventsArr,
'filialePubArr'=>$filialePubArr,
'id'=> $filiale->getId(),
'nom'=>$filiale->getNom(),
'type'=>$filiale->getType(),
'niveau'=>$filiale->getNiveau()!=null?$filiale->getNiveau()->getId():null,
'description'=>$filiale->getDescription(),
'numVoieFiliale'=>$filiale->getNumVoie(),
'typeVoieFiliale'=>$filiale->gettypeVoie(),
'siteFiliale'=>$filiale->getSite(),
'telephoneFiliale'=>$filiale->getTelephone(),
'portableFiliale'=>$filiale->getPortable(),
'dateCreationFiliale'=>$filiale->getDateCreationFiliale()?$filiale->getDateCreationFiliale()->format('d/m/Y'):null,
'nomVoieFiliale'=>$filiale->getNomVoie(),
'villeFiliale'=>$filiale->getVille(),
'pays'=>$filiale->getPays()->getId(),
'departementFiliale'=>$filiale->getDepartement()!=null?$filiale->getDepartement()->getId():null,
'adressFiliale'=>$filiale->getAdresse(),
'cpFiliale'=>$filiale->getCodePostal(),
'imgFiliale' => $filiale->getImage() ? '/uploadsFront/entreprises/'.$filiale->getEntreprise()->getId().'/Filiales/'.$filiale->getId().'/' . $filiale->getImage() : null,
'parentFiliale'=>$filiale->getFilialeParent()!=null?$filiale->getFilialeParent()->getId():null,
'parentFilialeNom'=>$filiale->getFilialeParent()!=null?$filiale->getFilialeParent()->getNom():null,
'arr_c_filiale'=>$arr_c_filiale,
'arr_competence_filiale'=>$arr_c_filiale,
'competences'=>$arr_competence,
'id_entreprise'=>$filiale->getEntreprise()->getId(),
'nomGestionnaire'=>$gestionnaire?($gestionnaire->getNom()?substr($gestionnaire->getNom() , 0, 3) . str_repeat('*', strlen($gestionnaire->getNom() ) - 3):''):'',
'pseudoGestionnaire'=>$gestionnaire?$gestionnaire->getPseudo():'',
'prenomGestionnaire'=>$gestionnaire?($gestionnaire->getNom()?substr($gestionnaire->getPrenom() , 0, 3) . str_repeat('*', strlen($gestionnaire->getPrenom() ) - 3):''):'',
'emailGestionnaire'=>$gestionnaire?$emailMasque:'',
'telephoneGestionnaire'=>$gestionnaire?($gestionnaire->getTelephone()?substr($gestionnaire->getTelephone() , 0, 3) . str_repeat('*', strlen($gestionnaire->getTelephone() ) - 3):''):'',
'portableGestionnaire'=>$gestionnaire?($gestionnaire->getPortable()?substr($gestionnaire->getPortable() , 0, 3) . str_repeat('*', strlen($gestionnaire->getPortable() ) - 3):''):'',
'villeGestionnaire'=>$gestionnaire?($gestionnaire->getVille()?substr($gestionnaire->getVille() , 0, 3) . str_repeat('*', strlen($gestionnaire->getVille() ) - 3):''):'',
'paysGestionnaire'=>$gestionnaire?$gestionnaire->getPays()->getId():'',
'numVoieGestionnaire'=>$gestionnaire?($gestionnaire->getNumVoie()?substr($gestionnaire->getNumVoie() , 0, 3) . str_repeat('*', strlen($gestionnaire->getNumVoie() ) - 3):''):'',
'typeVoieGestionnaire'=>$gestionnaire?$gestionnaire->getTypeVoie():'',
'nomVoieGestionnaire'=>$gestionnaire?($gestionnaire->getNomVoie()?substr($gestionnaire->getNomVoie() , 0, 3) . str_repeat('*', strlen($gestionnaire->getNomVoie() ) - 3):''):'',
'departementGestionnaire'=>$gestionnaire && $gestionnaire->getDepartement()!=null?$gestionnaire->getDepartement()->getId():null,
'adressGestionnaire'=>$gestionnaire?($gestionnaire->getAdresse()?substr($gestionnaire->getAdresse() , 0, 3) . str_repeat('*', strlen($gestionnaire->getAdresse() ) - 3):''):'',
'cpGestionnaire'=>$gestionnaire?($gestionnaire->getCp()?substr($gestionnaire->getCp() , 0, 2) . str_repeat('*', strlen($gestionnaire->getCp() ) - 3):''):'',
'langue'=>$gestionnaire?$gestionnaire->getLangue()->getId():'',
'idGestionnaire'=>$gestionnaire?$gestionnaire->getId():'',
'civilite'=>$gestionnaire?$gestionnaire->getCivilite():'',
'arr_departementsFiliale'=>$arr_departementsFiliale,
'arr_departementGestionnaire'=>$arr_departementGestionnaire,
'maxlengthG'=>$maxlengthG ,
'prefixG'=>$prefixG,
'maxlengthF'=>$maxlengthF,
'prefixF'=>$prefixF,
'dateNaissance'=>$gestionnaire?($gestionnaire->getDateNaissance()?substr($gestionnaire->getDateNaissance()->format('d/m/Y') , 0, 3) . str_repeat('*', strlen($gestionnaire->getDateNaissance()->format('d/m/Y') ) - 3):''):'',
'competencesEntreprise'=>$filiale->getEntreprise()->getServices(),
'servicesFiliale'=>$filiale->getServices(),
'moyensCommFiliale'=>$filiale->getMoyensCommunication(),
'sameParentManager'=>$filiale->isUseParentManager(),
'hasManager'=>$gestionnaire?true:false,
'filialeFormule'=>$filialeFormule,
'filialeEventsArr'=>$filialeEventsArr,
'filialePubArr'=>$filialePubArr,
'emailFiliale'=>$filiale->getEmail(),
'socialsFiliale'=>$filiale->getSocialLinks()??[],
];
$JSON = json_encode($output);
$response = new Response($JSON, 200, ['Content-Type' => 'application/json']);
return $response;
}
public function get_competence_filiale(Request $request , FilialeRepository $FilialeRepository ,CompetencesRepository $CompetencesRepository, GestionnaireFilialeRepository $GestionnaireFilialeRepository){
$output=[];
$arr_competence = [];
$arr_c_filiale = [];
$filiale = $FilialeRepository->find($request->get('id_filiale'));
$gestionnaire = $GestionnaireFilialeRepository->find($filiale->getGestionnaire());
$arr_competence_filiale = $filiale->getCompetences();
foreach($arr_competence_filiale as $cf){
$arr_c_filiale []= (int)$cf;
}
$competences = $CompetencesRepository->findBy(['etat'=>1]);
foreach($competences as $competence){
$arr_competence []= $competence->getId();
}
$output = [
'arr_cf'=>$arr_c_filiale,
'competences'=>$arr_competence,
];
$JSON = json_encode($output);
$response = new Response($JSON, 200, ['Content-Type' => 'application/json']);
return $response;
}
/**
* @Route("/edit_entreprise_documents", name="edit_entreprise_documents",methods={"POST"}, options = {"expose"=true})
*/
public function edit_entreprise_documents(Request $request,AgentRepository $AgentRepository,CompetencesRepository $CompetencesRepository,FilialeRepository $FilialeRepository,FormulesRepository $FormulesRepository,ProfessionnelRepository $ProfessionnelRepository, PaysRepository $PaysRepository,GestionnaireEntrepriseRepository $GestionnaireEntrepriseRepository, AdministrateursRepository $AdministrateursRepository , EtatRepository $EtatRepository , EntrepriseRepository $EntrepriseRepository,GroupeRestrictionRepository $groupe_restrictionRepository,
GroupeRestrictionPageRepository $grouprestrictionpageRepository): Response{
$entreprise = $EntrepriseRepository->find($request->get('idEntreprise'));
if (!$entreprise) {
$msg = ['msg'=>'KOO'] ;
$JSON = json_encode($msg);
$response = new Response($JSON, 200, ['Content-Type' => 'application/json']);
return $response ;
}
//dd($kbis ,$pdf_entreprise2_files,$pdf_entreprise3_files);
$kbisFiles = $request->files->get('pdf_entreprise1');
$pdf_entreprise2_files = $request->files->get('pdf_entreprise2');
$pdf_entreprise3_files = $request->files->get('pdf_entreprise3');
$uploadDirRoot = $this->getParameter('uploads_directory') ;
if (!empty($kbisFiles)){
foreach($kbisFiles as $f)
{
$filesystem = new Filesystem();
$piece=new PieceJointeProfessionnel();
$fileName = $f->getClientOriginalName();
$fileDir = $uploadDirRoot.'/entreprises/'.$entreprise->getId().'/siege' ;
if( $filesystem->exists($fileDir ) == false ){
$filesystem->mkdir($fileDir , 0777, true);
}
$f->move($fileDir, $fileName);
$piece->setNomDocument($fileName);
$piece->setDirectory('/uploads/entreprises/'.$entreprise->getId().'/siege');
$piece->setTitre('Kbis');
$piece->setDateCreation(new \DateTime());
// $piece->setDateUpdate(new \DateTime());
$piece->setEntreprise($entreprise);
$this->em->persist($piece);
}
}
if (!empty($pdf_entreprise2_files)){
foreach($pdf_entreprise2_files as $f)
{
$filesystem = new Filesystem();
$piece=new PieceJointeProfessionnel();
$fileName = $f->getClientOriginalName();
$fileDir = $uploadDirRoot.'/entreprises/'.$entreprise->getId().'/siege' ;
if( $filesystem->exists($fileDir ) == false ){
$filesystem->mkdir($fileDir , 0777, true);
}
$f->move($fileDir, $fileName);
$piece->setNomDocument($fileName);
$piece->setDirectory('/uploads/entreprises/'.$entreprise->getId().'/siege');
$piece->setTitre('identite responsable 1');
$piece->setDateCreation(new \DateTime());
// $piece->setDateUpdate(new \DateTime());
$piece->setEntreprise($entreprise);
$this->em->persist($piece);
}
}
if (!empty($pdf_entreprise3_files)){
foreach($pdf_entreprise3_files as $f)
{
$filesystem = new Filesystem();
$piece=new PieceJointeProfessionnel();
$fileName = $f->getClientOriginalName();
$fileDir = $uploadDirRoot.'/entreprises/'.$entreprise->getId().'/siege' ;
if( $filesystem->exists($fileDir ) == false ){
$filesystem->mkdir($fileDir , 0777, true);
}
$f->move($fileDir, $fileName);
$piece->setNomDocument($fileName);
$piece->setDirectory('/uploads/entreprises/'.$entreprise->getId().'/siege');
$piece->setTitre('identite responsable 2');
$piece->setDateCreation(new \DateTime());
// $piece->setDateUpdate(new \DateTime());
$piece->setEntreprise($entreprise);
$this->em->persist($piece);
}
}
$this->em->flush();
$msg = ['msg'=>'OK'] ;
$JSON = json_encode($msg);
$response = new Response($JSON, 200, ['Content-Type' => 'application/json']);
return $response ;
}
/**
* @Route("/delete_entreprise_document/{id}", name="delete_entreprise_document",methods={"DELETE"}, options = {"expose"=true})
*/
public function delete_entreprise_document(Request $request,$id,PieceJointeProfessionnelRepository $PieceJointeProfessionnelRepository): Response
{
$document = $PieceJointeProfessionnelRepository->findOneBy(['id'=>$id]);
if (!$document) {
$msg = ['msg'=>'KOO'] ;
$JSON = json_encode($msg);
$response = new Response($JSON, 200, ['Content-Type' => 'application/json']);
return $response;
}
$filesystem = new Filesystem();
$uploadDirRoot = $this->getParameter('uploads_directory') ;
$filePath = $uploadDirRoot . $document->getDirectory() . '/' . $document->getNomDocument();
try {
$filesystem->remove($filePath);
} catch (\Exception $e) {
$msg = ['msg' => 'Erreur lors de la suppression du fichier'];
return new JsonResponse($msg, 500);
}
$this->em->remove($document);
$this->em->flush();
$msg = ['msg'=>'OK'] ;
$JSON = json_encode($msg);
$response = new Response($JSON, 200, ['Content-Type' => 'application/json']);
return $response;
}
/**
* @Route("/edit_gestionnaire_formule", name="edit_gestionnaire_formule",methods={"GET","POST"}, options = {"expose"=true})
*/
public function edit_gestionnaire_formule(Request $request,FormulesRepository $FormulesRepository,GestionnaireEntrepriseRepository $GestionnaireEntrepriseRepository): Response{
$gestionnaire = $GestionnaireEntrepriseRepository->find($request->get('GestionnaireId'));
if (!$gestionnaire) {
$msg = ['msg'=>'KOO'] ;
$JSON = json_encode($msg);
$response = new Response($JSON, 200, ['Content-Type' => 'application/json']);
return $response ;
}
$formule = $FormulesRepository->find($request->get('NewFormuleId'));
$gestionnaire->setFormule($formule);
$gestionnaire->setDateUpdate(DateTime::createFromFormat('Y-m-d H:i:s', date('Y-m-d H:i:s' ) ));
$this->em->persist($gestionnaire);
$this->em->flush();
$msg = ['msg'=>'OK'] ;
$JSON = json_encode($msg);
$response = new Response($JSON, 200, ['Content-Type' => 'application/json']);
return $response ;
}
/**
* @Route("/delete_entreprise/{id}", name="delete_entreprise", methods={"DELETE"} , options={"expose"=true})
*/
public function delete_entreprise($id,userRepository $userRepository,EntrepriseRepository $EntrepriseRepository,ConnexionGestionnaireEntrepriseRepository $ConnexionGestionnaireEntrepriseRepository): JsonResponse{
$entreprise = $EntrepriseRepository->find($id);
if (!$entreprise) {
return new JsonResponse(['status' => 'KOO', 'message' => 'entreprise non trouvée !']);
}
try {
$gestionnaire=$entreprise->getGestionnaireEntreprise();
$connexions = $ConnexionGestionnaireEntrepriseRepository->findBy(['gestionnaire_entreprise' => $gestionnaire->getId()]);
foreach ($connexions as $connexion) {
$this->em->remove($connexion);
}
// 2. Supprimer le particulier
$this->em->remove($gestionnaire);
// 3. Supprimer l'utilisateur associé au particulier
$user = $userRepository->find($gestionnaire->getUser()->getId());
if ($user) {
$this->em->remove($user);
}
$this->em->remove($entreprise);
$this->em->flush();
return new JsonResponse(['status' => 'OK', 'message' => 'Entreprise supprimée avec succès !']);
} catch (\Exception $e) {
return new JsonResponse(['status' => 'error', 'message' => 'Erreur lors de la suppression de l\'entreprise : ' . $e->getMessage()], Response::HTTP_INTERNAL_SERVER_ERROR);
}
}
}