src/Controller/OuvrirCapitalController.php line 1327

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Services\MetaTag;
  4. use App\Helper\ParametersProvider;
  5. use App\Entity\AnnoncesVendeur;
  6. use App\Entity\RaisonsCession;
  7. use App\Entity\SecteursActivite;
  8. use App\Entity\Societes;
  9. use App\Entity\Villes;
  10. use App\Entity\Statuts;
  11. use App\Services\ManagerEntity\ActualitesManagers;
  12. use App\Services\ManagerEntity\AnnoncesManagers;
  13. use App\Services\ManagerEntity\SecteursActiviteManagers;
  14. use App\Services\ManagerEntity\SocietesManagers;
  15. use App\Services\ManagerEntity\LocalisationsManagers;
  16. use App\Services\ManagerEntity\DroitsAccesManagers;
  17. use App\Twig\TranslationExtension;
  18. use Knp\Component\Pager\PaginatorInterface;
  19. use Symfony\Component\Form\Extension\Core\Type\ButtonType;
  20. use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
  21. use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
  22. use Symfony\Component\Form\Extension\Core\Type\HiddenType;
  23. use Symfony\Component\Form\Extension\Core\Type\SubmitType;
  24. use Symfony\Component\Form\Extension\Core\Type\TextType;
  25. use Symfony\Component\Form\Forms;
  26. use Symfony\Component\HttpFoundation\Request;
  27. use Symfony\Component\HttpFoundation\Response;
  28. use App\Entity\AnnoncesAcheteur;
  29. use App\Helper\DateProvider;
  30. use App\Services\ManagerEntity\AnnuairesManagers;
  31. use App\Entity\AnnuaireRepreneurs;
  32. use App\Form\Models\ContactezDirectementFondsInvestissement;
  33. use App\Form\Type\ContactezDirectementFondsInvestissementType;
  34. use App\Helper\Utils;
  35. use App\Services\ManagerEntity\ContactGenerauxManagers;
  36. use App\Entity\SecteursActiviteFonds;
  37. use App\Services\ManagerEntity\BuzzManagers;
  38. use App\Helper\DetailAnnonceProvider;
  39. use App\Entity\InvestisseursPrives;
  40. use App\Services\ManagerEntity\BusinessAngelManagers;
  41. use App\Repository\InvestisseursPrivesRepository;
  42. use App\Repository\SecteursActiviteFondsRepository;
  43. use App\Repository\CommandesRepository;
  44. use App\Repository\LocalisationsRepository;
  45. use Symfony\Component\DependencyInjection\ParameterBag\ContainerBagInterface;
  46. use App\Repository\ParametresDiversRepository;
  47. class OuvrirCapitalController extends EntityUsingController
  48. {
  49.     /**
  50.      * @var AnnoncesManagers
  51.      */
  52.     private $am;
  53.     /**
  54.      * @var SocietesManagers
  55.      */
  56.     private $sm;
  57.     /**
  58.      * @var LocalisationsManagers
  59.      */
  60.     private $lm;
  61.     /**
  62.      * @var BusinessAngelManagers
  63.      */
  64.     private $bam;
  65.     /**
  66.      * @var SecteursActiviteManagers
  67.      */
  68.     private $sam;
  69.     /**
  70.      * @var DroitsAccesManagers
  71.      */
  72.     private  $dam;
  73.     /**
  74.      * @var MetaTag
  75.      */
  76.     private $metaTag;
  77.     
  78.     
  79.     public function __construct(AnnoncesManagers $amSocietesManagers $smLocalisationsManagers $lmContactGenerauxManagers $cgmAnnuairesManagers $armBusinessAngelManagers $bamSecteursActiviteManagers $samDroitsAccesManagers $damMetaTag $metaTag)
  80.     {
  81.         $this->am $am;
  82.         $this->sm $sm;
  83.         $this->lm $lm;
  84.         $this->cgm $cgm;
  85.         $this->arm $arm;
  86.         $this->bam $bam;
  87.         $this->sam $sam;
  88.         $this->dam $dam;
  89.         $this->metaTag $metaTag;
  90.     }
  91.     
  92.     public function index(): Response
  93.     {
  94.         return $this->render('ouvrir_capital/index.html.twig');
  95.     }
  96.     
  97.     public function recherchestandardbusinessangel (Request $requestTranslationExtension $translationExtensionInvestisseursPrivesRepository $investisseurRepo$codePays): Response
  98.     {
  99.         $reference_mots_cles $request->query->get('reference_mots_cles');
  100.         
  101.         // Si on fait une recherche simple
  102.         if (isset($reference_mots_cles) && $reference_mots_cles != "") {
  103.             // Si on recherche par id_investisseur
  104.             if (preg_match("/([0-9]{1,6})/",$reference_mots_cles) == true) {
  105.                 $idInvestisseurPrive $reference_mots_cles;
  106.                 $investisseur_prive $investisseurRepo->findOneBy(['id_investisseur' => $idInvestisseurPrive'mode' => 'publique']);
  107.                 
  108.                 // Si l'annonce existe et est publique
  109.                 if ($investisseur_prive) {
  110.                     // Temporaire en attendant les vrais titres
  111.                     if ($titre $investisseur_prive->_get('titre_investisseur') == null) {
  112.                         $titre "investisseur";
  113.                     } 
  114.                     
  115.                     $slug Utils::slugify($titre);
  116.                     return $this->redirectToRoute('investisseurs_prives_detail', ['slug' => $slug'idInvestisseurPrive' => $idInvestisseurPrive'codePays' => $codePays'from' => 'ouvrir-capital']);
  117.                 } else {
  118.                     $lang $request->getSession()->get('lang');
  119.                     $this->addFlash('error'$translationExtension->translate('investisseur introuvable'$lang'''M'''));
  120.                 }
  121.                 // Si on recherche par mots cles
  122.             } else {
  123.                 // A developper
  124.                 
  125.                 $request->query->set('type_recherche'5);
  126.                 return $this->forward('App\Controller\OuvrirCapitalController::businessangel', ['codePays' => $codePays'request' => $request]);
  127.             }
  128.         }
  129.         
  130.        
  131.         return $this->render(
  132.             'ouvrir_capital/recherche_standard_business_angel.html.twig',
  133.             [
  134.                  
  135.             ]
  136.             );
  137.     }
  138.     
  139.     public function trouverBusinessAngelParLocalisation($lang$codePays)
  140.     {
  141.         $array_annonce_region_du_pays $this->bam->donne_tableau_nb_business_angel_par_region($this->getIdPaysByCodePays($codePays));
  142.         
  143.         $nb_regions count($array_annonce_region_du_pays);
  144.         
  145.         if ($nb_regions != 0) {
  146.             $moitie ceil($nb_regions 2);
  147.         } else {
  148.             $moitie $nb_regions 2;
  149.         }
  150.         
  151.         $colonne_region_gauche array_slice($array_annonce_region_du_pays0$moitie);
  152.         $colonne_region_droite array_slice($array_annonce_region_du_pays$moitie);
  153.         
  154.         $nb_annonce_france $this->getAnnoncesNumbers(['id_localisation' => 'p33'])['nb_business_angel'];
  155.         $nb_annonce_belgique $this->getAnnoncesNumbers(['id_localisation' => 'p32'])['nb_business_angel'];
  156.         $nb_annonce_canada $this->getAnnoncesNumbers(['id_localisation' => 'p01'])['nb_business_angel'];
  157.         $nb_annonce_suisse $this->getAnnoncesNumbers(['id_localisation' => 'p41'])['nb_business_angel'];
  158.         $nb_annonce_autres_pays $this->getAnnoncesNumbers(['id_localisation' => 'p99'])['nb_business_angel'];
  159.         
  160.         return $this->render(
  161.             "ouvrir_capital/fragments/business_angel/trouver_annonce_par_localisation_".$this->getVersionByCodePays($codePays).".html.twig",
  162.             [
  163.                 'colonne_region_gauche' => $colonne_region_gauche,
  164.                 'colonne_region_droite' => $colonne_region_droite,
  165.                 'nb_annonce_france' => $nb_annonce_france,
  166.                 'nb_annonce_belgique' => $nb_annonce_belgique,
  167.                 'nb_annonce_canada' => $nb_annonce_canada,
  168.                 'nb_annonce_suisse' => $nb_annonce_suisse,
  169.                 'nb_annonce_autres_pays' => $nb_annonce_autres_pays,
  170.                 'array_annonce_region_du_pays' => $array_annonce_region_du_pays,
  171.                 'lang' => $lang,
  172.                 'codePays' => $codePays
  173.             ]
  174.             );
  175.     }
  176.     
  177.     public function trouverBusinessAngelParCategorie($lang$codePays)
  178.     {
  179.         $annonces_secteur_activite $this->getNbAnnoncesBySecteursActivite("participation_fonds");
  180.         
  181.         return $this->render(
  182.             "ouvrir_capital/fragments/business_angel/trouver_annonce_par_categorie.html.twig",
  183.             [
  184.                 'annonces_secteur_activite' => $annonces_secteur_activite,
  185.                 'lang' => $lang,
  186.                 'codePays' => $codePays
  187.             ]
  188.             );
  189.     }
  190.     
  191.     public function recherchestandardrecherchepartenariat (Request $requestTranslationExtension $translationExtensionContainerBagInterface $container$codePays): Response
  192.     {
  193.         $reference_mots_cles $request->query->get('reference_mots_cles');
  194.         
  195.         // Si on fait une recherche simple
  196.         if (isset($reference_mots_cles) && $reference_mots_cles != "") {
  197.             // Si on recherche par idAnnonce
  198.             if (preg_match("/a([0-9]{3,8})/i",$reference_mots_cles) == true || preg_match("/([0-9]{3,8})/",$reference_mots_cles) == true) {
  199.                 $idAnnonce preg_replace("/[^0-9]/"""$reference_mots_cles);
  200.                 $annonce $this->am->getAnnonceAcheteurById($idAnnonce);
  201.                 
  202.                 // Si l'annonce existe et est publiquee
  203.                 if ($annonce && $annonce['mode_annonce'] == "publique" && $annonce['type_raprochement'] == "partenaire") {
  204.                     $slug Utils::slugify($annonce['titre_annonce']);
  205.                     return $this->redirectToRoute('vendre_entreprise_annonce_acquisition_details', ['slug' => $slug'idAnnonce' => $idAnnonce'codePays' => $codePays'nomLocalisation' => $annonce['nom_localisation_slug'], 'from' => 'ouvrir-capital']);
  206.                 } else {
  207.                     $lang $request->getSession()->get('lang');
  208.                     $this->addFlash('error'$translationExtension->translate('annonce introuvable : l’annonce a Ă©tĂ© supprimĂ©e, remise en attente ou est en cours de modification'$lang'''M'''));
  209.                 }
  210.                 // Si on recherche par mots cles
  211.             } else {
  212.                 // A developper
  213.                 
  214.                 $request->query->set('type_recherche'5);
  215.                 return $this->forward('App\Controller\OuvrirCapitalController::recherchepartenariat', ['codePays' => $codePays'request' => $request]);
  216.             }
  217.         }
  218.         
  219.         
  220.         
  221.         return $this->render(
  222.             'ouvrir_capital/recherche_standard_recherche_partenariat.html.twig',
  223.             [
  224.                 
  225.             ]
  226.             );
  227.     }
  228.     
  229.     public function recherchestandardcvrepreneur (Request $requestTranslationExtension $translationExtensionAnnuairesManagers $annuairesManager$codePays): Response
  230.     {
  231.         $reference_mots_cles $request->query->get('reference_mots_cles');
  232.         
  233.         // Si on fait une recherche simple
  234.         if (isset($reference_mots_cles) && $reference_mots_cles != "") {
  235.             // Si on recherche par idRepreneur
  236.             if (preg_match("/r([0-9]{3,8})/i",$reference_mots_cles) == true || preg_match("/([0-9]{1,8})/",$reference_mots_cles) == true) {
  237.                 $idRepreneur preg_replace("/[^0-9]/"""$reference_mots_cles);
  238.                 $cv $this->arm->getCVRepreneurDetail($idRepreneur);
  239.                 
  240.                 // Si le CV existe et est publique
  241.                 if ($cv && $cv['modeProfil'] == "publique") {
  242.                     $slug Utils::slugify($cv['titreSocieteRecherchee']);
  243.                     
  244.                      
  245.                     return $this->redirectToRoute('repreneur_cv_detail', ['titreslug' => $slug'idRepreneur' => $idRepreneur'codePays' => $codePays'from' => 'ouvrir-capital']);
  246.                 } else {
  247.                     $lang $request->getSession()->get('lang');
  248.                     $this->addFlash('error'$translationExtension->translate('CV repreneur introuvable'$lang'''M'''));
  249.                 }
  250.                 // Si on recherche par mots cles
  251.             } else {
  252.                 // A developper
  253.                  
  254.                 $request->query->set('type_recherche'5);
  255.                 return $this->forward('App\Controller\OuvrirCapitalController::cvrepreneur', ['codePays' => $codePays'request' => $request]);
  256.             }
  257.         }
  258.         
  259.        
  260.         return $this->render(
  261.             'ouvrir_capital/recherche_standard_cv_repreneur.html.twig',
  262.             [
  263.                 
  264.             ]
  265.             );
  266.     }
  267.     
  268.     public function derniersCvRepreneur(AnnuairesManagers $annuairesManager$lang$codePays)
  269.     {
  270.         $derniersCV $this->arm->getDerniersCVRepreneurs($this->getIdPaysByCodePays($codePays), 5'cv_repreneur_investisseur');
  271.         
  272.         return $this->render(
  273.             'ouvrir_capital/fragments/cv_repreneur/derniers_cv.html.twig',
  274.             [
  275.                 'derniersCV' => $derniersCV,
  276.                 'lang' => $lang,
  277.                 'codePays' => $codePays
  278.             ]
  279.             );
  280.     }
  281.     
  282.     public function trouverCvRepreneurParLocalisation(AnnuairesManagers $annuairesManager$lang$codePays)
  283.     {
  284.         $array_annonce_region_du_pays $annuairesManager->donne_tableau_nb_cv_par_region($this->getIdPaysByCodePays($codePays));
  285.         $nb_regions count($array_annonce_region_du_pays);
  286.         
  287.         if ($nb_regions != 0) {
  288.             $moitie ceil($nb_regions 2);
  289.         } else {
  290.             $moitie $nb_regions 2;
  291.         }
  292.         
  293.         $colonne_region_gauche array_slice($array_annonce_region_du_pays0$moitie);
  294.         $colonne_region_droite array_slice($array_annonce_region_du_pays$moitie);
  295.         
  296.         $nb_annonce_france $this->getAnnoncesNumbers(['id_localisation' => 'p33'])['nb_repreneurs_investisseurs'];
  297.         $nb_annonce_belgique $this->getAnnoncesNumbers(['id_localisation' => 'p32'])['nb_repreneurs_investisseurs'];
  298.         $nb_annonce_canada $this->getAnnoncesNumbers(['id_localisation' => 'p01'])['nb_repreneurs_investisseurs'];
  299.         $nb_annonce_suisse $this->getAnnoncesNumbers(['id_localisation' => 'p41'])['nb_repreneurs_investisseurs'];
  300.         $nb_annonce_autres_pays $this->getAnnoncesNumbers(['id_localisation' => 'p99'])['nb_repreneurs_investisseurs'];
  301.         
  302.         return $this->render(
  303.             "ouvrir_capital/fragments/cv_repreneur/trouver_annonce_par_localisation_".$this->getVersionByCodePays($codePays).".html.twig",
  304.             [
  305.                 'colonne_region_gauche' => $colonne_region_gauche,
  306.                 'colonne_region_droite' => $colonne_region_droite,
  307.                 'nb_annonce_france' => $nb_annonce_france,
  308.                 'nb_annonce_belgique' => $nb_annonce_belgique,
  309.                 'nb_annonce_canada' => $nb_annonce_canada,
  310.                 'nb_annonce_suisse' => $nb_annonce_suisse,
  311.                 'nb_annonce_autres_pays' => $nb_annonce_autres_pays,
  312.                 'array_annonce_region_du_pays' => $array_annonce_region_du_pays,
  313.                 'lang' => $lang,
  314.                 'codePays' => $codePays
  315.             ]
  316.             );
  317.     }
  318.     
  319.     public function trouverCvRepreneurParCategorie($lang$codePays)
  320.     {
  321.         $annonces_secteur_activite $this->getNbAnnoncesBySecteursActivite();
  322.         
  323.         return $this->render(
  324.             "ouvrir_capital/fragments/cv_repreneur/trouver_annonce_par_categorie.html.twig",
  325.             [
  326.                 'annonces_secteur_activite' => $annonces_secteur_activite,
  327.                 'lang' => $lang,
  328.                 'codePays' => $codePays
  329.             ]
  330.             );
  331.     }
  332.     
  333.     public function recherchestandardannonceacquisition (Request $requestTranslationExtension $translationExtensionContainerBagInterface $container$codePays): Response
  334.     {
  335.         $reference_mots_cles $request->query->get('reference_mots_cles');
  336.         
  337.         // Si on fait une recherche simple
  338.         if (isset($reference_mots_cles) && $reference_mots_cles != "") {
  339.             // Si on recherche par idAnnonce
  340.             if (preg_match("/v([0-9]{3,8})/i",$reference_mots_cles) == true || preg_match("/([0-9]{3,8})/",$reference_mots_cles) == true) {
  341.                 $idAnnonce preg_replace("/[^0-9]/"""$reference_mots_cles);
  342.                 $annonce $this->am->getAnnonceAcheteurById($idAnnonce);
  343.                 
  344.                 // Si l'annonce existe et est publique
  345.                 if ($annonce && $annonce['mode_annonce'] == "publique") {
  346.                     $slug Utils::slugify($annonce['titre_annonce']);
  347.                     
  348.                     //return $this->forward('App\Controller\VendreEntrepriseController::redirectiononglet', ['slug' => $slug, 'idAnnonce' => $idAnnonce, 'codePays' => $codePays]);
  349.                     return $this->redirectToRoute('vendre_entreprise_annonce_acquisition_details', ['slug' => $slug'idAnnonce' => $idAnnonce'codePays' => $codePays'nomLocalisation' => $annonce['nom_localisation_slug'], 'from' => 'ouvrir-capital']);
  350.                 } else {
  351.                     $lang $request->getSession()->get('lang');
  352.                     $this->addFlash('error'$translationExtension->translate('annonce introuvable : l’annonce a Ă©tĂ© supprimĂ©e, remise en attente ou est en cours de modification'$lang'''M'''));
  353.                 }
  354.                 // Si on recherche par mots cles
  355.             } else {
  356.                 // A developper
  357.                
  358.                 $request->query->set('type_recherche'5);
  359.                 return $this->forward('App\Controller\OuvrirCapitalController::annonceacquisition', ['codePays' => $codePays'request' => $request]);
  360.             }
  361.         }
  362.        
  363.         
  364.         return $this->render(
  365.             'ouvrir_capital/recherche_standard_annonce_acquisition.html.twig',
  366.             [
  367.                 
  368.             ]
  369.             );
  370.     }
  371.     
  372.     public function dernieresAnnoncesAcquisition($lang$codePays)
  373.     {
  374.         $dernieresAnnonces $this->am->getDernieresAnnoncesAcquisitions(5"entreprise""acquereur_investisseur"$lang$this->getIdPaysByCodePays($codePays));
  375.         
  376.         return $this->render(
  377.             'ouvrir_capital/fragments/acquereur_investisseur/dernieres_annonces.html.twig',
  378.             [
  379.                 'dernieresAnnonces' => $dernieresAnnonces,
  380.                 'lang' => $lang,
  381.                 'codePays' => $codePays
  382.             ]
  383.             );
  384.     }
  385.     
  386.     public function trouverAnnonceAcquisitionParLocalisation($lang$codePays)
  387.     {
  388.         $array_annonce_region_du_pays $this->am->donne_tableau_nb_annonce_acheteur_par_region($this->getIdPaysByCodePays($codePays));
  389.         $nb_regions count($array_annonce_region_du_pays);
  390.         
  391.         if ($nb_regions != 0) {
  392.             $moitie ceil($nb_regions 2);
  393.         } else {
  394.             $moitie $nb_regions 2;
  395.         }
  396.         
  397.         $colonne_region_gauche array_slice($array_annonce_region_du_pays0$moitie);
  398.         $colonne_region_droite array_slice($array_annonce_region_du_pays$moitie);
  399.         
  400.         $nb_annonce_france $this->getAnnoncesNumbers(['id_localisation' => 'p33'])['nb_acquereurs_investisseurs'];
  401.         $nb_annonce_belgique $this->getAnnoncesNumbers(['id_localisation' => 'p32'])['nb_acquereurs_investisseurs'];
  402.         $nb_annonce_canada $this->getAnnoncesNumbers(['id_localisation' => 'p01'])['nb_acquereurs_investisseurs'];
  403.         $nb_annonce_suisse $this->getAnnoncesNumbers(['id_localisation' => 'p41'])['nb_acquereurs_investisseurs'];
  404.         $nb_annonce_autres_pays $this->getAnnoncesNumbers(['id_localisation' => 'p99'])['nb_acquereurs_investisseurs'];
  405.         
  406.         return $this->render(
  407.             "ouvrir_capital/fragments/acquereur_investisseur/trouver_annonce_par_localisation_".$this->getVersionByCodePays($codePays).".html.twig",
  408.             [
  409.                 'colonne_region_gauche' => $colonne_region_gauche,
  410.                 'colonne_region_droite' => $colonne_region_droite,
  411.                 'nb_annonce_france' => $nb_annonce_france,
  412.                 'nb_annonce_belgique' => $nb_annonce_belgique,
  413.                 'nb_annonce_canada' => $nb_annonce_canada,
  414.                 'nb_annonce_suisse' => $nb_annonce_suisse,
  415.                 'nb_annonce_autres_pays' => $nb_annonce_autres_pays,
  416.                 'array_annonce_region_du_pays' => $array_annonce_region_du_pays,
  417.                 'lang' => $lang,
  418.                 'codePays' => $codePays
  419.             ]
  420.             );
  421.     }
  422.     
  423.     public function trouverAnnonceAcquisitionParCategorie($lang$codePays)
  424.     {
  425.         $annonces_secteur_activite $this->getNbAnnoncesBySecteursActivite();
  426.         
  427.         return $this->render(
  428.             "ouvrir_capital/fragments/acquereur_investisseur/trouver_annonce_par_categorie.html.twig",
  429.             [
  430.                 'annonces_secteur_activite' => $annonces_secteur_activite,
  431.                 'lang' => $lang,
  432.                 'codePays' => $codePays
  433.             ]
  434.             );
  435.     }
  436.     
  437.     public function recherchestandardfondsinvestissement (Request $requestTranslationExtension $translationExtensionContainerBagInterface $container$codePays): Response
  438.     {
  439.         $reference_mots_cles $request->query->get('reference_mots_cles');
  440.         
  441.         // Si on fait une recherche simple
  442.         if (isset($reference_mots_cles) && $reference_mots_cles != "") {
  443.             // Recherche par mots clĂ©s uniquement
  444.             $request->query->set('type_recherche'5);
  445.             return $this->forward('App\Controller\OuvrirCapitalController::fondsinvestissement', ['codePays' => $codePays'request' => $request]);
  446.         }
  447.         
  448.         
  449.         
  450.         return $this->render(
  451.             'ouvrir_capital/recherche_standard_fonds_investissement.html.twig',
  452.             [
  453.                 
  454.             ]
  455.             );
  456.     }
  457.     
  458.     public function trouverFondsInvestissementParLocalisation($lang$codePays)
  459.     {
  460.         $array_annonce_region_du_pays $this->sm->donne_tableau_nb_fonds_investissement_par_region($this->getIdPaysByCodePays($codePays));
  461.         $nb_regions count($array_annonce_region_du_pays);
  462.         
  463.         if ($nb_regions != 0) {
  464.             $moitie ceil($nb_regions 2);
  465.         } else {
  466.             $moitie $nb_regions 2;
  467.         }
  468.         
  469.         $colonne_region_gauche array_slice($array_annonce_region_du_pays0$moitie);
  470.         $colonne_region_droite array_slice($array_annonce_region_du_pays$moitie);
  471.         
  472.         $nb_annonce_france $this->getAnnoncesNumbers(['id_localisation' => 'p33'])['nb_fonds_investissement'];
  473.         $nb_annonce_belgique $this->getAnnoncesNumbers(['id_localisation' => 'p32'])['nb_fonds_investissement'];
  474.         $nb_annonce_canada $this->getAnnoncesNumbers(['id_localisation' => 'p01'])['nb_fonds_investissement'];
  475.         $nb_annonce_suisse $this->getAnnoncesNumbers(['id_localisation' => 'p41'])['nb_fonds_investissement'];
  476.         $nb_annonce_autres_pays $this->getAnnoncesNumbers(['id_localisation' => 'p99'])['nb_fonds_investissement'];
  477.         
  478.         return $this->render(
  479.             "ouvrir_capital/fragments/fonds_investissement/trouver_annonce_par_localisation_".$this->getVersionByCodePays($codePays).".html.twig",
  480.             [
  481.                 'colonne_region_gauche' => $colonne_region_gauche,
  482.                 'colonne_region_droite' => $colonne_region_droite,
  483.                 'nb_annonce_france' => $nb_annonce_france,
  484.                 'nb_annonce_belgique' => $nb_annonce_belgique,
  485.                 'nb_annonce_canada' => $nb_annonce_canada,
  486.                 'nb_annonce_suisse' => $nb_annonce_suisse,
  487.                 'nb_annonce_autres_pays' => $nb_annonce_autres_pays,
  488.                 'array_annonce_region_du_pays' => $array_annonce_region_du_pays,
  489.                 'lang' => $lang,
  490.                 'codePays' => $codePays
  491.             ]
  492.             );
  493.     }
  494.     
  495.     public function trouverFondsInvestissementParCategorie($lang$codePays)
  496.     {
  497.         $annonces_secteur_activite $this->getNbAnnoncesBySecteursActivite();
  498.         
  499.         return $this->render(
  500.             "ouvrir_capital/fragments/fonds_investissement/trouver_annonce_par_categorie.html.twig",
  501.             [
  502.                 'annonces_secteur_activite' => $annonces_secteur_activite,
  503.                 'lang' => $lang,
  504.                 'codePays' => $codePays
  505.             ]
  506.             );
  507.     }
  508.     
  509.     public function rechercheavanceefondsinvestissement(Request $requestSecteursActiviteManagers $secteursActiviteManagerTranslationExtension $translationExtensionLocalisationsManagers $localisationManager$codePays): Response
  510.     {
  511.         $parametres $request->query->all();
  512.         $parametres ParametersProvider::prepareRechercheAvanceeOuvrirCapitalParameters($parametres);
  513.         $parametres_localisations ParametersProvider::prepareLocalisationsParameters($localisationManager$parametres);
  514.         $parametres_secteurs ParametersProvider::prepareSecteursParameters($secteursActiviteManager$parametres);
  515.         $string_params $this->serializeParams($parametres);
  516.         
  517.        
  518.         $lang $request->getSession()->get('lang');
  519.         
  520.         //$secteurs_activite_fonds = $secteursActiviteManager->donne_option_select_secteurs_activite_fonds();
  521.         $secteurs_activite1 $secteursActiviteManager->donne_option_select_secteurs_activite_niveau_1();
  522.         
  523.         if (isset($parametres['id_secteur_activite'])) {
  524.             $secteurs_activite2 $secteursActiviteManager->donne_option_select_secteurs_activite_enfant_by_secteur_activite_parent($parametres['id_secteur_activite']);
  525.             $show_secteur_niveau_2 true;
  526.         } else {
  527.             $secteurs_activite2 = [];
  528.             $show_secteur_niveau_2 false;
  529.         }
  530.         
  531.         if (isset($parametres['id_secteur_activite2'])) {
  532.             $secteurs_activite3 $secteursActiviteManager->donne_option_select_secteurs_activite_enfant_by_secteur_activite_parent($parametres['id_secteur_activite2']);
  533.             $show_secteur_niveau_3 true;
  534.         } else {
  535.             $secteurs_activite3 = [];
  536.             $show_secteur_niveau_3 false;
  537.         }
  538.         $idPays $this->getIdPaysByCodePays($codePays);
  539.         
  540.         $pays $this->sm->donne_option_select_pays_fonds_investissement($idPays);
  541.         $regions = [];
  542.         
  543.         $type_reprise_bis = [
  544.             $translationExtension->translate("majoritaire"$lang'''M''') => 'majoritaire',
  545.             $translationExtension->translate("minoritaire"$lang'''M''') => 'minoritaire',
  546.             $translationExtension->translate("ouvert aux deux"$lang'''M''') => ''
  547.         ];
  548.         
  549.         $recherche_par = [
  550.             $translationExtension->translate("mots-cles de l'activite recherchee"$lang'''M''') => 'motscles',
  551.             $translationExtension->translate("secteur predefini"$lang'''M''') => 'secteurs'
  552.         ];
  553.         
  554.         $formFactory Forms::createFormFactoryBuilder()->getFormFactory();
  555.         $form $formFactory->createNamedBuilder('')
  556.         ->add('id_pays'ChoiceType::class, [
  557.             'choices' => $pays,
  558.         ])
  559.         ->add('id_region'ChoiceType::class, [
  560.             'choices' => $regions,
  561.         ])
  562.         ->add('id_localisation'HiddenType::class, [
  563.             'data' => $parametres['id_localisation']
  564.         ])
  565.         ->add('ajouter'ButtonType::class)
  566.        
  567.         ->add('id_secteur_activite'ChoiceType::class, [
  568.          'choices' => $secteurs_activite1,
  569.          'data' => $parametres['id_secteur_activite']
  570.          ])
  571.          ->add('id_secteur_activite2'ChoiceType::class, [
  572.          'choices' => $secteurs_activite2,
  573.          'data' => $parametres['id_secteur_activite2']
  574.          ])
  575.          ->add('id_secteur_activite3'ChoiceType::class, [
  576.          'choices' => $secteurs_activite3,
  577.          'data' => $parametres['id_secteur_activite3']
  578.          ])
  579.          ->add('id_secteur'HiddenType::class, [
  580.              'data' => $parametres['id_secteur'],
  581.          ])
  582.          ->add('ajouter_secteur_activite'ButtonType::class)
  583.         ->add('montant_recherche'TextType::class, [
  584.             'required' => false,
  585.             'attr' => [
  586.                 'placeholder' => ''
  587.             ],
  588.             'data' => $parametres['montant_recherche']
  589.         ])
  590.         ->add('type_reprise_bis'ChoiceType::class, [
  591.             'required' => false,
  592.             'choices' => $type_reprise_bis,
  593.             'expanded' => true,
  594.             'multiple' => false,
  595.             'data' => $parametres['type_reprise_bis']
  596.         ])
  597.         ->add('reference_mots_cles'TextType::class, [
  598.             'required' => false,
  599.             'data' => $parametres['reference_mots_cles'],
  600.             'attr' => [
  601.                 'placeholder' => $translationExtension->translate("transport, services informatiques, ..."$lang'''M''')
  602.             ]
  603.         ])
  604.         ->add('recherche_par'ChoiceType::class, [
  605.             'required' => false,
  606.             'choices' => $recherche_par,
  607.             'expanded' => true,
  608.             'multiple' => false,
  609.             'data' => $parametres['recherche_par'],
  610.             'placeholder' => false,
  611.             'choice_value' => function ($choice) {
  612.             return $choice// Utilisez la valeur du choix comme clĂ©
  613.             }
  614.             ])
  615.         ->add('rechercher'SubmitType::class)
  616.         ->setAction($this->generateUrl('ouvrir_capital_resultats_fonds_investissement', ['codePays' => $codePays]))
  617.         ->setMethod('GET')
  618.         ->getForm();
  619.         
  620.         return $this->render(
  621.             'ouvrir_capital/recherche_avancee_fonds_investissement.html.twig',
  622.             [
  623.                 
  624.                 'form' => $form->createView(),
  625.                 'parametres' => $parametres,
  626.                 'parametres_localisations' => $parametres_localisations,
  627.                 'parametres_secteurs' => $parametres_secteurs,
  628.                 'string_params' => $string_params,
  629.                 'show_secteur_niveau_2' => $show_secteur_niveau_2,
  630.                 'show_secteur_niveau_3' => $show_secteur_niveau_3
  631.                 
  632.             ]
  633.             );
  634.     }
  635.     
  636.     public function rechercheavanceecvrepreneur(Request $requestSecteursActiviteManagers $secteursActiviteManagerTranslationExtension $translationExtensionLocalisationsManagers $localisationManager$codePays): Response
  637.     {
  638.         $parametres $request->query->all();
  639.         $parametres ParametersProvider::prepareRechercheAvanceeOuvrirCapitalParameters($parametres);
  640.         $parametres_localisations ParametersProvider::prepareLocalisationsParameters($localisationManager$parametres);
  641.         $parametres_secteurs ParametersProvider::prepareSecteursParameters($secteursActiviteManager$parametres);
  642.         $string_params $this->serializeParams($parametres);
  643.         
  644.         
  645.         $lang $request->getSession()->get('lang');
  646.         
  647.         //$secteurs_activite_fonds = $secteursActiviteManager->donne_option_select_secteurs_activite_fonds();
  648.         $secteurs_activite1 $secteursActiviteManager->donne_option_select_secteurs_activite_niveau_1();
  649.         
  650.         if (isset($parametres['id_secteur_activite'])) {
  651.             $secteurs_activite2 $secteursActiviteManager->donne_option_select_secteurs_activite_enfant_by_secteur_activite_parent($parametres['id_secteur_activite']);
  652.             $show_secteur_niveau_2 true;
  653.         } else {
  654.             $secteurs_activite2 = [];
  655.             $show_secteur_niveau_2 false;
  656.         }
  657.         
  658.         if (isset($parametres['id_secteur_activite2'])) {
  659.             $secteurs_activite3 $secteursActiviteManager->donne_option_select_secteurs_activite_enfant_by_secteur_activite_parent($parametres['id_secteur_activite2']);
  660.             $show_secteur_niveau_3 true;
  661.         } else {
  662.             $secteurs_activite3 = [];
  663.             $show_secteur_niveau_3 false;
  664.         }
  665.         
  666.         $type_reprise_bis = [
  667.             $translationExtension->translate("majoritaire"$lang'''M''') => 'majoritaire',
  668.             $translationExtension->translate("minoritaire"$lang'''M''') => 'minoritaire',
  669.             $translationExtension->translate("ouvert aux deux"$lang'''M''') => ''
  670.         ];
  671.         
  672.       
  673.         
  674.         $idPays $this->getIdPaysByCodePays($codePays);
  675.         
  676.         $pays $this->arm->donne_option_select_pays_annuaire_repreneurs($idPays); 
  677.         $regions = [];
  678.         
  679.         $recherche_par = [
  680.             $translationExtension->translate("mots-cles de l'activite recherchee"$lang'''M''') => 'motscles',
  681.             $translationExtension->translate("secteur predefini"$lang'''M''') => 'secteurs'
  682.         ];
  683.         
  684.         $formFactory Forms::createFormFactoryBuilder()->getFormFactory();
  685.         $form $formFactory->createNamedBuilder('')
  686.         ->add('id_pays'ChoiceType::class, [
  687.             'choices' => $pays,
  688.         ])
  689.         ->add('id_region'ChoiceType::class, [
  690.             'choices' => $regions,
  691.         ])
  692.         ->add('id_localisation'HiddenType::class, [
  693.             'data' => $parametres['id_localisation']
  694.         ])
  695.         ->add('ajouter'ButtonType::class)
  696.       
  697.         ->add('id_secteur_activite'ChoiceType::class, [
  698.          'choices' => $secteurs_activite1,
  699.          'data' => $parametres['id_secteur_activite']
  700.          ])
  701.          ->add('id_secteur_activite2'ChoiceType::class, [
  702.          'choices' => $secteurs_activite2,
  703.          'data' => $parametres['id_secteur_activite2']
  704.          ])
  705.          ->add('id_secteur_activite3'ChoiceType::class, [
  706.          'choices' => $secteurs_activite3,
  707.          'data' => $parametres['id_secteur_activite3']
  708.          ])
  709.         ->add('id_secteur'HiddenType::class, [
  710.              'data' => $parametres['id_secteur'],
  711.          ])
  712.         ->add('ajouter_secteur_activite'ButtonType::class)
  713.         ->add('montant_recherche'TextType::class, [
  714.             'required' => false,
  715.             'attr' => [
  716.                 'placeholder' => $translationExtension->translate("en k€"$lang'''m''')
  717.             ],
  718.             'data' => $parametres['montant_recherche']
  719.         ])
  720.         ->add('type_reprise_bis'ChoiceType::class, [
  721.             'required' => false,
  722.             'choices' => $type_reprise_bis,
  723.             'expanded' => true,
  724.             'multiple' => false,
  725.             'data' => $parametres['type_reprise_bis']
  726.         ])
  727.         ->add('reference_mots_cles'TextType::class, [
  728.             'required' => false,
  729.             'attr' => [
  730.                 'placeholder' => $translationExtension->translate("transport, services informatiques, ..."$lang'''M''')
  731.             ],
  732.             'data' => $parametres['reference_mots_cles']
  733.         ])
  734.         ->add('mots_cle_exact'HiddenType::class, [
  735.             'attr' => ['v-bind:value' => 'mots_cle_exact'],
  736.             'data' => $parametres['mots_cle_exact']
  737.         ])
  738.         ->add('type_recherche'HiddenType::class, [
  739.             'data' => 5,
  740.         ])
  741.         ->add('recherche_par'ChoiceType::class, [
  742.             'required' => false,
  743.             'choices' => $recherche_par,
  744.             'expanded' => true,
  745.             'multiple' => false,
  746.             'data' => $parametres['recherche_par'],
  747.             'placeholder' => false,
  748.             'choice_value' => function ($choice) {
  749.             return $choice// Utilisez la valeur du choix comme clĂ©
  750.             }
  751.             ])
  752.         ->add('rechercher'SubmitType::class)
  753.         ->setAction($this->generateUrl('ouvrir_capital_resultats_cv_repreneur', ['codePays' => $codePays]))
  754.         ->setMethod('GET')
  755.         ->getForm();
  756.         
  757.         return $this->render(
  758.             'ouvrir_capital/recherche_avancee_cv_repreneur.html.twig',
  759.             [
  760.                 'form' => $form->createView(),
  761.                 'parametres' => $parametres,
  762.                 'parametres_localisations' => $parametres_localisations,
  763.                 'parametres_secteurs' => $parametres_secteurs,
  764.                 'string_params' => $string_params,
  765.                 'show_secteur_niveau_2' => $show_secteur_niveau_2,
  766.                 'show_secteur_niveau_3' => $show_secteur_niveau_3
  767.                 
  768.             ]
  769.         );
  770.     }
  771.     
  772.     public function rechercheavanceeannonceacquisition(Request $requestSecteursActiviteManagers $secteursActiviteManagerTranslationExtension $translationExtension$codePaysLocalisationsManagers $localisationManager): Response
  773.     {
  774.         $parametres $request->query->all();
  775.         $parametres ParametersProvider::prepareRechercheAvanceeOuvrirCapitalParameters($parametres);
  776.         $parametres_localisations ParametersProvider::prepareLocalisationsParameters($localisationManager$parametres);
  777.         $parametres_secteurs ParametersProvider::prepareSecteursParameters($secteursActiviteManager$parametres);
  778.         $string_params $this->serializeParams($parametres);
  779.         
  780.          
  781.         
  782.         $lang $request->getSession()->get('lang');
  783.         $idPays $this->getIdPaysByCodePays($codePays);
  784.         
  785.         $type_reprise_bis = [
  786.             $translationExtension->translate("majoritaire"$lang'''M''') => 'majoritaire',
  787.             $translationExtension->translate("minoritaire"$lang'''M''') => 'minoritaire',
  788.             $translationExtension->translate("ouvert aux deux"$lang'''M''') => ''
  789.         ];
  790.         
  791.         $pays $this->am->donne_option_select_pays_annonces_acheteur("entreprise"$idPays);
  792.         $regions = [];
  793.         $departements = [];
  794.         
  795.         //$secteurs_activite_fonds = $secteursActiviteManager->donne_option_select_secteurs_activite_fonds();
  796.         $secteurs_activite1 $secteursActiviteManager->donne_option_select_secteurs_activite_niveau_1();
  797.         
  798.         if (isset($parametres['id_secteur_activite'])) {
  799.             $secteurs_activite2 $secteursActiviteManager->donne_option_select_secteurs_activite_enfant_by_secteur_activite_parent($parametres['id_secteur_activite']);
  800.             $show_secteur_niveau_2 true;
  801.         } else {
  802.             $secteurs_activite2 = [];
  803.             $show_secteur_niveau_2 false;
  804.         }
  805.         
  806.         if (isset($parametres['id_secteur_activite2'])) {
  807.             $secteurs_activite3 $secteursActiviteManager->donne_option_select_secteurs_activite_enfant_by_secteur_activite_parent($parametres['id_secteur_activite2']);
  808.             $show_secteur_niveau_3 true;
  809.         } else {
  810.             $secteurs_activite3 = [];
  811.             $show_secteur_niveau_3 false;
  812.         }
  813.         
  814.        
  815.         
  816.         $recherche_par = [
  817.             $translationExtension->translate("mots-cles de l'activite recherchee"$lang'''M''') => 'motscles',
  818.             $translationExtension->translate("secteur predefini"$lang'''M''') => 'secteurs'
  819.         ];
  820.         
  821.         $formFactory Forms::createFormFactoryBuilder()->getFormFactory();
  822.         $form $formFactory->createNamedBuilder('')
  823.         ->add('id_pays'ChoiceType::class, [
  824.             'choices' => $pays,
  825.         ])
  826.         ->add('id_region'ChoiceType::class, [
  827.             'choices' => $regions,
  828.         ])
  829.         ->add('id_localisation'HiddenType::class, [
  830.             'data' => $parametres['id_localisation']
  831.         ])
  832.         ->add('ajouter'ButtonType::class)
  833.       
  834.         ->add('id_secteur_activite'ChoiceType::class, [
  835.          'choices' => $secteurs_activite1,
  836.          'data' => $parametres['id_secteur_activite']
  837.          ])
  838.          ->add('id_secteur_activite2'ChoiceType::class, [
  839.          'choices' => $secteurs_activite2,
  840.          'data' => $parametres['id_secteur_activite2']
  841.          ])
  842.          ->add('id_secteur_activite3'ChoiceType::class, [
  843.          'choices' => $secteurs_activite3,
  844.          'data' => $parametres['id_secteur_activite3']
  845.          ])
  846.         ->add('id_secteur'HiddenType::class, [
  847.              'data' => $parametres['id_secteur'],
  848.          ])
  849.         ->add('ajouter_secteur_activite'ButtonType::class)
  850.         ->add('montant_recherche'TextType::class, [
  851.             'required' => false,
  852.             'attr' => [
  853.                 'placeholder' => ''
  854.             ],
  855.             'data' => $parametres['montant_recherche']
  856.         ])
  857.         ->add('type_reprise_bis'ChoiceType::class, [
  858.             'required' => false,
  859.             'choices' => $type_reprise_bis,
  860.             'expanded' => true,
  861.             'multiple' => false,
  862.             'data' => $parametres['type_reprise_bis']
  863.         ])
  864.         ->add('reference_mots_cles'TextType::class, [
  865.             'required' => false,
  866.             'data' => $parametres['reference_mots_cles'],
  867.             'attr' => [
  868.                 'placeholder' => $translationExtension->translate("transport, services informatiques, ..."$lang'''M''')
  869.             ]
  870.         ])
  871.         ->add('recherche_par'ChoiceType::class, [
  872.             'required' => false,
  873.             'choices' => $recherche_par,
  874.             'expanded' => true,
  875.             'multiple' => false,
  876.             'data' => $parametres['recherche_par'],
  877.             'placeholder' => false,
  878.             'choice_value' => function ($choice) {
  879.             return $choice// Utilisez la valeur du choix comme clĂ©
  880.             }
  881.             ])
  882.         ->add('rechercher'SubmitType::class)
  883.         ->setAction($this->generateUrl('ouvrir_capital_resultats_annonces_acquisition', ['codePays' => $codePays]))
  884.         ->setMethod('GET')
  885.         ->getForm();
  886.         
  887.         $current_year date('Y');
  888.         
  889.         return $this->render(
  890.             'ouvrir_capital/recherche_avancee_annonce_acquisition.html.twig',
  891.             [
  892.                 
  893.                 'form' => $form->createView(),
  894.                 'parametres' => $parametres,
  895.                 'parametres_localisations' => $parametres_localisations,
  896.                 'parametres_secteurs' => $parametres_secteurs,
  897.                 'current_year' => $current_year,
  898.                 'string_params' => $string_params,
  899.                 'show_secteur_niveau_2' => $show_secteur_niveau_2,
  900.                 'show_secteur_niveau_3' => $show_secteur_niveau_3
  901.             ]
  902.             );
  903.     }
  904.     
  905.     public function rechercheavanceebusinessangel(Request $requestSecteursActiviteManagers $secteursActiviteManagerTranslationExtension $translationExtension$codePaysLocalisationsManagers $localisationManager): Response
  906.     {
  907.         $parametres $request->query->all();
  908.         $parametres ParametersProvider::prepareRechercheAvanceeOuvrirCapitalParameters($parametres);
  909.         $parametres_localisations ParametersProvider::prepareLocalisationsParameters($localisationManager$parametres);
  910.         $parametres_secteurs ParametersProvider::prepareSecteursParameters($secteursActiviteManager$parametres);
  911.         $string_params $this->serializeParams($parametres);
  912.         
  913.         
  914.         
  915.         $lang $request->getSession()->get('lang');
  916.         
  917.         //$secteurs_activite_fonds = $secteursActiviteManager->donne_option_select_secteurs_activite_fonds();
  918.         $secteurs_activite1 $secteursActiviteManager->donne_option_select_secteurs_activite_niveau_1();
  919.         
  920.         if (isset($parametres['id_secteur_activite'])) {
  921.             $secteurs_activite2 $secteursActiviteManager->donne_option_select_secteurs_activite_enfant_by_secteur_activite_parent($parametres['id_secteur_activite']);
  922.             $show_secteur_niveau_2 true;
  923.         } else {
  924.             $secteurs_activite2 = [];
  925.             $show_secteur_niveau_2 false;
  926.         }
  927.         
  928.         if (isset($parametres['id_secteur_activite2'])) {
  929.             $secteurs_activite3 $secteursActiviteManager->donne_option_select_secteurs_activite_enfant_by_secteur_activite_parent($parametres['id_secteur_activite2']);
  930.             $show_secteur_niveau_3 true;
  931.         } else {
  932.             $secteurs_activite3 = [];
  933.             $show_secteur_niveau_3 false;
  934.         }
  935.         
  936.         $type_reprise_bis = [
  937.             $translationExtension->translate("majoritaire"$lang'''M''') => 'majoritaire',
  938.             $translationExtension->translate("minoritaire"$lang'''M''') => 'minoritaire',
  939.             $translationExtension->translate("ouvert aux deux"$lang'''M''') => ''
  940.         ];
  941.         
  942.         $idPays $this->getIdPaysByCodePays($codePays);
  943.         
  944.         $pays $this->bam->donne_option_select_pays_business_angel($idPays);
  945.         $regions = [];
  946.         
  947.         $recherche_par = [
  948.             $translationExtension->translate("mots-cles de l'activite recherchee"$lang'''M''') => 'motscles',
  949.             $translationExtension->translate("secteur predefini"$lang'''M''') => 'secteurs'
  950.         ];
  951.         
  952.         $formFactory Forms::createFormFactoryBuilder()->getFormFactory();
  953.         $form $formFactory->createNamedBuilder('')
  954.         ->add('id_pays'ChoiceType::class, [
  955.             'choices' => $pays,
  956.         ])
  957.         ->add('id_region'ChoiceType::class, [
  958.             'choices' => $regions,
  959.         ])
  960.         ->add('id_localisation'HiddenType::class, [
  961.             'data' => $parametres['id_localisation']
  962.         ])
  963.         ->add('ajouter'ButtonType::class)
  964.         /*->add('id_secteur_activite_fonds', ChoiceType::class, [
  965.             'choices' => $secteurs_activite_fonds,
  966.             'data' => $parametres['id_secteur_activite_fonds']
  967.         ])*/
  968.         ->add('id_secteur_activite'ChoiceType::class, [
  969.             'choices' => $secteurs_activite1,
  970.             'data' => $parametres['id_secteur_activite']
  971.         ])
  972.         ->add('id_secteur_activite2'ChoiceType::class, [
  973.             'choices' => $secteurs_activite2,
  974.             'data' => $parametres['id_secteur_activite2']
  975.         ])
  976.         ->add('id_secteur_activite3'ChoiceType::class, [
  977.             'choices' => $secteurs_activite3,
  978.             'data' => $parametres['id_secteur_activite3']
  979.         ])
  980.         ->add('id_secteur'HiddenType::class, [
  981.             'data' => $parametres['id_secteur'],
  982.         ])
  983.         ->add('ajouter_secteur_activite'ButtonType::class)
  984.         ->add('montant_recherche'TextType::class, [
  985.             'required' => false,
  986.             'attr' => [
  987.                 'placeholder' => ''
  988.             ],
  989.             'data' => $parametres['montant_recherche']
  990.         ])
  991.         ->add('type_reprise_bis'ChoiceType::class, [
  992.             'required' => false,
  993.             'choices' => $type_reprise_bis,
  994.             'expanded' => true,
  995.             'multiple' => false,
  996.             'data' => $parametres['type_reprise_bis']
  997.         ])
  998.         ->add('reference_mots_cles'TextType::class, [
  999.             'required' => false,
  1000.             'data' => $parametres['reference_mots_cles'],
  1001.             'attr' => [
  1002.                 'placeholder' => $translationExtension->translate("transport, services informatiques, ..."$lang'''M''')
  1003.             ]
  1004.         ])
  1005.         ->add('recherche_par'ChoiceType::class, [
  1006.             'required' => false,
  1007.             'choices' => $recherche_par,
  1008.             'expanded' => true,
  1009.             'multiple' => false,
  1010.             'data' => $parametres['recherche_par'],
  1011.             'placeholder' => false,
  1012.             'choice_value' => function ($choice) {
  1013.             return $choice// Utilisez la valeur du choix comme clĂ©
  1014.             }
  1015.             ])
  1016.         ->add('rechercher'SubmitType::class)
  1017.         ->setAction($this->generateUrl('ouvrir_capital_resultats_business_angel', ['codePays' => $codePays]))
  1018.         ->setMethod('GET')
  1019.         ->getForm();
  1020.         
  1021.         return $this->render(
  1022.             'ouvrir_capital/recherche_avancee_business_angel.html.twig',
  1023.             [
  1024.                 'form' => $form->createView(),
  1025.                 'parametres' => $parametres,
  1026.                 'parametres_localisations' => $parametres_localisations,
  1027.                 'parametres_secteurs' => $parametres_secteurs,
  1028.                 'string_params' => $string_params,
  1029.                 'show_secteur_niveau_2' => $show_secteur_niveau_2,
  1030.                 'show_secteur_niveau_3' => $show_secteur_niveau_3
  1031.             ]
  1032.             );
  1033.     }
  1034.     
  1035.     public function fondsinvestissement(Request $requestPaginatorInterface $paginatorLocalisationsManagers $localisationManagerLocalisationsRepository $localisationsRepoTranslationExtension $translationExtensionParametresDiversRepository $parametresDiversRepo$type null$idLocalisation null$slug null$idSecteurActivite null$codePays): Response
  1036.     {
  1037.         $lang $request->getSession()->get('lang');
  1038.         $parametres $request->query->all();
  1039.         $is_recherche_by_localisation false;
  1040.         $metaTitle $metaDescription null;
  1041.         
  1042.         // Recherche standard
  1043.         if ($idLocalisation || $idSecteurActivite) {
  1044.             // Preparation des parametres
  1045.             if ($idLocalisation) {
  1046.                 if ($type == 'd') {
  1047.                     $parametres['id_departement'] = $idLocalisation;
  1048.                     $child_type null;
  1049.                     $parent_type "r";
  1050.                 } elseif ($type == "r") {
  1051.                     $parametres['id_region'] = $idLocalisation;
  1052.                     $child_type "d";
  1053.                     $parent_type "p";
  1054.                 } else {
  1055.                     $parametres['id_pays'] = $idLocalisation;
  1056.                     $child_type "r";
  1057.                     $parent_type null;
  1058.                 }
  1059.                 
  1060.                 $parametres ParametersProvider::prepareRechercheStandardParameters($parametres);
  1061.             }
  1062.             
  1063.             if ($idSecteurActivite) {
  1064.                 $parametres['id_secteur_activite'] = $idSecteurActivite;
  1065.                 $parametres ParametersProvider::prepareRechercheStandardParameters($parametres);
  1066.             }
  1067.             
  1068.             // Recherche par localisation
  1069.             if ($idLocalisation) {
  1070.                 $localisations $localisationManager->getLocalisationCompleteWithNavById($idLocalisation);
  1071.                 
  1072.                 if (!$localisations) {
  1073.                     $this->addFlash('error'$translationExtension->translate('erreur de localisation'$lang'''M'''));
  1074.                     return $this->redirectToRoute('ouvrir_capital_resultats_fonds_investissement', ['codePays' => $codePays]);
  1075.                 }
  1076.                 
  1077.                 $villesRepo $this->getDoctrine()->getRepository(Villes::class);
  1078.                 $noms_ville $villesRepo->donne_string_noms_villes_principales_dune_localisation($idLocalisation);
  1079.                 
  1080.                 $sous_localisations $localisationsRepo->getSubLevelLocalisations($idLocalisation);
  1081.                 $sous_localisations_numbers = [];
  1082.                 $prev_localisation = [];
  1083.                 
  1084.                 foreach ($sous_localisations as $sous_localisation) {
  1085.                     $params = [];
  1086.                     
  1087.                     if ($idSecteurActivite) {
  1088.                         $params['id_secteur_activite'] = $idSecteurActivite;
  1089.                     }
  1090.                     
  1091.                     if ($type == "r") {
  1092.                         $params['id_departement'] = $sous_localisation['id_localisation'];
  1093.                     } else {
  1094.                         if ($idLocalisation == "99") {
  1095.                             $params['id_pays'] = $sous_localisation['id_localisation'];
  1096.                             $child_type "p";
  1097.                         } else {
  1098.                             $params['id_region'] = $sous_localisation['id_localisation'];
  1099.                         }
  1100.                     }
  1101.                     
  1102.                     $sous_localisation['type'] = $child_type;
  1103.                     $params ParametersProvider::prepareRechercheStandardParameters($params);
  1104.                     $annonces_numbers $this->getAnnoncesNumbers($params);
  1105.                     if ($idLocalisation == 99) {
  1106.                         if ($sous_localisation['nom_localisation'] != "Confidentiel" && $annonces_numbers['nb_fonds_investissement'] != 0) {
  1107.                             $sous_localisations_numbers[] = array_merge($sous_localisation$annonces_numbers);
  1108.                         }
  1109.                     } else {
  1110.                         if ($sous_localisation['nom_localisation'] != "Confidentiel" || $annonces_numbers['nb_fonds_investissement'] != 0) {
  1111.                             $sous_localisations_numbers[] = array_merge($sous_localisation$annonces_numbers);
  1112.                         }
  1113.                     }
  1114.                 }
  1115.                 
  1116.                 if (!$prev_localisation && $parent_type) {
  1117.                     $prev_localisation = isset($localisations[count($localisations) - 2]) ? $localisations[count($localisations) - 2] : null;
  1118.                     $prev_localisation['type'] = $parent_type;
  1119.                 }
  1120.                 
  1121.                 $last_localisation end($localisations);
  1122.                 $arrayVarsTrans['prefixe_localisation'] = $last_localisation['prefixe'];
  1123.                 $arrayVarsTrans['nom_localisation'] = strtoupper($last_localisation['nom_localisation']);
  1124.                 $metaTitle '%$nb_fonds_investissement%$ fonds d\'investissement %$prefixe_localisation%$ %$nom_localisation%$';
  1125.                 $metaDescription 'consultez %$nb_fonds_investissement%$ fonds d\'investissement %$prefixe_localisation%$ %$nom_localisation%$';
  1126.             }
  1127.             
  1128.             // Recherche par secteur d'activite
  1129.             if ($idSecteurActivite) {
  1130.                 $secteurActivites $this->sam->getTreeSecteursActivite($idSecteurActivite);
  1131.                 
  1132.                 if (!$secteurActivites) {
  1133.                     $this->addFlash('error'$translationExtension->translate("erreur de secteur d'activitĂ©"$lang'''M'''));
  1134.                     return $this->redirectToRoute('ouvrir_capital_resultats_fonds_investissement', ['codePays' => $codePays]);
  1135.                 }
  1136.                 
  1137.                 $secteurActiviteRepo $this->getDoctrine()->getRepository(SecteursActivite::class);
  1138.                 
  1139.                 $sous_secteurs $secteurActiviteRepo->getAllSecteursActiviteEnfantByIdSecteurParent($idSecteurActivite);
  1140.                 $sous_secteurs_numbers = [];
  1141.                 $prev_secteur = [];
  1142.                 
  1143.                 foreach ($sous_secteurs as $sous_secteur) {
  1144.                     $params = [];
  1145.                     
  1146.                     $params['id_secteur_activite'] = $sous_secteur['idSecteurActivite'];
  1147.                     $params ParametersProvider::prepareRechercheStandardParameters($params);
  1148.                     $annonces_numbers $this->getAnnoncesNumbers($params);
  1149.                     
  1150.                     $sous_secteurs_numbers[] = array_merge($sous_secteur$annonces_numbers);
  1151.                 }
  1152.                 
  1153.                 if (!$prev_secteur) {
  1154.                     $prev_secteur = isset($secteurActivites[count($secteurActivites) - 2]) ? $secteurActivites[count($secteurActivites) - 2] : null;
  1155.                 }
  1156.                 
  1157.                 $last_secteur end($secteurActivites);
  1158.                 $arrayVarsTrans['nomPourTitle'] = $last_secteur->getNomPourTitle();
  1159.                 
  1160.                 // Si ce n'est pas une recherche croisĂ©e
  1161.                 if (!$idLocalisation) {
  1162.                     $metaTitle '%$nb_fonds_investissement%$ fonds d\'investissement %$nomPourTitle%$';
  1163.                     $metaDescription 'consultez %$nb_fonds_investissement%$ fonds d\'investissement %$nomPourTitle%$';
  1164.                 } else {
  1165.                     $metaTitle '%$nb_fonds_investissement%$ fonds d\'investissement %$nomPourTitle%$ %$prefixe_localisation%$ %$nom_localisation%$';
  1166.                     $metaDescription 'consultez %$nb_fonds_investissement%$ fonds d\'investissement %$nomPourTitle%$ %$prefixe_localisation%$ %$nom_localisation%$';
  1167.                 }
  1168.             }
  1169.             // Recherche avancĂ©e / dernières annonces
  1170.         } else {
  1171.             $parametres ParametersProvider::prepareRechercheAvanceeOuvrirCapitalParameters($parametres);
  1172.         }
  1173.         
  1174.         $is_recherche ParametersProvider::prepareRechercheAvanceeOuvrirCapitalParameters() !== ParametersProvider::prepareRechercheAvanceeOuvrirCapitalParameters($parametres);
  1175.         
  1176.         if (isset($parametres['id_localisation']) && $parametres['id_localisation'] != "") {
  1177.             $is_recherche_by_localisation true;
  1178.         }
  1179.         $string_params $string_params_without_page $this->serializeParams($parametres);
  1180.         
  1181.         // Si c'est une recherche, on calcule les nb Ă  afficher
  1182.         if ($is_recherche) {
  1183.             $repoAcheteur $this->getDoctrine()->getRepository(AnnoncesAcheteur::class);
  1184.             $repoAnnuaireRepreneur $this->getDoctrine()->getRepository(AnnuaireRepreneurs::class);
  1185.             $repoSociete $this->getDoctrine()->getRepository(Societes::class);
  1186.             $repoInvestisseursPrives $this->getDoctrine()->getRepository(InvestisseursPrives::class);
  1187.             
  1188.             $parametres['from_list'] = "acquereur_investisseur";
  1189.             $nb_acquereurs_investisseurs $repoAcheteur->donne_nb_annonces_achat($parametres);
  1190.             $parametres['from_list'] = "cv_repreneur_investisseur";
  1191.             $nb_repreneurs_investisseurs $repoAnnuaireRepreneur->donne_nb_cv_repreneurs($parametres);
  1192.             $nb_fonds_investissement $repoSociete->donne_nb_fonds_investissement($parametres);
  1193.             $nb_business_angel $repoInvestisseursPrives->donne_nb_investisseurs_prives($parametres);
  1194.             $nb_recherches_partenariats $repoAcheteur->donne_nb_annonces_achat_recherche_partenaire($parametres);
  1195.             
  1196.             $nb_annonces $nb_repreneurs_investisseurs $nb_business_angel $nb_acquereurs_investisseurs $nb_fonds_investissement $nb_recherches_partenariats;
  1197.         } else {
  1198.             // Sinon on rĂ©cupère les nb stockĂ©s dans parametres_divers
  1199.             $nb $parametresDiversRepo->getListNombresAafficher();
  1200.             
  1201.             $nb_acquereurs_investisseurs $nb->ouvrir_mon_capital_nb_acquereurs_investisseurs;
  1202.             $nb_repreneurs_investisseurs $nb->ouvrir_mon_capital_nb_cv_repreneurs_investisseurs;
  1203.             $nb_fonds_investissement $nb->ouvrir_mon_capital_nb_fonds_investissement;
  1204.             $nb_business_angel $nb->ouvrir_mon_capital_nb_business_angels;
  1205.             $nb_recherches_partenariats $nb->reprendre_une_entreprise_nb_recherches_de_partenariats;
  1206.             
  1207.             $nb_annonces $nb_repreneurs_investisseurs $nb_business_angel $nb_acquereurs_investisseurs $nb_fonds_investissement $nb_recherches_partenariats;
  1208.         }
  1209.         
  1210.         $liste_fonds $this->sm->getFondsInvestissementList($request$paginator$parametres);
  1211.         
  1212.         $tri = isset($parametres['tri']) ? $parametres['tri'] : null;
  1213.         
  1214.         $numero_contact "01 48 28 20 23"// A rendre dynamique
  1215.         
  1216.         $page $request->query->get('page');
  1217.         
  1218.         if ($page != null && $page != 1) {
  1219.             $string_params .= "&page=" $page;
  1220.         }
  1221.         
  1222.         $urlList $request->getPathInfo();
  1223.         
  1224.         $tri_default null;
  1225.         
  1226.         // Si aucun tri
  1227.         if (!$tri) {
  1228.             if ($is_recherche) {
  1229.                 $tri_default "ca_desc";
  1230.             } else {
  1231.                 $tri_default "date_desc";
  1232.             }
  1233.         }
  1234.         
  1235.         // Verifier si droit_acces Annuaire participation ou Fusacq Expert
  1236.         $has_service false;
  1237.         
  1238.         //On verifie si l'utilisateur a le droit de consulter cette page
  1239.         $user $this->getUser();
  1240.         
  1241.         if ($user) {
  1242.             $has_service $this->dam->checkIfThisUserHasDroitService($user, [47]); // 47 = annuaire fond investissement
  1243.         } else {
  1244.             $has_service false;
  1245.         }
  1246.         
  1247.         // Si ce n'est pas une recherche par loc / sec ou croisĂ©
  1248.         if ($metaTitle == null && $metaTitle == null) {
  1249.             $metaTitle '%$nb_fonds_investissement%$ fonds d\'investissement';
  1250.             $metaDescription 'consultez %$nb_fonds_investissement%$ fonds d\'investissement en fonction de vos critères de recherche.';
  1251.         }
  1252.         
  1253.         $arrayVarsTrans['nb_fonds_investissement'] = $nb_fonds_investissement;
  1254.         
  1255.         if ($nb_fonds_investissement 1) {
  1256.             $p 'p';
  1257.         } else {
  1258.             $p '';
  1259.         }
  1260.         
  1261.         $metaTag $this->metaTag
  1262.         ->setTitle($translationExtension->translate($metaTitle$lang"""M"$p$arrayVarsTrans))
  1263.         ->setDescription($translationExtension->translate($metaDescription$lang"""M"$p$arrayVarsTrans))
  1264.         ->setRobots('noindex');
  1265.         
  1266.         $array_return = [
  1267.             'metaTag' => $metaTag,
  1268.             'nb_annonces' => $nb_annonces,
  1269.             'nb_fonds_investissement' => $nb_fonds_investissement,
  1270.             'nb_repreneurs_investisseurs' => $nb_repreneurs_investisseurs,
  1271.             'nb_business_angel' => $nb_business_angel,
  1272.             'nb_acquereurs_investisseurs' => $nb_acquereurs_investisseurs,
  1273.             'nb_recherches_partenariats' => $nb_recherches_partenariats,
  1274.             'liste_fonds' => $liste_fonds,
  1275.             'has_service' => $has_service,
  1276.             'string_params' => $string_params,
  1277.             'string_params_without_page' => $string_params_without_page,
  1278.             'urlList' => $urlList,
  1279.             'tri' => $tri,
  1280.             'numero_contact' => $numero_contact,
  1281.             'idLocalisation' => null,
  1282.             'idSecteurActivite' => null,
  1283.             'tri_default' => $tri_default,
  1284.             'is_recherche' => $is_recherche
  1285.         ];
  1286.         
  1287.         if ($idLocalisation || $idSecteurActivite) {
  1288.             if ($idLocalisation) {
  1289.                 $array_return['idLocalisation'] = $idLocalisation;
  1290.                 $array_return['idSecteurActivite'] = $idSecteurActivite $idSecteurActivite null;
  1291.                 $array_return['slug'] = $slug;
  1292.                 $array_return['type'] = $type;
  1293.                 $array_return['localisations'] = $localisations;
  1294.                 $array_return['noms_ville'] = $noms_ville;
  1295.                 $array_return['sous_localisations_numbers'] = $sous_localisations_numbers;
  1296.                 $array_return['prev_localisation'] = $prev_localisation;
  1297.             }
  1298.             
  1299.             if ($idSecteurActivite) {
  1300.                 $array_return['idSecteurActivite'] = $idSecteurActivite;
  1301.                 $array_return['idLocalisation'] = $idLocalisation $idLocalisation null;
  1302.                 $array_return['slug'] = $slug;
  1303.                 $array_return['secteurActivites'] = $secteurActivites;
  1304.                 $array_return['sous_secteurs_numbers'] = $sous_secteurs_numbers;
  1305.                 $array_return['prev_secteur'] = $prev_secteur;
  1306.             }
  1307.             
  1308.             if ($idLocalisation && $idSecteurActivite) {
  1309.                 $array_return['idLocalisation'] = $idLocalisation;
  1310.             }
  1311.         }
  1312.         
  1313.         return $this->render(
  1314.             'ouvrir_capital/fonds_investissement.html.twig',
  1315.             $array_return
  1316.             );
  1317.     }
  1318.     
  1319.     public function cvrepreneur(Request $requestPaginatorInterface $paginatorContainerBagInterface $containerLocalisationsManagers $localisationManagerAnnuairesManagers $annuairesManagerLocalisationsRepository $localisationsRepoTranslationExtension $translationExtensionParametresDiversRepository $parametresDiversRepo$type null$idLocalisation null$slug null$idSecteurActivite null$codePays): Response
  1320.     {
  1321.         $lang $request->getSession()->get('lang');
  1322.         $parametres $request->query->all();
  1323.         $is_recherche_by_localisation false;
  1324.         $metaTitle $metaDescription null;
  1325.         
  1326.         // Recherche standard
  1327.         if ($idLocalisation || $idSecteurActivite) {
  1328.             // Preparation des parametres
  1329.             if ($idLocalisation) {
  1330.                 if ($type == 'd') {
  1331.                     $parametres['id_departement'] = $idLocalisation;
  1332.                     $child_type null;
  1333.                     $parent_type "r";
  1334.                 } elseif ($type == "r") {
  1335.                     $parametres['id_region'] = $idLocalisation;
  1336.                     $child_type "d";
  1337.                     $parent_type "p";
  1338.                 } else {
  1339.                     $parametres['id_pays'] = $idLocalisation;
  1340.                     $child_type "r";
  1341.                     $parent_type null;
  1342.                 }
  1343.                 
  1344.                 $parametres ParametersProvider::prepareRechercheStandardParameters($parametres);
  1345.             }
  1346.             
  1347.             if ($idSecteurActivite) {
  1348.                 $parametres['id_secteur_activite'] = $idSecteurActivite;
  1349.                 $parametres ParametersProvider::prepareRechercheStandardParameters($parametres);
  1350.             }
  1351.             
  1352.             // Recherche par localisation
  1353.             if ($idLocalisation) {
  1354.                 $localisations $localisationManager->getLocalisationCompleteWithNavById($idLocalisation);
  1355.                 
  1356.                 if (!$localisations) {
  1357.                     $this->addFlash('error'$translationExtension->translate('erreur de localisation'$lang'''M'''));
  1358.                     return $this->redirectToRoute('vendre_entreprise_resultats_annonces_acquisition', ['codePays' => $codePays]);
  1359.                 }
  1360.                 
  1361.                 $villesRepo $this->getDoctrine()->getRepository(Villes::class);
  1362.                 $noms_ville $villesRepo->donne_string_noms_villes_principales_dune_localisation($idLocalisation);
  1363.                 
  1364.                 $sous_localisations $localisationsRepo->getSubLevelLocalisations($idLocalisation);
  1365.                 $sous_localisations_numbers = [];
  1366.                 $prev_localisation = [];
  1367.                 
  1368.                 foreach ($sous_localisations as $sous_localisation) {
  1369.                     $params = [];
  1370.                     
  1371.                     if ($idSecteurActivite) {
  1372.                         $params['id_secteur_activite'] = $idSecteurActivite;
  1373.                     }
  1374.                     
  1375.                     if ($type == "r") {
  1376.                         $params['id_departement'] = $sous_localisation['id_localisation'];
  1377.                     } else {
  1378.                         if ($idLocalisation == "99") {
  1379.                             $params['id_pays'] = $sous_localisation['id_localisation'];
  1380.                             $child_type "p";
  1381.                         } else {
  1382.                             $params['id_region'] = $sous_localisation['id_localisation'];
  1383.                         }
  1384.                     }
  1385.                     
  1386.                     $sous_localisation['type'] = $child_type;
  1387.                     $params ParametersProvider::prepareRechercheStandardParameters($params);
  1388.                     $annonces_numbers $this->getAnnoncesNumbers($params);
  1389.                     if ($idLocalisation == 99) {
  1390.                         if ($sous_localisation['nom_localisation'] != "Confidentiel" && $annonces_numbers['nb_repreneurs_investisseurs'] != 0) {
  1391.                             $sous_localisations_numbers[] = array_merge($sous_localisation$annonces_numbers);
  1392.                         }
  1393.                     } else {
  1394.                         if ($sous_localisation['nom_localisation'] != "Confidentiel" || $annonces_numbers['nb_repreneurs_investisseurs'] != 0) {
  1395.                             $sous_localisations_numbers[] = array_merge($sous_localisation$annonces_numbers);
  1396.                         }
  1397.                     }
  1398.                 }
  1399.                 
  1400.                 if (!$prev_localisation && $parent_type) {
  1401.                     $prev_localisation = isset($localisations[count($localisations) - 2]) ? $localisations[count($localisations) - 2] : null;
  1402.                     $prev_localisation['type'] = $parent_type;
  1403.                 }
  1404.                 
  1405.                 $last_localisation end($localisations);
  1406.                 $arrayVarsTrans['prefixe_localisation'] = $last_localisation['prefixe'];
  1407.                 $arrayVarsTrans['nom_localisation'] = strtoupper($last_localisation['nom_localisation']);
  1408.                 $metaTitle '%$nb_repreneurs_investisseurs%$ CV de $$repreneur investisseur$${p|repreneurs investisseurs} %$prefixe_localisation%$ %$nom_localisation%$';
  1409.                 $metaDescription 'consultez %$nb_repreneurs_investisseurs%$ CV de $$repreneur investisseur$${p|repreneurs investisseurs} %$prefixe_localisation%$ %$nom_localisation%$';
  1410.             }
  1411.             
  1412.             // Recherche par secteur d'activite
  1413.             if ($idSecteurActivite) {
  1414.                 $secteurActivites $this->sam->getTreeSecteursActivite($idSecteurActivite);
  1415.                 
  1416.                 if (!$secteurActivites) {
  1417.                     $this->addFlash('error'$translationExtension->translate("erreur de secteur d'activitĂ©"$lang'''M'''));
  1418.                     return $this->redirectToRoute('vendre_entreprise_resultats_annonces_acquisition', ['codePays' => $codePays]);
  1419.                 }
  1420.                 
  1421.                 $secteurActiviteRepo $this->getDoctrine()->getRepository(SecteursActivite::class);
  1422.                 
  1423.                 $sous_secteurs $secteurActiviteRepo->getAllSecteursActiviteEnfantByIdSecteurParent($idSecteurActivite);
  1424.                 $sous_secteurs_numbers = [];
  1425.                 $prev_secteur = [];
  1426.                 
  1427.                 foreach ($sous_secteurs as $sous_secteur) {
  1428.                     $params = [];
  1429.                     
  1430.                     $params['id_secteur_activite'] = $sous_secteur['idSecteurActivite'];
  1431.                     $params ParametersProvider::prepareRechercheStandardParameters($params);
  1432.                     $annonces_numbers $this->getAnnoncesNumbers($params);
  1433.                     
  1434.                     $sous_secteurs_numbers[] = array_merge($sous_secteur$annonces_numbers);
  1435.                 }
  1436.                 
  1437.                 if (!$prev_secteur) {
  1438.                     $prev_secteur = isset($secteurActivites[count($secteurActivites) - 2]) ? $secteurActivites[count($secteurActivites) - 2] : null;
  1439.                 }
  1440.                 
  1441.                 $last_secteur end($secteurActivites);
  1442.                 $arrayVarsTrans['nomPourTitle'] = $last_secteur->getNomPourTitle();
  1443.                 
  1444.                 // Si ce n'est pas une recherche croisĂ©e
  1445.                 if (!$idLocalisation) {
  1446.                     $metaTitle '%$nb_repreneurs_investisseurs%$ CV de $$repreneur investisseur$${p|repreneurs investisseurs} %$nomPourTitle%$';
  1447.                     $metaDescription 'consultez %$nb_repreneurs_investisseurs%$ CV de $$repreneur investisseur$${p|repreneurs investisseurs} %$nomPourTitle%$';
  1448.                 } else {
  1449.                     $metaTitle '%$nb_repreneurs_investisseurs%$ CV de $$repreneur investisseur$${p|repreneurs investisseurs} %$nomPourTitle%$ %$prefixe_localisation%$ %$nom_localisation%$';
  1450.                     $metaDescription 'consultez %$nb_repreneurs_investisseurs%$ CV de $$repreneur investisseur$${p|repreneurs investisseurs} %$nomPourTitle%$ %$prefixe_localisation%$ %$nom_localisation%$';
  1451.                 }
  1452.             }
  1453.             // Recherche avancĂ©e / dernières annonces
  1454.         } else {
  1455.             $parametres ParametersProvider::prepareRechercheAvanceeOuvrirCapitalParameters($parametres);
  1456.         }
  1457.         
  1458.         $is_recherche ParametersProvider::prepareRechercheAvanceeOuvrirCapitalParameters() !== ParametersProvider::prepareRechercheAvanceeOuvrirCapitalParameters($parametres);
  1459.         
  1460.         if (isset($parametres['id_localisation']) && $parametres['id_localisation'] != "") {
  1461.             $is_recherche_by_localisation true;
  1462.         }
  1463.         
  1464.         $string_params $string_params_without_page $this->serializeParams($parametres);
  1465.         
  1466.         // Si c'est une recherche, on calcule les nb Ă  afficher
  1467.         if ($is_recherche) {
  1468.             $repoAcheteur $this->getDoctrine()->getRepository(AnnoncesAcheteur::class);
  1469.             $repoAnnuaireRepreneur $this->getDoctrine()->getRepository(AnnuaireRepreneurs::class);
  1470.             $repoSociete $this->getDoctrine()->getRepository(Societes::class);
  1471.             $repoInvestisseursPrives $this->getDoctrine()->getRepository(InvestisseursPrives::class);
  1472.             
  1473.             $parametres['from_list'] = "acquereur_investisseur";
  1474.             $nb_acquereurs_investisseurs $repoAcheteur->donne_nb_annonces_achat($parametres);
  1475.             $parametres['from_list'] = "cv_repreneur_investisseur";
  1476.             $nb_repreneurs_investisseurs $repoAnnuaireRepreneur->donne_nb_cv_repreneurs($parametres);
  1477.             unset($parametres['from_list']);
  1478.             $nb_fonds_investissement $repoSociete->donne_nb_fonds_investissement($parametres);
  1479.             $nb_business_angel $repoInvestisseursPrives->donne_nb_investisseurs_prives($parametres);
  1480.             $nb_recherches_partenariats $repoAcheteur->donne_nb_annonces_achat_recherche_partenaire($parametres);
  1481.             
  1482.             $nb_annonces $nb_repreneurs_investisseurs $nb_business_angel $nb_acquereurs_investisseurs $nb_fonds_investissement $nb_recherches_partenariats;
  1483.         } else {
  1484.             // Sinon on rĂ©cupère les nb stockĂ©s dans parametres_divers
  1485.             $nb $parametresDiversRepo->getListNombresAafficher();
  1486.             
  1487.             $nb_acquereurs_investisseurs $nb->ouvrir_mon_capital_nb_acquereurs_investisseurs;
  1488.             $nb_repreneurs_investisseurs $nb->ouvrir_mon_capital_nb_cv_repreneurs_investisseurs;
  1489.             $nb_fonds_investissement $nb->ouvrir_mon_capital_nb_fonds_investissement;
  1490.             $nb_business_angel $nb->ouvrir_mon_capital_nb_business_angels;
  1491.             $nb_recherches_partenariats $nb->reprendre_une_entreprise_nb_recherches_de_partenariats;
  1492.             
  1493.             $nb_annonces $nb_repreneurs_investisseurs $nb_business_angel $nb_acquereurs_investisseurs $nb_fonds_investissement $nb_recherches_partenariats;
  1494.         }
  1495.         
  1496.         $nb_annonces $nb_repreneurs_investisseurs $nb_business_angel $nb_acquereurs_investisseurs $nb_fonds_investissement $nb_recherches_partenariats;
  1497.         
  1498.         $parametres['from_list'] = "cv_repreneur_investisseur";
  1499.         $liste_cvs $annuairesManager->getCVsRepreneursListBis($request$paginator$parametres);
  1500.         unset($parametres['from_list']);
  1501.         
  1502.         $tri = isset($parametres['tri']) ? $parametres['tri'] : null;
  1503.         
  1504.         $page $request->query->get('page');
  1505.         
  1506.         if ($page != null && $page != 1) {
  1507.             $string_params .= "&page=" $page;
  1508.         }
  1509.         
  1510.         $urlList $request->getPathInfo();
  1511.         
  1512.         $tri_default null;
  1513.         
  1514.         // Si aucun tri
  1515.         if (!$tri) {
  1516.             // On trie par pertinence s'il y a une localisation
  1517.             if ($is_recherche_by_localisation) {
  1518.                 $tri_default "pertinence";
  1519.             }
  1520.             // Sinon par CA si c'est une recherche
  1521.  
  1522.             else {
  1523.                 $tri_default "date_desc";
  1524.             }
  1525.         }
  1526.         
  1527.         // Si ce n'est pas une recherche par loc / sec ou croisĂ©
  1528.         if ($metaTitle == null && $metaTitle == null) {
  1529.             $metaTitle '%$nb_repreneurs_investisseurs%$ CV de $$repreneur investisseur$${p|repreneurs investisseurs}';
  1530.             $metaDescription 'consultez %$nb_repreneurs_investisseurs%$ CV de $$repreneur investisseur$${p|repreneurs investisseurs} en fonction de vos critères de recherche.';
  1531.         }
  1532.         
  1533.         $arrayVarsTrans['nb_repreneurs_investisseurs'] = $nb_repreneurs_investisseurs;
  1534.         
  1535.         if ($nb_repreneurs_investisseurs 1) {
  1536.             $p 'p';
  1537.         } else {
  1538.             $p '';
  1539.         }
  1540.         
  1541.         $metaTag $this->metaTag
  1542.         ->setTitle($translationExtension->translate($metaTitle$lang"""M"$p$arrayVarsTrans))
  1543.         ->setDescription($translationExtension->translate($metaDescription$lang"""M"$p$arrayVarsTrans))
  1544.         ->setRobots('noindex');
  1545.         
  1546.         $array_return = [
  1547.             'metaTag' => $metaTag,
  1548.             'nb_annonces' => $nb_annonces,
  1549.             'nb_fonds_investissement' => $nb_fonds_investissement,
  1550.             'nb_repreneurs_investisseurs' => $nb_repreneurs_investisseurs,
  1551.             'nb_business_angel' => $nb_business_angel,
  1552.             'nb_acquereurs_investisseurs' => $nb_acquereurs_investisseurs,
  1553.             'nb_recherches_partenariats' => $nb_recherches_partenariats,
  1554.             'liste_cvs' => $liste_cvs,
  1555.             'string_params' => $string_params,
  1556.             'string_params_without_page' => $string_params_without_page,
  1557.             'urlList' => $urlList,
  1558.             'idLocalisation' => null,
  1559.             'idSecteurActivite' => null,
  1560.             'tri_default' => $tri_default,
  1561.             'is_recherche_by_localisation' => $is_recherche_by_localisation,
  1562.             'tri' => $tri,
  1563.             'get' => isset($parametres['reference_mots_cles']) ? trim($parametres['reference_mots_cles']) : "_",
  1564.             'cdn_fusacq' => $container->get('app.CDN')['CDN_FUSACQ'],
  1565.         ];
  1566.         
  1567.         if ($idLocalisation || $idSecteurActivite) {
  1568.             if ($idLocalisation) {
  1569.                 $array_return['idLocalisation'] = $idLocalisation;
  1570.                 $array_return['idSecteurActivite'] = $idSecteurActivite $idSecteurActivite null;
  1571.                 $array_return['slug'] = $slug;
  1572.                 $array_return['type'] = $type;
  1573.                 $array_return['localisations'] = $localisations;
  1574.                 $array_return['noms_ville'] = $noms_ville;
  1575.                 $array_return['sous_localisations_numbers'] = $sous_localisations_numbers;
  1576.                 $array_return['prev_localisation'] = $prev_localisation;
  1577.             }
  1578.             
  1579.             if ($idSecteurActivite) {
  1580.                 $array_return['idSecteurActivite'] = $idSecteurActivite;
  1581.                 $array_return['idLocalisation'] = $idLocalisation $idLocalisation null;
  1582.                 $array_return['slug'] = $slug;
  1583.                 $array_return['secteurActivites'] = $secteurActivites;
  1584.                 $array_return['sous_secteurs_numbers'] = $sous_secteurs_numbers;
  1585.                 $array_return['prev_secteur'] = $prev_secteur;
  1586.             }
  1587.             
  1588.             if ($idLocalisation && $idSecteurActivite) {
  1589.                 $array_return['idLocalisation'] = $idLocalisation;
  1590.             }
  1591.         }
  1592.         
  1593.         return $this->render(
  1594.             'ouvrir_capital/cv_repreneur.html.twig',
  1595.             $array_return
  1596.             );
  1597.     }
  1598.     
  1599.     public function annonceacquisition(Request $requestPaginatorInterface $paginatorContainerBagInterface $containerLocalisationsManagers $localisationManagerLocalisationsRepository $localisationsRepoTranslationExtension $translationExtensionParametresDiversRepository $parametresDiversRepo$type null$idLocalisation null$slug null$idSecteurActivite null$codePays): Response
  1600.     {
  1601.         $lang $request->getSession()->get('lang');
  1602.         $parametres $request->query->all();
  1603.         $is_recherche_by_localisation false;
  1604.         $metaTitle $metaDescription null;
  1605.         
  1606.         // Recherche standard
  1607.         if ($idLocalisation || $idSecteurActivite) {
  1608.             // Preparation des parametres
  1609.             if ($idLocalisation) {
  1610.                 if ($type == 'd') {
  1611.                     $parametres['id_departement'] = $idLocalisation;
  1612.                     $child_type null;
  1613.                     $parent_type "r";
  1614.                 } elseif ($type == "r") {
  1615.                     $parametres['id_region'] = $idLocalisation;
  1616.                     $child_type "d";
  1617.                     $parent_type "p";
  1618.                 } else {
  1619.                     $parametres['id_pays'] = $idLocalisation;
  1620.                     $child_type "r";
  1621.                     $parent_type null;
  1622.                 }
  1623.                 
  1624.                 $parametres ParametersProvider::prepareRechercheStandardParameters($parametres);
  1625.             }
  1626.             
  1627.             if ($idSecteurActivite) {
  1628.                 $parametres['id_secteur_activite'] = $idSecteurActivite;
  1629.                 $parametres ParametersProvider::prepareRechercheStandardParameters($parametres);
  1630.             }
  1631.             
  1632.             // Recherche par localisation
  1633.             if ($idLocalisation) {
  1634.                 $localisations $localisationManager->getLocalisationCompleteWithNavById($idLocalisation);
  1635.                 
  1636.                 if (!$localisations) {
  1637.                     $this->addFlash('error'$translationExtension->translate('erreur de localisation'$lang'''M'''));
  1638.                     return $this->redirectToRoute('ouvrir_capital_resultats_annonces_acquisition', ['codePays' => $codePays]);
  1639.                 }
  1640.                 
  1641.                 $villesRepo $this->getDoctrine()->getRepository(Villes::class);
  1642.                 $noms_ville $villesRepo->donne_string_noms_villes_principales_dune_localisation($idLocalisation);
  1643.                 
  1644.                 $sous_localisations $localisationsRepo->getSubLevelLocalisations($idLocalisation);
  1645.                 $sous_localisations_numbers = [];
  1646.                 $prev_localisation = [];
  1647.                 
  1648.                 foreach ($sous_localisations as $sous_localisation) {
  1649.                     $params = [];
  1650.                     
  1651.                     if ($idSecteurActivite) {
  1652.                         $params['id_secteur_activite'] = $idSecteurActivite;
  1653.                     }
  1654.                     
  1655.                     if ($type == "r") {
  1656.                         $params['id_departement'] = $sous_localisation['id_localisation'];
  1657.                     } else {
  1658.                         if ($idLocalisation == "99") {
  1659.                             $params['id_pays'] = $sous_localisation['id_localisation'];
  1660.                             $child_type "p";
  1661.                         } else {
  1662.                             $params['id_region'] = $sous_localisation['id_localisation'];
  1663.                         }
  1664.                     }
  1665.                     
  1666.                     $sous_localisation['type'] = $child_type;
  1667.                     $params ParametersProvider::prepareRechercheStandardParameters($params);
  1668.                     $annonces_numbers $this->getAnnoncesNumbers($params);
  1669.                     if ($idLocalisation == 99) {
  1670.                         if ($sous_localisation['nom_localisation'] != "Confidentiel" && $annonces_numbers['nb_acquereurs_investisseurs'] != 0) {
  1671.                             $sous_localisations_numbers[] = array_merge($sous_localisation$annonces_numbers);
  1672.                         }
  1673.                     } else {
  1674.                         if ($sous_localisation['nom_localisation'] != "Confidentiel" || $annonces_numbers['nb_acquereurs_investisseurs'] != 0) {
  1675.                             $sous_localisations_numbers[] = array_merge($sous_localisation$annonces_numbers);
  1676.                         }
  1677.                     }
  1678.                 }
  1679.                 
  1680.                 if (!$prev_localisation && $parent_type) {
  1681.                     $prev_localisation = isset($localisations[count($localisations) - 2]) ? $localisations[count($localisations) - 2] : null;
  1682.                     $prev_localisation['type'] = $parent_type;
  1683.                 }
  1684.                 
  1685.                 $last_localisation end($localisations);
  1686.                 $arrayVarsTrans['prefixe_localisation'] = $last_localisation['prefixe'];
  1687.                 $arrayVarsTrans['nom_localisation'] = strtoupper($last_localisation['nom_localisation']);
  1688.                 $metaTitle '%$nb_acquereurs_investisseurs%$ $$annonce d\'acquisition$${p|annonces d\'acquisition} %$prefixe_localisation%$ %$nom_localisation%$';
  1689.                 $metaDescription 'consultez %$nb_acquereurs_investisseurs%$ $$annonce d\'acquisition$${p|annonces d\'acquisition} %$prefixe_localisation%$ %$nom_localisation%$';
  1690.             }
  1691.             
  1692.             // Recherche par secteur d'activite
  1693.             if ($idSecteurActivite) {
  1694.                 $secteurActivites $this->sam->getTreeSecteursActivite($idSecteurActivite);
  1695.                 
  1696.                 if (!$secteurActivites) {
  1697.                     $this->addFlash('error'$translationExtension->translate("erreur de secteur d'activitĂ©"$lang'''M'''));
  1698.                     return $this->redirectToRoute('ouvrir_capital_resultats_annonces_acquisition', ['codePays' => $codePays]);
  1699.                 }
  1700.                 
  1701.                 $secteurActiviteRepo $this->getDoctrine()->getRepository(SecteursActivite::class);
  1702.                 
  1703.                 $sous_secteurs $secteurActiviteRepo->getAllSecteursActiviteEnfantByIdSecteurParent($idSecteurActivite);
  1704.                 $sous_secteurs_numbers = [];
  1705.                 $prev_secteur = [];
  1706.                 
  1707.                 foreach ($sous_secteurs as $sous_secteur) {
  1708.                     $params = [];
  1709.                     
  1710.                     $params['id_secteur_activite'] = $sous_secteur['idSecteurActivite'];
  1711.                     $params ParametersProvider::prepareRechercheStandardParameters($params);
  1712.                     $annonces_numbers $this->getAnnoncesNumbers($params);
  1713.                     
  1714.                     $sous_secteurs_numbers[] = array_merge($sous_secteur$annonces_numbers);
  1715.                 }
  1716.                 
  1717.                 if (!$prev_secteur) {
  1718.                     $prev_secteur = isset($secteurActivites[count($secteurActivites) - 2]) ? $secteurActivites[count($secteurActivites) - 2] : null;
  1719.                 }
  1720.                 
  1721.                 $last_secteur end($secteurActivites);
  1722.                 $arrayVarsTrans['nomPourTitle'] = $last_secteur->getNomPourTitle();
  1723.                 
  1724.                 // Si ce n'est pas une recherche croisĂ©e
  1725.                 if (!$idLocalisation) {
  1726.                     $metaTitle '%$nb_acquereurs_investisseurs%$ $$annonce d\'acquisition$${p|annonces d\'acquisition} %$nomPourTitle%$';
  1727.                     $metaDescription 'consultez %$nb_acquereurs_investisseurs%$ $$annonce d\'acquisition$${p|annonces d\'acquisition} %$nomPourTitle%$';
  1728.                 } else {
  1729.                     $metaTitle '%$nb_acquereurs_investisseurs%$ $$annonce d\'acquisition$${p|annonces d\'acquisition} %$nomPourTitle%$ %$prefixe_localisation%$ %$nom_localisation%$';
  1730.                     $metaDescription 'consultez %$nb_acquereurs_investisseurs%$ $$annonce d\'acquisition$${p|annonces d\'acquisition} %$nomPourTitle%$ %$prefixe_localisation%$ %$nom_localisation%$';
  1731.                 }
  1732.             }
  1733.             // Recherche avancĂ©e / dernières annonces
  1734.         } else {
  1735.             $parametres ParametersProvider::prepareRechercheAvanceeOuvrirCapitalParameters($parametres);
  1736.         }
  1737.         
  1738.         $is_recherche ParametersProvider::prepareRechercheAvanceeOuvrirCapitalParameters() !== ParametersProvider::prepareRechercheAvanceeOuvrirCapitalParameters($parametres);
  1739.         
  1740.         if (isset($parametres['id_localisation']) && $parametres['id_localisation'] != "") {
  1741.             $is_recherche_by_localisation true;
  1742.         }
  1743.         
  1744.         $string_params $string_params_without_page $this->serializeParams($parametres);
  1745.         $repoAcheteur $this->getDoctrine()->getRepository(AnnoncesAcheteur::class);
  1746.         
  1747.         // Si c'est une recherche, on calcule les nb Ă  afficher
  1748.         if ($is_recherche) {
  1749.             $repoAnnuaireRepreneur $this->getDoctrine()->getRepository(AnnuaireRepreneurs::class);
  1750.             $repoSociete $this->getDoctrine()->getRepository(Societes::class);
  1751.             $repoInvestisseursPrives $this->getDoctrine()->getRepository(InvestisseursPrives::class);
  1752.             
  1753.             $parametres['from_list'] = "acquereur_investisseur";
  1754.             $nb_acquereurs_investisseurs $repoAcheteur->donne_nb_annonces_achat($parametres);
  1755.             $parametres['from_list'] = "cv_repreneur_investisseur";
  1756.             $nb_repreneurs_investisseurs $repoAnnuaireRepreneur->donne_nb_cv_repreneurs($parametres);
  1757.             $nb_fonds_investissement $repoSociete->donne_nb_fonds_investissement($parametres);
  1758.             $nb_business_angel $repoInvestisseursPrives->donne_nb_investisseurs_prives($parametres);
  1759.             $nb_recherches_partenariats $repoAcheteur->donne_nb_annonces_achat_recherche_partenaire($parametres);
  1760.             
  1761.             $nb_annonces $nb_repreneurs_investisseurs $nb_business_angel $nb_acquereurs_investisseurs $nb_fonds_investissement $nb_recherches_partenariats;
  1762.         } else {
  1763.             // Sinon on rĂ©cupère les nb stockĂ©s dans parametres_divers
  1764.             $nb $parametresDiversRepo->getListNombresAafficher();
  1765.             
  1766.             $nb_acquereurs_investisseurs $nb->ouvrir_mon_capital_nb_acquereurs_investisseurs;
  1767.             $nb_repreneurs_investisseurs $nb->ouvrir_mon_capital_nb_cv_repreneurs_investisseurs;
  1768.             $nb_fonds_investissement $nb->ouvrir_mon_capital_nb_fonds_investissement;
  1769.             $nb_business_angel $nb->ouvrir_mon_capital_nb_business_angels;
  1770.             $nb_recherches_partenariats $nb->reprendre_une_entreprise_nb_recherches_de_partenariats;
  1771.             
  1772.             $nb_annonces $nb_repreneurs_investisseurs $nb_business_angel $nb_acquereurs_investisseurs $nb_fonds_investissement $nb_recherches_partenariats;
  1773.         }
  1774.         
  1775.         $user $this->getUser();
  1776.         $login_utilisateur = isset($user) ? $user->_get('login_utilisateur') : null;
  1777.         $dernieresAnnonces $request->query->get('dernieresAnnonces');
  1778.         
  1779.         $parametres['from_list'] = "acquereur_investisseur";
  1780.         
  1781.         $nb_total_annonces_prioritaires $repoAcheteur->donne_nb_annonces_acheteur_prioritaires($parametres'nombre');
  1782.         
  1783.         $liste_annonces_prioritaires = [];
  1784.         
  1785.         if ((null == $request->get('page') || == $request->get('page')) && (!isset($_GET['tri']) || null == $_GET['tri'] || '21' == $_GET['tri'] || '' == $_GET['tri']) && $dernieresAnnonces == null) {
  1786.             $liste_annonces_prioritaires $this->am->getAnnoncesPrioritairesAcquisition($parametres'entreprise'$login_utilisateur);
  1787.         }
  1788.         
  1789.         $liste_annonces $this->am->getAnnoncesAcquisitionList($request$paginator$parametres'entreprise'$login_utilisateur);
  1790.         
  1791.         $page $request->query->get('page');
  1792.         
  1793.         if ($page != null && $page != 1) {
  1794.             $string_params .= "&page=" $page;
  1795.         }
  1796.         
  1797.         $tri = isset($parametres['tri']) ? $parametres['tri'] : null;
  1798.         $urlList $request->getPathInfo();
  1799.         
  1800.         $tri_default null;
  1801.         
  1802.         // Si aucun tri
  1803.         if (!$tri) {
  1804.             // On trie par pertinence s'il y a une localisation
  1805.             if ($is_recherche_by_localisation) {
  1806.                 $tri_default "pertinence";
  1807.             }
  1808.             // Sinon par CA si c'est une recherche
  1809.             elseif ($is_recherche) {
  1810.                 $tri_default "ca_desc";
  1811.             } else {
  1812.                 $tri_default "date_desc";
  1813.             }
  1814.         }
  1815.         
  1816.         // Si ce n'est pas une recherche par loc / sec ou croisĂ©
  1817.         if ($metaTitle == null && $metaTitle == null) {
  1818.             $metaTitle '%$nb_acquereurs_investisseurs%$ $$annonce d\'acquisition$${p|annonces d\'acquisition}';
  1819.             $metaDescription 'consultez %$nb_acquereurs_investisseurs%$ $$annonce d\'acquisition$${p|annonces d\'acquisition} en fonction de vos critères de recherche.';
  1820.         }
  1821.         
  1822.         $arrayVarsTrans['nb_acquereurs_investisseurs'] = $nb_acquereurs_investisseurs;
  1823.         
  1824.         if ($nb_acquereurs_investisseurs 1) {
  1825.             $p 'p';
  1826.         } else {
  1827.             $p '';
  1828.         }
  1829.         
  1830.         $metaTag $this->metaTag
  1831.         ->setTitle($translationExtension->translate($metaTitle$lang"""M"$p$arrayVarsTrans))
  1832.         ->setDescription($translationExtension->translate($metaDescription$lang"""M"$p$arrayVarsTrans))
  1833.         ->setRobots('noindex');
  1834.         
  1835.         $array_return = [
  1836.             'metaTag' => $metaTag,
  1837.             'nb_annonces' => $nb_annonces,
  1838.             'nb_fonds_investissement' => $nb_fonds_investissement,
  1839.             'nb_repreneurs_investisseurs' => $nb_repreneurs_investisseurs,
  1840.             'nb_business_angel' => $nb_business_angel,
  1841.             'nb_acquereurs_investisseurs' => $nb_acquereurs_investisseurs,
  1842.             'nb_recherches_partenariats' => $nb_recherches_partenariats,
  1843.             'liste_annonces_prioritaires' => $liste_annonces_prioritaires,
  1844.             'liste_annonces' => $liste_annonces,
  1845.             'nb_total_annonces_prioritaires' => $nb_total_annonces_prioritaires,
  1846.             'string_params' => $string_params,
  1847.             'string_params_without_page' => $string_params_without_page,
  1848.             'tri' => $tri,
  1849.             'urlList' => $urlList,
  1850.             'idLocalisation' => null,
  1851.             'idSecteurActivite' => null,
  1852.             'tri_default' => $tri_default,
  1853.             'is_recherche_by_localisation' => $is_recherche_by_localisation,
  1854.             'cdn_fusacq' => $container->get('app.CDN')['CDN_FUSACQ'],
  1855.         ];
  1856.         
  1857.         if ($idLocalisation || $idSecteurActivite) {
  1858.             if ($idLocalisation) {
  1859.                 $array_return['idLocalisation'] = $idLocalisation;
  1860.                 $array_return['idSecteurActivite'] = $idSecteurActivite $idSecteurActivite null;
  1861.                 $array_return['slug'] = $slug;
  1862.                 $array_return['type'] = $type;
  1863.                 $array_return['localisations'] = $localisations;
  1864.                 $array_return['noms_ville'] = $noms_ville;
  1865.                 $array_return['sous_localisations_numbers'] = $sous_localisations_numbers;
  1866.                 $array_return['prev_localisation'] = $prev_localisation;
  1867.             }
  1868.             
  1869.             if ($idSecteurActivite) {
  1870.                 $array_return['idSecteurActivite'] = $idSecteurActivite;
  1871.                 $array_return['idLocalisation'] = $idLocalisation $idLocalisation null;
  1872.                 $array_return['slug'] = $slug;
  1873.                 $array_return['secteurActivites'] = $secteurActivites;
  1874.                 $array_return['sous_secteurs_numbers'] = $sous_secteurs_numbers;
  1875.                 $array_return['prev_secteur'] = $prev_secteur;
  1876.             }
  1877.             
  1878.             if ($idLocalisation && $idSecteurActivite) {
  1879.                 $array_return['idLocalisation'] = $idLocalisation;
  1880.             }
  1881.         }
  1882.         
  1883.         return $this->render(
  1884.             'ouvrir_capital/annonce_acquisition.html.twig',
  1885.             $array_return
  1886.             );
  1887.     }
  1888.     
  1889.     public function businessangel(Request $requestPaginatorInterface $paginatorLocalisationsManagers $localisationManagerLocalisationsRepository $localisationsRepoTranslationExtension $translationExtensionParametresDiversRepository $parametresDiversRepo$type null$idLocalisation null$slug null$idSecteurActivite null$codePays): Response
  1890.     {
  1891.         $lang $request->getSession()->get('lang');
  1892.         $parametres $request->query->all();
  1893.         $is_recherche_by_localisation false;
  1894.         $metaTitle $metaDescription null;
  1895.         
  1896.         // Recherche standard
  1897.         if ($idLocalisation || $idSecteurActivite) {
  1898.             // Preparation des parametres
  1899.             if ($idLocalisation) {
  1900.                 if ($type == 'd') {
  1901.                     $parametres['id_departement'] = $idLocalisation;
  1902.                     $child_type null;
  1903.                     $parent_type "r";
  1904.                 } elseif ($type == "r") {
  1905.                     $parametres['id_region'] = $idLocalisation;
  1906.                     $child_type "d";
  1907.                     $parent_type "p";
  1908.                 } else {
  1909.                     $parametres['id_pays'] = $idLocalisation;
  1910.                     $child_type "r";
  1911.                     $parent_type null;
  1912.                 }
  1913.                 
  1914.                 $parametres ParametersProvider::prepareRechercheStandardParameters($parametres);
  1915.             }
  1916.             
  1917.             if ($idSecteurActivite) {
  1918.                 $parametres['id_secteur_activite'] = $idSecteurActivite;
  1919.                 $parametres ParametersProvider::prepareRechercheStandardParameters($parametres);
  1920.             }
  1921.             
  1922.             // Recherche par localisation
  1923.             if ($idLocalisation) {
  1924.                 $localisations $localisationManager->getLocalisationCompleteWithNavById($idLocalisation);
  1925.                 
  1926.                 if (!$localisations) {
  1927.                     $this->addFlash('error'$translationExtension->translate('erreur de localisation'$lang'''M'''));
  1928.                     return $this->redirectToRoute('ouvrir_capital_resultats_business_angel', ['codePays' => $codePays]);
  1929.                 }
  1930.                 
  1931.                 $villesRepo $this->getDoctrine()->getRepository(Villes::class);
  1932.                 $noms_ville $villesRepo->donne_string_noms_villes_principales_dune_localisation($idLocalisation);
  1933.                 
  1934.                 $sous_localisations $localisationsRepo->getSubLevelLocalisations($idLocalisation);
  1935.                 $sous_localisations_numbers = [];
  1936.                 $prev_localisation = [];
  1937.                 
  1938.                 foreach ($sous_localisations as $sous_localisation) {
  1939.                     $params = [];
  1940.                     
  1941.                     if ($idSecteurActivite) {
  1942.                         $params['id_secteur_activite'] = $idSecteurActivite;
  1943.                     }
  1944.                     
  1945.                     if ($type == "r") {
  1946.                         $params['id_departement'] = $sous_localisation['id_localisation'];
  1947.                     } else {
  1948.                         if ($idLocalisation == "99") {
  1949.                             $params['id_pays'] = $sous_localisation['id_localisation'];
  1950.                             $child_type "p";
  1951.                         } else {
  1952.                             $params['id_region'] = $sous_localisation['id_localisation'];
  1953.                         }
  1954.                     }
  1955.                     
  1956.                     $sous_localisation['type'] = $child_type;
  1957.                     $params ParametersProvider::prepareRechercheStandardParameters($params);
  1958.                     $annonces_numbers $this->getAnnoncesNumbers($params);
  1959.                     
  1960.                     if ($idLocalisation == 99) {
  1961.                         if ($sous_localisation['nom_localisation'] != "Confidentiel" && $annonces_numbers['nb_business_angel'] != 0) {
  1962.                             $sous_localisations_numbers[] = array_merge($sous_localisation$annonces_numbers);
  1963.                         }
  1964.                     } else {
  1965.                         if ($sous_localisation['nom_localisation'] != "Confidentiel" || $annonces_numbers['nb_business_angel'] != 0) {
  1966.                             $sous_localisations_numbers[] = array_merge($sous_localisation$annonces_numbers);
  1967.                         }
  1968.                     }
  1969.                 }
  1970.                 
  1971.                 if (!$prev_localisation && $parent_type) {
  1972.                     $prev_localisation = isset($localisations[count($localisations) - 2]) ? $localisations[count($localisations) - 2] : null;
  1973.                     $prev_localisation['type'] = $parent_type;
  1974.                 }
  1975.                 
  1976.                 $last_localisation end($localisations);
  1977.                 $arrayVarsTrans['prefixe_localisation'] = $last_localisation['prefixe'];
  1978.                 $arrayVarsTrans['nom_localisation'] = strtoupper($last_localisation['nom_localisation']);
  1979.                 $metaTitle '%$nb_business_angel%$ $$Business Angel$${p|Business Angels} %$prefixe_localisation%$ %$nom_localisation%$';
  1980.                 $metaDescription 'consultez %$nb_business_angel%$ $$Business Angel$${p|Business Angels} %$prefixe_localisation%$ %$nom_localisation%$';
  1981.             }
  1982.             
  1983.             // Recherche par secteur d'activite
  1984.             if ($idSecteurActivite) {
  1985.                 $secteurActivites $this->sam->getTreeSecteursActivite($idSecteurActivite);
  1986.                 
  1987.                 if (!$secteurActivites) {
  1988.                     $this->addFlash('error'$translationExtension->translate("erreur de secteur d'activitĂ©"$lang'''M'''));
  1989.                     return $this->redirectToRoute('ouvrir_capital_resultats_business_angel', ['codePays' => $codePays]);
  1990.                 }
  1991.                 
  1992.                 $secteurActiviteRepo $this->getDoctrine()->getRepository(SecteursActivite::class);
  1993.                 
  1994.                 $sous_secteurs $secteurActiviteRepo->getAllSecteursActiviteEnfantByIdSecteurParent($idSecteurActivite);
  1995.                 $sous_secteurs_numbers = [];
  1996.                 $prev_secteur = [];
  1997.                 
  1998.                 foreach ($sous_secteurs as $sous_secteur) {
  1999.                     $params = [];
  2000.                     
  2001.                     $params['id_secteur_activite'] = $sous_secteur['idSecteurActivite'];
  2002.                     $params ParametersProvider::prepareRechercheStandardParameters($params);
  2003.                     $annonces_numbers $this->getAnnoncesNumbers($params);
  2004.                     
  2005.                     $sous_secteurs_numbers[] = array_merge($sous_secteur$annonces_numbers);
  2006.                 }
  2007.                 
  2008.                 if (!$prev_secteur) {
  2009.                     $prev_secteur = isset($secteurActivites[count($secteurActivites) - 2]) ? $secteurActivites[count($secteurActivites) - 2] : null;
  2010.                 }
  2011.                 
  2012.                 $last_secteur end($secteurActivites);
  2013.                 $arrayVarsTrans['nomPourTitle'] = $last_secteur->getNomPourTitle();
  2014.                 
  2015.                 // Si ce n'est pas une recherche croisĂ©e
  2016.                 if (!$idLocalisation) {
  2017.                     $metaTitle '%$nb_business_angel%$ $$Business Angel$${p|Business Angels} %$nomPourTitle%$';
  2018.                     $metaDescription 'consultez %$nb_business_angel%$ $$Business Angel$${p|Business Angels} %$nomPourTitle%$';
  2019.                 } else {
  2020.                     $metaTitle '%$nb_business_angel%$ $$Business Angel$${p|Business Angels} %$nomPourTitle%$ %$prefixe_localisation%$ %$nom_localisation%$';
  2021.                     $metaDescription 'consultez %$nb_business_angel%$ $$Business Angel$${p|Business Angels} %$nomPourTitle%$ %$prefixe_localisation%$ %$nom_localisation%$';
  2022.                 }
  2023.             }
  2024.             // Recherche avancĂ©e / dernières annonces
  2025.         } else {
  2026.             $parametres ParametersProvider::prepareRechercheAvanceeOuvrirCapitalParameters($parametres);
  2027.         }
  2028.         
  2029.         $is_recherche ParametersProvider::prepareRechercheAvanceeOuvrirCapitalParameters() !== ParametersProvider::prepareRechercheAvanceeOuvrirCapitalParameters($parametres);
  2030.         
  2031.         if (isset($parametres['id_localisation']) && $parametres['id_localisation'] != "") {
  2032.             $is_recherche_by_localisation true;
  2033.         }
  2034.         
  2035.         $string_params $string_params_without_page $this->serializeParams($parametres);
  2036.         
  2037.         // Si c'est une recherche, on calcule les nb Ă  afficher
  2038.         if ($is_recherche) {
  2039.             $repoAcheteur $this->getDoctrine()->getRepository(AnnoncesAcheteur::class);
  2040.             $repoAnnuaireRepreneur $this->getDoctrine()->getRepository(AnnuaireRepreneurs::class);
  2041.             $repoSociete $this->getDoctrine()->getRepository(Societes::class);
  2042.             $repoInvestisseursPrives $this->getDoctrine()->getRepository(InvestisseursPrives::class);
  2043.             
  2044.             $parametres['from_list'] = "acquereur_investisseur";
  2045.             $nb_acquereurs_investisseurs $repoAcheteur->donne_nb_annonces_achat($parametres);
  2046.             $parametres['from_list'] = "cv_repreneur_investisseur";
  2047.             $nb_repreneurs_investisseurs $repoAnnuaireRepreneur->donne_nb_cv_repreneurs($parametres);
  2048.             $nb_fonds_investissement $repoSociete->donne_nb_fonds_investissement($parametres);
  2049.             $nb_business_angel $repoInvestisseursPrives->donne_nb_investisseurs_prives($parametres);
  2050.             $nb_recherches_partenariats $repoAcheteur->donne_nb_annonces_achat_recherche_partenaire($parametres);
  2051.             
  2052.             $nb_annonces $nb_repreneurs_investisseurs $nb_business_angel $nb_acquereurs_investisseurs $nb_fonds_investissement $nb_recherches_partenariats;
  2053.         } else {
  2054.             // Sinon on rĂ©cupère les nb stockĂ©s dans parametres_divers
  2055.             $nb $parametresDiversRepo->getListNombresAafficher();
  2056.             
  2057.             $nb_acquereurs_investisseurs $nb->ouvrir_mon_capital_nb_acquereurs_investisseurs;
  2058.             $nb_repreneurs_investisseurs $nb->ouvrir_mon_capital_nb_cv_repreneurs_investisseurs;
  2059.             $nb_fonds_investissement $nb->ouvrir_mon_capital_nb_fonds_investissement;
  2060.             $nb_business_angel $nb->ouvrir_mon_capital_nb_business_angels;
  2061.             $nb_recherches_partenariats $nb->reprendre_une_entreprise_nb_recherches_de_partenariats;
  2062.             
  2063.             $nb_annonces $nb_repreneurs_investisseurs $nb_business_angel $nb_acquereurs_investisseurs $nb_fonds_investissement $nb_recherches_partenariats;
  2064.         }
  2065.         
  2066.         $liste_business_angel $this->bam->getBusinessAngelList($request$paginator$parametres);
  2067.         
  2068.         $page $request->query->get('page');
  2069.         
  2070.         if ($page != null && $page != 1) {
  2071.             $string_params .= "&page=" $page;
  2072.         }
  2073.         
  2074.         $tri = isset($parametres['tri']) ? $parametres['tri'] : null;
  2075.         
  2076.         $urlList $request->getPathInfo();
  2077.         
  2078.         // cookie business angel
  2079.         $showedExplanationBusinessAngel $request->cookies->get("showedExplanationBusinessAngel");
  2080.         
  2081.         if (!$showedExplanationBusinessAngel) {
  2082.             setcookie('showedExplanationBusinessAngel'truetime() + 60 60 24 365);
  2083.             $show_modal true;
  2084.         } else {
  2085.             $show_modal false;
  2086.         }
  2087.         
  2088.         $tri_default null;
  2089.         
  2090.         // Si aucun tri
  2091.         if (!$tri) {
  2092.             if ($is_recherche) {
  2093.                 $tri_default "ca_desc";
  2094.             } else {
  2095.                 $tri_default "date_desc";
  2096.             }
  2097.         }
  2098.         
  2099.         // Si ce n'est pas une recherche par loc / sec ou croisĂ©
  2100.         if ($metaTitle == null && $metaTitle == null) {
  2101.             $metaTitle '%$nb_business_angel%$ $$Business Angel$${p|Business Angels}';
  2102.             $metaDescription 'consultez %$nb_business_angel%$ $$Business Angel$${p|Business Angels} en fonction de vos critères de recherche.';
  2103.         }
  2104.         
  2105.         $arrayVarsTrans['nb_business_angel'] = $nb_business_angel;
  2106.         
  2107.         if ($nb_business_angel 1) {
  2108.             $p 'p';
  2109.         } else {
  2110.             $p '';
  2111.         }
  2112.         
  2113.         $metaTag $this->metaTag
  2114.         ->setTitle($translationExtension->translate($metaTitle$lang"""M"$p$arrayVarsTrans))
  2115.         ->setDescription($translationExtension->translate($metaDescription$lang"""M"$p$arrayVarsTrans))
  2116.         ->setRobots('noindex');
  2117.         
  2118.         $array_return = [
  2119.             'metaTag' => $metaTag,
  2120.             'nb_annonces' => $nb_annonces,
  2121.             'nb_fonds_investissement' => $nb_fonds_investissement,
  2122.             'nb_repreneurs_investisseurs' => $nb_repreneurs_investisseurs,
  2123.             'nb_business_angel' => $nb_business_angel,
  2124.             'nb_acquereurs_investisseurs' => $nb_acquereurs_investisseurs,
  2125.             'nb_recherches_partenariats' => $nb_recherches_partenariats,
  2126.             'liste_business_angel' => $liste_business_angel,
  2127.             'string_params' => $string_params,
  2128.             'string_params_without_page' => $string_params_without_page,
  2129.             'tri' => $tri,
  2130.             'urlList' => $urlList,
  2131.             'show_modal' => $show_modal,
  2132.             'idLocalisation' => null,
  2133.             'idSecteurActivite' => null,
  2134.             'tri_default' => $tri_default,
  2135.             'is_recherche_by_localisation' => $is_recherche_by_localisation
  2136.         ];
  2137.         
  2138.         if ($idLocalisation || $idSecteurActivite) {
  2139.             if ($idLocalisation) {
  2140.                 $array_return['idLocalisation'] = $idLocalisation;
  2141.                 $array_return['idSecteurActivite'] = $idSecteurActivite $idSecteurActivite null;
  2142.                 $array_return['slug'] = $slug;
  2143.                 $array_return['type'] = $type;
  2144.                 $array_return['localisations'] = $localisations;
  2145.                 $array_return['noms_ville'] = $noms_ville;
  2146.                 $array_return['sous_localisations_numbers'] = $sous_localisations_numbers;
  2147.                 $array_return['prev_localisation'] = $prev_localisation;
  2148.             }
  2149.             
  2150.             if ($idSecteurActivite) {
  2151.                 $array_return['idSecteurActivite'] = $idSecteurActivite;
  2152.                 $array_return['idLocalisation'] = $idLocalisation $idLocalisation null;
  2153.                 $array_return['slug'] = $slug;
  2154.                 $array_return['secteurActivites'] = $secteurActivites;
  2155.                 $array_return['sous_secteurs_numbers'] = $sous_secteurs_numbers;
  2156.                 $array_return['prev_secteur'] = $prev_secteur;
  2157.             }
  2158.             
  2159.             if ($idLocalisation && $idSecteurActivite) {
  2160.                 $array_return['idLocalisation'] = $idLocalisation;
  2161.             }
  2162.         }
  2163.         
  2164.         return $this->render(
  2165.             'ouvrir_capital/business_angel.html.twig',
  2166.             $array_return
  2167.             );
  2168.     }
  2169.     
  2170.     public function detailbusinessangel(Request $requestInvestisseursPrivesRepository $investisseurRepoLocalisationsManagers $localisationManagerTranslationExtension $translationExtensionCommandesRepository $commandesRepository$idInvestisseurPrive$codePays): Response    {
  2171.         $lang $request->getSession()->get('lang');
  2172.         $parametres $request->query->all();
  2173.         $parametres ParametersProvider::prepareRechercheAvanceeOuvrirCapitalParameters($parametres);
  2174.         $string_params $string_params_without_page $this->serializeParams($parametres);
  2175.         
  2176.         $business_angel $investisseurRepo->findOneBy(['id_investisseur' => $idInvestisseurPrive'mode' => 'publique']);
  2177.         
  2178.         if (!$business_angel) {
  2179.             $this->addFlash('error'$translationExtension->translate("une erreur s'est produite, veuillez rĂ©essayer"$lang'''M'''));
  2180.             return $this->redirectToRoute('ouvrir_capital_resultats_business_angel', ['codePays' => $codePays]);
  2181.         }
  2182.         
  2183.         $tab_commande_ba = [];
  2184.         
  2185.         // On rĂ©cupère la liste des investisseurs privĂ©s commandĂ©s par l'utilisateur
  2186.         if ($this->getUser()) {
  2187.             $idUtilisateur $this->getUser()->_get('id_utilisateur');
  2188.             $userCommandes $commandesRepository->getUserCommandesAnnuaireBusinessAngel($idUtilisateur);
  2189.             $string_id_investisseur "";
  2190.             
  2191.             foreach ($userCommandes as $commande) {
  2192.                 $string_id_investisseur .= $commande->_get('liste_investisseurs');
  2193.             }
  2194.             
  2195.             $tab_commande_ba array_filter(explode(","$string_id_investisseur));
  2196.         }
  2197.        
  2198.         $business_angel->nom_affichage $business_angel->_get('titre_investisseur');
  2199.         $deja_commande false;
  2200.         
  2201.         if ($tab_commande_ba) {
  2202.             if (in_array($business_angel->_get('id_investisseur'), $tab_commande_ba)) {
  2203.                 $business_angel->nom_affichage ucfirst($business_angel->_get('prenom_contact')) . ' ' ucfirst($business_angel->_get('nom_contact')) . ' - ' $business_angel->_get('titre_investisseur');
  2204.                 $deja_commande true;
  2205.             }
  2206.         }
  2207.         
  2208.         $id_secteurs_activite array_filter(explode(','$business_angel->_get('id_secteurs_activite')));
  2209.         $secteurs_activite = [];
  2210.         
  2211.         foreach ($id_secteurs_activite as $id_secteur) {
  2212.             $secteurs_activite[] = $this->sam->getNomSecteurActiviteFondsById($id_secteur);
  2213.         }
  2214.         
  2215.         $id_localisations_recherchees array_filter(explode(','$business_angel->_get('id_localisations_recherchees')));
  2216.         $localisations_recherchees = [];
  2217.         
  2218.         foreach ($id_localisations_recherchees as $id_localisation_recherchee) {
  2219.             $localisations_recherchees[] = $this->lm->getStringNomLocalisationById($id_localisation_recherchee);
  2220.         }
  2221.         $index $request->query->get('index');
  2222.         $page = (int) $request->query->get('page'1);
  2223.         
  2224.         if ($page 1) {
  2225.             $string_params .= "&page=" $page;
  2226.         }
  2227.         
  2228.         $urlList $request->query->get('urlList');
  2229.         $urlRetourList $urlList $urlList '?' $string_params null;
  2230.         
  2231.         $previousAnnonce $this->bam->getIndexNAnnonceFromBusinessAngelList($parametres""$page$index 1);
  2232.         $nextAnnonce $this->bam->getIndexNAnnonceFromBusinessAngelList($parametres""$page$index 1);
  2233.         
  2234.         return $this->render(
  2235.             'ouvrir_capital/detail_business_angel.html.twig',
  2236.             [
  2237.                 'business_angel' => $business_angel,
  2238.                 'secteurs_activite' => $secteurs_activite,
  2239.                 'localisations_recherchees' => $localisations_recherchees,
  2240.                 'string_params' => $string_params,
  2241.                 'string_params_without_page' => $string_params_without_page,
  2242.                 'previousAnnonce' => $previousAnnonce,
  2243.                 'nextAnnonce' => $nextAnnonce,
  2244.                 'urlList' => $urlList,
  2245.                 'urlRetourList' => $urlRetourList,
  2246.                 'string_params' => $string_params,
  2247.                 'index' => $index,
  2248.                 'indexPrevious' => $index 1,
  2249.                 'indexNext' => $index 1,
  2250.                 'deja_commande' => $deja_commande
  2251.             ]
  2252.             );
  2253.     }
  2254.     
  2255.     
  2256.     public function redirectionfonds(Request $request): Response
  2257.     {
  2258.         $onglet null !== $request->get('onglet') ? $request->get('onglet') : null;
  2259.         $idFonds $request->get('idFonds');
  2260.         $codePays $request->get('codePays');
  2261.         $request->from "ouvrir-capital";
  2262.         $pageInvest $request->get('pageInvest'1);
  2263.         $pageActu $request->get('pageActu'1);
  2264.         
  2265.         switch ($onglet) {
  2266.             case 1:
  2267.                 return $this->forward('App\Controller\AnnuaireFondsInvestissementController::strategieinvestissement', ['idFonds' => $idFonds'codePays' => $codePays'request' => $request]);
  2268.                 break;
  2269.             case 2:
  2270.                 return $this->forward('App\Controller\AnnuaireFondsInvestissementController::criteresinvestissement', ['idFonds' => $idFonds'codePays' => $codePays'request' => $request]);
  2271.                 break;
  2272.             case 3:
  2273.                 return $this->forward('App\Controller\AnnuaireFondsInvestissementController::investissementreference', ['idFonds' => $idFonds'codePays' => $codePays'pageInvest' => $pageInvest'request' => $request]);
  2274.                 break;
  2275.             case 4:
  2276.                 return $this->forward('App\Controller\AnnuaireFondsInvestissementController::actualitepubliee', ['idFonds' => $idFonds'codePays' => $codePays'pageActu' => $pageActu'request' => $request]);
  2277.                 break;
  2278.             default:
  2279.                 return $this->forward('App\Controller\AnnuaireFondsInvestissementController::strategieinvestissement', ['idFonds' => $idFonds'codePays' => $codePays'request' => $request]);
  2280.                 break;
  2281.         }
  2282.     }
  2283.     
  2284.     public function redirectionrechercheavancee(Request $request): Response
  2285.     {
  2286.         $type null !== $request->get('type') ? $request->get('type') : null;
  2287.         $codePays $request->get('codePays');
  2288.         
  2289.         switch ($type) {
  2290.             case 'fonds_investissement':
  2291.                 return $this->forward('App\Controller\AnnoncesOuvrirCapitalController::rechercheavanceefondsinvestissement', ['codePays' => $codePays'request' => $request]);
  2292.                 break;
  2293.             case 'cv_repreneur_investisseur':
  2294.                 return $this->forward('App\Controller\AnnoncesOuvrirCapitalController::rechercheavanceecvrepreneur', ['codePays' => $codePays'type' => $type'request' => $request]);
  2295.                 break;
  2296.             case 'business_angel':
  2297.                 return $this->forward('App\Controller\AnnoncesOuvrirCapitalController::rechercheavanceebusinessangel', ['codePays' => $codePays'type' => $type'request' => $request]);
  2298.                 break;
  2299.             case 'acquereur_investisseur':
  2300.                 return $this->forward('App\Controller\AnnoncesOuvrirCapitalController::rechercheavanceeannonceacquisition', ['codePays' => $codePays'type' => $type'request' => $request]);
  2301.                 break;
  2302.             default:
  2303.                 return $this->forward('App\Controller\AnnoncesOuvrirCapitalController::rechercheavanceebusinessangel', ['codePays' => $codePays'request' => $request]);
  2304.                 break;
  2305.         }
  2306.     }
  2307.     
  2308.     public function redirectionrecherchestandard(Request $request): Response
  2309.     {
  2310.         $type null !== $request->get('type') ? $request->get('type') : null;
  2311.         $codePays $request->get('codePays');
  2312.         
  2313.         switch ($type) {
  2314.             case 'fonds_investissement':
  2315.                 return $this->forward('App\Controller\AnnoncesOuvrirCapitalController::recherchestandardfondsinvestissement', ['codePays' => $codePays'type' => $type'request' => $request]);
  2316.                 break;
  2317.             case 'cv_repreneur_investisseur':
  2318.                 return $this->forward('App\Controller\AnnoncesOuvrirCapitalController::recherchestandardcvrepreneur', ['codePays' => $codePays'type' => $type'request' => $request]);
  2319.                 break;
  2320.             case 'business_angel':
  2321.                 return $this->forward('App\Controller\AnnoncesOuvrirCapitalController::recherchestandardbusinessangel', ['codePays' => $codePays'type' => $type'request' => $request]);
  2322.                 break;
  2323.             case 'acquereur_investisseur':
  2324.                 return $this->forward('App\Controller\AnnoncesOuvrirCapitalController::recherchestandardannonceacquisition', ['codePays' => $codePays'type' => $type'request' => $request]);
  2325.                 break;
  2326.             default:
  2327.                 return $this->forward('App\Controller\AnnoncesOuvrirCapitalController::recherchestandardbusinessangel', ['codePays' => $codePays'type' => $type'request' => $request]);
  2328.                 break;
  2329.         }
  2330.     }
  2331.     
  2332.     public function dernieresAnnoncesRecherchePartenariat($lang$codePays)
  2333.     {
  2334.         $dernieresAnnonces $this->am->getDernieresAnnoncesAcquisitions(5"partenaire"null$lang$this->getIdPaysByCodePays($codePays));
  2335.         
  2336.         return $this->render(
  2337.             'ouvrir_capital/fragments/recherche_partenariat/dernieres_annonces.html.twig',
  2338.             [
  2339.                 'dernieresAnnonces' => $dernieresAnnonces,
  2340.                 'lang' => $lang,
  2341.                 'codePays' => $codePays
  2342.             ]
  2343.             );
  2344.     }
  2345.     
  2346.     public function trouverAnnonceRecherchePartenariatParLocalisation($lang$codePays)
  2347.     {
  2348.         $nb_annonce_france $this->getAnnoncesNumbers(['id_localisation' => 'p33'])['nb_recherches_partenariats'];
  2349.         $nb_annonce_belgique $this->getAnnoncesNumbers(['id_localisation' => 'p32'])['nb_recherches_partenariats'];
  2350.         $nb_annonce_canada $this->getAnnoncesNumbers(['id_localisation' => 'p01'])['nb_recherches_partenariats'];
  2351.         $nb_annonce_suisse $this->getAnnoncesNumbers(['id_localisation' => 'p41'])['nb_recherches_partenariats'];
  2352.         $nb_annonce_autres_pays $this->getAnnoncesNumbers(['id_localisation' => 'p99'])['nb_recherches_partenariats'];
  2353.         
  2354.         return $this->render(
  2355.             "ouvrir_capital/fragments/recherche_partenariat/trouver_annonce_par_localisation_".$this->getVersionByCodePays($codePays).".html.twig",
  2356.             [
  2357.                 'nb_annonce_france' => $nb_annonce_france,
  2358.                 'nb_annonce_belgique' => $nb_annonce_belgique,
  2359.                 'nb_annonce_canada' => $nb_annonce_canada,
  2360.                 'nb_annonce_suisse' => $nb_annonce_suisse,
  2361.                 'nb_annonce_autres_pays' => $nb_annonce_autres_pays,
  2362.                 'lang' => $lang,
  2363.                 'codePays' => $codePays
  2364.             ]
  2365.             );
  2366.     }
  2367.     
  2368.     public function recherchepartenariat(Request $requestPaginatorInterface $paginatorLocalisationsManagers $localisationManagerTranslationExtension $translationExtensionLocalisationsRepository $localisationsRepoParametresDiversRepository $parametresDiversRepo$type null$idLocalisation null$slug null$idSecteurActivite null$codePays): Response
  2369.     {
  2370.         $lang $request->getSession()->get('lang');
  2371.         $parametres $request->query->all();
  2372.         $is_recherche_by_localisation false;
  2373.         $metaTitle $metaDescription null;
  2374.         $arrayVarsTrans = [];
  2375.         
  2376.         // Recherche standard
  2377.         if ($idLocalisation || $idSecteurActivite) {
  2378.             // Preparation des parametres
  2379.             if ($idLocalisation) {
  2380.                 if ($type == 'd') {
  2381.                     $parametres['id_departement'] = $idLocalisation;
  2382.                     $child_type null;
  2383.                     $parent_type "r";
  2384.                 } elseif ($type == "r") {
  2385.                     $parametres['id_region'] = $idLocalisation;
  2386.                     $child_type "d";
  2387.                     $parent_type "p";
  2388.                 } else {
  2389.                     $parametres['id_pays'] = $idLocalisation;
  2390.                     $child_type "r";
  2391.                     $parent_type null;
  2392.                 }
  2393.                 
  2394.                 $parametres ParametersProvider::prepareRechercheStandardParameters($parametres);
  2395.             }
  2396.             
  2397.             if ($idSecteurActivite) {
  2398.                 $parametres['id_secteur_activite'] = $idSecteurActivite;
  2399.                 $parametres ParametersProvider::prepareRechercheStandardParameters($parametres);
  2400.             }
  2401.             
  2402.             // Recherche par localisation
  2403.             if ($idLocalisation) {
  2404.                 $localisations $localisationManager->getLocalisationCompleteWithNavById($idLocalisation);
  2405.                 
  2406.                 if (!$localisations) {
  2407.                     $this->addFlash('error'$translationExtension->translate('erreur de localisation'$lang'''M'''));
  2408.                     return $this->redirectToRoute('reprendre_entreprise_resultats_recherches_partenariat', ['codePays' => $codePays]);
  2409.                 }
  2410.                 
  2411.                 $villesRepo $this->getDoctrine()->getRepository(Villes::class);
  2412.                 $noms_ville $villesRepo->donne_string_noms_villes_principales_dune_localisation($idLocalisation);
  2413.                 
  2414.                 $sous_localisations $localisationsRepo->getSubLevelLocalisations($idLocalisation);
  2415.                 $sous_localisations_numbers = [];
  2416.                 $prev_localisation = [];
  2417.                 
  2418.                 foreach ($sous_localisations as $sous_localisation) {
  2419.                     $params = [];
  2420.                     
  2421.                     if ($idSecteurActivite) {
  2422.                         $params['id_secteur_activite'] = $idSecteurActivite;
  2423.                     }
  2424.                     
  2425.                     if ($type == "r") {
  2426.                         $params['id_departement'] = $sous_localisation['id_localisation'];
  2427.                     } else {
  2428.                         if ($idLocalisation == "99") {
  2429.                             $params['id_pays'] = $sous_localisation['id_localisation'];
  2430.                             $child_type "p";
  2431.                         } else {
  2432.                             $params['id_region'] = $sous_localisation['id_localisation'];
  2433.                         }
  2434.                     }
  2435.                     
  2436.                     $sous_localisation['type'] = $child_type;
  2437.                     $params ParametersProvider::prepareRechercheStandardParameters($params);
  2438.                     $annonces_numbers $this->getAnnoncesNumbers($params);
  2439.                     
  2440.                     if ($idLocalisation == 99) {
  2441.                         if ($sous_localisation['nom_localisation'] != "Confidentiel" && $annonces_numbers['nb_recherches_partenariats'] != 0) {
  2442.                             $sous_localisations_numbers[] = array_merge($sous_localisation$annonces_numbers);
  2443.                         }
  2444.                     } else {
  2445.                         if ($sous_localisation['nom_localisation'] != "Confidentiel" || $annonces_numbers['nb_recherches_partenariats'] != 0) {
  2446.                             $sous_localisations_numbers[] = array_merge($sous_localisation$annonces_numbers);
  2447.                         }
  2448.                     }
  2449.                 }
  2450.                 
  2451.                 if (!$prev_localisation && $parent_type) {
  2452.                     $prev_localisation = isset($localisations[count($localisations) - 2]) ? $localisations[count($localisations) - 2] : null;
  2453.                     $prev_localisation['type'] = $parent_type;
  2454.                 }
  2455.                 
  2456.                 $last_localisation end($localisations);
  2457.                 $arrayVarsTrans['prefixe_localisation'] = $last_localisation['prefixe'];
  2458.                 $arrayVarsTrans['nom_localisation'] = strtoupper($last_localisation['nom_localisation']);
  2459.                 $metaTitle '%$nb_recherches_partenariats%$ $$recherche de partenariat$${p|recherches de partenariat} %$prefixe_localisation%$ %$nom_localisation%$';
  2460.                 $metaDescription 'consultez %$nb_recherches_partenariats%$ $$annonce$${p|annonces} de recherche de partenariat %$prefixe_localisation%$ %$nom_localisation%$';
  2461.             }
  2462.             
  2463.             // Recherche par secteur d'activite
  2464.             if ($idSecteurActivite) {
  2465.                 $secteurActivites $this->sam->getTreeSecteursActivite($idSecteurActivite);
  2466.                 
  2467.                 if (!$secteurActivites) {
  2468.                     $this->addFlash('error'$translationExtension->translate("erreur de secteur d'activitĂ©"$lang'''M'''));
  2469.                     return $this->redirectToRoute('reprendre_entreprise_resultats_recherches_partenariat', ['codePays' => $codePays]);
  2470.                 }
  2471.                 
  2472.                 $secteurActiviteRepo $this->getDoctrine()->getRepository(SecteursActivite::class);
  2473.                 
  2474.                 $sous_secteurs $secteurActiviteRepo->getAllSecteursActiviteEnfantByIdSecteurParent($idSecteurActivite);
  2475.                 
  2476.                 $sous_secteurs_numbers = [];
  2477.                 $prev_secteur = [];
  2478.                 
  2479.                 foreach ($sous_secteurs as $sous_secteur) {
  2480.                     $params = [];
  2481.                     
  2482.                     $params['id_secteur_activite'] = $sous_secteur['idSecteurActivite'];
  2483.                     $params ParametersProvider::prepareRechercheStandardParameters($params);
  2484.                     $annonces_numbers $this->getAnnoncesNumbers($params);
  2485.                     
  2486.                     $sous_secteurs_numbers[] = array_merge($sous_secteur$annonces_numbers);
  2487.                 }
  2488.                 
  2489.                 if (!$prev_secteur) {
  2490.                     $prev_secteur = isset($secteurActivites[count($secteurActivites) - 2]) ? $secteurActivites[count($secteurActivites) - 2] : null;
  2491.                 }
  2492.                 
  2493.                 $last_secteur end($secteurActivites);
  2494.                 $arrayVarsTrans['nomPourTitle'] = $last_secteur->getNomPourTitle();
  2495.                 
  2496.                 // Si ce n'est pas une recherche croisĂ©e
  2497.                 if (!$idLocalisation) {
  2498.                     $metaTitle '%$nb_recherches_partenariats%$ $$recherche de partenariat$${p|recherches de partenariat} %$nomPourTitle%$';
  2499.                     $metaDescription 'consultez %$nb_recherches_partenariats%$ $$annonce$${p|annonces} de recherche de partenariat %$nomPourTitle%$';
  2500.                 } else {
  2501.                     $metaTitle '%$nb_recherches_partenariats%$ $$recherche de partenariat$${p|recherches de partenariat} %$nomPourTitle%$ %$prefixe_localisation%$ %$nom_localisation%$';
  2502.                     $metaDescription 'consultez %$nb_recherches_partenariats%$ $$annonce$${p|annonces} de recherche de partenariat %$nomPourTitle%$ %$prefixe_localisation%$ %$nom_localisation%$';
  2503.                 }
  2504.             }
  2505.             // Recherche avancĂ©e / dernieres annonces
  2506.         } else {
  2507.             $parametres ParametersProvider::prepareRechercheAvanceeParameters($parametres);
  2508.         }
  2509.         
  2510.         $is_recherche ParametersProvider::prepareRechercheAvanceeOuvrirCapitalParameters() !== ParametersProvider::prepareRechercheAvanceeOuvrirCapitalParameters($parametres);
  2511.         
  2512.         if (isset($parametres['id_localisation']) && $parametres['id_localisation'] != "") {
  2513.             $is_recherche_by_localisation true;
  2514.         }
  2515.         
  2516.         $string_params $string_params_without_page $this->serializeParams($parametres);
  2517.         
  2518.         // Si c'est une recherche, on calcule les nb Ă  afficher
  2519.         if ($is_recherche) {
  2520.             $repoAcheteur $this->getDoctrine()->getRepository(AnnoncesAcheteur::class);
  2521.             $repoAnnuaireRepreneur $this->getDoctrine()->getRepository(AnnuaireRepreneurs::class);
  2522.             $repoSociete $this->getDoctrine()->getRepository(Societes::class);
  2523.             $repoInvestisseursPrives $this->getDoctrine()->getRepository(InvestisseursPrives::class);
  2524.             
  2525.             $parametres['from_list'] = "acquereur_investisseur";
  2526.             $nb_acquereurs_investisseurs $repoAcheteur->donne_nb_annonces_achat($parametres);
  2527.             $parametres['from_list'] = "cv_repreneur_investisseur";
  2528.             $nb_repreneurs_investisseurs $repoAnnuaireRepreneur->donne_nb_cv_repreneurs($parametres);
  2529.             $nb_fonds_investissement $repoSociete->donne_nb_fonds_investissement($parametres);
  2530.             $nb_recherches_partenariats $repoAcheteur->donne_nb_annonces_achat_recherche_partenaire($parametres);
  2531.             $nb_business_angel $repoInvestisseursPrives->donne_nb_investisseurs_prives($parametres);
  2532.             
  2533.             $nb_annonces $nb_repreneurs_investisseurs $nb_business_angel $nb_acquereurs_investisseurs $nb_fonds_investissement $nb_recherches_partenariats;
  2534.         } else {
  2535.             // Sinon on rĂ©cupère les nb stockĂ©s dans parametres_divers
  2536.             $nb $parametresDiversRepo->getListNombresAafficher();
  2537.             
  2538.             $nb_acquereurs_investisseurs $nb->ouvrir_mon_capital_nb_acquereurs_investisseurs;
  2539.             $nb_repreneurs_investisseurs $nb->ouvrir_mon_capital_nb_cv_repreneurs_investisseurs;
  2540.             $nb_fonds_investissement $nb->ouvrir_mon_capital_nb_fonds_investissement;
  2541.             $nb_business_angel $nb->ouvrir_mon_capital_nb_business_angels;
  2542.             $nb_recherches_partenariats $nb->reprendre_une_entreprise_nb_recherches_de_partenariats;
  2543.             
  2544.             $nb_annonces $nb_repreneurs_investisseurs $nb_business_angel $nb_acquereurs_investisseurs $nb_fonds_investissement $nb_recherches_partenariats;
  2545.         }
  2546.         
  2547.         $user $this->getUser();
  2548.         $login_utilisateur = isset($user) ? $user->_get('login_utilisateur') : null;
  2549.         
  2550.         $liste_annonces $this->am->getAnnoncesRecherchePartenariatList($request$paginator$parametres"partenaire"$login_utilisateur);
  2551.         
  2552.         $page $request->query->get('page');
  2553.         
  2554.         if ($page != null && $page != 1) {
  2555.             $string_params .= "&page=" $page;
  2556.         }
  2557.         
  2558.         $tri = isset($parametres['tri']) ? $parametres['tri'] : null;
  2559.         
  2560.         $urlList $request->getPathInfo();
  2561.         
  2562.         $tri_default null;
  2563.         
  2564.         // Si aucun tri
  2565.         if (!$tri) {
  2566.             // On trie par CA si c'est une recherche
  2567.             if ($is_recherche) {
  2568.                 $tri_default "ca_desc";
  2569.             } else {
  2570.                 $tri_default "date_desc";
  2571.             }
  2572.         }
  2573.         
  2574.         // Si ce n'est pas une recherche par loc / sec ou croisĂ©
  2575.         if ($metaTitle == null && $metaTitle == null) {
  2576.             $metaTitle '%$nb_recherches_partenariats%$ $$recherche de partenariat$${p|recherches de partenariat}';
  2577.             $metaDescription 'consultez %$nb_recherches_partenariats%$ $$annonce$${p|annonces} de recherche de partenariat en fonction de vos critères de recherche.';
  2578.         }
  2579.         
  2580.         $arrayVarsTrans['nb_recherches_partenariats'] = $nb_recherches_partenariats;
  2581.         
  2582.         if ($nb_recherches_partenariats 1) {
  2583.             $p 'p';
  2584.         } else {
  2585.             $p '';
  2586.         }
  2587.         
  2588.         $metaTag $this->metaTag
  2589.         ->setTitle($translationExtension->translate($metaTitle$lang"""M"$p$arrayVarsTrans))
  2590.         ->setDescription($translationExtension->translate($metaDescription$lang"""M"$p$arrayVarsTrans))
  2591.         ->setRobots('noindex');
  2592.         
  2593.         $array_return = [
  2594.             'metaTag' => $metaTag,
  2595.             'nb_annonces' => $nb_annonces,
  2596.             'nb_fonds_investissement' => $nb_fonds_investissement,
  2597.             'nb_repreneurs_investisseurs' => $nb_repreneurs_investisseurs,
  2598.             'nb_business_angel' => $nb_business_angel,
  2599.             'nb_acquereurs_investisseurs' => $nb_acquereurs_investisseurs,
  2600.             'nb_recherches_partenariats' => $nb_recherches_partenariats,
  2601.             'is_recherche_by_localisation' => $is_recherche_by_localisation,
  2602.             'liste_annonces' => $liste_annonces,
  2603.             'string_params' => $string_params,
  2604.             'string_params_without_page' => $string_params_without_page,
  2605.             'tri' => $tri,
  2606.             'urlList' => $urlList,
  2607.             'idLocalisation' => null,
  2608.             'idSecteurActivite' => null,
  2609.             'tri_default' => $tri_default
  2610.         ];
  2611.         
  2612.         if ($idLocalisation || $idSecteurActivite) {
  2613.             if ($idLocalisation) {
  2614.                 $array_return['idLocalisation'] = $idLocalisation;
  2615.                 $array_return['idSecteurActivite'] = $idSecteurActivite $idSecteurActivite null;
  2616.                 $array_return['slug'] = $slug;
  2617.                 $array_return['type'] = $type;
  2618.                 $array_return['localisations'] = $localisations;
  2619.                 $array_return['noms_ville'] = $noms_ville;
  2620.                 $array_return['sous_localisations_numbers'] = $sous_localisations_numbers;
  2621.                 $array_return['prev_localisation'] = $prev_localisation;
  2622.             }
  2623.             
  2624.             if ($idSecteurActivite) {
  2625.                 $array_return['idSecteurActivite'] = $idSecteurActivite;
  2626.                 $array_return['idLocalisation'] = $idLocalisation $idLocalisation null;
  2627.                 $array_return['slug'] = $slug;
  2628.                 $array_return['secteurActivites'] = $secteurActivites;
  2629.                 $array_return['sous_secteurs_numbers'] = $sous_secteurs_numbers;
  2630.                 $array_return['prev_secteur'] = $prev_secteur;
  2631.             }
  2632.         }
  2633.         
  2634.         return $this->render(
  2635.             'ouvrir_capital/recherche_partenariat.html.twig',
  2636.             $array_return
  2637.             );
  2638.     }
  2639.     
  2640.     public function rechercheavanceerecherchepartenariat(Request $requestSecteursActiviteManagers $secteursActiviteManagerTranslationExtension $translationExtension$codePaysLocalisationsManagers $localisationManager): Response
  2641.     {
  2642.         $parametres $request->query->all();
  2643.         $parametres ParametersProvider::prepareRechercheAvanceeParameters($parametres);
  2644.         $parametres_localisations ParametersProvider::prepareLocalisationsParameters($localisationManager$parametres);
  2645.         $parametres_secteurs ParametersProvider::prepareSecteursParameters($secteursActiviteManager$parametres);
  2646.         $string_params $this->serializeParams($parametres);
  2647.         
  2648.         
  2649.         
  2650.         $lang $request->getSession()->get('lang');
  2651.         $idPays $this->getIdPaysByCodePays($codePays);
  2652.         
  2653.         $pays $this->am->donne_option_select_pays_annonces_acheteur("partenariat"$idPays);
  2654.         $regions = [];
  2655.         $departements = [];
  2656.         
  2657.         $secteurs_activite1 $secteursActiviteManager->donne_option_select_secteurs_activite_niveau_1();
  2658.         
  2659.         if (isset($parametres['id_secteur_activite'])) {
  2660.             $secteurs_activite2 $secteursActiviteManager->donne_option_select_secteurs_activite_enfant_by_secteur_activite_parent($parametres['id_secteur_activite']);
  2661.             $show_secteur_niveau_2 true;
  2662.         } else {
  2663.             $secteurs_activite2 = [];
  2664.             $show_secteur_niveau_2 false;
  2665.         }
  2666.         
  2667.         if (isset($parametres['id_secteur_activite2'])) {
  2668.             $secteurs_activite3 $secteursActiviteManager->donne_option_select_secteurs_activite_enfant_by_secteur_activite_parent($parametres['id_secteur_activite2']);
  2669.             $show_secteur_niveau_3 true;
  2670.         } else {
  2671.             $secteurs_activite3 = [];
  2672.             $show_secteur_niveau_3 false;
  2673.         }
  2674.         
  2675.         $type_acquereur = [
  2676.             $translationExtension->translate('indifferent'$lang'''M''') => ''// value = indifferent
  2677.             $translationExtension->translate('societe'$lang'''M''') => 'societe',
  2678.             $translationExtension->translate('personne physique'$lang'''M''') => 'personne',
  2679.         ];
  2680.         
  2681.         $demarche = [
  2682.             $translationExtension->translate('indifferent'$lang'''M''') => ''// value = indifferent
  2683.             $translationExtension->translate('une reprise totale, le cedant quittant l\'entreprise'$lang'''M''') => 'reprise_totale',
  2684.             $translationExtension->translate('une reprise majoritaire, le cedant restant en minoritaire'$lang'''M''') => 'reprise_majoritaire',
  2685.             $translationExtension->translate('une association minoritaire avec le chef d\'entreprise actuel'$lang'''M''') => 'association_minoritaire',
  2686.         ];
  2687.         
  2688.         $recherche_par = [
  2689.             $translationExtension->translate("mots-cles de l'activite recherchee"$lang'''M''') => 'motscles',
  2690.             $translationExtension->translate("secteur predefini"$lang'''M''') => 'secteurs'
  2691.         ];
  2692.         
  2693.         $formFactory Forms::createFormFactoryBuilder()->getFormFactory();
  2694.         $form $formFactory->createNamedBuilder('')
  2695.         ->add('id_pays'ChoiceType::class, [
  2696.             'choices' => $pays,
  2697.         ])
  2698.         ->add('id_region'ChoiceType::class, [
  2699.             'choices' => $regions,
  2700.         ])
  2701.         ->add('id_departement'ChoiceType::class, [
  2702.             'choices' => $departements,
  2703.         ])
  2704.         ->add('id_localisation'HiddenType::class, [
  2705.             'data' => $parametres['id_localisation']
  2706.         ])
  2707.         ->add('ajouter'ButtonType::class)
  2708.         ->add('reference_mots_cles'TextType::class, [
  2709.             'required' => false,
  2710.             'data' => $parametres['reference_mots_cles'],
  2711.             'attr' => [
  2712.                 'placeholder' => $translationExtension->translate("transport, services informatiques, ..."$lang'''M''')
  2713.             ]
  2714.         ])
  2715.         ->add('id_secteur_activite'ChoiceType::class, [
  2716.             'choices' => $secteurs_activite1,
  2717.             'data' => $parametres['id_secteur_activite']
  2718.         ])
  2719.         ->add('id_secteur_activite2'ChoiceType::class, [
  2720.             'choices' => $secteurs_activite2,
  2721.             'data' => $parametres['id_secteur_activite2']
  2722.         ])
  2723.         ->add('id_secteur_activite3'ChoiceType::class, [
  2724.             'choices' => $secteurs_activite3,
  2725.             'data' => $parametres['id_secteur_activite3']
  2726.         ])
  2727.         ->add('id_secteur'HiddenType::class, [
  2728.             'data' => $parametres['id_secteur'],
  2729.         ])
  2730.         ->add('ajouter_secteur_activite'ButtonType::class)
  2731.         ->add('type_acquereur'ChoiceType::class, [
  2732.             'required' => false,
  2733.             'choices' => $type_acquereur,
  2734.             'expanded' => true,
  2735.             'multiple' => false,
  2736.             'data' => $parametres['type_acquereur']
  2737.         ])
  2738.         ->add('demarche'ChoiceType::class, [
  2739.             'required' => false,
  2740.             'choices' => $demarche,
  2741.             'expanded' => true,
  2742.             'multiple' => false,
  2743.             'data' => $parametres['demarche']
  2744.         ])
  2745.         ->add('type_recherche'HiddenType::class, [
  2746.             'data' => 5,
  2747.         ])
  2748.         ->add('recherche_par'ChoiceType::class, [
  2749.             'required' => false,
  2750.             'choices' => $recherche_par,
  2751.             'expanded' => true,
  2752.             'multiple' => false,
  2753.             'data' => $parametres['recherche_par'],
  2754.             'placeholder' => false,
  2755.             'choice_value' => function ($choice) {
  2756.             return $choice// Utilisez la valeur du choix comme clĂ©
  2757.             }
  2758.             ])
  2759.             ->add('rechercher'SubmitType::class)
  2760.             ->setAction($this->generateUrl('ouvrir_capital_resultats_recherches_partenariat', ['codePays' => $codePays]))
  2761.             ->setMethod('GET')
  2762.             ->getForm();
  2763.             
  2764.             $current_year date('Y');
  2765.             
  2766.             return $this->render(
  2767.                 'ouvrir_capital/recherche_avancee_recherche_partenariat.html.twig',
  2768.                 [
  2769.                     /*'nb_actifs' => $nb_actifs,
  2770.                      'nb_entreprises' => $nb_entreprises,
  2771.                      'nb_cibles_potentielles' => $nb_cibles_potentielles,
  2772.                      'nb_recherches_partenariats' => $nb_recherches_partenariats,*/
  2773.                     'form' => $form->createView(),
  2774.                     'parametres' => $parametres,
  2775.                     'parametres_localisations' => $parametres_localisations,
  2776.                     'parametres_secteurs' => $parametres_secteurs,
  2777.                     'current_year' => $current_year,
  2778.                     'string_params' => $string_params,
  2779.                     'show_secteur_niveau_2' => $show_secteur_niveau_2,
  2780.                     'show_secteur_niveau_3' => $show_secteur_niveau_3
  2781.                 ]
  2782.                 );
  2783.     }
  2784.     
  2785.     private function test_si_affichage_acquereur_ou_repreneur($type_acquereur$profil_deposant){
  2786.         if ($type_acquereur == "personne") {
  2787.             $res "repreneur";
  2788.         } elseif ($type_acquereur == "societe") {
  2789.             $res "acquereur";
  2790.         } else {
  2791.             if ($profil_deposant == "repreneur"){
  2792.                 $res "repreneur";
  2793.             }
  2794.             else {
  2795.                 $res="acquereur";
  2796.             }
  2797.         }
  2798.         
  2799.         return $res;
  2800.     }
  2801.     
  2802.     private function serializeParams($parametres)
  2803.     {
  2804.         $string_params "";
  2805.         
  2806.         foreach ($parametres as $name => $value) {
  2807.             if ($name != "rechercher" && $name != "type" && $name != "array_localisation") {
  2808.                 if ($string_params == "") {
  2809.                     $string_params .= $name."=".$value;
  2810.                 } else {
  2811.                     $string_params .= "&".$name."=".$value;
  2812.                 }
  2813.             }
  2814.         }
  2815.         
  2816.         return $string_params;
  2817.     }
  2818.     
  2819.     /**
  2820.      * @param type $codePays
  2821.      * @return type
  2822.      */
  2823.     private function getIdPaysByCodePays($codePays) {
  2824.         return $this->container->get("id_pays_by_code_pays")->getIdPaysByCodePays($codePays);
  2825.     }
  2826.     
  2827.     private function getAnnoncesNumbers($parametres) {
  2828.         $repoAcheteur $this->getDoctrine()->getRepository(AnnoncesAcheteur::class);
  2829.         $repoAnnuaireRepreneur $this->getDoctrine()->getRepository(AnnuaireRepreneurs::class);
  2830.         $repoSociete $this->getDoctrine()->getRepository(Societes::class);
  2831.         $repoInvestisseursPrives $this->getDoctrine()->getRepository(InvestisseursPrives::class);
  2832.         $nb_business_angel $repoInvestisseursPrives->donne_nb_investisseurs_prives($parametres);
  2833.         $nb_repreneurs_investisseurs $repoAnnuaireRepreneur->donne_nb_cv_repreneurs($parametres);
  2834.         $parametres['from_list'] = "acquereur_investisseur";
  2835.         $nb_acquereurs_investisseurs $repoAcheteur->donne_nb_annonces_achat($parametres);
  2836.         unset($parametres['from_list']);
  2837.         $nb_fonds_investissement $repoSociete->donne_nb_fonds_investissement($parametres);
  2838.         $nb_recherches_partenariats $repoAcheteur->donne_nb_annonces_achat_recherche_partenaire($parametres);
  2839.         $nb_annonces $nb_repreneurs_investisseurs $nb_business_angel $nb_acquereurs_investisseurs $nb_fonds_investissement $nb_recherches_partenariats;
  2840.         
  2841.         return [
  2842.             'nb_business_angel' => $nb_business_angel,
  2843.             'nb_repreneurs_investisseurs' => $nb_repreneurs_investisseurs,
  2844.             'nb_acquereurs_investisseurs' => $nb_acquereurs_investisseurs,
  2845.             'nb_fonds_investissement' => $nb_fonds_investissement,
  2846.             'nb_recherches_partenariats' => $nb_recherches_partenariats
  2847.             'nb_annonces' => $nb_annonces
  2848.         ];
  2849.     }
  2850.     
  2851.     private function getNbAnnoncesBySecteursActivite($type "entreprise") {
  2852.         $secteurs $this->sam->getListeSecteursActiviteOrderedByIdPere();
  2853.         $array_result = [];
  2854.         
  2855.         if ($type == "entreprise") {
  2856.             $repoAcheteur $this->getDoctrine()->getRepository(AnnoncesAcheteur::class);
  2857.             $annonces_secteur $repoAcheteur->donne_tableau_annonces_achat_par_secteur_niveau2($type'acquereur_investisseur');
  2858.         } elseif ($type == "partenaire") {
  2859.             $repoSociete $this->getDoctrine()->getRepository(Societes::class);
  2860.             $annonces_secteur $repoSociete->donne_tableau_cibles_potentielles_par_secteur();
  2861.         } elseif($type == "business-angel") {
  2862.              
  2863.         } elseif($type == "fonds-investissement") {
  2864.              
  2865.         }
  2866.         
  2867.         foreach ($secteurs[0] as $id_secteur_pere => $secteur_pere) {
  2868.             $row = [];
  2869.             $nb_annonce_row 0;
  2870.             $row[0] = ['id_secteur_activite' => $id_secteur_pere'nom_secteur_activite' => $secteur_pere['nomSecteurActivite'], 'nom_pour_title' => $secteur_pere['nomPourTitle'], 'nb' => 0];
  2871.             
  2872.             foreach ($secteurs[$id_secteur_pere] as $id_secteur => $secteur) {
  2873.                 $data = ['id_secteur_activite' => $id_secteur'nom_secteur_activite' => $secteur['nomSecteurActivite'], 'nom_pour_title' => $secteur['nomPourTitle']];
  2874.                 $data['nb'] = isset($annonces_secteur[$id_secteur]) ? $annonces_secteur[$id_secteur] : 0;
  2875.                 $row[] = $data;
  2876.                 
  2877.                 $nb_annonce_row += $data['nb'];
  2878.             }
  2879.             
  2880.             $row[0]['nb'] = $nb_annonce_row;
  2881.             
  2882.             $array_result[] = $row;
  2883.         }
  2884.         
  2885.         return $array_result;
  2886.     }
  2887.     
  2888.     /**
  2889.      *
  2890.      * @param type $codePays
  2891.      * @return type
  2892.      */
  2893.     private function getVersionByCodePays($codePays) {
  2894.         return Utils::codePaysWithoutDash($codePays);
  2895.     }
  2896.     
  2897. }