Commit 8eafc82e7177db38ed673d3215f76a50bc100ebd

Authored by Eduardo Heinske
1 parent a88d67fd

Ajuste na formatação dos recibos de envio/recebimento e correção do erro nos doc…

…umentos do tipo e-mail
dto/ReciboTramiteHashDTO.php 0 → 100644
@@ -0,0 +1,19 @@ @@ -0,0 +1,19 @@
  1 +<?
  2 +
  3 +require_once dirname(__FILE__).'/../../../SEI.php';
  4 +
  5 +class ReciboTramiteHashDTO extends InfraDTO {
  6 +
  7 + public function getStrNomeTabela() {
  8 + return "md_pen_recibo_tramite_hash";
  9 + }
  10 +
  11 + public function montar() {
  12 + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_STR, 'NumeroRegistro', 'numero_registro');
  13 + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'IdTramite', 'id_tramite');
  14 + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_STR, 'HashComponenteDigital', 'hash_componente_digital');
  15 + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_STR, 'TipoRecibo', 'tipo_recibo');
  16 +
  17 + }
  18 +}
  19 +
dto/ReciboTramiteRecebidoDTO.php
@@ -14,5 +14,6 @@ class ReciboTramiteRecebidoDTO extends InfraDTO { @@ -14,5 +14,6 @@ class ReciboTramiteRecebidoDTO extends InfraDTO {
14 $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'IdTramite', 'id_tramite'); 14 $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'IdTramite', 'id_tramite');
15 $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_DTH, 'Recebimento', 'dth_recebimento'); 15 $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_DTH, 'Recebimento', 'dth_recebimento');
16 $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_STR, 'HashAssinatura', 'hash_assinatura'); 16 $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_STR, 'HashAssinatura', 'hash_assinatura');
  17 + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_STR, 'CadeiaCertificado', 'cadeia_certificado');
17 } 18 }
18 } 19 }
19 \ No newline at end of file 20 \ No newline at end of file
pen_procedimento_estado.php
@@ -20,6 +20,7 @@ try { @@ -20,6 +20,7 @@ try {
20 20
21 //$objSessaoSEI->validarLink(); 21 //$objSessaoSEI->validarLink();
22 $objSessaoSEI->validarPermissao('pen_procedimento_expedir'); 22 $objSessaoSEI->validarPermissao('pen_procedimento_expedir');
  23 + $objGenericoBD = new GenericoBD(BancoSEI::getInstance());
23 24
24 if(array_key_exists('metodo', $_GET)) { 25 if(array_key_exists('metodo', $_GET)) {
25 26
@@ -49,21 +50,33 @@ try { @@ -49,21 +50,33 @@ try {
49 throw new InfraException('O recibo ainda não foi recebido.'); 50 throw new InfraException('O recibo ainda não foi recebido.');
50 } 51 }
51 52
52 - 53 + $objReciboTramiteHashDTO = new ReciboTramiteHashDTO();
  54 + $objReciboTramiteHashDTO->setNumIdTramite($_GET['id_tramite']);
  55 + $objReciboTramiteHashDTO->setStrTipoRecibo(ProcessoEletronicoRN::$STA_TIPO_RECIBO_ENVIO);
  56 + $objReciboTramiteHashDTO->retStrHashComponenteDigital();
  57 +
  58 + $arrObjReciboTramiteHashDTO = $objGenericoBD->listar($objReciboTramiteHashDTO);
  59 +
53 foreach($arrObjReciboTramiteDTO as $objReciboTramiteDTO) { 60 foreach($arrObjReciboTramiteDTO as $objReciboTramiteDTO) {
54 61
55 $dthTimeStamp = InfraData::getTimestamp($objReciboTramiteDTO->getDthRecebimento()); 62 $dthTimeStamp = InfraData::getTimestamp($objReciboTramiteDTO->getDthRecebimento());
56 63
57 - print '<recibo>'; 64 + print '<reciboDeEnvio>';
58 print '<IDT>'.$objReciboTramiteDTO->getNumIdTramite().'</IDT>'; 65 print '<IDT>'.$objReciboTramiteDTO->getNumIdTramite().'</IDT>';
59 print '<NRE>'.$objReciboTramiteDTO->getStrNumeroRegistro().'</NRE>'; 66 print '<NRE>'.$objReciboTramiteDTO->getStrNumeroRegistro().'</NRE>';
60 - print '<dataDeRecebimento>'.date('c', $dthTimeStamp).'</dataDeRecebimento>'; 67 + print '<dataDeRecebimentoDoUltimoComponenteDigital>'.date('c', $dthTimeStamp).'</dataDeRecebimentoDoUltimoComponenteDigital>';
61 68
62 - $strHashAssinatura = $objReciboTramiteDTO->getStrHashAssinatura();  
63 - if(!empty($strHashAssinatura)) {  
64 - print '<hashDoComponenteDigital>'.$strHashAssinatura.'</hashDoComponenteDigital>'; 69 + if($arrObjReciboTramiteHashDTO && is_array($arrObjReciboTramiteHashDTO)){
  70 + $arrObjReciboTramiteHashDTO = InfraArray::converterArrInfraDTO($arrObjReciboTramiteHashDTO, 'HashComponenteDigital');
  71 + ksort($arrObjReciboTramiteHashDTO);
  72 +
  73 + foreach($arrObjReciboTramiteHashDTO as $hash){
  74 + print '<hashDoComponenteDigital>'.$hash.'</hashDoComponenteDigital>';
  75 + }
65 } 76 }
66 - print '</recibo>'; 77 + print '</reciboDeEnvio>';
  78 + print '<cadeiaDoCertificado>'.$objReciboTramiteDTO->getStrCadeiaCertificado().'</cadeiaDoCertificado>';
  79 + print '<hashDaAssinatura>'.$objReciboTramiteDTO->getStrHashAssinatura().'</hashDaAssinatura>';
67 } 80 }
68 81
69 } 82 }
@@ -97,6 +110,19 @@ try { @@ -97,6 +110,19 @@ try {
97 throw new InfraException('O recibo ainda não foi recebido.'); 110 throw new InfraException('O recibo ainda não foi recebido.');
98 } 111 }
99 112
  113 + $objReciboTramiteHashDTO = new ReciboTramiteHashDTO();
  114 + $objReciboTramiteHashDTO->setNumIdTramite($_GET['id_tramite']);
  115 + $objReciboTramiteHashDTO->retStrHashComponenteDigital();
  116 +
  117 + if($_GET['id_tarefa'] == ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_EXPEDIDO)){
  118 + $objReciboTramiteHashDTO->setStrTipoRecibo(ProcessoEletronicoRN::$STA_TIPO_RECIBO_CONCLUSAO_RECEBIDO);
  119 +
  120 + }else{
  121 + $objReciboTramiteHashDTO->setStrTipoRecibo(ProcessoEletronicoRN::$STA_TIPO_RECIBO_CONCLUSAO_ENVIADO);
  122 +
  123 + }
  124 +
  125 + $arrObjReciboTramiteHashDTO = $objGenericoBD->listar($objReciboTramiteHashDTO);
100 126
101 foreach($arrObjReciboTramiteDTO as $objReciboTramiteDTO) { 127 foreach($arrObjReciboTramiteDTO as $objReciboTramiteDTO) {
102 128
@@ -108,10 +134,19 @@ try { @@ -108,10 +134,19 @@ try {
108 print '<dataDeRecebimento>'.date('c', $dthTimeStamp).'</dataDeRecebimento>'; 134 print '<dataDeRecebimento>'.date('c', $dthTimeStamp).'</dataDeRecebimento>';
109 135
110 $strHashAssinatura = $objReciboTramiteDTO->getStrHashAssinatura(); 136 $strHashAssinatura = $objReciboTramiteDTO->getStrHashAssinatura();
111 - if(!empty($strHashAssinatura)) {  
112 - print '<hashDoComponenteDigital>'.$strHashAssinatura.'</hashDoComponenteDigital>'; 137 +
  138 + if($arrObjReciboTramiteHashDTO && is_array($arrObjReciboTramiteHashDTO)){
  139 + $arrObjReciboTramiteHashDTO = InfraArray::converterArrInfraDTO($arrObjReciboTramiteHashDTO, 'HashComponenteDigital');
  140 + ksort($arrObjReciboTramiteHashDTO);
  141 +
  142 + foreach($arrObjReciboTramiteHashDTO as $hash){
  143 + print '<hashDoComponenteDigital>'.$hash.'</hashDoComponenteDigital>';
  144 + }
113 } 145 }
  146 +
114 print '</recibo>'; 147 print '</recibo>';
  148 + print '<cadeiaDoCertificado>'.$objReciboTramiteDTO->getStrCadeiaCertificado().'</cadeiaDoCertificado>';
  149 + print '<hashDaAssinatura>'.$objReciboTramiteDTO->getStrHashAssinatura().'</hashDaAssinatura>';
115 } 150 }
116 151
117 } 152 }
rn/EnviarReciboTramiteRN.php
@@ -54,7 +54,7 @@ class EnviarReciboTramiteRN extends InfraRN @@ -54,7 +54,7 @@ class EnviarReciboTramiteRN extends InfraRN
54 return $arrStrHashConteudo; 54 return $arrStrHashConteudo;
55 } 55 }
56 56
57 - protected function cadastrarReciboTramiteRecebimento($strNumeroRegistro = '', $parNumIdTramite = 0, $strHashConteudo = ''){ 57 + protected function cadastrarReciboTramiteRecebimento($strNumeroRegistro = '', $parNumIdTramite = 0, $strHashConteudo = '', $parArrayHash = array()){
58 58
59 $objBD = new ReciboTramiteRecebidoBD($this->inicializarObjInfraIBanco()); 59 $objBD = new ReciboTramiteRecebidoBD($this->inicializarObjInfraIBanco());
60 60
@@ -69,6 +69,19 @@ class EnviarReciboTramiteRN extends InfraRN @@ -69,6 +69,19 @@ class EnviarReciboTramiteRN extends InfraRN
69 $objDTO->setDthRecebimento(date('d/m/Y H:i:s')); 69 $objDTO->setDthRecebimento(date('d/m/Y H:i:s'));
70 $objBD->cadastrar($objDTO); 70 $objBD->cadastrar($objDTO);
71 } 71 }
  72 +
  73 + foreach($parArrayHash as $strHashComponenteDigital){
  74 +
  75 + $objReciboTramiteHashDTO = new ReciboTramiteHashDTO();
  76 + $objReciboTramiteHashDTO->setStrNumeroRegistro($strNumeroRegistro);
  77 + $objReciboTramiteHashDTO->setNumIdTramite($parNumIdTramite);
  78 + $objReciboTramiteHashDTO->setStrHashComponenteDigital($strHashComponenteDigital);
  79 + $objReciboTramiteHashDTO->setStrTipoRecibo(ProcessoEletronicoRN::$STA_TIPO_RECIBO_CONCLUSAO_ENVIADO);
  80 +
  81 + $objBD->cadastrar($objReciboTramiteHashDTO);
  82 + }
  83 +
  84 +
72 } 85 }
73 86
74 public function enviarReciboTramiteProcesso($parNumIdTramite, $parArrayHash = null, $parDthRecebimento = null) 87 public function enviarReciboTramiteProcesso($parNumIdTramite, $parArrayHash = null, $parDthRecebimento = null)
@@ -136,7 +149,7 @@ class EnviarReciboTramiteRN extends InfraRN @@ -136,7 +149,7 @@ class EnviarReciboTramiteRN extends InfraRN
136 149
137 //Envia o Recibo de salva no banco 150 //Envia o Recibo de salva no banco
138 $hashAssinatura = $this->objProcessoEletronicoRN->enviarReciboDeTramite($parNumIdTramite, $dthRecebimento, $strReciboTramite); 151 $hashAssinatura = $this->objProcessoEletronicoRN->enviarReciboDeTramite($parNumIdTramite, $dthRecebimento, $strReciboTramite);
139 - $this->cadastrarReciboTramiteRecebimento($strNumeroRegistro, $parNumIdTramite, $hashAssinatura); 152 + $this->cadastrarReciboTramiteRecebimento($strNumeroRegistro, $parNumIdTramite, $hashAssinatura, $parArrayHash);
140 153
141 } 154 }
142 155
rn/ExpedirProcedimentoRN.php
@@ -975,7 +975,7 @@ class ExpedirProcedimentoRN extends InfraRN { @@ -975,7 +975,7 @@ class ExpedirProcedimentoRN extends InfraRN {
975 $strConteudoAssinatura = $arrInformacaoArquivo['CONTEUDO']; 975 $strConteudoAssinatura = $arrInformacaoArquivo['CONTEUDO'];
976 $hashDoComponenteDigital = hash($strAlgoritmoHash, $strConteudoAssinatura, true); 976 $hashDoComponenteDigital = hash($strAlgoritmoHash, $strConteudoAssinatura, true);
977 $hashDoComponenteDigital = base64_encode($hashDoComponenteDigital); 977 $hashDoComponenteDigital = base64_encode($hashDoComponenteDigital);
978 - 978 +
979 $objDocumento->componenteDigital = new stdClass(); 979 $objDocumento->componenteDigital = new stdClass();
980 $objDocumento->componenteDigital->ordem = 1; 980 $objDocumento->componenteDigital->ordem = 1;
981 $objDocumento->componenteDigital->nome = utf8_encode($arrInformacaoArquivo["NOME"]); 981 $objDocumento->componenteDigital->nome = utf8_encode($arrInformacaoArquivo["NOME"]);
@@ -1092,7 +1092,7 @@ class ExpedirProcedimentoRN extends InfraRN { @@ -1092,7 +1092,7 @@ class ExpedirProcedimentoRN extends InfraRN {
1092 $objDocumentoDTO2 = new DocumentoDTO(); 1092 $objDocumentoDTO2 = new DocumentoDTO();
1093 $objDocumentoDTO2->setDblIdDocumento($objDocumentoDTO->getDblIdDocumento()); 1093 $objDocumentoDTO2->setDblIdDocumento($objDocumentoDTO->getDblIdDocumento());
1094 $objDocumentoDTO2->setObjInfraSessao(SessaoSEI::getInstance()); 1094 $objDocumentoDTO2->setObjInfraSessao(SessaoSEI::getInstance());
1095 - $objDocumentoDTO2->setStrLinkDownload('controlador.php?acao=documento_download_anexo'); 1095 + // $objDocumentoDTO2->setStrLinkDownload('controlador.php?acao=documento_download_anexo');
1096 1096
1097 $objDocumentoRN = new DocumentoRN(); 1097 $objDocumentoRN = new DocumentoRN();
1098 $strResultado = $objDocumentoRN->consultarHtmlFormulario($objDocumentoDTO2); 1098 $strResultado = $objDocumentoRN->consultarHtmlFormulario($objDocumentoDTO2);
@@ -1102,7 +1102,7 @@ class ExpedirProcedimentoRN extends InfraRN { @@ -1102,7 +1102,7 @@ class ExpedirProcedimentoRN extends InfraRN {
1102 $arrInformacaoArquivo['TAMANHO'] = strlen($strResultado); 1102 $arrInformacaoArquivo['TAMANHO'] = strlen($strResultado);
1103 $arrInformacaoArquivo['MIME_TYPE'] = 'text/html'; 1103 $arrInformacaoArquivo['MIME_TYPE'] = 'text/html';
1104 $arrInformacaoArquivo['ID_ANEXO'] = null; 1104 $arrInformacaoArquivo['ID_ANEXO'] = null;
1105 - 1105 +
1106 } 1106 }
1107 1107
1108 return $arrInformacaoArquivo; 1108 return $arrInformacaoArquivo;
@@ -1793,7 +1793,7 @@ class ExpedirProcedimentoRN extends InfraRN { @@ -1793,7 +1793,7 @@ class ExpedirProcedimentoRN extends InfraRN {
1793 * @param int $parNumIdTramite 1793 * @param int $parNumIdTramite
1794 * @return bool 1794 * @return bool
1795 */ 1795 */
1796 - private function receberReciboDeEnvio($parNumIdTramite){ 1796 + protected function receberReciboDeEnvioControlado($parNumIdTramite){
1797 1797
1798 if (empty($parNumIdTramite)) { 1798 if (empty($parNumIdTramite)) {
1799 return false; 1799 return false;
@@ -1808,14 +1808,32 @@ class ExpedirProcedimentoRN extends InfraRN { @@ -1808,14 +1808,32 @@ class ExpedirProcedimentoRN extends InfraRN {
1808 return false; 1808 return false;
1809 } 1809 }
1810 1810
1811 - $objReciboTramiteEnviadoDTO = $this->objProcessoEletronicoRN->receberReciboDeEnvio($parNumIdTramite); 1811 + $objReciboEnvio = $this->objProcessoEletronicoRN->receberReciboDeEnvio($parNumIdTramite);
  1812 + $objDateTime = new DateTime($objReciboEnvio->reciboDeEnvio->dataDeRecebimentoDoUltimoComponenteDigital);
1812 1813
1813 - if (empty($objReciboTramiteEnviadoDTO)) {  
1814 - return false;  
1815 - } 1814 + $objReciboTramiteDTO = new ReciboTramiteEnviadoDTO();
  1815 + $objReciboTramiteDTO->setStrNumeroRegistro($objReciboEnvio->reciboDeEnvio->NRE);
  1816 + $objReciboTramiteDTO->setNumIdTramite($objReciboEnvio->reciboDeEnvio->IDT);
  1817 + $objReciboTramiteDTO->setDthRecebimento($objDateTime->format('d/m/Y H:i:s'));
  1818 + $objReciboTramiteDTO->setStrCadeiaCertificado($objReciboEnvio->cadeiaDoCertificado);
  1819 + $objReciboTramiteDTO->setStrHashAssinatura($objReciboEnvio->hashDaAssinatura);
1816 1820
1817 - $objGenericoBD->cadastrar($objReciboTramiteEnviadoDTO); 1821 + $objGenericoBD->cadastrar($objReciboTramiteDTO);
1818 1822
  1823 + if($objReciboEnvio->reciboDeEnvio->hashDoComponenteDigital && is_array($objReciboEnvio->reciboDeEnvio->hashDoComponenteDigital)){
  1824 +
  1825 + foreach($objReciboEnvio->reciboDeEnvio->hashDoComponenteDigital as $strHashComponenteDigital){
  1826 +
  1827 + $objReciboTramiteHashDTO = new ReciboTramiteHashDTO();
  1828 + $objReciboTramiteHashDTO->setStrNumeroRegistro($objReciboEnvio->reciboDeEnvio->NRE);
  1829 + $objReciboTramiteHashDTO->setNumIdTramite($objReciboEnvio->reciboDeEnvio->IDT);
  1830 + $objReciboTramiteHashDTO->setStrHashComponenteDigital($strHashComponenteDigital);
  1831 + $objReciboTramiteHashDTO->setStrTipoRecibo(ProcessoEletronicoRN::$STA_TIPO_RECIBO_ENVIO);
  1832 +
  1833 + $objGenericoBD->cadastrar($objReciboTramiteHashDTO);
  1834 + }
  1835 + }
  1836 +
1819 return true; 1837 return true;
1820 } 1838 }
1821 1839
rn/PenAtualizadorRN.php
@@ -13,6 +13,7 @@ abstract class PenAtualizadorRN extends InfraRN { @@ -13,6 +13,7 @@ abstract class PenAtualizadorRN extends InfraRN {
13 const VER_004 = '0.0.4'; 13 const VER_004 = '0.0.4';
14 const VER_005 = '0.0.5'; 14 const VER_005 = '0.0.5';
15 const VER_006 = '0.0.6'; 15 const VER_006 = '0.0.6';
  16 + const VER_007 = '0.0.7';
16 17
17 protected $sei_versao; 18 protected $sei_versao;
18 19
rn/PenAtualizarSeiRN.php
@@ -899,5 +899,29 @@ class PenAtualizarSeiRN extends PenAtualizadorRN { @@ -899,5 +899,29 @@ class PenAtualizarSeiRN extends PenAtualizadorRN {
899 $objInfraParametro->setValor('PEN_TAMANHO_MAXIMO_DOCUMENTO_EXPEDIDO', 50); 899 $objInfraParametro->setValor('PEN_TAMANHO_MAXIMO_DOCUMENTO_EXPEDIDO', 50);
900 900
901 } 901 }
  902 +
  903 + protected function instalarV007R004S005WI002() {
  904 +
  905 + $objMetaBD = $this->inicializarObjMetaBanco();
  906 +
  907 + $objMetaBD->criarTabela(array(
  908 + 'tabela' => 'md_pen_recibo_tramite_hash',
  909 + 'cols' => array(
  910 + 'numero_registro'=> array($objMetaBD->tipoTextoFixo(16), PenMetaBD::NNULLO),
  911 + 'id_tramite' => array($objMetaBD->tipoNumeroGrande(), PenMetaBD::NNULLO),
  912 + 'tipo_recibo' => array($objMetaBD->tipoTextoFixo(1), PenMetaBD::NNULLO),
  913 + 'hash_componente_digital ' => array($objMetaBD->tipoTextoVariavel(255), PenMetaBD::NNULLO)
  914 + ),
  915 + 'pk' => array('numero_registro', 'id_tramite', 'hash_componente_digital', 'tipo_recibo'),
  916 + 'fks' => array(
  917 + 'md_pen_tramite' => array(array('numero_registro', 'id_tramite'), array('numero_registro', 'id_tramite'))
  918 + )
  919 + ));
  920 +
  921 +
  922 +
  923 + $objMetaBD->adicionarColuna('md_pen_recibo_tramite_recebido', 'cadeia_certificado', $this->inicializarObjMetaBanco()->tipoTextoGrande(), PenMetaBD::SNULLO);
  924 +
  925 + }
902 926
903 } 927 }
904 \ No newline at end of file 928 \ No newline at end of file
rn/ProcessoEletronicoRN.php
@@ -13,13 +13,6 @@ class ProcessoEletronicoRN extends InfraRN { @@ -13,13 +13,6 @@ class ProcessoEletronicoRN extends InfraRN {
13 public static $TI_PROCESSO_ELETRONICO_PROCESSO_TRAMITE_EXTERNO = 'PEN_OPERACAO_EXTERNA'; 13 public static $TI_PROCESSO_ELETRONICO_PROCESSO_TRAMITE_EXTERNO = 'PEN_OPERACAO_EXTERNA';
14 public static $TI_PROCESSO_ELETRONICO_PROCESSO_ABORTADO = 'PEN_EXPEDICAO_PROCESSO_ABORTADA'; 14 public static $TI_PROCESSO_ELETRONICO_PROCESSO_ABORTADO = 'PEN_EXPEDICAO_PROCESSO_ABORTADA';
15 15
16 - /* TAREFAS DE EXPEDIÇÃO DE DOCUMENTOS */  
17 - //Está definindo o comportamento para a tarefa $TI_PROCESSO_BLOQUEADO  
18 - /*public static $TI_PROCESSO_ELETRONICO_DOCUMENTO_EXPEDIDO = 506;  
19 - public static $TI_PROCESSO_ELETRONICO_DOCUMENTO_RECEBIDO = 507;  
20 - public static $TI_PROCESSO_ELETRONICO_DOCUMENTO_RETRANSMITIDO = 508;  
21 - public static $TI_PROCESSO_ELETRONICO_DOCUMENTO_TRAMITE_CANCELADO = 509;  
22 - public static $TI_PROCESSO_ELETRONICO_DOCUMENTO_TRAMITE_RECUSADO = 510;*/  
23 16
24 /* NÍVEL DE SIGILO DE PROCESSOS E DOCUMENTOS */ 17 /* NÍVEL DE SIGILO DE PROCESSOS E DOCUMENTOS */
25 public static $STA_SIGILO_PUBLICO = '1'; 18 public static $STA_SIGILO_PUBLICO = '1';
@@ -37,6 +30,10 @@ class ProcessoEletronicoRN extends InfraRN { @@ -37,6 +30,10 @@ class ProcessoEletronicoRN extends InfraRN {
37 public static $STA_SITUACAO_TRAMITE_RECUSADO = 8; // Trâmite do processo recusado pelo destinatário (Situações 2, 3, 4) 30 public static $STA_SITUACAO_TRAMITE_RECUSADO = 8; // Trâmite do processo recusado pelo destinatário (Situações 2, 3, 4)
38 public static $STA_SITUACAO_TRAMITE_CIENCIA_RECUSA = 9; // Remetente ciente da recusa do trâmite 31 public static $STA_SITUACAO_TRAMITE_CIENCIA_RECUSA = 9; // Remetente ciente da recusa do trâmite
39 32
  33 + public static $STA_TIPO_RECIBO_ENVIO = '1'; // Recibo de envio
  34 + public static $STA_TIPO_RECIBO_CONCLUSAO_ENVIADO = '2'; // Recibo de recebimento enviado
  35 + public static $STA_TIPO_RECIBO_CONCLUSAO_RECEBIDO = '3'; // Recibo de recebimento recebido
  36 +
40 /* OPERAÇÕES DO HISTÓRICO DO PROCESSO */ 37 /* OPERAÇÕES DO HISTÓRICO DO PROCESSO */
41 // 02 a 18 estão registrados na tabela rel_tarefa_operacao 38 // 02 a 18 estão registrados na tabela rel_tarefa_operacao
42 public static $OP_OPERACAO_REGISTRO = "01"; 39 public static $OP_OPERACAO_REGISTRO = "01";
@@ -1156,21 +1153,7 @@ class ProcessoEletronicoRN extends InfraRN { @@ -1156,21 +1153,7 @@ class ProcessoEletronicoRN extends InfraRN {
1156 1153
1157 $resultado = $this->getObjPenWs()->receberReciboDeTramite($parametro); 1154 $resultado = $this->getObjPenWs()->receberReciboDeTramite($parametro);
1158 1155
1159 - $objReciboTramiteDTO = null;  
1160 - if(isset($resultado)) {  
1161 - $objConteudoDoReciboDeTramite = $resultado->conteudoDoReciboDeTramite;  
1162 - $objReciboTramiteDTO = new ReciboTramiteDTO();  
1163 - $objReciboTramiteDTO->setStrNumeroRegistro($objConteudoDoReciboDeTramite->recibo->NRE);  
1164 - $objReciboTramiteDTO->setNumIdTramite($objConteudoDoReciboDeTramite->recibo->IDT);  
1165 - $objDateTime = new DateTime($objConteudoDoReciboDeTramite->recibo->dataDeRecebimento);  
1166 - $objReciboTramiteDTO->setDthRecebimento($objDateTime->format('d/m/Y H:i:s'));  
1167 - //TODO: Avaliar se o resultado corresponde à uma lista de hashs ou apenas um elemento  
1168 - //$objReciboTramiteDTO->setStrHashComponenteDigital();  
1169 - $objReciboTramiteDTO->setStrCadeiaCertificado($objConteudoDoReciboDeTramite->cadeiaDoCertificado);  
1170 - $objReciboTramiteDTO->setStrHashAssinatura($objConteudoDoReciboDeTramite->hashDaAssinatura);  
1171 - }  
1172 -  
1173 - return $objReciboTramiteDTO; 1156 + return $resultado;
1174 } 1157 }
1175 catch (\SoapFault $fault) { 1158 catch (\SoapFault $fault) {
1176 $mensagem = $this->tratarFalhaWebService($fault); 1159 $mensagem = $this->tratarFalhaWebService($fault);
@@ -1194,19 +1177,7 @@ class ProcessoEletronicoRN extends InfraRN { @@ -1194,19 +1177,7 @@ class ProcessoEletronicoRN extends InfraRN {
1194 1177
1195 $resultado = $this->getObjPenWs()->receberReciboDeEnvio($parametro); 1178 $resultado = $this->getObjPenWs()->receberReciboDeEnvio($parametro);
1196 1179
1197 - if ($resultado && $resultado->conteudoDoReciboDeEnvio) {  
1198 -  
1199 - $objNodo = $resultado->conteudoDoReciboDeEnvio;  
1200 - $objReciboTramiteDTO = new ReciboTramiteEnviadoDTO();  
1201 - $objReciboTramiteDTO->setStrNumeroRegistro($objNodo->reciboDeEnvio->NRE);  
1202 - $objReciboTramiteDTO->setNumIdTramite($objNodo->reciboDeEnvio->IDT);  
1203 - $objDateTime = new DateTime($objNodo->reciboDeEnvio->dataDeRecebimento);  
1204 - $objReciboTramiteDTO->setDthRecebimento($objDateTime->format('d/m/Y H:i:s'));  
1205 - $objReciboTramiteDTO->setStrCadeiaCertificado($objNodo->cadeiaDoCertificado);  
1206 - $objReciboTramiteDTO->setStrHashAssinatura($objNodo->hashDaAssinatura);  
1207 -  
1208 - return $objReciboTramiteDTO;  
1209 - } 1180 + return $resultado->conteudoDoReciboDeEnvio;
1210 } 1181 }
1211 catch (\SoapFault $fault) { 1182 catch (\SoapFault $fault) {
1212 $mensagem = $this->tratarFalhaWebService($fault); 1183 $mensagem = $this->tratarFalhaWebService($fault);
rn/ReceberReciboTramiteRN.php
@@ -117,11 +117,21 @@ class ReceberReciboTramiteRN extends InfraRN @@ -117,11 +117,21 @@ class ReceberReciboTramiteRN extends InfraRN
117 throw new InfraException('Parâmetro $parNumIdTramite não informado.'); 117 throw new InfraException('Parâmetro $parNumIdTramite não informado.');
118 } 118 }
119 119
120 - $objReciboTramiteDTO = $this->objProcessoEletronicoRN->receberReciboDeTramite($parNumIdTramite); 120 + $objReciboTramite = $this->objProcessoEletronicoRN->receberReciboDeTramite($parNumIdTramite);
121 121
122 - if (!isset($objReciboTramiteDTO)) { 122 + if (!$objReciboTramite) {
123 throw new InfraException("Não foi possível obter recibo de conclusão do trâmite '$parNumIdTramite'"); 123 throw new InfraException("Não foi possível obter recibo de conclusão do trâmite '$parNumIdTramite'");
124 } 124 }
  125 +
  126 + $objReciboTramite = $objReciboTramite->conteudoDoReciboDeTramite;
  127 + $objDateTime = new DateTime($objReciboTramite->recibo->dataDeRecebimento);
  128 +
  129 + $objReciboTramiteDTO = new ReciboTramiteDTO();
  130 + $objReciboTramiteDTO->setStrNumeroRegistro($objReciboTramite->recibo->NRE);
  131 + $objReciboTramiteDTO->setNumIdTramite($objReciboTramite->recibo->IDT);
  132 + $objReciboTramiteDTO->setDthRecebimento($objDateTime->format('d/m/Y H:i:s'));
  133 + $objReciboTramiteDTO->setStrCadeiaCertificado($objReciboTramite->cadeiaDoCertificado);
  134 + $objReciboTramiteDTO->setStrHashAssinatura($objReciboTramite->hashDaAssinatura);
125 135
126 //Verifica se o trâmite do processo se encontra devidamente registrado no sistema 136 //Verifica se o trâmite do processo se encontra devidamente registrado no sistema
127 $objTramiteDTO = new TramiteDTO(); 137 $objTramiteDTO = new TramiteDTO();
@@ -144,6 +154,20 @@ class ReceberReciboTramiteRN extends InfraRN @@ -144,6 +154,20 @@ class ReceberReciboTramiteRN extends InfraRN
144 154
145 //Armazenar dados do recibo de conclusão do trãmite 155 //Armazenar dados do recibo de conclusão do trãmite
146 $objReciboTramiteBD->cadastrar($objReciboTramiteDTO); 156 $objReciboTramiteBD->cadastrar($objReciboTramiteDTO);
  157 +
  158 + if ($objReciboTramite->recibo->hashDoComponenteDigital && is_array($objReciboTramite->recibo->hashDoComponenteDigital)) {
  159 + foreach ($objReciboTramite->recibo->hashDoComponenteDigital as $strHashComponenteDigital) {
  160 +
  161 + $objReciboTramiteHashDTO = new ReciboTramiteHashDTO();
  162 + $objReciboTramiteHashDTO->setStrNumeroRegistro($objReciboTramite->recibo->NRE);
  163 + $objReciboTramiteHashDTO->setNumIdTramite($objReciboTramite->recibo->IDT);
  164 + $objReciboTramiteHashDTO->setStrHashComponenteDigital($strHashComponenteDigital);
  165 + $objReciboTramiteHashDTO->setStrTipoRecibo(ProcessoEletronicoRN::$STA_TIPO_RECIBO_CONCLUSAO_RECEBIDO);
  166 +
  167 + $objGenericoBD = new GenericoBD($this->getObjInfraIBanco());
  168 + $objGenericoBD->cadastrar($objReciboTramiteHashDTO);
  169 + }
  170 + }
147 171
148 //ALTERA O ESTADO DO PROCEDIMENTO 172 //ALTERA O ESTADO DO PROCEDIMENTO
149 try { 173 try {
rn/ReciboTramiteRN.php
@@ -37,7 +37,8 @@ class ReciboTramiteRN extends InfraRN { @@ -37,7 +37,8 @@ class ReciboTramiteRN extends InfraRN {
37 $objReciboTramiteDTO->retNumIdTramite(); 37 $objReciboTramiteDTO->retNumIdTramite();
38 $objReciboTramiteDTO->retDthRecebimento(); 38 $objReciboTramiteDTO->retDthRecebimento();
39 $objReciboTramiteDTO->retStrHashAssinatura(); 39 $objReciboTramiteDTO->retStrHashAssinatura();
40 - 40 + $objReciboTramiteDTO->retStrCadeiaCertificado();
  41 +
41 $objReciboTramiteBD = new ReciboTramiteBD($objInfraIBanco); 42 $objReciboTramiteBD = new ReciboTramiteBD($objInfraIBanco);
42 $arrObjDTO = $objReciboTramiteBD->listar($objReciboTramiteDTO); 43 $arrObjDTO = $objReciboTramiteBD->listar($objReciboTramiteDTO);
43 break; 44 break;
@@ -49,7 +50,8 @@ class ReciboTramiteRN extends InfraRN { @@ -49,7 +50,8 @@ class ReciboTramiteRN extends InfraRN {
49 $objReciboTramiteDTO->retNumIdTramite(); 50 $objReciboTramiteDTO->retNumIdTramite();
50 $objReciboTramiteDTO->retDthRecebimento(); 51 $objReciboTramiteDTO->retDthRecebimento();
51 $objReciboTramiteDTO->retStrHashAssinatura(); 52 $objReciboTramiteDTO->retStrHashAssinatura();
52 - 53 + $objReciboTramiteDTO->retStrCadeiaCertificado();
  54 +
53 $objReciboTramiteBD = new ReciboTramiteRecebidoBD($objInfraIBanco); 55 $objReciboTramiteBD = new ReciboTramiteRecebidoBD($objInfraIBanco);
54 $arrObjDTO = $objReciboTramiteBD->listar($objReciboTramiteDTO); 56 $arrObjDTO = $objReciboTramiteBD->listar($objReciboTramiteDTO);
55 break; 57 break;
@@ -66,6 +68,7 @@ class ReciboTramiteRN extends InfraRN { @@ -66,6 +68,7 @@ class ReciboTramiteRN extends InfraRN {
66 $objReciboTramiteDTO->retNumIdTramite(); 68 $objReciboTramiteDTO->retNumIdTramite();
67 $objReciboTramiteDTO->retDthRecebimento(); 69 $objReciboTramiteDTO->retDthRecebimento();
68 $objReciboTramiteDTO->retStrHashAssinatura(); 70 $objReciboTramiteDTO->retStrHashAssinatura();
  71 + $objReciboTramiteDTO->retStrCadeiaCertificado();
69 72
70 $objReciboTramiteBD = new ReciboTramiteRecebidoBD($this->getObjInfraIBanco()); 73 $objReciboTramiteBD = new ReciboTramiteRecebidoBD($this->getObjInfraIBanco());
71 $arrObjDTO = $objReciboTramiteBD->listar($objReciboTramiteDTO); 74 $arrObjDTO = $objReciboTramiteBD->listar($objReciboTramiteDTO);