<?php
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
namespace App\Controller;
use App\Entity\Fonctions;
use App\Entity\ParentSejour;
use App\Entity\Clipart;
use App\Entity\Produit;
use App\Entity\Page;
use App\Entity\Position;
use App\Entity\Attachment;
use App\Entity\Sejour;
use App\Entity\Typeproduit;
use App\Entity\User;
use App\Entity\Typeref;
use App\Entity\PanierProduit;
use App\Entity\Panier;
use App\Entity\Ref;
use App\Entity\Commande;
use App\Entity\Likephoto;
use App\Entity\SejourAttachment;
use App\Entity\TypeProduitConditionnement;
use App\Message\SendEmail;
use App\Service\AttachementService;
use App\Service\CarteService;
use App\Service\ComandeService;
use App\Service\JetonService;
use Dompdf\Dompdf;
use setasign\Fpdi\Fpdi;
use setasign\Fpdi\PdfReader;
use Dompdf\Options;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\Session\Session;
use Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken;
use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
use Symfony\Component\HttpFoundation\Session\SessionInterface;
use Twig\Environment;
use App\Service\EmailsCmdService;
use App\Service\EtablissementService;
use App\Service\SejourService;
use App\Service\SmsService;
use App\Service\TypeProduiteService;
use App\Service\UserService;
use Doctrine\ORM\EntityManagerInterface;
use Doctrine\Persistence\ManagerRegistry;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
use Symfony\Component\Messenger\MessageBusInterface;
use Symfony\Component\Security\Csrf\CsrfTokenManagerInterface;
class EspaceAccompagnateurController extends AbstractController
{
private $em;
private $session;
private $templating;
private $mailer;
private $EmailServie;
private $urlGenerator;
private $sejourService;
private $userService;
private $typeProduiteService;
private $emailsCmdService;
private $smsService;
private $attachementService;
private $carteService;
private $etablissementService;
private $CommandeService;
private $params;
private MessageBusInterface $messageBus;
public function __construct(UrlGeneratorInterface $urlGenerator, ManagerRegistry $em, SessionInterface $session, \Swift_Mailer $mailer, Environment $templating, EmailsCmdService $EmailCommandeService, SejourService $sejourService, UserService $userService, TypeProduiteService $typeProduiteService, EmailsCmdService $emailsCmdService, SmsService $smsService, AttachementService $attachementService, CarteService $carteService, EtablissementService $etablissementService, ComandeService $CommandeService, ParameterBagInterface $params, MessageBusInterface $messageBus)
{
$this->em = $em;
$this->session = $session;
$this->templating = $templating;
$this->mailer = $mailer;
$this->EmailServie = $EmailCommandeService;
$this->urlGenerator = $urlGenerator;
$this->sejourService = $sejourService;
$this->userService = $userService;
$this->typeProduiteService = $typeProduiteService;
$this->emailsCmdService = $emailsCmdService;
$this->smsService = $smsService;
$this->attachementService = $attachementService;
$this->carteService = $carteService;
$this->etablissementService = $etablissementService;
$this->CommandeService = $CommandeService;
$this->params = $params;
$this->messageBus = $messageBus;
}
/**
* @Route("/Accompagnateur", name="headerAcc_Nouvelle")
*/
public function headerAcc_Ne(): Response
{
$produit = $this->typeProduiteService;
$liste = $produit->produitlistType();
$nblikes = 0;
$nbmesssages = 0;
// dd($liste);
$session = $this->session;
$panierSession = $session->get("Panier");
$destination = $session->get("destionation");
$nbvocal = 0;
$idSejour = $session->get("Sejour");
$sejour = null;
if ($idSejour != null) {
$sejour = $this->em->getRepository(Sejour::class)->find($idSejour);
}
$Products = $session->get("Panier");
$numSuivi = false;
if ($sejour != null) {
$Products = $session->get("Panier");
if ($Products == Null) {
$Products = [];
}
$UserService = $this->userService;
/** @var \App\Entity\User $user */
$user = $this->getUser();
$iduser = $user->getId();
$containsProduitType20 = false;
$sejour = $this->em->getRepository(Sejour::class)->find($idSejour);
$commandes = $this->em->getRepository(Commande::class)->findBy(["idSejour" => $idSejour, "idUser" => $iduser]);
$sejourparent = $this->em->getRepository(ParentSejour::class)->findOneBy(['idSejour' => $idSejour, "idParent" => $iduser]);
$payment = $sejourparent->getPayment();
// Check commands
foreach ($commandes as $commande) {
$commandCondition = $commande->getNumSuivi();
$status = $commande->getStatut()->getId();
if ($commandCondition == 1 && $status == 33) {
$containsProduitType20 = true;
break; // No need to check further if condition is met
}
}
// Check panierSession if the condition is not met in commandes
if (!$containsProduitType20 && is_array($panierSession) && !empty($panierSession)) {
foreach ($panierSession as $item) {
// Access the details of each item in the Panier
$condition = $item['condition'];
$codesejour = $item['codesejour'];
if ($condition == 16 && $codesejour == $sejour->getCodeSejour()) {
$containsProduitType20 = true;
break; // No need to check further if condition is met
}
}
}
$sejourservice = $this->sejourService;
$messages = $sejourservice->getsejourmessage($idSejour);
$nbmesssages = count($messages);
$listeattachlikephoto = $sejourservice->getlikephotosejour($iduser, $idSejour);
$nblikes = count($listeattachlikephoto);
$em = $this->em;
$label = "Livre_sejour" . $sejour->getCodeSejour();
$idAcc = $sejour->getIdAcommp();
$albumAcc = $em->getRepository(Produit::class)->findOneBy(['idsjour' => $idSejour, 'iduser' => $idAcc, 'statut' => 'saved'], ['id' => 'DESC']);
$livreSej = $em->getRepository(Produit::class)->findOneBy(['idsjour' => $idSejour, 'iduser' => $idAcc, 'statut' => 'saved'], ['id' => 'DESC']);
if ($albumAcc == null) {
$albumAcc = $em->getRepository(Produit::class)->findOneBy(['iduser' => 1, 'statut' => "Album_sejour", 'idsjour' => $sejour]);
}
if ($livreSej == null) {
$livreSejour = $em->getRepository(Produit::class)->findOneBy(['statut' => "Livre_sejour", 'idsjour' => $sejour, 'labele' => $label, 'version' => "Livre_Admin"]);
}
return $this->render('Accompagnateur/headerAcc.html.twig', [
'produit' => $liste,
'sejour' => $sejour,
'livreSejour' => $livreSejour,
'Products' => $Products,
'destionation' => $destination,
'nbvocal' => $nbmesssages,
'albumAcc' => $albumAcc,
'nbLikes' => $nblikes,
'payment' => $payment
]);
}
if ($sejour == null) {
return $this->render('Parent/headerParent2.html.twig');
}
}
/**
* @Route("/Accompagnateur/AccueilAccompagnateur", name="AccueilAccompagnateur")
*/
public function AccueilAccompagnateur()
{
$sejourservice = $this->sejourService;
$this->session->set('pageMenu', '');
$idSejour = $this->session->get("Sejour");
$sejour = $sejourservice->getsejourByAcc($idSejour, $this->getUser());
return $this->render('Accompagnateur/AccueilAccompagnateur.html.twig', ["sejour" => $sejour]);
}
/**
* @Route("/Accompagnateur/SejourAccompagnateur/{id}", name="SejourAccompagnateur")
*/
public function SejourAccompagnateur($id)
{
$session = $this->session;
//$defaultval=0;
/** @var \App\Entity\User $user */
$user = $this->getUser();
$userId = $user->getId();
$sejourservice = $this->sejourService;
$sejour = $sejourservice->getsejourByAcc($id, $this->getUser());
$listeattach = $sejourservice->getatachmentsejour($id);
$listeattachM = $sejourservice->getsejourmessage($id);
$listposition = $sejourservice->getsejourposition($id);
$totalParent = $sejourservice->getTotalParent($id);
$totallikes = $sejourservice->getTotalLikesSejour($id);
$counts = $sejourservice->countAll($id);
$listeattachlikephoto = $sejourservice->getlikephotosejour($userId, $id);
$date = new \Datetime("midnight");
return $this->render('Accompagnateur/SejourAccompagnateur.html.twig', [
'sejour' => $sejour,
'photos' => $listeattach,
'messages' => $listeattachM,
'positions' => $listposition,
'dateexpretise' => $date,
'datefincode' => $sejour->getDateFinCode(),
'totalParent' => $totalParent,
'totalLikes' => $totallikes,
'like' => count($listeattachlikephoto),
'counts' => $counts,
]);
}
/**
* @Route("/", name="headerAccompagnateurDash")
*/
public function headerAccompagnateurDash(): Response
{
$produit = $this->typeProduiteService;
$liste = $produit->produitlistType();
$nblikes = 0;
$nbmesssages = 0;
// dd($liste);
$session = $this->session;
$destination = $session->get("destionation");
$nbvocal = 0;
$idSejour = $session->get("Sejour");
$sejour = null;
if ($idSejour != null) {
$sejour = $this->em->getRepository(Sejour::class)->find($idSejour);
}
if ($sejour != null) {
$Products = $session->get("Panier");
if ($Products == Null) {
$Products = [];
}
$UserService = $this->userService;
/** @var \App\Entity\User $user */
$user = $this->getUser();
$iduser = $user->getId();
$sejourservice = $this->sejourService;
$messages = $sejourservice->getsejourmessage($idSejour);
$nbmesssages = count($messages);
$listeattachlikephoto = $sejourservice->getlikephotosejour($iduser, $idSejour);
$nblikes = count($listeattachlikephoto);
$em = $this->em;
$idAcc = $sejour->getIdAcommp();
$albumAcc = $em->getRepository(Produit::class)->findOneBy(['idsjour' => $idSejour, 'iduser' => $idAcc, 'statut' => 'saved'], ['id' => 'DESC']);
if ($albumAcc == null) {
$albumAcc = $em->getRepository(Produit::class)->findOneBy(['iduser' => 1, 'statut' => "Album_sejour", 'idsjour' => $sejour]);
}
$livreSejour = $em->getRepository(Produit::class)->findOneBy(['iduser' => 1, 'statut' => "Livre_sejour", 'idsjour' => $sejour]);
return $this->render('Accompagnateur/headerAccDash.html.twig', [
'produit' => $liste,
'sejour' => $sejour,
'livreSejour' => $livreSejour,
'Products' => $Products,
'destionation' => $destination,
'nbvocal' => $nbmesssages,
'albumAcc' => $albumAcc,
'nbLikes' => $nblikes,
]);
}
if ($sejour == null) {
return $this->render('Accompagnateur/header.html.twig');
}
}
/**
* @Route("/", name="headerAccompagnateur")
*/
public function headerAccompagnateur(): Response
{
$produit = $this->typeProduiteService;
$liste = $produit->produitlistType();
$nblikes = 0;
$nbmesssages = 0;
// dd($liste);
$session = $this->session;
$destination = $session->get("destionation");
$nbvocal = 0;
$idSejour = $session->get("Sejour");
$sejour = null;
if ($idSejour != null) {
$sejour = $this->em->getRepository(Sejour::class)->find($idSejour);
}
if ($sejour != null) {
$Products = $session->get("Panier");
if ($Products == Null) {
$Products = [];
}
$UserService = $this->userService;
/** @var \App\Entity\User $user */
$user = $this->getUser();
$iduser = $user->getId();
$sejourservice = $this->sejourService;
$messages = $sejourservice->getsejourmessage($idSejour);
$nbmesssages = count($messages);
$listeattachlikephoto = $sejourservice->getlikephotosejour($iduser, $idSejour);
$nblikes = count($listeattachlikephoto);
$em = $this->em;
$idAcc = $sejour->getIdAcommp();
$albumAcc = $em->getRepository(Produit::class)->findOneBy(['idsjour' => $idSejour, 'iduser' => $idAcc, 'statut' => 'saved'], ['id' => 'DESC']);
if ($albumAcc == null) {
$albumAcc = $em->getRepository(Produit::class)->findOneBy(['iduser' => 1, 'statut' => "Album_sejour", 'idsjour' => $sejour]);
}
$livreSejour = $em->getRepository(Produit::class)->findOneBy(['iduser' => 1, 'statut' => "Livre_sejour", 'idsjour' => $sejour]);
return $this->render('Accompagnateur/headerAcc.html.twig', [
'produit' => $liste,
'sejour' => $sejour,
'livreSejour' => $livreSejour,
'Products' => $Products,
'destionation' => $destination,
'nbvocal' => $nbmesssages,
'albumAcc' => $albumAcc,
'nbLikes' => $nblikes,
]);
}
if ($sejour == null) {
return $this->render('Accompagnateur/header.html.twig');
}
}
/**
* @Route("/", name="footerAccompagnateur")
*/
public function footerAccompagnateur(): Response
{
$produit = $this->typeProduiteService;
$liste = $produit->produitlistType();
// dd($liste);
$session = $this->session;
$destination = $session->get("destionation");
$nbvocal = 0;
$nbSlection = 0;
$nbPhoto = 0;
$sejour = null;
$sejourservice = $this->sejourService;
$idSejour = $session->get("Sejour");
/** @var \App\Entity\User $user */
$user = $this->getUser();
$userId = $user->getId();
$albumAcc = null;
$em = $this->em;
if ($idSejour != null) {
$sejour = $this->em->getRepository(Sejour::class)->find($idSejour);
// Nb favoris
$listeattachlikephoto = $sejourservice->getlikephotosejour($userId, $idSejour);
$nbSlection = count($listeattachlikephoto);
// Nb photos
$listeattach = $sejourservice->getatachmentsejour($idSejour);
$nbPhoto = count($listeattach);
// Nb messages vocaux
$messages = $sejourservice->getsejourmessage($idSejour);
$nbmesssages = count($messages);
// Rechercher s'il y'a un album acompagnateur
$idAcc = $sejour->getIdAcommp();
$albumAcc = $em->getRepository(Produit::class)->findOneBy(['idsjour' => $idSejour, 'iduser' => $idAcc, 'statut' => 'saved'], ['id' => 'DESC']);
}
return $this->render('Accompagnateur/footerAccompagnateur.html.twig', [
'destionation' => $destination,
'nbvocal' => $nbvocal,
'nbSlection' => $nbSlection,
'nbPhotos' => $nbPhoto,
'albumAcc' => $albumAcc,
]);
if ($idSejour == null) {
$this->render('Accompagnateur/footer.html.twig');
}
}
/**
* @Route("/Accompagnateur/ProjetsAccompagnateur/{id}", name="ProjetsAccompagnateur")
*/
public function ProjetsAccompagnateur($id)
{
$sejourservice = $this->sejourService;
$sejour = $sejourservice->getsejourByAcc($id, $this->getUser());
$session = $this->session;
$session->set('pageMenu', 'projets');
$session->set('route', 'nonlogin');
$listeattach = $sejourservice->getatachmentsejour($id);
$listeattachM = $sejourservice->getsejourmessage($id);
/** @var \App\Entity\User $user */
$user = $this->getUser();
$userId = $user->getId();
$AlbumAll = $this->em->getRepository(Produit::class)->findby(["iduser" => $userId, "idsjour" => $id], ['id' => 'DESC']);
$produit = $this->typeProduiteService;
$produitlist = $produit->produitlistTypeConditionnement();
return $this->render('Accompagnateur/ProjetsAccompagnateur.html.twig', ['produitlist' => $produitlist, 'sejour' => $sejour, 'photos' => $listeattach, 'messages' => $listeattachM, 'AlbumAll' => $AlbumAll]);
}
/**
* @Route("/Accompagnateur/PhotosAccompagnateur/{id}", name="PhotosAccompagnateur")
*/
public function PhotosAccompagnateur($id)
{
$session = $this->session;
$session->set('route', 'nonlogin');
$session->set('pageMenu', 'photos');
$sejourservice = $this->sejourService;
$sejour = $sejourservice->getsejourByAcc($id, $this->getUser());
$SEjourService = $this->sejourService;
$listeattach = $SEjourService->getatachmentsejour($id);
$nbImages = count($listeattach);
$listeVideo = $SEjourService->getVideosejour($id);
$AllAttachements = array_merge_recursive($listeattach, $listeVideo);
$listeattachM = $SEjourService->getsejourmessage($id);
$nbMsg = count($listeattachM);
$listposition = $sejourservice->getsejourposition($id);
$nbrpos = count($listposition);
$date = new \Datetime("midnight");
$date->modify('+1 day');
$date->modify('-1 seconds');
//dd($date);
/** @var \App\Entity\User $user */
$user = $this->getUser();
$iduser = $user->getId();
$listeattachlikephoto = $SEjourService->getlikephotosejour($iduser, $id);
$produits = $this->typeProduiteService;
$liste = $produits->produitlistTypeConditionnement();
return $this->render('Accompagnateur/PhotosAccompagnateur.html.twig', [
'sejour' => $sejour,
'prod' => $liste,
'listeattach' => $AllAttachements,
'nbImages' => $nbImages,
'nbrpos' => $nbrpos,
'nbMessage' => $nbMsg,
'like' => $listeattachlikephoto,
'dateexpretise' => $date,
'datefincode' => $sejour->getDateFinCode(),
]);
}
/**
* @Route("/Accompagnateur/CarteAccompagnateur/{id}", name="CarteAccompagnateur")
*/
public function CarteAccompagnateur($id)
{
$session = $this->session;
$session->set('route', 'nonlogin');
$session->set('pageMenu', 'carte');
$sejourservice = $this->sejourService;
$sejour = $sejourservice->getsejourByAcc($id, $this->getUser());
$date = new \Datetime("midnight");
$listeattach = $sejourservice->getatachmentsejour($id);
$listeattachM = $sejourservice->getsejourmessage($id);
$listposition = $sejourservice->getsejourposition($id);
$nbImg = count($listeattach);
$nbMsg = count($listeattachM);
$nbrpos = count($listposition);
return $this->render('Accompagnateur/CarteAccompagnateur.html.twig', [
'sejour' => $sejour,
'photos' => $listeattach,
'messages' => $listeattachM,
'dateexpretise' => $date,
'nbrpos' => $nbrpos,
'datefincode' => $sejour->getDateFinCode(),
'nbImg' => $nbImg,
'nbMsg' => $nbMsg
]);
}
/**
* @Route("/Accompagnateur/ParametresAccompagnateur/{id}", name="ParametresAccompagnateur")
*/
public function ParametresAccompagnateur($id)
{
$sejourservice = $this->sejourService;
$sejour = $sejourservice->getsejourByAcc($id, $this->getUser());
$session = $this->session;
$session->set('route', 'nonlogin');
$session->set('pageMenu', 'parametres');
$user = $this->getUser();
// dd($user);
$listeattach = $sejourservice->getatachmentsejour($id);
$listeattachM = $sejourservice->getsejourmessage($id);
$listeFonctions = $this->em->getRepository(Fonctions::class)->findBy(array('statut' => 2));
return $this->render('Accompagnateur/ParametresAccompagnateur.html.twig', ['listeFonctions' => $listeFonctions, 'user' => $user, 'sejour' => $sejour, 'photos' => $listeattach, 'messages' => $listeattachM,]);
}
/**
* @Route("/Accompagnateur/MessagesAccompagnateur/{id}", name="MessagesAccompagnateur")
*/
public function MessagesAccompagnateur($id)
{
$session = $this->session;
$session->set('route', 'nonlogin');
$session->set('pageMenu', 'messages');
$sejourservice = $this->sejourService;
$sejour = $sejourservice->getsejourByAcc($id, $this->getUser());
$SEjourService = $this->sejourService;
$listeattachM = $SEjourService->getsejourmessage($id);
$listeattach = $SEjourService->getatachmentsejour($id);
$listposition = $sejourservice->getsejourposition($id);
$nbImages = count($listeattach);
$nbrpos = count($listposition);
$date = new \Datetime("midnight");
return $this->render('Accompagnateur/MessagesAccompagnateur.html.twig', [
'sejour' => $sejour,
'listemessage' => $listeattachM,
'dateexpretise' => $date,
'nbrpos' => $nbrpos,
'datefincode' => $sejour->getDateFinCode(),
'nbImages' => $nbImages
]);
}
/**
* @Route("/Accompagnateur/InterfaceCreationSejour", name="InterfaceCreationSejour")
*/
public function InterfaceCreationSejour()
{
$session = $this->session;
$session->set('pageMenu', 'messages');
return $this->render('Accompagnateur/EspaceAccoCreationSejour.html.twig', []);
}
/**
* @Route("/Accompagnateur/AccoSejour", name="CreationSejourAccompagnateur")
*/
public function CreationSejourAccompagnateur(Request $request)
{
$session = $this->session;
$session->set('pageMenu', 'messages');
$SejourService = $this->sejourService;
$UserService = $this->userService;
/** @var \App\Entity\User $user */
$user = $this->getUser();
$iduser = $user->getId();
$accomp = $UserService->getUserAcc($iduser);
$themSejour = $request->get('theme_sejour');
$adressSejour = $request->get("adress_sejour");
$codePostal = $request->get("codePostal");
$dateDebut = $request->get("date_debut_sejour");
$FinSejour = $request->get("date_fin_sejour");
$AgeDugroupe = $request->get("age_dugroupe_sejour");
$NbEnfant = $request->get("NbEnfant");
$connpay = $request->get("connpay");
$pays = $request->get("pays");
$ville = $request->get("ville");
$type = $request->get("typeSejour");
/** @var \App\Entity\User $user */
$user = $this->getUser();
$userid = $user->getId();
$sejour = $SejourService->CreationNouveauSejour($themSejour, $adressSejour, $codePostal, $dateDebut, $FinSejour, $AgeDugroupe, $type, $userid, $NbEnfant, $connpay, $pays, $ville);
$SejourService->affecterAccompaniateur($sejour, $accomp);
return new JsonResponse(["idSejour" => $sejour->getId(), "codeSejour" => $sejour->getCodeSejour(), "dateDebutCode" => $sejour->getDateCreationCode()->format('d/m/Y'), "dateFinCode" => $sejour->getDateFinCode()->format('d/m/Y')]);
}
/**
* @Route("/Accompagnateur/uploadAttSej", name="SejourAccompagnateurUploadAudio")
*/
public function SejourAccompagnateur_UploadAttSej(Request $request)
{
date_default_timezone_set('Europe/Paris');
$Active = $this->em->getRepository(Ref::class)->find(5);
$path = $request->get("path");
$type = $request->get("type");
$sejId = $request->get("id");
$dateSejour = $request->get("date");
$SejourServiceattachh = $this->sejourService;
$Userservicemail = $this->userService;
$EmailsCmdService = $this->emailsCmdService;
$sejourfind = $SejourServiceattachh->sejoursansattach($sejId);
$sejoursend = $this->em->getRepository(Sejour::class)->find($sejId);
$oldSejourAttch = $this->em->getRepository(SejourAttachment::class)->findBy(["idSejour" => $sejId]);
if (count($oldSejourAttch) == 0) {
$sendmail = $Userservicemail->sendmailuserforfirstattach($sejId);
//$sendmaildepot_partenaire = $EmailsCmdService->MailRemercAccApresPremDepot1($sejoursend->getIdPartenaire()->getEmail());
$accmailresp = $sejoursend->getIdAcommp()->getReponseemail();
if ($accmailresp != NULL) {
$sendmaildepot_Acompa = $EmailsCmdService->MailRemercAccApresPremDepot2($accmailresp);
} else {
$sendmaildepot_partenaire = $EmailsCmdService->MailRemercAccApresPremDepot2($sejoursend->getIdPartenaire()->getEmail());
}
}
$SmsNotif = $this->smsService;
$SMS = $SmsNotif->saveSmsNotif($sejId, "photo");
$attachementservice = $this->attachementService;
foreach ($path as $key => $path) {
$src = $path['path'];
$attachement = $attachementservice->creationAttachementS($src, $type, $dateSejour);
$sejourservice = $this->sejourService;
$sejAttach = $sejourservice->affectationAttachement($sejId, $attachement);
if ((array_key_exists("latitude", $path)) && ($path['latitude'] != null)) {
$lat = $path['latitude'];
$lng = $path['longitude'];
$Cartervice = $this->carteService;
$position = $Cartervice->create_newPositionImage($this->getUser(), $lat, $lng);
$Cartervice->affecterPosition($attachement, $position);
$FindSejour = $this->em->getRepository(Sejour::class)->find($sejId);
$FindSejour->setEtatAdresseCarte(true);
$Active = $this->em->getRepository(Ref::class)->find(5);
$dateNow = new \DateTime();
if ($FindSejour->getDateDebutSejour() <= $dateNow) {
$FindSejour->setStatut($Active);
}
$this->em->getManager()->persist($FindSejour);
$this->em->getManager()->flush();
}
}
return new JsonResponse(["id" => $attachement->getId()]);;
}
/**
* @Route("/Accompagnateur/uploadVideo", name="SejourAccompagnateurUploadVideo")
*/
public function SejourAccompagnateur_UploadVideo(Request $request)
{
$Active = $this->em->getRepository(Ref::class)->find(5);
$path = $request->get("path");
$type = $request->get("type");
$sejId = $request->get("id");
$dateSejour = $request->get("date");
$SejourServiceattachh = $this->sejourService;
$Userservicemail = $this->userService;
$EmailsCmdService = $this->emailsCmdService;
$sejourfind = $SejourServiceattachh->sejoursansattach($sejId);
$sejoursend = $this->em->getRepository(Sejour::class)->find($sejId);
$oldSejourAttch = $this->em->getRepository(SejourAttachment::class)->findBy(["idSejour" => $sejId]);
if (count($oldSejourAttch) == 0) {
$sendmail = $Userservicemail->sendmailuserforfirstattach($sejId);
//$sendmaildepot_partenaire = $EmailsCmdService->MailRemercAccApresPremDepot1($sejoursend->getIdPartenaire()->getEmail());
$accmailresp = $sejoursend->getIdAcommp()->getReponseemail();
if ($accmailresp != NULL) {
$sendmaildepot_Acompa = $EmailsCmdService->MailRemercAccApresPremDepot2($accmailresp);
} else {
$sendmaildepot_partenaire = $EmailsCmdService->MailRemercAccApresPremDepot2($sejoursend->getIdPartenaire()->getEmail());
}
}
$SmsNotif = $this->smsService;
$SMS = $SmsNotif->saveSmsNotif($sejId, "video");
$attachementservice = $this->attachementService;
foreach ($path as $key => $path) {
$src = $path['path'];
$attachement = $attachementservice->creationAttachementS($src, $type, $dateSejour);
$sejourservice = $this->sejourService;
$sejAttach = $sejourservice->affectationAttachement($sejId, $attachement);
}
$FindSejour = $this->em->getRepository(Sejour::class)->find($sejId);
$dateNow = new \DateTime();
if ($FindSejour->getDateDebutSejour() <= $dateNow) {
$FindSejour->setStatut($Active);
$this->em->getManager()->persist($FindSejour);
$this->em->getManager()->flush();
}
return new JsonResponse(["id" => $attachement->getId()]);
}
/**
* @Route("/Accompagnateur/UploadMsgSej", name="SejourAccompagnateurUploadMsg")
*/
public function SejourAccompagnateur_UploadMsgSej(Request $request)
{
date_default_timezone_set('Europe/Paris');
$path = $request->get("path");
$type = $request->get("type");
$sejId = $request->get("id");
$SejourServiceattachh = $this->sejourService;
$EmailsCmdService = $this->emailsCmdService;
$Userservicemail = $this->userService;
$sejoursend = $this->em->getRepository(Sejour::class)->find($sejId);
$oldSejourAttch = $this->em->getRepository(SejourAttachment::class)->findBy(["idSejour" => $sejId]);
$sejourfind = $SejourServiceattachh->sejoursansattach($sejId);
if (count($oldSejourAttch) == 0) {
$sendmail = $Userservicemail->sendmailuserforfirstattach($sejId);
//$sendmaildepot_partenaire = $EmailsCmdService->MailRemercAccApresPremDepot1($sejoursend->getIdPartenaire()->getEmail());
$accmailresp = $sejoursend->getIdAcommp()->getReponseemail();
if ($accmailresp != NULL) {
$sendmaildepot_Acompa = $EmailsCmdService->MailRemercAccApresPremDepot2($accmailresp);
} else {
$sendmaildepot_partenaire = $EmailsCmdService->MailRemercAccApresPremDepot2($sejoursend->getIdPartenaire()->getEmail());
}
}
$SmsNotif = $this->smsService;
$SMS = $SmsNotif->saveSmsNotif($sejId, "audio");
$attachementservice = $this->attachementService;
// $path2 = explode("blob:", $path);
$src = $path['path'];
$attachement = $attachementservice->creationAttachementS($src, $type);
$sejourservice = $this->sejourService;
$sejAttach = $sejourservice->affectationAttachement($sejId, $attachement);
if ($request->get("latitude") != null) {
$lat = $request->get("latitude");
$lng = $request->get("longitude");
$Cartervice = $this->carteService;
$position = $Cartervice->create_newPositionImage($this->getUser(), $lat, $lng);
$Cartervice->affecterPosition($attachement, $position);
}
$Active = $this->em->getRepository(Ref::class)->find(5);
$FindSejour = $this->em->getRepository(Sejour::class)->find($sejId);
$dateNow = new \DateTime();
if ($FindSejour->getDateDebutSejour() <= $dateNow) {
$FindSejour->setStatut($Active);
$this->em->getManager()->persist($FindSejour);
$this->em->getManager()->flush();
}
return new response("done");
}
/**
* @Route("/Accompagnateur/saveCarte", name="SejourAccompagnateurSaveCarte")
*/
public function SejourAccompagnateur_SaveCarte(Request $request)
{
$sejourid = $request->get("id");
$num = $request->get("num");
$rue = $request->get("rue");
$CodePostal = $request->get("CodePostal");
$ville = $request->get("ville");
$Pays = $request->get("Pays");
$date = $request->get("date");
$nomCarte = $request->get("nomCarte");
$lat = $request->get("lat");
$lng = $request->get("lng");
$Cartervice = $this->carteService;
$carte = $Cartervice->getCardBySej($sejourid);
if ($carte == null) {
$carte = $Cartervice->carteSave($sejourid);
}
$position = $Cartervice->create_newPosition($carte, $this->getUser(), $num, $rue, $CodePostal, $ville, $Pays, $date, $nomCarte, $lat, $lng);
$Active = $this->em->getRepository(Ref::class)->find(5);
$FindSejour = $this->em->getRepository(Sejour::class)->find($sejourid);
$dateNow = new \DateTime();
if ($FindSejour->getDateDebutSejour() <= $dateNow) {
$FindSejour->setStatut($Active);
$this->em->getManager()->persist($FindSejour);
$this->em->getManager()->flush();
}
return new response($position->getId());
}
/**
* @Route("Accompagnateur/Accueil5sur5/ajouteradresslirison", name="Acompaajouteradress_livrson",methods={"POST"})
*/
public function ajouteradresslivr(Request $request)
{
$UserService = $this->userService;
//dd($this->getUser()->getId());
/** @var \App\Entity\User $user */
$user = $this->getUser();
$iduser = $user->getId();
$prenom = $request->get("prenom");
$nom = $request->get("nom");
$organism = $request->get("organism");
$num = $request->get("num");
$rue = $request->get('ruevoi');
$ville = $request->get("villle");
$pays = $request->get("pays");
$codepostal = $request->get("codpostal");
//adress facturation if exsist
$prenomfacturation = $request->get("prenomadressfacturation");
$nomfacturation = $request->get("nomadressfacturation");
$organismfacturation = $request->get("etablismadressfacturation");
$numfacturation = $request->get("numdressfacturation");
$ruefacturation = $request->get('rueadressfacturation');
$villefacturation = $request->get("villefacturation");
$paysfacturation = $request->get("payadressfacturation");
$codepostalfacturation = $request->get("codepostalfacturation");
//modification userAcommpanateur
$usernomAcommpa = $request->get("usernom");
$userprenomAcommpa = $request->get("userprenom");
$userfonctionAcommpa = $request->get("userfonction");
$EntityFonction = $this->em->getRepository(Fonctions::class)->find($userfonctionAcommpa);
if ($EntityFonction) {
$userfonctionAcommpa = $EntityFonction->getName();
} else {
$userfonctionAcommpa = "";
}
$useretablismentAcommpa = $request->get("useretablisment");
$useremailcommpa = $request->get("useremail");
$sejourthem = $request->get("sejourthem");
$adresssejour = $request->get("sejouradresse");
$id = $request->get("id");
$adress = $UserService->setadresslivraison($num, $rue, $ville, $pays, $codepostal, $iduser, $prenom, $nom, $organism, $prenomfacturation, $nomfacturation, $organismfacturation, $numfacturation, $ruefacturation, $villefacturation, $paysfacturation, $codepostalfacturation, $usernomAcommpa, $userprenomAcommpa, $userfonctionAcommpa, $useretablismentAcommpa, $useremailcommpa, $sejourthem, $adresssejour, $id);
$AttachementService = $this->attachementService;
$ty = "logo séjour";
$AttachementService->creationLogoSejour($adress, $request->get('path'), $ty);
$user->setIdFonction($EntityFonction);
$this->em->getManager()->persist($user);
$this->em->getManager()->flush();
return new JsonResponse('done');
}
/**
* @Route("/Accueil5sur5/ajouteradressfacturation", name="ajouteradress_facturation",methods={"POST","GET"})
*/
public function ajouteradressfacturation(Request $request)
{
$UserService = $this->userService;
/** @var \App\Entity\User $user */
$user = $this->getUser();
$iduser = $user->getId();
$num = $request->get("num");
$rue = $request->get('rue');
$ville = $request->get("ville");
$pays = $request->get("pays");
$codepostal = $request->get("codepostal");
$adress = $UserService->setadressfacturation($num, $rue, $ville, $pays, $codepostal, $iduser);
return new JsonResponse('done');
}
/**
* @Route("/Accompagnateur/uploadAudio", name="SejourAccompagnateurUploadAudio1")
*/
public function SejourAccompagnateur_UploadAdio(Request $request)
{
date_default_timezone_set('Europe/Paris');
$session = $this->session;
/** @var \App\Entity\User $user */
$user = $this->getUser();
$iduser = $user->getId();
$sejourId = $session->get("Sejour");
$directoryName = 'message';
// Create the directory if it does not exist.
if (!is_dir($directoryName)) {
mkdir($directoryName, 0755);
}
$directoryName = 'message/' . $sejourId;
if (!is_dir($directoryName)) {
mkdir($directoryName);
}
$date = new \Datetime();
$Milliseconde = $date->format('u');
$code = $sejourId . '-' . $iduser . "-" . $Milliseconde;
$port = $request->getPort();
$file = $request->files->get("audio_data");
$file->move($directoryName, $code . ".wav");
$path = 'https://' . $_SERVER["SERVER_NAME"] . ":" . $port . '/' . $directoryName . '/' . $code . ".wav";
$type = "message";
// Retrieve the date from the request.
// If no date is provided, default to an empty string.
// (Your creationAttachementS method will then use the current date.)
$dateParam = $request->get("date", "");
$attachementservice = $this->attachementService;
// Pass the date parameter to your creation method.
$attachement = $attachementservice->creationAttachementS($path, $type, $dateParam);
$sejourservice = $this->sejourService;
// Test if it is the first sejour
$EmailsCmdService = $this->emailsCmdService;
$Userservicemail = $this->userService;
$sejoursend = $this->em->getRepository(Sejour::class)->find($sejourId);
$oldSejourAttch = $this->em->getRepository(SejourAttachment::class)->findBy(["idSejour" => $sejourId]);
if (count($oldSejourAttch) == 0) {
$sendmail = $Userservicemail->sendmailuserforfirstattach($sejourId);
$accmailresp = $sejoursend->getIdAcommp()->getReponseemail();
if ($accmailresp != NULL) {
$sendmaildepot_Acompa = $EmailsCmdService->MailRemercAccApresPremDepot2($accmailresp);
} else {
$sendmaildepot_partenaire = $EmailsCmdService->MailRemercAccApresPremDepot2($sejoursend->getIdPartenaire()->getEmail());
}
}
$sejourservice->affectationAttachement($sejourId, $attachement);
if ($request->get("latitude") != null) {
$lat = $request->get("latitude");
$lng = $request->get("longitude");
$Cartervice = $this->carteService;
$position = $Cartervice->create_newPositionImage($this->getUser(), $lat, $lng);
$Cartervice->affecterPosition($attachement, $position);
}
return new Response("yoyo");
}
/**
* @Route("/Accompagnateur/DetailsSejourAcc", name="DetailsSejourAcc")
*/
public function DetailsSejourAcc(Request $request)
{
$session = $this->session;
//$defaultval=0;
/** @var \App\Entity\User $user */
$user = $this->getUser();
$userId = $user->getId();
$idSejour = $session->get("Sejour");
$conxparent = $this->sejourService;
$SEjourService = $this->sejourService;
$sejour = $SEjourService->getsejour($idSejour);
$dateCreationArch = clone $sejour->getDateFinCode();
if ($dateCreationArch <= new \DateTime()) {
return $this->render('Parent/SejourDepassee.html.twig');
}
$idSejour = $sejour->getId();
$SEjourService = $this->sejourService;
$listeattachlikephoto = $SEjourService->getlikephotosejour($userId, $idSejour);
$this->session->set('Sejour', $idSejour);
$dateCreationArch = clone $sejour->getDateFinCode();
if ($dateCreationArch <= new \DateTime()) {
return $this->render('Parent/SejourDepassee.html.twig');
}
$session->set('pageMenu', 'MonSejour');
$AllAttachements = $SEjourService->getphotosVideosSejour($idSejour, 'original', $userId);
$nbImages = count($AllAttachements);
$messages = $SEjourService->getCombinedattachSejour($idSejour, 'message');
$positions = $SEjourService->getsejourposition($idSejour);
$photoLikes = [];
foreach ($AllAttachements as $attach) {
if (!isset($attach['id_attchment'])) {
// Skip this attachment if no id is available
continue;
}
$libiller = $attach['libiller'] ?? null;
// Only count likes for items that are photos (assuming video attachments have 'libiller' set to "video")
if ($libiller !== 'video') {
$photoLikes[$attach['id_attchment']] = $this->sejourService->getTotallikesphotosejour($attach['id_attchment'], $idSejour);
}
}
$em = $this->em;
$idAcc = $sejour->getIdAcommp();
$em = $this->em;
$idAcc = $sejour->getIdAcommp();
//VERIFICATION DE L EXISTANCE DE LIVRE OU D ALBUM SEJOUR
$albumAcc = $em->getRepository(Produit::class)->findOneBy(['idsjour' => $idSejour, 'iduser' => $idAcc, 'statut' => 'saved'], ['id' => 'DESC']);
if ($albumAcc == null) {
$albumAcc = $em->getRepository(Produit::class)->findOneBy(['iduser' => 1, 'statut' => "Album_sejour", 'idsjour' => $sejour]);
}
$label = "Livre_sejour" . $sejour->getCodeSejour();
$albumAcc = $em->getRepository(Produit::class)->findOneBy(['idsjour' => $idSejour, 'iduser' => $idAcc, 'statut' => 'saved'], ['id' => 'DESC']);
$livreSej = $em->getRepository(Produit::class)->findOneBy(['idsjour' => $idSejour, 'iduser' => $idAcc, 'statut' => 'saved'], ['id' => 'DESC']);
if ($albumAcc == null) {
$albumAcc = $em->getRepository(Produit::class)->findOneBy(['iduser' => 1, 'statut' => "Album_sejour", 'idsjour' => $sejour]);
}
if ($livreSej == null) {
$livreSejour = $em->getRepository(Produit::class)->findOneBy(['statut' => "Livre_sejour", 'idsjour' => $sejour, 'labele' => $label, 'version' => "Livre_Admin"]);
}
$attachementsCount = $AllAttachements['total'];
unset($AllAttachements['total']);
$date = new \Datetime("midnight");
$date->modify('+1 day');
$date->modify('-1 seconds');
return $this->render('Accompagnateur/DetailsSejourAcc.html.twig', [
"sejour" => $sejour,
'listeattach' => $AllAttachements,
'attachementsCount' => $attachementsCount,
'albumAcc' => $albumAcc,
"livreSejour" => $livreSejour,
'nbImages' => $nbImages,
'positions' => $positions,
'dateexpretise' => $date,
'messages' => $messages,
'like' => $listeattachlikephoto,
'nblike' => count($listeattachlikephoto),
'photoLikes' => $photoLikes,
'datefincode' => $sejour->getDateFinCode(),
]);
}
/**
* @Route("/Accompagnateur/changePageSession", name="changePageSession")
*/
public function changePageSession(Request $request, session $session)
{
$page = $request->get('page');
$session->set('pageMenu', $page);
return new Response('ok');
}
/**
* @Route("Accompagnateur/Accueil5sur5/commantaire", name="addd_commantaire",methods={"POST"})
*/
public function ajoutercomm(Request $request)
{
$UserService = $this->userService;
$iduser = $this->getUser()->getId();
$id = $request->get('idatach');
$description = $request->get("description");
$adress = $UserService->setDescriptionAttch($id, $description);
return new JsonResponse('done');
}
/**
* @Route("Accompagnateur/Accueil5sur5/deletecommantaire", name="rem_commantaire")
*/
public function deletecomm(Request $request)
{
$UserService = $this->userService;
$iduser = $this->getUser()->getId();
$id = $request->get('idatach');
$adress = $UserService->DelDescriptionAttch($id);
return new JsonResponse('done');
}
/**
* @Route("/Accompagnateur/deletePostion", name="SejourAccompagnateurDeletePosition")
*/
public function SejourAccompagnateur_deletePosition(Request $request)
{
$idPosition = $request->get("id");
$Cartervice = $this->carteService;
$carte = $Cartervice->deleteCardPosition($idPosition);
return new response("done");
}
/**
* @Route("Accompagnateur/Accueil5sur5/supprimermesgeAudio", name="supprimermesgeAudio",methods={"POST"})
*/
public function supprimmaudio(Request $request)
{
$UserService = $this->userService;
$id = $request->get('id');
$adress = $UserService->supprimaudio($id);
return new JsonResponse('done');
}
/**
* @Route("Accompagnateur/testmail", name="testMAil",methods={"GET"})
*/
public function testEmail()
{
$UserService = $this->sejourService;
$UserService->EnvoyerEmailCodeSejour(3, 3);
return new response("test");
}
/**
* @Route("Accompagnateur/Accueil5sur5/ajouterdatesejourdescription", name="ajouterdatesejourdescription",methods={"POST"})
*/
public function ajouterdatesejourdescription(Request $request)
{
$dateString = $request->request->get('datedescription'); // e.g. "02/05/2025"
$id = $request->get('id');
$description = $request->get('description');
// Pass the raw string:
$desc = $this->userService->ajouterdatesejourdescription($id, $description, $dateString);
return new JsonResponse('done');
}
/**
* @Route("Accompagnateur/commanderAccompAdress", name="commanderAccompAdress",methods={"POST"})
*/
public function CommanderAccompAdress(Request $request)
{
$em = $this->em;
$nbAlbums = $request->request->get('nbAlbums');
$email = $request->request->get('email');
$phone = $request->request->get('phone');
$country = $request->request->get('country');
$city = $request->request->get('city');
$region = $request->request->get('region');
$address = $request->request->get('address');
$addressComplement = $request->request->get('addressComplement');
$postalCode = $request->request->get('postalCode');
$idsejour = $request->request->get('idSejour');
$sejour = $em->getRepository(Sejour::class)->findOneBy(['id' => $idsejour]);
$accompagnateur = $this->getUser();
// Génération de l'URL d'administration pour le séjour
$adminUrl = $this->generateUrl('DetailsSejourAcc', ['id' => $idsejour], UrlGeneratorInterface::ABSOLUTE_URL);
// Envoi aux trois adresses spécifiées
$message = new SendEmail(
['contact@5sur5sejour.com', 'yousra.tlich@gmail.com', 'ramzi.benlarbi@gmail.com'],
'Nouvelle demande de commande groupée - Séjour ' . $sejour->getCodeSejour(),
'emails/NotificationDemandeCommandeGroupee.html.twig',
[
'accompagnateur' => $accompagnateur,
'sejour' => $sejour,
'adminUrl' => $adminUrl,
'nbAlbums' => $nbAlbums,
'email' => $email,
'phone' => $phone,
'adresseLivraison' => [
'pays' => $country,
'ville' => $city,
'region' => $region,
'adresse' => $address,
'complement' => $addressComplement,
'codePostal' => $postalCode
]
]
);
$this->messageBus->dispatch($message);
return new JsonResponse('done');
}
/**
* @Route("Accompagnateur/Accueil5sur5/supprimdescription", name="supprimdescription")
*/
public function supprimdescription(Request $request)
{
$UserService = $this->userService;
$iddescription = $request->get('iddescription');
$desc = $UserService->supprimdescription($iddescription);
return new JsonResponse('done');
}
/**
* @Route("Accompagnateur/Accueil5sur5/modificationdescription", name="modificationdescription",methods={"POST"})
*/
public function modificationdescription(Request $request)
{
$UserService = $this->userService;
$iddescription = $request->get('iddescription');
$description = $request->get('description');
$desc = $UserService->modificationdescription($iddescription, $description);
return new JsonResponse('done');
}
/**
* @Route("Accompagnateur/EditionAlbum", name="VoirProjet")
*/
public function AffichageProjet()
{
$sejourservice = $this->sejourService;
$session = $this->session;
$idSejour = $session->get("Sejour");
$sejour = $sejourservice->getsejourByAcc($idSejour, $this->getUser());
$session->set('pageMenu', 'albumSej');
$user = $this->getUser();
// dd($user);
$iduser = $this->getUser()->getId();
$listeattach = $sejourservice->getatachmentsejour($idSejour);
$listeattachM = $sejourservice->getsejourmessage($idSejour);
$em = $this->em;
$clipart = null;
$random = true;
$listeattachlikephoto = $sejourservice->getlikephotosejour($iduser, $idSejour);
$listerandom = $listeattachlikephoto;
$Albumproduct = $em->getRepository(Produit::class)->findOneBy(['labele' => 'random']);
$AllPages = $em->getRepository(Page::class)->findBy(['idproduit' => $Albumproduct]);
$allpagesResult = array();
$tabacc = array();
$tabacc1 = array();
if ($random == true) {
foreach ($AllPages as $p) {
$arrayexploded = preg_split('[randomid|randompath]', $p->getCouleurbordure());
//dd($arrayexploded);
$rr = "";
$elemPath = "";
$elemId = "";
for ($i = 0; $i < sizeof($arrayexploded); $i = $i + 2) {
if ($i + 1 < sizeof($arrayexploded)) {
if (sizeof($listerandom) == 0) {
$listerandom = $sejourservice->getlikephotosejour($iduser, $idSejour);
}
$arrayRsRandom = $this->random_function($listerandom);
array_push($tabacc, $arrayRsRandom['idelem']);
$rr = $rr . $arrayexploded[$i] . $arrayRsRandom['idelem'] . $arrayexploded[$i + 1] . $arrayRsRandom['pathelem'];
unset($listerandom[$arrayRsRandom['elem']]);
} else {
$rr = $rr . $arrayexploded[$i];
}
$listerandom = $listerandom;
}
$resultFinal = $rr;
$p->setCouleurbordure($resultFinal);
array_push($allpagesResult, $p);
}
$AllPages = $allpagesResult;
$version = 'new';
} else {
$version = $Albumproduct->getVersion();
}
$tabacc1 = array_count_values($tabacc);
$part = $sejour->getIdPartenaire();
$nompart = $part->getUsername();
$logopart = $part->getLogourl();
return $this->render('Accompagnateur/NewAlbum2.html.twig', ["tabacc" => $tabacc1, "nompart" => $nompart, "logopart" => $logopart, 'user' => $user, 'sejour' => $sejour, 'photos' => $listeattach, 'messages' => $listeattachM, 'cliparts' => $clipart, 'like' => $listeattachlikephoto, 'Album' => $Albumproduct, 'AllPages' => $AllPages, 'random' => $random]);
}
function random_function($listerandom)
{
$elem = array_rand($listerandom);
$photo = $listerandom[$elem];
$idelem = $photo->getIdSejourAttchment()->getIdAttchment()->getId();
$pathelem = $photo->getIdSejourAttchment()->getIdAttchment()->getPath();
return array('pathelem' => $pathelem, 'idelem' => $idelem, 'elem' => $elem);
}
function random_functionPhoto($listerandom, $elem)
{
$photo = $listerandom[$elem];
$idelem = $photo->getIdSejourAttchment()->getIdAttchment()->getId();
$pathelem = $photo->getIdSejourAttchment()->getIdAttchment()->getPath();
return array('pathelem' => $pathelem, 'idelem' => $idelem, 'elem' => $elem);
}
/**
* @Route("Accompagnateur/Condtyg", name="conditiongenerale_Acomp",methods={"POST"})
*/
public function condition(Request $request)
{
$UserService = $this->userService;
$id = $request->get('id');
$sejour = $UserService->condition($id);
return new JsonResponse('done');
}
/**
* @Route("Accompagnateur/MonPanierAccompaganteur", name="MonPanierAccompaganteur")
*/
public function MonPanierAccompaganteur()
{
$em = $this->em;
$sejourservice = $this->sejourService;
$session = $this->session;
$idSejour = $session->get("Sejour");
$sejour = $sejourservice->getsejourByAcc($idSejour, $this->getUser());
$session->set('pageMenu', 'panier');
$user = $this->getUser();
$products = $session->get("Panier_Acompa");
$listeproduit = $em->getRepository(Produit::class)->findBy(array('iduser' => $user->getId(), "idsjour" => $idSejour));
$produit = $this->typeProduiteService;
$produitlist = $produit->produitlistTypeConditionnement();
return $this->render('Accompagnateur/MonPanierAccompaganteur.html.twig', ['user' => $user, "listeproduit" => $listeproduit, 'sejour' => $sejour, 'Panier' => $products, 'produitlist' => $produitlist]);
}
/**
* @Route("Accompagnateur/SessionPromo", name="SessionPromo")
*/
public function SessionPromo()
{
$session = $this->session;
$session->set("promoAcc", "true");
return new Response('ok');
}
/**
* @Route("/Accompagnateur/suprimerattachAcommpailmag", name="suprimerattachAcommpailmag")
*/
public function suprimerattachAcommpailmag(Request $request)
{
$serviceuser = $this->etablissementService;
$id = $request->get("prodId");
$etablissementDetail = $serviceuser->supprisionimageadminfon($id);
//dd($etablissementDetail);
return new response('done');
}
/**
* @Route("/Accompagnateur/suprimermultiattachAcommp", name="suprimermultiattachAcommp")
*/
public function suprimermultiattachAcommp(Request $request)
{
// Decode the JSON request body to get the array of photo IDs.
$data = json_decode($request->getContent(), true);
$photoIds = isset($data['photoIds']) ? $data['photoIds'] : [];
if (empty($photoIds)) {
return new Response('No photos selected', 400);
}
// Call the service to delete all attachments by the given IDs.
$this->etablissementService->supprismultiattachAcommp($photoIds);
return new Response('done');
}
/**
* @Route("/Accompagnateur/AlbummsavealbumAcompa", name="Albummsavealbum")
*/
public function Albummsavealbum(Request $request)
{
$serviceuser = $this->etablissementService;
$page = $request->get("pages");
$sejour = $request->get("sejour");
$prodid = $request->get('idProd');
$nomprod = $request->get('nomprod');
$version = $request->get('new');
$user = $this->getUser();
$stat="Album_sejour";
$Album = $serviceuser->savealbumAcc($page, $user, $sejour, $prodid, $stat, $nomprod, $version);
return new response('done');
}
/**
* @Route("/Accompagnateur/DupliquerAlbumAcco", name="DupliquerAlbumAcco")
*/
public function DupliquerAlbumAcco(Request $request)
{
$serviceuser = $this->etablissementService;
$page = $request->get("pages");
$sejour = $request->get("sejour");
$prodid = $request->get('idProd');
$nomprod = $request->get('nomprod');
$stat = $request->get('stat');
$user = $this->getUser();
$Album = $serviceuser->savealbumAcc($page, $user, $sejour, $prodid, $stat, $nomprod);
return new response('done');
}
/**
* @Route("/Accompagnateur/AlbummsavealbumAcompa_panier", name="Albummsavealbum_panier")
*/
public function Albummsavealbum_panier(Request $request)
{
$serviceuser = $this->etablissementService;
$page = $request->get("pages");
$sejour = $request->get("sejour");
$prodid = $request->get('idProd');
$nomprod = $request->get('nomprod');
$version = $request->get('new');
$stat = "draft";
$em = $this->em;
$user = $this->getUser();
$typeref = $em->getRepository(Typeref::class)->find(8);
$statutPanier = $em->getRepository(Ref::class)->findOneBy(array("libiller" => "creer", "typeref" => $typeref));
$panierTrace = $em->getRepository(Panier::class)->findOneBy(array("creerPar" => $user, "statut" => $statutPanier));
//fin
if ($panierTrace == null) {
$panierTrace = new Panier();
$dateNow = new \Datetime();
$panierTrace->setDateCreation($dateNow);
$panierTrace->setCreerPar($user);
$panierTrace->setStatut($statutPanier);
$em->getManager()->persist($panierTrace);
$em->getManager()->flush();
}
$Album = $serviceuser->savealbumAcc($page, $user, $sejour, $prodid, $stat, $nomprod, $version);
$inser = false;
$session = $this->session;
$Products = $session->get("Panier_Acompa");
$em = $this->em;
if ($Products == null) {
$Products = [];
}
foreach ($Products as $key => $p) {
if ($p['id'] == $Album->getId()) {
$inser = true;
$Products[$key]['qte'] = $p['qte'] + 1;
$Products[$key]['mnt'] = $p['mnt'] + $Album->getIdConditionnement()->getMontantTTC();
}
}
//Touhemi :Rechercher si le produti existe déja ds panierProduit
$panierProduit = $em->getRepository(PanierProduit::class)->findOneBy(array("idProduit" => $Album, "idPanier" => $panierTrace));
if ($panierProduit == null) {
$panierProduit = new PanierProduit();
$panierProduit->setIdProduit($Album);
$panierProduit->setIdPanier($panierTrace);
$em->getManager()->persist($panierProduit);
$em->getManager()->flush();
}
//fin
//Touhemi ajouter plus un au produit et modifier prixTotal
$oldQte = $panierProduit->getQuantite();
$newQte = $oldQte + 1;
$panierProduit->setQuantite($newQte);
if ($panierProduit->getPrixTotal() == null) {
$oldTotal = $panierProduit->getPrixTotal();
} else {
$oldTotal = 0;
}
$newTotal = $oldTotal + $Album->getIdConditionnement()->getMontantTTC();
$panierProduit->setPrixTotal($newTotal);
$this->em->getManager()->persist($panierProduit);
$this->em->getManager()->flush();
//fin
if ($inser === false) {
//get nessaisire element
$p = [];
$p["id"] = $Album->getId();
$p["nom"] = $Album->getType()->getLabeletype();
$p["ident"] = $Album->getLabele();
$p["codesejour"] = $Album->getIdsjour()->getcodeSejour();
$p["mnt"] = $Album->getIdConditionnement()->getMontantTTC();
$p["path"] = $Album->getType()->getAttachements()[0]->getIdAttachement()->getPath();
$p["condition"] = $Album->getIdConditionnement()->getId();
$p["poids"] = $Album->getIdConditionnement()->getPoidsProduit();
$p["statut"] = $Album->getStatut();
$p["qte"] = 1;
array_push($Products, $p);
}
$session->set('Panier_Acompa', $Products);
return new response('done');
}
/**
* @Route("Accompagnateur/MonAlbum/{id}", name="getmonAlbum")
*/
public function getMyAlbumProjet($id)
{
$sejourservice = $this->sejourService;
$session = $this->session;
$idSejour = $session->get("Sejour");
$sejour = $sejourservice->getsejourByAcc($idSejour, $this->getUser());
$session->set('pageMenu', 'parametres');
$user = $this->getUser();
// dd($user);
$iduser = $this->getUser()->getId();
$listeattach = $sejourservice->getatachmentsejour($idSejour);
$listeattachM = $sejourservice->getsejourmessage($idSejour);
$em = $this->em;
$clipart = null;
$random = false;
$tabacc = array();
$tabacc1 = array();
$listeattachlikephoto = $sejourservice->getlikephotosejour($iduser, $idSejour);
$Albumproduct = $em->getRepository(Produit::class)->find($id);
$AllPages = $em->getRepository(Page::class)->findBy(['idproduit' => $Albumproduct]);
foreach ($AllPages as $page) {
$pageJ = json_decode($page->getCouleurbordure());
$pageDec = json_decode($pageJ[0]);
$attache = json_decode($pageDec->attache);
if (isset($attache[0])) {
$attachDec = json_decode($attache[0]);
}
if (isset($attachDec->id) && json_decode($attachDec->id) !== null && $attachDec->id !== '') {
$idAttach = json_decode($attachDec->id);
array_push($tabacc, $idAttach);
}
}
$part = $sejour->getIdPartenaire();
$nompart = $part->getUsername();
$logopart = $part->getLogourl();
$FindSejour = $em->getRepository(Sejour::class)->find($idSejour);
$FindSejour->setEtatAcompAlbum(true);
$em->getManager()->persist($FindSejour);
$em->getManager()->flush();
$tabacc1 = array_count_values($tabacc);
$version = $Albumproduct->getVersion();
if ($version === 'new') {
return $this->render('Accompagnateur/NewAlbum2.html.twig', ["tabacc" => $tabacc1, "nompart" => $nompart, "logopart" => $logopart, 'user' => $user, 'sejour' => $sejour, 'photos' => $listeattach, 'messages' => $listeattachM, 'cliparts' => $clipart, 'like' => $listeattachlikephoto, 'Album' => $Albumproduct, 'AllPages' => $AllPages, 'random' => $random]);
} else {
return $this->render('Accompagnateur/NewAlbum2.html.twig', ["tabacc" => $tabacc1, "nompart" => $nompart, "logopart" => $logopart, 'user' => $user, 'sejour' => $sejour, 'photos' => $listeattach, 'messages' => $listeattachM, 'cliparts' => $clipart, 'like' => $listeattachlikephoto, 'Album' => $Albumproduct, 'AllPages' => $AllPages, 'random' => $random]);
}
}
/**
* @Route("/Accompagnateur/modifierLabel_produit_Acompa", name="modifierLabel_produit_Acompa",methods={"POST"})
*/
public function modifierLabel_produit_Acompa(Request $request)
{
$SEjourService = $this->sejourService;
$userId = $this->getUser()->getId();
$session = $this->session;
$idPrd = $request->get("id");
$description = $request->get("description");
$SEjourService->modif_lbel_Produit($idPrd, $description);
return new Response('done');
}
/**
* @Route("/Accompagnateur/ajouterauPanier_Accompagnateur", name="Ajouter_MonPanier_Acompa")
*/
public function Ajouter_MonPanier(Request $request)
{
$inser = false;
$session = $this->session;
$testsaved = false;
$Products = $session->get("Panier_Acompa");
$id = $request->get("id");
$em = $this->em;
$produit = $em->getRepository(Produit::class)->find($id);
//Touhemi :Rechercher si l'utilisateur a déja un panier avec statut créer ds la bd , sinon on écrit un panier
$user = $this->getUser();
$typeref = $em->getRepository(Typeref::class)->find(8);
$statutPanier = $em->getRepository(Ref::class)->findOneBy(array("libiller" => "creer", "typeref" => $typeref));
$panierTrace = $em->getRepository(Panier::class)->findOneBy(array("creerPar" => $user, "statut" => $statutPanier));
//fin
if ($panierTrace == null) {
$panierTrace = new Panier();
$dateNow = new \Datetime();
$panierTrace->setDateCreation($dateNow);
$panierTrace->setCreerPar($user);
$panierTrace->setStatut($statutPanier);
$em->getManager()->persist($panierTrace);
$em->getManager()->flush();
}
$sejourFind = $produit->getIdsjour();
$nrbconnx = $em->getRepository(ParentSejour::class)->findBy(["idSejour" => $sejourFind->getId(), "payment" => 1]);
$Album_Grtuie = $produit->getIdsjour()->getAlbumgratuie();
if ($Products == null) {
$Products = [];
}
//Touhemi :Rechercher si le produti existe déja ds panierProduit
$panierProduit = $em->getRepository(PanierProduit::class)->findOneBy(array("idProduit" => $produit, "idPanier" => $panierTrace));
if ($panierProduit == null) {
$panierProduit = new PanierProduit();
$panierProduit->setIdProduit($produit);
$panierProduit->setIdPanier($panierTrace);
$em->getManager()->persist($panierProduit);
$em->getManager()->flush();
}
foreach ($Products as $key => $p) {
if ($p['id'] == $produit->getId()) {
$inser = true;
$Products[$key]['qte'] = $p['qte'] + 1;
// je regarde dans le panier si j'ai déjà ajouté un album gratuit
if ($p["statut"] == "saved" && $p["qte"] == 0) {
$Products[$key]['mnt'] = $produit->getIdConditionnement()->getMontantTTC();
} elseif ($p["statut"] == "saved" && $p["qte"] > 0) {
$Products[$key]['mnt'] = ($Products[$key]['qte'] - 1) * $produit->getIdConditionnement()->getMontantTTC();
}
// Si je n'ai pas d'album gratuit j'ajoute normalement,
else {
$Products[$key]['mnt'] = $p['mnt'] + $produit->getIdConditionnement()->getMontantTTC();
}
}
if ($Products[$key]["statut"] == "saved") {
$testsaved = true; // *****je sais que le panier contient déjà un album accompagnateur gratuit donc il peut commander un autre
}
}
//Touhemi ajouter plus un au produit et modifier prixTotal
$oldQte = $panierProduit->getQuantite();
$newQte = $oldQte + 1;
$panierProduit->setQuantite($newQte);
if ($panierProduit->getPrixTotal() == null) {
$oldTotal = $panierProduit->getPrixTotal();
} else {
$oldTotal = 0;
}
$newTotal = $oldTotal + $produit->getIdConditionnement()->getMontantTTC();
$panierProduit->setPrixTotal($newTotal);
$this->em->getManager()->persist($panierProduit);
$this->em->getManager()->flush();
//fin
if ($inser === false) {
//get nessaisire element
$p = [];
$p["id"] = $produit->getId();
$p["nom"] = $produit->getType()->getLabeletype();
$p["ident"] = $produit->getLabele();
$p["codesejour"] = $produit->getIdsjour()->getcodeSejour();
$p["path"] = $produit->getType()->getAttachements()[0]->getIdAttachement()->getPath();
$p["condition"] = $produit->getIdConditionnement()->getId();
$p["poids"] = $produit->getIdConditionnement()->getPoidsProduit();
$p["statut"] = "payment";
$p["qte"] = 1;
$p["mnt"] = $produit->getIdConditionnement()->getMontantTTC();
// dd($p);
array_push($Products, $p);
}
$session->set('Panier_Acompa', $Products);
return new JsonResponse('done');
}
/**
* @Route("/Accompagnateur/ActiverSessionAlbum", name="ActiverSessionAlbum")
*/
public function ActiverSessionAlbum(Request $request)
{
$session->set('Panier_Acompa', $Products);
return new JsonResponse('done');
}
/**
* @Route("/Accompagnateur/suprimer_panier_Acompa", name="suprimer_panier_Acompa")
*/
public function suprimer_Album_panier(Request $request)
{
$session = $this->session;
$Products = $session->get("Panier_Acompa");
$id = $request->get("p");
$idsej = "";
$gratuit = "";
foreach ($Products as $key => $p) {
if ($p['id'] == $id) {
if ($p['statut'] == "saved") {
$gratuit = true;
}
unset($Products[$key]);
}
}
foreach ($Products as $key => $p) {
if ($p['condition'] == 4 && $gratuit == true) {
$p[$key]['condition'] = "saved";
$Products[$key]['mnt'] = $Products[$key]['mnt'] - ($Products[$key]['mnt'] / $Products[$key]['qte']);
$gratuit = false;
}
}
$em = $this->em;
$user = $this->getUser();
$produit = $em->getRepository(Produit::class)->find($id);
$session->set('Panier_Acompa', $Products);
$typeref = $em->getRepository(Typeref::class)->find(8);
$statutPanier = $em->getRepository(Ref::class)->findOneBy(array("libiller" => "creer", "typeref" => $typeref));
$panierTrace = $em->getRepository(Panier::class)->findOneBy(array("creerPar" => $user, "statut" => $statutPanier));
$panierProduit = $em->getRepository(PanierProduit::class)->findOneBy(array("idProduit" => $produit, "idPanier" => $panierTrace));
$em->getManager()->remove($panierProduit);
$em->getManager()->flush();
return new Response('done');
}
/**
* @Route("/Accompagnateur/Commander", name="Commander_Acompa")
*/
public function Commander()
{
$session = $this->session;
# var_dump($session);
$idSejour = $session->get("Sejour");
$sejour = $this->em->getRepository(Sejour::class)->find($idSejour);
$user = $this->getUser();
$comande = $session->get("comande");
$panier = $session->get("Panier_Acompa");
$typeref = $this->em->getRepository(Typeref::class)->find(8);
$statutPanier = $this->em->getRepository(Ref::class)->findOneBy(array("libiller" => "creer", "typeref" => $typeref));
$panierTrace = $this->em->getRepository(Panier::class)->findOneBy(array("creerPar" => $user, "statut" => $statutPanier));
$jetonService = new JetonService($this->em);
$promotion = 0;
//if(($jetonService->checkJetonUser($user->getId()))&&($jetonService->checkApplicablePanier($panier))){
// $jetonService->appliquerJetonUserPanier($panierTrace->getId(),$user->getId());
// $promotion=$jetonService->getPromotion();
//}else if($panierTrace->getJeton()==1){
// $promotion=$jetonService->getPromotion();
//}
$Conditionnement = $this->em->getRepository(TypeProduitConditionnement::class)->find(1);
$prixphotos = $Conditionnement->getMontantTTC();
//dd();
//var_dump($promotion." ".$panierTrace->getJeton());
return $this->render('Accompagnateur/commande.html.twig', ["user" => $user, "sejour" => $sejour, "x" => $panier, 'promotion' => $promotion, 'prixphotos' => $prixphotos]);
}
/**
* @Route("/Accompagnateur/adresse_comande", name="adresse_comande_Acompa",methods={"POST"})
*/
public function adresse_comande_Acompa(Request $request)
{
$UserService = $this->userService;
//dd($this->getUser()->getId());
$iduser = $this->getUser()->getId();
$prenom = $request->get("prenom");
$nom = $request->get("nom");
$organism = $request->get("organism");
$rue = $request->get('ruevoi');
$ville = $request->get("villle");
$pays = $request->get("pays");
$codepostal = $request->get("codpostal");
//adress facturation if exsist
$prenomfacturation = $request->get("prenomadressfacturation");
$nomfacturation = $request->get("nomadressfacturation");
$organismfacturation = $request->get("etablismadressfacturation");
$ruefacturation = $request->get('rueadressfacturation');
$villefacturation = $request->get("villefacturation");
$paysfacturation = $request->get("payadressfacturation");
$codepostalfacturation = $request->get("codepostalfacturation");
//modification userPArent
$adress = $UserService->modifieradress_comande($rue, $ville, $pays, $codepostal, $iduser, $prenom, $nom, $organism, $prenomfacturation, $nomfacturation, $organismfacturation, $ruefacturation, $villefacturation, $paysfacturation, $codepostalfacturation);
return new JsonResponse('done');
}
/**
* @Route("/Accompagnateur/pass_Comande_Acompa_Alb", name="pass_Comande_Acompa_Alb",methods={"POST"})
*/
public function AcompacomandeProduit(Request $request)
{
$em = $this->em;
$comandeservice = $this->CommandeService;
$userId = $this->getUser()->getId();
$session = $this->session;
// $comande = $request->get("x");
$frais = $request->get("fraiEnvoi");
$envoipost = $request->get("envoipost");
$Products = $session->get("Panier_Acompa");
$totalepanier = $request->get("totalepanier");
$session->set('envoipost', $envoipost);
$comand = $comandeservice->addcomande_parent($Products, $userId, $frais, $totalepanier, $envoipost);
$comand->setAdresslivraison($this->getUser()->getAdresslivraison());
$comand->setAdressfactoration($this->getUser()->getAdressfactoration());
$em->getManager()->persist($comand);
$em->getManager()->flush();
//$session->set('envoipost',$envoipost );
//panier retour a zero
//$Products=[];
$session->set('commandeActual', $comand->getId());
return new Response($comand->getId());
}
/**
* @Route("/Accompagnateur/soustractionproduit_panierAcomp", name="soustractionproduit_panierAcomp",methods={"POST"})
*/
public function soustractionproduit_panierAcomp(Request $request)
{
$session = $this->session;
$Products = $session->get("Panier_Acompa");
$id = $request->get("p");
$em = $this->em;
$user = $this->getUser();
$gratuit = "";
$produit = $em->getRepository(Produit::class)->find($id);
foreach ($Products as $key => $p) {
if ($p['id'] == $id) {
if ($p["statut"] == "saved" && $p["qte"] == 1) {
if ($p['statut'] == "saved") {
$gratuit = true;
}
unset($Products[$key]);
} elseif ($p["statut"] == "saved" && $p["qte"] > 1) {
$Products[$key]['qte'] = $p['qte'] - 1;
$Products[$key]['mnt'] = $Products[$key]['mnt'] - $produit->getIdConditionnement()->getMontantTTC();
} elseif ($p["qte"] == 1) {
unset($Products[$key]);
} else {
$Products[$key]['qte'] = $p['qte'] - 1;
$Products[$key]['mnt'] = $Products[$key]['mnt'] - $produit->getIdConditionnement()->getMontantTTC();
}
}
}
foreach ($Products as $key => $p) {
if ($p['condition'] == 4 && $gratuit == true) {
$Products[$key]['statut'] = "saved";
$Products[$key]['mnt'] = $Products[$key]['mnt'] - ($Products[$key]['mnt'] / $Products[$key]['qte']);
$gratuit = false;
}
}
$session->set('Panier_Acompa', $Products);
$typeref = $em->getRepository(Typeref::class)->find(8);
$statutPanier = $em->getRepository(Ref::class)->findOneBy(array("libiller" => "creer", "typeref" => $typeref));
$panierTrace = $em->getRepository(Panier::class)->findOneBy(array("creerPar" => $user, "statut" => $statutPanier));
$panierProduit = $em->getRepository(PanierProduit::class)->findOneBy(array("idProduit" => $produit, "idPanier" => $panierTrace));
if ($panierProduit != null) {
$oldQte = $panierProduit->getQuantite();
$newQte = $oldQte - 1;
if ($newQte > 0) {
$panierProduit->setQuantite($newQte);
$oldTotal = $panierProduit->getPrixTotal();
$newTotal = $oldTotal - $produit->getIdConditionnement()->getMontantTTC();
$panierProduit->setPrixTotal($newTotal);
$em->getManager()->persist($panierProduit);
$em->getManager()->flush();
}
if ($newQte == 0) {
$em->getManager()->remove($panierProduit);
$em->getManager()->flush();
}
return new Response('done');
}
}
/**
* @Route("/Accompagnateur/Additionproduit_panierAcomp", name="additiondproduit_Acompa",methods={"POST"})
*/
public function additiondproduit_parent(Request $request)
{
$session = $this->session;
$Products = $session->get("Panier_Acompa");
$id = $request->get("p");
$em = $this->em;
$user = $this->getUser();
$produit = $em->getRepository(Produit::class)->find($id);
foreach ($Products as $key => $p) {
if ($p['id'] == $produit->getId()) {
$inser = true;
$Products[$key]['qte'] = $p['qte'] + 1;
if ($p["statut"] == "saved" && $p["qte"] == 0) {
$Products[$key]['mnt'] = $produit->getIdConditionnement()->getMontantTTC();
} elseif ($p["statut"] == "saved" && $p["qte"] > 0) {
$Products[$key]['mnt'] = ($Products[$key]['qte'] - 1) * $produit->getIdConditionnement()->getMontantTTC();
} else {
$Products[$key]['mnt'] = $p['mnt'] + $produit->getIdConditionnement()->getMontantTTC();
}
}
}
$session->set('Panier_Acompa', $Products);
$typeref = $em->getRepository(Typeref::class)->find(8);
$statutPanier = $em->getRepository(Ref::class)->findOneBy(array("libiller" => "creer", "typeref" => $typeref));
$panierTrace = $em->getRepository(Panier::class)->findOneBy(array("creerPar" => $user, "statut" => $statutPanier));
$panierProduit = $em->getRepository(PanierProduit::class)->findOneBy(array("idProduit" => $produit, "idPanier" => $panierTrace));
if ($panierProduit != null) {
$oldQte = $panierProduit->getQuantite();
$newQte = $oldQte + 1;
$panierProduit->setQuantite($newQte);
$oldTotal = $panierProduit->getPrixTotal();
$newTotal = $oldTotal + $produit->getIdConditionnement()->getMontantTTC();
$panierProduit->setPrixTotal($newTotal);
$em->getManager()->persist($panierProduit);
$em->getManager()->flush();
}
return new Response('done');
}
/**
* @Route("/Accompagnateur/SupprimerCommande", name="Supprimer_CommandeAcco")
*/
function RemoveCommandeAcco(Request $request)
{
$CommandeService = $this->CommandeService;
$idCmd = $request->get('id');
$result = $CommandeService->CommandeCloture($idCmd);
return new Response($result);
}
/**
* @Route("/Accompagnateur/delateSession", name="delateSession",methods={"POST"})
*/
public function delateSession(Request $request)
{
$session = $this->session;
$em = $this->em;
$Products = [];
if ($session->get("paymentmoniteco") == "succses") {
$Products = [];
$session->set('Panier_Acompa', $Products);
$user = $this->getUser();
$typeref = $em->getRepository(Typeref::class)->find(8);
$statutPanier = $em->getRepository(Ref::class)->findOneBy(array("libiller" => "creer", "typeref" => $typeref));
$payer = $em->getRepository(Ref::class)->findOneBy(array("libiller" => "payer", "typeref" => $typeref));
$panierTrace = $em->getRepository(Panier::class)->findOneBy(array("creerPar" => $user, "statut" => $statutPanier));
if ($panierTrace) {
$panierTrace->setStatut($payer);
$em->getManager()->persist($panierTrace);
$em->getManager()->flush();
}
}
$this->session->remove('paymentmoniteco');
$this->session->remove('montanttotalcomande');
$this->session->remove('Panierlength');
$this->session->remove('envoipost');
return new Response('done');
}
/**
* @Route("/Accompagnateur/SuiviCommande/{id}", name="SuiviCommand")
*/
public function SuiviCommand($id)
{
$sejourservice = $this->sejourService;
$cmdservice = $this->CommandeService;
$sejour = $sejourservice->getsejourByAcc($id, $this->getUser());
$session = $this->session;
$session->set('route', 'nonlogin');
$session->set('pageMenu', 'parametres');
$user = $this->getUser();
$listeCmd = $cmdservice->listerCommandeParUser($user, $sejour);
//dd($listeCmd);
return $this->render('Accompagnateur/suivicommande.html.twig', ['user' => $user, 'sejour' => $sejour, 'listeCmd' => $listeCmd]);
}
/**
* @Route("/Accompagnateur/pdffactureAccomptest/{id}", name="pdffactureAccomptest")
*/
public function pdffactureAccomptest($id)
{
$em = $this->em;
$cmd = $em->getRepository(Commande::class)->find($id);
return $this->render('Accompagnateur/pdfFactureAccomp.html.twig', [
"comande" => $cmd,
]);
}
/**
* @Route("/Accompagnateur/pdffactureAccomp/{id}", name="pdffactureAccomp")
*/
public function pdffactureAccomp($id)
{
$em = $this->em;
$cmd = $em->getRepository(Commande::class)->find($id);
//dd($cmdProd);
// Configure Dompdf according to your needs
$pdfOptions = new Options();
$pdfOptions->set('isRemoteEnabled', TRUE);
$pdfOptions->set('defaultFont', 'Arial');
// Instantiate Dompdf with our options
$dompdf = new Dompdf($pdfOptions);
$dompdf->set_option('isRemoteEnabled', TRUE);
// Retrieve the HTML generated in our twig file
$html = $this->renderView('Accompagnateur/pdfFactureAccomp.html.twig', [
"comande" => $cmd,
]);
// Load HTML to Dompdf
$dompdf->loadHtml($html);
// (Optional) Setup the paper size and orientation 'portrait' or 'portrait'
$dompdf->setPaper('A4', 'portrait');
// Render the HTML as PDF
$dompdf->render();
// Output the generated PDF to Browser (force download)
$dompdf->stream("facture.pdf", [
"Attachment" => true
]);
}
/**
* @Route("/Accompagnateur/suprimerproduitAcompa", name="suprimerproduitAcompa")
*/
public function suprimerproduitAcompa(Request $request)
{
$em = $this->em;
$user = $this->getUser();
$p = $request->get("p");
$Album = $em->getRepository(Produit::class)->find($p);
$Album->setDelated(1);
$em->getManager()->persist($Album);
$em->getManager()->flush();
return new Response('yoopi');
}
/**
* @Route("/Accompagnateur/affectationPositionPhoto", name="affectationPositionPhoto")
*/
public function affectationPositionPhoto(Request $request)
{
$postionID = $request->get("position");
$attachs = ($request->get("attach"));
$positionOrigin = $this->em->getRepository(Position::class)->find($postionID);
$Cartervice = $this->carteService;
foreach ($attachs as $key => $att) {
$Attachement = $this->em->getRepository(Attachment::class)->find($att);
// $attachement = $this->em->getRepository(Position::class)->find();
$lat = floatval($positionOrigin->getLatPosition()) + (0.0005 * $key);
$lng = floatval($positionOrigin->getLngPosition()) + (0.0005 * $key);
$position = $Cartervice->create_newPositionImage($this->getUser(), $lat, $lng);
$Cartervice->affecterPosition($Attachement, $position);
}
//0.0001
return new Response("done");
}
/**
* @Route("/Accompagnateur/appActiveAcompt_Acompa/{sejour}", name="appActiveAcompt_Acompa")
*/
public function appActiveAcompt_Acompa($sejour)
{
ini_set("max_execution_time", -1);
ini_set('memory_limit', '-1');
$em = $this->em;
$SejourService = $this->sejourService;
$sejourfind = $em->getRepository(Sejour::class)->find($sejour);
$user = $sejourfind->getIdAcommp();
$em->getManager()->persist($user);
$em->getManager()->flush();
$SejourService->EnvoyerEmailOKActivation_CompteAcc($sejourfind->getId());
//$SejourService->EnvoyerEmailPasswordSejourToPartenaireAndAcco($sejourfind->getId());
// $SejourService->EnvoyerEmailNewPartenaire($sejourfind->getIdPartenaire());
$providerKey = 'main_Acommpa'; // your firewall name
$token = new UsernamePasswordToken($user, null, $providerKey, $user->getRoles());
$this->container->get('security.token_storage')->setToken($token);
$this->session->set('Sejour', $sejourfind->getId());
return $this->redirectToRoute('SejourAccompagnateur', ['id' => $sejourfind->getId()]);
//return $this->redirectToRoute('Mon_Compte_Activer_Acompa');
}
/**
* @Route("/Accompagnateur/LivrePhotos", name="LivrePhotosAccom")
*/
public function EditionLivrePhotosAccompagnateur()
{
$SEjourService = $this->sejourService;
$userId = $this->getUser()->getId();
$session = $this->session;
$session->set('pageMenu', '');
$idSejour = $session->get("Sejour");
$sejour = $SEjourService->getsejourpourparent($idSejour);
$em = $this->em;
$clipart = null;
$listeattachlikephoto = $SEjourService->getlikephotosejour($userId, $idSejour);
$listerandom = $listeattachlikephoto;
$random = true;
$allpagesResult = array();
$tabacc = array();
$tabacc1 = array();
$Albumproduct = $em->getRepository(Produit::class)->findOneBy(['labele' => 'randomLivre']);
$AllPages = $em->getRepository(Page::class)->findBy(['idproduit' => $Albumproduct]);
$idAcc = $sejour->getIdAcommp();
$part = $sejour->getIdPartenaire();
$nompart = $part->getUsername();
$logopart = $part->getLogourl();
foreach ($AllPages as $p) {
$arrayexploded = preg_split('[randomid|randompath]', $p->getCouleurbordure());
$rr = "";
$elemPath = "";
$elemId = "";
for ($i = 0; $i < sizeof($arrayexploded); $i = $i + 2) {
if ($i + 1 < sizeof($arrayexploded)) {
if (sizeof($listerandom) == 0) {
$listerandom = $SEjourService->getlikephotosejour($userId, $idSejour);
}
$arrayRsRandom = $this->random_function($listerandom);
array_push($tabacc, $arrayRsRandom['idelem']);
$rr = $rr . $arrayexploded[$i] . $arrayRsRandom['idelem'] . $arrayexploded[$i + 1] . $arrayRsRandom['pathelem'];
unset($listerandom[$arrayRsRandom['elem']]);
} else {
$rr = $rr . $arrayexploded[$i];
}
$listerandom = $listerandom;
}
$resultFinal = $rr;
$p->setCouleurbordure($resultFinal);
array_push($allpagesResult, $p);
}
$tabacc1 = array_count_values($tabacc);
$AllPages = $allpagesResult;
return $this->render('Accompagnateur/NewLivre3.html.twig', ["tabacc" => $tabacc1, "nompart" => $nompart, "logopart" => $logopart, "sejour" => $sejour, 'like' => $listeattachlikephoto, 'cliparts' => $clipart, 'Album' => $Albumproduct, 'AllPages' => $AllPages, 'random' => $random]);
}
/**
* @Route("/Accompagnateur/LivrePhotos3", name="LivrePhotosAccom3")
*/
public function EditionLivrePhotosAccompagnateur3()
{
$SEjourService = $this->sejourService;
$userId = $this->getUser()->getId();
$session = $this->session;
$session->set('pageMenu', '');
$idSejour = $session->get("Sejour");
$sejour = $SEjourService->getsejourpourparent($idSejour);
$em = $this->em;
$clipart = null;
$listeattachlikephoto = $SEjourService->getlikephotosejour($userId, $idSejour);
$listerandom = $listeattachlikephoto;
$random = true;
$allpagesResult = array();
$tabacc = array();
$tabacc1 = array();
$Albumproduct = $em->getRepository(Produit::class)->findOneBy(['labele' => 'randomLivre']);
$AllPages = $em->getRepository(Page::class)->findBy(['idproduit' => $Albumproduct]);
$idAcc = $sejour->getIdAcommp();
$part = $sejour->getIdPartenaire();
$nompart = $part->getUsername();
$logopart = $part->getLogourl();
foreach ($AllPages as $p) {
$arrayexploded = preg_split('[randomid|randompath]', $p->getCouleurbordure());
$rr = "";
$elemPath = "";
$elemId = "";
for ($i = 0; $i < sizeof($arrayexploded); $i = $i + 2) {
if ($i + 1 < sizeof($arrayexploded)) {
if (sizeof($listerandom) == 0) {
$listerandom = $SEjourService->getlikephotosejour($userId, $idSejour);
}
$arrayRsRandom = $this->random_function($listerandom);
array_push($tabacc, $arrayRsRandom['idelem']);
$rr = $rr . $arrayexploded[$i] . $arrayRsRandom['idelem'] . $arrayexploded[$i + 1] . $arrayRsRandom['pathelem'];
unset($listerandom[$arrayRsRandom['elem']]);
} else {
$rr = $rr . $arrayexploded[$i];
}
$listerandom = $listerandom;
}
$resultFinal = $rr;
$p->setCouleurbordure($resultFinal);
array_push($allpagesResult, $p);
}
$tabacc1 = array_count_values($tabacc);
$AllPages = $allpagesResult;
return $this->render('Accompagnateur/NewLivre3.html.twig', ["tabacc" => $tabacc1, "nompart" => $nompart, "logopart" => $logopart, "sejour" => $sejour, 'like' => $listeattachlikephoto, 'cliparts' => $clipart, 'Album' => $Albumproduct, 'AllPages' => $AllPages, 'random' => $random]);
}
/**
* @Route("Accompagnateur/LivrePhotos/{idAlbm}", name="EditionlivrefrompanierAccompagnateur")
*/
public function EditionLivrePhotosAccompagnateurparId($idAlbm)
{
$SEjourService = $this->sejourService;
$userId = $this->getUser()->getId();
$user = $this->getUser();
$session = $this->session;
$session->set('pageMenu', '');
$idSejour = $session->get("Sejour");
$produit = $session->get("produit");
$sejour = $SEjourService->getsejourpourparent($idSejour);
$em = $this->em;
$clipart = null;
$listeattachlikephoto = $SEjourService->getlikephotosejour($userId, $idSejour);
$random = false;
$Albumproduct = $em->getRepository(Produit::class)->find($idAlbm);
$AllPages = $em->getRepository(Page::class)->findBy(['idproduit' => $Albumproduct]);
$allpagesResult = array();
$tabacc = array();
$tabacc1 = array();
foreach ($AllPages as $page) {
$pageJ = json_decode($page->getCouleurbordure());
$pageDec = json_decode($pageJ[0]);
$attache = json_decode($pageDec->attache);
if (isset($attache[0])) {
$attachDec = json_decode($attache[0]);
}
//var_dump($attachDec);
//var_dump(json_decode($attachDec->id));
if (isset($attachDec->id) && json_decode($attachDec->id) !== null && $attachDec->id !== '') {
$idAttach = json_decode($attachDec->id);
array_push($tabacc, $idAttach);
}
}
$tabacc1 = array_count_values($tabacc);
$part = $sejour->getIdPartenaire();
$nompart = $part->getUsername();
$logopart = $part->getLogourl();
$session->set('produit', $Albumproduct->gettype());
$version = $Albumproduct->getVersion();
if ($version === 'new') {
return $this->render('Accompagnateur/NewLivre3.html.twig', ["tabacc" => $tabacc1, "nompart" => $nompart, "logopart" => $logopart, "sejour" => $sejour, 'like' => $listeattachlikephoto, 'cliparts' => $clipart, 'Album' => $Albumproduct, 'AllPages' => $AllPages, 'random' => $random]);
} else {
return $this->render('Accompagnateur/NewLivre3.html.twig', ["tabacc" => $tabacc1, "nompart" => $nompart, "logopart" => $logopart, "sejour" => $sejour, 'like' => $listeattachlikephoto, 'cliparts' => $clipart, 'Album' => $Albumproduct, 'AllPages' => $AllPages, 'random' => $random]);
}
}
/**
* @Route("/Accompagnateur/saveLivrePhotos", name="saveLivrePhotosAccompagnateur")
*/
public function saveLivrePhotos(Request $request)
{
$session = $this->session;
$serviceuser = $this->etablissementService;
$page = $request->get("pages");
$sejour = $request->get("sejour");
$prodid = $request->get('idProd');
$nomprod = $request->get('nomprod');
$version = $request->get('new');
$user = $this->getUser();
$produitcondition = $session->get("produit");
$produit = $session->get("produittype");
$produitcondss = $session->get('produitconditionAlbum');
$Album = $serviceuser->saveOrUpdateLivreParent($page, $user, $sejour, $prodid, $produitcondss, $nomprod, $version);
//$this->EmailServie->MailRelancePanier($this->getUser()->getEmail());
return new response('done');
}
/**
* @Route("/Accompagnateur/saveLivrePhotosPanier", name="saveLivrePhotosPanierAccompagnateur")
*/
public function saveLivrePhotospuisPanier(Request $request)
{
$em = $this->em;
$session = $this->session;
$produittype = $session->get("produit");
$produit = $session->get("produittype");
$serviceuser = $this->etablissementService;
$page = $request->get("pages");
$sejour = $request->get("sejour");
$prodid = $request->get('idProd');
$nomprod = $request->get('nomprod');
$version = $request->get('new');
$user = $this->getUser();
$Album = $serviceuser->savelivreParent($page, $user, $sejour, $prodid, $produittype, $nomprod, $version);
$inser = false;
$session = $this->session;
$Products = $session->get("Panier_Acompa");
$produit = $em->getRepository(Produit::class)->find($Album->getId());
//Touhemi 02-07-2020 :Rechercher si l'utilisateur a déja un panier avec statut créer ds la bd , sinon on écrit un panier
$user = $this->getUser();
$typeref = $em->getRepository(Typeref::class)->find(8);
$statutPanier = $em->getRepository(Ref::class)->findOneBy(array("libiller" => "creer", "typeref" => $typeref));
$panierTrace = $em->getRepository(Panier::class)->findOneBy(array("creerPar" => $user, "statut" => $statutPanier));
//fin
if ($panierTrace == null) {
$panierTrace = new Panier();
$dateNow = new \Datetime();
$panierTrace->setDateCreation($dateNow);
$panierTrace->setCreerPar($user);
$panierTrace->setStatut($statutPanier);
$em->getManager()->persist($panierTrace);
$em->getManager()->flush();
}
//Touhemi 02-07-2020 :s'il y a un produit avec (id user,id sejour, type produit et type conditionement) dans le panier , sinon on écrit un produit
if ($Products == null) {
$Products = [];
}
foreach ($Products as $key => $p) {
if ($p['id'] == $produit->getId()) {
$inser = true;
$Products[$key]['qte'] = $p['qte'] + 1;
$Products[$key]['mnt'] = $p['mnt'] + $produit->getIdConditionnement()->getMontantTTC();
}
}
//Touhemi 02-07-2020 :Rechercher si le produti existe déja ds panierProduit
$panierProduit = $em->getRepository(PanierProduit::class)->findOneBy(array("idProduit" => $produit, "idPanier" => $panierTrace));
if ($panierProduit == null) {
$panierProduit = new PanierProduit();
$panierProduit->setIdProduit($produit);
$panierProduit->setIdPanier($panierTrace);
$em->getManager()->persist($panierProduit);
$em->getManager()->flush();
}
//fin
// Touhemi 02-07-2020 ajouter plus un au produit et modifier prixTotal
$oldQte = $panierProduit->getQuantite();
$newQte = $oldQte + 1;
$panierProduit->setQuantite($newQte);
$oldTotal = $panierProduit->getPrixTotal();
$newTotal = $oldTotal + $produit->getIdConditionnement()->getMontantTTC();
$panierProduit->setPrixTotal($newTotal);
$em->getManager()->persist($panierProduit);
$em->getManager()->flush();
//fin
if ($inser === false) {
$p = [];
$p["id"] = $produit->getId();
$p["nom"] = $produit->getType()->getLabeletype();
$p["ident"] = $produit->getLabele();
$p["codesejour"] = $produit->getIdsjour()->getcodeSejour();
$p["mnt"] = $produit->getIdConditionnement()->getMontantTTC();
$p["path"] = $produit->getType()->getAttachements()[0]->getIdAttachement()->getPath();
$p["condition"] = $produit->getIdConditionnement()->getId();
$p["statut"] = $produit->getStatut();
$p["qte"] = 1;
array_push($Products, $p);
}
$session->set('Panier_Acompa', $Products);
//$this->EmailServie->MailRelancePanier($this->getUser()->getEmail());
return new response('done');
}
/**
* @Route("Accompagnateur/AjoutPochettePhotos/{nbr}", name="AjoutPochettePhotosAccompagnateur")
*/
public function AjoutPochettePhotosAccompagnateur($nbr)
{
$SEjourService = $this->sejourService;
$userId = $this->getUser()->getId();
$user = $this->getUser();
$session = $this->session;
$session->set('pageMenu', '');
$idSejour = $session->get("Sejour");
$produitcondition = $session->get("produit");
$produit = $session->get("produittype");
$sejour = $SEjourService->getsejourpourparent($idSejour);
$em = $this->em;
$clipart = $em->getRepository(Clipart::class)->findAll();
$listeattachlikephoto = $SEjourService->getlikephotosejour($userId, $idSejour);
$listerandom = $listeattachlikephoto;
$AllPagesAcc = null;
$Albumproduct = $em->getRepository(Produit::class)->findOneBy(['labele' => 'RandomPochette' . $nbr]);
$random = true;
$AllPages = $em->getRepository(Page::class)->findBy(['idproduit' => $Albumproduct]);
$idAcc = $sejour->getIdAcommp();
$albumAcc = $em->getRepository(Produit::class)->findOneBy(['idsjour' => $idSejour, 'iduser' => $idAcc, 'statut' => 'saved'], ['id' => 'DESC']);
$part = $sejour->getIdPartenaire();
$nompart = $part->getUsername();
$logopart = $part->getLogourl();
if ($albumAcc != null and $albumAcc != "") {
$AllPagesAcc = $em->getRepository(Page::class)->findBy(['idproduit' => $albumAcc]);
}
$allpagesResult = array();
$j = 0;
if ($random == true) {
foreach ($AllPages as $p) {
$arrayexploded = preg_split('[randomid|randompath]', $p->getCouleurbordure());
// var_dump($arrayexploded);
$rr = "";
$elemPath = "";
$elemId = "";
for ($i = 0; $i < sizeof($arrayexploded); $i = $i + 2) {
if ($i + 1 < sizeof($arrayexploded)) {
if (sizeof($listerandom) == 0) {
$listerandom = $listeattachlikephoto;
}
$arrayRsRandom = $this->random_functionPhoto($listerandom, $j);
$rr = $rr . $arrayexploded[$i] . $arrayRsRandom['idelem'] . $arrayexploded[$i + 1] . $arrayRsRandom['pathelem'];
unset($listerandom[$arrayRsRandom['elem']]);
} else {
$rr = $rr . $arrayexploded[$i];
}
$listerandom = $listerandom;
}
$resultFinal = $rr;
$p->setCouleurbordure($resultFinal);
array_push($allpagesResult, $p);
if ($j < sizeof($listeattachlikephoto) - 1) {
$j = $j + 1;
} else {
$j = 0;
}
}
$AllPages = $allpagesResult;
}
return $this->render('Accompagnateur/PochettePhotos.html.twig', ["nbr" => $nbr, "nompart" => $nompart, "logopart" => $logopart, "sejour" => $sejour, 'like' => $listeattachlikephoto, 'cliparts' => $clipart, 'Album' => $Albumproduct, 'AllPages' => $AllPages, 'albumAcc' => $albumAcc, 'AllPagesAcc' => $AllPagesAcc, 'random' => $random]);
}
/**
* @Route("/Accompagnateur/AjoutPochettePhotosAccompgnateur_Fav/{nbr}", name="NewPochettePhotoAcompagnateurFavoris")
*/
public function NewPochettePhotoAcompagnateurFavoris($nbr)
{
$SEjourService = $this->sejourService;
$user = $this->getUser();
$userId = $this->getUser()->getId();
$session = $this->get('session');
$session->set('pageMenu', '');
$idSejour = $session->get("Sejour");
$produitcondition = $session->get("produit");
$produit = $session->get("produittype");
$sejour = $SEjourService->getsejourpourparent($idSejour);
$em = $this->getDoctrine()->getManager();
$listeattachlikephoto = $em->getRepository(Likephoto::class)->findBy(['idUser' => $userId, 'idSejour' => $idSejour]);
foreach ($listeattachlikephoto as $photo) {
$idattach = $photo->getIdSejourAttchment();
$SejattachPhoto = $photo->getIdSejourAttchment();
$urlPhoto = $SejattachPhoto->getIdAttchment()->getPath();
//$urlPhoto = $attachPhoto->getPath();
$new_url = str_replace('upload/', 'upload/f_auto,q_auto,h_900/l_Logo5Sur5White_nh6tyk,o_10,fl_relative.tiled/', $urlPhoto);
$photosData[] = [
'id' => $photo->getId(),
'url' => $new_url,
'caption' => "",
];
}
$nbLikes = count($listeattachlikephoto);
$photosDataJSON = json_encode($photosData);
return $this->render('/Accompagnateur/PochettePhotosLikes.html.twig', ["nbr" => $nbr, "sejour" => $sejour, "nbLikes" => $nbLikes, 'photosFav' => $photosDataJSON]);
}
/**
* @Route("Accompagnateur/AjoutPhotosRetros/{nbr}", name="AjoutPhotosRetrosAccompagnateur")
*/
public function AjoutPhotosRetrosAccompagnateur($nbr)
{
$SEjourService = $this->sejourService;
$userId = $this->getUser()->getId();
$user = $this->getUser();
$session = $this->session;
$session->set('pageMenu', '');
$idSejour = $session->get("Sejour");
$produitcondition = $session->get("produit");
$produit = $session->get("produittype");
$sejour = $SEjourService->getsejourpourparent($idSejour);
$em = $this->em;
$clipart = $em->getRepository(Clipart::class)->findAll();
$listeattachlikephoto = $SEjourService->getlikephotosejour($userId, $idSejour);
$listerandom = $listeattachlikephoto;
$AllPagesAcc = null;
$Albumproduct = $em->getRepository(Produit::class)->findOneBy(['labele' => 'RandomPochette' . $nbr]);
$random = true;
$AllPages = $em->getRepository(Page::class)->findBy(['idproduit' => $Albumproduct]);
$idAcc = $sejour->getIdAcommp();
$albumAcc = $em->getRepository(Produit::class)->findOneBy(['idsjour' => $idSejour, 'iduser' => $idAcc, 'statut' => 'saved'], ['id' => 'DESC']);
$part = $sejour->getIdPartenaire();
$nompart = $part->getUsername();
$logopart = $part->getLogourl();
if ($albumAcc != null and $albumAcc != "") {
$AllPagesAcc = $em->getRepository(Page::class)->findBy(['idproduit' => $albumAcc]);
}
$allpagesResult = array();
$j = 0;
if ($random == true) {
foreach ($AllPages as $p) {
$arrayexploded = preg_split('[randomid|randompath]', $p->getCouleurbordure());
// var_dump($arrayexploded);
$rr = "";
$elemPath = "";
$elemId = "";
for ($i = 0; $i < sizeof($arrayexploded); $i = $i + 2) {
if ($i + 1 < sizeof($arrayexploded)) {
if (sizeof($listerandom) == 0) {
$listerandom = $listeattachlikephoto;
}
$arrayRsRandom = $this->random_functionPhoto($listerandom, $j);
$rr = $rr . $arrayexploded[$i] . $arrayRsRandom['idelem'] . $arrayexploded[$i + 1] . $arrayRsRandom['pathelem'];
unset($listerandom[$arrayRsRandom['elem']]);
} else {
$rr = $rr . $arrayexploded[$i];
}
$listerandom = $listerandom;
}
$resultFinal = $rr;
$p->setCouleurbordure($resultFinal);
array_push($allpagesResult, $p);
if ($j < sizeof($listeattachlikephoto) - 1) {
$j = $j + 1;
} else {
$j = 0;
}
}
$AllPages = $allpagesResult;
}
return $this->render('Accompagnateur/PhotosRetros.html.twig', ["nbr" => $nbr, "nompart" => $nompart, "logopart" => $logopart, "sejour" => $sejour, 'like' => $listeattachlikephoto, 'cliparts' => $clipart, 'Album' => $Albumproduct, 'AllPages' => $AllPages, 'albumAcc' => $albumAcc, 'AllPagesAcc' => $AllPagesAcc, 'random' => $random]);
}
/**
* @Route("Accompagnateur/Calendrier", name="CalendrierAccompagnateur")
*/
public function CalendrierAccompagnateur()
{
$SEjourService = $this->sejourService;
$userId = $this->getUser()->getId();
$user = $this->getUser();
$session = $this->session;
$session->set('pageMenu', '');
$idSejour = $session->get("Sejour");
$produitcondition = $session->get("produit");
$produit = $session->get("produittype");
$sejour = $SEjourService->getsejourpourparent($idSejour);
$em = $this->em;
$clipart = $em->getRepository(Clipart::class)->findAll();
$listeattachlikephoto = $SEjourService->getlikephotosejour($userId, $idSejour);
$listerandom = $listeattachlikephoto;
$AllPagesAcc = null;
$Albumproduct = $em->getRepository(Produit::class)->findOneBy(['labele' => 'randomcalendrier']);
$random = true;
$AllPages = $em->getRepository(Page::class)->findBy(['idproduit' => $Albumproduct]);
$idAcc = $sejour->getIdAcommp();
$albumAcc = $em->getRepository(Produit::class)->findOneBy(['idsjour' => $idSejour, 'iduser' => $idAcc, 'statut' => 'saved'], ['id' => 'DESC']);
$part = $sejour->getIdPartenaire();
$nompart = $part->getUsername();
$logopart = $part->getLogourl();
if ($albumAcc != null and $albumAcc != "") {
$AllPagesAcc = $em->getRepository(Page::class)->findBy(['idproduit' => $albumAcc]);
}
$allpagesResult = array();
$tabacc = array();
$tabacc1 = array();
if ($random == true) {
foreach ($AllPages as $p) {
$arrayexploded = preg_split('[randomid|randompath]', $p->getCouleurbordure());
$rr = "";
$elemPath = "";
$elemId = "";
for ($i = 0; $i < sizeof($arrayexploded); $i = $i + 2) {
if ($i + 1 < sizeof($arrayexploded)) {
if (sizeof($listerandom) == 0) {
$listerandom = $SEjourService->getlikephotosejour($userId, $idSejour);
}
$arrayRsRandom = $this->random_function($listerandom);
array_push($tabacc, $arrayRsRandom['idelem']);
$rr = $rr . $arrayexploded[$i] . $arrayRsRandom['idelem'] . $arrayexploded[$i + 1] . $arrayRsRandom['pathelem'];
unset($listerandom[$arrayRsRandom['elem']]);
} else {
$rr = $rr . $arrayexploded[$i];
}
$listerandom = $listerandom;
}
$resultFinal = $rr;
$p->setCouleurbordure($resultFinal);
array_push($allpagesResult, $p);
}
$tabacc1 = array_count_values($tabacc);
$AllPages = $allpagesResult;
}
return $this->render('Accompagnateur/Calendrier.html.twig', ["tabacc" => $tabacc1, "nompart" => $nompart, "logopart" => $logopart, "sejour" => $sejour, 'like' => $listeattachlikephoto, 'cliparts' => $clipart, 'Album' => $Albumproduct, 'AllPages' => $AllPages, 'albumAcc' => $albumAcc, 'AllPagesAcc' => $AllPagesAcc, 'random' => $random]);
}
/**
* @Route("/Accompagnateur/SaveCalendrier", name="SaveCalendrierAccompagnateur")
*/
public function SaveCalendrierAccompagnateur(Request $request)
{
$session = $this->session;
$serviceuser = $this->etablissementService;
$page = $request->get("pages");
$sejour = $request->get("sejour");
$prodid = $request->get('idProd');
$nomprod = $request->get('nomprod');
$nbr = $request->get('nbr');
$user = $this->getUser();
$nbr = strval($nbr);
$produittype = $session->get("produit");
$produit = $session->get("produittype");
$Album = $serviceuser->SaveCalendrierParent($page, $user, $sejour, $prodid, $produit, $produittype, $nbr, $nomprod);
//$this->EmailServie->MailRelancePanier($this->getUser()->getEmail());
return new response('done');
}
/**
* @Route("Accompagnateur/ModificationCalendrier/{id}", name="EditionCalendrierAccompagnateurfrompanier")
*/
public function EditionCalendrierfrompanier($id)
{
$SEjourService = $this->sejourService;
$userId = $this->getUser()->getId();
$user = $this->getUser();
$session = $this->session;
$session->set('pageMenu', '');
$idSejour = $session->get("Sejour");
$produitcondition = $session->get("produit");
$produit = $session->get("produittype");
$sejour = $SEjourService->getsejourpourparent($idSejour);
$em = $this->em;
$clipart = $em->getRepository(Clipart::class)->findAll();
$listeattachlikephoto = $SEjourService->getlikephotosejour($userId, $idSejour);
$random = false;
$Albumproduct = $em->getRepository(Produit::class)->findOneBy(['id' => $id]);
$AllPages = $em->getRepository(Page::class)->findBy(['idproduit' => $Albumproduct]);
$part = $sejour->getIdPartenaire();
$nompart = $part->getUsername();
$logopart = $part->getLogourl();
return $this->render('Accompagnateur/Calendrier.html.twig', ["nompart" => $nompart, "logopart" => $logopart, "sejour" => $sejour, 'like' => $listeattachlikephoto, 'cliparts' => $clipart, 'Album' => $Albumproduct, 'AllPages' => $AllPages, 'random' => $random]);
}
/**
* @Route("/Accompagnateur/SaveCommandeCalendrier", name="SaveCommandeCalendrierAccompagnateur")
*/
public function SaveCommandeCalendrierAccompagnateur(Request $request)
{
$em = $this->em;
$session = $this->session;
$serviceuser = $this->etablissementService;
$page = $request->get("pages");
$sejour = $request->get("sejour");
$prodid = $request->get('idProd');
$nomprod = $request->get('nomprod');
$nbr = $request->get('nbr');
$em = $this->em;
$user = $this->getUser();
$nbr = strval($nbr);
$produittype = $session->get("produit");
$produit = $session->get("produittype");
$Album = $serviceuser->SaveCalendrierParent($page, $user, $sejour, $prodid, $produit, $produittype, $nbr, $nomprod);
$inser = false;
$Products = $session->get("Panier_Acompa");
$produit = $em->getRepository(Produit::class)->find($Album->getId());
//Touhemi 02-07-2020 :Rechercher si l'utilisateur a déja un panier avec statut créer ds la bd , sinon on écrit un panier
$user = $this->getUser();
$typeref = $em->getRepository(Typeref::class)->find(8);
$statutPanier = $em->getRepository(Ref::class)->findOneBy(array("libiller" => "creer", "typeref" => $typeref));
$panierTrace = $em->getRepository(Panier::class)->findOneBy(array("creerPar" => $user, "statut" => $statutPanier));
//fin
if ($panierTrace == null) {
$panierTrace = new Panier();
$dateNow = new \Datetime();
$panierTrace->setDateCreation($dateNow);
$panierTrace->setCreerPar($user);
$panierTrace->setStatut($statutPanier);
$em->getManager()->persist($panierTrace);
$em->getManager()->flush();
}
//Touhemi 02-07-2020 :s'il y a un produit avec (id user,id sejour, type produit et type conditionement) dans le panier , sinon on écrit un produit
if ($Products == null) {
$Products = [];
}
foreach ($Products as $key => $p) {
if ($p['id'] == $produit->getId()) {
$inser = true;
$Products[$key]['qte'] = $p['qte'] + 1;
$Products[$key]['mnt'] = $p['mnt'] + $produit->getIdConditionnement()->getMontantTTC();
}
}
//Touhemi 02-07-2020 :Rechercher si le produti existe déja ds panierProduit
$panierProduit = $em->getRepository(PanierProduit::class)->findOneBy(array("idProduit" => $produit, "idPanier" => $panierTrace));
if ($panierProduit == null) {
$panierProduit = new PanierProduit();
$panierProduit->setIdProduit($produit);
$panierProduit->setIdPanier($panierTrace);
$em->getManager()->persist($panierProduit);
$em->getManager()->flush();
}
//fin
// Touhemi 02-07-2020 ajouter plus un au produit et modifier prixTotal
$oldQte = $panierProduit->getQuantite();
$newQte = $oldQte + 1;
$panierProduit->setQuantite($newQte);
$oldTotal = $panierProduit->getPrixTotal();
$newTotal = $oldTotal + $produit->getIdConditionnement()->getMontantTTC();
$panierProduit->setPrixTotal($newTotal);
$em->getManager()->persist($panierProduit);
$em->getManager()->flush();
//fin
if ($inser === false) {
$p = [];
$p["id"] = $produit->getId();
$p["nom"] = $produit->getType()->getLabeletype();
$p["ident"] = $produit->getLabele();
$p["codesejour"] = $produit->getIdsjour()->getcodeSejour();
$p["mnt"] = $produit->getIdConditionnement()->getMontantTTC();
$p["path"] = $produit->getType()->getAttachements()[0]->getIdAttachement()->getPath();
$p["condition"] = $produit->getIdConditionnement()->getId();
$p["statut"] = $produit->getStatut();
$p["qte"] = 1;
array_push($Products, $p);
}
$session->set('Panier_Acompa', $Products);
//$this->EmailServie->MailRelancePanier($this->getUser()->getEmail());
return new response('done');
}
/**
* @Route("Accompagnateur/ModificationPochettePhotos/{nbr}/{id}", name="EditionPochettefrompanierAccompagnateur")
*/
public function EditionPochettefrompanierAccompagnateur($nbr, $id)
{
$SEjourService = $this->sejourService;
$userId = $this->getUser()->getId();
$user = $this->getUser();
$session = $this->session;
$session->set('pageMenu', '');
$idSejour = $session->get("Sejour");
$produitcondition = $session->get("produit");
$produit = $session->get("produittype");
$sejour = $SEjourService->getsejourpourparent($idSejour);
$em = $this->em;
$clipart = $em->getRepository(Clipart::class)->findAll();
$listeattachlikephoto = $SEjourService->getlikephotosejour($userId, $idSejour);
$listerandom = $listeattachlikephoto;
$AllPagesAcc = null;
$random = false;
$Albumproduct = $em->getRepository(Produit::class)->findOneBy(['id' => $id]);
$AllPages = $em->getRepository(Page::class)->findBy(['idproduit' => $Albumproduct]);
$idAcc = $sejour->getIdAcommp();
$albumAcc = $em->getRepository(Produit::class)->findOneBy(['idsjour' => $idSejour, 'iduser' => $idAcc, 'statut' => 'saved'], ['id' => 'DESC']);
$part = $sejour->getIdPartenaire();
$nompart = $part->getUsername();
$logopart = $part->getLogourl();
return $this->render('Accompagnateur/PochettePhotos.html.twig', ["nbr" => $nbr, "nompart" => $nompart, "logopart" => $logopart, "sejour" => $sejour, 'like' => $listeattachlikephoto, 'cliparts' => $clipart, 'Album' => $Albumproduct, 'AllPages' => $AllPages, 'albumAcc' => $albumAcc, 'AllPagesAcc' => $AllPagesAcc, 'random' => $random]);
}
/**
* @Route("/Accompagnateur/SavePhotosPochette", name="SavePhotosPochetteAccompagnateur")
*/
public function SavePhotosPochetteAccompagnateur(Request $request)
{
$session = $this->session;
$serviceuser = $this->etablissementService;
$page = $request->get("pages");
$sejour = $request->get("sejour");
$prodid = $request->get('idProd');
$nomprod = $request->get('nomprod');
$nbr = $request->get('nbr');
$user = $this->getUser();
$nbr = strval($nbr);
$produittype = $session->get("produit");
$produit = $session->get("produittype");
$Album = $serviceuser->SavePhotosPochetteParent($page, $user, $sejour, $prodid, $produit, $produittype, $nbr, $nomprod);
//$this->EmailServie->MailRelancePanier($this->getUser()->getEmail());
return new response('done');
}
/**
* @Route("/Accompagnateur/PochetteCommandeSave", name="PochettePhotosComandeSaveAccompagnateur")
*/
public function PochettePhotosComandeSaveAccompagnateur(Request $request)
{
$em = $this->em;
$session = $this->session;
$serviceuser = $this->etablissementService;
$page = $request->get("pages");
$sejour = $request->get("sejour");
$prodid = $request->get('idProd');
$nomprod = $request->get('nomprod');
$nbr = $request->get('nbr');
$user = $this->getUser();
$nbr = strval($nbr);
$produittype = $session->get("produit");
$produit = $session->get("produittype");
$Album = $serviceuser->SavePhotosPochetteParent($page, $user, $sejour, $prodid, $produit, $produittype, $nbr, $nomprod);
$inser = false;
$Products = $session->get("Panier_Acompa");
$produit = $em->getRepository(Produit::class)->find($Album->getId());
//Touhemi 02-07-2020 :Rechercher si l'utilisateur a déja un panier avec statut créer ds la bd , sinon on écrit un panier
$user = $this->getUser();
$typeref = $em->getRepository(Typeref::class)->find(8);
$statutPanier = $em->getRepository(Ref::class)->findOneBy(array("libiller" => "creer", "typeref" => $typeref));
$panierTrace = $em->getRepository(Panier::class)->findOneBy(array("creerPar" => $user, "statut" => $statutPanier));
//fin
if ($panierTrace == null) {
$panierTrace = new Panier();
$dateNow = new \Datetime();
$panierTrace->setDateCreation($dateNow);
$panierTrace->setCreerPar($user);
$panierTrace->setStatut($statutPanier);
$em->getManager()->persist($panierTrace);
$em->getManager()->flush();
}
//Touhemi 02-07-2020 :s'il y a un produit avec (id user,id sejour, type produit et type conditionement) dans le panier , sinon on écrit un produit
if ($Products == null) {
$Products = [];
}
foreach ($Products as $key => $p) {
if ($p['id'] == $produit->getId()) {
$inser = true;
$Products[$key]['qte'] = $p['qte'] + 1;
$Products[$key]['mnt'] = $p['mnt'] + $produit->getIdConditionnement()->getMontantTTC();
}
}
//Touhemi 02-07-2020 :Rechercher si le produti existe déja ds panierProduit
$panierProduit = $em->getRepository(PanierProduit::class)->findOneBy(array("idProduit" => $produit, "idPanier" => $panierTrace));
if ($panierProduit == null) {
$panierProduit = new PanierProduit();
$panierProduit->setIdProduit($produit);
$panierProduit->setIdPanier($panierTrace);
$em->getManager()->persist($panierProduit);
$em->getManager()->flush();
}
//fin
// Touhemi 02-07-2020 ajouter plus un au produit et modifier prixTotal
$oldQte = $panierProduit->getQuantite();
$newQte = $oldQte + 1;
$panierProduit->setQuantite($newQte);
$oldTotal = $panierProduit->getPrixTotal();
$newTotal = $oldTotal + $produit->getIdConditionnement()->getMontantTTC();
$panierProduit->setPrixTotal($newTotal);
$em->getManager()->persist($panierProduit);
$em->getManager()->flush();
//fin
if ($inser === false) {
$p = [];
$p["id"] = $produit->getId();
$p["nom"] = $produit->getType()->getLabeletype();
$p["ident"] = $produit->getLabele();
$p["codesejour"] = $produit->getIdsjour()->getcodeSejour();
$p["mnt"] = $produit->getIdConditionnement()->getMontantTTC();
$p["path"] = $produit->getType()->getAttachements()[0]->getIdAttachement()->getPath();
$p["condition"] = $produit->getIdConditionnement()->getId();
$p["statut"] = $produit->getStatut();
$p["qte"] = 1;
array_push($Products, $p);
}
$session->set('Panier_Acompa', $Products);
//$this->EmailServie->MailRelancePanier($this->getUser()->getEmail());
return new response('done');
}
/**
* @Route("/Accompagnateur/AddPochetteAuPanier", name="AddPochetteAuPanierAccompagnateur")
*/
public function AddPochetteAuPanierAccompagnateur(Request $request)
{
$em = $this->em;
$session = $this->session;
$serviceuser = $this->etablissementService;
$page = $request->get("photos");
$sejour = $request->get("sejour");
$nbr = $request->get('nbr');
$user = $this->getUser();
$nbr = strval($nbr);
//Enregistrement des infos de la pochette dans un produit et les photos dans des pages avec JSON
$Pochette_photos = $serviceuser->photosPochette_Nouvelle($page, $user, $sejour, $nbr);
$inser = false;
$Products = $session->get("Panier_Acompa");
$produit = $em->getRepository(Produit::class)->find($Pochette_photos->getId());
// Rechercher si l'utilisateur a déja un panier avec statut créer dans la bd, sinon on crée un panier
$typeref = $em->getRepository(Typeref::class)->find(8);
$statutPanier = $em->getRepository(Ref::class)->findOneBy(array("libiller" => "creer", "typeref" => $typeref));
$panierTrace = $em->getRepository(Panier::class)->findOneBy(array("creerPar" => $user, "statut" => $statutPanier));
if ($panierTrace == null) {
$panierTrace = new Panier();
$dateNow = new \Datetime();
$panierTrace->setDateCreation($dateNow);
$panierTrace->setCreerPar($user);
$panierTrace->setStatut($statutPanier);
$em->getManager()->persist($panierTrace);
$em->getManager()->flush();
}
// Vérifier si le produit existe déjà dans le panier en session
if ($Products == null) {
$Products = [];
}
foreach ($Products as $key => $p) {
if ($p['id'] == $produit->getId()) {
$inser = true;
$Products[$key]['qte'] = $p['qte'] + 1;
$Products[$key]['mnt'] = $p['mnt'] + $produit->getIdConditionnement()->getMontantTTC();
}
}
// Rechercher si le produit existe déjà dans PanierProduit
$panierProduit = $em->getRepository(PanierProduit::class)->findOneBy(array("idProduit" => $produit, "idPanier" => $panierTrace));
if ($panierProduit == null) {
$panierProduit = new PanierProduit();
$panierProduit->setIdProduit($produit);
$panierProduit->setIdPanier($panierTrace);
$panierProduit->setQuantite(1);
$panierProduit->setPrixTotal($produit->getIdConditionnement()->getMontantTTC());
$em->getManager()->persist($panierProduit);
$em->getManager()->flush();
} else {
// Ajouter un au produit et modifier prixTotal
$oldQte = $panierProduit->getQuantite();
$newQte = $oldQte + 1;
$panierProduit->setQuantite($newQte);
$oldTotal = $panierProduit->getPrixTotal();
$newTotal = $oldTotal + $produit->getIdConditionnement()->getMontantTTC();
$panierProduit->setPrixTotal($newTotal);
$em->getManager()->persist($panierProduit);
$em->getManager()->flush();
}
// Si le produit n'existe pas dans le panier en session, on l'ajoute
if ($inser === false) {
$p = [];
$p["id"] = $produit->getId();
$p["nom"] = $produit->getType()->getLabeletype();
$p["ident"] = $produit->getLabele();
$p["codesejour"] = $produit->getIdsjour()->getcodeSejour();
$p["mnt"] = $produit->getIdConditionnement()->getMontantTTC();
$p["path"] = $produit->getType()->getAttachements()[0]->getIdAttachement()->getPath();
$p["condition"] = $produit->getIdConditionnement()->getId();
$p["qte"] = 1;
array_push($Products, $p);
}
$session->set('Panier_Acompa', $Products);
// Enregistrement pour email de relance
// $dateNow = new \Datetime();
// $userEmail = $user->getEmail();
// $this->EmailServie->SaveMailRelancePanier($userEmail);
// Commenté comme dans la fonction parent
// $this->EmailServie->MailRelancePanier($userEmail);
return new response('done');
}
/**
* @Route("Accompagnateur/AjoutRetroPhotosAccomp_Fav/{nbr}", name="AjoutRetroPhotosAccomp_Favoris")
*/
public function AjoutRetroPhotosAccomp_Fav($nbr)
{
$SEjourService = $this->sejourService;
$user = $this->getUser();
$userId = $this->getUser()->getId();
$session = $this->get('session');
$session->set('pageMenu', '');
$idSejour = $session->get("Sejour");
$produitcondition = $session->get("produit");
$produit = $session->get("produittype");
$sejour = $SEjourService->getsejourpourparent($idSejour);
$em = $this->getDoctrine()->getManager();
$listeattachlikephoto = $em->getRepository(Likephoto::class)->findBy(['idUser' => $userId, 'idSejour' => $idSejour]);
$photosData = [];
foreach ($listeattachlikephoto as $photo) {
$SejattachPhoto = $photo->getIdSejourAttchment();
$urlPhoto = $SejattachPhoto->getIdAttchment()->getPath();
// Apply the same transformations as parent function
$new_url = str_replace(
'upload/',
'upload/f_auto,q_auto,h_900/l_Logo5Sur5White_nh6tyk,o_10,fl_relative.tiled/',
$urlPhoto
);
$photosData[] = [
'id' => $photo->getId(),
'url' => $new_url,
'caption' => "",
];
}
$nbLikes = count($listeattachlikephoto);
// Convertir le tableau PHP en JSON
$photosDataJSON = json_encode($photosData);
dump($photosDataJSON);
return $this->render('Accompagnateur/PhotosRetros.html.twig', ["nbr" => $nbr, "sejour" => $sejour, "nbLikes" => $nbLikes, 'photosFav' => $photosDataJSON]);
}
/**
* @Route("/Accompagnateur/AddRetroAuPanier", name="AddRetroAuPanierAccompagnateur", methods={"POST"})
*/
public function AddRetroAuPanierAccompagnateur(Request $request)
{
$em = $this->em;
$session = $this->session;
$user = $this->getUser();
$service = $this->etablissementService;
$photos = $request->get('photos');
$sejourId = $request->get('sejour');
$nbr = strval($request->get('nbr'));
// Create the new "Retro" product + store pages
$RetroProduit = $service->photosRetro_Nouvelle($photos, $user, $sejourId, $nbr);
// Handle cart logic
$inser = false;
$Products = $session->get("Panier_Acompa"); // Note the different session key for accompagnateur
if (!$Products) {
$Products = [];
}
// Get the newly created product
$produit = $em->getRepository(Produit::class)->find($RetroProduit->getId());
// Check if a "Panier" with status "creer" for this user exists, or create one
$typeref = $em->getRepository(Typeref::class)->find(8);
$statutPanier = $em->getRepository(Ref::class)->findOneBy([
"libiller" => "creer",
"typeref" => $typeref
]);
$panierTrace = $em->getRepository(Panier::class)->findOneBy([
"creerPar" => $user,
"statut" => $statutPanier
]);
if (!$panierTrace) {
$panierTrace = new Panier();
$panierTrace->setDateCreation(new \DateTime());
$panierTrace->setCreerPar($user);
$panierTrace->setStatut($statutPanier);
$em->getManager()->persist($panierTrace);
$em->getManager()->flush();
}
// Check if this product already exists in session Products
foreach ($Products as $key => $p) {
if ($p['id'] == $produit->getId()) {
$inser = true;
$Products[$key]['qte'] += 1;
$Products[$key]['mnt'] += $produit->getIdConditionnement()->getMontantTTC();
}
}
// Check if it exists in PanierProduit table
$panierProduit = $em->getRepository(PanierProduit::class)->findOneBy([
"idProduit" => $produit,
"idPanier" => $panierTrace
]);
if (!$panierProduit) {
$panierProduit = new PanierProduit();
$panierProduit->setIdProduit($produit);
$panierProduit->setIdPanier($panierTrace);
$panierProduit->setQuantite(0); // Will be incremented below
$panierProduit->setPrixTotal(0); // Will be updated below
$em->getManager()->persist($panierProduit);
$em->getManager()->flush();
}
// Increase quantity & total
$oldQte = $panierProduit->getQuantite();
$panierProduit->setQuantite($oldQte + 1);
$oldTotal = $panierProduit->getPrixTotal();
$panierProduit->setPrixTotal($oldTotal + $produit->getIdConditionnement()->getMontantTTC());
$em->getManager()->persist($panierProduit);
$em->getManager()->flush();
// If not inserted in Products, add it
if (!$inser) {
$p = [
"id" => $produit->getId(),
"nom" => $produit->getType()->getLabeletype(),
"ident" => $produit->getLabele(),
"codesejour" => $produit->getIdsjour()->getcodeSejour(),
"mnt" => $produit->getIdConditionnement()->getMontantTTC(),
"path" => $produit->getType()->getAttachements()[0]->getIdAttachement()->getPath(),
"condition" => $produit->getIdConditionnement()->getId(),
"statut" => $produit->getStatut(), // Include status for accompagnateur
"qte" => 1
];
$Products[] = $p;
}
// Save to session with accompagnateur's session key
$session->set('Panier_Acompa', $Products);
return new Response('done');
}
/**
* @Route("Accompagnateur/PackPhotosNumeriqueAccomp_Favoris/{nbr}", name="PackPhotosNumeriqueAccomp_Favoris")
*/
public function PackPhotosNumerique_Favoris($nbr)
{
$SEjourService = $this->sejourService;
$user = $this->getUser();
$userId = $this->getUser()->getId();
$session = $this->get('session');
$session->set('pageMenu', '');
$idSejour = $session->get("Sejour");
$produitcondition = $session->get("produit");
$produit = $session->get("produittype");
$sejour = $SEjourService->getsejourpourparent($idSejour);
$em = $this->getDoctrine()->getManager();
$listeattachlikephoto = $em->getRepository(Likephoto::class)->findBy(['idUser' => $userId, 'idSejour' => $idSejour]);
foreach ($listeattachlikephoto as $photo) {
$idattach = $photo->getIdSejourAttchment();
$SejattachPhoto = $photo->getIdSejourAttchment();
$urlPhoto = $SejattachPhoto->getIdAttchment()->getPath();
//$urlPhoto = $attachPhoto->getPath();
$new_url = str_replace('upload/', 'upload/f_auto,q_auto,h_900/l_Logo5Sur5White_nh6tyk,o_10,fl_relative.tiled/', $urlPhoto);
$photosData[] = [
'id' => $photo->getId(),
'url' => $new_url,
'caption' => "",
];
}
$nbLikes = count($listeattachlikephoto);
// Convertir le tableau PHP en JSON
$photosDataJSON = json_encode($photosData);
return $this->render('Accompagnateur/PackPhotosNumerique_Favoris.html.twig', [
"nbr" => $nbr,
"sejour" => $sejour,
"nbLikes" => $nbLikes,
'photosFav' => $photosDataJSON
]);
}
/**
* @Route("/Accompagnateur/SavePackPhotosNumeriqueComandeSaveAccomp_panier", name="SavePackPhotosNumeriqueComandeSaveAccomp_panier")
*/
public function AddPackNumeriqueAuPanier(Request $request)
{
$em = $this->em->getManager();
$session = $this->session;
$serviceuser = $this->etablissementService;
$photos = $request->get("photos");
$sejour = $request->get("sejour");
$nbr = $request->get('nbr');
$user = $this->getUser();
$nbr = strval($nbr);
$nomprod = "Pack Photos Numerique - " . $nbr;
// Register the product and associated photos
$packPhotos = $serviceuser->SavePackPhotosNumerique($photos, $user, $sejour, $nbr, $nomprod);
$product = $em->getRepository(Produit::class)->find($packPhotos->getId());
// Check if user has an existing cart with "created" status
$typeref = $em->getRepository(Typeref::class)->find(8);
$statutPanier = $em->getRepository(Ref::class)->findOneBy(["libiller" => "creer", "typeref" => $typeref]);
$panierTrace = $em->getRepository(Panier::class)->findOneBy(["creerPar" => $user, "statut" => $statutPanier]);
if ($panierTrace === null) {
$panierTrace = new Panier();
$panierTrace->setDateCreation(new \DateTime());
$panierTrace->setCreerPar($user);
$panierTrace->setStatut($statutPanier);
$em->persist($panierTrace);
$em->flush();
}
// Add product to cart session - Note the different session key for Accompagnateur
$Products = $session->get("Panier_Acompa", []);
$inser = false;
foreach ($Products as $key => $p) {
if ($p['id'] === $product->getId()) {
$inser = true;
$Products[$key]['qte'] += 1;
$Products[$key]['mnt'] += $product->getIdConditionnement()->getMontantTTC();
}
}
// Check if product exists in PanierProduit
$panierProduit = $em->getRepository(PanierProduit::class)->findOneBy(["idProduit" => $product, "idPanier" => $panierTrace]);
if ($panierProduit === null) {
$panierProduit = new PanierProduit();
$panierProduit->setIdProduit($product);
$panierProduit->setIdPanier($panierTrace);
$panierProduit->setQuantite(1);
$panierProduit->setPrixTotal($product->getIdConditionnement()->getMontantTTC());
$em->persist($panierProduit);
$em->flush();
} else {
// Update existing product quantity and total price
$panierProduit->setQuantite($panierProduit->getQuantite() + 1);
$panierProduit->setPrixTotal($panierProduit->getPrixTotal() + $product->getIdConditionnement()->getMontantTTC());
$em->persist($panierProduit);
$em->flush();
}
if (!$inser) {
$p = [
"id" => $product->getId(),
"nom" => $product->getType()->getLabeletype(),
"ident" => $product->getLabele(),
"codesejour" => $product->getIdsjour()->getcodeSejour(),
"mnt" => $product->getIdConditionnement()->getMontantTTC(),
"path" => $product->getType()->getAttachements()[0]->getIdAttachement()->getPath(),
"condition" => $product->getIdConditionnement()->getId(),
"statut" => $product->getStatut(), // Include status for accompagnateur
"qte" => 1
];
array_push($Products, $p);
}
// Store in the accompagnateur's session key
$session->set('Panier_Acompa', $Products);
return new Response('done');
}
/**
* @Route("/Accompagnateur/PochetcomdComandeSave", name="PochettePhotosComandeSave_panierAccompagnateur")
*/
public function PochettePhotosComandeSave_panierAccompagnateur(Request $request)
{
$em = $this->em;
$session = $this->session;
$serviceuser = $this->etablissementService;
$page = $request->get("pages");
$sejour = $request->get("sejour");
$prodid = $request->get('idProd');
$nbr = $request->get('nbr');
$user = $this->getUser();
$nbr = strval($nbr);
$produittype = $session->get("produit");
$produit = $session->get("produittype");
$Album = $serviceuser->SavePhotosPochetteParent($page, $user, $sejour, $prodid, $produit, $produittype, $nbr);
$inser = false;
$Products = $session->get("Panier_Acompa");
$produit = $em->getRepository(Produit::class)->find($Album->getId());
//Touhemi 02-07-2020 :Rechercher si l'utilisateur a déja un panier avec statut créer ds la bd , sinon on écrit un panier
$user = $this->getUser();
$typeref = $em->getRepository(Typeref::class)->find(8);
$statutPanier = $em->getRepository(Ref::class)->findOneBy(array("libiller" => "creer", "typeref" => $typeref));
$panierTrace = $em->getRepository(Panier::class)->findOneBy(array("creerPar" => $user, "statut" => $statutPanier));
//fin
if ($panierTrace == null) {
$panierTrace = new Panier();
$dateNow = new \Datetime();
$panierTrace->setDateCreation($dateNow);
$panierTrace->setCreerPar($user);
$panierTrace->setStatut($statutPanier);
$em->getManager()->persist($panierTrace);
$em->getManager()->flush();
}
//Touhemi 02-07-2020 :s'il y a un produit avec (id user,id sejour, type produit et type conditionement) dans le panier , sinon on écrit un produit
if ($Products == null) {
$Products = [];
}
foreach ($Products as $key => $p) {
if ($p['id'] == $produit->getId()) {
$inser = true;
$Products[$key]['qte'] = $p['qte'] + 1;
$Products[$key]['mnt'] = $p['mnt'] + $produit->getIdConditionnement()->getMontantTTC();
}
}
//Touhemi 02-07-2020 :Rechercher si le produti existe déja ds panierProduit
$panierProduit = $em->getRepository(PanierProduit::class)->findOneBy(array("idProduit" => $produit, "idPanier" => $panierTrace));
if ($panierProduit == null) {
$panierProduit = new PanierProduit();
$panierProduit->setIdProduit($produit);
$panierProduit->setIdPanier($panierTrace);
$em->getManager()->persist($panierProduit);
$em->getManager()->flush();
}
//fin
// Touhemi 02-07-2020 ajouter plus un au produit et modifier prixTotal
$oldQte = $panierProduit->getQuantite();
$newQte = $oldQte + 1;
$panierProduit->setQuantite($newQte);
$oldTotal = $panierProduit->getPrixTotal();
$newTotal = $oldTotal + $produit->getIdConditionnement()->getMontantTTC();
$panierProduit->setPrixTotal($newTotal);
$em->getManager()->persist($panierProduit);
$em->getManager()->flush();
//fin
if ($inser === false) {
$p = [];
$p["id"] = $produit->getId();
$p["nom"] = $produit->getType()->getLabeletype();
$p["ident"] = $produit->getLabele();
$p["codesejour"] = $produit->getIdsjour()->getcodeSejour();
$p["mnt"] = $produit->getIdConditionnement()->getMontantTTC();
$p["path"] = $produit->getType()->getAttachements()[0]->getIdAttachement()->getPath();
$p["condition"] = $produit->getIdConditionnement()->getId();
$p["statut"] = $produit->getStatut();
$p["qte"] = 1;
array_push($Products, $p);
}
$session->set('Panier_Acompa', $Products);
//$this->EmailServie->MailRelancePanier($this->getUser()->getEmail());/
return new response('done');
}
/**
* @Route("Accompagnateur/ModificationPhotosRetros/{nbr}/{id}", name="EditionRetrofrompanierAccompagnateur")
*/
public function EditionRetrofrompanierAccompagnateur($nbr, $id)
{
$SEjourService = $this->sejourService;
$userId = $this->getUser()->getId();
$user = $this->getUser();
$session = $this->session;
$session->set('pageMenu', '');
$idSejour = $session->get("Sejour");
$produitcondition = $session->get("produit");
$produit = $session->get("produittype");
$sejour = $SEjourService->getsejourpourparent($idSejour);
$em = $this->em;
$clipart = $em->getRepository(Clipart::class)->findAll();
$listeattachlikephoto = $SEjourService->getlikephotosejour($userId, $idSejour);
$listerandom = $listeattachlikephoto;
$AllPagesAcc = null;
$random = false;
$Albumproduct = $em->getRepository(Produit::class)->findOneBy(['id' => $id]);
$AllPages = $em->getRepository(Page::class)->findBy(['idproduit' => $Albumproduct]);
$idAcc = $sejour->getIdAcommp();
$albumAcc = $em->getRepository(Produit::class)->findOneBy(['idsjour' => $idSejour, 'iduser' => $idAcc, 'statut' => 'saved'], ['id' => 'DESC']);
$part = $sejour->getIdPartenaire();
$nompart = $part->getUsername();
$logopart = $part->getLogourl();
return $this->render('Accompagnateur/PhotosRetros.html.twig', ["nbr" => $nbr, "nompart" => $nompart, "logopart" => $logopart, "sejour" => $sejour, 'like' => $listeattachlikephoto, 'cliparts' => $clipart, 'Album' => $Albumproduct, 'AllPages' => $AllPages, 'albumAcc' => $albumAcc, 'AllPagesAcc' => $AllPagesAcc, 'random' => $random]);
}
/**
* @Route("/Accompagnateur/SavePhotosRetros", name="SavePhotosRetrosAccompagnateur")
*/
public function SavePhotosRetrosAccompagnateur(Request $request)
{
$em = $this->em;
$session = $this->session;
$serviceuser = $this->etablissementService;
$page = $request->get("pages");
$sejour = $request->get("sejour");
$prodid = $request->get('idProd');
$nomprod = $request->get('nomprod');
$nbr = $request->get('nbr');
$comandePanier = $request->get('comandePanier');
$user = $this->getUser();
$nbr = strval($nbr);
$produittype = $session->get("produit");
$produit = $session->get("produittype");
$Album = $serviceuser->SavePhotosRetrosParents($page, $user, $sejour, $prodid, $produit, $produittype, $nbr, $nomprod);
if ($comandePanier == "comandePanier") {
$inser = false;
$Products = $session->get("Panier_Acompa");
$produit = $this->em->getRepository(Produit::class)->find($Album->getId());
//Touhemi 02-07-2020 :Rechercher si l'utilisateur a déja un panier avec statut créer ds la bd , sinon on écrit un panier
$user = $this->getUser();
$typeref = $this->em->getRepository(Typeref::class)->find(8);
$statutPanier = $this->em->getRepository(Ref::class)->findOneBy(array("libiller" => "creer", "typeref" => $typeref));
$panierTrace = $this->em->getRepository(Panier::class)->findOneBy(array("creerPar" => $user, "statut" => $statutPanier));
//fin
if ($panierTrace == null) {
$panierTrace = new Panier();
$dateNow = new \Datetime();
$panierTrace->setDateCreation($dateNow);
$panierTrace->setCreerPar($user);
$panierTrace->setStatut($statutPanier);
$em->getManager()->persist($panierTrace);
$em->getManager()->flush();
}
//Touhemi 02-07-2020 :s'il y a un produit avec (id user,id sejour, type produit et type conditionement) dans le panier , sinon on écrit un produit
if ($Products == null) {
$Products = [];
}
foreach ($Products as $key => $p) {
if ($p['id'] == $produit->getId()) {
$inser = true;
$Products[$key]['qte'] = $p['qte'] + 1;
$Products[$key]['mnt'] = $p['mnt'] + $produit->getIdConditionnement()->getMontantTTC();
}
}
//Touhemi 02-07-2020 :Rechercher si le produti existe déja ds panierProduit
$panierProduit = $em->getRepository(PanierProduit::class)->findOneBy(array("idProduit" => $produit, "idPanier" => $panierTrace));
if ($panierProduit == null) {
$panierProduit = new PanierProduit();
$panierProduit->setIdProduit($produit);
$panierProduit->setIdPanier($panierTrace);
$em->getManager()->persist($panierProduit);
$em->getManager()->flush();
}
//fin
// Touhemi 02-07-2020 ajouter plus un au produit et modifier prixTotal
$oldQte = $panierProduit->getQuantite();
$newQte = $oldQte + 1;
$panierProduit->setQuantite($newQte);
$oldTotal = $panierProduit->getPrixTotal();
$newTotal = $oldTotal + $produit->getIdConditionnement()->getMontantTTC();
$panierProduit->setPrixTotal($newTotal);
$em->getManager()->persist($panierProduit);
$em->getManager()->flush();
//fin
if ($inser === false) {
$p = [];
$p["id"] = $produit->getId();
$p["nom"] = $produit->getType()->getLabeletype();
$p["ident"] = $produit->getLabele();
$p["codesejour"] = $produit->getIdsjour()->getcodeSejour();
$p["mnt"] = $produit->getIdConditionnement()->getMontantTTC();
$p["path"] = $produit->getType()->getAttachements()[0]->getIdAttachement()->getPath();
$p["condition"] = $produit->getIdConditionnement()->getId();
$p["statut"] = $produit->getStatut();
$p["qte"] = 1;
array_push($Products, $p);
}
$session->set('Panier_Acompa', $Products);
}
//$this->EmailServie->MailRelancePanier($this->getUser()->getEmail());
return new response($Album->getId());
}
/**
* @Route("/Accompagnateur/RetrosComandeSaveRetros", name="RetrosComandeSaveRetrosAccompagnateur")
*/
public function RetrosComandeSaveRetrosAccompagnateur(Request $request)
{
$em = $this->em;
$session = $this->session;
$serviceuser = $this->etablissementService;
$page = $request->get("pages");
$sejour = $request->get("sejour");
$prodid = $request->get('idProd');
$nomprod = $request->get('nomprod');
$nbr = $request->get('nbr');
$user = $this->getUser();
$nbr = strval($nbr);
$produittype = $session->get("produit");
$produit = $session->get("produittype");
$Album = $serviceuser->SavePhotosRetrosParents($page, $user, $sejour, $prodid, $produit, $produittype, $nbr, $nomprod);
$inser = false;
$Products = $session->get("Panier_Acompa");
$produit = $em->getRepository(Produit::class)->find($Album->getId());
//Touhemi 02-07-2020 :Rechercher si l'utilisateur a déja un panier avec statut créer ds la bd , sinon on écrit un panier
$user = $this->getUser();
$typeref = $em->getRepository(Typeref::class)->find(8);
$statutPanier = $em->getRepository(Ref::class)->findOneBy(array("libiller" => "creer", "typeref" => $typeref));
$panierTrace = $em->getRepository(Panier::class)->findOneBy(array("creerPar" => $user, "statut" => $statutPanier));
//fin
if ($panierTrace == null) {
$panierTrace = new Panier();
$dateNow = new \Datetime();
$panierTrace->setDateCreation($dateNow);
$panierTrace->setCreerPar($user);
$panierTrace->setStatut($statutPanier);
$em->getManager()->persist($panierTrace);
$em->getManager()->flush();
}
//Touhemi 02-07-2020 :s'il y a un produit avec (id user,id sejour, type produit et type conditionement) dans le panier , sinon on écrit un produit
if ($Products == null) {
$Products = [];
}
foreach ($Products as $key => $p) {
if ($p['id'] == $produit->getId()) {
$inser = true;
$Products[$key]['qte'] = $p['qte'] + 1;
$Products[$key]['mnt'] = $p['mnt'] + $produit->getIdConditionnement()->getMontantTTC();
}
}
//Touhemi 02-07-2020 :Rechercher si le produti existe déja ds panierProduit
$panierProduit = $em->getRepository(PanierProduit::class)->findOneBy(array("idProduit" => $produit, "idPanier" => $panierTrace));
if ($panierProduit == null) {
$panierProduit = new PanierProduit();
$panierProduit->setIdProduit($produit);
$panierProduit->setIdPanier($panierTrace);
$em->getManager()->persist($panierProduit);
$em->getManager()->flush();
}
//fin
// Touhemi 02-07-2020 ajouter plus un au produit et modifier prixTotal
$oldQte = $panierProduit->getQuantite();
$newQte = $oldQte + 1;
$panierProduit->setQuantite($newQte);
$oldTotal = $panierProduit->getPrixTotal();
$newTotal = $oldTotal + $produit->getIdConditionnement()->getMontantTTC();
$panierProduit->setPrixTotal($newTotal);
$em->getManager()->persist($panierProduit);
$em->getManager()->flush();
//fin
if ($inser === false) {
$p = [];
$p["id"] = $produit->getId();
$p["nom"] = $produit->getType()->getLabeletype();
$p["ident"] = $produit->getLabele();
$p["codesejour"] = $produit->getIdsjour()->getcodeSejour();
$p["mnt"] = $produit->getIdConditionnement()->getMontantTTC();
$p["path"] = $produit->getType()->getAttachements()[0]->getIdAttachement()->getPath();
$p["condition"] = $produit->getIdConditionnement()->getId();
$p["statut"] = $produit->getStatut();
$p["qte"] = 1;
array_push($Products, $p);
}
$session->set('Panier_Acompa', $Products);
return new response('done');
}
/**
* @Route("/Accompagnateur/ajouterauPanier_Accompagnateur_coffret", name="comandercoffreAccompagnateur")
*/
public function Ajouter_MonPanier_Coffret()
{
$inser = false;
$session = $this->session;
$idSejour = $session->get("Sejour");
$userId = $this->getUser();
$em = $this->em;
$sejourobj = $em->getRepository(Sejour::class)->find($idSejour);
$prodct = $em->getRepository(Typeproduit::class)->find(15);
// $version = $em->getRepository(Produit::class)->SearchVersionproduit($this->getUser()->getId());
$Conditionnement = $em->getRepository(TypeProduitConditionnement::class)->find(6);
$Products = $session->get("Panier_Acompa");
//Touhemi 02-07-2020 :Rechercher si l'utilisateur a déja un panier avec statut créer ds la bd , sinon on écrit un panier
$user = $this->getUser();
$typeref = $em->getRepository(Typeref::class)->find(8);
$statutPanier = $em->getRepository(Ref::class)->findOneBy(array("libiller" => "creer", "typeref" => $typeref));
$panierTrace = $em->getRepository(Panier::class)->findOneBy(array("creerPar" => $user, "statut" => $statutPanier));
//fin
if ($panierTrace == null) {
$panierTrace = new Panier();
$dateNow = new \Datetime();
$panierTrace->setDateCreation($dateNow);
$panierTrace->setCreerPar($user);
$panierTrace->setStatut($statutPanier);
$em->getManager()->persist($panierTrace);
$em->getManager()->flush();
}
//Touhemi 02-07-2020 :s'il y a un produit avec (id user,id sejour, type produit et type conditionement) dans le panier , sinon on écrit un produit
$produit = $em->getRepository(Produit::class)->findOneBy(array("type" => $prodct, 'idConditionnement' => $Conditionnement, 'idsjour' => $sejourobj, 'iduser' => $user));
if ($produit == null) {
$produit = new Produit;
$produit->setLabele("Coffret cadeau");
$produit->setIduser($userId);
$produit->setIdsjour($sejourobj);
$produit->setIdConditionnement($Conditionnement);
$produit->setType($prodct);
$produit->setDate(new \DateTime());
$em->getManager()->persist($produit);
$em->getManager()->flush();
}
if ($Products == null) {
$Products = [];
}
foreach ($Products as $key => $p) {
if ($p['id'] == $produit->getId()) {
$inser = true;
$Products[$key]['qte'] = $p['qte'] + 1;
$Products[$key]['mnt'] = $p['mnt'] + $produit->getType()->getTraif();
}
}
//Touhemi 02-07-2020 :Rechercher si le produti existe déja ds panierProduit
$panierProduit = $em->getRepository(PanierProduit::class)->findOneBy(array("idProduit" => $produit, "idPanier" => $panierTrace));
if ($panierProduit == null) {
$panierProduit = new PanierProduit();
$panierProduit->setIdProduit($produit);
$panierProduit->setIdPanier($panierTrace);
$em->getManager()->persist($panierProduit);
$em->getManager()->flush();
}
//fin
// Touhemi 02-07-2020 ajouter plus un au produit et modifier prixTotal
$oldQte = $panierProduit->getQuantite();
$newQte = $oldQte + 1;
$panierProduit->setQuantite($newQte);
$oldTotal = $panierProduit->getPrixTotal();
$newTotal = $oldTotal + $produit->getIdConditionnement()->getMontantTTC();
$panierProduit->setPrixTotal($newTotal);
$em->getManager()->persist($panierProduit);
$em->getManager()->flush();
//fin
if ($inser === false) {
$p = [];
$p["id"] = $produit->getId();
$p["nom"] = $produit->getType()->getLabeletype();
$p["ident"] = $produit->getLabele();
$p["codesejour"] = $produit->getIdsjour()->getcodeSejour();
$p["mnt"] = $produit->getIdConditionnement()->getMontantTTC();
$p["path"] = $produit->getType()->getAttachements()[0]->getIdAttachement()->getPath();
$p["condition"] = $produit->getIdConditionnement()->getId();
$p["statut"] = $produit->getStatut();
$p["qte"] = 1;
array_push($Products, $p);
}
$session->set('Panier_Acompa', $Products);
return new Response('coffert cadeau ajouté');
}
/**
* @Route("/Accompagnateur/boutique5sur5Sejour", name="boutique5sur5Accompagnateur")
*/
public function boutique5sur5Accompagnateur()
{
$SEjourService = $this->sejourService;
/** @var \App\Entity\User $userId */
$userId = $this->getUser();
$userId = $userId->getId();
$session = $this->session;
$session->set('pageMenu', 'boutique5su5');
$idSejour = $session->get("Sejour");
$sejour = $SEjourService->getsejourpourparent($idSejour);
$listeattachlikephoto = $SEjourService->getlikephotosejour($userId, $idSejour);
$listeattach = $SEjourService->getatachmentsejour($idSejour);
$messages = $SEjourService->getsejourmessage($idSejour);
$nbImages = count($listeattach);
$nbmessages = count($messages);
$produit = $this->typeProduiteService;
$liste = $produit->produitlistTypeConditionnement();
$idAcc = $sejour->getIdAcommp();
$em = $this->em;
$albumAcc = $em->getRepository(Produit::class)->findOneBy(['idsjour' => $idSejour, 'iduser' => $idAcc, 'statut' => 'saved'], ['id' => 'DESC']);
$nbLikes = count($listeattachlikephoto);
// dd($liste);
return $this->render('Accompagnateur/boutique_5sur5.html.twig', [
"sejour" => $sejour,
'like' => $listeattachlikephoto,
'produit' => $liste,
'albumAcc' => $albumAcc,
'nbImages' => $nbImages,
'nbmessages' => $nbmessages,
'nbLikes' => $nbLikes
]);
}
/******* *********/
/**
* @Route("/Accompagnateur/pdfaccomp/{id}", name="pdfaccomp")
*/
public function ExportPdfAccomp(Request $request, $id)
{
// $json = json_decode(file_get_contents("pdf/pdfaccomp.json"));
$sejourservice = $this->sejourService;
$sejour = $sejourservice->getsejourByAcc($id, $this->getUser());
$session = $this->session;
//dd($sejour);
$pdf = new Fpdi();
$publicDirectory = $this->params->get('kernel.project_dir') . '/public/pdf/';
$pdfFilepath = $publicDirectory . "Mode_emploi_5sur5sejour_v5_.pdf";
$pageCount = $pdf->setSourceFile($pdfFilepath);
$pageId = $pdf->importPage(1, PdfReader\PageBoundaries::MEDIA_BOX);
$pdf->addPage();
$pdf->useImportedPage($pageId, 0.5, 0.5, 0.5);
$testText = "abcdefghijklmnopqrstuvwxyz0123456789";
$current_date = date('d-M-Y');
$DateDebut = "";
$DateFin = "";
$Theme = "";
$Lieu = "";
$CodeSejour = "";
$MotPass = "";
$Ville = "";
$Paye = "";
if ($sejour) {
$DateDebut = $sejour->getDateDebutSejour();
$DateFin = $sejour->getDateFinSejour();
$Theme = $sejour->getThemSejour();
$Lieu = $sejour->getAdresseSejour();
$CodeSejour = $sejour->getCodeSejour();
$MotPass = $sejour->getIdAcommp()->getPasswordNonCripted();
$Ville = $sejour->getVille();
$Paye = $sejour->getPays();
}
for ($i = 0; $i < $pageCount; $i++) {
$tplIdx = $pdf->importPage(1 + $i);
$pdf->useTemplate($tplIdx, 0, 0, 200, 300, true);
$theme = $Theme;
if (strlen($theme) > 25) {
$pdf->SetFont("Arial", "", 5);
} else {
$pdf->SetFont("Arial", "", 7);
}
$strTheme = iconv("UTF-8", "WINDOWS-1252", $theme);
$pdf->Text(35, 262, $strTheme);
$pdf->SetFont("Arial", "", 8);
$lieu = $Lieu;
$ville = $Ville;
$paye = $Paye;
if ($Paye && $Ville) {
$strLieu = iconv("UTF-8", "WINDOWS-1252", $ville . " " . $paye);
$pdf->Text(125, 262, $strLieu);
} else if ($Paye) {
$strLieu = iconv("UTF-8", "WINDOWS-1252", $paye);
$pdf->Text(125, 262, $strLieu);
} else {
$strLieu = iconv("UTF-8", "WINDOWS-1252", $ville);
$pdf->Text(125, 262, $strLieu);
}
$pdf->SetFont("Arial", "", 10);
$pdf->Text(90, 271, $CodeSejour);
$pdf->SetFont("Arial", "", 10);
$pdf->Text(50, 252, $DateDebut->format('d/m/Y'));
$pdf->SetFont("Arial", "", 10);
$pdf->Text(90, 252, $DateFin->format('d/m/Y'));
$pdf->SetFont("Arial", "", 10);
$pdf->Text(75, 279, $MotPass);
}
$pdf->Output("Mode d'emploi 5sur5sejour.pdf", "D");
return new response($pdf->Output(), 200, array('Content-Type' => 'application/pdf'));
}
/*******Salim *********/
/**
* @Route("/Accompagnateur/PdfParentP/{id}", name="PdfParentP")
*/
public function ExportPdfParentpaye(Request $request, $id)
{
// $json = json_decode(file_get_contents("pdf/pdfparentPaye.json"));
$sejourservice = $this->sejourService;
$sejour = $sejourservice->getsejourByAcc($id, $this->getUser());
$session = $this->session;
$pdf = new Fpdi();
$publicDirectory = $this->params->get('kernel.project_dir') . '/public/pdf/';
$pdfFilepath = $publicDirectory . "Mode_emploi_Parent_5sur5sejour_v5_.pdf";
$pageCount = $pdf->setSourceFile($pdfFilepath);
$pageId = $pdf->importPage(1, PdfReader\PageBoundaries::MEDIA_BOX);
$pdf->addPage();
$pdf->useImportedPage($pageId, 0.5, 0.5, 0.5);
$testText = "abcdefghijklmnopqrstuvwxyz0123456789";
$current_date = date('d-M-Y');
$DateDebut = "";
$DateFin = "";
$Theme = "";
$Lieu = "";
$CodeSejour = "";
$Ville = "";
$Paye = "";
if ($sejour) {
$DateDebut = $sejour->getDateDebutSejour();
$DateFin = $sejour->getDateFinSejour();
$Theme = $sejour->getThemSejour();
$Lieu = $sejour->getAdresseSejour();
$CodeSejour = $sejour->getCodeSejour();
$Ville = $sejour->getVille();
$Paye = $sejour->getPays();
}
for ($i = 0; $i < $pageCount; $i++) {
$tplIdx = $pdf->importPage($i + 1);
$pdf->useTemplate($tplIdx, 0, 0, 200, 300, true);
$theme = $Theme;
if (strlen($theme) > 25) {
$pdf->SetFont("Arial", "", 5);
} else {
$pdf->SetFont("Arial", "", 7);
}
$strTheme = iconv("UTF-8", "WINDOWS-1252", $theme);
$pdf->Text(35, 268, $strTheme);
$pdf->SetFont("Arial", "", 8);
$lieu = $Lieu;
$ville = $Ville;
$paye = $Paye;
if ($Paye && $Ville) {
$strLieu = iconv("UTF-8", "WINDOWS-1252", $ville . " " . $paye);
$pdf->Text(125, 268, $strLieu);
} else if ($Paye) {
$strLieu = iconv("UTF-8", "WINDOWS-1252", $paye);
$pdf->Text(125, 268, $strLieu);
} else {
$strLieu = iconv("UTF-8", "WINDOWS-1252", $ville);
$pdf->Text(125, 268, $strLieu);
}
$pdf->SetFont("Arial", "", 10);
$pdf->Text(80, 279, $CodeSejour);
$pdf->SetFont("Arial", "", 10);
$pdf->Text(48, 258, $DateDebut->format('d/m/Y'));
$pdf->SetFont("Arial", "", 10);
$pdf->Text(89, 258, $DateFin->format('d/m/Y'));
}
$pdf->Output("Mode d'emploi Parent 5sur5sejour.pdf", "D");
return new response($pdf->Output(), 100, array('Content-Type' => 'application/pdf'));
}
/*******Salim *********/
/**
* @Route("/Accompagnateur/PdfParentgrat/{id}", name="PdfParentgratt")
*/
public function ExportPdfParentgrat(Request $request, $id)
{
//$json = json_decode(file_get_contents("pdf/pdfparentGratuit.json"));
$sejourservice = $this->sejourService;
$sejour = $sejourservice->getsejourByAcc($id, $this->getUser());
$session = $this->session;
//dd($sejour);
$pdf = new Fpdi();
$publicDirectory = $this->params->get('kernel.project_dir') . '/public/pdf/';
$pdfFilepath = $publicDirectory . "Mode_emploi_Parent_G_5sur5sejou_v5_.pdf";
$pageCount = $pdf->setSourceFile($pdfFilepath);
$pageId = $pdf->importPage(1, PdfReader\PageBoundaries::MEDIA_BOX);
$pdf->addPage();
$pdf->useImportedPage($pageId, 0.5, 0.5, 0.5);
$testText = "abcdefghijklmnopqrstuvwxyz0123456789";
$current_date = date('d-M-Y');
$DateDebut = "";
$DateFin = "";
$Theme = "";
$Lieu = "";
$CodeSejour = "";
$Ville = "";
$Paye = "";
if ($sejour) {
$DateDebut = $sejour->getDateDebutSejour();
$DateFin = $sejour->getDateFinSejour();
$Theme = $sejour->getThemSejour();
$Lieu = $sejour->getAdresseSejour();
$CodeSejour = $sejour->getCodeSejour();
$Ville = $sejour->getVille();
$Paye = $sejour->getPays();
}
for ($i = 0; $i < $pageCount; $i++) {
$tplIdx = $pdf->importPage($i + 1);
$pdf->useTemplate($tplIdx, 0, 0, 200, 300, true);
$theme = $Theme;
if (strlen($theme) > 25) {
$pdf->SetFont("Arial", "", 5);
} else {
$pdf->SetFont("Arial", "", 7);
}
$strTheme = iconv("UTF-8", "WINDOWS-1252", $theme);
$pdf->Text(35, 268, $strTheme);
$pdf->SetFont("Arial", "", 8);
$lieu = $Lieu;
$ville = $Ville;
$paye = $Paye;
if ($Ville && $Paye) {
$strLieu = iconv("UTF-8", "WINDOWS-1252", $ville . " " . $paye);
$pdf->Text(125, 268, $strLieu);
} else if ($Paye) {
$strLieu = iconv("UTF-8", "WINDOWS-1252", $paye);
$pdf->Text(125, 268, $strLieu);
} else {
$strLieu = iconv("UTF-8", "WINDOWS-1252", $ville);
$pdf->Text(125, 268, $strLieu);
}
$pdf->SetFont("Arial", "", 10);
$pdf->Text(80, 279, $CodeSejour);
$pdf->SetFont("Arial", "", 10);
$pdf->Text(48, 258, $DateDebut->format('d/m/Y'));
$pdf->SetFont("Arial", "", 10);
$pdf->Text(89, 258, $DateFin->format('d/m/Y'));
}
$pdf->Output("Mode d'emploi Parent G 5sur5sejour.pdf", "D");
return new response($pdf->Output(), 100, array('Content-Type' => 'application/pdf'));
}
/*******Salim *********/
/**
* @Route("/Accompagnateur/Pdfpresentation", name="Pdfpresentation")
*/
public function Pdfpresentation(Request $request)
{
$pdf = new Fpdi();
$pageCount = $pdf->setSourceFile('pdf/presentation5sur5.pdf');
$pageId = $pdf->importPage(1, PdfReader\PageBoundaries::MEDIA_BOX);
$pdf->addPage();
$pdf->useImportedPage($pageId, 20, 10, 90);
$testText = "abcdefghijklmnopqrstuvwxyz0123456789";
for ($i = 1; $i < $pageCount; $i++) {
$tplIdx = $pdf->importPage(1);
$pdf->useTemplate($tplIdx, 0, 0, 200, 300, true);
}
$pageId = $pdf->importPage(1, PdfReader\PageBoundaries::MEDIA_BOX);
$pdf->addPage();
$pdf->useImportedPage($pageId, 20, 10, 90);
$testText = "abcdefghijklmnopqrstuvwxyz0123456789";
for ($i = 1; $i < $pageCount; $i++) {
$tplIdx = $pdf->importPage(2);
$pdf->useTemplate($tplIdx, 0, 0, 200, 300, true);
}
$pageId = $pdf->importPage(1, PdfReader\PageBoundaries::MEDIA_BOX);
$pdf->addPage();
$pdf->useImportedPage($pageId, 20, 10, 90);
$testText = "abcdefghijklmnopqrstuvwxyz0123456789";
for ($i = 1; $i < $pageCount; $i++) {
$tplIdx = $pdf->importPage(3);
$pdf->useTemplate($tplIdx, 0, 0, 200, 300, true);
}
$pageId = $pdf->importPage(3, PdfReader\PageBoundaries::MEDIA_BOX);
$pdf->addPage();
$pdf->useImportedPage($pageId, 20, 10, 90);
$testText = "abcdefghijklmnopqrstuvwxyz0123456789";
for ($i = 1; $i < $pageCount; $i++) {
$tplIdx = $pdf->importPage($i);
$pdf->useTemplate($tplIdx, 0, 0, 200, 300, true);
}
$pageId = $pdf->importPage(3, PdfReader\PageBoundaries::MEDIA_BOX);
$pdf->addPage();
$pdf->useImportedPage($pageId, 20, 10, 90);
$testText = "abcdefghijklmnopqrstuvwxyz0123456789";
for ($i = 1; $i < $pageCount; $i++) {
$tplIdx = $pdf->importPage($i + 1);
$pdf->useTemplate($tplIdx, 0, 0, 200, 300, true);
}
$pdf->Output("Presentation 5sur5Séjour.pdf", "D");
return new response($pdf->Output(), 200, array('Content-Type' => 'application/pdf'));
}
/**
* @Route("/Accompagnateur/SauvegarderEmailResponse", name="SauvegarderEmailResponse")
*/
public function SauvegarderEmailResponse(Request $request)
{
$em = $this->em;
$email = $request->get('email');
$user = $this->getUser();
if ($user) {
$user->setReponseemail($email);
$em->getManager()->persist($user);
$em->getManager()->flush();
}
return new Response('Bingo');
}
/**
* @Route("/Accompagnateur/Besoindaide", name="Besoindaide_Accompa")
*/
public function Besoindaide(): Response
{
$produit = $this->typeProduiteService;
$liste = $produit->produitlistType();
// dd($liste);
return $this->render('Accueil/BesoindaideAccomp.html.twig', [
'produit' => $liste,
]);
}
/**
* @Route("/Accompagnateur/Mentionlegale", name="Mentionlegale_Accompa")
*/
public function MentionlegaleAccompa()
{
return $this->render('Accueil/mentionlegal.html.twig', []);
}
/**
* @Route("/Accompagnateur/Conditongeneral", name="Conditongeneral_Accompa")
*/
public function ConditongeneralAccompa()
{
return $this->render('Accueil/Condition.html.twig', []);
}
/**
* @Route("/Accompagnateur/Politique", name="Politique_Accompa")
*/
public function PolitiqueAccompa()
{
return $this->render('Accueil/politique.html.twig', []);
}
/**
* @Route("/Accompagnateur/verifemailexist", name="verifemailexist")
*/
public function verifemailexist(Request $request)
{
$em = $this->em;
$email = $request->get('email');
$nbremail = $em->getRepository(User::class)->checkEmail($email);
if ($nbremail > 0) {
return new Response('Cet email est déjà utilisé !');
} else {
return new Response('email valide');
}
}
/**
* @Route("/Accompagnateur/hidePubProd",name="hidePubProd")
*/
function hidePubProd(Request $request)
{
$val = $request->get("val");
$user = $this->getUser();
$parent = $this->em->getRepository(User::class)->find($user->getId());
$parent->setShowpubprod('false');
$this->em->getManager()->persist($parent);
$this->em->getManager()->flush();
return new Response('ok');
}
/**
* @Route("/Accompagnateur/ListeProduits",name="ListeProduits")
*/
function ListeProduits(Request $request)
{
$SEjourService = $this->sejourService;
$userId = $this->getUser()->getId();
$user = $this->getUser();
$session = $this->session;
$session->set('pageMenu', '');
$idSejour = $session->get("Sejour");
$sejour = $SEjourService->getsejourpourparent($idSejour);
$listeattachlikephoto = $SEjourService->getlikephotosejour($userId, $idSejour);
$produit = $this->typeProduiteService;
$liste = $produit->produitlistTypeConditionnement();
$idAcc = $sejour->getIdAcommp();
$em = $this->em;
$albumAcc = $em->getRepository(Produit::class)->findOneBy(['idsjour' => $idSejour, 'iduser' => $idAcc, 'statut' => 'saved'], ['id' => 'DESC']);
// dd($liste);
return $this->render('Accompagnateur/ListeProduits.html.twig', [
"sejour" => $sejour,
'like' => $listeattachlikephoto,
'produit' => $liste,
'albumAcc' => $albumAcc
]);
}
/**
* @Route("/Accompagnateur/getInfoSejour",name="getInfoSejour")
*/
function infoSejourAction()
{
$sejourService = $this->sejourService;
$session = $this->session;
$idSejour = $session->get("Sejour");
if ($this->getUser()) {
if (is_null($idSejour)) {
return new JsonResponse(array('message' => 'merci de verifier sejour'), 401);
} else {
$sejour = $this->em->getRepository(Sejour::class)->find($idSejour);
if (is_null($sejour)) {
return new JsonResponse(array('message' => 'merci de verifier sejour'), 401);
} else {
//get info sejour
$detailsSejour = $sejourService->getInfoSejour($sejour);
return new JsonResponse(array('detailsSejour' => $detailsSejour), 200);
}
}
} else {
return new JsonResponse(array('message' => 'merci de se connecter.'), 401);
}
}
/**
* @Route("/Accompagnateur/finish-tour", name="finish_tour", methods={"POST"})
*/
public function finishTour(Request $request): JsonResponse
{
$data = json_decode($request->getContent(), true);
$submittedToken = $data['_token'] ?? '';
$em = $this->em->getManager();
// Get the current user
$user = $this->getUser();
if (!$user) {
return new JsonResponse(['status' => 'error', 'message' => 'User not logged in'], 401);
}
$id = $this->getUser()->getId();
$accomp = $this->em->getRepository(User::class)->find($id);
// Mark the tour as finished (e.g. set showpubprod to 1)
$accomp->setShowpubprod(1);
$em->persist($user);
$em->flush();
return new JsonResponse(['status' => 'success']);
}
/**
* @Route("/Accompagnateur/unsubscribe", name="accompagnateur_unsubscribe")
*/
public function unsubscribe(Request $request): Response
{
return $this->forward('App\Controller\AccueilController::unsubscribeUser', [
'email' => $request->query->get('email')
]);
}
}