<?php
namespace App\Controller\Generale;
use App\Service\Generale;
use App\Service\SessionManager;
use App\Service\WSAerien;
use App\Service\WSAuth;
use App\Service\WSCMS;
use App\Service\WSEspaceAffilie;
use App\Service\WSLocationVoiture;
use App\Service\WSSejourHotel;
use App\Service\WSVoyagesOrganise;
use App\Twig\Extension\GeneraleExtension;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
use Symfony\Component\Form\Extension\Core\Type\DateType;
use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\Session\SessionInterface;
use Symfony\Component\Validator\Constraints\Positive;
use Symfony\Component\Form\Extension\Core\Type\EmailType;
use Symfony\Component\Form\Extension\Core\Type\TextareaType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\Extension\Core\Type\IntegerType;
use Symfony\Component\Form\Extension\Core\Type\HiddenType;
use Symfony\Component\Form\Extension\Core\Type\TimeType;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\Routing\Annotation\Route;
use Knp\Snappy\Pdf;
class IndexController extends AbstractController
{
public function __construct(Generale $service)
{
$this->service = $service;
}
/**
* @Route("/", name="accueil")
*/
public function accueil(WSCMS $WSCMS, WSSejourHotel $hotel, WSEspaceAffilie $affilie, Request $request, WSLocationVoiture $WSLocationVoiture, WSAerien $WSAerien): Response
{
/*
* $frontBlocs = $hotel->FrontBlocs(['devise' => $this->get('session')->get('devise'), 'version' => 'blocs']);
* $hotelPromoParMois = $hotel->HotelPromoParMois(['devise' => $this->get('session')->get('devise')]);
* $hotelPromoParMois['villesgroupes'] $hotelPromoParMois['maxhotelPromoPour']
*/
if (isset($_SERVER['ROUTE_ACCUEIL']))
return $this->redirectToRoute($_SERVER['ROUTE_ACCUEIL'], isset($_SERVER['PARAMS_ROUTE_ACCUEIL']) ? json_decode($_SERVER['PARAMS_ROUTE_ACCUEIL'], true) : []);
if (isset($_SERVER['DOMAINE_AMADEUS']))
$classes['Resultat'] = [
[
'id' => 'Y',
'typeClasse' => 'Economy'
],
[
'id' => 'W',
'typeClasse' => 'Premium Economy'
],
[
'id' => 'C',
'typeClasse' => 'Business'
],
[
'id' => 'F',
'typeClasse' => 'First'
]
];
else
$classes = $WSAerien->Classe();
$classe = $request->get('classe');
if ($request->isMethod('POST')) {
$file = $request->files->get('image');
$path = sha1(uniqid(mt_rand(), TRUE)) . '.' . $file->guessExtension();
$a = $affilie->ProfileAgence()['ProfileAgence'];
$uploadRootDir = $a['uploadRootDir'];
$amicale = [
'amicale' => [
'libelle' => '',
'tel' => '',
'fax' => '',
'email' => '',
'matriculeFiscale' => '',
'registreCommercie' => '',
'adresse' => '',
'path' => $path
]
];
$a = $affilie->ProfileAgence($amicale);
if (!isset($a['Error']))
$file->move($uploadRootDir, $path);
}
/*dd($this->service);*/
return $this->render($this->service->checkCustomTemplate('accueil.html.twig'), [
'elements' => $WSCMS->Element()['Elements'],
'sliders' => $WSCMS->Slider()['Sliders'],
'hotels' => $hotel->PackTopVente()['PackTopVente'],
'hotelsRecommandes' => $hotel->PackBonPlan()['PackBonPlan'],
'lieux' => $WSLocationVoiture->LieuxPriseEnCharge(),
'lieuArrivee' => $request->get('lieu_arrivee'),
'lieuDepart' => $request->get('lieu_depart'),
'dateDebutFin' => $request->get('date_debut_fin'),
'dateDebut' => null,
'dateFin' => null,
'classes' => $classes,
'classe' => $classe,
'blocBootstrap' => $WSCMS->BlocBootstrap()['BlocsBootstrap']
]);
}
/**
* @Route("/feature-flags", name="feature_flags")
*/
public function featureFlags(SessionManager $sessionManager): Response
{
$flags = $sessionManager->getAllFeatureFlags();
return $this->render('feature_flags.html.twig', [
'flags' => $flags,
]);
}
/**
* @Route("/feature-flags/toggle/{key}", name="feature_flag_toggle")
*/
public function toggleFeatureFlags(string $key, SessionManager $sessionManager, Request $request): Response
{
$newValue = $sessionManager->toggleFeatureFlag($key);
if ($request->isXmlHttpRequest())
return new JsonResponse([
'success' => true,
'newStatus' => $newValue,
]);
return $this->redirect($request->headers->get('referer', $this->generateUrl('feature_flags')));
}
/**
* @Route("/wishlist/toggle/{hotelId}", name="wishlist_toggle", methods={"POST"})
*/
public function toggleWishlist(int $hotelId, SessionInterface $session)
{
try {
// Récupérer la liste de souhaits depuis la session
$wishlist = $session->get('wishlist', []);
// Vérifier si l'hôtel est déjà dans la liste de souhaits
if (in_array($hotelId, $wishlist)) {
// Retirer l'hôtel de la liste de souhaits
$wishlist = array_filter($wishlist, function ($id) use ($hotelId) {
return $id !== $hotelId;
});
$isInWishlist = false;
} else {
// Ajouter l'hôtel à la liste de souhaits
$wishlist[] = $hotelId;
$isInWishlist = true;
}
// Mettre à jour la liste de souhaits dans la session
$session->set('wishlist', array_values($wishlist));
// Retourner une réponse JSON
return new JsonResponse([
'success' => true,
'isInWishlist' => $isInWishlist,
]);
} catch (\Exception $e) {
// En cas d'erreur, retourner un message d'erreur
return new JsonResponse([
'success' => false,
'message' => 'Une erreur est survenue : ' . $e->getMessage(),
], 500);
}
}
/**
* @Route("/wishlist/view", name="wishlist_view")
*/
public function viewWishlist(SessionInterface $session)
{
// Récupérer la liste de souhaits depuis la session
$wishlist = $session->get('wishlist', []);
return $this->redirectToRoute('sejour_hotel_availability_landing_page', ['hotel' => implode('-', empty($wishlist) ? [0] : $wishlist)]);
}
/**
* @Route("/switch-connexion/{id}", name="switch_connexion")
*/
public function switchConnexion($id, WSAuth $auth, WSEspaceAffilie $affilie)
{
if (!$this->get('session')->get('ADMINISTRATOR_AGENCY') and !isset($_SESSION['ROLE_SUPPER_ADMIN'])) {
$this->addFlash('danger', 'accès refusé');
return $this->render('bundles/TwigBundle/Exception/error404.html.twig');
}
$infosUser = $auth->infosUserAffilier(['amicale' => $id]);
if (isset($infosUser['Error']))
$this->addFlash('danger', $infosUser['Error']);
else {
$this->get('session')->set('client', $infosUser['client']);
$this->get('session')->set('solde', $affilie->Solde());
}
return $this->redirect($_SERVER['HTTP_REFERER']);
}
/**
* @Route("/verif-couponreduction/{produit}/{code}/{achat}/{vente}/{checkin}/{nuitees}/{hotel}",
* options={"expose"=true},
* defaults={"produit":"SHT", "hotel":null},
* name="verif_couponreduction")
*/
public function verifCouponReduction($produit, $code, $achat, $vente, $checkin, $nuitees, $hotel, WSCMS $WSCMS): Response
{
return new JsonResponse($WSCMS->CouponReduction(['hotel' => $hotel, 'code' => $code, 'achat' => $achat, 'vente' => $vente, 'checkin' => $checkin, 'nuitees' => $nuitees, 'produit' => $produit]));
}
/**
* @Route("/referencement-by-route",
* name="referencement_by_route")
*/
public function referencementByRoute(Request $request, GeneraleExtension $ext): JsonResponse
{
$route = $request->query->get('route');
$path = $request->query->get('path');
$balise = $request->query->get('balise');
$html = $ext->referencementByRoute($route, $path, $balise);
return $this->json(['html' => $html]);
}
/**
* @Route("/recu-paiement",
* options={"expose"=true},
* name="recu_paiement")
*/
public function recuPaiement(Request $request, WSCMS $WSCMS): Response
{
$params = json_decode(base64_decode($_GET['params']), true);
$client = $params['Client'];
$reference = $params['Numéro de commande'];
$date = $params['Date et l’heure de la transaction'];
$montant = $params['Montant de paiement'];
unset($params['Client'], $params['Date et l’heure de la transaction'], $params['Montant de paiement'], $params['Numéro de commande']);
if ($request->get('email')) {
$pdf = self::genererPDFRecuPaiement(['params' => $_GET['params']]);
$res = $WSCMS->SendMailLibre([
'mailToClient' => true,
'email' => $request->get('email'),
'subject' => "Reçu de paiement",
'attach_base64' => [
'data' => base64_encode(file_get_contents($pdf)),
'filename' => 'reçu-paiement.pdf',
'contentType' => mime_content_type($pdf)
],
'body' => $this->renderView($this->service->checkCustomTemplate('recu-paiement.html.twig'), [
'client' => $client,
'date' => $date,
'reference' => $reference,
'montant' => $montant,
'params' => $params,
])
]);
unlink($pdf);
if (isset($res['SendMail']['Error']))
return new Response(0);
return new Response($res['SendMail']);
}
return $this->render($this->service->checkCustomTemplate('recu-paiement.html.twig'), [
'client' => $client,
'date' => $date,
'reference' => $reference,
'montant' => $montant,
'params' => $params,
]);
}
/**
* @Route("/pdf-recu-paiement",
* options={"expose"=true},
* name="pdf_recu_paiement")
*/
public function pdfRecuPaiement(): Response
{
$pdf = self::genererPDFRecuPaiement($_GET);
header('Content-Description: File Transfer');
header('Content-Disposition: attachment; filename=reçu-paiement.pdf');
header("Content-Type: application/pdf");
readfile($pdf);
unlink($pdf);
return new Response(" ");
}
/**
* @param $data
* @return string
*
* 1️⃣ Supprime la version actuelle (si elle existe)
* sudo yum remove -y wkhtmltopdf
*
* 2️⃣ Installe les polices nécessaires
* sudo yum install -y xorg-x11-fonts-75dpi xorg-x11-fonts-Type1
* sudo apt install xfonts-100dpi xfonts-75dpi
*
* 3️⃣ Télécharge la version “patched” (statique) de wkhtmltopdf
* wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox-0.12.6-1.centos7.x86_64.rpm --> yum
* wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox_0.12.6-1.focal_amd64.deb --> apt
*
* 4️⃣ Installe ce paquet
* sudo yum localinstall -y wkhtmltox-0.12.6-1.centos7.x86_64.rpm
* sudo apt install ./wkhtmltox_0.12.6-1.focal_amd64.deb
*
* 5️⃣ Vérifie que l’installation est correcte
* wkhtmltopdf --version => wkhtmltopdf 0.12.6 (with patched qt)
*/
function genererPDFRecuPaiement($data)
{
/*
* sudo apt update
* sudo apt install wkhtmltopdf -y or yum install wkhtmltopdf
* sudo cp /usr/bin/wkhtmltopdf /usr/local/bin/wkhtmltopdf
*
* ou bien
*
* yum install wget -y
* wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox-0.12.6-1.centos8.x86_64.rpm
* yum localinstall wkhtmltox-0.12.6-1.centos8.x86_64.rpm -y
* wkhtmltopdf --version
*
* exec("wkhtmltopdf '$url' $file 2>&1"); //2>&1 pour comprendre l'erreur exacte.
*/
/*
* $snappy = new Pdf('/usr/local/bin/wkhtmltopdf');
*
* header('Content-Type: application/pdf');
* header('Content-Disposition: attachment; filename="file.pdf"');
* echo $snappy->getOutput('https://www.google.fr/');
*/
$snappy = new Pdf('/usr/local/bin/wkhtmltopdf');
#$snappy = new Pdf($this->getParameter('kernel.project_dir') . '/vendor/h4cc/wkhtmltopdf-amd64/bin/wkhtmltopdf-amd64');
$ref = uniqid();
$file = "uploads/recu-paiement-$ref.pdf";
$snappy->generate($this->generateUrl('recu_paiement', $data, 0), $file);
return $file;
}
/**
* @Route("/header", name="header")
*/
public function header()
{
return $this->render($this->service->checkCustomTemplate('header.html.twig'));
}
/**
* @Route("/footer", name="footer")
*/
public function footer()
{
return $this->render($this->service->checkCustomTemplate('footer.html.twig'));
}
/**
* @Route("/blogs/{categorie}/{motcle}", name="blogs", defaults={"categorie"="all","motcle"="all"})
*/
public function listblogs($categorie, $motcle, WSCMS $WSCMS): Response
{
$articles = $WSCMS->Article();
$categories = $articles['Categories'];
$motcles = $articles['MotCles'];
$articles = $articles['Articles'];
if ($categorie != 'all')
$articles = array_filter($articles, function ($item) use ($categorie) {
return in_array($categorie, array_column($item['categories'], 'id'));
});
if ($motcle != 'all')
$articles = array_filter($articles, function ($item) use ($motcle) {
return in_array($motcle, array_column($item['motcles'], 'id'));
});
return $this->render($this->service->checkCustomTemplate('blogs/liste-blogs.html.twig'), [
'articles' => $articles,
'categories' => $categories,
'motcles' => $motcles,
]);
}
/**
* @Route("/details-blog/{id}/{slug}", name="details_blog")
*/
public function detailsblog($id, $slug, WSCMS $WSCMS): Response
{
return $this->render($this->service->checkCustomTemplate('blogs/detail-blogs.html.twig'), [
'article' => $WSCMS->Article()['Articles'][$id],
'articles' => $WSCMS->Article()['Articles']
]);
}
/**
* @Route ("/article/{slug}", name="details-article")
*/
public function article($slug, WSCMS $WSCMS): Response
{
$articles = $WSCMS->ArticlesElement()['ArticlesElement'];
$element = array();
$element['desktop'] = array();
$element['mobile'] = array();
foreach ($articles['desktop'] as $item) {
foreach ($item['elements'] as $_element) {
if ($_element['slug'] == $slug) {
$element['desktop'] = $_element;
break(1);
}
}
}
foreach ($articles['mobile'] as $item) {
foreach ($item['elements'] as $_element) {
if ($_element['slug'] == $slug) {
$element['mobile'] = $_element;
break(1);
}
}
}
return $this->render($this->service->checkCustomTemplate('articles/article.html.twig'), [
'articleDesktop' => $element['desktop'],
'articleMobile' => $element['mobile']
]);
}
/**
* @Route ("/contact", name="contact")
*/
public function contact(Request $request, GeneraleExtension $generaleExtension, WSCMS $WSCMS): Response
{
$infoAgence = $generaleExtension->getAgence()['information'];
$form = $this->createFormBuilder(null, ['csrf_protection' => true])
->add('email', EmailType::class, array('required' => TRUE))
->add('nom', TextType::class, array('required' => TRUE))
->add('website', TextType::class, array('required' => false))
->add('checkRobot', TextType::class, array('required' => false))
->add('gsm', TextType::class, array('required' => false))
->add('objet', ChoiceType::class, ['choices' => ['Demande information' => 'information', 'Reclamation' => 'reclamation',],])
->add('piecejoint', TextareaType::class, array('required' => false))
->add('message', TextareaType::class, array('required' => TRUE))
->getForm();
$form->handleRequest($request);
if ($form->isSubmitted()) {
if ($form->isValid()) {
try {
$data = $form->getData();
// dd($data,$_POST);
if (!empty($data['website']))
return new Response("no web site");
$body = $this->renderView($this->service->checkCustomTemplate('contact_mail_body.html.twig'), array(
'nom' => $data['nom'],
'gsm' => $data['gsm'],
'message' => $data['message'],
'objet' => $data['objet'],
'email' => $data['email'],
));
$params = array(
'checkRobot' => $data['checkRobot'],
'email' => $data['email'],
// 'subject' => $data['message'],
'subject' => $data['objet'],
'attach_base64' => json_decode($data['piecejoint'], true),
'body' => $body,
'post' => $_POST,
'page_contact' => true
);
$result = $WSCMS->SendMailLibre($params);
if ($result['SendMail'] == 1) {
$msg = "<span style='color:green;font-size: 14px;'>Votre message a été Envoyé avec succès !</span>";
$this->addFlash('success', 'Félicitation votre message a été envoyé avec succès! ');
return $this->redirectToRoute('contact_ok');
} else
$msg = '<span style="color:red;font-size: 14px;">Echèc d\'envoi</span>';
} catch (\Exception $e) {
$msg = '<span style="color:red">' . $e->getMessage() . '</span>';
}
} else
$msg = '<span style="color:red;font-size: 14px;">' . (string)$form->getErrors(true, false) . '</span>';
return new Response($msg);
}
$configAffichage = array();
if (!is_null($WSCMS->ConfigFrontOffice()))
$configAffichage = $WSCMS->ConfigFrontOffice()['ConfigFrontOffice'];
return $this->render($this->service->checkCustomTemplate('contact.html.twig'), array(
'infoAgence' => $infoAgence,
'form' => $form->createView(),
'contactPerso' => $WSCMS->ContactPerso(),
'configAffichage' => $configAffichage,
));
}
/**
* @Route ("/envoi=Ok", name="contact_ok")
*/
public function contact_ok()
{
return $this->render($this->service->checkCustomTemplate('contact_ok.html.twig'));
}
/**
* @Route ("/sendPayment", name="sendPayment")
*/
public function sendPayments(Request $request, GeneraleExtension $generaleExtension, WSCMS $WSCMS): Response
{
$infoAgence = $generaleExtension->getAgence()['information'];
$tabDevise = [];
foreach ($generaleExtension->getDevise() as $dev) {
$tabDevise = array_merge($tabDevise, [$dev["code"] => $dev["libelle"]]);
}
$form = $this->createFormBuilder(null, ['csrf_protection' => true])
->add('montant', TextType::class, array('required' => TRUE))
->add('devise', ChoiceType::class, ['choices' => $tabDevise])
->add('paiement', ChoiceType::class, ['choices' => [
'Séjour Hotel en Tunisie' => 'Séjour Hotel en Tunisie',
'Voyages Organisés' => 'Voyages Organisés',
'Programmes & activités' => 'Programmes & activités',
'Billetterie' => 'Billetterie',
'Maritime' => 'Maritime',
'Transfert' => 'Transfert',
'ResaBooking' => 'ResaBooking',
'Réservation Divers' => 'Réservation Divers',
'Mice' => 'Mice',
'Séjour Hotel à l \'Etranger' => 'Séjour Hotel à l \'Etranger',
'Bien-être' => 'Bien-être',
'Location de voiture' => 'Location de voiture',],])
->add('mode', ChoiceType::class, ['choices' => ['Virement bancaire' => 'Virement bancaire', 'Versement bancaire' => 'Versement bancaire',],])
->add('note', TextareaType::class, array('required' => true))
->add('piecejoint', TextareaType::class, array('required' => false))
->add('checkRobot', TextType::class, array('required' => false))
->add('code_formulaire', HiddenType::class, array('required' => false, 'data' => 'Formulaire_Payment',))
->getForm();
$form->handleRequest($request);
if ($form->isSubmitted()) {
if ($form->isValid()) {
/* dd($_POST);*/
try {
$data = $form->getData();
$body = $this->renderView($this->service->checkCustomTemplate('sendPayment_mail_body.html.twig'), array(
'montant' => $data['montant'],
'devise' => $data['devise'],
'paiement' => $data['paiement'],
'mode' => $data['mode'],
'note' => $data['note'],
));
$params = array(
'checkRobot' => $data['checkRobot'],
'subject' => $data['note'],
'post' => $_POST,
'code_formulaire' => $data['code_formulaire'],
'attach_base64' => json_decode($data['piecejoint'], true),
'body' => $body
);
$result = $WSCMS->SendMailLibre($params);
/* dd($data,$params,$result);*/
if ($result['SendMail'] == 1)
$msg = "<span style='color:green;font-size: 14px;'>Votre message a été Envoyé avec succès !</span>";
else
$msg = '<span style="color:red;font-size: 14px;">Echèc d\'envoi</span>';
} catch (\Exception $e) {
$msg = '<span style="color:red">' . $e->getMessage() . '</span>';
}
} else
$msg = '<span style="color:red;font-size: 14px;">' . (string)$form->getErrors(true, false) . '</span>';
return new Response($msg);
}
$configAffichage = array();
if (!is_null($WSCMS->ConfigFrontOffice()))
$configAffichage = $WSCMS->ConfigFrontOffice()['ConfigFrontOffice'];
return $this->render($this->service->checkCustomTemplate('sendPayment.html.twig'), array(
'infoAgence' => $infoAgence,
'form' => $form->createView(),
'configAffichage' => $configAffichage,
));
}
/**
* @Route("/landing-page/{slug}", name="landing_page")
* @Route("/hotels/landing-page/{slug}", name="landing_page_hotels")
* @Route("/avail-hotels/landing-page/{slug}", name="landing_page_avail_hotels")
*/
public function landingPage($slug, WSSejourHotel $hotel, Request $request): Response
{
$banner = "{$this->service->domaineBack()}/file_manager/source/landing.webp";
if (in_array($request->get('_route'), ['landing_page_hotels', 'landing_page_avail_hotels'])) {
$frontBlocs = $hotel->FrontBlocs(['devise' => $this->get('session')->get('devise'), 'version' => 'blocs']);
$frontBloc = array_column($frontBlocs, null, 'slug')[$slug];
$flashPromo = ['libelle' => $frontBloc['titre']];
$details = array_map(function ($hotel) {
if (!isset($hotel['prices']['minPrixPromo']))
if (isset($hotel['prices']['minPrix']))
$hotel['prices']['minPrixPromo'] = $hotel['prices']['minPrix'];
elseif (isset($hotel['prices']['prix-demi-double']))
$hotel['prices']['minPrixPromo'] = [
'prix' => $hotel['prices']['prix-demi-double'],
'libelle' => null,
'code' => null
];
else
$hotel['prices']['minPrixPromo'] = [
'prix' => null,
'libelle' => null,
'code' => null
];
return [
'libelle' => $hotel['details']['libelle'],
'sulg' => $hotel['details']['slug'],
'photo' => $hotel['photo'],
'prix' => $hotel['prices']['minPrixPromo']['prix'],
'lbl_arrangement' => $hotel['prices']['minPrixPromo']['libelle'],
'code_arrangement' => $hotel['prices']['minPrixPromo']['code'],
'idhotel' => $hotel['details']['id'],
'image' => $hotel['photo'],
'etiquettes' => $hotel['prices']['etiquettes'],
//'etiquetteHotel' => array_values(array_column(array_merge($hotel['prices']['etiquettes'],$hotel['prices']['etiquettesSaison'],$hotel['prices']['etiquettesEmplacement']),null,'libelle')),
'star' => $hotel['details']['categorie']['nombre_etoiles'],
'ville' => $hotel['details']['ville']['libelle'],
'nuitees' => $hotel['prices']['nuitees'],
'checkin' => $hotel['prices']['dateDebut']
];
},
$frontBloc['hotels']);
} elseif (strpos($slug, '-pack-bon-plan') !== false) {
$packBonPlan = array_column($hotel->PackBonPlan()['PackBonPlan'], null, 'categorieId')[explode('-', $slug)[0]];
$flashPromo = ['libelle' => $packBonPlan['categorie']];
$hotels = $packBonPlan['element'];
if ($packBonPlan['bannier'])
$banner = $packBonPlan['bannier'];
$details = array_map(function ($hotel) {
return [
'libelle' => $hotel['hotel']['libelle'],
'sulg' => $hotel['hotel']['slug'],
'photo' => $hotel['hotel']['photo'],
'prix' => $hotel['prix'],
'lbl_arrangement' => $hotel['libelle_arrg'],
'code_arrangement' => $hotel['code_arrg'],
'idhotel' => $hotel['hotel']['id'],
'image' => $hotel['image'],
'etiquetteHotel' => $hotel['etiquetteHotel'],
'star' => $hotel['hotel']['categorie']['nombre_etoiles'],
'ville' => $hotel['hotel']['ville']['libelle'],
'nuitees' => $hotel['nuitees'],
'checkin' => date('Y-m-d')
/*'source' => $hotel['hotel']['source'],*/
];
},
$hotels);
} else {
$flashPromo = $hotel->FlashPromo()['FlashPromo'][$slug];
$banner = $flashPromo['bannier'];
$details = array_map(function ($hotel) {
$checkin = date('Y-m-d');
if ($hotel['firstCheckIn'] and new \DateTime($hotel['firstCheckIn']) >= new \DateTime())
$checkin = $hotel['firstCheckIn'];
return [
'libelle' => $hotel['libelle'],
'sulg' => $hotel['slug'],
'photo' => $hotel['image'],
'prix' => $hotel['prix'],
'lbl_arrangement' => $hotel['libelleArrg'],
'code_arrangement' => $hotel['codeArrg'],
'idhotel' => $hotel['idHotel'],
'image' => $hotel['image'],
'etiquetteHotel' => $hotel['etiquetteHotel'],
'star' => $hotel['star'],
'ville' => $hotel['ville'],
'checkin' => $checkin,
'nuitees' => 1
];
},
$flashPromo['hotels']);
}
if (in_array($request->get('_route'), ['landing_page_hotels', 'landing_page_avail_hotels'])) {
$hotels = array_column($details, 'idhotel');
return $this->redirectToRoute('sejour_hotel_availability_landing_page', [
'checkin' => empty($details) ? "now" : $details[0]['checkin'],
'nuitees' => empty($details) ? 1 : $details[0]['nuitees'],
'hotel' => implode('-', empty($hotels) ? [0] : $hotels)
]);
}
return $this->render($this->service->checkCustomTemplate('SejourHotel/landing-page.html.twig'),
[
'details' => $details,
'banner' => $banner,
'info' => $flashPromo
]);
}
/**
* @Route("/landing-page-package/{slug}", name="landing_page_package")
*/
public function landingPagePackage($slug, WSVoyagesOrganise $voyage): Response
{
$banner = "{$this->service->domaineBack()}/file_manager/source/landing.webp";
$flashPromo = $voyage->FlashPromoPackage()['FlashPromo'][$slug];
$banner = $flashPromo['bannier'];
$details = $packages = array_map(function ($package) {
return [
'libelle' => $package['libelle'],
'sulg' => $package['slug'],
'photo' => $package['image'],
'prix' => $package['prix'],
'idvoyage' => $package['idVoyage'],
'image' => $package['image'],
'type' => $package['type'],
];
},
$flashPromo['packages']);
return $this->render($this->service->checkCustomTemplate('VoyagesOrganise/landing-page.html.twig'),
[
'details' => $details,
'banner' => $banner,
'info' => $flashPromo
]);
}
/**
* showVoyage
* showCircuits
* showTopHotelTunisie (topventes)
* showHotelsRecommandes (bonplan)
* showPackPromo (promo)
* showOmra
* showHTML
* showHTML2
* showHTML3
*/
public function showvoyage(WSCMS $WSCMS): Response
{
$groupeCategories = $WSCMS->Element()['Elements'];
$elements = array();
foreach ($groupeCategories as $groupeCategory) {
if ($groupeCategory['groupeCategorie'] == 'voyage')
foreach ($groupeCategory['categories'] as $category) {
$elements['titreBloc'] = $groupeCategory['titre'];
$elements['description'] = $groupeCategory['description'];
$elements['image1'] = $groupeCategory['image1'];
$elements['lienDetails'] = $category['lienDetails'];
if ($category['code'] == 'voyage') {
$elements['elements'] = $category['elements'];
}
}
}
return $this->render($this->service->checkCustomTemplate('showVoyage.html.twig'), ['groupe' => $elements]);
}
public function showcircuits(WSCMS $WSCMS): Response
{
$groupeCategories = $WSCMS->Element()['Elements'];
$elements = array();
foreach ($groupeCategories as $groupeCategory) {
if ($groupeCategory['groupeCategorie'] == 'circuits')
foreach ($groupeCategory['categories'] as $category) {
$elements['titreBloc'] = $groupeCategory['titre'];
$elements['description'] = $groupeCategory['description'];
$elements['image1'] = $groupeCategory['image1'];
$elements['lienDetails'] = $category['lienDetails'];
if ($category['code'] == 'circuits') {
$elements['elements'] = $category['elements'];
}
}
}
return $this->render($this->service->checkCustomTemplate('showCircuits.html.twig'), ['groupe' => $elements]);
}
public function showTopHotelTunisie(WSCMS $WSCMS, WSSejourHotel $hotel): Response
{
$groupeCategories = $WSCMS->Element()['Elements'];
$elements = array();
foreach ($groupeCategories as $groupeCategory) {
if ($groupeCategory['groupeCategorie'] == 'TopHotelTunisie') {
foreach ($groupeCategory['categories'] as $category) {
$elements['titreBloc'] = $groupeCategory['titre'];
$elements['description'] = $groupeCategory['description'];
$elements['lienDetails'] = $category['lienDetails'];
$elements['image1'] = $groupeCategory['image1'];
}
}
}
return $this->render($this->service->checkCustomTemplate('show-hotels-tunisie.html.twig'), ['groupe' => $elements, 'hotels' => $hotel->PackTopVente()['PackTopVente']]);
}
public function showPackPromo(WSCMS $WSCMS, WSSejourHotel $hotel): Response
{
$groupeCategories = $WSCMS->Element()['Elements'];
$elements = array();
foreach ($groupeCategories as $groupeCategory) {
if ($groupeCategory['groupeCategorie'] == 'PackPromo') {
foreach ($groupeCategory['categories'] as $category) {
$elements['titreBloc'] = $groupeCategory['titre'];
$elements['description'] = $groupeCategory['description'];
$elements['image1'] = $groupeCategory['image1'];
$elements['lienDetails'] = $category['lienDetails'];
}
}
}
return $this->render($this->service->checkCustomTemplate('show-hotels-promo.html.twig'), ['groupe' => $elements, 'hotels' => $hotel->PackPromo()['PackPromo']]);
}
/**/
public function showTarifsChambre(?int $id_hotel, WSCMS $WSCMS, WSSejourHotel $hotel): Response
{
$groupeCategories = $WSCMS->Element()['Elements'];
$elements = array();
foreach ($groupeCategories as $groupeCategory) {
if ($groupeCategory['groupeCategorie'] == 'TarifsChambre') {
foreach ($groupeCategory['categories'] as $category) {
$elements['titreBloc'] = $groupeCategory['titre'];
$elements['description'] = $groupeCategory['description'];
$elements['image1'] = $groupeCategory['image1'];
}
}
}
return $this->render($this->service->checkCustomTemplate('show-tarifschambre.html.twig'), ['groupe' => $elements, 'hotels' => $hotel->TarifsChambre(['Hotel' => $id_hotel])['TarifsChambre']]);
}
/**/
public function showhotelsRecommandes(WSCMS $WSCMS, WSSejourHotel $hotel): Response
{
$groupeCategories = $WSCMS->Element()['Elements'];
$elements = array();
foreach ($groupeCategories as $groupeCategory) {
if ($groupeCategory['groupeCategorie'] == 'hotelsRecommandes') {
foreach ($groupeCategory['categories'] as $category) {
$elements['titreBloc'] = $groupeCategory['titre'];
$elements['description'] = $groupeCategory['description'];
$elements['lienDetails'] = $category['lienDetails'];
}
}
}
return $this->render($this->service->checkCustomTemplate('show-hotels-recommande.html.twig'), ['groupe' => $elements, 'hotels' => $hotel->PackBonPlan()['PackBonPlan']]);
}
public function showFlashPromo(WSCMS $WSCMS, WSSejourHotel $hotel): Response
{
$groupeCategories = $WSCMS->Element()['Elements'];
$elements = array();
foreach ($groupeCategories as $groupeCategory) {
if ($groupeCategory['groupeCategorie'] == 'FlashPromo') {
foreach ($groupeCategory['categories'] as $category) {
$elements['titreBloc'] = $groupeCategory['titre'];
$elements['description'] = $groupeCategory['description'];
$elements['image1'] = $groupeCategory['image1'];
$elements['lienDetails'] = $category['lienDetails'];
}
}
}
return $this->render($this->service->checkCustomTemplate('show-flash-promo.html.twig'), ['groupe' => $elements, 'hotels' => $hotel->FlashPromo()['FlashPromo']]);
}
public function showOmra(WSCMS $WSCMS): Response
{
$groupeCategories = $WSCMS->Element()['Elements'];
$elements = array();
foreach ($groupeCategories as $groupeCategory) {
if ($groupeCategory['groupeCategorie'] == 'Omra')
foreach ($groupeCategory['categories'] as $category) {
$elements['titreBloc'] = $groupeCategory['titre'];
$elements['description'] = $groupeCategory['description'];
$elements['image1'] = $groupeCategory['image1'];
$elements['lienDetails'] = $category['lienDetails'];
if ($category['code'] == 'Omra') {
$elements['elements'] = $category['elements'];
}
}
}
return $this->render($this->service->checkCustomTemplate('showOmra.html.twig'), ['groupe' => $elements]);
}
public function showHTML(WSCMS $WSCMS): Response
{
$groupeCategories = $WSCMS->Element()['Elements'];
$motGroupe = "HTML";
$groupeCategories = current(array_filter($groupeCategories, function ($item) use ($motGroupe) {
return in_array($motGroupe, $item);
}));
$blocHtml = $WSCMS->BlocHtml()['BlocsHtml']['BlocHtml1'];
return $this->render($this->service->checkCustomTemplate('showBlocHTML.html.twig'), ['blocsHtml' => $blocHtml]);
}
public function showHTML2(WSCMS $WSCMS): Response
{
$groupeCategories = $WSCMS->Element()['Elements'];
$motGroupe = "HTML2";
$groupeCategories = current(array_filter($groupeCategories, function ($item) use ($motGroupe) {
return in_array($motGroupe, $item);
}));
$blocHtml = $WSCMS->BlocHtml()['BlocsHtml']['BlocHtml2'];
return $this->render($this->service->checkCustomTemplate('showBlocHTML2.html.twig'), ['blocsHtml' => $blocHtml]);
}
public function showHTML3(WSCMS $WSCMS): Response
{
$groupeCategories = $WSCMS->Element()['Elements'];
$motGroupe = "HTML3";
$groupeCategories = current(array_filter($groupeCategories, function ($item) use ($motGroupe) {
return in_array($motGroupe, $item);
}));
$blocHtml = $WSCMS->BlocHtml()['BlocsHtml']['BlocHtml3'];
return $this->render($this->service->checkCustomTemplate('showBlocHTML3.html.twig'), ['blocsHtml' => $blocHtml]);
}
/**
* @Route ("/contact_us", name="contact_us")
*/
public function contactNos(WSCMS $WSCMS): Response
{
return $this->render($this->service->checkCustomTemplate('Contactez-nous.html.twig'));
}
/**
* @Route ("/condition-vente/{produit}",name="condition_vente")
*/
public function conditionVente($produit, WSCMS $WSCMS): Response
{
return new Response($WSCMS->ConditionVente()['ConditionVente'][$produit]["texte"]);
}
/**
* @Route("/voyage-carte", name="voyage-carte")
*/
public function voyagecarte(Request $request, GeneraleExtension $generaleExtension, WSCMS $WSCMS): Response
{
$compagnies = $WSCMS->Company()['Company'];
$compagnies_choices = array_column($compagnies, 'id', 'libelle');
$form = $this->createFormBuilder()
->add('email', EmailType::class, array(
'required' => false,
'attr' => [
'placeholder' => 'Entrer votre email'
]
))
->add('civility', ChoiceType::class, [
'choices' => [
'Mr' => 'mr',
'Mme' => 'mme',
],
'expanded' => true,
'multiple' => false,
])
->add('travelType', ChoiceType::class, [
'choices' => [
'Voyage organisé' => 'voyage-organise',
'Voyage Combiné' => 'combine',
],
'expanded' => true,
'multiple' => false,
'data' => 'voyage-organise',
])
->add('firstDestination', TextType::class, [
'required' => true,
'attr' => [
'placeholder' => 'Ville/Pays pour Destination 1',
'class' => 'destination-input'
]
])
->add('secondDestination', TextType::class, [
'required' => false,
'attr' => [
'placeholder' => 'Ville/Pays pour Destination 2',
'class' => 'destination-input'
]
])
->add('singleHotel', TextType::class, [
'required' => true,
'attr' => [
'placeholder' => 'Ville',
'class' => 'w-100',
'name' => 'hotelCity',
'id' => 'singleHotel'
]
])
->add('combinedHotels', TextType::class, [
'required' => FALSE,
'attr' => [
'placeholder' => 'Ville',
'class' => 'w-100',
'name' => 'hotelCity2',
'id' => 'combinedHotels'
]
])
->add('situation', ChoiceType::class, [
'choices' => [
'Single' => 'Single',
'Couple' => 'Couple',
'Société' => 'Société',
'Voyage de Noces' => 'Voyage-de-Noces',
'Famille' => 'Famille',
'Personnes Âgées ' => 'Personnes-Âgées ',
'groupe amis' => 'groupe-amis',
],
'placeholder' => "choisissez",
])
->add('nbrEtoiles', ChoiceType::class, [
'label' => "Catégorie d'Hôtel",
'choices' => [
'2' => 2,
'3' => 3,
'4' => 4,
'5' => 5,
],
'expanded' => true,
'multiple' => false,
'required' => true,
'attr' => [
'id' => 'hotelCategoryGroup',
],
])
->add('hotelSuggestions', ChoiceType::class, [
'label' => "Suggestions d'Hôtels (max 3)",
'choices' => [
'Économique' => 'economique',
'Confort' => 'confort',
],
'expanded' => true,
'multiple' => false,
'placeholder' => false,
'required' => false,
'attr' => [],
])
->add('pension', ChoiceType::class, [
'choices' => [
'Petit déjeuner' => 'Petit-déjeuner',
'Demi pension' => 'Demi-pension',
'Pension complète' => 'Pension-complète',
'All inclusive' => 'All inclusive',
],
'placeholder' => "choisissez",
])
->add('transport', ChoiceType::class, [
'choices' => [
'Vol' => 'vol',
'Bus' => 'bus',
'Train' => 'train',
'Bateau' => 'bateau',
],
'placeholder' => 'Choisissez...',
'attr' => [
'name' => 'transport',
'id' => 'transportSelect',
'required' => false,
],
])
->add('flightType', ChoiceType::class, [
'choices' => [
'Indirect' => 'indirect',
],
'placeholder' => 'Direct',
'attr' => [
'id' => 'flightTypeSelect',
'name' => 'flightType'
],
'required' => false,
])
->add('airline', ChoiceType::class, [
'choices' => $compagnies_choices,
'placeholder' => 'Choisissez...',
'attr' => [
'id' => 'airlineSelect',
'name' => 'airline',
'class' => 'selectpicker',
'data-live-search' => 'true'
],
'required' => false,
])
->add('transfert', CheckboxType::class, [
'attr' => [
'id' => 'transfertCheckbox',
],
'required' => false,
])
->add('nbrPersonne', IntegerType::class, array(
'required' => false,
'attr' => [
'placeholder' => 'Nombre de personne ',
'min' => 1,
'max' => 100,
]
))
->add('adulte', IntegerType::class, array(
'required' => false,
'attr' => [
'placeholder' => 'Adultes ',
'min' => 0,
'max' => 100,
]
))
->add('nbrEnfant', IntegerType::class, array(
'required' => false,
'attr' => [
'placeholder' => 'Nombre de enfant ',
'min' => 0,
'max' => 100,
'id' => 'childrenInput',
]
))
->add('agesEnfants', HiddenType::class, [
'mapped' => true,
'required' => false,
'attr' => [
'id' => 'childrenAgesHidden',
],
])
->add('nbrBebe', IntegerType::class, array(
'required' => false,
'attr' => [
'placeholder' => 'Nombre de Bébé ',
'min' => 0,
'max' => 100,
]
))
->add('nom', TextType::class, array(
'required' => TRUE,
'attr' => [
'placeholder' => 'nom '
]
))
->add('prenom', TextType::class, array(
'required' => TRUE,
'attr' => [
'placeholder' => ' prénom'
]
))
// ->add('avatar', FileType::class, array(
// 'required' => TRUE,
// ))
->add('start', DateType::class, array(
'required' => TRUE,
'format' => 'yyyy-MM-dd',
'widget' => 'single_text',
'attr' => [
'min' => (new \DateTime())->format('Y-m-d'),
]
))
->add('retourDate', DateType::class, array(
'required' => TRUE,
'format' => 'yyyy-MM-dd',
'widget' => 'single_text',
'attr' => [
'min' => (new \DateTime())->format('Y-m-d'),
]
))
->add('startDest1', DateType::class, array(
'required' => false,
'format' => 'yyyy-MM-dd',
'widget' => 'single_text',
'attr' => [
'min' => (new \DateTime())->format('Y-m-d'),
]
))
->add('retourDest1', DateType::class, array(
'required' => false,
'format' => 'yyyy-MM-dd',
'widget' => 'single_text',
'attr' => [
'min' => (new \DateTime())->format('Y-m-d'),
]
))
->add('startDest2', DateType::class, array(
'required' => false,
'format' => 'yyyy-MM-dd',
'widget' => 'single_text',
'attr' => [
'min' => (new \DateTime())->format('Y-m-d'),
]
))
->add('retourDest2', DateType::class, array(
'required' => false,
'format' => 'yyyy-MM-dd',
'widget' => 'single_text',
'attr' => [
'min' => (new \DateTime())->format('Y-m-d'),
]
))
->add('adresse', TextType::class, array(
'required' => TRUE,
'attr' => [
'placeholder' => 'Entrer votre adresse'
]
))
->add('destination', TextType::class, array(
'required' => TRUE,
'attr' => [
'placeholder' => 'Entrer votre Destination'
]
))
->add('tel', TextType::class, array(
'required' => false,
'attr' => [
'placeholder' => 'Entrer votre Téléphone'
]
))
->add('subject', TextareaType::class, array(
'required' => false,
'attr' => [
'placeholder' => 'Commentaire'
]
))
->add('code_formulaire', HiddenType::class, array('required' => false, 'data' => 'demande_voyage_carte',));
$form = $form->getForm();
$form->handleRequest($request);
if ($request->isMethod('POST') && $request->isXmlHttpRequest()) {
try {
/* parse_str($request->request->get('form'), $form);*/
/* dd($form);*/
$data = $form->getData();
/* dd($data);*/
$body = $this->renderView('FrontCommun/formulaire_mail_body.html.twig', array(
'nom' => $data['nom'],
'start' => $data['start'],
'email' => $data['email'],
'adresse' => $data['adresse'] ?? '',
'destination' => $data['destination'] ?? '',
'tel' => $data['tel'],
'subject' => $data['subject'],
));
$params = array(
'mailToClient' => true,
'email' => $data['email'],
'subject' => $data['subject'],
'body' => $body,
'post' => $_POST,
'code_formulaire' => $data['code_formulaire']
);
$result = $WSCMS->SendMailLibre($params);
} catch (\Exception $e) {
$msg = '<span style="color:red">' . $e->getMessage() . '</span>';
return new Response($msg);
}
if ($result != 0) {
$msg = "<span style='color:green'>Votre message a été Envoyé avec succès !</span>";
} else {
$msg = '<span style="color:red">Echèc d\'envoi</span>';
}
return new Response($msg);
}
$configAffichage = array();
if (!is_null($WSCMS->ConfigFrontOffice()))
$configAffichage = $WSCMS->ConfigFrontOffice()['ConfigFrontOffice'];
return $this->render($this->service->checkCustomTemplate('demande_voyage_carte.html.twig'), array(
'form' => $form->createView(),
'configAffichage' => $configAffichage,
));
}
/**
* @Route("/inscriptioncomite", name="inscription-comite")
*/
public function inscriptioncomite(Request $request, GeneraleExtension $generaleExtension, WSCMS $WSCMS): Response
{
$form = $this->createFormBuilder()
->add('email', EmailType::class, array(
'required' => TRUE,
'attr' => [
'placeholder' => 'Entrer votre email'
]
))
->add('nom_agence', TextType::class, array(
'required' => TRUE,
'attr' => [
'placeholder' => 'Nom du comité ou de l’Amicale'
]
))
->add('nom', TextType::class, array(
'required' => TRUE,
'attr' => [
'placeholder' => 'Nom du Contact'
]
))
->add('num_adh', IntegerType::class, array(
'required' => TRUE,
'attr' => [
'placeholder' => 'Nombre d’adhérent'
]
))
->add('civ', ChoiceType::class, [
'choices' => [
"Mr" => "Mr",
"Mme" => "Mme",
"Mlle" => "Mlle",
]
]
)
// ->add('avatar', FileType::class, array(
// 'required' => TRUE,
// ))
->add('adresse', TextType::class, array(
'required' => TRUE,
'attr' => [
'placeholder' => 'Entrer votre adresse'
]
))
->add('tel', IntegerType::class, array(
'required' => TRUE,
'attr' => [
'placeholder' => 'Entrer votre Téléphone'
]
))
->add('subject', HiddenType::class, [
'data' => 'demande-inscription',
]);
$form = $form->getForm();
if ($request->isMethod('POST') && $request->isXmlHttpRequest()) {
try {
parse_str($request->request->get('form'), $form);
$data = $form['form'];
/* dd($data);*/
$body = $this->renderView('FrontCommun/formulaire_mail_body.html.twig', array(
'nom_agence' => $data['nom_agence'],
'nom' => $data['nom'],
'num_adh' => $data['num_adh'],
'civ' => $data['civ'],
'email' => $data['email'],
'adresse' => $data['adresse'],
'tel' => $data['tel'],
'subject' => $data['subject'],
));
$params = array(
'email' => $data['email'],
'subject' => $data['subject'],
'body' => $body,
);
$result = $WSCMS->SendMailLibre($params);
$params['mailToClient'] = true;
$result = $WSCMS->SendMailLibre($params);
} catch (\Exception $e) {
$msg = '<span style="color:red">' . $e->getMessage() . '</span>';
return new Response($msg);
}
if ($result != 0) {
$msg = "<span style='color:green'>Votre message a été Envoyé avec succès !</span>";
} else {
$msg = '<span style="color:red">Echèc d\'envoi</span>';
}
return new Response($msg);
}
$configAffichage = array();
if (!is_null($WSCMS->ConfigFrontOffice()))
$configAffichage = $WSCMS->ConfigFrontOffice()['ConfigFrontOffice'];
return $this->render($this->service->checkCustomTemplate('demande_commite.html.twig'), array(
'form' => $form->createView(),
'configAffichage' => $configAffichage,
));
}
/**
* @Route("/demande_voyage_groupe", name="demande_voyage_groupe")
*/
public function voyage_groupe(Request $request, GeneraleExtension $generaleExtension, WSCMS $WSCMS): Response
{
$form = $this->createFormBuilder()
->add('email', EmailType::class, array(
'required' => TRUE,
'attr' => [
'placeholder' => 'Entrer votre email'
]
))
->add('Type_groupe', ChoiceType::class, array(
'required' => TRUE,
'choices' => [
"Groupe d'amis" => "Groupe d'amis",
"Association" => "Association",
"entreprise" => "entreprise",
]
))
/* ->add('destination', ChoiceType::class, array(
'required' => TRUE,
'destination' => [
"Ain Draham" => "Ain Draham",
"Bizerte" => "Bizerte",
"Djerba" => "Djerba",
"Douz" => "Douz",
"El Jem" => "El Jem",
"Gafsa" => "Gafsa",
"Gammarth" => "Gammarth",
"Hammamet" => "Hammamet",
"Kairouan" => "Kairouan",
"Mahdia" => "Mahdia",
"Monastir" => "Monastir",
"Nabeul" => "Nabeul",
"Sbeitla" => "Sbeitla",
"Sfax" => "Sfax",
"Sousse" => "Sousse",
"Tabarka" => "Tabarka",
"Tozeur" => "Tozeur",
"Tunis" => "Tunis",
"Zarzis" => "Zarzis",
]
))*/
->add('nom_hotel', TextType::class, array(
'required' => TRUE,
'attr' => [
'placeholder' => 'Nom de Hôtel ou catégorie'
]
))
->add('start', DateType::class, array(
'required' => TRUE,
'format' => 'yyyy-MM-dd',
'widget' => 'single_text',
))
->add('civ', ChoiceType::class, [
'choices' => [
"Mr" => "Mr",
"Mme" => "Mme",
"Mlle" => "Mlle",
]
]
)
->add('num_participants', IntegerType::class, array(
'mapped' => false,
'required' => false,
'constraints' => [new Positive()],
'attr' => [
'min' => 20
]
))
->add('num_nuite', IntegerType::class, array(
'mapped' => false,
'required' => false,
'constraints' => [new Positive()],
'attr' => [
'min' => 1
]
))
->add('num_budget', IntegerType::class, array(
'mapped' => false,
'required' => false,
'constraints' => [new Positive()],
'attr' => [
'placeholder' => 'Budget/personne'
]
))
->add('formule', ChoiceType::class, [
'choices' => [
"Logement Petit Déjeuner" => "Logement Petit Déjeuner",
"Demi Pension" => "Demi Pension",
"Pension Complète" => "Pension Complète",
"Tous compris" => "Tous compris",
]
]
)
->add('demandespec', TextareaType::class, array(
'required' => TRUE,
'attr' => [
'placeholder' => 'Demande spécifique'
]
))
// ->add('avatar', FileType::class, array(
// 'required' => TRUE,
// ))
->add('nom', TextType::class, array(
'required' => TRUE,
'attr' => [
'placeholder' => 'Nom & prénom'
]
))
->add('adresse', TextType::class, array(
'required' => TRUE,
'attr' => [
'placeholder' => 'Entrer votre adresse'
]
))
->add('tel', IntegerType::class, array(
'required' => TRUE,
'attr' => [
'placeholder' => 'Entrer votre Téléphone'
]
))
->add('subject', HiddenType::class, [
'data' => 'demande-groupe-voyage',
]);
$form = $form->getForm();
if ($request->isMethod('POST') && $request->isXmlHttpRequest()) {
try {
parse_str($request->request->get('form'), $form);
$data = $form['form'];
/* dd($data);*/
$body = $this->renderView('FrontCommun/formulaire_mail_body.html.twig', array(
'Type_groupe' => $data['Type_groupe'],
'num_participants' => $data['num_participants'],
'email' => $data['email'],
'civ' => $data['civ'],
'nom_hotel' => $data['nom_hotel'],
'nom' => $data['nom'],
'num_nuite' => $data['num_nuite'],
'tel' => $data['tel'],
'start' => $data['start'],
'formule' => $data['formule'],
'num_budget' => $data['num_budget'],
'adresse' => $data['adresse'],
'subject' => $data['subject'],
'demandespec' => $data['demandespec'],
));
$params = array(
'email' => $data['email'],
'subject' => $data['subject'],
'body' => $body,
);
$result = $WSCMS->SendMailLibre($params);
$params['mailToClient'] = true;
$result = $WSCMS->SendMailLibre($params);
} catch (\Exception $e) {
$msg = '<span style="color:red">' . $e->getMessage() . '</span>';
return new Response($msg);
}
if ($result != 0) {
$msg = "<span style='color:green'>Votre message a été Envoyé avec succès !</span>";
} else {
$msg = '<span style="color:red">Echèc d\'envoi</span>';
}
return new Response($msg);
}
$configAffichage = array();
if (!is_null($WSCMS->ConfigFrontOffice()))
$configAffichage = $WSCMS->ConfigFrontOffice()['ConfigFrontOffice'];
return $this->render($this->service->checkCustomTemplate('formulaire_voyage_groupe.html.twig'), array(
'form' => $form->createView(),
'configAffichage' => $configAffichage,
));
}
/**
* @Route("/omra", name="omra")
*/
public function omra(Request $request, GeneraleExtension $generaleExtension, WSCMS $WSCMS): Response
{
$form = $this->createFormBuilder()
->add('email', EmailType::class, array(
'required' => TRUE,
'attr' => [
'placeholder' => 'Entrer votre email'
]
))
->add('nom', TextType::class, array(
'required' => TRUE,
'attr' => [
'placeholder' => 'nom & prénom'
]
))
// ->add('avatar', FileType::class, array(
// 'required' => TRUE,
// ))
->add('start', DateType::class, array(
'required' => TRUE,
'format' => 'yyyy-MM-dd',
'widget' => 'single_text',
))
->add('adresse', TextType::class, array(
'required' => TRUE,
'attr' => [
'placeholder' => 'Entrer votre adresse'
]
))
->add('tel', TextType::class, array(
'required' => TRUE,
'attr' => [
'placeholder' => 'Entrer votre Téléphone'
]
))
->add('subject', TextareaType::class, array(
'required' => TRUE,
'attr' => [
'placeholder' => 'Commentaire'
]
));
$form = $form->getForm();
if ($request->isMethod('POST') && $request->isXmlHttpRequest()) {
try {
parse_str($request->request->get('form'), $form);
$data = $form['form'];
/* dd($data);*/
$body = $this->renderView('FrontCommun/formulaire_mail_body.html.twig', array(
'nom' => $data['nom'],
'start' => $data['start'],
/* 'avatar' => $data['avatar'],*/
'email' => $data['email'],
'adresse' => $data['adresse'],
'tel' => $data['tel'],
'subject' => $data['subject'],
));
$params = array(
'email' => $data['email'],
'subject' => $data['subject'],
'body' => $body,
);
$result = $WSCMS->SendMailLibre($params);
$params['mailToClient'] = true;
$result = $WSCMS->SendMailLibre($params);
} catch (\Exception $e) {
$msg = '<span style="color:red">' . $e->getMessage() . '</span>';
return new Response($msg);
}
if ($result != 0) {
$msg = "<span style='color:green'>Votre message a été Envoyé avec succès !</span>";
} else {
$msg = '<span style="color:red">Echèc d\'envoi</span>';
}
return new Response($msg);
}
$configAffichage = array();
if (!is_null($WSCMS->ConfigFrontOffice()))
$configAffichage = $WSCMS->ConfigFrontOffice()['ConfigFrontOffice'];
return $this->render($this->service->checkCustomTemplate('demande_omra.html.twig'), array(
'form' => $form->createView(),
'configAffichage' => $configAffichage,
));
}
/**
* @Route("/omra-carte-formulaire", name="omra_carte_formulaire")
*
*/
public function formOmraCarteFormulaire(Request $request, GeneraleExtension $generaleExtension, WSCMS $WSCMS): Response
{
$infoAgence = $generaleExtension->getAgence()['information'];
$form = $this->createFormBuilder(null, ['csrf_protection' => true])
->add('civility', ChoiceType::class, [
'choices' => [
'Mr' => 'mr',
'Mme' => 'mme',
],
'placeholder' => "choisissez",
])
->add('nom', TextType::class, array(
'required' => TRUE,
'attr' => [
'placeholder' => 'nom '
]
))
->add('prenom', TextType::class, array(
'required' => TRUE,
'attr' => [
'placeholder' => ' prénom'
]
))
->add('situation', ChoiceType::class, [
'choices' => [
'Single' => 'Single',
'Couple' => 'Couple',
'Société' => 'Société',
'Famille' => 'Famille',
'Amicale ' => 'amicale',
],
'placeholder' => "choisissez",
])
->add('adulte', IntegerType::class, array(
'required' => false,
'attr' => [
'placeholder' => 'Adultes ',
'min' => 0,
'max' => 100,
]
))
->add('nbrEnfant', IntegerType::class, array(
'required' => false,
'attr' => [
'placeholder' => 'Nombre de enfant ',
'min' => 0,
'max' => 100,
'id' => 'nb_enfants',
]
))
->add('nbrBebe', IntegerType::class, array(
'required' => false,
'attr' => [
'placeholder' => 'Nombre de Bébé ',
'min' => 0,
'max' => 100,
]
))
->add('tel', TextType::class, array(
'required' => TRUE,
'attr' => [
'placeholder' => 'Entrer votre Téléphone'
]
))
->add('email', EmailType::class, array(
'required' => TRUE,
'attr' => [
'placeholder' => 'Entrer votre email'
]
))
->add('ville_depart', TextType::class, array(
'required' => TRUE,
'attr' => [
'placeholder' => 'ville départ'
]
))
->add('destAller', ChoiceType::class, [
'choices' => [
'Jeddah' => 'Jeddah',
'Medina' => 'Medina',
],
'placeholder' => "choisissez",
])
->add('destRetour', ChoiceType::class, [
'choices' => [
'Jeddah' => 'Jeddah',
'Medina' => 'Medina',
],
'placeholder' => "choisissez",
])
->add('villeRetour', TextType::class, array(
'required' => TRUE,
'attr' => [
'placeholder' => 'ville départ'
]
))
->add('dateDepart', DateType::class, array(
'required' => TRUE,
'format' => 'yyyy-MM-dd',
'widget' => 'single_text',
'attr' => [
'min' => (new \DateTime())->format('Y-m-d'),
]
))
->add('dateRetour', DateType::class, array(
'required' => TRUE,
'format' => 'yyyy-MM-dd',
'widget' => 'single_text',
'attr' => [
'min' => (new \DateTime())->format('Y-m-d'),
]
))
->add('flightType', ChoiceType::class, [
'choices' => [
'Direct' => 'Direct',
'Indirect' => 'indirect',
],
'attr' => [
'id' => 'type_vol',
],
'placeholder' => 'Sélectionnez',
'required' => true,
])
->add('compagnieAerien', TextType::class, array(
'required' => false,
'attr' => [
'placeholder' => 'Turkish Airlines'
]
))
->add('escale', TextType::class, array(
'required' => false,
'attr' => [
'placeholder' => 'Ex: istanbul'
]
))
->add('transfert', ChoiceType::class, [
'choices' => [
'Oui' => 'Oui',
'Non' => 'non',
],
'expanded' => true,
'multiple' => false,
])
->add('moyen_transport', ChoiceType::class, [
'required' => false,
'choices' => [
'Bus' => 'bus',
'GMC' => 'GMC',
'train' => 'train',
],
'placeholder' => 'Choisissez...',
'attr' => [
'id' => 'moyenTransport',
],
])
->add('destinationTrain', ChoiceType::class, [
'required' => false,
'choices' => [
'Gare de Medina' => 'Gare-de-Medina',
'Gare de Jeddah' => 'Gare-de-Jeddah',
'Gare de Mekka' => 'Gare-de-Mekka',
],
'placeholder' => 'Choisissez...',
'attr' => [
'id' => 'train_destination',
],
])
->add('Itineraire', TextType::class, array(
'required' => false,
'attr' => [
'placeholder' => 'Ex: Jeddah à Medina',
'id' => 'train_itineraire',
]
))
->add('hotelMakkah', TextType::class, array(
'required' => false,
'attr' => [
'placeholder' => 'Nom de l\'hôtel suggéré',
'id' => 'hotel_mekka',
]
))
->add('hotelMedina', TextType::class, array(
'required' => false,
'attr' => [
'placeholder' => 'Nom de l\'hôtel suggéré',
'id' => 'hotel_medina',
]
))
->add('pension', ChoiceType::class, [
'required' => true,
'choices' => [
'Petit déjeuner' => 'Petit-déjeuner',
'Demi pension' => 'Demi-pension',
'Pension complète' => 'Pension-complète',
],
'placeholder' => "Sélectionnez",
])
->add('categorieHotel', ChoiceType::class, [
'required' => true,
'choices' => [
'2 Étoiles ' => '2-etoiles',
'3 Étoiles' => '3-etoiles',
'4 Étoiles' => '4-etoiles',
'5 Étoiles' => '5-etoiles',
],
'placeholder' => "Sélectionnez",
])
->add('typeChambre', ChoiceType::class, [
'required' => false,
'choices' => [
'Single ' => 'Single',
'Double' => 'Double',
'Triple' => 'Triple',
'Quadruple' => 'Quadruple',
'Plus (5+)' => 'Plus',
],
'placeholder' => "Type de Chambre",
])
->add('nbrPersonne', IntegerType::class, array(
'required' => false,
'attr' => [
'placeholder' => 'Nombre de personnes ',
'min' => 1,
'max' => 100,
]
))
->add('nbJourMekkah', IntegerType::class, array(
'required' => false,
'attr' => [
'min' => 1,
'max' => 100,
]
))
->add('nbJourMedina', IntegerType::class, array(
'required' => false,
'attr' => [
'min' => 1,
'max' => 100,
]
))
->add('subject', TextareaType::class, array(
'required' => false,
'attr' => [
'placeholder' => 'Décrivez vos préférences...'
]
))
->add('code_formulaire', HiddenType::class,
array(
'required' => false,
'data' => 'omra-formulaire' ,
));
$form = $form->getForm();
$form->handleRequest($request);
if ($request->isMethod('POST') && $request->isXmlHttpRequest()) {
try {
$data = $form->getData();
$body = $this->renderView('FrontCommun/formulaire_mail_body.html.twig', array(
'nom' => $data['nom'],
'ville_depart' => $data['ville_depart'] ,
'email' => $data['email'] ?? '',
'adulte' => $data['adulte'],
'nbrEnfant' => $data['nbrEnfant'],
'nbrBebe' => $data['nbrBebe'],
'civility' => $data['civility'],
'tel' => $data['tel'],
'nbJourMekkah' => $data['nbJourMekkah'],
'nbJourMedina' => $data['nbJourMedina'],
'subject' => $data['subject'],
));
$params = array(
'subject' => $data['subject'],
'email' => $data['email'],
'post' => $_POST,
'code_formulaire' => $data['code_formulaire'],
'body' => $body
);
// dd( $params);
// $result = $WSCMS->SendMailLibre($params);
$params['mailToClient'] = true;
$result = $WSCMS->SendMailLibre($params);
} catch (\Exception $e) {
$msg = '<span style="color:red">' . $e->getMessage() . '</span>';
return new Response($msg);
}
if ($result != 0) {
$msg = "<span style='color:green'>Votre message a été Envoyé avec succès !</span>";
} else {
$msg = '<span style="color:red">Echèc d\'envoi</span>';
}
return new Response($msg);
}
$configAffichage = array();
if (!is_null($WSCMS->ConfigFrontOffice()))
$configAffichage = $WSCMS->ConfigFrontOffice()['ConfigFrontOffice'];
return $this->render($this->service->checkCustomTemplate('omra_carte_formulaire.html.twig'), array(
'infoAgence' => $infoAgence,
'form' => $form->createView(),
'configAffichage' => $configAffichage,
));
}
/**
* @Route("/omra-carte", name="omra_carte_form")
*
*/
public function formOmraCarte(Request $request, GeneraleExtension $generaleExtension, WSCMS $WSCMS): Response
{
$infoAgence = $generaleExtension->getAgence()['information'];
$form = $this->createFormBuilder(null, ['csrf_protection' => true])
->add('nombre_adultes', IntegerType::class, array(
'required' => TRUE,
'attr' => [
'placeholder' => 'Nombre adulte' ,
'min' => 1,
'max' => 20,
]
))
->add('nombre_enfant', IntegerType::class, array(
'required' => TRUE,
'attr' => [
'placeholder' => 'Nombre d enfant' ,
'min' => 0,
'max' => 5,
]
))
->add('nombre_bebe', IntegerType::class, array(
'required' => TRUE,
'attr' => [
'placeholder' => 'Nombre bébés' ,
'min' => 0,
'max' => 5,
]
))
->add('civilite', ChoiceType::class, [
'choices' => [
'Mr' => 'Mr',
'Mme' => 'Mme',
'Mlle' => 'Mlle',
]
])
->add('nom', TextType::class, array(
'required' => TRUE,
'attr' => [
'placeholder' => 'nom & prénom'
]
))
->add('tel', TextType::class, array(
'required' => TRUE,
'attr' => [
'placeholder' => 'Entrer votre Téléphone' ,
'type' => 'tel',
'inputmode' => 'tel',
'pattern' => '[0-9+\s\-\(\)]*',
'title' => 'Veuillez saisir uniquement des chiffres',
'maxlength' => 20,
]
))
->add('email', EmailType::class, array(
'required' => TRUE,
'attr' => [
'placeholder' => 'Entrer votre email'
]
))
->add('ville_depart', TextType::class, array(
'required' => TRUE,
'attr' => [
'placeholder' => 'ville départ' ,
]
))
->add('date_depart', DateType::class, array(
'required' => TRUE,
'format' => 'yyyy-MM-dd',
'widget' => 'single_text',
'attr' => [
'min' => (new \DateTime('today'))->format('Y-m-d'),
]
))
->add('chambre_type', ChoiceType::class, [
'choices' => [
'Single' => 'Single',
'Double' => 'Double',
'Triple' => 'Triple',
'Quadruple' => 'Quadruple',
'Junior suite' => 'Junior suite',
'Deluxe suite' => 'Deluxe suite',
'Royal suite' => 'Royal suite'
]
])
->add('visa_type', ChoiceType::class, [
'choices' => [
'Touristique' => 'Touristique',
'Hajj' => 'Hajj',
'Schengen' => 'Triple',
'Quadruple' => 'Schengen',
'Omra' => 'Omra',
'Américain (USA)' => 'Américain (USA)'
]
])
->add('list_hotel_makka', ChoiceType::class, [
'choices' => [
'Swissotel Al Maqam Makkah' => 'Swissotel Al Maqam Makkah',
'Swissotel Makkah' => 'Swissotel Makkah',
'Al Shohada Hotel' => 'Al Shohada Hotel',
'Jabal Omar Hyatt Regency Makkah' => 'Jabal Omar Hyatt Regency Makkah',
'Fairmont Makkah Clock Royal Tower' => 'Fairmont Makkah Clock Royal Tower',
'Raffles Makkah Palace' => 'Raffles Makkah Palace',
'Anjum Hotel Makkah' => 'Anjum Hotel Makkah',
'Pullman Zamzam Makkah' => 'Pullman Zamzam Makkah',
'Hilton Makkah' => 'Hilton Makkah',
'Shaza Makkah' => 'Shaza Makkah',
'Sheraton Makkah ' => 'Sheraton Makkah ',
]
])
->add('list_hotel_medine', ChoiceType::class, [
'choices' => [
'Swissotel Madinah Hilton' => 'Swissotel Madinah Hilton',
' Intercontinental Madinah-Dar Al Iman' => ' Intercontinental Madinah-Dar Al Iman',
'Hôtel pullman Zamzam Madinah' => 'Hôtel pullman Zamzam Madinah',
'Sofitel Shahd Al Madinah' => 'Sofitel Shahd Al Madinah',
'Intercontinental Dar Al Hijra' => 'Intercontinental Dar Al Hijra',
'Intercontinental Madinah-Dar Al Iman' => 'Intercontinental Madinah-Dar Al Iman',
'Dar Al Taqwa Hotel Madinah' => 'Dar Al Taqwa Hotel Madinah',
'Pullman Zamzam Makkah' => 'Pullman Zamzam Makkah',
'The Oberoi, Madina' => 'The Oberoi, Madina'
]
])
->add('type_transfert', ChoiceType::class, [
'choices' => [
'TGV' => 'TGV',
'VOITURE' => 'VOITURE'
]
])
->add('nbr_jour_makka', TextType::class, array(
'required' => TRUE,
'attr' => [
'placeholder' => 'Nombre de jour makka'
]
))
->add('nbr_jour_medina', TextType::class, array(
'required' => TRUE,
'attr' => [
'placeholder' => 'Nombre de jour medine'
]
))
->add('subject', TextareaType::class, array(
'required' => TRUE,
'attr' => [
'placeholder' => 'Commentaire'
]
))
->add('code_formulaire', HiddenType::class,
array(
'required' => false,
'data' => 'Formulaire_Omra_carte',
));
$form = $form->getForm();
$form->handleRequest($request);
if ($request->isMethod('POST') && $request->isXmlHttpRequest()) {
try {
$data = $form->getData();
$body = $this->renderView($this->service->checkCustomTemplate('formulaire_mail_omra_carte.html.twig'), array(
'nom' => $data['nom'],
'ville_depart' => $data['ville_depart'] ?? '',
'email' => $data['email'],
'nombre_adultes' => $data['nombre_adultes'],
'nombre_enfant' => $data['nombre_enfant'],
'nombre_bebe' => $data['nombre_bebe'],
'civilite' => $data['civilite'],
'tel' => $data['tel'],
'chambre_type' => $data['chambre_type'],
'visa_type' => $data['visa_type'],
'list_hotel_makka' => $data['list_hotel_makka'],
'list_hotel_medine' => $data['list_hotel_medine'],
'type_transfert' => $data['type_transfert'],
'nbr_jour_makka' => $data['nbr_jour_makka'],
'nbr_jour_medina' => $data['nbr_jour_medina'],
'subject' => $data['subject'],
));
$params = array(
'subject' => $data['subject'],
'email' => $data['email'],
'post' => $_POST,
'code_formulaire' => $data['code_formulaire'],
'body' => $body
);
// dd( $params);
// $result = $WSCMS->SendMailLibre($params);
$params['mailToClient'] = true;
$result = $WSCMS->SendMailLibre($params);
} catch (\Exception $e) {
$msg = '<span style="color:red">' . $e->getMessage() . '</span>';
return new Response($msg);
}
if ($result != 0) {
$msg = "<span style='color:green'>Votre message a été Envoyé avec succès !</span>";
} else {
$msg = '<span style="color:red">Echèc d\'envoi</span>';
}
return new Response($msg);
}
$configAffichage = array();
if (!is_null($WSCMS->ConfigFrontOffice()))
$configAffichage = $WSCMS->ConfigFrontOffice()['ConfigFrontOffice'];
return $this->render($this->service->checkCustomTemplate('formulaire_omra_carte.html.twig'), array(
'infoAgence' => $infoAgence,
'form' => $form->createView(),
'configAffichage' => $configAffichage,
));
}
/**
* @Route("/vol", name="vol")
*/
public function vol(Request $request, GeneraleExtension $generaleExtension, WSCMS $WSCMS): Response
{
if (isset($_SERVER['FLIGHTS_WORLDSOFT_SUB_DOMAINE'])) {
if (!isset($_COOKIE['WSSESSIONID'])) {
$client = $this->get('session')->get('client');
if (isset($client['amicale']['id']) and $client['amicale']['modules']['vol']) {
$professionalId = $_SERVER['FLIGHTS_WORLDSOFT_PROFESSIONAL_ID'];
$partnerId = $this->get('session')->get('client')['amicale']['id'];
$apiKey = $_SERVER['FLIGHTS_WORLDSOFT_API_KEY'];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "{$_SERVER['FLIGHTS_WORLDSOFT_SUB_DOMAINE']}/rest/b2b/CreateSession?professionalId=$professionalId&partnerId=$partnerId&apiKey=$apiKey");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);
$info = curl_getinfo($ch);
$curl_error = curl_error($ch);
curl_close($ch);
$res = json_decode($output, true);
if ($res['success'])
setcookie("WSSESSIONID", $res['sessionId'], 0, "/", ".{$_SERVER['HTTP_HOST']}", false, true);
else
setcookie("WSSESSIONID", $res['error'], 0, "/", ".{$_SERVER['HTTP_HOST']}", false, true);
}
}
return $this->redirect($_SERVER['FLIGHTS_WORLDSOFT_SUB_DOMAINE']);
}
$form = $this->createFormBuilder()
->add('email', EmailType::class, array(
'required' => TRUE,
'attr' => [
'placeholder' => 'Entrer votre email'
]
))
->add('nom', TextType::class, array(
'required' => TRUE,
'attr' => [
'placeholder' => 'nom & prénom'
]
))->add('depart', TextType::class, array(
'required' => TRUE,
'attr' => [
'placeholder' => 'ville départ'
]
))
->add('datedepart', DateType::class, array(
'required' => TRUE,
'format' => 'yyyy-MM-dd',
'widget' => 'single_text',
))->add('datearrive', DateType::class, array(
'required' => TRUE,
'format' => 'yyyy-MM-dd',
'widget' => 'single_text',
))
->add('arrive', TextType::class, array(
'required' => TRUE,
'attr' => [
'placeholder' => 'ville arrivée'
]
))
->add('tel', TextType::class, array(
'required' => TRUE,
'attr' => [
'placeholder' => 'Entrer votre Téléphone'
]
))
->add('company', TextType::class, array(
'required' => TRUE,
'attr' => [
'placeholder' => 'Compagnie souhaitée'
]
))
->add('passager', TextType::class, array(
'required' => TRUE,
'attr' => [
'placeholder' => 'Nom passager'
]
))
->add('age', TextType::class, array(
'required' => TRUE,
'attr' => [
'placeholder' => 'Age passager'
]
))
->add('classe', ChoiceType::class, [
'choices' => [
'Economy' => 'Economy',
'First' => 'First',
'Business' => 'Business',
]
])
->add('vol', ChoiceType::class, [
'choices' => [
'Aller-Retour' => 'Aller-Retour',
'Aller-Simple' => 'Aller-Simple',
'Multi-Segments' => 'Multi-Segments',
],
])
->add('subject', TextareaType::class, array(
'required' => TRUE,
'attr' => [
'placeholder' => 'Commentaire'
]
))
->getForm();
if ($request->isMethod('POST') && $request->isXmlHttpRequest()) {
try {
parse_str($request->request->get('form'), $form);
$data = $form['form'];
$body = $this->renderView('FrontCommun/formulaire_mail_vol.html.twig', array(
'nom' => $data['nom'],
'depart' => $data['depart'],
'email' => $data['email'],
'datedepart' => $data['datedepart'],
'datearrive' => $data['datearrive'],
'tel' => $data['tel'],
'classe' => $data['classe'],
'vol' => $data['vol'],
'company' => $data['company'],
'arrive' => $data['arrive'],
'ages' => $data['age'],
'passagers' => $data['passager'],
'subject' => $data['subject'],
));
$params = array(
'email' => $data['email'],
'subject' => $data['subject'],
'body' => $body,
);
$result = $WSCMS->SendMailLibre($params);
$params['mailToClient'] = true;
$result = $WSCMS->SendMailLibre($params);
} catch (\Exception $e) {
$msg = '<span style="color:red">' . $e->getMessage() . '</span>';
return new Response($msg);
}
if ($result != 0) {
$msg = "<span style='color:green'>Votre message a été Envoyé avec succès !</span>";
} else {
$msg = '<span style="color:red">Echèc d\'envoi</span>';
}
return new Response($msg);
}
$configAffichage = array();
if (!is_null($WSCMS->ConfigFrontOffice()))
$configAffichage = $WSCMS->ConfigFrontOffice()['ConfigFrontOffice'];
return $this->render($this->service->checkCustomTemplate('demande_billetterie.html.twig'), array(
'form' => $form->createView(),
'configAffichage' => $configAffichage,
));
}
/**
* @Route("/maritime", name="maritime")
*/
public function maritime(Request $request, GeneraleExtension $generaleExtension, WSCMS $WSCMS): Response
{
$form = $this->createFormBuilder()
->add('nomPrenom', TextType::class, array(
'required' => TRUE,
'attr' => [
'placeholder' => 'Nom & Prénom'
]
))
->add('gsm', TextType::class, array(
'required' => TRUE,
'attr' => [
'placeholder' => 'GSM'
]
))
->add('email', EmailType::class, array(
'required' => TRUE,
'attr' => [
'placeholder' => 'Email'
]
))
->add('cin', TextType::class, array(
'required' => TRUE,
'attr' => [
'placeholder' => 'CIN'
]
))
->add('typeVoyage', ChoiceType::class, [
'choices' => [
1 => "Aller-Retour",
2 => "Aller-Simple",
3 => "Retour-Differt",
]
]
)
->add('typeReservation', ChoiceType::class, [
'required' => true,
'choices' => [
1 => 'Emission',
//2 => 'Annulation',
3 => 'Remboursement',
4 => 'Modification',
]
]
)
->add('cabine', ChoiceType::class, [
'choices' => [
1 => "Fauteuil",
2 => "Cabine-Exterieur",
3 => "Cabine-Interieur",
4 => "Couchette Int",
5 => "Cab. Single Int",
6 => "Cab. Double Int",
7 => "Cab. Triple Int",
8 => "Cab. Quad Int",
9 => "Couchette Ext",
10 => "Cab. Single EXT",
11 => "Cab. Double Ext",
12 => "Cab. Triple Ext",
13 => "Cab. Quad Ext",
14 => "Cab Accès animaux int/ Ext",
15 => "Suite single",
16 => "Suite matrimoniale",
17 => "Suite familiale",
18 => "Suite présidentielle"
]
]
)
->add('passagers', ChoiceType::class, [
'choices' => [
1 => "Résident",
2 => "Non-Résident",
3 => "Diplomat",
4 => "Etudiant",
]
]
)
->add('lieuDepart', TextType::class, array(
'required' => TRUE,
'attr' => [
'placeholder' => 'Lieu départ'
]
))
->add('lieuArrivee', TextType::class, array(
'required' => TRUE,
'attr' => [
'placeholder' => 'Lieu arrivée'
]
))
->add('dateDepart', DateType::class, array(
'widget' => 'single_text',
'format' => 'yyyy-MM-dd',
))
->add('commentaire', TextareaType::class, array('required' => false));
$form = $form->getForm();
if ($request->isMethod('POST') && $request->isXmlHttpRequest()) {
try {
parse_str($request->request->get('form'), $form);
$data = $form['form'];
/* dd($data);*/
$body = $this->renderView('FrontCommun/formulaire_mail_body.html.twig', array(
'nom' => $data['nomPrenom'],
'depart' => $data['lieuDepart'],
'arrivee' => $data['lieuArrivee'],
'email' => $data['email'],
'datedepart' => $data['dateDepart'],
'tel' => $data['gsm'],
'passagers' => $data['passagers'],
'cabine' => $data['cabine'],
'typeVoyage' => $data['typeVoyage'],
'cin' => $data['cin'],
'typeReservation' => $data['typeReservation'],
'subject' => $data['commentaire'],
));
$params = array(
'email' => $data['email'],
'subject' => $data['commentaire'],
'body' => $body,
);
$result = $WSCMS->SendMailLibre($params);
$params['mailToClient'] = true;
$result = $WSCMS->SendMailLibre($params);
} catch (\Exception $e) {
$msg = '<span style="color:red">' . $e->getMessage() . '</span>';
return new Response($msg);
}
if ($result != 0) {
$msg = "<span style='color:green'>Votre message a été Envoyé avec succès !</span>";
} else {
$msg = '<span style="color:red">Echèc d\'envoi</span>';
}
return new Response($msg);
}
$configAffichage = array();
if (!is_null($WSCMS->ConfigFrontOffice()))
$configAffichage = $WSCMS->ConfigFrontOffice()['ConfigFrontOffice'];
return $this->render($this->service->checkCustomTemplate('demande_maritime.html.twig'), array(
'form' => $form->createView(),
'configAffichage' => $configAffichage,
));
}
/**
* @Route("/location-bus", name="location_bus")
*/
public function locationBus(Request $request, GeneraleExtension $generaleExtension, WSCMS $WSCMS): Response
{
$infoAgence = $generaleExtension->getAgence()['information'];
$form = $this->createFormBuilder(null, ['csrf_protection' => true])
->add('titre', ChoiceType::class, [
'choices' => [
"Mr" => "Mr",
"Mme" => "Mme",
"Mlle" => "Mlle",
]
]
)
->add('nomPrenom', TextType::class, array(
'required' => TRUE,
'attr' => [
'placeholder' => 'Nom & Prénom'
]
))
->add('typeTransfert', ChoiceType::class, [
'choices' => [
"Transfert simple" => "transfert-simple",
"Transfert aller-retour" => "transfert_aller_retour",
"Mise à disposition à la journée" => "Mise-à-disposition-à-la-journée",
"Mise à disposition pour plusieurs jours" => "Mise-à-isposition-pour-plusieurs-jours",
],
'expanded' => true,
'multiple' => false,
'label' => false,
'data' => 'transfert-simple',
])
->add('age', TextType::class, array(
'required' => false,
'attr' => [
'placeholder' => 'Age'
]
))
->add('tel', TextType::class, array(
'required' => false,
'attr' => [
'placeholder' => 'téléphone'
]
))
->add('email', EmailType::class, array(
'required' => TRUE,
'attr' => [
'placeholder' => 'Email'
]
))
->add('adresse', TextType::class, array(
'required' => false,
'attr' => [
'placeholder' => 'adresse'
]
))
->add('ville', TextType::class, array(
'required' => false,
'attr' => [
'placeholder' => 'ville'
]
))
->add('codePostal', TextType::class, array(
'required' => false,
'attr' => [
'placeholder' => 'Code Postal'
]
))
->add('typeBus', ChoiceType::class, [
'choices' => [
"Grand bus" => "Grand bus",
"Mini bus" => "Mini bus",
]
])
->add('destination', TextType::class, array(
'required' => TRUE,
'attr' => [
'placeholder' => 'Destination'
]
))
->add('nbrPersonne', IntegerType::class, array(
'required' => false,
'attr' => [
'placeholder' => 'Nombre de personnes ',
'min' => 1,
'max' => 100,
]
))
->add('depart', ChoiceType::class, array(
'required' => TRUE,
'choices' => [
"Aeroport djerba" => "Aéroport djerba",
"Aeroport enfidha" => "Aéroport enfidha",
"Aeroport monastir" => "Aéroport monastir",
"Aeroport tunis carthage" => "Aéroport tunis carthage",
"Djerba" => "Djerba",
"Hammamet" => "Hammamet",
"Nabeul" => "Nabeul",
"Sousse" => "Sousse",
"Tozeur" => "Tozeur",
"Tunis" => "Tunis",
]
))
->add('retour', ChoiceType::class, array(
'required' => TRUE,
'choices' => [
"Aeroport djerba" => "Aéroport djerba",
"Aeroport enfidha" => "Aéroport enfidha",
"Aeroport monastir" => "Aéroport monastir",
"Aeroport tunis carthage" => "Aéroport tunis carthage",
"Djerba" => "Djerba",
"Hammamet" => "Hammamet",
"Nabeul" => "Nabeul",
"Sousse" => "Sousse",
"Tozeur" => "Tozeur",
"Tunis" => "Tunis",
]
))
->add('dateDepart', DateType::class, array(
'widget' => 'single_text',
'format' => 'yyyy-MM-dd',
'required' => TRUE,
))
->add('dateRetour', DateType::class, array(
'widget' => 'single_text',
'format' => 'yyyy-MM-dd',
'required' => TRUE,
))
->add('heureDepart', TimeType::class, array(
'input' => 'datetime',
'widget' => 'choice',
'required' => TRUE,
))
->add('heureRetour', TimeType::class, array(
'input' => 'datetime',
'widget' => 'choice',
'required' => TRUE,
))
->add('commentaire', TextareaType::class,
array(
'required' => true
))
->add('code_formulaire', HiddenType::class,
array(
'required' => false,
'data' => 'Demande_Location_Bus',
));
$form = $form->getForm();
$form->handleRequest($request);
if ($request->isMethod('POST') && $request->isXmlHttpRequest()) {
try {
// parse_str($request->request->get('form'), $form);
$data = $form->getData();
$body = $this->renderView($this->service->checkCustomTemplate('formulaire_mail_location_bus.html.twig'), array(
'nomPrenom' => $data['nomPrenom'],
'titre' => $data['titre'],
'age' => $data['age'],
'adresse' => $data['adresse'],
'ville' => $data['ville'],
'codePostal' => $data['codePostal'],
'tel' => $data['tel'],
'email' => $data['email'],
'typeBus' => $_POST['form']['typeBus'],
'destination' => $data['destination'],
'nbrPersonne' => $data['nbrPersonne'],
'depart' => $data['depart'],
'retour' => $data['retour'],
'dateDepart' => !is_null($data['dateDepart']) ? $data['dateDepart']->format('d-m-Y') : '',
'dateRetour' => !is_null($data['dateRetour']) ? $data['dateRetour']->format('d-m-Y') : '',
'heureDepart' => !is_null($data['heureDepart']) ? $data['heureDepart']->format('H:i') : '',
'heureRetour' => !is_null($data['heureRetour']) ? $data['heureRetour']->format('H:i') : '',
'subject' => $data['commentaire'],
'typeTransfert' => $data['typeTransfert'],
));
$_POST['form']['heureDepart'] = "{$_POST['form']['heureDepart']['hour']}:{$_POST['form']['heureDepart']['minute']}";
$params = array(
'email' => $data['email'],
'subject' => $data['commentaire'],
'post' => $_POST,
'code_formulaire' => $data['code_formulaire'],
'body' => $body,
);
// dd( $_POST);
// $result = $WSCMS->SendMailLibre($params);
$params['mailToClient'] = true;
$result = $WSCMS->SendMailLibre($params);
} catch (\Exception $e) {
$msg = '<span style="color:red">' . $e->getMessage() . '</span>';
return new Response($msg);
}
if ($result != 0) {
$msg = "<span style='color:green'>Votre message a été Envoyé avec succès !</span>";
} else {
$msg = '<span style="color:red">Echèc d\'envoi</span>';
}
return new Response($msg);
}
$configAffichage = array();
if (!is_null($WSCMS->ConfigFrontOffice()))
$configAffichage = $WSCMS->ConfigFrontOffice()['ConfigFrontOffice'];
return $this->render($this->service->checkCustomTemplate('demande_location_bus.html.twig'), array(
'infoAgence' => $infoAgence,
'form' => $form->createView(),
'configAffichage' => $configAffichage,
));
}
/**
* @Route("/location-voiture", name="location_voiture")
*/
public function locationVoiture(Request $request, GeneraleExtension $generaleExtension, WSCMS $WSCMS): Response
{
$form = $this->createFormBuilder()
->add('titre', ChoiceType::class, [
'choices' => [
"Mr" => "Mr",
"Mme" => "Mme",
"Mlle" => "Mlle",
]
]
)
->add('nomPrenom', TextType::class, array(
'required' => TRUE,
'attr' => [
'placeholder' => 'Nom & Prénom'
]
))
->add('age', TextType::class, array(
'required' => false,
'attr' => [
'placeholder' => 'Age'
]
))
->add('tel', TextType::class, array(
'required' => false,
'attr' => [
'placeholder' => 'téléphone'
]
))
->add('email', EmailType::class, array(
'required' => TRUE,
'attr' => [
'placeholder' => 'Email'
]
))
->add('adresse', TextType::class, array(
'required' => false,
'attr' => [
'placeholder' => 'adresse'
]
))
->add('ville', TextType::class, array(
'required' => false,
'attr' => [
'placeholder' => 'ville'
]
))
->add('codePostal', TextType::class, array(
'required' => false,
'attr' => [
'placeholder' => 'Code Postal'
]
))
->add('typeVoiture', ChoiceType::class, [
'choices' => [
"Jamp" => "Jamp",
"4 * 4" => "4 * 4",
]
]
)
->add('destination', TextType::class, array(
'required' => TRUE,
'attr' => [
'placeholder' => 'Destination'
]
))
->add('nbrPersonne', TextType::class, array(
'required' => false,
'attr' => [
'placeholder' => 'Nombre de personnes'
]
))
->add('depart', ChoiceType::class, array(
'required' => TRUE,
'choices' => [
"Aeroport djerba" => "Aéroport djerba",
"Aeroport enfidha" => "Aéroport enfidha",
"Aeroport monastir" => "Aéroport monastir",
"Aeroport tunis carthage" => "Aéroport tunis carthage",
"Djerba" => "Djerba",
"Hammmamet" => "Hammmamet",
"Nabeul" => "Nabeul",
"Sousse" => "Sousse",
"Tozeur" => "Tozeur",
"Tunis" => "Tunis",
]
))
->add('retour', ChoiceType::class, array(
'required' => TRUE,
'choices' => [
"Aeroport djerba" => "Aéroport djerba",
"Aeroport enfidha" => "Aéroport enfidha",
"Aeroport monastir" => "Aéroport monastir",
"Aeroport tunis carthage" => "Aéroport tunis carthage",
"Djerba" => "Djerba",
"Hammmamet" => "Hammmamet",
"Nabeul" => "Nabeul",
"Sousse" => "Sousse",
"Tozeur" => "Tozeur",
"Tunis" => "Tunis",
]
))
->add('dateDepart', DateType::class, array(
'widget' => 'single_text',
'format' => 'yyyy-MM-dd',
'required' => TRUE,
))
->add('dateRetour', DateType::class, array(
'widget' => 'single_text',
'format' => 'yyyy-MM-dd',
'required' => TRUE,
))
->add('heureDepart', TimeType::class, array(
'input' => 'datetime',
'widget' => 'choice',
'required' => TRUE,
))
->add('heureRetour', TimeType::class, array(
'input' => 'datetime',
'widget' => 'choice',
'required' => TRUE,
))
->add('commentaire', TextareaType::class, array('required' => true));
$form = $form->getForm();
if ($request->isMethod('POST') && $request->isXmlHttpRequest()) {
try {
parse_str($request->request->get('form'), $form);
$data = $form['form'];
/* dd($data);*/
$body = $this->renderView('FrontCommun/formulaire_mail_body.html.twig', array(
'nom' => $data['nomPrenom'],
'titre' => $data['titre'],
'age' => $data['age'],
'adresse' => $data['adresse'],
'ville' => $data['ville'],
'codePostal' => $data['codePostal'],
'tel' => $data['tel'],
'email' => $data['email'],
'typeVoiture' => $data['typeVoiture'],
'destination' => $data['destination'],
'nbrPersonne' => $data['nbrPersonne'],
'depart' => $data['depart'],
'retour' => $data['retour'],
'datedepart' => $data['dateDepart'],
'dateRetour' => $data['dateRetour'],
'heureDepart' => $data['heureDepart'],
'heureRetour' => $data['heureRetour'],
'subject' => $data['commentaire'],
));
$params = array(
'email' => $data['email'],
'subject' => $data['commentaire'],
'body' => $body,
);
$result = $WSCMS->SendMailLibre($params);
$params['mailToClient'] = true;
$result = $WSCMS->SendMailLibre($params);
} catch (\Exception $e) {
$msg = '<span style="color:red">' . $e->getMessage() . '</span>';
return new Response($msg);
}
if ($result != 0) {
$msg = "<span style='color:green'>Votre message a été Envoyé avec succès !</span>";
} else {
$msg = '<span style="color:red">Echèc d\'envoi</span>';
}
return new Response($msg);
}
$configAffichage = array();
if (!is_null($WSCMS->ConfigFrontOffice()))
$configAffichage = $WSCMS->ConfigFrontOffice()['ConfigFrontOffice'];
return $this->render($this->service->checkCustomTemplate('demande_location_voiture.html.twig'), array(
'form' => $form->createView(),
'configAffichage' => $configAffichage,
));
}
/**
* @Route("/newsletter", name="newsletter")
*/
public function newsletter(WSCMS $WSCMS): Response
{
$WSCMS->NewsLetter(['email' => $_POST['email']]);
return new Response(1);
}
/**
* @Route ("/gallery", name="gallery")
*/
public function gallery(WSCMS $WSCMS): Response
{
$gallery = $WSCMS->Gallery()['Gallery'];
return $this->render($this->service->checkCustomTemplate('gallery.html.twig'), [
'gallery' => $gallery
]);
}
/**
* @Route("/admin", name="admin")
*/
public function admin()
{
return $this->redirect("{$_SERVER[$this->get('session')->get('DOMAINE_BACK', "DOMAINE_BACK")]}/admin");
}
/**
* @Route("/script", name="script")
*/
public function script()
{
return $this->redirectToRoute("app_script", $_GET);
}
/**
* @Route("/reset-cache-webservices/{name}", defaults={"name"="all"})
*/
public function resetCacheWebServices($name): Response
{
return $this->redirectToRoute('reset_cache_webservices', ['name' => $name]);
}
/**
* @Route ("/agences-liste/{id}", name="agences_liste", defaults={"id"=null})
*/
public function agencesListe()
{
return $this->render($this->service->checkCustomTemplate('agence/agences-liste.html.twig'));
}
/**
* @Route ("/home_aerien", name="home_aerien")
*/
public function home_aerien(WSCMS $WSCMS, Request $request, WSAerien $WSAerien): Response
{
$classes = $WSAerien->Classe();
$classe = $request->get('classe');
$aeroports = $WSAerien->Aeroports()['Resultat'];
return $this->render($this->service->checkCustomTemplate('Aerien/home_aerien.html.twig'), [
'lieuDepart' => $request->get('lieu_depart'),
'dateDebutFin' => $request->get('date_debut_fin'),
'dateDebut' => null,
'dateFin' => null,
'classes' => $classes,
'classe' => $classe,
'aeroports' => $aeroports
]);
}
/**
* @Route("/type-transfert", name="form_type_transfert")
*/
public function formTypeTransfert(Request $request, GeneraleExtension $generaleExtension, WSCMS $WSCMS): Response
{
$infoAgence = $generaleExtension->getAgence()['information'];
$form = $this->createFormBuilder(null, ['csrf_protection' => true])
->add('NomPrenom', TextType::class, array(
'required' => TRUE,
'attr' => [
'placeholder' => 'Nom & Prénom'
]
))
->add('NumTel', TextType::class, [
'required' => false,
'attr' => [
'placeholder' => 'Numéro de téléphone',
'type' => 'tel',
'inputmode' => 'tel',
'pattern' => '[0-9+\s\-\(\)]*',
'title' => 'Veuillez saisir uniquement des chiffres',
'maxlength' => 20,
],
])
->add('email', EmailType::class, array(
'required' => TRUE,
'attr' => [
'placeholder' => 'Entrer votre email'
]
))
->add('adresse', TextType::class, array(
'required' => false,
'attr' => [
'placeholder' => 'Adresse'
]
))
->add('TypeVehicule', ChoiceType::class, [
'choices' => [
"Economie" => "Economie",
"Confort" => "Confort",
"Suv" => "Suv",
"Van" => "Van",
"Mini-Bus" => "Mini-Bus",
]
])
->add('NbrPassagers', IntegerType::class, array(
'required' => false,
'attr' => [
'placeholder' => 'Nombre de passagers'
]
))
->add('LieuDepart', TextType::class, array(
'required' => TRUE,
'attr' => [
'placeholder' => 'Lieu de départ'
]
// 'choices' => [
// "Djerba" => "Djerba",
// "Hammamet" => "Hammamet",
// "Nabeul" => "Nabeul",
// "Sousse" => "Sousse",
// "Tozeur" => "Tozeur",
// "Tunis" => "Tunis",
//
// ]
))
->add('DateDepart', DateType::class, array(
'widget' => 'single_text',
'format' => 'yyyy-MM-dd',
'required' => TRUE,
'attr' => array(
'min' => (new \DateTime('today'))->format('Y-m-d'), // ← bloque tout avant aujourd'hui dans le calendrier
),
))
->add('HeureDepart', TimeType::class, array(
'input' => 'datetime',
'widget' => 'choice',
'required' => TRUE,
))
->add('LieuArrive', TextType::class, array(
'required' => TRUE,
'attr' => [
'placeholder' => "Lieu d’arrivée"
]
// 'choices' => [
// "Djerba" => "Djerba",
// "Hammamet" => "Hammamet",
// "Nabeul" => "Nabeul",
// "Sousse" => "Sousse",
// "Tozeur" => "Tozeur",
// "Tunis" => "Tunis",
//
// ]
))
// ->add('DateArrive', DateType::class, array(
// 'widget' => 'single_text',
// 'format' => 'yyyy-MM-dd',
// 'required' => TRUE,
// ))
// ->add('HeureArrive', TimeType::class, array(
// 'input' => 'datetime',
// 'widget' => 'choice',
// 'required' => TRUE,
// ))
->add('LieuDepartRetour', TextType::class, array(
'required' => TRUE,
'attr' => [
'placeholder' => "Lieu de départ retour"
]
// 'choices' => [
// "Djerba" => "Djerba",
// "Hammamet" => "Hammamet",
// "Nabeul" => "Nabeul",
// "Sousse" => "Sousse",
// "Tozeur" => "Tozeur",
// "Tunis" => "Tunis",
//
// ]
))
->add('DateDepartRetour', DateType::class, array(
'widget' => 'single_text',
'format' => 'yyyy-MM-dd',
'required' => TRUE,
'attr' => array(
'min' => (new \DateTime('today'))->format('Y-m-d'), // ← bloque tout avant aujourd'hui dans le calendrier
),
))
->add('HeureDepartRetour', TimeType::class, array(
'input' => 'datetime',
'widget' => 'choice',
'required' => TRUE,
))
->add('LieuArriveRetour', TextType::class, array(
'required' => TRUE,
'attr' => [
'placeholder' => "Lieu d'arrivée retour"
]
))
// ->add('DateArriveRetour', DateType::class, array(
// 'widget' => 'single_text',
// 'format' => 'yyyy-MM-dd',
// 'required' => TRUE,
// ))
// ->add('HeureArriveRetour', TimeType::class, array(
// 'input' => 'datetime',
// 'widget' => 'choice',
// 'required' => TRUE,
// ))
->add('commentaire', TextareaType::class, array(
'required' => false
))
->add('code_formulaire', HiddenType::class,
array(
'required' => false,
'data' => 'Formulaire_Type_Transfert',
));
$form = $form->getForm();
$form->handleRequest($request);
if ($request->isMethod('POST') && $request->isXmlHttpRequest()) {
try {
$data = $form->getData();
$body = $this->renderView($this->service->checkCustomTemplate('formulaire_mail_type_transfert.html.twig'), array(
'NomPrenom' => $data['NomPrenom'],
'adresse' => $data['adresse'],
'NumTel' => $data['NumTel'],
'email' => $data['email'],
'TypeVehicule' => $data['TypeVehicule'],
'NbrPassagers' => $data['NbrPassagers'],
'LieuDepart' => $data['LieuDepart'],
'DateDepart' => $data['DateDepart']->format('d-m-Y'),
'HeureDepart' => $data['HeureDepart']->format('H:i'),
'LieuArrive' => $data['LieuArrive'],
// 'DateArrive' => $data['DateArrive']->format('d-m-Y'),
// 'HeureArrive' => $data['HeureArrive']->format('H:i'),
'LieuDepartRetour' => $data['LieuDepartRetour'],
'DateDepartRetour' => $data['DateDepartRetour'] ? $data['DateDepartRetour']->format('d-m-Y') : null,
'HeureDepartRetour' => $data['HeureDepartRetour']->format('H:i'),
'LieuArriveRetour' => $data['LieuArriveRetour'],
// 'DateArriveRetour' => $data['DateArriveRetour'] ? $data['DateArriveRetour']->format('d-m-Y') : null,
// 'HeureArriveRetour' => $data['HeureArriveRetour']->format('H:i'),
'subject' => $data['commentaire'],
));
$params = array(
'email' => $data['email'],
'subject' => $data['commentaire'],
'post' => $_POST,
'code_formulaire' => $data['code_formulaire'],
'body' => $body,
);
$params['mailToClient'] = true;
$result = $WSCMS->SendMailLibre($params);
} catch (\Exception $e) {
$msg = '<span style="color:red">' . $e->getMessage() . '</span>';
return new Response($msg);
}
if ($result != 0) {
$msg = "<span style='color:green'>Votre message a été Envoyé avec succès !</span>";
} else {
$msg = '<span style="color:red">Echèc d\'envoi</span>';
}
return new Response($msg);
}
$configAffichage = array();
if (!is_null($WSCMS->ConfigFrontOffice()))
$configAffichage = $WSCMS->ConfigFrontOffice()['ConfigFrontOffice'];
return $this->render($this->service->checkCustomTemplate('form_type_transfert.html.twig'), array(
'infoAgence' => $infoAgence,
'form' => $form->createView(),
'configAffichage' => $configAffichage,
));
}
/**
* @Route("/Avis/page/{idavis}/{idreservation}/{idhotel}", name="front_avis_page")
*/
public function front_avis_page($idavis, $idhotel, $idreservation, WSSejourHotel $sejourHotel)
{
$getpageavis = $sejourHotel->getAvisPageTemp(array('reservation' => $idreservation));
$parameters = array();
$details = array();
if ($getpageavis['ok']) {
$parameters = $getpageavis['parameters'];
$details = $getpageavis['details'];
}
$ok = $getpageavis['ok'];
$message = $getpageavis['message'];
return $this->render($this->service->checkCustomTemplate('SejourHotel/avis.html.twig'), ['ok' => $ok, 'message' => $message, 'idavis' => $idavis, 'idHotel' => $idhotel, 'idReservation' => $idreservation, 'parameters' => $parameters, 'details' => $details]);
}
/**
* @Route("/AvisPost/{idavis}/{idreservation}/{idhotel}", name="front_avis_post")
*/
public function front_avis_post($idavis, $idhotel, $idreservation, WSSejourHotel $sejourHotel, Request $request)
{
$data = $_POST;
$data['id'] = $idhotel;
$data['idavis'] = $idavis;
$data['idreservation'] = $idreservation;
$data['recommended'] = $data['recommended'] == 'true' ? true : false;
$submit = $sejourHotel->postAvisPageTemp($data);
return $this->render($this->service->checkCustomTemplate('SejourHotel/avisresult.html.twig'), ['ok' => $submit['ok'], 'message' => $submit['message']]);
}
}