src/Controller/ReprendreEntrepriseController.php line 3101

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use Symfony\Component\Security\Core\Exception\AccessDeniedException;
  4. use App\Services\MetaTag;
  5. use App\Helper\ParametersProvider;
  6. use App\Entity\AnnoncesVendeur;
  7. use App\Entity\RaisonsCession;
  8. use App\Entity\SecteursActivite;
  9. use App\Entity\GrilleAnalysePostMer;
  10. use App\Entity\AnnoncesVendeurProfilsStandards;
  11. use App\Entity\Societes;
  12. use App\Entity\Statuts;
  13. use App\Services\ManagerEntity\ActualitesManagers;
  14. use App\Services\ManagerEntity\AnnoncesManagers;
  15. use App\Services\ManagerEntity\SecteursActiviteManagers;
  16. use App\Services\ManagerEntity\SocietesManagers;
  17. use App\Services\ManagerEntity\ValorisationsManagers;
  18. use App\Services\ManagerEntity\LocalisationsManagers;
  19. use App\Services\ManagerEntity\CommandesManager;
  20. use App\Entity\Commandes;
  21. use App\Services\ManagerEntity\DroitsAccesManagers;
  22. use App\Services\SessionHandler;
  23. use App\Services\PDFGenerator;
  24. use App\Twig\TranslationExtension;
  25. use Knp\Component\Pager\PaginatorInterface;
  26. use Symfony\Component\Form\Extension\Core\Type\ButtonType;
  27. use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
  28. use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
  29. use Symfony\Component\Form\Extension\Core\Type\HiddenType;
  30. use Symfony\Component\Form\Extension\Core\Type\SubmitType;
  31. use Symfony\Component\Form\Extension\Core\Type\TextType;
  32. use Symfony\Component\Form\Forms;
  33. use Symfony\Component\HttpFoundation\Request;
  34. use Symfony\Component\HttpFoundation\Response;
  35. use App\Entity\AnnoncesAcheteur;
  36. use App\Repository\SecteursActiviteFondsRepository;
  37. use App\Helper\Utils;
  38. use App\Helper\DetailAnnonceProvider;
  39. use Doctrine\ORM\EntityManagerInterface;
  40. use App\Entity\Panier;
  41. use App\Repository\AnnoncesVendeurRepository;
  42. use App\Repository\VillesRepository;
  43. use App\Repository\ParametresDiversRepository;
  44. use App\Entity\Villes;
  45. use App\Repository\LocalisationsRepository;
  46. use Symfony\Component\DependencyInjection\ParameterBag\ContainerBagInterface;
  47. use App\Entity\TranslateAnnonceVendeur;
  48. use App\Entity\StatistiquesNbConsultationsAnnoncesVendeurEntity;
  49. use App\Repository\CommandesRepository;
  50. use App\Services\TelephoneInternational;
  51. use App\Services\Compte\Commandes\CommandesManagers;
  52. use App\Services\GoogleTag;
  53. use App\Services\ManagerEntity\ParametreSiteManagers;
  54. use App\Services\Annonces\Elites\RechercheAvancee;
  55. use App\Services\Annonces\Elites\RechercheElite;
  56. use App\Services\Annonces\Elites\AbstractConstProfilsStrategiques as ProfilsConst;
  57. use App\Services\LogMarketingProvider;
  58. use App\Services\Annonces\ConsultationsAnnonce;
  59. use App\Security\Voter\AnnonceCommandVoter;
  60. use Symfony\Component\Security\Core\Authorization\AuthorizationCheckerInterface;
  61. class ReprendreEntrepriseController extends EntityUsingController {
  62.     protected $authChecker;
  63.     /**
  64.      * @var AnnoncesManagers
  65.      */
  66.     private $am;
  67.     /**
  68.      * @var CommandesManager
  69.      */
  70.     private $cm;
  71.     /**
  72.      * @var SocietesManagers
  73.      */
  74.     private $sm;
  75.     /**
  76.      * @var DroitsAccesManagers
  77.      */
  78.     private $dm;
  79.     /**
  80.      * @var SecteursActiviteManagers
  81.      */
  82.     private $sam;
  83.     /**
  84.      * @var EntityManagerInterface
  85.      */
  86.     private $em;
  87.     /**
  88.      * @var MetaTag
  89.      */
  90.     private $metaTag;
  91.     public function __construct(AuthorizationCheckerInterface $authCheckerAnnoncesManagers $amCommandesManager $cmSocietesManagers $smDroitsAccesManagers $dmEntityManagerInterface $emPDFGenerator $pfSecteursActiviteManagers $samMetaTag $metaTagRechercheAvancee $rechercheEliteLogMarketingProvider $lmp) {
  92.         $this->authChecker $authChecker;
  93.         $this->am $am;
  94.         $this->cm $cm;
  95.         $this->sm $sm;
  96.         $this->dm $dm;
  97.         $this->em $em;
  98.         $this->pf $pf;
  99.         $this->sam $sam;
  100.         $this->metaTag $metaTag;
  101.         $this->rechercheElite $rechercheElite;
  102.         $this->lmp $lmp;
  103.     }
  104.     public function index(): Response {
  105.         return $this->render('reprendre_entreprise/index.html.twig');
  106.     }
  107.     public function recherchestandardentreprise(Request $requestTranslationExtension $translationExtensionAnnoncesVendeurRepository $annonceVendeurRepoContainerBagInterface $container$codePays): Response {
  108.         $reference_mots_cles $request->query->get('reference_mots_cles');
  109.         $user $this->getUser();
  110.         $login_utilisateur = isset($user) ? $user->_get('login_utilisateur') : null;
  111.         $hasServiceElite false;
  112.         $alertPubElite $request->query->get('alertPubElite');
  113.         if (empty($alertPubElite)) {
  114.             $alertPubElite false;
  115.         } else {
  116.             $alertPubElite true;
  117.         }
  118.         // Si on fait une recherche simple
  119.         if (isset($reference_mots_cles) && $reference_mots_cles != "") {
  120.             // Si on recherche par idAnnonce
  121.             if (preg_match("/v([0-9]{3,8})/i"$reference_mots_cles) == true || preg_match("/([0-9]{3,8})/"$reference_mots_cles) == true) {
  122.                 $idAnnonce preg_replace("/[^0-9]/"""$reference_mots_cles);
  123.                 $annonce $this->am->getAnnonceVendeurById($idAnnonce);
  124.                 if (empty($user) && 'publique_elite' == $annonce['mode_annonce']) {
  125.                     $this->denyAccessUnlessGranted('ROLE_USER');
  126.                 }
  127.                 if (!empty($user)) {
  128.                     $hasServiceElite $this->dm->checkIfThisUserHasDroitService($user, [81]); // 58 = similateur reprise 81 82 fusacq elite
  129.                 }
  130.                 // Si l'annonce existe et est publiquee
  131.                 if ($annonce && $annonce['mode_annonce'] == "publique" && substr($annonce['statuts'], 02) != "99") {
  132.                     $slug Utils::slugify($annonce['titre_annonce']);
  133.                     return $this->forward('App\Controller\ReprendreEntrepriseController::detailsannonce', ['slug' => $slug'idAnnonce' => $idAnnonce'codePays' => $codePays]);
  134.                 } elseif (($annonce['mode_annonce'] == "publique_elite" && $hasServiceElite) || $annonce['login_utilisateur'] == $login_utilisateur) {
  135.                     $slug Utils::slugify($annonce['titre_annonce']);
  136.                     return $this->forward('App\Controller\ReprendreEntrepriseController::detailsannonce', ['slug' => $slug'idAnnonce' => $idAnnonce'codePays' => $codePays]);
  137.                 } elseif (empty($user) && 'publique_elite' == $annonce['mode_annonce']) {
  138.                     $this->denyAccessUnlessGranted('ROLE_USER');
  139.                 } elseif (!empty($user) && 'publique_elite' == $annonce['mode_annonce'] && !$hasServiceElite) {
  140.                     $lang $request->getSession()->get('lang');
  141.                     $alertPubElite true;
  142.                 } else {
  143.                     $lang $request->getSession()->get('lang');
  144.                     $this->addFlash('error'$translationExtension->translate('annonce introuvable : l’annonce a Ã©té supprimée, remise en attente ou est en cours de modification'$lang'''M'''));
  145.                 }
  146.                 // Si on recherche par mots cles
  147.             } else {
  148.                 // A developper
  149.                 $request->query->set('type_recherche'5);
  150.                 return $this->forward('App\Controller\ReprendreEntrepriseController::entreprise', ['codePays' => $codePays'request' => $request]);
  151.             }
  152.         }
  153.         return $this->render(
  154.                         'reprendre_entreprise/recherche_standard_entreprise.html.twig',
  155.                         [
  156.                             "alertPubElite" => $alertPubElite
  157.                         ]
  158.                 );
  159.     }
  160.     public function dernieresAnnoncesCessionEntreprise($lang$codePays) {
  161.         $dernieresAnnonces $this->am->getDernieresAnnoncesCessions(5"entreprise"$lang$this->getIdPaysByCodePays($codePays));
  162.         $dernieresAnnoncesPubliqueElite $this->am->getDernieresAnnoncesCessions(5"entreprise_publique_elite"$lang$this->getIdPaysByCodePays($codePays));
  163.         $eliteAccess false;
  164.         if (!empty($this->getUser())) {
  165.             $eliteAccess $this->dm->checkIfThisUserHasDroitService($this->getUser(), [RechercheElite::CODE_SERVICE_ELITE]); // on loggue par defaut ELITE
  166.         }
  167.         return $this->render(
  168.                         'reprendre_entreprise/fragments/cession_entreprise/dernieres_annonces.html.twig',
  169.                         [
  170.                             'dernieresAnnonces' => $dernieresAnnonces,
  171.                             'eliteAccess' => $eliteAccess,
  172.                             'lang' => $lang,
  173.                             'codePays' => $codePays,
  174.                             'dernieresAnnoncesPubliqueElite' => $dernieresAnnoncesPubliqueElite
  175.                         ]
  176.                 );
  177.     }
  178.     public function trouverAnnonceCessionEntrepriseParLocalisation($lang$codePays) {
  179.         $array_annonce_region_du_pays $this->am->donne_tableau_nb_annonce_vendeur_par_region("entreprise"$this->getIdPaysByCodePays($codePays));
  180.         $nb_regions count($array_annonce_region_du_pays);
  181.         if ($nb_regions != 0) {
  182.             $moitie ceil($nb_regions 2);
  183.         } else {
  184.             $moitie $nb_regions 2;
  185.         }
  186.         $colonne_region_gauche array_slice($array_annonce_region_du_pays0$moitie);
  187.         $colonne_region_droite array_slice($array_annonce_region_du_pays$moitie);
  188.         $nb_annonce_france $this->getAnnoncesNumbers(['id_localisation' => 'p33'])['nb_entreprises'];
  189.         $nb_annonce_belgique $this->getAnnoncesNumbers(['id_localisation' => 'p32'])['nb_entreprises'];
  190.         $nb_annonce_canada $this->getAnnoncesNumbers(['id_localisation' => 'p01'])['nb_entreprises'];
  191.         $nb_annonce_suisse $this->getAnnoncesNumbers(['id_localisation' => 'p41'])['nb_entreprises'];
  192.         $nb_annonce_autres_pays $this->getAnnoncesNumbers(['id_localisation' => 'p99'])['nb_entreprises'];
  193.         return $this->render(
  194.                         "reprendre_entreprise/fragments/cession_entreprise/trouver_annonce_par_localisation_" $this->getVersionByCodePays($codePays) . ".html.twig",
  195.                         [
  196.                             'colonne_region_gauche' => $colonne_region_gauche,
  197.                             'colonne_region_droite' => $colonne_region_droite,
  198.                             'nb_annonce_france' => $nb_annonce_france,
  199.                             'nb_annonce_belgique' => $nb_annonce_belgique,
  200.                             'nb_annonce_canada' => $nb_annonce_canada,
  201.                             'nb_annonce_suisse' => $nb_annonce_suisse,
  202.                             'nb_annonce_autres_pays' => $nb_annonce_autres_pays,
  203.                             'array_annonce_region_du_pays' => $array_annonce_region_du_pays,
  204.                             'lang' => $lang,
  205.                             'codePays' => $codePays
  206.                         ]
  207.                 );
  208.     }
  209.     public function trouverAnnonceCessionEntrepriseParCategorie($lang$codePays) {
  210.         $annonces_secteur_activite $this->getNbAnnoncesBySecteursActivite();
  211.         return $this->render(
  212.                         "reprendre_entreprise/fragments/cession_entreprise/trouver_annonce_par_categorie.html.twig",
  213.                         [
  214.                             'annonces_secteur_activite' => $annonces_secteur_activite,
  215.                             'lang' => $lang,
  216.                             'codePays' => $codePays
  217.                         ]
  218.                 );
  219.     }
  220.     public function recherchestandardactif(Request $requestTranslationExtension $translationExtensionAnnoncesVendeurRepository $annonceVendeurRepoContainerBagInterface $container$codePays): Response {
  221.         $reference_mots_cles $request->query->get('reference_mots_cles');
  222.         // Si on fait une recherche simple
  223.         if (isset($reference_mots_cles) && $reference_mots_cles != "") {
  224.             // Si on recherche par idAnnonce
  225.             if (preg_match("/v([0-9]{3,8})/i"$reference_mots_cles) == true || preg_match("/([0-9]{3,8})/"$reference_mots_cles) == true) {
  226.                 $idAnnonce preg_replace("/[^0-9]/"""$reference_mots_cles);
  227.                 $annonce $this->am->getAnnonceVendeurById($idAnnonce);
  228.                 // Si l'annonce existe et est publiquee
  229.                 if ($annonce && $annonce['mode_annonce'] == "publique" && substr($annonce['statuts'], 02) == "99") {
  230.                     $slug Utils::slugify($annonce['titre_annonce']);
  231.                     return $this->forward('App\Controller\ReprendreEntrepriseController::detailsannonce', ['slug' => $slug'idAnnonce' => $idAnnonce'codePays' => $codePays]);
  232.                 } else {
  233.                     $lang $request->getSession()->get('lang');
  234.                     $this->addFlash('error'$translationExtension->translate('annonce introuvable : l’annonce a Ã©té supprimée, remise en attente ou est en cours de modification'$lang'''M'''));
  235.                 }
  236.                 // Si on recherche par mots cles
  237.             } else {
  238.                 // A developper
  239.                 $request->query->set('type_recherche'5);
  240.                 return $this->forward('App\Controller\ReprendreEntrepriseController::actif', ['codePays' => $codePays'request' => $request]);
  241.             }
  242.         }
  243.         return $this->render(
  244.                         'reprendre_entreprise/recherche_standard_actif.html.twig',
  245.                         [
  246.                         ]
  247.                 );
  248.     }
  249.     public function dernieresAnnoncesCessionActif($lang$codePays) {
  250.         $dernieresAnnonces $this->am->getDernieresAnnoncesCessions(5"actif"$lang$this->getIdPaysByCodePays($codePays));
  251.         return $this->render(
  252.                         'reprendre_entreprise/fragments/cession_actif/dernieres_annonces.html.twig',
  253.                         [
  254.                             'dernieresAnnonces' => $dernieresAnnonces,
  255.                             'lang' => $lang,
  256.                             'codePays' => $codePays
  257.                         ]
  258.                 );
  259.     }
  260.     public function trouverAnnonceCessionActifParLocalisation($lang$codePays) {
  261.         $nb_annonce_france $this->getAnnoncesNumbers(['id_localisation' => 'p33'])['nb_actifs'];
  262.         $nb_annonce_belgique $this->getAnnoncesNumbers(['id_localisation' => 'p32'])['nb_actifs'];
  263.         $nb_annonce_canada $this->getAnnoncesNumbers(['id_localisation' => 'p01'])['nb_actifs'];
  264.         $nb_annonce_suisse $this->getAnnoncesNumbers(['id_localisation' => 'p41'])['nb_actifs'];
  265.         $nb_annonce_autres_pays $this->getAnnoncesNumbers(['id_localisation' => 'p99'])['nb_actifs'];
  266.         return $this->render(
  267.                         "reprendre_entreprise/fragments/cession_actif/trouver_annonce_par_localisation_" $this->getVersionByCodePays($codePays) . ".html.twig",
  268.                         [
  269.                             'nb_annonce_france' => $nb_annonce_france,
  270.                             'nb_annonce_belgique' => $nb_annonce_belgique,
  271.                             'nb_annonce_canada' => $nb_annonce_canada,
  272.                             'nb_annonce_suisse' => $nb_annonce_suisse,
  273.                             'nb_annonce_autres_pays' => $nb_annonce_autres_pays,
  274.                             'lang' => $lang,
  275.                             'codePays' => $codePays
  276.                         ]
  277.                 );
  278.     }
  279.     public function recherchestandardrecherchepartenariat(Request $requestTranslationExtension $translationExtensionAnnoncesVendeurRepository $annonceVendeurRepoContainerBagInterface $container$codePays): Response {
  280.         $reference_mots_cles $request->query->get('reference_mots_cles');
  281.         // Si on fait une recherche simple
  282.         if (isset($reference_mots_cles) && $reference_mots_cles != "") {
  283.             // Si on recherche par idAnnonce
  284.             if (preg_match("/a([0-9]{3,8})/i"$reference_mots_cles) == true || preg_match("/([0-9]{3,8})/"$reference_mots_cles) == true) {
  285.                 $idAnnonce preg_replace("/[^0-9]/"""$reference_mots_cles);
  286.                 $annonce $this->am->getAnnonceAcheteurById($idAnnonce);
  287.                 // Si l'annonce existe et est publiquee
  288.                 if ($annonce && $annonce['mode_annonce'] == "publique" && $annonce['type_raprochement'] == "partenaire") {
  289.                     $slug Utils::slugify($annonce['titre_annonce']);
  290.                     return $this->forward('App\Controller\VendreEntrepriseController::detailsannonce', ['slug' => $slug'idAnnonce' => $idAnnonce'codePays' => $codePays]);
  291.                 } else {
  292.                     $lang $request->getSession()->get('lang');
  293.                     $this->addFlash('error'$translationExtension->translate('annonce introuvable : l’annonce a Ã©té supprimée, remise en attente ou est en cours de modification'$lang'''M'''));
  294.                 }
  295.                 // Si on recherche par mots cles
  296.             } else {
  297.                 // A developper
  298.                 $request->query->set('type_recherche'5);
  299.                 return $this->forward('App\Controller\ReprendreEntrepriseController::recherchepartenariat', ['codePays' => $codePays'request' => $request]);
  300.             }
  301.         }
  302.         return $this->render(
  303.                         'reprendre_entreprise/recherche_standard_recherche_partenariat.html.twig',
  304.                         [
  305.                         ]
  306.                 );
  307.     }
  308.     public function dernieresAnnoncesRecherchePartenariat($lang$codePays) {
  309.         $dernieresAnnonces $this->am->getDernieresAnnoncesAcquisitions(5"partenaire"null$lang$this->getIdPaysByCodePays($codePays));
  310.         return $this->render(
  311.                         'reprendre_entreprise/fragments/recherche_partenariat/dernieres_annonces.html.twig',
  312.                         [
  313.                             'dernieresAnnonces' => $dernieresAnnonces,
  314.                             'lang' => $lang,
  315.                             'codePays' => $codePays
  316.                         ]
  317.                 );
  318.     }
  319.     public function trouverAnnonceRecherchePartenariatParLocalisation($lang$codePays) {
  320.         $nb_annonce_france $this->getAnnoncesNumbers(['id_localisation' => 'p33'])['nb_recherches_partenariats'];
  321.         $nb_annonce_belgique $this->getAnnoncesNumbers(['id_localisation' => 'p32'])['nb_recherches_partenariats'];
  322.         $nb_annonce_canada $this->getAnnoncesNumbers(['id_localisation' => 'p01'])['nb_recherches_partenariats'];
  323.         $nb_annonce_suisse $this->getAnnoncesNumbers(['id_localisation' => 'p41'])['nb_recherches_partenariats'];
  324.         $nb_annonce_autres_pays $this->getAnnoncesNumbers(['id_localisation' => 'p99'])['nb_recherches_partenariats'];
  325.         return $this->render(
  326.                         "reprendre_entreprise/fragments/recherche_partenariat/trouver_annonce_par_localisation_" $this->getVersionByCodePays($codePays) . ".html.twig",
  327.                         [
  328.                             'nb_annonce_france' => $nb_annonce_france,
  329.                             'nb_annonce_belgique' => $nb_annonce_belgique,
  330.                             'nb_annonce_canada' => $nb_annonce_canada,
  331.                             'nb_annonce_suisse' => $nb_annonce_suisse,
  332.                             'nb_annonce_autres_pays' => $nb_annonce_autres_pays,
  333.                             'lang' => $lang,
  334.                             'codePays' => $codePays
  335.                         ]
  336.                 );
  337.     }
  338.     public function recherchestandardciblepotentielle(Request $requestTranslationExtension $translationExtensionAnnoncesVendeurRepository $annonceVendeurRepoContainerBagInterface $container$codePays): Response {
  339.         $reference_mots_cles $request->query->get('reference_mots_cles');
  340.         // Si on fait une recherche simple
  341.         if (isset($reference_mots_cles) && $reference_mots_cles != "") {
  342.             // Recherche par mots clés uniquement
  343.             $request->query->set('type_recherche'5);
  344.             return $this->forward('App\Controller\ReprendreEntrepriseController::ciblepotentielle', ['codePays' => $codePays'request' => $request]);
  345.         }
  346.         return $this->render(
  347.                         'reprendre_entreprise/recherche_standard_cible_potentielle.html.twig',
  348.                         [
  349.                         ]
  350.                 );
  351.     }
  352.     public function trouverCiblePotentielleParLocalisation($lang$codePays) {
  353.         $array_annonce_region_du_pays $this->sm->donne_tableau_nb_cible_potentielle_par_region($this->getIdPaysByCodePays($codePays));
  354.         $nb_regions count($array_annonce_region_du_pays);
  355.         if ($nb_regions != 0) {
  356.             $moitie ceil($nb_regions 2);
  357.         } else {
  358.             $moitie $nb_regions 2;
  359.         }
  360.         $colonne_region_gauche array_slice($array_annonce_region_du_pays0$moitie);
  361.         $colonne_region_droite array_slice($array_annonce_region_du_pays$moitie);
  362.         $nb_annonce_france $this->getAnnoncesNumbers(['id_localisation' => 'p33'])['nb_cibles_potentielles'];
  363.         $nb_annonce_belgique $this->getAnnoncesNumbers(['id_localisation' => 'p32'])['nb_cibles_potentielles'];
  364.         $nb_annonce_canada $this->getAnnoncesNumbers(['id_localisation' => 'p01'])['nb_cibles_potentielles'];
  365.         $nb_annonce_suisse $this->getAnnoncesNumbers(['id_localisation' => 'p41'])['nb_cibles_potentielles'];
  366.         $nb_annonce_autres_pays $this->getAnnoncesNumbers(['id_localisation' => 'p99'])['nb_cibles_potentielles'];
  367.         return $this->render(
  368.                         "reprendre_entreprise/fragments/cible_potentielle/trouver_annonce_par_localisation_" $this->getVersionByCodePays($codePays) . ".html.twig",
  369.                         [
  370.                             'colonne_region_gauche' => $colonne_region_gauche,
  371.                             'colonne_region_droite' => $colonne_region_droite,
  372.                             'nb_annonce_france' => $nb_annonce_france,
  373.                             'nb_annonce_belgique' => $nb_annonce_belgique,
  374.                             'nb_annonce_canada' => $nb_annonce_canada,
  375.                             'nb_annonce_suisse' => $nb_annonce_suisse,
  376.                             'nb_annonce_autres_pays' => $nb_annonce_autres_pays,
  377.                             'array_annonce_region_du_pays' => $array_annonce_region_du_pays,
  378.                             'lang' => $lang,
  379.                             'codePays' => $codePays
  380.                         ]
  381.                 );
  382.     }
  383.     public function trouverCiblePotentielleParCategorie($lang$codePays) {
  384.         $annonces_secteur_activite $this->getNbAnnoncesBySecteursActivite("cible_potentielle");
  385.         return $this->render(
  386.                         "reprendre_entreprise/fragments/cible_potentielle/trouver_annonce_par_categorie.html.twig",
  387.                         [
  388.                             'annonces_secteur_activite' => $annonces_secteur_activite,
  389.                             'lang' => $lang,
  390.                             'codePays' => $codePays
  391.                         ]
  392.                 );
  393.     }
  394.     public function rechercheavanceeentreprise(Request $requestSecteursActiviteManagers $secteursActiviteManagerTranslationExtension $translationExtension$codePaysLocalisationsManagers $localisationManager$type null): Response {
  395.         $parametres $request->query->all();
  396.         $parametres ParametersProvider::prepareRechercheAvanceeParameters($parametres);
  397.         $parametres_localisations ParametersProvider::prepareLocalisationsParameters($localisationManager$parametres);
  398.         $parametres_secteurs ParametersProvider::prepareSecteursParameters($secteursActiviteManager$parametres);
  399.         $string_params $this->serializeParams($parametres);
  400.         $lang $request->getSession()->get('lang');
  401.         $idPays $this->getIdPaysByCodePays($codePays);
  402.         $pays $this->am->donne_option_select_pays_annonce_vente($idPays);
  403.         $regions = [];
  404.         $departements = [];
  405.         $secteurs_activite1 $secteursActiviteManager->donne_option_select_secteurs_activite_niveau_1();
  406.         if (isset($parametres['id_secteur_activite'])) {
  407.             $secteurs_activite2 $secteursActiviteManager->donne_option_select_secteurs_activite_enfant_by_secteur_activite_parent($parametres['id_secteur_activite']);
  408.             $show_secteur_niveau_2 true;
  409.         } else {
  410.             $secteurs_activite2 = [];
  411.             $show_secteur_niveau_2 false;
  412.         }
  413.         if (isset($parametres['id_secteur_activite2'])) {
  414.             $secteurs_activite3 $secteursActiviteManager->donne_option_select_secteurs_activite_enfant_by_secteur_activite_parent($parametres['id_secteur_activite2']);
  415.             $show_secteur_niveau_3 true;
  416.         } else {
  417.             $secteurs_activite3 = [];
  418.             $show_secteur_niveau_3 false;
  419.         }
  420.         $type_cession = [
  421.             $translationExtension->translate('indifferent'$lang'''M''') => '',
  422.             $translationExtension->translate('majoritaire'$lang'''M''') => 'Majoritaire',
  423.             $translationExtension->translate('minoritaire'$lang'''M''') => 'Minoritaire',
  424.         ];
  425.         $raison_cession = [
  426.             $translationExtension->translate('toutes'$lang'''M''') => '',
  427.             $translationExtension->translate('depart a la retraite'$lang'''M''') => '1',
  428.             $translationExtension->translate("changement d'activite du dirigeant"$lang'''M''') => '2',
  429.             $translationExtension->translate('renforcement des fonds propres'$lang'''M''') => '3',
  430.             $translationExtension->translate('adossement industriel'$lang'''M''') => '4',
  431.             $translationExtension->translate('societe en difficulte'$lang'''M''') => '5',
  432.             $translationExtension->translate('autre'$lang'''M''') => '6',
  433.         ];
  434.         $immo_a_vendre = [
  435.             $translationExtension->translate('indifferent'$lang'''M''') => ''// value = indifferent
  436.             $translationExtension->translate('oui'$lang'''M''') => 'oui',
  437.         ];
  438.         $prix_cession_null $translationExtension->translate("afficher les annonces dont le prix de cession n'est pas indique"$lang'''M''');
  439.         $type_repreneur_personne $translationExtension->translate('personne physique'$lang'''M''');
  440.         $type_repreneur_societe $translationExtension->translate('societe'$lang'''M''');
  441.         $apport_demande_null $translationExtension->translate("afficher les annonces dont l'apport n'est pas indique"$lang'''M''');
  442.         $ca_null $translationExtension->translate("afficher les annonces dont le chiffre d'affaires n'est pas indique"$lang'''M''');
  443.         $resultat_net = [
  444.             $translationExtension->translate('indifferent'$lang'''M''') => '',
  445.             $translationExtension->translate('< 0k€'$lang'''M''') => '5',
  446.             $translationExtension->translate('> 0k€'$lang'''M''') => '1',
  447.             $translationExtension->translate('> 100k€'$lang'''M''') => '2',
  448.             $translationExtension->translate('> 300k€'$lang'''M''') => '3',
  449.             $translationExtension->translate('> 500k€'$lang'''M''') => '4',
  450.         ];
  451.         /* $nb_personnes = [
  452.           $translationExtension->translate('indifferent', $lang, '', 'M', '') => '',
  453.           $translationExtension->translate('< 10 personnes', $lang, '', 'M', '') => '1',
  454.           $translationExtension->translate('10 - 50 personnes', $lang, '', 'M', '') => '2',
  455.           $translationExtension->translate('50 - 100 personnes', $lang, '', 'M', '') => '3',
  456.           $translationExtension->translate('100 - 200 personnes', $lang, '', 'M', '') => '4',
  457.           $translationExtension->translate('> 200 personnes', $lang, '', 'M', '') => '5',
  458.           ]; */
  459.         $redressement_judiciaire = [
  460.             $translationExtension->translate('indifferent'$lang'''M''') => ''// value = indifferent
  461.             $translationExtension->translate('non'$lang'''M''') => 'non',
  462.             $translationExtension->translate('oui'$lang'''M''') => 'oui',
  463.         ];
  464.         $possession_brevets $translationExtension->translate('posseder des brevets'$lang'''M''');
  465.         $possession_marques $translationExtension->translate("posseder des marques deposees a l'inpi"$lang'''M''');
  466.         $travail_export $translationExtension->translate("travailler a l'export"$lang'''M''');
  467.         $recherche_par = [
  468.             $translationExtension->translate("mots-cles de l'activite recherchee"$lang'''M''') => 'motscles',
  469.             $translationExtension->translate("secteur predefini"$lang'''M''') => 'secteurs'
  470.         ];
  471.         $formFactory Forms::createFormFactoryBuilder()->getFormFactory();
  472.         $form $formFactory->createNamedBuilder('')
  473.                 ->add('id_pays'ChoiceType::class, [
  474.                     'choices' => $pays,
  475.                 ])
  476.                 ->add('id_region'ChoiceType::class, [
  477.                     'choices' => $regions,
  478.                 ])
  479.                 ->add('id_departement'ChoiceType::class, [
  480.                     'choices' => $departements,
  481.                 ])
  482.                 ->add('id_localisation'HiddenType::class, [
  483.                     'data' => $parametres['id_localisation'],
  484.                 ])
  485.                 ->add('ajouter'ButtonType::class)
  486.                 ->add('reference_mots_cles'TextType::class, [
  487.                     'required' => false,
  488.                     'data' => $parametres['reference_mots_cles'],
  489.                     'attr' => [
  490.                         'placeholder' => $translationExtension->translate("transport, services informatiques, ..."$lang'''M''')
  491.                     ]
  492.                 ])
  493.                 ->add('id_secteur_activite'ChoiceType::class, [
  494.                     'choices' => $secteurs_activite1,
  495.                     'data' => $parametres['id_secteur_activite']
  496.                 ])
  497.                 ->add('id_secteur_activite2'ChoiceType::class, [
  498.                     'choices' => $secteurs_activite2,
  499.                     'data' => $parametres['id_secteur_activite2']
  500.                 ])
  501.                 ->add('id_secteur_activite3'ChoiceType::class, [
  502.                     'choices' => $secteurs_activite3,
  503.                     'data' => $parametres['id_secteur_activite3']
  504.                 ])
  505.                 ->add('id_secteur'HiddenType::class, [
  506.                     'data' => $parametres['id_secteur'],
  507.                 ])
  508.                 ->add('ajouter_secteur_activite'ButtonType::class)
  509.                 ->add('id_raison_cession'ChoiceType::class, [
  510.                     'choices' => $raison_cession,
  511.                     'required' => false,
  512.                     'data' => $parametres['id_raison_cession']
  513.                 ])
  514.                 ->add('immo_a_vendre'ChoiceType::class, [
  515.                     'required' => false,
  516.                     'choices' => $immo_a_vendre,
  517.                     'choice_attr' => function ($choice) {
  518.                         return ['class' => 'form-check-input'];
  519.                     },
  520.                     'expanded' => true,
  521.                     'multiple' => false,
  522.                     'data' => $parametres['immo_a_vendre']
  523.                 ])
  524.                 ->add('prix_cession'TextType::class, [
  525.                     'required' => false
  526.                 ])
  527.                 ->add('prix_cession_null'CheckboxType::class, [
  528.                     'label' => $prix_cession_null,
  529.                     'required' => false,
  530.                     'data' => $parametres['prix_cession_null']
  531.                 ])
  532.                 ->add('type_repreneur_personne'CheckboxType::class, [
  533.                     'label' => $type_repreneur_personne,
  534.                     'required' => false,
  535.                     'data' => $parametres['type_repreneur_personne']
  536.                 ])
  537.                 ->add('type_repreneur_societe'CheckboxType::class, [
  538.                     'label' => $type_repreneur_societe,
  539.                     'required' => false,
  540.                     'data' => $parametres['type_repreneur_societe']
  541.                 ])
  542.                 ->add('apport_demande'TextType::class, ['required' => false])
  543.                 ->add('apport_demande_null'CheckboxType::class, [
  544.                     'label' => $apport_demande_null,
  545.                     'required' => false,
  546.                     'data' => $parametres['apport_demande_null']
  547.                 ])
  548.                 ->add('possession_brevets'CheckboxType::class, [
  549.                     'label' => $possession_brevets,
  550.                     'required' => false,
  551.                     'data' => $parametres['possession_brevets']
  552.                 ])
  553.                 ->add('possession_marques'CheckboxType::class, [
  554.                     'label' => $possession_marques,
  555.                     'required' => false,
  556.                     'data' => $parametres['possession_marques']
  557.                 ])
  558.                 ->add('travail_export'CheckboxType::class, [
  559.                     'label' => $travail_export,
  560.                     'required' => false,
  561.                     'data' => $parametres['travail_export']
  562.                 ])
  563.                 ->add('type_recherche'HiddenType::class, [
  564.                     'data' => 5,
  565.                 ])
  566.                 ->add('recherche_par'ChoiceType::class, [
  567.                     'required' => false,
  568.                     'choices' => $recherche_par,
  569.                     'expanded' => true,
  570.                     'multiple' => false,
  571.                     'data' => $parametres['recherche_par'],
  572.                     'placeholder' => false,
  573.                     'choice_value' => function ($choice) {
  574.                         return $choice// Utilisez la valeur du choix comme clé
  575.                     }
  576.                 ])
  577.                 ->add('rechercher'SubmitType::class);
  578.         if ($type == null || $type == "cession_entreprise") {
  579.             $form $form->add('ca'TextType::class, ['required' => false])
  580.                     ->add('type_cession'ChoiceType::class, [
  581.                         'choices' => $type_cession,
  582.                         'required' => false,
  583.                         'data' => $parametres['type_cession']
  584.                     ])
  585.                     ->add('ca_null'CheckboxType::class, [
  586.                         'label' => $ca_null,
  587.                         'required' => false,
  588.                         'data' => $parametres['ca_null'],
  589.                     ])
  590.                     ->add('resultat_net'ChoiceType::class, [
  591.                         'choices' => $resultat_net,
  592.                         'required' => false,
  593.                         'data' => $parametres['resultat_net']
  594.                     ])
  595.                     /* ->add('nb_personnes', ChoiceType::class, [
  596.                       'choices' => $nb_personnes,
  597.                       'required' => false,
  598.                       'data' => $parametres['nb_personnes']
  599.                       ]) */
  600.                     ->add('nb_personnes'TextType::class, [
  601.                         'required' => false
  602.                     ])
  603.                     ->add('redressement_judiciaire'ChoiceType::class, [
  604.                         'required' => false,
  605.                         'choices' => $redressement_judiciaire,
  606.                         'choice_attr' => function ($choice) {
  607.                             return ['class' => 'form-check-input'];
  608.                         },
  609.                         'expanded' => true,
  610.                         'multiple' => false,
  611.                         'data' => $parametres['redressement_judiciaire']
  612.                     ])
  613.                     ->setAction($this->generateUrl('reprendre_entreprise_resultats_annonces_cession_entreprise', ['codePays' => $codePays]));
  614.         } else {
  615.             $form $form->setAction($this->generateUrl('reprendre_entreprise_resultats_cession_actif', ['codePays' => $codePays]));
  616.         }
  617.         $form $form->setMethod('GET')
  618.                 ->getForm();
  619.         $profils ProfilsConst::listProfilsStrategiquesByCategory();
  620.         $accesElite = ($this->getUser()) ? $this->dm->checkIfThisUserHasDroitService($this->getUser(), RechercheElite::CODE_SERVICE) : false// ELITE   
  621.         return $this->render(
  622.                         'reprendre_entreprise/recherche_avancee_entreprise.html.twig',
  623.                         [
  624.                             'type' => $type,
  625.                             "profils" => $profils,
  626.                             'form' => $form->createView(),
  627.                             'parametres' => $parametres,
  628.                             'parametres_localisations' => $parametres_localisations,
  629.                             'parametres_secteurs' => $parametres_secteurs,
  630.                             'string_params' => $string_params,
  631.                             "data" => [
  632.                                 "elite" => $accesElite,
  633.                             ],
  634.                             'show_secteur_niveau_2' => $show_secteur_niveau_2,
  635.                             'show_secteur_niveau_3' => $show_secteur_niveau_3
  636.                         ]
  637.                 );
  638.     }
  639.     public function rechercheavanceeciblepotentielle(Request $requestSecteursActiviteManagers $secteursActiviteManagerTranslationExtension $translationExtension$codePaysLocalisationsManagers $localisationManagerParametreSiteManagers $psm): Response {
  640.         $parametres $request->query->all();
  641.         $parametres ParametersProvider::prepareRechercheAvanceeParameters($parametres);
  642.         $parametres_localisations ParametersProvider::prepareLocalisationsParameters($localisationManager$parametres);
  643.         $parametres_secteurs ParametersProvider::prepareSecteursParameters($secteursActiviteManager$parametres);
  644.         $string_params $this->serializeParams($parametres);
  645.         $repoSociete $this->getDoctrine()->getRepository(Societes::class);
  646.         $lang $request->getSession()->get('lang');
  647.         $idPays $this->getIdPaysByCodePays($codePays);
  648.         $actionnaires $repoSociete->donne_liste_societe_gestion_select();
  649.         $pays $this->sm->donne_option_select_pays_cible_potentielle($idPays);
  650.         $regions = [];
  651.         $societe_cotee = [
  652.             $translationExtension->translate('indifferent'$lang'''M''') => '0',
  653.             $translationExtension->translate('oui'$lang'''M''') => 'oui',
  654.             $translationExtension->translate('non'$lang'''M''') => 'non',
  655.         ];
  656.         $secteurs_activite1 $secteursActiviteManager->donne_option_select_secteurs_activite_niveau_1();
  657.         if (isset($parametres['id_secteur_activite'])) {
  658.             $secteurs_activite2 $secteursActiviteManager->donne_option_select_secteurs_activite_enfant_by_secteur_activite_parent($parametres['id_secteur_activite']);
  659.             $show_secteur_niveau_2 true;
  660.         } else {
  661.             $secteurs_activite2 = [];
  662.             $show_secteur_niveau_2 false;
  663.         }
  664.         if (isset($parametres['id_secteur_activite2'])) {
  665.             $secteurs_activite3 $secteursActiviteManager->donne_option_select_secteurs_activite_enfant_by_secteur_activite_parent($parametres['id_secteur_activite2']);
  666.             $show_secteur_niveau_3 true;
  667.         } else {
  668.             $secteurs_activite3 = [];
  669.             $show_secteur_niveau_3 false;
  670.         }
  671.         $recherche_par = [
  672.             $translationExtension->translate("mots-cles de l'activite recherchee"$lang'''M''') => 'motscles',
  673.             $translationExtension->translate("secteur predefini"$lang'''M''') => 'secteurs'
  674.         ];
  675.         $formFactory Forms::createFormFactoryBuilder()->getFormFactory();
  676.         $form $formFactory->createNamedBuilder('')
  677.                 ->add('id_gestionnaire_fonds'ChoiceType::class, [
  678.                     'choices' => $actionnaires,
  679.                     'data' => $parametres['id_gestionnaire_fonds']
  680.                 ])
  681.                 ->add('id_pays'ChoiceType::class, [
  682.                     'choices' => $pays,
  683.                 ])
  684.                 ->add('id_region'ChoiceType::class, [
  685.                     'choices' => $regions,
  686.                 ])
  687.                 ->add('id_localisation'HiddenType::class, [
  688.                     'data' => $parametres['id_localisation']
  689.                 ])
  690.                 ->add('ajouter'ButtonType::class)
  691.                 ->add('reference_mots_cles'TextType::class, [
  692.                     'required' => false,
  693.                     'data' => $parametres['reference_mots_cles'],
  694.                     'attr' => [
  695.                         'placeholder' => $translationExtension->translate("transport, services informatiques, ..."$lang'''M''')
  696.                     ]
  697.                 ])
  698.                 ->add('id_secteur_activite'ChoiceType::class, [
  699.                     'choices' => $secteurs_activite1,
  700.                     'data' => $parametres['id_secteur_activite']
  701.                 ])
  702.                 ->add('id_secteur_activite2'ChoiceType::class, [
  703.                     'choices' => $secteurs_activite2,
  704.                     'data' => $parametres['id_secteur_activite2']
  705.                 ])
  706.                 ->add('id_secteur_activite3'ChoiceType::class, [
  707.                     'choices' => $secteurs_activite3,
  708.                     'data' => $parametres['id_secteur_activite3']
  709.                 ])
  710.                 ->add('id_secteur'HiddenType::class, [
  711.                     'data' => $parametres['id_secteur'],
  712.                 ])
  713.                 ->add('ajouter_secteur_activite'ButtonType::class)
  714.                 ->add('ca'TextType::class, ['required' => false])
  715.                 ->add('date'TextType::class, ['required' => false])
  716.                 ->add('societe_cotee'ChoiceType::class, [
  717.                     'choices' => $societe_cotee,
  718.                     'data' => $parametres['societe_cotee']
  719.                 ])
  720.                 ->add('type_recherche'HiddenType::class, [
  721.                     'data' => 5,
  722.                 ])
  723.                 ->add('recherche_par'ChoiceType::class, [
  724.                     'required' => false,
  725.                     'choices' => $recherche_par,
  726.                     'expanded' => true,
  727.                     'multiple' => false,
  728.                     'data' => $parametres['recherche_par'],
  729.                     'placeholder' => false,
  730.                     'choice_value' => function ($choice) {
  731.                         return $choice// Utilisez la valeur du choix comme clé
  732.                     }
  733.                 ])
  734.                 ->add('rechercher'SubmitType::class)
  735.                 ->setAction($this->generateUrl('reprendre_entreprise_resultats_cibles_potentielles', ['codePays' => $codePays]))
  736.                 ->setMethod('GET')
  737.                 ->getForm();
  738.         // On récupère depuis Parametre Site
  739.         $anciennete_minimale_investissement_participation $psm->getValueParamSiteByParamCodePays("anciennete_minimale_investissement_participation""fr");
  740.         $anciennete_maximale_investissement_participation $psm->getValueParamSiteByParamCodePays("anciennete_maximale_investissement_participation""fr");
  741.         // annee_minimale vaut l'année en cours, moins l'ancienneté maximale fixée dans Parametres Site (par exemple 2025 - 15 ans => 2010)
  742.         $annee_minimale = (int) date('Y') - $anciennete_maximale_investissement_participation;
  743.         // annee_maximale vaut l'année en cours, moins l'ancienneté minimale fixée dans Parametres Site (par exemple 2025 - 5 ans => 2020)
  744.         $annee_maximale = (int) date('Y') - $anciennete_minimale_investissement_participation;
  745.         return $this->render(
  746.                         'reprendre_entreprise/recherche_avancee_cible_potentielle.html.twig',
  747.                         [
  748.                             'form' => $form->createView(),
  749.                             'parametres' => $parametres,
  750.                             'parametres_localisations' => $parametres_localisations,
  751.                             'parametres_secteurs' => $parametres_secteurs,
  752.                             'string_params' => $string_params,
  753.                             'show_secteur_niveau_2' => $show_secteur_niveau_2,
  754.                             'show_secteur_niveau_3' => $show_secteur_niveau_3,
  755.                             'annee_minimale' => $annee_minimale,
  756.                             'annee_maximale' => $annee_maximale
  757.                         ]
  758.                 );
  759.     }
  760.     public function rechercheavanceerecherchepartenariat(Request $requestSecteursActiviteManagers $secteursActiviteManagerTranslationExtension $translationExtension$codePaysLocalisationsManagers $localisationManager): Response {
  761.         $parametres $request->query->all();
  762.         $parametres ParametersProvider::prepareRechercheAvanceeParameters($parametres);
  763.         $parametres_localisations ParametersProvider::prepareLocalisationsParameters($localisationManager$parametres);
  764.         $parametres_secteurs ParametersProvider::prepareSecteursParameters($secteursActiviteManager$parametres);
  765.         $string_params $this->serializeParams($parametres);
  766.         $lang $request->getSession()->get('lang');
  767.         $idPays $this->getIdPaysByCodePays($codePays);
  768.         $pays $this->am->donne_option_select_pays_annonces_acheteur("partenariat"$idPays);
  769.         $regions = [];
  770.         $departements = [];
  771.         $secteurs_activite1 $secteursActiviteManager->donne_option_select_secteurs_activite_niveau_1();
  772.         if (isset($parametres['id_secteur_activite'])) {
  773.             $secteurs_activite2 $secteursActiviteManager->donne_option_select_secteurs_activite_enfant_by_secteur_activite_parent($parametres['id_secteur_activite']);
  774.             $show_secteur_niveau_2 true;
  775.         } else {
  776.             $secteurs_activite2 = [];
  777.             $show_secteur_niveau_2 false;
  778.         }
  779.         if (isset($parametres['id_secteur_activite2'])) {
  780.             $secteurs_activite3 $secteursActiviteManager->donne_option_select_secteurs_activite_enfant_by_secteur_activite_parent($parametres['id_secteur_activite2']);
  781.             $show_secteur_niveau_3 true;
  782.         } else {
  783.             $secteurs_activite3 = [];
  784.             $show_secteur_niveau_3 false;
  785.         }
  786.         $type_acquereur = [
  787.             $translationExtension->translate('indifferent'$lang'''M''') => ''// value = indifferent
  788.             $translationExtension->translate('societe'$lang'''M''') => 'societe',
  789.             $translationExtension->translate('personne physique'$lang'''M''') => 'personne',
  790.         ];
  791.         $demarche = [
  792.             $translationExtension->translate('indifferent'$lang'''M''') => ''// value = indifferent
  793.             $translationExtension->translate('une reprise totale, le cedant quittant l\'entreprise'$lang'''M''') => 'reprise_totale',
  794.             $translationExtension->translate('une reprise majoritaire, le cedant restant en minoritaire'$lang'''M''') => 'reprise_majoritaire',
  795.             $translationExtension->translate('une association minoritaire avec le chef d\'entreprise actuel'$lang'''M''') => 'association_minoritaire',
  796.         ];
  797.         $recherche_par = [
  798.             $translationExtension->translate("mots-cles de l'activite recherchee"$lang'''M''') => 'motscles',
  799.             $translationExtension->translate("secteur predefini"$lang'''M''') => 'secteurs'
  800.         ];
  801.         $formFactory Forms::createFormFactoryBuilder()->getFormFactory();
  802.         $form $formFactory->createNamedBuilder('')
  803.                 ->add('id_pays'ChoiceType::class, [
  804.                     'choices' => $pays,
  805.                 ])
  806.                 ->add('id_region'ChoiceType::class, [
  807.                     'choices' => $regions,
  808.                 ])
  809.                 ->add('id_departement'ChoiceType::class, [
  810.                     'choices' => $departements,
  811.                 ])
  812.                 ->add('id_localisation'HiddenType::class, [
  813.                     'data' => $parametres['id_localisation']
  814.                 ])
  815.                 ->add('ajouter'ButtonType::class)
  816.                 ->add('reference_mots_cles'TextType::class, [
  817.                     'required' => false,
  818.                     'data' => $parametres['reference_mots_cles'],
  819.                     'attr' => [
  820.                         'placeholder' => $translationExtension->translate("transport, services informatiques, ..."$lang'''M''')
  821.                     ]
  822.                 ])
  823.                 ->add('id_secteur_activite'ChoiceType::class, [
  824.                     'choices' => $secteurs_activite1,
  825.                     'data' => $parametres['id_secteur_activite']
  826.                 ])
  827.                 ->add('id_secteur_activite2'ChoiceType::class, [
  828.                     'choices' => $secteurs_activite2,
  829.                     'data' => $parametres['id_secteur_activite2']
  830.                 ])
  831.                 ->add('id_secteur_activite3'ChoiceType::class, [
  832.                     'choices' => $secteurs_activite3,
  833.                     'data' => $parametres['id_secteur_activite3']
  834.                 ])
  835.                 ->add('id_secteur'HiddenType::class, [
  836.                     'data' => $parametres['id_secteur'],
  837.                 ])
  838.                 ->add('ajouter_secteur_activite'ButtonType::class)
  839.                 ->add('type_acquereur'ChoiceType::class, [
  840.                     'required' => false,
  841.                     'choices' => $type_acquereur,
  842.                     'expanded' => true,
  843.                     'multiple' => false,
  844.                     'data' => $parametres['type_acquereur']
  845.                 ])
  846.                 ->add('demarche'ChoiceType::class, [
  847.                     'required' => false,
  848.                     'choices' => $demarche,
  849.                     'expanded' => true,
  850.                     'multiple' => false,
  851.                     'data' => $parametres['demarche']
  852.                 ])
  853.                 ->add('type_recherche'HiddenType::class, [
  854.                     'data' => 5,
  855.                 ])
  856.                 ->add('recherche_par'ChoiceType::class, [
  857.                     'required' => false,
  858.                     'choices' => $recherche_par,
  859.                     'expanded' => true,
  860.                     'multiple' => false,
  861.                     'data' => $parametres['recherche_par'],
  862.                     'placeholder' => false,
  863.                     'choice_value' => function ($choice) {
  864.                         return $choice// Utilisez la valeur du choix comme clé
  865.                     }
  866.                 ])
  867.                 ->add('rechercher'SubmitType::class)
  868.                 ->setAction($this->generateUrl('reprendre_entreprise_resultats_recherches_partenariat', ['codePays' => $codePays]))
  869.                 ->setMethod('GET')
  870.                 ->getForm();
  871.         $current_year date('Y');
  872.         return $this->render(
  873.                         'reprendre_entreprise/recherche_avancee_recherche_partenariat.html.twig',
  874.                         [
  875.                             /* 'nb_actifs' => $nb_actifs,
  876.                               'nb_entreprises' => $nb_entreprises,
  877.                               'nb_cibles_potentielles' => $nb_cibles_potentielles,
  878.                               'nb_recherches_partenariats' => $nb_recherches_partenariats, */
  879.                             'form' => $form->createView(),
  880.                             'parametres' => $parametres,
  881.                             'parametres_localisations' => $parametres_localisations,
  882.                             'parametres_secteurs' => $parametres_secteurs,
  883.                             'current_year' => $current_year,
  884.                             'string_params' => $string_params,
  885.                             'show_secteur_niveau_2' => $show_secteur_niveau_2,
  886.                             'show_secteur_niveau_3' => $show_secteur_niveau_3
  887.                         ]
  888.                 );
  889.     }
  890.     /**
  891.      * Vérifie l'accès Ã  la fonctionnalité de recherche Elite
  892.      *
  893.      * Contrôle si l'utilisateur a les droits nécessaires pour accéder Ã  la recherche Elite.
  894.      * Si l'utilisateur n'a pas les permissions requises, une exception d'accès refusé est levée.
  895.      *
  896.      * @param array $parametres Les paramètres de recherche contenant potentiellement le critère profil Elite
  897.      *
  898.      * @return void
  899.      *
  900.      * @throws AccessDeniedException Si l'utilisateur n'a pas accès au service Elite (code 81)
  901.      *
  902.      * @see RechercheAvancee::CRITERE_PROFIL
  903.      * @see RechercheElite::CODE_SERVICE
  904.      */
  905.     private function resultatEliteSecured(array $parametres) {
  906.         if (!empty($parametres[RechercheAvancee::CRITERE_PROFIL])) { //  if (array_key_exists(RechercheAvancee::CRITERE_PROFIL, $parametres)) { //recherche ELITE
  907.             $acces = ($this->getUser()) ? $this->dm->checkIfThisUserHasDroitService($this->getUser(), RechercheElite::CODE_SERVICE) : false// 81 service ELITE
  908.             if ($acces == false) { //recherche ELITE
  909.                 throw new AccessDeniedException();
  910.             }
  911.         }
  912.     }
  913.     public function entreprise(Request $requestPaginatorInterface $paginatorLocalisationsManagers $localisationManagerLocalisationsRepository $localisationsRepoParametresDiversRepository $parametresDiversRepoTranslationExtension $translationExtension$type null$idLocalisation null$slug null$idSecteurActivite null$codePays): Response {
  914.         $lang $request->getSession()->get('lang');
  915.         $parametres $request->query->all();
  916.         if (isset($parametres[RechercheAvancee::CRITERE_PROFIL]) && $parametres[RechercheAvancee::CRITERE_PROFIL] == "") {
  917.             unset($parametres[RechercheAvancee::CRITERE_PROFIL]);
  918.         }
  919.         $this->resultatEliteSecured($parametres);
  920.         $eliteResult = (!empty($parametres[RechercheAvancee::CRITERE_PROFIL]));
  921.         $userIdentity $this->getUser();
  922.         $eliteAccess false;
  923.         if (!empty($this->getUser())) {
  924.             $eliteAccess $this->dm->checkIfThisUserHasDroitService($this->getUser(), [RechercheElite::CODE_SERVICE_ELITE]); // on loggue par defaut ELITE
  925.         }
  926.         $publiqueElite $request->query->get('publiqueElite');
  927.         if (empty($publiqueElite)) {
  928.             $publiqueElite false;
  929.         } else {
  930.             $publiqueElite true;
  931.         }
  932.         /* if (!$eliteAccess&&$publiqueElite) {
  933.           return $this->redirectToRoute('reprendre_entreprise_resultats_annonces_cession_entreprise', ['codePays' => $codePays]);
  934.           } */
  935.         if ($eliteResult) {
  936.             if ($eliteAccess) {
  937.                 $this->lmp->ajouterActionLogsActions($userIdentity->_get('id_utilisateur'), RechercheElite::ID_LOG_ACTION_STANDARD$userIdentity->_get('type_utilisateur'), "----"); // 81  // elite 
  938.             } else {
  939.                 $eliteEssaiAccess $this->dm->checkIfThisUserHasDroitService($this->getUser(), [RechercheElite::CODE_SERVICE_ELITE_ESSAI]);
  940.                 if ($eliteEssaiAccess) {
  941.                     $this->lmp->ajouterActionLogsActions($userIdentity->_get('id_utilisateur'), RechercheElite::ID_LOG_ACTION_STANDARD_ESSAI$userIdentity->_get('type_utilisateur'), "----"); //82 // elite essai
  942.                 }
  943.             }
  944.         }
  945.         $metaTitle $metaDescription null;
  946.         $arrayVarsTrans = [];
  947.         // Recherche standard 
  948.         if ($idLocalisation || $idSecteurActivite) {
  949.             // Preparation des parametres 
  950.             if ($idLocalisation) {
  951.                 if ($type == 'd') {
  952.                     $parametres['id_departement'] = $idLocalisation;
  953.                     $child_type null;
  954.                     $parent_type "r";
  955.                 } elseif ($type == "r") {
  956.                     $parametres['id_region'] = $idLocalisation;
  957.                     $child_type "d";
  958.                     $parent_type "p";
  959.                 } else {
  960.                     $parametres['id_pays'] = $idLocalisation;
  961.                     $child_type "r";
  962.                     $parent_type null;
  963.                 }
  964.                 $parametres ParametersProvider::prepareRechercheStandardParameters($parametres);
  965.             }
  966.             if ($idSecteurActivite) {
  967.                 $parametres['id_secteur_activite'] = $idSecteurActivite;
  968.                 $parametres ParametersProvider::prepareRechercheStandardParameters($parametres);
  969.             }
  970.             // Recherche par localisation
  971.             if ($idLocalisation) {
  972.                 $localisations $localisationManager->getLocalisationCompleteWithNavById($idLocalisation);
  973.                 if (!$localisations) {
  974.                     $this->addFlash('error'$translationExtension->translate('erreur de localisation'$lang'''M'''));
  975.                     return $this->redirectToRoute('reprendre_entreprise_resultats_annonces_cession_entreprise', ['codePays' => $codePays]);
  976.                 }
  977.                 $villesRepo $this->getDoctrine()->getRepository(Villes::class);
  978.                 $noms_ville $villesRepo->donne_string_noms_villes_principales_dune_localisation($idLocalisation);
  979.                 $sous_localisations $localisationsRepo->getSubLevelLocalisations($idLocalisation);
  980.                 $sous_localisations_numbers = [];
  981.                 $prev_localisation = [];
  982.                 foreach ($sous_localisations as $sous_localisation) {
  983.                     $params = [];
  984.                     if ($idSecteurActivite) {
  985.                         $params['id_secteur_activite'] = $idSecteurActivite;
  986.                     }
  987.                     if ($type == "r") {
  988.                         $params['id_departement'] = $sous_localisation['id_localisation'];
  989.                     } else {
  990.                         if ($idLocalisation == "99") {
  991.                             $params['id_pays'] = $sous_localisation['id_localisation'];
  992.                             $child_type "p";
  993.                         } else {
  994.                             $params['id_region'] = $sous_localisation['id_localisation'];
  995.                         }
  996.                     }
  997.                     $sous_localisation['type'] = $child_type;
  998.                     $params ParametersProvider::prepareRechercheStandardParameters($params);
  999.                     $annonces_numbers $this->getAnnoncesNumbers($params);
  1000.                     if ($idLocalisation == 99) {
  1001.                         if ($sous_localisation['nom_localisation'] != "Confidentiel" && $annonces_numbers['nb_entreprises'] != 0) {
  1002.                             $sous_localisations_numbers[] = array_merge($sous_localisation$annonces_numbers);
  1003.                         }
  1004.                     } else {
  1005.                         if ($sous_localisation['nom_localisation'] != "Confidentiel" || $annonces_numbers['nb_entreprises'] != 0) {
  1006.                             $sous_localisations_numbers[] = array_merge($sous_localisation$annonces_numbers);
  1007.                         }
  1008.                     }
  1009.                 }
  1010.                 if (!$prev_localisation && $parent_type) {
  1011.                     $prev_localisation = isset($localisations[count($localisations) - 2]) ? $localisations[count($localisations) - 2] : null;
  1012.                     $prev_localisation['type'] = $parent_type;
  1013.                 }
  1014.                 $last_localisation end($localisations);
  1015.                 $arrayVarsTrans['prefixe_localisation'] = $last_localisation['prefixe'];
  1016.                 $arrayVarsTrans['nom_localisation'] = strtoupper($last_localisation['nom_localisation']);
  1017.                 $metaTitle '%$nb_entreprises%$ $$annonce d\'ENTREPRISE$${p|annonces d\'ENTREPRISES} Ã  reprendre %$prefixe_localisation%$ %$nom_localisation%$';
  1018.                 $metaDescription 'consultez %$nb_entreprises%$ $$annonce d\'entreprise$${p|annonces d\'entreprises} Ã  vendre %$prefixe_localisation%$ %$nom_localisation%$';
  1019.             }
  1020.             // Recherche par secteur d'activite
  1021.             if ($idSecteurActivite) {
  1022.                 $secteurActivites $this->sam->getTreeSecteursActivite($idSecteurActivite);
  1023.                 if (!$secteurActivites) {
  1024.                     $this->addFlash('error'$translationExtension->translate("erreur de secteur d'activité"$lang'''M'''));
  1025.                     return $this->redirectToRoute('reprendre_entreprise_resultats_annonces_cession_entreprise', ['codePays' => $codePays]);
  1026.                 }
  1027.                 $secteurActiviteRepo $this->getDoctrine()->getRepository(SecteursActivite::class);
  1028.                 $sous_secteurs $secteurActiviteRepo->getAllSecteursActiviteEnfantByIdSecteurParent($idSecteurActivite);
  1029.                 $sous_secteurs_numbers = [];
  1030.                 $prev_secteur = [];
  1031.                 foreach ($sous_secteurs as $sous_secteur) {
  1032.                     $params = [];
  1033.                     $params['id_secteur_activite'] = $sous_secteur['idSecteurActivite'];
  1034.                     $params ParametersProvider::prepareRechercheStandardParameters($params);
  1035.                     $annonces_numbers $this->getAnnoncesNumbers($params);
  1036.                     $sous_secteurs_numbers[] = array_merge($sous_secteur$annonces_numbers);
  1037.                 }
  1038.                 if (!$prev_secteur) {
  1039.                     $prev_secteur = isset($secteurActivites[count($secteurActivites) - 2]) ? $secteurActivites[count($secteurActivites) - 2] : null;
  1040.                 }
  1041.                 $last_secteur end($secteurActivites);
  1042.                 $arrayVarsTrans['nomPourTitle'] = $last_secteur->getNomPourTitle();
  1043.                 // Si ce n'est pas une recherche croisée
  1044.                 if (!$idLocalisation) {
  1045.                     $metaTitle '%$nb_entreprises%$ $$entreprise$${p|entreprises} %$nomPourTitle%$ Ã  vendre';
  1046.                     $metaDescription 'consultez %$nb_entreprises%$ $$entreprise$${p|entreprises} %$nomPourTitle%$ Ã  vendre';
  1047.                 } else {
  1048.                     $metaTitle '%$nb_entreprises%$ $$entreprise$${p|entreprises} %$nomPourTitle%$ %$prefixe_localisation%$ %$nom_localisation%$ Ã  vendre';
  1049.                     $metaDescription 'consultez %$nb_entreprises%$ $$entreprise$${p|entreprises} %$nomPourTitle%$ %$prefixe_localisation%$ %$nom_localisation%$ Ã  vendre';
  1050.                 }
  1051.             }
  1052.             // Recherche avancée / dernières annonces
  1053.         } else {
  1054.             $parametres ParametersProvider::prepareRechercheAvanceeParameters($parametres);
  1055.         }
  1056.         $is_recherche ParametersProvider::prepareRechercheAvanceeParameters() != ParametersProvider::prepareRechercheAvanceeParameters($parametres);
  1057.         $string_params $string_params_without_page $this->serializeParams($parametres);
  1058.         $repoVendeur $this->getDoctrine()->getRepository(AnnoncesVendeur::class);
  1059.         $annonce_publique_elite $repoVendeur->donne_annonces_elite_vente_recherche($parametres);
  1060.         $nb_annonce_elite $repoVendeur->donne_nb_annonces_elite_vente_recherche($parametres);
  1061.         // Si c'est une recherche, on calcule les nb Ã  afficher
  1062.         if ($is_recherche) {
  1063.             $repoSociete $this->getDoctrine()->getRepository(Societes::class);
  1064.             $repoAcheteur $this->getDoctrine()->getRepository(AnnoncesAcheteur::class);
  1065.             $nb_annonces_cessions $repoVendeur->donne_nb_annonces_vente_recherche($parametres);
  1066.             $nb_actifs $repoVendeur->donne_nb_annonces_vente_recherche_actif($parametres);
  1067.             $nb_entreprises $nb_annonces_cessions $nb_actifs;
  1068.             $nb_cibles_potentielles $repoSociete->donne_nb_participations_fonds($parametres"vendeur");
  1069.             $nb_recherches_partenariats $repoAcheteur->donne_nb_annonces_achat_recherche_partenaire($parametres);
  1070.             $nb_annonces $nb_annonces_cessions $nb_cibles_potentielles $nb_recherches_partenariats;
  1071.         } else {
  1072.             // Sinon on récupère les nb stockés dans parametres_divers
  1073.             $nb $parametresDiversRepo->getListNombresAafficher();
  1074.             //$nb_annonces_cessions = $nb->reprendre_une_entreprise_nb_cession_entreprise;
  1075.             $nb_actifs $nb->reprendre_une_entreprise_nb_actifs_a_reprendre;
  1076.             $nb_entreprises $nb->reprendre_une_entreprise_nb_cession_entreprise;
  1077.             $nb_cibles_potentielles $nb->reprendre_une_entreprise_nb_cibles_potentielles;
  1078.             $nb_recherches_partenariats $nb->reprendre_une_entreprise_nb_recherches_de_partenariats;
  1079.             $nb_annonces $nb_entreprises $nb_actifs $nb_cibles_potentielles $nb_recherches_partenariats;
  1080.         }
  1081.         $dernieresAnnonces $request->query->get('dernieresAnnonces');
  1082.         $user $this->getUser();
  1083.         $login_utilisateur = isset($user) ? $user->_get('login_utilisateur') : null;
  1084.         $nb_total_annonces_prioritaires $repoVendeur->donne_nb_annonces_vendeur_prioritaires($parametres'nombre');
  1085.         $parametres["eliteAccess"] = $eliteAccess;
  1086.         $parametres["dernieresAnnonces"] = $dernieresAnnonces;
  1087.         $liste_annonces_prioritaires = [];
  1088.         if ((null == $request->get('page') || == $request->get('page')) && (!isset($_GET['tri']) || null == $_GET['tri'] || '21' == $_GET['tri'] || '' == $_GET['tri']) && $dernieresAnnonces == null) {
  1089.             $liste_annonces_prioritaires $this->am->getAnnoncesPrioritairesCession($parametres'entreprise'$login_utilisateur);
  1090.         }
  1091.         if ($publiqueElite) {
  1092.             $liste_annonces $this->am->getAnnoncesCessionList($request$paginator$parametres'annonce_publique_elite'$login_utilisateur);
  1093.         } else {
  1094.             $liste_annonces $this->am->getAnnoncesCessionList($request$paginator$parametres'entreprise'$login_utilisateur);
  1095.         }
  1096.         $page $request->query->get('page');
  1097.         if ($page != null && $page != 1) {
  1098.             $string_params .= "&page=" $page;
  1099.         }
  1100.         $tri = isset($parametres['tri']) ? $parametres['tri'] : null;
  1101.         $urlList $request->getPathInfo();
  1102.         $tri_default null;
  1103.         // Si aucun tri
  1104.         if (!$tri) {
  1105.             // On trie par CA si c'est une recherche
  1106.             if ($is_recherche) {
  1107.                 $tri_default "ca_desc";
  1108.             } else {
  1109.                 $tri_default "date_desc";
  1110.             }
  1111.             if ($eliteResult) {
  1112.                 $tri_default "matching_desc";
  1113.             }
  1114.         }
  1115.         // Si ce n'est pas une recherche par loc / sec ou croisé
  1116.         if ($metaTitle == null && $metaTitle == null) {
  1117.             $metaTitle '%$nb_entreprises%$ $$annonce d\'entreprise$${p|annonces d\'entreprises} Ã  reprendre';
  1118.             $metaDescription 'consultez %$nb_entreprises%$ $$annonce d\'entreprise$${p|annonces d\'entreprises} Ã  vendre en fonction de vos critères de recherche.';
  1119.         }
  1120.         if ($publiqueElite) {
  1121.             $arrayVarsTrans['nb_entreprises'] = $nb_annonce_elite;
  1122.         } else {
  1123.             if (empty($dernieresAnnonces)) {
  1124.                 $nb_entreprises $nb_entreprises $nb_annonce_elite;
  1125.                 $arrayVarsTrans['nb_entreprises'] = $nb_entreprises;
  1126.                 $nb_annonces $nb_annonces $nb_annonce_elite;
  1127.             } else {
  1128.                 $arrayVarsTrans['nb_entreprises'] = $nb_entreprises;
  1129.             }
  1130.         }
  1131.         if ($nb_entreprises 1) {
  1132.             $p 'p';
  1133.         } else {
  1134.             $p '';
  1135.         }
  1136.         $metaTag $this->metaTag
  1137.                 ->setTitle($translationExtension->translate($metaTitle$lang"""M"$p$arrayVarsTrans))
  1138.                 ->setDescription($translationExtension->translate($metaDescription$lang"""M"$p$arrayVarsTrans))
  1139.                 ->setRobots('noindex');
  1140.         $array_return = [
  1141.             'metaTag' => $metaTag,
  1142.             'nb_annonces' => $nb_annonces,
  1143.             'nb_entreprises' => $nb_entreprises,
  1144.             'nb_actifs' => $nb_actifs,
  1145.             'nb_cibles_potentielles' => $nb_cibles_potentielles,
  1146.             'nb_recherches_partenariats' => $nb_recherches_partenariats,
  1147.             'liste_annonces_prioritaires' => $liste_annonces_prioritaires,
  1148.             'liste_annonces' => $liste_annonces,
  1149.             'nb_total_annonces_prioritaires' => $nb_total_annonces_prioritaires,
  1150.             'string_params' => $string_params,
  1151.             'string_params_without_page' => $string_params_without_page,
  1152.             'tri' => $tri,
  1153.             'urlList' => $urlList,
  1154.             'idLocalisation' => null,
  1155.             'idSecteurActivite' => null,
  1156.             "eliteResult" => $eliteResult,
  1157.             'filtres' => $parametres ?? [],
  1158.             'tri_default' => $tri_default,
  1159.             'eliteAccess' => $eliteAccess,
  1160.             'nb_annonce_elite' => $nb_annonce_elite,
  1161.             'annonce_publique_elite' => $annonce_publique_elite,
  1162.             'publiqueElite' => $publiqueElite
  1163.         ];
  1164.         if ($idLocalisation || $idSecteurActivite) {
  1165.             if ($idLocalisation) {
  1166.                 $array_return['idLocalisation'] = $idLocalisation;
  1167.                 $array_return['idSecteurActivite'] = $idSecteurActivite $idSecteurActivite null;
  1168.                 $array_return['slug'] = $slug;
  1169.                 $array_return['type'] = $type;
  1170.                 $array_return['localisations'] = $localisations;
  1171.                 $array_return['noms_ville'] = $noms_ville;
  1172.                 $array_return['sous_localisations_numbers'] = $sous_localisations_numbers;
  1173.                 $array_return['prev_localisation'] = $prev_localisation;
  1174.             }
  1175.             if ($idSecteurActivite) {
  1176.                 $array_return['idSecteurActivite'] = $idSecteurActivite;
  1177.                 $array_return['idLocalisation'] = $idLocalisation $idLocalisation null;
  1178.                 $array_return['slug'] = $slug;
  1179.                 $array_return['secteurActivites'] = $secteurActivites;
  1180.                 $array_return['sous_secteurs_numbers'] = $sous_secteurs_numbers;
  1181.                 $array_return['prev_secteur'] = $prev_secteur;
  1182.             }
  1183.             if ($idLocalisation && $idSecteurActivite) {
  1184.                 $array_return['idLocalisation'] = $idLocalisation;
  1185.             }
  1186.         }
  1187.         return $this->render(
  1188.                         'reprendre_entreprise/entreprise.html.twig',
  1189.                         $array_return
  1190.                 );
  1191.     }
  1192.     public function actif(Request $requestPaginatorInterface $paginatorLocalisationsManagers $localisationManagerTranslationExtension $translationExtensionLocalisationsRepository $localisationsRepoParametresDiversRepository $parametresDiversRepo$type null$idLocalisation null$slug null$idSecteurActivite null$codePays): Response {
  1193.         $lang $request->getSession()->get('lang');
  1194.         $parametres $request->query->all();
  1195.         $metaTitle $metaDescription null;
  1196.         $arrayVarsTrans = [];
  1197.         $userIdentity $this->getUser();
  1198.         $eliteAccess false;
  1199.         if (!empty($this->getUser())) {
  1200.             $eliteAccess $this->dm->checkIfThisUserHasDroitService($this->getUser(), [RechercheElite::CODE_SERVICE_ELITE]); // on loggue par defaut ELITE
  1201.         }
  1202.         $publiqueElite $request->query->get('publiqueElite');
  1203.         if (empty($publiqueElite)) {
  1204.             $publiqueElite false;
  1205.         } else {
  1206.             $publiqueElite true;
  1207.         }
  1208.         // Recherche standard 
  1209.         if ($idLocalisation || $idSecteurActivite) {
  1210.             // Preparation des parametres
  1211.             if ($idLocalisation) {
  1212.                 if ($type == 'd') {
  1213.                     $parametres['id_departement'] = $idLocalisation;
  1214.                     $child_type null;
  1215.                     $parent_type "r";
  1216.                 } elseif ($type == "r") {
  1217.                     $parametres['id_region'] = $idLocalisation;
  1218.                     $child_type "d";
  1219.                     $parent_type "p";
  1220.                 } else {
  1221.                     $parametres['id_pays'] = $idLocalisation;
  1222.                     $child_type "r";
  1223.                     $parent_type null;
  1224.                 }
  1225.                 $parametres ParametersProvider::prepareRechercheStandardParameters($parametres);
  1226.             }
  1227.             if ($idSecteurActivite) {
  1228.                 $parametres['id_secteur_activite'] = $idSecteurActivite;
  1229.                 $parametres ParametersProvider::prepareRechercheStandardParameters($parametres);
  1230.             }
  1231.             // Recherche par localisation
  1232.             if ($idLocalisation) {
  1233.                 $localisations $localisationManager->getLocalisationCompleteWithNavById($idLocalisation);
  1234.                 if (!$localisations) {
  1235.                     $this->addFlash('error'$translationExtension->translate('erreur de localisation'$lang'''M'''));
  1236.                     return $this->redirectToRoute('reprendre_entreprise_resultats_cession_actif', ['codePays' => $codePays]);
  1237.                 }
  1238.                 $villesRepo $this->getDoctrine()->getRepository(Villes::class);
  1239.                 $noms_ville $villesRepo->donne_string_noms_villes_principales_dune_localisation($idLocalisation);
  1240.                 $sous_localisations $localisationsRepo->getSubLevelLocalisations($idLocalisation);
  1241.                 $sous_localisations_numbers = [];
  1242.                 $prev_localisation = [];
  1243.                 foreach ($sous_localisations as $sous_localisation) {
  1244.                     $params = [];
  1245.                     if ($idSecteurActivite) {
  1246.                         $params['id_secteur_activite'] = $idSecteurActivite;
  1247.                     }
  1248.                     if ($type == "r") {
  1249.                         $params['id_departement'] = $sous_localisation['id_localisation'];
  1250.                     } else {
  1251.                         if ($idLocalisation == "99") {
  1252.                             $params['id_pays'] = $sous_localisation['id_localisation'];
  1253.                             $child_type "p";
  1254.                         } else {
  1255.                             $params['id_region'] = $sous_localisation['id_localisation'];
  1256.                         }
  1257.                     }
  1258.                     $sous_localisation['type'] = $child_type;
  1259.                     $params ParametersProvider::prepareRechercheStandardParameters($params);
  1260.                     $annonces_numbers $this->getAnnoncesNumbers($params);
  1261.                     if ($idLocalisation == 99) {
  1262.                         if ($sous_localisation['nom_localisation'] != "Confidentiel" && $annonces_numbers['nb_actifs'] != 0) {
  1263.                             $sous_localisations_numbers[] = array_merge($sous_localisation$annonces_numbers);
  1264.                         }
  1265.                     } else {
  1266.                         if ($sous_localisation['nom_localisation'] != "Confidentiel" || $annonces_numbers['nb_actifs'] != 0) {
  1267.                             $sous_localisations_numbers[] = array_merge($sous_localisation$annonces_numbers);
  1268.                         }
  1269.                     }
  1270.                 }
  1271.                 if (!$prev_localisation && $parent_type) {
  1272.                     $prev_localisation = isset($localisations[count($localisations) - 2]) ? $localisations[count($localisations) - 2] : null;
  1273.                     $prev_localisation['type'] = $parent_type;
  1274.                 }
  1275.                 $last_localisation end($localisations);
  1276.                 $arrayVarsTrans['prefixe_localisation'] = $last_localisation['prefixe'];
  1277.                 $arrayVarsTrans['nom_localisation'] = strtoupper($last_localisation['nom_localisation']);
  1278.                 $metaTitle '%$nb_actifs%$ $$annonce d\'ACTIF$${p|annonces d\'ACTIFS} Ã  reprendre %$prefixe_localisation%$ %$nom_localisation%$';
  1279.                 $metaDescription 'consultez %$nb_actifs%$ $$annonce d\'actif$${p|annonces d\'actifs} Ã  vendre %$prefixe_localisation%$ %$nom_localisation%$';
  1280.             }
  1281.             // Recherche par secteur d'activite
  1282.             if ($idSecteurActivite) {
  1283.                 $secteurActivites $this->sam->getTreeSecteursActivite($idSecteurActivite);
  1284.                 if (!$secteurActivites) {
  1285.                     $this->addFlash('error'$translationExtension->translate("erreur de secteur d'activité"$lang'''M'''));
  1286.                     return $this->redirectToRoute('reprendre_entreprise_resultats_cession_actif', ['codePays' => $codePays]);
  1287.                 }
  1288.                 $secteurActiviteRepo $this->getDoctrine()->getRepository(SecteursActivite::class);
  1289.                 $sous_secteurs $secteurActiviteRepo->getAllSecteursActiviteEnfantByIdSecteurParent($idSecteurActivite);
  1290.                 $sous_secteurs_numbers = [];
  1291.                 $prev_secteur = [];
  1292.                 foreach ($sous_secteurs as $sous_secteur) {
  1293.                     $params = [];
  1294.                     $params['id_secteur_activite'] = $sous_secteur['idSecteurActivite'];
  1295.                     $params ParametersProvider::prepareRechercheStandardParameters($params);
  1296.                     $annonces_numbers $this->getAnnoncesNumbers($params);
  1297.                     $sous_secteurs_numbers[] = array_merge($sous_secteur$annonces_numbers);
  1298.                 }
  1299.                 if (!$prev_secteur) {
  1300.                     $prev_secteur = isset($secteurActivites[count($secteurActivites) - 2]) ? $secteurActivites[count($secteurActivites) - 2] : null;
  1301.                 }
  1302.                 $last_secteur end($secteurActivites);
  1303.                 $arrayVarsTrans['nomPourTitle'] = $last_secteur->getNomPourTitle();
  1304.                 // Si ce n'est pas une recherche croisée
  1305.                 if (!$idLocalisation) {
  1306.                     $metaTitle '%$nb_actifs%$ $$actif$${p|actifs} %$nomPourTitle%$ Ã  reprendre';
  1307.                     $metaDescription 'consultez %$nb_actifs%$ $$actif$${p|actifs} %$nomPourTitle%$ Ã  reprendre';
  1308.                 } else {
  1309.                     $metaTitle '%$nb_actifs%$ $$actif$${p|actifs} %$nomPourTitle%$ %$prefixe_localisation%$ %$nom_localisation%$ Ã  reprendre';
  1310.                     $metaDescription 'consultez %$nb_actifs%$ $$actif$${p|actifs} %$nomPourTitle%$ %$prefixe_localisation%$ %$nom_localisation%$ Ã  reprendre';
  1311.                 }
  1312.             }
  1313.             // Recherche avancée / dernieres annonces
  1314.         } else {
  1315.             $parametres ParametersProvider::prepareRechercheAvanceeParameters($parametres);
  1316.         }
  1317.         $is_recherche ParametersProvider::prepareRechercheAvanceeParameters() != ParametersProvider::prepareRechercheAvanceeParameters($parametres);
  1318.         $string_params $string_params_without_page $this->serializeParams($parametres);
  1319.         $repoVendeur $this->getDoctrine()->getRepository(AnnoncesVendeur::class);
  1320.         // Si c'est une recherche, on calcule les nb Ã  afficher
  1321.         if ($is_recherche) {
  1322.             $repoSociete $this->getDoctrine()->getRepository(Societes::class);
  1323.             $repoAcheteur $this->getDoctrine()->getRepository(AnnoncesAcheteur::class);
  1324.             $nb_annonces_cessions $repoVendeur->donne_nb_annonces_vente_recherche($parametres);
  1325.             $nb_actifs $repoVendeur->donne_nb_annonces_vente_recherche_actif($parametres);
  1326.             $nb_entreprises $nb_annonces_cessions $nb_actifs;
  1327.             if ($nb_entreprises 0) {
  1328.                 $nb_entreprises 0;
  1329.             }
  1330.             $nb_cibles_potentielles $repoSociete->donne_nb_participations_fonds($parametres"vendeur");
  1331.             $nb_recherches_partenariats $repoAcheteur->donne_nb_annonces_achat_recherche_partenaire($parametres);
  1332.             $nb_annonces $nb_annonces_cessions $nb_cibles_potentielles $nb_recherches_partenariats;
  1333.         } else {
  1334.             // Sinon on récupère les nb stockés dans parametres_divers
  1335.             $nb $parametresDiversRepo->getListNombresAafficher();
  1336.             //$nb_annonces_cessions = $nb->reprendre_une_entreprise_nb_cession_entreprise;
  1337.             $nb_actifs $nb->reprendre_une_entreprise_nb_actifs_a_reprendre;
  1338.             $nb_entreprises $nb->reprendre_une_entreprise_nb_cession_entreprise;
  1339.             $nb_cibles_potentielles $nb->reprendre_une_entreprise_nb_cibles_potentielles;
  1340.             $nb_recherches_partenariats $nb->reprendre_une_entreprise_nb_recherches_de_partenariats;
  1341.             $nb_annonces $nb_entreprises $nb_actifs $nb_cibles_potentielles $nb_recherches_partenariats;
  1342.         }
  1343.         $user $this->getUser();
  1344.         $login_utilisateur = isset($user) ? $user->_get('login_utilisateur') : null;
  1345.         $dernieresAnnonces $request->query->get('dernieresAnnonces');
  1346.         $nb_total_annonces_prioritaires $repoVendeur->donne_nb_annonces_vendeur_prioritaires($parametres'nombre_actif');
  1347.         $liste_annonces_prioritaires = [];
  1348.         if ((null == $request->get('page') || == $request->get('page')) && (!isset($_GET['tri']) || null == $_GET['tri'] || '21' == $_GET['tri'] || '' == $_GET['tri']) && $dernieresAnnonces == null) {
  1349.             $liste_annonces_prioritaires $this->am->getAnnoncesPrioritairesCession($parametres'actif'$login_utilisateur);
  1350.         }
  1351.         $liste_annonces $this->am->getAnnoncesCessionList($request$paginator$parametres'actif'$login_utilisateur);
  1352.         $page $request->query->get('page');
  1353.         if ($page != null && $page != 1) {
  1354.             $string_params .= "&page=" $page;
  1355.         }
  1356.         $tri = isset($parametres['tri']) ? $parametres['tri'] : null;
  1357.         $urlList $request->getPathInfo();
  1358.         $tri_default null;
  1359.         // Si aucun tri
  1360.         if (!$tri) {
  1361.             // On trie par CA si c'est une recherche
  1362.             if ($is_recherche) {
  1363.                 $tri_default "ca_desc";
  1364.             } else {
  1365.                 $tri_default "date_desc";
  1366.             }
  1367.         }
  1368.         // Si ce n'est pas une recherche par loc / sec ou croisé
  1369.         if ($metaTitle == null && $metaTitle == null) {
  1370.             $metaTitle '%$nb_actifs%$ $$actif$${p|actifs} Ã  reprendre';
  1371.             $metaDescription 'consultez %$nb_actifs%$ $$actif$${p|actifs} Ã  vendre en fonction de vos critères de recherche.';
  1372.         }
  1373.         $arrayVarsTrans['nb_actifs'] = $nb_actifs;
  1374.         if ($nb_actifs 1) {
  1375.             $p 'p';
  1376.         } else {
  1377.             $p '';
  1378.         }
  1379.         $metaTag $this->metaTag
  1380.                 ->setTitle($translationExtension->translate($metaTitle$lang"""M"$p$arrayVarsTrans))
  1381.                 ->setDescription($translationExtension->translate($metaDescription$lang"""M"$p$arrayVarsTrans))
  1382.                 ->setRobots('noindex');
  1383.         $array_return = [
  1384.             'metaTag' => $metaTag,
  1385.             'nb_annonces' => $nb_annonces,
  1386.             'nb_entreprises' => $nb_entreprises,
  1387.             'nb_actifs' => $nb_actifs,
  1388.             'nb_cibles_potentielles' => $nb_cibles_potentielles,
  1389.             'nb_recherches_partenariats' => $nb_recherches_partenariats,
  1390.             'liste_annonces_prioritaires' => $liste_annonces_prioritaires,
  1391.             'liste_annonces' => $liste_annonces,
  1392.             'nb_total_annonces_prioritaires' => $nb_total_annonces_prioritaires,
  1393.             'string_params' => $string_params,
  1394.             'string_params_without_page' => $string_params_without_page,
  1395.             'tri' => $tri,
  1396.             'urlList' => $urlList,
  1397.             'idLocalisation' => null,
  1398.             'idSecteurActivite' => null,
  1399.             'tri_default' => $tri_default,
  1400.             'eliteAccess' => $eliteAccess,
  1401.         ];
  1402.         if ($idLocalisation || $idSecteurActivite) {
  1403.             if ($idLocalisation) {
  1404.                 $array_return['idLocalisation'] = $idLocalisation;
  1405.                 $array_return['idSecteurActivite'] = $idSecteurActivite $idSecteurActivite null;
  1406.                 $array_return['slug'] = $slug;
  1407.                 $array_return['type'] = $type;
  1408.                 $array_return['localisations'] = $localisations;
  1409.                 $array_return['noms_ville'] = $noms_ville;
  1410.                 $array_return['sous_localisations_numbers'] = $sous_localisations_numbers;
  1411.                 $array_return['prev_localisation'] = $prev_localisation;
  1412.             }
  1413.             if ($idSecteurActivite) {
  1414.                 $array_return['idSecteurActivite'] = $idSecteurActivite;
  1415.                 $array_return['idLocalisation'] = $idLocalisation $idLocalisation null;
  1416.                 $array_return['slug'] = $slug;
  1417.                 $array_return['secteurActivites'] = $secteurActivites;
  1418.                 $array_return['sous_secteurs_numbers'] = $sous_secteurs_numbers;
  1419.                 $array_return['prev_secteur'] = $prev_secteur;
  1420.             }
  1421.         }
  1422.         return $this->render(
  1423.                         'reprendre_entreprise/actif.html.twig',
  1424.                         $array_return
  1425.                 );
  1426.     }
  1427.     public function ciblepotentielle(Request $requestPaginatorInterface $paginatorLocalisationsManagers $localisationManagerTranslationExtension $translationExtensionLocalisationsRepository $localisationsRepoParametresDiversRepository $parametresDiversRepoParametreSiteManagers $parametreSiteManager$type null$idLocalisation null$slug null$idSecteurActivite null$codePays): Response {
  1428.         $lang $request->getSession()->get('lang');
  1429.         $parametres $request->query->all();
  1430.         $metaTitle $metaDescription null;
  1431.         $arrayVarsTrans = [];
  1432.         // Recherche standard 
  1433.         if ($idLocalisation || $idSecteurActivite) {
  1434.             // Preparation des parametres
  1435.             if ($idLocalisation) {
  1436.                 if ($type == 'd') {
  1437.                     $parametres['id_departement'] = $idLocalisation;
  1438.                     $child_type null;
  1439.                     $parent_type "r";
  1440.                 } elseif ($type == "r") {
  1441.                     $parametres['id_region'] = $idLocalisation;
  1442.                     $child_type "d";
  1443.                     $parent_type "p";
  1444.                 } else {
  1445.                     $parametres['id_pays'] = $idLocalisation;
  1446.                     $child_type "r";
  1447.                     $parent_type null;
  1448.                 }
  1449.                 $parametres ParametersProvider::prepareRechercheStandardParameters($parametres);
  1450.             }
  1451.             if ($idSecteurActivite) {
  1452.                 $parametres['id_secteur_activite'] = $idSecteurActivite;
  1453.                 $parametres ParametersProvider::prepareRechercheStandardParameters($parametres);
  1454.             }
  1455.             // Recherche par localisation
  1456.             if ($idLocalisation) {
  1457.                 $localisations $localisationManager->getLocalisationCompleteWithNavById($idLocalisation);
  1458.                 if (!$localisations) {
  1459.                     $this->addFlash('error'$translationExtension->translate('erreur de localisation'$lang'''M'''));
  1460.                     return $this->redirectToRoute('reprendre_entreprise_resultats_cibles_potentielles', ['codePays' => $codePays]);
  1461.                 }
  1462.                 $villesRepo $this->getDoctrine()->getRepository(Villes::class);
  1463.                 $noms_ville $villesRepo->donne_string_noms_villes_principales_dune_localisation($idLocalisation);
  1464.                 $id_pays substr($idLocalisation0strpos($idLocalisation"_"));
  1465.                 // On ne cherche pas dans les départements pour les pays Ã©trangers
  1466.                 if ($type == "r" && $id_pays != "33") {
  1467.                     $sous_localisations = [];
  1468.                 } else {
  1469.                     $sous_localisations $localisationsRepo->getSubLevelLocalisations($idLocalisation);
  1470.                 }
  1471.                 $sous_localisations_numbers = [];
  1472.                 $prev_localisation = [];
  1473.                 foreach ($sous_localisations as $sous_localisation) {
  1474.                     $params = [];
  1475.                     if ($idSecteurActivite) {
  1476.                         $params['id_secteur_activite'] = $idSecteurActivite;
  1477.                     }
  1478.                     if ($type == "r") {
  1479.                         $params['id_departement'] = $sous_localisation['id_localisation'];
  1480.                     } else {
  1481.                         if ($idLocalisation == "99") {
  1482.                             $params['id_pays'] = $sous_localisation['id_localisation'];
  1483.                             $child_type "p";
  1484.                         } else {
  1485.                             $params['id_region'] = $sous_localisation['id_localisation'];
  1486.                         }
  1487.                     }
  1488.                     $sous_localisation['type'] = $child_type;
  1489.                     $params ParametersProvider::prepareRechercheStandardParameters($params);
  1490.                     $annonces_numbers $this->getAnnoncesNumbers($params);
  1491.                     if ($idLocalisation == 99) {
  1492.                         if ($sous_localisation['nom_localisation'] != "Confidentiel" && $annonces_numbers['nb_cibles_potentielles'] != 0) {
  1493.                             $sous_localisations_numbers[] = array_merge($sous_localisation$annonces_numbers);
  1494.                         }
  1495.                     } else {
  1496.                         if ($sous_localisation['nom_localisation'] != "Confidentiel" || $annonces_numbers['nb_cibles_potentielles'] != 0) {
  1497.                             $sous_localisations_numbers[] = array_merge($sous_localisation$annonces_numbers);
  1498.                         }
  1499.                     }
  1500.                 }
  1501.                 if (!$prev_localisation && $parent_type) {
  1502.                     $prev_localisation = isset($localisations[count($localisations) - 2]) ? $localisations[count($localisations) - 2] : null;
  1503.                     $prev_localisation['type'] = $parent_type;
  1504.                 }
  1505.                 $last_localisation end($localisations);
  1506.                 $arrayVarsTrans['prefixe_localisation'] = $last_localisation['prefixe'];
  1507.                 $arrayVarsTrans['nom_localisation'] = strtoupper($last_localisation['nom_localisation']);
  1508.                 $metaTitle '%$nb_cibles_potentielles%$ $$cible potentielle$${p|cibles potentielles} Ã  reprendre %$prefixe_localisation%$ %$nom_localisation%$';
  1509.                 $metaDescription 'consultez %$nb_cibles_potentielles%$ $$cible potentielle / participation de fonds$${p|cibles potentielles / participations de fonds} Ã  reprendre %$prefixe_localisation%$ %$nom_localisation%$';
  1510.             }
  1511.             // Recherche par secteur d'activite
  1512.             if ($idSecteurActivite) {
  1513.                 $secteurActivites $this->sam->getTreeSecteursActivite($idSecteurActivite);
  1514.                 if (!$secteurActivites) {
  1515.                     $this->addFlash('error'$translationExtension->translate("erreur de secteur d'activité"$lang'''M'''));
  1516.                     return $this->redirectToRoute('reprendre_entreprise_resultats_cibles_potentielles', ['codePays' => $codePays]);
  1517.                 }
  1518.                 $secteurActiviteRepo $this->getDoctrine()->getRepository(SecteursActivite::class);
  1519.                 $sous_secteurs $secteurActiviteRepo->getAllSecteursActiviteEnfantByIdSecteurParent($idSecteurActivite);
  1520.                 $sous_secteurs_numbers = [];
  1521.                 $prev_secteur = [];
  1522.                 foreach ($sous_secteurs as $sous_secteur) {
  1523.                     $params = [];
  1524.                     $params['id_secteur_activite'] = $sous_secteur['idSecteurActivite'];
  1525.                     $params ParametersProvider::prepareRechercheStandardParameters($params);
  1526.                     $annonces_numbers $this->getAnnoncesNumbers($params);
  1527.                     $sous_secteurs_numbers[] = array_merge($sous_secteur$annonces_numbers);
  1528.                 }
  1529.                 if (!$prev_secteur) {
  1530.                     $prev_secteur = isset($secteurActivites[count($secteurActivites) - 2]) ? $secteurActivites[count($secteurActivites) - 2] : null;
  1531.                 }
  1532.                 $last_secteur end($secteurActivites);
  1533.                 $arrayVarsTrans['nomPourTitle'] = $last_secteur->getNomPourTitle();
  1534.                 // Si ce n'est pas une recherche croisée
  1535.                 if (!$idLocalisation) {
  1536.                     $metaTitle '%$nb_cibles_potentielles%$ $$cible potentielle$${p|cibles potentielles} %$nomPourTitle%$ Ã  reprendre';
  1537.                     $metaDescription 'consultez %$nb_cibles_potentielles%$ $$cible potentielle / participation de fonds$${p|cibles potentielles / participations de fonds} %$nomPourTitle%$ Ã  reprendre';
  1538.                 } else {
  1539.                     $metaTitle '%$nb_cibles_potentielles%$ $$cible potentielle$${p|cibles potentielles} %$nomPourTitle%$ %$prefixe_localisation%$ %$nom_localisation%$ Ã  reprendre';
  1540.                     $metaDescription 'consultez %$nb_cibles_potentielles%$ $$cible potentielle / participation de fonds$${p|cibles potentielles / participations de fonds} %$nomPourTitle%$ %$prefixe_localisation%$ %$nom_localisation%$ Ã  reprendre';
  1541.                 }
  1542.             }
  1543.             // Recherche avancée / dernieres annonces
  1544.         } else {
  1545.             $parametres ParametersProvider::prepareRechercheAvanceeParameters($parametres);
  1546.         }
  1547.         $is_recherche ParametersProvider::prepareRechercheAvanceeParameters() != ParametersProvider::prepareRechercheAvanceeParameters($parametres);
  1548.         $string_params $string_params_without_page $this->serializeParams($parametres);
  1549.         $repoVendeur $this->getDoctrine()->getRepository(AnnoncesVendeur::class);
  1550.         // Si c'est une recherche, on calcule les nb Ã  afficher
  1551.         if ($is_recherche) {
  1552.             $repoSociete $this->getDoctrine()->getRepository(Societes::class);
  1553.             $repoAcheteur $this->getDoctrine()->getRepository(AnnoncesAcheteur::class);
  1554.             $nb_annonces_cessions $repoVendeur->donne_nb_annonces_vente_recherche($parametres);
  1555.             $nb_actifs $repoVendeur->donne_nb_annonces_vente_recherche_actif($parametres);
  1556.             $nb_entreprises $nb_annonces_cessions $nb_actifs;
  1557.             $nb_cibles_potentielles $repoSociete->donne_nb_participations_fonds($parametres"vendeur");
  1558.             $nb_recherches_partenariats $repoAcheteur->donne_nb_annonces_achat_recherche_partenaire($parametres);
  1559.             $nb_annonces $nb_annonces_cessions $nb_cibles_potentielles $nb_recherches_partenariats;
  1560.         } else {
  1561.             // Sinon on récupère les nb stockés dans parametres_divers
  1562.             $nb $parametresDiversRepo->getListNombresAafficher();
  1563.             //$nb_annonces_cessions = $nb->reprendre_une_entreprise_nb_cession_entreprise;
  1564.             $nb_actifs $nb->reprendre_une_entreprise_nb_actifs_a_reprendre;
  1565.             $nb_entreprises $nb->reprendre_une_entreprise_nb_cession_entreprise;
  1566.             $nb_cibles_potentielles $nb->reprendre_une_entreprise_nb_cibles_potentielles;
  1567.             $nb_recherches_partenariats $nb->reprendre_une_entreprise_nb_recherches_de_partenariats;
  1568.             $nb_annonces $nb_entreprises $nb_actifs $nb_cibles_potentielles $nb_recherches_partenariats;
  1569.         }
  1570.         $parametres['from'] = "cibles_potentielles";
  1571.         $liste_annonces $this->sm->getParticipationsFondsList($request$paginator$parametres"""vendeur");
  1572.         $page $request->query->get('page');
  1573.         if ($page != null && $page != 1) {
  1574.             $string_params .= "&page=" $page;
  1575.         }
  1576.         $show_modal true;
  1577.         if (isset($_COOKIE['show_modal_cible_potentielle']) && "false" == $_COOKIE['show_modal_cible_potentielle']) {
  1578.             $show_modal false;
  1579.         }
  1580.         // Verifier si droit_acces Annuaire participation ou Fusacq Expert
  1581.         $has_service false;
  1582.         //On verifie si l'utilisateur a le droit de consulter cette page
  1583.         $user $this->getUser();
  1584.         if ($user) {
  1585.             $has_service $this->dm->checkIfThisUserHasDroitService($user, [2]); // 2 = annuaire_participations
  1586.         } else {
  1587.             $has_service false;
  1588.         }
  1589.         $tri = isset($parametres['tri']) ? $parametres['tri'] : null;
  1590.         $tri_default null;
  1591.         // Si aucun tri
  1592.         if (!$tri) {
  1593.             // On trie par CA si c'est une recherche
  1594.             if ($is_recherche) {
  1595.                 $tri_default "ca_desc";
  1596.             } else {
  1597.                 $tri_default "date_desc";
  1598.             }
  1599.         }
  1600.         $urlList $request->getPathInfo();
  1601.         // Si ce n'est pas une recherche par loc / sec ou croisé
  1602.         if ($metaTitle == null && $metaTitle == null) {
  1603.             $metaTitle '%$nb_cibles_potentielles%$ $$cible potentielle$${p|cibles potentielles}';
  1604.             $metaDescription 'consultez %$nb_cibles_potentielles%$ $$cible potentielle / participation de fonds$${p|cibles potentielles / participations de fonds} en fonction de vos critères de recherche.';
  1605.         }
  1606.         $arrayVarsTrans['nb_cibles_potentielles'] = $nb_cibles_potentielles;
  1607.         if ($nb_cibles_potentielles 1) {
  1608.             $p 'p';
  1609.         } else {
  1610.             $p '';
  1611.         }
  1612.         $id_participation_exemple $parametreSiteManager->getValueParamSiteByParamCodePays("id_participation_exemple"$codePays);
  1613.         $participation_exemple $this->sm->getSocieteById($id_participation_exemple);
  1614.         $url_participation_exemple $this->generateUrl('participation_fonds_detail', ['idParticipation' => $id_participation_exemple'slug' => Utils::slugify($participation_exemple->_get('resume_activite')), 'codePays' => $codePays]);
  1615.         $metaTag $this->metaTag
  1616.                 ->setTitle($translationExtension->translate($metaTitle$lang"""M"$p$arrayVarsTrans))
  1617.                 ->setDescription($translationExtension->translate($metaDescription$lang"""M"$p$arrayVarsTrans))
  1618.                 ->setRobots('noindex');
  1619.         $array_return = [
  1620.             'metaTag' => $metaTag,
  1621.             'nb_annonces' => $nb_annonces,
  1622.             'nb_entreprises' => $nb_entreprises,
  1623.             'nb_actifs' => $nb_actifs,
  1624.             'nb_cibles_potentielles' => $nb_cibles_potentielles,
  1625.             'nb_recherches_partenariats' => $nb_recherches_partenariats,
  1626.             'liste_annonces' => $liste_annonces,
  1627.             'show_modal' => $show_modal,
  1628.             'has_service' => $has_service,
  1629.             'string_params' => $string_params,
  1630.             'string_params_without_page' => $string_params_without_page,
  1631.             'tri' => $tri,
  1632.             'urlList' => $urlList,
  1633.             'idLocalisation' => null,
  1634.             'idSecteurActivite' => null,
  1635.             'tri_default' => $tri_default,
  1636.             'url_participation_exemple' => $url_participation_exemple,
  1637.         ];
  1638.         if ($idLocalisation || $idSecteurActivite) {
  1639.             if ($idLocalisation) {
  1640.                 $array_return['idLocalisation'] = $idLocalisation;
  1641.                 $array_return['idSecteurActivite'] = $idSecteurActivite $idSecteurActivite null;
  1642.                 $array_return['slug'] = $slug;
  1643.                 $array_return['type'] = $type;
  1644.                 $array_return['localisations'] = $localisations;
  1645.                 $array_return['noms_ville'] = $noms_ville;
  1646.                 $array_return['sous_localisations_numbers'] = $sous_localisations_numbers;
  1647.                 $array_return['prev_localisation'] = $prev_localisation;
  1648.             }
  1649.             if ($idSecteurActivite) {
  1650.                 $array_return['idSecteurActivite'] = $idSecteurActivite;
  1651.                 $array_return['idLocalisation'] = $idLocalisation $idLocalisation null;
  1652.                 $array_return['slug'] = $slug;
  1653.                 $array_return['secteurActivites'] = $secteurActivites;
  1654.                 $array_return['sous_secteurs_numbers'] = $sous_secteurs_numbers;
  1655.                 $array_return['prev_secteur'] = $prev_secteur;
  1656.             }
  1657.         }
  1658.         return $this->render(
  1659.                         'reprendre_entreprise/cible_potentielle.html.twig',
  1660.                         $array_return
  1661.                 );
  1662.     }
  1663.     public function recherchepartenariat(Request $requestPaginatorInterface $paginatorLocalisationsManagers $localisationManagerTranslationExtension $translationExtensionLocalisationsRepository $localisationsRepoParametresDiversRepository $parametresDiversRepo$type null$idLocalisation null$slug null$idSecteurActivite null$codePays): Response {
  1664.         $lang $request->getSession()->get('lang');
  1665.         $parametres $request->query->all();
  1666.         $metaTitle $metaDescription null;
  1667.         $arrayVarsTrans = [];
  1668.         // Recherche standard 
  1669.         if ($idLocalisation || $idSecteurActivite) {
  1670.             // Preparation des parametres
  1671.             if ($idLocalisation) {
  1672.                 if ($type == 'd') {
  1673.                     $parametres['id_departement'] = $idLocalisation;
  1674.                     $child_type null;
  1675.                     $parent_type "r";
  1676.                 } elseif ($type == "r") {
  1677.                     $parametres['id_region'] = $idLocalisation;
  1678.                     $child_type "d";
  1679.                     $parent_type "p";
  1680.                 } else {
  1681.                     $parametres['id_pays'] = $idLocalisation;
  1682.                     $child_type "r";
  1683.                     $parent_type null;
  1684.                 }
  1685.                 $parametres ParametersProvider::prepareRechercheStandardParameters($parametres);
  1686.             }
  1687.             if ($idSecteurActivite) {
  1688.                 $parametres['id_secteur_activite'] = $idSecteurActivite;
  1689.                 $parametres ParametersProvider::prepareRechercheStandardParameters($parametres);
  1690.             }
  1691.             // Recherche par localisation
  1692.             if ($idLocalisation) {
  1693.                 $localisations $localisationManager->getLocalisationCompleteWithNavById($idLocalisation);
  1694.                 if (!$localisations) {
  1695.                     $this->addFlash('error'$translationExtension->translate('erreur de localisation'$lang'''M'''));
  1696.                     return $this->redirectToRoute('reprendre_entreprise_resultats_recherches_partenariat', ['codePays' => $codePays]);
  1697.                 }
  1698.                 $villesRepo $this->getDoctrine()->getRepository(Villes::class);
  1699.                 $noms_ville $villesRepo->donne_string_noms_villes_principales_dune_localisation($idLocalisation);
  1700.                 $sous_localisations $localisationsRepo->getSubLevelLocalisations($idLocalisation);
  1701.                 $sous_localisations_numbers = [];
  1702.                 $prev_localisation = [];
  1703.                 foreach ($sous_localisations as $sous_localisation) {
  1704.                     $params = [];
  1705.                     if ($idSecteurActivite) {
  1706.                         $params['id_secteur_activite'] = $idSecteurActivite;
  1707.                     }
  1708.                     if ($type == "r") {
  1709.                         $params['id_departement'] = $sous_localisation['id_localisation'];
  1710.                     } else {
  1711.                         if ($idLocalisation == "99") {
  1712.                             $params['id_pays'] = $sous_localisation['id_localisation'];
  1713.                             $child_type "p";
  1714.                         } else {
  1715.                             $params['id_region'] = $sous_localisation['id_localisation'];
  1716.                         }
  1717.                     }
  1718.                     $sous_localisation['type'] = $child_type;
  1719.                     $params ParametersProvider::prepareRechercheStandardParameters($params);
  1720.                     $annonces_numbers $this->getAnnoncesNumbers($params);
  1721.                     if ($idLocalisation == 99) {
  1722.                         if ($sous_localisation['nom_localisation'] != "Confidentiel" && $annonces_numbers['nb_recherches_partenariats'] != 0) {
  1723.                             $sous_localisations_numbers[] = array_merge($sous_localisation$annonces_numbers);
  1724.                         }
  1725.                     } else {
  1726.                         if ($sous_localisation['nom_localisation'] != "Confidentiel" || $annonces_numbers['nb_recherches_partenariats'] != 0) {
  1727.                             $sous_localisations_numbers[] = array_merge($sous_localisation$annonces_numbers);
  1728.                         }
  1729.                     }
  1730.                 }
  1731.                 if (!$prev_localisation && $parent_type) {
  1732.                     $prev_localisation = isset($localisations[count($localisations) - 2]) ? $localisations[count($localisations) - 2] : null;
  1733.                     $prev_localisation['type'] = $parent_type;
  1734.                 }
  1735.                 $last_localisation end($localisations);
  1736.                 $arrayVarsTrans['prefixe_localisation'] = $last_localisation['prefixe'];
  1737.                 $arrayVarsTrans['nom_localisation'] = strtoupper($last_localisation['nom_localisation']);
  1738.                 $metaTitle '%$nb_recherches_partenariats%$ $$recherche de partenariat$${p|recherches de partenariat} %$prefixe_localisation%$ %$nom_localisation%$';
  1739.                 $metaDescription 'consultez %$nb_recherches_partenariats%$ $$annonce$${p|annonces} de recherche de partenariat %$prefixe_localisation%$ %$nom_localisation%$';
  1740.             }
  1741.             // Recherche par secteur d'activite
  1742.             if ($idSecteurActivite) {
  1743.                 $secteurActivites $this->sam->getTreeSecteursActivite($idSecteurActivite);
  1744.                 if (!$secteurActivites) {
  1745.                     $this->addFlash('error'$translationExtension->translate("erreur de secteur d'activité"$lang'''M'''));
  1746.                     return $this->redirectToRoute('reprendre_entreprise_resultats_recherches_partenariat', ['codePays' => $codePays]);
  1747.                 }
  1748.                 $secteurActiviteRepo $this->getDoctrine()->getRepository(SecteursActivite::class);
  1749.                 $sous_secteurs $secteurActiviteRepo->getAllSecteursActiviteEnfantByIdSecteurParent($idSecteurActivite);
  1750.                 $sous_secteurs_numbers = [];
  1751.                 $prev_secteur = [];
  1752.                 foreach ($sous_secteurs as $sous_secteur) {
  1753.                     $params = [];
  1754.                     $params['id_secteur_activite'] = $sous_secteur['idSecteurActivite'];
  1755.                     $params ParametersProvider::prepareRechercheStandardParameters($params);
  1756.                     $annonces_numbers $this->getAnnoncesNumbers($params);
  1757.                     $sous_secteurs_numbers[] = array_merge($sous_secteur$annonces_numbers);
  1758.                 }
  1759.                 if (!$prev_secteur) {
  1760.                     $prev_secteur = isset($secteurActivites[count($secteurActivites) - 2]) ? $secteurActivites[count($secteurActivites) - 2] : null;
  1761.                 }
  1762.                 $last_secteur end($secteurActivites);
  1763.                 $arrayVarsTrans['nomPourTitle'] = $last_secteur->getNomPourTitle();
  1764.                 // Si ce n'est pas une recherche croisée
  1765.                 if (!$idLocalisation) {
  1766.                     $metaTitle '%$nb_recherches_partenariats%$ $$recherche de partenariat$${p|recherches de partenariat} %$nomPourTitle%$';
  1767.                     $metaDescription 'consultez %$nb_recherches_partenariats%$ $$annonce$${p|annonces} de recherche de partenariat %$nomPourTitle%$';
  1768.                 } else {
  1769.                     $metaTitle '%$nb_recherches_partenariats%$ $$recherche de partenariat$${p|recherches de partenariat} %$nomPourTitle%$ %$prefixe_localisation%$ %$nom_localisation%$';
  1770.                     $metaDescription 'consultez %$nb_recherches_partenariats%$ $$annonce$${p|annonces} de recherche de partenariat %$nomPourTitle%$ %$prefixe_localisation%$ %$nom_localisation%$';
  1771.                 }
  1772.             }
  1773.             // Recherche avancée / dernieres annonces
  1774.         } else {
  1775.             $parametres ParametersProvider::prepareRechercheAvanceeParameters($parametres);
  1776.         }
  1777.         $is_recherche ParametersProvider::prepareRechercheAvanceeParameters() != ParametersProvider::prepareRechercheAvanceeParameters($parametres);
  1778.         $string_params $string_params_without_page $this->serializeParams($parametres);
  1779.         $repoVendeur $this->getDoctrine()->getRepository(AnnoncesVendeur::class);
  1780.         // Si c'est une recherche, on calcule les nb Ã  afficher
  1781.         if ($is_recherche) {
  1782.             $repoSociete $this->getDoctrine()->getRepository(Societes::class);
  1783.             $repoAcheteur $this->getDoctrine()->getRepository(AnnoncesAcheteur::class);
  1784.             $nb_annonces_cessions $repoVendeur->donne_nb_annonces_vente_recherche($parametres);
  1785.             $nb_actifs $repoVendeur->donne_nb_annonces_vente_recherche_actif($parametres);
  1786.             $nb_entreprises $nb_annonces_cessions $nb_actifs;
  1787.             $nb_cibles_potentielles $repoSociete->donne_nb_participations_fonds($parametres"vendeur");
  1788.             $nb_recherches_partenariats $repoAcheteur->donne_nb_annonces_achat_recherche_partenaire($parametres);
  1789.             $nb_annonces $nb_annonces_cessions $nb_cibles_potentielles $nb_recherches_partenariats;
  1790.         } else {
  1791.             // Sinon on récupère les nb stockés dans parametres_divers
  1792.             $nb $parametresDiversRepo->getListNombresAafficher();
  1793.             //$nb_annonces_cessions = $nb->reprendre_une_entreprise_nb_cession_entreprise;
  1794.             $nb_actifs $nb->reprendre_une_entreprise_nb_actifs_a_reprendre;
  1795.             $nb_entreprises $nb->reprendre_une_entreprise_nb_cession_entreprise;
  1796.             $nb_cibles_potentielles $nb->reprendre_une_entreprise_nb_cibles_potentielles;
  1797.             $nb_recherches_partenariats $nb->reprendre_une_entreprise_nb_recherches_de_partenariats;
  1798.             $nb_annonces $nb_entreprises $nb_actifs $nb_cibles_potentielles $nb_recherches_partenariats;
  1799.         }
  1800.         $user $this->getUser();
  1801.         $login_utilisateur = isset($user) ? $user->_get('login_utilisateur') : null;
  1802.         $liste_annonces $this->am->getAnnoncesRecherchePartenariatList($request$paginator$parametres"partenaire"$login_utilisateur);
  1803.         $page $request->query->get('page');
  1804.         if ($page != null && $page != 1) {
  1805.             $string_params .= "&page=" $page;
  1806.         }
  1807.         $tri = isset($parametres['tri']) ? $parametres['tri'] : null;
  1808.         $urlList $request->getPathInfo();
  1809.         $tri_default null;
  1810.         // Si aucun tri
  1811.         if (!$tri) {
  1812.             // On trie par CA si c'est une recherche
  1813.             if ($is_recherche) {
  1814.                 $tri_default "ca_desc";
  1815.             } else {
  1816.                 $tri_default "date_desc";
  1817.             }
  1818.         }
  1819.         // Si ce n'est pas une recherche par loc / sec ou croisé
  1820.         if ($metaTitle == null && $metaTitle == null) {
  1821.             $metaTitle '%$nb_recherches_partenariats%$ $$recherche de partenariat$${p|recherches de partenariat}';
  1822.             $metaDescription 'consultez %$nb_recherches_partenariats%$ $$annonce$${p|annonces} de recherche de partenariat en fonction de vos critères de recherche.';
  1823.         }
  1824.         $arrayVarsTrans['nb_recherches_partenariats'] = $nb_recherches_partenariats;
  1825.         if ($nb_recherches_partenariats 1) {
  1826.             $p 'p';
  1827.         } else {
  1828.             $p '';
  1829.         }
  1830.         $metaTag $this->metaTag
  1831.                 ->setTitle($translationExtension->translate($metaTitle$lang"""M"$p$arrayVarsTrans))
  1832.                 ->setDescription($translationExtension->translate($metaDescription$lang"""M"$p$arrayVarsTrans))
  1833.                 ->setRobots('noindex');
  1834.         $array_return = [
  1835.             'metaTag' => $metaTag,
  1836.             'nb_annonces' => $nb_annonces,
  1837.             'nb_entreprises' => $nb_entreprises,
  1838.             'nb_actifs' => $nb_actifs,
  1839.             'nb_cibles_potentielles' => $nb_cibles_potentielles,
  1840.             'nb_recherches_partenariats' => $nb_recherches_partenariats,
  1841.             'liste_annonces' => $liste_annonces,
  1842.             'string_params' => $string_params,
  1843.             'string_params_without_page' => $string_params_without_page,
  1844.             'tri' => $tri,
  1845.             'urlList' => $urlList,
  1846.             'idLocalisation' => null,
  1847.             'idSecteurActivite' => null,
  1848.             'tri_default' => $tri_default
  1849.         ];
  1850.         if ($idLocalisation || $idSecteurActivite) {
  1851.             if ($idLocalisation) {
  1852.                 $array_return['idLocalisation'] = $idLocalisation;
  1853.                 $array_return['idSecteurActivite'] = $idSecteurActivite $idSecteurActivite null;
  1854.                 $array_return['slug'] = $slug;
  1855.                 $array_return['type'] = $type;
  1856.                 $array_return['localisations'] = $localisations;
  1857.                 $array_return['noms_ville'] = $noms_ville;
  1858.                 $array_return['sous_localisations_numbers'] = $sous_localisations_numbers;
  1859.                 $array_return['prev_localisation'] = $prev_localisation;
  1860.             }
  1861.             if ($idSecteurActivite) {
  1862.                 $array_return['idSecteurActivite'] = $idSecteurActivite;
  1863.                 $array_return['idLocalisation'] = $idLocalisation $idLocalisation null;
  1864.                 $array_return['slug'] = $slug;
  1865.                 $array_return['secteurActivites'] = $secteurActivites;
  1866.                 $array_return['sous_secteurs_numbers'] = $sous_secteurs_numbers;
  1867.                 $array_return['prev_secteur'] = $prev_secteur;
  1868.             }
  1869.         }
  1870.         return $this->render(
  1871.                         'reprendre_entreprise/recherche_partenariat.html.twig',
  1872.                         $array_return
  1873.                 );
  1874.     }
  1875.     public function redirectiononglet(Request $request): Response {
  1876.         $onglet null !== $request->get('onglet') ? $request->get('onglet') : null;
  1877.         $idAnnonce $request->get('idAnnonce');
  1878.         $codePays $request->get('codePays');
  1879.         switch ($onglet) {
  1880.             case 1:
  1881.                 return $this->forward('App\Controller\ReprendreEntrepriseController::descriptiongenerale', ['idAnnonce' => $idAnnonce'codePays' => $codePays'request' => $request]);
  1882.                 break;
  1883.             case 2:
  1884.                 return $this->forward('App\Controller\ReprendreEntrepriseController::elementschiffres', ['idAnnonce' => $idAnnonce'codePays' => $codePays'request' => $request]);
  1885.                 break;
  1886.             case 3:
  1887.                 return $this->forward('App\Controller\ReprendreEntrepriseController::pointsfortsconcurrence', ['idAnnonce' => $idAnnonce'codePays' => $codePays'request' => $request]);
  1888.                 break;
  1889.             case 4:
  1890.                 return $this->forward('App\Controller\ReprendreEntrepriseController::infoscession', ['idAnnonce' => $idAnnonce'codePays' => $codePays'request' => $request]);
  1891.                 break;
  1892.             case 5:
  1893.                 return $this->forward('App\Controller\ReprendreEntrepriseController::infossectorielles', ['idAnnonce' => $idAnnonce'codePays' => $codePays'request' => $request]);
  1894.                 break;
  1895.             case 6:
  1896.                 return $this->forward('App\Controller\ReprendreEntrepriseController::transactionscomparables', ['idAnnonce' => $idAnnonce'codePays' => $codePays'request' => $request]);
  1897.                 break;
  1898.             case 7:
  1899.                 return $this->forward('App\Controller\ReprendreEntrepriseController::contacterdeposant', ['idAnnonce' => $idAnnonce'codePays' => $codePays'request' => $request]);
  1900.                 break;
  1901.             default:
  1902.                 return $this->forward('App\Controller\ReprendreEntrepriseController::descriptiongenerale', ['idAnnonce' => $idAnnonce'codePays' => $codePays'request' => $request]);
  1903.                 break;
  1904.         }
  1905.     }
  1906.     public function detailsannonce(Request $requestPaginatorInterface $paginatorTranslationExtension $translationExtensionLocalisationsManagers $localisationManagerActualitesManagers $actuManagerValorisationsManagers $vmGoogleTag $googleTagCommandesRepository $crConsultationsAnnonce $consultations_annonce$idAnnonce$codePays): Response {
  1907.         $user $this->getUser();
  1908.         $login_utilisateur = isset($user) ? $user->_get('login_utilisateur') : null;
  1909.         $annonce $this->am->getAnnonceVendeurById($idAnnonce$login_utilisateur);
  1910.         if (!$annonce) {// annonce non publique mais deja commandé
  1911.             $annonce $this->am->getAnnonceVendeurById($idAnnonce$login_utilisateurfalse);
  1912.             $fakeAnnonce = new AnnoncesVendeur();
  1913.             $fakeAnnonce->_set('id_annonce_vendeur'$annonce["id_annonce_vendeur"]);
  1914.             $fakeAnnonce->_set('type_raprochement''cession');
  1915.             $annone_retiree_deja_commande $this->authChecker->isGranted(AnnonceCommandVoter::ANNONCE_COMMANDE$fakeAnnonce);
  1916.         }// annonce non publique mais deja commandé
  1917.         $hasServiceSimuElite false;
  1918.         $hasServiceElite false;
  1919.         if (empty($user) && 'publique_elite' == $annonce['mode_annonce']) {
  1920.             $this->denyAccessUnlessGranted('ROLE_USER');
  1921.         }
  1922.         if (!empty($user)) {
  1923.             $hasServiceSimuElite $this->dm->checkIfThisUserHasDroitService($user, [5881]); // 58 = similateur reprise 81 82 fusacq elite
  1924.             $hasServiceElite $this->dm->checkIfThisUserHasDroitService($user, [81]); // 58 = similateur reprise 81 82 fusacq elite
  1925.         }
  1926.         if (isset($annonce) && ( 'publique' == $annonce['mode_annonce'
  1927.                 || ($hasServiceElite && 'publique_elite' == $annonce['mode_annonce'])
  1928.                 || ($annonce['login_utilisateur'] == $login_utilisateur))
  1929.                 || ($annone_retiree_deja_commande)
  1930.                 ) {
  1931.             // On efface les anciens parametres s'ils existent, puis on insert les nouveaux
  1932.             $googleTag->removeParametresPub();
  1933.             if ($annonce['id_pays']) {
  1934.                 $googleTag->setIdPays($annonce['id_pays']);
  1935.             }
  1936.             if ($annonce['id_region']) {
  1937.                 $googleTag->setIdRegion($annonce['id_region']);
  1938.             }
  1939.             if ($annonce['id_departement']) {
  1940.                 $googleTag->setIdDepartement($annonce['id_departement']);
  1941.             }
  1942.             if ($annonce['id_secteur_activite']) {
  1943.                 $googleTag->setIdSecteurActivite($annonce['id_secteur_activite']);
  1944.             }
  1945.             //stats annonce
  1946.             $statsAnnonce $this->em->getRepository(StatistiquesNbConsultationsAnnoncesVendeurEntity::class)->find($idAnnonce);
  1947.             if (empty($statsAnnonce)) {
  1948.                 $statsAnnonce = new StatistiquesNbConsultationsAnnoncesVendeurEntity();
  1949.                 $statsAnnonce->_set("id_annonce"$idAnnonce);
  1950.                 $statsAnnonce->_set("nb_consultations"1);
  1951.                 $this->em->persist($statsAnnonce);
  1952.                 $this->em->flush();
  1953.             } else {
  1954.                 /* $nb = $statsAnnonce->_get("nb_consultations") + 1;
  1955.                   $statsAnnonce->_set("nb_consultations", $nb);
  1956.                   $this->em->persist($statsAnnonce);
  1957.                   $this->em->flush(); */
  1958.                 // On incrémente de 1 le nb de consultation
  1959.                 $consultations_annonce->incrementeConsultation('vendeur'$idAnnonce);
  1960.             }
  1961.             // ====== DESCRIPTION GENERALE ======
  1962.             $lang $request->getSession()->get('lang');
  1963.             $secteurActivite $this->getDoctrine()->getRepository(SecteursActivite::class)->getNomSecteurActivitieById($annonce['id_secteur_activite'])[0];
  1964.             if ('99' == substr($annonce['statuts'], 02)) {
  1965.                 $typeCession $translationExtension->translate("cession d'actif"$lang'''M''');
  1966.                 $type_annonce "actif";
  1967.             } else {
  1968.                 $typeCession $translationExtension->translate("cession d'entreprise"$lang'''M''');
  1969.                 $type_annonce "entreprise";
  1970.             }
  1971.             if (== $annonce['id_raison_cession']) {
  1972.                 $typeCession $translationExtension->translate("levee de fonds"$lang'''M''');
  1973.             }
  1974.             $idStatut $annonce['statuts'];
  1975.             $nom_type_cession $translationExtension->translate("forme juridique"$lang'''M''');
  1976.             $tag_loc $translationExtension->translate("localisation du siege"$lang'''M''');
  1977.             $label_bloc $translationExtension->translate("fiche d'identite de la societe"$lang'''M''');
  1978.             if ('99' == substr($idStatut02)) {
  1979.                 $nom_type_cession $translationExtension->translate("type d'actif"$lang'''M''');
  1980.                 $tag_loc $translationExtension->translate("localisation"$lang'''M''');
  1981.                 $label_bloc $translationExtension->translate("designation de l'actif"$lang'''M''');
  1982.             }
  1983.             $statutsRepo $this->getDoctrine()->getRepository(Statuts::class);
  1984.             $statut $statutsRepo->getStatusByIdStatut($idStatut);
  1985.             if (null != $statut) {
  1986.                 $nomStatut $statut->_get('nom_statut');
  1987.             } else {
  1988.                 $nomStatut $translationExtension->translate("non specifie"$lang'''m''');
  1989.             }
  1990.             $indication_anciennete null;
  1991.             if ('' != $annonce['date_creation_societe']) {
  1992.                 $anciennete date('Y') - $annonce['date_creation_societe'];
  1993.                 if ($anciennete 5) {
  1994.                     $indication_anciennete $translationExtension->translate("moins de 5 ans"$lang'''M''');
  1995.                 } else {
  1996.                     if ($anciennete <= 10) {
  1997.                         $indication_anciennete $translationExtension->translate("entre 5 et 10 ans"$lang'''M''');
  1998.                     } else {
  1999.                         $indication_anciennete $translationExtension->translate("plus de 10 ans"$lang'''M''');
  2000.                     }
  2001.                 }
  2002.             }
  2003.             $localisation_siege $annonce['nom_localisation'];
  2004.             $precision_localisation_complementaire null;
  2005.             if ('_99' == substr($annonce['id_region'], -3)) {
  2006.                 $precision_localisation_complementaire $translationExtension->translate("region"$lang'''M''');
  2007.             } elseif ('_99' == substr($annonce['id_departement'], -3)) {
  2008.                 $precision_localisation_complementaire $translationExtension->translate("departement"$lang'''M''');
  2009.             }
  2010.             $type_cession $annonce['type_cession'];
  2011.             $type_cession_precise true;
  2012.             if ('' == $type_cession) {
  2013.                 $type_cession $translationExtension->translate("non precise"$lang'''m''');
  2014.                 $type_cession_precise false;
  2015.             } elseif ('indifferent' == mb_strtolower($type_cession)) {
  2016.                 $type_cession $translationExtension->translate("minoritaire ou majoritaire"$lang'''M''');
  2017.             }
  2018.             $raisonsCession $this->getDoctrine()->getRepository(RaisonsCession::class)->findOneBy(['id_raison_cession' => $annonce['id_raison_cession']]);
  2019.             if (isset($raisonsCession)) {
  2020.                 $nom_raison_cession $raisonsCession->nom_raison_cession;
  2021.             } else {
  2022.                 $nom_raison_cession $translationExtension->translate("non specifie"$lang'''M''');
  2023.             }
  2024.             // ====== FIN DESCRIPTION GENERALE ====== 
  2025.             // ====== ELEMENTS CHIFFRES ====== 
  2026.             if ('' != $annonce['annee_n']) {
  2027.                 $annee_n_aff $annonce['annee_n'];
  2028.                 $annee_nmoins1_aff $annonce['annee_n'] - 1;
  2029.                 $annee_nmoins2_aff $annonce['annee_n'] - 2;
  2030.                 $annee_nplus1_aff $annonce['annee_n'] + 1;
  2031.             } else {
  2032.                 $annee_n_aff 'n';
  2033.                 $annee_nmoins1_aff 'n-1';
  2034.                 $annee_nmoins2_aff 'n-2';
  2035.                 $annee_nplus1_aff 'n+1';
  2036.             }
  2037.             $ca_nmoinsdeux $annonce['ca_nmoinsdeux'] ? (int) $annonce['ca_nmoinsdeux'] : '';
  2038.             $ca_nmoinsun $annonce['ca_nmoinsun'] ? (int) $annonce['ca_nmoinsun'] : '';
  2039.             $ca_n $annonce['ca_n'] ? $annonce['ca_n'] : '';
  2040.             $ca_nplusun $annonce['ca_nplusun'] ? (int) $annonce['ca_nplusun'] : '';
  2041.             $marge_brute_nmoinsdeux $annonce['marge_brute_nmoinsdeux'] ? (int) $annonce['marge_brute_nmoinsdeux'] : '';
  2042.             $marge_brute_nmoinsun $annonce['marge_brute_nmoinsun'] ? (int) $annonce['marge_brute_nmoinsun'] : '';
  2043.             $marge_brute_n = (int) $annonce['marge_brute_n'] ? $annonce['marge_brute_n'] : '';
  2044.             $marge_brute_nplusun $annonce['marge_brute_nplusun'] ? (int) $annonce['marge_brute_nplusun'] : '';
  2045.             $EBE_nmoinsdeux $annonce['EBE_nmoinsdeux'] ? (int) $annonce['EBE_nmoinsdeux'] : '';
  2046.             $EBE_nmoinsun $annonce['EBE_nmoinsun'] ? (int) $annonce['EBE_nmoinsun'] : '';
  2047.             $EBE_n $annonce['EBE_n'] ? (int) $annonce['EBE_n'] : '';
  2048.             $EBE_nplusun $annonce['EBE_nplusun'] ? (int) $annonce['EBE_nplusun'] : '';
  2049.             $resultat_exploitation_nmoinsdeux $annonce['resultat_exploitation_nmoinsdeux'] ? (int) $annonce['resultat_exploitation_nmoinsdeux'] : '';
  2050.             $resultat_exploitation_nmoinsun $annonce['resultat_exploitation_nmoinsun'] ? (int) $annonce['resultat_exploitation_nmoinsun'] : '';
  2051.             $resultat_exploitation_n $annonce['resultat_exploitation_n'] ? (int) $annonce['resultat_exploitation_n'] : '';
  2052.             $resultat_exploitation_nplusun $annonce['resultat_exploitation_nplusun'] ? (int) $annonce['resultat_exploitation_nplusun'] : '';
  2053.             $resultat_net_nmoinsdeux $annonce['resultat_net_nmoinsdeux'] ? (int) $annonce['resultat_net_nmoinsdeux'] : '';
  2054.             $resultat_net_nmoinsun $annonce['resultat_net_nmoinsun'] ? (int) $annonce['resultat_net_nmoinsun'] : '';
  2055.             $resultat_net_n $annonce['resultat_net_n'] ? (int) $annonce['resultat_net_n'] : '';
  2056.             $resultat_net_nplusun $annonce['resultat_net_nplusun'] ? (int) $annonce['resultat_net_nplusun'] : '';
  2057.             $nb_personnes_nmoinsdeux $annonce['nb_personnes_nmoinsdeux'] ? (int) $annonce['nb_personnes_nmoinsdeux'] : '';
  2058.             $nb_personnes_nmoinsun $annonce['nb_personnes_nmoinsun'] ? (int) $annonce['nb_personnes_nmoinsun'] : '';
  2059.             $nb_personnes_n $annonce['nb_personnes_n'] ? (int) $annonce['nb_personnes_n'] : '';
  2060.             $nb_personnes_nplusun $annonce['nb_personnes_nplusun'] ? (int) $annonce['nb_personnes_nplusun'] : '';
  2061.             // Pour affichage mobile
  2062.             // Si n+1 est renseignée, on affiche n-1, n et n+1
  2063.             if ($ca_nplusun != '' || $marge_brute_nplusun != '' || $EBE_nplusun != '' || $resultat_exploitation_nplusun != '' || $resultat_net_nplusun != '' || $nb_personnes_nplusun != '') {
  2064.                 $annee_un_mobile $annee_nmoins1_aff;
  2065.                 $annee_deux_mobile $annee_n_aff;
  2066.                 $annee_trois_mobile $annee_nplus1_aff;
  2067.                 $ca_un_mobile $ca_nmoinsun;
  2068.                 $ca_deux_mobile $ca_n;
  2069.                 $ca_trois_mobile $ca_nplusun;
  2070.                 $marge_un_mobile $marge_brute_nmoinsun;
  2071.                 $marge_deux_mobile $marge_brute_n;
  2072.                 $marge_trois_mobile $marge_brute_nplusun;
  2073.                 $ebe_un_mobile $EBE_nmoinsun;
  2074.                 $ebe_deux_mobile $EBE_n;
  2075.                 $ebe_trois_mobile $EBE_nplusun;
  2076.                 $resultat_un_mobile $resultat_exploitation_nmoinsun;
  2077.                 $resultat_deux_mobile $resultat_exploitation_n;
  2078.                 $resultat_trois_mobile $resultat_exploitation_nplusun;
  2079.                 $resultat_net_un_mobile $resultat_net_nmoinsun;
  2080.                 $resultat_net_deux_mobile $resultat_net_n;
  2081.                 $resultat_net_trois_mobile $resultat_net_nplusun;
  2082.                 $nb_personne_un_mobile $nb_personnes_nmoinsun;
  2083.                 $nb_personne_deux_mobile $nb_personnes_n;
  2084.                 $nb_personne_trois_mobile $nb_personnes_nplusun;
  2085.             } else {
  2086.                 // Sinon on affiche n-2, n-1 et n
  2087.                 $annee_un_mobile $annee_nmoins2_aff;
  2088.                 $annee_deux_mobile $annee_nmoins1_aff;
  2089.                 $annee_trois_mobile $annee_n_aff;
  2090.                 $ca_un_mobile $ca_nmoinsdeux;
  2091.                 $ca_deux_mobile $ca_nmoinsun;
  2092.                 $ca_trois_mobile $ca_n;
  2093.                 $marge_un_mobile $marge_brute_nmoinsdeux;
  2094.                 $marge_deux_mobile $marge_brute_nmoinsun;
  2095.                 $marge_trois_mobile $marge_brute_n;
  2096.                 $ebe_un_mobile $EBE_nmoinsdeux;
  2097.                 $ebe_deux_mobile $EBE_nmoinsun;
  2098.                 $ebe_trois_mobile $EBE_n;
  2099.                 $resultat_un_mobile $resultat_exploitation_nmoinsdeux;
  2100.                 $resultat_deux_mobile $resultat_exploitation_nmoinsun;
  2101.                 $resultat_trois_mobile $resultat_exploitation_n;
  2102.                 $resultat_net_un_mobile $resultat_net_nmoinsdeux;
  2103.                 $resultat_net_deux_mobile $resultat_net_nmoinsun;
  2104.                 $resultat_net_trois_mobile $resultat_net_n;
  2105.                 $nb_personne_un_mobile $nb_personnes_nmoinsdeux;
  2106.                 $nb_personne_deux_mobile $nb_personnes_nmoinsun;
  2107.                 $nb_personne_trois_mobile $nb_personnes_n;
  2108.             }
  2109.             // Fin affichage mobile
  2110.             $fonds_propres $annonce['fonds_propres'];
  2111.             if (null == $annonce['dettes_financieres']) {
  2112.                 $dettes $annonce['endettement_net_n'];
  2113.                 $intitule_dettes $translationExtension->translate("endettement net"$lang'''M''');
  2114.             } else {
  2115.                 $dettes $annonce['dettes_financieres'];
  2116.                 if ('NR' == $dettes) {
  2117.                     $dettes '';
  2118.                 }
  2119.                 $intitule_dettes $translationExtension->translate("dettes financieres"$lang'''M''');
  2120.             }
  2121.             $tresorerie $annonce['tresorerie_nette'];
  2122.             // ====== FIN ELEMENTS CHIFFRES ======
  2123.             // ====== POINTS FORTS CONCURRENCE ======
  2124.             $points_forts $annonce['points_forts'];
  2125.             $points_faibles $annonce['points_faibles'];
  2126.             $positionnement_marche '' != $annonce['positionnement_marche'] ? $annonce['positionnement_marche'] : $translationExtension->translate("non precise"$lang'''M''');
  2127.             $concurrence $annonce['concurrence'];
  2128.             // ====== FIN POINTS FORTS CONCURRENCE ======
  2129.             // ====== INFOS CESSION ======
  2130.             $prix_cession = (int) $annonce['prix_cession'];
  2131.             $redressement_judiciaire $annonce['redressement_judiciaire'];
  2132.             $apport_fp_min $annonce['apport_fp_min'];
  2133.             // ====== FIN INFOS CESSION ======
  2134.             // ====== INFOS SECTORIELLES ======
  2135.             $dernieresActualitesSecteur $actuManager->getDernieresActualitesSecteurAnnonceVendeur($idAnnonce);
  2136.             // ====== FIN INFOS SECTORIELLES ======
  2137.             // ====== TRANSACTIONS COMPARABLES ======
  2138.             $valorisations $vm->donne_valorisations_du_secteur($idAnnonce);
  2139.             // ====== FIN TRANSACTIONS COMPARABLES ======
  2140.             $http_host $request->server->get('HTTP_HOST');
  2141.             $url substr($request->server->get('REDIRECT_URL'), 0, -4);
  2142.             $canonical $http_host $url;
  2143.             $parametres $request->query->all();
  2144.             $parametres ParametersProvider::prepareRechercheAvanceeParameters($parametres);
  2145.             $string_params $this->serializeParams($parametres);
  2146.             $index = (int) $request->query->get('index');
  2147.             $page = (int) $request->query->get('page'1);
  2148.             if ($page 1) {
  2149.                 $string_params .= "&page=" $page;
  2150.             }
  2151.             $urlList $request->query->get('urlList');
  2152.             $urlRetourList $urlList $urlList '?' $string_params null;
  2153.             $previousAnnonce $this->am->getIndexNAnnonceFromCessionList($parametres$type_annonce$page$index 1);
  2154.             $nextAnnonce $this->am->getIndexNAnnonceFromCessionList($parametres$type_annonce$page$index 1);
  2155.             $fromAlaUne $request->query->get('fromAlaUne');
  2156.             $dernieresAnnonces $request->query->get('dernieresAnnonces');
  2157.             $arrayVarsTrans = [];
  2158.             $arrayVarsTrans['titre_annonce'] = $annonce['titre_annonce'];
  2159.             $arrayVarsTrans['nom_localisation'] = $this->donneNomLocalisationPourTitle($annonce);
  2160.             if ($type_annonce == "entreprise") {
  2161.                 $metaTitle 'vente d\'entreprise, %$titre_annonce%$ - %$nom_localisation%$ ';
  2162.                 $metaDescription 'consultez l\'annonce de cession d\'entrprise : %$titre_annonce%$ - %$nom_localisation%$ ';
  2163.             } else {
  2164.                 $metaTitle 'cession d\'actif, %$titre_annonce%$ - %$nom_localisation%$ ';
  2165.                 $metaDescription 'consultez l\'annonce de cession d\'actif : %$titre_annonce%$ - %$nom_localisation%$ ';
  2166.             }
  2167.             $metaTag $this->metaTag
  2168.                     ->setTitle($translationExtension->translate($metaTitle$lang"""M"""$arrayVarsTrans))
  2169.                     ->setDescription($translationExtension->translate($metaDescription$lang"""M"""$arrayVarsTrans))
  2170.                     ->setCanonical($canonical);
  2171.             $elite_result NULL;
  2172.             if (!empty($request->query->get('elite'))) {
  2173.                 $elite_result $request->query->all();
  2174.                 $annoncesElite $this->rechercheElite->getAnnoncesResult($elite_result);
  2175.                 $elite_result["id_annonce"] = $annonce['id_annonce_vendeur'];
  2176.                 $elite_result["next_annonce"] = (Utils::getNextFromArray($annonce['id_annonce_vendeur'], array_column($annoncesElite"id_annonce_vendeur"))) ? $this->am->getAnnonceVendeurById(
  2177.                                 Utils::getNextFromArray($annonce['id_annonce_vendeur'], array_column($annoncesElite"id_annonce_vendeur"))
  2178.                         ) : NULL;
  2179.                 $elite_result["previous_annonce"] = (Utils::getPrevFromArray($annonce['id_annonce_vendeur'], array_column($annoncesElite"id_annonce_vendeur"))) ? $this->am->getAnnonceVendeurById(
  2180.                                 Utils::getPrevFromArray($annonce['id_annonce_vendeur'], array_column($annoncesElite"id_annonce_vendeur"))
  2181.                         ) : NULL;
  2182.             }
  2183.             //acces synthese  pour elite  ou en periode de gratuite
  2184.             $acces = ($this->getUser()) ? $this->dm->checkIfThisUserHasDroitService($this->getUser(), RechercheElite::CODE_SERVICE) : false// 81 service ELITE
  2185.             $syntheseElite $this->am->detailSyntheseCapitalImmaterielByIdAnnonce($idAnnonce$acces);
  2186.             $grillePostMer $this->em->getRepository(GrilleAnalysePostMer::class)->detailGrille($idAnnonce);
  2187.             if ($syntheseElite) {
  2188.                 $profilsStrategiques $this->em->getRepository(AnnoncesVendeurProfilsStandards::class)->getProfilsByIdAnnonce($idAnnonce);
  2189.                 $profilsStrategiques array_slice($profilsStrategiques04);
  2190.                 $syntheseElite['profils_strategiques'] = $profilsStrategiques;
  2191.             }
  2192.             if(!empty($annone_retiree_deja_commande)  && $annone_retiree_deja_commande == true ){
  2193.                 $this->get('session')->getFlashBag()->clear(); // Clear tous les flashbags
  2194.                 $this->addFlash('error_annonce_commande_retiree',"Attention : cette annonce n’est plus en ligne actuellement");
  2195.             }
  2196.             
  2197.            $coordonnesAnnonceCommandee =(!empty($annonce['id_annonce_vendeur']))? $this->getDoctrine()->getRepository(Commandes::class)->findInfoVendeurByAnnonce($annonce['id_annonce_vendeur']):[];
  2198.      
  2199.             return $this->render('reprendre_entreprise/details_annonce.html.twig', [
  2200.                         'metaTag' => $metaTag,
  2201.                         'annonce' => $annonce,
  2202.                         'secteurActivite' => $secteurActivite,
  2203.                         'typeCession' => $typeCession,
  2204.                         'nom_type_cession' => $nom_type_cession,
  2205.                         'tag_loc' => $tag_loc,
  2206.                         'label_bloc' => $label_bloc,
  2207.                         'nomStatut' => $nomStatut,
  2208.                         'indication_anciennete' => $indication_anciennete,
  2209.                         'localisation_siege' => $localisation_siege,
  2210.                         'precision_localisation_complementaire' => $precision_localisation_complementaire,
  2211.                         'type_cession' => $type_cession,
  2212.                         'type_cession_precise' => $type_cession_precise,
  2213.                         'nom_raison_cession' => $nom_raison_cession,
  2214.                         'urlList' => $urlList,
  2215.                         'urlRetourList' => $urlRetourList,
  2216.                         'string_params' => $string_params,
  2217.                         'previousAnnonce' => $previousAnnonce,
  2218.                         'nextAnnonce' => $nextAnnonce,
  2219.                         'index' => $index,
  2220.                         'indexPrevious' => $index 1,
  2221.                         'indexNext' => $index 1,
  2222.                         'fromAlaUne' => $fromAlaUne,
  2223.                         'dernieresAnnonces' => $dernieresAnnonces,
  2224.                         'lang' => $lang,
  2225.                         'type_annonce' => $type_annonce,
  2226.                         'annee_nmoins2_aff' => $annee_nmoins2_aff,
  2227.                         'annee_nmoins1_aff' => $annee_nmoins1_aff,
  2228.                         'annee_n_aff' => $annee_n_aff,
  2229.                         'annee_nplus1_aff' => $annee_nplus1_aff,
  2230.                         'ca_nmoinsdeux' => $ca_nmoinsdeux,
  2231.                         'ca_nmoinsun' => $ca_nmoinsun,
  2232.                         'ca_n' => $ca_n,
  2233.                         'ca_nplusun' => $ca_nplusun,
  2234.                         'marge_brute_nmoinsdeux' => $marge_brute_nmoinsdeux,
  2235.                         'marge_brute_nmoinsun' => $marge_brute_nmoinsun,
  2236.                         'marge_brute_n' => $marge_brute_n,
  2237.                         'marge_brute_nplusun' => $marge_brute_nplusun,
  2238.                         'EBE_nmoinsdeux' => $EBE_nmoinsdeux,
  2239.                         'EBE_nmoinsun' => $EBE_nmoinsun,
  2240.                         'EBE_n' => $EBE_n,
  2241.                         'EBE_nplusun' => $EBE_nplusun,
  2242.                         'resultat_exploitation_nmoinsdeux' => $resultat_exploitation_nmoinsdeux,
  2243.                         'resultat_exploitation_nmoinsun' => $resultat_exploitation_nmoinsun,
  2244.                         'resultat_exploitation_n' => $resultat_exploitation_n,
  2245.                         'resultat_exploitation_nplusun' => $resultat_exploitation_nplusun,
  2246.                         'resultat_net_nmoinsdeux' => $resultat_net_nmoinsdeux,
  2247.                         'resultat_net_nmoinsun' => $resultat_net_nmoinsun,
  2248.                         'resultat_net_n' => $resultat_net_n,
  2249.                         'resultat_net_nplusun' => $resultat_net_nplusun,
  2250.                         'nb_personnes_nmoinsdeux' => $nb_personnes_nmoinsdeux,
  2251.                         'nb_personnes_nmoinsun' => $nb_personnes_nmoinsun,
  2252.                         'nb_personnes_n' => $nb_personnes_n,
  2253.                         'nb_personnes_nplusun' => $nb_personnes_nplusun,
  2254.                         'annee_un_mobile' => $annee_un_mobile,
  2255.                         'annee_deux_mobile' => $annee_deux_mobile,
  2256.                         'annee_trois_mobile' => $annee_trois_mobile,
  2257.                         'ca_un_mobile' => $ca_un_mobile,
  2258.                         'ca_deux_mobile' => $ca_deux_mobile,
  2259.                         'ca_trois_mobile' => $ca_trois_mobile,
  2260.                         'marge_un_mobile' => $marge_un_mobile,
  2261.                         'marge_deux_mobile' => $marge_deux_mobile,
  2262.                         'marge_trois_mobile' => $marge_trois_mobile,
  2263.                         'ebe_un_mobile' => $ebe_un_mobile,
  2264.                         'ebe_deux_mobile' => $ebe_deux_mobile,
  2265.                         'ebe_trois_mobile' => $ebe_trois_mobile,
  2266.                         'resultat_un_mobile' => $resultat_un_mobile,
  2267.                         'resultat_deux_mobile' => $resultat_deux_mobile,
  2268.                         'resultat_trois_mobile' => $resultat_trois_mobile,
  2269.                         'resultat_net_un_mobile' => $resultat_net_un_mobile,
  2270.                         'resultat_net_deux_mobile' => $resultat_net_deux_mobile,
  2271.                         'resultat_net_trois_mobile' => $resultat_net_trois_mobile,
  2272.                         'nb_personne_un_mobile' => $nb_personne_un_mobile,
  2273.                         'nb_personne_deux_mobile' => $nb_personne_deux_mobile,
  2274.                         'nb_personne_trois_mobile' => $nb_personne_trois_mobile,
  2275.                         'fonds_propres' => $fonds_propres,
  2276.                         'dettes' => $dettes,
  2277.                         'intitule_dettes' => $intitule_dettes,
  2278.                         'tresorerie' => $tresorerie,
  2279.                         'points_forts' => $points_forts,
  2280.                         'points_faibles' => $points_faibles,
  2281.                         'positionnement_marche' => $positionnement_marche,
  2282.                         'concurrence' => $concurrence,
  2283.                         'prix_cession' => $prix_cession,
  2284.                         'redressement_judiciaire' => $redressement_judiciaire,
  2285.                         'apport_fp_min' => $apport_fp_min,
  2286.                         'dernieresActualitesSecteur' => $dernieresActualitesSecteur,
  2287.                         'valorisations' => $valorisations,
  2288.                         'lang' => $lang,
  2289.                         'googleTag' => $googleTag,
  2290.                         'ordered' => false,
  2291.                         "elite_result" => $elite_result,
  2292.                         "syntheseElite" => $syntheseElite// données elite
  2293.                         "grillePostMer" => $grillePostMer??[],
  2294.                         "coordonnesAnnonceCommandee"=>$coordonnesAnnonceCommandee??[],
  2295.                         'hasServiceSimuElite' => true//$hasServiceSimuElite
  2296.             ]);
  2297.         } elseif (!empty($user) && 'publique_elite' == $annonce['mode_annonce'] && !$hasServiceElite) {
  2298.             $lang $request->getSession()->get('lang');
  2299.             //return $this->redirectToRoute('reprendre_entreprise_annonces_cession_entreprise', ['codePays' => $codePays]);
  2300.             return $this->redirect("/reprendre-une-entreprise/annonces-cession-entreprise?alertPubElite=1");
  2301.         } else {
  2302.             $lang $request->getSession()->get('lang');
  2303.             $this->addFlash('error'$translationExtension->translate('annonce introuvable : l’annonce a Ã©té supprimée, remise en attente ou est en cours de modification'$lang'''M'''));
  2304.             return $this->redirectToRoute('reprendre_entreprise_annonces_cession_entreprise', ['codePays' => $codePays]);
  2305.         }
  2306.     }
  2307.     public function detailsannoncesurveillance(Request $requestPaginatorInterface $paginatorTranslationExtension $translationExtensionLocalisationsManagers $localisationManagerActualitesManagers $actuManagerValorisationsManagers $vmGoogleTag $googleTagConsultationsAnnonce $consultations_annonce$codePays): Response {
  2308.         $user $this->getUser();
  2309.         $login_utilisateur = isset($user) ? $user->_get('login_utilisateur') : null;
  2310.         $annonces $this->am->getDernieresAnnoncesCessions(1);
  2311.         $idAnnonce $annonces[0]["id_annonce_vendeur"];
  2312.         $annonce $this->am->getAnnonceVendeurById($idAnnonce$login_utilisateur);
  2313.         $hasServiceSimuElite false;
  2314.         $hasServiceElite false;
  2315.         if (empty($user) && 'publique_elite' == $annonce['mode_annonce']) {
  2316.             $this->denyAccessUnlessGranted('ROLE_USER');
  2317.         }
  2318.         if (!empty($user)) {
  2319.             $hasServiceSimuElite $this->dm->checkIfThisUserHasDroitService($user, [5881]); // 58 = similateur reprise 81 82 fusacq elite
  2320.             $hasServiceElite $this->dm->checkIfThisUserHasDroitService($user, [81]); // 58 = similateur reprise 81 82 fusacq elite
  2321.         }
  2322.         if (isset($annonce) && (
  2323.                 'publique' == $annonce['mode_annonce'] || ($hasServiceElite && 'publique_elite' == $annonce['mode_annonce']) || ($annonce['login_utilisateur'] == $login_utilisateur)
  2324.                 )
  2325.         ) {
  2326.             // On efface les anciens parametres s'ils existent, puis on insert les nouveaux
  2327.             $googleTag->removeParametresPub();
  2328.             if ($annonce['id_pays']) {
  2329.                 $googleTag->setIdPays($annonce['id_pays']);
  2330.             }
  2331.             if ($annonce['id_region']) {
  2332.                 $googleTag->setIdRegion($annonce['id_region']);
  2333.             }
  2334.             if ($annonce['id_departement']) {
  2335.                 $googleTag->setIdDepartement($annonce['id_departement']);
  2336.             }
  2337.             if ($annonce['id_secteur_activite']) {
  2338.                 $googleTag->setIdSecteurActivite($annonce['id_secteur_activite']);
  2339.             }
  2340.             //stats annonce
  2341.             $statsAnnonce $this->em->getRepository(StatistiquesNbConsultationsAnnoncesVendeurEntity::class)->find($idAnnonce);
  2342.             if (empty($statsAnnonce)) {
  2343.                 $statsAnnonce = new StatistiquesNbConsultationsAnnoncesVendeurEntity();
  2344.                 $statsAnnonce->_set("id_annonce"$idAnnonce);
  2345.                 $statsAnnonce->_set("nb_consultations"1);
  2346.                 $this->em->persist($statsAnnonce);
  2347.                 $this->em->flush();
  2348.             } else {
  2349.                 /* $nb = $statsAnnonce->_get("nb_consultations") + 1;
  2350.                   $statsAnnonce->_set("nb_consultations", $nb);
  2351.                   $this->em->persist($statsAnnonce);
  2352.                   $this->em->flush(); */
  2353.                 // On incrémente de 1 le nb de consultation
  2354.                 $consultations_annonce->incrementeConsultation('vendeur'$idAnnonce);
  2355.             }
  2356.             // ====== DESCRIPTION GENERALE ======
  2357.             $lang $request->getSession()->get('lang');
  2358.             $secteurActivite $this->getDoctrine()->getRepository(SecteursActivite::class)->getNomSecteurActivitieById($annonce['id_secteur_activite'])[0];
  2359.             if ('99' == substr($annonce['statuts'], 02)) {
  2360.                 $typeCession $translationExtension->translate("cession d'actif"$lang'''M''');
  2361.                 $type_annonce "actif";
  2362.             } else {
  2363.                 $typeCession $translationExtension->translate("cession d'entreprise"$lang'''M''');
  2364.                 $type_annonce "entreprise";
  2365.             }
  2366.             if (== $annonce['id_raison_cession']) {
  2367.                 $typeCession $translationExtension->translate("levee de fonds"$lang'''M''');
  2368.             }
  2369.             $idStatut $annonce['statuts'];
  2370.             $nom_type_cession $translationExtension->translate("forme juridique"$lang'''M''');
  2371.             $tag_loc $translationExtension->translate("localisation du siege"$lang'''M''');
  2372.             $label_bloc $translationExtension->translate("fiche d'identite de la societe"$lang'''M''');
  2373.             if ('99' == substr($idStatut02)) {
  2374.                 $nom_type_cession $translationExtension->translate("type d'actif"$lang'''M''');
  2375.                 $tag_loc $translationExtension->translate("localisation"$lang'''M''');
  2376.                 $label_bloc $translationExtension->translate("designation de l'actif"$lang'''M''');
  2377.             }
  2378.             $statutsRepo $this->getDoctrine()->getRepository(Statuts::class);
  2379.             $statut $statutsRepo->getStatusByIdStatut($idStatut);
  2380.             if (null != $statut) {
  2381.                 $nomStatut $statut->_get('nom_statut');
  2382.             } else {
  2383.                 $nomStatut $translationExtension->translate("non specifie"$lang'''m''');
  2384.             }
  2385.             $indication_anciennete null;
  2386.             if ('' != $annonce['date_creation_societe']) {
  2387.                 $anciennete date('Y') - $annonce['date_creation_societe'];
  2388.                 if ($anciennete 5) {
  2389.                     $indication_anciennete $translationExtension->translate("moins de 5 ans"$lang'''M''');
  2390.                 } else {
  2391.                     if ($anciennete <= 10) {
  2392.                         $indication_anciennete $translationExtension->translate("entre 5 et 10 ans"$lang'''M''');
  2393.                     } else {
  2394.                         $indication_anciennete $translationExtension->translate("plus de 10 ans"$lang'''M''');
  2395.                     }
  2396.                 }
  2397.             }
  2398.             $localisation_siege $annonce['nom_localisation'];
  2399.             $precision_localisation_complementaire null;
  2400.             if ('_99' == substr($annonce['id_region'], -3)) {
  2401.                 $precision_localisation_complementaire $translationExtension->translate("region"$lang'''M''');
  2402.             } elseif ('_99' == substr($annonce['id_departement'], -3)) {
  2403.                 $precision_localisation_complementaire $translationExtension->translate("departement"$lang'''M''');
  2404.             }
  2405.             $type_cession $annonce['type_cession'];
  2406.             $type_cession_precise true;
  2407.             if ('' == $type_cession) {
  2408.                 $type_cession $translationExtension->translate("non precise"$lang'''m''');
  2409.                 $type_cession_precise false;
  2410.             } elseif ('indifferent' == mb_strtolower($type_cession)) {
  2411.                 $type_cession $translationExtension->translate("minoritaire ou majoritaire"$lang'''M''');
  2412.             }
  2413.             $raisonsCession $this->getDoctrine()->getRepository(RaisonsCession::class)->findOneBy(['id_raison_cession' => $annonce['id_raison_cession']]);
  2414.             if (isset($raisonsCession)) {
  2415.                 $nom_raison_cession $raisonsCession->nom_raison_cession;
  2416.             } else {
  2417.                 $nom_raison_cession $translationExtension->translate("non specifie"$lang'''M''');
  2418.             }
  2419.             // ====== FIN DESCRIPTION GENERALE ======
  2420.             // ====== ELEMENTS CHIFFRES ======
  2421.             if ('' != $annonce['annee_n']) {
  2422.                 $annee_n_aff $annonce['annee_n'];
  2423.                 $annee_nmoins1_aff $annonce['annee_n'] - 1;
  2424.                 $annee_nmoins2_aff $annonce['annee_n'] - 2;
  2425.                 $annee_nplus1_aff $annonce['annee_n'] + 1;
  2426.             } else {
  2427.                 $annee_n_aff 'n';
  2428.                 $annee_nmoins1_aff 'n-1';
  2429.                 $annee_nmoins2_aff 'n-2';
  2430.                 $annee_nplus1_aff 'n+1';
  2431.             }
  2432.             $ca_nmoinsdeux $annonce['ca_nmoinsdeux'] ? (int) $annonce['ca_nmoinsdeux'] : '';
  2433.             $ca_nmoinsun $annonce['ca_nmoinsun'] ? (int) $annonce['ca_nmoinsun'] : '';
  2434.             $ca_n $annonce['ca_n'] ? $annonce['ca_n'] : '';
  2435.             $ca_nplusun $annonce['ca_nplusun'] ? (int) $annonce['ca_nplusun'] : '';
  2436.             $marge_brute_nmoinsdeux $annonce['marge_brute_nmoinsdeux'] ? (int) $annonce['marge_brute_nmoinsdeux'] : '';
  2437.             $marge_brute_nmoinsun $annonce['marge_brute_nmoinsun'] ? (int) $annonce['marge_brute_nmoinsun'] : '';
  2438.             $marge_brute_n = (int) $annonce['marge_brute_n'] ? $annonce['marge_brute_n'] : '';
  2439.             $marge_brute_nplusun $annonce['marge_brute_nplusun'] ? (int) $annonce['marge_brute_nplusun'] : '';
  2440.             $EBE_nmoinsdeux $annonce['EBE_nmoinsdeux'] ? (int) $annonce['EBE_nmoinsdeux'] : '';
  2441.             $EBE_nmoinsun $annonce['EBE_nmoinsun'] ? (int) $annonce['EBE_nmoinsun'] : '';
  2442.             $EBE_n $annonce['EBE_n'] ? (int) $annonce['EBE_n'] : '';
  2443.             $EBE_nplusun $annonce['EBE_nplusun'] ? (int) $annonce['EBE_nplusun'] : '';
  2444.             $resultat_exploitation_nmoinsdeux $annonce['resultat_exploitation_nmoinsdeux'] ? (int) $annonce['resultat_exploitation_nmoinsdeux'] : '';
  2445.             $resultat_exploitation_nmoinsun $annonce['resultat_exploitation_nmoinsun'] ? (int) $annonce['resultat_exploitation_nmoinsun'] : '';
  2446.             $resultat_exploitation_n $annonce['resultat_exploitation_n'] ? (int) $annonce['resultat_exploitation_n'] : '';
  2447.             $resultat_exploitation_nplusun $annonce['resultat_exploitation_nplusun'] ? (int) $annonce['resultat_exploitation_nplusun'] : '';
  2448.             $resultat_net_nmoinsdeux $annonce['resultat_net_nmoinsdeux'] ? (int) $annonce['resultat_net_nmoinsdeux'] : '';
  2449.             $resultat_net_nmoinsun $annonce['resultat_net_nmoinsun'] ? (int) $annonce['resultat_net_nmoinsun'] : '';
  2450.             $resultat_net_n $annonce['resultat_net_n'] ? (int) $annonce['resultat_net_n'] : '';
  2451.             $resultat_net_nplusun $annonce['resultat_net_nplusun'] ? (int) $annonce['resultat_net_nplusun'] : '';
  2452.             $nb_personnes_nmoinsdeux $annonce['nb_personnes_nmoinsdeux'] ? (int) $annonce['nb_personnes_nmoinsdeux'] : '';
  2453.             $nb_personnes_nmoinsun $annonce['nb_personnes_nmoinsun'] ? (int) $annonce['nb_personnes_nmoinsun'] : '';
  2454.             $nb_personnes_n $annonce['nb_personnes_n'] ? (int) $annonce['nb_personnes_n'] : '';
  2455.             $nb_personnes_nplusun $annonce['nb_personnes_nplusun'] ? (int) $annonce['nb_personnes_nplusun'] : '';
  2456.             // Pour affichage mobile
  2457.             // Si n+1 est renseignée, on affiche n-1, n et n+1
  2458.             if ($ca_nplusun != '' || $marge_brute_nplusun != '' || $EBE_nplusun != '' || $resultat_exploitation_nplusun != '' || $resultat_net_nplusun != '' || $nb_personnes_nplusun != '') {
  2459.                 $annee_un_mobile $annee_nmoins1_aff;
  2460.                 $annee_deux_mobile $annee_n_aff;
  2461.                 $annee_trois_mobile $annee_nplus1_aff;
  2462.                 $ca_un_mobile $ca_nmoinsun;
  2463.                 $ca_deux_mobile $ca_n;
  2464.                 $ca_trois_mobile $ca_nplusun;
  2465.                 $marge_un_mobile $marge_brute_nmoinsun;
  2466.                 $marge_deux_mobile $marge_brute_n;
  2467.                 $marge_trois_mobile $marge_brute_nplusun;
  2468.                 $ebe_un_mobile $EBE_nmoinsun;
  2469.                 $ebe_deux_mobile $EBE_n;
  2470.                 $ebe_trois_mobile $EBE_nplusun;
  2471.                 $resultat_un_mobile $resultat_exploitation_nmoinsun;
  2472.                 $resultat_deux_mobile $resultat_exploitation_n;
  2473.                 $resultat_trois_mobile $resultat_exploitation_nplusun;
  2474.                 $resultat_net_un_mobile $resultat_net_nmoinsun;
  2475.                 $resultat_net_deux_mobile $resultat_net_n;
  2476.                 $resultat_net_trois_mobile $resultat_net_nplusun;
  2477.                 $nb_personne_un_mobile $nb_personnes_nmoinsun;
  2478.                 $nb_personne_deux_mobile $nb_personnes_n;
  2479.                 $nb_personne_trois_mobile $nb_personnes_nplusun;
  2480.             } else {
  2481.                 // Sinon on affiche n-2, n-1 et n
  2482.                 $annee_un_mobile $annee_nmoins2_aff;
  2483.                 $annee_deux_mobile $annee_nmoins1_aff;
  2484.                 $annee_trois_mobile $annee_n_aff;
  2485.                 $ca_un_mobile $ca_nmoinsdeux;
  2486.                 $ca_deux_mobile $ca_nmoinsun;
  2487.                 $ca_trois_mobile $ca_n;
  2488.                 $marge_un_mobile $marge_brute_nmoinsdeux;
  2489.                 $marge_deux_mobile $marge_brute_nmoinsun;
  2490.                 $marge_trois_mobile $marge_brute_n;
  2491.                 $ebe_un_mobile $EBE_nmoinsdeux;
  2492.                 $ebe_deux_mobile $EBE_nmoinsun;
  2493.                 $ebe_trois_mobile $EBE_n;
  2494.                 $resultat_un_mobile $resultat_exploitation_nmoinsdeux;
  2495.                 $resultat_deux_mobile $resultat_exploitation_nmoinsun;
  2496.                 $resultat_trois_mobile $resultat_exploitation_n;
  2497.                 $resultat_net_un_mobile $resultat_net_nmoinsdeux;
  2498.                 $resultat_net_deux_mobile $resultat_net_nmoinsun;
  2499.                 $resultat_net_trois_mobile $resultat_net_n;
  2500.                 $nb_personne_un_mobile $nb_personnes_nmoinsdeux;
  2501.                 $nb_personne_deux_mobile $nb_personnes_nmoinsun;
  2502.                 $nb_personne_trois_mobile $nb_personnes_n;
  2503.             }
  2504.             // Fin affichage mobile
  2505.             $fonds_propres $annonce['fonds_propres'];
  2506.             if (null == $annonce['dettes_financieres']) {
  2507.                 $dettes $annonce['endettement_net_n'];
  2508.                 $intitule_dettes $translationExtension->translate("endettement net"$lang'''M''');
  2509.             } else {
  2510.                 $dettes $annonce['dettes_financieres'];
  2511.                 if ('NR' == $dettes) {
  2512.                     $dettes '';
  2513.                 }
  2514.                 $intitule_dettes $translationExtension->translate("dettes financieres"$lang'''M''');
  2515.             }
  2516.             $tresorerie $annonce['tresorerie_nette'];
  2517.             // ====== FIN ELEMENTS CHIFFRES ======
  2518.             // ====== POINTS FORTS CONCURRENCE ======
  2519.             $points_forts $annonce['points_forts'];
  2520.             $points_faibles $annonce['points_faibles'];
  2521.             $positionnement_marche '' != $annonce['positionnement_marche'] ? $annonce['positionnement_marche'] : $translationExtension->translate("non precise"$lang'''M''');
  2522.             $concurrence $annonce['concurrence'];
  2523.             // ====== FIN POINTS FORTS CONCURRENCE ======
  2524.             // ====== INFOS CESSION ======
  2525.             $prix_cession = (int) $annonce['prix_cession'];
  2526.             $redressement_judiciaire $annonce['redressement_judiciaire'];
  2527.             $apport_fp_min $annonce['apport_fp_min'];
  2528.             // ====== FIN INFOS CESSION ======
  2529.             // ====== INFOS SECTORIELLES ======
  2530.             $dernieresActualitesSecteur $actuManager->getDernieresActualitesSecteurAnnonceVendeur($idAnnonce);
  2531.             // ====== FIN INFOS SECTORIELLES ======
  2532.             // ====== TRANSACTIONS COMPARABLES ======
  2533.             $valorisations $vm->donne_valorisations_du_secteur($idAnnonce);
  2534.             // ====== FIN TRANSACTIONS COMPARABLES ======
  2535.             $http_host $request->server->get('HTTP_HOST');
  2536.             $url substr($request->server->get('REDIRECT_URL'), 0, -4);
  2537.             $canonical $http_host $url;
  2538.             $parametres $request->query->all();
  2539.             $parametres ParametersProvider::prepareRechercheAvanceeParameters($parametres);
  2540.             $string_params $this->serializeParams($parametres);
  2541.             $index = (int) $request->query->get('index');
  2542.             $page = (int) $request->query->get('page'1);
  2543.             if ($page 1) {
  2544.                 $string_params .= "&page=" $page;
  2545.             }
  2546.             $urlList $request->query->get('urlList');
  2547.             $urlRetourList $urlList $urlList '?' $string_params null;
  2548.             $previousAnnonce $this->am->getIndexNAnnonceFromCessionList($parametres$type_annonce$page$index 1);
  2549.             $nextAnnonce $this->am->getIndexNAnnonceFromCessionList($parametres$type_annonce$page$index 1);
  2550.             $fromAlaUne $request->query->get('fromAlaUne');
  2551.             $dernieresAnnonces $request->query->get('dernieresAnnonces');
  2552.             $arrayVarsTrans = [];
  2553.             $arrayVarsTrans['titre_annonce'] = $annonce['titre_annonce'];
  2554.             $arrayVarsTrans['nom_localisation'] = $this->donneNomLocalisationPourTitle($annonce);
  2555.             if ($type_annonce == "entreprise") {
  2556.                 $metaTitle 'vente d\'entreprise, %$titre_annonce%$ - %$nom_localisation%$ ';
  2557.                 $metaDescription 'consultez l\'annonce de cession d\'entrprise : %$titre_annonce%$ - %$nom_localisation%$ ';
  2558.             } else {
  2559.                 $metaTitle 'cession d\'actif, %$titre_annonce%$ - %$nom_localisation%$ ';
  2560.                 $metaDescription 'consultez l\'annonce de cession d\'actif : %$titre_annonce%$ - %$nom_localisation%$ ';
  2561.             }
  2562.             $metaTag $this->metaTag
  2563.                     ->setTitle($translationExtension->translate($metaTitle$lang"""M"""$arrayVarsTrans))
  2564.                     ->setDescription($translationExtension->translate($metaDescription$lang"""M"""$arrayVarsTrans))
  2565.                     ->setCanonical($canonical);
  2566.             return $this->render('reprendre_entreprise/details_annonce.html.twig', [
  2567.                         'metaTag' => $metaTag,
  2568.                         'annonce' => $annonce,
  2569.                         'secteurActivite' => $secteurActivite,
  2570.                         'typeCession' => $typeCession,
  2571.                         'nom_type_cession' => $nom_type_cession,
  2572.                         'tag_loc' => $tag_loc,
  2573.                         'label_bloc' => $label_bloc,
  2574.                         'nomStatut' => $nomStatut,
  2575.                         'indication_anciennete' => $indication_anciennete,
  2576.                         'localisation_siege' => $localisation_siege,
  2577.                         'precision_localisation_complementaire' => $precision_localisation_complementaire,
  2578.                         'type_cession' => $type_cession,
  2579.                         'type_cession_precise' => $type_cession_precise,
  2580.                         'nom_raison_cession' => $nom_raison_cession,
  2581.                         'urlList' => $urlList,
  2582.                         'urlRetourList' => $urlRetourList,
  2583.                         'string_params' => $string_params,
  2584.                         'previousAnnonce' => $previousAnnonce,
  2585.                         'nextAnnonce' => $nextAnnonce,
  2586.                         'index' => $index,
  2587.                         'indexPrevious' => $index 1,
  2588.                         'indexNext' => $index 1,
  2589.                         'fromAlaUne' => $fromAlaUne,
  2590.                         'dernieresAnnonces' => $dernieresAnnonces,
  2591.                         'lang' => $lang,
  2592.                         'type_annonce' => $type_annonce,
  2593.                         'annee_nmoins2_aff' => $annee_nmoins2_aff,
  2594.                         'annee_nmoins1_aff' => $annee_nmoins1_aff,
  2595.                         'annee_n_aff' => $annee_n_aff,
  2596.                         'annee_nplus1_aff' => $annee_nplus1_aff,
  2597.                         'ca_nmoinsdeux' => $ca_nmoinsdeux,
  2598.                         'ca_nmoinsun' => $ca_nmoinsun,
  2599.                         'ca_n' => $ca_n,
  2600.                         'ca_nplusun' => $ca_nplusun,
  2601.                         'marge_brute_nmoinsdeux' => $marge_brute_nmoinsdeux,
  2602.                         'marge_brute_nmoinsun' => $marge_brute_nmoinsun,
  2603.                         'marge_brute_n' => $marge_brute_n,
  2604.                         'marge_brute_nplusun' => $marge_brute_nplusun,
  2605.                         'EBE_nmoinsdeux' => $EBE_nmoinsdeux,
  2606.                         'EBE_nmoinsun' => $EBE_nmoinsun,
  2607.                         'EBE_n' => $EBE_n,
  2608.                         'EBE_nplusun' => $EBE_nplusun,
  2609.                         'resultat_exploitation_nmoinsdeux' => $resultat_exploitation_nmoinsdeux,
  2610.                         'resultat_exploitation_nmoinsun' => $resultat_exploitation_nmoinsun,
  2611.                         'resultat_exploitation_n' => $resultat_exploitation_n,
  2612.                         'resultat_exploitation_nplusun' => $resultat_exploitation_nplusun,
  2613.                         'resultat_net_nmoinsdeux' => $resultat_net_nmoinsdeux,
  2614.                         'resultat_net_nmoinsun' => $resultat_net_nmoinsun,
  2615.                         'resultat_net_n' => $resultat_net_n,
  2616.                         'resultat_net_nplusun' => $resultat_net_nplusun,
  2617.                         'nb_personnes_nmoinsdeux' => $nb_personnes_nmoinsdeux,
  2618.                         'nb_personnes_nmoinsun' => $nb_personnes_nmoinsun,
  2619.                         'nb_personnes_n' => $nb_personnes_n,
  2620.                         'nb_personnes_nplusun' => $nb_personnes_nplusun,
  2621.                         'annee_un_mobile' => $annee_un_mobile,
  2622.                         'annee_deux_mobile' => $annee_deux_mobile,
  2623.                         'annee_trois_mobile' => $annee_trois_mobile,
  2624.                         'ca_un_mobile' => $ca_un_mobile,
  2625.                         'ca_deux_mobile' => $ca_deux_mobile,
  2626.                         'ca_trois_mobile' => $ca_trois_mobile,
  2627.                         'marge_un_mobile' => $marge_un_mobile,
  2628.                         'marge_deux_mobile' => $marge_deux_mobile,
  2629.                         'marge_trois_mobile' => $marge_trois_mobile,
  2630.                         'ebe_un_mobile' => $ebe_un_mobile,
  2631.                         'ebe_deux_mobile' => $ebe_deux_mobile,
  2632.                         'ebe_trois_mobile' => $ebe_trois_mobile,
  2633.                         'resultat_un_mobile' => $resultat_un_mobile,
  2634.                         'resultat_deux_mobile' => $resultat_deux_mobile,
  2635.                         'resultat_trois_mobile' => $resultat_trois_mobile,
  2636.                         'resultat_net_un_mobile' => $resultat_net_un_mobile,
  2637.                         'resultat_net_deux_mobile' => $resultat_net_deux_mobile,
  2638.                         'resultat_net_trois_mobile' => $resultat_net_trois_mobile,
  2639.                         'nb_personne_un_mobile' => $nb_personne_un_mobile,
  2640.                         'nb_personne_deux_mobile' => $nb_personne_deux_mobile,
  2641.                         'nb_personne_trois_mobile' => $nb_personne_trois_mobile,
  2642.                         'fonds_propres' => $fonds_propres,
  2643.                         'dettes' => $dettes,
  2644.                         'intitule_dettes' => $intitule_dettes,
  2645.                         'tresorerie' => $tresorerie,
  2646.                         'points_forts' => $points_forts,
  2647.                         'points_faibles' => $points_faibles,
  2648.                         'positionnement_marche' => $positionnement_marche,
  2649.                         'concurrence' => $concurrence,
  2650.                         'prix_cession' => $prix_cession,
  2651.                         'redressement_judiciaire' => $redressement_judiciaire,
  2652.                         'apport_fp_min' => $apport_fp_min,
  2653.                         'dernieresActualitesSecteur' => $dernieresActualitesSecteur,
  2654.                         'valorisations' => $valorisations,
  2655.                         'lang' => $lang,
  2656.                         'googleTag' => $googleTag
  2657.             ]);
  2658.         } else {
  2659.             $lang $request->getSession()->get('lang');
  2660.             $this->addFlash('error'$translationExtension->translate('annonce introuvable : l’annonce a Ã©té supprimée, remise en attente ou est en cours de modification'$lang'''M'''));
  2661.             return $this->redirectToRoute('reprendre_entreprise_annonces_cession_entreprise', ['codePays' => $codePays]);
  2662.         }
  2663.     }
  2664.     public function contacterDeposantAnnonceVendeur(Request $requestPaginatorInterface $paginatorTranslationExtension $translationExtensionLocalisationsManagers $localisationManagerActualitesManagers $actuManagerValorisationsManagers $vmCommandesRepository $cr$idAnnonce$codePays): Response {
  2665.         $user $this->getUser();
  2666.         $login_utilisateur = isset($user) ? $user->_get('login_utilisateur') : null;
  2667.         $annonce $this->am->getAnnonceVendeurById($idAnnonce$login_utilisateur);
  2668.         $session $request->getSession();
  2669.         $lignePanier null;
  2670.         $dejaCommande null;
  2671.         $forfaitAUtiliser null;
  2672.         $hasForfait false;
  2673.         $hasServiceElite false;
  2674.         if (!empty($user)) {
  2675.             $hasServiceElite $this->dm->checkIfThisUserHasDroitService($user, [81]); // 58 = similateur reprise 81 82 fusacq elite
  2676.         }
  2677.         if (empty($user) && 'publique_elite' == $annonce['mode_annonce']) {
  2678.             $this->denyAccessUnlessGranted('ROLE_USER');
  2679.         }
  2680.         if (!empty($user)) {
  2681.             $hasServiceElite $this->dm->checkIfThisUserHasDroitService($user, [81]); // 58 = similateur reprise 81 82 fusacq elite
  2682.         }
  2683.         if (isset($annonce) && (
  2684.                 'publique' == $annonce['mode_annonce'] || ($hasServiceElite && 'publique_elite' == $annonce['mode_annonce']) || ($annonce['login_utilisateur'] == $login_utilisateur)
  2685.                 )
  2686.         ) {
  2687.             // ====== DESCRIPTION GENERALE ======
  2688.             $lang $request->getSession()->get('lang');
  2689.             $secteurActivite $this->getDoctrine()->getRepository(SecteursActivite::class)->getNomSecteurActivitieById($annonce['id_secteur_activite'])[0];
  2690.             if ('99' == substr($annonce['statuts'], 02)) {
  2691.                 $typeCession $translationExtension->translate("cession d'actif"$lang'''M''');
  2692.                 $type_annonce "actif";
  2693.                 $liste_id_annonces $request->getSession()->get('liste_id_annonce_cession_actif');
  2694.                 $typeAnnoncePanier "annonce_V_actif";
  2695.             } else {
  2696.                 $typeCession $translationExtension->translate("cession d'entreprise"$lang'''M''');
  2697.                 $type_annonce "entreprise";
  2698.                 $liste_id_annonces $request->getSession()->get('liste_id_annonce_cession_entreprise');
  2699.                 $typeAnnoncePanier "annonce_V_cession";
  2700.             }
  2701.             if (== $annonce['id_raison_cession']) {
  2702.                 $typeCession $translationExtension->translate("levee de fonds"$lang'''M''');
  2703.                 $typeAnnoncePanier "annonce_V_levee_de_fonds";
  2704.             }
  2705.             if ($session) {
  2706.                 $userIdentity $session->get('user');
  2707.                 if (!empty($userIdentity)) {
  2708.                     $lignePanier $this->em->getRepository(Panier::class)->findOneBy(
  2709.                             ['login_utilisateur' => $userIdentity->_get('login_utilisateur'), "type_object" => $typeAnnoncePanier"id_object" => $idAnnonce]
  2710.                     );
  2711.                     $dejaCommande $this->cm->hasAnnonceCommande($userIdentity->_get('login_utilisateur'), $idAnnonce'vendeur');
  2712.                     $forfaitAUtiliser $this->dm->getFrofaitAnnonceToUse($userIdentity);
  2713.                     if (!empty($forfaitAUtiliser)) {
  2714.                         $hasForfait true;
  2715.                     }
  2716.                 }
  2717.             }
  2718.             // ====== FIN DESCRIPTION GENERALE ======
  2719.             $http_host $request->server->get('HTTP_HOST');
  2720.             $url substr($request->server->get('REDIRECT_URL'), 0, -4);
  2721.             $canonical $http_host $url;
  2722.             $parametres $request->query->all();
  2723.             $parametres ParametersProvider::prepareRechercheAvanceeParameters($parametres);
  2724.             $string_params $this->serializeParams($parametres);
  2725.             $index = (int) $request->query->get('index');
  2726.             $page = (int) $request->query->get('page'1);
  2727.             if ($page 1) {
  2728.                 $string_params .= "&page=" $page;
  2729.             }
  2730.             $urlList $request->query->get('urlList');
  2731.             $urlRetourList $urlList $urlList '?' $string_params null;
  2732.             $previousAnnonce $this->am->getIndexNAnnonceFromCessionList($parametres$type_annonce$page$index 1);
  2733.             $nextAnnonce $this->am->getIndexNAnnonceFromCessionList($parametres$type_annonce$page$index 1);
  2734.             $fromAlaUne $request->query->get('fromAlaUne');
  2735.             $dernieresAnnonces $request->query->get('dernieresAnnonces');
  2736.             $showContacter $request->query->get('contact');
  2737.             // ANNONCE COMMANDE AU COURS DES 15 DERNIERS JOURS
  2738.             $ordered $cr->hasBeenOrderedWithinThePastXDays($idAnnonce"vendeur"15);
  2739.             // ====== TRANSACTIONS COMPARABLES ======
  2740.             $valorisations $vm->donne_valorisations_du_secteur($idAnnonce);
  2741.             // ====== FIN TRANSACTIONS COMPARABLES ======
  2742.             $arrayVarsTrans = [];
  2743.             $arrayVarsTrans['titre_annonce'] = $annonce['titre_annonce'];
  2744.             $arrayVarsTrans['nom_localisation'] = $this->donneNomLocalisationPourTitle($annonce);
  2745.             if ($type_annonce == "entreprise") {
  2746.                 $metaTitle 'contactez le déposant de l\'annonce de vente d\'entreprise, %$titre_annonce%$ - %$nom_localisation%$ ';
  2747.                 $metaDescription 'contactez le déposant de l\'annonce de cession d\'entrprise : %$titre_annonce%$ - %$nom_localisation%$ ';
  2748.             } else {
  2749.                 $metaTitle 'contactez le déposant de l\'annonce de cession d\'actif, %$titre_annonce%$ - %$nom_localisation%$ ';
  2750.                 $metaDescription 'contactez le déposant de l\'annonce de cession d\'actif : %$titre_annonce%$ - %$nom_localisation%$ ';
  2751.             }
  2752.             $metaTag $this->metaTag
  2753.                     ->setTitle($translationExtension->translate($metaTitle$lang"""M"""$arrayVarsTrans))
  2754.                     ->setDescription($translationExtension->translate($metaDescription$lang"""M"""$arrayVarsTrans))
  2755.                     ->setCanonical($canonical);
  2756.             $elite_result NULL;
  2757.             if (!empty($request->query->get('elite'))) {
  2758.                 $elite_result $request->query->all();
  2759.                 $annoncesElite = []; // PAS DE REQUETE ICI // $this->rechercheElite->getAnnoncesResult($elite_result);
  2760.                 $elite_result["id_annonce"] = $annonce['id_annonce_vendeur'];
  2761.                 $elite_result["next_annonce"] = (Utils::getNextFromArray($annonce['id_annonce_vendeur'], array_column($annoncesElite"id_annonce_vendeur"))) ? $this->am->getAnnonceVendeurById(
  2762.                                 Utils::getNextFromArray($annonce['id_annonce_vendeur'], array_column($annoncesElite"id_annonce_vendeur"))
  2763.                         ) : NULL;
  2764.                 $elite_result["previous_annonce"] = (Utils::getPrevFromArray($annonce['id_annonce_vendeur'], array_column($annoncesElite"id_annonce_vendeur"))) ? $this->am->getAnnonceVendeurById(
  2765.                                 Utils::getPrevFromArray($annonce['id_annonce_vendeur'], array_column($annoncesElite"id_annonce_vendeur"))
  2766.                         ) : NULL;
  2767.             }
  2768.             //acces synthese  pour elite  ou en periode de gratuite
  2769.             $acces = ($this->getUser()) ? $this->dm->checkIfThisUserHasDroitService($this->getUser(), RechercheElite::CODE_SERVICE) : false// 81 service ELITE
  2770.             $syntheseElite $this->am->detailSyntheseCapitalImmaterielByIdAnnonce($idAnnonce$acces);
  2771.             return $this->render('reprendre_entreprise/contacter_deposant_annonce_vendeur.html.twig', [
  2772.                         'metaTag' => $metaTag,
  2773.                         'annonce' => $annonce,
  2774.                         'secteurActivite' => $secteurActivite,
  2775.                         'typeCession' => $typeCession,
  2776.                         'urlList' => $urlList,
  2777.                         'urlRetourList' => $urlRetourList,
  2778.                         'string_params' => $string_params,
  2779.                         'previousAnnonce' => $previousAnnonce,
  2780.                         'nextAnnonce' => $nextAnnonce,
  2781.                         'index' => $index,
  2782.                         'indexPrevious' => $index 1,
  2783.                         'indexNext' => $index 1,
  2784.                         'fromAlaUne' => $fromAlaUne,
  2785.                         'dernieresAnnonces' => $dernieresAnnonces,
  2786.                         'lang' => $lang,
  2787.                         'type_annonce' => $type_annonce,
  2788.                         'lignePanier' => $lignePanier,
  2789.                         'dejaCommande' => $dejaCommande,
  2790.                         'forfaitAUtiliser' => $forfaitAUtiliser,
  2791.                         'hasForfait' => $hasForfait,
  2792.                         'lang' => $lang,
  2793.                         'typeAnnoncePanier' => $typeAnnoncePanier,
  2794.                         'showContacter' => $showContacter,
  2795.                         'ordered' => $ordered,
  2796.                         'valorisations' => $valorisations,
  2797.                         'syntheseElite' => $syntheseElite
  2798.             ]);
  2799.         } else {
  2800.             return $this->redirectToRoute('index', ['codePays' => substr($codePays12)]);
  2801.         }
  2802.     }
  2803.     public function actualitesectorielle(Request $requestPaginatorInterface $paginatorTranslationExtension $translationExtensionLocalisationsManagers $localisationManagerActualitesManagers $actuManagerValorisationsManagers $vmGoogleTag $googleTagCommandesRepository $cr$idAnnonce$codePays): Response {
  2804.         $user $this->getUser();
  2805.         $login_utilisateur = isset($user) ? $user->_get('login_utilisateur') : null;
  2806.         $annonce $this->am->getAnnonceVendeurById($idAnnonce$login_utilisateur);
  2807.         if (isset($annonce) && 'publique' == $annonce['mode_annonce']) {
  2808.             // ====== DESCRIPTION GENERALE ======
  2809.             $lang $request->getSession()->get('lang');
  2810.             $secteurActivite $this->getDoctrine()->getRepository(SecteursActivite::class)->getNomSecteurActivitieById($annonce['id_secteur_activite'])[0];
  2811.             if ('99' == substr($annonce['statuts'], 02)) {
  2812.                 $typeCession $translationExtension->translate("cession d'actif"$lang'''M''');
  2813.                 $type_annonce "actif";
  2814.                 $liste_id_annonces $request->getSession()->get('liste_id_annonce_cession_actif');
  2815.                 $typeAnnoncePanier "annonce_V_actif";
  2816.             } else {
  2817.                 $typeCession $translationExtension->translate("cession d'entreprise"$lang'''M''');
  2818.                 $type_annonce "entreprise";
  2819.                 $liste_id_annonces $request->getSession()->get('liste_id_annonce_cession_entreprise');
  2820.                 $typeAnnoncePanier "annonce_V_cession";
  2821.             }
  2822.             if (== $annonce['id_raison_cession']) {
  2823.                 $typeCession $translationExtension->translate("levee de fonds"$lang'''M''');
  2824.                 $typeAnnoncePanier "annonce_V_levee_de_fonds";
  2825.             }
  2826.             // ====== FIN DESCRIPTION GENERALE ======
  2827.             $http_host $request->server->get('HTTP_HOST');
  2828.             $url substr($request->server->get('REDIRECT_URL'), 0, -4);
  2829.             $canonical $http_host $url;
  2830.             $parametres $request->query->all();
  2831.             $parametres ParametersProvider::prepareRechercheAvanceeParameters($parametres);
  2832.             $string_params $this->serializeParams($parametres);
  2833.             $index = (int) $request->query->get('index');
  2834.             $page = (int) $request->query->get('page'1);
  2835.             if ($page 1) {
  2836.                 $string_params .= "&page=" $page;
  2837.             }
  2838.             $urlList $request->query->get('urlList');
  2839.             $urlRetourList $urlList $urlList '?' $string_params null;
  2840.             $previousAnnonce $this->am->getIndexNAnnonceFromCessionList($parametres$type_annonce$page$index 1);
  2841.             $nextAnnonce $this->am->getIndexNAnnonceFromCessionList($parametres$type_annonce$page$index 1);
  2842.             $fromAlaUne $request->query->get('fromAlaUne');
  2843.             $dernieresAnnonces $request->query->get('dernieresAnnonces');
  2844.             $showContacter $request->query->get('contact');
  2845.             // ANNONCE COMMANDE AU COURS DES 15 DERNIERS JOURS
  2846.             $ordered $cr->hasBeenOrderedWithinThePastXDays($idAnnonce"vendeur"15);
  2847.             // ====== INFOS SECTORIELLES ======
  2848.             $dernieresActualitesSecteur $actuManager->getDernieresActualitesSecteurAnnonceVendeur($idAnnonce);
  2849.             // ====== FIN INFOS SECTORIELLES ======
  2850.             // ====== TRANSACTIONS COMPARABLES ======
  2851.             $valorisations $vm->donne_valorisations_du_secteur($idAnnonce);
  2852.             // ====== FIN TRANSACTIONS COMPARABLES ======
  2853.             $arrayVarsTrans = [];
  2854.             $arrayVarsTrans['titre_annonce'] = $annonce['titre_annonce'];
  2855.             $arrayVarsTrans['nom_localisation'] = $this->donneNomLocalisationPourTitle($annonce);
  2856.             if ($type_annonce == "entreprise") {
  2857.                 $metaTitle 'actualite sectorielle de l\'annonce de vente d\'entreprise, %$titre_annonce%$ - %$nom_localisation%$ ';
  2858.                 $metaDescription 'actualite sectorielle de l\'annonce de cession d\'entrprise : %$titre_annonce%$ - %$nom_localisation%$ ';
  2859.             } else {
  2860.                 $metaTitle 'actualite sectorielle de l\'annonce de cession d\'actif, %$titre_annonce%$ - %$nom_localisation%$ ';
  2861.                 $metaDescription 'actualite sectorielle de l\'annonce de cession d\'actif : %$titre_annonce%$ - %$nom_localisation%$ ';
  2862.             }
  2863.             $metaTag $this->metaTag
  2864.                     ->setTitle($translationExtension->translate($metaTitle$lang"""M"""$arrayVarsTrans))
  2865.                     ->setDescription($translationExtension->translate($metaDescription$lang"""M"""$arrayVarsTrans))
  2866.                     ->setCanonical($canonical);
  2867.             $elite_result NULL;
  2868.             if (!empty($request->query->get('elite'))) {
  2869.                 $elite_result $request->query->all();
  2870.                 $annoncesElite $this->rechercheElite->getAnnoncesResult($elite_result);
  2871.                 $elite_result["id_annonce"] = $annonce['id_annonce_vendeur'];
  2872.                 $elite_result["next_annonce"] = (Utils::getNextFromArray($annonce['id_annonce_vendeur'], array_column($annoncesElite"id_annonce_vendeur"))) ? $this->am->getAnnonceVendeurById(
  2873.                                 Utils::getNextFromArray($annonce['id_annonce_vendeur'], array_column($annoncesElite"id_annonce_vendeur"))
  2874.                         ) : NULL;
  2875.                 $elite_result["previous_annonce"] = (Utils::getPrevFromArray($annonce['id_annonce_vendeur'], array_column($annoncesElite"id_annonce_vendeur"))) ? $this->am->getAnnonceVendeurById(
  2876.                                 Utils::getPrevFromArray($annonce['id_annonce_vendeur'], array_column($annoncesElite"id_annonce_vendeur"))
  2877.                         ) : NULL;
  2878.             }
  2879.             //acces synthese  pour elite  ou en periode de gratuite
  2880.             $acces = ($this->getUser()) ? $this->dm->checkIfThisUserHasDroitService($this->getUser(), RechercheElite::CODE_SERVICE) : false// 81 service ELITE
  2881.             $syntheseElite $this->am->detailSyntheseCapitalImmaterielByIdAnnonce($idAnnonce$acces);
  2882.             return $this->render('reprendre_entreprise/actualite_sectorielle_annonce_vendeur.html.twig', [
  2883.                         'metaTag' => $metaTag,
  2884.                         'annonce' => $annonce,
  2885.                         'secteurActivite' => $secteurActivite,
  2886.                         'typeCession' => $typeCession,
  2887.                         'urlList' => $urlList,
  2888.                         'urlRetourList' => $urlRetourList,
  2889.                         'string_params' => $string_params,
  2890.                         'previousAnnonce' => $previousAnnonce,
  2891.                         'nextAnnonce' => $nextAnnonce,
  2892.                         'index' => $index,
  2893.                         'indexPrevious' => $index 1,
  2894.                         'indexNext' => $index 1,
  2895.                         'fromAlaUne' => $fromAlaUne,
  2896.                         'dernieresAnnonces' => $dernieresAnnonces,
  2897.                         'lang' => $lang,
  2898.                         'type_annonce' => $type_annonce,
  2899.                         'lang' => $lang,
  2900.                         'typeAnnoncePanier' => $typeAnnoncePanier,
  2901.                         'showContacter' => $showContacter,
  2902.                         'ordered' => $ordered,
  2903.                         'dernieresActualitesSecteur' => $dernieresActualitesSecteur,
  2904.                         'valorisations' => $valorisations,
  2905.                         'syntheseElite' => $syntheseElite
  2906.             ]);
  2907.         } else {
  2908.             return $this->redirectToRoute('index', ['codePays' => substr($codePays12)]);
  2909.         }
  2910.     }
  2911.     public function descriptiongenerale(Request $requestPaginatorInterface $paginatorTranslationExtension $translationExtensionLocalisationsManagers $localisationManager$idAnnonce$codePays): Response {
  2912.         $user $this->getUser();
  2913.         $login_utilisateur = isset($user) ? $user->_get('login_utilisateur') : null;
  2914.         $annonce $this->am->getAnnonceVendeurById($idAnnonce$login_utilisateur);
  2915.         if (isset($annonce) && 'publique' == $annonce['mode_annonce']) {
  2916.             $lang $request->getSession()->get('lang');
  2917.             $secteurActivite $this->getDoctrine()->getRepository(SecteursActivite::class)->getNomSecteurActivitieById($annonce['id_secteur_activite'])[0];
  2918.             if ('99' == substr($annonce['statuts'], 02)) {
  2919.                 $typeCession $translationExtension->translate("cession d'actif"$lang'''M''');
  2920.                 $type_annonce "actif";
  2921.             } else {
  2922.                 $typeCession $translationExtension->translate("cession d'entreprise"$lang'''M''');
  2923.                 $type_annonce "entreprise";
  2924.             }
  2925.             if (== $annonce['id_raison_cession']) {
  2926.                 $typeCession $translationExtension->translate("levee de fonds"$lang'''M''');
  2927.             }
  2928.             $idStatut $annonce['statuts'];
  2929.             $nom_type_cession $translationExtension->translate("forme juridique"$lang'''M''');
  2930.             $tag_loc $translationExtension->translate("localisation du siege"$lang'''M''');
  2931.             $label_bloc $translationExtension->translate("fiche d'identite de la societe"$lang'''M''');
  2932.             if ('99' == substr($idStatut02)) {
  2933.                 $nom_type_cession $translationExtension->translate("type d'actif"$lang'''M''');
  2934.                 $tag_loc $translationExtension->translate("localisation"$lang'''M''');
  2935.                 $label_bloc $translationExtension->translate("designation de l'actif"$lang'''M''');
  2936.             }
  2937.             $statutsRepo $this->getDoctrine()->getRepository(Statuts::class);
  2938.             $statut $statutsRepo->getStatusByIdStatut($idStatut);
  2939.             if (null != $statut) {
  2940.                 $nomStatut $statut->_get('nom_statut');
  2941.             } else {
  2942.                 $nomStatut $translationExtension->translate("non specifie"$lang'''m''');
  2943.             }
  2944.             $indication_anciennete null;
  2945.             if ('' != $annonce['date_creation_societe']) {
  2946.                 $anciennete date('Y') - $annonce['date_creation_societe'];
  2947.                 if ($anciennete 5) {
  2948.                     $indication_anciennete $translationExtension->translate("moins de 5 ans"$lang'''M''');
  2949.                 } else {
  2950.                     if ($anciennete <= 10) {
  2951.                         $indication_anciennete $translationExtension->translate("entre 5 et 10 ans"$lang'''M''');
  2952.                     } else {
  2953.                         $indication_anciennete $translationExtension->translate("plus de 10 ans"$lang'''M''');
  2954.                     }
  2955.                 }
  2956.             }
  2957.             $localisation_siege $annonce['nom_localisation'];
  2958.             $precision_localisation_complementaire null;
  2959.             if ('_99' == substr($annonce['id_region'], -3)) {
  2960.                 $precision_localisation_complementaire $translationExtension->translate("region"$lang'''M''');
  2961.             } elseif ('_99' == substr($annonce['id_departement'], -3)) {
  2962.                 $precision_localisation_complementaire $translationExtension->translate("departement"$lang'''M''');
  2963.             }
  2964.             $type_cession $annonce['type_cession'];
  2965.             $type_cession_precise true;
  2966.             if ('' == $type_cession) {
  2967.                 $type_cession $translationExtension->translate("non precise"$lang'''m''');
  2968.                 $type_cession_precise false;
  2969.             } elseif ('indifferent' == mb_strtolower($type_cession)) {
  2970.                 $type_cession $translationExtension->translate("minoritaire ou majoritaire"$lang'''M''');
  2971.             }
  2972.             $raisonsCession $this->getDoctrine()->getRepository(RaisonsCession::class)->findOneBy(['id_raison_cession' => $annonce['id_raison_cession']]);
  2973.             if (isset($raisonsCession)) {
  2974.                 $nom_raison_cession $raisonsCession->nom_raison_cession;
  2975.             } else {
  2976.                 $nom_raison_cession $translationExtension->translate("non specifie"$lang'''M''');
  2977.             }
  2978.             $http_host $request->server->get('HTTP_HOST');
  2979.             $url substr($request->server->get('REDIRECT_URL'), 0, -4);
  2980.             $canonical $http_host $url;
  2981.             $next $canonical '?onglet=2';
  2982.             $parametres $request->query->all();
  2983.             $parametres ParametersProvider::prepareRechercheAvanceeParameters($parametres);
  2984.             $string_params $this->serializeParams($parametres);
  2985.             $index = (int) $request->query->get('index');
  2986.             $page = (int) $request->query->get('page'1);
  2987.             if ($page 1) {
  2988.                 $string_params .= "&page=" $page;
  2989.             }
  2990.             $urlList $request->query->get('urlList');
  2991.             $urlRetourList $urlList $urlList '?' $string_params null;
  2992.             $previousAnnonce $this->am->getIndexNAnnonceFromCessionList($parametres$type_annonce$page$index 1);
  2993.             $nextAnnonce $this->am->getIndexNAnnonceFromCessionList($parametres$type_annonce$page$index 1);
  2994.             $fromAlaUne $request->query->get('fromAlaUne');
  2995.             $arrayVarsTrans = [];
  2996.             $arrayVarsTrans['titre_annonce'] = $annonce['titre_annonce'];
  2997.             $arrayVarsTrans['nom_localisation'] = $this->donneNomLocalisationPourTitle($annonce);
  2998.             if ($type_annonce == "entreprise") {
  2999.                 $metaTitle 'vente d\'entreprise, %$titre_annonce%$ - %$nom_localisation%$ ';
  3000.                 $metaDescription 'consultez l\'annonce de cession d\'entrprise : %$titre_annonce%$ - %$nom_localisation%$ ';
  3001.             } else {
  3002.                 $metaTitle 'cession d\'actif, %$titre_annonce%$ - %$nom_localisation%$ ';
  3003.                 $metaDescription 'consultez l\'annonce de cession d\'actif : %$titre_annonce%$ - %$nom_localisation%$ ';
  3004.             }
  3005.             $metaTag $this->metaTag
  3006.                     ->setTitle($translationExtension->translate($metaTitle$lang"""M"""$arrayVarsTrans))
  3007.                     ->setDescription($translationExtension->translate($metaDescription$lang"""M"""$arrayVarsTrans))
  3008.                     ->setCanonical($canonical)
  3009.                     ->setNext($next);
  3010.             return $this->render('reprendre_entreprise/description_generale.html.twig', [
  3011.                         'metaTag' => $metaTag,
  3012.                         'annonce' => $annonce,
  3013.                         'secteurActivite' => $secteurActivite,
  3014.                         'typeCession' => $typeCession,
  3015.                         'nom_type_cession' => $nom_type_cession,
  3016.                         'tag_loc' => $tag_loc,
  3017.                         'label_bloc' => $label_bloc,
  3018.                         'nomStatut' => $nomStatut,
  3019.                         'indication_anciennete' => $indication_anciennete,
  3020.                         'localisation_siege' => $localisation_siege,
  3021.                         'precision_localisation_complementaire' => $precision_localisation_complementaire,
  3022.                         'type_cession' => $type_cession,
  3023.                         'type_cession_precise' => $type_cession_precise,
  3024.                         'nom_raison_cession' => $nom_raison_cession,
  3025.                         'urlList' => $urlList,
  3026.                         'urlRetourList' => $urlRetourList,
  3027.                         'string_params' => $string_params,
  3028.                         'previousAnnonce' => $previousAnnonce,
  3029.                         'nextAnnonce' => $nextAnnonce,
  3030.                         'index' => $index,
  3031.                         'indexPrevious' => $index 1,
  3032.                         'indexNext' => $index 1,
  3033.                         'fromAlaUne' => $fromAlaUne,
  3034.                         'lang' => $lang,
  3035.                         'type_annonce' => $type_annonce
  3036.             ]);
  3037.         } else {
  3038.             return $this->redirectToRoute('index', ['codePays' => substr($codePays12)]);
  3039.         }
  3040.     }
  3041.     public function elementschiffres(Request $requestTranslationExtension $translationExtensionLocalisationsManagers $localisationManager$idAnnonce$codePays): Response {
  3042.         $user $this->getUser();
  3043.         $login_utilisateur = isset($user) ? $user->_get('login_utilisateur') : null;
  3044.         $annonce $this->am->getAnnonceVendeurById($idAnnonce$login_utilisateur);
  3045.         if (isset($annonce) && 'publique' == $annonce['mode_annonce']) {
  3046.             $lang $request->getSession()->get('lang');
  3047.             $secteurActivite $this->getDoctrine()->getRepository(SecteursActivite::class)->getNomSecteurActivitieById($annonce['id_secteur_activite'])[0];
  3048.             if ('99' == substr($annonce['statuts'], 02)) {
  3049.                 $typeCession $translationExtension->translate("cession d'actif"$lang'''M''');
  3050.                 $type_annonce "actif";
  3051.             } else {
  3052.                 $typeCession $translationExtension->translate("cession d'entreprise"$lang'''M''');
  3053.                 $type_annonce "entreprise";
  3054.             }
  3055.             if (== $annonce['id_raison_cession']) {
  3056.                 $typeCession $translationExtension->translate("levee de fonds"$lang'''M''');
  3057.             }
  3058.             if ('' != $annonce['annee_n']) {
  3059.                 $annee_n_aff $annonce['annee_n'];
  3060.                 $annee_nmoins1_aff $annonce['annee_n'] - 1;
  3061.                 $annee_nmoins2_aff $annonce['annee_n'] - 2;
  3062.                 $annee_nplus1_aff $annonce['annee_n'] + 1;
  3063.             } else {
  3064.                 $annee_n_aff 'n';
  3065.                 $annee_nmoins1_aff 'n-1';
  3066.                 $annee_nmoins2_aff 'n-2';
  3067.                 $annee_nplus1_aff 'n+1';
  3068.             }
  3069.             $ca_nmoinsdeux $annonce['ca_nmoinsdeux'] ? (int) $annonce['ca_nmoinsdeux'] : '';
  3070.             $ca_nmoinsun $annonce['ca_nmoinsun'] ? (int) $annonce['ca_nmoinsun'] : '';
  3071.             $ca_n $annonce['ca_n'] ? $annonce['ca_n'] : '';
  3072.             $ca_nplusun $annonce['ca_nplusun'] ? (int) $annonce['ca_nplusun'] : '';
  3073.             $marge_brute_nmoinsdeux $annonce['marge_brute_nmoinsdeux'] ? (int) $annonce['marge_brute_nmoinsdeux'] : '';
  3074.             $marge_brute_nmoinsun $annonce['marge_brute_nmoinsun'] ? (int) $annonce['marge_brute_nmoinsun'] : '';
  3075.             $marge_brute_n = (int) $annonce['marge_brute_n'] ? $annonce['marge_brute_n'] : '';
  3076.             $marge_brute_nplusun $annonce['marge_brute_nplusun'] ? (int) $annonce['marge_brute_nplusun'] : '';
  3077.             $EBE_nmoinsdeux $annonce['EBE_nmoinsdeux'] ? (int) $annonce['EBE_nmoinsdeux'] : '';
  3078.             $EBE_nmoinsun $annonce['EBE_nmoinsun'] ? (int) $annonce['EBE_nmoinsun'] : '';
  3079.             $EBE_n $annonce['EBE_n'] ? (int) $annonce['EBE_n'] : '';
  3080.             $EBE_nplusun $annonce['EBE_nplusun'] ? (int) $annonce['EBE_nplusun'] : '';
  3081.             $resultat_exploitation_nmoinsdeux $annonce['resultat_exploitation_nmoinsdeux'] ? (int) $annonce['resultat_exploitation_nmoinsdeux'] : '';
  3082.             $resultat_exploitation_nmoinsun $annonce['resultat_exploitation_nmoinsun'] ? (int) $annonce['resultat_exploitation_nmoinsun'] : '';
  3083.             $resultat_exploitation_n $annonce['resultat_exploitation_n'] ? (int) $annonce['resultat_exploitation_n'] : '';
  3084.             $resultat_exploitation_nplusun $annonce['resultat_exploitation_nplusun'] ? (int) $annonce['resultat_exploitation_nplusun'] : '';
  3085.             $resultat_net_nmoinsdeux $annonce['resultat_net_nmoinsdeux'] ? (int) $annonce['resultat_net_nmoinsdeux'] : '';
  3086.             $resultat_net_nmoinsun $annonce['resultat_net_nmoinsun'] ? (int) $annonce['resultat_net_nmoinsun'] : '';
  3087.             $resultat_net_n $annonce['resultat_net_n'] ? (int) $annonce['resultat_net_n'] : '';
  3088.             $resultat_net_nplusun $annonce['resultat_net_nplusun'] ? (int) $annonce['resultat_net_nplusun'] : '';
  3089.             $nb_personnes_nmoinsdeux $annonce['nb_personnes_nmoinsdeux'] ? (int) $annonce['nb_personnes_nmoinsdeux'] : '';
  3090.             $nb_personnes_nmoinsun $annonce['nb_personnes_nmoinsun'] ? (int) $annonce['nb_personnes_nmoinsun'] : '';
  3091.             $nb_personnes_n $annonce['nb_personnes_n'] ? (int) $annonce['nb_personnes_n'] : '';
  3092.             $nb_personnes_nplusun $annonce['nb_personnes_nplusun'] ? (int) $annonce['nb_personnes_nplusun'] : '';
  3093.             // Pour affichage mobile
  3094.             // Si n+1 est renseignée, on affiche n-1, n et n+1
  3095.             if ($ca_nplusun != '' || $marge_brute_nplusun != '' || $EBE_nplusun != '' || $resultat_exploitation_nplusun != '' || $resultat_net_nplusun != '' || $nb_personnes_nplusun != '') {
  3096.                 $annee_un_mobile $annee_nmoins1_aff;
  3097.                 $annee_deux_mobile $annee_n_aff;
  3098.                 $annee_trois_mobile $annee_nplus1_aff;
  3099.                 $ca_un_mobile $ca_nmoinsun;
  3100.                 $ca_deux_mobile $ca_n;
  3101.                 $ca_trois_mobile $ca_nplusun;
  3102.                 $marge_un_mobile $marge_brute_nmoinsun;
  3103.                 $marge_deux_mobile $marge_brute_n;
  3104.                 $marge_trois_mobile $marge_brute_nplusun;
  3105.                 $ebe_un_mobile $EBE_nmoinsun;
  3106.                 $ebe_deux_mobile $EBE_n;
  3107.                 $ebe_trois_mobile $EBE_nplusun;
  3108.                 $resultat_un_mobile $resultat_exploitation_nmoinsun;
  3109.                 $resultat_deux_mobile $resultat_exploitation_n;
  3110.                 $resultat_trois_mobile $resultat_exploitation_nplusun;
  3111.                 $resultat_net_un_mobile $resultat_net_nmoinsun;
  3112.                 $resultat_net_deux_mobile $resultat_net_n;
  3113.                 $resultat_net_trois_mobile $resultat_net_nplusun;
  3114.                 $nb_personne_un_mobile $nb_personnes_nmoinsun;
  3115.                 $nb_personne_deux_mobile $nb_personnes_n;
  3116.                 $nb_personne_trois_mobile $nb_personnes_nplusun;
  3117.             } else {
  3118.                 // Sinon on affiche n-2, n-1 et n
  3119.                 $annee_un_mobile $annee_nmoins2_aff;
  3120.                 $annee_deux_mobile $annee_nmoins1_aff;
  3121.                 $annee_trois_mobile $annee_n_aff;
  3122.                 $ca_un_mobile $ca_nmoinsdeux;
  3123.                 $ca_deux_mobile $ca_nmoinsun;
  3124.                 $ca_trois_mobile $ca_n;
  3125.                 $marge_un_mobile $marge_brute_nmoinsdeux;
  3126.                 $marge_deux_mobile $marge_brute_nmoinsun;
  3127.                 $marge_trois_mobile $marge_brute_n;
  3128.                 $ebe_un_mobile $EBE_nmoinsdeux;
  3129.                 $ebe_deux_mobile $EBE_nmoinsun;
  3130.                 $ebe_trois_mobile $EBE_n;
  3131.                 $resultat_un_mobile $resultat_exploitation_nmoinsdeux;
  3132.                 $resultat_deux_mobile $resultat_exploitation_nmoinsun;
  3133.                 $resultat_trois_mobile $resultat_exploitation_n;
  3134.                 $resultat_net_un_mobile $resultat_net_nmoinsdeux;
  3135.                 $resultat_net_deux_mobile $resultat_net_nmoinsun;
  3136.                 $resultat_net_trois_mobile $resultat_net_n;
  3137.                 $nb_personne_un_mobile $nb_personnes_nmoinsdeux;
  3138.                 $nb_personne_deux_mobile $nb_personnes_nmoinsun;
  3139.                 $nb_personne_trois_mobile $nb_personnes_n;
  3140.             }
  3141.             // Fin affichage mobile
  3142.             $fonds_propres $annonce['fonds_propres'];
  3143.             if (null == $annonce['dettes_financieres']) {
  3144.                 $dettes $annonce['endettement_net_n'];
  3145.                 $intitule_dettes $translationExtension->translate("endettement net"$lang'''M''');
  3146.             } else {
  3147.                 $dettes $annonce['dettes_financieres'];
  3148.                 if ('NR' == $dettes) {
  3149.                     $dettes '';
  3150.                 }
  3151.                 $intitule_dettes $translationExtension->translate("dettes financieres"$lang'''M''');
  3152.             }
  3153.             $tresorerie $annonce['tresorerie_nette'];
  3154.             $http_host $request->server->get('HTTP_HOST');
  3155.             $url substr($request->server->get('REDIRECT_URL'), 0, -4);
  3156.             $canonical $http_host $url;
  3157.             $next $canonical '?onglet=3';
  3158.             $prev $canonical '?onglet=1';
  3159.             $parametres $request->query->all();
  3160.             $parametres ParametersProvider::prepareRechercheAvanceeParameters($parametres);
  3161.             $string_params $this->serializeParams($parametres);
  3162.             $index = (int) $request->query->get('index');
  3163.             $page = (int) $request->query->get('page'1);
  3164.             if ($page 1) {
  3165.                 $string_params .= "&page=" $page;
  3166.             }
  3167.             $urlList $request->query->get('urlList');
  3168.             $urlRetourList $urlList $urlList '?' $string_params null;
  3169.             $previousAnnonce $this->am->getIndexNAnnonceFromCessionList($parametres$type_annonce$page$index 1);
  3170.             $nextAnnonce $this->am->getIndexNAnnonceFromCessionList($parametres$type_annonce$page$index 1);
  3171.             $fromAlaUne $request->query->get('fromAlaUne');
  3172.             $arrayVarsTrans = [];
  3173.             $arrayVarsTrans['titre_annonce'] = $annonce['titre_annonce'];
  3174.             $arrayVarsTrans['nom_localisation'] = $this->donneNomLocalisationPourTitle($annonce);
  3175.             if ($type_annonce == "entreprise") {
  3176.                 $metaTitle 'elements chiffres d\'une reprise - cession d\'entreprise, %$titre_annonce%$ - %$nom_localisation%$ ';
  3177.                 $metaDescription 'consultez les Ã©léments chiffrés de l\'annonce de cession d\'entrprise : %$titre_annonce%$ - %$nom_localisation%$ ';
  3178.             } else {
  3179.                 $metaTitle 'elements chiffres d\'une cession d\'actif, %$titre_annonce%$ - %$nom_localisation%$ ';
  3180.                 $metaDescription 'consultez les Ã©léments chiffrés de l\'annonce de cession d\'actif : %$titre_annonce%$ - %$nom_localisation%$ ';
  3181.             }
  3182.             $metaTag $this->metaTag
  3183.                     ->setTitle($translationExtension->translate($metaTitle$lang"""M"""$arrayVarsTrans))
  3184.                     ->setDescription($translationExtension->translate($metaDescription$lang"""M"""$arrayVarsTrans))
  3185.                     ->setCanonical($canonical)
  3186.                     ->setPrev($prev)
  3187.                     ->setNext($next);
  3188.             return $this->render('reprendre_entreprise/elements_chiffres.html.twig', [
  3189.                         'metaTag' => $metaTag,
  3190.                         'annonce' => $annonce,
  3191.                         'secteurActivite' => $secteurActivite,
  3192.                         'typeCession' => $typeCession,
  3193.                         'annee_nmoins2_aff' => $annee_nmoins2_aff,
  3194.                         'annee_nmoins1_aff' => $annee_nmoins1_aff,
  3195.                         'annee_n_aff' => $annee_n_aff,
  3196.                         'annee_nplus1_aff' => $annee_nplus1_aff,
  3197.                         'ca_nmoinsdeux' => $ca_nmoinsdeux,
  3198.                         'ca_nmoinsun' => $ca_nmoinsun,
  3199.                         'ca_n' => $ca_n,
  3200.                         'ca_nplusun' => $ca_nplusun,
  3201.                         'marge_brute_nmoinsdeux' => $marge_brute_nmoinsdeux,
  3202.                         'marge_brute_nmoinsun' => $marge_brute_nmoinsun,
  3203.                         'marge_brute_n' => $marge_brute_n,
  3204.                         'marge_brute_nplusun' => $marge_brute_nplusun,
  3205.                         'EBE_nmoinsdeux' => $EBE_nmoinsdeux,
  3206.                         'EBE_nmoinsun' => $EBE_nmoinsun,
  3207.                         'EBE_n' => $EBE_n,
  3208.                         'EBE_nplusun' => $EBE_nplusun,
  3209.                         'resultat_exploitation_nmoinsdeux' => $resultat_exploitation_nmoinsdeux,
  3210.                         'resultat_exploitation_nmoinsun' => $resultat_exploitation_nmoinsun,
  3211.                         'resultat_exploitation_n' => $resultat_exploitation_n,
  3212.                         'resultat_exploitation_nplusun' => $resultat_exploitation_nplusun,
  3213.                         'resultat_net_nmoinsdeux' => $resultat_net_nmoinsdeux,
  3214.                         'resultat_net_nmoinsun' => $resultat_net_nmoinsun,
  3215.                         'resultat_net_n' => $resultat_net_n,
  3216.                         'resultat_net_nplusun' => $resultat_net_nplusun,
  3217.                         'nb_personnes_nmoinsdeux' => $nb_personnes_nmoinsdeux,
  3218.                         'nb_personnes_nmoinsun' => $nb_personnes_nmoinsun,
  3219.                         'nb_personnes_n' => $nb_personnes_n,
  3220.                         'nb_personnes_nplusun' => $nb_personnes_nplusun,
  3221.                         'annee_un_mobile' => $annee_un_mobile,
  3222.                         'annee_deux_mobile' => $annee_deux_mobile,
  3223.                         'annee_trois_mobile' => $annee_trois_mobile,
  3224.                         'ca_un_mobile' => $ca_un_mobile,
  3225.                         'ca_deux_mobile' => $ca_deux_mobile,
  3226.                         'ca_trois_mobile' => $ca_trois_mobile,
  3227.                         'marge_un_mobile' => $marge_un_mobile,
  3228.                         'marge_deux_mobile' => $marge_deux_mobile,
  3229.                         'marge_trois_mobile' => $marge_trois_mobile,
  3230.                         'ebe_un_mobile' => $ebe_un_mobile,
  3231.                         'ebe_deux_mobile' => $ebe_deux_mobile,
  3232.                         'ebe_trois_mobile' => $ebe_trois_mobile,
  3233.                         'resultat_un_mobile' => $resultat_un_mobile,
  3234.                         'resultat_deux_mobile' => $resultat_deux_mobile,
  3235.                         'resultat_trois_mobile' => $resultat_trois_mobile,
  3236.                         'resultat_net_un_mobile' => $resultat_net_un_mobile,
  3237.                         'resultat_net_deux_mobile' => $resultat_net_deux_mobile,
  3238.                         'resultat_net_trois_mobile' => $resultat_net_trois_mobile,
  3239.                         'nb_personne_un_mobile' => $nb_personne_un_mobile,
  3240.                         'nb_personne_deux_mobile' => $nb_personne_deux_mobile,
  3241.                         'nb_personne_trois_mobile' => $nb_personne_trois_mobile,
  3242.                         'fonds_propres' => $fonds_propres,
  3243.                         'dettes' => $dettes,
  3244.                         'intitule_dettes' => $intitule_dettes,
  3245.                         'tresorerie' => $tresorerie,
  3246.                         'urlList' => $urlList,
  3247.                         'urlRetourList' => $urlRetourList,
  3248.                         'string_params' => $string_params,
  3249.                         'previousAnnonce' => $previousAnnonce,
  3250.                         'nextAnnonce' => $nextAnnonce,
  3251.                         'index' => $index,
  3252.                         'indexPrevious' => $index 1,
  3253.                         'indexNext' => $index 1,
  3254.                         'fromAlaUne' => $fromAlaUne,
  3255.                         'lang' => $lang,
  3256.                         'type_annonce' => $type_annonce
  3257.             ]);
  3258.         } else {
  3259.             return $this->redirectToRoute('index', ['codePays' => substr($codePays12)]);
  3260.         }
  3261.     }
  3262.     public function pointsfortsconcurrence(Request $requestTranslationExtension $translationExtensionLocalisationsManagers $localisationManager$idAnnonce$codePays): Response {
  3263.         $user $this->getUser();
  3264.         $login_utilisateur = isset($user) ? $user->_get('login_utilisateur') : null;
  3265.         $annonce $this->am->getAnnonceVendeurById($idAnnonce$login_utilisateur);
  3266.         if (isset($annonce) && 'publique' == $annonce['mode_annonce']) {
  3267.             $lang $request->getSession()->get('lang');
  3268.             $secteurActivite $this->getDoctrine()->getRepository(SecteursActivite::class)->getNomSecteurActivitieById($annonce['id_secteur_activite'])[0];
  3269.             if ('99' == substr($annonce['statuts'], 02)) {
  3270.                 $typeCession $translationExtension->translate("cession d'actif"$lang'''M''');
  3271.                 $type_annonce "actif";
  3272.             } else {
  3273.                 $typeCession $translationExtension->translate("cession d'entreprise"$lang'''M''');
  3274.                 $type_annonce "entreprise";
  3275.             }
  3276.             if (== $annonce['id_raison_cession']) {
  3277.                 $typeCession $translationExtension->translate("levee de fonds"$lang'''M''');
  3278.             }
  3279.             $points_forts $annonce['points_forts'];
  3280.             $points_faibles $annonce['points_faibles'];
  3281.             $positionnement_marche '' != $annonce['positionnement_marche'] ? $annonce['positionnement_marche'] : $translationExtension->translate("non precise"$lang'''M''');
  3282.             $concurrence $annonce['concurrence'];
  3283.             $http_host $request->server->get('HTTP_HOST');
  3284.             $url substr($request->server->get('REDIRECT_URL'), 0, -4);
  3285.             $canonical $http_host $url;
  3286.             $next $canonical '?onglet=4';
  3287.             $prev $canonical '?onglet=2';
  3288.             $parametres $request->query->all();
  3289.             $parametres ParametersProvider::prepareRechercheAvanceeParameters($parametres);
  3290.             $string_params $this->serializeParams($parametres);
  3291.             $index = (int) $request->query->get('index');
  3292.             $page = (int) $request->query->get('page'1);
  3293.             if ($page 1) {
  3294.                 $string_params .= "&page=" $page;
  3295.             }
  3296.             $urlList $request->query->get('urlList');
  3297.             $urlRetourList $urlList $urlList '?' $string_params null;
  3298.             $previousAnnonce $this->am->getIndexNAnnonceFromCessionList($parametres$type_annonce$page$index 1);
  3299.             $nextAnnonce $this->am->getIndexNAnnonceFromCessionList($parametres$type_annonce$page$index 1);
  3300.             $fromAlaUne $request->query->get('fromAlaUne');
  3301.             $arrayVarsTrans = [];
  3302.             $arrayVarsTrans['titre_annonce'] = $annonce['titre_annonce'];
  3303.             $arrayVarsTrans['nom_localisation'] = $this->donneNomLocalisationPourTitle($annonce);
  3304.             if ($type_annonce == "entreprise") {
  3305.                 $metaTitle 'points forts - points faibles d\'une reprise - cession d\'entreprise, %$titre_annonce%$ - %$nom_localisation%$ ';
  3306.                 $metaDescription 'consultez les points forts et points faibles de l\'annonce de cession d\'entrprise : %$titre_annonce%$ - %$nom_localisation%$ ';
  3307.             } else {
  3308.                 $metaTitle 'points forts - points faibles d\'une cession d\'actif, %$titre_annonce%$ - %$nom_localisation%$ ';
  3309.                 $metaDescription 'consultez les points forts et points faibles de l\'annonce de cession d\'actif : %$titre_annonce%$ - %$nom_localisation%$ ';
  3310.             }
  3311.             $metaTag $this->metaTag
  3312.                     ->setTitle($translationExtension->translate($metaTitle$lang"""M"""$arrayVarsTrans))
  3313.                     ->setDescription($translationExtension->translate($metaDescription$lang"""M"""$arrayVarsTrans))
  3314.                     ->setCanonical($canonical)
  3315.                     ->setPrev($prev)
  3316.                     ->setNext($next);
  3317.             return $this->render('reprendre_entreprise/points_forts_concurrence.html.twig', [
  3318.                         'metaTag' => $metaTag,
  3319.                         'annonce' => $annonce,
  3320.                         'secteurActivite' => $secteurActivite,
  3321.                         'typeCession' => $typeCession,
  3322.                         'points_forts' => $points_forts,
  3323.                         'points_faibles' => $points_faibles,
  3324.                         'positionnement_marche' => $positionnement_marche,
  3325.                         'concurrence' => $concurrence,
  3326.                         'urlList' => $urlList,
  3327.                         'urlRetourList' => $urlRetourList,
  3328.                         'string_params' => $string_params,
  3329.                         'previousAnnonce' => $previousAnnonce,
  3330.                         'nextAnnonce' => $nextAnnonce,
  3331.                         'index' => $index,
  3332.                         'indexPrevious' => $index 1,
  3333.                         'indexNext' => $index 1,
  3334.                         'fromAlaUne' => $fromAlaUne,
  3335.                         'lang' => $lang,
  3336.                         'type_annonce' => $type_annonce
  3337.             ]);
  3338.         } else {
  3339.             return $this->redirectToRoute('index', ['codePays' => substr($codePays12)]);
  3340.         }
  3341.     }
  3342.     public function infoscession(Request $requestTranslationExtension $translationExtensionLocalisationsManagers $localisationManager$idAnnonce$codePays): Response {
  3343.         $user $this->getUser();
  3344.         $login_utilisateur = isset($user) ? $user->_get('login_utilisateur') : null;
  3345.         $annonce $this->am->getAnnonceVendeurById($idAnnonce$login_utilisateur);
  3346.         $hasServiceSimuElite false;
  3347.         if (!empty($user)) {
  3348.             $hasServiceSimuElite $this->dm->checkIfThisUserHasDroitService($user, [5881]); // 58 = similateur reprise 81 82 fusacq elite
  3349.         }
  3350.         if (isset($annonce) && 'publique' == $annonce['mode_annonce']) {
  3351.             $lang $request->getSession()->get('lang');
  3352.             $secteurActivite $this->getDoctrine()->getRepository(SecteursActivite::class)->getNomSecteurActivitieById($annonce['id_secteur_activite'])[0];
  3353.             if ('99' == substr($annonce['statuts'], 02)) {
  3354.                 $typeCession $translationExtension->translate("cession d'actif"$lang'''M''');
  3355.                 $type_annonce "actif";
  3356.             } else {
  3357.                 $typeCession $translationExtension->translate("cession d'entreprise"$lang'''M''');
  3358.                 $type_annonce "entreprise";
  3359.             }
  3360.             if (== $annonce['id_raison_cession']) {
  3361.                 $typeCession $translationExtension->translate("levee de fonds"$lang'''M''');
  3362.             }
  3363.             $prix_cession = (int) $annonce['prix_cession'];
  3364.             $redressement_judiciaire $annonce['redressement_judiciaire'];
  3365.             $apport_fp_min $annonce['apport_fp_min'];
  3366.             $http_host $request->server->get('HTTP_HOST');
  3367.             $url substr($request->server->get('REDIRECT_URL'), 0, -4);
  3368.             $canonical $http_host $url;
  3369.             $next $canonical '?onglet=5';
  3370.             $prev $canonical '?onglet=3';
  3371.             $parametres $request->query->all();
  3372.             $parametres ParametersProvider::prepareRechercheAvanceeParameters($parametres);
  3373.             $string_params $this->serializeParams($parametres);
  3374.             $index = (int) $request->query->get('index');
  3375.             $page = (int) $request->query->get('page'1);
  3376.             if ($page 1) {
  3377.                 $string_params .= "&page=" $page;
  3378.             }
  3379.             $urlList $request->query->get('urlList');
  3380.             $urlRetourList $urlList $urlList '?' $string_params null;
  3381.             $previousAnnonce $this->am->getIndexNAnnonceFromCessionList($parametres$type_annonce$page$index 1);
  3382.             $nextAnnonce $this->am->getIndexNAnnonceFromCessionList($parametres$type_annonce$page$index 1);
  3383.             $fromAlaUne $request->query->get('fromAlaUne');
  3384.             $arrayVarsTrans = [];
  3385.             $arrayVarsTrans['titre_annonce'] = $annonce['titre_annonce'];
  3386.             $arrayVarsTrans['nom_localisation'] = $this->donneNomLocalisationPourTitle($annonce);
  3387.             if ($type_annonce == "entreprise") {
  3388.                 $metaTitle 'complément d\'information d\'une reprise - cession d\'entreprise, %$titre_annonce%$ - %$nom_localisation%$ ';
  3389.                 $metaDescription 'consultez les Ã©léments complémentaires de l\'annonce de cession d\'entrprise : %$titre_annonce%$ - %$nom_localisation%$ ';
  3390.             } else {
  3391.                 $metaTitle 'complément d\'information d\'une cession d\'actif, %$titre_annonce%$ - %$nom_localisation%$ ';
  3392.                 $metaDescription 'consultez les Ã©léments complémentaires de l\'annonce de cession d\'actif : %$titre_annonce%$ - %$nom_localisation%$ ';
  3393.             }
  3394.             $metaTag $this->metaTag
  3395.                     ->setTitle($translationExtension->translate($metaTitle$lang"""M"""$arrayVarsTrans))
  3396.                     ->setDescription($translationExtension->translate($metaDescription$lang"""M"""$arrayVarsTrans))
  3397.                     ->setCanonical($canonical)
  3398.                     ->setPrev($prev)
  3399.                     ->setNext($next);
  3400.             return $this->render('reprendre_entreprise/infos_cession.html.twig', [
  3401.                         'metaTag' => $metaTag,
  3402.                         'annonce' => $annonce,
  3403.                         'secteurActivite' => $secteurActivite,
  3404.                         'typeCession' => $typeCession,
  3405.                         'prix_cession' => $prix_cession,
  3406.                         'redressement_judiciaire' => $redressement_judiciaire,
  3407.                         'apport_fp_min' => $apport_fp_min,
  3408.                         'urlList' => $urlList,
  3409.                         'urlRetourList' => $urlRetourList,
  3410.                         'string_params' => $string_params,
  3411.                         'previousAnnonce' => $previousAnnonce,
  3412.                         'nextAnnonce' => $nextAnnonce,
  3413.                         'index' => $index,
  3414.                         'indexPrevious' => $index 1,
  3415.                         'indexNext' => $index 1,
  3416.                         'fromAlaUne' => $fromAlaUne,
  3417.                         'lang' => $lang,
  3418.                         'type_annonce' => $type_annonce,
  3419.                         'hasServiceSimuElite' => $hasServiceSimuElite
  3420.             ]);
  3421.         } else {
  3422.             return $this->redirectToRoute('index', ['codePays' => substr($codePays12)]);
  3423.         }
  3424.     }
  3425.     public function infossectorielles(ActualitesManagers $actuManagerRequest $requestTranslationExtension $translationExtensionLocalisationsManagers $localisationManager$idAnnonce$codePays): Response {
  3426.         $user $this->getUser();
  3427.         $login_utilisateur = isset($user) ? $user->_get('login_utilisateur') : null;
  3428.         $annonce $this->am->getAnnonceVendeurById($idAnnonce$login_utilisateur);
  3429.         if (isset($annonce) && 'publique' == $annonce['mode_annonce']) {
  3430.             $lang $request->getSession()->get('lang');
  3431.             $secteurActivite $this->getDoctrine()->getRepository(SecteursActivite::class)->getNomSecteurActivitieById($annonce['id_secteur_activite'])[0];
  3432.             if ('99' == substr($annonce['statuts'], 02)) {
  3433.                 $typeCession $translationExtension->translate("cession d'actif"$lang'''M''');
  3434.                 $type_annonce "actif";
  3435.             } else {
  3436.                 $typeCession $translationExtension->translate("cession d'entreprise"$lang'''M''');
  3437.                 $type_annonce "entreprise";
  3438.             }
  3439.             if (== $annonce['id_raison_cession']) {
  3440.                 $typeCession $translationExtension->translate("levee de fonds"$lang'''M''');
  3441.             }
  3442.             $dernieresActualitesSecteur $actuManager->getDernieresActualitesSecteurAnnonceVendeur($idAnnonce);
  3443.             $http_host $request->server->get('HTTP_HOST');
  3444.             $url substr($request->server->get('REDIRECT_URL'), 0, -4);
  3445.             $canonical $http_host $url;
  3446.             $next $canonical '?onglet=6';
  3447.             $prev $canonical '?onglet=4';
  3448.             $parametres $request->query->all();
  3449.             $parametres ParametersProvider::prepareRechercheAvanceeParameters($parametres);
  3450.             $string_params $this->serializeParams($parametres);
  3451.             $index = (int) $request->query->get('index');
  3452.             $page = (int) $request->query->get('page'1);
  3453.             if ($page 1) {
  3454.                 $string_params .= "&page=" $page;
  3455.             }
  3456.             $urlList $request->query->get('urlList');
  3457.             $urlRetourList $urlList $urlList '?' $string_params null;
  3458.             $previousAnnonce $this->am->getIndexNAnnonceFromCessionList($parametres$type_annonce$page$index 1);
  3459.             $nextAnnonce $this->am->getIndexNAnnonceFromCessionList($parametres$type_annonce$page$index 1);
  3460.             $fromAlaUne $request->query->get('fromAlaUne');
  3461.             $arrayVarsTrans = [];
  3462.             $arrayVarsTrans['titre_annonce'] = $annonce['titre_annonce'];
  3463.             $arrayVarsTrans['nom_localisation'] = $this->donneNomLocalisationPourTitle($annonce);
  3464.             if ($type_annonce == "entreprise") {
  3465.                 $metaTitle 'informations sectorielles d\'une reprise - cession d\'entreprise, %$titre_annonce%$ - %$nom_localisation%$ ';
  3466.                 $metaDescription 'consultez les informations sectorielles de l\'annonce de cession d\'entrprise : %$titre_annonce%$ - %$nom_localisation%$ ';
  3467.             } else {
  3468.                 $metaTitle 'informations sectorielles d\'une cession d\'actif, %$titre_annonce%$ - %$nom_localisation%$ ';
  3469.                 $metaDescription 'consultez les informations sectorielles de l\'annonce de cession d\'actif : %$titre_annonce%$ - %$nom_localisation%$ ';
  3470.             }
  3471.             $metaTag $this->metaTag
  3472.                     ->setTitle($translationExtension->translate($metaTitle$lang"""M"""$arrayVarsTrans))
  3473.                     ->setDescription($translationExtension->translate($metaDescription$lang"""M"""$arrayVarsTrans))
  3474.                     ->setCanonical($canonical)
  3475.                     ->setPrev($prev)
  3476.                     ->setNext($next);
  3477.             return $this->render('reprendre_entreprise/infos_sectorielles.html.twig', [
  3478.                         'metaTag' => $metaTag,
  3479.                         'annonce' => $annonce,
  3480.                         'secteurActivite' => $secteurActivite,
  3481.                         'typeCession' => $typeCession,
  3482.                         'dernieresActualitesSecteur' => $dernieresActualitesSecteur,
  3483.                         'urlList' => $urlList,
  3484.                         'urlRetourList' => $urlRetourList,
  3485.                         'string_params' => $string_params,
  3486.                         'previousAnnonce' => $previousAnnonce,
  3487.                         'nextAnnonce' => $nextAnnonce,
  3488.                         'index' => $index,
  3489.                         'indexPrevious' => $index 1,
  3490.                         'indexNext' => $index 1,
  3491.                         'fromAlaUne' => $fromAlaUne,
  3492.                         'lang' => $lang,
  3493.                         'type_annonce' => $type_annonce
  3494.             ]);
  3495.         } else {
  3496.             return $this->redirectToRoute('index', ['codePays' => substr($codePays12)]);
  3497.         }
  3498.     }
  3499.     public function transactionscomparables(Request $requestTranslationExtension $translationExtensionLocalisationsManagers $localisationManagerValorisationsManagers $vm$idAnnonce$codePays): Response {
  3500.         $user $this->getUser();
  3501.         $login_utilisateur = isset($user) ? $user->_get('login_utilisateur') : null;
  3502.         $annonce $this->am->getAnnonceVendeurById($idAnnonce$login_utilisateur);
  3503.         if (isset($annonce) && 'publique' == $annonce['mode_annonce']) {
  3504.             $lang $request->getSession()->get('lang');
  3505.             $secteurActivite $this->getDoctrine()->getRepository(SecteursActivite::class)->getNomSecteurActivitieById($annonce['id_secteur_activite'])[0];
  3506.             if ('99' == substr($annonce['statuts'], 02)) {
  3507.                 $typeCession $translationExtension->translate("cession d'actif"$lang'''M''');
  3508.                 $type_annonce "actif";
  3509.             } else {
  3510.                 $typeCession $translationExtension->translate("cession d'entreprise"$lang'''M''');
  3511.                 $type_annonce "entreprise";
  3512.             }
  3513.             if (== $annonce['id_raison_cession']) {
  3514.                 $typeCession $translationExtension->translate("levee de fonds"$lang'''M''');
  3515.             }
  3516.             $valorisations $vm->donne_valorisations_du_secteur($idAnnonce);
  3517.             $http_host $request->server->get('HTTP_HOST');
  3518.             $url substr($request->server->get('REDIRECT_URL'), 0, -4);
  3519.             $canonical $http_host $url;
  3520.             $next $canonical '?onglet=7';
  3521.             $prev $canonical '?onglet=5';
  3522.             $parametres $request->query->all();
  3523.             $parametres ParametersProvider::prepareRechercheAvanceeParameters($parametres);
  3524.             $string_params $this->serializeParams($parametres);
  3525.             $index = (int) $request->query->get('index');
  3526.             $page = (int) $request->query->get('page'1);
  3527.             if ($page 1) {
  3528.                 $string_params .= "&page=" $page;
  3529.             }
  3530.             $urlList $request->query->get('urlList');
  3531.             $urlRetourList $urlList $urlList '?' $string_params null;
  3532.             $previousAnnonce $this->am->getIndexNAnnonceFromCessionList($parametres$type_annonce$page$index 1);
  3533.             $nextAnnonce $this->am->getIndexNAnnonceFromCessionList($parametres$type_annonce$page$index 1);
  3534.             $fromAlaUne $request->query->get('fromAlaUne');
  3535.             $arrayVarsTrans = [];
  3536.             $arrayVarsTrans['titre_annonce'] = $annonce['titre_annonce'];
  3537.             $arrayVarsTrans['nom_localisation'] = $this->donneNomLocalisationPourTitle($annonce);
  3538.             if ($type_annonce == "entreprise") {
  3539.                 $metaTitle 'transactions comparables d\'une reprise - cession d\'entreprise, %$titre_annonce%$ - %$nom_localisation%$ ';
  3540.                 $metaDescription 'consultez les transactions comparables de l\'annonce de cession d\'entrprise : %$titre_annonce%$ - %$nom_localisation%$ ';
  3541.             } else {
  3542.                 $metaTitle 'transactions comparables d\'une cession d\'actif, %$titre_annonce%$ - %$nom_localisation%$ ';
  3543.                 $metaDescription 'consultez les transactions comparables de l\'annonce de cession d\'actif : %$titre_annonce%$ - %$nom_localisation%$ ';
  3544.             }
  3545.             $metaTag $this->metaTag
  3546.                     ->setTitle($translationExtension->translate($metaTitle$lang"""M"""$arrayVarsTrans))
  3547.                     ->setDescription($translationExtension->translate($metaDescription$lang"""M"""$arrayVarsTrans))
  3548.                     ->setCanonical($canonical)
  3549.                     ->setPrev($prev)
  3550.                     ->setNext($next);
  3551.             return $this->render('reprendre_entreprise/transactions_comparables.html.twig', [
  3552.                         'metaTag' => $metaTag,
  3553.                         'annonce' => $annonce,
  3554.                         'secteurActivite' => $secteurActivite,
  3555.                         'typeCession' => $typeCession,
  3556.                         'valorisations' => $valorisations,
  3557.                         'urlList' => $urlList,
  3558.                         'urlRetourList' => $urlRetourList,
  3559.                         'string_params' => $string_params,
  3560.                         'previousAnnonce' => $previousAnnonce,
  3561.                         'nextAnnonce' => $nextAnnonce,
  3562.                         'index' => $index,
  3563.                         'indexPrevious' => $index 1,
  3564.                         'indexNext' => $index 1,
  3565.                         'fromAlaUne' => $fromAlaUne,
  3566.                         'lang' => $lang,
  3567.                         'type_annonce' => $type_annonce
  3568.             ]);
  3569.         } else {
  3570.             return $this->redirectToRoute('index', ['codePays' => substr($codePays12)]);
  3571.         }
  3572.     }
  3573.     public function contacterdeposant(Request $requestTranslationExtension $translationExtensionLocalisationsManagers $localisationManagerValorisationsManagers $vm$idAnnonce$codePays): Response {
  3574.         $user $this->getUser();
  3575.         $login_utilisateur = isset($user) ? $user->_get('login_utilisateur') : null;
  3576.         $annonce $this->am->getAnnonceVendeurById($idAnnonce$login_utilisateur);
  3577.         $session $request->getSession();
  3578.         $lignePanier null;
  3579.         $dejaCommande null;
  3580.         $forfaitAUtiliser null;
  3581.         $hasForfait false;
  3582.         if (isset($annonce) && 'publique' == $annonce['mode_annonce']) {
  3583.             $lang $request->getSession()->get('lang');
  3584.             $secteurActivite $this->getDoctrine()->getRepository(SecteursActivite::class)->getNomSecteurActivitieById($annonce['id_secteur_activite'])[0];
  3585.             if ('99' == substr($annonce['statuts'], 02)) {
  3586.                 $typeCession $translationExtension->translate("cession d'actif"$lang'''M''');
  3587.                 $type_annonce "actif";
  3588.                 $liste_id_annonces $request->getSession()->get('liste_id_annonce_cession_actif');
  3589.                 $typeAnnoncePanier "annonce_V_actif";
  3590.             } else {
  3591.                 $typeCession $translationExtension->translate("cession d'entreprise"$lang'''M''');
  3592.                 $type_annonce "entreprise";
  3593.                 $liste_id_annonces $request->getSession()->get('liste_id_annonce_cession_entreprise');
  3594.                 $typeAnnoncePanier "annonce_V_cession";
  3595.             }
  3596.             if (== $annonce['id_raison_cession']) {
  3597.                 $typeCession $translationExtension->translate("levee de fonds"$lang'''M''');
  3598.                 $typeAnnoncePanier "annonce_V_levee_de_fonds";
  3599.             }
  3600.             if ($session) {
  3601.                 $userIdentity $session->get('user');
  3602.                 if (!empty($userIdentity)) {
  3603.                     $lignePanier $this->em->getRepository(Panier::class)->findOneBy(
  3604.                             ['login_utilisateur' => $userIdentity->_get('login_utilisateur'), "type_object" => $typeAnnoncePanier"id_object" => $idAnnonce]
  3605.                     );
  3606.                     $dejaCommande $this->cm->hasAnnonceCommande($userIdentity->_get('login_utilisateur'), $idAnnonce'vendeur');
  3607.                     $forfaitAUtiliser $this->dm->getFrofaitAnnonceToUse($userIdentity);
  3608.                     if (!empty($forfaitAUtiliser)) {
  3609.                         $hasForfait true;
  3610.                     }
  3611.                 }
  3612.             }
  3613.             $valorisations $vm->donne_valorisations_du_secteur($idAnnonce);
  3614.             $http_host $request->server->get('HTTP_HOST');
  3615.             $url substr($request->server->get('REDIRECT_URL'), 0, -4);
  3616.             $canonical $http_host $url;
  3617.             $prev $canonical '?onglet=6';
  3618.             $parametres $request->query->all();
  3619.             $parametres ParametersProvider::prepareRechercheAvanceeParameters($parametres);
  3620.             $string_params $this->serializeParams($parametres);
  3621.             $page $request->query->get('page'1);
  3622.             if ($page != null) {
  3623.                 $string_params .= "&page=" $page;
  3624.             }
  3625.             $urlList $request->query->get('urlList');
  3626.             $urlRetourList $urlList $urlList '?' $string_params null;
  3627.             $index = (int) $request->query->get('index');
  3628.             $previousAnnonce $this->am->getIndexNAnnonceFromCessionList($parametres$type_annonce$page$index 1);
  3629.             $nextAnnonce $this->am->getIndexNAnnonceFromCessionList($parametres$type_annonce$page$index 1);
  3630.             $fromAlaUne $request->query->get('fromAlaUne');
  3631.             $arrayVarsTrans = [];
  3632.             $arrayVarsTrans['titre_annonce'] = $annonce['titre_annonce'];
  3633.             $arrayVarsTrans['nom_localisation'] = $this->donneNomLocalisationPourTitle($annonce);
  3634.             if ($type_annonce == "entreprise") {
  3635.                 $metaTitle 'contacter le déposant d\'une reprise - cession d\'entreprise, %$titre_annonce%$ - %$nom_localisation%$ ';
  3636.                 $metaDescription 'contactez le déposant de l\'annonce de cession d\'entrprise : %$titre_annonce%$ - %$nom_localisation%$ ';
  3637.             } else {
  3638.                 $metaTitle 'contacter le déposant d\'une annonce de cession d\'actif, %$titre_annonce%$ - %$nom_localisation%$ ';
  3639.                 $metaDescription 'contactez le déposant de l\'annonce de cession d\'actif : %$titre_annonce%$ - %$nom_localisation%$ ';
  3640.             }
  3641.             $metaTag $this->metaTag
  3642.                     ->setTitle($translationExtension->translate($metaTitle$lang"""M"""$arrayVarsTrans))
  3643.                     ->setDescription($translationExtension->translate($metaDescription$lang"""M"""$arrayVarsTrans))
  3644.                     ->setCanonical($canonical)
  3645.                     ->setPrev($prev);
  3646.             return $this->render('reprendre_entreprise/contacter_deposant.html.twig', [
  3647.                         'metaTag' => $metaTag,
  3648.                         'annonce' => $annonce,
  3649.                         'secteurActivite' => $secteurActivite,
  3650.                         'typeCession' => $typeCession,
  3651.                         'valorisations' => $valorisations,
  3652.                         'urlList' => $urlList,
  3653.                         'urlRetourList' => $urlRetourList,
  3654.                         'string_params' => $string_params,
  3655.                         'previousAnnonce' => $previousAnnonce,
  3656.                         'nextAnnonce' => $nextAnnonce,
  3657.                         'fromAlaUne' => $fromAlaUne,
  3658.                         'lignePanier' => $lignePanier,
  3659.                         'dejaCommande' => $dejaCommande,
  3660.                         'forfaitAUtiliser' => $forfaitAUtiliser,
  3661.                         'hasForfait' => $hasForfait,
  3662.                         'lang' => $lang,
  3663.                         'typeAnnoncePanier' => $typeAnnoncePanier,
  3664.                         'index' => $index,
  3665.             ]);
  3666.         } else {
  3667.             return $this->redirectToRoute('index', ['codePays' => substr($codePays12)]);
  3668.         }
  3669.     }
  3670.     public function imprimerAnnonceVendeur($idAnnonce$codePays$langTranslationExtension $translationExtensionCommandesRepository $crTelephoneInternational $tiCommandesManagers $cm) {
  3671.         $user $this->getUser();
  3672.         $annonce $this->am->getAnnonceVendeurById($idAnnoncenullfalse);
  3673.         $coordonnees = [];
  3674.         $annee_passee false// Variable pour savoir si 1 an est passé depuis la commande, si oui, on n'affiche pas les coordonnées complètes (RGPD)
  3675.         $hasServiceElite false;
  3676.         if (empty($user) && 'publique_elite' == $annonce['mode_annonce']) {
  3677.             $this->denyAccessUnlessGranted('ROLE_USER');
  3678.         }
  3679.         if ($annonce == null) {
  3680.             throw $this->createNotFoundException('Annonce introuvable');
  3681.         }
  3682.         if (!empty($user)) {
  3683.             $hasServiceElite $this->dm->checkIfThisUserHasDroitService($user, [81]); // 58 = similateur reprise 81 82 fusacq elite
  3684.         }
  3685.         // Si l'utilisateur a déjà commandé cette annonce
  3686.         if ($user && $cr->hasAnnonceCommande($user->_get('login_utilisateur'), $idAnnonce"vendeur")) {
  3687.             $coordonnees['nom_contact'] = $annonce['nom_contact'];
  3688.             $coordonnees['email'] = $annonce['email'];
  3689.             $indicatif $annonce['indicatif_telephone'] ? $annonce['indicatif_telephone'] : "33";
  3690.             $coordonnees['telephone'] = $annonce['telephone'] ? $ti->getInternationalPhone($annonce['telephone'], $indicatif)['affichage'] : null;
  3691.             $coordonnees['commentaires'] = $annonce['commentaires'];
  3692.             $commande $cm->getArrayCommandeByIdElement($idAnnonce"vendeur");
  3693.             if ($commande) {
  3694.                 $annee_passee $commande['annee_passee'];
  3695.             }
  3696.         } elseif ('publique' != $annonce['mode_annonce'] && (!$hasServiceElite || 'publique_elite' != $annonce['mode_annonce'])) {
  3697.             throw $this->createNotFoundException('Annonce introuvable');
  3698.         }
  3699.         $idStatut $annonce['statuts'];
  3700.         $nom_type_cession $translationExtension->translate("forme juridique"$lang'''M''');
  3701.         $tag_loc $translationExtension->translate("localisation du siege"$lang'''M''');
  3702.         $label_bloc $translationExtension->translate("fiche d'identite de la societe"$lang'''M''');
  3703.         if ('99' == substr($idStatut02)) {
  3704.             $nom_type_cession $translationExtension->translate("type d'actif"$lang'''M''');
  3705.             $tag_loc $translationExtension->translate("localisation"$lang'''M''');
  3706.             $label_bloc $translationExtension->translate("designation de l'actif"$lang'''M''');
  3707.         }
  3708.         if ('' != $annonce['annee_n']) {
  3709.             $annee_n_aff $annonce['annee_n'];
  3710.             $annee_nmoins1_aff $annonce['annee_n'] - 1;
  3711.             $annee_nmoins2_aff $annonce['annee_n'] - 2;
  3712.             $annee_nplus1_aff $annonce['annee_n'] + 1;
  3713.         } else {
  3714.             $annee_n_aff 'n';
  3715.             $annee_nmoins1_aff 'n-1';
  3716.             $annee_nmoins2_aff 'n-2';
  3717.             $annee_nplus1_aff 'n+1';
  3718.         }
  3719.         $ca_nmoinsdeux $annonce['ca_nmoinsdeux'] ? (int) $annonce['ca_nmoinsdeux'] : '';
  3720.         $ca_nmoinsun $annonce['ca_nmoinsun'] ? (int) $annonce['ca_nmoinsun'] : '';
  3721.         $ca_n $annonce['ca_n'] ? $annonce['ca_n'] : '';
  3722.         $ca_nplusun $annonce['ca_nplusun'] ? (int) $annonce['ca_nplusun'] : '';
  3723.         $marge_brute_nmoinsdeux $annonce['marge_brute_nmoinsdeux'] ? (int) $annonce['marge_brute_nmoinsdeux'] : '';
  3724.         $marge_brute_nmoinsun $annonce['marge_brute_nmoinsun'] ? (int) $annonce['marge_brute_nmoinsun'] : '';
  3725.         $marge_brute_n = (int) $annonce['marge_brute_n'] ? $annonce['marge_brute_n'] : '';
  3726.         $marge_brute_nplusun $annonce['marge_brute_nplusun'] ? (int) $annonce['marge_brute_nplusun'] : '';
  3727.         $EBE_nmoinsdeux $annonce['EBE_nmoinsdeux'] ? (int) $annonce['EBE_nmoinsdeux'] : '';
  3728.         $EBE_nmoinsun $annonce['EBE_nmoinsun'] ? (int) $annonce['EBE_nmoinsun'] : '';
  3729.         $EBE_n $annonce['EBE_n'] ? (int) $annonce['EBE_n'] : '';
  3730.         $EBE_nplusun $annonce['EBE_nplusun'] ? (int) $annonce['EBE_nplusun'] : '';
  3731.         $resultat_exploitation_nmoinsdeux $annonce['resultat_exploitation_nmoinsdeux'] ? (int) $annonce['resultat_exploitation_nmoinsdeux'] : '';
  3732.         $resultat_exploitation_nmoinsun $annonce['resultat_exploitation_nmoinsun'] ? (int) $annonce['resultat_exploitation_nmoinsun'] : '';
  3733.         $resultat_exploitation_n $annonce['resultat_exploitation_n'] ? (int) $annonce['resultat_exploitation_n'] : '';
  3734.         $resultat_exploitation_nplusun $annonce['resultat_exploitation_nplusun'] ? (int) $annonce['resultat_exploitation_nplusun'] : '';
  3735.         $resultat_net_nmoinsdeux $annonce['resultat_net_nmoinsdeux'] ? (int) $annonce['resultat_net_nmoinsdeux'] : '';
  3736.         $resultat_net_nmoinsun $annonce['resultat_net_nmoinsun'] ? (int) $annonce['resultat_net_nmoinsun'] : '';
  3737.         $resultat_net_n $annonce['resultat_net_n'] ? (int) $annonce['resultat_net_n'] : '';
  3738.         $resultat_net_nplusun $annonce['resultat_net_nplusun'] ? (int) $annonce['resultat_net_nplusun'] : '';
  3739.         $nb_personnes_nmoinsdeux $annonce['nb_personnes_nmoinsdeux'] ? (int) $annonce['nb_personnes_nmoinsdeux'] : '';
  3740.         $nb_personnes_nmoinsun $annonce['nb_personnes_nmoinsun'] ? (int) $annonce['nb_personnes_nmoinsun'] : '';
  3741.         $nb_personnes_n $annonce['nb_personnes_n'] ? (int) $annonce['nb_personnes_n'] : '';
  3742.         $nb_personnes_nplusun $annonce['nb_personnes_nplusun'] ? (int) $annonce['nb_personnes_nplusun'] : '';
  3743.         if (is_numeric($annonce['fonds_propres'])) {
  3744.             $fonds_propres number_format($annonce['fonds_propres'], 0','' ');
  3745.         } else {
  3746.             $fonds_propres $annonce['fonds_propres'];
  3747.         }
  3748.         if (null == $annonce['dettes_financieres']) {
  3749.             if (is_numeric($annonce['endettement_net_n'])) {
  3750.                 $dettes number_format($annonce['endettement_net_n'], 0','' ');
  3751.             } else {
  3752.                 $dettes $annonce['endettement_net_n'];
  3753.             }
  3754.             $intitule_dettes $translationExtension->translate("endettement net"$lang'''M''');
  3755.         } else {
  3756.             $dettes $annonce['dettes_financieres'];
  3757.             if ('NR' == $dettes) {
  3758.                 $dettes '';
  3759.             }
  3760.             $intitule_dettes $translationExtension->translate("dettes financieres"$lang'''M''');
  3761.         }
  3762.         if (is_numeric($annonce['tresorerie_nette'])) {
  3763.             $tresorerie number_format($annonce['tresorerie_nette'], 0','' ');
  3764.         } else {
  3765.             $tresorerie $annonce['tresorerie_nette'];
  3766.         }
  3767.         $type_cession $annonce['type_cession'];
  3768.         $type_cession_precise true;
  3769.         if ('' == $type_cession) {
  3770.             $type_cession $translationExtension->translate("non precise"$lang'''m''');
  3771.             $type_cession_precise false;
  3772.         } elseif ('indifferent' == mb_strtolower($type_cession)) {
  3773.             $type_cession $translationExtension->translate("minoritaire ou majoritaire"$lang'''M''');
  3774.         }
  3775.         $raisonsCession $this->getDoctrine()->getRepository(RaisonsCession::class)->findOneBy(['id_raison_cession' => $annonce['id_raison_cession']]);
  3776.         if (isset($raisonsCession)) {
  3777.             $nom_raison_cession $raisonsCession->nom_raison_cession;
  3778.         } else {
  3779.             $nom_raison_cession $translationExtension->translate("non précisé"$lang'''M''');
  3780.         }
  3781.         if ($annonce['raison_cession'] != "") {
  3782.             $raison_cession $annonce['raison_cession'];
  3783.         } else {
  3784.             $raison_cession $translationExtension->translate("non précisé"$lang'''M''');
  3785.         }
  3786.         if ($annonce['statuts'] != 0) {
  3787.             $statutRepository $this->getDoctrine()->getRepository(Statuts::class);
  3788.             $statut $statutRepository->getStatusByIdStatut($annonce['statuts']);
  3789.             if ($statut != null) {
  3790.                 $nom_statut $statut->_get('nom_statut');
  3791.             } else {
  3792.                 $nom_statut $translationExtension->translate("non précisé"$lang'''M''');
  3793.             }
  3794.         } else {
  3795.             $nom_statut $translationExtension->translate("non précisé"$lang'''M''');
  3796.         }
  3797.         $indication_anciennete null;
  3798.         if ('' != $annonce['date_creation_societe']) {
  3799.             $anciennete date('Y') - $annonce['date_creation_societe'];
  3800.             if ($anciennete 5) {
  3801.                 $indication_anciennete $translationExtension->translate("moins de 5 ans"$lang'''M''');
  3802.             } else {
  3803.                 if ($anciennete <= 10) {
  3804.                     $indication_anciennete $translationExtension->translate("entre 5 et 10 ans"$lang'''M''');
  3805.                 } else {
  3806.                     $indication_anciennete $translationExtension->translate("plus de 10 ans"$lang'''M''');
  3807.                 }
  3808.             }
  3809.         }
  3810.         $precision_localisation_complementaire null;
  3811.         if ('_99' == substr($annonce['id_region'], -3)) {
  3812.             $precision_localisation_complementaire $translationExtension->translate("region"$lang'''M''');
  3813.         } elseif ('_99' == substr($annonce['id_departement'], -3)) {
  3814.             $precision_localisation_complementaire $translationExtension->translate("departement"$lang'''M''');
  3815.         }
  3816.         if ($annonce["concurrence"] != null) {
  3817.             $concurrence $annonce["concurrence"];
  3818.         } else {
  3819.             $concurrence $translationExtension->translate("non précisé"$lang'''M''');
  3820.         }
  3821.         if ($annonce["positionnement_marche"] != null) {
  3822.             $positionnement_marche $annonce["positionnement_marche"];
  3823.         } else {
  3824.             $positionnement_marche $translationExtension->translate("non précisé"$lang'''M''');
  3825.         }
  3826.         if ($annonce["points_forts"] != null) {
  3827.             $points_forts $annonce["points_forts"];
  3828.         } else {
  3829.             $points_forts $translationExtension->translate("non précisé"$lang'''M''');
  3830.         }
  3831.         $points_faibles $annonce["points_faibles"];
  3832.         $elements_complementaires = [];
  3833.         if (!$annonce['prix_cession']) {
  3834.             $elements_complementaires[] = $translationExtension->translate("prix de cession souhaité : Le vendeur n'a pas souhaité préciser le prix de cession."$lang'''M''');
  3835.             if ($annonce['immobilier_dans_prix_cession'] == "oui") {
  3836.                 $elements_complementaires[] = $translationExtension->translate("l'immobilier est compris dans la cession."$lang'''M''');
  3837.             }
  3838.         } else {
  3839.             $elements_complementaires[] = $translationExtension->translate("prix de cession souhaité"$lang'''M''') . ' ' number_format($annonce['prix_cession'], 0','' ') . "k€";
  3840.             if ($annonce['immobilier_dans_prix_cession'] == "oui") {
  3841.                 $elements_complementaires[] = $translationExtension->translate("l'immobilier est compris dans la cession."$lang'''M''');
  3842.             }
  3843.         }
  3844.         if ($annonce["redressement_judiciaire"] == "oui") {
  3845.             $elements_complementaires[] = $translationExtension->translate('cette société est en redressement judiciaire'$lang'''M''');
  3846.         }
  3847.         if ($annonce["elements_complementaires"] != "") {
  3848.             $elements_complementaires[] = nl2br($annonce["elements_complementaires"]);
  3849.         }
  3850.         $profil_repreneur = [];
  3851.         if ($annonce["profil_repreneur_checkbox"] != null && $annonce["profil_repreneur_recherche"] != "") {
  3852.             $profilRepreneurRecherche trim($annonce["profil_repreneur_checkbox"]);
  3853.             if (strpos($profilRepreneurRecherche"physique") !== false) {
  3854.                 $profil_repreneur[] = $translationExtension->translate('personne physique'$lang'''M''');
  3855.             }
  3856.             if (strpos($profilRepreneurRecherche"morale") !== false) {
  3857.                 $profil_repreneur[] = $translationExtension->translate('personne morale'$lang'''M''');
  3858.             }
  3859.             if (strpos($profilRepreneurRecherche"investissement") !== false) {
  3860.                 $profil_repreneur[] = $translationExtension->translate('investissement'$lang'''M''');
  3861.             }
  3862.         }
  3863.         $apport_fp_min trim($annonce["apport_fp_min"]) ? number_format(trim($annonce["apport_fp_min"]), 0','' ') . " k€" null;
  3864.         $profil_repreneur_recherche $annonce['profil_repreneur_recherche'];
  3865.         $prix_cession number_format($annonce['prix_cession'], 0','' ');
  3866.         return $this->pf->generatePDFviewBrowser(
  3867.                         'templates_pdf/reprendre_entreprise/annonce_vendeur_details.html.twig',
  3868.                         [
  3869.                             'lang' => $lang,
  3870.                             'annonce' => $annonce,
  3871.                             'nom_type_cession' => $nom_type_cession,
  3872.                             'tag_loc' => $tag_loc,
  3873.                             'label_bloc' => $label_bloc,
  3874.                             'nom_statut' => $nom_statut,
  3875.                             'indication_anciennete' => $indication_anciennete,
  3876.                             'annee_nmoins2_aff' => $annee_nmoins2_aff,
  3877.                             'annee_nmoins1_aff' => $annee_nmoins1_aff,
  3878.                             'annee_n_aff' => $annee_n_aff,
  3879.                             'annee_nplus1_aff' => $annee_nplus1_aff,
  3880.                             'ca_nmoinsdeux' => $ca_nmoinsdeux,
  3881.                             'ca_nmoinsun' => $ca_nmoinsun,
  3882.                             'ca_n' => $ca_n,
  3883.                             'ca_nplusun' => $ca_nplusun,
  3884.                             'marge_brute_nmoinsdeux' => $marge_brute_nmoinsdeux,
  3885.                             'marge_brute_nmoinsun' => $marge_brute_nmoinsun,
  3886.                             'marge_brute_n' => $marge_brute_n,
  3887.                             'marge_brute_nplusun' => $marge_brute_nplusun,
  3888.                             'EBE_nmoinsdeux' => $EBE_nmoinsdeux,
  3889.                             'EBE_nmoinsun' => $EBE_nmoinsun,
  3890.                             'EBE_n' => $EBE_n,
  3891.                             'EBE_nplusun' => $EBE_nplusun,
  3892.                             'resultat_exploitation_nmoinsdeux' => $resultat_exploitation_nmoinsdeux,
  3893.                             'resultat_exploitation_nmoinsun' => $resultat_exploitation_nmoinsun,
  3894.                             'resultat_exploitation_n' => $resultat_exploitation_n,
  3895.                             'resultat_exploitation_nplusun' => $resultat_exploitation_nplusun,
  3896.                             'resultat_net_nmoinsdeux' => $resultat_net_nmoinsdeux,
  3897.                             'resultat_net_nmoinsun' => $resultat_net_nmoinsun,
  3898.                             'resultat_net_n' => $resultat_net_n,
  3899.                             'resultat_net_nplusun' => $resultat_net_nplusun,
  3900.                             'nb_personnes_nmoinsdeux' => $nb_personnes_nmoinsdeux,
  3901.                             'nb_personnes_nmoinsun' => $nb_personnes_nmoinsun,
  3902.                             'nb_personnes_n' => $nb_personnes_n,
  3903.                             'nb_personnes_nplusun' => $nb_personnes_nplusun,
  3904.                             'fonds_propres' => $fonds_propres,
  3905.                             'dettes' => $dettes,
  3906.                             'intitule_dettes' => $intitule_dettes,
  3907.                             'tresorerie' => $tresorerie,
  3908.                             'type_cession' => $type_cession,
  3909.                             'nom_raison_cession' => $nom_raison_cession,
  3910.                             'raison_cession' => $raison_cession,
  3911.                             'concurrence' => $concurrence,
  3912.                             'positionnement_marche' => $positionnement_marche,
  3913.                             'points_forts' => $points_forts,
  3914.                             'points_faibles' => $points_faibles,
  3915.                             'elements_complementaires' => $elements_complementaires,
  3916.                             'profil_repreneur' => $profil_repreneur,
  3917.                             'apport_fp_min' => $apport_fp_min,
  3918.                             'profil_repreneur_recherche' => $profil_repreneur_recherche,
  3919.                             'prix_cession' => $prix_cession,
  3920.                             'precision_localisation_complementaire' => $precision_localisation_complementaire,
  3921.                             'type_cession_precise' => $type_cession_precise,
  3922.                             'coordonnees' => $coordonnees,
  3923.                             'annee_passee' => $annee_passee
  3924.                         ],
  3925.                         'annonce_v' $annonce['id_annonce_vendeur'],
  3926.                         'annonce_vendeur_title'
  3927.                 );
  3928.     }
  3929.     private function serializeParams($parametres) {
  3930.         $string_params "";
  3931.         foreach ($parametres as $name => $value) {
  3932.             if ($name != "rechercher" && $name != "type" && $name != "array_localisation") {
  3933.                 if ($string_params == "") {
  3934.                     $string_params .= $name "=" $value;
  3935.                 } else {
  3936.                     $string_params .= "&" $name "=" $value;
  3937.                 }
  3938.             }
  3939.         }
  3940.         return $string_params;
  3941.     }
  3942.     private function getAnnoncesNumbers($parametres) {
  3943.         $repoVendeur $this->getDoctrine()->getRepository(AnnoncesVendeur::class);
  3944.         $repoSociete $this->getDoctrine()->getRepository(Societes::class);
  3945.         $repoAcheteur $this->getDoctrine()->getRepository(AnnoncesAcheteur::class);
  3946.         $nb_annonces_cessions $repoVendeur->donne_nb_annonces_vente_recherche($parametres);
  3947.         $nb_actifs $repoVendeur->donne_nb_annonces_vente_recherche_actif($parametres);
  3948.         $nb_entreprises $nb_annonces_cessions $nb_actifs;
  3949.         $nb_cibles_potentielles $repoSociete->donne_nb_participations_fonds($parametres"vendeur");
  3950.         $nb_recherches_partenariats $repoAcheteur->donne_nb_annonces_achat_recherche_partenaire($parametres);
  3951.         $nb_annonces $nb_annonces_cessions $nb_cibles_potentielles $nb_recherches_partenariats;
  3952.         $nb_annonces_sans_cibles_potentielles $nb_annonces_cessions $nb_recherches_partenariats;
  3953.         return [
  3954.             'nb_annonces_cessions' => $nb_annonces_cessions,
  3955.             'nb_actifs' => $nb_actifs,
  3956.             'nb_entreprises' => $nb_entreprises,
  3957.             'nb_cibles_potentielles' => $nb_cibles_potentielles,
  3958.             'nb_recherches_partenariats' => $nb_recherches_partenariats,
  3959.             'nb_annonces' => $nb_annonces,
  3960.             'nb_annonces_sans_cibles_potentielles' => $nb_annonces_sans_cibles_potentielles
  3961.         ];
  3962.     }
  3963.     private function getNbAnnoncesBySecteursActivite($type "entreprise") {
  3964.         $secteurs $this->sam->getListeSecteursActiviteOrderedByIdPere();
  3965.         $array_result = [];
  3966.         if ($type == "entreprise") {
  3967.             $repoVendeur $this->getDoctrine()->getRepository(AnnoncesVendeur::class);
  3968.             $annonces_secteur $repoVendeur->donne_tableau_annonces_vente_par_secteur_niveau2($type);
  3969.         } elseif ($type == "cible_potentielle") {
  3970.             $repoSociete $this->getDoctrine()->getRepository(Societes::class);
  3971.             $annonces_secteur $repoSociete->donne_tableau_cibles_potentielles_par_secteur();
  3972.         }
  3973.         foreach ($secteurs[0] as $id_secteur_pere => $secteur_pere) {
  3974.             $row = [];
  3975.             $nb_annonce_row 0;
  3976.             $row[0] = ['id_secteur_activite' => $id_secteur_pere'nom_secteur_activite' => $secteur_pere['nomSecteurActivite'], 'nom_pour_title' => $secteur_pere['nomPourTitle'], 'nb' => 0];
  3977.             foreach ($secteurs[$id_secteur_pere] as $id_secteur => $secteur) {
  3978.                 $data = ['id_secteur_activite' => $id_secteur'nom_secteur_activite' => $secteur['nomSecteurActivite'], 'nom_pour_title' => $secteur['nomPourTitle']];
  3979.                 $data['nb'] = isset($annonces_secteur[$id_secteur]) ? $annonces_secteur[$id_secteur] : 0;
  3980.                 $row[] = $data;
  3981.                 $nb_annonce_row += $data['nb'];
  3982.             }
  3983.             $row[0]['nb'] = $nb_annonce_row;
  3984.             $array_result[] = $row;
  3985.         }
  3986.         return $array_result;
  3987.     }
  3988.     private function donneNomLocalisationPourTitle($annonce) {
  3989.         $nom_localisation "";
  3990.         if (isset($annonce['nom_localisation_niveau_2']) && $annonce['nom_localisation_niveau_2'] != "Confidentiel") {
  3991.             $nom_localisation .= $annonce['nom_localisation_niveau_2'] . ', ';
  3992.         }
  3993.         if (isset($annonce['nom_localisation_niveau_1']) && $annonce['nom_localisation_niveau_1'] != "Confidentiel") {
  3994.             $nom_localisation .= $annonce['nom_localisation_niveau_1'] . ', ';
  3995.         }
  3996.         if (isset($annonce['nom_localisation_niveau_0']) && $annonce['nom_localisation_niveau_0'] != "Confidentiel") {
  3997.             $nom_localisation .= $annonce['nom_localisation_niveau_0'];
  3998.         }
  3999.         return $nom_localisation;
  4000.     }
  4001.     /**
  4002.      *
  4003.      * @param type $codePays
  4004.      * @return type
  4005.      */
  4006.     private function getVersionByCodePays($codePays) {
  4007.         return Utils::codePaysWithoutDash($codePays);
  4008.     }
  4009.     /**
  4010.      * @param type $codePays
  4011.      * @return type
  4012.      */
  4013.     private function getIdPaysByCodePays($codePays) {
  4014.         return $this->container->get("id_pays_by_code_pays")->getIdPaysByCodePays($codePays);
  4015.     }
  4016. }