File: /home/undanet/www//PortalEmpleo/src/Repository/DBConvocatoriaRepository.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\DboEstadoconvocatoria;
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 DBConvocatoriaRepository extends AbstractController
{
private const MAX_CONVOCATORIAS = 10;
public function __construct()
{
}
private function loadEnv()
{
try {
$dotenv = Dotenv::createImmutable(__DIR__ . "/../../");
$dotenv->load();
return getEntityManager();
} catch (\Exception $ex) {
echo $ex->getMessage();
return null;
}
}
public function obtenerConvocatorias(
$lang, $idconvocatoria, $checkbaja = true
) {
try {
$entityManager = $this->loadEnv();
if (!isset($idconvocatoria)) {
if ($checkbaja) {
$lconvocatorias =
$entityManager->getRepository(DboConvocatoria::class)
->createQueryBuilder('c')
->where('c.baja = false')
->addOrderBy('c.idconvocatoria', 'DESC')
->addOrderBy('c.fechainicio', 'DESC')
->addOrderBy('c.fechaultimaactualizacion', 'DESC')
->getQuery()
->execute();
} else {
$lconvocatorias =
$entityManager->getRepository(DboConvocatoria::class)
->createQueryBuilder('c')
->addOrderBy('c.idconvocatoria', 'DESC')
->addOrderBy('c.fechainicio', 'DESC')
->addOrderBy('c.fechaultimaactualizacion', 'DESC')
->getQuery()
->execute();
}
} else {
$lconvocatorias =
$entityManager->getRepository(DboConvocatoria::class)
->createQueryBuilder('c')
->where('c.idconvocatoria = :id')
->setParameter('id', $idconvocatoria)
->getQuery()
->execute();
$codigoestadoconvocatoria =
($lconvocatorias[0]->getCodigoestadoconvocatoria())->getIdestadoconvocatoria();
if (!$lconvocatorias) {
throw $this->createNotFoundException(
'No se encuentra la convocatoria con el id '
. $idconvocatoria
);
}
}
if (!$lconvocatorias) {
return;
}
if ($lang) {
//conexion a traduccion_estadoconvocatoria con el lenguaje que sea y traer las convocatorias de ese idioma
//despues cruzar la lista de $lconvocatorias con la lista de las traducciones
$ltraduccionesestadoconvocatoria =
$this->obtenerListaTraducciones($entityManager, "traduccion_estadoconvocatoria", "CodigoEstadoConvocatoria", "Estado", "Descripcion", $lang, isset($idconvocatoria)
? $codigoestadoconvocatoria
: null);
if ($ltraduccionesestadoconvocatoria) {
foreach ($lconvocatorias as $convo) {
foreach ($ltraduccionesestadoconvocatoria as $traduccionestado) {
if (($convo->getCodigoestadoconvocatoria())->getIdestadoconvocatoria()
== $traduccionestado["CodigoEstadoConvocatoria"]) {
($convo->getCodigoestadoconvocatoria())->setEstado($traduccionestado["Estado"]);
($convo->getCodigoestadoconvocatoria())->setDescripcion($traduccionestado["Descripcion"]);
}
}
}
}
}
$entityManager->getConnection()->close();
return $lconvocatorias; //$result;
} catch (\Exception $ex) {
echo $ex->getMessage();
return null;
}
}
public function obtenerConvocatoriasAbiertas($lang)
{
try {
$entityManager = $this->loadEnv();
$lconvocatorias =
$entityManager->getRepository(DboConvocatoria::class)
->createQueryBuilder('c')
->where('c.baja = false')
->andWhere('c.codigoestadoconvocatoria IN (1)')
->addOrderBy('c.fechainicio', 'DESC')
->addOrderBy('c.fechaultimaactualizacion', 'DESC')
->setMaxResults(self::MAX_CONVOCATORIAS)
->getQuery()
->execute();
if (!$lconvocatorias) {
return;
}
if ($lang) {
//conexion a traduccion_estadoconvocatoria con el lenguaje que sea y traer las convocatorias de ese idioma
//despues cruzar la lista de $lconvocatorias con la lista de las traducciones
$ltraduccionesestadoconvocatoria =
$this->obtenerListaTraducciones($entityManager, "traduccion_estadoconvocatoria", "CodigoEstadoConvocatoria", "Estado", "Descripcion", $lang, null);
if ($ltraduccionesestadoconvocatoria) {
foreach ($lconvocatorias as $convo) {
foreach ($ltraduccionesestadoconvocatoria as $traduccionestado) {
if (($convo->getCodigoestadoconvocatoria())->getIdestadoconvocatoria()
== $traduccionestado["CodigoEstadoConvocatoria"]) {
($convo->getCodigoestadoconvocatoria())->setEstado($traduccionestado["Estado"]);
($convo->getCodigoestadoconvocatoria())->setDescripcion($traduccionestado["Descripcion"]);
}
}
}
}
}
return $lconvocatorias; //$result;
} catch (\Exception $ex) {
echo $ex->getMessage();
return null;
}
}
public function obtenerConvocatoriasSinCerrar($lang)
{
try {
$entityManager = $this->loadEnv();
$lconvocatorias =
$entityManager->getRepository(DboConvocatoria::class)
->createQueryBuilder('c')
->where('c.baja = false')
->andWhere('c.codigoestadoconvocatoria NOT IN (6,7,8,9)')
->addOrderBy('c.fechainicio', 'DESC')
->addOrderBy('c.fechaultimaactualizacion', 'DESC')
->getQuery()
->execute();
if (!$lconvocatorias) {
return;
}
if ($lang) {
//conexion a traduccion_estadoconvocatoria con el lenguaje que sea y traer las convocatorias de ese idioma
//despues cruzar la lista de $lconvocatorias con la lista de las traducciones
$ltraduccionesestadoconvocatoria =
$this->obtenerListaTraducciones($entityManager, "traduccion_estadoconvocatoria", "CodigoEstadoConvocatoria", "Estado", "Descripcion", $lang, null);
if ($ltraduccionesestadoconvocatoria) {
foreach ($lconvocatorias as $convo) {
foreach ($ltraduccionesestadoconvocatoria as $traduccionestado) {
if (($convo->getCodigoestadoconvocatoria())->getIdestadoconvocatoria()
== $traduccionestado["CodigoEstadoConvocatoria"]) {
($convo->getCodigoestadoconvocatoria())->setEstado($traduccionestado["Estado"]);
($convo->getCodigoestadoconvocatoria())->setDescripcion($traduccionestado["Descripcion"]);
}
}
}
}
}
return $lconvocatorias; //$result;
} catch (\Exception $ex) {
echo $ex->getMessage();
return null;
}
}
public function obtenerConvocatoriasReferencia($lang, $referencia)
{
try {
$entityManager = $this->loadEnv();
if (isset($referencia)) {
$lconvocatorias =
$entityManager->getRepository(DboConvocatoria::class)
->createQueryBuilder('c')
->where('c.baja = false')
->andWhere('c.referencia = :ref')
->setParameter('ref', $referencia)
->getQuery()
->execute();
} else {
$lconvocatorias =
$entityManager->getRepository(DboConvocatoria::class)
->createQueryBuilder('c')
->where('c.baja = false')
->addOrderBy('c.referencia', 'DESC')
->getQuery()
->execute();
}
if (!$lconvocatorias) {
return;
}
if ($lang) {
//conexion a traduccion_estadoconvocatoria con el lenguaje que sea y traer las convocatorias de ese idioma
//despues cruzar la lista de $lconvocatorias con la lista de las traducciones
$ltraduccionesestadoconvocatoria =
$this->obtenerListaTraducciones($entityManager, "traduccion_estadoconvocatoria", "CodigoEstadoConvocatoria", "Estado", "Descripcion", $lang, null);
if ($ltraduccionesestadoconvocatoria) {
foreach ($lconvocatorias as $convo) {
foreach ($ltraduccionesestadoconvocatoria as $traduccionestado) {
if (($convo->getCodigoestadoconvocatoria())->getIdestadoconvocatoria()
== $traduccionestado["CodigoEstadoConvocatoria"]) {
($convo->getCodigoestadoconvocatoria())->setEstado($traduccionestado["Estado"]);
($convo->getCodigoestadoconvocatoria())->setDescripcion($traduccionestado["Descripcion"]);
}
}
}
}
}
return $lconvocatorias; //$result;
} catch (\Exception $ex) {
echo $ex->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();
return $rs;
} catch (\Exception $ex) {
echo $ex->getMessage();
return null;
}
}
public function actualizarConvocatoria($convocatoria)
{
try {
$entityManager = $this->loadEnv();
$cvt = $entityManager->getRepository(DboConvocatoria::class)
->find($convocatoria->getIdconvocatoria());
if (!$cvt) {
throw $this->createNotFoundException(
'No se encuentra la convocatoria con el id '
. $convocatoria->getIdconvocatoria()
);
}
$cvt = $cvt->setReferencia($convocatoria->getReferencia());
$cvt = $cvt->setPuestotrabajo($convocatoria->getPuestotrabajo());
$cvt = $cvt->setCentro($convocatoria->getCentro());
$cvt = $cvt->setFechainicio($convocatoria->getFechainicio());
$cvt = $cvt->setFechafin($convocatoria->getFechafin());
$cvt =
$cvt->setFechaultimaactualizacion($convocatoria->getFechaultimaactualizacion());
$cvt =
$cvt->setRutaarchivoconvocatoria($convocatoria->getRutaarchivoconvocatoria());
if ($convocatoria->getRutaarchivoespecifico() != null) {
$cvt =
$cvt->setRutaarchivoespecifico($convocatoria->getRutaarchivoespecifico());
}
//$cvt = $cvt->setRutaarchivoresolucionfinal($convocatoria->getRutaarchivoresolucionfinal());
if ($convocatoria->getRutaarchivoresolucionfinal() != null) {
$cvt =
$cvt->setRutaarchivoresolucionfinal($convocatoria->getRutaarchivoresolucionfinal());
}
if ($convocatoria->getRutaarchivorequisitos() != null) {
$cvt =
$cvt->setRutaarchivorequisitos($convocatoria->getRutaarchivorequisitos());
}
if ($convocatoria->getRutaarchivoexamen() != null) {
$cvt =
$cvt->setRutaarchivoexamen($convocatoria->getRutaarchivoexamen());
}
$cvt = $cvt->setUrlweb($convocatoria->getUrlweb());
$cvt =
$cvt->setUmbraldepuntuacion($convocatoria->getUmbraldepuntuacion());
$entityManager2 = $this->loadEnv();
$cvtEstado =
$entityManager2->getRepository(DboEstadoconvocatoria::class)
->find(($convocatoria->getCodigoestadoconvocatoria())->getIdestadoconvocatoria());
$entityManager2->clear();
if (!$cvtEstado) {
throw $this->createNotFoundException(
'No se encuentra el estado de la convocatoria con el id '
. ($convocatoria->getCodigoestadoconvocatoria())->getIdestadoconvocatoria()
);
}
$cvt = $cvt->setCodigoestadoconvocatoria2($cvtEstado);
$cvt = $cvt->setCaducada($convocatoria->getCaducada());
$cvt = $cvt->setBaja($convocatoria->getBaja());
$cvt = $cvt->setDescripcion($convocatoria->getDescripcion());
$cvt = $cvt->setDescripcionEn($convocatoria->getDescripcionEn());
$cvt = $cvt->setTieneExamen($convocatoria->getTieneExamen());
$cvt = $cvt->setTotalPuntos($convocatoria->getTotalPuntos());
$cvt =
$cvt->setPuntuacionCorte($convocatoria->getPuntuacionCorte());
$cvt =
$cvt->setPuntuacionMaxima($convocatoria->getPuntuacionMaxima());
$cvt =
$cvt->setPuntuacionMaximaMeritos($convocatoria->getPuntuacionMaximaMeritos());
$cvt =
$cvt->setPonderacionExamen($convocatoria->getPonderacionExamen());
$cvt =
$cvt->setPonderacionMeritos($convocatoria->getPonderacionMeritos());
$cvt = $cvt->setSustituto($convocatoria->getSustituto());
$cvt = $cvt->setPlazaAdjudicada($convocatoria->getPlazaAdjudicada());
$entityManager->merge($cvt);
$entityManager->flush();
$entityManager->clear();
return $cvt;
} catch (\Exception $ex) {
echo $ex->getMessage();
}
}
public function nuevaConvocatoria($convocatoria)
{
try {
$entityManager = $this->loadEnv();
$cvt = new DboConvocatoria();
$cvt = $cvt->setReferencia($convocatoria->getReferencia());
$cvt = $cvt->setPuestotrabajo($convocatoria->getPuestotrabajo());
$cvt = $cvt->setCentro($convocatoria->getCentro());
$cvt = $cvt->setFechainicio($convocatoria->getFechainicio());
$cvt = $cvt->setFechafin($convocatoria->getFechafin());
$cvt =
$cvt->setFechaultimaactualizacion($convocatoria->getFechaultimaactualizacion());
$cvt =
$cvt->setRutaarchivoconvocatoria($convocatoria->getRutaarchivoconvocatoria());
if ($convocatoria->getRutaarchivoespecifico() != null) {
$cvt =
$cvt->setRutaarchivoespecifico($convocatoria->getRutaarchivoespecifico());
}
if ($convocatoria->getRutaarchivoresolucionfinal() != null) {
$cvt =
$cvt->setRutaarchivoresolucionfinal($convocatoria->getRutaarchivoresolucionfinal());
}
if ($convocatoria->getRutaarchivoexamen() != null) {
$cvt =
$cvt->setRutaarchivoexamen($convocatoria->getRutaarchivoexamen());
}
$cvt = $cvt->setUrlweb($convocatoria->getUrlweb());
$cvt =
$cvt->setUmbraldepuntuacion($convocatoria->getUmbraldepuntuacion());
$cvt = $cvt->setCaducada($convocatoria->getCaducada());
$cvt = $cvt->setBaja($convocatoria->getBaja());
$cvt = $cvt->setDescripcion($convocatoria->getDescripcion());
$cvt = $cvt->setDescripcionEn($convocatoria->getDescripcionEn());
$cvt = $cvt->setTieneExamen($convocatoria->getTieneExamen());
$cvt = $cvt->setTotalPuntos($convocatoria->getTotalPuntos());
$cvt =
$cvt->setPuntuacionCorte($convocatoria->getPuntuacionCorte());
$cvt =
$cvt->setPuntuacionMaxima($convocatoria->getPuntuacionMaxima());
$cvt =
$cvt->setPuntuacionMaximaMeritos($convocatoria->getPuntuacionMaximaMeritos());
$cvt =
$cvt->setPonderacionExamen($convocatoria->getPonderacionExamen());
$cvt =
$cvt->setPonderacionMeritos($convocatoria->getPonderacionMeritos());
$entityManager->persist($cvt);
$entityManager->flush();
$cvtEstado =
$entityManager->getRepository(DboEstadoconvocatoria::class)
->find(($convocatoria->getCodigoestadoconvocatoria())->getIdestadoconvocatoria());
$entityManager->clear();
if (!$cvtEstado) {
throw $this->createNotFoundException(
'No se encuentra el estado de la convocatoria con el id '
. ($convocatoria->getCodigoestadoconvocatoria())->getIdestadoconvocatoria()
);
}
$cvt = $cvt->setCodigoestadoconvocatoria2($cvtEstado);
$entityManager->merge($cvt);
$entityManager->flush();
$entityManager->clear();
return $cvt;
} catch (\Exception $ex) {
echo $ex->getMessage();
}
}
public function buscadorConvocatorias($lang)
{
try {
$entityManager = $this->loadEnv();
$lconvocatorias =
$entityManager->getRepository(DboConvocatoria::class)
->createQueryBuilder('c')
->where('c.baja = false')
->addOrderBy('c.referencia', 'DESC')
->addOrderBy('c.fechainicio', 'DESC')
->getQuery()
->execute();
if (!$lconvocatorias) {
return;
}
if ($lang) {
//conexion a traduccion_estadoconvocatoria con el lenguaje que sea y traer las convocatorias de ese idioma
//despues cruzar la lista de $lconvocatorias con la lista de las traducciones
$ltraduccionesestadoconvocatoria =
$this->obtenerListaTraducciones($entityManager, "traduccion_estadoconvocatoria", "CodigoEstadoConvocatoria", "Estado", "Descripcion", $lang, null);
if ($ltraduccionesestadoconvocatoria) {
foreach ($lconvocatorias as $convo) {
foreach ($ltraduccionesestadoconvocatoria as $traduccionestado) {
if (($convo->getCodigoestadoconvocatoria())->getIdestadoconvocatoria()
== $traduccionestado["CodigoEstadoConvocatoria"]) {
($convo->getCodigoestadoconvocatoria())->setEstado($traduccionestado["Estado"]);
($convo->getCodigoestadoconvocatoria())->setDescripcion($traduccionestado["Descripcion"]);
}
}
}
}
}
return $lconvocatorias; //$result;
} catch (\Exception $ex) {
echo $ex->getMessage();
return null;
}
}
public function cambiarEstadoConvocatoria($idConvocatoria, $idEstado)
{
try {
$entityManager = $this->loadEnv();
$convocatoria =
$entityManager->getRepository(DboConvocatoria::class)
->find($idConvocatoria);
if (!$convocatoria) {
echo 'No product found for idConvocatoria ' . $idConvocatoria;
}
$cvtEstado =
$entityManager->getRepository(DboEstadoconvocatoria::class)
->find($idEstado);
$entityManager->clear();
if (!$cvtEstado) {
throw $this->createNotFoundException('No se encuentra el estado de la convocatoria con el id ');
}
$convocatoria->setCodigoestadoconvocatoria2($cvtEstado);
$entityManager->merge($convocatoria);
$entityManager->flush();
$entityManager->clear();
return $convocatoria;
} catch (\Exception $ex) {
echo $ex->getMessage();
}
}
public function actualizarPlazaAdjudicada($idConvocatoria, $nombreCandidato)
{
try {
$entityManager = $this->loadEnv();
$convocatoria =
$entityManager->getRepository(DboConvocatoria::class)
->find($idConvocatoria);
if (!$convocatoria) {
echo 'No product found for idConvocatoria ' . $idConvocatoria;
}
$convocatoria->setPlazaAdjudicada($nombreCandidato);
$entityManager->merge($convocatoria);
$entityManager->flush();
$entityManager->clear();
return $convocatoria;
} catch (\Exception $ex) {
echo $ex->getMessage();
}
}
public function insertarFechaExamen($idConvocatoria, $fecha)
{
try {
$entityManager = $this->loadEnv();
$convocatoria =
$entityManager->getRepository(DboConvocatoria::class)
->find($idConvocatoria);
if (!$convocatoria) {
echo 'No product found for idConvocatoria ' . $idConvocatoria;
}
$convocatoria->setFechaExamen($fecha);
$entityManager->merge($convocatoria);
$entityManager->flush();
$entityManager->clear();
return $convocatoria;
} catch (\Exception $ex) {
echo $ex->getMessage();
}
}
public function insertarFechaResReq($idConvocatoria, $fecha)
{
try {
$entityManager = $this->loadEnv();
$convocatoria =
$entityManager->getRepository(DboConvocatoria::class)
->find($idConvocatoria);
if (!$convocatoria) {
echo 'No product found for idConvocatoria ' . $idConvocatoria;
}
$convocatoria->setFechaResReq($fecha);
$entityManager->merge($convocatoria);
$entityManager->flush();
$entityManager->clear();
return $convocatoria;
} catch (\Exception $ex) {
echo $ex->getMessage();
}
}
public function insertarFechaResExamen($idConvocatoria, $fecha)
{
try {
$entityManager = $this->loadEnv();
$convocatoria =
$entityManager->getRepository(DboConvocatoria::class)
->find($idConvocatoria);
if (!$convocatoria) {
echo 'No product found for idConvocatoria ' . $idConvocatoria;
}
$convocatoria->setFechaResExamen($fecha);
$entityManager->merge($convocatoria);
$entityManager->flush();
$entityManager->clear();
return $convocatoria;
} catch (\Exception $ex) {
echo $ex->getMessage();
}
}
public function insertarFechaResFinal($idConvocatoria, $fecha)
{
try {
$entityManager = $this->loadEnv();
$convocatoria =
$entityManager->getRepository(DboConvocatoria::class)
->find($idConvocatoria);
if (!$convocatoria) {
echo 'No product found for idConvocatoria ' . $idConvocatoria;
}
$convocatoria->setFechaResFinal($fecha);
$entityManager->merge($convocatoria);
$entityManager->flush();
$entityManager->clear();
return $convocatoria;
} catch (\Exception $ex) {
echo $ex->getMessage();
}
}
}
?>