HEX
Server: Apache
System: Linux clpupre 5.4.0-90-generic #101-Ubuntu SMP Fri Oct 15 20:00:55 UTC 2021 x86_64
User: undanet (1000)
PHP: 7.4.3
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /home/undanet/www//PortalEmpleo/src/Repository/DBConvocatoriaResolucionRepository.php
<?php

namespace PortalEmpleo\Repository;

require __DIR__ . '/../../vendor/autoload.php';
require_once __DIR__ . '/../../bootstrap.php';

use Dotenv\Dotenv;
use PortalEmpleo\Entity\DboConvocatoria;
use PortalEmpleo\Entity\DboConvocatoriaresolucion;
use Doctrine\Common\Collections\Criteria;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;

class DBConvocatoriaResolucionRepository extends AbstractController
{
    private $dotenv;
    private $entityManager;
    private const MAX_PERFILES = 5;
    
    public function __construct()
    {
    }

    private function loadEnv()
    {
        try{
            $dotenv = Dotenv::createImmutable(__DIR__ . "/../../");
            $dotenv->load();

            $em = getEntityManager();
            
            return $em;
        }
        catch (Exception $ex){
            echo $exception->getMessage();
            return null;
        }
    }

    public function obtenerResoluciones($lang, $idConvocatoria)
    {
        try{
            $entityManager = $this->loadEnv();

            if(!isset($idConvocatoria))
            {
                $lperfiles = $entityManager->getRepository(DboConvocatoriaresolucion::class)
                    ->createQueryBuilder('c')
                    ->where('c.baja = false')
                    ->addOrderBy('c.codigoconvocatoria', 'DESC')
                    ->addOrderBy('c.fecharesolucion', 'DESC')
                    ->getQuery()
                    ->execute();
            }
            else
            {
                $lperfiles = $entityManager->getRepository(DboConvocatoriaresolucion::class)
                    ->createQueryBuilder('c')
                    ->where('c.baja = false')
                        ->andWhere('c.codigoconvocatoria = :idconvocatoria')
                    ->setParameter('idconvocatoria', $idConvocatoria)
                    ->getQuery()
                    ->execute();
                
                if (!$lperfiles) {
                    return;
                    /*throw $this->createNotFoundException(
                        'No se encuentran perfils para el usuario con el id'. $idConvocatoria
                    );*/
                }
            }

            /*if($lang)
            {
                $ltraduccionesperfiles = $this->obtenerListaTraducciones($entityManager, "traduccion_perfil", "CodigoPerfil", "Perfil", "Descripcion", $lang, null);

                if($ltraduccionesperfiles)
                {
                    foreach ($lperfiles as $cperfil) {
                        foreach ($ltraduccionesperfiles as $traduccionperfil) {
                            if(($cperfil->getCodigoperfil())->getIdperfil() == $traduccionperfil["CodigoPerfil"])
                            {
                                ($cperfil->getCodigoperfil())->setPerfil($traduccionperfil["Perfil"]);
                                //($cperfil->getCodigoperfil())->setDescripcion($traduccionperfil["Descripcion"]);
                            }
                        }
                    }
                }

                $ltraduccionesrangoexperiencia = $this->obtenerListaTraducciones($entityManager, "traduccion_rangoexperiencia", "CodigoRangoExperiencia", "RangoExperiencia", "Descripcion", $lang, null);
                
                if($ltraduccionesrangoexperiencia)
                {
                    foreach ($lperfiles as $cperfil) {
                        foreach ($ltraduccionesrangoexperiencia as $traduccionrangoexperiencia) {
                            if(($cperfil->getCodigorangoexperiencia())->getIdrangoexperiencia() == $traduccionrangoexperiencia["CodigoRangoExperiencia"])
                            {
                                ($cperfil->getCodigorangoexperiencia())->setRangoexperiencia($traduccionrangoexperiencia["RangoExperiencia"]);
                                //($cperfil->getCodigonivelperfil())->setDescripcion($traduccionnivelperfil["Descripcion"]); ->DboNivelperfil no tiene descripción
                            }
                        }
                    }
                }
            }*/

			$entityManager->getConnection()->close();
			
            return $lperfiles;  //$result; 
        }
        catch (Exception $ex){
            echo $exception->getMessage();
            return null;
        }
    }

    private function obtenerListaTraducciones($em, $nombretablatraduccion, $columnaid, $columnatexto, $columna2, $language, $id)
    {
        try{
            $sql = "SELECT T." . $columnaid . " , T." . $columnatexto . " , T." . $columna2 . " , T.CodigoIdioma FROM " . $nombretablatraduccion . " T WHERE CodigoIdioma = '" . $language . "'";

            if(isset($id))
            {
                $sql = $sql . " AND T." . $columnaid . " = " . $id;
            }

            $rs = $em->getConnection()->query($sql)->fetchAll();

			$entityManager->getConnection()->close();

            return $rs; 
        }
        catch (Exception $ex){
            echo $exception->getMessage();
            return null;
        }
    }

    public function eliminarResolucion($cvtResolucion)
    {
        try
        {
            $entityManager = $this->loadEnv();
            
            $cvtresol = $entityManager->getRepository(DboConvocatoriaresolucion::class)->find($cvtResolucion);

            if (!$cvtresol) {
                throw $this->createNotFoundException(
                    'No se encuentra la convocatoriaResolucion con el id '. $cvtResolucion
                );
            }

            $cvtresol = $cvtresol->setBaja(true);

            $entityManager->merge($cvtresol);
            $entityManager->flush();
            $entityManager->clear();
			$entityManager->getConnection()->close();

            return ($cvtresol->getCodigoconvocatoria())->getIdconvocatoria();
        }
        catch (Exception $ex)
        {
            echo $exception->getMessage();
            return null;
        }
    }

/*
    //hay que hace la funcion de insertar y la de actualizar, el controller las llamará segun corresponda despues de comprobar si ya hay alguno de baja
    public function comprobarCandidatoPerfil($codigocandidato, $codigoperfil)
    {
        try{
            $entityManager = $this->loadEnv();

            $lperfiles = $entityManager->getRepository(DboCandidatoperfil::class)
                ->createQueryBuilder('c')
                ->where('c.codigocandidato = :cdt')
                    ->andWhere('c.codigoperfil = :cprfl')
                ->setParameter('cdt', $codigocandidato)
                ->setParameter('cprfl', $codigoperfil)
                ->getQuery()
                ->execute();

                
            if (!$lperfiles) {
                return false;
            }
            
            return $lperfiles;  //$result; 
        }
        catch (Exception $ex){
            echo $exception->getMessage();
            return null;
        }
    }
    
    public function actualizarCandidatoPerfil($cperfil)
    {
        try
        {
            $entityManager = $this->loadEnv();

            $cdtPerfil = $entityManager->getRepository(DboCandidatoperfil::class)
            ->createQueryBuilder('c')
            ->where('c.codigocandidato = :cdt')
                ->andWhere('c.codigoperfil = :cprfl')
            ->setParameter('cdt', ($cperfil->getCodigocandidato())->getIdcandidato())
            ->setParameter('cprfl', ($cperfil->getCodigoperfil())->getIdperfil())
            ->getQuery()
            ->execute();

            if (!$cdtPerfil) {
                throw $this->createNotFoundException(
                    'No se encuentra el candidatoperfil para el candidato '. ($cperfil->getCodigocandidato())->getIdcandidato() . ' y el perfil ' . ($cperfil->getCodigoperfil())->getIdperfil()
                );
            }

            if(is_array($cdtPerfil))
            {
                $cdtPerfil = reset($cdtPerfil);
            }

            $cdtPerfil = $cdtPerfil->setBaja(false);
            
            $entityManager2 = $this->loadEnv();
            $cdtRngExpe = $entityManager2->getRepository(DboRangoexperiencia::class)->find(($cperfil->getCodigorangoexperiencia())->getIdrangoexperiencia());
            $entityManager2->clear();
            if (!$cdtRngExpe) {
                throw $this->createNotFoundException(
                    'No se encuentra el rango de experiencia con el id '.($cperfil->getCodigorangoexperiencia())->getIdrangoexperiencia()
                );
            }
            $cdtPerfil = $cdtPerfil->setCodigorangoexperiencia2($cdtRngExpe);

            $entityManager->merge($cdtPerfil);
            $entityManager->flush();
            $entityManager->clear();
        }
        catch (Exception $ex)
        {
            echo $exception->getMessage();
        }
    }*/

    public function nuevaResolucion($cvtResolucion)
    {
        try
        {
            $entityManager = $this->loadEnv();
            
            $cvtresol = new DboConvocatoriaresolucion();

            $cvtresol = $cvtresol->setDescripcion($cvtResolucion->getDescripcion());
            $cvtresol = $cvtresol->setFecharesolucion($cvtResolucion->getFecharesolucion());
            $cvtresol = $cvtresol->setRutaficheroresolucion($cvtResolucion->getRutaficheroresolucion());
            $cvtresol = $cvtresol->setVisible($cvtResolucion->getVisible());
            $cvtresol = $cvtresol->setBaja(false);
            
            $entityManager->persist($cvtresol);
            $entityManager->flush();

            $entityManager2 = $this->loadEnv();
            $cvt = $entityManager2->getRepository(DboConvocatoria::class)->find(($cvtResolucion->getCodigoconvocatoria())->getIdconvocatoria());
            $entityManager2->clear();
            if (!$cvt) {
                throw $this->createNotFoundException(
                    'No se encuentra la convocatoria con el id '.($cvtResolucion->getCodigoconvocatoria())->getIdconvocatoria()
                );
            }
            $cvtresol = $cvtresol->setCodigoconvocatoria2($cvt);


            $entityManager->merge($cvtresol);
            $entityManager->flush();
            $entityManager->clear();
			$entityManager->getConnection()->close();
        }
        catch (Exception $ex)
        {
            echo $exception->getMessage();
        }
    }
}

?>