RequisitoInscripcionRepository.php 1.88 KB
<?php

namespace UBV\SurUbvBundle\Entity;

use Doctrine\ORM\EntityRepository;
use Doctrine\ORM\Query\Expr\Join;
use Doctrine\ORM\Query;

/**
 * RequisitoInscripcionRepository
 *
 * This class was generated by the Doctrine ORM. Add your own custom
 * repository methods below.
 */
class RequisitoInscripcionRepository extends EntityRepository
{
  public function findRequisitosNoCargadosPorPersona($persona) {
    $em = $this->getEntityManager();
    $personaId = $persona->getId();
    
    $result = $em->createQueryBuilder();
    $query = $em->createQueryBuilder();
    $subquery = $em->createQueryBuilder();
    
    $sub = $result->select('requisito')
            ->from('UBVSurUbvBundle:RequisitoInscripcion', 'requisito')
            ->Join('requisito.estudianteDocumentos','estudianteDocumento','requisito.id = estudianteDocumento.requisito_id')
            ->Join('estudianteDocumento.persona','persona','persona.id = estudianteDocumento.persona_id')
            ->where('persona.id= :personaId');
            //->setParameter('prueba',239)
            //->getQuery()
            //->getResult(Query::HYDRATE_ARRAY);
    
    $dql = $query->select('documento')
          ->from('UBVSurUbvBundle:RequisitoInscripcion', 'documento')
          ->Join('documento.programas','requisitoPrograma','documento.id = requisitoPrograma.requisito_inscripcion_id')
          ->Join('requisitoPrograma.aspirantes','aspirante','aspirante.programa_id = requisitoPrograma.id')
          ->Join('aspirante.persona','personaAspirante','personaAspirante.id = aspirante.persona_id')
          ->where($query->expr()->notIn('documento.id',$sub->getDQL()))
          ->andWhere('personaAspirante.id = :personaId')  
            ->setParameter('personaId',$personaId)
            ->getQuery()
            ->getResult(Query::HYDRATE_ARRAY);
    
    
    
    //die(dump($dql));
    //die(var_dump($arregloCuentas));
    return $query;

  }
  
}