/** * Metódo que recupera o Dto do Rodape */ public function getDtoRodape($data) { unset($data['sqTipoAssinante']); unset($data['noProfissao']); $data['sqPessoaCorporativo'] = $data['sqPessoaRodape']; $data['sqTipoPessoa'] = \Core_Configuration::getSgdoceTipoPessoaPessoaFisica(); $data['sqPessoaFuncao'] = \Core_Configuration::getSgdocePessoaFuncaoDadosRodape(); $data['noPessoa'] = $data['sqPessoaRodape_autocomplete']; $data['txEndereco'] = $data['txEnderecoRodape']; $data['coCep'] = str_replace('.', '', str_replace('-', '', $data['coCepRodape'])); $data['txEnderecoEletronico'] = $data['txEmailRodape']; $data['nuTelefone'] = trim(str_replace('-', '', $data['txTelefoneRodape'])); $data['sqPessoaSgdoce'] = $data['sqTbPessoa']; $dtoPessoaSgdoce['PessoaSgdoce'] = \Core_Dto::factoryFromData($data, 'entity', array('entity' => 'Sgdoce\\Model\\Entity\\PessoaSgdoce', 'mapping' => array('sqTipoPessoa' => 'Sgdoce\\Model\\Entity\\VwTipoPessoa', 'sqPessoaCorporativo' => array('sqPessoa' => 'Sgdoce\\Model\\Entity\\VwPessoa')))); //pessoaArtefato $dtoPessoaSgdoce['PessoaArtefato'] = \Core_Dto::factoryFromData($data, 'entity', array('entity' => 'Sgdoce\\Model\\Entity\\PessoaArtefato', 'mapping' => array('sqArtefato' => 'Sgdoce\\Model\\Entity\\Artefato', 'sqPessoaSgdoce' => 'Sgdoce\\Model\\Entity\\PessoaSgdoce', 'sqEnderecoSgdoc' => 'Sgdoce\\Model\\Entity\\EnderecoSgdoc', 'sqPessoaFuncao' => 'Sgdoce\\Model\\Entity\\PessoaFuncao', 'sqTratamentoVocativo' => 'Sgdoce\\Model\\Entity\\TratamentoVocativo'))); return $dtoPessoaSgdoce; }
/** * Metódo que realiza o save da pessoa interessa e assinante. */ public function saveExtraPessoa($entity, $entityArtefatoClone, $entityArtefato) { //grava pessoa interessada artefato $entityInteressadaArtefato = $this->_getRepository('app:PessoaInteressadaArtefato')->findBy(array('sqArtefato' => $entity->getSqArtefato()->getSqArtefato())); if (is_array($entityInteressadaArtefato)) { foreach ($entityInteressadaArtefato as $entityInteressada) { $entityInteressadaClone = clone $entityInteressada; $entityInteressadaClone->setSqArtefato($entityArtefatoClone); $this->getEntityManager()->persist($entityInteressadaClone); $this->getEntityManager()->flush($entityInteressadaClone); } } //grava pessoa interessada artefato $entityAssinanteArtefato = $this->_getRepository('app:PessoaAssinanteArtefato')->findBy(array('sqArtefato' => $entity->getSqArtefato()->getSqArtefato())); if (is_array($entityAssinanteArtefato)) { foreach ($entityAssinanteArtefato as $entityAssinante) { $entityAssinanteClone = clone $entityAssinante; $entityAssinanteClone->setSqArtefato($entityArtefatoClone); $this->getEntityManager()->persist($entityAssinanteClone); $this->getEntityManager()->flush($entityAssinanteClone); } } //grava pessoa motivacao artefato $entityMotivacaoArtefato = $this->_getRepository('app:Motivacao')->findBy(array('sqArtefato' => $entity->getSqArtefato()->getSqArtefato())); if (is_array($entityMotivacaoArtefato)) { foreach ($entityMotivacaoArtefato as $entityMotivacao) { $entityMotivacaoClone = clone $entityMotivacao; $entityMotivacaoClone->setSqArtefato($entityArtefatoClone); $this->getEntityManager()->persist($entityMotivacaoClone); $this->getEntityManager()->flush($entityMotivacaoClone); } } //grava rodape $criteria = array('sqArtefato' => $entityArtefato->getSqArtefato(), 'sqPessoaFuncao' => \Core_Configuration::getSgdocePessoaFuncaoDadosRodape()); $entityRodapeArtefato = $this->_getRepository('app:PessoaArtefato')->findOneBy($criteria); if ($entityRodapeArtefato) { $entityRodapeArtefatoClone = clone $entityRodapeArtefato; $entityRodapeArtefatoClone->setSqArtefato($entityArtefatoClone); $this->getEntityManager()->persist($entityRodapeArtefatoClone); $this->getEntityManager()->flush($entityRodapeArtefatoClone); } //grava o artefato minuta $entityArtefatoMinuta = $this->_getRepository()->find($entity->getSqArtefato()->getSqArtefato()); $entityArtefatoMinutaClone = clone $entityArtefatoMinuta; $entityArtefatoMinutaClone->setSqArtefato($entityArtefatoClone); $this->getEntityManager()->persist($entityArtefatoMinutaClone); $this->getEntityManager()->flush($entityArtefatoMinutaClone); //save historico $criteria = array('sqArtefato' => $entity->getSqArtefato()->getSqArtefato()); $entityHistorico = $this->_getRepository('app:HistoricoArtefato')->findBy($criteria); $entityHistoricoClone = clone $entityHistorico[0]; $entityHistoricoClone->setSqArtefato($entityArtefatoClone); $this->getEntityManager()->persist($entityHistoricoClone); $this->getEntityManager()->flush($entityHistoricoClone); //save origem $entityOrigemSgdoce = $this->getPessoaSgdoce($entity, \Core_Configuration::getSgdocePessoaFuncaoOrigem()); $entityOrigemSgdoceClone = clone $entityOrigemSgdoce[0]; $entityOrigemSgdoceClone->setSqArtefato($entityArtefatoClone); $this->getEntityManager()->persist($entityOrigemSgdoceClone); $this->getEntityManager()->flush($entityOrigemSgdoceClone); //save autor $entityAutorSgdoce = $this->getPessoaSgdoce($entity, \Core_Configuration::getSgdocePessoaFuncaoAutor()); $entityAutorSgdoceClone = clone $entityAutorSgdoce[0]; $entityAutorSgdoceClone->setSqArtefato($entityArtefatoClone); $this->getEntityManager()->persist($entityAutorSgdoceClone); $this->getEntityManager()->flush($entityAutorSgdoceClone); }
/** * Metódo que realiza o save da Assinatura */ public function saveRodape($dto, $pessoaEntity) { $filter = new \Zend_Filter(); $criteria = array('sqPessoaSgdoce' => $pessoaEntity['PessoaSgdoce']->getSqPessoaSgdoce()); $entityAux = $this->_getRepository('app:PessoaSgdoce')->findOneBy($criteria); $pessoaSgdoceEntity = $pessoaEntity['PessoaSgdoce']->getEntity(); $pessoaArtefatoEntity = $pessoaEntity['PessoaArtefato']->getEntity(); if (!$entityAux) { $entityAux = $this->_newEntity('app:PessoaSgdoce'); } $tipoPessoa = $this->getEntityManager()->getPartialReference('app:VwTipoPessoa', $pessoaSgdoceEntity->getSqTipoPessoa()->getSqTipoPessoa()); $sqPessoaCorporativo = $this->getEntityManager()->getPartialReference('app:VwPessoa', $pessoaSgdoceEntity->getSqPessoaCorporativo()->getSqPessoa()); $entityAux->setNoPessoa($pessoaSgdoceEntity->getNoPessoa()); $entityAux->setSqPessoaCorporativo($sqPessoaCorporativo); $entityAux->setSqTipoPessoa($tipoPessoa); $this->getEntityManager()->persist($entityAux); $this->getEntityManager()->flush($entityAux); //salvar endereco / telefone / email -- // falta consultar se existe já o endereco e setar no id $entityEnderecoArtefato = $this->getServiceLocator()->getService('EnderecoSgdoce')->saveEnderecoPessoaRodape($dto, $entityAux); $entityEmailArtefato = $this->getServiceLocator()->getService('EmailSgdoce')->saveEmailPessoaRodape($dto, $entityAux); $entityTelefoneArtefato = $this->getServiceLocator()->getService('TelefoneSgdoce')->saveTelefonePessoaRodape($dto, $entityAux); //salvar pessoaArtefato $entityPessoaArtefato = $this->_newEntity('app:PessoaArtefato'); $entityArtefato = $this->getEntityManager()->getPartialReference('app:Artefato', $pessoaArtefatoEntity->getSqArtefato()->getSqArtefato()); $entityPessoaFuncao = $this->getEntityManager()->getPartialReference('app:PessoaFuncao', \Core_Configuration::getSgdocePessoaFuncaoDadosRodape()); $entityPessoaArtefato->setSqArtefato($entityArtefato); $entityPessoaArtefato->setSqPessoaSgdoce($entityAux); $entityPessoaArtefato->setSqPessoaFuncao($entityPessoaFuncao); //outros sets ender/tel/email/ $entityPessoaArtefato->setSqEnderecoSgdoce($entityEnderecoArtefato); $entityPessoaArtefato->setSqEmailSgdoce($entityEmailArtefato); $entityPessoaArtefato->setSqTelefoneSgdoce($entityTelefoneArtefato); $params['sqPessoaCorporativo'] = $pessoaSgdoceEntity->getSqPessoaCorporativo()->getSqPessoa(); $params['sqArtefato'] = $pessoaArtefatoEntity->getSqArtefato()->getSqArtefato(); $params['sqPessoaFuncao'] = \Core_Configuration::getSgdocePessoaFuncaoDadosRodape(); $dto = \Core_Dto::factoryFromData($params, 'search'); $result = $this->getServiceLocator()->getService('Pessoa')->findPessoaAssinaturaArtefato($dto); if (!$result) { $this->getEntityManager()->persist($entityPessoaArtefato); $this->getEntityManager()->flush($entityPessoaArtefato); } return $entityAux; }
/** * método que obtén informarções da pessoa 'rodape' relacionada ao artefato * @param integer * @return array */ public function getPessoaArtefatoRodape($dto) { $select = 'pf.sqPessoaFuncao, pf.noPessoaFuncao, p.sqPessoaSgdoce ,e.txEndereco, e.nuEndereco, em.txEmail, p.noPessoa, p.noProfissao, te.nuTelefone,te.nuDdd, t.noTratamento, tv.deEnderecamento, v.noVocativo, cid.noMunicipio, est.noEstado,e.coCep, a.deImagemRodape, pc.sqPessoa sqPessoaCorporativo'; $query = $this->_em->createQueryBuilder()->select($select)->from('app:Artefato', 'a')->innerJoin('a.sqPessoaArtefato', 'pa')->innerJoin('pa.sqPessoaSgdoce', 'p')->innerJoin('pa.sqPessoaFuncao', 'pf')->leftJoin('pa.sqTratamentoVocativo', 'tv')->leftJoin('tv.sqTratamento', 't')->leftJoin('tv.sqVocativo', 'v')->leftJoin('p.sqPessoaCorporativo', 'pc')->leftJoin('pa.sqEnderecoSgdoce', 'e')->leftJoin('e.sqMunicipio', 'cid')->leftJoin('cid.sqEstado', 'est')->leftJoin('pa.sqEmailSgdoce', 'em')->leftJoin('pa.sqTelefoneSgdoce', 'te')->andWhere('a.sqArtefato = :sqArtefato')->setParameter('sqArtefato', $dto->getSqArtefato())->andWhere('pf.sqPessoaFuncao = :sqPessoaFuncao')->setParameter('sqPessoaFuncao', \Core_Configuration::getSgdocePessoaFuncaoDadosRodape())->getQuery()->execute(); if (empty($query)) { return NULL; } return $query[0]; }