Exemplo n.º 1
0
 /**
  * Join para obter Pessoas por Nome
  * @param PessoaFisicaValueObject $voPessoaFisica
  */
 public function findByCpf(PessoaFisicaValueObject $voPessoaFisica)
 {
     try {
         /*
          *       SELECT *
          *       FROM pessoa as ps
          *       INNER JOIN pessoa_fisica as pf USING (sq_pessoa)
          *       WHERE nu_cpf = '69905231153'
          * */
         # obtem a entidade com base na anotacao
         $ePessoa = $this->getEntity(array('pe' => $this->annotation()->load()->class));
         # cria entidade pessoa_fisica
         $ePessoaFisica = $this->getEntity(array('pf' => $voPessoaFisica));
         # cria objeto de consulta baseando-se em email
         $query = $this->getQuery($ePessoa)->join($ePessoaFisica, $ePessoa->column('sqPessoa')->equals($ePessoaFisica->column('sqPessoa')))->where($ePessoaFisica->column('nuCpf')->equals($voPessoaFisica->getNuCpf()));
         # executa query
         return $this->execute($query);
     } catch (IllegalArgumentException $iae) {
         throw new PersistException(self::INVALID_PARAMETER);
     } catch (\Exception $exp) {
         throw new PersistException(self::UNEXPECTED_EXCEPTION);
     }
 }
Exemplo n.º 2
0
 /**
  * Obtem Emails por CPF
  * @param PessoaFisicaValueObject $voPessoaFisica
  */
 public function findByCpf(PessoaFisicaValueObject $voPessoaFisica)
 {
     try {
         /*
          *       SELECT tx_email
          *       FROM email AS em
          *       INNER JOIN pessoa_fisica AS pf USING (sq_pessoa)
          *       WHERE nu_cpf = ?;
          * */
         # obtem a entidade com base na anotacao
         $eEmail = $this->getEntity(array('em' => $this->annotation()->load()->class));
         # cria entidade pessoa_fisica
         $ePessoaFisica = $this->getEntity(array('pf' => $voPessoaFisica));
         # cria objeto de consulta baseando-se em email
         $query = $this->getQuery($eEmail)->join($ePessoaFisica, $eEmail->column('sqPessoa')->equals($ePessoaFisica->column('sqPessoa')))->where($ePessoaFisica->column('nuCpf')->equals($voPessoaFisica->getNuCpf()));
         # 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');
     } catch (\Exception $exp) {
         throw new PersistException('Um erro inesperado ocorreu ao tentar executar a recuperação dos dados');
     }
 }
Exemplo n.º 3
0
 /**
  * @example PessoaFisicaBusiness::updatePessoaFisica
  * @code
  * <?php
  *     # cria filtro usado pelo Pessoa Fisica
  *     $pessoaVO       = ValueObjectAbstract::factory('fullnamespace');
  *     $pessoaFisicaVO = ValueObjectAbstract::factory('fullnamespace');
  *     # outra forma de utilizar
  *     # $pessoaVO = PessoaValueObject::factory();
  *     # $pessoaFisicaVO = PessoaFisicaValueObject::factory();
  *     $pessoaFisicaVO->setNuCpf('12345678909');
  *
  *     # efetua pesquisa
  *     $pessoaBusiness = PessoaFisicaBusiness::factory();
  *     $pessoaBusiness->updatePessoaFisica($pessoaVO, $pessoaFisicaVO);
  * ?>
  * @endcode
  *
  * @param PessoaValueObject $voPessoa
  * @param PessoaFisicaValueObject $voPessoaFisica
  * @throws BusinessException
  */
 public function updatePessoaFisica(PessoaValueObject $voPessoa, PessoaFisicaValueObject $voPessoaFisica)
 {
     try {
         $voPessoaFisicaClone = clone $voPessoaFisica;
         # retira a máscara do CPF
         $voPessoaFisica->setNuCpf(preg_replace("/\\D+/", "", $voPessoaFisica->getNuCpf()));
         # efetua validação
         $this->_validatePessoaFisica($voPessoa, $voPessoaFisica);
         $sqPessoa = $voPessoa->getSqPessoa();
         BusinessException::throwsExceptionIfParamIsNull($sqPessoa, self::REQUIRED_SQ_PESSOA);
         $voTmp = PessoaBusiness::factory(NULL, 'libcorp')->find($voPessoa->getSqPessoa());
         $voPessoa->copySaveObjectData($voTmp);
         PessoaBusiness::factory(NULL, 'libcorp')->update($voPessoa);
         # Salva PessoaFisica
         $voPessoaTmp = self::factory(NULL, 'libcorp')->find($voPessoa->getSqPessoa());
         $voPessoaFisica->copySaveObjectData($voPessoaTmp);
         # anula nacionalidade
         if (0 === $voPessoaFisicaClone->getSqNacionalidade()) {
             $voPessoaFisica->setSqNacionalidade(NULL);
         }
         # anula naturalidade
         if (0 === $voPessoaFisicaClone->getSqNaturalidade()) {
             $voPessoaFisica->setSqNaturalidade(NULL);
         }
         $this->getModelPersist('libcorp')->update($voPessoaFisica);
         return $voPessoaFisica;
     } catch (ModelException $mExcp) {
         throw new BusinessException($mExcp->getMessage(), $mExcp->getCode());
     }
 }