src/JuridicusBundle/Repository/PruefungsamtRepository.php line 73

Open in your IDE?
  1. <?php
  2. namespace JF\JuridicusBundle\Repository;
  3. use Doctrine\ORM\EntityRepository;
  4. /**
  5.  * PruefungsamtRepository
  6.  *
  7.  * This class was generated by the Doctrine ORM. Add your own custom
  8.  * repository methods below.
  9.  */
  10. class PruefungsamtRepository extends EntityRepository
  11. {
  12.     /**
  13.      *
  14.      * @param integer $bundesland_id
  15.      * @param integer $examen
  16.      * @return \JF\JuridicusBundle\Entity\Pruefungsamt|null
  17.      */
  18.     public function findByBundeslandAndExamen($bundesland_id$examen)
  19.     {
  20.         $qb $this->createQueryBuilder('pa')
  21.             ->join('pa.bundeslaender''b')
  22.             ->where('b = :bundesland')
  23.             ->andWhere('pa.examen = :examen')
  24.             ->setParameter('bundesland'$bundesland_id)
  25.             ->setParameter('examen'$examen)
  26.         ;
  27.         return $qb->getQuery()->getOneOrNullResult();
  28.     }
  29.     /**
  30.      *
  31.      * @param string $kuerzel
  32.      * @param integer $examen
  33.      * @return \JF\JuridicusBundle\Entity\Pruefungsamt|null
  34.      */
  35.     public function findByKuerzelAndExamen($kuerzel$examen)
  36.     {
  37.         $qb $this->createQueryBuilder('pa')
  38.             ->select(array('pa''b''p'))
  39.             ->leftJoin('pa.pruefer''p')
  40.             ->join('pa.bundeslaender''b')
  41.             ->where('b.kuerzel = :kuerzel')
  42.             ->andWhere('pa.examen = :examen')
  43.             ->andWhere('p.alias_for IS NULL')
  44.             ->setParameter('kuerzel'$kuerzel)
  45.             ->setParameter('examen'$examen)
  46.         ;
  47.         return $qb->getQuery()->getOneOrNullResult();
  48.     }
  49.     /**
  50.      *
  51.      * @param integer $examen
  52.      * @param string $bslug
  53.      * @return \JF\JuridicusBundle\Entity\Pruefungsamt|null
  54.      */
  55.     public function findByExamenAndBSlug($examen$bslug)
  56.     {
  57.         $qb $this->createQueryBuilder('pa')
  58.             ->select(array('pa''b'))
  59.             ->join('pa.bundeslaender''b''WITH''b.slug = :bslug')
  60.             ->where('pa.examen = :examen')
  61.             ->setParameter('examen'$examen)
  62.             ->setParameter('bslug'$bslug)
  63.         ;
  64.         return $qb->getQuery()->getOneOrNullResult();
  65.     }
  66.     /**
  67.      *
  68.      * @param string $kuerzel
  69.      * @return array
  70.      */
  71.     public function findByKuerzel($kuerzel)
  72.     {
  73.         $qb $this->getEntityManager()->createQueryBuilder()
  74.             ->select('p')
  75.             ->from('JFJuridicusBundle:Pruefungsamt''p''p.examen')
  76.             ->join('p.bundeslaender''b')
  77.             ->where('b.kuerzel = :kuerzel')
  78.             ->setParameter('kuerzel'$kuerzel)
  79.         ;
  80.         return $qb->getQuery()->getResult();
  81.     }
  82.     /**
  83.      *
  84.      * @param integer $user_id
  85.      * @return \JF\JuridicusBundle\Entity\Pruefungsamt|null
  86.      */
  87.     public function findOneByUser($user_id)
  88.     {
  89.         $qb $this->createQueryBuilder('pa')
  90.             ->join('pa.bundeslaender''bl')
  91.             ->join('bl.kunden''k')
  92.             ->join('k.user''u')
  93.             ->where('u.id = :uid')
  94.             ->andWhere('pa.examen = k.examen')
  95.             ->setParameter('uid'$user_id)
  96.         ;
  97.         return $qb->getQuery()->getOneOrNullResult();
  98.     }
  99.     /**
  100.      *
  101.      * @return array
  102.      */
  103.     public function findWithPrueferAndProtokoll()
  104.     {
  105.         $qb $this->createQueryBuilder('pa')
  106.             ->select(array('pa''bl''p'))
  107.             ->join('pa.bundeslaender''bl')
  108.             ->join('pa.pruefer''p')
  109.             ->join('p.pdf_protokollmappe_pruefer''pdf')
  110.             ->where('pdf.anzahl_protokolle > 0')
  111.         ;
  112.         return $qb->getQuery()->getResult();
  113.     }
  114.     /**
  115.      *
  116.      * @return array
  117.      */
  118.     public function countProtokolle()
  119.     {
  120.         $qb $this->createQueryBuilder('pa')
  121.             ->select(array(
  122.                 'pa.bezeichnung',
  123.                 'SUM(pdf.anzahl_protokolle) AS anzahl_protokolle'
  124.             ))
  125.             ->leftJoin('pa.pruefer''p')
  126.             ->leftJoin('p.pdf_protokollmappe_pruefer''pdf''WITH',
  127.                 'pdf.examen = pa.examen')
  128.             ->groupBy('pa.bezeichnung')
  129.             ->orderBy('pa.id''ASC')
  130.         ;
  131.         return $qb->getQuery()->getResult();
  132.     }
  133. }