src/Controller/ConsumersController.php line 436

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\General;
  4. use App\Entity\Sidebar;
  5. use App\Entity\Sponsors;
  6. use App\Entity\Usuari;
  7. use App\Entity\Consumers;
  8. use App\Util\changeSize;
  9. use Doctrine\ORM\EntityManagerInterface;
  10. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  11. use Symfony\Component\HttpFoundation\RequestStack;
  12. use Symfony\Component\HttpFoundation\Response;
  13. use Symfony\Component\HttpFoundation\JsonResponse;
  14. use Symfony\Component\HttpFoundation\Request;
  15. use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
  16. use Symfony\Bundle\FrameworkBundle\Controller\Controller;
  17. use Symfony\Component\Mailer\MailerInterface;
  18. use Symfony\Component\Security\Core\Security;
  19. use Symfony\Component\Security\Core\SecurityContext;
  20. use Symfony\Component\HttpFoundation\File\Exception\FileNotFoundException;
  21. use Symfony\Component\HttpFoundation\File\UploadedFile;
  22. use App\Controller\ProcessosController;
  23. use App\Util\Util;
  24. use Symfony\Component\Translation\LocaleSwitcher;
  25. use Symfony\Contracts\Translation\TranslatorInterface;
  26. use Symfony\Component\HttpFoundation\BinaryFileResponse;
  27. use Symfony\Component\HttpFoundation\ResponseHeaderBag;
  28. class ConsumersController extends AbstractController
  29. {
  30.     
  31.     protected $enSidebar;
  32.     protected $enGeneral;
  33.     protected $enSponsors;
  34.     public $sBase;
  35.     public $sUrlRecuperacioClau;
  36.     private $em;
  37.     private $objUtil;
  38.     private $session;
  39.     private $translator;
  40.     private $phpmailer;
  41.     private $sPathUploads;
  42.     public function __construct(EntityManagerInterface $em,Security $security,RequestStack $requestStack,TranslatorInterface $translator,private LocaleSwitcher $localeSwitcher)
  43.     {
  44.         $this->em $em;
  45.         $this->objUtil = new \App\Util\Util($this->em);
  46.         $this->translator $translator;
  47.         $this->phpmailer = new CorreuController();
  48.         $this->sPathUploads dirname(__FILE__) . "/../../public/uploads/";
  49.         /*
  50.         * Insertem informació a log
  51.         */
  52.         //$request = $this->request;
  53.         $this->objUtil->logAction($requestStack->getCurrentRequest(), $security->getUser());
  54.         $this->session $requestStack->getSession();
  55.         
  56.         switch ($_SERVER['SERVER_NAME']) {
  57.             case 'www.masella.com':
  58.             case 'beta.masella.com':
  59.                 $this->sBase '/var/www/vhosts/masella.com/httpdocs/';
  60.                 $this->sUrlRecuperacioClau 'https://masella.axess.shop/es/Account/NewPassword?rTkn={0}&authM=';
  61.                 break;
  62.             case 'dev22.masella.com':
  63.                 $this->sBase '/var/www/vhosts/dev22.masella.com/httpdocs/';
  64.                 $this->sUrlRecuperacioClau 'https://masella.axess.shop/es/Account/NewPassword?rTkn={0}&authM=';
  65.                 break;
  66.             case 'dev23.masella.com':
  67.                 $this->sBase '/var/www/vhosts/dev23.masella.com/httpdocs/';
  68.                 $this->sUrlRecuperacioClau 'https://masella.axess.shop/es/Account/NewPassword?rTkn={0}&authM=';
  69.                 break;
  70.             case 'sf6.masella.com':
  71.                 $this->sBase '/var/www/vhosts/sf6.masella.com/httpdocs/';
  72.                 $this->sUrlRecuperacioClau 'https://masella.axess.shop/es/Account/NewPassword?rTkn={0}&authM=';
  73.                 break;
  74.             case 'masella015.developer.entorno.es':
  75.                 $this->sBase '/home/jramon/projects/masella2015/';
  76.                 $this->sUrlRecuperacioClau 'https://demo-iberica.axess.shop/es/Account/NewPassword?rTkn={0}&authM=';
  77.                 break;
  78.         }
  79.         $this->enSidebar $this->em->getRepository(Sidebar::class)->findBy(
  80.             array(   'general' => 1)
  81.         );
  82.         $this->enGeneral $this->em->getRepository(General::class)->findAll();
  83.         $this->enSponsors $this->em->getRepository(Sponsors::class)->findBy(
  84.             array( 'visible'    => 1),
  85.             array('ordre'       => 'ASC')
  86.         );
  87.     }
  88.     public function consumerResizeFotoAction(Request $request)
  89.     {
  90.         $sMissatge 'Imatge guarda correctament';
  91.         $sForder 'consumers';
  92.         if ($request->get('folder'))
  93.         {
  94.             $sForder $request->get('folder');
  95.         }
  96.         //$sBase = $this->sBase . 'public/uploads/'. $sForder .'/';
  97.         $sBase $this->sPathUploads $sForder '/';
  98.         $path $sBase $request->get('fileName');
  99.         //chmod($path, 0777);
  100.         //$pathOld = $sBase . str_replace('.jpeg', '_old.jpeg', str_replace('.jpg', '_old.jpg', $request->get('fileName')));
  101.         //if (copy($path, $pathOld))
  102.         // {
  103.             $path_png $sBase  str_replace(array('.jpg''.jpeg' ), '.png'$request->get('fileName'));
  104.             file_put_contents($path_pngbase64_decode(preg_replace('#^data:image/\w+;base64,#i'''$request->get('image'))));
  105.             $image imagecreatefrompng($path_png);
  106.             if (!imagejpeg($image$path100))
  107.             {
  108.                 $sMissatge "Error al guardar la imatge 1";
  109.             }
  110.             imagedestroy($image);
  111.             unlink($path_png);
  112.         //} else {
  113.         //    $sMissatge = "Error al guardar la imatge 2";
  114.         //}
  115.         return new Response($sMissatge);
  116.     }
  117.     public function logoutClientAction(Request $peticion)
  118.     {
  119.         ////////////////////////////////////////////////////
  120.         // Eliminem les variables de secció d'altres compres
  121.         ////////////////////////////////////////////////////
  122.         $this->session->remove('sessCol_id');
  123.         $this->session->remove('sessConsumer_id');
  124.         return $this->redirect($this->generateUrl('_home'));
  125.     }
  126.     
  127.     public function area_privada_checkAction(Request $peticion)
  128.     {
  129.         $aRequest $peticion->request;
  130.         $enConsumers null;
  131.         /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  132.         /// Creu una sessió sessConsumer_id per que si estem a mode debug al mostrar els missatges per pantalla crea capçaleres i les
  133.         ///  sessions s'han de crear avanç de les capçaleres
  134.         /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  135.         $this->session->set('sessConsumer_id',null);
  136.         if ($aRequest->has('email')
  137.             && $aRequest->has('clau'))
  138.         {
  139.             $objWebServicesValidateAccount = new WebServicesValidateAccountController();
  140.             /////////////////////////////////////////////////////////////////////////////////////
  141.             /// Quan la cridem com una clase no te acces al getParameter, així li passem el valor
  142.             /////////////////////////////////////////////////////////////////////////////////////
  143.             $objWebServicesValidateAccount->setEnviroments($this->getParameter('kernel.environment'));
  144.             $objWebServicesValidateAccount->setObjContainer($this);
  145.             $objWebServicesValidateAccount->setObjGetMailer($this->phpmailer);
  146.             $objWebServicesValidateAccount->setEm($this->em);
  147.             $aElements = array(
  148.                 'i_szUserName'      => $aRequest->get('email'),
  149.                 'i_szPassword'      => $aRequest->get('clau'),
  150.                 'i_szLoginToken'    => '',
  151.                 'i_nLoginTypeNr'    => 1
  152.             );
  153.             $jsonReturn $objWebServicesValidateAccount->validateAccount($aElements$this->em);
  154.             $aReturnWebServicesValidateAccount json_decode($jsonReturn->getContent(), true);
  155.             if ($aReturnWebServicesValidateAccount['error']['ConnexioConnectAxess']
  156.                 && $aReturnWebServicesValidateAccount['error']['ValidateAccount']) 
  157.             {
  158.                 $aParams = array(
  159.                     'customer_id_num'   => $aReturnWebServicesValidateAccount['aCustomerAccount']['NPERSPERSNO'],
  160.                     'customer_id_pos'   => $aReturnWebServicesValidateAccount['aCustomerAccount']['NPERSPOSNO'],
  161.                     'customer_id_proj'  => $aReturnWebServicesValidateAccount['aCustomerAccount']['NPERSPROJNO'],
  162.                     'historic'          => 0);
  163.                 $enConsumers $this->em->getRepository(Consumers::class)->findBy($aParams);
  164.             }
  165.         }
  166.         /*
  167.         $aParams = array('email' => $aRequest->get('email'),
  168.             'clau' => $aRequest->get('clau'),
  169.             'tipus' => 'Pagador');
  170.         $enConsumers = $this->em->getRepository(Consumers::class)->findBy($aParams);
  171.         */
  172.         if (!$enConsumers)
  173.         {
  174.             $this->session->getFlashBag()->add('error'$this->translator->trans("El correu o/i la clau no són correctes."));
  175.             return $this->render('abonaments_temporada.html.twig', array(    
  176.                 'enSidebar'     => $this->enSidebar[0],
  177.                 'enGeneral'     => $this->enGeneral,
  178.                 'enSponsors'    => $this->enSponsors));
  179.         } else {
  180.             $this->session->set('sessConsumer_id'$enConsumers[0]->getID());
  181.             return $this->area_privada_dadesAction($peticion);
  182.         }
  183.     }
  184.     public function area_privada_dadesAction(Request $peticion)
  185.     {
  186.         $aRequest $peticion->request;
  187.         if ($this->session->get('sessConsumer_id'))
  188.         {
  189.             $enConsumers $this->em->getRepository(Consumers::class)->find($this->session->get('sessConsumer_id'));
  190.             if (!$enConsumers)
  191.             {
  192.                 $this->session->getFlashBag()->add('error'$this->translator->trans("El correu o/i la clau no són correctes."));
  193.                 return $this->render('abonaments_temporada.html.twig', array(
  194.                     'enSidebar'     => $this->enSidebar[0],
  195.                     'enGeneral'     => $this->enGeneral,
  196.                     'enSponsors'    => $this->enSponsors
  197.                 ));
  198.             } else {
  199.                 return $this->render('area_privada_dades.html.twig', array(  
  200.                     'enConsumers'   => $enConsumers,
  201.                     'enSidebar'     => $this->enSidebar[0],
  202.                     'enGeneral'     => $this->enGeneral,
  203.                     'enSponsors'    => $this->enSponsors
  204.                 ));
  205.             }
  206.         } else {
  207.             $this->session->getFlashBag()->add('error'$this->translator->trans("El correu o/i la clau no són correctes."));
  208.             return $this->render('abonaments_temporada.html.twig', array(    
  209.                 'enSidebar'     => $this->enSidebar[0],
  210.                 'enGeneral'     => $this->enGeneral,
  211.                 'enSponsors'    => $this->enSponsors
  212.             ));
  213.         }
  214.     }
  215.     public function area_privada_update_ConsumerAction(Request $peticion)
  216.     {
  217.         $aRequest $peticion->request;
  218.         if ($this->session->get('sessConsumer_id'))
  219.         {
  220.             $enConsumers $this->em->getRepository(Consumers::class)->find($this->session->get('sessConsumer_id'));
  221.             if ($enConsumers)
  222.             {
  223.                 $jsonResposta $this->forward('App\Controller\WebServicesController::altaModificacioConsumersAxessAction', array(
  224.                     'aDades'            => $aRequest->all(),
  225.                     'aNoValidacionsDe'  => array('EmailClientExists'),
  226.                     'aDadesUpdate'      => array(
  227.                         'iIdEntorno'        => $this->session->get('sessConsumer_id'),
  228.                         'ConsumerIdProj'    => $enConsumers->getCustomerIdProj(),
  229.                         'ConsumerIdPos'     => $enConsumers->getCustomerIdPos(),
  230.                         'ConsumerIdNum'     => $enConsumers->getCustomerIdNum(),
  231.                     )));
  232.                 $aResposta json_decode($jsonResposta->getContent(), true);
  233.                 if ($aResposta['error']['AltaModificacioAxess'])
  234.                 {
  235.                     $enConsumers->setNom($aRequest->get('nom'));
  236.                     $enConsumers->setCognom1($aRequest->get('cognom1'));
  237.                     $enConsumers->setCognom2($aRequest->get('cognom2'));
  238.                     $enConsumers->setDireccio($aRequest->get('direccio'));
  239.                     $enConsumers->setCp($aRequest->get('cp'));
  240.                     $enConsumers->setPoblacio($aRequest->get('poblacio'));
  241.                     $dateTime = new \DateTime();
  242.                     $enConsumers->setDataNaixement($dateTime->setTimestamp(strtotime($aRequest->get('data_naixement'))));
  243.                     $enConsumers->setTelefon($aRequest->get('telefon'));
  244.                     $enConsumers->setEmail($aRequest->get('email'));
  245.                     $enConsumers->setDni($aRequest->get('dni'));
  246.                     if ($aRequest->get('clau') != ''$enConsumers->setClau($aRequest->get('clau'));
  247.                     /*
  248.                     $enConsumers->setNomEmpresa($aRequest->get('nomEmpresa'));
  249.                     $enConsumers->setNifEmpresa($aRequest->get('nifEmpresa'));
  250.                     $enConsumers->setDireccioEmpresa($aRequest->get('direccioEmpresa'));
  251.                     $enConsumers->setCpEmpresa($aRequest->get('cpEmpresa'));
  252.                     $enConsumers->setPoblacioEmpresa($aRequest->get('poblacioEmpresa'));
  253.                     $enConsumers->setProvinciaEmpresa($aRequest->get('provinciaEmpresa'));
  254.                     */
  255.                     $enConsumers->setOrigenEntrada('Modi Entor');
  256.                     $this->em->persist($enConsumers);
  257.                     $this->em->flush();
  258.                     $this->session->getFlashBag()->add('info'$this->translator->trans("Les dades s'han actualitzat correctament"));
  259.                 } else {
  260.                     $this->session->getFlashBag()->add('error'$this->translator->trans("Les dades no s'han actualitzat. Poseu-vos en contacte amb nosaltres."));
  261.                 }
  262.             } else {
  263.                 $this->session->getFlashBag()->add('error'$this->translator->trans("Les dades no s'han actualitzat. Poseu-vos en contacte amb nosaltres."));
  264.             }
  265.         } else {
  266.             $this->session->getFlashBag()->add('error'$this->translator->trans("Les dades no s'han actualitzat. Poseu-vos en contacte amb nosaltres."));
  267.         }
  268.         return $this->area_privada_dadesAction($peticion);
  269.     }
  270.     /**
  271.      * Alta/modificació de client
  272.      * 
  273.      * @param Request $peticion
  274.      * @return type
  275.      */
  276.     
  277.     public function altaModificacioClientAction(Request $peticion$aElements)
  278.     {
  279.         $aRequest $peticion->request;
  280.         if (key_exists('cli_id'$aElements))
  281.         {
  282.             $enConsumers $this->em->getRepository(Consumers::class)->find($aElements['cli_id']);
  283.         } else {
  284.             //////////////////////////////////
  285.             // Si no existeix creem el client
  286.             //////////////////////////////////
  287.             $enConsumers =  new Consumers();
  288.         }
  289.         $dateTime = new \DateTime();
  290.         if (key_exists('nom'$aElements)) $enConsumers->setNom($aElements['nom']);
  291.         if (key_exists('cognom1'$aElements)) $enConsumers->setCognom1($aElements['cognom1']);
  292.         if (key_exists('cognom2'$aElements)) $enConsumers->setCognom2($aElements['cognom2']);
  293.         if (key_exists('direccio'$aElements)) $enConsumers->setDireccio($aElements['direccio']);
  294.         if (key_exists('cp'$aElements)) $enConsumers->setCp($aElements['cp']);
  295.         if (key_exists('poblacio'$aElements)) $enConsumers->setPoblacio($aElements['poblacio']);
  296.         if (key_exists('datanaixement'$aElements)) $enConsumers->setDataNaixement($dateTime->setTimestamp(strtotime($aElements['datanaixement'])));
  297.         if (key_exists('telefon'$aElements)) $enConsumers->setTelefon($aElements['telefon']);
  298.         if (key_exists('email'$aElements)) $enConsumers->setEmail($aElements['email']);
  299.         if (key_exists('dni'$aElements)) $enConsumers->setDni($aElements['dni']);
  300.         if (key_exists('familia4i'$aElements)) $enConsumers->setFamilia4i($aElements['familia4i']);
  301.         //////////////////////////////////////////////
  302.         // si ja existeix el client no generem la clau
  303.         //////////////////////////////////////////////
  304.         if (!key_exists('cli_id'$aElements)) $enConsumers->setClau($this->objUtil->texto_aleatorio());
  305.         if (key_exists('nom_empresa'$aElements)) $enConsumers->setNomEmpresa($aElements['nom_empresa']);
  306.         if (key_exists('nif_empresa'$aElements)) $enConsumers->setNifEmpresa($aElements['nif_empresa']);
  307.         if (key_exists('direccio_empresa'$aElements)) $enConsumers->setDireccioEmpresa($aElements['direccio_empresa']);
  308.         if (key_exists('cp_empresa'$aElements)) $enConsumers->setCpEmpresa($aElements['cp_empresa']);
  309.         if (key_exists('poblacio_empresa'$aElements)) $enConsumers->setPoblacioEmpresa($aElements['poblacio_empresa']);
  310.         if (key_exists('origenEntrada'$aElements)) $enConsumers->setOrigenEntrada($aElements['origenEntrada']);
  311.         if (key_exists('usuariId'$aElements))
  312.         {
  313.             $enUsuari $this->em->getRepository(Usuari::class)->find($aElements['usuariId']);
  314.             $enConsumers->setUsuari($enUsuari);
  315.         }
  316.         $this->em->persist($enConsumers);
  317.         $this->em->flush();
  318.         $id $enConsumers->getId();
  319.         
  320.         return new response($id);
  321.     }
  322.     public function area_privada_consumersAction(Request $peticion)
  323.     {
  324.         $aRequest $peticion->request;
  325.         if ($this->session->get('sessConsumer_id'))
  326.         {
  327.             $enConsumers $this->em->getRepository(Consumers::class)->find($this->session->get('sessConsumer_id'));
  328.             if (!$enConsumers)
  329.             {
  330.                 $this->session->getFlashBag()->add('error'$this->translator->trans("El correu o/i la clau no són correctes."));
  331.                 return $this->render('abonaments_temporada.html.twig', array());
  332.             }
  333.             $enConsumersHasConsumers $this->em->getRepository(Consumers::class)->getConsumersOfConsumer($this->session->get('sessConsumer_id'));
  334.             return $this->render('area_privada_consumers.html.twig', array(
  335.                 "enConsumers"               => $enConsumers,
  336.                 "enConsumersHasConsumers"   => $enConsumersHasConsumers,
  337.                 "enSidebar"                 => $this->enSidebar[0],
  338.                 'enGeneral'                 => $this->enGeneral,
  339.                 'enSponsors'                => $this->enSponsors
  340.             ));
  341.         } else {
  342.             $this->session->getFlashBag()->add('error'$this->translator->trans("El correu o/i la clau no són correctes."));
  343.             return $this->render('abonaments_temporada.html.twig', array(
  344.                 "enSidebar" => $this->enSidebar[0],
  345.                 'enGeneral' => $this->enGeneral,
  346.                 'enSponsors'=> $this->enSponsors));
  347.         }
  348.     }
  349.     public function area_privada_comandesAction(Request $peticion)
  350.     {
  351.         $aRequest $peticion->request;
  352.         if ($this->session->get('sessConsumer_id'))
  353.         {
  354.             $enConsumers $this->em->getRepository(Consumers::class)->find($this->session->get('sessConsumer_id'));
  355.             if (!$enConsumers)
  356.             {
  357.                 $this->session->getFlashBag()->add('error'$this->translator->trans("El correu o/i la clau no són correctes."));
  358.                 return $this->render('abonaments_temporada.html.twig', array(
  359.                     'enSidebar' => $this->enSidebar[0],
  360.                     'enGeneral' => $this->enGeneral,
  361.                     'enSponsors'=> $this->enSponsors));
  362.             }
  363.             
  364.             $enComandes $this->em->getRepository(Comandes::class)->findBy(
  365.                 array(
  366.                     'Consumers'   => $enConsumers),
  367.                 array(
  368.                     'id'=>'DESC'));
  369.             $aComandes = array();
  370.             $iCon 0;
  371.             foreach ($enComandes as $key => $val)
  372.             {
  373.                 $enComandesLinies $this->em->getRepository(ComandesLinies::class)->findBy(array('comandes' => $val->getId()));
  374.                 foreach ($enComandesLinies as $key2 => $val2)
  375.                 {
  376.                     $aComandes[$iCon]['data'] = $val->getData();
  377.                     $aComandes[$iCon]['localitzador'] = $val->getLocalitzador();
  378.                     $aComandes[$iCon]['detall'] = $val2->getDetall();
  379.                     $aComandes[$iCon]['suplement'] = $val2->getSuplement();
  380.                     $aComandes[$iCon]['abonat'] = $val2->getCognom1() . ' ' $val2->getCognom2() . ', ' $val2->getNom();
  381.                     $aComandes[$iCon]['total'] = $val2->getTotal();
  382.                     $aComandes[$iCon]['descompte'] = $val2->getDescompte();
  383.                     switch ($val->getEstat())
  384.                     {
  385.                         case "0":
  386.                             $aComandes[$iCon]['estat'] = $this->translator->trans("Pendent");
  387.                             break;
  388.                         case "1":
  389.                             $aComandes[$iCon]['estat'] = $this->translator->trans("Pagat");
  390.                             break;
  391.                         case "2":
  392.                             $aComandes[$iCon]['estat'] = $this->translator->trans("Anulat");
  393.                             break;
  394.                     }
  395.                     $iCon++;
  396.                 }
  397.             }
  398.             return $this->render('area_privada_comandas.html.twig', array(
  399.                 "enComandes"        => $enComandes,
  400.                 "enComandesLinies"  => $enComandesLinies,
  401.                 "aComandes"         => $aComandes,
  402.                 "enSidebar"         => $this->enSidebar[0],
  403.                 'enGeneral'         => $this->enGeneral,
  404.                 'enSponsors'        => $this->enSponsors
  405.             ));
  406.         } else {
  407.             $this->session->getFlashBag()->add('error'$this->translator->trans("El correu o/i la clau no són correctes."));
  408.             return $this->render('abonaments_temporada.html.twig', array(
  409.                 "enSidebar"=> $this->enSidebar[0]
  410.             ));
  411.         }
  412.     }
  413.     
  414.     public function area_privada_recordarAction(Request $peticion)
  415.     {
  416.         $aAttributes $peticion->attributes;
  417.         $aRequest $peticion->request;
  418.         $sEmail '';
  419.         if ($aRequest->has('email'))
  420.         {
  421.             $sEmail $aRequest->get('email');
  422.         }
  423.         if ($aAttributes->has('email'))
  424.         {
  425.             $sEmail $aAttributes->get('email');
  426.         }
  427.         if ($sEmail != '')
  428.         {
  429.             /*
  430.             $aParams = array(   'email'     => $sEmail,
  431.                                 'historic'  => 0);
  432.             $enConsumers = $this->em->getRepository(Consumers::class)->findBy($aParams);
  433.             if (!$enConsumers)
  434.             {
  435.                 $this->session->getFlashBag()->add('error', $this->translator->trans("No existeix el mail indicat"));
  436.             } else {
  437.                 
  438.                 $sMensaje = $this->translator->trans("RECORDATORI DE DADES D'ACCÉS") . "\n";
  439.                 $sMensaje .= $this->translator->trans("Li recordem les seves dades d'accés :") . "\n\n";
  440.                 $sMensaje .= $this->translator->trans("E.mail:") . $enConsumers[0]->getEmail() . "\n\n";
  441.                 $sMensaje .= $this->translator->trans("Clau:") . $enConsumers[0]->getClau() . "\n\n";
  442.                 $this->phpmailer->EnviarAction(array(
  443.                     'sSubjecte' => $this->translator->trans("Recordar clau"),
  444.                     'sFrom'     => $this->getParameter('EMAIL_RESERVAS'),
  445.                     'sTo'       => $enConsumers[0]->getEmail(),
  446.                     //'sTo'       => $this->getParameter('EMAIL_NEWSLETTER'),
  447.                     //'sCc'       => $this->params->get('EMAIL_ERRORES'),
  448.                     'sMissatge' => $sMensaje,
  449.                 ));
  450.             
  451.                 $this->session->getFlashBag()->add('info', $this->translator->trans("Se li ha enviat la seva clau al seu mail"));
  452.             }
  453.             */
  454.             $aError['ConnexioConnectAxess'] = false;
  455.             $aError['LogoutConnexioConnectAxess'] = false;
  456.             $aError['ResetPassword'] = false;
  457.             $sMissatgeAxess '';
  458.             $objWebServicesConnectAxess = new WebServicesAxessConnectController();
  459.             /////////////////////////////////////////////////////////////////////////////////////
  460.             /// Quan la cridem com una classe no te accés al getParameter, així li passem el valor
  461.             /////////////////////////////////////////////////////////////////////////////////////
  462.             $objWebServicesConnectAxess->setEnviroments($this->getParameter('kernel.environment'));
  463.             $objWebServicesConnectAxess->setObjContainer($this);
  464.             $objWebServicesConnectAxess->setObjGetMailer($this->phpmailer);
  465.             $jsonReturn $objWebServicesConnectAxess->wsThirdPartyLogin();
  466.             $aReturn json_decode($jsonReturn->getContent(), true);
  467.             if ($aReturn['error']['code'] == 0
  468.                 && $aReturn['valors']['NERRORNO'] == 0)
  469.             {
  470.                 $NSESSIONID $aReturn['valors']['NSESSIONID'];
  471.                 $aError['ConnexioConnectAxess'] = true;
  472.                 $sUrl $this->sUrlRecuperacioClau $sEmail;
  473.                 $sMissatge $this->translator->trans("Benvolgut/da,") . ':<br>';
  474.                 $sMissatge .= $this->translator->trans("Per canviar la contrasenya de la teva àrea privada d’usuari de la web www.masella.com, que et dona accés a la compra d’abonaments, de classes de esquí, de forfets de dia i de promocions, clica l’enllaç i escriu la teva nova contrasenya.") . '<br>';
  475.                 $sMissatge .= $this->translator->trans("Un cop restablerta la contrasenya torna a l’àrea privada d’usuari de www.masella.com per continuar.") . '<br>';
  476.                 $sMissatge .= '<br>' '<a href="' $sUrl '">' $sUrl '</a><br><br>';
  477.                 $sMissatge .= $this->translator->trans("Bones esquiades.") . ':<br>';
  478.                 $sMissatge .= $this->translator->trans("Estació d’Esquí de Masella") . ':<br>';
  479.                 $sMissatge .= '<a href="https://www.masella.com">www.masella.com</a><br>';
  480.                 $aElements = array( 'i_nSessionID'      => $NSESSIONID,
  481.                                     'i_szUserName'      => $sEmail,
  482.                                     'i_szEMail'         => $sEmail,
  483.                                     'i_szEmailSubject'  => $this->translator->trans("Recuperació de clau"),
  484.                                     'i_szEmailBody'     => $sMissatge,
  485.                                     'i_szFirstName'     => '',
  486.                                     'i_szLastName'      => '',
  487.                                     'i_szBirthDate'     => '',
  488.                 );
  489.                 $jsonReturn $objWebServicesConnectAxess->wsResetPasswordAction($aElements);
  490.                 $aReturnResetPassword json_decode($jsonReturn->getContent(), true);
  491.                 if ($aReturnResetPassword['error']['code'] == 0
  492.                     && $aReturnResetPassword['valors']['NERRORNO'] == 0)
  493.                 {
  494.                     $aError['ResetPassword'] = true;
  495.                     $this->session->getFlashBag()->add('info'$this->translator->trans("Se li ha enviat al seu mail les instruccions per restablir la clau"));
  496.                 } else {
  497.                     if ($aReturnResetPassword['valors']['NERRORNO'] == -11)
  498.                     {
  499.                         $aError['ResetPassword'] = true;
  500.                         $this->session->getFlashBag()->add('warning'$this->translator->trans("No existeix el mail indicat"));
  501.                     } else {
  502.                         $aError['ResetPassword'] = false;
  503.                         $sMissatgeAxess "Error resetPassword webservices" "\n";
  504.                         $sMissatgeAxess .= print_r($aReturntrue);
  505.                     }
  506.                 }
  507.                 ///////////////////////
  508.                 /// Tanquem la connexió
  509.                 ///////////////////////
  510.                 $jsonReturn $objWebServicesConnectAxess->wsLogoutAction($NSESSIONID);
  511.                 $aReturn json_decode($jsonReturn->getContent(), true);
  512.                 if ($aReturn['error']['code'] != 0
  513.                     || $aReturn['valors']['NERRORNO'] != 0)
  514.                 {
  515.                     $sMissatgeAxess "Error logout webservices" "\n";
  516.                     $sMissatgeAxess .= print_r($aReturn,true);
  517.                     $aError['LogoutConnexioConnectAxess'] = false;
  518.                 } else {
  519.                     $aError['LogoutConnexioConnectAxess'] = true;
  520.                 }
  521.             } else {
  522.                 $aError['ConnexioConnectAxess'] = false;
  523.                 $sMissatgeAxess "Error login webservices" "\n";
  524.                 $sMissatgeAxess .= print_r($aReturn,true);
  525.             }
  526.             if (!$aError['ConnexioConnectAxess']
  527.                 || !$aError['LogoutConnexioConnectAxess']
  528.                 || !$aError['ResetPassword'])
  529.             {
  530.                 $this->phpmailer->EnviarAction(array(
  531.                     'sSubjecte' => "Error area_privada_recordar webservices DCI4ConnectCRM",
  532.                     'sFrom'     => $this->getParameter('EMAIL_RESERVAS'),
  533.                     'sTo'       => $this->getParameter('EMAIL_ERRORES'),
  534.                     //'sTo'       => $this->getParameter('EMAIL_NEWSLETTER'),
  535.                     //'sCc'       => $this->params->get('EMAIL_ERRORES'),
  536.                     'sMissatge' => $sMissatgeAxess,
  537.                 ));
  538.                 $this->session->getFlashBag()->add('warning'$this->translator->trans("Error inesperat; torneu-ho a provar en uns minuts"));
  539.             }
  540.         }    
  541.         return $this->render('area_privada_recordar.html.twig', array(
  542.             'enSidebar' => $this->enSidebar[0],
  543.             'enGeneral' => $this->enGeneral,
  544.             'enSponsors'=> $this->enSponsors
  545.         ));
  546.     }
  547.     
  548.     public function documentDeteleAction(Request $peticion)
  549.     {
  550.         $aRequest $peticion->attributes;
  551.         $enConsumers $this->em->getRepository(Consumers::class)->find($aRequest->get('id'));
  552.         //$path = $this->get('kernel')->getRootDir() . '/public/uploads/consumers/';
  553.         $path $this->sPathUploads 'consumers/';
  554.         $sFunctionName 'get' ucfirst($aRequest->get('tipo'));
  555.         $sRutaImatge $path $enConsumers->$sFunctionName();
  556.         if (file_exists($sRutaImatge))
  557.         {
  558.             unlink($sRutaImatge);
  559.         }
  560.             
  561.         $sFunctionName 'set' ucfirst($aRequest->get('tipo'));
  562.         $enConsumers->$sFunctionName(null);
  563.         $this->em->persist($enConsumers);
  564.         $this->em->flush();
  565.         
  566.         return $this->area_privada_consumersAction($peticion);
  567.     }
  568.     public function insertDocumentsAction(Request $peticion)
  569.     {
  570.         $aRequest $peticion->request;
  571.         $aFotoAllowed = array(
  572.             "image/jpeg",
  573.             "image/gif",
  574.             "image/png",
  575.             "image/tiff"
  576.         );
  577.         $aDocumentAllowed = array(
  578.             "application/pdf",
  579.             "application/x-pdf",
  580.             "application/vnd.oasis.opendocument.text",
  581.             "application/msword",
  582.             "image/jpeg",
  583.             "image/gif",
  584.             "image/png",
  585.             "image/tiff"
  586.         );
  587.         ////////////////////////////////////////
  588.         // devuelve el tipo mime de su extensión
  589.         ////////////////////////////////////////
  590.         $finfo finfo_open(FILEINFO_MIME_TYPE);
  591.         if ($aRequest->has('id'))
  592.         {
  593.             foreach($aRequest->all('id') as $key => $val)
  594.             {
  595.                 $enConsumers $this->em->getRepository(Consumers::class)->find($val);
  596.                 $bFotoCorrecta true;
  597.                 if ($peticion->files->get('foto_' $val) != '')
  598.                 {
  599.                     $file $peticion->files->get('foto_' $val);
  600.                     if (in_array(finfo_file($finfo$file), $aFotoAllowed))
  601.                     {
  602.                         $enConsumers->setImatgeAux($file);
  603.                     } else {
  604.                         $bFotoCorrecta false;
  605.                         $this->session->getFlashBag()->add('error'$this->translator->trans("El format d'alguna imatge no és correcte: formats permesos(jpeg, gif, png, tiff)"));
  606.                     }
  607.                 }
  608.                if ($peticion->files->get('document_' $val) != '')
  609.                 {
  610.                     $document $peticion->files->get('document_' $val);
  611.                     if (in_array(finfo_file($finfo$document), $aDocumentAllowed))
  612.                     {
  613.                         $enConsumers->setDocumentoAux($document);
  614.                     } else {
  615.                         $this->session->getFlashBag()->add('error'$this->translator->trans("El format d'alguns documents no és correcte: formats permesos(pdf, x-pdf, text, msword, jpeg, gif, png, tiff)"));
  616.                     }
  617.                 }
  618.                 $this->em->persist($enConsumers);
  619.                 $this->em->flush();
  620.                 
  621.                 if ($peticion->files->get('foto_' $val) != '' && $bFotoCorrecta)
  622.                 {
  623.                     $enConsumers $this->em->getRepository(Consumers::class)->find($val);
  624.                     ////////////////////////////////////////////////////
  625.                     // Actualitzem la foto a Axcess si te id de consumer
  626.                     ////////////////////////////////////////////////////
  627.                     if ($enConsumers->getCustomerIdProj() != ''
  628.                         && $enConsumers->getCustomerIdPos() != ''
  629.                         && $enConsumers->getCustomerIdNum() != '')
  630.                     {
  631.                         $aElements['Foto'] = $enConsumers->getImatge();
  632.                         $aElements['ConsumerIdProj'] = $enConsumers->getCustomerIdProj();
  633.                         $aElements['ConsumerIdPos'] = $enConsumers->getCustomerIdPos();
  634.                         $aElements['ConsumerIdNum'] = $enConsumers->getCustomerIdNum();
  635.                         $jsonResposta $this->forward('App\Controller\WebServicesController::createFotoAxessAction', array(
  636.                             'aElements'   => $aElements
  637.                         ));
  638.                         $aResposta json_decode($jsonResposta->getContent(), true);
  639.                         if ($aResposta['error'] == 0)
  640.                         {
  641.                             $sMissatge "L'abonat " $enConsumers->getNom() . ' ' $enConsumers->getCognom1() . ' ' $enConsumers->getCognom2() . ' amb el codi ' $enConsumers->getId() . ' ha modificat la foto.';
  642.                             $this->phpmailer->EnviarAction(array(
  643.                                 'sSubjecte' => "Modificació de foto d'abonat en àrea de client",
  644.                                 'sFrom'     => $this->getParameter('EMAIL_RESERVAS'),
  645.                                 'sTo'       => $this->getParameter('EMAIL_ERRORES'),
  646.                                 //'sTo'       => $this->getParameter('EMAIL_RESERVAS'),
  647.                                 'sCc'       => $this->getParameter('EMAIL_ERRORES'),
  648.                                 'sMissatge' => $sMissatge,
  649.                             ));
  650.                         } else {
  651.                             $sMissatge '\n\nATENCIÓ HI HA HAGUT UN ERROR. Modificació de foto en la àrea de Consumers part pùblicar';
  652.                             $sMissatge .= print_r($aRequesttrue) . '<br>' print_r($aRespostatrue);
  653.                             $this->phpmailer->EnviarAction(array(
  654.                                 'sSubjecte' => "Modificació de client en àrea de client part pùblica",
  655.                                 'sFrom'     => $this->getParameter('EMAIL_RESERVAS'),
  656.                                 'sTo'       => $this->getParameter('EMAIL_ERRORES'),
  657.                                 'sMissatge' => $sMissatge,
  658.                             ));
  659.                         }
  660.                     }
  661.                 }                
  662.             }
  663.         }
  664.         finfo_close($finfo);
  665.         return $this->area_privada_consumersAction($peticion);
  666.     }
  667.     
  668.     public function check_exist_dniAction(Request $peticion$dni$con_id null)
  669.     {
  670.         $aRequest $peticion->request;
  671.         $sQuery "SELECT c.id as con_id "
  672.         " FROM App:Consumers c"
  673.         " WHERE c.dni = :dni";
  674.         $sQuery .= ' AND c.historic != 1';
  675.         if (!is_null($con_id))
  676.         {
  677.             $sQuery .= ' AND c.id != :con_id';
  678.         }
  679.         
  680.         $query $this->em->createQuery($sQuery);
  681.         
  682.         $query->setParameter('dni'$dni);
  683.         if (!is_null($con_id))
  684.         {
  685.             $query->setParameter('con_id'$con_id);
  686.         }
  687.         
  688.         $enConsumers $query->getResult();
  689.         
  690.         if (!$enConsumers)
  691.         {
  692.             $blRequest 0;
  693.         } else {
  694.             $blRequest 1;
  695.         }
  696.         return new response($blRequest);
  697.     }
  698.     
  699.     public function check_exist_emailAction(Request $peticion$email$con_id null)
  700.     {
  701.         $aRequest $peticion->request;
  702.         $sQuery "SELECT c.id as con_id "
  703.         " FROM App:Consumers c"
  704.         " WHERE c.email = :email";
  705.         $sQuery .= ' AND c.historic != :historic';
  706.         if (!is_null($con_id))
  707.         {
  708.             $sQuery .= ' AND c.id != :con_id';
  709.         }
  710.         
  711.         $query $this->em->createQuery($sQuery);
  712.         
  713.         $query->setParameter('email'$email);
  714.         if (!is_null($con_id))
  715.         {
  716.             $query->setParameter('con_id'$con_id);
  717.         }
  718.         $query->setParameter('historic'1);
  719.         $enConsumers $query->getResult();
  720.         if (!$enConsumers)
  721.         {
  722.             $Consumer_id_Proj null;
  723.             $Consumer_id_Pos null;
  724.             $Consumer_id_Num null;
  725.             /////////////////////////////////////////////////////////
  726.             /// Comprovem si existeix a la base de dades de sqlServer
  727.             /////////////////////////////////////////////////////////
  728.             if (!is_null($con_id))
  729.             {
  730.                 $enConsumers $this->em->getRepository(Consumers::class)->find($con_id);
  731.                 if ($enConsumers)
  732.                 {
  733.                     $Consumer_id_Proj $enConsumers->getCustomerIdProj();
  734.                     $Consumer_id_Pos $enConsumers->getCustomerIdPos();
  735.                     $Consumer_id_Num $enConsumers->getCustomerIdNum();
  736.                 }
  737.             }
  738.             $aAux['container'] = $this;
  739.             $aAux['mailer'] = $this->phpmailer;
  740.             $aAux['texto_aleatorio'] = $this->objUtil->texto_aleatorio();
  741.             $objProcessosController = new ProcessosController($this->em$this->phpmailer);
  742.             $bRespostaSqlServer $objProcessosController->check_email_sqlserver($email$Consumer_id_Proj$Consumer_id_Pos$Consumer_id_Num$aAux);
  743.             $blRequest $bRespostaSqlServer;
  744.         } else {
  745.             $blRequest 1;
  746.         }
  747.         return new response($blRequest);
  748.     }
  749.     public function check_exist_consumerAction(Request $peticion$aParams$con_id null)
  750.     {
  751.         $aRequest $peticion->request;
  752.         $sQuery "SELECT c.id as con_id ";
  753.         $sQuery .= " FROM App:Consumers c";
  754.         $sQuery .= " WHERE 1=1 ";
  755.         $sQuery .= ' AND c.historic != 1';
  756.         if (!is_null($aParams['Nombre']))
  757.         {
  758.             $sQuery .= " AND c.nom = :nom";
  759.         }
  760.         if (!is_null($aParams['cognom1']))
  761.         {
  762.             $sQuery .= " AND c.cognom1 = :cognom1";
  763.         }
  764.         if (!is_null($aParams['cognom2']))
  765.         {
  766.             $sQuery .= " AND (c.cognom2 = :cognom2";
  767.             if ($aParams['cognom2'] == '')
  768.             {
  769.                 $sQuery .= " OR c.cognom2 is null";
  770.             }
  771.             $sQuery .= " )";
  772.         }
  773.         if (!is_null($aParams['dataNaixement']))
  774.         {
  775.             $sQuery .= " AND c.data_naixement = :data_naixement";
  776.         }
  777.         if (!is_null($con_id))
  778.         {
  779.             $sQuery .= ' AND c.id != :con_id';
  780.         }
  781.         $query $this->em->createQuery($sQuery);
  782.         if (!is_null($con_id))
  783.         {
  784.             $query->setParameter('con_id'$con_id);
  785.         }
  786.         if (!is_null($aParams['Nombre']))
  787.         {
  788.             $query->setParameter('nom'$aParams['Nombre']);
  789.         }
  790.         if (!is_null($aParams['cognom1']))
  791.         {
  792.             $query->setParameter('cognom1'$aParams['cognom1']);
  793.         }
  794.         if (!is_null($aParams['cognom2']))
  795.         {
  796.             $query->setParameter('cognom2'$aParams['cognom2']);
  797.         }
  798.         if (!is_null($aParams['dataNaixement'])) {
  799.             $query->setParameter('data_naixement'$aParams['dataNaixement']);
  800.         }
  801.         $enConsumers $query->getResult();
  802.         if (!$enConsumers)
  803.         {
  804.             $blRequest 0;
  805.         } else {
  806.             $blRequest $enConsumers[0]['con_id'];
  807.         }
  808.         return new response($blRequest);
  809.     }
  810.     public function getWtpAction(Request $peticion$id)
  811.     {
  812.         $sWTP '*';
  813.         //////////////////////////////////////////
  814.         /// Consultem si te WTP a la mateixa fitxa
  815.         //////////////////////////////////////////
  816.         $enConsumers $this->em->getRepository(Consumers::class)->find($id);
  817.         if ($enConsumers)
  818.         {
  819.             if (!is_null($enConsumers->getWtp())
  820.                 && $enConsumers->getWtp() != '')
  821.             {
  822.                 $sWTP $enConsumers->getWtp();
  823.             }
  824.         }
  825.         if ($sWTP == '*')
  826.         {
  827.             $aParam['consumers'] = $id;
  828.             $objConsumersAmbXip $this->em->getRepository(Consumers::class)->getWTPConsumers($aParam);
  829.             if ($objConsumersAmbXip)
  830.             {
  831.                 $sWTP $objConsumersAmbXip[0]['xip'];
  832.             }
  833.         }
  834.         return new response($sWTP);
  835.     }
  836.     
  837.     public function checkWtpAction(Request $peticion$sWtp)
  838.     {
  839.         $bReturn '*';
  840.         //////////////////////////////////////////
  841.         /// Consultem si te WTP a la mateixa fitxa
  842.         //////////////////////////////////////////
  843.         $aParams = array(   'wtp'     => $sWtp);
  844.         $enConsumers $this->em->getRepository(Consumers::class)->findBy($aParams);
  845.         if ($enConsumers)
  846.         {
  847.             $bReturn 1;
  848.         }
  849.         if ($bReturn == '*')
  850.         {
  851.             $aParam['xip'] = $sWtp;
  852.             $objAbonatsAmbXip $this->em->getRepository(Consumers::class)->checkWTP($aParam);
  853.             if ($objAbonatsAmbXip)
  854.             {
  855.                 $bReturn 1;
  856.             }
  857.         }
  858.         return new response($bReturn);
  859.     }
  860.     
  861.     /**
  862.      * Creem l'abonat principal del client amb les dades del client
  863.      * 
  864.      * @param Request $peticion
  865.      * @param type $aValues
  866.      * @return \App\Controller\response
  867.      */
  868.     public function addAbonatByClientAction(Request $peticion$aValues)
  869.     {
  870.         $enConsumers $this->em->getRepository(Consumers::class)->find($aValues['cli_id']);
  871.         /////////////////////////////
  872.         // Guardem la foto físicament
  873.         /////////////////////////////
  874.         $sNomFoto '';
  875.         if (key_exists('foto'$aValues
  876.                 && $aValues['foto'] != '')
  877.         {
  878.             $sNomFoto $this->objUtil->texto_aleatorio() . '_' $enConsumers->getId() . '.png';
  879.             $this->get('util')->guardaImatge($aValues['path'] . $sNomFoto$aValues['foto']);
  880.         }    
  881.         //////////////////////////
  882.         // Creem abonat del client
  883.         //////////////////////////
  884.         $enAbonats = new Abonats();
  885.         $enAbonats->setNom($aValues['nom']);
  886.         $enAbonats->setCognom1($aValues['cognom1']);
  887.         $enAbonats->setCognom2($aValues['cognom2']);
  888.         $dateTime = new \DateTime();
  889.         $enAbonats->setDataNaixement($dateTime->setTimestamp(strtotime($aValues['data_naixement'])));
  890.         $enAbonats->setConsumers($enConsumers);
  891.         if (key_exists('IdFamilia'$aValues
  892.                 && $aValues['IdFamilia'] != ''
  893.                 $enAbonats->setFamilia4i($aValues['IdFamilia']);
  894.         
  895.         if (key_exists('origen_entrada'$aValues))
  896.         {
  897.             $enAbonats->setOrigenEntrada($aValues['origen_entrada']);
  898.         }
  899.         if ($sNomFoto != '')
  900.         {
  901.             $enAbonats->setImatge($sNomFoto);
  902.         }
  903.         if (key_exists('consumer_4i'$aValues
  904.                 && $aValues['consumer_4i'] != '')
  905.         {
  906.             $enAbonats->setConsumer4i($aValues['consumer_4i']);
  907.         }
  908.         $this->em->persist($enAbonats);
  909.         $this->em->flush();
  910.         //////////////////////////////////
  911.         // Actualitzaem l'abonat principal
  912.         //////////////////////////////////
  913.         $enConsumers->setAbonat($enAbonats->getId());
  914.         $this->em->persist($enConsumers);
  915.         $this->em->flush();
  916.         
  917.         //return new response($enAbonats->getId());
  918.         return new JsonResponse($enAbonats->getId());
  919.     }
  920.     
  921.     /**
  922.      * Mostra id de l'abonat i del client si es l'abonat principal
  923.      * Això ens serveix per modificar les dades dels dos si cal
  924.      * 
  925.      * @param Request $peticion
  926.      * @param type $iConsumer4i
  927.      * @return \App\Controller\response
  928.      */
  929.     public function checkExistConsumerAction(Request $peticion$iConsumer4i)
  930.     {
  931.         $aResposta = array();
  932.         
  933.         $sQuery "SELECT c.id as cli_id, a.id as abo_id "
  934.         " FROM App:Abonats a LEFT JOIN App:Consumers c WITH a.id = c.abonat"
  935.         " WHERE a.consumer_4i = :consumer_4i";
  936.         $query $this->em->createQuery($sQuery);
  937.         
  938.         $query->setParameter('consumer_4i'$iConsumer4i);
  939.         
  940.         $objAbonats $query->getResult();
  941.         
  942.         if (count($objAbonats) > 0)
  943.         {
  944.             $aResposta $objAbonats
  945.         }
  946.         return new JsonResponse($aResposta);
  947.     }
  948.     
  949.     /**
  950.      * Mostra id de l'abonat i del client si es l'abonat principal
  951.      * Això ens serveix per modificar les dades dels dos si cal
  952.      * 
  953.      * @param Request $peticion
  954.      * @param type $iConsumer4i
  955.      * @return \App\Controller\response
  956.      */
  957.     public function checkExistConsumerByEntornoIdAction(Request $peticion$iAbo_id)
  958.     {
  959.         $aResposta = array();
  960.         
  961.         $sQuery "SELECT c.id as cli_id, a.id as abo_id "
  962.         " FROM App:Abonats a LEFT JOIN App:Consumers c WITH a.id = c.abonat"
  963.         " WHERE a.id = :abo_id";
  964.         $query $this->em->createQuery($sQuery);
  965.         
  966.         $query->setParameter('abo_id'$iAbo_id);
  967.         
  968.         $objAbonats $query->getResult();
  969.         
  970.         if (count($objAbonats) > 0)
  971.         {
  972.             $aResposta $objAbonats
  973.         }
  974.         return new JsonResponse($aResposta);
  975.     }
  976.     
  977.     
  978.     public function getIdClubEsquiAction(Request $peticion$sCode)
  979.     {
  980.         $aResposta 0;
  981.         if ($sCode != '' 
  982.                 && $sCode != '0')
  983.         {
  984.             $sQuery "SELECT u.id "
  985.             " FROM App:Usuari u"
  986.             " WHERE u.codi = :codi";
  987.             $query $this->em->createQuery($sQuery)
  988.                         //->setFirstResult(0)
  989.                         //->setMaxResults(1)
  990.                         ;
  991.             $query->setParameter('codi'$sCode);
  992.             $objUsuari $query->getResult();
  993.             if (count($objUsuari) > 0)
  994.             {
  995.                 $aResposta $objUsuari[0]['id']; 
  996.             }
  997.         }
  998.         return new response($aResposta);
  999.     }
  1000.     function mostrarImatgeAction(Request $peticion)
  1001.     {
  1002.         if ($this->session->get('sessConsumer_id')) {
  1003.             $aFitxer $peticion->attributes;
  1004.             $sFitxer $aFitxer->get('imatge');
  1005.             $enConsumers = new Consumers();
  1006.             $rutaImatge $enConsumers->getUploadRootDir() . '/' $sFitxer;
  1007.             // Crea una nova instància de BinaryFileResponse amb la ruta de la imatge com a paràmetre
  1008.             $response = new BinaryFileResponse($rutaImatge);
  1009.             // Estableix el tipus MIME de la resposta com a imatge/jpeg
  1010.             $response->headers->set('Content-Type''image/jpeg');
  1011.             // Afegeix la capçalera Content-Disposition per indicar que la resposta s'ha de mostrar en el navegador i descarregar amb un nom específic
  1012.             $response->setContentDisposition(ResponseHeaderBag::DISPOSITION_INLINEbasename($rutaImatge));
  1013.             // Retorna la resposta per mostrar la imatge al navegador
  1014.             return $response;
  1015.         } else {
  1016.             return false;
  1017.         }
  1018.     }
  1019.     function mostrarDocumentAction(Request $peticion)
  1020.     {
  1021.         if ($this->session->get('sessConsumer_id'))
  1022.         {
  1023.             $aFitxer $peticion->attributes;
  1024.             $sFitxer $aFitxer->get('document');
  1025.             $enConsumers = new Consumers();
  1026.             $rutaDocument $enConsumers->getUploadRootDir() . '/' $sFitxer;
  1027.             // Crea una nova instància de Response amb el contingut del document com a cos
  1028.             $response = new BinaryFileResponse($rutaDocument);
  1029.             // Estableix el tipus MIME de la resposta en funció de l'extensió del document
  1030.             $mimeTypes = new \Symfony\Component\Mime\MimeTypes();
  1031.             $contentType $mimeTypes->guessMimeType($rutaDocument);
  1032.             $response->headers->set('Content-Type'$contentType);
  1033.             // Afegeix la capçalera Content-Disposition per indicar que la resposta s'ha de mostrar en el navegador i descarregar amb un nom específic
  1034.             $response->setContentDisposition'inline'basename($rutaDocument));
  1035.             // Retorna la resposta per mostrar el document al navegador
  1036.             return $response;
  1037.         } else {
  1038.             return false;
  1039.         }
  1040.     }
  1041.     
  1042. }