From aabdb47d87f25f78fd124de3d37e731912eb944e Mon Sep 17 00:00:00 2001 From: Guilherme Andrade Del Cantoni Date: Thu, 6 Dec 2018 17:45:51 -0200 Subject: [PATCH] Correção de erro em histórico de recibo de trâmite --- PENIntegracao.php | 2 +- README.md | 4 ++-- dto/ProcedimentoAndamentoDTO.php | 14 ++++++++++---- dto/TramiteDTO.php | 22 +++++++--------------- pen_procedimento_estado.php | 136 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------------------------------------------------------------------- rn/EnviarReciboTramiteRN.php | 4 ---- rn/ExpedirProcedimentoRN.php | 45 +++++++++++++++++++-------------------------- rn/PenAtividadeRN.php | 403 +++++++++++++++++++++++++++++++++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- rn/PenAtualizarSeiRN.php | 31 +++++++++++++++++++++---------- rn/ProcedimentoAndamentoRN.php | 50 +++++++++++++++++++++++++------------------------- rn/ProcessoEletronicoRN.php | 31 ++++++++++++++++++++++++------- rn/ReceberProcedimentoRN.php | 17 +++++++++++------ 12 files changed, 219 insertions(+), 540 deletions(-) diff --git a/PENIntegracao.php b/PENIntegracao.php index 7fbc19b..c281a52 100644 --- a/PENIntegracao.php +++ b/PENIntegracao.php @@ -11,7 +11,7 @@ class PENIntegracao extends SeiIntegracao { } public function getVersao() { - return '1.1.7'; + return '1.1.8'; } public function getInstituicao() { diff --git a/README.md b/README.md index 41da088..ec2d182 100644 --- a/README.md +++ b/README.md @@ -31,14 +31,14 @@ Procedimentos de instalação do módulo nos servidores de aplicação e atualiz - **SEI versão 3.0.5 ou superior instalada, exceto a versão 3.0.10.** - Usuário de acesso ao banco de dados do SEI e SIP com permissões para criar novas estruturas no banco de dados. -Para iniciar os procedimentos de configuração do módulo, será necessário registrar no **ConectaGov** as unidades administrativas que poderão realizar o envio e recebimento de processos/documentos externo no SEI. Este procedimento precisa ser realizado pelo **Gestor de Protocolo** previamente habilitado no portal do **ConectaGov**. Os testes devem ser feitos primeiro em um ambiente de desenvolvimento/homologação. +Para iniciar os procedimentos de configuração do módulo, será necessário registrar no **ConectaGov** as unidades administrativas que poderão realizar o envio e recebimento de processos/documentos externo no SEI. Este procedimento precisa ser realizado pelo **Gestor de Protocolo** previamente habilitado no portal do **ConectaGov-PEN**. Os testes devem ser feitos primeiro em um ambiente de desenvolvimento/homologação. Para solicitação de acesso aos ambientes, acesse os seguintes endereços: - Desenvolvimento [http://pen-portal.trafficmanager.net/solicitarCadastroComite](http://pen-portal.trafficmanager.net/solicitarCadastroComite "DESENVOLVIMENTO: Portal de Administração ConectaGov PEN - Cadastro de Comitê") - Homologação [http://homolog.pen.portal.trafficmanager.net/solicitarCadastroComite](http://homolog.pen.portal.trafficmanager.net/solicitarCadastroComite "HOMOLOGAÇÃO: Portal de Administração ConectaGov PEN - Cadastro de Comitê") - Produção [http://conectagov.processoeletronico.gov.br/solicitarCadastroComite](http://conectagov.processoeletronico.gov.br/solicitarCadastroComite "PRODUÇÃO: Portal de Administração ConectaGov PEN - Cadastro de Comitê") - Para maiores informações, entre em contato pelo e-mail processo.eletronico@planejamento.gov.br + Para maiores informações, entre em contato pelo telefone 0800 978-9005 ou diretamente pela Central de Serviços do PEN, endereço https://portaldeservicos.planejamento.gov.br ### Procedimentos diff --git a/dto/ProcedimentoAndamentoDTO.php b/dto/ProcedimentoAndamentoDTO.php index 32b5f5e..7f3ff4e 100644 --- a/dto/ProcedimentoAndamentoDTO.php +++ b/dto/ProcedimentoAndamentoDTO.php @@ -4,7 +4,7 @@ require_once dirname(__FILE__) . '/../../../SEI.php'; /** * Persistência de dados no banco de dados - * + * * @autor Join Tecnologia */ class ProcedimentoAndamentoDTO extends InfraDTO { @@ -14,7 +14,7 @@ class ProcedimentoAndamentoDTO extends InfraDTO { } public function montar() { - + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_DBL, 'IdAndamento', 'id_andamento'); $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_DBL, 'IdProcedimento', 'id_procedimento'); $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_DBL, 'IdTramite', 'id_tramite'); @@ -23,7 +23,13 @@ class ProcedimentoAndamentoDTO extends InfraDTO { $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_STR, 'Mensagem', 'mensagem'); $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_STR, 'Hash', 'hash'); $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'Tarefa', 'id_tarefa'); - + + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_NUM, 'IdRepositorioOrigem', 'id_repositorio_origem', 'md_pen_tramite'); + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_NUM, 'IdEstruturaOrigem', 'id_estrutura_origem', 'md_pen_tramite'); + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_NUM, 'IdRepositorioDestino', 'id_repositorio_destino', 'md_pen_tramite'); + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_NUM, 'IdEstruturaDestino', 'id_estrutura_destino', 'md_pen_tramite'); + $this->configurarPK('IdAndamento', InfraDTO::$TIPO_PK_SEQUENCIAL); + $this->configurarFK('IdTramite', 'md_pen_tramite', 'id_tramite', InfraDTO::$TIPO_FK_OPCIONAL); } -} \ No newline at end of file +} diff --git a/dto/TramiteDTO.php b/dto/TramiteDTO.php index b210a03..10cce4b 100644 --- a/dto/TramiteDTO.php +++ b/dto/TramiteDTO.php @@ -14,12 +14,17 @@ class TramiteDTO extends InfraDTO { $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'IdAndamento', 'id_andamento'); $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'IdUsuario', 'id_usuario'); $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'IdUnidade', 'id_unidade'); + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'IdRepositorioOrigem', 'id_repositorio_origem'); + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'IdEstruturaOrigem', 'id_estrutura_origem'); + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'IdRepositorioDestino', 'id_repositorio_destino'); + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'IdEstruturaDestino', 'id_estrutura_destino'); + $this->adicionarAtributo(InfraDTO::$PREFIXO_ARR, 'ObjComponenteDigitalDTO'); - + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR, 'NomeUsuario', 'nome', 'usuario'); $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR, 'NomeUnidade', 'nome', 'unidade'); $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_NUM, 'IdProcedimento', 'id_procedimento', 'md_pen_processo_eletronico'); - + $this->configurarPK('NumeroRegistro', InfraDTO::$TIPO_PK_INFORMADO); $this->configurarPK('IdTramite', InfraDTO::$TIPO_PK_INFORMADO); @@ -30,16 +35,3 @@ class TramiteDTO extends InfraDTO { } } - -/* -drop table md_pen_tramite; -CREATE TABLE md_pen_tramite ( - id_tramite BIGINT(20) NOT NULL, - numero_registro VARCHAR(16) NOT NULL, - ticket_envio_componentes BIGINT(20), - dth_registro DATETIME NOT NULL, - - PRIMARY KEY (id_tramite, numero_registro), - CONSTRAINT `fk_tramite_processo_eletronico` FOREIGN KEY (`numero_registro`) REFERENCES `md_pen_processo_eletronico` (`numero_registro`) ON DELETE CASCADE ON UPDATE NO ACTION -); - */ diff --git a/pen_procedimento_estado.php b/pen_procedimento_estado.php index b859e1b..267b9da 100644 --- a/pen_procedimento_estado.php +++ b/pen_procedimento_estado.php @@ -4,12 +4,12 @@ require_once dirname(__FILE__) . '/../../SEI.php'; /** * Consulta os logs do estado do procedimento ao ser expedido - * + * * @author Join Tecnologia */ try { - - + + session_start(); InfraDebug::getInstance()->setBolLigado(false); @@ -17,59 +17,59 @@ try { InfraDebug::getInstance()->limpar(); $objSessaoSEI = SessaoSEI::getInstance(); - + //$objSessaoSEI->validarLink(); $objSessaoSEI->validarPermissao('pen_procedimento_expedir'); $objGenericoBD = new GenericoBD(BancoSEI::getInstance()); - + if(array_key_exists('metodo', $_GET)) { - + ob_clean(); header('Content-type: text/xml'); - + switch ($_GET['metodo']){ - + // @join_tec US008.02 (#23092) case 'baixarReciboEnvio': - + header('Content-Disposition: attachment; filename="recibo_de_envio_do_tramite.xml"'); // print ''.PHP_EOL; $objBancoSEI = BancoSEI::getInstance(); $objBancoSEI->abrirConexao(); - + try { - - + + if(array_key_exists('id_tramite', $_GET) && array_key_exists('id_tarefa', $_GET)) { - + $objReciboTramiteRN = new ReciboTramiteRN(); $arrObjReciboTramiteDTO = $objReciboTramiteRN->downloadReciboEnvio($_GET['id_tramite']); if(empty($arrObjReciboTramiteDTO)) { throw new InfraException('O recibo ainda não foi recebido.'); } - + $objReciboTramiteHashDTO = new ReciboTramiteHashDTO(); $objReciboTramiteHashDTO->setNumIdTramite($_GET['id_tramite']); $objReciboTramiteHashDTO->setStrTipoRecibo(ProcessoEletronicoRN::$STA_TIPO_RECIBO_ENVIO); $objReciboTramiteHashDTO->retStrHashComponenteDigital(); - + $arrObjReciboTramiteHashDTO = $objGenericoBD->listar($objReciboTramiteHashDTO); - + foreach($arrObjReciboTramiteDTO as $objReciboTramiteDTO) { $dthTimeStamp = InfraData::getTimestamp($objReciboTramiteDTO->getDthRecebimento()); - + print ''; print ''.$objReciboTramiteDTO->getNumIdTramite().''; print ''.$objReciboTramiteDTO->getStrNumeroRegistro().''; print ''.date('c', $dthTimeStamp).''; - + if($arrObjReciboTramiteHashDTO && is_array($arrObjReciboTramiteHashDTO)){ $arrObjReciboTramiteHashDTO = InfraArray::converterArrInfraDTO($arrObjReciboTramiteHashDTO, 'HashComponenteDigital'); ksort($arrObjReciboTramiteHashDTO); - + foreach($arrObjReciboTramiteHashDTO as $hash){ print ''.$hash.''; } @@ -82,68 +82,68 @@ try { } } catch(InfraException $e){ - + ob_clean(); print ''.PHP_EOL; print ''; print ''.$e->getStrDescricao().''; print ''; } - + break; - + // @join_tec US008.03 (#23092) case 'baixarReciboRecebimento': header('Content-Disposition: attachment; filename="recibo_de_conclusao_do_tramite.xml"'); // print ''.PHP_EOL; $objBancoSEI = BancoSEI::getInstance(); $objBancoSEI->abrirConexao(); - + try { if(array_key_exists('id_tramite', $_GET) && array_key_exists('id_tarefa', $_GET)) { - + $objReciboTramiteRN = new ReciboTramiteRN(); $arrObjReciboTramiteDTO = $objReciboTramiteRN->listarPorAtividade($_GET['id_tramite'], $_GET['id_tarefa']); - + if(empty($arrObjReciboTramiteDTO)) { throw new InfraException('O recibo ainda não foi recebido.'); } - + $objReciboTramiteHashDTO = new ReciboTramiteHashDTO(); $objReciboTramiteHashDTO->setNumIdTramite($_GET['id_tramite']); $objReciboTramiteHashDTO->retStrHashComponenteDigital(); - + if($_GET['id_tarefa'] == ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_EXPEDIDO)){ $objReciboTramiteHashDTO->setStrTipoRecibo(ProcessoEletronicoRN::$STA_TIPO_RECIBO_CONCLUSAO_RECEBIDO); - + }else{ $objReciboTramiteHashDTO->setStrTipoRecibo(ProcessoEletronicoRN::$STA_TIPO_RECIBO_CONCLUSAO_ENVIADO); - + } - + $arrObjReciboTramiteHashDTO = $objGenericoBD->listar($objReciboTramiteHashDTO); foreach($arrObjReciboTramiteDTO as $objReciboTramiteDTO) { $dthTimeStamp = InfraData::getTimestamp($objReciboTramiteDTO->getDthRecebimento()); - + print ''; print ''.$objReciboTramiteDTO->getNumIdTramite().''; print ''.$objReciboTramiteDTO->getStrNumeroRegistro().''; print ''.date('c', $dthTimeStamp).''; - + $strHashAssinatura = $objReciboTramiteDTO->getStrHashAssinatura(); - + if($arrObjReciboTramiteHashDTO && is_array($arrObjReciboTramiteHashDTO)){ $arrObjReciboTramiteHashDTO = InfraArray::converterArrInfraDTO($arrObjReciboTramiteHashDTO, 'HashComponenteDigital'); ksort($arrObjReciboTramiteHashDTO); - + foreach($arrObjReciboTramiteHashDTO as $hash){ print ''.$hash.''; } } - + print ''; print ''.$objReciboTramiteDTO->getStrCadeiaCertificado().''; print ''.$objReciboTramiteDTO->getStrHashAssinatura().''; @@ -152,7 +152,7 @@ try { } } catch(InfraException $e){ - + ob_clean(); print ''.PHP_EOL; print ''; @@ -161,33 +161,34 @@ try { } break; } - + exit(0); } - + $strProprioLink = 'controlador.php?acao='.$_GET['acao'].'&acao_origem='.$_GET['acao_origem'].'&acao_retorno='.$_GET['acao_retorno'].'&id_procedimento='.$_GET['id_procedimento']; $strTitulo = 'Consultar Recibos'; - + //$arrComandos = array(); //$arrComandos[] = ''; //$arrComandos[] = ''; - + if(!array_key_exists('id_procedimento', $_GET) || empty($_GET['id_procedimento'])) { throw new InfraException('Código do procedimento não foi informado'); } - + $objProcedimentoAndamentoDTO = new ProcedimentoAndamentoDTO(); $objProcedimentoAndamentoDTO->retTodos(); + $objProcedimentoAndamentoDTO->retNumIdEstruturaDestino(); + $objProcedimentoAndamentoDTO->retNumIdEstruturaOrigem(); $objProcedimentoAndamentoDTO->setOrdDblIdTramite(InfraDTO::$TIPO_ORDENACAO_ASC); $objProcedimentoAndamentoDTO->setOrdDthData(InfraDTO::$TIPO_ORDENACAO_ASC); $objProcedimentoAndamentoDTO->setDblIdProcedimento($_GET['id_procedimento']); - + if(array_key_exists('txtTextoPesquisa', $_POST) && !empty($_POST['txtTextoPesquisa'])) { - $objProcedimentoAndamentoDTO->setStrMensagem('%'.$_POST['txtTextoPesquisa'].'%', InfraDTO::$OPER_LIKE); - } - + } + $objPaginaSEI = PaginaSEI::getInstance(); $objPaginaSEI->setTipoPagina(InfraPagina::$TIPO_PAGINA_SIMPLES); //$objPaginaSEI->prepararOrdenacao($objProcedimentoAndamentoDTO, 'IdProcedimento', InfraDTO::$TIPO_ORDENACAO_ASC); @@ -195,7 +196,7 @@ try { $objBancoSEI = BancoSEI::getInstance(); $objBancoSEI->abrirConexao(); - + $objProcedimentoAndamentoBD = new ProcedimentoAndamentoBD($objBancoSEI); $arrObjProcedimentoAndamentoDTO = $objProcedimentoAndamentoBD->listar($objProcedimentoAndamentoDTO); @@ -204,19 +205,19 @@ try { $numRegistros = count($arrObjProcedimentoAndamentoDTO); if(!empty($arrObjProcedimentoAndamentoDTO)){ - - + $arrAgruparProcedimentoAndamentoDTO = array(); - foreach($arrObjProcedimentoAndamentoDTO as &$objProcedimentoAndamentoDTO){ + if(ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_EXPEDIDO) == $objProcedimentoAndamentoDTO->getNumTarefa()) + $numIdEstrutura = $objProcedimentoAndamentoDTO->getNumIdEstruturaDestino(); + elseif (ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_RECEBIDO) == $objProcedimentoAndamentoDTO->getNumTarefa()) + $numIdEstrutura = $objProcedimentoAndamentoDTO->getNumIdEstruturaOrigem(); - $key = $objProcedimentoAndamentoDTO->getDblIdTramite() . '-' . $objProcedimentoAndamentoDTO->getNumTarefa(); - + $key = $objProcedimentoAndamentoDTO->getDblIdTramite() . '-' . $numIdEstrutura . '-' . $objProcedimentoAndamentoDTO->getNumTarefa(); $arrAgruparProcedimentoAndamentoDTO[$key][] = $objProcedimentoAndamentoDTO; } - - $strResultado = ''; + $strResultado = ''; $strResultado .= ''."\n"; //$strResultado .= ''; @@ -227,24 +228,21 @@ try { $strResultado .= ''."\n"; $strResultado .= ''."\n"; $strCssTr = ''; - + $idCount = 1; foreach($arrAgruparProcedimentoAndamentoDTO as $key => $arrObjProcedimentoAndamentoDTO) { - - - list($dblIdTramite, $numTarefa) = explode('-', $key); - - $objReturn = PenAtividadeRN::retornaAtividadeDoTramiteFormatado($dblIdTramite, $numTarefa); - - + + list($dblIdTramite, $numIdEstrutura, $numTarefa) = explode('-', $key); + + $objReturn = PenAtividadeRN::retornaAtividadeDoTramiteFormatado($dblIdTramite, $numIdEstrutura, $numTarefa); + $strResultado .= ''; $strResultado .= ''; $strResultado .= ''; $strResultado .= ''; - + foreach($arrObjProcedimentoAndamentoDTO as $objProcedimentoAndamentoDTO) { - - $strCssTr = ($strCssTr == 'infraTrClara') ? 'infraTrEscura' : 'infraTrClara'; + $strCssTr = ($strCssTr == 'infraTrClara') ? 'infraTrEscura' : 'infraTrClara'; $strResultado .= ''; - //$strResultado .= ''; $strResultado .= ''; $strResultado .= ''; $strResultado .= ''; + $strResultado .= ''; $strResultado .= ''."\n"; $i++; @@ -284,7 +280,7 @@ try { } catch(Exception $e){ $objPaginaSEI->processarExcecao($e); -} +} $objPaginaSEI->montarDocType(); diff --git a/rn/EnviarReciboTramiteRN.php b/rn/EnviarReciboTramiteRN.php index eaa6c2c..e1ff95c 100644 --- a/rn/EnviarReciboTramiteRN.php +++ b/rn/EnviarReciboTramiteRN.php @@ -78,16 +78,12 @@ class EnviarReciboTramiteRN extends InfraRN $objReciboTramiteHashDTO->setNumIdTramite($parNumIdTramite); $objReciboTramiteHashDTO->setStrHashComponenteDigital($strHashComponenteDigital); $objReciboTramiteHashDTO->setStrTipoRecibo(ProcessoEletronicoRN::$STA_TIPO_RECIBO_CONCLUSAO_ENVIADO); - $objBD->cadastrar($objReciboTramiteHashDTO); } - - } public function enviarReciboTramiteProcesso($parNumIdTramite, $parArrayHash = null, $parDthRecebimento = null) { - date_default_timezone_set('America/Sao_Paulo'); if(!isset($parNumIdTramite) || $parNumIdTramite == 0) { diff --git a/rn/ExpedirProcedimentoRN.php b/rn/ExpedirProcedimentoRN.php index e616d9b..484ab1f 100644 --- a/rn/ExpedirProcedimentoRN.php +++ b/rn/ExpedirProcedimentoRN.php @@ -153,10 +153,10 @@ class ExpedirProcedimentoRN extends InfraRN { $this->barraProgresso->mover(ProcessoEletronicoINT::NEE_EXPEDICAO_ETAPA_PROCEDIMENTO); $this->barraProgresso->setStrRotulo(sprintf(ProcessoEletronicoINT::TEE_EXPEDICAO_ETAPA_PROCEDIMENTO, $objProcedimentoDTO->getStrProtocoloProcedimentoFormatado())); - //Construo dos cabecalho para envio do processo + //Construo dos cabecalho para envio do processo $objCabecalho = $this->construirCabecalho($objExpedirProcedimentoDTO); - //Construo do processo para envio + //Construo do processo para envio $objProcesso = $this->construirProcesso($dblIdProcedimento, $objExpedirProcedimentoDTO->getArrIdProcessoApensado()); try { @@ -171,30 +171,27 @@ class ExpedirProcedimentoRN extends InfraRN { throw new InfraException("Error Processing Request", $e); } - - $this->atualizarPenProtocolo($dblIdProcedimento); if (isset($novoTramite->dadosTramiteDeProcessoCriado)) { - $objTramite = $novoTramite->dadosTramiteDeProcessoCriado; - $this->objProcedimentoAndamentoRN->setOpts($dblIdProcedimento, $objTramite->IDT, ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_EXPEDIDO)); try { - - $this->objProcedimentoAndamentoRN->cadastrar('Envio do metadados do processo', 'S'); - - $idAtividadeExpedicao = $this->bloquearProcedimentoExpedicao($objExpedirProcedimentoDTO, $objProcesso->idProcedimentoSEI); - //$this->registrarAndamentoExpedicaoProcesso($objExpedirProcedimentoDTO, $objProcesso); - - - $this->objProcessoEletronicoRN->cadastrarTramiteDeProcesso( - $objProcesso->idProcedimentoSEI, - $objTramite->NRE, - $objTramite->IDT, - $objTramite->dataHoraDeRegistroDoTramite, $objProcesso, - $objTramite->ticketParaEnvioDeComponentesDigitais, - $objTramite->componentesDigitaisSolicitados); + $this->objProcedimentoAndamentoRN->cadastrar('Envio do metadados do processo', 'S'); + $idAtividadeExpedicao = $this->bloquearProcedimentoExpedicao($objExpedirProcedimentoDTO, $objProcesso->idProcedimentoSEI); + + $this->objProcessoEletronicoRN->cadastrarTramiteDeProcesso( + $objProcesso->idProcedimentoSEI, + $objTramite->NRE, + $objTramite->IDT, + $objTramite->dataHoraDeRegistroDoTramite, + $objExpedirProcedimentoDTO->getNumIdRepositorioOrigem(), + $objExpedirProcedimentoDTO->getNumIdUnidadeOrigem(), + $objExpedirProcedimentoDTO->getNumIdRepositorioDestino(), + $objExpedirProcedimentoDTO->getNumIdUnidadeDestino(), + $objProcesso, + $objTramite->ticketParaEnvioDeComponentesDigitais, + $objTramite->componentesDigitaisSolicitados); $this->objProcessoEletronicoRN->cadastrarTramitePendente($objTramite->IDT, $idAtividadeExpedicao); @@ -802,8 +799,6 @@ class ExpedirProcedimentoRN extends InfraRN { $ordemDocumento = 1; $objProcesso->documento = array(); - - foreach ($arrDocumentosDTO as $documentoDTO) { //$protocoloDocumentoDTO = $this->consultarProtocoloDocumento($documeto->getDblIdProcedimento()); @@ -845,13 +840,11 @@ class ExpedirProcedimentoRN extends InfraRN { $documento->nivelDeSigilo = $this->obterNivelSigiloPEN($documentoDTO->getStrStaNivelAcessoLocalProtocolo()); if($documentoDTO->getStrStaNivelAcessoLocalProtocolo() == ProtocoloRN::$NA_RESTRITO){ - $documento->hipoteseLegal = new stdClass(); $documento->hipoteseLegal->identificacao = $objPenRelHipoteseLegalRN->getIdHipoteseLegalPEN($documentoDTO->getNumIdHipoteseLegalProtocolo()); - // $documento->hipoteseLegal->nome = 'Nomee'; - // $documento->hipoteseLegal->baseLegal = 'Base Legall'; } - $documento->dataHoraDeProducao = $this->objProcessoEletronicoRN->converterDataWebService($documentoDTO->getDtaGeracaoProtocolo()); + + $documento->dataHoraDeProducao = $this->objProcessoEletronicoRN->converterDataWebService($documentoDTO->getDtaGeracaoProtocolo()); $usuarioDTO = $this->consultarUsuario($documentoDTO->getNumIdUsuarioGeradorProtocolo()); if(isset($usuarioDTO)) { diff --git a/rn/PenAtividadeRN.php b/rn/PenAtividadeRN.php index 851fdb5..0c49829 100644 --- a/rn/PenAtividadeRN.php +++ b/rn/PenAtividadeRN.php @@ -7,370 +7,37 @@ require_once dirname(__FILE__) . '/../../../SEI.php'; class PenAtividadeRN extends AtividadeRN { private $statusPesquisa = true; - + public function setStatusPesquisa($statusPesquisa) { - + $this->statusPesquisa = $statusPesquisa; } - /* - protected function listarPendenciasRN0754Conectado(PesquisaPendenciaDTO $objPesquisaPendenciaDTO) { - - if ($this->statusPesquisa) { - if (!$objPesquisaPendenciaDTO->isSetStrStaEstadoProcedimento()) { - $objPesquisaPendenciaDTO->setStrStaEstadoProcedimento(ProtocoloRN::$TE_NORMAL); - } - } - - if (!$objPesquisaPendenciaDTO->isSetStrStaTipoAtribuicao()) { - $objPesquisaPendenciaDTO->setStrStaTipoAtribuicao(self::$TA_TODAS); - } - - if (!$objPesquisaPendenciaDTO->isSetNumIdUsuarioAtribuicao()) { - $objPesquisaPendenciaDTO->setNumIdUsuarioAtribuicao(null); - } - - if (!$objPesquisaPendenciaDTO->isSetStrSinMontandoArvore()) { - $objPesquisaPendenciaDTO->setStrSinMontandoArvore('N'); - } - - if (!$objPesquisaPendenciaDTO->isSetStrSinDocTodos()) { - $objPesquisaPendenciaDTO->setStrSinDocTodos('N'); - } - - if (!$objPesquisaPendenciaDTO->isSetStrSinDocAnexos()) { - $objPesquisaPendenciaDTO->setStrSinDocAnexos('N'); - } - - if (!$objPesquisaPendenciaDTO->isSetStrSinDocConteudo()) { - $objPesquisaPendenciaDTO->setStrSinDocConteudo('N'); - } - - if (!$objPesquisaPendenciaDTO->isSetStrSinAnotacoes()) { - $objPesquisaPendenciaDTO->setStrSinAnotacoes('N'); - } - - if (!$objPesquisaPendenciaDTO->isSetStrSinInteressados()) { - $objPesquisaPendenciaDTO->setStrSinInteressados('N'); - } - - if (!$objPesquisaPendenciaDTO->isSetStrSinRetornoProgramado()) { - $objPesquisaPendenciaDTO->setStrSinRetornoProgramado('N'); - } - - if (!$objPesquisaPendenciaDTO->isSetStrSinCredenciais()) { - $objPesquisaPendenciaDTO->setStrSinCredenciais('N'); - } - - if (!$objPesquisaPendenciaDTO->isSetStrSinProcAnexados()) { - $objPesquisaPendenciaDTO->setStrSinProcAnexados('N'); - } - - if (!$objPesquisaPendenciaDTO->isSetStrSinHoje()) { - $objPesquisaPendenciaDTO->setStrSinHoje('N'); - } - - - $objAtividadeDTO = new AtividadeDTO(); - $objAtividadeDTO->retNumIdAtividade(); - $objAtividadeDTO->retNumIdTarefa(); - $objAtividadeDTO->retNumIdUsuarioAtribuicao(); - $objAtividadeDTO->retNumIdUsuarioVisualizacao(); - $objAtividadeDTO->retNumTipoVisualizacao(); - $objAtividadeDTO->retNumIdUnidade(); - $objAtividadeDTO->retDthConclusao(); - $objAtividadeDTO->retDblIdProtocolo(); - $objAtividadeDTO->retStrSiglaUnidade(); - $objAtividadeDTO->retStrSinInicial(); - $objAtividadeDTO->retNumIdUsuarioAtribuicao(); - $objAtividadeDTO->retStrSiglaUsuarioAtribuicao(); - $objAtividadeDTO->retStrNomeUsuarioAtribuicao(); - - $objAtividadeDTO->setNumIdUnidade($objPesquisaPendenciaDTO->getNumIdUnidade()); - - if ($objPesquisaPendenciaDTO->getStrSinHoje() == 'N') { - $objAtividadeDTO->setDthConclusao(null); - } else { - $objAtividadeDTO->adicionarCriterio(array('Conclusao', 'Conclusao'), array(InfraDTO::$OPER_IGUAL, InfraDTO::$OPER_MAIOR_IGUAL), array(null, InfraData::getStrDataAtual() . ' 00:00:00'), array(InfraDTO::$OPER_LOGICO_OR)); - } - - $objAtividadeDTO->adicionarCriterio(array('StaNivelAcessoGlobalProtocolo'), array(InfraDTO::$OPER_DIFERENTE), array(ProtocoloRN::$NA_SIGILOSO), array(), 'criterioRestritosPublicos'); - - $objAtividadeDTO->adicionarCriterio(array('StaNivelAcessoGlobalProtocolo', 'IdUsuario'), array(InfraDTO::$OPER_IGUAL, InfraDTO::$OPER_IGUAL), array(ProtocoloRN::$NA_SIGILOSO, $objPesquisaPendenciaDTO->getNumIdUsuario()), array(InfraDTO::$OPER_LOGICO_AND), 'criterioSigilosos'); - - $objAtividadeDTO->agruparCriterios(array('criterioRestritosPublicos', 'criterioSigilosos'), array(InfraDTO::$OPER_LOGICO_OR)); - - if ($objPesquisaPendenciaDTO->getStrStaTipoAtribuicao() == self::$TA_MINHAS) { - $objAtividadeDTO->setNumIdUsuarioAtribuicao($objPesquisaPendenciaDTO->getNumIdUsuario()); - } else if ($objPesquisaPendenciaDTO->getStrStaTipoAtribuicao() == self::$TA_DEFINIDAS) { - $objAtividadeDTO->setNumIdUsuarioAtribuicao(null, InfraDTO::$OPER_DIFERENTE); - } else if ($objPesquisaPendenciaDTO->getStrStaTipoAtribuicao() == self::$TA_ESPECIFICAS) { - $objAtividadeDTO->setNumIdUsuarioAtribuicao($objPesquisaPendenciaDTO->getNumIdUsuarioAtribuicao()); - } - - if ($objPesquisaPendenciaDTO->isSetDblIdProtocolo()) { - if (!is_array($objPesquisaPendenciaDTO->getDblIdProtocolo())) { - $objAtividadeDTO->setDblIdProtocolo($objPesquisaPendenciaDTO->getDblIdProtocolo()); - } else { - $objAtividadeDTO->setDblIdProtocolo($objPesquisaPendenciaDTO->getDblIdProtocolo(), InfraDTO::$OPER_IN); - } - } - - if ($objPesquisaPendenciaDTO->isSetStrStaEstadoProcedimento()) { - if (is_array($objPesquisaPendenciaDTO->getStrStaEstadoProcedimento())) { - $objAtividadeDTO->setStrStaEstadoProtocolo($objPesquisaPendenciaDTO->getStrStaEstadoProcedimento(), InfraDTO::$OPER_IN); - } else { - $objAtividadeDTO->setStrStaEstadoProtocolo($objPesquisaPendenciaDTO->getStrStaEstadoProcedimento()); - } - } - - //ordenar pela data de abertura descendente - $objAtividadeDTO->setOrdDthAbertura(InfraDTO::$TIPO_ORDENACAO_DESC); - - - //paginação - $objAtividadeDTO->setNumMaxRegistrosRetorno($objPesquisaPendenciaDTO->getNumMaxRegistrosRetorno()); - $objAtividadeDTO->setNumPaginaAtual($objPesquisaPendenciaDTO->getNumPaginaAtual()); - - $arrAtividadeDTO = $this->listarRN0036($objAtividadeDTO); - - //paginação - $objPesquisaPendenciaDTO->setNumTotalRegistros($objAtividadeDTO->getNumTotalRegistros()); - $objPesquisaPendenciaDTO->setNumRegistrosPaginaAtual($objAtividadeDTO->getNumRegistrosPaginaAtual()); - - $arrProcedimentos = array(); - - //Se encontrou pelo menos um registro - if (count($arrAtividadeDTO) > 0) { - - $objProcedimentoDTO = new ProcedimentoDTO(); - - $objProcedimentoDTO->retDblIdProcedimento(); - $objProcedimentoDTO->retStrProtocoloProcedimentoFormatado(); - $objProcedimentoDTO->retStrNomeTipoProcedimento(); - $objProcedimentoDTO->retNumIdUnidadeGeradoraProtocolo(); - $objProcedimentoDTO->retStrStaEstadoProtocolo(); - $objProcedimentoDTO->retStrDescricaoProtocolo(); - $objProcedimentoDTO->retArrObjDocumentoDTO(); - - - $arrProtocolosAtividades = array_unique(InfraArray::converterArrInfraDTO($arrAtividadeDTO, 'IdProtocolo')); - $objProcedimentoDTO->setDblIdProcedimento($arrProtocolosAtividades, InfraDTO::$OPER_IN); - - if ($objPesquisaPendenciaDTO->getStrSinMontandoArvore() == 'S') { - $objProcedimentoDTO->setStrSinMontandoArvore('S'); - } - - if ($objPesquisaPendenciaDTO->getStrSinDocTodos() == 'S') { - $objProcedimentoDTO->setStrSinDocTodos('S'); - } - - if ($objPesquisaPendenciaDTO->getStrSinDocAnexos() == 'S') { - $objProcedimentoDTO->setStrSinDocAnexos('S'); - } - - if ($objPesquisaPendenciaDTO->getStrSinDocConteudo() == 'S') { - $objProcedimentoDTO->setStrSinDocConteudo('S'); - } - - if ($objPesquisaPendenciaDTO->getStrSinProcAnexados() == 'S') { - $objProcedimentoDTO->setStrSinProcAnexados('S'); - } - - if ($objPesquisaPendenciaDTO->isSetDblIdDocumento()) { - $objProcedimentoDTO->setArrDblIdProtocoloAssociado(array($objPesquisaPendenciaDTO->getDblIdDocumento())); - } - - $objProcedimentoRN = new ProcedimentoRN(); - - $arr = InfraArray::indexarArrInfraDTO($objProcedimentoRN->listarCompleto($objProcedimentoDTO), 'IdProcedimento'); - - $arrObjAnotacaoDTO = null; - if ($objPesquisaPendenciaDTO->getStrSinAnotacoes() == 'S') { - $objAnotacaoDTO = new AnotacaoDTO(); - $objAnotacaoDTO->retDblIdProtocolo(); - $objAnotacaoDTO->retStrDescricao(); - $objAnotacaoDTO->retStrSiglaUsuario(); - $objAnotacaoDTO->retStrNomeUsuario(); - $objAnotacaoDTO->retStrSinPrioridade(); - $objAnotacaoDTO->retNumIdUsuario(); - $objAnotacaoDTO->retStrStaAnotacao(); - $objAnotacaoDTO->setNumIdUnidade($objPesquisaPendenciaDTO->getNumIdUnidade()); - $objAnotacaoDTO->setDblIdProtocolo($arrProtocolosAtividades, InfraDTO::$OPER_IN); - - $objAnotacaoRN = new AnotacaoRN(); - $arrObjAnotacaoDTO = InfraArray::indexarArrInfraDTO($objAnotacaoRN->listar($objAnotacaoDTO), 'IdProtocolo', true); - } - - - $arrObjParticipanteDTO = null; - if ($objPesquisaPendenciaDTO->getStrSinInteressados() == 'S') { - - $arrObjParticipanteDTO = array(); - - $objParticipanteDTO = new ParticipanteDTO(); - $objParticipanteDTO->retDblIdProtocolo(); - $objParticipanteDTO->retStrSiglaContato(); - $objParticipanteDTO->retStrNomeContato(); - $objParticipanteDTO->setStrStaParticipacao(ParticipanteRN::$TP_INTERESSADO); - $objParticipanteDTO->setDblIdProtocolo($arrProtocolosAtividades, InfraDTO::$OPER_IN); - - $objParticipanteRN = new ParticipanteRN(); - $arrTemp = $objParticipanteRN->listarRN0189($objParticipanteDTO); - - foreach ($arrTemp as $objParticipanteDTO) { - if (!isset($arrObjParticipanteDTO[$objParticipanteDTO->getDblIdProtocolo()])) { - $arrObjParticipanteDTO[$objParticipanteDTO->getDblIdProtocolo()] = array($objParticipanteDTO); - } else { - $arrObjParticipanteDTO[$objParticipanteDTO->getDblIdProtocolo()][] = $objParticipanteDTO; - } - } - } - - $arrObjRetornoProgramadoDTO = null; - if ($objPesquisaPendenciaDTO->getStrSinRetornoProgramado() == 'S') { - $objRetornoProgramadoDTO = new RetornoProgramadoDTO(); - $objRetornoProgramadoDTO->retDblIdProtocoloAtividadeEnvio(); - $objRetornoProgramadoDTO->retStrSiglaUnidadeOrigemAtividadeEnvio(); - $objRetornoProgramadoDTO->retDtaProgramada(); - $objRetornoProgramadoDTO->setNumIdUnidadeAtividadeEnvio($objPesquisaPendenciaDTO->getNumIdUnidade()); - $objRetornoProgramadoDTO->setDblIdProtocoloAtividadeEnvio($arrProtocolosAtividades, InfraDTO::$OPER_IN); - $objRetornoProgramadoDTO->setNumIdAtividadeRetorno(null); - - $objRetornoProgramadoRN = new RetornoProgramadoRN(); - $arrObjRetornoProgramadoDTO = InfraArray::indexarArrInfraDTO($objRetornoProgramadoRN->listar($objRetornoProgramadoDTO), 'IdProtocoloAtividadeEnvio', true); - } - - - //Manter ordem obtida na listagem das atividades - $arrAdicionados = array(); - $arrIdProcedimentoSigiloso = array(); - - foreach ($arrAtividadeDTO as $objAtividadeDTO) { - - $objProcedimentoDTO = $arr[$objAtividadeDTO->getDblIdProtocolo()]; - - //pode não existir se o procedimento foi excluído - if ($objProcedimentoDTO != null) { - - $dblIdProcedimento = $objProcedimentoDTO->getDblIdProcedimento(); - - if ($objProcedimentoDTO->getStrStaNivelAcessoGlobalProtocolo() == ProtocoloRN::$NA_SIGILOSO) { - - $objProcedimentoDTO->setStrSinCredencialProcesso('N'); - $objProcedimentoDTO->setStrSinCredencialAssinatura('N'); - - $arrIdProcedimentoSigiloso[] = $dblIdProcedimento; - } - - if (!isset($arrAdicionados[$dblIdProcedimento])) { - $objProcedimentoDTO->setArrObjAtividadeDTO(array($objAtividadeDTO)); - - if (is_array($arrObjAnotacaoDTO)) { - - $objProcedimentoDTO->setObjAnotacaoDTO(null); - - if (isset($arrObjAnotacaoDTO[$dblIdProcedimento])) { - - foreach ($arrObjAnotacaoDTO[$dblIdProcedimento] as $objAnotacaoDTO) { - if ($objProcedimentoDTO->getStrStaNivelAcessoGlobalProtocolo() == ProtocoloRN::$NA_SIGILOSO) { - if ($objAnotacaoDTO->getNumIdUsuario() == $objPesquisaPendenciaDTO->getNumIdUsuario() && $objAnotacaoDTO->getStrStaAnotacao() == AnotacaoRN::$TA_INDIVIDUAL) { - $objProcedimentoDTO->setObjAnotacaoDTO($objAnotacaoDTO); - break; - } - } else { - if ($objAnotacaoDTO->getStrStaAnotacao() == AnotacaoRN::$TA_UNIDADE) { - $objProcedimentoDTO->setObjAnotacaoDTO($objAnotacaoDTO); - break; - } - } - } - } - } - - if (is_array($arrObjParticipanteDTO)) { - if (isset($arrObjParticipanteDTO[$dblIdProcedimento])) { - $objProcedimentoDTO->setArrObjParticipanteDTO($arrObjParticipanteDTO[$dblIdProcedimento]); - } else { - $objProcedimentoDTO->setArrObjParticipanteDTO(null); - } - } - - if (is_array($arrObjRetornoProgramadoDTO)) { - if (isset($arrObjRetornoProgramadoDTO[$dblIdProcedimento])) { - $objProcedimentoDTO->setArrObjRetornoProgramadoDTO($arrObjRetornoProgramadoDTO[$dblIdProcedimento]); - } else { - $objProcedimentoDTO->setArrObjRetornoProgramadoDTO(null); - } - } - - $arrProcedimentos[] = $objProcedimentoDTO; - $arrAdicionados[$dblIdProcedimento] = 0; - } else { - $arrAtividadeDTOProcedimento = $objProcedimentoDTO->getArrObjAtividadeDTO(); - $arrAtividadeDTOProcedimento[] = $objAtividadeDTO; - $objProcedimentoDTO->setArrObjAtividadeDTO($arrAtividadeDTOProcedimento); - } - } - } - - if ($objPesquisaPendenciaDTO->getStrSinCredenciais() == 'S' && count($arrIdProcedimentoSigiloso)) { - - $objAcessoDTO = new AcessoDTO(); - $objAcessoDTO->retDblIdProtocolo(); - $objAcessoDTO->retStrStaTipo(); - $objAcessoDTO->setNumIdUsuario($objPesquisaPendenciaDTO->getNumIdUsuario()); - $objAcessoDTO->setNumIdUnidade($objPesquisaPendenciaDTO->getNumIdUnidade()); - $objAcessoDTO->setStrStaTipo(array(AcessoRN::$TA_CREDENCIAL_PROCESSO, AcessoRN::$TA_CREDENCIAL_ASSINATURA_PROCESSO), InfraDTO::$OPER_IN); - $objAcessoDTO->setDblIdProtocolo($arrIdProcedimentoSigiloso, InfraDTO::$OPER_IN); - - $objAcessoRN = new AcessoRN(); - $arrObjAcessoDTO = $objAcessoRN->listar($objAcessoDTO); - - /* - foreach($arr as $objProcedimentoDTO){ - $objProcedimentoDTO->setStrSinCredencialProcesso('N'); - $objProcedimentoDTO->setStrSinCredencialAssinatura('N'); - } - */ - - /* foreach ($arrObjAcessoDTO as $objAcessoDTO) { - if ($objAcessoDTO->getStrStaTipo() == AcessoRN::$TA_CREDENCIAL_PROCESSO) { - $arr[$objAcessoDTO->getDblIdProtocolo()]->setStrSinCredencialProcesso('S'); - } else if ($objAcessoDTO->getStrStaTipo() == AcessoRN::$TA_CREDENCIAL_ASSINATURA_PROCESSO) { - $arr[$objAcessoDTO->getDblIdProtocolo()]->setStrSinCredencialAssinatura('S'); - } - } - } - } - - return $arrProcedimentos; - }*/ /** * Retorna a atividade da ação do tramite, ou seja, se estava enviando * ou recebendo um tramite - * + * * @param int $numIdTramite * @return object (bool bolReciboExiste, string mensagem) */ - public static function retornaAtividadeDoTramiteFormatado($numIdTramite = 0, $numIdTarefa = 501){ - + public static function retornaAtividadeDoTramiteFormatado($numIdTramite, $numIdEstrutura, $numIdTarefa){ + $objReturn = (object)array( 'strMensagem' => '', 'bolReciboExiste' => false ); - + $objBancoSEI = BancoSEI::getInstance(); - + $objTramiteDTO = new TramiteDTO(); $objTramiteDTO->setNumIdTramite($numIdTramite); $objTramiteDTO->retStrNumeroRegistro(); - + $objTramiteBD = new TramiteBD($objBancoSEI); $objTramiteDTO = $objTramiteBD->consultar($objTramiteDTO); - + if(!empty($objTramiteDTO)) { - + $objProcessoEletronicoDTO = new ProcessoEletronicoDTO(); $objProcessoEletronicoDTO->setStrNumeroRegistro($objTramiteDTO->getStrNumeroRegistro()); $objProcessoEletronicoDTO->retDblIdProcedimento(); @@ -380,70 +47,66 @@ class PenAtividadeRN extends AtividadeRN { $objAtividadeDTO = new AtividadeDTO(); $objAtividadeDTO->setDblIdProtocolo($objProcessoEletronicoDTO->getDblIdProcedimento()); - $objAtividadeDTO->setDblIdProtocolo($objProcessoEletronicoDTO->getDblIdProcedimento()); - $objAtividadeDTO->setNumIdTarefa($numIdTarefa); + $objAtividadeDTO->setNumIdTarefa($numIdTarefa); $objAtividadeDTO->retNumIdAtividade(); - + $objAtividadeBD = new AtividadeBD($objBancoSEI); $arrObjAtividadeDTO = $objAtividadeBD->listar($objAtividadeDTO); - + if(!empty($arrObjAtividadeDTO)) { - $arrNumAtividade = array(); - - foreach($arrObjAtividadeDTO as $objAtividadeDTO) { - - $arrNumAtividade[] = $objAtividadeDTO->getNumIdAtividade(); - } - + $arrNumAtividade = InfraArray::converterArrInfraDTO($arrObjAtividadeDTO, 'IdAtividade', 'IdAtividade'); + switch($numIdTarefa){ case ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_EXPEDIDO): $strMensagem = 'Trâmite externo do Processo %s para %s'; $strNome = 'UNIDADE_DESTINO'; - + $objReciboTramiteDTO = new ReciboTramiteDTO(); $objReciboTramiteDTO->setNumIdTramite($numIdTramite); $objReciboTramiteDTO->retNumIdTramite(); $objReciboTramiteBD = new ReciboTramiteBD($objBancoSEI); - $objReturn->bolReciboExiste = ($objReciboTramiteBD->contar($objReciboTramiteDTO) > 0) ? true : false; + $objReturn->bolReciboExiste = ($objReciboTramiteBD->contar($objReciboTramiteDTO) > 0) ? true : false; break; - + case ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_RECEBIDO): $strMensagem = 'Recebimento do Processo %s remetido por %s'; $strNome = 'ENTIDADE_ORIGEM'; - + $objReciboTramiteDTO = new ReciboTramiteRecebidoDTO(); $objReciboTramiteDTO->setNumIdTramite($numIdTramite); - $objReciboTramiteDTO->retNumIdTramite(); $objReciboTramiteBD = new ReciboTramiteRecebidoBD($objBancoSEI); $objReturn->bolReciboExiste = ($objReciboTramiteBD->contar($objReciboTramiteDTO) > 0) ? true : false; break; - } - + } + $objAtributoAndamentoDTO = new AtributoAndamentoDTO(); $objAtributoAndamentoDTO->setNumIdAtividade($arrNumAtividade, InfraDTO::$OPER_IN); $objAtributoAndamentoDTO->setStrNome($strNome); + $objAtributoAndamentoDTO->setStrIdOrigem($numIdEstrutura); $objAtributoAndamentoDTO->retStrValor(); - + $objAtributoAndamentoBD = new AtributoAndamentoBD($objBancoSEI); $arrAtributoAndamentoDTO = $objAtributoAndamentoBD->listar($objAtributoAndamentoDTO); - $objAtributoAndamentoDTO = current($arrAtributoAndamentoDTO); + //$objAtributoAndamentoDTO = current($arrAtributoAndamentoDTO); + $objAtributoAndamentoDTO = $arrAtributoAndamentoDTO[0]; + //print_r($objAtributoAndamentoDTO); + //echo "objAtributoAndamentoDTO->getStrValor(): " . $objAtributoAndamentoDTO->getStrValor(); + //die(); $obProtocoloDTO = new ProtocoloDTO(); $obProtocoloDTO->setDblIdProtocolo($objProcessoEletronicoDTO->getDblIdProcedimento()); $obProtocoloDTO->retStrProtocoloFormatado(); - - + $objProtocoloBD = new ProtocoloBD($objBancoSEI); $obProtocoloDTO = $objProtocoloBD->consultar($obProtocoloDTO); - - $objReturn->strMensagem = sprintf($strMensagem, $obProtocoloDTO->getStrProtocoloFormatado(), $objAtributoAndamentoDTO->getStrValor()); + $objReturn->strMensagem = sprintf($strMensagem, $obProtocoloDTO->getStrProtocoloFormatado(), $objAtributoAndamentoDTO->getStrValor()); } } - + return $objReturn; - } -} \ No newline at end of file + } +} diff --git a/rn/PenAtualizarSeiRN.php b/rn/PenAtualizarSeiRN.php index 14c946e..151f82e 100644 --- a/rn/PenAtualizarSeiRN.php +++ b/rn/PenAtualizarSeiRN.php @@ -49,6 +49,7 @@ class PenAtualizarSeiRN extends PenAtualizadorRN { case '1.1.4': //Não houve atualização no banco de dados case '1.1.5': //Não houve atualização no banco de dados case '1.1.6': $this->instalarV117(); + case '1.1.7': $this->instalarV118(); break; default: @@ -1107,8 +1108,6 @@ class PenAtualizarSeiRN extends PenAtualizadorRN { /* Contem atualizações da versao 1.1.7 do módulo */ protected function instalarV117() { - $objInfraMetaBD = new InfraMetaBD($this->objInfraBanco); - /* Cadastramento de novas espécies documentais */ $objEspecieDocumentalBD = new GenericoBD($this->inicializarObjInfraIBanco()); $objEspecieDocumentalDTO = new EspecieDocumentalDTO(); @@ -1134,22 +1133,34 @@ class PenAtualizarSeiRN extends PenAtualizadorRN { $fnCadastrar(186, 'Estudo', 'Podendo ser complementado com "Técnico Preliminar da Contratação"; "Técnico".'); $fnCadastrar(999, 'Outra', 'Outras espécies documentais não identificadas.'); - // if($this->isTabelaExiste('md_pen_rel_tipo_documento_mapeamento_recebido')) { - // if (BancoSEI::getInstance() instanceof InfraSqlServer) { - // BancoSEI::getInstance()->executarSql("sp_rename 'md_pen_rel_tipo_documento_mapeamento_recebido', 'md_pen_rel_tipo_doc_map_rec'"); - // } else { - // BancoSEI::getInstance()->executarSql("ALTER TABLE 'md_pen_rel_tipo_documento_mapeamento_recebido' RENAME TO 'md_pen_rel_tipo_doc_map_rec'"); - // } - // } + //altera o parâmetro da versão de banco + $objInfraParametroBD = new InfraParametroBD($this->inicializarObjInfraIBanco()); + $objInfraParametroDTO = new InfraParametroDTO(); + $objInfraParametroDTO->setStrNome(self::PARAMETRO_VERSAO_MODULO); + $objInfraParametroDTO->setStrValor('1.1.7'); + $objInfraParametroBD->alterar($objInfraParametroDTO); + } + + /* Contem atualizações da versao 1.1.8 do módulo */ + protected function instalarV118() { + $objInfraMetaBD = new InfraMetaBD($this->objInfraBanco); + + //Correção de chave primária para considerar campo de tipo de recibo $objInfraMetaBD->excluirChavePrimaria('md_pen_tramite_processado','pk_md_pen_tramite_processado'); $objInfraMetaBD->adicionarChavePrimaria('md_pen_tramite_processado','pk_md_pen_tramite_processado',array('id_tramite','tipo_tramite_processo')); + //Atribuição de dados da unidade de origem e destino no trâmite + $objInfraMetaBD->adicionarColuna('md_pen_tramite','id_repositorio_origem', $objInfraMetaBD->tipoNumero(16), 'null'); + $objInfraMetaBD->adicionarColuna('md_pen_tramite','id_estrutura_origem', $objInfraMetaBD->tipoNumero(16), 'null'); + $objInfraMetaBD->adicionarColuna('md_pen_tramite','id_repositorio_destino', $objInfraMetaBD->tipoNumero(16), 'null'); + $objInfraMetaBD->adicionarColuna('md_pen_tramite','id_estrutura_destino', $objInfraMetaBD->tipoNumero(16), 'null'); + //altera o parâmetro da versão de banco $objInfraParametroBD = new InfraParametroBD($this->inicializarObjInfraIBanco()); $objInfraParametroDTO = new InfraParametroDTO(); $objInfraParametroDTO->setStrNome(self::PARAMETRO_VERSAO_MODULO); - $objInfraParametroDTO->setStrValor('1.1.7'); + $objInfraParametroDTO->setStrValor('1.1.8'); $objInfraParametroBD->alterar($objInfraParametroDTO); } } diff --git a/rn/ProcedimentoAndamentoRN.php b/rn/ProcedimentoAndamentoRN.php index 5ba759b..36aea06 100644 --- a/rn/ProcedimentoAndamentoRN.php +++ b/rn/ProcedimentoAndamentoRN.php @@ -4,89 +4,89 @@ require_once dirname(__FILE__) . '/../../../SEI.php'; /** * Controla o log de estados da expadição de um procedimento pelo modulo SEI - * + * * @autor Join Tecnologia */ class ProcedimentoAndamentoRN extends InfraRN { - + protected $isSetOpts = false; protected $dblIdProcedimento; protected $dblIdTramit; - protected $numTarefa; + protected $numTarefa; /** * Instância do driver de conexão com o banco de dados - * + * * @var Infra[Driver] */ protected $bancoSEI = null; - + public function __destruct() { - + if(!empty($this->bancoSEI)) { - + $this->bancoSEI->fecharConexao(); } } - + /** * Invés de aproveitar o singleton do BancoSEI criamos uma nova instância para * não ser afetada pelo transation - * + * * @return Infra[Driver] */ protected function inicializarObjInfraIBanco() { - + if(empty($this->bancoSEI)) { - + $this->bancoSEI = new BancoSEI(); $this->bancoSEI->abrirConexao(); } - + return $this->bancoSEI; } - - + + public function setOpts($dblIdProcedimento = 0, $dblIdTramit = 0, $numTarefa){ - + $this->dblIdProcedimento = $dblIdProcedimento; $this->dblIdTramit = $dblIdTramit; $this->numTarefa = $numTarefa; $this->isSetOpts = true; } - + /** * Adiciona um novo andamento à um procedimento que esta sendo expedido para outra unidade - * + * * @param string $strMensagem * @param string $strSituacao Tipo ENUM(S,N) * @return null */ public function cadastrar($strMensagem = 'Não informado', $strSituacao = 'N'){ - + if($this->isSetOpts === false) { throw new InfraException('Log do cadastro de procedimento não foi configurado'); } - + $objInfraIBanco = $this->inicializarObjInfraIBanco(); $objInfraIBanco->abrirTransacao(); - + $hash = md5($this->dblIdProcedimento.$strMensagem); - + $objProcedimentoAndamentoDTO = new ProcedimentoAndamentoDTO(); $objProcedimentoAndamentoDTO->setStrSituacao($strSituacao); - $objProcedimentoAndamentoDTO->setDthData(date('d/m/Y H:i:s')); + $objProcedimentoAndamentoDTO->setDthData(date('d/m/Y H:i:s')); $objProcedimentoAndamentoDTO->setDblIdProcedimento($this->dblIdProcedimento); $objProcedimentoAndamentoDTO->setDblIdTramite($this->dblIdTramit); $objProcedimentoAndamentoDTO->setStrSituacao($strSituacao); $objProcedimentoAndamentoDTO->setStrMensagem($strMensagem); $objProcedimentoAndamentoDTO->setStrHash($hash); $objProcedimentoAndamentoDTO->setNumTarefa($this->numTarefa); - + $objProcedimentoAndamentoBD = new ProcedimentoAndamentoBD($objInfraIBanco); $objProcedimentoAndamentoBD->cadastrar($objProcedimentoAndamentoDTO); - - $objInfraIBanco->confirmarTransacao(); + + $objInfraIBanco->confirmarTransacao(); } } diff --git a/rn/ProcessoEletronicoRN.php b/rn/ProcessoEletronicoRN.php index ddc94e3..0d9ab18 100644 --- a/rn/ProcessoEletronicoRN.php +++ b/rn/ProcessoEletronicoRN.php @@ -568,7 +568,8 @@ class ProcessoEletronicoRN extends InfraRN { } - public function cadastrarTramiteDeProcesso($parDblIdProcedimento, $parStrNumeroRegistro, $parNumIdentificacaoTramite, $parDthRegistroTramite, $parObjProcesso, $parNumTicketComponentesDigitais = null, $parObjComponentesDigitaisSolicitados = null) + public function cadastrarTramiteDeProcesso($parDblIdProcedimento, $parStrNumeroRegistro, $parNumIdentificacaoTramite, $parDthRegistroTramite, $parNumIdRepositorioOrigem, + $parNumIdEstruturaOrigem, $parNumIdRepositorioDestino, $parNumIdEstruturaDestino, $parObjProcesso, $parNumTicketComponentesDigitais = null, $parObjComponentesDigitaisSolicitados = null) { if(!isset($parDblIdProcedimento) || $parDblIdProcedimento == 0) { throw new InfraException('Parâmetro $parDblIdProcedimento não informado.'); @@ -582,6 +583,22 @@ class ProcessoEletronicoRN extends InfraRN { throw new InfraException('Parâmetro $parStrNumeroRegistro não informado.'); } + if(!isset($parNumIdRepositorioOrigem) || $parNumIdRepositorioOrigem == 0) { + throw new InfraException('Parâmetro $parNumIdRepositorioOrigem não informado.'); + } + + if(!isset($parNumIdEstruturaOrigem) || $parNumIdEstruturaOrigem == 0) { + throw new InfraException('Parâmetro $parNumIdEstruturaOrigem não informado.'); + } + + if(!isset($parNumIdRepositorioDestino) || $parNumIdRepositorioDestino == 0) { + throw new InfraException('Parâmetro $parNumIdRepositorioDestino não informado.'); + } + + if(!isset($parNumIdEstruturaDestino) || $parNumIdEstruturaDestino == 0) { + throw new InfraException('Parâmetro $parNumIdEstruturaDestino não informado.'); + } + if(!isset($parObjProcesso)) { throw new InfraException('Parâmetro $objProcesso não informado.'); } @@ -618,6 +635,11 @@ class ProcessoEletronicoRN extends InfraRN { $objTramiteDTO->setDthRegistro($this->converterDataSEI($parDthRegistroTramite)); $objTramiteDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual()); $objTramiteDTO->setNumIdUsuario(SessaoSEI::getInstance()->getNumIdUsuario()); + $objTramiteDTO->setNumIdRepositorioOrigem($parNumIdRepositorioOrigem); + $objTramiteDTO->setNumIdEstruturaOrigem($parNumIdEstruturaOrigem); + $objTramiteDTO->setNumIdRepositorioDestino($parNumIdRepositorioDestino); + $objTramiteDTO->setNumIdEstruturaDestino($parNumIdEstruturaDestino); + $objProcessoEletronicoDTO->setArrObjTramiteDTO(array($objTramiteDTO)); //Monta dados dos componentes digitais @@ -651,25 +673,20 @@ class ProcessoEletronicoRN extends InfraRN { $objProcessoEletronicoDTO = $objProcessoEletronicoBD->consultar($objProcessoEletronicoDTOFiltro); if(empty($objProcessoEletronicoDTO)) { - $objProcessoEletronicoDTO = $objProcessoEletronicoBD->cadastrar($objProcessoEletronicoDTOFiltro); } //Registrar processos apensados if($parObjProcessoEletronicoDTO->isSetArrObjRelProcessoEletronicoApensado()) { - $objRelProcessoEletronicoApensadoBD = new RelProcessoEletronicoApensadoBD($this->getObjInfraIBanco()); - foreach ($parObjProcessoEletronicoDTO->getArrObjRelProcessoEletronicoApensado() as $objRelProcessoEletronicoApensadoDTOFiltro) { - if($objRelProcessoEletronicoApensadoBD->contar($objRelProcessoEletronicoApensadoDTOFiltro) < 1){ - $objRelProcessoEletronicoApensadoBD->cadastrar($objRelProcessoEletronicoApensadoDTOFiltro); } } } - //Registrar informações sobre o trâmite do processo + //Registrar informações sobre o trâmite do processo $arrObjTramiteDTO = $parObjProcessoEletronicoDTO->getArrObjTramiteDTO(); $parObjTramiteDTO = $arrObjTramiteDTO[0]; diff --git a/rn/ReceberProcedimentoRN.php b/rn/ReceberProcedimentoRN.php index 952b025..d479568 100644 --- a/rn/ReceberProcedimentoRN.php +++ b/rn/ReceberProcedimentoRN.php @@ -101,7 +101,7 @@ class ReceberProcedimentoRN extends InfraRN if (isset($objMetadadosProcedimento->metadados->unidadeReceptora)) { $numUnidadeReceptora = $objMetadadosProcedimento->metadados->unidadeReceptora; $this->destinatarioReal = $objMetadadosProcedimento->metadados->destinatario; - $objMetadadosProcedimento->metadados->destinatario = $numUnidadeReceptora; + $objMetadadosProcedimento->metadados->destinatario->numeroDeIdentificacaoDaEstrutura = $numUnidadeReceptora; $this->gravarLogDebug("Atribuindo unidade receptora $numUnidadeReceptora para o trâmite $parNumIdentificacaoTramite", 4); } @@ -114,7 +114,6 @@ class ReceberProcedimentoRN extends InfraRN //Comentando o trecho abaixo funciona, mas o processo fica aberto na unidade de destino if($this->tramiteRegistrado($strNumeroRegistro, $parNumIdentificacaoTramite)) { $this->gravarLogDebug("Trâmite $parNumIdentificacaoTramite já para o processo " . $objProcesso->protocolo, 4); - // return ; } // Validação dos dados do processo recebido @@ -185,15 +184,22 @@ class ReceberProcedimentoRN extends InfraRN $this->gravarLogDebug("Persistindo/atualizando dados do processo com NRE " . $strNumeroRegistro, 4); $objProcedimentoDTO = $this->registrarProcesso($strNumeroRegistro, $parNumIdentificacaoTramite, $objProcesso, $objMetadadosProcedimento); - // @join_tec US008.08 (#23092) $this->objProcedimentoAndamentoRN->setOpts($objProcedimentoDTO->getDblIdProcedimento(), $parNumIdentificacaoTramite, ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_RECEBIDO)); $this->objProcedimentoAndamentoRN->cadastrar('Obtendo metadados do processo', 'S'); $this->gravarLogDebug("Registrando trâmite externo do processo", 4); - $objProcessoEletronicoDTO = $this->objProcessoEletronicoRN->cadastrarTramiteDeProcesso($objProcedimentoDTO->getDblIdProcedimento(), - $strNumeroRegistro, $parNumIdentificacaoTramite, null, $objProcesso); + $objProcessoEletronicoDTO = $this->objProcessoEletronicoRN->cadastrarTramiteDeProcesso( + $objProcedimentoDTO->getDblIdProcedimento(), + $strNumeroRegistro, + $parNumIdentificacaoTramite, + null, + $objMetadadosProcedimento->metadados->remetente->identificacaoDoRepositorioDeEstruturas, + $objMetadadosProcedimento->metadados->remetente->numeroDeIdentificacaoDaEstrutura, + $objMetadadosProcedimento->metadados->destinatario->identificacaoDoRepositorioDeEstruturas, + $objMetadadosProcedimento->metadados->destinatario->numeroDeIdentificacaoDaEstrutura, + $objProcesso); //Verifica se o tramite se encontra na situação correta $arrObjTramite = $this->objProcessoEletronicoRN->consultarTramites($parNumIdentificacaoTramite); @@ -201,7 +207,6 @@ class ReceberProcedimentoRN extends InfraRN throw new InfraException("Trâmite não pode ser localizado pelo identificado $parNumIdentificacaoTramite."); } - $objTramite = $arrObjTramite[0]; if($objTramite->situacaoAtual != ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_COMPONENTES_RECEBIDOS_DESTINATARIO) { $this->gravarLogDebug("Desconsiderando recebimento do processo devido a situação de trâmite inconsistente: " . $objTramite->situacaoAtual, 4); -- libgit2 0.21.2
'.$objPaginaSEI->gerarCaptionTabela('estados do processo', $numRegistros).'
Situação
' . '' . ''.$objReturn->strMensagem.''; - + // @join_tec US008.03 (#23092) | @join_tec US008.13 (#23092) - if($numTarefa == ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_EXPEDIDO)){ $strResultado .= 'Recibo de Confirmação de Envio'; } @@ -254,13 +252,11 @@ try { } $strResultado .= '