<?php
namespace App\Controller;
use App\Services\MetaTag;
use App\Helper\ParametersProvider;
use App\Entity\AnnoncesVendeur;
use App\Entity\RaisonsCession;
use App\Entity\SecteursActivite;
use App\Entity\Societes;
use App\Entity\Villes;
use App\Entity\Statuts;
use App\Services\ManagerEntity\ActualitesManagers;
use App\Services\ManagerEntity\AnnoncesManagers;
use App\Services\ManagerEntity\SecteursActiviteManagers;
use App\Services\ManagerEntity\SocietesManagers;
use App\Services\ManagerEntity\LocalisationsManagers;
use App\Services\ManagerEntity\DroitsAccesManagers;
use App\Twig\TranslationExtension;
use Knp\Component\Pager\PaginatorInterface;
use Symfony\Component\Form\Extension\Core\Type\ButtonType;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
use Symfony\Component\Form\Extension\Core\Type\HiddenType;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\Forms;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use App\Entity\AnnoncesAcheteur;
use App\Helper\DateProvider;
use App\Services\ManagerEntity\AnnuairesManagers;
use App\Entity\AnnuaireRepreneurs;
use App\Form\Models\ContactezDirectementFondsInvestissement;
use App\Form\Type\ContactezDirectementFondsInvestissementType;
use App\Helper\Utils;
use App\Services\ManagerEntity\ContactGenerauxManagers;
use App\Entity\SecteursActiviteFonds;
use App\Services\ManagerEntity\BuzzManagers;
use App\Helper\DetailAnnonceProvider;
use App\Entity\InvestisseursPrives;
use App\Services\ManagerEntity\BusinessAngelManagers;
use App\Repository\InvestisseursPrivesRepository;
use App\Repository\SecteursActiviteFondsRepository;
use App\Repository\CommandesRepository;
use App\Repository\LocalisationsRepository;
use Symfony\Component\DependencyInjection\ParameterBag\ContainerBagInterface;
use App\Repository\ParametresDiversRepository;
class OuvrirCapitalController extends EntityUsingController
{
/**
* @var AnnoncesManagers
*/
private $am;
/**
* @var SocietesManagers
*/
private $sm;
/**
* @var LocalisationsManagers
*/
private $lm;
/**
* @var BusinessAngelManagers
*/
private $bam;
/**
* @var SecteursActiviteManagers
*/
private $sam;
/**
* @var DroitsAccesManagers
*/
private $dam;
/**
* @var MetaTag
*/
private $metaTag;
public function __construct(AnnoncesManagers $am, SocietesManagers $sm, LocalisationsManagers $lm, ContactGenerauxManagers $cgm, AnnuairesManagers $arm, BusinessAngelManagers $bam, SecteursActiviteManagers $sam, DroitsAccesManagers $dam, MetaTag $metaTag)
{
$this->am = $am;
$this->sm = $sm;
$this->lm = $lm;
$this->cgm = $cgm;
$this->arm = $arm;
$this->bam = $bam;
$this->sam = $sam;
$this->dam = $dam;
$this->metaTag = $metaTag;
}
public function index(): Response
{
return $this->render('ouvrir_capital/index.html.twig');
}
public function recherchestandardbusinessangel (Request $request, TranslationExtension $translationExtension, InvestisseursPrivesRepository $investisseurRepo, $codePays): Response
{
$reference_mots_cles = $request->query->get('reference_mots_cles');
// Si on fait une recherche simple
if (isset($reference_mots_cles) && $reference_mots_cles != "") {
// Si on recherche par id_investisseur
if (preg_match("/([0-9]{1,6})/",$reference_mots_cles) == true) {
$idInvestisseurPrive = $reference_mots_cles;
$investisseur_prive = $investisseurRepo->findOneBy(['id_investisseur' => $idInvestisseurPrive, 'mode' => 'publique']);
// Si l'annonce existe et est publique
if ($investisseur_prive) {
// Temporaire en attendant les vrais titres
if ($titre = $investisseur_prive->_get('titre_investisseur') == null) {
$titre = "investisseur";
}
$slug = Utils::slugify($titre);
return $this->redirectToRoute('investisseurs_prives_detail', ['slug' => $slug, 'idInvestisseurPrive' => $idInvestisseurPrive, 'codePays' => $codePays, 'from' => 'ouvrir-capital']);
} else {
$lang = $request->getSession()->get('lang');
$this->addFlash('error', $translationExtension->translate('investisseur introuvable', $lang, '', 'M', ''));
}
// Si on recherche par mots cles
} else {
// A developper
$request->query->set('type_recherche', 5);
return $this->forward('App\Controller\OuvrirCapitalController::businessangel', ['codePays' => $codePays, 'request' => $request]);
}
}
return $this->render(
'ouvrir_capital/recherche_standard_business_angel.html.twig',
[
]
);
}
public function trouverBusinessAngelParLocalisation($lang, $codePays)
{
$array_annonce_region_du_pays = $this->bam->donne_tableau_nb_business_angel_par_region($this->getIdPaysByCodePays($codePays));
$nb_regions = count($array_annonce_region_du_pays);
if ($nb_regions % 2 != 0) {
$moitie = ceil($nb_regions / 2);
} else {
$moitie = $nb_regions / 2;
}
$colonne_region_gauche = array_slice($array_annonce_region_du_pays, 0, $moitie);
$colonne_region_droite = array_slice($array_annonce_region_du_pays, $moitie);
$nb_annonce_france = $this->getAnnoncesNumbers(['id_localisation' => 'p33'])['nb_business_angel'];
$nb_annonce_belgique = $this->getAnnoncesNumbers(['id_localisation' => 'p32'])['nb_business_angel'];
$nb_annonce_canada = $this->getAnnoncesNumbers(['id_localisation' => 'p01'])['nb_business_angel'];
$nb_annonce_suisse = $this->getAnnoncesNumbers(['id_localisation' => 'p41'])['nb_business_angel'];
$nb_annonce_autres_pays = $this->getAnnoncesNumbers(['id_localisation' => 'p99'])['nb_business_angel'];
return $this->render(
"ouvrir_capital/fragments/business_angel/trouver_annonce_par_localisation_".$this->getVersionByCodePays($codePays).".html.twig",
[
'colonne_region_gauche' => $colonne_region_gauche,
'colonne_region_droite' => $colonne_region_droite,
'nb_annonce_france' => $nb_annonce_france,
'nb_annonce_belgique' => $nb_annonce_belgique,
'nb_annonce_canada' => $nb_annonce_canada,
'nb_annonce_suisse' => $nb_annonce_suisse,
'nb_annonce_autres_pays' => $nb_annonce_autres_pays,
'array_annonce_region_du_pays' => $array_annonce_region_du_pays,
'lang' => $lang,
'codePays' => $codePays
]
);
}
public function trouverBusinessAngelParCategorie($lang, $codePays)
{
$annonces_secteur_activite = $this->getNbAnnoncesBySecteursActivite("participation_fonds");
return $this->render(
"ouvrir_capital/fragments/business_angel/trouver_annonce_par_categorie.html.twig",
[
'annonces_secteur_activite' => $annonces_secteur_activite,
'lang' => $lang,
'codePays' => $codePays
]
);
}
public function recherchestandardrecherchepartenariat (Request $request, TranslationExtension $translationExtension, ContainerBagInterface $container, $codePays): Response
{
$reference_mots_cles = $request->query->get('reference_mots_cles');
// Si on fait une recherche simple
if (isset($reference_mots_cles) && $reference_mots_cles != "") {
// Si on recherche par idAnnonce
if (preg_match("/a([0-9]{3,8})/i",$reference_mots_cles) == true || preg_match("/([0-9]{3,8})/",$reference_mots_cles) == true) {
$idAnnonce = preg_replace("/[^0-9]/", "", $reference_mots_cles);
$annonce = $this->am->getAnnonceAcheteurById($idAnnonce);
// Si l'annonce existe et est publiquee
if ($annonce && $annonce['mode_annonce'] == "publique" && $annonce['type_raprochement'] == "partenaire") {
$slug = Utils::slugify($annonce['titre_annonce']);
return $this->redirectToRoute('vendre_entreprise_annonce_acquisition_details', ['slug' => $slug, 'idAnnonce' => $idAnnonce, 'codePays' => $codePays, 'nomLocalisation' => $annonce['nom_localisation_slug'], 'from' => 'ouvrir-capital']);
} else {
$lang = $request->getSession()->get('lang');
$this->addFlash('error', $translationExtension->translate('annonce introuvable : l’annonce a été supprimée, remise en attente ou est en cours de modification', $lang, '', 'M', ''));
}
// Si on recherche par mots cles
} else {
// A developper
$request->query->set('type_recherche', 5);
return $this->forward('App\Controller\OuvrirCapitalController::recherchepartenariat', ['codePays' => $codePays, 'request' => $request]);
}
}
return $this->render(
'ouvrir_capital/recherche_standard_recherche_partenariat.html.twig',
[
]
);
}
public function recherchestandardcvrepreneur (Request $request, TranslationExtension $translationExtension, AnnuairesManagers $annuairesManager, $codePays): Response
{
$reference_mots_cles = $request->query->get('reference_mots_cles');
// Si on fait une recherche simple
if (isset($reference_mots_cles) && $reference_mots_cles != "") {
// Si on recherche par idRepreneur
if (preg_match("/r([0-9]{3,8})/i",$reference_mots_cles) == true || preg_match("/([0-9]{1,8})/",$reference_mots_cles) == true) {
$idRepreneur = preg_replace("/[^0-9]/", "", $reference_mots_cles);
$cv = $this->arm->getCVRepreneurDetail($idRepreneur);
// Si le CV existe et est publique
if ($cv && $cv['modeProfil'] == "publique") {
$slug = Utils::slugify($cv['titreSocieteRecherchee']);
return $this->redirectToRoute('repreneur_cv_detail', ['titreslug' => $slug, 'idRepreneur' => $idRepreneur, 'codePays' => $codePays, 'from' => 'ouvrir-capital']);
} else {
$lang = $request->getSession()->get('lang');
$this->addFlash('error', $translationExtension->translate('CV repreneur introuvable', $lang, '', 'M', ''));
}
// Si on recherche par mots cles
} else {
// A developper
$request->query->set('type_recherche', 5);
return $this->forward('App\Controller\OuvrirCapitalController::cvrepreneur', ['codePays' => $codePays, 'request' => $request]);
}
}
return $this->render(
'ouvrir_capital/recherche_standard_cv_repreneur.html.twig',
[
]
);
}
public function derniersCvRepreneur(AnnuairesManagers $annuairesManager, $lang, $codePays)
{
$derniersCV = $this->arm->getDerniersCVRepreneurs($this->getIdPaysByCodePays($codePays), 5, 'cv_repreneur_investisseur');
return $this->render(
'ouvrir_capital/fragments/cv_repreneur/derniers_cv.html.twig',
[
'derniersCV' => $derniersCV,
'lang' => $lang,
'codePays' => $codePays
]
);
}
public function trouverCvRepreneurParLocalisation(AnnuairesManagers $annuairesManager, $lang, $codePays)
{
$array_annonce_region_du_pays = $annuairesManager->donne_tableau_nb_cv_par_region($this->getIdPaysByCodePays($codePays));
$nb_regions = count($array_annonce_region_du_pays);
if ($nb_regions % 2 != 0) {
$moitie = ceil($nb_regions / 2);
} else {
$moitie = $nb_regions / 2;
}
$colonne_region_gauche = array_slice($array_annonce_region_du_pays, 0, $moitie);
$colonne_region_droite = array_slice($array_annonce_region_du_pays, $moitie);
$nb_annonce_france = $this->getAnnoncesNumbers(['id_localisation' => 'p33'])['nb_repreneurs_investisseurs'];
$nb_annonce_belgique = $this->getAnnoncesNumbers(['id_localisation' => 'p32'])['nb_repreneurs_investisseurs'];
$nb_annonce_canada = $this->getAnnoncesNumbers(['id_localisation' => 'p01'])['nb_repreneurs_investisseurs'];
$nb_annonce_suisse = $this->getAnnoncesNumbers(['id_localisation' => 'p41'])['nb_repreneurs_investisseurs'];
$nb_annonce_autres_pays = $this->getAnnoncesNumbers(['id_localisation' => 'p99'])['nb_repreneurs_investisseurs'];
return $this->render(
"ouvrir_capital/fragments/cv_repreneur/trouver_annonce_par_localisation_".$this->getVersionByCodePays($codePays).".html.twig",
[
'colonne_region_gauche' => $colonne_region_gauche,
'colonne_region_droite' => $colonne_region_droite,
'nb_annonce_france' => $nb_annonce_france,
'nb_annonce_belgique' => $nb_annonce_belgique,
'nb_annonce_canada' => $nb_annonce_canada,
'nb_annonce_suisse' => $nb_annonce_suisse,
'nb_annonce_autres_pays' => $nb_annonce_autres_pays,
'array_annonce_region_du_pays' => $array_annonce_region_du_pays,
'lang' => $lang,
'codePays' => $codePays
]
);
}
public function trouverCvRepreneurParCategorie($lang, $codePays)
{
$annonces_secteur_activite = $this->getNbAnnoncesBySecteursActivite();
return $this->render(
"ouvrir_capital/fragments/cv_repreneur/trouver_annonce_par_categorie.html.twig",
[
'annonces_secteur_activite' => $annonces_secteur_activite,
'lang' => $lang,
'codePays' => $codePays
]
);
}
public function recherchestandardannonceacquisition (Request $request, TranslationExtension $translationExtension, ContainerBagInterface $container, $codePays): Response
{
$reference_mots_cles = $request->query->get('reference_mots_cles');
// Si on fait une recherche simple
if (isset($reference_mots_cles) && $reference_mots_cles != "") {
// Si on recherche par idAnnonce
if (preg_match("/v([0-9]{3,8})/i",$reference_mots_cles) == true || preg_match("/([0-9]{3,8})/",$reference_mots_cles) == true) {
$idAnnonce = preg_replace("/[^0-9]/", "", $reference_mots_cles);
$annonce = $this->am->getAnnonceAcheteurById($idAnnonce);
// Si l'annonce existe et est publique
if ($annonce && $annonce['mode_annonce'] == "publique") {
$slug = Utils::slugify($annonce['titre_annonce']);
//return $this->forward('App\Controller\VendreEntrepriseController::redirectiononglet', ['slug' => $slug, 'idAnnonce' => $idAnnonce, 'codePays' => $codePays]);
return $this->redirectToRoute('vendre_entreprise_annonce_acquisition_details', ['slug' => $slug, 'idAnnonce' => $idAnnonce, 'codePays' => $codePays, 'nomLocalisation' => $annonce['nom_localisation_slug'], 'from' => 'ouvrir-capital']);
} else {
$lang = $request->getSession()->get('lang');
$this->addFlash('error', $translationExtension->translate('annonce introuvable : l’annonce a été supprimée, remise en attente ou est en cours de modification', $lang, '', 'M', ''));
}
// Si on recherche par mots cles
} else {
// A developper
$request->query->set('type_recherche', 5);
return $this->forward('App\Controller\OuvrirCapitalController::annonceacquisition', ['codePays' => $codePays, 'request' => $request]);
}
}
return $this->render(
'ouvrir_capital/recherche_standard_annonce_acquisition.html.twig',
[
]
);
}
public function dernieresAnnoncesAcquisition($lang, $codePays)
{
$dernieresAnnonces = $this->am->getDernieresAnnoncesAcquisitions(5, "entreprise", "acquereur_investisseur", $lang, $this->getIdPaysByCodePays($codePays));
return $this->render(
'ouvrir_capital/fragments/acquereur_investisseur/dernieres_annonces.html.twig',
[
'dernieresAnnonces' => $dernieresAnnonces,
'lang' => $lang,
'codePays' => $codePays
]
);
}
public function trouverAnnonceAcquisitionParLocalisation($lang, $codePays)
{
$array_annonce_region_du_pays = $this->am->donne_tableau_nb_annonce_acheteur_par_region($this->getIdPaysByCodePays($codePays));
$nb_regions = count($array_annonce_region_du_pays);
if ($nb_regions % 2 != 0) {
$moitie = ceil($nb_regions / 2);
} else {
$moitie = $nb_regions / 2;
}
$colonne_region_gauche = array_slice($array_annonce_region_du_pays, 0, $moitie);
$colonne_region_droite = array_slice($array_annonce_region_du_pays, $moitie);
$nb_annonce_france = $this->getAnnoncesNumbers(['id_localisation' => 'p33'])['nb_acquereurs_investisseurs'];
$nb_annonce_belgique = $this->getAnnoncesNumbers(['id_localisation' => 'p32'])['nb_acquereurs_investisseurs'];
$nb_annonce_canada = $this->getAnnoncesNumbers(['id_localisation' => 'p01'])['nb_acquereurs_investisseurs'];
$nb_annonce_suisse = $this->getAnnoncesNumbers(['id_localisation' => 'p41'])['nb_acquereurs_investisseurs'];
$nb_annonce_autres_pays = $this->getAnnoncesNumbers(['id_localisation' => 'p99'])['nb_acquereurs_investisseurs'];
return $this->render(
"ouvrir_capital/fragments/acquereur_investisseur/trouver_annonce_par_localisation_".$this->getVersionByCodePays($codePays).".html.twig",
[
'colonne_region_gauche' => $colonne_region_gauche,
'colonne_region_droite' => $colonne_region_droite,
'nb_annonce_france' => $nb_annonce_france,
'nb_annonce_belgique' => $nb_annonce_belgique,
'nb_annonce_canada' => $nb_annonce_canada,
'nb_annonce_suisse' => $nb_annonce_suisse,
'nb_annonce_autres_pays' => $nb_annonce_autres_pays,
'array_annonce_region_du_pays' => $array_annonce_region_du_pays,
'lang' => $lang,
'codePays' => $codePays
]
);
}
public function trouverAnnonceAcquisitionParCategorie($lang, $codePays)
{
$annonces_secteur_activite = $this->getNbAnnoncesBySecteursActivite();
return $this->render(
"ouvrir_capital/fragments/acquereur_investisseur/trouver_annonce_par_categorie.html.twig",
[
'annonces_secteur_activite' => $annonces_secteur_activite,
'lang' => $lang,
'codePays' => $codePays
]
);
}
public function recherchestandardfondsinvestissement (Request $request, TranslationExtension $translationExtension, ContainerBagInterface $container, $codePays): Response
{
$reference_mots_cles = $request->query->get('reference_mots_cles');
// Si on fait une recherche simple
if (isset($reference_mots_cles) && $reference_mots_cles != "") {
// Recherche par mots clés uniquement
$request->query->set('type_recherche', 5);
return $this->forward('App\Controller\OuvrirCapitalController::fondsinvestissement', ['codePays' => $codePays, 'request' => $request]);
}
return $this->render(
'ouvrir_capital/recherche_standard_fonds_investissement.html.twig',
[
]
);
}
public function trouverFondsInvestissementParLocalisation($lang, $codePays)
{
$array_annonce_region_du_pays = $this->sm->donne_tableau_nb_fonds_investissement_par_region($this->getIdPaysByCodePays($codePays));
$nb_regions = count($array_annonce_region_du_pays);
if ($nb_regions % 2 != 0) {
$moitie = ceil($nb_regions / 2);
} else {
$moitie = $nb_regions / 2;
}
$colonne_region_gauche = array_slice($array_annonce_region_du_pays, 0, $moitie);
$colonne_region_droite = array_slice($array_annonce_region_du_pays, $moitie);
$nb_annonce_france = $this->getAnnoncesNumbers(['id_localisation' => 'p33'])['nb_fonds_investissement'];
$nb_annonce_belgique = $this->getAnnoncesNumbers(['id_localisation' => 'p32'])['nb_fonds_investissement'];
$nb_annonce_canada = $this->getAnnoncesNumbers(['id_localisation' => 'p01'])['nb_fonds_investissement'];
$nb_annonce_suisse = $this->getAnnoncesNumbers(['id_localisation' => 'p41'])['nb_fonds_investissement'];
$nb_annonce_autres_pays = $this->getAnnoncesNumbers(['id_localisation' => 'p99'])['nb_fonds_investissement'];
return $this->render(
"ouvrir_capital/fragments/fonds_investissement/trouver_annonce_par_localisation_".$this->getVersionByCodePays($codePays).".html.twig",
[
'colonne_region_gauche' => $colonne_region_gauche,
'colonne_region_droite' => $colonne_region_droite,
'nb_annonce_france' => $nb_annonce_france,
'nb_annonce_belgique' => $nb_annonce_belgique,
'nb_annonce_canada' => $nb_annonce_canada,
'nb_annonce_suisse' => $nb_annonce_suisse,
'nb_annonce_autres_pays' => $nb_annonce_autres_pays,
'array_annonce_region_du_pays' => $array_annonce_region_du_pays,
'lang' => $lang,
'codePays' => $codePays
]
);
}
public function trouverFondsInvestissementParCategorie($lang, $codePays)
{
$annonces_secteur_activite = $this->getNbAnnoncesBySecteursActivite();
return $this->render(
"ouvrir_capital/fragments/fonds_investissement/trouver_annonce_par_categorie.html.twig",
[
'annonces_secteur_activite' => $annonces_secteur_activite,
'lang' => $lang,
'codePays' => $codePays
]
);
}
public function rechercheavanceefondsinvestissement(Request $request, SecteursActiviteManagers $secteursActiviteManager, TranslationExtension $translationExtension, LocalisationsManagers $localisationManager, $codePays): Response
{
$parametres = $request->query->all();
$parametres = ParametersProvider::prepareRechercheAvanceeOuvrirCapitalParameters($parametres);
$parametres_localisations = ParametersProvider::prepareLocalisationsParameters($localisationManager, $parametres);
$parametres_secteurs = ParametersProvider::prepareSecteursParameters($secteursActiviteManager, $parametres);
$string_params = $this->serializeParams($parametres);
$lang = $request->getSession()->get('lang');
//$secteurs_activite_fonds = $secteursActiviteManager->donne_option_select_secteurs_activite_fonds();
$secteurs_activite1 = $secteursActiviteManager->donne_option_select_secteurs_activite_niveau_1();
if (isset($parametres['id_secteur_activite'])) {
$secteurs_activite2 = $secteursActiviteManager->donne_option_select_secteurs_activite_enfant_by_secteur_activite_parent($parametres['id_secteur_activite']);
$show_secteur_niveau_2 = true;
} else {
$secteurs_activite2 = [];
$show_secteur_niveau_2 = false;
}
if (isset($parametres['id_secteur_activite2'])) {
$secteurs_activite3 = $secteursActiviteManager->donne_option_select_secteurs_activite_enfant_by_secteur_activite_parent($parametres['id_secteur_activite2']);
$show_secteur_niveau_3 = true;
} else {
$secteurs_activite3 = [];
$show_secteur_niveau_3 = false;
}
$idPays = $this->getIdPaysByCodePays($codePays);
$pays = $this->sm->donne_option_select_pays_fonds_investissement($idPays);
$regions = [];
$type_reprise_bis = [
$translationExtension->translate("majoritaire", $lang, '', 'M', '') => 'majoritaire',
$translationExtension->translate("minoritaire", $lang, '', 'M', '') => 'minoritaire',
$translationExtension->translate("ouvert aux deux", $lang, '', 'M', '') => ''
];
$recherche_par = [
$translationExtension->translate("mots-cles de l'activite recherchee", $lang, '', 'M', '') => 'motscles',
$translationExtension->translate("secteur predefini", $lang, '', 'M', '') => 'secteurs'
];
$formFactory = Forms::createFormFactoryBuilder()->getFormFactory();
$form = $formFactory->createNamedBuilder('')
->add('id_pays', ChoiceType::class, [
'choices' => $pays,
])
->add('id_region', ChoiceType::class, [
'choices' => $regions,
])
->add('id_localisation', HiddenType::class, [
'data' => $parametres['id_localisation']
])
->add('ajouter', ButtonType::class)
->add('id_secteur_activite', ChoiceType::class, [
'choices' => $secteurs_activite1,
'data' => $parametres['id_secteur_activite']
])
->add('id_secteur_activite2', ChoiceType::class, [
'choices' => $secteurs_activite2,
'data' => $parametres['id_secteur_activite2']
])
->add('id_secteur_activite3', ChoiceType::class, [
'choices' => $secteurs_activite3,
'data' => $parametres['id_secteur_activite3']
])
->add('id_secteur', HiddenType::class, [
'data' => $parametres['id_secteur'],
])
->add('ajouter_secteur_activite', ButtonType::class)
->add('montant_recherche', TextType::class, [
'required' => false,
'attr' => [
'placeholder' => ''
],
'data' => $parametres['montant_recherche']
])
->add('type_reprise_bis', ChoiceType::class, [
'required' => false,
'choices' => $type_reprise_bis,
'expanded' => true,
'multiple' => false,
'data' => $parametres['type_reprise_bis']
])
->add('reference_mots_cles', TextType::class, [
'required' => false,
'data' => $parametres['reference_mots_cles'],
'attr' => [
'placeholder' => $translationExtension->translate("transport, services informatiques, ...", $lang, '', 'M', '')
]
])
->add('recherche_par', ChoiceType::class, [
'required' => false,
'choices' => $recherche_par,
'expanded' => true,
'multiple' => false,
'data' => $parametres['recherche_par'],
'placeholder' => false,
'choice_value' => function ($choice) {
return $choice; // Utilisez la valeur du choix comme clé
}
])
->add('rechercher', SubmitType::class)
->setAction($this->generateUrl('ouvrir_capital_resultats_fonds_investissement', ['codePays' => $codePays]))
->setMethod('GET')
->getForm();
return $this->render(
'ouvrir_capital/recherche_avancee_fonds_investissement.html.twig',
[
'form' => $form->createView(),
'parametres' => $parametres,
'parametres_localisations' => $parametres_localisations,
'parametres_secteurs' => $parametres_secteurs,
'string_params' => $string_params,
'show_secteur_niveau_2' => $show_secteur_niveau_2,
'show_secteur_niveau_3' => $show_secteur_niveau_3
]
);
}
public function rechercheavanceecvrepreneur(Request $request, SecteursActiviteManagers $secteursActiviteManager, TranslationExtension $translationExtension, LocalisationsManagers $localisationManager, $codePays): Response
{
$parametres = $request->query->all();
$parametres = ParametersProvider::prepareRechercheAvanceeOuvrirCapitalParameters($parametres);
$parametres_localisations = ParametersProvider::prepareLocalisationsParameters($localisationManager, $parametres);
$parametres_secteurs = ParametersProvider::prepareSecteursParameters($secteursActiviteManager, $parametres);
$string_params = $this->serializeParams($parametres);
$lang = $request->getSession()->get('lang');
//$secteurs_activite_fonds = $secteursActiviteManager->donne_option_select_secteurs_activite_fonds();
$secteurs_activite1 = $secteursActiviteManager->donne_option_select_secteurs_activite_niveau_1();
if (isset($parametres['id_secteur_activite'])) {
$secteurs_activite2 = $secteursActiviteManager->donne_option_select_secteurs_activite_enfant_by_secteur_activite_parent($parametres['id_secteur_activite']);
$show_secteur_niveau_2 = true;
} else {
$secteurs_activite2 = [];
$show_secteur_niveau_2 = false;
}
if (isset($parametres['id_secteur_activite2'])) {
$secteurs_activite3 = $secteursActiviteManager->donne_option_select_secteurs_activite_enfant_by_secteur_activite_parent($parametres['id_secteur_activite2']);
$show_secteur_niveau_3 = true;
} else {
$secteurs_activite3 = [];
$show_secteur_niveau_3 = false;
}
$type_reprise_bis = [
$translationExtension->translate("majoritaire", $lang, '', 'M', '') => 'majoritaire',
$translationExtension->translate("minoritaire", $lang, '', 'M', '') => 'minoritaire',
$translationExtension->translate("ouvert aux deux", $lang, '', 'M', '') => ''
];
$idPays = $this->getIdPaysByCodePays($codePays);
$pays = $this->arm->donne_option_select_pays_annuaire_repreneurs($idPays);
$regions = [];
$recherche_par = [
$translationExtension->translate("mots-cles de l'activite recherchee", $lang, '', 'M', '') => 'motscles',
$translationExtension->translate("secteur predefini", $lang, '', 'M', '') => 'secteurs'
];
$formFactory = Forms::createFormFactoryBuilder()->getFormFactory();
$form = $formFactory->createNamedBuilder('')
->add('id_pays', ChoiceType::class, [
'choices' => $pays,
])
->add('id_region', ChoiceType::class, [
'choices' => $regions,
])
->add('id_localisation', HiddenType::class, [
'data' => $parametres['id_localisation']
])
->add('ajouter', ButtonType::class)
->add('id_secteur_activite', ChoiceType::class, [
'choices' => $secteurs_activite1,
'data' => $parametres['id_secteur_activite']
])
->add('id_secteur_activite2', ChoiceType::class, [
'choices' => $secteurs_activite2,
'data' => $parametres['id_secteur_activite2']
])
->add('id_secteur_activite3', ChoiceType::class, [
'choices' => $secteurs_activite3,
'data' => $parametres['id_secteur_activite3']
])
->add('id_secteur', HiddenType::class, [
'data' => $parametres['id_secteur'],
])
->add('ajouter_secteur_activite', ButtonType::class)
->add('montant_recherche', TextType::class, [
'required' => false,
'attr' => [
'placeholder' => $translationExtension->translate("en k€", $lang, '', 'm', '')
],
'data' => $parametres['montant_recherche']
])
->add('type_reprise_bis', ChoiceType::class, [
'required' => false,
'choices' => $type_reprise_bis,
'expanded' => true,
'multiple' => false,
'data' => $parametres['type_reprise_bis']
])
->add('reference_mots_cles', TextType::class, [
'required' => false,
'attr' => [
'placeholder' => $translationExtension->translate("transport, services informatiques, ...", $lang, '', 'M', '')
],
'data' => $parametres['reference_mots_cles']
])
->add('mots_cle_exact', HiddenType::class, [
'attr' => ['v-bind:value' => 'mots_cle_exact'],
'data' => $parametres['mots_cle_exact']
])
->add('type_recherche', HiddenType::class, [
'data' => 5,
])
->add('recherche_par', ChoiceType::class, [
'required' => false,
'choices' => $recherche_par,
'expanded' => true,
'multiple' => false,
'data' => $parametres['recherche_par'],
'placeholder' => false,
'choice_value' => function ($choice) {
return $choice; // Utilisez la valeur du choix comme clé
}
])
->add('rechercher', SubmitType::class)
->setAction($this->generateUrl('ouvrir_capital_resultats_cv_repreneur', ['codePays' => $codePays]))
->setMethod('GET')
->getForm();
return $this->render(
'ouvrir_capital/recherche_avancee_cv_repreneur.html.twig',
[
'form' => $form->createView(),
'parametres' => $parametres,
'parametres_localisations' => $parametres_localisations,
'parametres_secteurs' => $parametres_secteurs,
'string_params' => $string_params,
'show_secteur_niveau_2' => $show_secteur_niveau_2,
'show_secteur_niveau_3' => $show_secteur_niveau_3
]
);
}
public function rechercheavanceeannonceacquisition(Request $request, SecteursActiviteManagers $secteursActiviteManager, TranslationExtension $translationExtension, $codePays, LocalisationsManagers $localisationManager): Response
{
$parametres = $request->query->all();
$parametres = ParametersProvider::prepareRechercheAvanceeOuvrirCapitalParameters($parametres);
$parametres_localisations = ParametersProvider::prepareLocalisationsParameters($localisationManager, $parametres);
$parametres_secteurs = ParametersProvider::prepareSecteursParameters($secteursActiviteManager, $parametres);
$string_params = $this->serializeParams($parametres);
$lang = $request->getSession()->get('lang');
$idPays = $this->getIdPaysByCodePays($codePays);
$type_reprise_bis = [
$translationExtension->translate("majoritaire", $lang, '', 'M', '') => 'majoritaire',
$translationExtension->translate("minoritaire", $lang, '', 'M', '') => 'minoritaire',
$translationExtension->translate("ouvert aux deux", $lang, '', 'M', '') => ''
];
$pays = $this->am->donne_option_select_pays_annonces_acheteur("entreprise", $idPays);
$regions = [];
$departements = [];
//$secteurs_activite_fonds = $secteursActiviteManager->donne_option_select_secteurs_activite_fonds();
$secteurs_activite1 = $secteursActiviteManager->donne_option_select_secteurs_activite_niveau_1();
if (isset($parametres['id_secteur_activite'])) {
$secteurs_activite2 = $secteursActiviteManager->donne_option_select_secteurs_activite_enfant_by_secteur_activite_parent($parametres['id_secteur_activite']);
$show_secteur_niveau_2 = true;
} else {
$secteurs_activite2 = [];
$show_secteur_niveau_2 = false;
}
if (isset($parametres['id_secteur_activite2'])) {
$secteurs_activite3 = $secteursActiviteManager->donne_option_select_secteurs_activite_enfant_by_secteur_activite_parent($parametres['id_secteur_activite2']);
$show_secteur_niveau_3 = true;
} else {
$secteurs_activite3 = [];
$show_secteur_niveau_3 = false;
}
$recherche_par = [
$translationExtension->translate("mots-cles de l'activite recherchee", $lang, '', 'M', '') => 'motscles',
$translationExtension->translate("secteur predefini", $lang, '', 'M', '') => 'secteurs'
];
$formFactory = Forms::createFormFactoryBuilder()->getFormFactory();
$form = $formFactory->createNamedBuilder('')
->add('id_pays', ChoiceType::class, [
'choices' => $pays,
])
->add('id_region', ChoiceType::class, [
'choices' => $regions,
])
->add('id_localisation', HiddenType::class, [
'data' => $parametres['id_localisation']
])
->add('ajouter', ButtonType::class)
->add('id_secteur_activite', ChoiceType::class, [
'choices' => $secteurs_activite1,
'data' => $parametres['id_secteur_activite']
])
->add('id_secteur_activite2', ChoiceType::class, [
'choices' => $secteurs_activite2,
'data' => $parametres['id_secteur_activite2']
])
->add('id_secteur_activite3', ChoiceType::class, [
'choices' => $secteurs_activite3,
'data' => $parametres['id_secteur_activite3']
])
->add('id_secteur', HiddenType::class, [
'data' => $parametres['id_secteur'],
])
->add('ajouter_secteur_activite', ButtonType::class)
->add('montant_recherche', TextType::class, [
'required' => false,
'attr' => [
'placeholder' => ''
],
'data' => $parametres['montant_recherche']
])
->add('type_reprise_bis', ChoiceType::class, [
'required' => false,
'choices' => $type_reprise_bis,
'expanded' => true,
'multiple' => false,
'data' => $parametres['type_reprise_bis']
])
->add('reference_mots_cles', TextType::class, [
'required' => false,
'data' => $parametres['reference_mots_cles'],
'attr' => [
'placeholder' => $translationExtension->translate("transport, services informatiques, ...", $lang, '', 'M', '')
]
])
->add('recherche_par', ChoiceType::class, [
'required' => false,
'choices' => $recherche_par,
'expanded' => true,
'multiple' => false,
'data' => $parametres['recherche_par'],
'placeholder' => false,
'choice_value' => function ($choice) {
return $choice; // Utilisez la valeur du choix comme clé
}
])
->add('rechercher', SubmitType::class)
->setAction($this->generateUrl('ouvrir_capital_resultats_annonces_acquisition', ['codePays' => $codePays]))
->setMethod('GET')
->getForm();
$current_year = date('Y');
return $this->render(
'ouvrir_capital/recherche_avancee_annonce_acquisition.html.twig',
[
'form' => $form->createView(),
'parametres' => $parametres,
'parametres_localisations' => $parametres_localisations,
'parametres_secteurs' => $parametres_secteurs,
'current_year' => $current_year,
'string_params' => $string_params,
'show_secteur_niveau_2' => $show_secteur_niveau_2,
'show_secteur_niveau_3' => $show_secteur_niveau_3
]
);
}
public function rechercheavanceebusinessangel(Request $request, SecteursActiviteManagers $secteursActiviteManager, TranslationExtension $translationExtension, $codePays, LocalisationsManagers $localisationManager): Response
{
$parametres = $request->query->all();
$parametres = ParametersProvider::prepareRechercheAvanceeOuvrirCapitalParameters($parametres);
$parametres_localisations = ParametersProvider::prepareLocalisationsParameters($localisationManager, $parametres);
$parametres_secteurs = ParametersProvider::prepareSecteursParameters($secteursActiviteManager, $parametres);
$string_params = $this->serializeParams($parametres);
$lang = $request->getSession()->get('lang');
//$secteurs_activite_fonds = $secteursActiviteManager->donne_option_select_secteurs_activite_fonds();
$secteurs_activite1 = $secteursActiviteManager->donne_option_select_secteurs_activite_niveau_1();
if (isset($parametres['id_secteur_activite'])) {
$secteurs_activite2 = $secteursActiviteManager->donne_option_select_secteurs_activite_enfant_by_secteur_activite_parent($parametres['id_secteur_activite']);
$show_secteur_niveau_2 = true;
} else {
$secteurs_activite2 = [];
$show_secteur_niveau_2 = false;
}
if (isset($parametres['id_secteur_activite2'])) {
$secteurs_activite3 = $secteursActiviteManager->donne_option_select_secteurs_activite_enfant_by_secteur_activite_parent($parametres['id_secteur_activite2']);
$show_secteur_niveau_3 = true;
} else {
$secteurs_activite3 = [];
$show_secteur_niveau_3 = false;
}
$type_reprise_bis = [
$translationExtension->translate("majoritaire", $lang, '', 'M', '') => 'majoritaire',
$translationExtension->translate("minoritaire", $lang, '', 'M', '') => 'minoritaire',
$translationExtension->translate("ouvert aux deux", $lang, '', 'M', '') => ''
];
$idPays = $this->getIdPaysByCodePays($codePays);
$pays = $this->bam->donne_option_select_pays_business_angel($idPays);
$regions = [];
$recherche_par = [
$translationExtension->translate("mots-cles de l'activite recherchee", $lang, '', 'M', '') => 'motscles',
$translationExtension->translate("secteur predefini", $lang, '', 'M', '') => 'secteurs'
];
$formFactory = Forms::createFormFactoryBuilder()->getFormFactory();
$form = $formFactory->createNamedBuilder('')
->add('id_pays', ChoiceType::class, [
'choices' => $pays,
])
->add('id_region', ChoiceType::class, [
'choices' => $regions,
])
->add('id_localisation', HiddenType::class, [
'data' => $parametres['id_localisation']
])
->add('ajouter', ButtonType::class)
/*->add('id_secteur_activite_fonds', ChoiceType::class, [
'choices' => $secteurs_activite_fonds,
'data' => $parametres['id_secteur_activite_fonds']
])*/
->add('id_secteur_activite', ChoiceType::class, [
'choices' => $secteurs_activite1,
'data' => $parametres['id_secteur_activite']
])
->add('id_secteur_activite2', ChoiceType::class, [
'choices' => $secteurs_activite2,
'data' => $parametres['id_secteur_activite2']
])
->add('id_secteur_activite3', ChoiceType::class, [
'choices' => $secteurs_activite3,
'data' => $parametres['id_secteur_activite3']
])
->add('id_secteur', HiddenType::class, [
'data' => $parametres['id_secteur'],
])
->add('ajouter_secteur_activite', ButtonType::class)
->add('montant_recherche', TextType::class, [
'required' => false,
'attr' => [
'placeholder' => ''
],
'data' => $parametres['montant_recherche']
])
->add('type_reprise_bis', ChoiceType::class, [
'required' => false,
'choices' => $type_reprise_bis,
'expanded' => true,
'multiple' => false,
'data' => $parametres['type_reprise_bis']
])
->add('reference_mots_cles', TextType::class, [
'required' => false,
'data' => $parametres['reference_mots_cles'],
'attr' => [
'placeholder' => $translationExtension->translate("transport, services informatiques, ...", $lang, '', 'M', '')
]
])
->add('recherche_par', ChoiceType::class, [
'required' => false,
'choices' => $recherche_par,
'expanded' => true,
'multiple' => false,
'data' => $parametres['recherche_par'],
'placeholder' => false,
'choice_value' => function ($choice) {
return $choice; // Utilisez la valeur du choix comme clé
}
])
->add('rechercher', SubmitType::class)
->setAction($this->generateUrl('ouvrir_capital_resultats_business_angel', ['codePays' => $codePays]))
->setMethod('GET')
->getForm();
return $this->render(
'ouvrir_capital/recherche_avancee_business_angel.html.twig',
[
'form' => $form->createView(),
'parametres' => $parametres,
'parametres_localisations' => $parametres_localisations,
'parametres_secteurs' => $parametres_secteurs,
'string_params' => $string_params,
'show_secteur_niveau_2' => $show_secteur_niveau_2,
'show_secteur_niveau_3' => $show_secteur_niveau_3
]
);
}
public function fondsinvestissement(Request $request, PaginatorInterface $paginator, LocalisationsManagers $localisationManager, LocalisationsRepository $localisationsRepo, TranslationExtension $translationExtension, ParametresDiversRepository $parametresDiversRepo, $type = null, $idLocalisation = null, $slug = null, $idSecteurActivite = null, $codePays): Response
{
$lang = $request->getSession()->get('lang');
$parametres = $request->query->all();
$is_recherche_by_localisation = false;
$metaTitle = $metaDescription = null;
// Recherche standard
if ($idLocalisation || $idSecteurActivite) {
// Preparation des parametres
if ($idLocalisation) {
if ($type == 'd') {
$parametres['id_departement'] = $idLocalisation;
$child_type = null;
$parent_type = "r";
} elseif ($type == "r") {
$parametres['id_region'] = $idLocalisation;
$child_type = "d";
$parent_type = "p";
} else {
$parametres['id_pays'] = $idLocalisation;
$child_type = "r";
$parent_type = null;
}
$parametres = ParametersProvider::prepareRechercheStandardParameters($parametres);
}
if ($idSecteurActivite) {
$parametres['id_secteur_activite'] = $idSecteurActivite;
$parametres = ParametersProvider::prepareRechercheStandardParameters($parametres);
}
// Recherche par localisation
if ($idLocalisation) {
$localisations = $localisationManager->getLocalisationCompleteWithNavById($idLocalisation);
if (!$localisations) {
$this->addFlash('error', $translationExtension->translate('erreur de localisation', $lang, '', 'M', ''));
return $this->redirectToRoute('ouvrir_capital_resultats_fonds_investissement', ['codePays' => $codePays]);
}
$villesRepo = $this->getDoctrine()->getRepository(Villes::class);
$noms_ville = $villesRepo->donne_string_noms_villes_principales_dune_localisation($idLocalisation);
$sous_localisations = $localisationsRepo->getSubLevelLocalisations($idLocalisation);
$sous_localisations_numbers = [];
$prev_localisation = [];
foreach ($sous_localisations as $sous_localisation) {
$params = [];
if ($idSecteurActivite) {
$params['id_secteur_activite'] = $idSecteurActivite;
}
if ($type == "r") {
$params['id_departement'] = $sous_localisation['id_localisation'];
} else {
if ($idLocalisation == "99") {
$params['id_pays'] = $sous_localisation['id_localisation'];
$child_type = "p";
} else {
$params['id_region'] = $sous_localisation['id_localisation'];
}
}
$sous_localisation['type'] = $child_type;
$params = ParametersProvider::prepareRechercheStandardParameters($params);
$annonces_numbers = $this->getAnnoncesNumbers($params);
if ($idLocalisation == 99) {
if ($sous_localisation['nom_localisation'] != "Confidentiel" && $annonces_numbers['nb_fonds_investissement'] != 0) {
$sous_localisations_numbers[] = array_merge($sous_localisation, $annonces_numbers);
}
} else {
if ($sous_localisation['nom_localisation'] != "Confidentiel" || $annonces_numbers['nb_fonds_investissement'] != 0) {
$sous_localisations_numbers[] = array_merge($sous_localisation, $annonces_numbers);
}
}
}
if (!$prev_localisation && $parent_type) {
$prev_localisation = isset($localisations[count($localisations) - 2]) ? $localisations[count($localisations) - 2] : null;
$prev_localisation['type'] = $parent_type;
}
$last_localisation = end($localisations);
$arrayVarsTrans['prefixe_localisation'] = $last_localisation['prefixe'];
$arrayVarsTrans['nom_localisation'] = strtoupper($last_localisation['nom_localisation']);
$metaTitle = '%$nb_fonds_investissement%$ fonds d\'investissement %$prefixe_localisation%$ %$nom_localisation%$';
$metaDescription = 'consultez %$nb_fonds_investissement%$ fonds d\'investissement %$prefixe_localisation%$ %$nom_localisation%$';
}
// Recherche par secteur d'activite
if ($idSecteurActivite) {
$secteurActivites = $this->sam->getTreeSecteursActivite($idSecteurActivite);
if (!$secteurActivites) {
$this->addFlash('error', $translationExtension->translate("erreur de secteur d'activité", $lang, '', 'M', ''));
return $this->redirectToRoute('ouvrir_capital_resultats_fonds_investissement', ['codePays' => $codePays]);
}
$secteurActiviteRepo = $this->getDoctrine()->getRepository(SecteursActivite::class);
$sous_secteurs = $secteurActiviteRepo->getAllSecteursActiviteEnfantByIdSecteurParent($idSecteurActivite);
$sous_secteurs_numbers = [];
$prev_secteur = [];
foreach ($sous_secteurs as $sous_secteur) {
$params = [];
$params['id_secteur_activite'] = $sous_secteur['idSecteurActivite'];
$params = ParametersProvider::prepareRechercheStandardParameters($params);
$annonces_numbers = $this->getAnnoncesNumbers($params);
$sous_secteurs_numbers[] = array_merge($sous_secteur, $annonces_numbers);
}
if (!$prev_secteur) {
$prev_secteur = isset($secteurActivites[count($secteurActivites) - 2]) ? $secteurActivites[count($secteurActivites) - 2] : null;
}
$last_secteur = end($secteurActivites);
$arrayVarsTrans['nomPourTitle'] = $last_secteur->getNomPourTitle();
// Si ce n'est pas une recherche croisée
if (!$idLocalisation) {
$metaTitle = '%$nb_fonds_investissement%$ fonds d\'investissement %$nomPourTitle%$';
$metaDescription = 'consultez %$nb_fonds_investissement%$ fonds d\'investissement %$nomPourTitle%$';
} else {
$metaTitle = '%$nb_fonds_investissement%$ fonds d\'investissement %$nomPourTitle%$ %$prefixe_localisation%$ %$nom_localisation%$';
$metaDescription = 'consultez %$nb_fonds_investissement%$ fonds d\'investissement %$nomPourTitle%$ %$prefixe_localisation%$ %$nom_localisation%$';
}
}
// Recherche avancée / dernières annonces
} else {
$parametres = ParametersProvider::prepareRechercheAvanceeOuvrirCapitalParameters($parametres);
}
$is_recherche = ParametersProvider::prepareRechercheAvanceeOuvrirCapitalParameters() !== ParametersProvider::prepareRechercheAvanceeOuvrirCapitalParameters($parametres);
if (isset($parametres['id_localisation']) && $parametres['id_localisation'] != "") {
$is_recherche_by_localisation = true;
}
$string_params = $string_params_without_page = $this->serializeParams($parametres);
// Si c'est une recherche, on calcule les nb Ă afficher
if ($is_recherche) {
$repoAcheteur = $this->getDoctrine()->getRepository(AnnoncesAcheteur::class);
$repoAnnuaireRepreneur = $this->getDoctrine()->getRepository(AnnuaireRepreneurs::class);
$repoSociete = $this->getDoctrine()->getRepository(Societes::class);
$repoInvestisseursPrives = $this->getDoctrine()->getRepository(InvestisseursPrives::class);
$parametres['from_list'] = "acquereur_investisseur";
$nb_acquereurs_investisseurs = $repoAcheteur->donne_nb_annonces_achat($parametres);
$parametres['from_list'] = "cv_repreneur_investisseur";
$nb_repreneurs_investisseurs = $repoAnnuaireRepreneur->donne_nb_cv_repreneurs($parametres);
$nb_fonds_investissement = $repoSociete->donne_nb_fonds_investissement($parametres);
$nb_business_angel = $repoInvestisseursPrives->donne_nb_investisseurs_prives($parametres);
$nb_recherches_partenariats = $repoAcheteur->donne_nb_annonces_achat_recherche_partenaire($parametres);
$nb_annonces = $nb_repreneurs_investisseurs + $nb_business_angel + $nb_acquereurs_investisseurs + $nb_fonds_investissement + $nb_recherches_partenariats;
} else {
// Sinon on récupère les nb stockés dans parametres_divers
$nb = $parametresDiversRepo->getListNombresAafficher();
$nb_acquereurs_investisseurs = $nb->ouvrir_mon_capital_nb_acquereurs_investisseurs;
$nb_repreneurs_investisseurs = $nb->ouvrir_mon_capital_nb_cv_repreneurs_investisseurs;
$nb_fonds_investissement = $nb->ouvrir_mon_capital_nb_fonds_investissement;
$nb_business_angel = $nb->ouvrir_mon_capital_nb_business_angels;
$nb_recherches_partenariats = $nb->reprendre_une_entreprise_nb_recherches_de_partenariats;
$nb_annonces = $nb_repreneurs_investisseurs + $nb_business_angel + $nb_acquereurs_investisseurs + $nb_fonds_investissement + $nb_recherches_partenariats;
}
$liste_fonds = $this->sm->getFondsInvestissementList($request, $paginator, $parametres);
$tri = isset($parametres['tri']) ? $parametres['tri'] : null;
$numero_contact = "01 48 28 20 23"; // A rendre dynamique
$page = $request->query->get('page');
if ($page != null && $page != 1) {
$string_params .= "&page=" . $page;
}
$urlList = $request->getPathInfo();
$tri_default = null;
// Si aucun tri
if (!$tri) {
if ($is_recherche) {
$tri_default = "ca_desc";
} else {
$tri_default = "date_desc";
}
}
// Verifier si droit_acces Annuaire participation ou Fusacq Expert
$has_service = false;
//On verifie si l'utilisateur a le droit de consulter cette page
$user = $this->getUser();
if ($user) {
$has_service = $this->dam->checkIfThisUserHasDroitService($user, [47]); // 47 = annuaire fond investissement
} else {
$has_service = false;
}
// Si ce n'est pas une recherche par loc / sec ou croisé
if ($metaTitle == null && $metaTitle == null) {
$metaTitle = '%$nb_fonds_investissement%$ fonds d\'investissement';
$metaDescription = 'consultez %$nb_fonds_investissement%$ fonds d\'investissement en fonction de vos critères de recherche.';
}
$arrayVarsTrans['nb_fonds_investissement'] = $nb_fonds_investissement;
if ($nb_fonds_investissement > 1) {
$p = 'p';
} else {
$p = '';
}
$metaTag = $this->metaTag
->setTitle($translationExtension->translate($metaTitle, $lang, "", "M", $p, $arrayVarsTrans))
->setDescription($translationExtension->translate($metaDescription, $lang, "", "M", $p, $arrayVarsTrans))
->setRobots('noindex');
$array_return = [
'metaTag' => $metaTag,
'nb_annonces' => $nb_annonces,
'nb_fonds_investissement' => $nb_fonds_investissement,
'nb_repreneurs_investisseurs' => $nb_repreneurs_investisseurs,
'nb_business_angel' => $nb_business_angel,
'nb_acquereurs_investisseurs' => $nb_acquereurs_investisseurs,
'nb_recherches_partenariats' => $nb_recherches_partenariats,
'liste_fonds' => $liste_fonds,
'has_service' => $has_service,
'string_params' => $string_params,
'string_params_without_page' => $string_params_without_page,
'urlList' => $urlList,
'tri' => $tri,
'numero_contact' => $numero_contact,
'idLocalisation' => null,
'idSecteurActivite' => null,
'tri_default' => $tri_default,
'is_recherche' => $is_recherche
];
if ($idLocalisation || $idSecteurActivite) {
if ($idLocalisation) {
$array_return['idLocalisation'] = $idLocalisation;
$array_return['idSecteurActivite'] = $idSecteurActivite ? $idSecteurActivite : null;
$array_return['slug'] = $slug;
$array_return['type'] = $type;
$array_return['localisations'] = $localisations;
$array_return['noms_ville'] = $noms_ville;
$array_return['sous_localisations_numbers'] = $sous_localisations_numbers;
$array_return['prev_localisation'] = $prev_localisation;
}
if ($idSecteurActivite) {
$array_return['idSecteurActivite'] = $idSecteurActivite;
$array_return['idLocalisation'] = $idLocalisation ? $idLocalisation : null;
$array_return['slug'] = $slug;
$array_return['secteurActivites'] = $secteurActivites;
$array_return['sous_secteurs_numbers'] = $sous_secteurs_numbers;
$array_return['prev_secteur'] = $prev_secteur;
}
if ($idLocalisation && $idSecteurActivite) {
$array_return['idLocalisation'] = $idLocalisation;
}
}
return $this->render(
'ouvrir_capital/fonds_investissement.html.twig',
$array_return
);
}
public function cvrepreneur(Request $request, PaginatorInterface $paginator, ContainerBagInterface $container, LocalisationsManagers $localisationManager, AnnuairesManagers $annuairesManager, LocalisationsRepository $localisationsRepo, TranslationExtension $translationExtension, ParametresDiversRepository $parametresDiversRepo, $type = null, $idLocalisation = null, $slug = null, $idSecteurActivite = null, $codePays): Response
{
$lang = $request->getSession()->get('lang');
$parametres = $request->query->all();
$is_recherche_by_localisation = false;
$metaTitle = $metaDescription = null;
// Recherche standard
if ($idLocalisation || $idSecteurActivite) {
// Preparation des parametres
if ($idLocalisation) {
if ($type == 'd') {
$parametres['id_departement'] = $idLocalisation;
$child_type = null;
$parent_type = "r";
} elseif ($type == "r") {
$parametres['id_region'] = $idLocalisation;
$child_type = "d";
$parent_type = "p";
} else {
$parametres['id_pays'] = $idLocalisation;
$child_type = "r";
$parent_type = null;
}
$parametres = ParametersProvider::prepareRechercheStandardParameters($parametres);
}
if ($idSecteurActivite) {
$parametres['id_secteur_activite'] = $idSecteurActivite;
$parametres = ParametersProvider::prepareRechercheStandardParameters($parametres);
}
// Recherche par localisation
if ($idLocalisation) {
$localisations = $localisationManager->getLocalisationCompleteWithNavById($idLocalisation);
if (!$localisations) {
$this->addFlash('error', $translationExtension->translate('erreur de localisation', $lang, '', 'M', ''));
return $this->redirectToRoute('vendre_entreprise_resultats_annonces_acquisition', ['codePays' => $codePays]);
}
$villesRepo = $this->getDoctrine()->getRepository(Villes::class);
$noms_ville = $villesRepo->donne_string_noms_villes_principales_dune_localisation($idLocalisation);
$sous_localisations = $localisationsRepo->getSubLevelLocalisations($idLocalisation);
$sous_localisations_numbers = [];
$prev_localisation = [];
foreach ($sous_localisations as $sous_localisation) {
$params = [];
if ($idSecteurActivite) {
$params['id_secteur_activite'] = $idSecteurActivite;
}
if ($type == "r") {
$params['id_departement'] = $sous_localisation['id_localisation'];
} else {
if ($idLocalisation == "99") {
$params['id_pays'] = $sous_localisation['id_localisation'];
$child_type = "p";
} else {
$params['id_region'] = $sous_localisation['id_localisation'];
}
}
$sous_localisation['type'] = $child_type;
$params = ParametersProvider::prepareRechercheStandardParameters($params);
$annonces_numbers = $this->getAnnoncesNumbers($params);
if ($idLocalisation == 99) {
if ($sous_localisation['nom_localisation'] != "Confidentiel" && $annonces_numbers['nb_repreneurs_investisseurs'] != 0) {
$sous_localisations_numbers[] = array_merge($sous_localisation, $annonces_numbers);
}
} else {
if ($sous_localisation['nom_localisation'] != "Confidentiel" || $annonces_numbers['nb_repreneurs_investisseurs'] != 0) {
$sous_localisations_numbers[] = array_merge($sous_localisation, $annonces_numbers);
}
}
}
if (!$prev_localisation && $parent_type) {
$prev_localisation = isset($localisations[count($localisations) - 2]) ? $localisations[count($localisations) - 2] : null;
$prev_localisation['type'] = $parent_type;
}
$last_localisation = end($localisations);
$arrayVarsTrans['prefixe_localisation'] = $last_localisation['prefixe'];
$arrayVarsTrans['nom_localisation'] = strtoupper($last_localisation['nom_localisation']);
$metaTitle = '%$nb_repreneurs_investisseurs%$ CV de $$repreneur investisseur$${p|repreneurs investisseurs} %$prefixe_localisation%$ %$nom_localisation%$';
$metaDescription = 'consultez %$nb_repreneurs_investisseurs%$ CV de $$repreneur investisseur$${p|repreneurs investisseurs} %$prefixe_localisation%$ %$nom_localisation%$';
}
// Recherche par secteur d'activite
if ($idSecteurActivite) {
$secteurActivites = $this->sam->getTreeSecteursActivite($idSecteurActivite);
if (!$secteurActivites) {
$this->addFlash('error', $translationExtension->translate("erreur de secteur d'activité", $lang, '', 'M', ''));
return $this->redirectToRoute('vendre_entreprise_resultats_annonces_acquisition', ['codePays' => $codePays]);
}
$secteurActiviteRepo = $this->getDoctrine()->getRepository(SecteursActivite::class);
$sous_secteurs = $secteurActiviteRepo->getAllSecteursActiviteEnfantByIdSecteurParent($idSecteurActivite);
$sous_secteurs_numbers = [];
$prev_secteur = [];
foreach ($sous_secteurs as $sous_secteur) {
$params = [];
$params['id_secteur_activite'] = $sous_secteur['idSecteurActivite'];
$params = ParametersProvider::prepareRechercheStandardParameters($params);
$annonces_numbers = $this->getAnnoncesNumbers($params);
$sous_secteurs_numbers[] = array_merge($sous_secteur, $annonces_numbers);
}
if (!$prev_secteur) {
$prev_secteur = isset($secteurActivites[count($secteurActivites) - 2]) ? $secteurActivites[count($secteurActivites) - 2] : null;
}
$last_secteur = end($secteurActivites);
$arrayVarsTrans['nomPourTitle'] = $last_secteur->getNomPourTitle();
// Si ce n'est pas une recherche croisée
if (!$idLocalisation) {
$metaTitle = '%$nb_repreneurs_investisseurs%$ CV de $$repreneur investisseur$${p|repreneurs investisseurs} %$nomPourTitle%$';
$metaDescription = 'consultez %$nb_repreneurs_investisseurs%$ CV de $$repreneur investisseur$${p|repreneurs investisseurs} %$nomPourTitle%$';
} else {
$metaTitle = '%$nb_repreneurs_investisseurs%$ CV de $$repreneur investisseur$${p|repreneurs investisseurs} %$nomPourTitle%$ %$prefixe_localisation%$ %$nom_localisation%$';
$metaDescription = 'consultez %$nb_repreneurs_investisseurs%$ CV de $$repreneur investisseur$${p|repreneurs investisseurs} %$nomPourTitle%$ %$prefixe_localisation%$ %$nom_localisation%$';
}
}
// Recherche avancée / dernières annonces
} else {
$parametres = ParametersProvider::prepareRechercheAvanceeOuvrirCapitalParameters($parametres);
}
$is_recherche = ParametersProvider::prepareRechercheAvanceeOuvrirCapitalParameters() !== ParametersProvider::prepareRechercheAvanceeOuvrirCapitalParameters($parametres);
if (isset($parametres['id_localisation']) && $parametres['id_localisation'] != "") {
$is_recherche_by_localisation = true;
}
$string_params = $string_params_without_page = $this->serializeParams($parametres);
// Si c'est une recherche, on calcule les nb Ă afficher
if ($is_recherche) {
$repoAcheteur = $this->getDoctrine()->getRepository(AnnoncesAcheteur::class);
$repoAnnuaireRepreneur = $this->getDoctrine()->getRepository(AnnuaireRepreneurs::class);
$repoSociete = $this->getDoctrine()->getRepository(Societes::class);
$repoInvestisseursPrives = $this->getDoctrine()->getRepository(InvestisseursPrives::class);
$parametres['from_list'] = "acquereur_investisseur";
$nb_acquereurs_investisseurs = $repoAcheteur->donne_nb_annonces_achat($parametres);
$parametres['from_list'] = "cv_repreneur_investisseur";
$nb_repreneurs_investisseurs = $repoAnnuaireRepreneur->donne_nb_cv_repreneurs($parametres);
unset($parametres['from_list']);
$nb_fonds_investissement = $repoSociete->donne_nb_fonds_investissement($parametres);
$nb_business_angel = $repoInvestisseursPrives->donne_nb_investisseurs_prives($parametres);
$nb_recherches_partenariats = $repoAcheteur->donne_nb_annonces_achat_recherche_partenaire($parametres);
$nb_annonces = $nb_repreneurs_investisseurs + $nb_business_angel + $nb_acquereurs_investisseurs + $nb_fonds_investissement + $nb_recherches_partenariats;
} else {
// Sinon on récupère les nb stockés dans parametres_divers
$nb = $parametresDiversRepo->getListNombresAafficher();
$nb_acquereurs_investisseurs = $nb->ouvrir_mon_capital_nb_acquereurs_investisseurs;
$nb_repreneurs_investisseurs = $nb->ouvrir_mon_capital_nb_cv_repreneurs_investisseurs;
$nb_fonds_investissement = $nb->ouvrir_mon_capital_nb_fonds_investissement;
$nb_business_angel = $nb->ouvrir_mon_capital_nb_business_angels;
$nb_recherches_partenariats = $nb->reprendre_une_entreprise_nb_recherches_de_partenariats;
$nb_annonces = $nb_repreneurs_investisseurs + $nb_business_angel + $nb_acquereurs_investisseurs + $nb_fonds_investissement + $nb_recherches_partenariats;
}
$nb_annonces = $nb_repreneurs_investisseurs + $nb_business_angel + $nb_acquereurs_investisseurs + $nb_fonds_investissement + $nb_recherches_partenariats;
$parametres['from_list'] = "cv_repreneur_investisseur";
$liste_cvs = $annuairesManager->getCVsRepreneursListBis($request, $paginator, $parametres);
unset($parametres['from_list']);
$tri = isset($parametres['tri']) ? $parametres['tri'] : null;
$page = $request->query->get('page');
if ($page != null && $page != 1) {
$string_params .= "&page=" . $page;
}
$urlList = $request->getPathInfo();
$tri_default = null;
// Si aucun tri
if (!$tri) {
// On trie par pertinence s'il y a une localisation
if ($is_recherche_by_localisation) {
$tri_default = "pertinence";
}
// Sinon par CA si c'est une recherche
else {
$tri_default = "date_desc";
}
}
// Si ce n'est pas une recherche par loc / sec ou croisé
if ($metaTitle == null && $metaTitle == null) {
$metaTitle = '%$nb_repreneurs_investisseurs%$ CV de $$repreneur investisseur$${p|repreneurs investisseurs}';
$metaDescription = 'consultez %$nb_repreneurs_investisseurs%$ CV de $$repreneur investisseur$${p|repreneurs investisseurs} en fonction de vos critères de recherche.';
}
$arrayVarsTrans['nb_repreneurs_investisseurs'] = $nb_repreneurs_investisseurs;
if ($nb_repreneurs_investisseurs > 1) {
$p = 'p';
} else {
$p = '';
}
$metaTag = $this->metaTag
->setTitle($translationExtension->translate($metaTitle, $lang, "", "M", $p, $arrayVarsTrans))
->setDescription($translationExtension->translate($metaDescription, $lang, "", "M", $p, $arrayVarsTrans))
->setRobots('noindex');
$array_return = [
'metaTag' => $metaTag,
'nb_annonces' => $nb_annonces,
'nb_fonds_investissement' => $nb_fonds_investissement,
'nb_repreneurs_investisseurs' => $nb_repreneurs_investisseurs,
'nb_business_angel' => $nb_business_angel,
'nb_acquereurs_investisseurs' => $nb_acquereurs_investisseurs,
'nb_recherches_partenariats' => $nb_recherches_partenariats,
'liste_cvs' => $liste_cvs,
'string_params' => $string_params,
'string_params_without_page' => $string_params_without_page,
'urlList' => $urlList,
'idLocalisation' => null,
'idSecteurActivite' => null,
'tri_default' => $tri_default,
'is_recherche_by_localisation' => $is_recherche_by_localisation,
'tri' => $tri,
'get' => isset($parametres['reference_mots_cles']) ? trim($parametres['reference_mots_cles']) : "_",
'cdn_fusacq' => $container->get('app.CDN')['CDN_FUSACQ'],
];
if ($idLocalisation || $idSecteurActivite) {
if ($idLocalisation) {
$array_return['idLocalisation'] = $idLocalisation;
$array_return['idSecteurActivite'] = $idSecteurActivite ? $idSecteurActivite : null;
$array_return['slug'] = $slug;
$array_return['type'] = $type;
$array_return['localisations'] = $localisations;
$array_return['noms_ville'] = $noms_ville;
$array_return['sous_localisations_numbers'] = $sous_localisations_numbers;
$array_return['prev_localisation'] = $prev_localisation;
}
if ($idSecteurActivite) {
$array_return['idSecteurActivite'] = $idSecteurActivite;
$array_return['idLocalisation'] = $idLocalisation ? $idLocalisation : null;
$array_return['slug'] = $slug;
$array_return['secteurActivites'] = $secteurActivites;
$array_return['sous_secteurs_numbers'] = $sous_secteurs_numbers;
$array_return['prev_secteur'] = $prev_secteur;
}
if ($idLocalisation && $idSecteurActivite) {
$array_return['idLocalisation'] = $idLocalisation;
}
}
return $this->render(
'ouvrir_capital/cv_repreneur.html.twig',
$array_return
);
}
public function annonceacquisition(Request $request, PaginatorInterface $paginator, ContainerBagInterface $container, LocalisationsManagers $localisationManager, LocalisationsRepository $localisationsRepo, TranslationExtension $translationExtension, ParametresDiversRepository $parametresDiversRepo, $type = null, $idLocalisation = null, $slug = null, $idSecteurActivite = null, $codePays): Response
{
$lang = $request->getSession()->get('lang');
$parametres = $request->query->all();
$is_recherche_by_localisation = false;
$metaTitle = $metaDescription = null;
// Recherche standard
if ($idLocalisation || $idSecteurActivite) {
// Preparation des parametres
if ($idLocalisation) {
if ($type == 'd') {
$parametres['id_departement'] = $idLocalisation;
$child_type = null;
$parent_type = "r";
} elseif ($type == "r") {
$parametres['id_region'] = $idLocalisation;
$child_type = "d";
$parent_type = "p";
} else {
$parametres['id_pays'] = $idLocalisation;
$child_type = "r";
$parent_type = null;
}
$parametres = ParametersProvider::prepareRechercheStandardParameters($parametres);
}
if ($idSecteurActivite) {
$parametres['id_secteur_activite'] = $idSecteurActivite;
$parametres = ParametersProvider::prepareRechercheStandardParameters($parametres);
}
// Recherche par localisation
if ($idLocalisation) {
$localisations = $localisationManager->getLocalisationCompleteWithNavById($idLocalisation);
if (!$localisations) {
$this->addFlash('error', $translationExtension->translate('erreur de localisation', $lang, '', 'M', ''));
return $this->redirectToRoute('ouvrir_capital_resultats_annonces_acquisition', ['codePays' => $codePays]);
}
$villesRepo = $this->getDoctrine()->getRepository(Villes::class);
$noms_ville = $villesRepo->donne_string_noms_villes_principales_dune_localisation($idLocalisation);
$sous_localisations = $localisationsRepo->getSubLevelLocalisations($idLocalisation);
$sous_localisations_numbers = [];
$prev_localisation = [];
foreach ($sous_localisations as $sous_localisation) {
$params = [];
if ($idSecteurActivite) {
$params['id_secteur_activite'] = $idSecteurActivite;
}
if ($type == "r") {
$params['id_departement'] = $sous_localisation['id_localisation'];
} else {
if ($idLocalisation == "99") {
$params['id_pays'] = $sous_localisation['id_localisation'];
$child_type = "p";
} else {
$params['id_region'] = $sous_localisation['id_localisation'];
}
}
$sous_localisation['type'] = $child_type;
$params = ParametersProvider::prepareRechercheStandardParameters($params);
$annonces_numbers = $this->getAnnoncesNumbers($params);
if ($idLocalisation == 99) {
if ($sous_localisation['nom_localisation'] != "Confidentiel" && $annonces_numbers['nb_acquereurs_investisseurs'] != 0) {
$sous_localisations_numbers[] = array_merge($sous_localisation, $annonces_numbers);
}
} else {
if ($sous_localisation['nom_localisation'] != "Confidentiel" || $annonces_numbers['nb_acquereurs_investisseurs'] != 0) {
$sous_localisations_numbers[] = array_merge($sous_localisation, $annonces_numbers);
}
}
}
if (!$prev_localisation && $parent_type) {
$prev_localisation = isset($localisations[count($localisations) - 2]) ? $localisations[count($localisations) - 2] : null;
$prev_localisation['type'] = $parent_type;
}
$last_localisation = end($localisations);
$arrayVarsTrans['prefixe_localisation'] = $last_localisation['prefixe'];
$arrayVarsTrans['nom_localisation'] = strtoupper($last_localisation['nom_localisation']);
$metaTitle = '%$nb_acquereurs_investisseurs%$ $$annonce d\'acquisition$${p|annonces d\'acquisition} %$prefixe_localisation%$ %$nom_localisation%$';
$metaDescription = 'consultez %$nb_acquereurs_investisseurs%$ $$annonce d\'acquisition$${p|annonces d\'acquisition} %$prefixe_localisation%$ %$nom_localisation%$';
}
// Recherche par secteur d'activite
if ($idSecteurActivite) {
$secteurActivites = $this->sam->getTreeSecteursActivite($idSecteurActivite);
if (!$secteurActivites) {
$this->addFlash('error', $translationExtension->translate("erreur de secteur d'activité", $lang, '', 'M', ''));
return $this->redirectToRoute('ouvrir_capital_resultats_annonces_acquisition', ['codePays' => $codePays]);
}
$secteurActiviteRepo = $this->getDoctrine()->getRepository(SecteursActivite::class);
$sous_secteurs = $secteurActiviteRepo->getAllSecteursActiviteEnfantByIdSecteurParent($idSecteurActivite);
$sous_secteurs_numbers = [];
$prev_secteur = [];
foreach ($sous_secteurs as $sous_secteur) {
$params = [];
$params['id_secteur_activite'] = $sous_secteur['idSecteurActivite'];
$params = ParametersProvider::prepareRechercheStandardParameters($params);
$annonces_numbers = $this->getAnnoncesNumbers($params);
$sous_secteurs_numbers[] = array_merge($sous_secteur, $annonces_numbers);
}
if (!$prev_secteur) {
$prev_secteur = isset($secteurActivites[count($secteurActivites) - 2]) ? $secteurActivites[count($secteurActivites) - 2] : null;
}
$last_secteur = end($secteurActivites);
$arrayVarsTrans['nomPourTitle'] = $last_secteur->getNomPourTitle();
// Si ce n'est pas une recherche croisée
if (!$idLocalisation) {
$metaTitle = '%$nb_acquereurs_investisseurs%$ $$annonce d\'acquisition$${p|annonces d\'acquisition} %$nomPourTitle%$';
$metaDescription = 'consultez %$nb_acquereurs_investisseurs%$ $$annonce d\'acquisition$${p|annonces d\'acquisition} %$nomPourTitle%$';
} else {
$metaTitle = '%$nb_acquereurs_investisseurs%$ $$annonce d\'acquisition$${p|annonces d\'acquisition} %$nomPourTitle%$ %$prefixe_localisation%$ %$nom_localisation%$';
$metaDescription = 'consultez %$nb_acquereurs_investisseurs%$ $$annonce d\'acquisition$${p|annonces d\'acquisition} %$nomPourTitle%$ %$prefixe_localisation%$ %$nom_localisation%$';
}
}
// Recherche avancée / dernières annonces
} else {
$parametres = ParametersProvider::prepareRechercheAvanceeOuvrirCapitalParameters($parametres);
}
$is_recherche = ParametersProvider::prepareRechercheAvanceeOuvrirCapitalParameters() !== ParametersProvider::prepareRechercheAvanceeOuvrirCapitalParameters($parametres);
if (isset($parametres['id_localisation']) && $parametres['id_localisation'] != "") {
$is_recherche_by_localisation = true;
}
$string_params = $string_params_without_page = $this->serializeParams($parametres);
$repoAcheteur = $this->getDoctrine()->getRepository(AnnoncesAcheteur::class);
// Si c'est une recherche, on calcule les nb Ă afficher
if ($is_recherche) {
$repoAnnuaireRepreneur = $this->getDoctrine()->getRepository(AnnuaireRepreneurs::class);
$repoSociete = $this->getDoctrine()->getRepository(Societes::class);
$repoInvestisseursPrives = $this->getDoctrine()->getRepository(InvestisseursPrives::class);
$parametres['from_list'] = "acquereur_investisseur";
$nb_acquereurs_investisseurs = $repoAcheteur->donne_nb_annonces_achat($parametres);
$parametres['from_list'] = "cv_repreneur_investisseur";
$nb_repreneurs_investisseurs = $repoAnnuaireRepreneur->donne_nb_cv_repreneurs($parametres);
$nb_fonds_investissement = $repoSociete->donne_nb_fonds_investissement($parametres);
$nb_business_angel = $repoInvestisseursPrives->donne_nb_investisseurs_prives($parametres);
$nb_recherches_partenariats = $repoAcheteur->donne_nb_annonces_achat_recherche_partenaire($parametres);
$nb_annonces = $nb_repreneurs_investisseurs + $nb_business_angel + $nb_acquereurs_investisseurs + $nb_fonds_investissement + $nb_recherches_partenariats;
} else {
// Sinon on récupère les nb stockés dans parametres_divers
$nb = $parametresDiversRepo->getListNombresAafficher();
$nb_acquereurs_investisseurs = $nb->ouvrir_mon_capital_nb_acquereurs_investisseurs;
$nb_repreneurs_investisseurs = $nb->ouvrir_mon_capital_nb_cv_repreneurs_investisseurs;
$nb_fonds_investissement = $nb->ouvrir_mon_capital_nb_fonds_investissement;
$nb_business_angel = $nb->ouvrir_mon_capital_nb_business_angels;
$nb_recherches_partenariats = $nb->reprendre_une_entreprise_nb_recherches_de_partenariats;
$nb_annonces = $nb_repreneurs_investisseurs + $nb_business_angel + $nb_acquereurs_investisseurs + $nb_fonds_investissement + $nb_recherches_partenariats;
}
$user = $this->getUser();
$login_utilisateur = isset($user) ? $user->_get('login_utilisateur') : null;
$dernieresAnnonces = $request->query->get('dernieresAnnonces');
$parametres['from_list'] = "acquereur_investisseur";
$nb_total_annonces_prioritaires = $repoAcheteur->donne_nb_annonces_acheteur_prioritaires($parametres, 'nombre');
$liste_annonces_prioritaires = [];
if ((null == $request->get('page') || 1 == $request->get('page')) && (!isset($_GET['tri']) || null == $_GET['tri'] || '21' == $_GET['tri'] || '' == $_GET['tri']) && $dernieresAnnonces == null) {
$liste_annonces_prioritaires = $this->am->getAnnoncesPrioritairesAcquisition($parametres, 'entreprise', $login_utilisateur);
}
$liste_annonces = $this->am->getAnnoncesAcquisitionList($request, $paginator, $parametres, 'entreprise', $login_utilisateur);
$page = $request->query->get('page');
if ($page != null && $page != 1) {
$string_params .= "&page=" . $page;
}
$tri = isset($parametres['tri']) ? $parametres['tri'] : null;
$urlList = $request->getPathInfo();
$tri_default = null;
// Si aucun tri
if (!$tri) {
// On trie par pertinence s'il y a une localisation
if ($is_recherche_by_localisation) {
$tri_default = "pertinence";
}
// Sinon par CA si c'est une recherche
elseif ($is_recherche) {
$tri_default = "ca_desc";
} else {
$tri_default = "date_desc";
}
}
// Si ce n'est pas une recherche par loc / sec ou croisé
if ($metaTitle == null && $metaTitle == null) {
$metaTitle = '%$nb_acquereurs_investisseurs%$ $$annonce d\'acquisition$${p|annonces d\'acquisition}';
$metaDescription = 'consultez %$nb_acquereurs_investisseurs%$ $$annonce d\'acquisition$${p|annonces d\'acquisition} en fonction de vos critères de recherche.';
}
$arrayVarsTrans['nb_acquereurs_investisseurs'] = $nb_acquereurs_investisseurs;
if ($nb_acquereurs_investisseurs > 1) {
$p = 'p';
} else {
$p = '';
}
$metaTag = $this->metaTag
->setTitle($translationExtension->translate($metaTitle, $lang, "", "M", $p, $arrayVarsTrans))
->setDescription($translationExtension->translate($metaDescription, $lang, "", "M", $p, $arrayVarsTrans))
->setRobots('noindex');
$array_return = [
'metaTag' => $metaTag,
'nb_annonces' => $nb_annonces,
'nb_fonds_investissement' => $nb_fonds_investissement,
'nb_repreneurs_investisseurs' => $nb_repreneurs_investisseurs,
'nb_business_angel' => $nb_business_angel,
'nb_acquereurs_investisseurs' => $nb_acquereurs_investisseurs,
'nb_recherches_partenariats' => $nb_recherches_partenariats,
'liste_annonces_prioritaires' => $liste_annonces_prioritaires,
'liste_annonces' => $liste_annonces,
'nb_total_annonces_prioritaires' => $nb_total_annonces_prioritaires,
'string_params' => $string_params,
'string_params_without_page' => $string_params_without_page,
'tri' => $tri,
'urlList' => $urlList,
'idLocalisation' => null,
'idSecteurActivite' => null,
'tri_default' => $tri_default,
'is_recherche_by_localisation' => $is_recherche_by_localisation,
'cdn_fusacq' => $container->get('app.CDN')['CDN_FUSACQ'],
];
if ($idLocalisation || $idSecteurActivite) {
if ($idLocalisation) {
$array_return['idLocalisation'] = $idLocalisation;
$array_return['idSecteurActivite'] = $idSecteurActivite ? $idSecteurActivite : null;
$array_return['slug'] = $slug;
$array_return['type'] = $type;
$array_return['localisations'] = $localisations;
$array_return['noms_ville'] = $noms_ville;
$array_return['sous_localisations_numbers'] = $sous_localisations_numbers;
$array_return['prev_localisation'] = $prev_localisation;
}
if ($idSecteurActivite) {
$array_return['idSecteurActivite'] = $idSecteurActivite;
$array_return['idLocalisation'] = $idLocalisation ? $idLocalisation : null;
$array_return['slug'] = $slug;
$array_return['secteurActivites'] = $secteurActivites;
$array_return['sous_secteurs_numbers'] = $sous_secteurs_numbers;
$array_return['prev_secteur'] = $prev_secteur;
}
if ($idLocalisation && $idSecteurActivite) {
$array_return['idLocalisation'] = $idLocalisation;
}
}
return $this->render(
'ouvrir_capital/annonce_acquisition.html.twig',
$array_return
);
}
public function businessangel(Request $request, PaginatorInterface $paginator, LocalisationsManagers $localisationManager, LocalisationsRepository $localisationsRepo, TranslationExtension $translationExtension, ParametresDiversRepository $parametresDiversRepo, $type = null, $idLocalisation = null, $slug = null, $idSecteurActivite = null, $codePays): Response
{
$lang = $request->getSession()->get('lang');
$parametres = $request->query->all();
$is_recherche_by_localisation = false;
$metaTitle = $metaDescription = null;
// Recherche standard
if ($idLocalisation || $idSecteurActivite) {
// Preparation des parametres
if ($idLocalisation) {
if ($type == 'd') {
$parametres['id_departement'] = $idLocalisation;
$child_type = null;
$parent_type = "r";
} elseif ($type == "r") {
$parametres['id_region'] = $idLocalisation;
$child_type = "d";
$parent_type = "p";
} else {
$parametres['id_pays'] = $idLocalisation;
$child_type = "r";
$parent_type = null;
}
$parametres = ParametersProvider::prepareRechercheStandardParameters($parametres);
}
if ($idSecteurActivite) {
$parametres['id_secteur_activite'] = $idSecteurActivite;
$parametres = ParametersProvider::prepareRechercheStandardParameters($parametres);
}
// Recherche par localisation
if ($idLocalisation) {
$localisations = $localisationManager->getLocalisationCompleteWithNavById($idLocalisation);
if (!$localisations) {
$this->addFlash('error', $translationExtension->translate('erreur de localisation', $lang, '', 'M', ''));
return $this->redirectToRoute('ouvrir_capital_resultats_business_angel', ['codePays' => $codePays]);
}
$villesRepo = $this->getDoctrine()->getRepository(Villes::class);
$noms_ville = $villesRepo->donne_string_noms_villes_principales_dune_localisation($idLocalisation);
$sous_localisations = $localisationsRepo->getSubLevelLocalisations($idLocalisation);
$sous_localisations_numbers = [];
$prev_localisation = [];
foreach ($sous_localisations as $sous_localisation) {
$params = [];
if ($idSecteurActivite) {
$params['id_secteur_activite'] = $idSecteurActivite;
}
if ($type == "r") {
$params['id_departement'] = $sous_localisation['id_localisation'];
} else {
if ($idLocalisation == "99") {
$params['id_pays'] = $sous_localisation['id_localisation'];
$child_type = "p";
} else {
$params['id_region'] = $sous_localisation['id_localisation'];
}
}
$sous_localisation['type'] = $child_type;
$params = ParametersProvider::prepareRechercheStandardParameters($params);
$annonces_numbers = $this->getAnnoncesNumbers($params);
if ($idLocalisation == 99) {
if ($sous_localisation['nom_localisation'] != "Confidentiel" && $annonces_numbers['nb_business_angel'] != 0) {
$sous_localisations_numbers[] = array_merge($sous_localisation, $annonces_numbers);
}
} else {
if ($sous_localisation['nom_localisation'] != "Confidentiel" || $annonces_numbers['nb_business_angel'] != 0) {
$sous_localisations_numbers[] = array_merge($sous_localisation, $annonces_numbers);
}
}
}
if (!$prev_localisation && $parent_type) {
$prev_localisation = isset($localisations[count($localisations) - 2]) ? $localisations[count($localisations) - 2] : null;
$prev_localisation['type'] = $parent_type;
}
$last_localisation = end($localisations);
$arrayVarsTrans['prefixe_localisation'] = $last_localisation['prefixe'];
$arrayVarsTrans['nom_localisation'] = strtoupper($last_localisation['nom_localisation']);
$metaTitle = '%$nb_business_angel%$ $$Business Angel$${p|Business Angels} %$prefixe_localisation%$ %$nom_localisation%$';
$metaDescription = 'consultez %$nb_business_angel%$ $$Business Angel$${p|Business Angels} %$prefixe_localisation%$ %$nom_localisation%$';
}
// Recherche par secteur d'activite
if ($idSecteurActivite) {
$secteurActivites = $this->sam->getTreeSecteursActivite($idSecteurActivite);
if (!$secteurActivites) {
$this->addFlash('error', $translationExtension->translate("erreur de secteur d'activité", $lang, '', 'M', ''));
return $this->redirectToRoute('ouvrir_capital_resultats_business_angel', ['codePays' => $codePays]);
}
$secteurActiviteRepo = $this->getDoctrine()->getRepository(SecteursActivite::class);
$sous_secteurs = $secteurActiviteRepo->getAllSecteursActiviteEnfantByIdSecteurParent($idSecteurActivite);
$sous_secteurs_numbers = [];
$prev_secteur = [];
foreach ($sous_secteurs as $sous_secteur) {
$params = [];
$params['id_secteur_activite'] = $sous_secteur['idSecteurActivite'];
$params = ParametersProvider::prepareRechercheStandardParameters($params);
$annonces_numbers = $this->getAnnoncesNumbers($params);
$sous_secteurs_numbers[] = array_merge($sous_secteur, $annonces_numbers);
}
if (!$prev_secteur) {
$prev_secteur = isset($secteurActivites[count($secteurActivites) - 2]) ? $secteurActivites[count($secteurActivites) - 2] : null;
}
$last_secteur = end($secteurActivites);
$arrayVarsTrans['nomPourTitle'] = $last_secteur->getNomPourTitle();
// Si ce n'est pas une recherche croisée
if (!$idLocalisation) {
$metaTitle = '%$nb_business_angel%$ $$Business Angel$${p|Business Angels} %$nomPourTitle%$';
$metaDescription = 'consultez %$nb_business_angel%$ $$Business Angel$${p|Business Angels} %$nomPourTitle%$';
} else {
$metaTitle = '%$nb_business_angel%$ $$Business Angel$${p|Business Angels} %$nomPourTitle%$ %$prefixe_localisation%$ %$nom_localisation%$';
$metaDescription = 'consultez %$nb_business_angel%$ $$Business Angel$${p|Business Angels} %$nomPourTitle%$ %$prefixe_localisation%$ %$nom_localisation%$';
}
}
// Recherche avancée / dernières annonces
} else {
$parametres = ParametersProvider::prepareRechercheAvanceeOuvrirCapitalParameters($parametres);
}
$is_recherche = ParametersProvider::prepareRechercheAvanceeOuvrirCapitalParameters() !== ParametersProvider::prepareRechercheAvanceeOuvrirCapitalParameters($parametres);
if (isset($parametres['id_localisation']) && $parametres['id_localisation'] != "") {
$is_recherche_by_localisation = true;
}
$string_params = $string_params_without_page = $this->serializeParams($parametres);
// Si c'est une recherche, on calcule les nb Ă afficher
if ($is_recherche) {
$repoAcheteur = $this->getDoctrine()->getRepository(AnnoncesAcheteur::class);
$repoAnnuaireRepreneur = $this->getDoctrine()->getRepository(AnnuaireRepreneurs::class);
$repoSociete = $this->getDoctrine()->getRepository(Societes::class);
$repoInvestisseursPrives = $this->getDoctrine()->getRepository(InvestisseursPrives::class);
$parametres['from_list'] = "acquereur_investisseur";
$nb_acquereurs_investisseurs = $repoAcheteur->donne_nb_annonces_achat($parametres);
$parametres['from_list'] = "cv_repreneur_investisseur";
$nb_repreneurs_investisseurs = $repoAnnuaireRepreneur->donne_nb_cv_repreneurs($parametres);
$nb_fonds_investissement = $repoSociete->donne_nb_fonds_investissement($parametres);
$nb_business_angel = $repoInvestisseursPrives->donne_nb_investisseurs_prives($parametres);
$nb_recherches_partenariats = $repoAcheteur->donne_nb_annonces_achat_recherche_partenaire($parametres);
$nb_annonces = $nb_repreneurs_investisseurs + $nb_business_angel + $nb_acquereurs_investisseurs + $nb_fonds_investissement + $nb_recherches_partenariats;
} else {
// Sinon on récupère les nb stockés dans parametres_divers
$nb = $parametresDiversRepo->getListNombresAafficher();
$nb_acquereurs_investisseurs = $nb->ouvrir_mon_capital_nb_acquereurs_investisseurs;
$nb_repreneurs_investisseurs = $nb->ouvrir_mon_capital_nb_cv_repreneurs_investisseurs;
$nb_fonds_investissement = $nb->ouvrir_mon_capital_nb_fonds_investissement;
$nb_business_angel = $nb->ouvrir_mon_capital_nb_business_angels;
$nb_recherches_partenariats = $nb->reprendre_une_entreprise_nb_recherches_de_partenariats;
$nb_annonces = $nb_repreneurs_investisseurs + $nb_business_angel + $nb_acquereurs_investisseurs + $nb_fonds_investissement + $nb_recherches_partenariats;
}
$liste_business_angel = $this->bam->getBusinessAngelList($request, $paginator, $parametres);
$page = $request->query->get('page');
if ($page != null && $page != 1) {
$string_params .= "&page=" . $page;
}
$tri = isset($parametres['tri']) ? $parametres['tri'] : null;
$urlList = $request->getPathInfo();
// cookie business angel
$showedExplanationBusinessAngel = $request->cookies->get("showedExplanationBusinessAngel");
if (!$showedExplanationBusinessAngel) {
setcookie('showedExplanationBusinessAngel', true, time() + 60 * 60 * 24 * 365);
$show_modal = true;
} else {
$show_modal = false;
}
$tri_default = null;
// Si aucun tri
if (!$tri) {
if ($is_recherche) {
$tri_default = "ca_desc";
} else {
$tri_default = "date_desc";
}
}
// Si ce n'est pas une recherche par loc / sec ou croisé
if ($metaTitle == null && $metaTitle == null) {
$metaTitle = '%$nb_business_angel%$ $$Business Angel$${p|Business Angels}';
$metaDescription = 'consultez %$nb_business_angel%$ $$Business Angel$${p|Business Angels} en fonction de vos critères de recherche.';
}
$arrayVarsTrans['nb_business_angel'] = $nb_business_angel;
if ($nb_business_angel > 1) {
$p = 'p';
} else {
$p = '';
}
$metaTag = $this->metaTag
->setTitle($translationExtension->translate($metaTitle, $lang, "", "M", $p, $arrayVarsTrans))
->setDescription($translationExtension->translate($metaDescription, $lang, "", "M", $p, $arrayVarsTrans))
->setRobots('noindex');
$array_return = [
'metaTag' => $metaTag,
'nb_annonces' => $nb_annonces,
'nb_fonds_investissement' => $nb_fonds_investissement,
'nb_repreneurs_investisseurs' => $nb_repreneurs_investisseurs,
'nb_business_angel' => $nb_business_angel,
'nb_acquereurs_investisseurs' => $nb_acquereurs_investisseurs,
'nb_recherches_partenariats' => $nb_recherches_partenariats,
'liste_business_angel' => $liste_business_angel,
'string_params' => $string_params,
'string_params_without_page' => $string_params_without_page,
'tri' => $tri,
'urlList' => $urlList,
'show_modal' => $show_modal,
'idLocalisation' => null,
'idSecteurActivite' => null,
'tri_default' => $tri_default,
'is_recherche_by_localisation' => $is_recherche_by_localisation
];
if ($idLocalisation || $idSecteurActivite) {
if ($idLocalisation) {
$array_return['idLocalisation'] = $idLocalisation;
$array_return['idSecteurActivite'] = $idSecteurActivite ? $idSecteurActivite : null;
$array_return['slug'] = $slug;
$array_return['type'] = $type;
$array_return['localisations'] = $localisations;
$array_return['noms_ville'] = $noms_ville;
$array_return['sous_localisations_numbers'] = $sous_localisations_numbers;
$array_return['prev_localisation'] = $prev_localisation;
}
if ($idSecteurActivite) {
$array_return['idSecteurActivite'] = $idSecteurActivite;
$array_return['idLocalisation'] = $idLocalisation ? $idLocalisation : null;
$array_return['slug'] = $slug;
$array_return['secteurActivites'] = $secteurActivites;
$array_return['sous_secteurs_numbers'] = $sous_secteurs_numbers;
$array_return['prev_secteur'] = $prev_secteur;
}
if ($idLocalisation && $idSecteurActivite) {
$array_return['idLocalisation'] = $idLocalisation;
}
}
return $this->render(
'ouvrir_capital/business_angel.html.twig',
$array_return
);
}
public function detailbusinessangel(Request $request, InvestisseursPrivesRepository $investisseurRepo, LocalisationsManagers $localisationManager, TranslationExtension $translationExtension, CommandesRepository $commandesRepository, $idInvestisseurPrive, $codePays): Response {
$lang = $request->getSession()->get('lang');
$parametres = $request->query->all();
$parametres = ParametersProvider::prepareRechercheAvanceeOuvrirCapitalParameters($parametres);
$string_params = $string_params_without_page = $this->serializeParams($parametres);
$business_angel = $investisseurRepo->findOneBy(['id_investisseur' => $idInvestisseurPrive, 'mode' => 'publique']);
if (!$business_angel) {
$this->addFlash('error', $translationExtension->translate("une erreur s'est produite, veuillez réessayer", $lang, '', 'M', ''));
return $this->redirectToRoute('ouvrir_capital_resultats_business_angel', ['codePays' => $codePays]);
}
$tab_commande_ba = [];
// On récupère la liste des investisseurs privés commandés par l'utilisateur
if ($this->getUser()) {
$idUtilisateur = $this->getUser()->_get('id_utilisateur');
$userCommandes = $commandesRepository->getUserCommandesAnnuaireBusinessAngel($idUtilisateur);
$string_id_investisseur = "";
foreach ($userCommandes as $commande) {
$string_id_investisseur .= $commande->_get('liste_investisseurs');
}
$tab_commande_ba = array_filter(explode(",", $string_id_investisseur));
}
$business_angel->nom_affichage = $business_angel->_get('titre_investisseur');
$deja_commande = false;
if ($tab_commande_ba) {
if (in_array($business_angel->_get('id_investisseur'), $tab_commande_ba)) {
$business_angel->nom_affichage = ucfirst($business_angel->_get('prenom_contact')) . ' ' . ucfirst($business_angel->_get('nom_contact')) . ' - ' . $business_angel->_get('titre_investisseur');
$deja_commande = true;
}
}
$id_secteurs_activite = array_filter(explode(',', $business_angel->_get('id_secteurs_activite')));
$secteurs_activite = [];
foreach ($id_secteurs_activite as $id_secteur) {
$secteurs_activite[] = $this->sam->getNomSecteurActiviteFondsById($id_secteur);
}
$id_localisations_recherchees = array_filter(explode(',', $business_angel->_get('id_localisations_recherchees')));
$localisations_recherchees = [];
foreach ($id_localisations_recherchees as $id_localisation_recherchee) {
$localisations_recherchees[] = $this->lm->getStringNomLocalisationById($id_localisation_recherchee);
}
$index = $request->query->get('index');
$page = (int) $request->query->get('page', 1);
if ($page > 1) {
$string_params .= "&page=" . $page;
}
$urlList = $request->query->get('urlList');
$urlRetourList = $urlList ? $urlList . '?' . $string_params : null;
$previousAnnonce = $this->bam->getIndexNAnnonceFromBusinessAngelList($parametres, "", $page, $index - 1);
$nextAnnonce = $this->bam->getIndexNAnnonceFromBusinessAngelList($parametres, "", $page, $index + 1);
return $this->render(
'ouvrir_capital/detail_business_angel.html.twig',
[
'business_angel' => $business_angel,
'secteurs_activite' => $secteurs_activite,
'localisations_recherchees' => $localisations_recherchees,
'string_params' => $string_params,
'string_params_without_page' => $string_params_without_page,
'previousAnnonce' => $previousAnnonce,
'nextAnnonce' => $nextAnnonce,
'urlList' => $urlList,
'urlRetourList' => $urlRetourList,
'string_params' => $string_params,
'index' => $index,
'indexPrevious' => $index - 1,
'indexNext' => $index + 1,
'deja_commande' => $deja_commande
]
);
}
public function redirectionfonds(Request $request): Response
{
$onglet = null !== $request->get('onglet') ? $request->get('onglet') : null;
$idFonds = $request->get('idFonds');
$codePays = $request->get('codePays');
$request->from = "ouvrir-capital";
$pageInvest = $request->get('pageInvest', 1);
$pageActu = $request->get('pageActu', 1);
switch ($onglet) {
case 1:
return $this->forward('App\Controller\AnnuaireFondsInvestissementController::strategieinvestissement', ['idFonds' => $idFonds, 'codePays' => $codePays, 'request' => $request]);
break;
case 2:
return $this->forward('App\Controller\AnnuaireFondsInvestissementController::criteresinvestissement', ['idFonds' => $idFonds, 'codePays' => $codePays, 'request' => $request]);
break;
case 3:
return $this->forward('App\Controller\AnnuaireFondsInvestissementController::investissementreference', ['idFonds' => $idFonds, 'codePays' => $codePays, 'pageInvest' => $pageInvest, 'request' => $request]);
break;
case 4:
return $this->forward('App\Controller\AnnuaireFondsInvestissementController::actualitepubliee', ['idFonds' => $idFonds, 'codePays' => $codePays, 'pageActu' => $pageActu, 'request' => $request]);
break;
default:
return $this->forward('App\Controller\AnnuaireFondsInvestissementController::strategieinvestissement', ['idFonds' => $idFonds, 'codePays' => $codePays, 'request' => $request]);
break;
}
}
public function redirectionrechercheavancee(Request $request): Response
{
$type = null !== $request->get('type') ? $request->get('type') : null;
$codePays = $request->get('codePays');
switch ($type) {
case 'fonds_investissement':
return $this->forward('App\Controller\AnnoncesOuvrirCapitalController::rechercheavanceefondsinvestissement', ['codePays' => $codePays, 'request' => $request]);
break;
case 'cv_repreneur_investisseur':
return $this->forward('App\Controller\AnnoncesOuvrirCapitalController::rechercheavanceecvrepreneur', ['codePays' => $codePays, 'type' => $type, 'request' => $request]);
break;
case 'business_angel':
return $this->forward('App\Controller\AnnoncesOuvrirCapitalController::rechercheavanceebusinessangel', ['codePays' => $codePays, 'type' => $type, 'request' => $request]);
break;
case 'acquereur_investisseur':
return $this->forward('App\Controller\AnnoncesOuvrirCapitalController::rechercheavanceeannonceacquisition', ['codePays' => $codePays, 'type' => $type, 'request' => $request]);
break;
default:
return $this->forward('App\Controller\AnnoncesOuvrirCapitalController::rechercheavanceebusinessangel', ['codePays' => $codePays, 'request' => $request]);
break;
}
}
public function redirectionrecherchestandard(Request $request): Response
{
$type = null !== $request->get('type') ? $request->get('type') : null;
$codePays = $request->get('codePays');
switch ($type) {
case 'fonds_investissement':
return $this->forward('App\Controller\AnnoncesOuvrirCapitalController::recherchestandardfondsinvestissement', ['codePays' => $codePays, 'type' => $type, 'request' => $request]);
break;
case 'cv_repreneur_investisseur':
return $this->forward('App\Controller\AnnoncesOuvrirCapitalController::recherchestandardcvrepreneur', ['codePays' => $codePays, 'type' => $type, 'request' => $request]);
break;
case 'business_angel':
return $this->forward('App\Controller\AnnoncesOuvrirCapitalController::recherchestandardbusinessangel', ['codePays' => $codePays, 'type' => $type, 'request' => $request]);
break;
case 'acquereur_investisseur':
return $this->forward('App\Controller\AnnoncesOuvrirCapitalController::recherchestandardannonceacquisition', ['codePays' => $codePays, 'type' => $type, 'request' => $request]);
break;
default:
return $this->forward('App\Controller\AnnoncesOuvrirCapitalController::recherchestandardbusinessangel', ['codePays' => $codePays, 'type' => $type, 'request' => $request]);
break;
}
}
public function dernieresAnnoncesRecherchePartenariat($lang, $codePays)
{
$dernieresAnnonces = $this->am->getDernieresAnnoncesAcquisitions(5, "partenaire", null, $lang, $this->getIdPaysByCodePays($codePays));
return $this->render(
'ouvrir_capital/fragments/recherche_partenariat/dernieres_annonces.html.twig',
[
'dernieresAnnonces' => $dernieresAnnonces,
'lang' => $lang,
'codePays' => $codePays
]
);
}
public function trouverAnnonceRecherchePartenariatParLocalisation($lang, $codePays)
{
$nb_annonce_france = $this->getAnnoncesNumbers(['id_localisation' => 'p33'])['nb_recherches_partenariats'];
$nb_annonce_belgique = $this->getAnnoncesNumbers(['id_localisation' => 'p32'])['nb_recherches_partenariats'];
$nb_annonce_canada = $this->getAnnoncesNumbers(['id_localisation' => 'p01'])['nb_recherches_partenariats'];
$nb_annonce_suisse = $this->getAnnoncesNumbers(['id_localisation' => 'p41'])['nb_recherches_partenariats'];
$nb_annonce_autres_pays = $this->getAnnoncesNumbers(['id_localisation' => 'p99'])['nb_recherches_partenariats'];
return $this->render(
"ouvrir_capital/fragments/recherche_partenariat/trouver_annonce_par_localisation_".$this->getVersionByCodePays($codePays).".html.twig",
[
'nb_annonce_france' => $nb_annonce_france,
'nb_annonce_belgique' => $nb_annonce_belgique,
'nb_annonce_canada' => $nb_annonce_canada,
'nb_annonce_suisse' => $nb_annonce_suisse,
'nb_annonce_autres_pays' => $nb_annonce_autres_pays,
'lang' => $lang,
'codePays' => $codePays
]
);
}
public function recherchepartenariat(Request $request, PaginatorInterface $paginator, LocalisationsManagers $localisationManager, TranslationExtension $translationExtension, LocalisationsRepository $localisationsRepo, ParametresDiversRepository $parametresDiversRepo, $type = null, $idLocalisation = null, $slug = null, $idSecteurActivite = null, $codePays): Response
{
$lang = $request->getSession()->get('lang');
$parametres = $request->query->all();
$is_recherche_by_localisation = false;
$metaTitle = $metaDescription = null;
$arrayVarsTrans = [];
// Recherche standard
if ($idLocalisation || $idSecteurActivite) {
// Preparation des parametres
if ($idLocalisation) {
if ($type == 'd') {
$parametres['id_departement'] = $idLocalisation;
$child_type = null;
$parent_type = "r";
} elseif ($type == "r") {
$parametres['id_region'] = $idLocalisation;
$child_type = "d";
$parent_type = "p";
} else {
$parametres['id_pays'] = $idLocalisation;
$child_type = "r";
$parent_type = null;
}
$parametres = ParametersProvider::prepareRechercheStandardParameters($parametres);
}
if ($idSecteurActivite) {
$parametres['id_secteur_activite'] = $idSecteurActivite;
$parametres = ParametersProvider::prepareRechercheStandardParameters($parametres);
}
// Recherche par localisation
if ($idLocalisation) {
$localisations = $localisationManager->getLocalisationCompleteWithNavById($idLocalisation);
if (!$localisations) {
$this->addFlash('error', $translationExtension->translate('erreur de localisation', $lang, '', 'M', ''));
return $this->redirectToRoute('reprendre_entreprise_resultats_recherches_partenariat', ['codePays' => $codePays]);
}
$villesRepo = $this->getDoctrine()->getRepository(Villes::class);
$noms_ville = $villesRepo->donne_string_noms_villes_principales_dune_localisation($idLocalisation);
$sous_localisations = $localisationsRepo->getSubLevelLocalisations($idLocalisation);
$sous_localisations_numbers = [];
$prev_localisation = [];
foreach ($sous_localisations as $sous_localisation) {
$params = [];
if ($idSecteurActivite) {
$params['id_secteur_activite'] = $idSecteurActivite;
}
if ($type == "r") {
$params['id_departement'] = $sous_localisation['id_localisation'];
} else {
if ($idLocalisation == "99") {
$params['id_pays'] = $sous_localisation['id_localisation'];
$child_type = "p";
} else {
$params['id_region'] = $sous_localisation['id_localisation'];
}
}
$sous_localisation['type'] = $child_type;
$params = ParametersProvider::prepareRechercheStandardParameters($params);
$annonces_numbers = $this->getAnnoncesNumbers($params);
if ($idLocalisation == 99) {
if ($sous_localisation['nom_localisation'] != "Confidentiel" && $annonces_numbers['nb_recherches_partenariats'] != 0) {
$sous_localisations_numbers[] = array_merge($sous_localisation, $annonces_numbers);
}
} else {
if ($sous_localisation['nom_localisation'] != "Confidentiel" || $annonces_numbers['nb_recherches_partenariats'] != 0) {
$sous_localisations_numbers[] = array_merge($sous_localisation, $annonces_numbers);
}
}
}
if (!$prev_localisation && $parent_type) {
$prev_localisation = isset($localisations[count($localisations) - 2]) ? $localisations[count($localisations) - 2] : null;
$prev_localisation['type'] = $parent_type;
}
$last_localisation = end($localisations);
$arrayVarsTrans['prefixe_localisation'] = $last_localisation['prefixe'];
$arrayVarsTrans['nom_localisation'] = strtoupper($last_localisation['nom_localisation']);
$metaTitle = '%$nb_recherches_partenariats%$ $$recherche de partenariat$${p|recherches de partenariat} %$prefixe_localisation%$ %$nom_localisation%$';
$metaDescription = 'consultez %$nb_recherches_partenariats%$ $$annonce$${p|annonces} de recherche de partenariat %$prefixe_localisation%$ %$nom_localisation%$';
}
// Recherche par secteur d'activite
if ($idSecteurActivite) {
$secteurActivites = $this->sam->getTreeSecteursActivite($idSecteurActivite);
if (!$secteurActivites) {
$this->addFlash('error', $translationExtension->translate("erreur de secteur d'activité", $lang, '', 'M', ''));
return $this->redirectToRoute('reprendre_entreprise_resultats_recherches_partenariat', ['codePays' => $codePays]);
}
$secteurActiviteRepo = $this->getDoctrine()->getRepository(SecteursActivite::class);
$sous_secteurs = $secteurActiviteRepo->getAllSecteursActiviteEnfantByIdSecteurParent($idSecteurActivite);
$sous_secteurs_numbers = [];
$prev_secteur = [];
foreach ($sous_secteurs as $sous_secteur) {
$params = [];
$params['id_secteur_activite'] = $sous_secteur['idSecteurActivite'];
$params = ParametersProvider::prepareRechercheStandardParameters($params);
$annonces_numbers = $this->getAnnoncesNumbers($params);
$sous_secteurs_numbers[] = array_merge($sous_secteur, $annonces_numbers);
}
if (!$prev_secteur) {
$prev_secteur = isset($secteurActivites[count($secteurActivites) - 2]) ? $secteurActivites[count($secteurActivites) - 2] : null;
}
$last_secteur = end($secteurActivites);
$arrayVarsTrans['nomPourTitle'] = $last_secteur->getNomPourTitle();
// Si ce n'est pas une recherche croisée
if (!$idLocalisation) {
$metaTitle = '%$nb_recherches_partenariats%$ $$recherche de partenariat$${p|recherches de partenariat} %$nomPourTitle%$';
$metaDescription = 'consultez %$nb_recherches_partenariats%$ $$annonce$${p|annonces} de recherche de partenariat %$nomPourTitle%$';
} else {
$metaTitle = '%$nb_recherches_partenariats%$ $$recherche de partenariat$${p|recherches de partenariat} %$nomPourTitle%$ %$prefixe_localisation%$ %$nom_localisation%$';
$metaDescription = 'consultez %$nb_recherches_partenariats%$ $$annonce$${p|annonces} de recherche de partenariat %$nomPourTitle%$ %$prefixe_localisation%$ %$nom_localisation%$';
}
}
// Recherche avancée / dernieres annonces
} else {
$parametres = ParametersProvider::prepareRechercheAvanceeParameters($parametres);
}
$is_recherche = ParametersProvider::prepareRechercheAvanceeOuvrirCapitalParameters() !== ParametersProvider::prepareRechercheAvanceeOuvrirCapitalParameters($parametres);
if (isset($parametres['id_localisation']) && $parametres['id_localisation'] != "") {
$is_recherche_by_localisation = true;
}
$string_params = $string_params_without_page = $this->serializeParams($parametres);
// Si c'est une recherche, on calcule les nb Ă afficher
if ($is_recherche) {
$repoAcheteur = $this->getDoctrine()->getRepository(AnnoncesAcheteur::class);
$repoAnnuaireRepreneur = $this->getDoctrine()->getRepository(AnnuaireRepreneurs::class);
$repoSociete = $this->getDoctrine()->getRepository(Societes::class);
$repoInvestisseursPrives = $this->getDoctrine()->getRepository(InvestisseursPrives::class);
$parametres['from_list'] = "acquereur_investisseur";
$nb_acquereurs_investisseurs = $repoAcheteur->donne_nb_annonces_achat($parametres);
$parametres['from_list'] = "cv_repreneur_investisseur";
$nb_repreneurs_investisseurs = $repoAnnuaireRepreneur->donne_nb_cv_repreneurs($parametres);
$nb_fonds_investissement = $repoSociete->donne_nb_fonds_investissement($parametres);
$nb_recherches_partenariats = $repoAcheteur->donne_nb_annonces_achat_recherche_partenaire($parametres);
$nb_business_angel = $repoInvestisseursPrives->donne_nb_investisseurs_prives($parametres);
$nb_annonces = $nb_repreneurs_investisseurs + $nb_business_angel + $nb_acquereurs_investisseurs + $nb_fonds_investissement + $nb_recherches_partenariats;
} else {
// Sinon on récupère les nb stockés dans parametres_divers
$nb = $parametresDiversRepo->getListNombresAafficher();
$nb_acquereurs_investisseurs = $nb->ouvrir_mon_capital_nb_acquereurs_investisseurs;
$nb_repreneurs_investisseurs = $nb->ouvrir_mon_capital_nb_cv_repreneurs_investisseurs;
$nb_fonds_investissement = $nb->ouvrir_mon_capital_nb_fonds_investissement;
$nb_business_angel = $nb->ouvrir_mon_capital_nb_business_angels;
$nb_recherches_partenariats = $nb->reprendre_une_entreprise_nb_recherches_de_partenariats;
$nb_annonces = $nb_repreneurs_investisseurs + $nb_business_angel + $nb_acquereurs_investisseurs + $nb_fonds_investissement + $nb_recherches_partenariats;
}
$user = $this->getUser();
$login_utilisateur = isset($user) ? $user->_get('login_utilisateur') : null;
$liste_annonces = $this->am->getAnnoncesRecherchePartenariatList($request, $paginator, $parametres, "partenaire", $login_utilisateur);
$page = $request->query->get('page');
if ($page != null && $page != 1) {
$string_params .= "&page=" . $page;
}
$tri = isset($parametres['tri']) ? $parametres['tri'] : null;
$urlList = $request->getPathInfo();
$tri_default = null;
// Si aucun tri
if (!$tri) {
// On trie par CA si c'est une recherche
if ($is_recherche) {
$tri_default = "ca_desc";
} else {
$tri_default = "date_desc";
}
}
// Si ce n'est pas une recherche par loc / sec ou croisé
if ($metaTitle == null && $metaTitle == null) {
$metaTitle = '%$nb_recherches_partenariats%$ $$recherche de partenariat$${p|recherches de partenariat}';
$metaDescription = 'consultez %$nb_recherches_partenariats%$ $$annonce$${p|annonces} de recherche de partenariat en fonction de vos critères de recherche.';
}
$arrayVarsTrans['nb_recherches_partenariats'] = $nb_recherches_partenariats;
if ($nb_recherches_partenariats > 1) {
$p = 'p';
} else {
$p = '';
}
$metaTag = $this->metaTag
->setTitle($translationExtension->translate($metaTitle, $lang, "", "M", $p, $arrayVarsTrans))
->setDescription($translationExtension->translate($metaDescription, $lang, "", "M", $p, $arrayVarsTrans))
->setRobots('noindex');
$array_return = [
'metaTag' => $metaTag,
'nb_annonces' => $nb_annonces,
'nb_fonds_investissement' => $nb_fonds_investissement,
'nb_repreneurs_investisseurs' => $nb_repreneurs_investisseurs,
'nb_business_angel' => $nb_business_angel,
'nb_acquereurs_investisseurs' => $nb_acquereurs_investisseurs,
'nb_recherches_partenariats' => $nb_recherches_partenariats,
'is_recherche_by_localisation' => $is_recherche_by_localisation,
'liste_annonces' => $liste_annonces,
'string_params' => $string_params,
'string_params_without_page' => $string_params_without_page,
'tri' => $tri,
'urlList' => $urlList,
'idLocalisation' => null,
'idSecteurActivite' => null,
'tri_default' => $tri_default
];
if ($idLocalisation || $idSecteurActivite) {
if ($idLocalisation) {
$array_return['idLocalisation'] = $idLocalisation;
$array_return['idSecteurActivite'] = $idSecteurActivite ? $idSecteurActivite : null;
$array_return['slug'] = $slug;
$array_return['type'] = $type;
$array_return['localisations'] = $localisations;
$array_return['noms_ville'] = $noms_ville;
$array_return['sous_localisations_numbers'] = $sous_localisations_numbers;
$array_return['prev_localisation'] = $prev_localisation;
}
if ($idSecteurActivite) {
$array_return['idSecteurActivite'] = $idSecteurActivite;
$array_return['idLocalisation'] = $idLocalisation ? $idLocalisation : null;
$array_return['slug'] = $slug;
$array_return['secteurActivites'] = $secteurActivites;
$array_return['sous_secteurs_numbers'] = $sous_secteurs_numbers;
$array_return['prev_secteur'] = $prev_secteur;
}
}
return $this->render(
'ouvrir_capital/recherche_partenariat.html.twig',
$array_return
);
}
public function rechercheavanceerecherchepartenariat(Request $request, SecteursActiviteManagers $secteursActiviteManager, TranslationExtension $translationExtension, $codePays, LocalisationsManagers $localisationManager): Response
{
$parametres = $request->query->all();
$parametres = ParametersProvider::prepareRechercheAvanceeParameters($parametres);
$parametres_localisations = ParametersProvider::prepareLocalisationsParameters($localisationManager, $parametres);
$parametres_secteurs = ParametersProvider::prepareSecteursParameters($secteursActiviteManager, $parametres);
$string_params = $this->serializeParams($parametres);
$lang = $request->getSession()->get('lang');
$idPays = $this->getIdPaysByCodePays($codePays);
$pays = $this->am->donne_option_select_pays_annonces_acheteur("partenariat", $idPays);
$regions = [];
$departements = [];
$secteurs_activite1 = $secteursActiviteManager->donne_option_select_secteurs_activite_niveau_1();
if (isset($parametres['id_secteur_activite'])) {
$secteurs_activite2 = $secteursActiviteManager->donne_option_select_secteurs_activite_enfant_by_secteur_activite_parent($parametres['id_secteur_activite']);
$show_secteur_niveau_2 = true;
} else {
$secteurs_activite2 = [];
$show_secteur_niveau_2 = false;
}
if (isset($parametres['id_secteur_activite2'])) {
$secteurs_activite3 = $secteursActiviteManager->donne_option_select_secteurs_activite_enfant_by_secteur_activite_parent($parametres['id_secteur_activite2']);
$show_secteur_niveau_3 = true;
} else {
$secteurs_activite3 = [];
$show_secteur_niveau_3 = false;
}
$type_acquereur = [
$translationExtension->translate('indifferent', $lang, '', 'M', '') => '', // value = indifferent
$translationExtension->translate('societe', $lang, '', 'M', '') => 'societe',
$translationExtension->translate('personne physique', $lang, '', 'M', '') => 'personne',
];
$demarche = [
$translationExtension->translate('indifferent', $lang, '', 'M', '') => '', // value = indifferent
$translationExtension->translate('une reprise totale, le cedant quittant l\'entreprise', $lang, '', 'M', '') => 'reprise_totale',
$translationExtension->translate('une reprise majoritaire, le cedant restant en minoritaire', $lang, '', 'M', '') => 'reprise_majoritaire',
$translationExtension->translate('une association minoritaire avec le chef d\'entreprise actuel', $lang, '', 'M', '') => 'association_minoritaire',
];
$recherche_par = [
$translationExtension->translate("mots-cles de l'activite recherchee", $lang, '', 'M', '') => 'motscles',
$translationExtension->translate("secteur predefini", $lang, '', 'M', '') => 'secteurs'
];
$formFactory = Forms::createFormFactoryBuilder()->getFormFactory();
$form = $formFactory->createNamedBuilder('')
->add('id_pays', ChoiceType::class, [
'choices' => $pays,
])
->add('id_region', ChoiceType::class, [
'choices' => $regions,
])
->add('id_departement', ChoiceType::class, [
'choices' => $departements,
])
->add('id_localisation', HiddenType::class, [
'data' => $parametres['id_localisation']
])
->add('ajouter', ButtonType::class)
->add('reference_mots_cles', TextType::class, [
'required' => false,
'data' => $parametres['reference_mots_cles'],
'attr' => [
'placeholder' => $translationExtension->translate("transport, services informatiques, ...", $lang, '', 'M', '')
]
])
->add('id_secteur_activite', ChoiceType::class, [
'choices' => $secteurs_activite1,
'data' => $parametres['id_secteur_activite']
])
->add('id_secteur_activite2', ChoiceType::class, [
'choices' => $secteurs_activite2,
'data' => $parametres['id_secteur_activite2']
])
->add('id_secteur_activite3', ChoiceType::class, [
'choices' => $secteurs_activite3,
'data' => $parametres['id_secteur_activite3']
])
->add('id_secteur', HiddenType::class, [
'data' => $parametres['id_secteur'],
])
->add('ajouter_secteur_activite', ButtonType::class)
->add('type_acquereur', ChoiceType::class, [
'required' => false,
'choices' => $type_acquereur,
'expanded' => true,
'multiple' => false,
'data' => $parametres['type_acquereur']
])
->add('demarche', ChoiceType::class, [
'required' => false,
'choices' => $demarche,
'expanded' => true,
'multiple' => false,
'data' => $parametres['demarche']
])
->add('type_recherche', HiddenType::class, [
'data' => 5,
])
->add('recherche_par', ChoiceType::class, [
'required' => false,
'choices' => $recherche_par,
'expanded' => true,
'multiple' => false,
'data' => $parametres['recherche_par'],
'placeholder' => false,
'choice_value' => function ($choice) {
return $choice; // Utilisez la valeur du choix comme clé
}
])
->add('rechercher', SubmitType::class)
->setAction($this->generateUrl('ouvrir_capital_resultats_recherches_partenariat', ['codePays' => $codePays]))
->setMethod('GET')
->getForm();
$current_year = date('Y');
return $this->render(
'ouvrir_capital/recherche_avancee_recherche_partenariat.html.twig',
[
/*'nb_actifs' => $nb_actifs,
'nb_entreprises' => $nb_entreprises,
'nb_cibles_potentielles' => $nb_cibles_potentielles,
'nb_recherches_partenariats' => $nb_recherches_partenariats,*/
'form' => $form->createView(),
'parametres' => $parametres,
'parametres_localisations' => $parametres_localisations,
'parametres_secteurs' => $parametres_secteurs,
'current_year' => $current_year,
'string_params' => $string_params,
'show_secteur_niveau_2' => $show_secteur_niveau_2,
'show_secteur_niveau_3' => $show_secteur_niveau_3
]
);
}
private function test_si_affichage_acquereur_ou_repreneur($type_acquereur, $profil_deposant){
if ($type_acquereur == "personne") {
$res = "repreneur";
} elseif ($type_acquereur == "societe") {
$res = "acquereur";
} else {
if ($profil_deposant == "repreneur"){
$res = "repreneur";
}
else {
$res="acquereur";
}
}
return $res;
}
private function serializeParams($parametres)
{
$string_params = "";
foreach ($parametres as $name => $value) {
if ($name != "rechercher" && $name != "type" && $name != "array_localisation") {
if ($string_params == "") {
$string_params .= $name."=".$value;
} else {
$string_params .= "&".$name."=".$value;
}
}
}
return $string_params;
}
/**
* @param type $codePays
* @return type
*/
private function getIdPaysByCodePays($codePays) {
return $this->container->get("id_pays_by_code_pays")->getIdPaysByCodePays($codePays);
}
private function getAnnoncesNumbers($parametres) {
$repoAcheteur = $this->getDoctrine()->getRepository(AnnoncesAcheteur::class);
$repoAnnuaireRepreneur = $this->getDoctrine()->getRepository(AnnuaireRepreneurs::class);
$repoSociete = $this->getDoctrine()->getRepository(Societes::class);
$repoInvestisseursPrives = $this->getDoctrine()->getRepository(InvestisseursPrives::class);
$nb_business_angel = $repoInvestisseursPrives->donne_nb_investisseurs_prives($parametres);
$nb_repreneurs_investisseurs = $repoAnnuaireRepreneur->donne_nb_cv_repreneurs($parametres);
$parametres['from_list'] = "acquereur_investisseur";
$nb_acquereurs_investisseurs = $repoAcheteur->donne_nb_annonces_achat($parametres);
unset($parametres['from_list']);
$nb_fonds_investissement = $repoSociete->donne_nb_fonds_investissement($parametres);
$nb_recherches_partenariats = $repoAcheteur->donne_nb_annonces_achat_recherche_partenaire($parametres);
$nb_annonces = $nb_repreneurs_investisseurs + $nb_business_angel + $nb_acquereurs_investisseurs + $nb_fonds_investissement + $nb_recherches_partenariats;
return [
'nb_business_angel' => $nb_business_angel,
'nb_repreneurs_investisseurs' => $nb_repreneurs_investisseurs,
'nb_acquereurs_investisseurs' => $nb_acquereurs_investisseurs,
'nb_fonds_investissement' => $nb_fonds_investissement,
'nb_recherches_partenariats' => $nb_recherches_partenariats,
'nb_annonces' => $nb_annonces
];
}
private function getNbAnnoncesBySecteursActivite($type = "entreprise") {
$secteurs = $this->sam->getListeSecteursActiviteOrderedByIdPere();
$array_result = [];
if ($type == "entreprise") {
$repoAcheteur = $this->getDoctrine()->getRepository(AnnoncesAcheteur::class);
$annonces_secteur = $repoAcheteur->donne_tableau_annonces_achat_par_secteur_niveau2($type, 'acquereur_investisseur');
} elseif ($type == "partenaire") {
$repoSociete = $this->getDoctrine()->getRepository(Societes::class);
$annonces_secteur = $repoSociete->donne_tableau_cibles_potentielles_par_secteur();
} elseif($type == "business-angel") {
} elseif($type == "fonds-investissement") {
}
foreach ($secteurs[0] as $id_secteur_pere => $secteur_pere) {
$row = [];
$nb_annonce_row = 0;
$row[0] = ['id_secteur_activite' => $id_secteur_pere, 'nom_secteur_activite' => $secteur_pere['nomSecteurActivite'], 'nom_pour_title' => $secteur_pere['nomPourTitle'], 'nb' => 0];
foreach ($secteurs[$id_secteur_pere] as $id_secteur => $secteur) {
$data = ['id_secteur_activite' => $id_secteur, 'nom_secteur_activite' => $secteur['nomSecteurActivite'], 'nom_pour_title' => $secteur['nomPourTitle']];
$data['nb'] = isset($annonces_secteur[$id_secteur]) ? $annonces_secteur[$id_secteur] : 0;
$row[] = $data;
$nb_annonce_row += $data['nb'];
}
$row[0]['nb'] = $nb_annonce_row;
$array_result[] = $row;
}
return $array_result;
}
/**
*
* @param type $codePays
* @return type
*/
private function getVersionByCodePays($codePays) {
return Utils::codePaysWithoutDash($codePays);
}
}