<?php
declare(strict_types=1);
/**
* @author Mehrez Labidi
*/
namespace App\Controller;
use App\Entity\Utilisateur;
use App\Form\Models\DemandeFinancement;
use App\Form\Type\DemandeFinancementType;
use App\Services\DemandeDeFinancement as DemandeDeFinancementService;
use App\Services\LogMarketingProvider as LogMarketingProviderService;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use App\Form\Models\ContacteNouveauFormulaireCapital;
use App\Form\Models\ContacteNouveauFormulaireCapitalNonCap;
use App\Form\Type\ContactezNouveauFormulaireCapitalType;
use App\Form\Type\ContactezNouveauFormulaireNonCapCapitalType;
use App\Services\ContactezNous as ContactezNousService;
use App\Services\Encryptage\AesEncrytageStrategy;
use App\Services\MetaTag;
class FusacqVousAideController extends EntityUsingController {
public function __construct(MetaTag $metaTag) {
$this->metaTag = $metaTag;
}
public const MAX_AGE = 43200; // 12heures
public function simulerVotrePret() {
$metaTag = $this->metaTag
->setTitle("Prêt Reprise d'Entreprise | Solutions de Financement | Fusacq")
->setDescription("Découvrez les solutions de financement pour votre projet de rachat d'entreprise. Conseils, types de prêts, accompagnement et conditions d'accès aux financements pour réussir votre reprise. Experts Fusacq.");
$response = $this->render('fusacq_vous_aide/simuler_votre_pret.html.twig', [
"controller_name" => "FusacqVousAideController", 'metaTag' => $metaTag,
]);
$response->setPublic();
$response->setMaxAge(self::MAX_AGE); // 12heures
return $response;
}
public function simulerVotreReprise() {
$metaTag = $this->metaTag
->setTitle("Simulateur de Prêt pour Reprise d'Entreprise | Calculez votre Financement | Fusacq")
->setDescription("Estimez facilement votre prêt pour rachat d'entreprise avec notre simulateur gratuit. Calculez mensualités, taux et capacité d'emprunt pour financer votre projet de reprise. Outil exclusif Fusacq.");
$response = $this->render('fusacq_vous_aide/simuler_votre_reprise.html.twig', [
"controller_name" => "FusacqVousAideController", 'metaTag' => $metaTag,
]);
$response->setPublic();
$response->setMaxAge(self::MAX_AGE); // 12heures
return $response;
}
/**
* @param Request $request
* @param $codePays
* @param DemandeDeFinancementService $demandeDeFinancementService
* @param LogMarketingProviderService $logMarketingProviderService
* @return mixed
* @throws \Exception
*/
public function faireUneDemandeDeFinancement(Request $request, $codePays, DemandeDeFinancementService $demandeDeFinancementService, LogMarketingProviderService $logMarketingProviderService) {
$model = new DemandeFinancement();
$form = $this->createForm(DemandeFinancementType::class, $model, [
'action' => $this->generateUrl(
$request->attributes->get('_route'),
[
'codePays' => $codePays
]
),
'method' => 'POST',
]);
$form->handleRequest($request);
$societe_visee = null;
$operation_envisagee = null;
if ($form->isSubmitted()) {
$societe_visee = $request->request->get('societe_visee');
$operation_envisagee = $request->request->get('operation_envisagee');
if ($form->isValid()) {
$data = $form->getData();
$response = $demandeDeFinancementService->sendMailDemandeDeFinancement($data);
if ($response) {
$this->addFlash('success_demande_fin', "votre demande de financement est bien envoyee");
}
$user = $this->getUser(); // $this->getDoctrine()->getManager()->getRepository(Utilisateur::class)->find(19);
if ($user) {
//ajouter l'action << Demande de financement >> dans les logs_actions, type_action n°88
$logMarketingProviderService->ajouterActionLogsActions(
$user->_get('id_utilisateur') ?? $user['id_utilisateur'],
"88",
$user->_get('type_utilisateur') ?? $user['type_utilisateur'],
'----');
}
} else {
$this->addFlash('error_demande_fin', "votre demande de financement n'est pas envoyee");
}
}
$metaTag = $this->metaTag
->setTitle("Prêt Reprise d'Entreprise | Guide Complet de Financement | Fusacq")
->setDescription("Tout savoir sur le financement de rachat d'entreprise : types de prêts, conditions d'obtention, garanties et conseils d'experts pour optimiser votre dossier de reprise. Solution complète par Fusacq.");
return $this->render('fusacq_vous_aide/faire_une_demande_de_financement.html.twig', [
"controller_name" => "FusacqVousAideController", 'form' => $form->createView(),
"societe_visee" => $societe_visee, 'metaTag' => $metaTag,
"operation_envisagee" => $operation_envisagee,
]);
}
/**
* @param Request $request
* @param $codePays
* @param DemandeDeFinancementService $demandeDeFinancementService
* @param LogMarketingProviderService $logMarketingProviderService
* @param ContactezNousService $contactezNous
* @param AesEncrytageStrategy $aesEncrytageStrategy
* @return mixed
* @throws \Exception
*/
public function nouveauFormulaireCapitalImmateriel(Request $request, $codePays, LogMarketingProviderService $logMarketingProviderService, ContactezNousService $contactezNous, AesEncrytageStrategy $aesEncrytageStrategy) {
$user = $this->getUser();
if ($user) {
$model = new ContacteNouveauFormulaireCapitalNonCap();
$model->_set("nom", $user->_get("nom_utilisateur"));
$model->_set("prenom", $user->_get("prenom_utilisateur"));
$model->_set("email", $user->_get("email_utilisateur"));
$model->_set("societe", $user->_get("factur_nom_societe"));
$model->_set("telephone", $aesEncrytageStrategy->decryptage($user->_get("telephone_utilisateur")));
$form = $this->createForm(ContactezNouveauFormulaireNonCapCapitalType::class, $model, [
'action' => $this->generateUrl(
$request->attributes->get('_route'),
[
'codePays' => $codePays,
]
),
'method' => 'POST',
]);
} else {
$model = new ContacteNouveauFormulaireCapital();
$form = $this->createForm(ContactezNouveauFormulaireCapitalType::class, $model, [
'action' => $this->generateUrl(
$request->attributes->get('_route'),
[
'codePays' => $codePays,
]
),
'method' => 'POST',
]);
}
$form->handleRequest($request);
if ($form->isSubmitted()) {
if ($form->isValid()) {
$data = $form->getData();
$response = $contactezNous->sendMailNouveauFormulaireCapital($data);
if ($response) {
$this->addFlash('success_form_capital_imm', 'Votre demande a bien été envoyée');
} else {
$this->addFlash('error_form_capital_imm', "Votre demande n'a pas été envoyée");
}
} else {
$this->addFlash('error_form_capital_imm', "Votre demande n'a pas été envoyée");
}
}
return $this->render('fusacq_vous_aide/contact_nouveau_formulaire_capital.html.twig', [
'controller_name' => 'FusacqVousAideController',
'form' => $form->createView()
]);
}
}