<?php
declare(strict_types=1);
/**
* @author Raymond
*/
namespace App\Controller;
use App\Services\MetaTag;
use App\Services\LogMarketingProvider;
use App\Services\Encryptage\AesEncrytageStrategy;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\Request;
use Knp\Component\Pager\PaginatorInterface;
use App\Twig\TranslationExtension;
use App\Helper\Utils;
use App\Helper\ParametersProvider;
use App\Services\ManagerEntity\SocietesManagers;
use App\Services\ManagerEntity\LocalisationsManagers;
use App\Repository\SocietesRepository;
use App\Services\ManagerEntity\BuzzManagers;
use App\Services\ManagerEntity\DroitsAccesManagers;
use App\Form\Models\ContactezDirectementFondsInvestissement;
use App\Form\Type\ContactezDirectementFondsInvestissementType;
use App\Entity\Societes;
use App\Services\ManagerEntity\SecteursActiviteManagers;
use App\Services\ManagerEntity\ParametreSiteManagers;
use App\Services\ManagerEntity\ContactGenerauxManagers;
use Symfony\Component\Form\Extension\Core\Type\ButtonType;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
use Symfony\Component\Form\Extension\Core\Type\HiddenType;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\Forms;
use App\Entity\SocieteGestionnaireFonds;
use Doctrine\ORM\EntityManagerInterface;
use App\Form\SocieteGestionnaireFondsFormType;
use App\Helper\ConversionProvider;
use App\Services\CodeAccesService;
use App\Services\GoogleTag;
use App\Entity\Panier;
use App\Repository\CommandesRepository;
class AnnuaireFondsInvestissementController extends EntityUsingController
{
/**
* @var SocietesManagers
*/
private $sm;
/**
* @var DroitsAccesManagers
*/
private $dam;
/**
* @var MetaTag
*/
private $metaTag;
/**
* @var LogMarketingProvider
*/
private $lmp;
/**
* @var ContactGenerauxManagers
*/
private $cgm;
/**
* @var EntityManagerInterface
*/
private $em;
public function __construct(SocietesManagers $sm, DroitsAccesManagers $dam, MetaTag $metaTag, LogMarketingProvider $lmp, ContactGenerauxManagers $cgm, EntityManagerInterface $em)
{
$this->sm = $sm;
$this->dam = $dam;
$this->metaTag = $metaTag;
$this->lmp = $lmp;
$this->cgm = $cgm;
$this->em = $em;
}
/**
* @return Response
*/
public function listealphabetique(Request $request, TranslationExtension $translationExtension, PaginatorInterface $paginator, SocietesRepository $societeRepo, ParametreSiteManagers $pm, $start, $codePays): Response
{
$lang = $request->getSession()->get('lang');
$parametres['start'] = $start;
$liste_fonds = $this->sm->getFondsInvestissementList($request, $paginator, $parametres);
$premiers_caracteres = $societeRepo->donne_premier_caractere_fonds_investissement();
$user = $this->getUser();
if ($user) {
$this->lmp->ajouterActionLogsActions($user->_get('id_utilisateur'), intval(30), $user->_get('type_utilisateur'), "----"); // 30 = Consultation annuaire des fonds d'investissement
}
$nb_fonds = $pm->getValueParamSiteByParamCodePays('nb_fonds_investissement_dans_annuaire_participations', $codePays, true);
$arrayVarsTrans['nb_fonds'] = $nb_fonds;
$metaTitle = 'l\'annuaire des fonds d\'investissement, %$nb_fonds%$ investisseurs référencés';
$metaDescription = 'Trouver un fonds d\'investissement en France ou à l\'international parmi %$nb_fonds%$ investisseurs référencés';
$metaTag = $this->metaTag
->setTitle($translationExtension->translate($metaTitle, $lang, "", "M", "", $arrayVarsTrans))
->setDescription($translationExtension->translate($metaDescription, $lang, "", "M", "", $arrayVarsTrans));
return $this->render(
'annuaires/fonds_investissement/liste alphabetique.html.twig',
[
'metaTag' => $metaTag,
'liste_fonds' => $liste_fonds,
'premiers_caracteres' => $premiers_caracteres,
'start' => $start
]
);
}
/**
* @return Response
*/
public function listecriteresinvestissement(Request $request, SecteursActiviteManagers $secteursActiviteManager, LocalisationsManagers $localisationManager, TranslationExtension $translationExtension, PaginatorInterface $paginator, SocietesRepository $societeRepo, ParametreSiteManagers $pm, $codePays): Response
{
$parametres = $request->query->all();
$isRecherche = $this->serializeParams($parametres) != "";
$parametres['from'] = "liste_criteres_investissement";
$parametres = ParametersProvider::prepareRechercheFondsInvestissementParameters($parametres);
unset($parametres['from']);
$parametres_localisations = ParametersProvider::prepareLocalisationsParameters($localisationManager, $parametres);
$string_params = $this->serializeParams($parametres);
$urlList = $request->getPathInfo();
$lang = $request->getSession()->get('lang');
$user = $this->getUser();
if ($user) {
$this->lmp->ajouterActionLogsActions($user->_get('id_utilisateur'), intval(30), $user->_get('type_utilisateur'), "----"); // 30 = Consultation annuaire des fonds d'investissement
$hasService = $this->dam->checkIfThisUserHasDroitService($user, [47]); // 47 = annuaire_fonds_investissement
} else {
$hasService = false;
}
if ($hasService && $isRecherche) {
$liste_fonds = $this->sm->getFondsInvestissementList($request, $paginator, $parametres);
$repoSociete = $this->getDoctrine()->getRepository(Societes::class);
$nb_fonds_investissement = $repoSociete->donne_nb_fonds_investissement($parametres);
} else {
$liste_fonds = [];
$nb_fonds_investissement = $pm->getValueParamSiteByParamCodePays('nb_fonds_investissement_dans_annuaire_participations', $codePays, true);
}
$stade_investissement = [
$translationExtension->translate('indifferent', $lang, '', 'M', '') => '',
$translationExtension->translate('amorçage', $lang, '', 'M', '') => '1',
$translationExtension->translate('capital risque', $lang, '', 'M', '') => '2',
$translationExtension->translate('capital développement', $lang, '', 'M', '') => '3',
$translationExtension->translate('transmissions - LBO', $lang, '', 'M', '') => '4',
$translationExtension->translate('mezzanine', $lang, '', 'M', '') => '5',
$translationExtension->translate('retournement', $lang, '', 'M', '') => '6',
$translationExtension->translate('fonds de fonds', $lang, '', 'M', '') => '7'
];
$type_investissement = [
$translationExtension->translate('indifferent', $lang, '', 'M', '') => '',
$translationExtension->translate('majoritaire', $lang, '', 'M', '') => 'majoritaire',
$translationExtension->translate('minoritaire', $lang, '', 'M', '') => 'minoritaire',
];
$pays = $this->sm->donne_option_select_pays_fonds_investissement();
$regions = [];
$secteurs_activite_fonds = $secteursActiviteManager->donne_option_select_secteurs_activite_fonds();
$formFactory = Forms::createFormFactoryBuilder()->getFormFactory();
$form = $formFactory->createNamedBuilder('')
->add('montant_recherche', TextType::class, [
'required' => false,
'data' => $parametres['montant_recherche']
])
->add('stade_investissement', ChoiceType::class, [
'choices' => $stade_investissement,
'required' => false,
'data' => $parametres['stade_investissement']
])
->add('type_reprise_bis', ChoiceType::class, [
'choices' => $type_investissement,
'required' => false,
'data' => $parametres['type_reprise_bis']
])
->add('id_secteur_activite_fonds', ChoiceType::class, [
'choices' => $secteurs_activite_fonds,
'data' => $parametres['id_secteur_activite_fonds']
])
->add('id_pays', ChoiceType::class, [
'choices' => $pays,
])
->add('id_region', ChoiceType::class, [
'choices' => $regions,
])
->add('id_localisation', HiddenType::class, [
'data' => $parametres['id_localisation']
])
->add('ajouter', ButtonType::class)
->add('rechercher', SubmitType::class)
->setAction($this->generateUrl('fonds_investissement_liste_criteres_investissement', ['codePays' => $codePays]))
->setMethod('GET')
->getForm();
$page = $request->query->get('page');
if ($page != null && $page != 1) {
$string_params .= "&page=" . $page;
}
$nb_fonds_statique = $pm->getValueParamSiteByParamCodePays('nb_fonds_investissement_dans_annuaire_participations', $codePays, true);
$arrayVarsTrans['nb_fonds_statique'] = $nb_fonds_statique;
$metaTitle = 'l\'annuaire des fonds d\'investissement, %$nb_fonds_statique%$ investisseurs référencés';
$metaDescription = 'Trouver un fonds d\'investissement en France ou à l\'international parmi %$nb_fonds_statique%$ investisseurs référencés';
$metaTag = $this->metaTag
->setTitle($translationExtension->translate($metaTitle, $lang, "", "M", "", $arrayVarsTrans))
->setDescription($translationExtension->translate($metaDescription, $lang, "", "M", "", $arrayVarsTrans));
//dd($string_params,$urlList);
return $this->render(
'annuaires/fonds_investissement/liste criteres_investissement.html.twig',
[
'metaTag' => $metaTag,
'form' => $form->createView(),
'parametres' => $parametres,
'parametres_localisations' => $parametres_localisations,
'liste_fonds' => $liste_fonds,
'hasService' => $hasService,
'isRecherche' => $isRecherche,
'nb_fonds_statique' => $nb_fonds_statique,
'nb_fonds_investissement' => $nb_fonds_investissement,
'string_params' => $string_params,
'urlList' => $urlList
]
);
}
/**
* @return Response
*/
public function listehistoriqueinvestissement(Request $request, SecteursActiviteManagers $secteursActiviteManager, LocalisationsManagers $localisationManager, TranslationExtension $translationExtension, PaginatorInterface $paginator, SocietesRepository $societeRepo, ParametreSiteManagers $pm, $codePays): Response
{
$parametres = $request->query->all();
$isRecherche = $this->serializeParams($parametres) != "";
$parametres = ParametersProvider::prepareRechercheFondsInvestissementParameters($parametres);
$parametres_localisations = ParametersProvider::prepareLocalisationsParameters($localisationManager, $parametres);
$string_params = $this->serializeParams($parametres);
$urlList = $request->getPathInfo();
$lang = $request->getSession()->get('lang');
$user = $this->getUser();
if ($user) {
$this->lmp->ajouterActionLogsActions($user->_get('id_utilisateur'), intval(30), $user->_get('type_utilisateur'), "----"); // 30 = Consultation annuaire des fonds d'investissement
$hasService = $this->dam->checkIfThisUserHasDroitService($user, [47]); // 47 = annuaire_fonds_investissement
} else {
$hasService = false;
}
if ($hasService && $isRecherche) {
$liste_fonds = $this->sm->getFondsInvestissementList($request, $paginator, $parametres);
$repoSociete = $this->getDoctrine()->getRepository(Societes::class);
$nb_fonds_investissement = $repoSociete->donne_nb_fonds_investissement($parametres);
} else {
$liste_fonds = [];
$nb_fonds_investissement = $pm->getValueParamSiteByParamCodePays('nb_fonds_investissement_dans_annuaire_participations', $codePays, true);
}
$secteurs_activite1 = $secteursActiviteManager->donne_option_select_secteurs_activite_niveau_1();
if (isset($parametres['id_secteur_activite'])) {
$secteurs_activite2 = $secteursActiviteManager->donne_option_select_secteurs_activite_enfant_by_secteur_activite_parent($parametres['id_secteur_activite']);
$show_secteur_niveau_2 = true;
} else {
$secteurs_activite2 = [];
$show_secteur_niveau_2 = false;
}
if (isset($parametres['id_secteur_activite2'])) {
$secteurs_activite3 = $secteursActiviteManager->donne_option_select_secteurs_activite_enfant_by_secteur_activite_parent($parametres['id_secteur_activite2']);
$show_secteur_niveau_3 = true;
} else {
$secteurs_activite3 = [];
$show_secteur_niveau_3 = false;
}
$secteurs_activite_fonds = $secteursActiviteManager->donne_option_select_secteurs_activite_fonds();
$clerecherche = [
$translationExtension->translate("mots-cles du secteur", $lang, '', 'M', '') => 'motscles',
$translationExtension->translate("secteur d'activité Fusacq", $lang, '', 'M', '') => 'secteurs',
$translationExtension->translate("secteur d'activité simplifié", $lang, '', 'M', '') => 'secteurs_fonds',
$translationExtension->translate("code NAF", $lang, '', 'M', '') => 'code_naf'
];
$formFactory = Forms::createFormFactoryBuilder()->getFormFactory();
$form = $formFactory->createNamedBuilder('')
->add('reference_mots_cles', TextType::class, [
'required' => false,
'data' => $parametres['reference_mots_cles'],
'attr' => [
'placeholder' => $translationExtension->translate("ex : hôtel", $lang, '', 'M', '')
]
])
->add('id_secteur_activite', ChoiceType::class, [
'choices' => $secteurs_activite1,
'data' => $parametres['id_secteur_activite']
])
->add('id_secteur_activite2', ChoiceType::class, [
'choices' => $secteurs_activite2,
'data' => $parametres['id_secteur_activite2']
])
->add('id_secteur_activite3', ChoiceType::class, [
'choices' => $secteurs_activite3,
'data' => $parametres['id_secteur_activite3']
])
->add('id_secteur_activite_fonds', ChoiceType::class, [
'choices' => $secteurs_activite_fonds,
'data' => $parametres['id_secteur_activite_fonds']
])
->add('code_naf', TextType::class, [
'required' => false,
'data' => $parametres['code_naf'],
'attr' => [
'placeholder' => $translationExtension->translate("ex : 58.36Z", $lang, '', 'M', '')
]
])
->add('recherche_par', ChoiceType::class, [
'required' => false,
'choices' => $clerecherche,
'expanded' => true,
'multiple' => false,
'data' => $parametres['recherche_par'] ?? 'motscles',
'placeholder' => false,
'choice_value' => function ($choice) {
return $choice; // Utilisez la valeur du choix comme clé
}
])
->add('rechercher', SubmitType::class)
->setAction($this->generateUrl('fonds_investissement_liste_historique_investissement', ['codePays' => $codePays]))
->setMethod('GET')
->getForm();
$page = $request->query->get('page');
if ($page != null && $page != 1) {
$string_params .= "&page=" . $page;
}
$nb_fonds_statique = $pm->getValueParamSiteByParamCodePays('nb_fonds_investissement_dans_annuaire_participations', $codePays, true);
$arrayVarsTrans['nb_fonds_statique'] = $nb_fonds_statique;
$metaTitle = 'l\'annuaire des fonds d\'investissement, %$nb_fonds_statique%$ investisseurs référencés';
$metaDescription = 'Trouver un fonds d\'investissement en France ou à l\'international parmi %$nb_fonds_statique%$ investisseurs référencés';
$metaTag = $this->metaTag
->setTitle($translationExtension->translate($metaTitle, $lang, "", "M", "", $arrayVarsTrans))
->setDescription($translationExtension->translate($metaDescription, $lang, "", "M", "", $arrayVarsTrans));
//dd($string_params,$urlList);
return $this->render(
'annuaires/fonds_investissement/liste historique_investissement.html.twig',
[
'metaTag' => $metaTag,
'form' => $form->createView(),
'parametres' => $parametres,
'parametres_localisations' => $parametres_localisations,
'show_secteur_niveau_2' => $show_secteur_niveau_2,
'show_secteur_niveau_3' => $show_secteur_niveau_3,
'liste_fonds' => $liste_fonds,
'hasService' => $hasService,
'isRecherche' => $isRecherche,
'nb_fonds_statique' => $nb_fonds_statique,
'nb_fonds_investissement' => $nb_fonds_investissement,
'string_params' => $string_params,
'urlList' => $urlList
]
);
}
public function strategieinvestissement(Request $request, TranslationExtension $translationExtension, LocalisationsManagers $localisationManager, BuzzManagers $bm, GoogleTag $googleTag, AesEncrytageStrategy $aes, CommandesRepository $cr, $idFonds, $codePays): Response
{
// Flag pour savoir si $idFonds est crypté
// Si oui, on masque par défaut les coordonnées du fonds, sauf si commande ou abonnement
$isEncrypted = false;
// Si $idFonds est crypté, on le décrypte
if (!is_numeric($idFonds)) {
$idFonds = $aes->decryptage($idFonds);
$isEncrypted = true;
}
$fonds = $this->sm->getFondsInvestissement($idFonds);
if (isset($fonds) && $fonds->_get('mode') == "publique") {
// On efface les anciens parametres s'ils existent, puis on insert les nouveaux
$googleTag->removeParametresPub();
if ($fonds->_get('id_pays')) {
$googleTag->setIdPays($fonds->_get('id_pays'));
}
if ($fonds->_get('id_region')) {
$googleTag->setIdRegion($fonds->_get('id_region'));
}
if ($fonds->_get('id_secteur_activite')) {
$id_secteur_activite_recherche = trim($fonds->_get('id_secteur_activite'), ",");
$array_secteur_activite_recherche = explode(",", $id_secteur_activite_recherche);
// On prend le premier id_secteur_activite
if ($array_secteur_activite_recherche[0]) {
$googleTag->setIdSecteurActivite($array_secteur_activite_recherche[0]);
}
}
$lang = $request->getSession()->get('lang');
$parametres = $request->query->all();
$from = isset($request->from) ? $request->from : null;
if ($from == "ouvrir-capital") {
$colorClass = "orange-new";
$ongletClass = "onglet8";
$titreClass = "titre_annonce_orange";
$btnClass = "btn-orange-new";
$bgColor = "#5F9779";
$parametres = ParametersProvider::prepareRechercheAvanceeOuvrirCapitalParameters($parametres);
} elseif ($from && $from == "investisseur-acquereur") {
$colorClass = "vert";
$ongletClass = "onglet5";
$titreClass = "titre_annonce_vert";
$btnClass = "btn-vert";
$bgColor = "#5F9779";
$parametres = ParametersProvider::prepareRechercheAvanceeAnnonceAcheteurParameters($parametres);
} else {
$colorClass = "orange-new";
$ongletClass = "onglet8";
$titreClass = "titre_annonce_orange";
$btnClass = "btn-orange-new";
$bgColor = "#5F9779";
$parametres = ParametersProvider::prepareRechercheFondsInvestissementParameters($parametres);
}
$string_params = $this->serializeParams($parametres);
$index = (int)$request->query->get('index');
$page = (int) $request->query->get('page', 1);
if ($page > 1) {
$string_params .= "&page=" . $page;
}
$urlList = $request->query->get('urlList');
$model = new ContactezDirectementFondsInvestissement();
$model->_set('id_gestionnaire_fonds', $idFonds);
$form = $this->createForm(ContactezDirectementFondsInvestissementType::class, $model, [
'method' => 'POST',
]);
$form->handleRequest($request);
if ($form->isSubmitted()) {
if ($form->isValid()) {
$data = $form->getData();
$id_formulaire = $this->cgm->contacter((array) $data);
if ($id_formulaire) {
$this->addFlash('success', $translationExtension->translate("votre message a bien été envoyé.", $lang, "", "M", ""));
}
} else {
$this->addFlash('error', $translationExtension->translate("une erreur s'est produite, votre message n'a pas pu être envoyé.", $lang, "", "M", ""));
}
}
$http_host = $request->server->get('HTTP_HOST');
$url = substr($request->server->get('REDIRECT_URL'), 0, -4);
$canonical = $http_host.$url;
$next = $canonical.'?onglet=2';
$urlRetourList = $urlList ? $urlList . '?' . $string_params : null;
$previousAnnonce = $this->sm->getIndexNAcquereurInvestisseurList($parametres, $page, $index - 1);
$nextAnnonce = $this->sm->getIndexNAcquereurInvestisseurList($parametres, $page, $index + 1);
$nb_actualites = $bm->getNbActualitesByFonds($idFonds);
$parametres['id_gestionnaire_fonds'] = $idFonds;
$repoSociete = $this->getDoctrine()->getRepository(Societes::class);
$nb_investissement = $repoSociete->donne_nb_participations_dun_fonds($parametres, "acheteur");
$hasCommande = false;
$lignePanier = false;
$hasForfait = false;
$isNoLongerAvailable = false;
$forfaitAUtiliser = false;
$user = $this->getUser();
if ($user) {
$hasService = $this->dam->checkIfThisUserHasDroitService($user, [47]); // 47 = annuaire_fonds_investissement
$lignePanier = $this->em->getRepository(Panier::class)->findOneBy(
['login_utilisateur' => $user->_get('login_utilisateur'), "type_object" => 'annonce_FONDS', "id_object" => $idFonds]
);
$forfaitAUtiliser = $this->dam->getFrofaitAnnonceToUse($user);
if (!empty($forfaitAUtiliser)) {
$hasForfait = true;
}
// On regarde si le fonds a été commandé dans la table commandes
$hasCommande = $cr->hasAnnonceCommande($user->_get('login_utilisateur'),$idFonds,"fonds");
} else {
$hasService = false;
}
$metaTitle = 'Fonds d\'investissement %$titre%$';
$metaDescription = 'Consultez le fonds d\'investissement %$titre%$';
if (($hasCommande || $hasService) || !$isEncrypted) {
$nom_societe = $fonds->_get('nom_societe');
// Lien vers l'annuaire des Fonds d'investissement
$realCanonical = $http_host.$this->generateUrl('fonds_investissement_actualites_publiees', ['slug' => Utils::slugify($fonds->_get('nom_societe')), 'idFonds' => $idFonds, 'pageActu' => 1, 'codePays' => $codePays]);
} else {
$nom_societe = substr($fonds->_get('nom_societe'), 0, 1) . "*****";
$realCanonical = $canonical;
}
$arrayVarsTrans['titre'] = $nom_societe;
$dernieresAnnonces = $request->query->get('dernieresAnnonces');
$metaTag = $this->metaTag
->setTitle($translationExtension->translate($metaTitle, $lang, "", "M", "", $arrayVarsTrans))
->setDescription($translationExtension->translate($metaDescription, $lang, "", "M", "", $arrayVarsTrans))
->setCanonical($realCanonical)
->setNext($next)
->setRobots('noindex');
$from_commande = $request->query->get('from_commande') ? $request->query->get('from_commande') : 0;
return $this->render('annuaires/fonds_investissement/strategie_investissement.html.twig', [
'metaTag' => $metaTag,
'fonds' => $fonds,
'isEncrypted' => $isEncrypted,
'hasService' => $hasService,
'nom_societe' => $nom_societe,
'form' => $form->createView(),
'url' => $url,
'nb_investissement' => $nb_investissement,
'nb_actualites' => $nb_actualites,
'string_params' => $string_params,
'urlList' => $urlList,
'urlRetourList' => $urlRetourList,
'previousAnnonce' => $previousAnnonce,
'nextAnnonce' => $nextAnnonce,
'index' => $index,
'indexPrevious' => $index - 1,
'indexNext' => $index + 1,
'colorClass' => $colorClass,
'ongletClass' => $ongletClass,
'titreClass' => $titreClass,
'btnClass' => $btnClass,
'bgColor' => $bgColor,
'from' => $from,
'dernieresAnnonces' => $dernieresAnnonces,
'googleTag' => $googleTag,
'lignePanier' => $lignePanier,
'hasForfait' => $hasForfait,
'forfaitAUtiliser' => $forfaitAUtiliser,
'hasCommande' => $hasCommande,
'isNoLongerAvailable' => $isNoLongerAvailable,
'from_commande' => $from_commande,
]);
} else {
return $this->redirectToRoute('index', ['codePays' => substr($codePays, 1, 2)]);
}
}
public function criteresinvestissement(Request $request, TranslationExtension $translationExtension, LocalisationsManagers $localisationManager, SecteursActiviteManagers $sam, BuzzManagers $bm, AesEncrytageStrategy $aes, CommandesRepository $cr, $idFonds, $codePays): Response
{
// Flag pour savoir si $idFonds est crypté
// Si oui, on masque par défaut les coordonnées du fonds, sauf si commande ou abonnement
$isEncrypted = false;
// Si $idFonds est crypté, on le décrypte
if (!is_numeric($idFonds)) {
$idFonds = $aes->decryptage($idFonds);
$isEncrypted = true;
}
$fonds = $this->sm->getFondsInvestissement($idFonds);
if (isset($fonds) && $fonds->_get('mode') == "publique") {
$lang = $request->getSession()->get('lang');
$parametres = $request->query->all();
$from = isset($request->from) ? $request->from : null;
if ($from == "ouvrir-capital") {
$colorClass = "orange-new";
$ongletClass = "onglet8";
$titreClass = "titre_annonce_orange";
$btnClass = "btn-orange-new";
$bgColor = "#5F9779";
$parametres = ParametersProvider::prepareRechercheAvanceeAnnonceAcheteurParameters($parametres);
} elseif ($from && $from == "investisseur-acquereur") {
$colorClass = "vert";
$ongletClass = "onglet5";
$titreClass = "titre_annonce_vert";
$btnClass = "btn-vert";
$bgColor = "#5F9779";
$parametres = ParametersProvider::prepareRechercheAvanceeAnnonceAcheteurParameters($parametres);
} else {
$colorClass = "orange-new";
$ongletClass = "onglet8";
$titreClass = "titre_annonce_orange";
$btnClass = "btn-orange-new";
$bgColor = "#5F9779";
$parametres = ParametersProvider::prepareRechercheFondsInvestissementParameters($parametres);
}
$string_params = $this->serializeParams($parametres);
$index = (int)$request->query->get('index');
$page = (int) $request->query->get('page', 1);
if ($page > 1) {
$string_params .= "&page=" . $page;
}
$urlList = $request->query->get('urlList');
$model = new ContactezDirectementFondsInvestissement();
$model->_set('id_gestionnaire_fonds', $idFonds);
$form = $this->createForm(ContactezDirectementFondsInvestissementType::class, $model, [
'method' => 'POST',
]);
$form->handleRequest($request);
if ($form->isSubmitted()) {
if ($form->isValid()) {
$data = $form->getData();
$id_formulaire = $this->cgm->contacter((array) $data);
if ($id_formulaire) {
$this->addFlash('success', $translationExtension->translate("votre message a bien été envoyé.", $lang, "", "M", ""));
}
} else {
$this->addFlash('error', $translationExtension->translate("une erreur s'est produite, votre message n'a pas pu être envoyé.", $lang, "", "M", ""));
}
}
$hasCommande = false;
$lignePanier = false;
$hasForfait = false;
$isNoLongerAvailable = false;
$forfaitAUtiliser = false;
$user = $this->getUser();
if ($user) {
$hasService = $this->dam->checkIfThisUserHasDroitService($user, [47]); // 47 = annuaire_fonds_investissement
$lignePanier = $this->em->getRepository(Panier::class)->findOneBy(
['login_utilisateur' => $user->_get('login_utilisateur'), "type_object" => 'annonce_FONDS', "id_object" => $idFonds]
);
$forfaitAUtiliser = $this->dam->getFrofaitAnnonceToUse($user);
if (!empty($forfaitAUtiliser)) {
$hasForfait = true;
}
// On regarde si le fonds a été commandé dans la table commandes
$hasCommande = $cr->hasAnnonceCommande($user->_get('login_utilisateur'),$idFonds,"fonds");
$isAuth = true;
} else {
$hasService = false;
$isAuth = false;
}
$nb_actualites = $bm->getNbActualitesByFonds($idFonds);
$lang = $request->getSession()->get('lang');
$tab_stade_invest = $this->sm->getStadesInvestissement($lang);
$idSecteurActivite = explode(",", $fonds->_get("id_secteur_activite"));
$idSecteurActivite = array_filter($idSecteurActivite);
$secteurActiviteFonds = $sam->donne_tableau_associatif_secteurs_activite_fonds();
$http_host = $request->server->get('HTTP_HOST');
$url = substr($request->server->get('REDIRECT_URL'), 0, -4);
$canonical = $http_host.$url;
$next = $canonical.'?onglet=3';
$prev = $canonical.'?onglet=1';
$urlRetourList = $urlList ? $urlList . '?' . $string_params : null;
$previousAnnonce = $this->sm->getIndexNAcquereurInvestisseurList($parametres, $page, $index - 1);
$nextAnnonce = $this->sm->getIndexNAcquereurInvestisseurList($parametres, $page, $index + 1);
$parametres['id_gestionnaire_fonds'] = $idFonds;
$repoSociete = $this->getDoctrine()->getRepository(Societes::class);
$nb_investissement = $repoSociete->donne_nb_participations_dun_fonds($parametres, "acheteur");
$metaTitle = 'Critères d\'investissement de %$titre%$';
$metaDescription = 'Consultez les critères d\'investissement de %$titre%$';
if (($hasCommande || $hasService) || !$isEncrypted) {
$nom_societe = $fonds->_get('nom_societe');
// Lien vers l'annuaire des Fonds d'investissement
$realCanonical = $http_host.$this->generateUrl('fonds_investissement_actualites_publiees', ['slug' => Utils::slugify($fonds->_get('nom_societe')), 'idFonds' => $idFonds, 'pageActu' => 1, 'codePays' => $codePays]);
} else {
$nom_societe = substr($fonds->_get('nom_societe'), 0, 1) . "*****";
$realCanonical = $canonical;
}
$arrayVarsTrans['titre'] = $nom_societe;
$dernieresAnnonces = $request->query->get('dernieresAnnonces');
$metaTag = $this->metaTag
->setTitle($translationExtension->translate($metaTitle, $lang, "", "M", "", $arrayVarsTrans))
->setDescription($translationExtension->translate($metaDescription, $lang, "", "M", "", $arrayVarsTrans))
->setCanonical($realCanonical)
->setPrev($prev)
->setNext($next);
$from_commande = $request->query->get('from_commande') ? $request->query->get('from_commande') : 0;
return $this->render('annuaires/fonds_investissement/criteres_investissement.html.twig', [
'metaTag' => $metaTag,
'fonds' => $fonds,
'isEncrypted' => $isEncrypted,
'hasService' => $hasService,
'nom_societe' => $nom_societe,
'form' => $form->createView(),
'url' => $url,
'isAuth' => $isAuth,
'nb_actualites' => $nb_actualites,
'tab_stade_invest' => $tab_stade_invest,
'idSecteurActivite' => $idSecteurActivite,
'secteurActiviteFonds' => $secteurActiviteFonds,
'nb_investissement' => $nb_investissement,
'string_params' => $string_params,
'urlList' => $urlList,
'urlRetourList' => $urlRetourList,
'previousAnnonce' => $previousAnnonce,
'nextAnnonce' => $nextAnnonce,
'index' => $index,
'indexPrevious' => $index - 1,
'indexNext' => $index + 1,
'colorClass' => $colorClass,
'ongletClass' => $ongletClass,
'titreClass' => $titreClass,
'btnClass' => $btnClass,
'bgColor' => $bgColor,
'from' => $from,
'dernieresAnnonces' => $dernieresAnnonces,
'lignePanier' => $lignePanier,
'hasForfait' => $hasForfait,
'forfaitAUtiliser' => $forfaitAUtiliser,
'hasCommande' => $hasCommande,
'isNoLongerAvailable' => $isNoLongerAvailable,
'from_commande' => $from_commande,
]);
} else {
return $this->redirectToRoute('index', ['codePays' => substr($codePays, 1, 2)]);
}
}
public function investissementreference(Request $request, PaginatorInterface $paginator, TranslationExtension $translationExtension, LocalisationsManagers $localisationManager, BuzzManagers $bm, SecteursActiviteManagers $sam, AesEncrytageStrategy $aes, CommandesRepository $cr, $idFonds, $pageInvest = null, $codePays): Response
{
// Flag pour savoir si $idFonds est crypté
// Si oui, on masque par défaut les coordonnées du fonds, sauf si commande ou abonnement
$isEncrypted = false;
// Si $idFonds est crypté, on le décrypte
if (!is_numeric($idFonds)) {
$idFonds = $aes->decryptage($idFonds);
$isEncrypted = true;
}
$fonds = $this->sm->getFondsInvestissement($idFonds);
if (isset($fonds) && $fonds->_get('mode') == "publique") {
$lang = $request->getSession()->get('lang');
$parametres = $request->query->all();
$from = isset($request->from) ? $request->from : null;
if ($from == "ouvrir-capital") {
$colorClass = "orange-new";
$ongletClass = "onglet8";
$titreClass = "titre_annonce_orange";
$btnClass = "btn-orange-new";
$bgColor = "#5F9779";
$paginationClass = "pagination-orange";
$parametres = ParametersProvider::prepareRechercheAvanceeAnnonceAcheteurParameters($parametres);
} elseif ($from && $from == "investisseur-acquereur") {
$colorClass = "vert";
$ongletClass = "onglet5";
$titreClass = "titre_annonce_vert";
$btnClass = "btn-vert";
$bgColor = "#5F9779";
$paginationClass = "pagination-vert";
$parametres = ParametersProvider::prepareRechercheAvanceeAnnonceAcheteurParameters($parametres);
} else {
$colorClass = "orange-new";
$ongletClass = "onglet8";
$titreClass = "titre_annonce_orange";
$btnClass = "btn-orange-new";
$bgColor = "#5F9779";
$paginationClass = "pagination-orange";
$parametres = ParametersProvider::prepareRechercheFondsInvestissementParameters($parametres);
}
$string_params = $this->serializeParams($parametres);
$index = (int)$request->query->get('index');
$page = (int) $request->query->get('page', 1);
if ($page > 1) {
$string_params .= "&page=" . $page;
}
$urlList = $request->query->get('urlList');
$model = new ContactezDirectementFondsInvestissement();
$model->_set('id_gestionnaire_fonds', $idFonds);
$form = $this->createForm(ContactezDirectementFondsInvestissementType::class, $model, [
'method' => 'POST',
]);
$form->handleRequest($request);
if ($form->isSubmitted()) {
if ($form->isValid()) {
$data = $form->getData();
$id_formulaire = $this->cgm->contacter((array) $data);
if ($id_formulaire) {
$this->addFlash('success', $translationExtension->translate("votre message a bien été envoyé.", $lang, "", "M", ""));
}
} else {
$this->addFlash('error', $translationExtension->translate("une erreur s'est produite, votre message n'a pas pu être envoyé.", $lang, "", "M", ""));
}
}
$hasCommande = false;
$lignePanier = false;
$hasForfait = false;
$isNoLongerAvailable = false;
$forfaitAUtiliser = false;
$user = $this->getUser();
if ($user) {
$hasService = $this->dam->checkIfThisUserHasDroitService($user, [47]); // 47 = annuaire_fonds_investissement
$lignePanier = $this->em->getRepository(Panier::class)->findOneBy(
['login_utilisateur' => $user->_get('login_utilisateur'), "type_object" => 'annonce_FONDS', "id_object" => $idFonds]
);
$forfaitAUtiliser = $this->dam->getFrofaitAnnonceToUse($user);
if (!empty($forfaitAUtiliser)) {
$hasForfait = true;
}
// On regarde si le fonds a été commandé dans la table commandes
$hasCommande = $cr->hasAnnonceCommande($user->_get('login_utilisateur'),$idFonds,"fonds");
$isAuth = true;
} else {
$hasService = false;
$isAuth = false;
}
$nb_actualites = $bm->getNbActualitesByFonds($idFonds);
$http_host = $request->server->get('HTTP_HOST');
$url = substr($request->server->get('REDIRECT_URL'), 0, -4);
$canonical = $http_host.$url;
$next = $canonical.'?onglet=4';
$prev = $canonical.'?onglet=2';
$urlRetourList = $urlList ? $urlList . '?' . $string_params : null;
$previousAnnonce = $this->sm->getIndexNAcquereurInvestisseurList($parametres, $page, $index - 1);
$nextAnnonce = $this->sm->getIndexNAcquereurInvestisseurList($parametres, $page, $index + 1);
$parametres['id_gestionnaire_fonds'] = $idFonds;
$parametres['pageInvest'] = $pageInvest;
$participations = $this->sm->getParticipationsDunFondsList($request, $paginator, $parametres, "", "acheteur");
$repoSociete = $this->getDoctrine()->getRepository(Societes::class);
$nb_investissement = $repoSociete->donne_nb_participations_dun_fonds($parametres, "acheteur");
$metaTitle = 'Les investissements référencés de %$titre%$';
$metaDescription = 'Consultez les investissements référencés de %$titre%$';
if (($hasCommande || $hasService) || !$isEncrypted) {
$nom_societe = $fonds->_get('nom_societe');
// Lien vers l'annuaire des Fonds d'investissement
$realCanonical = $http_host.$this->generateUrl('fonds_investissement_actualites_publiees', ['slug' => Utils::slugify($fonds->_get('nom_societe')), 'idFonds' => $idFonds, 'pageActu' => 1, 'codePays' => $codePays]);
} else {
$nom_societe = substr($fonds->_get('nom_societe'), 0, 1) . "*****";
$realCanonical = $canonical;
}
$arrayVarsTrans['titre'] = $nom_societe;
$dernieresAnnonces = $request->query->get('dernieresAnnonces');
$metaTag = $this->metaTag
->setTitle($translationExtension->translate($metaTitle, $lang, "", "M", "", $arrayVarsTrans))
->setDescription($translationExtension->translate($metaDescription, $lang, "", "M", "", $arrayVarsTrans))
->setCanonical($realCanonical)
->setPrev($prev)
->setNext($next);
$from_commande = $request->query->get('from_commande') ? $request->query->get('from_commande') : 0;
return $this->render('annuaires/fonds_investissement/investissement_reference.html.twig', [
'metaTag' => $metaTag,
'fonds' => $fonds,
'isEncrypted' => $isEncrypted,
'hasService' => $hasService,
'nom_societe' => $nom_societe,
'form' => $form->createView(),
'url' => $url,
'isAuth' => $isAuth,
'nb_actualites' => $nb_actualites,
'participations' => $participations,
'nb_investissement' => $nb_investissement,
'string_params' => $string_params,
'urlList' => $urlList,
'urlRetourList' => $urlRetourList,
'previousAnnonce' => $previousAnnonce,
'nextAnnonce' => $nextAnnonce,
'index' => $index,
'indexPrevious' => $index - 1,
'indexNext' => $index + 1,
'colorClass' => $colorClass,
'ongletClass' => $ongletClass,
'titreClass' => $titreClass,
'btnClass' => $btnClass,
'bgColor' => $bgColor,
'paginationClass' => $paginationClass,
'from' => $from,
'dernieresAnnonces' => $dernieresAnnonces,
'lignePanier' => $lignePanier,
'hasForfait' => $hasForfait,
'forfaitAUtiliser' => $forfaitAUtiliser,
'hasCommande' => $hasCommande,
'isNoLongerAvailable' => $isNoLongerAvailable,
'from_commande' => $from_commande,
]);
} else {
return $this->redirectToRoute('index', ['codePays' => substr($codePays, 1, 2)]);
}
}
public function actualitepubliee(Request $request, PaginatorInterface $paginator, TranslationExtension $translationExtension, LocalisationsManagers $localisationManager, BuzzManagers $bm, AesEncrytageStrategy $aes, CommandesRepository $cr, $idFonds, $pageActu = null, $codePays): Response
{
// Flag pour savoir si $idFonds est crypté
// Si oui, on masque par défaut les coordonnées du fonds, sauf si commande ou abonnement
$isEncrypted = false;
// Si $idFonds est crypté, on le décrypte
if (!is_numeric($idFonds)) {
$idFonds = $aes->decryptage($idFonds);
$isEncrypted = true;
}
$fonds = $this->sm->getFondsInvestissement($idFonds);
if (isset($fonds) && $fonds->_get('mode') == "publique") {
$lang = $request->getSession()->get('lang');
$parametres = $request->query->all();
$from = isset($request->from) ? $request->from : null;
if ($from == "ouvrir-capital") {
$colorClass = "orange-new";
$ongletClass = "onglet8";
$titreClass = "titre_annonce_orange";
$btnClass = "btn-orange-new";
$bgColor = "#5F9779";
$paginationClass = "pagination-orange";
$parametres = ParametersProvider::prepareRechercheAvanceeAnnonceAcheteurParameters($parametres);
} elseif ($from && $from == "investisseur-acquereur") {
$colorClass = "vert";
$ongletClass = "onglet5";
$titreClass = "titre_annonce_vert";
$btnClass = "btn-vert";
$bgColor = "#5F9779";
$paginationClass = "pagination-vert";
$parametres = ParametersProvider::prepareRechercheAvanceeAnnonceAcheteurParameters($parametres);
} else {
$colorClass = "orange-new";
$ongletClass = "onglet8";
$titreClass = "titre_annonce_orange";
$btnClass = "btn-orange-new";
$bgColor = "#5F9779";
$paginationClass = "pagination-orange";
$parametres = ParametersProvider::prepareRechercheFondsInvestissementParameters($parametres);
}
$string_params = $this->serializeParams($parametres);
$index = (int)$request->query->get('index');
$page = (int) $request->query->get('page', 1);
if ($page > 1) {
$string_params .= "&page=" . $page;
}
$urlList = $request->query->get('urlList');
$model = new ContactezDirectementFondsInvestissement();
$model->_set('id_gestionnaire_fonds', $idFonds);
$form = $this->createForm(ContactezDirectementFondsInvestissementType::class, $model, [
'method' => 'POST',
]);
$form->handleRequest($request);
if ($form->isSubmitted()) {
if ($form->isValid()) {
$data = $form->getData();
$id_formulaire = $this->cgm->contacter((array) $data);
if ($id_formulaire) {
$this->addFlash('success', $translationExtension->translate("votre message a bien été envoyé.", $lang, "", "M", ""));
}
} else {
$this->addFlash('error', $translationExtension->translate("une erreur s'est produite, votre message n'a pas pu être envoyé.", $lang, "", "M", ""));
}
}
$hasCommande = false;
$lignePanier = false;
$hasForfait = false;
$isNoLongerAvailable = false;
$forfaitAUtiliser = false;
$user = $this->getUser();
if ($user) {
$hasService = $this->dam->checkIfThisUserHasDroitService($user, [47]); // 47 = annuaire_fonds_investissement
$lignePanier = $this->em->getRepository(Panier::class)->findOneBy(
['login_utilisateur' => $user->_get('login_utilisateur'), "type_object" => 'annonce_FONDS', "id_object" => $idFonds]
);
$forfaitAUtiliser = $this->dam->getFrofaitAnnonceToUse($user);
if (!empty($forfaitAUtiliser)) {
$hasForfait = true;
}
// On regarde si le fonds a été commandé dans la table commandes
$hasCommande = $cr->hasAnnonceCommande($user->_get('login_utilisateur'),$idFonds,"fonds");
} else {
$hasService = false;
}
$parametres['pageActu'] = $pageActu;
$actualites = $bm->getAllActualitesByFonds($request, $paginator, $idFonds, $parametres);
$nb_actualites = $bm->getNbActualitesByFonds($idFonds);
$http_host = $request->server->get('HTTP_HOST');
$url = substr($request->server->get('REDIRECT_URL'), 0, -4);
$canonical = $http_host.$url;
$prev = $canonical.'?onglet=3';
$urlRetourList = $urlList ? $urlList . '?' . $string_params : null;
$previousAnnonce = $this->sm->getIndexNAcquereurInvestisseurList($parametres, $page, $index - 1);
$nextAnnonce = $this->sm->getIndexNAcquereurInvestisseurList($parametres, $page, $index + 1);
$parametres['id_gestionnaire_fonds'] = $idFonds;
$repoSociete = $this->getDoctrine()->getRepository(Societes::class);
$nb_investissement = $repoSociete->donne_nb_participations_dun_fonds($parametres, "acheteur");
$metaTitle = 'Les actualités publiées de %$titre%$';
$metaDescription = 'Consultez les actualités publiées de %$titre%$';
if (($hasCommande || $hasService) || !$isEncrypted) {
$nom_societe = $fonds->_get('nom_societe');
// Lien vers l'annuaire des Fonds d'investissement
$realCanonical = $http_host.$this->generateUrl('fonds_investissement_actualites_publiees', ['slug' => Utils::slugify($fonds->_get('nom_societe')), 'idFonds' => $idFonds, 'pageActu' => 1, 'codePays' => $codePays]);
} else {
$nom_societe = substr($fonds->_get('nom_societe'), 0, 1) . "*****";
$realCanonical = $canonical;
}
$arrayVarsTrans['titre'] = $nom_societe;
$dernieresAnnonces = $request->query->get('dernieresAnnonces');
$metaTag = $this->metaTag
->setTitle($translationExtension->translate($metaTitle, $lang, "", "M", "", $arrayVarsTrans))
->setDescription($translationExtension->translate($metaDescription, $lang, "", "M", "", $arrayVarsTrans))
->setCanonical($realCanonical)
->setPrev($prev);
$from_commande = $request->query->get('from_commande') ? $request->query->get('from_commande') : 0;
return $this->render('annuaires/fonds_investissement/actualite_publiee.html.twig', [
'metaTag' => $metaTag,
'fonds' => $fonds,
'isEncrypted' => $isEncrypted,
'hasService' => $hasService,
'nom_societe' => $nom_societe,
'form' => $form->createView(),
'url' => $url,
'nb_actualites' => $nb_actualites,
'nb_investissement' => $nb_investissement,
'actualites' => $actualites,
'string_params' => $string_params,
'urlList' => $urlList,
'urlRetourList' => $urlRetourList,
'previousAnnonce' => $previousAnnonce,
'nextAnnonce' => $nextAnnonce,
'index' => $index,
'indexPrevious' => $index - 1,
'indexNext' => $index + 1,
'colorClass' => $colorClass,
'ongletClass' => $ongletClass,
'titreClass' => $titreClass,
'btnClass' => $btnClass,
'bgColor' => $bgColor,
'paginationClass' => $paginationClass,
'from' => $from,
'dernieresAnnonces' => $dernieresAnnonces,
'lignePanier' => $lignePanier,
'hasForfait' => $hasForfait,
'forfaitAUtiliser' => $forfaitAUtiliser,
'hasCommande' => $hasCommande,
'isNoLongerAvailable' => $isNoLongerAvailable,
'from_commande' => $from_commande,
]);
} else {
return $this->redirectToRoute('index', ['codePays' => substr($codePays, 1, 2)]);
}
}
public function formulairefondsprovenancemail(Request $request, CodeAccesService $codeAccessService, TranslationExtension $translationExtension, AesEncrytageStrategy $aes, LocalisationsManagers $localisationManager, ConversionProvider $cp, $codePays): Response
{
$code = $request->query->get('ref');
if (!$code) {
return $this->redirectToRoute('index');
}
$idFonds = $aes->decryptage($code);
if (!is_numeric($idFonds)) {
return $this->redirectToRoute('index');
}
$fonds = $this->em->getRepository(SocieteGestionnaireFonds::class)->findOneBy(['id_gestionnaire_fonds' => $idFonds]);
if (!$fonds) {
return $this->redirectToRoute('index');
}
// On vérifie la présence du cookie du service, sinon on envoie un code par mail
$authorizedAccess = $codeAccessService->check($fonds->__get('mail_respon_maj'), 'fusacq_form_maj_participations_fonds');
// On combine les localisations
$localisations = /*$fonds->__get('pays_ciblees') . ',' .*/ $fonds->__get('regions_ciblees');
if ($localisations) {
$localisations = array_values(array_unique(array_filter(explode(",", $localisations))));
}
$array_localisation = [];
// On rajoute le nom des localisations
if ($localisations) {
for ($i = 0; $i < count($localisations); $i++) {
$id_localisation = $localisations[$i];
$nom_localisation = $localisationManager->getStringNomLocalisationById($id_localisation);
$row = [];
$row['id_localisation'] = $id_localisation;
$row['nom_localisation'] = $nom_localisation;
// Si c'est une région, on rajoute le nom du pays avec
if (strpos($id_localisation, "_") !== false) {
$id_pays = substr($id_localisation, 0, strpos($id_localisation, "_"));
$row['nom_localisation'] .= ", " . $localisationManager->getStringNomLocalisationById($id_pays);
}
$array_localisation[] = $row;
}
}
$lang = $request->getSession()->get('lang');
$form = $this->createForm(SocieteGestionnaireFondsFormType::class, $fonds);
$form->handleRequest($request);
if ($form->isSubmitted()) {
if ($form->isValid()) {
$fonds->__set("nom_societe", $form->get('nom_societe')->getData());
$fonds->__set("adresse_societe", $form->get('adresse_societe')->getData());
$fonds->__set("code_postal_societe", $form->get('code_postal_societe')->getData());
$fonds->__set("ville_societe", $form->get('ville_societe')->getData());
$fonds->__set("id_pays", $form->get('id_pays')->getData());
$fonds->__set("id_region", $form->get('id_region')->getData());
$fonds->__set("site_internet", $form->get('site_internet')->getData());
$fonds->__set("nom_contact", $form->get('nom_contact')->getData());
$fonds->__set("mail_contact", $form->get('mail_contact')->getData());
$fonds->__set("mail_respon_maj", $form->get('mail_respon_maj')->getData());
$fonds->__set("telephone", $form->get('telephone')->getData());
$fonds->__set("indicatif", $form->get('indicatif')->getData());
$id_localisation_select = trim($form->get('id_localisation_select')->getData());
// On traite le string pour remplir array_pays et array_regions
if ($id_localisation_select) {
$array_pays = [];
$array_regions = [];
$array_loc = array_filter(explode(",", $id_localisation_select));
foreach ($array_loc as $loc) {
// Dans tous les cas on ajoute dans array_regions
$array_regions[] = $loc;
// On rajoute uniquement les pays dans array_pays (si pas déjà fait)
if (strpos($loc, "_") === false && !in_array($loc, $array_pays)) {
$array_pays[] = $loc;
} elseif (!in_array(substr($loc, 0, strpos($loc, "_")), $array_pays)) {
$array_pays[] = substr($loc, 0, strpos($loc, "_"));
}
}
$pays = implode(",", $array_pays);
$regions = implode(",", $array_regions);
$fonds->__set("pays_ciblees", $pays);
$fonds->__set("regions_ciblees", $regions);
}
$fonds->__set("stade_investissement", $form->get('stade_investissement')->getData());
$fonds->__set("id_secteur_activite", $form->get('id_secteur_activite')->getData());
$fonds->__set("devise", $form->get('devise')->getData());
$fonds->__set("montant_investissement_min_devise", str_replace(" ", "", $form->get('montant_investissement_min_devise')->getData()));
$fonds->__set("montant_investissement_max_devise", str_replace(" ", "", $form->get('montant_investissement_max_devise')->getData()));
if ($fonds->__get('devise') == "EUR") {
$montant_investissement_min_converti_to_euro = $fonds->__get('montant_investissement_min_devise');
$montant_investissement_max_converti_to_euro = $fonds->__get('montant_investissement_max_devise');
} else {
$montant_investissement_min_converti_to_euro = $cp->deviseToEur($fonds->__get('devise'), $fonds->__get('montant_investissement_min_devise'));
$montant_investissement_max_converti_to_euro = $cp->deviseToEur($fonds->__get('devise'), $fonds->__get('montant_investissement_max_devise'));
}
$fonds->__set("montant_investissement_min", str_replace(" ", "", $montant_investissement_min_converti_to_euro));
$fonds->__set("montant_investissement_max", str_replace(" ", "", $montant_investissement_max_converti_to_euro));
$fonds->__set("type_investissement", $form->get('type_investissement')->getData());
$fonds->__set("strategie_globale_investissement", $form->get('strategie_globale_investissement')->getData());
if ($fonds->__get('mode') == 'publique') {
} else {
$fonds->__set("mode", 'demande_publication');
}
$fonds->__set("date_valide_respo", date('Ymd'));
$this->em->persist($fonds);
$this->em->flush();
$this->addFlash("success", $translationExtension->translate("le fonds a bien été mis à jour.", $lang, "", "M", ""));
return $this->redirectToRoute("participation_fonds_maj_participations_fonds_mail", ["ref" => $code, "codePays" => $codePays]);
} else {
$this->addFlash("error", $translationExtension->translate("une erreur est survenue, veuillez réessayer.", $lang, "", "M", ""));
}
}
return $this->render('annuaires/fonds_investissement/formulaire_fonds_provenance_mail.html.twig', [
'form' => $form->createView(),
'fonds' => $fonds,
'array_localisation' => $array_localisation,
'authorizedAccess' => $authorizedAccess
]);
}
private function serializeParams($parametres)
{
$string_params = "";
foreach ($parametres as $name => $value) {
if ($name != "rechercher" && $name != "type" && $name != "array_localisation") {
if ($string_params == "") {
$string_params .= $name."=".$value;
} else {
$string_params .= "&".$name."=".$value;
}
}
}
return $string_params;
}
}