function libCorpUnidadeOrgByUndDescenCategoria($noTipoUnidadeOrg)
{
    try {
        $voTipoUnidade = TipoUnidadeOrgValueObject::factory()->setNoTipoUnidadeOrg($noTipoUnidadeOrg);
        $tmpResult = UnidadeOrgBusiness::factory(NULL, 'libcorp')->findUndDescentralizadaByCategoria($voTipoUnidade);
        $tmpTxt = '<result>';
        foreach ($tmpResult as $result) {
            $tmpTxt .= $result->toXml();
        }
        $tmpTxt .= '</result>';
        return $tmpTxt;
    } catch (\Exception $excp) {
        throw new IOException($excp->getMessage());
    }
}
Пример #2
0
 /**
  * Efetua a busca por UnidadeDescentralizada e por Categoria
  * Solicitacao via Ticket #459
  * @param TipoUnidadeOrgValueObject $voTipoUnidade
  * @throws PersistException
  */
 public function findUndDescentralizadaByCategoria(TipoUnidadeOrgValueObject $voTipoUnidade)
 {
     try {
         /*
          * SELECT [fields]
          * FROM tipo_unidade_org_hierarq vwTipo
          * JOIN unidade_org uniOrg ON (vwTipo.sq_tipo_unidade_org = uniOrg.sq_tipo_unidade)
          * INNER JOIN tipo_unidade_org tipoUnd ON (tipoUnd.sq_tipo_unidade_org = vwTipo.sq_tipo_unidade_org)
          * WHERE trilha_sigla ilike '%ud--%' AND tipoUnd.no_tipo_unidade_org ilike '%Esta%'
          */
         # obtem a entidade com base na anotacao
         $eUnidadeOrg = $this->getEntity(array('unOrg' => $this->annotation()->load()->class));
         # Busca pela View
         $eVwTipoUnidade = $this->getEntity(array('vwTipoUnidadeHierarq' => VwTipoUnidadeOrgHierarqValueObject::factory()));
         $eTipoUnidade = $this->getEntity(array('tipoUni' => TipoUnidadeOrgValueObject::factory()));
         $query = $this->getQuery($eVwTipoUnidade)->join($eUnidadeOrg, $eVwTipoUnidade->column('sqTipoUnidadeOrg')->equals($eUnidadeOrg->column('sqTipoUnidade')))->join($eTipoUnidade, $eUnidadeOrg->column('sqTipoUnidade')->equals($eTipoUnidade->column('sqTipoUnidadeOrg')))->where($eVwTipoUnidade->column('trilhaSigla')->ilike('%' . self::PAR_UNIDADE_DESCENTRALIZADA . '%'))->and($eTipoUnidade->column('noTipoUnidadeOrg')->ilike('%' . $voTipoUnidade->getNoTipoUnidadeOrg() . '%'));
         # executa query
         return $this->execute($query);
     } catch (IllegalArgumentException $iae) {
         throw new PersistException('Um ou mais paramentros informados para na montagem da query foi avaliado como inválido', 0, $iae);
     } catch (\Exception $exp) {
         throw new PersistException('Um erro inesperado ocorreu ao tentar executar a recuperação dos dados', 0, $exp);
     }
 }