Exemplo n.º 1
0
 /**
  *
  * @param $entity
  * @param \Core_Dto $dto
  */
 public function preInsert($entity, $dto = NULL)
 {
     $dtoDuplicado = \Core_Dto::factoryFromData(array('sqArtefato' => $dto->getSqArtefato(), 'sqTipoAssuntoSolicitacao' => $dto->getSqTipoAssuntoSolicitacao(), 'sqPessoa' => \Core_Integration_Sica_User::getPersonId(), 'sqUnidadeOrg' => \Core_Integration_Sica_User::getUserUnit()), 'search');
     $listResult = $this->_getRepository()->getSolicitacaoDuplicado($dtoDuplicado);
     if (count($listResult)) {
         throw new \Core_Exception_ServiceLayer(\Core_Registry::getMessage()->translate('MN206'));
     }
     # artefatos inconsistêntes não podem abrir solicitação de alguns tipos de solicitação
     $isInconsistent = $this->getServiceLocator()->getService('Artefato')->isInconsistent($dtoDuplicado);
     if ($isInconsistent && in_array($dto->getSqTipoAssuntoSolicitacao(), $this->getTipoAssuntoSolcOnlyConsistent())) {
         throw new \Core_Exception_ServiceLayer(\Core_Registry::getMessage()->translate('MN205'));
     }
     # se for exclusão de volume e só houver um volume cadastrado, não permite a criação
     if ($dto->getSqTipoAssuntoSolicitacao() == \Core_Configuration::getSgdoceTipoAssuntoSolicitacaoVolumeDeProcesso() && !$this->_getRepository('app:ProcessoVolume')->notTheOnlyVolume($dto->getSqArtefato())) {
         throw new \Core_Exception_ServiceLayer(\Core_Registry::getMessage()->translate('MN207'));
     }
     //Tira os Espaços do 'enter' para salvar com 500 caracteres
     $dsSolicitacao = $this->getServiceLocator()->getService('MinutaEletronica')->fixNewlines($entity->getDsSolicitacao());
     $entity->setDsSolicitacao(!$dsSolicitacao ? NULL : $dsSolicitacao);
     $this->getEntityManager()->getConnection()->beginTransaction();
     try {
         $entSqPessoa = $this->getEntityManager()->getPartialReference('app:VwPessoa', \Core_Integration_Sica_User::getPersonId());
         $entSqUnidadeOrg = $this->getEntityManager()->getPartialReference('app:VwUnidadeOrg', \Core_Integration_Sica_User::getUserUnit());
         $entTipoAssuntoSolicitacao = $this->_getRepository('app:TipoAssuntoSolicitacao')->find($dto->getSqTipoAssuntoSolicitacao());
         $entity->setDtSolicitacao(\Zend_Date::now());
         $entity->setSqPessoa($entSqPessoa);
         $entity->setSqUnidadeOrg($entSqUnidadeOrg);
         $entity->setSqTipoAssuntoSolicitacao($entTipoAssuntoSolicitacao);
     } catch (\Exception $e) {
         $this->getEntityManager()->getConnection()->rollback();
         throw $e;
     }
 }
Exemplo n.º 2
0
 /**
  * SALVA HISTORICO.
  *
  * @param Sgdoce\Model\Entity\HistoricoArtefato $entHistoricoArtefato
  *
  * @return Sgdoce\Model\Entity\HistoricoArtefato
  */
 public function save(\Core_Dto_Entity $entHistoricoArtefato)
 {
     $arrDto = array('sqPessoa' => \Core_Integration_Sica_User::getPersonId(), 'sqUnidade' => \Core_Integration_Sica_User::getUserUnit());
     $objCDto = \Core_Dto::factoryFromData($arrDto, 'search');
     $entVwPessoa = $this->getServiceLocator()->getService('Pessoa')->findbyPessoaCorporativo($objCDto);
     $entVwUnidOrg = $this->getServiceLocator()->getService('VwUnidadeOrg')->getDadosUnidade($objCDto);
     return $this->_save($entHistoricoArtefato->getSqArtefato(), $entVwUnidOrg, $entVwPessoa, $entHistoricoArtefato->getSqOcorrencia(), $entHistoricoArtefato->getTxDescricaoOperacao());
 }
 public function _factoryParamsExtrasSave($params)
 {
     $arrDto = array();
     $arrDto['params'] = new Core_Dto_Search($params);
     if (isset($params['txJustificativa']) && $params['txJustificativa']) {
         $arrData = array('dtInclusao' => Zend_Date::now()->get('dd/MM/YYYY'), 'txJustificativa' => $params['txJustificativa'], 'sqPessoaAutora' => Core_Integration_Sica_User::getPersonId(), 'sqPessoaAutoriza' => $params['sqPessoaResponsavel']);
         $arrDto['sqCadastroSemCpf'] = Core_Dto::factoryFromData($arrData, 'entity', array('entity' => '\\Sgdoce\\Model\\Entity\\VwCadastroSemCpf'));
     }
     return $arrDto;
 }
Exemplo n.º 4
0
 /**
  * Método que popula os objetos para serem salvos no banco
  * @return void
  */
 public function setOperationalEntity($entityName = NULL)
 {
     $userUnit = \Core_Integration_Sica_User::getUserUnit();
     $personId = \Core_Integration_Sica_User::getPersonId();
     $this->_data['sqUnidadeUsuario'] = $this->_getRepository('app:VwUnidadeOrg')->find($userUnit);
     $this->_data['sqPessoaCadastro'] = $this->_getRepository('app:VwPessoa')->find($personId);
     $this->_data['sqClassificacao'] = $this->_getRepository('app:Classificacao')->find($this->_data['sqClassificacao']);
     $this->_data['sqUnidadeOrg'] = $this->_getRepository('app:VwUnidadeOrg')->find($this->_data['sqUnidadeOrg']);
     $this->_data['stFechamento'] = false;
     $this->_data['dtCadastro'] = \Zend_Date::now();
     $this->_data['stAtivo'] = true;
 }
 /**
  * Método que obtém os dados para grid
  * @param \Core_Dto_Search $dtoSearch
  * @return array
  */
 public function getResultList(\Core_Dto_Search $dtoSearch)
 {
     $this->view->perfil = Core_Integration_Sica_User::getUserProfile();
     $dtoSearch->sqPessoa = Core_Integration_Sica_User::getPersonId();
     $dtoSearch->sqUnidadeOrg = Core_Integration_Sica_User::getUserUnit();
     $dtoSearch->sqTipoArtefato = $this->getRequest()->getParam('tipoArtefato') ? $this->getRequest()->getParam('tipoArtefato') : 1;
     $dtoSearch->search = $this->getRequest()->getParam('search') ? $this->getRequest()->getParam('search') : null;
     $this->view->isUserSgi = $this->_isUserSgi();
     $this->view->isUserPro = $this->view->perfil == \Core_Configuration::getSgdocePerfilProtocolo();
     $dtoUnidadeOrg = Core_Dto::factoryFromData(array('sqUnidadeOrg' => $dtoSearch->sqUnidadeOrg), 'search');
     $dtoSearch->currentUnitHasNUP = $this->getService('VwUnidadeOrg')->hasNUP($dtoUnidadeOrg);
     $caixa = $this->_getParam('migration_box');
     $dtoSearch->caixa = $caixa;
     $res = $this->getService()->getGrid($dtoSearch);
     return $res;
 }
Exemplo n.º 6
0
 /**
  * @param $entity
  * @param $dto
  */
 public function preSave($entity, $dto = NULL, $entPrazo = NULL)
 {
     $sqPessoaDestino = $entity->getSqPessoaDestino();
     if ($sqPessoaDestino && is_numeric($sqPessoaDestino)) {
         $entSqPessoaDestino = $this->getEntityManager()->getPartialReference('app:VwPessoa', $entity->getSqPessoaDestino());
         $entity->setSqPessoaDestino($entSqPessoaDestino);
     } else {
         if ($sqPessoaDestino instanceof \Sgdoce\Model\Entity\VwPessoa) {
             if ($entity->getSqPessoaDestino() && is_null($entity->getSqPessoaDestino()->getSqPessoa())) {
                 $entity->setSqPessoaDestino(NULL);
             }
         } else {
             $entity->setSqPessoaDestino(NULL);
         }
     }
     if (is_null($entity->getDtCadastro())) {
         $entity->setDtCadastro(\Zend_Date::now());
     }
     $sqPrazoPai = $entity->getSqPrazoPai();
     if (!empty($sqPrazoPai) && is_numeric($sqPrazoPai)) {
         $entPrazoPai = $this->getEntityManager()->getPartialReference('app:Prazo', $sqPrazoPai);
         $entity->setSqPrazoPai($entPrazoPai);
     }
     $entSqUnidadeOrgPessoa = $this->getEntityManager()->getPartialReference('app:VwUnidadeOrg', \Core_Integration_Sica_User::getUserUnit());
     $entSqPessoa = $this->getEntityManager()->getPartialReference('app:VwPessoa', \Core_Integration_Sica_User::getPersonId());
     if ($dto->getIsResposta()) {
         $entity->setDtResposta(\Zend_Date::now());
         $entity->setSqUnidadeOrgPessoaResposta($entSqUnidadeOrgPessoa);
         $entity->setSqPessoaResposta($entSqPessoa);
         $entity->setDtPrazo($entPrazo->getDtPrazo());
         $entity->setTxSolicitacao($entPrazo->getTxSolicitacao());
         if ($dto->getSqArtefatoResposta()) {
             $entArtefatoResposta = $this->getEntityManager()->getPartialReference('app:Artefato', (int) $dto->getSqArtefatoResposta());
             $entity->setSqArtefatoResposta($entArtefatoResposta);
         } else {
             $entity->setSqArtefatoResposta(NULL);
         }
         $entSqUnidadeOrgPessoaPrazo = $this->getEntityManager()->getPartialReference('app:VwUnidadeOrg', $entPrazo->getSqUnidadeOrgPessoaPrazo()->getSqUnidadeOrg());
         $entSqPessoaPrazo = $this->getEntityManager()->getPartialReference('app:VwPessoa', $entPrazo->getSqPessoaPrazo()->getSqPessoa());
         $entity->setSqUnidadeOrgPessoaPrazo($entSqUnidadeOrgPessoaPrazo);
         $entity->setSqPessoaPrazo($entSqPessoaPrazo);
     } else {
         $entity->setSqUnidadeOrgPessoaPrazo($entSqUnidadeOrgPessoa);
         $entity->setSqPessoaPrazo($entSqPessoa);
     }
 }
Exemplo n.º 7
0
 /**
  * Realiza consulta sobre serviço infoconv
  */
 public function serviceInfoconvAction()
 {
     $criteria = array();
     try {
         if ($this->_getParam('nuCnpj')) {
             $cnpj = Zend_Filter::filterStatic($this->_getParam('nuCnpj'), 'Digits');
             $result = $this->getServiceLocator()->getService('VwPessoa')->getDataInfoconvBy($cnpj, 'cnpj');
             $result = \Core_Integration_Abstract_Soap::xmlToArray($result);
             $criteria['code'] = $result['errocode'];
             if ('failure' == $result['status']) {
                 throw new \Exception($result['response']);
             }
             $criteria['noPessoa'] = str_replace("&", "&", $result['response']['nome_empresarial']);
             $criteria['noFantasia'] = $result['response']['nome_fantasia'] ? str_replace("&", "&", $result['response']['nome_fantasia']) : '';
             $natJurInfoconv = $result['response']['natureza_juridica'];
             $naturezaJuridicaPai = trim(substr($natJurInfoconv, 0, 1) . '00');
             $naturezaJuridica = trim(substr($natJurInfoconv, 0, 3));
             $criteria['sqNaturezaJuridicaPai'] = $naturezaJuridicaPai > 0 ? $naturezaJuridicaPai : '';
             $criteria['sqNaturezaJuridica'] = $naturezaJuridica > 0 ? $naturezaJuridica : '';
         } else {
             $cpf = Zend_Filter::filterStatic($this->_getParam('nuCpf'), 'Digits');
             $result = $this->getServiceLocator()->getService('VwPessoa')->getDataInfoconvBy($cpf, 'cpf');
             $result = \Core_Integration_Abstract_Soap::xmlToArray($result);
             $criteria['code'] = $result['errocode'];
             if ('failure' == $result['status']) {
                 throw new \Exception($result['response']);
             }
             $criteria['noPessoa'] = $result['response']['nome'] ? $result['response']['nome'] : '';
             $criteria['dtNascimento'] = $result['response']['data_nascimento'] ? $result['response']['data_nascimento'] : '';
             $criteria['noMae'] = $result['response']['nome_mae'] ? trim($result['response']['nome_mae']) : '';
             $criteria['nacionalidade'] = (bool) $result['response']['estrangeiro'] ? 2 : 1;
             $criteria['sqPaisNaturalidade'] = (int) $result['response']['codigo_pais_exterior'];
             $criteria['noPaisNaturalidade'] = $result['response']['nome_pais_exterior'];
         }
         $criteria['dtIntegracaoInfoconv'] = Zend_Date::now()->toString();
         $criteria['personId'] = trim(\Core_Integration_Sica_User::getPersonId());
         $criteria['success'] = true;
     } catch (Exception $e) {
         $criteria['response'] = $e->getMessage();
         $criteria['success'] = false;
     }
     $this->_helper->json($criteria);
     die;
 }
Exemplo n.º 8
0
 /**
  * @param type $entity
  * @param type $dto
  * @param type $objArtProDto
  */
 public function postSave($entity, $dto = null, $objArtProDto = null)
 {
     $retorno = false;
     $this->getEntityManager()->beginTransaction();
     $sqPessoaCorporativo = \Core_Integration_Sica_User::getPersonId();
     try {
         // salva o artefato_processo
         $objArtProDto->setSqArtefato($entity);
         $this->saveArtefatoProcesso($objArtProDto);
         $arrPesArtDto = array('entity' => 'Sgdoce\\Model\\Entity\\PessoaArtefato', 'mapping' => array('sqPessoaFuncao' => 'Sgdoce\\Model\\Entity\\PessoaFuncao', 'sqPessoaSgdoce' => 'Sgdoce\\Model\\Entity\\PessoaSgdoce', 'sqArtefato' => 'Sgdoce\\Model\\Entity\\Artefato'));
         $sqPessoaSgdoce = $this->_getRepository('app:PessoaSgdoce')->findBySqPessoaCorporativo($sqPessoaCorporativo);
         if (empty($sqPessoaSgdoce)) {
             $filter = new \Zend_Filter_Digits();
             $data['sqPessoaCorporativo'] = $this->_getRepository('app:VwPessoa')->find($sqPessoaCorporativo);
             $dtoPessoaSearch = \Core_Dto::factoryFromData($data, 'search');
             $cpfCnpjPassaportUnfiltered = $this->getServiceLocator()->getService('VwPessoa')->returnCpfCnpjPassaporte($dtoPessoaSearch);
             $cpfCnpjPassaport = $filter->filter($cpfCnpjPassaportUnfiltered);
             $noPessoaCorporativo = $data['sqPessoaCorporativo']->getNoPessoa();
             $this->addPessoaSgdoce($sqPessoaCorporativo, $noPessoaCorporativo, $cpfCnpjPassaport);
             $sqPessoaSgdoce = $this->_getRepository('app:PessoaSgdoce')->findBySqPessoaCorporativo($sqPessoaCorporativo);
         }
         $arrParams = array();
         $arrParams['sqArtefato'] = $entity->getSqArtefato();
         $arrParams['sqPessoaFuncao'] = \Core_Configuration::getSgdocePessoaFuncaoAutor();
         $arrParams['sqPessoaSgdoce'] = $sqPessoaSgdoce[0]->getSqPessoaSgdoce();
         $objPessoArtefato = $this->getServiceLocator()->getService('PessoaArtefato')->findBy($arrParams);
         if (!count($objPessoArtefato)) {
             $objPessoaArtefatoDto = \Core_Dto::factoryFromData($arrParams, 'entity', $arrPesArtDto);
             $this->getServiceLocator()->getService('PessoaArtefato')->savePessoaArtefato($objPessoaArtefatoDto);
         }
         $this->_salvaOrigem($entity, $dto);
         // SALVA GRAU DE ACESSO.
         if ($dto->getSqGrauAcesso()) {
             $grauAcesso = $this->getEntityManager()->getPartialReference('app:GrauAcesso', $dto->getSqGrauAcesso());
             $this->getServiceLocator()->getService('GrauAcessoArtefato')->saveGrauAcessoArtefato($entity, $grauAcesso);
         }
         /*
          * ##### VOLUME #####
          *
          * só é postado no create
          *
          */
         if ($dto->getDataVolume()) {
             $dataIntessado = $dto->getDataVolume();
             $sqPessoaAbertura = \Core_Integration_Sica_User::getPersonId();
             $sqUnidadeOrgAbertura = \Core_Integration_Sica_User::getUserUnit();
             foreach ($dataIntessado->getApi() as $method) {
                 $line = $dataIntessado->{$method}();
                 if (!(int) $line->getNuVolume()) {
                     throw new \Core_Exception_ServiceLayer('Volume não informado.');
                 }
                 $nuFolhaFinal = (int) $line->getNuFolhaFinal();
                 $dtEncerramento = null;
                 if (!empty($nuFolhaFinal)) {
                     $dtEncerramento = \Zend_Date::now();
                 } else {
                     $nuFolhaFinal = null;
                 }
                 $add = $this->getServiceLocator()->getService('ProcessoVolume')->addVolume(array('nuVolume' => (int) $line->getNuVolume(), 'nuFolhaInicial' => (int) $line->getNuFolhaInicial(), 'nuFolhaFinal' => $nuFolhaFinal, 'sqArtefato' => $entity->getSqArtefato(), 'sqPessoa' => $sqPessoaAbertura, 'sqUnidadeOrg' => $sqUnidadeOrgAbertura, 'dtAbertura' => \Zend_Date::now(), 'dtEncerramento' => $dtEncerramento));
                 if (!$add) {
                     throw new \Core_Exception_ServiceLayer('Erro ao adicionar volume.');
                 }
             }
         }
         /*
          * ##### 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 processo.');
                 }
             }
         }
         /*
          * ##### 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->getServiceLocator()->getService('Documento')->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 processo.";
                     }
                     throw new \Core_Exception_ServiceLayer($msg);
                 }
             }
         }
         // #HistoricoArtefato::save();
         $dtAcao = new \Zend_Date(\Zend_Date::now());
         $sqOcorrencia = 0;
         if ($this->_firstTramite) {
             $sqOcorrencia = \Core_Configuration::getSgdoceSqOcorrenciaCadastrar();
             $message = "Processo cadastrado com sucesso";
             $strHMessage = sprintf(\Core_Registry::getMessage()->translate('MH007'), \Core_Integration_Sica_User::getUserName(), $dtAcao->get(\Zend_Date::DATETIME_MEDIUM));
         } else {
             $sqOcorrencia = \Core_Configuration::getSgdoceSqOcorrenciaAlterar();
             $message = "Processo alterado com sucesso";
             if ($dto->getIsAutuacao()) {
                 $message = "Processo autuado com sucesso!";
             }
             $strHMessage = sprintf(\Core_Registry::getMessage()->translate('MH008'), \Core_Integration_Sica_User::getUserName(), $dtAcao->get(\Zend_Date::DATETIME_MEDIUM));
         }
         $this->getServiceLocator()->getService('HistoricoArtefato')->registrar($entity->getSqArtefato(), $sqOcorrencia, $strHMessage);
         if ($this->_firstTramite) {
             $this->getServiceLocator()->getService('TramiteArtefato')->insertFirstTramite($entity->getSqArtefato());
         }
         $this->getMessaging()->addSuccessMessage($message, "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;
 }
Exemplo n.º 9
0
 /**
  * @param type $dto
  * @return type
  */
 protected function _inserirTramite($dto)
 {
     $this->getEntityManager()->getConnection()->beginTransaction();
     try {
         $objUltTramiteArtefato = $this->getServiceLocator()->getService('TramiteArtefato')->findBy(array('sqArtefato' => $dto->getSqArtefato()));
         $objUltTramiteArtefato = current($objUltTramiteArtefato);
         $entArtefato = $this->getEntityManager()->getPartialReference('app:Artefato', $dto->getSqArtefato());
         if ($objUltTramiteArtefato instanceof \Sgdoce\Model\Entity\TramiteArtefato) {
             // RECEBE ARTEFATO.
             $entStatusTramite = $this->getEntityManager()->getPartialReference('app:StatusTramite', \Core_Configuration::getSgdoceStatusTramiteRecebido());
             $entPessoa = $this->getEntityManager()->getPartialReference('app:VwPessoa', \Core_Integration_Sica_User::getPersonId());
             $entPessoaDestino = $this->getEntityManager()->getPartialReference('app:VwPessoa', \Core_Integration_Sica_User::getUserUnit());
             $entUnidadeOrg = $this->getEntityManager()->getPartialReference('app:VwUnidadeOrg', \Core_Integration_Sica_User::getUserUnit());
             $newTramiteArtefato = $this->_newEntity('app:TramiteArtefato');
             $artefatoDto = \Core_Dto::factoryFromData(array('sqArtefato' => $dto->getSqArtefato()), 'search');
             $nextNuTramite = $this->getServiceLocator()->getService('TramiteArtefato')->getNextTramiteNumber($artefatoDto);
             $newTramiteArtefato->setSqArtefato($entArtefato);
             $newTramiteArtefato->setSqPessoaTramite($entPessoa);
             $newTramiteArtefato->setSqUnidadeOrgTramite($entUnidadeOrg);
             $newTramiteArtefato->setSqPessoaDestino($entPessoaDestino);
             $newTramiteArtefato->setSqPessoaDestinoInterno($entPessoa);
             $newTramiteArtefato->setSqPessoaRecebimento($entPessoa);
             $newTramiteArtefato->setSqStatusTramite($entStatusTramite);
             $newTramiteArtefato->setNuTramite($nextNuTramite);
             $newTramiteArtefato->setDtTramite(\Zend_Date::now());
             $newTramiteArtefato->setDtRecebimento(\Zend_Date::now()->addSecond(1));
             $newTramiteArtefato->setInImpresso(true);
             $this->getEntityManager()->persist($newTramiteArtefato);
             $this->getEntityManager()->flush($newTramiteArtefato);
         } else {
             $newTramiteArtefato = $this->getServiceLocator()->getService('TramiteArtefato')->insertFirstTramite($dto->getSqArtefato());
         }
         $this->getEntityManager()->getConnection()->commit();
     } catch (\Exception $e) {
         $this->getEntityManager()->getConnection()->rollback();
         throw $e;
     }
     return $newTramiteArtefato;
 }
Exemplo n.º 10
0
 /**
  * @param type $entity
  * @param type $dto
  * @param type $objArtProDto
  */
 public function postSave($entity, $dto = null, $objArtProDto = null)
 {
     $retorno = false;
     $this->getEntityManager()->beginTransaction();
     $sqPessoaCorporativo = \Core_Integration_Sica_User::getPersonId();
     try {
         // salva o artefato_processo
         $objArtProDto->setSqArtefato($entity);
         $this->saveArtefatoProcesso($objArtProDto);
         $arrPesArtDto = array('entity' => 'Sgdoce\\Model\\Entity\\PessoaArtefato', 'mapping' => array('sqPessoaFuncao' => 'Sgdoce\\Model\\Entity\\PessoaFuncao', 'sqPessoaSgdoce' => 'Sgdoce\\Model\\Entity\\PessoaSgdoce', 'sqArtefato' => 'Sgdoce\\Model\\Entity\\Artefato'));
         $sqPessoaSgdoce = $this->_getRepository('app:PessoaSgdoce')->findBySqPessoaCorporativo($sqPessoaCorporativo);
         if (empty($sqPessoaSgdoce)) {
             $filter = new \Zend_Filter_Digits();
             $data['sqPessoaCorporativo'] = $this->_getRepository('app:VwPessoa')->find($sqPessoaCorporativo);
             $dtoPessoaSearch = \Core_Dto::factoryFromData($data, 'search');
             $cpfCnpjPassaportUnfiltered = $this->getServiceLocator()->getService('VwPessoa')->returnCpfCnpjPassaporte($dtoPessoaSearch);
             $cpfCnpjPassaport = $filter->filter($cpfCnpjPassaportUnfiltered);
             $noPessoaCorporativo = $data['sqPessoaCorporativo']->getNoPessoa();
             $this->addPessoaSgdoce($sqPessoaCorporativo, $noPessoaCorporativo, $cpfCnpjPassaport);
             $sqPessoaSgdoce = $this->_getRepository('app:PessoaSgdoce')->findBySqPessoaCorporativo($sqPessoaCorporativo);
         }
         $arrParams = array();
         $arrParams['sqArtefato'] = $entity->getSqArtefato();
         $arrParams['sqPessoaFuncao'] = \Core_Configuration::getSgdocePessoaFuncaoAutor();
         $arrParams['sqPessoaSgdoce'] = $sqPessoaSgdoce[0]->getSqPessoaSgdoce();
         $objPessoArtefato = $this->getServiceLocator()->getService('PessoaArtefato')->findBy($arrParams);
         if (!count($objPessoArtefato)) {
             $objPessoaArtefatoDto = \Core_Dto::factoryFromData($arrParams, 'entity', $arrPesArtDto);
             $this->getServiceLocator()->getService('PessoaArtefato')->savePessoaArtefato($objPessoaArtefatoDto);
         }
         // Autor
         $this->_arInconsistencia[3] = 't';
         $this->_salvaOrigem($entity, $dto);
         $this->_arInconsistencia[0] = 't';
         // SALVA GRAU DE ACESSO.
         if ($dto->getSqGrauAcesso()) {
             $grauAcesso = $this->getEntityManager()->getPartialReference('app:GrauAcesso', $dto->getSqGrauAcesso());
             $this->getServiceLocator()->getService('GrauAcessoArtefato')->saveGrauAcessoArtefato($entity, $grauAcesso);
         }
         /*
          * ##### VOLUME #####
          *
          * só é postado no create
          *
          */
         if ($dto->getDataVolume()) {
             $dataIntessado = $dto->getDataVolume();
             $sqPessoaAbertura = \Core_Integration_Sica_User::getPersonId();
             $sqUnidadeOrgAbertura = \Core_Integration_Sica_User::getUserUnit();
             foreach ($dataIntessado->getApi() as $method) {
                 $line = $dataIntessado->{$method}();
                 if (!(int) $line->getNuVolume()) {
                     throw new \Core_Exception_ServiceLayer('Volume não informado.');
                 }
                 $nuFolhaFinal = (int) $line->getNuFolhaFinal();
                 $dtEncerramento = null;
                 if (!empty($nuFolhaFinal)) {
                     $dtEncerramento = \Zend_Date::now();
                 } else {
                     $nuFolhaFinal = null;
                 }
                 $add = $this->getServiceLocator()->getService('ProcessoVolume')->addVolume(array('nuVolume' => (int) $line->getNuVolume(), 'nuFolhaInicial' => (int) $line->getNuFolhaInicial(), 'nuFolhaFinal' => $nuFolhaFinal, 'sqArtefato' => $entity->getSqArtefato(), 'sqPessoa' => $sqPessoaAbertura, 'sqUnidadeOrg' => $sqUnidadeOrgAbertura, 'dtAbertura' => \Zend_Date::now(), 'dtEncerramento' => $dtEncerramento));
                 if (!$add) {
                     throw new \Core_Exception_ServiceLayer('Erro ao adicionar volume.');
                 }
             }
         }
         /*
          * ##### 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 processo.');
                 }
                 $this->_arInconsistencia[2] = 't';
             }
         } else {
             $dtoInteressado = \Core_Dto::factoryFromData(array('sqArtefato' => $entity->getSqArtefato()), 'search');
             $nuInteressados = $this->getServiceLocator()->getService('PessoaInterassadaArtefato')->countInteressadosArtefato($dtoInteressado);
             if ($nuInteressados['nu_interessados'] > 0) {
                 $this->_arInconsistencia[2] = 't';
             } else {
                 throw new \Core_Exception_ServiceLayer(\Core_Registry::getMessage()->translate('MN176'));
             }
         }
         /*
          * ##### 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->getServiceLocator()->getService('Documento')->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 processo.";
                     }
                     throw new \Core_Exception_ServiceLayer($msg);
                 }
             }
         }
         // #HistoricoArtefato::save();
         $dtAcao = new \Zend_Date(\Zend_Date::now());
         #Datas default
         $this->_arInconsistencia[5] = 't';
         # Se estiver tudo corrigido, insere tramite se tiver que inserir.
         # existe um parametro no form que indica se o tramite deve ser inserido
         # pois o documento já poderá estar na area de trabalho da pessoa (neste caso nao insere)
         if (!in_array('f', $this->_arInconsistencia) && $dto->getPersistTramite()) {
             $this->getServiceLocator()->getService('VinculoMigracao')->setArtefatoCorrigido($entity->getSqArtefato());
         } else {
             $this->_arInconsistencia[6] = 't';
         }
         $arInconsistencia = implode(",", $this->_arInconsistencia);
         $arInconsistencia = "{" . $arInconsistencia . "}";
         $entity->setArInconsistencia($arInconsistencia);
         // persistindo informacao
         $this->getEntityManager()->persist($entity);
         $this->getEntityManager()->flush($entity);
         // #HistoricoArtefato::save();
         $strMessage = $this->getServiceLocator()->getService('HistoricoArtefato')->getMessage('MH022');
         $this->getServiceLocator()->getService('HistoricoArtefato')->registrar($entity->getSqArtefato(), \Core_Configuration::getSgdoceSqOcorrenciaCorrigirMigracao(), $strMessage);
         $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;
 }
Exemplo n.º 11
0
 /**
  * @return void
  */
 protected function editActionExtension()
 {
     $params = $this->_getAllParams();
     $dtoCheckEdit = Core_Dto::factoryFromData(array('sqArtefato' => $params['id'], 'sqPessoa' => \Core_Integration_Sica_User::getPersonId()), 'search');
     //verifica se o artefato pode ser editado
     //        if (!$this->getService('AreaTrabalho')->canEditArtefact($dtoCheckEdit)) {
     //            $this->getMessaging()->addErrorMessage(
     //                    sprintf(\Core_Registry::getMessage()->translate('MN154'),
     //                            $this->view->data->getNuDigital()->getNuEtiqueta()));
     //            $this->_redirect('/artefato/area-trabalho');
     //        }
     $params['sqArtefato'] = $params['id'];
     $dtoSearch = Core_Dto::factoryFromData($params, 'search');
     $this->view->redirect = $params['view'];
     $this->view->user = $this->getUser();
     $this->getCombo();
     $this->view->isLoteEletronico = false;
     $this->view->eDigital = $this->view->data->getNuDigital();
     if ($this->view->data->getSqTipoDocumento()) {
         $this->view->isSIC = $this->view->data->getSqTipoDocumento()->getSqTipoDocumento() == \Core_Configuration::getSgdoceTipoDocumentoSic();
     } else {
         $this->view->isSIC = false;
     }
     $this->view->docSIC = $this->view->data->getSqTipoDocumento();
     $dtoSgdoceFisico = \Core_Dto::factoryFromData(array('nuDigital' => $this->view->data->getNuDigital()->getNuEtiqueta(), 'sqArtefato' => $this->view->data->getSqArtefato()), 'search');
     $this->view->dataSgdocFisico = $this->getService()->getDataSgdocFisico($dtoSgdoceFisico);
     $this->view->dataSgdocFisico = current($this->view->dataSgdocFisico);
     $this->view->listProcedenciaFisico = array('I' => 'Interno', 'E' => 'Externo');
     $this->view->nuInteressados = $this->getService('PessoaInterassadaArtefato')->countInteressadosArtefatoValido($dtoSgdoceFisico);
     $dto = Core_Dto::factoryFromData(array('sqPessoaCorporativo' => \Core_Configuration::getSgdoceUnidadeCgu(), 'sqTipoPessoa' => \Core_Configuration::getCorpTipoPessoaUnidadeExt()), 'search');
     $this->view->CGU = !$this->view->isSIC ? null : $this->getService('Pessoa')->getPessoa($dto);
     // retorno de valor para a view
     $this->view->tipoNavegacao = $dtoSearch->getA();
     $this->view->dataGrauAcesso = $this->getService('GrauAcessoArtefato')->getGrauAcessoArtefato($dtoSearch);
     $criteria = array('sqArtefato' => $params['sqArtefato'], 'sqPessoaFuncao' => \Core_Configuration::getSgdocePessoaFuncaoAssinatura());
     $this->view->assinanteArtefatoExterno = $this->getService('PessoaArtefato')->findOneBy($criteria);
     $this->view->assinanteArtefatoInterno = $this->getService('PessoaAssinanteArtefato')->getAssinanteArtefato($dtoSearch);
     $this->view->dadosOrigem = self::_dadosPessoaDocumento($dtoSearch, \Core_Configuration::getSgdocePessoaFuncaoOrigem());
     $this->view->dadosDestino = self::_dadosPessoaDocumento($dtoSearch, \Core_Configuration::getSgdocePessoaFuncaoDestinatario());
     $this->view->result = $this->getService('AnexoArtefato')->listGridAnexos($dtoSearch);
     if ($this->view->dadosDestino) {
         $sqTipoPessoa = $this->view->dadosDestino[0]->getSqPessoaSgdoce()->getSqTipoPessoa()->getSqTipoPessoa();
         if ($sqTipoPessoa == \Core_Configuration::getCorpTipoPessoaFisica()) {
             $this->view->nacionalidadeDestino = $this->returnNacionalidade($this->view->dadosDestino);
         }
     }
     if ($this->view->dadosOrigem) {
         $sqTipoPessoa = $this->view->dadosOrigem[0]->getSqPessoaSgdoce()->getSqTipoPessoa()->getSqTipoPessoa();
         if ($sqTipoPessoa == \Core_Configuration::getCorpTipoPessoaFisica()) {
             $this->view->nacionalidadeOrigem = $this->returnNacionalidade($this->view->dadosOrigem);
         }
     }
     if ($this->view->data->getSqTipoArtefatoAssunto()->getSqTipoArtefatoAssunto()) {
         $this->_messageEdit = 'MN043';
         #mensagem de alteracao
     }
     if (!$this->view->isSIC) {
         $procedenciaInterno = isset($this->view->dadosOrigem[1]) ? $this->view->dadosOrigem[1] : NULL;
         //1 = interno  -- 3 = externo
         if ($procedenciaInterno == 1) {
             $disabledProcedencia = 'chekProcedenciaExterno';
         } else {
             $disabledProcedencia = 'chekProcedenciaInterno';
         }
         $this->view->disabledProcedencia = $disabledProcedencia;
     }
 }
Exemplo n.º 12
0
 /**
  */
 public function searchArtefatoAction()
 {
     $this->_helper->layout->disableLayout();
     $this->_helper->viewRenderer->setNoRender(TRUE);
     $params = $this->_getAllParams();
     if (isset($params['extraParam']) && $params['extraParam'] != '') {
         $params['sqTipoArtefato'] = $params['extraParam'];
     } else {
         $params['sqTipoArtefato'] = \Core_Configuration::getSgdoceTipoArtefatoDocumento();
     }
     $params['sqUnidadeOrg'] = \Core_Integration_Sica_User::getUserUnit();
     $params['sqPessoa'] = \Core_Integration_Sica_User::getPersonId();
     $dtoSearch = Core_Dto::factoryFromData($params, 'search');
     $this->getHelper('json')->sendJson($this->getService()->comboArtefato($dtoSearch));
 }
Exemplo n.º 13
0
 /**
  * método que faz pesquisa no banco para preencher o autocomplete
  * @return json
  */
 public function findNumeroDigitalAction()
 {
     $params = $this->_getAllParams();
     $term = $params['query'];
     $params['usuario'] = Core_Integration_Sica_User::getPersonId();
     $params['sqTipoArtefato'] = $params['extraParam'];
     $dto = Core_Dto::factoryFromData($params, 'search');
     $res = $this->getService()->findNumeroDigital($term, $dto, 10);
     $this->_helper->json($res);
 }
Exemplo n.º 14
0
 /**
  * Salva Justificatva
  * @param type $entity
  * @param type $dto
  */
 public function postInsert($entity, $dto = NULL)
 {
     $arrValues = array('sqPessoaAutora' => \Core_Integration_Sica_User::getPersonId(), 'sqPessoaAutoriza' => \Core_Integration_Sica_User::getPersonId(), 'sqPessoa' => $entity, 'txJustificativa' => $dto->getTxJustificativa(), 'dtInclusao' => \Zend_Date::now()->get('dd/MM/YYYY'));
     try {
         $result = $this->saveWs('app:CadastroSemCpf', 'libCorpSaveCadastroSemCPF', $arrValues);
         if (!$result) {
             $this->getMessaging()->addErrorMessage('Erro na operação (libCorpSaveCadastroSemCPF).');
             throw new \Core_Exception_ServiceLayer_Verification();
         }
     } catch (\Exception $exc) {
         throw new \Core_Exception_ServiceLayer_Verification();
     }
 }
Exemplo n.º 15
0
 public function getPersonId()
 {
     return \Core_Integration_Sica_User::getPersonId();
 }
Exemplo n.º 16
0
 /**
  * @return boolean
  */
 public function modalPecaProcessoAction()
 {
     $this->getHelper('layout')->disableLayout();
     $this->view->sqArtefato = $this->_getParam('sqArtefato');
     $this->view->sqPessoaLogada = Core_Integration_Sica_User::getPersonId();
     $this->_helper->layout->disableLayout();
 }
Exemplo n.º 17
0
 public function update(array $postData)
 {
     $configs = \Core_Registry::get('configs');
     if (!$postData['sqPessoaAssinaturaAbertura'] && $postData['sqPessoaAssinaturaAberturaBD_hidden']) {
         $postData['sqPessoaAssinaturaAbertura'] = $postData['sqPessoaAssinaturaAberturaBD_hidden'];
     }
     if (!$postData['sqPessoaAssinaturaEncerramento'] && $postData['sqPessoaAssinaturaEncerramentoBD_hidden']) {
         $postData['sqPessoaAssinaturaEncerramento'] = $postData['sqPessoaAssinaturaEncerramentoBD_hidden'];
     }
     $dtoVolume = \Core_Dto::factoryFromData($postData, 'search');
     if ($dtoVolume->getNuFolhaFinal() && (int) $dtoVolume->getNuFolhaFinal() <= (int) $dtoVolume->getNuFolhaInicial()) {
         throw new \Core_Exception_ServiceLayer('A Folha Final deve ser maior que a Folha Inicial.');
     }
     if ((int) $dtoVolume->getNuFolhaFinal() - (int) $dtoVolume->getNuFolhaInicial() > (int) $configs['volume']['maxPagePerVolume']) {
         throw new \Core_Exception_ServiceLayer('Volume não pode ter mais de 200 páginas.');
     }
     $hasDemandaAlterarVolume = $this->getServiceLocator()->getService('Solicitacao')->hasDemandaAbertaByAssuntoPessoaResponsavel(\Core_Dto::factoryFromData(array('sqArtefato' => $dtoVolume->getSqArtefato(), 'sqTipoAssuntoSolicitacao' => \Core_Configuration::getSgdoceTipoAssuntoSolicitacaoVolumeDeProcesso()), 'search'));
     $entVolume = $this->_getRepository()->find($dtoVolume->getSqVolume());
     if (\Zend_Registry::get('isUserSgi') && !$hasDemandaAlterarVolume && $this->_checkArtefatoLastTramite($entVolume) < 1) {
         throw new \Core_Exception_ServiceLayer(\Core_Registry::getMessage()->translate('MN147'));
     }
     $entArtefato = $this->getEntityManager()->getPartialReference('app:Artefato', $dtoVolume->getSqArtefato());
     $entPessAbertura = $this->getEntityManager()->getPartialReference('app:VwPessoa', $dtoVolume->getSqPessoaAbertura());
     $entUOrgAbertura = $this->getEntityManager()->getPartialReference('app:VwUnidadeOrg', $dtoVolume->getSqUnidadeOrgAbertura());
     $entPessAssAbertura = $this->getEntityManager()->getPartialReference('app:VwPessoa', $dtoVolume->getSqPessoaAssinaturaAbertura());
     $sqPessoaAbertura = \Core_Integration_Sica_User::getPersonId();
     $sqUnidadeOrgAbertura = \Core_Integration_Sica_User::getUserUnit();
     $entVolume->setSqVolume($dtoVolume->getSqVolume())->setSqArtefato($entArtefato)->setNuVolume($dtoVolume->getNuVolume())->setNuFolhaInicial($dtoVolume->getNuFolhaInicial())->setDtAbertura($dtoVolume->getDtAbertura())->setSqPessoaAbertura($entPessAbertura)->setSqUnidadeOrgAbertura($entUOrgAbertura)->setSqPessoaAssinaturaAbertura($entPessAssAbertura);
     if ($dtoVolume->getSqCargoAssinaturaAbertura()) {
         $entCargoAbertura = $this->getEntityManager()->getPartialReference('app:VwCargo', $dtoVolume->getSqCargoAssinaturaAbertura());
         $entVolume->setSqCargoAssinaturaAbertura($entCargoAbertura)->setSqFuncaoAssinaturaAbertura(NULL);
     } else {
         $entFuncaoAbertura = $this->getEntityManager()->getPartialReference('app:VwFuncao', $dtoVolume->getSqFuncaoAssinaturaAbertura());
         $entVolume->setSqFuncaoAssinaturaAbertura($entFuncaoAbertura)->setSqCargoAssinaturaAbertura(NULL);
     }
     if ($dtoVolume->getNuFolhaFinal()) {
         $entPessEncerramento = $this->getEntityManager()->getPartialReference('app:VwPessoa', \Core_Integration_Sica_User::getPersonId());
         $entUOrgEncerramento = $this->getEntityManager()->getPartialReference('app:VwUnidadeOrg', (int) \Core_Integration_Sica_User::getUserUnit());
         $entPessAssEncerramento = $this->getEntityManager()->getPartialReference('app:VwPessoa', $dtoVolume->getSqPessoaAssinaturaEncerramento());
         $entVolume->setNuFolhaFinal($dtoVolume->getNuFolhaFinal())->setDtEncerramento($dtoVolume->getDtEncerramento())->setSqPessoaEncerramento($entPessEncerramento)->setSqUnidadeOrgEncerramento($entUOrgEncerramento)->setSqPessoaAssinaturaEncerramento($entPessAssEncerramento);
         if ($dtoVolume->getSqCargoAssinaturaEncerramento()) {
             $entCargoEncerramento = $this->getEntityManager()->getPartialReference('app:VwCargo', $dtoVolume->getSqCargoAssinaturaEncerramento());
             $entVolume->setSqCargoAssinaturaEncerramento($entCargoEncerramento)->setSqFuncaoAssinaturaEncerramento(NULL);
         } else {
             $entFuncaoEncerramento = $this->getEntityManager()->getPartialReference('app:VwFuncao', $dtoVolume->getSqFuncaoAssinaturaEncerramento());
             $entVolume->setSqFuncaoAssinaturaEncerramento($entFuncaoEncerramento)->setSqCargoAssinaturaEncerramento(NULL);
         }
     } else {
         $entVolume->setNuFolhaFinal(NULL)->setDtEncerramento(NULL)->setSqPessoaEncerramento(NULL)->setSqUnidadeOrgEncerramento(NULL)->setSqPessoaAssinaturaEncerramento(NULL)->setSqCargoAssinaturaEncerramento(NULL)->setSqFuncaoAssinaturaEncerramento(NULL);
     }
     $this->getEntityManager()->persist($entVolume);
     $this->getEntityManager()->flush();
 }
Exemplo n.º 18
0
 public function excluirImagem($entArtefato, $txObservacao, $stAtivo = FALSE)
 {
     try {
         $entArtefatoImagem = $this->_getRepository("app:ArtefatoImagem")->findBy(array('sqArtefato' => $entArtefato->getSqArtefato(), 'stAtivo' => true));
         $entArtefatoImagem = current($entArtefatoImagem);
         if ($entArtefatoImagem) {
             $arrDto = array('sqPessoa' => \Core_Integration_Sica_User::getPersonId(), 'sqUnidade' => \Core_Integration_Sica_User::getUserUnit());
             $objCDto = \Core_Dto::factoryFromData($arrDto, 'search');
             $entVwPessoa = $this->getServiceLocator()->getService('Pessoa')->findbyPessoaCorporativo($objCDto);
             $entVwUnidOrg = $this->getServiceLocator()->getService('VwUnidadeOrg')->getDadosUnidade($objCDto);
             $entArtefatoImagem->setStAtivo($stAtivo);
             $entArtefatoImagem->setSqPessoaInativacao($entVwPessoa);
             $entArtefatoImagem->setSqUnidadeOrgInativacao($entVwUnidOrg);
             $entArtefatoImagem->setTxObservacao($txObservacao);
             $entArtefatoImagem->setDtInativacao(\Zend_Date::now());
             $this->getEntityManager()->persist($entArtefatoImagem);
             $this->getEntityManager()->flush();
             // REGISTRO DA EXCLUSÃO DA IMAGEM. #HistoricoArtefato::save();
             $haService = $this->getServiceLocator()->getService('HistoricoArtefato');
             $sqOcorrencia = \Core_Configuration::getSgdoceSqOcorrenciaExcluirImagem();
             $strMessage = $haService->getMessage('MH024', \Zend_Date::now()->get(\Zend_Date::DATETIME_MEDIUM), \Core_Integration_Sica_User::getUserName());
             $haService->registrar($entArtefato->getSqArtefato(), $sqOcorrencia, $strMessage);
             $this->getMessaging()->addSuccessMessage('MD003', 'User');
         } else {
             $this->getMessaging()->addErrorMessage('MN174', 'User');
         }
         $this->getMessaging()->dispatchPackets();
         return $entArtefatoImagem;
     } catch (\Core_Exception_ServiceLayer $e) {
         $this->getMessaging()->addErrorMessage($e->getMessage(), 'User');
         $this->getMessaging()->dispatchPackets();
     }
     return false;
 }
Exemplo n.º 19
0
 /**
  * @return type
  * @throws RuntimeException
  */
 public function saveAction()
 {
     if (!$this->_request->isPost()) {
         throw new RuntimeException('A requisição deve ser POST');
     }
     $isValid = true;
     if ($this->getRequest()->getParam('stProcessoVolume', false)) {
         $this->getRequest()->setPost('sqPessoaAbertura', \Core_Integration_Sica_User::getPersonId());
         $this->getRequest()->setPost('sqUnidadeOrgAbertura', (int) \Core_Integration_Sica_User::getUserUnit());
     } else {
         $sqArtefato = (int) $this->getRequest()->getParam('id');
         $volume = $this->getService()->getLastVolumeAberto($sqArtefato);
         $params = $this->_getAllParams();
         $configs = \Core_Registry::get('configs');
         if ($params['nuFolhaFinal'] - $params['nuFolhaInicial'] <= (int) $configs['volume']['maxPagePerVolume']) {
             $sqPessoaAbertura = $volume->getSqPessoaAbertura() ? $volume->getSqPessoaAbertura()->getSqPessoa() : 0;
             $sqUnidadeOrgAbertura = $volume->getSqUnidadeOrgAbertura() ? $volume->getSqUnidadeOrgAbertura()->getSqUnidadeOrg() : 0;
             $this->getRequest()->setPost('sqVolume', $volume->getSqVolume());
             $this->getRequest()->setPost('sqPessoaAbertura', $sqPessoaAbertura);
             $this->getRequest()->setPost('sqUnidadeOrgAbertura', $sqUnidadeOrgAbertura);
             if ($volume->getSqPessoaAssinaturaAbertura() && $volume->getSqCargoAssinaturaAbertura()) {
                 $this->getRequest()->setPost('sqPessoaAssinaturaAbertura', $volume->getSqPessoaAssinaturaAbertura()->getSqPessoa());
                 $this->getRequest()->setPost('sqCargoAssinaturaAbertura', $volume->getSqCargoAssinaturaAbertura()->getSqCargo());
             }
             if ($volume->getSqPessoaAssinaturaAbertura() && $volume->getSqFuncaoAssinaturaAbertura()) {
                 $this->getRequest()->setPost('sqPessoaAssinaturaAbertura', $volume->getSqPessoaAssinaturaAbertura()->getSqPessoa());
                 $this->getRequest()->setPost('sqFuncaoAssinaturaAbertura', $volume->getSqFuncaoAssinaturaAbertura()->getSqFuncao());
             }
             $this->getRequest()->setPost('sqPessoaEncerramento', \Core_Integration_Sica_User::getPersonId());
             $this->getRequest()->setPost('sqUnidadeOrgEncerramento', (int) \Core_Integration_Sica_User::getUserUnit());
             $this->_optionsDtoEntity['mapping'] = array_merge($this->_optionsDtoEntity['mapping'], array('sqPessoaAssinaturaEncerramento' => array('sqPessoa' => 'Sgdoce\\Model\\Entity\\VwPessoa'), 'sqCargoAssinaturaEncerramento' => array('sqCargo' => 'Sgdoce\\Model\\Entity\\VwCargo'), 'sqFuncaoAssinaturaEncerramento' => array('sqFuncao' => 'Sgdoce\\Model\\Entity\\VwFuncao'), 'sqPessoaEncerramento' => array('sqPessoa' => 'Sgdoce\\Model\\Entity\\VwPessoa'), 'sqUnidadeOrgEncerramento' => array('sqUnidadeOrg' => 'Sgdoce\\Model\\Entity\\VwUnidadeOrg')));
         } else {
             $isValid = false;
             $this->getMessaging()->addErrorMessage('Volume não pode ter mais de 200 páginas.', 'User');
         }
     }
     if ($isValid) {
         $entity = $this->_save();
         $this->getService()->finish();
         $this->_addMessageSave();
         return $this->_redirect("/artefato/volume/termo/id/" . $entity->getSqVolume());
     }
     $this->getMessaging()->dispatchPackets();
     $sqTipoArtefato = \Core_Configuration::getSgdoceTipoArtefatoProcesso();
     return $this->_redirect("/artefato/area-trabalho/index/tipoArtefato/{$sqTipoArtefato}/caixa/minhaCaixa");
 }
Exemplo n.º 20
0
 /**
  * Metódo que realiza o save do Artefato
  * @param Object $dtoSearch
  * @return \Sgdoce\Model\Entity\Artefato
  */
 public function saveArtefato(\Core_Dto_Search $dtoSearch)
 {
     $date = new \Zend_Date();
     $this->getEntityManager()->getConnection()->beginTransaction();
     try {
         $sqPessoaSgdoce = $this->_getRepository('app:PessoaSgdoce')->findBySqPessoaCorporativo(\Core_Integration_Sica_User::getPersonId());
         if (empty($sqPessoaSgdoce)) {
             $filter = new \Zend_Filter_Digits();
             $sqPessoaCorporativo = \Core_Integration_Sica_User::getPersonId();
             $data['sqPessoaCorporativo'] = $this->_getRepository('app:VwPessoa')->find($sqPessoaCorporativo);
             $dtoPessoaSearch = \Core_Dto::factoryFromData($data, 'search');
             $cpfCnpjPassaportUnfiltered = $this->getServiceLocator()->getService('VwPessoa')->returnCpfCnpjPassaporte($dtoPessoaSearch);
             $cpfCnpjPassaport = $filter->filter($cpfCnpjPassaportUnfiltered);
             $noPessoaCorporativo = $data['sqPessoaCorporativo']->getNoPessoa();
             $this->addPessoaSgdoce($sqPessoaCorporativo, $noPessoaCorporativo, $cpfCnpjPassaport);
             $sqPessoaSgdoce = $this->_getRepository('app:PessoaSgdoce')->findBySqPessoaCorporativo(\Core_Integration_Sica_User::getPersonId());
         }
         /** @var \Sgdoce\Model\Entity\Artefato $entityArtefato */
         $entityArtefato = $this->_newEntity('app:Artefato');
         //só seta o numero da digital se for documento tipo físico
         if (!$dtoSearch->getInEletronico()) {
             $entityLoteEtiqueta = $this->getEntityManager()->getPartialReference('app:LoteEtiqueta', $dtoSearch->getSqLoteEtiqueta());
             /** @var \Sgdoce\Model\Entity\EtiquetasUso $entityEtiquetasUso */
             $entityEtiquetasUso = $this->_newEntity('app:EtiquetasUso');
             $entityEtiquetasUso->setNuEtiqueta($dtoSearch->getNuDigital());
             $entityEtiquetasUso->setSqLoteEtiqueta($entityLoteEtiqueta);
             //persist Etiquetas Uso
             $this->getEntityManager()->persist($entityEtiquetasUso);
             $this->getEntityManager()->flush($entityEtiquetasUso);
             $entityArtefato->setNuDigital($entityEtiquetasUso);
             $entityArtefato->setSqLoteEtiqueta($entityEtiquetasUso);
         }
         $entityArtefato->setDtPrazo(NULL);
         $entityArtefato->setDtArtefato($date);
         $entityArtefato->setInEletronico($dtoSearch->getInEletronico());
         //persist artefato
         $this->getEntityManager()->persist($entityArtefato);
         $this->getEntityManager()->flush($entityArtefato);
         $sqPessoaFuncao = $this->getEntityManager()->getPartialReference('app:PessoaFuncao', \Core_Configuration::getSgdocePessoaFuncaoAutor());
         /** @var \Sgdoce\Model\Entity\PessoaArtefato $entityPessoaArtefato */
         $entityPessoaArtefato = $this->_newEntity('app:PessoaArtefato');
         $entityPessoaArtefato->setSqArtefato($entityArtefato);
         $entityPessoaArtefato->setSqPessoaSgdoce($sqPessoaSgdoce[0]);
         $entityPessoaArtefato->setSqPessoaFuncao($sqPessoaFuncao);
         $this->getEntityManager()->persist($entityPessoaArtefato);
         $this->getEntityManager()->flush($entityPessoaArtefato);
         // salva o historico do artefato
         $arrDto = array('sqPessoa' => \Core_Integration_Sica_User::getPersonId(), 'sqUnidade' => \Core_Integration_Sica_User::getUserUnit());
         // #HistoricoArtefato::save();
         $strMessage = $this->getServiceLocator()->getService('HistoricoArtefato')->getMessage('MH005');
         $this->getServiceLocator()->getService('HistoricoArtefato')->registrar($entityArtefato->getSqArtefato(), \Core_COnfiguration::getSgdoceSqOcorrenciaCadastrar(), $strMessage);
         $this->getEntityManager()->getConnection()->commit();
     } catch (\Exception $e) {
         $this->getEntityManager()->getConnection()->rollback();
         throw $e;
     }
     return $entityArtefato;
 }
Exemplo n.º 21
0
 /**
  * Cria outro dtos
  * @param type $data
  * @return type
  */
 public function _factoryParamsExtrasSave($data)
 {
     if ($data['nacionalidade'] == 1) {
         $data['sqPais'] = 0;
     } else {
         $data['sqMunicipio'] = 0;
     }
     $cfgPessoa['entity'] = '\\Sica\\Model\\Entity\\Pessoa';
     $arrDto['sqPessoa'] = Core_Dto::factoryFromData($data, 'entity', $cfgPessoa);
     $cfgMunicipio['entity'] = '\\Sica\\Model\\Entity\\Municipio';
     $cfgMunicipio['mapping']['sqEstado'] = '\\Sica\\Model\\Entity\\Estado';
     $arrDto['sqMunicipio'] = Core_Dto::factoryFromData($data, 'entity', $cfgMunicipio);
     $cfgPais['entity'] = '\\Sica\\Model\\Entity\\Pais';
     $arrDto['sqPais'] = Core_Dto::factoryFromData($data, 'entity', $cfgPais);
     $cfgCadastroSemCpf['entity'] = '\\Sica\\Model\\Entity\\CadastroSemCpf';
     $arrData = array('dtInclusao' => Zend_Date::now()->get('dd/MM/YYYY'), 'txJustificativa' => $this->_getParam('txJustificativa'));
     $arrDto['sqCadastroSemCpf'] = Core_Dto::factoryFromData($arrData, 'entity', $cfgCadastroSemCpf);
     $arrDto['stRegistroAtivo'] = array('stRegistroAtivo' => $data['stRegistroAtivo']);
     $cfgIntegracaoPessoaInfoconv['entity'] = '\\Sica\\Model\\Entity\\IntegracaoPessoaInfoconv';
     $sqPessoaAutora = $this->_getParam('sqIntegracaoPessoaInfoconv_sqPessoaAutora');
     if (!$sqPessoaAutora) {
         $sqPessoaAutora = \Core_Integration_Sica_User::getPersonId();
     }
     $entPessoaAutora = Core_Dto::factoryFromData(array('sqPessoa' => $sqPessoaAutora), 'entity', $cfgPessoa);
     $arrDataIntegracaoPI = array('dtIntegracao' => $this->_getParam('sqIntegracaoPessoaInfoconv_dtIntegracao'), 'txJustificativa' => $this->_getParam('sqIntegracaoPessoaInfoconv_txJustificativa'), 'sqPessoaAutora' => $entPessoaAutora);
     $arrDto['sqIntegracaoPessoaInfoconv'] = Core_Dto::factoryFromData($arrDataIntegracaoPI, 'entity', $cfgIntegracaoPessoaInfoconv);
     return $arrDto;
 }
 /**
  * Cria outro dtos
  * @param type $data
  * @return type
  */
 public function _factoryParamsExtrasSave($data)
 {
     if (!$data['sqIntegracaoPessoaInfoconv_sqPessoaAutora']) {
         $data['sqIntegracaoPessoaInfoconv_sqPessoaAutora'] = \Core_Integration_Sica_User::getPersonId();
     }
     return array(new \Core_Dto_Mapping($data, $data));
 }
Exemplo n.º 23
0
 /**
  *
  * @param \Core_Dto_Search $dto
  * @return array
  */
 public function searchDocumentsToFirstPiece(\Core_Dto_Search $dto, $isExterno = false, $isLegado = false)
 {
     $sqTipoArtefato = $dto->getSqTipoArtefato();
     $field = "at.nu_digital";
     if ($sqTipoArtefato == \Core_Configuration::getSgdoceTipoArtefatoProcesso()) {
         $field = $this->_em->createQueryBuilder()->expr()->lower("translate(at.nu_artefato::text, './-'::text, ''::text)")->__toString();
     }
     $inAbreProcesso = '';
     if (!$isExterno) {
         $inAbreProcesso = ' AND td.in_abre_processo';
     }
     if ($isLegado) {
         $inAbreProcesso = '';
     }
     $sql = "SELECT at.sq_artefato,\n                       at.nu_digital,\n                       at.nu_artefato\n                  FROM sgdoce.fn_show_area_trabalho(NULL, :sqTipoArtefato, :sqPessoaLogada, :sqUnidadeLogada, :search) at\n                  JOIN tipo_documento td\n                    ON td.sq_tipo_documento = at.sq_tipo_documento\n                 WHERE at.sq_status_tramite > :sqStatusTramite\n\n                   AND at.has_imagem\n                   AND NOT at.arquivado\n                   AND {$field} LIKE '{$dto->getQuery()}%'\n                   AND NOT at.has_solicitacao_aberta\n                   {$inAbreProcesso}\n                 ORDER BY at.nu_digital";
     $rsm = new \Doctrine\ORM\Query\ResultSetMapping($this->_em);
     $rsm->addScalarResult('sq_artefato', 'sqArtefato', 'integer');
     $rsm->addScalarResult('nu_digital', 'nuDigital', 'string');
     $rsm->addScalarResult('nu_artefato', 'nuArtefato', 'string');
     $nq = $this->_em->createNativeQuery($sql, $rsm);
     $nq->setParameter('sqStatusTramite', \Core_Configuration::getSgdoceStatusTramiteTramitado())->setParameter('sqTipoArtefato', $dto->getSqTipoArtefato())->setParameter('sqUnidadeLogada', \Core_Integration_Sica_User::getUserUnit())->setParameter('sqPessoaLogada', \Core_Integration_Sica_User::getPersonId())->setParameter('search', $dto->getQuery());
     $nq->useResultCache(false);
     return $nq->getArrayResult();
 }
Exemplo n.º 24
0
 public function getNotification()
 {
     $rsm = new \Doctrine\ORM\Query\ResultSetMapping();
     $rsm->addScalarResult('tipo', 'tipo', 'integer');
     $rsm->addScalarResult('intervalo', 'intervalo', 'integer');
     $rsm->addScalarResult('qtde', 'qtde', 'integer');
     $sqlSGI = "";
     $sqUnidadeOrg = (int) \Core_Integration_Sica_User::getUserUnit();
     if (\Zend_Registry::get('isUserSgi')) {
         $sqlSGI = "UNION\n\n                      SELECT 2 AS tipo\n                             ,2 AS intervalo\n                             ,COUNT(*) AS qtde\n                        FROM solicitacao AS s\n                        JOIN vw_ultimo_status_solicitacao AS vuss USING (sq_solicitacao)\n                       WHERE vuss.sq_tipo_status_solicitacao = " . \Core_Configuration::getSgdoceTipoStatusSolicitacaoAberta() . "\n                      HAVING COUNT(*) > 0\n\n                       UNION\n\n                      SELECT 2 AS tipo\n                             ,1 AS intervalo\n                             ,COUNT(*) AS qtde\n                        FROM solicitacao AS s\n                        JOIN vw_ultimo_status_solicitacao as vuss USING (sq_solicitacao)\n                       WHERE vuss.sq_tipo_status_solicitacao = " . \Core_Configuration::getSgdoceTipoStatusSolicitacaoEmAndamento() . "\n                         AND vuss.sq_pessoa_responsavel = :sqPessoa\n                      HAVING COUNT(*) > 0";
     }
     $sql = "WITH dias_prazo_demanda AS (\n                        SELECT 1 AS tipo\n                               ,EXTRACT(day FROM dt_prazo - CURRENT_DATE) AS qtd_dias\n                               ,sq_pessoa_destino\n                               ,sq_unidade_org_pessoa_destino\n                               ,sq_prazo\n                          FROM prazo\n                         WHERE dt_resposta IS NULL\n                )\n\n                SELECT 1 AS tipo\n                       ,5 AS intervalo\n                       ,COUNT(*) AS qtde\n                  FROM prazo\n                 WHERE dt_resposta is null\n                   AND sq_unidade_org_pessoa_destino = {$sqUnidadeOrg}\n                 GROUP BY tipo\n\n                UNION\n\n                SELECT tipo\n                       ,4 AS intervalo\n                       ,COUNT(*) AS qtde\n                  FROM dias_prazo_demanda\n                 WHERE qtd_dias > 5\n                   AND sq_pessoa_destino = :sqPessoa\n                   AND sq_unidade_org_pessoa_destino = {$sqUnidadeOrg}\n                 GROUP BY tipo\n\n                UNION\n\n                SELECT tipo\n                       ,3 AS intervalo\n                       ,COUNT(*) AS qtde\n                  FROM dias_prazo_demanda\n                 WHERE qtd_dias BETWEEN 2 AND 5\n                   AND sq_pessoa_destino = :sqPessoa\n                   AND sq_unidade_org_pessoa_destino = {$sqUnidadeOrg}\n                 GROUP BY tipo\n\n                UNION\n\n                SELECT tipo\n                       ,2 AS intervalo\n                       ,COUNT(*) AS qtde\n                  FROM dias_prazo_demanda\n                 WHERE qtd_dias between 0 AND 1\n                   AND sq_pessoa_destino = :sqPessoa\n                   AND sq_unidade_org_pessoa_destino = {$sqUnidadeOrg}\n                 GROUP BY tipo\n\n                UNION\n\n                SELECT tipo\n                       ,1 AS intervalo\n                       ,COUNT(*) AS qtde\n                  FROM dias_prazo_demanda\n                 WHERE qtd_dias < 0\n                   AND sq_pessoa_destino = :sqPessoa\n                   AND sq_unidade_org_pessoa_destino = {$sqUnidadeOrg}\n                 GROUP BY tipo\n\n                 {$sqlSGI}\n\n                ORDER BY tipo, intervalo";
     $query = $this->_em->createNativeQuery($sql, $rsm);
     $query->setParameter('sqPessoa', \Core_Integration_Sica_User::getPersonId());
     return $query->execute();
 }
Exemplo n.º 25
0
 /**
  *
  * @param integer $sqArtefato
  * @return boolean
  * @throws \InvalidArgumentException
  */
 public function inMyDashboard($sqArtefato)
 {
     if (!$sqArtefato) {
         throw new \InvalidArgumentException('Values must not be empty.');
     }
     $sqPessoa = (int) \Core_Integration_Sica_User::getPersonId();
     $sqPessoaDestino = (int) \Core_Integration_Sica_User::getUserUnit();
     $dtoSearch = \Core_Dto::factoryFromData(array('sqArtefato' => $sqArtefato, 'sqPessoa' => $sqPessoa, 'sqPessoaDestino' => $sqPessoaDestino), 'search');
     return $this->_getRepository('app:VwUltimoTramiteArtefato')->inMyDashboard($dtoSearch);
 }
Exemplo n.º 26
0
 private function _alreadyExists(\Core_Dto_Entity $dto)
 {
     $assert = $this->findBy(array('txComentario' => $dto->getTxComentario(), 'sqPessoa' => \Core_Integration_Sica_User::getPersonId(), 'sqArtefato' => $dto->getSqArtefato()));
     if (count($assert)) {
         throw new \Exception(self::T_COMENTARIO_ALREADY_EXISTS);
     }
 }
Exemplo n.º 27
0
 /**
  * @return array Com o parametros da requisição
  */
 private function _viewSteps()
 {
     $params = $this->_getAllParams();
     if (!isset($params['id'])) {
         throw new \Exception("Artefato não informado");
     }
     $this->view->sqArtefato = $params['id'];
     $this->view->hasImage = $this->getService()->hasImage($params['id']);
     if ($this->view->hasImage) {
         $this->view->forbiddenAccess = $this->getService()->forbiddenAccess($params['id'], Core_Integration_Sica_User::getPersonId());
     }
     // Regras para artefatos de migração.
     $dtoSearch = \Core_Dto::factoryFromData(array('sqArtefato' => $params['id']), 'search');
     $isMigracao = $this->getService("Artefato")->isMigracao($dtoSearch);
     if ($isMigracao) {
         $dtoSearch = \Core_Dto::factoryFromData(array('sqArtefato' => $params['id']), 'search');
         # Tainá falou que era para ser assim.
         if ($this->getService('Artefato')->isInconsistent($dtoSearch)) {
             $this->view->forbiddenAccess = false;
         }
         $this->view->treeviewData = $this->getService('ArtefatoVinculo')->mostarArvoreMigracao($dtoSearch);
     } else {
         $this->view->treeviewData = $this->getService('ArtefatoVinculo')->mostarArvore($params['id']);
     }
     return $params;
 }
Exemplo n.º 28
0
 public function qtdItensMinhaCaixaJsonAction()
 {
     $this->_jsonResponse(function () {
         return $this->getService()->getQtdItensMinhaCaixa(\Core_Integration_Sica_User::getPersonId(), \Core_Integration_Sica_User::getUserUnit(), $this->_getParam('artefactType', 0));
     });
 }
Exemplo n.º 29
0
 /**
  *
  * @param \Sgdoce\Model\Entity\Artefato $entityArtefato
  * @return \Arquivo\Service\ArquivamentoSetorial
  */
 private function _processTramite(\Sgdoce\Model\Entity\Artefato $entityArtefato)
 {
     $sqArtefato = $entityArtefato->getSqArtefato();
     $entityUltimoTramite = $this->_getRepository('app:VwUltimoTramiteArtefato')->find($sqArtefato);
     $sqPessoaLogada = (int) \Core_Integration_Sica_User::getPersonId();
     $sqUnidadeLogada = (int) \Core_Integration_Sica_User::getUserUnit();
     $serviceTramite = $this->getServiceLocator()->getService('TramiteArtefato');
     $dtoSearchArtefato = \Core_Dto::factoryFromData(array('sqArtefato' => $sqArtefato), 'search');
     /**
      * Se não tem ultimo Tramite é porque o artefato ainda não foi corrigido.
      * Verificar, mesmo assim, se tem tramite pois a view de ultimo tramite faz join
      * que pode não retornar registro caso documento não tenha sido corrido
      */
     if (!$entityUltimoTramite) {
         $objZendDate = \Zend_Date::now();
         $dataTramite = array('sqArtefato' => $sqArtefato, 'sqPessoaDestino' => $sqUnidadeLogada, 'sqPessoaDestinoInterno' => $sqPessoaLogada, 'sqUnidadeOrgTramite' => $sqUnidadeLogada, 'sqStatusTramite' => \Core_Configuration::getSgdoceStatusTramiteRecebido(), 'dtTramite' => $objZendDate, 'sqPessoaTramite' => $sqPessoaLogada, 'inImpresso' => TRUE, 'nuTramite' => $serviceTramite->getNextTramiteNumber($dtoSearchArtefato));
         $entityDtoTramite = $serviceTramite->montaEntidateTramite($dataTramite);
         $entityPessoaRecebimento = $this->getEntityManager()->getPartialReference('app:VwPessoa', $sqPessoaLogada);
         $entityDtoTramite->getEntity()->setSqPessoaRecebimento($entityPessoaRecebimento);
         $objZendDateRecebimento = clone $objZendDate;
         $entityDtoTramite->getEntity()->setDtRecebimento($objZendDateRecebimento->addSecond(1));
         $entityTramite = $serviceTramite->save($entityDtoTramite);
     } else {
         $sqPessoaRecebimento = $entityUltimoTramite->getSqPessoaRecebimento()->getSqPessoa();
         $sqPessoaDestino = $entityUltimoTramite->getSqPessoaDestino()->getSqPessoa();
         /**
          * caso o ultimo tramite do artefato não for da pessoa logada
          * deve-se registrar um tramite para pessoa logada (SGI) para que este
          * possa encaminhar para quem solicitou a desanexação
          */
         if ($sqPessoaRecebimento != $sqPessoaLogada || $sqPessoaDestino != $sqUnidadeLogada) {
             $dtoSearchArtefato = \Core_Dto::factoryFromData(array('sqArtefato' => $sqArtefato), 'search');
             $objZendDate = \Zend_Date::now();
             $dataTramite = array('sqArtefato' => $sqArtefato, 'sqPessoaDestino' => $sqUnidadeLogada, 'sqPessoaDestinoInterno' => $sqPessoaLogada, 'sqUnidadeOrgTramite' => $sqUnidadeLogada, 'sqStatusTramite' => \Core_Configuration::getSgdoceStatusTramiteRecebido(), 'dtTramite' => $objZendDate, 'sqPessoaTramite' => $sqPessoaLogada, 'inImpresso' => TRUE, 'nuTramite' => $serviceTramite->getNextTramiteNumber($dtoSearchArtefato));
             $entityDtoTramite = $serviceTramite->montaEntidateTramite($dataTramite);
             $entityPessoaRecebimento = $this->getEntityManager()->getPartialReference('app:VwPessoa', $sqPessoaLogada);
             $entityDtoTramite->getEntity()->setSqPessoaRecebimento($entityPessoaRecebimento);
             $objZendDateRecebimento = clone $objZendDate;
             $entityDtoTramite->getEntity()->setDtRecebimento($objZendDateRecebimento->addSecond(1));
             $entityTramite = $serviceTramite->save($entityDtoTramite);
         }
     }
     return $this;
 }
 /**
  * @return void
  */
 public function searchArtefatoDestinoAction()
 {
     $sqArtefato = $this->getRequest()->getParam('extraParam');
     $objZFAlpha = new \Zend_Filter_Alnum(true);
     $query = $objZFAlpha->filter($this->getRequest()->getParam('query'));
     $criteria = array('sqTipoArtefato' => \Core_Configuration::getSgdoceTipoArtefatoProcesso(), 'sqPessoaRecebimento' => \Core_Integration_Sica_User::getPersonId(), 'sqUnidadeRecebimento' => \Core_Integration_Sica_User::getUserUnit(), 'nuArtefato' => $query, 'sqArtefato' => $sqArtefato);
     $listInMyDashboard = $this->getService('ProcessoEletronico')->searchInMyDashboard($criteria);
     $this->_helper->json($listInMyDashboard);
 }