src/Controller/ConsumersController.php line 431

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