Exemple #1
0
 protected function interessadoInterno(\Core_Dto_Mapping $dto)
 {
     $pessoa = new \Sgdoce\Model\Entity\Pessoa();
     $pessoaFuncao = new \Sgdoce\Model\Entity\PessoaFuncao();
     $artefato = new \Sgdoce\Model\Entity\Artefato();
     $tipoPessoa = new \Sgdoce\Model\Entity\VwTipoPessoa();
     $artefato->setSqArtefato($dto->getSqArtefato());
     if ($dto->getUnidFuncionario() == 'funcionario') {
         $vwPessoa = $this->getServiceLocator()->getService('VwPessoa')->find($dto->getFuncIcmbio());
         $tipoPessoa->setSqTipoPessoa(\Core_Configuration::getSgdocTipoPessoaPessoaFisica());
         //             $estadoCivil = new VwEstadoCivil();
         //             $estadoCivil->setSqEstadoCivil($vwPessoa->getSqPessoaFisica()->getSqEstadoCivil());
         //             $pessoa->setSqEstadoCivil($estadoCivil);
         $pessoa->setNoProfissao($vwPessoa->getSqPessoaFisica()->getNoProfissao());
         //             $pessoa->setNoMae($wvPessoa->getSqPessoaFisica()->getNoMae());
     } else {
         $vwPessoa = $this->getServiceLocator()->getService('VwPessoa')->find($dto->getUnidIcmbio());
         $tipoPessoa->setSqTipoPessoa(\Core_Configuration::getSgdocTipoPessoaMinisterioPublico());
     }
     $pessoaFuncao->setSqPessoaFuncao(\Core_Configuration::getSgdocPessoaFuncaoInteressado());
     $pessoa->setSqArtefato($artefato);
     $pessoa->setSqPessoaFuncao($pessoaFuncao);
     $pessoa->setNoPessoa($vwPessoa->getNoPessoa());
     $pessoa->setSqTipoPessoa($tipoPessoa);
     if ($vwPessoa->getSqTelefone()->count()) {
         $pessoa->setNuTelefone($vwPessoa->getSqTelefone()->first()->getNuTelefone());
     }
     if ($vwPessoa->getSqEndereco()->count()) {
         $pessoa->setCoCep($vwPessoa->getSqEndereco()->first()->getSqCep());
         $pessoa->setTxEndereco($vwPessoa->getSqEndereco()->first()->getTxEndereco());
         $pessoa->setNuNumeroEndereco($vwPessoa->getSqEndereco()->first()->getNuEndereco());
         $pessoa->setTxComplemento($vwPessoa->getSqEndereco()->first()->getTxComplemento());
         $pessoa->setNoBairro($vwPessoa->getSqEndereco()->first()->getNoBairro());
         //             $municipio = new VwMunicipio();
         //             $municipio->setSqMunicipio($vwPessoa->getSqEndereco()->first()->getSqMunicipio());
         //             $pessoa->setSqMunicipioEndereco($municipio);
     }
     if ($vwPessoa->getSqEmail()->count()) {
         $pessoa->setTxEnderecoEletronico($vwPessoa->getSqEmail()->first()->getTxEmail());
     }
     $pessoa->setSqPessoaCorporativo($vwPessoa);
     $qtdNuHistorico = $this->getServiceLocator()->getService('pessoa')->getNextNuHistoricoPessoaByEntity($pessoa);
     $pessoa->setNuHistoricoPessoa($qtdNuHistorico);
     //@todo rever sequencial
     $unidade = \Core_Integration_Sica_User::get();
     $unidade = $this->getServiceLocator()->getService('UnidadeOrg')->find($unidade->sqUnidadeOrg);
     $pessoa->setNoUnidadeOrg($unidade->getNoUnidadeOrg());
     $metadata = $this->getEntityManager()->getClassMetadata(get_class($pessoa));
     $uow = $this->getEntityManager()->getUnitOfWork();
     foreach ($metadata->associationMappings as $field => $prop) {
         $value = $metadata->reflFields[$field]->getValue($pessoa);
         if (is_object($value)) {
             $metadataAssoc = $this->getEntityManager()->getClassMetadata(get_class($value));
             $idsFk = $metadataAssoc->getIdentifierValues($value);
             if ($idsFk) {
                 $uow->registerManaged($value, $idsFk, array());
                 $uow->removeFromIdentityMap($value);
             }
         }
     }
     $eManger = $this->getEntityManager();
     $eManger->persist($pessoa);
     $eManger->flush();
 }
 /**
  * Método que clona a pessoa assinante
  * @param Sgdoce\Model\Entity\Artefato $artefato
  * @param Sgdoce\Model\Entity\Artefato $artefatoClone
  * @return Sgdoce\Model\Entity\Artefato $entityAssinanteClone
  */
 private function savePessoaAssinanteArtefatoClone($artefato, $artefatoClone)
 {
     $criteria = array('sqArtefato' => $artefato->getSqArtefato());
     $entityAssinanteArtefato = $this->_getRepository('app:PessoaAssinanteArtefato')->findBy($criteria);
     if (is_array($entityAssinanteArtefato)) {
         foreach ($entityAssinanteArtefato as $entityAssinante) {
             $entityAssinanteClone = clone $entityAssinante;
             $entityAssinanteClone->setSqArtefato($artefatoClone);
             $this->getEntityManager()->persist($entityAssinanteClone);
             $this->getEntityManager()->flush($entityAssinanteClone);
         }
     }
     return $entityAssinanteClone;
 }