/** * @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()); } }