File: /home/undanet/www/PortalEmpleo/src/Repository/DBConvocatoriaRequisitoRepository.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\DboConvocatoriarequisito;
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 DBConvocatoriaRequisitoRepository extends AbstractController
{
private $dotenv;
private $entityManager;
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 obtenerRequisitos($lang, $idConvocatoria)
{
try{
$entityManager = $this->loadEnv();
if(!isset($idConvocatoria))
{
$lreqs = $entityManager->getRepository(DboConvocatoriarequisito::class)
->createQueryBuilder('c')
->where('c.baja = false')
->addOrderBy('c.codigoconvocatoria', 'DESC')
->addOrderBy('c.idconvocatoriarequisito', 'DESC')
->getQuery()
->execute();
}
else
{
$lreqs = $entityManager->getRepository(DboConvocatoriarequisito::class)
->createQueryBuilder('c')
->where('c.baja = false')
->andWhere('c.codigoconvocatoria = :idconvocatoria')
->setParameter('idconvocatoria', $idConvocatoria)
->getQuery()
->execute();
if (!$lreqs) {
return;
/*throw $this->createNotFoundException(
'No se encuentran requisitos para la convocatoria con el id'. $idConvocatoria
);*/
}
}
$entityManager->getConnection()->close();
return $lreqs; //$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();
return $rs;
}
catch (Exception $ex){
echo $exception->getMessage();
return null;
}
}*/
public function eliminarRequisito($cvtRequisito)
{
try
{
$entityManager = $this->loadEnv();
$cvtreq = $entityManager->getRepository(DboConvocatoriarequisito::class)->find($cvtRequisito);
if (!$cvtreq) {
throw $this->createNotFoundException(
'No se encuentra el convocatoriaRequisito con el id '. $cvtRequisito
);
}
$cvtreq = $cvtreq->setBaja(true);
$entityManager->merge($cvtreq);
$entityManager->flush();
$entityManager->clear();
$entityManager->getConnection()->close();
return ($cvtreq->getCodigoconvocatoria())->getIdconvocatoria();
}
catch (Exception $ex)
{
echo $exception->getMessage();
return null;
}
}
public function nuevoRequisito($cvtRequisito)
{
try
{
$entityManager = $this->loadEnv();
$cvtrqst = new DboConvocatoriarequisito();
$cvtrqst = $cvtrqst->setRequisito($cvtRequisito->getRequisito());
$cvtrqst = $cvtrqst->setDescripcion($cvtRequisito->getDescripcion());
$cvtrqst = $cvtrqst->setBaja(false);
$cvtrqst = $cvtrqst->setObligatorio($cvtRequisito->getObligatorio());
$entityManager->persist($cvtrqst);
$entityManager->flush();
$entityManager2 = $this->loadEnv();
$cvt = $entityManager2->getRepository(DboConvocatoria::class)->find(($cvtRequisito->getCodigoconvocatoria())->getIdconvocatoria());
$entityManager2->clear();
if (!$cvt) {
throw $this->createNotFoundException(
'No se encuentra la convocatoria con el id '.($cvtRequisito->getCodigoconvocatoria())->getIdconvocatoria()
);
}
$cvtrqst = $cvtrqst->setCodigoconvocatoria2($cvt);
$entityManager->merge($cvtrqst);
$entityManager->flush();
$entityManager->clear();
$entityManager->getConnection()->close();
}
catch (Exception $ex)
{
echo $exception->getMessage();
}
}
}
?>