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 @@
  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 14 $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'IdTramite', 'id_tramite');
15 15 $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_DTH, 'Recebimento', 'dth_recebimento');
16 16 $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_STR, 'HashAssinatura', 'hash_assinatura');
  17 + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_STR, 'CadeiaCertificado', 'cadeia_certificado');
17 18 }
18 19 }
19 20 \ No newline at end of file
... ...
pen_procedimento_estado.php
... ... @@ -20,6 +20,7 @@ try {
20 20  
21 21 //$objSessaoSEI->validarLink();
22 22 $objSessaoSEI->validarPermissao('pen_procedimento_expedir');
  23 + $objGenericoBD = new GenericoBD(BancoSEI::getInstance());
23 24  
24 25 if(array_key_exists('metodo', $_GET)) {
25 26  
... ... @@ -49,21 +50,33 @@ try {
49 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 60 foreach($arrObjReciboTramiteDTO as $objReciboTramiteDTO) {
54 61  
55 62 $dthTimeStamp = InfraData::getTimestamp($objReciboTramiteDTO->getDthRecebimento());
56 63  
57   - print '<recibo>';
  64 + print '<reciboDeEnvio>';
58 65 print '<IDT>'.$objReciboTramiteDTO->getNumIdTramite().'</IDT>';
59 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 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 127 foreach($arrObjReciboTramiteDTO as $objReciboTramiteDTO) {
102 128  
... ... @@ -108,10 +134,19 @@ try {
108 134 print '<dataDeRecebimento>'.date('c', $dthTimeStamp).'</dataDeRecebimento>';
109 135  
110 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 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 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 59 $objBD = new ReciboTramiteRecebidoBD($this->inicializarObjInfraIBanco());
60 60  
... ... @@ -69,6 +69,19 @@ class EnviarReciboTramiteRN extends InfraRN
69 69 $objDTO->setDthRecebimento(date('d/m/Y H:i:s'));
70 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 87 public function enviarReciboTramiteProcesso($parNumIdTramite, $parArrayHash = null, $parDthRecebimento = null)
... ... @@ -136,7 +149,7 @@ class EnviarReciboTramiteRN extends InfraRN
136 149  
137 150 //Envia o Recibo de salva no banco
138 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 975 $strConteudoAssinatura = $arrInformacaoArquivo['CONTEUDO'];
976 976 $hashDoComponenteDigital = hash($strAlgoritmoHash, $strConteudoAssinatura, true);
977 977 $hashDoComponenteDigital = base64_encode($hashDoComponenteDigital);
978   -
  978 +
979 979 $objDocumento->componenteDigital = new stdClass();
980 980 $objDocumento->componenteDigital->ordem = 1;
981 981 $objDocumento->componenteDigital->nome = utf8_encode($arrInformacaoArquivo["NOME"]);
... ... @@ -1092,7 +1092,7 @@ class ExpedirProcedimentoRN extends InfraRN {
1092 1092 $objDocumentoDTO2 = new DocumentoDTO();
1093 1093 $objDocumentoDTO2->setDblIdDocumento($objDocumentoDTO->getDblIdDocumento());
1094 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 1097 $objDocumentoRN = new DocumentoRN();
1098 1098 $strResultado = $objDocumentoRN->consultarHtmlFormulario($objDocumentoDTO2);
... ... @@ -1102,7 +1102,7 @@ class ExpedirProcedimentoRN extends InfraRN {
1102 1102 $arrInformacaoArquivo['TAMANHO'] = strlen($strResultado);
1103 1103 $arrInformacaoArquivo['MIME_TYPE'] = 'text/html';
1104 1104 $arrInformacaoArquivo['ID_ANEXO'] = null;
1105   -
  1105 +
1106 1106 }
1107 1107  
1108 1108 return $arrInformacaoArquivo;
... ... @@ -1793,7 +1793,7 @@ class ExpedirProcedimentoRN extends InfraRN {
1793 1793 * @param int $parNumIdTramite
1794 1794 * @return bool
1795 1795 */
1796   - private function receberReciboDeEnvio($parNumIdTramite){
  1796 + protected function receberReciboDeEnvioControlado($parNumIdTramite){
1797 1797  
1798 1798 if (empty($parNumIdTramite)) {
1799 1799 return false;
... ... @@ -1808,14 +1808,32 @@ class ExpedirProcedimentoRN extends InfraRN {
1808 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 1837 return true;
1820 1838 }
1821 1839  
... ...
rn/PenAtualizadorRN.php
... ... @@ -13,6 +13,7 @@ abstract class PenAtualizadorRN extends InfraRN {
13 13 const VER_004 = '0.0.4';
14 14 const VER_005 = '0.0.5';
15 15 const VER_006 = '0.0.6';
  16 + const VER_007 = '0.0.7';
16 17  
17 18 protected $sei_versao;
18 19  
... ...
rn/PenAtualizarSeiRN.php
... ... @@ -899,5 +899,29 @@ class PenAtualizarSeiRN extends PenAtualizadorRN {
899 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 928 \ No newline at end of file
... ...
rn/ProcessoEletronicoRN.php
... ... @@ -13,13 +13,6 @@ class ProcessoEletronicoRN extends InfraRN {
13 13 public static $TI_PROCESSO_ELETRONICO_PROCESSO_TRAMITE_EXTERNO = 'PEN_OPERACAO_EXTERNA';
14 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 17 /* NÍVEL DE SIGILO DE PROCESSOS E DOCUMENTOS */
25 18 public static $STA_SIGILO_PUBLICO = '1';
... ... @@ -37,6 +30,10 @@ class ProcessoEletronicoRN extends InfraRN {
37 30 public static $STA_SITUACAO_TRAMITE_RECUSADO = 8; // Trâmite do processo recusado pelo destinatário (Situações 2, 3, 4)
38 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 37 /* OPERAÇÕES DO HISTÓRICO DO PROCESSO */
41 38 // 02 a 18 estão registrados na tabela rel_tarefa_operacao
42 39 public static $OP_OPERACAO_REGISTRO = "01";
... ... @@ -1156,21 +1153,7 @@ class ProcessoEletronicoRN extends InfraRN {
1156 1153  
1157 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 1158 catch (\SoapFault $fault) {
1176 1159 $mensagem = $this->tratarFalhaWebService($fault);
... ... @@ -1194,19 +1177,7 @@ class ProcessoEletronicoRN extends InfraRN {
1194 1177  
1195 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 1182 catch (\SoapFault $fault) {
1212 1183 $mensagem = $this->tratarFalhaWebService($fault);
... ...
rn/ReceberReciboTramiteRN.php
... ... @@ -117,11 +117,21 @@ class ReceberReciboTramiteRN extends InfraRN
117 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 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 136 //Verifica se o trâmite do processo se encontra devidamente registrado no sistema
127 137 $objTramiteDTO = new TramiteDTO();
... ... @@ -144,6 +154,20 @@ class ReceberReciboTramiteRN extends InfraRN
144 154  
145 155 //Armazenar dados do recibo de conclusão do trãmite
146 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 172 //ALTERA O ESTADO DO PROCEDIMENTO
149 173 try {
... ...
rn/ReciboTramiteRN.php
... ... @@ -37,7 +37,8 @@ class ReciboTramiteRN extends InfraRN {
37 37 $objReciboTramiteDTO->retNumIdTramite();
38 38 $objReciboTramiteDTO->retDthRecebimento();
39 39 $objReciboTramiteDTO->retStrHashAssinatura();
40   -
  40 + $objReciboTramiteDTO->retStrCadeiaCertificado();
  41 +
41 42 $objReciboTramiteBD = new ReciboTramiteBD($objInfraIBanco);
42 43 $arrObjDTO = $objReciboTramiteBD->listar($objReciboTramiteDTO);
43 44 break;
... ... @@ -49,7 +50,8 @@ class ReciboTramiteRN extends InfraRN {
49 50 $objReciboTramiteDTO->retNumIdTramite();
50 51 $objReciboTramiteDTO->retDthRecebimento();
51 52 $objReciboTramiteDTO->retStrHashAssinatura();
52   -
  53 + $objReciboTramiteDTO->retStrCadeiaCertificado();
  54 +
53 55 $objReciboTramiteBD = new ReciboTramiteRecebidoBD($objInfraIBanco);
54 56 $arrObjDTO = $objReciboTramiteBD->listar($objReciboTramiteDTO);
55 57 break;
... ... @@ -66,6 +68,7 @@ class ReciboTramiteRN extends InfraRN {
66 68 $objReciboTramiteDTO->retNumIdTramite();
67 69 $objReciboTramiteDTO->retDthRecebimento();
68 70 $objReciboTramiteDTO->retStrHashAssinatura();
  71 + $objReciboTramiteDTO->retStrCadeiaCertificado();
69 72  
70 73 $objReciboTramiteBD = new ReciboTramiteRecebidoBD($this->getObjInfraIBanco());
71 74 $arrObjDTO = $objReciboTramiteBD->listar($objReciboTramiteDTO);
... ...