Esempio n. 1
0
 public function comboProfile(\Core_Dto_Mapping $dto, $inFuncionalidade = TRUE)
 {
     $queryBuilder = $this->_em->createQueryBuilder();
     $queryBuilder->select('p.sqPerfil', 'p.noPerfil')->from('app:Perfil', 'p')->innerJoin('p.sqSistema', 's')->where('p.stRegistroAtivo = :stRegistroAtivo')->setParameter('stRegistroAtivo', 'TRUE');
     if ($inFuncionalidade) {
         $queryBuilder->leftJoin('p.sqPerfilFuncionalidade', 'pf');
     }
     if ($dto->getSqSistema() !== '') {
         $queryBuilder->andWhere('p.sqSistema = :sqSistema')->setParameter('sqSistema', $dto->getSqSistema());
     }
     if ($dto->getInPerfilExterno() == '1') {
         $queryBuilder->andWhere($queryBuilder->expr()->eq('p.inPerfilExterno', ':perfilExterno'));
         $queryBuilder->setParameter('perfilExterno', 'TRUE');
     } else {
         if ($dto->getInPerfilExterno() == '0') {
             $queryBuilder->andWhere($queryBuilder->expr()->eq('p.inPerfilExterno', ':perfilExterno'));
             $queryBuilder->setParameter('perfilExterno', 'FALSE');
         }
     }
     return $queryBuilder->getQuery()->getArrayResult();
 }
Esempio n. 2
0
 public function countPerfil(\Core_Dto_Mapping $mapping)
 {
     $queryBuilder = $this->_em->createQueryBuilder();
     $queryBuilder->select('COUNT(up.sqPerfil)')->from($this->_entityName, 'up')->where($queryBuilder->expr()->eq('up.sqUsuario', ':usuario'))->setParameter('usuario', $mapping->getUsuario());
     return $queryBuilder->getQuery()->getSingleScalarResult();
 }
Esempio n. 3
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();
 }
Esempio n. 4
0
 public function deleteProfile(\Core_Dto_Mapping $mapping)
 {
     $criteria = array('sqUsuarioExterno' => $mapping->getUsuario(), 'sqPerfil' => $mapping->getPerfil());
     $perfis = $this->_getRepository('app:UsuarioExternoPerfil')->findBy($criteria);
     foreach ($perfis as $perfil) {
         $this->getEntityManager()->remove($perfil);
         $this->getEntityManager()->flush();
     }
     if (!$this->getServiceLocator()->getService('UsuarioExternoPerfil')->findBy(array('sqUsuarioExterno' => $mapping->getUsuario()))) {
         $entity = $this->find($mapping->getUsuario());
         $entity->setStRegistroAtivo(\Core_Configuration::getSicaeUsuarioExtStRegistroInativo());
         $this->getEntityManager()->persist($entity);
         $this->getEntityManager()->flush($entity);
     }
 }
Esempio n. 5
0
 public function toggleStatus(\Core_Dto_Mapping $dto)
 {
     return $this->_getRepository()->toggleStatus($dto->getId(), $dto->getStatus());
 }
Esempio n. 6
0
 public function deleteProfile(\Core_Dto_Mapping $mapping)
 {
     $criteria = array('sqUsuario' => $mapping->getUsuario(), 'sqUnidadeOrgPessoa' => $mapping->getUnidade(), 'sqPerfil' => $mapping->getPerfil());
     $perfis = $this->_getRepository('app:UsuarioPerfil')->findBy($criteria);
     foreach ($perfis as $perfil) {
         $this->getEntityManager()->remove($perfil);
         $this->getEntityManager()->flush();
     }
     if (!$this->getServiceLocator()->getService('UsuarioPerfil')->findBy(array('sqUsuario' => $mapping->getUsuario()))) {
         $entity = $this->find($mapping->getUsuario());
         $this->getEntityManager()->persist($entity);
         $this->getEntityManager()->flush($entity);
     }
 }
Esempio n. 7
0
 /**
  * método para persistencia  - Grau de Acesso
  * @param \Core_Dto_Search $dto
  */
 public function alterarArtefato($dto)
 {
     $sqTipoDocumento = $this->_getRepository('app:TipoDocumento')->find($dto->getSqTipoDocumento());
     $criteria = array('sqAssunto' => $dto->getSqAssunto(), 'sqTipoArtefato' => \Core_Configuration::getSgdoceTipoArtefatoDossie());
     $sqTipoArtefatoAssunto = $this->_getRepository('app:TipoArtefatoAssunto')->findBy($criteria);
     $entity = $this->_getRepository('app:Artefato')->find($dto->getSqArtefato());
     $entity->setNuArtefato($dto->getNuArtefato());
     $entity->setSqTipoDocumento($sqTipoDocumento);
     $entity->setTxAssuntoComplementar($dto->getTxAssuntoComplementar());
     $entity->setSqTipoArtefatoAssunto($this->_getRepository('app:TipoArtefatoAssunto')->find($sqTipoArtefatoAssunto[0]->getSqTipoArtefatoAssunto()));
     $entityArtefatoDossie = $this->_getRepository('app:ArtefatoDossie')->find($dto->getSqArtefato());
     if (!$entityArtefatoDossie) {
         $entityArtefatoDossie = new \Sgdoce\Model\Entity\ArtefatoDossie();
     }
     $entityArtefatoDossie->setNoTitulo($dto->getNoTitulo());
     $entityArtefatoDossie->setTxObservacao($dto->getTxObservacao());
     $entityArtefatoDossie->setSqArtefato($entity);
     $this->getEntityManager()->persist($entityArtefatoDossie);
     $this->getEntityManager()->flush($entityArtefatoDossie);
     //Persistir PessoaAssinanteArtefato
     $this->persistPessoaAssinanteArtefato($entity, $dto);
     self::_salvaOrigem($entity, $dto);
     // RN - Caso não exista Grau de Acesso ao Artefato sera por default publico(1)
     if (!$dto->getSqGrauAcesso()) {
         $data = array('sqGrauAcesso' => \Core_Configuration::getSgdoceGrauAcessoPublico());
         $dto = new \Core_Dto_Mapping($data, array_keys($data));
         $sqGrauAcesso = $this->_getRepository('app:GrauAcesso')->find($dto->getSqGrauAcesso());
     } else {
         $sqGrauAcesso = $this->_getRepository('app:GrauAcesso')->find($dto->getSqGrauAcesso());
     }
     // realizando a persistencia do Grau de Acesso
     $test = $this->persistGrauAcessoArtefato($entity, $sqGrauAcesso);
     $this->getEntityManager()->persist($entity);
     $this->getEntityManager()->flush($entity);
 }
Esempio n. 8
0
 /**
  * Metódo que realiza o post Save.
  * @param Object $entity
  * @param Object $dto
  */
 public function postSave($entity, $dto = NULL)
 {
     try {
         // RN - Caso não exista Grau de Acesso ao Artefato sera por default publico(1)
         if (!$dto->getSqGrauAcesso()) {
             $data = array('sqGrauAcesso' => \Core_Configuration::getSgdoceGrauAcessoPublico());
             $dtoAcesso = new \Core_Dto_Mapping($data, array_keys($data));
             $sqGrauAcesso = $this->_getRepository('app:GrauAcesso')->find($dtoAcesso->getSqGrauAcesso());
         } else {
             $sqGrauAcesso = $this->_getRepository('app:GrauAcesso')->find($dto->getSqGrauAcesso());
         }
         // realizando a persistencia do Grau de Acesso
         $this->getServiceLocator()->getService('Dossie')->persistGrauAcessoArtefato($entity, $sqGrauAcesso);
         $strMessage = NULL;
         if ($this->_firstTramite) {
             $strMessage = $this->getServiceLocator()->getService('HistoricoArtefato')->getMessage('MH005', $entity->getDtCadastro()->get(\Zend_Date::DATETIME_MEDIUM), \Core_Integration_Sica_User::getUserName());
             $nuOcorrencia = \Core_Configuration::getSgdoceSqOcorrenciaCadastrar();
         } else {
             $strMessage = $this->getServiceLocator()->getService('HistoricoArtefato')->getMessage('MH006', \Zend_Date::now()->get(\Zend_Date::DATETIME_MEDIUM), \Core_Integration_Sica_User::getUserName());
             $nuOcorrencia = \Core_Configuration::getSgdoceSqOcorrenciaAlterar();
         }
         $this->getServiceLocator()->getService('HistoricoArtefato')->registrar($entity->getSqArtefato(), $nuOcorrencia, $strMessage);
         // verificando atributo
         // noResponsavelAssinatura vem o sqPessoa selecionado no autocomplete
         if ($dto->getNoResponsavelAssinatura() != NULL) {
             /**
              * em caso de update de documento de origem externa ou com tipo de documento sem assinatura e que não tiver assinante
              * efetua a exclusão caso ja tenha sido preenchido
              * anteriormente
              */
             if ($entity->getSqArtefato() && !$dto->getNoResponsavelAssinatura()) {
                 $this->_checkExcluirAssinante($entity, $dto);
             } else {
                 $sqPessoaResponsavelAssinatura = $dto->getNoResponsavelAssinatura_hidden() ? $dto->getNoResponsavelAssinatura_hidden() : $dto->getNoResponsavelAssinatura();
                 $noPessoaResponsavelAssinatura = $dto->getNoResponsavelAssinatura_autocomplete() ? $dto->getNoResponsavelAssinatura_autocomplete() : $dto->getNoResponsavelAssinatura();
                 if (!is_numeric($sqPessoaResponsavelAssinatura)) {
                     throw new \Core_Exception_ServiceLayer_Verification('Ocorreu um erro na identificação do assintante do documento. ' . "Preencha o campo <b>Assinatura</b> novamente.");
                 }
                 $entityPessoa = $this->pessoaCorporativoSgdoce($sqPessoaResponsavelAssinatura, $noPessoaResponsavelAssinatura);
                 $pessoaArtefato = $this->getServiceLocator()->getService('Artefato')->cadastrarPessoaArtefato($entity, $entityPessoa, \Core_Configuration::getSgdocePessoaFuncaoAssinatura());
                 $this->getEntityManager()->persist($pessoaArtefato);
                 $this->getEntityManager()->flush($pessoaArtefato);
                 // verificando se existe registro em PessoaAssinanteArtefato
                 if ($dto->getProcedenciaInterno() != 'externo') {
                     //só quando é unidade
                     if ($dto->getSqPessoaOrigem() != '') {
                         $sqPessoaOrigem = NULL;
                     } else {
                         $sqPessoaOrigem = $dto->getSqPessoaIcmbio();
                     }
                     $pessoaUnidadeOrg = $this->hasPessoaUnidadeOrg($entityPessoa, $dto->getNoPessoaFuncaoAssinante(), $sqPessoaOrigem);
                     $criteria = array('sqArtefato' => $entity->getSqArtefato());
                     $entPessoaAssinante = $this->_getRepository('app:PessoaAssinanteArtefato')->findOneBy($criteria);
                     // verificando se existe registro
                     if (count($entPessoaAssinante)) {
                         // atualizando PessoaAssinanteArtefato
                         $entPessoaAssinante->setSqPessoaUnidadeOrg($pessoaUnidadeOrg);
                         if ($dto->getNoPessoaFuncaoAssinante() != $entPessoaAssinante->getNoCargoAssinante()) {
                             $entPessoaAssinante->setNoCargoAssinante($dto->getNoPessoaFuncaoAssinante());
                         }
                     } else {
                         // Preparando Entidade para salvar
                         /** @var PessoaAssinanteArtefato $resPessoaAssinante */
                         $entPessoaAssinante = $this->_newEntity('app:PessoaAssinanteArtefato');
                         //                            $entPessoaAssinante->setSqArtefato($this->_getRepository('app:Artefato')->find($entity->getSqArtefato()));
                         $entPessoaAssinante->setSqArtefato($entity);
                         $entPessoaAssinante->setSqPessoaUnidadeOrg($pessoaUnidadeOrg);
                         $entPessoaAssinante->setNoCargoAssinante($dto->getNoPessoaFuncaoAssinante());
                     }
                     // salvando PessoaAssinanteArtefato
                     $this->getEntityManager()->persist($entPessoaAssinante);
                     $this->getEntityManager()->flush($entPessoaAssinante);
                 }
             }
         } else {
             /**
              * em caso de update de documento de origem externa e não tiver assinante efetua a exclusão caso ja tenha sido preenchido
              * anteriormente
              */
             $this->_checkExcluirAssinante($entity, $dto);
         }
         //sqPrazo = 1 (data) e sqPrazo = 2 (dias)
         $entity->setDtPrazo($dto->getSqPrazo() == 2 ? NULL : $dto->getDtPrazo() != '' ? $dto->getDtPrazo() : NULL);
         $entity->setNuDiasPrazo($dto->getNuDiasPrazo() == '' ? NULL : $dto->getNuDiasPrazo());
         //Tira os Espaços do 'enter' para salvar com 250 caracteres
         $txAssuntoComplementar = $this->getServiceLocator()->getService('MinutaEletronica')->fixNewlines($entity->getTxAssuntoComplementar());
         $entity->setTxAssuntoComplementar(!$txAssuntoComplementar ? NULL : $txAssuntoComplementar);
         // salvando Origem e Destino
         self::salvaOrigemDestino($entity, $dto);
         if ($entity->getNuDigital() && !$entity->getNuDigital() instanceof \Sgdoce\Model\Entity\EtiquetaNupSiorg) {
             $entityEtiquetaNupSiorg = $this->getEntityManager()->getPartialReference('app:EtiquetaNupSiorg', $entity->getNuDigital());
             $entity->setNuDigital($entityEtiquetaNupSiorg);
         }
         // persistindo informacao
         $this->getEntityManager()->persist($entity);
         $this->getEntityManager()->flush($entity);
         /*
          * ##### INTERESSADO #####
          *
          * só é postado no create, em caso de edit os interessados são
          * manutenidos no proprio formulario
          *
          */
         if ($dto->getDataInteressado()) {
             $dataIntessado = $dto->getDataInteressado();
             foreach ($dataIntessado->getApi() as $method) {
                 $line = $dataIntessado->{$method}();
                 //metodo foi copiado e adaptado de Artefato_PessoaController::addInteressadoAction()
                 $add = $this->addInteressado(array('noPessoa' => $line->getNoPessoa(), 'unidFuncionario' => $line->getUnidFuncionario(), 'sqPessoaCorporativo' => $line->getSqPessoaCorporativo(), 'sqTipoPessoa' => $line->getSqTipoPessoa(), 'sqPessoaFuncao' => $line->getSqPessoaFuncao(), 'sqArtefato' => $entity->getSqArtefato()));
                 if (!$add) {
                     throw new \Core_Exception_ServiceLayer($line->getNoPessoa() . ' já é um interessado deste documento.');
                 }
             }
         }
         /*
          * ##### REFERÊNCIA (VINCULO) #####
          *
          * só é postado no create, em caso de edit os vinculos são
          * manutenidos no proprio formulario
          *
          */
         if ($dto->getDataVinculo()) {
             //só é postado no create
             $dataVinculo = $dto->getDataVinculo();
             foreach ($dataVinculo->getApi() as $method) {
                 $gridLine = $dataVinculo->{$method}();
                 //metodo foi copiado e adaptado de Artefato_DocumentoController::addDocumentoEletronicoAction()
                 $add = $this->addVinculo(array('nuDigital' => $gridLine->getNuDigital(), 'nuArtefatoVinculacao' => $gridLine->getNuArtefatoVinculacao(), 'sqTipoArtefato' => $gridLine->getSqTipoArtefato(), 'sqArtefato' => $entity->getSqArtefato(), 'tipoVinculo' => \Core_Configuration::getSgdoceTipoVinculoArtefatoReferencia(), 'inOriginal' => $gridLine->getInOriginal()));
                 if (!$add) {
                     $msg = "A digital <b>{$gridLine->getNuDigital()}</b> já esta vinculada a este documento";
                     if ($gridLine->getSqTipoArtefato() == \Core_Configuration::getSgdoceTipoArtefatoProcesso()) {
                         $msg = "O processo <b>{$gridLine->getNuArtefatoVinculacao()}</b> já esta vinculado a este documento";
                     }
                     throw new \Core_Exception_ServiceLayer($msg);
                 }
             }
         }
         #processar anexos para SIC
         if (true === (bool) $dto->getIsSic() && (int) $dto->getUploader_count() > 0) {
             $this->_processaAnexoSIC($entity, $dto);
         }
         if ($this->_firstTramite) {
             $this->getServiceLocator()->getService('TramiteArtefato')->insertFirstTramite($entity->getSqArtefato());
         }
     } catch (\Exception $e) {
         $this->getEntityManager()->getConnection()->rollback();
         throw $e;
     }
 }
Esempio n. 9
0
 /**
  *
  * @param \Core_Dto_Mapping $dto
  */
 public function order(\Core_Dto_Mapping $dto)
 {
     $entity = $this->_getRepository()->find($dto->getSqMenu());
     if ($entity->getSqMenuPai() !== NULL) {
         $sqMenuPai = $entity->getSqMenuPai()->getSqMenu();
     } else {
         $sqMenuPai = NULL;
     }
     $criteria = array('sqMenuPai' => $sqMenuPai, 'sqSistema' => $dto->getSqSistema());
     if ($dto->getDirecao() == 'up') {
         $criteria['nuOrdemApresent'] = $entity->getNuOrdemApresent() - 1;
         $entity->setNuOrdemApresent($entity->getNuOrdemApresent() - 1);
         $entity2 = current($this->_getRepository()->findBy($criteria));
         if ($entity2) {
             $entity2->setNuOrdemApresent($entity2->getNuOrdemApresent() + 1);
         }
     } else {
         if ($dto->getDirecao() == 'down') {
             $criteria['nuOrdemApresent'] = $entity->getNuOrdemApresent() + 1;
             $entity->setNuOrdemApresent($entity->getNuOrdemApresent() + 1);
             $entity2 = current($this->_getRepository()->findBy($criteria));
             if ($entity2) {
                 $entity2->setNuOrdemApresent($entity2->getNuOrdemApresent() - 1);
             }
         }
     }
     $entityManager = $this->getEntityManager();
     $entityManager->persist($entity);
     if ($entity2) {
         $entityManager->persist($entity2);
     }
     $entityManager->flush();
     $menusDown = $this->_getRepository()->findMenuBySystemAndPai($dto->getSqSistema(), NULL, $entity->getSqMenuPai() !== NULL ? $entity->getSqMenuPai()->getSqMenu() : NULL);
     $indice = 1;
     if ($menusDown) {
         foreach ($menusDown as $menu) {
             $menu->setNuOrdemApresent($indice);
             $this->_getRepository()->updateNuOrdem($menu);
             $indice++;
         }
     }
 }
Esempio n. 10
0
 /**
  * Salva dados de endereço, telefone e email vindos do infoconv quando for cadastro de nova PJ
  *
  * @param integer $sqPessoa
  * @param \Core_Dto_Mapping $dto
  * @return \Principal\Service\PessoaJuridica
  */
 private function _processAddressPhoneEmail($sqPessoa, \Core_Dto_Mapping $dto)
 {
     $infoconvAddress = $dto->getAddress_infoconv();
     $infoconvPhone = $dto->getPhone_infoconv();
     $infoconvEmail = $dto->getEmail_infoconv();
     if ($infoconvAddress) {
         $infoconvAddress = json_decode(str_replace('\\', '', $infoconvAddress));
         $addressMethod = 'libCorpSaveEndereco';
         $addressRepository = 'app:Endereco';
         $addressFilters = array('sqCep' => 'Digits');
         $arrAddressValues = array(array('name' => 'sqPessoa', 'value' => $sqPessoa), array('name' => 'sqTipoEndereco', 'value' => \Core_Configuration::getCorpTipoEnderecoInstitucional()));
         $fnCropString = function ($str, $length) {
             if (mb_strlen($str, 'UTF-8') > $length) {
                 $str = mb_substr($str, 0, $length, 'UTF-8');
             }
             return $str;
         };
         foreach ($infoconvAddress as $key => $value) {
             switch ($key) {
                 case 'sqEstado':
                     //infoconv retorno a sigla do estado
                     if (!is_numeric($value)) {
                         $arrEntEstado = $this->_getRepository('app:Estado')->findBySgEstado(trim($value));
                         if ($arrEntEstado) {
                             $value = current($arrEntEstado)->getSqEstado();
                         }
                     }
                     break;
                 case 'txComplemento':
                 case 'noBairro':
                     $value = $fnCropString($value, 100);
                     break;
                 case 'txEndereco':
                     $value = $fnCropString($value, 200);
                     break;
                 case 'nuEndereco':
                     $value = $fnCropString($value, 6);
                     break;
                 default:
                     break;
             }
             $arrAddressValues[] = array('name' => $key, 'value' => $value);
         }
         //endforeach;
         //salva os dados do endereco
         $resultAddress = $this->saveFormWebService($addressRepository, $addressMethod, $arrAddressValues, $addressFilters);
     }
     if ($infoconvPhone) {
         $infoconvPhone = json_decode(str_replace('\\', '', $infoconvPhone));
         $phoneMethod = 'libCorpSaveTelefone';
         $phoneRepository = 'app:Telefone';
         $phoneFilters = array('nuDdd' => 'Digits', 'nuTelefone' => 'Digits');
         $arrPhoneValues = array(array('name' => 'sqPessoa', 'value' => $sqPessoa), array('name' => 'sqTipoTelefone', 'value' => \Core_Configuration::getCorpTipoTelefoneInstitucional()));
         foreach ($infoconvPhone as $key => $value) {
             $arrPhoneValues[] = array('name' => $key, 'value' => $value);
         }
         //endforeach;
         //salva os dados do telefone
         $resultPhone = $this->saveFormWebService($phoneRepository, $phoneMethod, $arrPhoneValues, $phoneFilters);
     }
     if ($infoconvEmail) {
         $infoconvEmail = json_decode(str_replace('\\', '', $infoconvEmail));
         $emailMethod = 'libCorpSaveEmail';
         $emailRepository = 'app:Email';
         $arrEmailValues = array(array('name' => 'sqPessoa', 'value' => $sqPessoa), array('name' => 'sqTipoEmail', 'value' => \Core_Configuration::getCorpTipoEmailInstitucional()));
         $arrEmailValues[] = array('name' => 'txEmail', 'value' => $infoconvEmail);
         //salva os dados do email
         $resultEmail = $this->saveFormWebService($emailRepository, $emailMethod, $arrEmailValues);
     }
     return $this;
 }
Esempio n. 11
0
 /**
  * @param Core_Model_Entity_Abstract $entity
  * @param type $dto
  */
 public function postInsert($entity, $dto = null, $artefatoProcesso = null, $digital = null)
 {
     $retorno = false;
     $this->getEntityManager()->beginTransaction();
     try {
         // salva o artefato_processo
         $artefatoProcesso->setSqArtefato($entity);
         // Ao autuar um documento sempre vai abrir um volume, iniciando pela página um.
         // Adicionando um volume na linha 148 deste arquivo.
         $artefatoProcesso->setNuVolume(1);
         $artefatoProcesso->setNuPaginaProcesso(1);
         $this->getServiceLocator()->getService('ProcessoEletronico')->saveArtefatoProcesso($artefatoProcesso);
         $arrPesArtDto = array('entity' => 'Sgdoce\\Model\\Entity\\PessoaArtefato', 'mapping' => array('sqPessoaFuncao' => 'Sgdoce\\Model\\Entity\\PessoaFuncao', 'sqPessoaSgdoce' => 'Sgdoce\\Model\\Entity\\PessoaSgdoce', 'sqArtefato' => 'Sgdoce\\Model\\Entity\\Artefato'));
         $arrParams = array();
         $arrParams['sqArtefato'] = $entity->getSqArtefato();
         $arrParams['sqPessoaFuncao'] = \Core_Configuration::getSgdocePessoaFuncaoAutor();
         $arrParams['sqPessoaSgdoce'] = current($this->getServiceLocator()->getService('PessoaSgdoce')->findBy(array('sqPessoaCorporativo' => \Core_Integration_Sica_User::getPersonId())))->getSqPessoaSgdoce();
         $objPessoaArtefatoDto = \Core_Dto::factoryFromData($arrParams, 'entity', $arrPesArtDto);
         $this->getServiceLocator()->getService('PessoaArtefato')->savePessoaArtefato($objPessoaArtefatoDto);
         $this->_salvaOrigem($entity, $dto);
         // RN - Caso não exista Grau de Acesso ao Artefato sera por default publico(1)
         if (!$dto->getSqGrauAcesso()) {
             $data = array('sqGrauAcesso' => \Core_Configuration::getSgdoceGrauAcessoPublico());
             $dtoAcesso = new \Core_Dto_Mapping($data, array_keys($data));
             $sqGrauAcesso = $this->_getRepository('app:GrauAcesso')->find($dtoAcesso->getSqGrauAcesso());
         } else {
             $sqGrauAcesso = $this->_getRepository('app:GrauAcesso')->find($dto->getSqGrauAcesso());
         }
         // realizando a persistencia do Grau de Acesso
         $this->getServiceLocator()->getService('Dossie')->persistGrauAcessoArtefato($entity, $sqGrauAcesso);
         /*
          * ##### INTERESSADO #####
          *
          * só é postado no create, em caso de edit os interessados são
          * manutenidos no proprio formulario
          *
          */
         if ($dto->getDataInteressado()) {
             $dataIntessado = $dto->getDataInteressado();
             foreach ($dataIntessado->getApi() as $method) {
                 $line = $dataIntessado->{$method}();
                 //metodo foi copiado e adaptado de Artefato_PessoaController::addInteressadoAction()
                 $add = $this->getServiceLocator()->getService('Documento')->addInteressado(array('noPessoa' => $line->getNoPessoa(), 'unidFuncionario' => $line->getUnidFuncionario(), 'sqPessoaCorporativo' => $line->getSqPessoaCorporativo(), 'sqTipoPessoa' => $line->getSqTipoPessoa(), 'sqPessoaFuncao' => $line->getSqPessoaFuncao(), 'sqArtefato' => $entity->getSqArtefato()));
                 if (!$add) {
                     throw new \Core_Exception_ServiceLayer($line->getNoPessoa() . ' já é um interessado deste documento.');
                 }
             }
         }
         /**
          * #### VOLUME ####
          */
         $sqPessoaAbertura = \Core_Integration_Sica_User::getPersonId();
         $sqUnidadeOrgAbertura = \Core_Integration_Sica_User::getUserUnit();
         $entPessoaAbertura = $this->getEntityManager()->getPartialReference('app:VwPessoa', $sqPessoaAbertura);
         $entUnidadeOrgAbertura = $this->getEntityManager()->getPartialReference('app:VwUnidadeOrg', $sqUnidadeOrgAbertura);
         $entVolume = $this->_newEntity('app:ProcessoVolume');
         $entVolume->setSqArtefato($entity);
         $entVolume->setNuVolume(1);
         $entVolume->setNuFolhaInicial(1);
         $entVolume->setDtAbertura(\Zend_Date::now());
         $entVolume->setSqPessoaAbertura($entPessoaAbertura);
         $entVolume->setSqUnidadeOrgAbertura($entUnidadeOrgAbertura);
         $this->getEntityManager()->persist($entVolume);
         /*
          * ##### (PEÇA) #####
          */
         $this->getServiceLocator()->getService('ArtefatoVinculo')->inserirPeca(array('parent' => $entity, 'child' => $digital), \Core_Configuration::getSgdoceTipoVinculoArtefatoAutuacao());
         // #HistoricoArtefato::save();
         $nuDigital = $digital->getNuDigital()->getNuEtiqueta();
         $dataAtual = new \Zend_Date(\Zend_Date::now());
         $nuProcesso = $this->getServiceLocator()->getService("Processo")->formataProcessoAmbitoFederal($entity);
         $strMessage = $this->getServiceLocator()->getService('HistoricoArtefato')->getMessage('MH012', $dataAtual->get("dd/MM/yyyy HH:mm:ss"), $nuProcesso);
         $this->getServiceLocator()->getService('HistoricoArtefato')->registrar($entity->getSqArtefato(), \Core_Configuration::getSgdoceSqOcorrenciaCadastrar(), $strMessage);
         // insere tramite
         $this->getServiceLocator()->getService('TramiteArtefato')->insertFirstTramite($entity->getSqArtefato());
         $this->getMessaging()->addSuccessMessage("Documento autuado gerando o processo " . $nuProcesso, "User");
         $retorno = $this->getEntityManager()->commit();
     } catch (\Exception $objException) {
         $this->getEntityManager()->rollback();
         $this->getMessaging()->addErrorMessage("[" . $objException->getCode() . "] " . $objException->getMessage(), "User");
         $retorno = $objException;
     }
     $this->getMessaging()->dispatchPackets();
     return $retorno;
 }
Esempio n. 12
0
 public function getDataMail(\Core_Dto_Mapping $mapping, $perfis)
 {
     $tipoEmailInstituicional = \Core_Configuration::getCorpTipoEmailInstitucional();
     $queryBuilder = $this->_em->createQueryBuilder();
     $queryBuilder->select('p.noPessoa,  e.txEmail')->from($this->_entityName, 'u')->innerJoin('u.sqPessoa', 'p')->innerJoin('p.email', 'e', 'WITH', $queryBuilder->expr()->eq('e.sqTipoEmail', ':tipoEmail'))->where($queryBuilder->expr()->eq('u.sqUsuario', ':usuario'))->setParameter('usuario', $mapping->getUsuario())->setParameter('tipoEmail', $tipoEmailInstituicional, 'integer');
     $data['usuario'] = $queryBuilder->getQuery()->getSingleResult();
     $queryBuilder = $this->_em->createQueryBuilder();
     $arrPerfil = array();
     foreach ($perfis as $value) {
         $arrPerfil[] = $value->getSqPerfil();
     }
     $queryBuilder->select('p.noPerfil, s.sgSistema, s.noSistema')->from('app:UsuarioPerfil', 'up')->innerJoin('up.sqPerfil', 'p')->innerJoin('p.sqSistema', 's')->innerJoin('up.sqUnidadeOrgPessoa', 'u')->where($queryBuilder->expr()->eq('up.sqUsuario', ':usuario'))->setParameter('usuario', $mapping->getUsuario())->andWhere('u.sqUnidadeOrgPessoa = :sqUnidadeOrgPessoa')->setParameter('sqUnidadeOrgPessoa', $mapping->getUnidade())->andWhere($queryBuilder->expr()->in('p.sqPerfil', $arrPerfil));
     $data['perfis'] = $queryBuilder->getQuery()->getArrayResult();
     return $data;
 }