src/Controller/SimulateurRepriseController.php line 60

Open in your IDE?
  1. <?php declare(strict_types=1);
  2. /**
  3.  * @author xuchen
  4.  */
  5. namespace App\Controller;
  6. use App\Entity\Utilisateur;
  7. use App\Entity\SimulationsReprise;
  8. use App\Form\Models\DemandeFinancement;
  9. use App\Form\Type\DemandeFinancementType;
  10. use App\Services\DemandeDeFinancement as DemandeDeFinancementService;
  11. use App\Services\LogMarketingProvider as LogMarketingProviderService;
  12. use App\Services\SimulationRepriseProvider as SimulationRepriseProvider;
  13. use Symfony\Component\HttpFoundation\Request;
  14. use Symfony\Component\HttpFoundation\Response;
  15. use App\Services\ManagerEntity\DroitsAccesManagers;
  16. use Doctrine\ORM\EntityManagerInterface;
  17. use App\Services\MetaTag;
  18. use App\Twig\TranslationExtension;
  19. use App\Entity\AnnuaireRepreneurs;
  20. use App\Entity\AnnoncesVendeur;
  21. use App\Entity\DetailAnnonceCapitalImmateriel;
  22. class SimulateurRepriseController extends EntityUsingController
  23. {
  24.     public const MAX_AGE 43200// 12heures
  25.     /**
  26.      * @var \App\Services\ManagerEntity\DroitsAccesManagers
  27.      */
  28.     private $dam;
  29.     /**
  30.      * @var EntityManagerInterface
  31.      */
  32.     private $em;
  33.     /**
  34.      * @var MetaTag
  35.      */
  36.     private $metaTag;
  37.     /**
  38.      * @var TranslationExtension
  39.      */
  40.     private $te;
  41.     
  42.     public function __constructDroitsAccesManagers $dam,EntityManagerInterface $em,MetaTag $metaTag,TranslationExtension $translationExtension)
  43.     {
  44.         $this->dam $dam;
  45.         $this->em $em;
  46.         $this->metaTag $metaTag;
  47.         $this->te $translationExtension;
  48.     }
  49.     /**
  50.      * @param Request                     $request
  51.      * @param                             $codePays
  52.      * @param LogMarketingProviderService $logMarketingProviderService
  53.      * @param SimulationRepriseProvider $simulationRepriseProvider
  54.      * @return mixed
  55.      * @throws \Exception
  56.      */
  57.     public function index(Request $request$codePays,TranslationExtension $translationExtensionLogMarketingProviderService $logMarketingProviderService,SimulationRepriseProvider $simulationRepriseProvider){
  58.         
  59.         $lang $request->getSession()->get('lang');
  60.         $hasService false;
  61.         $dateFinAcces "";
  62.         $resultat = array();
  63.         $data = array();
  64.         $simulationUtilisateur NULL;
  65.         $resultat["ratio1"] = NULL;
  66.         $resultat["ratio2"] = NULL;
  67.         $resultat["ratio3"] = NULL;
  68.         $resultat["ratio4"] = NULL;
  69.         $resultat["commRatio1"] = "";
  70.         $resultat["colorRatio1"] = "#666666";
  71.         $resultat["commRatio2"] = "";
  72.         $resultat["colorRatio2"] = "#666666";
  73.         $resultat["commRatio3"] = "";
  74.         $resultat["colorRatio3"] = "#666666";
  75.         $resultat["commRatio4"] = "";
  76.         $resultat["colorRatio4"] = "#666666";
  77.         $resultat["montantEcheance"] = NULL;
  78.         $resultat["montantEmprent"] = NULL;
  79.         $resultat["montantRepriseEntreprise"] = NULL;
  80.         $resultat["tauxTotal"] = NULL;
  81.         $simulationsUtilisateur = array();
  82.         $user $this->getUser();
  83.         $metaTitle "Simulateur de reprise d'entreprise, les 4 ratios demandés par les banques";
  84.         $metaDescription "Utilisez le simulateur de reprise d'entreprise FUSACQ pour déterminer si vos cibles sont finançables via les 4 ratios principaux demandés par les banques";
  85.         $canonical "https://www.fusacq.com/simulateur-reprise-entreprise";
  86.         $metaTag $this->metaTag
  87.         ->setTitle($this->te->translate($metaTitle$lang"""M"""))
  88.         ->setDescription($this->te->translate($metaDescription$lang"""M"""))
  89.         ->setCanonical($canonical);
  90.         $error=false;
  91.         $titreAnnonce false;
  92.         $idAnnonce false;
  93.         if($user){
  94.             $hasService $this->dam->checkIfThisUserHasDroitService($user, [58,81]); // 58 = similateur reprise 81 82 fusacq elite
  95.             if ($hasService){
  96.                 $allParametres $request->query->all();
  97.                 if (!empty($allParametres["error"])&&$allParametres["error"]=="montant") {
  98.                     $error "Le prix de vente de l’entreprise est obligatoire";
  99.                 }
  100.                 elseif (!empty($allParametres["error"])&&$allParametres["error"]=="apportpersonnel") {
  101.                     $error " Votre apport personnel est obligatoire";
  102.                 }
  103.                 if (isset($allParametres["simulation"])&&$allParametres["simulation"]!=NULL&&$allParametres["simulation"]!=""){
  104.                     $simulationUtilisateur $this->em->getRepository(SimulationsReprise::class)->findOneBy(array('id_simulation'=>$allParametres["simulation"]));
  105.                     if ($simulationUtilisateur!=NULL){
  106.                         if ($simulationUtilisateur->_get("id_utilisateur")!=$user->_get("id_utilisateur")){
  107.                             return $this->redirect ("/simulateur-reprise-entreprise");
  108.                         }
  109.                     }
  110.                     else{
  111.                         return $this->redirect "/simulateur-reprise-entreprise");
  112.                     }
  113.                 }
  114.                 $qb $this->em->createQueryBuilder();
  115.                 $alias "a";
  116.                 $query $qb->select($alias)
  117.                 ->from(SimulationsReprise::class, $alias)
  118.                 ->where($alias ".id_utilisateur = ".$user->_get("id_utilisateur"))
  119.                 ->andWhere($alias ".nom_simulation != '' or ".$alias.".nom_simulation is not null")
  120.                 ->andWhere($alias ".date_simulation IS NOT NULL ");
  121.                 $simulationsUtilisateurOr $query->getQuery()->getResult();
  122.                 foreach ($simulationsUtilisateurOr as $simulationUtilisateurOr){
  123.                     $simulationsUtilisateur[]=$simulationUtilisateurOr;
  124.                 }
  125.                 usort($simulationsUtilisateur, function($a$b)
  126.                 {
  127.                     return strcmp($a->_get("nom_simulation"), $b->_get("nom_simulation"));
  128.                 });
  129.                 if($simulationUtilisateur == NULL){
  130.                     $data["apport_personnel"] = NULL;
  131.                     $data["prix_de_vente"] = NULL;
  132.                     $data["type_rachat"] = NULL;
  133.                     $data["duree"] = NULL;
  134.                     $data["fais_avocat"] = NULL;
  135.                     $data["droits_enregistre"] = NULL;
  136.                     $data["taux_pret"] = NULL;
  137.                     $data["taux_assurance"] = NULL;
  138.                     $data["garan_BPI"] = NULL;
  139.                     $data["cout_garan"] = NULL;
  140.                     $data["activite_cible"] = NULL;
  141.                     $data["RN"] = NULL;
  142.                     $data["endette_cible"] = NULL;
  143.                     $data["montant_ann_cible"] = NULL;
  144.                     $data["CAF"] = NULL;
  145.                     if (!empty($allParametres["id_annonce_vendeur"])) {
  146.                         $annonce $this->em->getRepository(AnnoncesVendeur::class)->find($allParametres["id_annonce_vendeur"]);
  147.                         if (!empty($annonce)) {
  148.                             $idAnnonce $allParametres["id_annonce_vendeur"];
  149.                             $titreAnnonce $annonce->_get("titre_annonce");
  150.                             $annuaireRepreneur $this->em->getRepository(AnnuaireRepreneurs::class)->findOneBy(array('login'=>$user->_get("login_utilisateur")));
  151.                             if (!empty($annuaireRepreneur)&&!empty($annuaireRepreneur->getMontantApport())) {
  152.                                 $data["apport_personnel"] = (int)$annuaireRepreneur->getMontantApport();
  153.                             }
  154.                             if (!empty($annonce->_get("prix_cession"))) {
  155.                                 if (!empty($annonce->_get("immobilier_dans_prix_cession"))&&$annonce->_get("immobilier_dans_prix_cession")=="oui"&&!empty($annonce->_get("prix_immobilier"))) {
  156.                                     $data["prix_de_vente"] = ($annonce->_get("prix_cession")-$annonce->_get("prix_immobilier"))*1000;
  157.                                 }
  158.                                 else{
  159.                                     $data["prix_de_vente"] = $annonce->_get("prix_cession")*1000;
  160.                                 }
  161.                                 $montantFaisAvo 0.05 $data["prix_de_vente"];
  162.                                 if($montantFaisAvo>50000){
  163.                                     $montantFaisAvo 50000;
  164.                                 }
  165.                                 elseif($montantFaisAvo<20000){
  166.                                     $montantFaisAvo 20000;
  167.                                 }
  168.                                 $data["fais_avocat"] = $montantFaisAvo;
  169.                                 if (!empty($annonce->_get("statuts"))) {
  170.                                     if ($annonce->_get("statuts")=="3301"||$annonce->_get("statuts")=="3302"||$annonce->_get("statuts")=="3305") {
  171.                                         $data["type_rachat"]="sociale";
  172.                                     }
  173.                                     elseif ($annonce->_get("statuts")=="3303"||$annonce->_get("statuts")=="3304"||$annonce->_get("statuts")=="3306"||$annonce->_get("statuts")=="3309") {
  174.                                         $data["type_rachat"]="actions";
  175.                                     }
  176.                                     elseif ($annonce->_get("statuts")=="3307"||$annonce->_get("statuts")=="3308") {
  177.                                         $data["type_rachat"]="fonds_commerce";
  178.                                     }
  179.                                 }
  180.                                 if(!empty($data["type_rachat"])&&$data["type_rachat"]=="sociale"){
  181.                                     if($data["prix_de_vente"] > 23000){
  182.                                         $data["droits_enregistre"]  = ($data["prix_de_vente"] - 23000)*0.03;
  183.                                     }
  184.                                 }
  185.                                 elseif(!empty($data["type_rachat"])&&($data["type_rachat"]=="actions"||$data["type_rachat"]=="sais_pas")){
  186.                                     $data["droits_enregistre"]  = $data["prix_de_vente"] * 0.001;
  187.                                 }
  188.                                 elseif(!empty($data["type_rachat"])&&$data["type_rachat"]=="fonds_commerce"){
  189.                                     if($data["prix_de_vente"] > 23000){
  190.                                         if($data["prix_de_vente"] > 200000){
  191.                                             $data["droits_enregistre"] = ($data["prix_de_vente"] - 200000)*0.05 5310;
  192.                                         }
  193.                                         else{
  194.                                             $data["droits_enregistre"] = ($data["prix_de_vente"] - 23000)*0.03;
  195.                                         }
  196.                                     }
  197.                                 }
  198.                                 $data["duree"] = 7;
  199.                                 $detailAnnonceCapitalImmateriel $this->em->getRepository(DetailAnnonceCapitalImmateriel::class)->findOneBy(array("id_annonce"=>$allParametres["id_annonce_vendeur"]));
  200.                                 if (!empty($detailAnnonceCapitalImmateriel)) {
  201.                                     if ($detailAnnonceCapitalImmateriel->_get("investissement_bfr")=="faible") {
  202.                                         $data["activite_cible"] = "0" ;
  203.                                     }
  204.                                     elseif ($detailAnnonceCapitalImmateriel->_get("investissement_bfr")=="modere") {
  205.                                         $data["activite_cible"]= "1";
  206.                                     }
  207.                                     elseif ($detailAnnonceCapitalImmateriel->_get("investissement_bfr")=="important") {
  208.                                         $data["activite_cible"] = "2";
  209.                                     }
  210.                                 }
  211.                                 if (!empty($annonce->_get("resultat_net_n"))) {
  212.                                     $data["RN"] = $annonce->_get("resultat_net_n")*1000;
  213.                                 }
  214.                                 elseif (!empty($annonce->_get("resultat_exploitation_n"))){
  215.                                     if ($annonce->_get("resultat_exploitation_n")<=42) {
  216.                                         $data["RN"] = $annonce->_get("resultat_exploitation_n")*850;
  217.                                     }
  218.                                     else {
  219.                                         $data["RN"] = $annonce->_get("resultat_exploitation_n")*750+4000;
  220.                                     }
  221.                                 }
  222.                                 if (!empty($annonce->_get("dettes_financieres"))&&!empty($annonce->_get("tresorerie_nette"))) {
  223.                                     $data["endette_cible"] = ($annonce->_get("dettes_financieres")-$annonce->_get("tresorerie_nette"))*1000;
  224.                                 }
  225.                                 elseif (!empty($annonce->_get("dettes_financieres"))){
  226.                                     $data["endette_cible"] =$annonce->_get("dettes_financieres")*1000;
  227.                                 }
  228.                             }
  229.                         }
  230.                     }
  231.                 }
  232.                 else{
  233.                     $data["apport_personnel"] = $simulationUtilisateur->_get("apport_personnel");
  234.                     $data["prix_de_vente"] = $simulationUtilisateur->_get("prix_de_vente");
  235.                     $data["type_rachat"] = $simulationUtilisateur->_get("type_rachat");
  236.                     $data["duree"] = $simulationUtilisateur->_get("duree");
  237.                     $data["fais_avocat"] = $simulationUtilisateur->_get("fais_avocat");
  238.                     $data["droits_enregistre"] = $simulationUtilisateur->_get("droits_enregistre");
  239.                     $data["taux_pret"] = $simulationUtilisateur->_get("taux_pret");
  240.                     $data["taux_assurance"] = $simulationUtilisateur->_get("taux_assurance");
  241.                     $data["garan_BPI"] = $simulationUtilisateur->_get("garan_BPI");
  242.                     $data["cout_garan"] = $simulationUtilisateur->_get("cout_garan");
  243.                     $data["activite_cible"] = $simulationUtilisateur->_get("activite_cible");
  244.                     $data["RN"] = $simulationUtilisateur->_get("RN");
  245.                     $data["endette_cible"] = $simulationUtilisateur->_get("endette_cible");
  246.                     $data["montant_ann_cible"] = $simulationUtilisateur->_get("montant_ann_cible");
  247.                     $data["CAF"] = $simulationUtilisateur->_get("CAF");
  248.                 }
  249.                 $resultat $simulationRepriseProvider->donneResultatCalcule($data);
  250.             }
  251.         }
  252.         /*if($hasService){
  253.             $uLog=$this->getUtilisateurIdentity();
  254.             if(null!==$uLog){
  255.                 //ajouter l'action <<      Utilisation du simulateur de reprise >>  dans les logs_actions, type_action n°95
  256.                 $logProvider = $this->getServiceLocator ()->get ( "log-marketing" );
  257.                 $logProvider->ajouter_action_a_logs_actions($uLog['id_utilisateur'],"95",$uLog['type_utilisateur'],'----');
  258.             }
  259.         }*/
  260.         return $this->render('simulateur/index.html.twig', [
  261.             'hasService' => $hasService,
  262.             'dateFinAcces' => $dateFinAcces,
  263.             'resultat' => $resultat,
  264.             'data' => $data,
  265.             'simulationsUtilisateur'=>$simulationsUtilisateur,
  266.             'simulationUtilisateur'=>$simulationUtilisateur,
  267.             'metaTag'=>$metaTag,
  268.             'errorMessage'=>$error,
  269.             'titreAnnonce'=>$titreAnnonce ,
  270.             'idAnnonce'=>$idAnnonce
  271.         ]);
  272.         
  273.     }
  274.     /**
  275.      * @param Request                     $request
  276.      * @param                             $codePays
  277.      * @param SimulationRepriseProvider $simulationRepriseProvider
  278.      * @param LogMarketingProviderService $logMarketingProviderService
  279.      * @return mixed
  280.      * @throws \Exception
  281.      */
  282.     public function synthese(Request $request$codePaysLogMarketingProviderService $logMarketingProviderService,SimulationRepriseProvider $simulationRepriseProvider)
  283.     {
  284.         $lang $request->getSession()->get('lang');
  285.         $hasService false;
  286.         $dateFinAcces "";
  287.         $resultat = array();
  288.         $data = array();
  289.         $user $this->getUser();
  290.         $titreAnnonce false;
  291.         $idAnnonce false;
  292.         $metaTitle "Simulateur de reprise d'entreprise, les 4 ratios demandés par les banques";
  293.         $metaDescription "Utilisez le simulateur de reprise d'entreprise FUSACQ pour déterminer si vos cibles sont finançables via les 4 ratios principaux demandés par les banques";
  294.         $canonical "https://www.fusacq.com/simulateur-reprise-entreprise";
  295.         $metaTag $this->metaTag
  296.         ->setTitle($this->te->translate($metaTitle$lang"""M"""))
  297.         ->setDescription($this->te->translate($metaDescription$lang"""M"""))
  298.         ->setCanonical($canonical);
  299.         if($user){
  300.             $hasService $this->dam->checkIfThisUserHasDroitService($user, [58,81]); // 58 = similateur reprise 81 82 fusacq elite
  301.             if ($hasService){
  302.                 if ($request->isMethod("POST")) {
  303.                     $data["apport_personnel"] = NULL;
  304.                     $data["prix_de_vente"] = NULL;
  305.                     $data["type_rachat"] = NULL;
  306.                     $data["duree"] = NULL;
  307.                     $data["fais_avocat"] = NULL;
  308.                     $data["droits_enregistre"] = NULL;
  309.                     $data["taux_pret"] = NULL;
  310.                     $data["taux_assurance"] = NULL;
  311.                     $data["garan_BPI"] = NULL;
  312.                     $data["cout_garan"] = NULL;
  313.                     $data["activite_cible"] = NULL;
  314.                     $data["RN"] = NULL;
  315.                     $data["endette_cible"] = NULL;
  316.                     $data["montant_ann_cible"] = NULL;
  317.                     $data["CAF"] = NULL;
  318.                     if ($request->request->get ('apport-personnel') != ""){
  319.                         $data["apport_personnel"] =  (int)preg_replace('/\s+/','',$request->request->get ('apport-personnel'));
  320.                     }
  321.                     if ($request->request->get ('montant') != ""){
  322.                         $data["prix_de_vente"] = (int)preg_replace('/\s+/','',$request->request->get ('montant'));
  323.                     }
  324.                     if ($request->request->get ('fais-avo') != ""){
  325.                         $data["fais_avocat"] = (int)preg_replace('/\s+/','',$request->request->get ('fais-avo'));
  326.                     }
  327.                     if ($request->request->get ('droits-enregistre') != ""){
  328.                         $data["droits_enregistre"] = (int)preg_replace('/\s+/','',$request->request->get ('droits-enregistre'));
  329.                     }
  330.                     if ($request->request->get ('cout-garan') != ""){
  331.                         $data["cout_garan"] = (int)preg_replace('/\s+/','',$request->request->get ('cout-garan'));
  332.                     }
  333.                     if ($request->request->get ('RN') != ""){
  334.                         $data["RN"] = (int)preg_replace('/\s+/','',$request->request->get ('RN'));
  335.                     }
  336.                     if ($request->request->get ('endette-cible') != ""){
  337.                         $data["endette_cible"] = (int)preg_replace('/\s+/','',$request->request->get ('endette-cible'));
  338.                     }
  339.                     if ($request->request->get ('montant-ann-cible') != ""){
  340.                         $data["montant_ann_cible"] = (int)preg_replace('/\s+/','',$request->request->get ('montant-ann-cible'));
  341.                     }
  342.                     elseif (!empty($request->request->get ('endette-cible'))&&$request->request->get ('endette-cible') <= 0)
  343.                     {
  344.                         $data["montant_ann_cible"] = 0;
  345.                     }
  346.                     if ($request->request->get ('CAF') != ""){
  347.                         $data["CAF"] = (int)preg_replace('/\s+/','',$request->request->get ('CAF'));
  348.                     }
  349.                     if ($request->request->get ('type-rachat') != ""){
  350.                         $data["type_rachat"] = $request->request->get ('type-rachat');
  351.                     }
  352.                     if ($request->request->get ('duree') != ""){
  353.                         $data["duree"] = (int)$request->request->get ('duree');
  354.                     }
  355.                     if ($request->request->get ('activite_cible') != ""){
  356.                         $data["activite_cible"] = $request->request->get ('activite_cible');
  357.                     }
  358.                     if ($request->request->get ('garan-BPI') != ""){
  359.                         $data["garan_BPI"] = $request->request->get ('garan-BPI');
  360.                     }
  361.                     /*$data["taux_pret"] = $request->request->get ('taux_pret');
  362.                      $data["taux_assurance"] = $request->request->get ('taux_assurance');*/
  363.                     if ($request->request->get ('taux_pret') != ""){
  364.                         $nombreFormatUS str_replace(',''.'$request->request->get ('taux_pret'));
  365.                         $data["taux_pret"] = floatval($nombreFormatUS);
  366.                     }
  367.                     if ($request->request->get ('taux_assurance') != ""){
  368.                         $nombreFormatUSAssu str_replace(',''.'$request->request->get ('taux_assurance'));
  369.                         $data["taux_assurance"] = floatval($nombreFormatUSAssu);
  370.                     }
  371.                     $simulationUtilisateur NULL;//$this->getEntityManager()->getRepository('Core\Entity\SimulationsReprise')->findOneBy(array('id_utilisateur'=>$utilisateurIdentity["id_utilisateur"]));
  372.                     if ($simulationUtilisateur == NULL){
  373.                         $simulationUtilisateurIn = new SimulationsReprise();
  374.                         $simulationUtilisateurIn->_set('apport_personnel',$data["apport_personnel"]);
  375.                         $simulationUtilisateurIn->_set('prix_de_vente',$data["prix_de_vente"]);
  376.                         $simulationUtilisateurIn->_set('type_rachat',$data["type_rachat"]);
  377.                         $simulationUtilisateurIn->_set('duree',$data["duree"]);
  378.                         $simulationUtilisateurIn->_set('fais_avocat',$data["fais_avocat"]);
  379.                         $simulationUtilisateurIn->_set('droits_enregistre',$data["droits_enregistre"]);
  380.                         $simulationUtilisateurIn->_set('taux_pret',$data["taux_pret"]);
  381.                         $simulationUtilisateurIn->_set('taux_assurance',$data["taux_assurance"]);
  382.                         $simulationUtilisateurIn->_set('garan_BPI',$data["garan_BPI"]);
  383.                         $simulationUtilisateurIn->_set('cout_garan',$data["cout_garan"]);
  384.                         $simulationUtilisateurIn->_set('activite_cible',$data["activite_cible"]);
  385.                         $simulationUtilisateurIn->_set('RN',$data["RN"]);
  386.                         $simulationUtilisateurIn->_set('endette_cible',$data["endette_cible"]);
  387.                         $simulationUtilisateurIn->_set('montant_ann_cible',$data["montant_ann_cible"]);
  388.                         $simulationUtilisateurIn->_set('CAF',$data["CAF"]);
  389.                         $simulationUtilisateurIn->_set('date_simulation',date("Ymd"));
  390.                         $simulationUtilisateurIn->_set('id_utilisateur',$user->_get("id_utilisateur"));
  391.                         if (!empty($request->request->get ('id_annonce_vendeur'))) {
  392.                             $simulationUtilisateurIn->_set('id_annonce_vendeur',$request->request->get ('id_annonce_vendeur'));
  393.                         }
  394.                         $simulationUtilisateurNom null;
  395.                        // if ($request->request->get ('save-modele')==1){
  396.                             if ($request->request->get ('sav-choisir')==1&&$request->request->get ('nom-nouveau-simu')!=""&&$request->request->get ('nom-nouveau-simu')!=NULL){
  397.                                 $simulationUtilisateurNom $this->em->getRepository(SimulationsReprise::class)->findOneBy(array('nom_simulation'=>$request->request->get ('nom-nouveau-simu'),'id_utilisateur'=>$user->_get("id_utilisateur")));
  398.                                 if($simulationUtilisateurNom == NULL){
  399.                                     $simulationUtilisateurIn->_set('nom_simulation',$request->request->get ('nom-nouveau-simu'));
  400.                                 }
  401.                             }
  402.                             elseif ($request->request->get ('sav-choisir')==2&&$request->request->get ('simulation-choisir-mod')!=""&&$request->request->get ('simulation-choisir-mod')!="vide"&&$request->request->get ('simulation-choisir-mod')!=NULL){
  403.                                 $simulationUtilisateurUp $this->em->getRepository(SimulationsReprise::class)->findOneBy(array('id_simulation'=>$request->request->get ('simulation-choisir-mod')));
  404.                                 $simulationUtilisateurIn->_set('nom_simulation',$simulationUtilisateurUp->_get("nom_simulation"));
  405.                                 $simulationUtilisateurUp->_set('nom_simulation',NULL);
  406.                                 $this->em->persist $simulationUtilisateurUp );
  407.                                 $this->em->flush $simulationUtilisateurUp );
  408.                             }
  409.                       //  }
  410.                         if($simulationUtilisateurNom == NULL){
  411.                             $this->em->persist $simulationUtilisateurIn );
  412.                             $this->em->flush $simulationUtilisateurIn );
  413.                             $simulationUtilisateur $simulationUtilisateurIn;
  414.                             if (empty($request->request->get ('montant'))) {
  415.                                 return $this->redirect ("/simulateur-reprise-entreprise?simulation=".$simulationUtilisateur->_get("id_simulation")."&error=montant");
  416.                             }
  417.                             if (empty($request->request->get ('apport-personnel'))) {
  418.                                 return $this->redirect ("/simulateur-reprise-entreprise?simulation=".$simulationUtilisateur->_get("id_simulation")."&error=apportpersonnel");
  419.                             }
  420.                         }
  421.                         else{
  422.                             return $this->redirect ("/simulateur-reprise-entreprise/synthese?simulation=".$simulationUtilisateurNom->_get("id_simulation"));
  423.                         }
  424.                         if (!empty($simulationUtilisateurIn->_get("id_annonce_vendeur"))) {
  425.                             $annonce $this->em->getRepository(AnnoncesVendeur::class)->find($simulationUtilisateurIn->_get("id_annonce_vendeur"));
  426.                             if (!empty($annonce)) {
  427.                                 $idAnnonce $simulationUtilisateurIn->_get("id_annonce_vendeur");
  428.                                 $titreAnnonce $annonce->_get("titre_annonce");
  429.                             }
  430.                         }
  431.                     }
  432.                     
  433.                 }
  434.                 else{
  435.                     $simulationUtilisateur NULL;
  436.                     $allParametres $request->query->all();
  437.                     if (isset($allParametres["simulation"])&&$allParametres["simulation"]!=NULL&&$allParametres["simulation"]!=""){
  438.                         $simulationUtilisateur $this->em->getRepository(SimulationsReprise::class)->findOneBy(array('id_simulation'=>$allParametres["simulation"]));
  439.                         if ($simulationUtilisateur != NULL){
  440.                             if ($simulationUtilisateur->_get("id_utilisateur")!=$user->_get("id_utilisateur")){
  441.                                 return $this->redirect ("/simulateur-reprise-entreprise");
  442.                             }
  443.                         }
  444.                         else{
  445.                             return $this->redirect ("/simulateur-reprise-entreprise");
  446.                         }
  447.                     }
  448.                     if($simulationUtilisateur == NULL){
  449.                         $data["apport_personnel"] = NULL;
  450.                         $data["prix_de_vente"] = NULL;
  451.                         $data["type_rachat"] = NULL;
  452.                         $data["duree"] = NULL;
  453.                         $data["fais_avocat"] = NULL;
  454.                         $data["droits_enregistre"] = NULL;
  455.                         $data["taux_pret"] = NULL;
  456.                         $data["taux_assurance"] = NULL;
  457.                         $data["garan_BPI"] = NULL;
  458.                         $data["cout_garan"] = NULL;
  459.                         $data["activite_cible"] = NULL;
  460.                         $data["RN"] = NULL;
  461.                         $data["endette_cible"] = NULL;
  462.                         $data["montant_ann_cible"] = NULL;
  463.                         $data["CAF"] = NULL;
  464.                     }
  465.                     else{
  466.                         $data["apport_personnel"] = $simulationUtilisateur->_get("apport_personnel");
  467.                         $data["prix_de_vente"] = $simulationUtilisateur->_get("prix_de_vente");
  468.                         $data["type_rachat"] = $simulationUtilisateur->_get("type_rachat");
  469.                         $data["duree"] = $simulationUtilisateur->_get("duree");
  470.                         $data["fais_avocat"] = $simulationUtilisateur->_get("fais_avocat");
  471.                         $data["droits_enregistre"] = $simulationUtilisateur->_get("droits_enregistre");
  472.                         $data["taux_pret"] = $simulationUtilisateur->_get("taux_pret");
  473.                         $data["taux_assurance"] = $simulationUtilisateur->_get("taux_assurance");
  474.                         $data["garan_BPI"] = $simulationUtilisateur->_get("garan_BPI");
  475.                         $data["cout_garan"] = $simulationUtilisateur->_get("cout_garan");
  476.                         $data["activite_cible"] = $simulationUtilisateur->_get("activite_cible");
  477.                         $data["RN"] = $simulationUtilisateur->_get("RN");
  478.                         $data["endette_cible"] = $simulationUtilisateur->_get("endette_cible");
  479.                         $data["montant_ann_cible"] = $simulationUtilisateur->_get("montant_ann_cible");
  480.                         $data["CAF"] = $simulationUtilisateur->_get("CAF");
  481.                         if (!empty($simulationUtilisateur->_get("id_annonce_vendeur"))) {
  482.                             $annonce $this->em->getRepository(AnnoncesVendeur::class)->find($simulationUtilisateur->_get("id_annonce_vendeur"));
  483.                             if (!empty($annonce)) {
  484.                                 $idAnnonce $simulationUtilisateur->_get("id_annonce_vendeur");
  485.                                 $titreAnnonce $annonce->_get("titre_annonce");
  486.                             }
  487.                         }
  488.                     }
  489.                 }
  490.                 $resultat $simulationRepriseProvider->donneResultatCalcule($data);
  491.                 $tabAmor = array();
  492.                 /*if(!empty($resultat["montantEcheance"])){
  493.                     $montantCapital = $resultat["montantEmprent"];
  494.                     $mois = 1;
  495.                     $montantPartiINT;
  496.                     $montantPartiCAP;
  497.                     $montantCapitalRES = $montantCapital;
  498.                     $tauxTotal = ($resultat["tauxTotal"])/1200;
  499.                     while ($montantCapitalRES > $resultat["montantEcheance"]){
  500.                         $montantPartiINT = $montantCapital*$tauxTotal;
  501.                         $montantPartiCAP = $this->resultat["montantEcheance"]-$montantPartiINT;
  502.                         $montantCapitalRES = $montantCapital-$montantPartiCAP;
  503.                         $tabAmor[] = array("mois"=>$mois,"montantPartiCAP"=>$montantPartiCAP,"montantPartiINT"=>$montantPartiINT,"montantCapitalRES"=>$montantCapitalRES);
  504.                         $montantCapital = $montantCapitalRES;
  505.                         $mois++;            
  506.                     }
  507.                 }*/
  508.                 if ($resultat["ratio1"]==NULL&&$simulationUtilisateur!=NULL){
  509.                     $this->redirect("/simulateur-reprise-entreprise/ratio1?simulation=".$simulationUtilisateur->_get("id_simulation"));
  510.                 }
  511.                 elseif ($simulationUtilisateur==NULL){
  512.                     $this->redirect("/simulateur-reprise-entreprise/ratio1");
  513.                 }
  514.             }
  515.             else{
  516.                 $this->redirect("/simulateur-reprise-entreprise/ratio1");
  517.             }
  518.         }
  519.         else{
  520.             $this->redirect("/simulateur-reprise-entreprise/ratio1");
  521.         }
  522.         return $this->render('simulateur/simulateur-reprise-synthese.html.twig', [
  523.             'hasService' => $hasService,
  524.             'dateFinAcces' => $dateFinAcces,
  525.             'resultat' => $resultat,
  526.             'data' => $data,
  527.             'simulationUtilisateur' => $simulationUtilisateur,
  528.             'tabAmor'=>$tabAmor,
  529.             'metaTag'=>$metaTag,
  530.             'idAnnonce'=>$idAnnonce,
  531.             'titreAnnonce'=>$titreAnnonce
  532.         ]);
  533.     }
  534.     /**
  535.      * @param Request                     $request
  536.      * @param                             $codePays
  537.      * @param SimulationRepriseProvider $simulationRepriseProvider
  538.      * @param LogMarketingProviderService $logMarketingProviderService
  539.      * @return mixed
  540.      * @throws \Exception
  541.      */
  542.     public function ratio1(Request $request$codePaysLogMarketingProviderService $logMarketingProviderService,SimulationRepriseProvider $simulationRepriseProvider)
  543.     {
  544.         $lang $request->getSession()->get('lang');
  545.         $hasService false;
  546.         $dateFinAcces "";
  547.         $resultat = array();
  548.         $data = array();
  549.         $NbChampPasRensigne 0;
  550.         $champPasRensigne = array();
  551.         $simulationUtilisateur NULL;
  552.         $resultat["ratio1"] = NULL;
  553.         $resultat["ratio2"] = NULL;
  554.         $resultat["ratio3"] = NULL;
  555.         $resultat["ratio4"] = NULL;
  556.         $resultat["commRatio1"] = "";
  557.         $resultat["colorRatio1"] = "";
  558.         $resultat["commRatio2"] = "";
  559.         $resultat["colorRatio2"] = "";
  560.         $resultat["commRatio3"] = "";
  561.         $resultat["colorRatio3"] = "";
  562.         $resultat["commRatio4"] = "";
  563.         $resultat["colorRatio4"] = "";
  564.         $resultat["montantEcheance"] = NULL;
  565.         $resultat["montantEmprent"] = NULL;
  566.         $resultat["montantRepriseEntreprise"] = NULL;
  567.         $resultat["tauxTotal"] = NULL;
  568.         $user $this->getUser();
  569.         $titreAnnonce false;
  570.         $idAnnonce false;
  571.         $metaTitle "Simulateur de reprise d'entreprise, les 4 ratios demandés par les banques";
  572.         $metaDescription "Utilisez le simulateur de reprise d'entreprise FUSACQ pour déterminer si vos cibles sont finançables via les 4 ratios principaux demandés par les banques";
  573.         $canonical "https://www.fusacq.com/simulateur-reprise-entreprise";
  574.         $metaTag $this->metaTag
  575.         ->setTitle($this->te->translate($metaTitle$lang"""M"""))
  576.         ->setDescription($this->te->translate($metaDescription$lang"""M"""))
  577.         ->setCanonical($canonical);
  578.         if($user){
  579.             $hasService $this->dam->checkIfThisUserHasDroitService($user, [58,81]); // 58 = similateur reprise 81 82 fusacq elite
  580.             if ($hasService){
  581.                 $allParametres $request->query->all();
  582.                 if (isset($allParametres["simulation"])&&$allParametres["simulation"]!=NULL&&$allParametres["simulation"]!=""){
  583.                     $simulationUtilisateur $this->em->getRepository(SimulationsReprise::class)->findOneBy(array('id_simulation'=>$allParametres["simulation"]));
  584.                     if ($simulationUtilisateur != NULL){
  585.                         if ($simulationUtilisateur->_get("id_utilisateur")!=$user->_get("id_utilisateur")){
  586.                             return $this->redirect ("/simulateur-reprise-entreprise");
  587.                         }
  588.                     }
  589.                     else{
  590.                         return $this->redirect ("/simulateur-reprise-entreprise");
  591.                     }
  592.                 }
  593.                 if($simulationUtilisateur == NULL){
  594.                     $data["apport_personnel"] = NULL;
  595.                     $data["prix_de_vente"] = NULL;
  596.                     $data["type_rachat"] = NULL;
  597.                     $data["duree"] = NULL;
  598.                     $data["fais_avocat"] = NULL;
  599.                     $data["droits_enregistre"] = NULL;
  600.                     $data["taux_pret"] = NULL;
  601.                     $data["taux_assurance"] = NULL;
  602.                     $data["garan_BPI"] = NULL;
  603.                     $data["cout_garan"] = NULL;
  604.                     $data["activite_cible"] = NULL;
  605.                     $data["RN"] = NULL;
  606.                     $data["endette_cible"] = NULL;
  607.                     $data["montant_ann_cible"] = NULL;
  608.                     $data["CAF"] = NULL;
  609.                 }
  610.                 else{
  611.                     $data["apport_personnel"] = $simulationUtilisateur->_get("apport_personnel");
  612.                     $data["prix_de_vente"] = $simulationUtilisateur->_get("prix_de_vente");
  613.                     $data["type_rachat"] = $simulationUtilisateur->_get("type_rachat");
  614.                     $data["duree"] = $simulationUtilisateur->_get("duree");
  615.                     $data["fais_avocat"] = $simulationUtilisateur->_get("fais_avocat");
  616.                     $data["droits_enregistre"] = $simulationUtilisateur->_get("droits_enregistre");
  617.                     $data["taux_pret"] = $simulationUtilisateur->_get("taux_pret");
  618.                     $data["taux_assurance"] = $simulationUtilisateur->_get("taux_assurance");
  619.                     $data["garan_BPI"] = $simulationUtilisateur->_get("garan_BPI");
  620.                     $data["cout_garan"] = $simulationUtilisateur->_get("cout_garan");
  621.                     $data["activite_cible"] = $simulationUtilisateur->_get("activite_cible");
  622.                     $data["RN"] = $simulationUtilisateur->_get("RN");
  623.                     $data["endette_cible"] = $simulationUtilisateur->_get("endette_cible");
  624.                     $data["montant_ann_cible"] = $simulationUtilisateur->_get("montant_ann_cible");
  625.                     $data["CAF"] = $simulationUtilisateur->_get("CAF");
  626.                     if (!empty($simulationUtilisateur->_get("id_annonce_vendeur"))) {
  627.                         $annonce $this->em->getRepository(AnnoncesVendeur::class)->find($simulationUtilisateur->_get("id_annonce_vendeur"));
  628.                         if (!empty($annonce)) {
  629.                             $idAnnonce $simulationUtilisateur->_get("id_annonce_vendeur");
  630.                             $titreAnnonce $annonce->_get("titre_annonce");
  631.                         }
  632.                     }
  633.                 }
  634.                 if ($data["apport_personnel"] == NULL){
  635.                     $NbChampPasRensigne++;
  636.                     $champPasRensigne[] = "Votre apport personnel";
  637.                 }
  638.                 if ($data["prix_de_vente"] == NULL){
  639.                     $NbChampPasRensigne++;
  640.                     $champPasRensigne[] = "Prix de vente de l'entreprise";
  641.                 }
  642.                 $resultat $simulationRepriseProvider->donneResultatCalcule($data);
  643.             }
  644.         }
  645.         
  646.         return $this->render('simulateur/simulateur-reprise-ratio-un.html.twig', [
  647.             'hasService' => $hasService,
  648.             'dateFinAcces' => $dateFinAcces,
  649.             'resultat' => $resultat,
  650.             'data' => $data,
  651.             'NbChampPasRensigne' => $NbChampPasRensigne,
  652.             'champPasRensigne' => $champPasRensigne,
  653.             'simulationUtilisateur' => $simulationUtilisateur,
  654.             'metaTag'=>$metaTag,
  655.             'idAnnonce'=>$idAnnonce,
  656.             'titreAnnonce'=>$titreAnnonce
  657.         ]);
  658.     }
  659.     /**
  660.      * @param Request                     $request
  661.      * @param                             $codePays
  662.      * @param SimulationRepriseProvider $simulationRepriseProvider
  663.      * @param LogMarketingProviderService $logMarketingProviderService
  664.      * @return mixed
  665.      * @throws \Exception
  666.      */
  667.     public function ratio2(Request $request$codePaysLogMarketingProviderService $logMarketingProviderService,SimulationRepriseProvider $simulationRepriseProvider)
  668.     {
  669.         $lang $request->getSession()->get('lang');
  670.         $hasService false;
  671.         $dateFinAcces "";
  672.         $resultat = array();
  673.         $data = array();
  674.         $simulationUtilisateur NULL;
  675.         $resultat["ratio1"] = NULL;
  676.         $resultat["ratio2"] = NULL;
  677.         $resultat["ratio3"] = NULL;
  678.         $resultat["ratio4"] = NULL;
  679.         $resultat["commRatio1"] = "";
  680.         $resultat["colorRatio1"] = "";
  681.         $resultat["commRatio2"] = "";
  682.         $resultat["colorRatio2"] = "";
  683.         $resultat["commRatio3"] = "";
  684.         $resultat["colorRatio3"] = "";
  685.         $resultat["commRatio4"] = "";
  686.         $resultat["colorRatio4"] = "";
  687.         $resultat["montantEcheance"] = NULL;
  688.         $resultat["montantEmprent"] = NULL;
  689.         $resultat["montantRepriseEntreprise"] = NULL;
  690.         $resultat["tauxTotal"] = NULL;
  691.         $user $this->getUser();
  692.         $titreAnnonce false;
  693.         $idAnnonce false;
  694.         $metaTitle "Simulateur de reprise d'entreprise, les 4 ratios demandés par les banques";
  695.         $metaDescription "Utilisez le simulateur de reprise d'entreprise FUSACQ pour déterminer si vos cibles sont finançables via les 4 ratios principaux demandés par les banques";
  696.         $canonical "https://www.fusacq.com/simulateur-reprise-entreprise";
  697.         $metaTag $this->metaTag
  698.         ->setTitle($this->te->translate($metaTitle$lang"""M"""))
  699.         ->setDescription($this->te->translate($metaDescription$lang"""M"""))
  700.         ->setCanonical($canonical);
  701.         if($user){
  702.             $hasService $this->dam->checkIfThisUserHasDroitService($user, [58,81]); // 58 = similateur reprise 81 82 fusacq elite
  703.             if ($hasService){
  704.                 $allParametres $request->query->all();
  705.                 if (isset($allParametres["simulation"])&&$allParametres["simulation"]!=NULL&&$allParametres["simulation"]!=""){
  706.                     $simulationUtilisateur $this->em->getRepository(SimulationsReprise::class)->findOneBy(array('id_simulation'=>$allParametres["simulation"]));
  707.                     if ($simulationUtilisateur != NULL){
  708.                         if ($simulationUtilisateur->_get("id_utilisateur")!=$user->_get("id_utilisateur")){
  709.                             return $this->redirect ("/simulateur-reprise-entreprise");
  710.                         }
  711.                     }
  712.                     else{
  713.                         return $this->redirect ("/simulateur-reprise-entreprise");
  714.                     }
  715.                 }
  716.                 if($simulationUtilisateur == NULL){
  717.                     $data["apport_personnel"] = NULL;
  718.                     $data["prix_de_vente"] = NULL;
  719.                     $data["type_rachat"] = NULL;
  720.                     $data["duree"] = NULL;
  721.                     $data["fais_avocat"] = NULL;
  722.                     $data["droits_enregistre"] = NULL;
  723.                     $data["taux_pret"] = NULL;
  724.                     $data["taux_assurance"] = NULL;
  725.                     $data["garan_BPI"] = NULL;
  726.                     $data["cout_garan"] = NULL;
  727.                     $data["activite_cible"] = NULL;
  728.                     $data["RN"] = NULL;
  729.                     $data["endette_cible"] = NULL;
  730.                     $data["montant_ann_cible"] = NULL;
  731.                     $data["CAF"] = NULL;
  732.                 }
  733.                 else{
  734.                     $data["apport_personnel"] = $simulationUtilisateur->_get("apport_personnel");
  735.                     $data["prix_de_vente"] = $simulationUtilisateur->_get("prix_de_vente");
  736.                     $data["type_rachat"] = $simulationUtilisateur->_get("type_rachat");
  737.                     $data["duree"] = $simulationUtilisateur->_get("duree");
  738.                     $data["fais_avocat"] = $simulationUtilisateur->_get("fais_avocat");
  739.                     $data["droits_enregistre"] = $simulationUtilisateur->_get("droits_enregistre");
  740.                     $data["taux_pret"] = $simulationUtilisateur->_get("taux_pret");
  741.                     $data["taux_assurance"] = $simulationUtilisateur->_get("taux_assurance");
  742.                     $data["garan_BPI"] = $simulationUtilisateur->_get("garan_BPI");
  743.                     $data["cout_garan"] = $simulationUtilisateur->_get("cout_garan");
  744.                     $data["activite_cible"] = $simulationUtilisateur->_get("activite_cible");
  745.                     $data["RN"] = $simulationUtilisateur->_get("RN");
  746.                     $data["endette_cible"] = $simulationUtilisateur->_get("endette_cible");
  747.                     $data["montant_ann_cible"] = $simulationUtilisateur->_get("montant_ann_cible");
  748.                     $data["CAF"] = $simulationUtilisateur->_get("CAF");
  749.                     if (!empty($simulationUtilisateur->_get("id_annonce_vendeur"))) {
  750.                         $annonce $this->em->getRepository(AnnoncesVendeur::class)->find($simulationUtilisateur->_get("id_annonce_vendeur"));
  751.                         if (!empty($annonce)) {
  752.                             $idAnnonce $simulationUtilisateur->_get("id_annonce_vendeur");
  753.                             $titreAnnonce $annonce->_get("titre_annonce");
  754.                         }
  755.                     }
  756.                 }
  757.                 $NbChampPasRensigne 0;
  758.                 $champPasRensigne = array();
  759.                 if ($data["apport_personnel"] == NULL){
  760.                     $NbChampPasRensigne++;
  761.                     $champPasRensigne[] = "Votre apport personnel";
  762.                 }
  763.                 if ($data["prix_de_vente"] == NULL){
  764.                     $NbChampPasRensigne++;
  765.                     $champPasRensigne[] = "Prix de vente de l'entreprise";
  766.                 }
  767.                 if ($data["duree"] == NULL){
  768.                     $NbChampPasRensigne++;
  769.                     $champPasRensigne[] = "Durée du prêt";
  770.                 }
  771.                 if ($data["taux_pret"] == NULL){
  772.                     $NbChampPasRensigne++;
  773.                     $champPasRensigne[] = "Taux d'intérêt";
  774.                 }
  775.                 if ($data["taux_assurance"] == NULL){
  776.                     $NbChampPasRensigne++;
  777.                     $champPasRensigne[] = "Taux de l'assurance ";
  778.                 }
  779.                 if ($data["RN"] == NULL){
  780.                     $NbChampPasRensigne++;
  781.                     $champPasRensigne[] = "Résultat net de la cible";
  782.                 }
  783.                 $resultat $simulationRepriseProvider->donneResultatCalcule($data);
  784.             }
  785.         }
  786.         
  787.         return $this->render('simulateur/simulateur-reprise-ratio-deux.html.twig', [
  788.             'hasService' => $hasService,
  789.             'dateFinAcces' => $dateFinAcces,
  790.             'resultat' => $resultat,
  791.             'data' => $data,
  792.             'NbChampPasRensigne' => $NbChampPasRensigne,
  793.             'champPasRensigne' => $champPasRensigne,
  794.             'simulationUtilisateur' => $simulationUtilisateur,
  795.             'metaTag'=>$metaTag,
  796.             'idAnnonce'=>$idAnnonce,
  797.             'titreAnnonce'=>$titreAnnonce
  798.         ]);
  799.     }
  800.     /**
  801.      * @param Request                     $request
  802.      * @param                             $codePays
  803.      * @param SimulationRepriseProvider $simulationRepriseProvider
  804.      * @param LogMarketingProviderService $logMarketingProviderService
  805.      * @return mixed
  806.      * @throws \Exception
  807.      */
  808.     public function ratio3(Request $request$codePaysLogMarketingProviderService $logMarketingProviderService,SimulationRepriseProvider $simulationRepriseProvider)
  809.     {
  810.         $lang $request->getSession()->get('lang');
  811.         $hasService false;
  812.         $dateFinAcces "";
  813.         $resultat = array();
  814.         $data = array();
  815.         $simulationUtilisateur NULL;
  816.         $resultat["ratio1"] = NULL;
  817.         $resultat["ratio2"] = NULL;
  818.         $resultat["ratio3"] = NULL;
  819.         $resultat["ratio4"] = NULL;
  820.         $resultat["commRatio1"] = "";
  821.         $resultat["colorRatio1"] = "";
  822.         $resultat["commRatio2"] = "";
  823.         $resultat["colorRatio2"] = "";
  824.         $resultat["commRatio3"] = "";
  825.         $resultat["colorRatio3"] = "";
  826.         $resultat["commRatio4"] = "";
  827.         $resultat["colorRatio4"] = "";
  828.         $resultat["montantEcheance"] = NULL;
  829.         $resultat["montantEmprent"] = NULL;
  830.         $resultat["montantRepriseEntreprise"] = NULL;
  831.         $resultat["tauxTotal"] = NULL;
  832.         $user $this->getUser();
  833.         $titreAnnonce false;
  834.         $idAnnonce false;
  835.         $metaTitle "Simulateur de reprise d'entreprise, les 4 ratios demandés par les banques";
  836.         $metaDescription "Utilisez le simulateur de reprise d'entreprise FUSACQ pour déterminer si vos cibles sont finançables via les 4 ratios principaux demandés par les banques";
  837.         $canonical "https://www.fusacq.com/simulateur-reprise-entreprise";
  838.         $metaTag $this->metaTag
  839.         ->setTitle($this->te->translate($metaTitle$lang"""M"""))
  840.         ->setDescription($this->te->translate($metaDescription$lang"""M"""))
  841.         ->setCanonical($canonical);
  842.         if($user){
  843.             $hasService $this->dam->checkIfThisUserHasDroitService($user, [58,81]); // 58 = similateur reprise 81 82 fusacq elite
  844.             if ($hasService){
  845.                 $allParametres $request->query->all();
  846.                 if (isset($allParametres["simulation"])&&$allParametres["simulation"]!=NULL&&$allParametres["simulation"]!=""){
  847.                     $simulationUtilisateur $this->em->getRepository(SimulationsReprise::class)->findOneBy(array('id_simulation'=>$allParametres["simulation"]));
  848.                     if ($simulationUtilisateur != NULL){
  849.                         if ($simulationUtilisateur->_get("id_utilisateur")!=$user->_get("id_utilisateur")){
  850.                             return $this->redirect ("/simulateur-reprise-entreprise");
  851.                         }
  852.                     }
  853.                     else{
  854.                         return $this->redirect ("/simulateur-reprise-entreprise");
  855.                     }
  856.                 }
  857.                 if($simulationUtilisateur == NULL){
  858.                     $data["apport_personnel"] = NULL;
  859.                     $data["prix_de_vente"] = NULL;
  860.                     $data["type_rachat"] = NULL;
  861.                     $data["duree"] = NULL;
  862.                     $data["fais_avocat"] = NULL;
  863.                     $data["droits_enregistre"] = NULL;
  864.                     $data["taux_pret"] = NULL;
  865.                     $data["taux_assurance"] = NULL;
  866.                     $data["garan_BPI"] = NULL;
  867.                     $data["cout_garan"] = NULL;
  868.                     $data["activite_cible"] = NULL;
  869.                     $data["RN"] = NULL;
  870.                     $data["endette_cible"] = NULL;
  871.                     $data["montant_ann_cible"] = NULL;
  872.                     $data["CAF"] = NULL;
  873.                 }
  874.                 else{
  875.                     $data["apport_personnel"] = $simulationUtilisateur->_get("apport_personnel");
  876.                     $data["prix_de_vente"] = $simulationUtilisateur->_get("prix_de_vente");
  877.                     $data["type_rachat"] = $simulationUtilisateur->_get("type_rachat");
  878.                     $data["duree"] = $simulationUtilisateur->_get("duree");
  879.                     $data["fais_avocat"] = $simulationUtilisateur->_get("fais_avocat");
  880.                     $data["droits_enregistre"] = $simulationUtilisateur->_get("droits_enregistre");
  881.                     $data["taux_pret"] = $simulationUtilisateur->_get("taux_pret");
  882.                     $data["taux_assurance"] = $simulationUtilisateur->_get("taux_assurance");
  883.                     $data["garan_BPI"] = $simulationUtilisateur->_get("garan_BPI");
  884.                     $data["cout_garan"] = $simulationUtilisateur->_get("cout_garan");
  885.                     $data["activite_cible"] = $simulationUtilisateur->_get("activite_cible");
  886.                     $data["RN"] = $simulationUtilisateur->_get("RN");
  887.                     $data["endette_cible"] = $simulationUtilisateur->_get("endette_cible");
  888.                     $data["montant_ann_cible"] = $simulationUtilisateur->_get("montant_ann_cible");
  889.                     $data["CAF"] = $simulationUtilisateur->_get("CAF");
  890.                     if (!empty($simulationUtilisateur->_get("id_annonce_vendeur"))) {
  891.                         $annonce $this->em->getRepository(AnnoncesVendeur::class)->find($simulationUtilisateur->_get("id_annonce_vendeur"));
  892.                         if (!empty($annonce)) {
  893.                             $idAnnonce $simulationUtilisateur->_get("id_annonce_vendeur");
  894.                             $titreAnnonce $annonce->_get("titre_annonce");
  895.                         }
  896.                     }
  897.                 }
  898.                 $NbChampPasRensigne 0;
  899.                 $champPasRensigne = array();
  900.                 if ($data["apport_personnel"] == NULL){
  901.                     $NbChampPasRensigne++;
  902.                     $champPasRensigne[] = "Votre apport personnel";
  903.                 }
  904.                 if ($data["prix_de_vente"] == NULL){
  905.                     $NbChampPasRensigne++;
  906.                     $champPasRensigne[] = "Prix de vente de l'entreprise";
  907.                 }
  908.                 if ($data["duree"] == NULL){
  909.                     $NbChampPasRensigne++;
  910.                     $champPasRensigne[] = "Durée du prêt";
  911.                 }
  912.                 if ($data["taux_pret"] == NULL){
  913.                     $NbChampPasRensigne++;
  914.                     $champPasRensigne[] = "Taux d'intérêt";
  915.                 }
  916.                 if ($data["taux_assurance"] == NULL){
  917.                     $NbChampPasRensigne++;
  918.                     $champPasRensigne[] = "Taux de l'assurance ";
  919.                 }
  920.                 if ($data["montant_ann_cible"] == NULL){
  921.                     $NbChampPasRensigne++;
  922.                     $champPasRensigne[] = "Le montant des annuités de la cible";
  923.                 }
  924.                 if ($data["CAF"] == NULL){
  925.                     $NbChampPasRensigne++;
  926.                     $champPasRensigne[] = "La capacité d'autofinancement de la cible";
  927.                 }
  928.                 $resultat $simulationRepriseProvider->donneResultatCalcule($data);
  929.             }
  930.         }
  931.         
  932.         return $this->render('simulateur/simulateur-reprise-ratio-trois.html.twig', [
  933.             'hasService' => $hasService,
  934.             'dateFinAcces' => $dateFinAcces,
  935.             'resultat' => $resultat,
  936.             'data' => $data,
  937.             'NbChampPasRensigne' => $NbChampPasRensigne,
  938.             'champPasRensigne' => $champPasRensigne,
  939.             'simulationUtilisateur' => $simulationUtilisateur,
  940.             'metaTag'=>$metaTag,
  941.             'idAnnonce'=>$idAnnonce,
  942.             'titreAnnonce'=>$titreAnnonce
  943.         ]);
  944.     }
  945.     /**
  946.      * @param Request                     $request
  947.      * @param                             $codePays
  948.      * @param SimulationRepriseProvider $simulationRepriseProvider
  949.      * @param LogMarketingProviderService $logMarketingProviderService
  950.      * @return mixed
  951.      * @throws \Exception
  952.      */
  953.     public function ratio4(Request $request$codePaysLogMarketingProviderService $logMarketingProviderService,SimulationRepriseProvider $simulationRepriseProvider)
  954.     {
  955.         $lang $request->getSession()->get('lang');
  956.         $hasService false;
  957.         $dateFinAcces "";
  958.         $resultat = array();
  959.         $data = array();
  960.         $simulationUtilisateur NULL;
  961.         $resultat["ratio1"] = NULL;
  962.         $resultat["ratio2"] = NULL;
  963.         $resultat["ratio3"] = NULL;
  964.         $resultat["ratio4"] = NULL;
  965.         $resultat["commRatio1"] = "";
  966.         $resultat["colorRatio1"] = "";
  967.         $resultat["commRatio2"] = "";
  968.         $resultat["colorRatio2"] = "";
  969.         $resultat["commRatio3"] = "";
  970.         $resultat["colorRatio3"] = "";
  971.         $resultat["commRatio4"] = "";
  972.         $resultat["colorRatio4"] = "";
  973.         $resultat["montantEcheance"] = NULL;
  974.         $resultat["montantEmprent"] = NULL;
  975.         $resultat["montantRepriseEntreprise"] = NULL;
  976.         $resultat["tauxTotal"] = NULL;
  977.         $user $this->getUser();
  978.         $titreAnnonce false;
  979.         $idAnnonce false;
  980.         $metaTitle "Simulateur de reprise d'entreprise, les 4 ratios demandés par les banques";
  981.         $metaDescription "Utilisez le simulateur de reprise d'entreprise FUSACQ pour déterminer si vos cibles sont finançables via les 4 ratios principaux demandés par les banques";
  982.         $canonical "https://www.fusacq.com/simulateur-reprise-entreprise";
  983.         $metaTag $this->metaTag
  984.         ->setTitle($this->te->translate($metaTitle$lang"""M"""))
  985.         ->setDescription($this->te->translate($metaDescription$lang"""M"""))
  986.         ->setCanonical($canonical);
  987.         if($user){
  988.             $hasService $this->dam->checkIfThisUserHasDroitService($user, [58,81]); // 58 = similateur reprise 81 82 fusacq elite
  989.             if ($hasService){
  990.                 $allParametres $request->query->all();
  991.                 if (isset($allParametres["simulation"])&&$allParametres["simulation"]!=NULL&&$allParametres["simulation"]!=""){
  992.                     $simulationUtilisateur $this->em->getRepository(SimulationsReprise::class)->findOneBy(array('id_simulation'=>$allParametres["simulation"]));
  993.                     if ($simulationUtilisateur != NULL){
  994.                         if ($simulationUtilisateur->_get("id_utilisateur")!=$user->_get("id_utilisateur")){
  995.                             return $this->redirect ("/simulateur-reprise-entreprise");
  996.                         }
  997.                     }
  998.                     else{
  999.                         return $this->redirect ("/simulateur-reprise-entreprise");
  1000.                     }
  1001.                 }
  1002.                 if($simulationUtilisateur == NULL){
  1003.                     $data["apport_personnel"] = NULL;
  1004.                     $data["prix_de_vente"] = NULL;
  1005.                     $data["type_rachat"] = NULL;
  1006.                     $data["duree"] = NULL;
  1007.                     $data["fais_avocat"] = NULL;
  1008.                     $data["droits_enregistre"] = NULL;
  1009.                     $data["taux_pret"] = NULL;
  1010.                     $data["taux_assurance"] = NULL;
  1011.                     $data["garan_BPI"] = NULL;
  1012.                     $data["cout_garan"] = NULL;
  1013.                     $data["activite_cible"] = NULL;
  1014.                     $data["RN"] = NULL;
  1015.                     $data["endette_cible"] = NULL;
  1016.                     $data["montant_ann_cible"] = NULL;
  1017.                     $data["CAF"] = NULL;
  1018.                 }
  1019.                 else{
  1020.                     $data["apport_personnel"] = $simulationUtilisateur->_get("apport_personnel");
  1021.                     $data["prix_de_vente"] = $simulationUtilisateur->_get("prix_de_vente");
  1022.                     $data["type_rachat"] = $simulationUtilisateur->_get("type_rachat");
  1023.                     $data["duree"] = $simulationUtilisateur->_get("duree");
  1024.                     $data["fais_avocat"] = $simulationUtilisateur->_get("fais_avocat");
  1025.                     $data["droits_enregistre"] = $simulationUtilisateur->_get("droits_enregistre");
  1026.                     $data["taux_pret"] = $simulationUtilisateur->_get("taux_pret");
  1027.                     $data["taux_assurance"] = $simulationUtilisateur->_get("taux_assurance");
  1028.                     $data["garan_BPI"] = $simulationUtilisateur->_get("garan_BPI");
  1029.                     $data["cout_garan"] = $simulationUtilisateur->_get("cout_garan");
  1030.                     $data["activite_cible"] = $simulationUtilisateur->_get("activite_cible");
  1031.                     $data["RN"] = $simulationUtilisateur->_get("RN");
  1032.                     $data["endette_cible"] = $simulationUtilisateur->_get("endette_cible");
  1033.                     $data["montant_ann_cible"] = $simulationUtilisateur->_get("montant_ann_cible");
  1034.                     $data["CAF"] = $simulationUtilisateur->_get("CAF");
  1035.                     if (!empty($simulationUtilisateur->_get("id_annonce_vendeur"))) {
  1036.                         $annonce $this->em->getRepository(AnnoncesVendeur::class)->find($simulationUtilisateur->_get("id_annonce_vendeur"));
  1037.                         if (!empty($annonce)) {
  1038.                             $idAnnonce $simulationUtilisateur->_get("id_annonce_vendeur");
  1039.                             $titreAnnonce $annonce->_get("titre_annonce");
  1040.                         }
  1041.                     }
  1042.                 }
  1043.                 $NbChampPasRensigne 0;
  1044.                 $champPasRensigne = array();
  1045.                 if ($data["apport_personnel"] == NULL){
  1046.                     $NbChampPasRensigne++;
  1047.                     $champPasRensigne[] = "Votre apport personnel";
  1048.                 }
  1049.                 if ($data["prix_de_vente"] == NULL){
  1050.                     $NbChampPasRensigne++;
  1051.                     $champPasRensigne[] = "Prix de vente de l'entreprise";
  1052.                 }
  1053.                 if ($data["endette_cible"] == NULL){
  1054.                     $NbChampPasRensigne++;
  1055.                     $champPasRensigne[] = "L'endettement net de la cible";
  1056.                 }
  1057.                 if ($data["CAF"] == NULL){
  1058.                     $NbChampPasRensigne++;
  1059.                     $champPasRensigne[] = "La capacité d'autofinancement de la cible";
  1060.                 }
  1061.                 $resultat $simulationRepriseProvider->donneResultatCalcule($data);
  1062.             }
  1063.             
  1064.         }
  1065.         
  1066.         return $this->render('simulateur/simulateur-reprise-ratio-quatre.html.twig', [
  1067.             'hasService' => $hasService,
  1068.             'dateFinAcces' => $dateFinAcces,
  1069.             'resultat' => $resultat,
  1070.             'data' => $data,
  1071.             'NbChampPasRensigne' => $NbChampPasRensigne,
  1072.             'champPasRensigne' => $champPasRensigne,
  1073.             'simulationUtilisateur' => $simulationUtilisateur,
  1074.             'metaTag'=>$metaTag,
  1075.             'idAnnonce'=>$idAnnonce,
  1076.             'titreAnnonce'=>$titreAnnonce
  1077.         ]);
  1078.     }
  1079. }