/** * retorna os dados de Pessoa por Nome (Ilike) * @param PessoaValueObject $voPessoa * @throws PersistException */ public function findByNome(PessoaValueObject $voPessoa, $limit = 10, $offSet = 0) { try { /* * SELECT pess.sq_pessoa, * pess.sq_tipo_pessoa, * pess.no_pessoa * FROM corporativo.pessoa pess * WHERE pess.no_pessoa ilike $voPessoa->getNoPessoa() **/ # obtem a entidade com base na anotacao $ePessoa = $this->getEntity(array('pess' => $this->annotation()->load()->class)); # cria objeto de consulta baseando-se em email $query = $this->getQuery($ePessoa)->where($ePessoa->column('noPessoa')->ilike('%' . $voPessoa->getNoPessoa() . '%')); # filtro de tipo pessoa if ($voPessoa->getSqTipoPessoa()) { $query->and($ePessoa->column('sqTipoPessoa')->equals($voPessoa->getSqTipoPessoa()->getSqTipoPessoa())); } /* limit query */ $query->limit((int) $limit, (int) $offSet); # executa query return $this->execute($query); } catch (IllegalArgumentException $iae) { throw new PersistException(self::INVALID_PARAMETER); } catch (\Exception $exp) { throw new PersistException(self::UNEXPECTED_EXCEPTION); } }
private function _validatePessoa(PessoaValueObject $voPessoa) { try { BusinessException::throwsExceptionIfParamIsNull(trim($voPessoa->getNoPessoa()), self::NAME_REQUIRED); } catch (ModelException $mExcp) { throw new BusinessException($mExcp->getMessage(), $mExcp->getCode()); } }
/** * @param PessoaValueObject $filterPessoa * @param integer $limit * @return br\gov\sial\core\persist\ResultSet * @throws PersistException */ public function findUnidadeConservacao(PessoaValueObject $filterPessoa, $limit = NULL) { try { $sql = "select\n p.*\n from\n corporativo.unidade_org uo\n inner join\n corporativo.pessoa p on p.sq_pessoa = uo.sq_pessoa \n inner join\n corporativo.tipo_unidade_org_hierarq tp on \n uo.sq_tipo_unidade = tp.sq_tipo_unidade_org and \n tp.trilha_sigla ilike '%-->uc-->%' "; $this->_query = $sql; $ePessoa = $this->getEntity(array('p' => $filterPessoa)); $condicional = array(array('entity' => $ePessoa, 'field' => 'noPessoa', 'value' => '%' . $filterPessoa->getNoPessoa())); $this->buildWhere($condicional); if ($limit) { $this->_query .= " limit {$limit}"; } return $this->execute($this->_query, $this->_params); } catch (\Exception $exp) { throw new PersistException($exp->getMessage(), $exp->getCode(), $exp); } }