UorgRepository.php 2.32 KB
<?php

namespace Cacic\CommonBundle\Entity;

use Doctrine\ORM\EntityRepository;

/**
 * UorgRepository
 *
 * This class was generated by the Doctrine ORM. Add your own custom
 * repository methods below.
 */
class UorgRepository extends EntityRepository
{
    public function listar()
    {
        $_dql = "SELECT uorg.idUorg, uorg.nmUorg
				FROM CacicCommonBundle:Uorg uorg
				ORDER BY uorg.uorgPai DESC, uorg.idUorg DESC ";

        return $this->getEntityManager()->createQuery( $_dql )->getArrayResult();
    }
	/**
	 * 
	 * Recupera as Unidades Organizacionais do primeiro nível
	 */
	public function getPrimeiroNivel()
	{
		$_dql = "SELECT uorg.idUorg, uorg.nmUorg, COUNT(filhas.idUorg) AS numFilhas
				FROM CacicCommonBundle:Uorg uorg
				LEFT JOIN uorg.uorgFilhas filhas
				WHERE uorg.uorgPai IS NULL
				GROUP BY uorg.idUorg, uorg.nmUorg";

		return $this->getEntityManager()->createQuery( $_dql )->getArrayResult();
	}
	
	/**
	 * 
	 * Recupera as folhas de determinado nó
	 * - Recupera as Unidades Organizacionais relacionadas (filhas) da Unidade Organizacional parametrizada
	 * @param int $idUorgPai
	 */
	public function getFolhasDoNo( $idUorgPai )
	{
		$_dql = "SELECT uorg.idUorg, uorg.nmUorg, r.idRede, COUNT(filhas.idUorg) AS numFilhas
				FROM CacicCommonBundle:Uorg uorg
				INNER JOIN uorg.uorgPai pai
				LEFT JOIN uorg.uorgFilhas filhas
				LEFT JOIN uorg.rede r
				WHERE pai.idUorg = :idUorgPai
				GROUP BY uorg.idUorg, uorg.nmUorg, r.idRede";
		
		return $this->getEntityManager()->createQuery( $_dql )
										->setParameter('idUorgPai', $idUorgPai)
										->getArrayResult();
	}
	
	
	/**
	 * 
	 * Gera estrutura de árvores com as Unidades Organizacionais cadastradas à partir do primeiro nível
	 */
	public function getArvores()
	{
		
	}
	
	/**
	 * 
	 * Gera estrutura de árvore a partir do nó (Unidade Organizacional) parametrizado
	 * @param int $idUorgPai
	 */
	public function getArvoreDoNo( $idUorgPai )
	{
		
	}

    public function vincular()
    {
        $_dql = "SELECT uorg.idUorg, r.idRede, uorg.nmUorg, COUNT(filhas.idUorg) AS numFilhas
				FROM CacicCommonBundle:Uorg uorg
				LEFT JOIN uorg.uorgFilhas filhas
				LEFT JOIN uorg.rede r
				WHERE uorg.uorgPai IS NULL
				GROUP BY uorg.idUorg, uorg.nmUorg, r.idRede";

        return $this->getEntityManager()->createQuery( $_dql )->getArrayResult();
    }

 

}