Commit c905ee55bf5db3edaa7f684bdd6820415ca13923

Authored by Guilherme Andrade Del Cantoni
1 parent 04c1cf58

[Fixed #42] Correção de erro StartTag invalid element name in Entity

Showing 1 changed file with 961 additions and 987 deletions   Show diff stats
rn/ExpedirProcedimentoRN.php
@@ -4,50 +4,50 @@ require_once dirname(__FILE__) . '/../../../SEI.php'; @@ -4,50 +4,50 @@ require_once dirname(__FILE__) . '/../../../SEI.php';
4 4
5 class ExpedirProcedimentoRN extends InfraRN { 5 class ExpedirProcedimentoRN extends InfraRN {
6 6
7 - const STA_SIGILO_PUBLICO = '1';  
8 - const STA_SIGILO_RESTRITO = '2';  
9 - const STA_SIGILO_SIGILOSO = '3';  
10 -  
11 - const STA_TIPO_PESSOA_FISICA = 'fisica';  
12 - const STA_TIPO_PESSOA_JURIDICA = 'juridica';  
13 - const STA_TIPO_PESSOA_ORGAOPUBLICO = 'orgaopublico';  
14 -  
15 - const ALGORITMO_HASH_DOCUMENTO = 'SHA256';  
16 - const ALGORITMO_HASH_ASSINATURA = 'SHA256withRSA';  
17 -  
18 - const REGEX_ARQUIVO_TEXTO = '/^application\/|^text\//';  
19 - const REGEX_ARQUIVO_IMAGEM = '/^image\//';  
20 - const REGEX_ARQUIVO_AUDIO = '/^audio\//';  
21 - const REGEX_ARQUIVO_VIDEO = '/^video\//';  
22 -  
23 - const TC_TIPO_CONTEUDO_TEXTO = 'txt';  
24 - const TC_TIPO_CONTEUDO_IMAGEM = 'img';  
25 - const TC_TIPO_CONTEUDO_AUDIO = 'aud';  
26 - const TC_TIPO_CONTEUDO_VIDEO = 'vid';  
27 - const TC_TIPO_CONTEUDO_OUTROS = 'out';  
28 -  
29 - //TODO: Alterar codificao do SEI para reconhecer esse novo estado do processo  
30 - //Esse estado ser utilizado juntamente com os estados da expedio  
31 - const TE_PROCEDIMENTO_BLOQUEADO = '4';  
32 - const TE_PROCEDIMENTO_EM_PROCESSAMENTO = '5';  
33 -  
34 - //Verso com mudana na API relacionada obrigatoriedade do carimbo de publicao  
35 - const VERSAO_CARIMBO_PUBLICACAO_OBRIGATORIO = '3.0.7';  
36 -  
37 - private $objProcessoEletronicoRN;  
38 - private $objParticipanteRN;  
39 - private $objProcedimentoRN;  
40 - private $objProtocoloRN;  
41 - private $objDocumentoRN;  
42 - private $objAtividadeRN;  
43 - private $objUsuarioRN;  
44 - private $objUnidadeRN;  
45 - private $objOrgaoRN;  
46 - private $objSerieRN;  
47 - private $objAnexoRN;  
48 - private $barraProgresso;  
49 - private $objProcedimentoAndamentoRN;  
50 - private $arrPenMimeTypes = array( 7 + const STA_SIGILO_PUBLICO = '1';
  8 + const STA_SIGILO_RESTRITO = '2';
  9 + const STA_SIGILO_SIGILOSO = '3';
  10 +
  11 + const STA_TIPO_PESSOA_FISICA = 'fisica';
  12 + const STA_TIPO_PESSOA_JURIDICA = 'juridica';
  13 + const STA_TIPO_PESSOA_ORGAOPUBLICO = 'orgaopublico';
  14 +
  15 + const ALGORITMO_HASH_DOCUMENTO = 'SHA256';
  16 + const ALGORITMO_HASH_ASSINATURA = 'SHA256withRSA';
  17 +
  18 + const REGEX_ARQUIVO_TEXTO = '/^application\/|^text\//';
  19 + const REGEX_ARQUIVO_IMAGEM = '/^image\//';
  20 + const REGEX_ARQUIVO_AUDIO = '/^audio\//';
  21 + const REGEX_ARQUIVO_VIDEO = '/^video\//';
  22 +
  23 + const TC_TIPO_CONTEUDO_TEXTO = 'txt';
  24 + const TC_TIPO_CONTEUDO_IMAGEM = 'img';
  25 + const TC_TIPO_CONTEUDO_AUDIO = 'aud';
  26 + const TC_TIPO_CONTEUDO_VIDEO = 'vid';
  27 + const TC_TIPO_CONTEUDO_OUTROS = 'out';
  28 +
  29 + //TODO: Alterar codificao do SEI para reconhecer esse novo estado do processo
  30 + //Esse estado ser utilizado juntamente com os estados da expedio
  31 + const TE_PROCEDIMENTO_BLOQUEADO = '4';
  32 + const TE_PROCEDIMENTO_EM_PROCESSAMENTO = '5';
  33 +
  34 + //Verso com mudana na API relacionada obrigatoriedade do carimbo de publicao
  35 + const VERSAO_CARIMBO_PUBLICACAO_OBRIGATORIO = '3.0.7';
  36 +
  37 + private $objProcessoEletronicoRN;
  38 + private $objParticipanteRN;
  39 + private $objProcedimentoRN;
  40 + private $objProtocoloRN;
  41 + private $objDocumentoRN;
  42 + private $objAtividadeRN;
  43 + private $objUsuarioRN;
  44 + private $objUnidadeRN;
  45 + private $objOrgaoRN;
  46 + private $objSerieRN;
  47 + private $objAnexoRN;
  48 + private $barraProgresso;
  49 + private $objProcedimentoAndamentoRN;
  50 + private $arrPenMimeTypes = array(
51 "application/vnd.oasis.opendocument.text", 51 "application/vnd.oasis.opendocument.text",
52 "application/vnd.oasis.opendocument.formula", 52 "application/vnd.oasis.opendocument.formula",
53 "application/vnd.oasis.opendocument.spreadsheet", 53 "application/vnd.oasis.opendocument.spreadsheet",
@@ -74,48 +74,33 @@ class ExpedirProcedimentoRN extends InfraRN { @@ -74,48 +74,33 @@ class ExpedirProcedimentoRN extends InfraRN {
74 "video/webm" 74 "video/webm"
75 ); 75 );
76 76
77 - public function __construct() {  
78 - parent::__construct();  
79 -  
80 - //TODO: Remover criao de objetos de negcio no construtor da classe para evitar problemas de performance desnecessrios  
81 - $this->objProcessoEletronicoRN = new ProcessoEletronicoRN();  
82 - $this->objParticipanteRN = new ParticipanteRN();  
83 - $this->objProcedimentoRN = new ProcedimentoRN();  
84 - $this->objProtocoloRN = new ProtocoloRN();  
85 - $this->objDocumentoRN = new DocumentoRN();  
86 - $this->objAtividadeRN = new AtividadeRN();  
87 - $this->objUsuarioRN = new UsuarioRN();  
88 - $this->objUnidadeRN = new UnidadeRN();  
89 - $this->objOrgaoRN = new OrgaoRN();  
90 - $this->objSerieRN = new SerieRN();  
91 - $this->objAnexoRN = new AnexoRN();  
92 - $this->objProcedimentoAndamentoRN = new ProcedimentoAndamentoRN();  
93 -  
94 - $this->barraProgresso = new InfraBarraProgresso();  
95 - $this->barraProgresso->setNumMin(0);  
96 - $this->barraProgresso->setNumMax(ProcessoEletronicoINT::NEE_EXPEDICAO_ETAPA_CONCLUSAO);  
97 - }  
98 -  
99 - protected function inicializarObjInfraIBanco()  
100 - {  
101 - return BancoSEI::getInstance();  
102 - }  
103 -  
104 - public function listarRepositoriosDeEstruturas()  
105 - {  
106 - $dadosArray = array();  
107 - $arrObjRepositorioDTO = $this->objProcessoEletronicoRN->listarRepositoriosDeEstruturas();  
108 - foreach ($arrObjRepositorioDTO as $repositorio) {  
109 - $dadosArray[$repositorio->getNumId()] = $repositorio->getStrNome();  
110 - }  
111 -  
112 - return $dadosArray;  
113 - }  
114 -  
115 - public function consultarMotivosUrgencia()  
116 - {  
117 - return $this->objProcessoEletronicoRN->consultarMotivosUrgencia();  
118 - } 77 + public function __construct()
  78 + {
  79 + parent::__construct();
  80 +
  81 + //TODO: Remover criao de objetos de negcio no construtor da classe para evitar problemas de performance desnecessrios
  82 + $this->objProcessoEletronicoRN = new ProcessoEletronicoRN();
  83 + $this->objParticipanteRN = new ParticipanteRN();
  84 + $this->objProcedimentoRN = new ProcedimentoRN();
  85 + $this->objProtocoloRN = new ProtocoloRN();
  86 + $this->objDocumentoRN = new DocumentoRN();
  87 + $this->objAtividadeRN = new AtividadeRN();
  88 + $this->objUsuarioRN = new UsuarioRN();
  89 + $this->objUnidadeRN = new UnidadeRN();
  90 + $this->objOrgaoRN = new OrgaoRN();
  91 + $this->objSerieRN = new SerieRN();
  92 + $this->objAnexoRN = new AnexoRN();
  93 + $this->objProcedimentoAndamentoRN = new ProcedimentoAndamentoRN();
  94 +
  95 + $this->barraProgresso = new InfraBarraProgresso();
  96 + $this->barraProgresso->setNumMin(0);
  97 + $this->barraProgresso->setNumMax(ProcessoEletronicoINT::NEE_EXPEDICAO_ETAPA_CONCLUSAO);
  98 + }
  99 +
  100 + protected function inicializarObjInfraIBanco()
  101 + {
  102 + return BancoSEI::getInstance();
  103 + }
119 104
120 public function expedirProcedimentoControlado(ExpedirProcedimentoDTO $objExpedirProcedimentoDTO) 105 public function expedirProcedimentoControlado(ExpedirProcedimentoDTO $objExpedirProcedimentoDTO)
121 { 106 {
@@ -126,10 +111,10 @@ class ExpedirProcedimentoRN extends InfraRN { @@ -126,10 +111,10 @@ class ExpedirProcedimentoRN extends InfraRN {
126 $dblIdProcedimento = $objExpedirProcedimentoDTO->getDblIdProcedimento(); 111 $dblIdProcedimento = $objExpedirProcedimentoDTO->getDblIdProcedimento();
127 112
128 $this->barraProgresso->exibir(); 113 $this->barraProgresso->exibir();
129 - //Valida regras de negócio  
130 $this->barraProgresso->mover(ProcessoEletronicoINT::NEE_EXPEDICAO_ETAPA_VALIDACAO); 114 $this->barraProgresso->mover(ProcessoEletronicoINT::NEE_EXPEDICAO_ETAPA_VALIDACAO);
131 $this->barraProgresso->setStrRotulo(ProcessoEletronicoINT::TEE_EXPEDICAO_ETAPA_VALIDACAO); 115 $this->barraProgresso->setStrRotulo(ProcessoEletronicoINT::TEE_EXPEDICAO_ETAPA_VALIDACAO);
132 116
  117 + //Valida regras de negócio
133 $objInfraException = new InfraException(); 118 $objInfraException = new InfraException();
134 //Carregamento dos dados de processo e documento para validação e envio externo 119 //Carregamento dos dados de processo e documento para validação e envio externo
135 $objProcedimentoDTO = $this->consultarProcedimento($dblIdProcedimento); 120 $objProcedimentoDTO = $this->consultarProcedimento($dblIdProcedimento);
@@ -258,68 +243,84 @@ class ExpedirProcedimentoRN extends InfraRN { @@ -258,68 +243,84 @@ class ExpedirProcedimentoRN extends InfraRN {
258 } 243 }
259 244
260 245
  246 + public function listarRepositoriosDeEstruturas()
  247 + {
  248 + $dadosArray = array();
  249 + $arrObjRepositorioDTO = $this->objProcessoEletronicoRN->listarRepositoriosDeEstruturas();
  250 + foreach ($arrObjRepositorioDTO as $repositorio) {
  251 + $dadosArray[$repositorio->getNumId()] = $repositorio->getStrNome();
  252 + }
  253 +
  254 + return $dadosArray;
  255 + }
  256 +
  257 + public function consultarMotivosUrgencia()
  258 + {
  259 + return $this->objProcessoEletronicoRN->consultarMotivosUrgencia();
  260 + }
  261 +
261 262
262 - private function registrarAndamentoExpedicaoProcesso($objExpedirProcedimentoDTO, $objProcesso)  
263 - { 263 + private function registrarAndamentoExpedicaoProcesso($objExpedirProcedimentoDTO, $objProcesso)
  264 + {
264 //Processo expedido para a entidade @ENTIDADE_DESTINO@ - @REPOSITORIO_ESTRUTURA@ (@PROCESSO@, @UNIDADE@, @USUARIO@) 265 //Processo expedido para a entidade @ENTIDADE_DESTINO@ - @REPOSITORIO_ESTRUTURA@ (@PROCESSO@, @UNIDADE@, @USUARIO@)
265 //TODO: Atribuir atributos necessrios para formao da mensagem do andamento 266 //TODO: Atribuir atributos necessrios para formao da mensagem do andamento
266 //TODO: Especificar quais andamentos sero registrados 267 //TODO: Especificar quais andamentos sero registrados
267 - $arrObjAtributoAndamentoDTO = array();  
268 -  
269 - $objAtributoAndamentoDTO = new AtributoAndamentoDTO();  
270 - $objAtributoAndamentoDTO->setStrNome('REPOSITORIO_DESTINO');  
271 - $objAtributoAndamentoDTO->setStrValor($objExpedirProcedimentoDTO->getStrRepositorioDestino());  
272 - $objAtributoAndamentoDTO->setStrIdOrigem($objExpedirProcedimentoDTO->getNumIdRepositorioOrigem());  
273 - $arrObjAtributoAndamentoDTO[] = $objAtributoAndamentoDTO;  
274 -  
275 - $objAtributoAndamentoDTO = new AtributoAndamentoDTO();  
276 - $objAtributoAndamentoDTO->setStrNome('UNIDADE_DESTINO');  
277 - $objAtributoAndamentoDTO->setStrValor($objExpedirProcedimentoDTO->getStrUnidadeDestino());  
278 - $objAtributoAndamentoDTO->setStrIdOrigem($objExpedirProcedimentoDTO->getNumIdUnidadeDestino());  
279 - $arrObjAtributoAndamentoDTO[] = $objAtributoAndamentoDTO;  
280 -  
281 - $objAtributoAndamentoDTO = new AtributoAndamentoDTO();  
282 - $objAtributoAndamentoDTO->setStrNome('PROCESSO');  
283 - $objAtributoAndamentoDTO->setStrValor($objProcesso->protocolo);  
284 - $objAtributoAndamentoDTO->setStrIdOrigem($objProcesso->idProcedimentoSEI);  
285 - $arrObjAtributoAndamentoDTO[] = $objAtributoAndamentoDTO;  
286 -  
287 - $objUnidadeDTO = new UnidadeDTO();  
288 - $objUnidadeDTO->retStrSigla();  
289 - $objUnidadeDTO->retStrDescricao();  
290 - $objUnidadeDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual());  
291 - $objUnidadeDTO = $this->objUnidadeRN->consultarRN0125($objUnidadeDTO);  
292 -  
293 - $objAtributoAndamentoDTO = new AtributoAndamentoDTO();  
294 - $objAtributoAndamentoDTO->setStrNome('UNIDADE');  
295 - $objAtributoAndamentoDTO->setStrValor($objUnidadeDTO->getStrSigla().''.$objUnidadeDTO->getStrDescricao());  
296 - $objAtributoAndamentoDTO->setStrIdOrigem(SessaoSEI::getInstance()->getNumIdUnidadeAtual());  
297 - $arrObjAtributoAndamentoDTO[] = $objAtributoAndamentoDTO; 268 + $arrObjAtributoAndamentoDTO = array();
  269 +
  270 + $objAtributoAndamentoDTO = new AtributoAndamentoDTO();
  271 + $objAtributoAndamentoDTO->setStrNome('REPOSITORIO_DESTINO');
  272 + $objAtributoAndamentoDTO->setStrValor($objExpedirProcedimentoDTO->getStrRepositorioDestino());
  273 + $objAtributoAndamentoDTO->setStrIdOrigem($objExpedirProcedimentoDTO->getNumIdRepositorioOrigem());
  274 + $arrObjAtributoAndamentoDTO[] = $objAtributoAndamentoDTO;
  275 +
  276 + $objAtributoAndamentoDTO = new AtributoAndamentoDTO();
  277 + $objAtributoAndamentoDTO->setStrNome('UNIDADE_DESTINO');
  278 + $objAtributoAndamentoDTO->setStrValor($objExpedirProcedimentoDTO->getStrUnidadeDestino());
  279 + $objAtributoAndamentoDTO->setStrIdOrigem($objExpedirProcedimentoDTO->getNumIdUnidadeDestino());
  280 + $arrObjAtributoAndamentoDTO[] = $objAtributoAndamentoDTO;
  281 +
  282 + $objAtributoAndamentoDTO = new AtributoAndamentoDTO();
  283 + $objAtributoAndamentoDTO->setStrNome('PROCESSO');
  284 + $objAtributoAndamentoDTO->setStrValor($objProcesso->protocolo);
  285 + $objAtributoAndamentoDTO->setStrIdOrigem($objProcesso->idProcedimentoSEI);
  286 + $arrObjAtributoAndamentoDTO[] = $objAtributoAndamentoDTO;
  287 +
  288 + $objUnidadeDTO = new UnidadeDTO();
  289 + $objUnidadeDTO->retStrSigla();
  290 + $objUnidadeDTO->retStrDescricao();
  291 + $objUnidadeDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual());
  292 + $objUnidadeDTO = $this->objUnidadeRN->consultarRN0125($objUnidadeDTO);
  293 +
  294 + $objAtributoAndamentoDTO = new AtributoAndamentoDTO();
  295 + $objAtributoAndamentoDTO->setStrNome('UNIDADE');
  296 + $objAtributoAndamentoDTO->setStrValor($objUnidadeDTO->getStrSigla().''.$objUnidadeDTO->getStrDescricao());
  297 + $objAtributoAndamentoDTO->setStrIdOrigem(SessaoSEI::getInstance()->getNumIdUnidadeAtual());
  298 + $arrObjAtributoAndamentoDTO[] = $objAtributoAndamentoDTO;
298 299
299 //TODO: Avaliar qual o usurio que deveria ser registrado no atributo andamento abaixo 300 //TODO: Avaliar qual o usurio que deveria ser registrado no atributo andamento abaixo
300 - $objAtributoAndamentoDTO = new AtributoAndamentoDTO();  
301 - $objAtributoAndamentoDTO->setStrNome('USUARIO');  
302 - $objAtributoAndamentoDTO->setStrValor(SessaoSEI::getInstance()->getStrSiglaUsuario() . '' . SessaoSEI::getInstance()->getStrNomeUsuario());  
303 - $objAtributoAndamentoDTO->setStrIdOrigem(SessaoSEI::getInstance()->getNumIdUsuario());  
304 - $arrObjAtributoAndamentoDTO[] = $objAtributoAndamentoDTO;  
305 -  
306 - $objAtividadeDTO = new AtividadeDTO();  
307 - $objAtividadeDTO->setDblIdProtocolo($objProcesso->idProcedimentoSEI);  
308 - $objAtividadeDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual());  
309 - $objAtividadeDTO->setNumIdUsuario(SessaoSEI::getInstance()->getNumIdUsuario());  
310 - $objAtividadeDTO->setNumIdTarefa(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_EXPEDIDO);  
311 - $objAtividadeDTO->setArrObjAtributoAndamentoDTO($arrObjAtributoAndamentoDTO);  
312 -  
313 - $objAtividadeRN = new AtividadeRN();  
314 - $objAtividadeRN->gerarInternaRN0727($objAtividadeDTO); 301 + $objAtributoAndamentoDTO = new AtributoAndamentoDTO();
  302 + $objAtributoAndamentoDTO->setStrNome('USUARIO');
  303 + $objAtributoAndamentoDTO->setStrValor(SessaoSEI::getInstance()->getStrSiglaUsuario() . '' . SessaoSEI::getInstance()->getStrNomeUsuario());
  304 + $objAtributoAndamentoDTO->setStrIdOrigem(SessaoSEI::getInstance()->getNumIdUsuario());
  305 + $arrObjAtributoAndamentoDTO[] = $objAtributoAndamentoDTO;
  306 +
  307 + $objAtividadeDTO = new AtividadeDTO();
  308 + $objAtividadeDTO->setDblIdProtocolo($objProcesso->idProcedimentoSEI);
  309 + $objAtividadeDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual());
  310 + $objAtividadeDTO->setNumIdUsuario(SessaoSEI::getInstance()->getNumIdUsuario());
  311 + $objAtividadeDTO->setNumIdTarefa(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_EXPEDIDO);
  312 + $objAtividadeDTO->setArrObjAtributoAndamentoDTO($arrObjAtributoAndamentoDTO);
  313 +
  314 + $objAtividadeRN = new AtividadeRN();
  315 + $objAtividadeRN->gerarInternaRN0727($objAtividadeDTO);
315 316
316 //Registra andamento para processos apensados que foram expedidos 317 //Registra andamento para processos apensados que foram expedidos
317 - if(isset($objProcesso->processoApensado) && is_array($objProcesso->processoApensado)) {  
318 - foreach($objProcesso->processoApensado as $objProcessoApensado) {  
319 - $this->registrarAndamentoExpedicaoProcesso($objExpedirProcedimentoDTO, $objProcessoApensado);  
320 - } 318 + if(isset($objProcesso->processoApensado) && is_array($objProcesso->processoApensado)) {
  319 + foreach($objProcesso->processoApensado as $objProcessoApensado) {
  320 + $this->registrarAndamentoExpedicaoProcesso($objExpedirProcedimentoDTO, $objProcessoApensado);
  321 + }
  322 + }
321 } 323 }
322 - }  
323 324
324 private function construirCabecalho(ExpedirProcedimentoDTO $objExpedirProcedimentoDTO) 325 private function construirCabecalho(ExpedirProcedimentoDTO $objExpedirProcedimentoDTO)
325 { 326 {
@@ -399,51 +400,51 @@ class ExpedirProcedimentoRN extends InfraRN { @@ -399,51 +400,51 @@ class ExpedirProcedimentoRN extends InfraRN {
399 } 400 }
400 401
401 //TODO: Implementar mapeamento de atividades que sero enviadas para barramento (semelhante Protocolo Integrado) 402 //TODO: Implementar mapeamento de atividades que sero enviadas para barramento (semelhante Protocolo Integrado)
402 - private function atribuirDadosHistorico($objProcesso, $dblIdProcedimento)  
403 - {  
404 - $objProcedimentoHistoricoDTO = new ProcedimentoHistoricoDTO();  
405 - $objProcedimentoHistoricoDTO->setDblIdProcedimento($dblIdProcedimento);  
406 - $objProcedimentoHistoricoDTO->setStrStaHistorico(ProcedimentoRN::$TH_TOTAL); 403 + private function atribuirDadosHistorico($objProcesso, $dblIdProcedimento)
  404 + {
  405 + $objProcedimentoHistoricoDTO = new ProcedimentoHistoricoDTO();
  406 + $objProcedimentoHistoricoDTO->setDblIdProcedimento($dblIdProcedimento);
  407 + $objProcedimentoHistoricoDTO->setStrStaHistorico(ProcedimentoRN::$TH_TOTAL);
407 408
408 - $objProcedimentoRN = new ProcedimentoRN();  
409 - $objProcedimentoDTO = $objProcedimentoRN->consultarHistoricoRN1025($objProcedimentoHistoricoDTO);  
410 - $arrObjAtividadeDTO = $objProcedimentoDTO->getArrObjAtividadeDTO(); 409 + $objProcedimentoRN = new ProcedimentoRN();
  410 + $objProcedimentoDTO = $objProcedimentoRN->consultarHistoricoRN1025($objProcedimentoHistoricoDTO);
  411 + $arrObjAtividadeDTO = $objProcedimentoDTO->getArrObjAtividadeDTO();
411 412
412 - if($arrObjAtividadeDTO == null || count($arrObjAtividadeDTO) == 0) {  
413 - throw new InfraException("Não foi possível obter andamentos do processo {$objProcesso->protocolo}");  
414 - } 413 + if($arrObjAtividadeDTO == null || count($arrObjAtividadeDTO) == 0) {
  414 + throw new InfraException("Não foi possível obter andamentos do processo {$objProcesso->protocolo}");
  415 + }
415 416
416 - $arrObjOperacao = array();  
417 - foreach ($arrObjAtividadeDTO as $objAtividadeDTO) { 417 + $arrObjOperacao = array();
  418 + foreach ($arrObjAtividadeDTO as $objAtividadeDTO) {
418 419
419 //TODO: Avaliar necessidade de repassar dados da pessoa que realizou a operao 420 //TODO: Avaliar necessidade de repassar dados da pessoa que realizou a operao
420 - $objOperacao = new stdClass(); 421 + $objOperacao = new stdClass();
421 422
422 //TODO: Adicionar demais informações da pessoa e sua unidade 423 //TODO: Adicionar demais informações da pessoa e sua unidade
423 - $objOperacao->pessoa = new stdClass();  
424 - $objOperacao->pessoa->nome = utf8_encode($objAtividadeDTO->getStrNomeUsuarioOrigem());  
425 - $objOperacao->codigo = $this->objProcessoEletronicoRN->obterCodigoOperacaoPENMapeado($objAtividadeDTO->getNumIdTarefa());  
426 - $objOperacao->dataHora = $this->objProcessoEletronicoRN->converterDataWebService($objAtividadeDTO->getDthAbertura());  
427 - $strComplemento = strip_tags($objAtividadeDTO->getStrNomeTarefa());  
428 - $objOperacao->complemento = utf8_encode($strComplemento);  
429 -  
430 - $arrObjOperacao[] = $objOperacao;  
431 - }  
432 -  
433 - $objProcesso->historico = new stdClass();  
434 - $objProcesso->historico->operacao = $arrObjOperacao;  
435 - }  
436 -  
437 - /**  
438 - * Muda o estado de um procedimento  
439 - *  
440 - * @param object $objProcesso  
441 - * @param string $strStaEstado  
442 - * @throws InfraException  
443 - * @return null  
444 - */  
445 - public static function mudarEstadoProcedimento($objProcesso, $strStaEstado){ 424 + $objOperacao->pessoa = new stdClass();
  425 + $objOperacao->pessoa->nome = utf8_encode($objAtividadeDTO->getStrNomeUsuarioOrigem());
  426 + $objOperacao->codigo = $this->objProcessoEletronicoRN->obterCodigoOperacaoPENMapeado($objAtividadeDTO->getNumIdTarefa());
  427 + $objOperacao->dataHora = $this->objProcessoEletronicoRN->converterDataWebService($objAtividadeDTO->getDthAbertura());
  428 + $strComplemento = strip_tags($objAtividadeDTO->getStrNomeTarefa());
  429 + $objOperacao->complemento = utf8_encode($strComplemento);
  430 +
  431 + $arrObjOperacao[] = $objOperacao;
  432 + }
446 433
  434 + $objProcesso->historico = new stdClass();
  435 + $objProcesso->historico->operacao = $arrObjOperacao;
  436 + }
  437 +
  438 + /**
  439 + * Muda o estado de um procedimento
  440 + *
  441 + * @param object $objProcesso
  442 + * @param string $strStaEstado
  443 + * @throws InfraException
  444 + * @return null
  445 + */
  446 + public static function mudarEstadoProcedimento($objProcesso, $strStaEstado)
  447 + {
447 if(!isset($objProcesso)) { 448 if(!isset($objProcesso)) {
448 throw new InfraException('Parâmetro $objProcesso não informado.'); 449 throw new InfraException('Parâmetro $objProcesso não informado.');
449 } 450 }
@@ -491,8 +492,8 @@ class ExpedirProcedimentoRN extends InfraRN { @@ -491,8 +492,8 @@ class ExpedirProcedimentoRN extends InfraRN {
491 * @throws InfraException 492 * @throws InfraException
492 * @return null 493 * @return null
493 */ 494 */
494 - public static function mudarEstadoProcedimentoNormal($objProcesso, $strStaEstado){  
495 - 495 + public static function mudarEstadoProcedimentoNormal($objProcesso, $strStaEstado)
  496 + {
496 //Muda o estado do Protocolo para normal 497 //Muda o estado do Protocolo para normal
497 $objProtocoloDTO = new ProtocoloDTO(); 498 $objProtocoloDTO = new ProtocoloDTO();
498 $objProtocoloDTO->setStrStaEstado($strStaEstado); 499 $objProtocoloDTO->setStrStaEstado($strStaEstado);
@@ -500,12 +501,11 @@ class ExpedirProcedimentoRN extends InfraRN { @@ -500,12 +501,11 @@ class ExpedirProcedimentoRN extends InfraRN {
500 501
501 $objProtocoloRN = new ProtocoloRN(); 502 $objProtocoloRN = new ProtocoloRN();
502 $objProtocoloRN->alterarRN0203($objProtocoloDTO); 503 $objProtocoloRN->alterarRN0203($objProtocoloDTO);
503 -  
504 } 504 }
505 505
506 506
507 - public function bloquearProcedimentoExpedicao($objExpedirProcedimentoDTO, $numIdProcedimento) {  
508 - 507 + public function bloquearProcedimentoExpedicao($objExpedirProcedimentoDTO, $numIdProcedimento)
  508 + {
509 //Instancia a API do SEI para bloquei do processo 509 //Instancia a API do SEI para bloquei do processo
510 $objEntradaBloquearProcessoAPI = new EntradaBloquearProcessoAPI(); 510 $objEntradaBloquearProcessoAPI = new EntradaBloquearProcessoAPI();
511 $objEntradaBloquearProcessoAPI->setIdProcedimento($numIdProcedimento); 511 $objEntradaBloquearProcessoAPI->setIdProcedimento($numIdProcedimento);
@@ -514,7 +514,6 @@ class ExpedirProcedimentoRN extends InfraRN { @@ -514,7 +514,6 @@ class ExpedirProcedimentoRN extends InfraRN {
514 $objSeiRN = new SeiRN(); 514 $objSeiRN = new SeiRN();
515 $objSeiRN->bloquearProcesso($objEntradaBloquearProcessoAPI); 515 $objSeiRN->bloquearProcesso($objEntradaBloquearProcessoAPI);
516 516
517 -  
518 $arrObjAtributoAndamentoDTO = array(); 517 $arrObjAtributoAndamentoDTO = array();
519 518
520 //Seta o repositrio de destino para constar no histrico 519 //Seta o repositrio de destino para constar no histrico
@@ -526,7 +525,7 @@ class ExpedirProcedimentoRN extends InfraRN { @@ -526,7 +525,7 @@ class ExpedirProcedimentoRN extends InfraRN {
526 525
527 //Compe o atributo que ir compor a estrutura 526 //Compe o atributo que ir compor a estrutura
528 $objEstrutura = $this->objProcessoEletronicoRN->consultarEstrutura( 527 $objEstrutura = $this->objProcessoEletronicoRN->consultarEstrutura(
529 - $objExpedirProcedimentoDTO->getNumIdRepositorioDestino(), $objExpedirProcedimentoDTO->getNumIdUnidadeDestino(), true 528 + $objExpedirProcedimentoDTO->getNumIdRepositorioDestino(), $objExpedirProcedimentoDTO->getNumIdUnidadeDestino(), true
530 ); 529 );
531 530
532 if (isset($objEstrutura->hierarquia)) { 531 if (isset($objEstrutura->hierarquia)) {
@@ -589,8 +588,8 @@ class ExpedirProcedimentoRN extends InfraRN { @@ -589,8 +588,8 @@ class ExpedirProcedimentoRN extends InfraRN {
589 return $atividade->getNumIdAtividade(); 588 return $atividade->getNumIdAtividade();
590 } 589 }
591 590
592 - public function desbloquearProcessoExpedicao($numIdProcedimento){  
593 - 591 + public function desbloquearProcessoExpedicao($numIdProcedimento)
  592 + {
594 //Intancia o objeto de desbloqueio da API do SEI 593 //Intancia o objeto de desbloqueio da API do SEI
595 $objEntradaDesbloquearProcessoAPI = new EntradaDesbloquearProcessoAPI(); 594 $objEntradaDesbloquearProcessoAPI = new EntradaDesbloquearProcessoAPI();
596 $objEntradaDesbloquearProcessoAPI->setIdProcedimento($numIdProcedimento); 595 $objEntradaDesbloquearProcessoAPI->setIdProcedimento($numIdProcedimento);
@@ -598,11 +597,11 @@ class ExpedirProcedimentoRN extends InfraRN { @@ -598,11 +597,11 @@ class ExpedirProcedimentoRN extends InfraRN {
598 //Solicita o Desbloqueio do Processo 597 //Solicita o Desbloqueio do Processo
599 $objSeiRN = new SeiRN(); 598 $objSeiRN = new SeiRN();
600 $objSeiRN->desbloquearProcesso($objEntradaDesbloquearProcessoAPI); 599 $objSeiRN->desbloquearProcesso($objEntradaDesbloquearProcessoAPI);
601 -  
602 } 600 }
603 601
604 - public function registrarAndamentoExpedicaoAbortada($dblIdProtocolo) {  
605 602
  603 + public function registrarAndamentoExpedicaoAbortada($dblIdProtocolo)
  604 + {
606 //Seta todos os atributos do histrico de aborto da expedio 605 //Seta todos os atributos do histrico de aborto da expedio
607 $objAtividadeDTO = new AtividadeDTO(); 606 $objAtividadeDTO = new AtividadeDTO();
608 $objAtividadeDTO->setDblIdProtocolo($dblIdProtocolo); 607 $objAtividadeDTO->setDblIdProtocolo($dblIdProtocolo);
@@ -618,42 +617,37 @@ class ExpedirProcedimentoRN extends InfraRN { @@ -618,42 +617,37 @@ class ExpedirProcedimentoRN extends InfraRN {
618 617
619 public static function receberRecusaProcedimento($motivo, $unidade_destino, $numUnidadeDestino = null, $idProtocolo) 618 public static function receberRecusaProcedimento($motivo, $unidade_destino, $numUnidadeDestino = null, $idProtocolo)
620 { 619 {
621 -  
622 try{ 620 try{
623 - //Muda o status do protocolo para "Normal"  
624 -  
625 -  
626 - $arrObjAtributoAndamentoDTO = array();  
627 -  
628 - $objAtributoAndamentoDTO = new AtributoAndamentoDTO();  
629 - $objAtributoAndamentoDTO->setStrNome('MOTIVO');  
630 - $objAtributoAndamentoDTO->setStrValor($motivo);  
631 - $objAtributoAndamentoDTO->setStrIdOrigem($numUnidadeDestino);  
632 - $arrObjAtributoAndamentoDTO[] = $objAtributoAndamentoDTO;  
633 - 621 + //Muda o status do protocolo para "Normal"
  622 + $arrObjAtributoAndamentoDTO = array();
634 623
635 - $objAtributoAndamentoDTO = new AtributoAndamentoDTO();  
636 - $objAtributoAndamentoDTO->setStrNome('UNIDADE_DESTINO');  
637 - $objAtributoAndamentoDTO->setStrValor($unidade_destino);  
638 - $objAtributoAndamentoDTO->setStrIdOrigem($numUnidadeDestino);  
639 - $arrObjAtributoAndamentoDTO[] = $objAtributoAndamentoDTO; 624 + $objAtributoAndamentoDTO = new AtributoAndamentoDTO();
  625 + $objAtributoAndamentoDTO->setStrNome('MOTIVO');
  626 + $objAtributoAndamentoDTO->setStrValor($motivo);
  627 + $objAtributoAndamentoDTO->setStrIdOrigem($numUnidadeDestino);
  628 + $arrObjAtributoAndamentoDTO[] = $objAtributoAndamentoDTO;
640 629
  630 + $objAtributoAndamentoDTO = new AtributoAndamentoDTO();
  631 + $objAtributoAndamentoDTO->setStrNome('UNIDADE_DESTINO');
  632 + $objAtributoAndamentoDTO->setStrValor($unidade_destino);
  633 + $objAtributoAndamentoDTO->setStrIdOrigem($numUnidadeDestino);
  634 + $arrObjAtributoAndamentoDTO[] = $objAtributoAndamentoDTO;
641 635
642 - $objAtividadeDTO = new AtividadeDTO();  
643 - $objAtividadeDTO->setDblIdProtocolo($idProtocolo);  
644 - $objAtividadeDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual());  
645 - $objAtividadeDTO->setNumIdTarefa(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_TRAMITE_RECUSADO);  
646 - $objAtividadeDTO->setArrObjAtributoAndamentoDTO($arrObjAtributoAndamentoDTO); 636 + $objAtividadeDTO = new AtividadeDTO();
  637 + $objAtividadeDTO->setDblIdProtocolo($idProtocolo);
  638 + $objAtividadeDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual());
  639 + $objAtividadeDTO->setNumIdTarefa(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_TRAMITE_RECUSADO);
  640 + $objAtividadeDTO->setArrObjAtributoAndamentoDTO($arrObjAtributoAndamentoDTO);
647 641
648 - $objAtividadeRN = new AtividadeRN();  
649 - $atividade = $objAtividadeRN->gerarInternaRN0727($objAtividadeDTO); 642 + $objAtividadeRN = new AtividadeRN();
  643 + $atividade = $objAtividadeRN->gerarInternaRN0727($objAtividadeDTO);
650 644
651 - $objProtocoloDTO = new ProtocoloDTO();  
652 - $objProtocoloDTO->setStrStaEstado(ProtocoloRN::$TE_NORMAL);  
653 - $objProtocoloDTO->setDblIdProtocolo($idProtocolo); 645 + $objProtocoloDTO = new ProtocoloDTO();
  646 + $objProtocoloDTO->setStrStaEstado(ProtocoloRN::$TE_NORMAL);
  647 + $objProtocoloDTO->setDblIdProtocolo($idProtocolo);
654 648
655 - $objProtocoloRN = new ProtocoloRN();  
656 - $objProtocoloRN->alterarRN0203($objProtocoloDTO); 649 + $objProtocoloRN = new ProtocoloRN();
  650 + $objProtocoloRN->alterarRN0203($objProtocoloDTO);
657 651
658 652
659 }catch (InfraException $e){ 653 }catch (InfraException $e){
@@ -664,231 +658,225 @@ class ExpedirProcedimentoRN extends InfraRN { @@ -664,231 +658,225 @@ class ExpedirProcedimentoRN extends InfraRN {
664 } 658 }
665 } 659 }
666 660
667 - private function bloquearProcedimento($objProcesso)  
668 - {  
669 - if(!isset($objProcesso)) {  
670 - throw new InfraException('Parâmetro $objProcesso não informado.');  
671 - } 661 + private function bloquearProcedimento($objProcesso)
  662 + {
  663 + if(!isset($objProcesso)) {
  664 + throw new InfraException('Parâmetro $objProcesso não informado.');
  665 + }
672 666
673 //TODO: Solicitar ao TRF4 um meio de bloquear o processo, indicando que ele encontra-se em 667 //TODO: Solicitar ao TRF4 um meio de bloquear o processo, indicando que ele encontra-se em
674 //expedio e possui tratamento diferenciado 668 //expedio e possui tratamento diferenciado
675 669
676 - $objRelProtocoloProtocoloDTO = new RelProtocoloProtocoloDTO(); 670 + $objRelProtocoloProtocoloDTO = new RelProtocoloProtocoloDTO();
677 //$objRelProtocoloProtocoloDTO->setDblIdProtocolo1($dblIdProcedimentoApensado); 671 //$objRelProtocoloProtocoloDTO->setDblIdProtocolo1($dblIdProcedimentoApensado);
678 - $objRelProtocoloProtocoloDTO->setDblIdProtocolo1(null);  
679 - $objRelProtocoloProtocoloDTO->setDblIdProtocolo2($objProcesso->idProcedimentoSEI);  
680 - $objRelProtocoloProtocoloDTO->setStrMotivo("Processo sobrestado devido sua expedição para outra entidade.");  
681 - $this->objProcedimentoRN->sobrestarRN1014(array($objRelProtocoloProtocoloDTO));  
682 -  
683 - if(isset($objProcesso->processoApensado) && is_array($objProcesso->processoApensado)) {  
684 - foreach($objProcesso->processoApensado as $objProcessoApensado) {  
685 - $this->bloquearProcedimento($objProcessoApensado);  
686 - } 672 + $objRelProtocoloProtocoloDTO->setDblIdProtocolo1(null);
  673 + $objRelProtocoloProtocoloDTO->setDblIdProtocolo2($objProcesso->idProcedimentoSEI);
  674 + $objRelProtocoloProtocoloDTO->setStrMotivo("Processo sobrestado devido sua expedição para outra entidade.");
  675 + $this->objProcedimentoRN->sobrestarRN1014(array($objRelProtocoloProtocoloDTO));
  676 +
  677 + if(isset($objProcesso->processoApensado) && is_array($objProcesso->processoApensado)) {
  678 + foreach($objProcesso->processoApensado as $objProcessoApensado) {
  679 + $this->bloquearProcedimento($objProcessoApensado);
  680 + }
  681 + }
687 } 682 }
688 683
689 - }  
690 -  
691 - private function atribuirDataHoraDeRegistro($objContexto, $dblIdProcedimento, $dblIdDocumento = null)  
692 - { 684 + private function atribuirDataHoraDeRegistro($objContexto, $dblIdProcedimento, $dblIdDocumento = null)
  685 + {
693 //Validar parâmetro $objContexto 686 //Validar parâmetro $objContexto
694 - if(!isset($objContexto)) {  
695 - throw new InfraException('Parâmetro $objContexto não informado.');  
696 - } 687 + if(!isset($objContexto)) {
  688 + throw new InfraException('Parâmetro $objContexto não informado.');
  689 + }
697 690
698 //Validar parâmetro $dbIdProcedimento 691 //Validar parâmetro $dbIdProcedimento
699 - if(!isset($dblIdProcedimento)) {  
700 - throw new InfraException('Parâmetro $dbIdProcedimento não informado.');  
701 - }  
702 -  
703 - $objProcedimentoHistoricoDTO = new ProcedimentoHistoricoDTO();  
704 - $objProcedimentoHistoricoDTO->setDblIdProcedimento($dblIdProcedimento);  
705 - $objProcedimentoHistoricoDTO->setStrStaHistorico(ProcedimentoRN::$TH_PERSONALIZADO);  
706 - $objProcedimentoHistoricoDTO->adicionarCriterio(array('IdTarefa','IdTarefa'), array(InfraDTO::$OPER_IGUAL,InfraDTO::$OPER_IGUAL), array(TarefaRN::$TI_GERACAO_PROCEDIMENTO, ProcessoeletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_RECEBIDO), InfraDTO::$OPER_LOGICO_OR);  
707 - $objProcedimentoHistoricoDTO->setStrSinGerarLinksHistorico('N');  
708 - $objProcedimentoHistoricoDTO->setNumMaxRegistrosRetorno(1);  
709 - $objProcedimentoHistoricoDTO->setOrdNumIdTarefa(InfraDTO::$TIPO_ORDENACAO_ASC); 692 + if(!isset($dblIdProcedimento)) {
  693 + throw new InfraException('Parâmetro $dbIdProcedimento não informado.');
  694 + }
710 695
711 - if(isset($dblIdDocumento)){  
712 - $objProcedimentoHistoricoDTO->setDblIdDocumento($dblIdDocumento);  
713 - $objProcedimentoHistoricoDTO->setNumIdTarefa(array(TarefaRN::$TI_GERACAO_DOCUMENTO, TarefaRN::$TI_RECEBIMENTO_DOCUMENTO), InfraDTO::$OPER_IN);  
714 - } 696 + $objProcedimentoHistoricoDTO = new ProcedimentoHistoricoDTO();
  697 + $objProcedimentoHistoricoDTO->setDblIdProcedimento($dblIdProcedimento);
  698 + $objProcedimentoHistoricoDTO->setStrStaHistorico(ProcedimentoRN::$TH_PERSONALIZADO);
  699 + $objProcedimentoHistoricoDTO->adicionarCriterio(array('IdTarefa','IdTarefa'), array(InfraDTO::$OPER_IGUAL,InfraDTO::$OPER_IGUAL), array(TarefaRN::$TI_GERACAO_PROCEDIMENTO, ProcessoeletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_RECEBIDO), InfraDTO::$OPER_LOGICO_OR);
  700 + $objProcedimentoHistoricoDTO->setStrSinGerarLinksHistorico('N');
  701 + $objProcedimentoHistoricoDTO->setNumMaxRegistrosRetorno(1);
  702 + $objProcedimentoHistoricoDTO->setOrdNumIdTarefa(InfraDTO::$TIPO_ORDENACAO_ASC);
  703 +
  704 + if(isset($dblIdDocumento)){
  705 + $objProcedimentoHistoricoDTO->setDblIdDocumento($dblIdDocumento);
  706 + $objProcedimentoHistoricoDTO->setNumIdTarefa(array(TarefaRN::$TI_GERACAO_DOCUMENTO, TarefaRN::$TI_RECEBIMENTO_DOCUMENTO), InfraDTO::$OPER_IN);
  707 + }
715 708
716 - $objProcedimentoDTOHistorico = $this->objProcedimentoRN->consultarHistoricoRN1025($objProcedimentoHistoricoDTO);  
717 - $arrObjAtividadeDTOHistorico = $objProcedimentoDTOHistorico->getArrObjAtividadeDTO(); 709 + $objProcedimentoDTOHistorico = $this->objProcedimentoRN->consultarHistoricoRN1025($objProcedimentoHistoricoDTO);
  710 + $arrObjAtividadeDTOHistorico = $objProcedimentoDTOHistorico->getArrObjAtividadeDTO();
718 711
719 - if(isset($arrObjAtividadeDTOHistorico) && count($arrObjAtividadeDTOHistorico) == 1){  
720 - $objContexto->dataHoraDeRegistro = $this->objProcessoEletronicoRN->converterDataWebService($arrObjAtividadeDTOHistorico[0]->getDthAbertura()); 712 + if(isset($arrObjAtividadeDTOHistorico) && count($arrObjAtividadeDTOHistorico) == 1){
  713 + $objContexto->dataHoraDeRegistro = $this->objProcessoEletronicoRN->converterDataWebService($arrObjAtividadeDTOHistorico[0]->getDthAbertura());
  714 + }
721 } 715 }
722 - }  
723 716
724 - private function atribuirProdutorProcesso($objProcesso, $dblIdProcedimento, $numIdUnidadeGeradora)  
725 - {  
726 - if(!isset($objProcesso)){  
727 - throw new InfraException('Parâmetro $objProcesso não informado.');  
728 - } 717 + private function atribuirProdutorProcesso($objProcesso, $dblIdProcedimento, $numIdUnidadeGeradora)
  718 + {
  719 + if(!isset($objProcesso)){
  720 + throw new InfraException('Parâmetro $objProcesso não informado.');
  721 + }
729 722
730 - $objProcesso->produtor = new stdClass();  
731 - $objUsuarioProdutor = $this->consultarUsuario($dblIdProcedimento);  
732 - if(isset($objUsuarioProdutor)) {  
733 - //Dados do produtor do processo  
734 - $objProcesso->produtor->nome = utf8_encode($objUsuarioProdutor->getStrNome());  
735 - //TODO: Obter tipo de pessoa fsica dos contatos do SEI  
736 - $objProcesso->produtor->numeroDeIdentificacao = $objUsuarioProdutor->getDblCpfContato();  
737 - $objProcesso->produtor->tipo = self::STA_TIPO_PESSOA_FISICA; 723 + $objProcesso->produtor = new stdClass();
  724 + $objUsuarioProdutor = $this->consultarUsuario($dblIdProcedimento);
  725 + if(isset($objUsuarioProdutor)) {
  726 + //Dados do produtor do processo
  727 + $objProcesso->produtor->nome = utf8_encode($objUsuarioProdutor->getStrNome());
  728 + //TODO: Obter tipo de pessoa fsica dos contatos do SEI
  729 + $objProcesso->produtor->numeroDeIdentificacao = $objUsuarioProdutor->getDblCpfContato();
  730 + $objProcesso->produtor->tipo = self::STA_TIPO_PESSOA_FISICA;
738 //TODO: Informar dados da estrutura organizacional (estruturaOrganizacional) 731 //TODO: Informar dados da estrutura organizacional (estruturaOrganizacional)
  732 + }
739 733
740 - }  
741 -  
742 - $objUnidadeGeradora = $this->consultarUnidade($dblIdProcedimento);  
743 - if(isset($objUnidadeGeradora)){  
744 - $objProcesso->produtor->unidade = new stdClass();  
745 - $objProcesso->produtor->unidade->nome = utf8_encode($objUnidadeGeradora->getStrDescricao());  
746 - $objProcesso->produtor->unidade->tipo = self::STA_TIPO_PESSOA_ORGAOPUBLICO; 734 + $objUnidadeGeradora = $this->consultarUnidade($dblIdProcedimento);
  735 + if(isset($objUnidadeGeradora)){
  736 + $objProcesso->produtor->unidade = new stdClass();
  737 + $objProcesso->produtor->unidade->nome = utf8_encode($objUnidadeGeradora->getStrDescricao());
  738 + $objProcesso->produtor->unidade->tipo = self::STA_TIPO_PESSOA_ORGAOPUBLICO;
747 //TODO: Informar dados da estrutura organizacional (estruturaOrganizacional) 739 //TODO: Informar dados da estrutura organizacional (estruturaOrganizacional)
748 - }  
749 - }  
750 -  
751 - private function atribuirDadosInteressados($objProcesso, $dblIdProcedimento)  
752 - {  
753 - if(!isset($objProcesso)){  
754 - throw new InfraException('Parâmetro $objProcesso não informado.'); 740 + }
755 } 741 }
756 742
757 - $arrParticipantesDTO = $this->listarInteressados($dblIdProcedimento);  
758 -  
759 - if(isset($arrParticipantesDTO) && count($arrParticipantesDTO) > 0) 743 + private function atribuirDadosInteressados($objProcesso, $dblIdProcedimento)
760 { 744 {
761 - $objProcesso->interessado = array(); 745 + if(!isset($objProcesso)){
  746 + throw new InfraException('Parâmetro $objProcesso não informado.');
  747 + }
762 748
763 - foreach ($arrParticipantesDTO as $participanteDTO) {  
764 - $interessado = new stdClass();  
765 - $interessado->nome = utf8_encode($participanteDTO->getStrNomeContato());  
766 - $objProcesso->interessado[] = $interessado;  
767 - }  
768 - }  
769 - } 749 + $arrParticipantesDTO = $this->listarInteressados($dblIdProcedimento);
770 750
  751 + if(isset($arrParticipantesDTO) && count($arrParticipantesDTO) > 0){
  752 + $objProcesso->interessado = array();
771 753
772 - private function atribuirDocumentos($objProcesso, $dblIdProcedimento)  
773 - {  
774 - if(!isset($objProcesso)) {  
775 - throw new InfraException('Parâmetro $objProcesso não informado.'); 754 + foreach ($arrParticipantesDTO as $participanteDTO) {
  755 + $interessado = new stdClass();
  756 + $interessado->nome = utf8_encode($participanteDTO->getStrNomeContato());
  757 + $objProcesso->interessado[] = $interessado;
  758 + }
  759 + }
776 } 760 }
777 761
  762 + private function atribuirDocumentos($objProcesso, $dblIdProcedimento)
  763 + {
  764 + if(!isset($objProcesso)) {
  765 + throw new InfraException('Parâmetro $objProcesso não informado.');
  766 + }
  767 +
778 //TODO: Passar dados do ProcedimentoDTO via parâmetro j carregado anteriormente 768 //TODO: Passar dados do ProcedimentoDTO via parâmetro j carregado anteriormente
779 - $arrDocumentosDTO = $this->listarDocumentos($dblIdProcedimento); 769 + $arrDocumentosDTO = $this->listarDocumentos($dblIdProcedimento);
780 770
781 - if(!isset($arrDocumentosDTO)) {  
782 - throw new InfraException('Documentos não encontrados.');  
783 - }  
784 - $ordemDocumento = 1;  
785 - $objProcesso->documento = array();  
786 - foreach ($arrDocumentosDTO as $documentoDTO) { 771 + if(!isset($arrDocumentosDTO)) {
  772 + throw new InfraException('Documentos não encontrados.');
  773 + }
  774 +
  775 + $ordemDocumento = 1;
  776 + $objProcesso->documento = array();
  777 + foreach ($arrDocumentosDTO as $documentoDTO) {
787 778
788 //$protocoloDocumentoDTO = $this->consultarProtocoloDocumento($documeto->getDblIdProcedimento()); 779 //$protocoloDocumentoDTO = $this->consultarProtocoloDocumento($documeto->getDblIdProcedimento());
789 - $documento = new stdClass();  
790 - $objPenRelHipoteseLegalRN = new PenRelHipoteseLegalEnvioRN(); 780 + $documento = new stdClass();
  781 + $objPenRelHipoteseLegalRN = new PenRelHipoteseLegalEnvioRN();
791 //TODO: Atribuir das informações abaixo ao documento 782 //TODO: Atribuir das informações abaixo ao documento
792 //<protocoloDoDocumentoAnexado>123</protocoloDoDocumentoAnexado> 783 //<protocoloDoDocumentoAnexado>123</protocoloDoDocumentoAnexado>
793 //<protocoloDoProcessoAnexado>456</protocoloDoProcessoAnexado> 784 //<protocoloDoProcessoAnexado>456</protocoloDoProcessoAnexado>
794 //Retirado 785 //Retirado
795 //Considera o nmero/nome do documento externo para descrio do documento 786 //Considera o nmero/nome do documento externo para descrio do documento
796 - if($documentoDTO->getStrStaProtocoloProtocolo() == ProtocoloRN::$TP_DOCUMENTO_RECEBIDO && $documentoDTO->getStrNumero() != null) {  
797 - $strDescricaoDocumento = $documentoDTO->getStrNumero();  
798 - }else{  
799 - $strDescricaoDocumento = "***";  
800 - }  
801 - // Não é um documento externo  
802 - /*elseif($documentoDTO->isSetNumIdTipoConferencia()){  
803 -  
804 - $objTipoProcedimentoDTO = new PenTipoProcedimentoDTO(true);  
805 - $objTipoProcedimentoDTO->retStrNome();  
806 - $objTipoProcedimentoDTO->setBolExclusaoLogica(false);  
807 - $objTipoProcedimentoDTO->setDblIdProcedimento($dblIdProcedimento);  
808 -  
809 - $objTipoProcedimentoBD = new TipoProcedimentoBD(BancoSEI::getInstance());  
810 -  
811 - $objTipoProcedimentoDTO = $objTipoProcedimentoBD->consultar($objTipoProcedimentoDTO);  
812 -  
813 - $strDescricaoDocumento = $objTipoProcedimentoDTO->getStrNome();  
814 - }*/  
815 -  
816 - $documento->retirado = ($documentoDTO->getStrStaEstadoProtocolo() == ProtocoloRN::$TE_DOCUMENTO_CANCELADO) ? true : false;  
817 - $documento->ordem = $ordemDocumento++;  
818 - $documento->descricao = utf8_encode($strDescricaoDocumento);  
819 - $documento->nivelDeSigilo = $this->obterNivelSigiloPEN($documentoDTO->getStrStaNivelAcessoLocalProtocolo());  
820 - if($documentoDTO->getStrStaNivelAcessoLocalProtocolo() == ProtocoloRN::$NA_RESTRITO){  
821 - $documento->hipoteseLegal = new stdClass();  
822 - $documento->hipoteseLegal->identificacao = $objPenRelHipoteseLegalRN->getIdHipoteseLegalPEN($documentoDTO->getNumIdHipoteseLegalProtocolo());  
823 - //TODO: Adicionar nome da hipótese legal atribuida ao documento  
824 - }  
825 - $documento->dataHoraDeProducao = $this->objProcessoEletronicoRN->converterDataWebService($documentoDTO->getDtaGeracaoProtocolo());  
826 - $documento->produtor = new stdClass();  
827 - $usuarioDTO = $this->consultarUsuario($documentoDTO->getNumIdUsuarioGeradorProtocolo());  
828 - if(isset($usuarioDTO)) {  
829 - $documento->produtor->nome = utf8_encode($usuarioDTO->getStrNome());  
830 - $documento->produtor->numeroDeIdentificacao = $usuarioDTO->getDblCpfContato();  
831 - //TODO: Obter tipo de pessoa fsica dos contextos/contatos do SEI  
832 - $documento->produtor->tipo = self::STA_TIPO_PESSOA_FISICA;;  
833 - }  
834 -  
835 - $unidadeDTO = $this->consultarUnidade($documentoDTO->getNumIdUnidadeResponsavel());  
836 - if(isset($unidadeDTO)) {  
837 - $documento->produtor->unidade = new stdClass();  
838 - $documento->produtor->unidade->nome = utf8_encode($unidadeDTO->getStrDescricao());  
839 - $documento->produtor->unidade->tipo = self::STA_TIPO_PESSOA_ORGAOPUBLICO;  
840 - //TODO: Informar dados da estrutura organizacional (estruturaOrganizacional)  
841 - }  
842 - $documento->produtor->numeroDeIdentificacao = $documentoDTO->getStrProtocoloDocumentoFormatado(); //TODO: Avaliar se informação está correta  
843 -  
844 - $this->atribuirDataHoraDeRegistro($documento, $documentoDTO->getDblIdProcedimento(), $documentoDTO->getDblIdDocumento()); 787 + if($documentoDTO->getStrStaProtocoloProtocolo() == ProtocoloRN::$TP_DOCUMENTO_RECEBIDO && $documentoDTO->getStrNumero() != null) {
  788 + $strDescricaoDocumento = $documentoDTO->getStrNumero();
  789 + }else{
  790 + $strDescricaoDocumento = "***";
  791 + }
  792 +
  793 + // Não é um documento externo
  794 + /*elseif($documentoDTO->isSetNumIdTipoConferencia()){
  795 +
  796 + $objTipoProcedimentoDTO = new PenTipoProcedimentoDTO(true);
  797 + $objTipoProcedimentoDTO->retStrNome();
  798 + $objTipoProcedimentoDTO->setBolExclusaoLogica(false);
  799 + $objTipoProcedimentoDTO->setDblIdProcedimento($dblIdProcedimento);
  800 + $objTipoProcedimentoBD = new TipoProcedimentoBD(BancoSEI::getInstance());
  801 + $objTipoProcedimentoDTO = $objTipoProcedimentoBD->consultar($objTipoProcedimentoDTO);
  802 + $strDescricaoDocumento = $objTipoProcedimentoDTO->getStrNome();
  803 + }*/
  804 +
  805 + $documento->retirado = ($documentoDTO->getStrStaEstadoProtocolo() == ProtocoloRN::$TE_DOCUMENTO_CANCELADO) ? true : false;
  806 + $documento->ordem = $ordemDocumento++;
  807 + $documento->descricao = utf8_encode($strDescricaoDocumento);
  808 + $documento->nivelDeSigilo = $this->obterNivelSigiloPEN($documentoDTO->getStrStaNivelAcessoLocalProtocolo());
  809 + if($documentoDTO->getStrStaNivelAcessoLocalProtocolo() == ProtocoloRN::$NA_RESTRITO){
  810 + $documento->hipoteseLegal = new stdClass();
  811 + $documento->hipoteseLegal->identificacao = $objPenRelHipoteseLegalRN->getIdHipoteseLegalPEN($documentoDTO->getNumIdHipoteseLegalProtocolo());
  812 + //TODO: Adicionar nome da hipótese legal atribuida ao documento
  813 + }
  814 + $documento->dataHoraDeProducao = $this->objProcessoEletronicoRN->converterDataWebService($documentoDTO->getDtaGeracaoProtocolo());
  815 + $documento->produtor = new stdClass();
  816 + $usuarioDTO = $this->consultarUsuario($documentoDTO->getNumIdUsuarioGeradorProtocolo());
  817 + if(isset($usuarioDTO)) {
  818 + $documento->produtor->nome = utf8_encode($usuarioDTO->getStrNome());
  819 + $documento->produtor->numeroDeIdentificacao = $usuarioDTO->getDblCpfContato();
  820 + //TODO: Obter tipo de pessoa fsica dos contextos/contatos do SEI
  821 + $documento->produtor->tipo = self::STA_TIPO_PESSOA_FISICA;;
  822 + }
  823 +
  824 + $unidadeDTO = $this->consultarUnidade($documentoDTO->getNumIdUnidadeResponsavel());
  825 + if(isset($unidadeDTO)) {
  826 + $documento->produtor->unidade = new stdClass();
  827 + $documento->produtor->unidade->nome = utf8_encode($unidadeDTO->getStrDescricao());
  828 + $documento->produtor->unidade->tipo = self::STA_TIPO_PESSOA_ORGAOPUBLICO;
  829 + //TODO: Informar dados da estrutura organizacional (estruturaOrganizacional)
  830 + }
  831 +
  832 + $documento->produtor->numeroDeIdentificacao = $documentoDTO->getStrProtocoloDocumentoFormatado(); //TODO: Avaliar se informação está correta
  833 +
  834 + $this->atribuirDataHoraDeRegistro($documento, $documentoDTO->getDblIdProcedimento(), $documentoDTO->getDblIdDocumento());
845 //TODO: Implementar mapeamento de espécies documentais 835 //TODO: Implementar mapeamento de espécies documentais
846 - $documento->especie = new stdClass();  
847 - $documento->especie->codigo = $this->obterEspecieMapeada($documentoDTO->getNumIdSerie());  
848 - $documento->especie->nomeNoProdutor = utf8_encode($documentoDTO->getStrNomeSerie()); 836 + $documento->especie = new stdClass();
  837 + $documento->especie->codigo = $this->obterEspecieMapeada($documentoDTO->getNumIdSerie());
  838 + $documento->especie->nomeNoProdutor = utf8_encode($documentoDTO->getStrNomeSerie());
849 //TODO: Tratar campos adicionais do documento 839 //TODO: Tratar campos adicionais do documento
850 //Identificao do documento 840 //Identificao do documento
851 - $this->atribuirNumeracaoDocumento($documento, $documentoDTO);  
852 - if($documento->retirado === true){ 841 + $this->atribuirNumeracaoDocumento($documento, $documentoDTO);
  842 + if($documento->retirado === true){
853 843
854 - $penComponenteDigitalDTO = new ComponenteDigitalDTO();  
855 - $penComponenteDigitalDTO->retTodos();  
856 - $penComponenteDigitalDTO->setDblIdDocumento($documentoDTO->getDblIdDocumento()); 844 + $penComponenteDigitalDTO = new ComponenteDigitalDTO();
  845 + $penComponenteDigitalDTO->retTodos();
  846 + $penComponenteDigitalDTO->setDblIdDocumento($documentoDTO->getDblIdDocumento());
857 847
858 - $penComponenteDigitalBD = new ComponenteDigitalBD($this->getObjInfraIBanco()); 848 + $penComponenteDigitalBD = new ComponenteDigitalBD($this->getObjInfraIBanco());
859 849
860 - if($penComponenteDigitalBD->contar($penComponenteDigitalDTO) > 0){ 850 + if($penComponenteDigitalBD->contar($penComponenteDigitalDTO) > 0){
861 851
862 - $arrPenComponenteDigitalDTO = $penComponenteDigitalBD->listar($penComponenteDigitalDTO);  
863 - $componenteDigital = $arrPenComponenteDigitalDTO[0]; 852 + $arrPenComponenteDigitalDTO = $penComponenteDigitalBD->listar($penComponenteDigitalDTO);
  853 + $componenteDigital = $arrPenComponenteDigitalDTO[0];
864 854
865 - $documento->componenteDigital = new stdClass();  
866 - $documento->componenteDigital->ordem = 1;  
867 - $documento->componenteDigital->nome = utf8_encode($componenteDigital->getStrNome());  
868 - $documento->componenteDigital->hash = new SoapVar("<hash algoritmo='{$componenteDigital->getStrAlgoritmoHash()}'>{$componenteDigital->getStrHashConteudo()}</hash>", XSD_ANYXML);  
869 - $documento->componenteDigital->tamanhoEmBytes = $componenteDigital->getNumTamanho();  
870 - $documento->componenteDigital->mimeType = $componenteDigital->getStrMimeType();  
871 - $documento->componenteDigital->tipoDeConteudo = $componenteDigital->getStrTipoConteudo();  
872 - $documento->componenteDigital->idAnexo = $componenteDigital->getNumIdAnexo(); 855 + $documento->componenteDigital = new stdClass();
  856 + $documento->componenteDigital->ordem = 1;
  857 + $documento->componenteDigital->nome = utf8_encode($componenteDigital->getStrNome());
  858 + $documento->componenteDigital->hash = new SoapVar("<hash algoritmo='{$componenteDigital->getStrAlgoritmoHash()}'>{$componenteDigital->getStrHashConteudo()}</hash>", XSD_ANYXML);
  859 + $documento->componenteDigital->tamanhoEmBytes = $componenteDigital->getNumTamanho();
  860 + $documento->componenteDigital->mimeType = $componenteDigital->getStrMimeType();
  861 + $documento->componenteDigital->tipoDeConteudo = $componenteDigital->getStrTipoConteudo();
  862 + $documento->componenteDigital->idAnexo = $componenteDigital->getNumIdAnexo();
873 863
874 864
875 - // -------------------------- INICIO DA TAREFA US074 -------------------------------//  
876 - $documento = $this->atribuirDadosAssinaturaDigital($documentoDTO, $documento, $componenteDigital->getStrHashConteudo());  
877 - // -------------------------- FIM TAREFA US074 -------------------------------// 865 + // -------------------------- INICIO DA TAREFA US074 -------------------------------//
  866 + $documento = $this->atribuirDadosAssinaturaDigital($documentoDTO, $documento, $componenteDigital->getStrHashConteudo());
  867 + // -------------------------- FIM TAREFA US074 -------------------------------//
878 868
879 869
880 - if($componenteDigital->getStrMimeType() == 'outro'){  
881 - $documento->componenteDigital->dadosComplementaresDoTipoDeArquivo = 'outro';  
882 - }  
883 -  
884 - }else{  
885 - $this->atribuirComponentesDigitais($documento, $documentoDTO);  
886 -  
887 - } 870 + if($componenteDigital->getStrMimeType() == 'outro'){
  871 + $documento->componenteDigital->dadosComplementaresDoTipoDeArquivo = 'outro';
  872 + }
888 873
889 - }else{  
890 - $this->atribuirComponentesDigitais($documento, $documentoDTO);  
891 - } 874 + }else{
  875 + $this->atribuirComponentesDigitais($documento, $documentoDTO);
  876 + }
  877 + }else{
  878 + $this->atribuirComponentesDigitais($documento, $documentoDTO);
  879 + }
892 880
893 //TODO: Necessrio tratar informações abaixo 881 //TODO: Necessrio tratar informações abaixo
894 //protocoloDoDocumentoAnexado 882 //protocoloDoDocumentoAnexado
@@ -896,109 +884,98 @@ class ExpedirProcedimentoRN extends InfraRN { @@ -896,109 +884,98 @@ class ExpedirProcedimentoRN extends InfraRN {
896 //retirado 884 //retirado
897 //protocoloAnterior 885 //protocoloAnterior
898 //historico 886 //historico
899 - $documento->idDocumentoSEI = $documentoDTO->getDblIdDocumento();  
900 - $objProcesso->documento[] = $documento; 887 + $documento->idDocumentoSEI = $documentoDTO->getDblIdDocumento();
  888 + $objProcesso->documento[] = $documento;
  889 + }
901 } 890 }
902 - }  
903 -  
904 - public function atribuirComponentesDigitaisRetirados($documentoDTO){  
905 891
906 - } 892 + public function atribuirComponentesDigitaisRetirados($documentoDTO){
907 893
908 - private function obterEspecieMapeada($parNumIdSerie)  
909 - {  
910 - if(!isset($parNumIdSerie) || $parNumIdSerie == 0) {  
911 - throw new InfraException('Parâmetro $parNumIdSerie não informado.');  
912 } 894 }
913 895
914 - $objPenRelTipoDocMapEnviadoDTO = new PenRelTipoDocMapEnviadoDTO();  
915 - $objPenRelTipoDocMapEnviadoDTO->setNumIdSerie($parNumIdSerie);  
916 - $objPenRelTipoDocMapEnviadoDTO->retNumCodigoEspecie(); 896 + private function obterEspecieMapeada($parNumIdSerie)
  897 + {
  898 + if(!isset($parNumIdSerie) || $parNumIdSerie == 0) {
  899 + throw new InfraException('Parâmetro $parNumIdSerie não informado.');
  900 + }
917 901
918 - $objGenericoBD = new GenericoBD($this->getObjInfraIBanco());  
919 - $objPenRelTipoDocMapEnviadoDTO = $objGenericoBD->consultar($objPenRelTipoDocMapEnviadoDTO); 902 + $objPenRelTipoDocMapEnviadoDTO = new PenRelTipoDocMapEnviadoDTO();
  903 + $objPenRelTipoDocMapEnviadoDTO->setNumIdSerie($parNumIdSerie);
  904 + $objPenRelTipoDocMapEnviadoDTO->retNumCodigoEspecie();
920 905
921 - if($objPenRelTipoDocMapEnviadoDTO == null) {  
922 - $objPenRelTipoDocMapEnviadoDTO = new PenRelTipoDocMapEnviadoDTO();  
923 - $objPenRelTipoDocMapEnviadoDTO->retNumCodigoEspecie();  
924 - $objPenRelTipoDocMapEnviadoDTO->setStrPadrao('S');  
925 - $objPenRelTipoDocMapEnviadoDTO->setNumMaxRegistrosRetorno(1);  
926 - $objPenRelTipoDocMapEnviadoDTO = $objGenericoBD->consultar($objPenRelTipoDocMapEnviadoDTO);  
927 - } 906 + $objGenericoBD = new GenericoBD($this->getObjInfraIBanco());
  907 + $objPenRelTipoDocMapEnviadoDTO = $objGenericoBD->consultar($objPenRelTipoDocMapEnviadoDTO);
928 908
929 - if($objPenRelTipoDocMapEnviadoDTO == null) {  
930 - throw new InfraException("Código de identificação da espécie documental não pode ser localizada para o tipo de documento {$parNumIdSerie}.");  
931 - }  
932 -  
933 - return $objPenRelTipoDocMapEnviadoDTO->getNumCodigoEspecie();  
934 - } 909 + if($objPenRelTipoDocMapEnviadoDTO == null) {
  910 + $objPenRelTipoDocMapEnviadoDTO = new PenRelTipoDocMapEnviadoDTO();
  911 + $objPenRelTipoDocMapEnviadoDTO->retNumCodigoEspecie();
  912 + $objPenRelTipoDocMapEnviadoDTO->setStrPadrao('S');
  913 + $objPenRelTipoDocMapEnviadoDTO->setNumMaxRegistrosRetorno(1);
  914 + $objPenRelTipoDocMapEnviadoDTO = $objGenericoBD->consultar($objPenRelTipoDocMapEnviadoDTO);
  915 + }
935 916
  917 + if($objPenRelTipoDocMapEnviadoDTO == null) {
  918 + throw new InfraException("Código de identificação da espécie documental não pode ser localizada para o tipo de documento {$parNumIdSerie}.");
  919 + }
936 920
937 - private function atribuirAssinaturaEletronica($objComponenteDigital, AssinaturaDTO $objAssinaturaDTO)  
938 - {  
939 - if(!isset($objComponenteDigital)){  
940 - throw new InfraException('Parâmetro $objComponenteDigital não informado.'); 921 + return $objPenRelTipoDocMapEnviadoDTO->getNumCodigoEspecie();
941 } 922 }
942 923
943 - if(isset($objAssinaturaDTO)) {  
944 - $objComponenteDigital->assinaturaDigital = new stdClass();  
945 - //TODO: Obter as informações corretas dos metadados da assinatura digital  
946 - $objComponenteDigital->assinaturaDigital->dataHora = $this->objProcessoEletronicoRN->converterDataWebService($objComponenteDigital->getDthAberturaAtividade());  
947 - $objComponenteDigital->assinaturaDigital->cadeiaDoCertificado = new SoapVar('<cadeiaDoCertificado formato="PKCS7"></cadeiaDoCertificado>', XSD_ANYXML);  
948 - $objComponenteDigital->assinaturaDigital->hash = new SoapVar("<hash algoritmo='{self::ALGORITMO_HASH_ASSINATURA}'>{$objAssinaturaDTO->getStrP7sBase64()}</hash>", XSD_ANYXML);  
949 - }  
950 - }  
951 924
952 - private function atribuirComponentesDigitais($objDocumento, DocumentoDTO $objDocumentoDTO)  
953 - {  
954 - if(!isset($objDocumento)){  
955 - throw new InfraException('Parâmetro $objDocumento não informado.');  
956 - } 925 + private function atribuirAssinaturaEletronica($objComponenteDigital, AssinaturaDTO $objAssinaturaDTO)
  926 + {
  927 + if(!isset($objComponenteDigital)){
  928 + throw new InfraException('Parâmetro $objComponenteDigital não informado.');
  929 + }
957 930
958 - if(!isset($objDocumentoDTO)){  
959 - throw new InfraException('Parâmetro $objDocumentoDTO não informado.'); 931 + if(isset($objAssinaturaDTO)) {
  932 + $objComponenteDigital->assinaturaDigital = new stdClass();
  933 + //TODO: Obter as informações corretas dos metadados da assinatura digital
  934 + $objComponenteDigital->assinaturaDigital->dataHora = $this->objProcessoEletronicoRN->converterDataWebService($objComponenteDigital->getDthAberturaAtividade());
  935 + $objComponenteDigital->assinaturaDigital->cadeiaDoCertificado = new SoapVar('<cadeiaDoCertificado formato="PKCS7"></cadeiaDoCertificado>', XSD_ANYXML);
  936 + $objComponenteDigital->assinaturaDigital->hash = new SoapVar("<hash algoritmo='{self::ALGORITMO_HASH_ASSINATURA}'>{$objAssinaturaDTO->getStrP7sBase64()}</hash>", XSD_ANYXML);
  937 + }
960 } 938 }
961 939
962 - $arrInformacaoArquivo = $this->obterDadosArquivo($objDocumentoDTO); 940 + private function atribuirComponentesDigitais($objDocumento, DocumentoDTO $objDocumentoDTO)
  941 + {
  942 + if(!isset($objDocumento)){
  943 + throw new InfraException('Parâmetro $objDocumento não informado.');
  944 + }
963 945
964 - if(!isset($arrInformacaoArquivo) || count($arrInformacaoArquivo) == 0){  
965 - throw new InfraException('Erro durante obtenção de informações sobre o componente digital do documento {$objDocumentoDTO->getStrProtocoloDocumentoFormatado()}.');  
966 - } 946 + if(!isset($objDocumentoDTO)){
  947 + throw new InfraException('Parâmetro $objDocumentoDTO não informado.');
  948 + }
967 949
968 - $strAlgoritmoHash = self::ALGORITMO_HASH_DOCUMENTO;  
969 - $strConteudoAssinatura = $arrInformacaoArquivo['CONTEUDO'];  
970 - $hashDoComponenteDigital = hash($strAlgoritmoHash, $strConteudoAssinatura, true);  
971 - $hashDoComponenteDigital = base64_encode($hashDoComponenteDigital); 950 + $arrInformacaoArquivo = $this->obterDadosArquivo($objDocumentoDTO);
972 951
973 - //Busca registro de tramitações anteriores para este componente digital para identificar se o Barramento do PEN já havia registrado o hash do documento gerado da  
974 - //forma antiga, ou seja, considerando o link do Número SEI. Este link foi removido para manter o padrão de conteúdo de documentos utilizado pelo SEI para assinatura  
975 - //Para não bloquear os documentos gerados anteriormente, aqueles já registrados pelo Barramento com o hash antigo deverão manter a geração de conteúdo anteriormente utilizada.  
976 - $objComponenteDigital = $this->consultarComponenteDigital($objDocumentoDTO->getDblIdDocumento());  
977 - $hashDoComponenteDigitalAnterior = (isset($objComponenteDigital)) ? $objComponenteDigital->getStrHashConteudo() : null;  
978 - if(isset($hashDoComponenteDigitalAnterior) && ($hashDoComponenteDigitalAnterior <> $hashDoComponenteDigital)){  
979 - $strConteudoAssinaturaLegado = $arrInformacaoArquivo['CONTEUDO_LEGADO'];  
980 - $hashDoComponenteDigital = hash($strAlgoritmoHash, $strConteudoAssinaturaLegado, true);  
981 - $hashDoComponenteDigital = base64_encode($hashDoComponenteDigital);  
982 - } 952 + if(!isset($arrInformacaoArquivo) || count($arrInformacaoArquivo) == 0){
  953 + throw new InfraException('Erro durante obtenção de informações sobre o componente digital do documento {$objDocumentoDTO->getStrProtocoloDocumentoFormatado()}.');
  954 + }
983 955
984 - //TODO: Revisar tal implementao para atender a gerao de hash de arquivos grandes  
985 - $objDocumento->componenteDigital = new stdClass();  
986 - $objDocumento->componenteDigital->ordem = 1;  
987 - $objDocumento->componenteDigital->nome = utf8_encode($arrInformacaoArquivo["NOME"]);  
988 - $objDocumento->componenteDigital->hash = new SoapVar("<hash algoritmo='{$strAlgoritmoHash}'>{$hashDoComponenteDigital}</hash>", XSD_ANYXML);  
989 - $objDocumento->componenteDigital->tamanhoEmBytes = $arrInformacaoArquivo['TAMANHO']; 956 + $strAlgoritmoHash = self::ALGORITMO_HASH_DOCUMENTO;
  957 + $strConteudoAssinatura = $arrInformacaoArquivo['CONTEUDO'];
  958 + $hashDoComponenteDigital = $arrInformacaoArquivo['HASH_CONTEUDO'];
  959 + $strAlgoritmoHash = $arrInformacaoArquivo['ALGORITMO_HASH_CONTEUDO'];
  960 +
  961 + //TODO: Revisar tal implementao para atender a gerao de hash de arquivos grandes
  962 + $objDocumento->componenteDigital = new stdClass();
  963 + $objDocumento->componenteDigital->ordem = 1;
  964 + $objDocumento->componenteDigital->nome = utf8_encode($arrInformacaoArquivo["NOME"]);
  965 + $objDocumento->componenteDigital->hash = new SoapVar("<hash algoritmo='{$strAlgoritmoHash}'>{$hashDoComponenteDigital}</hash>", XSD_ANYXML);
  966 + $objDocumento->componenteDigital->tamanhoEmBytes = $arrInformacaoArquivo['TAMANHO'];
990 //TODO: Validar os tipos de mimetype de acordo com o WSDL do SEI 967 //TODO: Validar os tipos de mimetype de acordo com o WSDL do SEI
991 //Caso no identifique o tipo correto, informar o valor [outro] 968 //Caso no identifique o tipo correto, informar o valor [outro]
992 - $objDocumento->componenteDigital->mimeType = $arrInformacaoArquivo['MIME_TYPE'];  
993 - $objDocumento->componenteDigital->tipoDeConteudo = $this->obterTipoDeConteudo($arrInformacaoArquivo['MIME_TYPE']); 969 + $objDocumento->componenteDigital->mimeType = $arrInformacaoArquivo['MIME_TYPE'];
  970 + $objDocumento->componenteDigital->tipoDeConteudo = $this->obterTipoDeConteudo($arrInformacaoArquivo['MIME_TYPE']);
994 971
995 - // -------------------------- INICIO DA TAREFA US074 -------------------------------/  
996 - $objDocumento = $this->atribuirDadosAssinaturaDigital($objDocumentoDTO, $objDocumento, $hashDoComponenteDigital);  
997 - // -------------------------- FIM TAREFA US074 -------------------------------// 972 + // -------------------------- INICIO DA TAREFA US074 -------------------------------/
  973 + $objDocumento = $this->atribuirDadosAssinaturaDigital($objDocumentoDTO, $objDocumento, $hashDoComponenteDigital);
  974 + // -------------------------- FIM TAREFA US074 -------------------------------//
998 975
999 - if($arrInformacaoArquivo['MIME_TYPE'] == 'outro'){  
1000 - $objDocumento->componenteDigital->dadosComplementaresDoTipoDeArquivo = $arrInformacaoArquivo['dadosComplementaresDoTipoDeArquivo'];  
1001 - } 976 + if($arrInformacaoArquivo['MIME_TYPE'] == 'outro'){
  977 + $objDocumento->componenteDigital->dadosComplementaresDoTipoDeArquivo = $arrInformacaoArquivo['dadosComplementaresDoTipoDeArquivo'];
  978 + }
1002 979
1003 //TODO: Preencher dados complementares do tipo de arquivo 980 //TODO: Preencher dados complementares do tipo de arquivo
1004 //$objDocumento->componenteDigital->dadosComplementaresDoTipoDeArquivo = ''; 981 //$objDocumento->componenteDigital->dadosComplementaresDoTipoDeArquivo = '';
@@ -1006,13 +983,12 @@ class ExpedirProcedimentoRN extends InfraRN { @@ -1006,13 +983,12 @@ class ExpedirProcedimentoRN extends InfraRN {
1006 //TODO: Carregar informações da assinatura digital 983 //TODO: Carregar informações da assinatura digital
1007 //$this->atribuirAssinaturaEletronica($objDocumento->componenteDigital, $objDocumentoDTO); 984 //$this->atribuirAssinaturaEletronica($objDocumento->componenteDigital, $objDocumentoDTO);
1008 985
1009 - $objDocumento->componenteDigital->idAnexo = $arrInformacaoArquivo['ID_ANEXO'];  
1010 - return $objDocumento;  
1011 - }  
1012 -  
1013 - public function atribuirDadosAssinaturaDigital($objDocumentoDTO, $objDocumento, $strHashDocumento) {  
1014 - 986 + $objDocumento->componenteDigital->idAnexo = $arrInformacaoArquivo['ID_ANEXO'];
  987 + return $objDocumento;
  988 + }
1015 989
  990 + public function atribuirDadosAssinaturaDigital($objDocumentoDTO, $objDocumento, $strHashDocumento)
  991 + {
1016 //Busca as Tarjas 992 //Busca as Tarjas
1017 $objDocumentoDTOTarjas = new DocumentoDTO(); 993 $objDocumentoDTOTarjas = new DocumentoDTO();
1018 $objDocumentoDTOTarjas->retDblIdDocumento(); 994 $objDocumentoDTOTarjas->retDblIdDocumento();
@@ -1041,8 +1017,8 @@ class ExpedirProcedimentoRN extends InfraRN { @@ -1041,8 +1017,8 @@ class ExpedirProcedimentoRN extends InfraRN {
1041 foreach ($dataTarjas as $key => $content) { 1017 foreach ($dataTarjas as $key => $content) {
1042 $contentTrim = trim($content); //Limpa os espaos no inicio e fim de cada texto. 1018 $contentTrim = trim($content); //Limpa os espaos no inicio e fim de cada texto.
1043 if (empty($contentTrim)) { 1019 if (empty($contentTrim)) {
1044 - unset($dataTarjas[$key]);  
1045 - } else { 1020 + unset($dataTarjas[$key]);
  1021 + } else {
1046 $dataTarjas[$key] = html_entity_decode($contentTrim); //Decodifica por causa do strip_tags 1022 $dataTarjas[$key] = html_entity_decode($contentTrim); //Decodifica por causa do strip_tags
1047 } 1023 }
1048 } 1024 }
@@ -1089,118 +1065,122 @@ class ExpedirProcedimentoRN extends InfraRN { @@ -1089,118 +1065,122 @@ class ExpedirProcedimentoRN extends InfraRN {
1089 } 1065 }
1090 1066
1091 1067
1092 - private function consultarComponenteDigital($parDblIdDocumento) 1068 + private function consultarComponenteDigital($parDblIdDocumento, $parNumIdTramite=null)
1093 { 1069 {
1094 $objComponenteDigitalDTO = new ComponenteDigitalDTO(); 1070 $objComponenteDigitalDTO = new ComponenteDigitalDTO();
1095 $objComponenteDigitalDTO->setDblIdDocumento($parDblIdDocumento); 1071 $objComponenteDigitalDTO->setDblIdDocumento($parDblIdDocumento);
  1072 + //$objComponenteDigitalDTO->setNumIdTramite($parNumIdTramite, InfraDTO::$OPER_DIFERENTE);
1096 $objComponenteDigitalDTO->setNumMaxRegistrosRetorno(1); 1073 $objComponenteDigitalDTO->setNumMaxRegistrosRetorno(1);
1097 $objComponenteDigitalDTO->setOrd('IdTramite', InfraDTO::$TIPO_ORDENACAO_DESC); 1074 $objComponenteDigitalDTO->setOrd('IdTramite', InfraDTO::$TIPO_ORDENACAO_DESC);
1098 $objComponenteDigitalDTO->retTodos(); 1075 $objComponenteDigitalDTO->retTodos();
1099 1076
1100 $objComponenteDigitalBD = new ComponenteDigitalBD($this->getObjInfraIBanco()); 1077 $objComponenteDigitalBD = new ComponenteDigitalBD($this->getObjInfraIBanco());
1101 - return $objComponenteDigitalBD->consultar($objComponenteDigitalDTO); 1078 + $arrObjComponenteDigitalDTO = $objComponenteDigitalBD->listar($objComponenteDigitalDTO);
  1079 + return (count($arrObjComponenteDigitalDTO) > 0) ? $arrObjComponenteDigitalDTO[0] : null;
1102 } 1080 }
1103 1081
1104 - private function obterDadosArquivo(DocumentoDTO $objDocumentoDTO)  
1105 - {  
1106 -  
1107 - if(!isset($objDocumentoDTO)){  
1108 - throw new InfraException('Parâmetro $objDocumentoDTO não informado.');  
1109 - } 1082 + private function obterDadosArquivo(DocumentoDTO $objDocumentoDTO)
  1083 + {
  1084 + if(!isset($objDocumentoDTO)){
  1085 + throw new InfraException('Parâmetro $objDocumentoDTO não informado.');
  1086 + }
1110 1087
1111 - $arrInformacaoArquivo = array();  
1112 - $strProtocoloDocumentoFormatado = $objDocumentoDTO->getStrProtocoloDocumentoFormatado(); 1088 + $arrInformacaoArquivo = array();
  1089 + $strProtocoloDocumentoFormatado = $objDocumentoDTO->getStrProtocoloDocumentoFormatado();
1113 1090
1114 - $objInfraParametro = new InfraParametro($this->getObjInfraIBanco());  
1115 - $idSerieEmail = $objInfraParametro->getValor('ID_SERIE_EMAIL');  
1116 - $docEmailEnviado = $objDocumentoDTO->getNumIdSerie() == $idSerieEmail && $objDocumentoDTO->getStrStaDocumento() == DocumentoRN::$TD_FORMULARIO_AUTOMATICO ? true : false; 1091 + $objInfraParametro = new InfraParametro($this->getObjInfraIBanco());
  1092 + $idSerieEmail = $objInfraParametro->getValor('ID_SERIE_EMAIL');
  1093 + $docEmailEnviado = $objDocumentoDTO->getNumIdSerie() == $idSerieEmail && $objDocumentoDTO->getStrStaDocumento() == DocumentoRN::$TD_FORMULARIO_AUTOMATICO ? true : false;
1117 1094
1118 - if($objDocumentoDTO->getStrStaDocumento() == DocumentoRN::$TD_EDITOR_INTERNO) {  
1119 - $strConteudoAssinatura = $this->obterConteudoInternoAssinatura($objDocumentoDTO->getDblIdDocumento());  
1120 - $strConteudoAssinaturaLegado = $this->obterConteudoInternoAssinatura($objDocumentoDTO->getDblIdDocumento(), true); 1095 + if($objDocumentoDTO->getStrStaDocumento() == DocumentoRN::$TD_EDITOR_INTERNO) {
  1096 + $strConteudoAssinatura = $this->obterConteudoInternoAssinatura($objDocumentoDTO->getDblIdDocumento());
  1097 + $hashDoComponenteDigital = base64_encode(hash(self::ALGORITMO_HASH_DOCUMENTO, $strConteudoAssinatura, true));
1121 1098
1122 - $arrInformacaoArquivo['NOME'] = $strProtocoloDocumentoFormatado . ".html";  
1123 - $arrInformacaoArquivo['CONTEUDO'] = $strConteudoAssinatura;  
1124 - $arrInformacaoArquivo['CONTEUDO_LEGADO'] = $strConteudoAssinaturaLegado;  
1125 - $arrInformacaoArquivo['TAMANHO'] = strlen($strConteudoAssinatura);  
1126 - $arrInformacaoArquivo['MIME_TYPE'] = 'text/html';  
1127 - $arrInformacaoArquivo['ID_ANEXO'] = null; 1099 + //Busca registro de tramitações anteriores para este componente digital para identificar se o Barramento do PEN já havia registrado o hash do documento gerado da
  1100 + //forma antiga, ou seja, considerando o link do Número SEI. Este link foi removido para manter o padrão de conteúdo de documentos utilizado pelo SEI para assinatura
  1101 + //Para não bloquear os documentos gerados anteriormente, aqueles já registrados pelo Barramento com o hash antigo deverão manter a geração de conteúdo anteriormente utilizada.
  1102 + $objComponenteDigital = $this->consultarComponenteDigital($objDocumentoDTO->getDblIdDocumento());
  1103 + $hashDoComponenteDigitalAnterior = (isset($objComponenteDigital)) ? $objComponenteDigital->getStrHashConteudo() : null;
  1104 + if(isset($hashDoComponenteDigitalAnterior) && ($hashDoComponenteDigitalAnterior <> $hashDoComponenteDigital)){
  1105 + $strConteudoAssinatura = $this->obterConteudoInternoAssinatura($objDocumentoDTO->getDblIdDocumento(), true);
  1106 + }
1128 1107
1129 - } else if($objDocumentoDTO->getStrStaProtocoloProtocolo() == ProtocoloRN::$TP_DOCUMENTO_RECEBIDO) { 1108 + $arrInformacaoArquivo['NOME'] = $strProtocoloDocumentoFormatado . ".html";
  1109 + $arrInformacaoArquivo['CONTEUDO'] = $strConteudoAssinatura;
  1110 + $arrInformacaoArquivo['TAMANHO'] = strlen($strConteudoAssinatura);
  1111 + $arrInformacaoArquivo['MIME_TYPE'] = 'text/html';
  1112 + $arrInformacaoArquivo['ID_ANEXO'] = null;
  1113 + } else if($objDocumentoDTO->getStrStaProtocoloProtocolo() == ProtocoloRN::$TP_DOCUMENTO_RECEBIDO) {
1130 1114
1131 - $objAnexoDTO = $this->consultarAnexo($objDocumentoDTO->getDblIdDocumento()); 1115 + $objAnexoDTO = $this->consultarAnexo($objDocumentoDTO->getDblIdDocumento());
1132 1116
1133 - if(!isset($objAnexoDTO)){  
1134 - throw new InfraException("Componente digital do documento {$strProtocoloDocumentoFormatado} não pode ser localizado.");  
1135 - } 1117 + if(!isset($objAnexoDTO)){
  1118 + throw new InfraException("Componente digital do documento {$strProtocoloDocumentoFormatado} não pode ser localizado.");
  1119 + }
1136 1120
1137 - //VALIDAO DE TAMANHO DE DOCUMENTOS EXTERNOS PARA A EXPEDIO  
1138 - $objPenParametroRN = new PenParametroRN();  
1139 - if($objAnexoDTO->getNumTamanho() > ($objPenParametroRN->getParametro('PEN_TAMANHO_MAXIMO_DOCUMENTO_EXPEDIDO') * 1024 * 1024) && $objDocumentoDTO->getStrStaEstadoProtocolo() != ProtocoloRN::$TE_DOCUMENTO_CANCELADO){  
1140 - $strTamanhoFormatado = round(($objAnexoDTO->getNumTamanho() / 1024) / 1024,2);  
1141 - throw new InfraException("O tamanho do documento {$strTamanhoFormatado} MB é maior que os {$objPenParametroRN->getParametro('PEN_TAMANHO_MAXIMO_DOCUMENTO_EXPEDIDO')} MB permitidos para trâmite externo de documentos.");  
1142 - } 1121 + //VALIDAO DE TAMANHO DE DOCUMENTOS EXTERNOS PARA A EXPEDIO
  1122 + $objPenParametroRN = new PenParametroRN();
  1123 + if($objAnexoDTO->getNumTamanho() > ($objPenParametroRN->getParametro('PEN_TAMANHO_MAXIMO_DOCUMENTO_EXPEDIDO') * 1024 * 1024) && $objDocumentoDTO->getStrStaEstadoProtocolo() != ProtocoloRN::$TE_DOCUMENTO_CANCELADO){
  1124 + $strTamanhoFormatado = round(($objAnexoDTO->getNumTamanho() / 1024) / 1024,2);
  1125 + throw new InfraException("O tamanho do documento {$strTamanhoFormatado} MB é maior que os {$objPenParametroRN->getParametro('PEN_TAMANHO_MAXIMO_DOCUMENTO_EXPEDIDO')} MB permitidos para trâmite externo de documentos.");
  1126 + }
1143 1127
1144 //Obtenção do conteúdo do documento externo 1128 //Obtenção do conteúdo do documento externo
1145 //TODO: Particionar o documento em tamanho menor caso ultrapasse XX megabytes 1129 //TODO: Particionar o documento em tamanho menor caso ultrapasse XX megabytes
1146 - $strCaminhoAnexo = $this->objAnexoRN->obterLocalizacao($objAnexoDTO);  
1147 -  
1148 - $fp = fopen($strCaminhoAnexo, "rb");  
1149 - try {  
1150 - $strConteudoAssinatura = fread($fp, filesize($strCaminhoAnexo));  
1151 - fclose($fp);  
1152 - } catch(Exception $e) {  
1153 - fclose($fp);  
1154 - throw new InfraException("Erro obtendo conteúdo do anexo do documento {$strProtocoloDocumentoFormatado}", $e);  
1155 - }  
1156 -  
1157 - $finfo = finfo_open(FILEINFO_MIME_TYPE);  
1158 - try {  
1159 - $strMimeType = finfo_file($finfo, $strCaminhoAnexo);  
1160 -  
1161 - $strDadosComplementaresDoTipoDeArquivo = ""; 1130 + $strCaminhoAnexo = $this->objAnexoRN->obterLocalizacao($objAnexoDTO);
1162 1131
1163 - if(!array_search($strMimeType, $this->arrPenMimeTypes)){  
1164 - $strDadosComplementaresDoTipoDeArquivo = $strMimeType;  
1165 - $strMimeType = 'outro';  
1166 - }  
1167 -  
1168 - finfo_close($finfo);  
1169 - } catch(Exception $e) {  
1170 - finfo_close($finfo);  
1171 - throw new InfraException("Erro obtendo informações do anexo do documento {$strProtocoloDocumentoFormatado}", $e);  
1172 - }  
1173 -  
1174 - $arrInformacaoArquivo['NOME'] = $objAnexoDTO->getStrNome();  
1175 - $arrInformacaoArquivo['CONTEUDO'] = $strConteudoAssinatura;  
1176 - $arrInformacaoArquivo['TAMANHO'] = $objAnexoDTO->getNumTamanho();  
1177 - $arrInformacaoArquivo['MIME_TYPE'] = $strMimeType;  
1178 - $arrInformacaoArquivo['ID_ANEXO'] = $objAnexoDTO->getNumIdAnexo();  
1179 - $arrInformacaoArquivo['dadosComplementaresDoTipoDeArquivo'] = $strDadosComplementaresDoTipoDeArquivo; 1132 + $fp = fopen($strCaminhoAnexo, "rb");
  1133 + try {
  1134 + $strConteudoAssinatura = fread($fp, filesize($strCaminhoAnexo));
  1135 + fclose($fp);
  1136 + } catch(Exception $e) {
  1137 + fclose($fp);
  1138 + throw new InfraException("Erro obtendo conteúdo do anexo do documento {$strProtocoloDocumentoFormatado}", $e);
  1139 + }
1180 1140
1181 - }  
1182 - else { 1141 + $finfo = finfo_open(FILEINFO_MIME_TYPE);
  1142 + try {
  1143 + $strMimeType = finfo_file($finfo, $strCaminhoAnexo);
  1144 + $strDadosComplementaresDoTipoDeArquivo = "";
  1145 + if(!array_search($strMimeType, $this->arrPenMimeTypes)){
  1146 + $strDadosComplementaresDoTipoDeArquivo = $strMimeType;
  1147 + $strMimeType = 'outro';
  1148 + }
1183 1149
1184 - $objDocumentoDTO2 = new DocumentoDTO();  
1185 - $objDocumentoDTO2->setDblIdDocumento($objDocumentoDTO->getDblIdDocumento());  
1186 - $objDocumentoDTO2->setObjInfraSessao(SessaoSEI::getInstance());  
1187 - // $objDocumentoDTO2->setStrLinkDownload('controlador.php?acao=documento_download_anexo'); 1150 + finfo_close($finfo);
  1151 + } catch(Exception $e) {
  1152 + finfo_close($finfo);
  1153 + throw new InfraException("Erro obtendo informações do anexo do documento {$strProtocoloDocumentoFormatado}", $e);
  1154 + }
1188 1155
1189 - $objDocumentoRN = new DocumentoRN();  
1190 - $strResultado = $objDocumentoRN->consultarHtmlFormulario($objDocumentoDTO2); 1156 + $arrInformacaoArquivo['NOME'] = $objAnexoDTO->getStrNome();
  1157 + $arrInformacaoArquivo['CONTEUDO'] = $strConteudoAssinatura;
  1158 + $arrInformacaoArquivo['TAMANHO'] = $objAnexoDTO->getNumTamanho();
  1159 + $arrInformacaoArquivo['MIME_TYPE'] = $strMimeType;
  1160 + $arrInformacaoArquivo['ID_ANEXO'] = $objAnexoDTO->getNumIdAnexo();
  1161 + $arrInformacaoArquivo['dadosComplementaresDoTipoDeArquivo'] = $strDadosComplementaresDoTipoDeArquivo;
1191 1162
1192 - $arrInformacaoArquivo['NOME'] = $strProtocoloDocumentoFormatado . ".html";  
1193 - $arrInformacaoArquivo['CONTEUDO'] = $strResultado;  
1194 - $arrInformacaoArquivo['TAMANHO'] = strlen($strResultado);  
1195 - $arrInformacaoArquivo['MIME_TYPE'] = 'text/html';  
1196 - $arrInformacaoArquivo['ID_ANEXO'] = null; 1163 + }
  1164 + else {
  1165 + $objDocumentoDTO2 = new DocumentoDTO();
  1166 + $objDocumentoDTO2->setDblIdDocumento($objDocumentoDTO->getDblIdDocumento());
  1167 + $objDocumentoDTO2->setObjInfraSessao(SessaoSEI::getInstance());
  1168 + $objDocumentoRN = new DocumentoRN();
  1169 + $strResultado = $objDocumentoRN->consultarHtmlFormulario($objDocumentoDTO2);
  1170 +
  1171 + $arrInformacaoArquivo['NOME'] = $strProtocoloDocumentoFormatado . ".html";
  1172 + $arrInformacaoArquivo['CONTEUDO'] = $strResultado;
  1173 + $arrInformacaoArquivo['TAMANHO'] = strlen($strResultado);
  1174 + $arrInformacaoArquivo['MIME_TYPE'] = 'text/html';
  1175 + $arrInformacaoArquivo['ID_ANEXO'] = null;
  1176 + }
1197 1177
  1178 + $arrInformacaoArquivo['ALGORITMO_HASH_CONTEUDO'] = self::ALGORITMO_HASH_DOCUMENTO;
  1179 + $hashDoComponenteDigital = hash(self::ALGORITMO_HASH_DOCUMENTO, $arrInformacaoArquivo['CONTEUDO'], true);
  1180 + $arrInformacaoArquivo['HASH_CONTEUDO'] = base64_encode($hashDoComponenteDigital);
  1181 + return $arrInformacaoArquivo;
1198 } 1182 }
1199 1183
1200 - return $arrInformacaoArquivo;  
1201 - }  
1202 -  
1203 -  
1204 /** 1184 /**
1205 * Método de obtenção do conteúdo do documento interno para envio e cálculo de hash 1185 * Método de obtenção do conteúdo do documento interno para envio e cálculo de hash
1206 * 1186 *
@@ -1237,163 +1217,163 @@ class ExpedirProcedimentoRN extends InfraRN { @@ -1237,163 +1217,163 @@ class ExpedirProcedimentoRN extends InfraRN {
1237 1217
1238 $objEditorRN = new EditorRN(); 1218 $objEditorRN = new EditorRN();
1239 return $objEditorRN->consultarHtmlVersao($objEditorDTO); 1219 return $objEditorRN->consultarHtmlVersao($objEditorDTO);
1240 - }  
1241 -  
1242 -  
1243 - private function obterTipoDeConteudo($strMimeType)  
1244 - {  
1245 - if(!isset($strMimeType)){  
1246 - throw new InfraException('Parâmetro $strMimeType não informado.');  
1247 - }  
1248 -  
1249 - $resultado = self::TC_TIPO_CONTEUDO_OUTROS;  
1250 -  
1251 - if(preg_match(self::REGEX_ARQUIVO_TEXTO, $strMimeType)){  
1252 - $resultado = self::TC_TIPO_CONTEUDO_TEXTO;  
1253 - } else if(preg_match(self::REGEX_ARQUIVO_IMAGEM, $strMimeType)){  
1254 - $resultado = self::TC_TIPO_CONTEUDO_IMAGEM;  
1255 - } else if(preg_match(self::REGEX_ARQUIVO_AUDIO, $strMimeType)){  
1256 - $resultado = self::TC_TIPO_CONTEUDO_AUDIO;  
1257 - } else if(preg_match(self::REGEX_ARQUIVO_VIDEO, $strMimeType)){  
1258 - $resultado = self::TC_TIPO_CONTEUDO_VIDEO;  
1259 - }  
1260 -  
1261 - return $resultado;  
1262 - }  
1263 -  
1264 - private function atribuirNumeracaoDocumento($objDocumento, DocumentoDTO $parObjDocumentoDTO)  
1265 - {  
1266 - $objSerieDTO = $this->consultarSerie($parObjDocumentoDTO->getNumIdSerie());  
1267 - $strStaNumeracao = $objSerieDTO->getStrStaNumeracao();  
1268 -  
1269 - if($strStaNumeracao == SerieRN::$TN_SEQUENCIAL_UNIDADE) {  
1270 - $objDocumento->identificacao = new stdClass();  
1271 - $objDocumento->identificacao->numero = $parObjDocumentoDTO->getStrNumero();  
1272 - $objDocumento->identificacao->siglaDaUnidadeProdutora = $parObjDocumentoDTO->getStrSiglaUnidadeGeradoraProtocolo();  
1273 - $objDocumento->identificacao->complemento = utf8_encode($parObjDocumentoDTO->getStrDescricaoUnidadeGeradoraProtocolo());  
1274 - }else if($strStaNumeracao == SerieRN::$TN_SEQUENCIAL_ORGAO){  
1275 - $objOrgaoDTO = $this->consultarOrgao($parObjDocumentoDTO->getNumIdOrgaoUnidadeGeradoraProtocolo());  
1276 - $objDocumento->identificacao = new stdClass();  
1277 - $objDocumento->identificacao->numero = $parObjDocumentoDTO->getStrNumero();  
1278 - $objDocumento->identificacao->siglaDaUnidadeProdutora = $objOrgaoDTO->getStrSigla();  
1279 - $objDocumento->identificacao->complemento = utf8_encode($objOrgaoDTO->getStrDescricao());  
1280 - }else if($strStaNumeracao == SerieRN::$TN_SEQUENCIAL_ANUAL_UNIDADE){  
1281 - $objDocumento->identificacao = new stdClass();  
1282 - $objDocumento->identificacao->siglaDaUnidadeProdutora = $parObjDocumentoDTO->getStrSiglaUnidadeGeradoraProtocolo();  
1283 - $objDocumento->identificacao->complemento = utf8_encode($parObjDocumentoDTO->getStrDescricaoUnidadeGeradoraProtocolo());  
1284 - $objDocumento->identificacao->numero = $parObjDocumentoDTO->getStrNumero();  
1285 - $objDocumento->identificacao->ano = substr($parObjDocumentoDTO->getDtaGeracaoProtocolo(),6,4);  
1286 - }else if($strStaNumeracao == SerieRN::$TN_SEQUENCIAL_ANUAL_ORGAO){  
1287 - $objOrgaoDTO = $this->consultarOrgao($parObjDocumentoDTO->getNumIdOrgaoUnidadeGeradoraProtocolo());  
1288 - $objDocumento->identificacao = new stdClass();  
1289 - $objDocumento->identificacao->numero = $parObjDocumentoDTO->getStrNumero();  
1290 - $objDocumento->identificacao->siglaDaUnidadeProdutora = $objOrgaoDTO->getStrSigla();  
1291 - $objDocumento->identificacao->complemento = utf8_encode($objOrgaoDTO->getStrDescricao());  
1292 - $objDocumento->identificacao->ano = substr($parObjDocumentoDTO->getDtaGeracaoProtocolo(),6,4);  
1293 - }  
1294 - }  
1295 -  
1296 - private function adicionarProcessosApensados($objProcesso, $arrIdProcessoApensado)  
1297 - {  
1298 - if(isset($arrIdProcessoApensado) && is_array($arrIdProcessoApensado) && count($arrIdProcessoApensado) > 0) {  
1299 - $objProcesso->processoApensado = array();  
1300 - foreach($arrIdProcessoApensado as $idProcedimentoApensado) {  
1301 - $objProcesso->processoApensado[] = $this->construirProcesso($idProcedimentoApensado);  
1302 - }  
1303 - }  
1304 - }  
1305 -  
1306 - private function consultarUnidade($numIdUnidade)  
1307 - {  
1308 - if(!isset($numIdUnidade)){  
1309 - throw new InfraException('Parâmetro $numIdUnidade não informado.');  
1310 - }  
1311 -  
1312 - $objUnidadeDTO = new UnidadeDTO();  
1313 - $objUnidadeDTO->setNumIdUnidade($numIdUnidade);  
1314 - $objUnidadeDTO->retStrDescricao();  
1315 -  
1316 - return $this->objUnidadeRN->consultarRN0125($objUnidadeDTO);  
1317 - }  
1318 -  
1319 - private function consultarSerie($numIdSerie)  
1320 - {  
1321 - if(!isset($numIdSerie)){  
1322 - throw new InfraException('Parâmetro $numIdSerie não informado.');  
1323 - }  
1324 -  
1325 - $objSerieDTO = new SerieDTO();  
1326 - $objSerieDTO->setNumIdSerie($numIdSerie);  
1327 - $objSerieDTO->retStrStaNumeracao();  
1328 -  
1329 - return $this->objSerieRN->consultarRN0644($objSerieDTO);  
1330 - }  
1331 -  
1332 - private function consultarOrgao($numIdOrgao)  
1333 - {  
1334 - $objOrgaoDTO = new OrgaoDTO();  
1335 - $objOrgaoDTO->setNumIdOrgao($numIdOrgao);  
1336 - $objOrgaoDTO->retStrSigla();  
1337 - $objOrgaoDTO->retStrDescricao();  
1338 -  
1339 - return $this->objOrgaoRN->consultarRN1352($objOrgaoDTO);  
1340 - }  
1341 -  
1342 - public function consultarProcedimento($numIdProcedimento)  
1343 - {  
1344 - if(!isset($numIdProcedimento)){  
1345 - throw new InfraException('Parâmetro $numIdProcedimento não informado.');  
1346 - }  
1347 -  
1348 - $objProcedimentoDTO = new ProcedimentoDTO();  
1349 - $objProcedimentoDTO->setDblIdProcedimento($numIdProcedimento);  
1350 - $objProcedimentoDTO->retStrProtocoloProcedimentoFormatado();  
1351 - $objProcedimentoDTO->retStrStaNivelAcessoGlobalProtocolo();  
1352 - $objProcedimentoDTO->retStrStaNivelAcessoLocalProtocolo();  
1353 - $objProcedimentoDTO->retNumIdUnidadeGeradoraProtocolo();  
1354 - $objProcedimentoDTO->retNumIdUsuarioGeradorProtocolo();  
1355 - $objProcedimentoDTO->retStrNomeTipoProcedimento();  
1356 - $objProcedimentoDTO->retStrDescricaoProtocolo();  
1357 - $objProcedimentoDTO->retDtaGeracaoProtocolo();  
1358 - $objProcedimentoDTO->retStrStaEstadoProtocolo();  
1359 - $objProcedimentoDTO->retDblIdProcedimento();  
1360 - $objProcedimentoDTO->retNumIdHipoteseLegalProtocolo();  
1361 -  
1362 - return $this->objProcedimentoRN->consultarRN0201($objProcedimentoDTO);  
1363 - }  
1364 -  
1365 - public function listarInteressados($numIdProtocolo)  
1366 - {  
1367 - if(!isset($numIdProtocolo)){  
1368 - throw new InfraException('Parâmetro $numIdProtocolo não informado.');  
1369 - }  
1370 -  
1371 - $objParticipanteDTO = new ParticipanteDTO();  
1372 - $objParticipanteDTO->retNumIdContato();  
1373 - $objParticipanteDTO->retStrNomeContato();  
1374 - $objParticipanteDTO->setDblIdProtocolo($numIdProtocolo);  
1375 - $objParticipanteDTO->setStrStaParticipacao(ParticipanteRN::$TP_INTERESSADO);  
1376 -  
1377 - return $this->objParticipanteRN->listarRN0189($objParticipanteDTO);  
1378 - }  
1379 -  
1380 - private function consultarProtocoloDocumento($numIdProcedimento)  
1381 - {  
1382 - $objProtocoloDTO = new ProtocoloDTO();  
1383 -  
1384 - $objProtocoloDTO->setStrStaProtocolo(array(ProtocoloRN::$TP_DOCUMENTO_GERADO,ProtocoloRN::$TP_DOCUMENTO_RECEBIDO),InfraDTO::$OPER_IN);  
1385 - $objProtocoloDTO->setStrStaProtocolo($staProtocolo);  
1386 - $objProtocoloDTO->setDblIdProtocolo($numIdProcedimento);  
1387 - $objProtocoloDTO->retTodos();  
1388 - $objProtocoloDTO->retNumIdSerie(); 1220 + }
  1221 +
  1222 +
  1223 + private function obterTipoDeConteudo($strMimeType)
  1224 + {
  1225 + if(!isset($strMimeType)){
  1226 + throw new InfraException('Parâmetro $strMimeType não informado.');
  1227 + }
  1228 +
  1229 + $resultado = self::TC_TIPO_CONTEUDO_OUTROS;
  1230 +
  1231 + if(preg_match(self::REGEX_ARQUIVO_TEXTO, $strMimeType)){
  1232 + $resultado = self::TC_TIPO_CONTEUDO_TEXTO;
  1233 + } else if(preg_match(self::REGEX_ARQUIVO_IMAGEM, $strMimeType)){
  1234 + $resultado = self::TC_TIPO_CONTEUDO_IMAGEM;
  1235 + } else if(preg_match(self::REGEX_ARQUIVO_AUDIO, $strMimeType)){
  1236 + $resultado = self::TC_TIPO_CONTEUDO_AUDIO;
  1237 + } else if(preg_match(self::REGEX_ARQUIVO_VIDEO, $strMimeType)){
  1238 + $resultado = self::TC_TIPO_CONTEUDO_VIDEO;
  1239 + }
  1240 +
  1241 + return $resultado;
  1242 + }
  1243 +
  1244 + private function atribuirNumeracaoDocumento($objDocumento, DocumentoDTO $parObjDocumentoDTO)
  1245 + {
  1246 + $objSerieDTO = $this->consultarSerie($parObjDocumentoDTO->getNumIdSerie());
  1247 + $strStaNumeracao = $objSerieDTO->getStrStaNumeracao();
  1248 +
  1249 + if($strStaNumeracao == SerieRN::$TN_SEQUENCIAL_UNIDADE) {
  1250 + $objDocumento->identificacao = new stdClass();
  1251 + $objDocumento->identificacao->numero = $parObjDocumentoDTO->getStrNumero();
  1252 + $objDocumento->identificacao->siglaDaUnidadeProdutora = $parObjDocumentoDTO->getStrSiglaUnidadeGeradoraProtocolo();
  1253 + $objDocumento->identificacao->complemento = utf8_encode($parObjDocumentoDTO->getStrDescricaoUnidadeGeradoraProtocolo());
  1254 + }else if($strStaNumeracao == SerieRN::$TN_SEQUENCIAL_ORGAO){
  1255 + $objOrgaoDTO = $this->consultarOrgao($parObjDocumentoDTO->getNumIdOrgaoUnidadeGeradoraProtocolo());
  1256 + $objDocumento->identificacao = new stdClass();
  1257 + $objDocumento->identificacao->numero = $parObjDocumentoDTO->getStrNumero();
  1258 + $objDocumento->identificacao->siglaDaUnidadeProdutora = $objOrgaoDTO->getStrSigla();
  1259 + $objDocumento->identificacao->complemento = utf8_encode($objOrgaoDTO->getStrDescricao());
  1260 + }else if($strStaNumeracao == SerieRN::$TN_SEQUENCIAL_ANUAL_UNIDADE){
  1261 + $objDocumento->identificacao = new stdClass();
  1262 + $objDocumento->identificacao->siglaDaUnidadeProdutora = $parObjDocumentoDTO->getStrSiglaUnidadeGeradoraProtocolo();
  1263 + $objDocumento->identificacao->complemento = utf8_encode($parObjDocumentoDTO->getStrDescricaoUnidadeGeradoraProtocolo());
  1264 + $objDocumento->identificacao->numero = $parObjDocumentoDTO->getStrNumero();
  1265 + $objDocumento->identificacao->ano = substr($parObjDocumentoDTO->getDtaGeracaoProtocolo(),6,4);
  1266 + }else if($strStaNumeracao == SerieRN::$TN_SEQUENCIAL_ANUAL_ORGAO){
  1267 + $objOrgaoDTO = $this->consultarOrgao($parObjDocumentoDTO->getNumIdOrgaoUnidadeGeradoraProtocolo());
  1268 + $objDocumento->identificacao = new stdClass();
  1269 + $objDocumento->identificacao->numero = $parObjDocumentoDTO->getStrNumero();
  1270 + $objDocumento->identificacao->siglaDaUnidadeProdutora = $objOrgaoDTO->getStrSigla();
  1271 + $objDocumento->identificacao->complemento = utf8_encode($objOrgaoDTO->getStrDescricao());
  1272 + $objDocumento->identificacao->ano = substr($parObjDocumentoDTO->getDtaGeracaoProtocolo(),6,4);
  1273 + }
  1274 + }
  1275 +
  1276 + private function adicionarProcessosApensados($objProcesso, $arrIdProcessoApensado)
  1277 + {
  1278 + if(isset($arrIdProcessoApensado) && is_array($arrIdProcessoApensado) && count($arrIdProcessoApensado) > 0) {
  1279 + $objProcesso->processoApensado = array();
  1280 + foreach($arrIdProcessoApensado as $idProcedimentoApensado) {
  1281 + $objProcesso->processoApensado[] = $this->construirProcesso($idProcedimentoApensado);
  1282 + }
  1283 + }
  1284 + }
  1285 +
  1286 + private function consultarUnidade($numIdUnidade)
  1287 + {
  1288 + if(!isset($numIdUnidade)){
  1289 + throw new InfraException('Parâmetro $numIdUnidade não informado.');
  1290 + }
  1291 +
  1292 + $objUnidadeDTO = new UnidadeDTO();
  1293 + $objUnidadeDTO->setNumIdUnidade($numIdUnidade);
  1294 + $objUnidadeDTO->retStrDescricao();
  1295 +
  1296 + return $this->objUnidadeRN->consultarRN0125($objUnidadeDTO);
  1297 + }
  1298 +
  1299 + private function consultarSerie($numIdSerie)
  1300 + {
  1301 + if(!isset($numIdSerie)){
  1302 + throw new InfraException('Parâmetro $numIdSerie não informado.');
  1303 + }
  1304 +
  1305 + $objSerieDTO = new SerieDTO();
  1306 + $objSerieDTO->setNumIdSerie($numIdSerie);
  1307 + $objSerieDTO->retStrStaNumeracao();
  1308 +
  1309 + return $this->objSerieRN->consultarRN0644($objSerieDTO);
  1310 + }
  1311 +
  1312 + private function consultarOrgao($numIdOrgao)
  1313 + {
  1314 + $objOrgaoDTO = new OrgaoDTO();
  1315 + $objOrgaoDTO->setNumIdOrgao($numIdOrgao);
  1316 + $objOrgaoDTO->retStrSigla();
  1317 + $objOrgaoDTO->retStrDescricao();
  1318 +
  1319 + return $this->objOrgaoRN->consultarRN1352($objOrgaoDTO);
  1320 + }
  1321 +
  1322 + public function consultarProcedimento($numIdProcedimento)
  1323 + {
  1324 + if(!isset($numIdProcedimento)){
  1325 + throw new InfraException('Parâmetro $numIdProcedimento não informado.');
  1326 + }
  1327 +
  1328 + $objProcedimentoDTO = new ProcedimentoDTO();
  1329 + $objProcedimentoDTO->setDblIdProcedimento($numIdProcedimento);
  1330 + $objProcedimentoDTO->retStrProtocoloProcedimentoFormatado();
  1331 + $objProcedimentoDTO->retStrStaNivelAcessoGlobalProtocolo();
  1332 + $objProcedimentoDTO->retStrStaNivelAcessoLocalProtocolo();
  1333 + $objProcedimentoDTO->retNumIdUnidadeGeradoraProtocolo();
  1334 + $objProcedimentoDTO->retNumIdUsuarioGeradorProtocolo();
  1335 + $objProcedimentoDTO->retStrNomeTipoProcedimento();
  1336 + $objProcedimentoDTO->retStrDescricaoProtocolo();
  1337 + $objProcedimentoDTO->retDtaGeracaoProtocolo();
  1338 + $objProcedimentoDTO->retStrStaEstadoProtocolo();
  1339 + $objProcedimentoDTO->retDblIdProcedimento();
  1340 + $objProcedimentoDTO->retNumIdHipoteseLegalProtocolo();
  1341 +
  1342 + return $this->objProcedimentoRN->consultarRN0201($objProcedimentoDTO);
  1343 + }
  1344 +
  1345 + public function listarInteressados($numIdProtocolo)
  1346 + {
  1347 + if(!isset($numIdProtocolo)){
  1348 + throw new InfraException('Parâmetro $numIdProtocolo não informado.');
  1349 + }
  1350 +
  1351 + $objParticipanteDTO = new ParticipanteDTO();
  1352 + $objParticipanteDTO->retNumIdContato();
  1353 + $objParticipanteDTO->retStrNomeContato();
  1354 + $objParticipanteDTO->setDblIdProtocolo($numIdProtocolo);
  1355 + $objParticipanteDTO->setStrStaParticipacao(ParticipanteRN::$TP_INTERESSADO);
  1356 +
  1357 + return $this->objParticipanteRN->listarRN0189($objParticipanteDTO);
  1358 + }
  1359 +
  1360 + private function consultarProtocoloDocumento($numIdProcedimento)
  1361 + {
  1362 + $objProtocoloDTO = new ProtocoloDTO();
  1363 +
  1364 + $objProtocoloDTO->setStrStaProtocolo(array(ProtocoloRN::$TP_DOCUMENTO_GERADO,ProtocoloRN::$TP_DOCUMENTO_RECEBIDO),InfraDTO::$OPER_IN);
  1365 + $objProtocoloDTO->setStrStaProtocolo($staProtocolo);
  1366 + $objProtocoloDTO->setDblIdProtocolo($numIdProcedimento);
  1367 + $objProtocoloDTO->retTodos();
  1368 + $objProtocoloDTO->retNumIdSerie();
1389 1369
1390 return $this->objProtocoloRN->consultarRN0186($objProtocoloDTO); //TODO: Verificar regra de busca 1370 return $this->objProtocoloRN->consultarRN0186($objProtocoloDTO); //TODO: Verificar regra de busca
1391 - } 1371 + }
1392 1372
1393 - private function consultarAnexo($dblIdDocumento)  
1394 - { 1373 + private function consultarAnexo($dblIdDocumento)
  1374 + {
1395 if(!isset($dblIdDocumento)){ 1375 if(!isset($dblIdDocumento)){
1396 - throw new InfraException('Parâmetro $dblIdDocumento não informado.'); 1376 + throw new InfraException('Parâmetro $dblIdDocumento não informado.');
1397 } 1377 }
1398 1378
1399 $objAnexoDTO = new AnexoDTO(); 1379 $objAnexoDTO = new AnexoDTO();
@@ -1406,12 +1386,12 @@ class ExpedirProcedimentoRN extends InfraRN { @@ -1406,12 +1386,12 @@ class ExpedirProcedimentoRN extends InfraRN {
1406 $objAnexoDTO->setDblIdProtocolo($dblIdDocumento); 1386 $objAnexoDTO->setDblIdProtocolo($dblIdDocumento);
1407 1387
1408 return $this->objAnexoRN->consultarRN0736($objAnexoDTO); 1388 return $this->objAnexoRN->consultarRN0736($objAnexoDTO);
1409 - } 1389 + }
1410 1390
1411 - private function consultarUsuario($numIdUsuario)  
1412 - { 1391 + private function consultarUsuario($numIdUsuario)
  1392 + {
1413 if(!isset($numIdUsuario)){ 1393 if(!isset($numIdUsuario)){
1414 - throw new InfraException('Parâmetro $numIdUsuario não informado.'); 1394 + throw new InfraException('Parâmetro $numIdUsuario não informado.');
1415 } 1395 }
1416 1396
1417 $objUsuarioDTO = new UsuarioDTO(); 1397 $objUsuarioDTO = new UsuarioDTO();
@@ -1421,12 +1401,12 @@ class ExpedirProcedimentoRN extends InfraRN { @@ -1421,12 +1401,12 @@ class ExpedirProcedimentoRN extends InfraRN {
1421 $objUsuarioDTO->retDblCpfContato(); 1401 $objUsuarioDTO->retDblCpfContato();
1422 1402
1423 return $this->objUsuarioRN->consultarRN0489($objUsuarioDTO); 1403 return $this->objUsuarioRN->consultarRN0489($objUsuarioDTO);
1424 - } 1404 + }
1425 1405
1426 - public function listarDocumentos($idProcedimento)  
1427 - { 1406 + public function listarDocumentos($idProcedimento)
  1407 + {
1428 if(!isset($idProcedimento)){ 1408 if(!isset($idProcedimento)){
1429 - throw new InfraException('Parâmetro $idProcedimento não informado.'); 1409 + throw new InfraException('Parâmetro $idProcedimento não informado.');
1430 } 1410 }
1431 1411
1432 $documentoDTO = new DocumentoDTO(); 1412 $documentoDTO = new DocumentoDTO();
@@ -1454,7 +1434,7 @@ class ExpedirProcedimentoRN extends InfraRN { @@ -1454,7 +1434,7 @@ class ExpedirProcedimentoRN extends InfraRN {
1454 $documentoDTO->setOrdStrProtocoloDocumentoFormatado(InfraDTO::$TIPO_ORDENACAO_ASC); 1434 $documentoDTO->setOrdStrProtocoloDocumentoFormatado(InfraDTO::$TIPO_ORDENACAO_ASC);
1455 1435
1456 return $this->objDocumentoRN->listarRN0008($documentoDTO); 1436 return $this->objDocumentoRN->listarRN0008($documentoDTO);
1457 - } 1437 + }
1458 1438
1459 /** 1439 /**
1460 * Retorna o nome do documento no PEN 1440 * Retorna o nome do documento no PEN
@@ -1483,10 +1463,10 @@ class ExpedirProcedimentoRN extends InfraRN { @@ -1483,10 +1463,10 @@ class ExpedirProcedimentoRN extends InfraRN {
1483 return $strNome; 1463 return $strNome;
1484 } 1464 }
1485 1465
1486 - private function consultarDocumento($dblIdDocumento)  
1487 - { 1466 + private function consultarDocumento($dblIdDocumento)
  1467 + {
1488 if(!isset($dblIdDocumento)){ 1468 if(!isset($dblIdDocumento)){
1489 - throw new InfraException('Parâmetro $dblIdDocumento não informado.'); 1469 + throw new InfraException('Parâmetro $dblIdDocumento não informado.');
1490 } 1470 }
1491 1471
1492 $documentoDTO = new DocumentoDTO(); 1472 $documentoDTO = new DocumentoDTO();
@@ -1512,9 +1492,9 @@ class ExpedirProcedimentoRN extends InfraRN { @@ -1512,9 +1492,9 @@ class ExpedirProcedimentoRN extends InfraRN {
1512 //$documentoDTO->retStrNumero(); 1492 //$documentoDTO->retStrNumero();
1513 1493
1514 return $this->objDocumentoRN->consultarRN0005($documentoDTO); 1494 return $this->objDocumentoRN->consultarRN0005($documentoDTO);
1515 - } 1495 + }
1516 1496
1517 - private function enviarComponentesDigitais($strNumeroRegistro, $numIdTramite, $strProtocolo) { 1497 + private function enviarComponentesDigitais($strNumeroRegistro, $numIdTramite, $strProtocolo) {
1518 if (!isset($strNumeroRegistro)) { 1498 if (!isset($strNumeroRegistro)) {
1519 throw new InfraException('Parâmetro $strNumeroRegistro não informado.'); 1499 throw new InfraException('Parâmetro $strNumeroRegistro não informado.');
1520 } 1500 }
@@ -1549,103 +1529,103 @@ class ExpedirProcedimentoRN extends InfraRN { @@ -1549,103 +1529,103 @@ class ExpedirProcedimentoRN extends InfraRN {
1549 1529
1550 //TODO: Valida inconsistncia da quantidade de documentos solicitados e aqueles cadastrados no SEI 1530 //TODO: Valida inconsistncia da quantidade de documentos solicitados e aqueles cadastrados no SEI
1551 1531
1552 -  
1553 //Construir objeto Componentes digitais 1532 //Construir objeto Componentes digitais
1554 foreach ($arrComponentesDigitaisDTO as $objComponenteDigitalDTO) { 1533 foreach ($arrComponentesDigitaisDTO as $objComponenteDigitalDTO) {
1555 1534
1556 - $this->barraProgresso->mover(ProcessoEletronicoINT::NEE_EXPEDICAO_ETAPA_DOCUMENTO);  
1557 - $this->barraProgresso->setStrRotulo(sprintf(ProcessoEletronicoINT::TEE_EXPEDICAO_ETAPA_DOCUMENTO, $objComponenteDigitalDTO->getStrProtocoloDocumentoFormatado())); 1535 + $this->barraProgresso->mover(ProcessoEletronicoINT::NEE_EXPEDICAO_ETAPA_DOCUMENTO);
  1536 + $this->barraProgresso->setStrRotulo(sprintf(ProcessoEletronicoINT::TEE_EXPEDICAO_ETAPA_DOCUMENTO, $objComponenteDigitalDTO->getStrProtocoloDocumentoFormatado()));
1558 1537
1559 - $dadosDoComponenteDigital = new stdClass();  
1560 - $dadosDoComponenteDigital->ticketParaEnvioDeComponentesDigitais = $objComponenteDigitalDTO->getNumTicketEnvioComponentes(); 1538 + $dadosDoComponenteDigital = new stdClass();
  1539 + $dadosDoComponenteDigital->ticketParaEnvioDeComponentesDigitais = $objComponenteDigitalDTO->getNumTicketEnvioComponentes();
1561 1540
1562 //TODO: Problema no barramento de servios quando um mesmo arquivo est contido em dois diferentes 1541 //TODO: Problema no barramento de servios quando um mesmo arquivo est contido em dois diferentes
1563 //processos apensados. Mesmo erro relatado com dois arquivos iguais em docs diferentes no mesmo processo 1542 //processos apensados. Mesmo erro relatado com dois arquivos iguais em docs diferentes no mesmo processo
1564 - $dadosDoComponenteDigital->protocolo = $objComponenteDigitalDTO->getStrProtocolo();  
1565 - $dadosDoComponenteDigital->hashDoComponenteDigital = $objComponenteDigitalDTO->getStrHashConteudo(); 1543 + $dadosDoComponenteDigital->protocolo = $objComponenteDigitalDTO->getStrProtocolo();
  1544 + $dadosDoComponenteDigital->hashDoComponenteDigital = $objComponenteDigitalDTO->getStrHashConteudo();
1566 1545
1567 //TODO: Particionar o arquivo em vrias partes caso for muito grande seu tamanho 1546 //TODO: Particionar o arquivo em vrias partes caso for muito grande seu tamanho
1568 //TODO: Obter dados do conteudo do documento, sendo Interno ou Externo 1547 //TODO: Obter dados do conteudo do documento, sendo Interno ou Externo
1569 //$strConteudoDocumento = $this->consultarConteudoDocumento($objComponenteDigitalDTO->getDblIdDocumento()); 1548 //$strConteudoDocumento = $this->consultarConteudoDocumento($objComponenteDigitalDTO->getDblIdDocumento());
1570 //$strConteudoAssinatura = $objComponenteDigitalDTO->getStrConteudoAssinaturaDocumento(); 1549 //$strConteudoAssinatura = $objComponenteDigitalDTO->getStrConteudoAssinaturaDocumento();
1571 - $objDocumentoDTO = $this->consultarDocumento($objComponenteDigitalDTO->getDblIdDocumento());  
1572 - $strNomeDocumento = $this->consultarNomeDocumentoPEN($objDocumentoDTO);  
1573 - $arrInformacaoArquivo = $this->obterDadosArquivo($objDocumentoDTO);  
1574 - $dadosDoComponenteDigital->conteudoDoComponenteDigital = new SoapVar($arrInformacaoArquivo['CONTEUDO'], XSD_BASE64BINARY); 1550 + $objDocumentoDTO = $this->consultarDocumento($objComponenteDigitalDTO->getDblIdDocumento());
  1551 + $strNomeDocumento = $this->consultarNomeDocumentoPEN($objDocumentoDTO);
  1552 + $arrInformacaoArquivo = $this->obterDadosArquivo($objDocumentoDTO);
  1553 +
  1554 + $dadosDoComponenteDigital->conteudoDoComponenteDigital = new SoapVar($arrInformacaoArquivo['CONTEUDO'], XSD_BASE64BINARY);
1575 1555
1576 - try { 1556 + try {
1577 //Enviar componentes digitais 1557 //Enviar componentes digitais
1578 - $parametros = new stdClass();  
1579 - $parametros->dadosDoComponenteDigital = $dadosDoComponenteDigital;  
1580 - $result = $this->objProcessoEletronicoRN->enviarComponenteDigital($parametros); 1558 + $parametros = new stdClass();
  1559 + $parametros->dadosDoComponenteDigital = $dadosDoComponenteDigital;
  1560 + $result = $this->objProcessoEletronicoRN->enviarComponenteDigital($parametros);
1581 1561
1582 //Bloquea documento para atualizao, j que ele foi visualizado 1562 //Bloquea documento para atualizao, j que ele foi visualizado
1583 - $this->objDocumentoRN->bloquearConteudo($objDocumentoDTO); 1563 + $this->objDocumentoRN->bloquearConteudo($objDocumentoDTO);
1584 // @join_tec US008.05 (#23092) 1564 // @join_tec US008.05 (#23092)
1585 - $this->objProcedimentoAndamentoRN->cadastrar(ProcedimentoAndamentoDTO::criarAndamento(sprintf('Enviando %s %s', $strNomeDocumento, $objComponenteDigitalDTO->getStrProtocoloDocumentoFormatado()), 'S'));  
1586 - } catch (Exception $e) { 1565 + $this->objProcedimentoAndamentoRN->cadastrar(ProcedimentoAndamentoDTO::criarAndamento(sprintf('Enviando %s %s', $strNomeDocumento, $objComponenteDigitalDTO->getStrProtocoloDocumentoFormatado()), 'S'));
  1566 + } catch (Exception $e) {
1587 // @join_tec US008.05 (#23092) 1567 // @join_tec US008.05 (#23092)
1588 - $this->objProcedimentoAndamentoRN->cadastrar(ProcedimentoAndamentoDTO::criarAndamento(sprintf('Enviando %s %s', $strNomeDocumento, $objComponenteDigitalDTO->getStrProtocoloDocumentoFormatado()), 'N'));  
1589 - throw new InfraException("Error Processing Request", $e);  
1590 - } 1568 + $this->objProcedimentoAndamentoRN->cadastrar(ProcedimentoAndamentoDTO::criarAndamento(sprintf('Enviando %s %s', $strNomeDocumento, $objComponenteDigitalDTO->getStrProtocoloDocumentoFormatado()), 'N'));
  1569 + throw new InfraException("Error Processing Request", $e);
  1570 + }
1591 } 1571 }
1592 1572
1593 } 1573 }
1594 } 1574 }
1595 1575
1596 private function validarParametrosExpedicao(InfraException $objInfraException, ExpedirProcedimentoDTO $objExpedirProcedimentoDTO) 1576 private function validarParametrosExpedicao(InfraException $objInfraException, ExpedirProcedimentoDTO $objExpedirProcedimentoDTO)
1597 - { 1577 + {
1598 if(!isset($objExpedirProcedimentoDTO)){ 1578 if(!isset($objExpedirProcedimentoDTO)){
1599 - $objInfraException->adicionarValidacao('Parâmetro $objExpedirProcedimentoDTO não informado.'); 1579 + $objInfraException->adicionarValidacao('Parâmetro $objExpedirProcedimentoDTO não informado.');
1600 } 1580 }
1601 1581
1602 //TODO: Validar se repositrio de origem foi informado 1582 //TODO: Validar se repositrio de origem foi informado
1603 if (InfraString::isBolVazia($objExpedirProcedimentoDTO->getNumIdRepositorioOrigem())){ 1583 if (InfraString::isBolVazia($objExpedirProcedimentoDTO->getNumIdRepositorioOrigem())){
1604 - $objInfraException->adicionarValidacao('Identificação do repositório de estruturas da unidade atual não informado.'); 1584 + $objInfraException->adicionarValidacao('Identificação do repositório de estruturas da unidade atual não informado.');
1605 } 1585 }
1606 1586
1607 //TODO: Validar se unidade de origem foi informado 1587 //TODO: Validar se unidade de origem foi informado
1608 if (InfraString::isBolVazia($objExpedirProcedimentoDTO->getNumIdUnidadeOrigem())){ 1588 if (InfraString::isBolVazia($objExpedirProcedimentoDTO->getNumIdUnidadeOrigem())){
1609 - $objInfraException->adicionarValidacao('Identificação da unidade atual no repositório de estruturas organizacionais não informado.'); 1589 + $objInfraException->adicionarValidacao('Identificação da unidade atual no repositório de estruturas organizacionais não informado.');
1610 } 1590 }
1611 1591
1612 //TODO: Validar se repositrio foi devidamente informado 1592 //TODO: Validar se repositrio foi devidamente informado
1613 if (InfraString::isBolVazia($objExpedirProcedimentoDTO->getNumIdRepositorioDestino())){ 1593 if (InfraString::isBolVazia($objExpedirProcedimentoDTO->getNumIdRepositorioDestino())){
1614 - $objInfraException->adicionarValidacao('Repositório de estruturas organizacionais não informado.'); 1594 + $objInfraException->adicionarValidacao('Repositório de estruturas organizacionais não informado.');
1615 } 1595 }
1616 1596
1617 //TODO: Validar se unidade foi devidamente informada 1597 //TODO: Validar se unidade foi devidamente informada
1618 if (InfraString::isBolVazia($objExpedirProcedimentoDTO->getNumIdUnidadeDestino())){ 1598 if (InfraString::isBolVazia($objExpedirProcedimentoDTO->getNumIdUnidadeDestino())){
1619 - $objInfraException->adicionarValidacao('Unidade de destino não informado.'); 1599 + $objInfraException->adicionarValidacao('Unidade de destino não informado.');
1620 } 1600 }
1621 1601
1622 //TODO: Validar se motivo de urgncia foi devidamente informado, caso expedio urgente 1602 //TODO: Validar se motivo de urgncia foi devidamente informado, caso expedio urgente
1623 if ($objExpedirProcedimentoDTO->getBolSinUrgente() && InfraString::isBolVazia($objExpedirProcedimentoDTO->getNumIdMotivoUrgencia())){ 1603 if ($objExpedirProcedimentoDTO->getBolSinUrgente() && InfraString::isBolVazia($objExpedirProcedimentoDTO->getNumIdMotivoUrgencia())){
1624 - $objInfraException->adicionarValidacao('Motivo de urgência não informado.'); 1604 + $objInfraException->adicionarValidacao('Motivo de urgência não informado.');
1625 } 1605 }
1626 - } 1606 + }
1627 1607
1628 - private function validarDocumentacaoExistende(InfraException $objInfraException, ProcedimentoDTO $objProcedimentoDTO, $strAtributoValidacao = null)  
1629 - { 1608 + private function validarDocumentacaoExistende(InfraException $objInfraException, ProcedimentoDTO $objProcedimentoDTO, $strAtributoValidacao = null)
  1609 + {
1630 $arrObjDocumentoDTO = $objProcedimentoDTO->getArrObjDocumentoDTO(); 1610 $arrObjDocumentoDTO = $objProcedimentoDTO->getArrObjDocumentoDTO();
1631 if(!isset($arrObjDocumentoDTO) || count($arrObjDocumentoDTO) == 0) { 1611 if(!isset($arrObjDocumentoDTO) || count($arrObjDocumentoDTO) == 0) {
1632 - $objInfraException->adicionarValidacao('Não é possível trâmitar um processo sem documentos', $strAtributoValidacao); 1612 + $objInfraException->adicionarValidacao('Não é possível trâmitar um processo sem documentos', $strAtributoValidacao);
1633 } 1613 }
1634 - } 1614 + }
1635 1615
1636 - private function validarDadosProcedimento(InfraException $objInfraException, ProcedimentoDTO $objProcedimentoDTO, $strAtributoValidacao = null)  
1637 - { 1616 + private function validarDadosProcedimento(InfraException $objInfraException, ProcedimentoDTO $objProcedimentoDTO, $strAtributoValidacao = null)
  1617 + {
1638 if($objProcedimentoDTO->isSetStrDescricaoProtocolo() && InfraString::isBolVazia($objProcedimentoDTO->getStrDescricaoProtocolo())) { 1618 if($objProcedimentoDTO->isSetStrDescricaoProtocolo() && InfraString::isBolVazia($objProcedimentoDTO->getStrDescricaoProtocolo())) {
1639 - $objInfraException->adicionarValidacao("Descrição do processo {$objProcedimentoDTO->getStrProtocoloProcedimentoFormatado()} não informado.", $strAtributoValidacao); 1619 + $objInfraException->adicionarValidacao("Descrição do processo {$objProcedimentoDTO->getStrProtocoloProcedimentoFormatado()} não informado.", $strAtributoValidacao);
1640 } 1620 }
1641 1621
1642 if(!$objProcedimentoDTO->isSetArrObjParticipanteDTO() || count($objProcedimentoDTO->getArrObjParticipanteDTO()) == 0) { 1622 if(!$objProcedimentoDTO->isSetArrObjParticipanteDTO() || count($objProcedimentoDTO->getArrObjParticipanteDTO()) == 0) {
1643 - $objInfraException->adicionarValidacao("Interessados do processo {$objProcedimentoDTO->getStrProtocoloProcedimentoFormatado()} não informados.", $strAtributoValidacao); 1623 + $objInfraException->adicionarValidacao("Interessados do processo {$objProcedimentoDTO->getStrProtocoloProcedimentoFormatado()} não informados.", $strAtributoValidacao);
1644 } 1624 }
1645 - }  
1646 -  
1647 - private function validarDadosDocumentos(InfraException $objInfraException, $arrDocumentoDTO, $strAtributoValidacao = null) { 1625 + }
1648 1626
  1627 + private function validarDadosDocumentos(InfraException $objInfraException, $arrDocumentoDTO, $strAtributoValidacao = null)
  1628 + {
1649 if(!empty($arrDocumentoDTO)) { 1629 if(!empty($arrDocumentoDTO)) {
1650 1630
1651 $objDocMapDTO = new PenRelTipoDocMapEnviadoDTO(); 1631 $objDocMapDTO = new PenRelTipoDocMapEnviadoDTO();
@@ -1667,8 +1647,7 @@ class ExpedirProcedimentoRN extends InfraRN { @@ -1667,8 +1647,7 @@ class ExpedirProcedimentoRN extends InfraRN {
1667 $objInfraException->adicionarValidacao($strDescricao, $strAtributoValidacao); 1647 $objInfraException->adicionarValidacao($strDescricao, $strAtributoValidacao);
1668 } 1648 }
1669 1649
1670 - if (!empty($objDocumentoDTO->getNumIdHipoteseLegalProtocolo())  
1671 - && empty($objPenRelHipoteseLegalEnvioRN->getIdHipoteseLegalPEN($objDocumentoDTO->getNumIdHipoteseLegalProtocolo()))) { 1650 + if (!empty($objDocumentoDTO->getNumIdHipoteseLegalProtocolo()) && empty($objPenRelHipoteseLegalEnvioRN->getIdHipoteseLegalPEN($objDocumentoDTO->getNumIdHipoteseLegalProtocolo()))) {
1672 1651
1673 $objHipoteseLegalDTO = new HipoteseLegalDTO(); 1652 $objHipoteseLegalDTO = new HipoteseLegalDTO();
1674 $objHipoteseLegalDTO->setNumIdHipoteseLegal($objDocumentoDTO->getNumIdHipoteseLegalProtocolo()); 1653 $objHipoteseLegalDTO->setNumIdHipoteseLegal($objDocumentoDTO->getNumIdHipoteseLegalProtocolo());
@@ -1684,19 +1663,19 @@ class ExpedirProcedimentoRN extends InfraRN { @@ -1684,19 +1663,19 @@ class ExpedirProcedimentoRN extends InfraRN {
1684 1663
1685 private function validarProcessoAbertoUnidade(InfraException $objInfraException, ProcedimentoDTO $objProcedimentoDTO, $strAtributoValidacao = null) 1664 private function validarProcessoAbertoUnidade(InfraException $objInfraException, ProcedimentoDTO $objProcedimentoDTO, $strAtributoValidacao = null)
1686 { 1665 {
1687 - $objAtividadeDTO = new AtividadeDTO();  
1688 - $objAtividadeDTO->setDistinct(true);  
1689 - $objAtividadeDTO->retStrSiglaUnidade();  
1690 - $objAtividadeDTO->setOrdStrSiglaUnidade(InfraDTO::$TIPO_ORDENACAO_ASC);  
1691 - $objAtividadeDTO->setDblIdProtocolo($objProcedimentoDTO->getDblIdProcedimento());  
1692 - $objAtividadeDTO->setDthConclusao(null); 1666 + $objAtividadeDTO = new AtividadeDTO();
  1667 + $objAtividadeDTO->setDistinct(true);
  1668 + $objAtividadeDTO->retStrSiglaUnidade();
  1669 + $objAtividadeDTO->setOrdStrSiglaUnidade(InfraDTO::$TIPO_ORDENACAO_ASC);
  1670 + $objAtividadeDTO->setDblIdProtocolo($objProcedimentoDTO->getDblIdProcedimento());
  1671 + $objAtividadeDTO->setDthConclusao(null);
1693 1672
1694 - $arrObjAtividadeDTO = $this->objAtividadeRN->listarRN0036($objAtividadeDTO); 1673 + $arrObjAtividadeDTO = $this->objAtividadeRN->listarRN0036($objAtividadeDTO);
1695 1674
1696 - if(isset($arrObjAtividadeDTO) && count($arrObjAtividadeDTO) > 1) {  
1697 - $strSiglaUnidade = implode(', ', InfraArray::converterArrInfraDTO($arrObjAtividadeDTO, 'SiglaUnidade'));  
1698 - $objInfraException->adicionarValidacao("Não é possível trâmitar um processo aberto em mais de uma unidade. ($strSiglaUnidade)", $strAtributoValidacao);  
1699 - } 1675 + if(isset($arrObjAtividadeDTO) && count($arrObjAtividadeDTO) > 1) {
  1676 + $strSiglaUnidade = implode(', ', InfraArray::converterArrInfraDTO($arrObjAtividadeDTO, 'SiglaUnidade'));
  1677 + $objInfraException->adicionarValidacao("Não é possível trâmitar um processo aberto em mais de uma unidade. ($strSiglaUnidade)", $strAtributoValidacao);
  1678 + }
1700 } 1679 }
1701 1680
1702 private function validarNivelAcessoProcesso(InfraException $objInfraException, ProcedimentoDTO $objProcedimentoDTO, $strAtributoValidacao = null) 1681 private function validarNivelAcessoProcesso(InfraException $objInfraException, ProcedimentoDTO $objProcedimentoDTO, $strAtributoValidacao = null)
@@ -1708,9 +1687,9 @@ class ExpedirProcedimentoRN extends InfraRN { @@ -1708,9 +1687,9 @@ class ExpedirProcedimentoRN extends InfraRN {
1708 1687
1709 // $objProcedimentoDTO = $this->objProcedimentoRN->consultarRN0201($objProcedimentoDTO); 1688 // $objProcedimentoDTO = $this->objProcedimentoRN->consultarRN0201($objProcedimentoDTO);
1710 1689
1711 - if ($objProcedimentoDTO->getStrStaNivelAcessoLocalProtocolo() == ProtocoloRN::$NA_SIGILOSO) {  
1712 - $objInfraException->adicionarValidacao('Não é possível trâmitar um processo com informações sigilosas.', $strAtributoValidacao);  
1713 - } 1690 + if ($objProcedimentoDTO->getStrStaNivelAcessoLocalProtocolo() == ProtocoloRN::$NA_SIGILOSO) {
  1691 + $objInfraException->adicionarValidacao('Não é possível trâmitar um processo com informações sigilosas.', $strAtributoValidacao);
  1692 + }
1714 } 1693 }
1715 1694
1716 /** 1695 /**
@@ -1776,90 +1755,92 @@ class ExpedirProcedimentoRN extends InfraRN { @@ -1776,90 +1755,92 @@ class ExpedirProcedimentoRN extends InfraRN {
1776 public function validarPreCondicoesExpedirProcedimento(InfraException $objInfraException, ProcedimentoDTO $objProcedimentoDTO, $strAtributoValidacao = null) 1755 public function validarPreCondicoesExpedirProcedimento(InfraException $objInfraException, ProcedimentoDTO $objProcedimentoDTO, $strAtributoValidacao = null)
1777 { 1756 {
1778 //TODO: Validar pr-condies dos processos e documentos apensados 1757 //TODO: Validar pr-condies dos processos e documentos apensados
1779 - $this->validarDadosProcedimento($objInfraException, $objProcedimentoDTO, $strAtributoValidacao);  
1780 - $this->validarDadosDocumentos($objInfraException, $objProcedimentoDTO->getArrObjDocumentoDTO(), $strAtributoValidacao); 1758 + $this->validarDadosProcedimento($objInfraException, $objProcedimentoDTO, $strAtributoValidacao);
  1759 + $this->validarDadosDocumentos($objInfraException, $objProcedimentoDTO->getArrObjDocumentoDTO(), $strAtributoValidacao);
1781 1760
1782 - $this->validarDocumentacaoExistende($objInfraException, $objProcedimentoDTO, $strAtributoValidacao);  
1783 - $this->validarProcessoAbertoUnidade($objInfraException, $objProcedimentoDTO, $strAtributoValidacao);  
1784 - $this->validarNivelAcessoProcesso($objInfraException, $objProcedimentoDTO, $strAtributoValidacao);  
1785 - $this->validarHipoteseLegalEnvio($objInfraException, $objProcedimentoDTO, $strAtributoValidacao);  
1786 - $this->validarAssinaturas($objInfraException, $objProcedimentoDTO, $strAtributoValidacao); 1761 + $this->validarDocumentacaoExistende($objInfraException, $objProcedimentoDTO, $strAtributoValidacao);
  1762 + $this->validarProcessoAbertoUnidade($objInfraException, $objProcedimentoDTO, $strAtributoValidacao);
  1763 + $this->validarNivelAcessoProcesso($objInfraException, $objProcedimentoDTO, $strAtributoValidacao);
  1764 + $this->validarHipoteseLegalEnvio($objInfraException, $objProcedimentoDTO, $strAtributoValidacao);
  1765 + $this->validarAssinaturas($objInfraException, $objProcedimentoDTO, $strAtributoValidacao);
1787 } 1766 }
1788 1767
1789 1768
1790 - private function obterNivelSigiloPEN($strNivelSigilo) {  
1791 - switch ($strNivelSigilo) {  
1792 - case ProtocoloRN::$NA_PUBLICO: return self::STA_SIGILO_PUBLICO;  
1793 - break;  
1794 - case ProtocoloRN::$NA_RESTRITO: return self::STA_SIGILO_RESTRITO;  
1795 - break;  
1796 - case ProtocoloRN::$NA_SIGILOSO: return self::STA_SIGILO_SIGILOSO;  
1797 - break;  
1798 - default:  
1799 - break;  
1800 - } 1769 + private function obterNivelSigiloPEN($strNivelSigilo)
  1770 + {
  1771 + switch ($strNivelSigilo) {
  1772 + case ProtocoloRN::$NA_PUBLICO: return self::STA_SIGILO_PUBLICO;
  1773 + break;
  1774 + case ProtocoloRN::$NA_RESTRITO: return self::STA_SIGILO_RESTRITO;
  1775 + break;
  1776 + case ProtocoloRN::$NA_SIGILOSO: return self::STA_SIGILO_SIGILOSO;
  1777 + break;
  1778 + default:
  1779 + break;
  1780 + }
1801 } 1781 }
1802 1782
1803 1783
1804 - public function listarProcessosApensados($dblIdProcedimentoAtual, $idUnidadeAtual, $strPalavrasPesquisa = '', $numRegistros = 15) { 1784 + public function listarProcessosApensados($dblIdProcedimentoAtual, $idUnidadeAtual, $strPalavrasPesquisa = '', $numRegistros = 15)
  1785 + {
1805 1786
1806 - $arrObjProcessosApensados = array(); 1787 + $arrObjProcessosApensados = array();
1807 1788
1808 - try{  
1809 - $objInfraException = new InfraException();  
1810 - $idUnidadeAtual = filter_var($idUnidadeAtual, FILTER_SANITIZE_NUMBER_INT); 1789 + try{
  1790 + $objInfraException = new InfraException();
  1791 + $idUnidadeAtual = filter_var($idUnidadeAtual, FILTER_SANITIZE_NUMBER_INT);
1811 1792
1812 - if(!$idUnidadeAtual){  
1813 - $objInfraException->adicionarValidacao('Processo inválido.');  
1814 - } 1793 + if(!$idUnidadeAtual){
  1794 + $objInfraException->adicionarValidacao('Processo inválido.');
  1795 + }
1815 1796
1816 - $objInfraException->lancarValidacoes(); 1797 + $objInfraException->lancarValidacoes();
1817 //Pesquisar procedimentos que esto abertos na unidade atual 1798 //Pesquisar procedimentos que esto abertos na unidade atual
1818 - $objAtividadeDTO = new AtividadeDTO();  
1819 - $objAtividadeDTO->setDistinct(true);  
1820 - $objAtividadeDTO->retDblIdProtocolo();  
1821 - $objAtividadeDTO->retStrProtocoloFormatadoProtocolo();  
1822 - $objAtividadeDTO->retNumIdUnidade();  
1823 - $objAtividadeDTO->retStrDescricaoUnidadeOrigem();  
1824 - $objAtividadeDTO->setNumIdUnidade($idUnidadeAtual);  
1825 - $objAtividadeDTO->setDblIdProtocolo($dblIdProcedimentoAtual, InfraDTO::$OPER_DIFERENTE);  
1826 - $objAtividadeDTO->setDthConclusao(null);  
1827 - $objAtividadeDTO->setStrStaEstadoProtocolo(ProtocoloRN::$TE_NORMAL);  
1828 -  
1829 - $arrPalavrasPesquisa = explode(' ',$strPalavrasPesquisa);  
1830 - for($i=0; $i<count($arrPalavrasPesquisa); $i++) {  
1831 - $arrPalavrasPesquisa[$i] = '%'.$arrPalavrasPesquisa[$i].'%';  
1832 - } 1799 + $objAtividadeDTO = new AtividadeDTO();
  1800 + $objAtividadeDTO->setDistinct(true);
  1801 + $objAtividadeDTO->retDblIdProtocolo();
  1802 + $objAtividadeDTO->retStrProtocoloFormatadoProtocolo();
  1803 + $objAtividadeDTO->retNumIdUnidade();
  1804 + $objAtividadeDTO->retStrDescricaoUnidadeOrigem();
  1805 + $objAtividadeDTO->setNumIdUnidade($idUnidadeAtual);
  1806 + $objAtividadeDTO->setDblIdProtocolo($dblIdProcedimentoAtual, InfraDTO::$OPER_DIFERENTE);
  1807 + $objAtividadeDTO->setDthConclusao(null);
  1808 + $objAtividadeDTO->setStrStaEstadoProtocolo(ProtocoloRN::$TE_NORMAL);
  1809 +
  1810 + $arrPalavrasPesquisa = explode(' ',$strPalavrasPesquisa);
  1811 + for($i=0; $i<count($arrPalavrasPesquisa); $i++) {
  1812 + $arrPalavrasPesquisa[$i] = '%'.$arrPalavrasPesquisa[$i].'%';
  1813 + }
1833 1814
1834 - if (count($arrPalavrasPesquisa)==1){  
1835 - $objAtividadeDTO->setStrProtocoloFormatadoProtocolo($arrPalavrasPesquisa[0],InfraDTO::$OPER_LIKE);  
1836 - }else{  
1837 - $objAtividadeDTO->unSetStrProtocoloFormatadoProtocolo();  
1838 - $a = array_fill(0,count($arrPalavrasPesquisa),'ProtocoloFormatadoProtocolo');  
1839 - $b = array_fill(0,count($arrPalavrasPesquisa),InfraDTO::$OPER_LIKE);  
1840 - $d = array_fill(0,count($arrPalavrasPesquisa)-1,InfraDTO::$OPER_LOGICO_AND);  
1841 - $objAtividadeDTO->adicionarCriterio($a,$b,$arrPalavrasPesquisa,$d);  
1842 - } 1815 + if (count($arrPalavrasPesquisa)==1){
  1816 + $objAtividadeDTO->setStrProtocoloFormatadoProtocolo($arrPalavrasPesquisa[0],InfraDTO::$OPER_LIKE);
  1817 + }else{
  1818 + $objAtividadeDTO->unSetStrProtocoloFormatadoProtocolo();
  1819 + $a = array_fill(0,count($arrPalavrasPesquisa),'ProtocoloFormatadoProtocolo');
  1820 + $b = array_fill(0,count($arrPalavrasPesquisa),InfraDTO::$OPER_LIKE);
  1821 + $d = array_fill(0,count($arrPalavrasPesquisa)-1,InfraDTO::$OPER_LOGICO_AND);
  1822 + $objAtividadeDTO->adicionarCriterio($a,$b,$arrPalavrasPesquisa,$d);
  1823 + }
1843 1824
1844 - $arrResultado = array();  
1845 - $arrObjAtividadeDTO = $this->objAtividadeRN->listarRN0036($objAtividadeDTO); 1825 + $arrResultado = array();
  1826 + $arrObjAtividadeDTO = $this->objAtividadeRN->listarRN0036($objAtividadeDTO);
1846 //$arrObjAtividadeDTOIndexado = $arrObjAtividadeDTO; 1827 //$arrObjAtividadeDTOIndexado = $arrObjAtividadeDTO;
1847 - $arrObjAtividadeDTOIndexado = InfraArray::indexarArrInfraDTO($arrObjAtividadeDTO, 'ProtocoloFormatadoProtocolo', true); 1828 + $arrObjAtividadeDTOIndexado = InfraArray::indexarArrInfraDTO($arrObjAtividadeDTO, 'ProtocoloFormatadoProtocolo', true);
1848 1829
1849 - foreach ($arrObjAtividadeDTOIndexado as $key => $value) { 1830 + foreach ($arrObjAtividadeDTOIndexado as $key => $value) {
1850 1831
1851 - if(is_array($value) && count($value) == 1) {  
1852 - $arrResultado[] = $value[0];  
1853 - }  
1854 - } 1832 + if(is_array($value) && count($value) == 1) {
  1833 + $arrResultado[] = $value[0];
  1834 + }
  1835 + }
1855 1836
1856 - $arrObjProcessosApensados = array_slice($arrResultado, 0, $numRegistros); 1837 + $arrObjProcessosApensados = array_slice($arrResultado, 0, $numRegistros);
1857 1838
1858 - } catch(Exception $e) {  
1859 - throw new InfraException("Error Processing Request", $e);  
1860 - } 1839 + } catch(Exception $e) {
  1840 + throw new InfraException("Error Processing Request", $e);
  1841 + }
1861 1842
1862 - return $arrObjProcessosApensados; 1843 + return $arrObjProcessosApensados;
1863 } 1844 }
1864 1845
1865 1846
@@ -1886,63 +1867,63 @@ class ExpedirProcedimentoRN extends InfraRN { @@ -1886,63 +1867,63 @@ class ExpedirProcedimentoRN extends InfraRN {
1886 1867
1887 public function listarProcessosApensadosAvancado(AtividadeDTO $objAtividadeDTO, $dblIdProcedimentoAtual, $idUnidadeAtual, $strPalavrasPesquisa = '', $strDescricaoPesquisa = '', $numRegistros = 15) { 1868 public function listarProcessosApensadosAvancado(AtividadeDTO $objAtividadeDTO, $dblIdProcedimentoAtual, $idUnidadeAtual, $strPalavrasPesquisa = '', $strDescricaoPesquisa = '', $numRegistros = 15) {
1888 1869
1889 - $arrObjProcessosApensados = array(); 1870 + $arrObjProcessosApensados = array();
1890 1871
1891 - try{  
1892 - $objInfraException = new InfraException();  
1893 - $idUnidadeAtual = filter_var($idUnidadeAtual, FILTER_SANITIZE_NUMBER_INT); 1872 + try {
  1873 + $objInfraException = new InfraException();
  1874 + $idUnidadeAtual = filter_var($idUnidadeAtual, FILTER_SANITIZE_NUMBER_INT);
1894 1875
1895 - if(!$idUnidadeAtual){  
1896 - $objInfraException->adicionarValidacao('Processo inválido.');  
1897 - } 1876 + if(!$idUnidadeAtual){
  1877 + $objInfraException->adicionarValidacao('Processo inválido.');
  1878 + }
1898 1879
1899 - $objInfraException->lancarValidacoes(); 1880 + $objInfraException->lancarValidacoes();
1900 //Pesquisar procedimentos que esto abertos na unidade atual 1881 //Pesquisar procedimentos que esto abertos na unidade atual
1901 1882
1902 - $objAtividadeDTO->setDistinct(true);  
1903 - $objAtividadeDTO->retDblIdProtocolo();  
1904 - $objAtividadeDTO->retStrProtocoloFormatadoProtocolo();  
1905 - $objAtividadeDTO->retNumIdUnidade();  
1906 - $objAtividadeDTO->retStrDescricaoUnidadeOrigem();  
1907 - $objAtividadeDTO->setNumIdUnidade($idUnidadeAtual);  
1908 - $objAtividadeDTO->setDblIdProtocolo($dblIdProcedimentoAtual, InfraDTO::$OPER_DIFERENTE);  
1909 - $objAtividadeDTO->setDthConclusao(null);  
1910 - $objAtividadeDTO->setStrStaEstadoProtocolo(ProtocoloRN::$TE_NORMAL);  
1911 - ///$objAtividadeDTO->setStrDescricaoProtocolo('%'.$strDescricaoPesquisa.'%',InfraDTO::$OPER_LIKE);  
1912 -  
1913 - $arrPalavrasPesquisa = explode(' ',$strPalavrasPesquisa);  
1914 - for($i=0; $i<count($arrPalavrasPesquisa); $i++) {  
1915 - $arrPalavrasPesquisa[$i] = '%'.$arrPalavrasPesquisa[$i].'%';  
1916 - } 1883 + $objAtividadeDTO->setDistinct(true);
  1884 + $objAtividadeDTO->retDblIdProtocolo();
  1885 + $objAtividadeDTO->retStrProtocoloFormatadoProtocolo();
  1886 + $objAtividadeDTO->retNumIdUnidade();
  1887 + $objAtividadeDTO->retStrDescricaoUnidadeOrigem();
  1888 + $objAtividadeDTO->setNumIdUnidade($idUnidadeAtual);
  1889 + $objAtividadeDTO->setDblIdProtocolo($dblIdProcedimentoAtual, InfraDTO::$OPER_DIFERENTE);
  1890 + $objAtividadeDTO->setDthConclusao(null);
  1891 + $objAtividadeDTO->setStrStaEstadoProtocolo(ProtocoloRN::$TE_NORMAL);
  1892 + ///$objAtividadeDTO->setStrDescricaoProtocolo('%'.$strDescricaoPesquisa.'%',InfraDTO::$OPER_LIKE);
  1893 +
  1894 + $arrPalavrasPesquisa = explode(' ',$strPalavrasPesquisa);
  1895 + for($i=0; $i<count($arrPalavrasPesquisa); $i++) {
  1896 + $arrPalavrasPesquisa[$i] = '%'.$arrPalavrasPesquisa[$i].'%';
  1897 + }
1917 1898
1918 - if (count($arrPalavrasPesquisa)==1){  
1919 - $objAtividadeDTO->setStrProtocoloFormatadoProtocolo($arrPalavrasPesquisa[0],InfraDTO::$OPER_LIKE);  
1920 - }else{  
1921 - $objAtividadeDTO->unSetStrProtocoloFormatadoProtocolo();  
1922 - $a = array_fill(0,count($arrPalavrasPesquisa),'ProtocoloFormatadoProtocolo');  
1923 - $b = array_fill(0,count($arrPalavrasPesquisa),InfraDTO::$OPER_LIKE);  
1924 - $d = array_fill(0,count($arrPalavrasPesquisa)-1,InfraDTO::$OPER_LOGICO_AND);  
1925 - $objAtividadeDTO->adicionarCriterio($a,$b,$arrPalavrasPesquisa,$d);  
1926 - } 1899 + if (count($arrPalavrasPesquisa)==1){
  1900 + $objAtividadeDTO->setStrProtocoloFormatadoProtocolo($arrPalavrasPesquisa[0],InfraDTO::$OPER_LIKE);
  1901 + }else{
  1902 + $objAtividadeDTO->unSetStrProtocoloFormatadoProtocolo();
  1903 + $a = array_fill(0,count($arrPalavrasPesquisa),'ProtocoloFormatadoProtocolo');
  1904 + $b = array_fill(0,count($arrPalavrasPesquisa),InfraDTO::$OPER_LIKE);
  1905 + $d = array_fill(0,count($arrPalavrasPesquisa)-1,InfraDTO::$OPER_LOGICO_AND);
  1906 + $objAtividadeDTO->adicionarCriterio($a,$b,$arrPalavrasPesquisa,$d);
  1907 + }
1927 1908
1928 - $arrResultado = array();  
1929 - $arrObjAtividadeDTO = $this->objAtividadeRN->listarRN0036($objAtividadeDTO);  
1930 - $arrObjAtividadeDTOIndexado = InfraArray::indexarArrInfraDTO($arrObjAtividadeDTO, 'ProtocoloFormatadoProtocolo', true); 1909 + $arrResultado = array();
  1910 + $arrObjAtividadeDTO = $this->objAtividadeRN->listarRN0036($objAtividadeDTO);
  1911 + $arrObjAtividadeDTOIndexado = InfraArray::indexarArrInfraDTO($arrObjAtividadeDTO, 'ProtocoloFormatadoProtocolo', true);
1931 1912
1932 - foreach ($arrObjAtividadeDTOIndexado as $key => $value) { 1913 + foreach ($arrObjAtividadeDTOIndexado as $key => $value) {
1933 1914
1934 - if(is_array($value) && count($value) == 1) {  
1935 - $arrResultado[] = $value[0];  
1936 - }  
1937 - } 1915 + if(is_array($value) && count($value) == 1) {
  1916 + $arrResultado[] = $value[0];
  1917 + }
  1918 + }
1938 1919
1939 - $arrObjProcessosApensados = array_slice($arrResultado, 0, $numRegistros); 1920 + $arrObjProcessosApensados = array_slice($arrResultado, 0, $numRegistros);
1940 1921
1941 - } catch(Exception $e) {  
1942 - throw new InfraException("Error Processing Request", $e);  
1943 - } 1922 + } catch(Exception $e) {
  1923 + throw new InfraException("Error Processing Request", $e);
  1924 + }
1944 1925
1945 - return $arrObjProcessosApensados; 1926 + return $arrObjProcessosApensados;
1946 } 1927 }
1947 1928
1948 1929
@@ -1979,22 +1960,22 @@ class ExpedirProcedimentoRN extends InfraRN { @@ -1979,22 +1960,22 @@ class ExpedirProcedimentoRN extends InfraRN {
1979 1960
1980 $objGenericoBD->cadastrar($objReciboTramiteDTO); 1961 $objGenericoBD->cadastrar($objReciboTramiteDTO);
1981 1962
1982 - if(isset($objReciboEnvio->reciboDeEnvio->hashDoComponenteDigital)) {  
1983 - $objReciboEnvio->reciboDeEnvio->hashDoComponenteDigital = !is_array($objReciboEnvio->reciboDeEnvio->hashDoComponenteDigital) ? array($objReciboEnvio->reciboDeEnvio->hashDoComponenteDigital) : $objReciboEnvio->reciboDeEnvio->hashDoComponenteDigital;  
1984 - if($objReciboEnvio->reciboDeEnvio->hashDoComponenteDigital && is_array($objReciboEnvio->reciboDeEnvio->hashDoComponenteDigital)){ 1963 + if(isset($objReciboEnvio->reciboDeEnvio->hashDoComponenteDigital)) {
  1964 + $objReciboEnvio->reciboDeEnvio->hashDoComponenteDigital = !is_array($objReciboEnvio->reciboDeEnvio->hashDoComponenteDigital) ? array($objReciboEnvio->reciboDeEnvio->hashDoComponenteDigital) : $objReciboEnvio->reciboDeEnvio->hashDoComponenteDigital;
  1965 + if($objReciboEnvio->reciboDeEnvio->hashDoComponenteDigital && is_array($objReciboEnvio->reciboDeEnvio->hashDoComponenteDigital)){
1985 1966
1986 - foreach($objReciboEnvio->reciboDeEnvio->hashDoComponenteDigital as $strHashComponenteDigital){ 1967 + foreach($objReciboEnvio->reciboDeEnvio->hashDoComponenteDigital as $strHashComponenteDigital){
1987 1968
1988 - $objReciboTramiteHashDTO = new ReciboTramiteHashDTO();  
1989 - $objReciboTramiteHashDTO->setStrNumeroRegistro($objReciboEnvio->reciboDeEnvio->NRE);  
1990 - $objReciboTramiteHashDTO->setNumIdTramite($objReciboEnvio->reciboDeEnvio->IDT);  
1991 - $objReciboTramiteHashDTO->setStrHashComponenteDigital($strHashComponenteDigital);  
1992 - $objReciboTramiteHashDTO->setStrTipoRecibo(ProcessoEletronicoRN::$STA_TIPO_RECIBO_ENVIO); 1969 + $objReciboTramiteHashDTO = new ReciboTramiteHashDTO();
  1970 + $objReciboTramiteHashDTO->setStrNumeroRegistro($objReciboEnvio->reciboDeEnvio->NRE);
  1971 + $objReciboTramiteHashDTO->setNumIdTramite($objReciboEnvio->reciboDeEnvio->IDT);
  1972 + $objReciboTramiteHashDTO->setStrHashComponenteDigital($strHashComponenteDigital);
  1973 + $objReciboTramiteHashDTO->setStrTipoRecibo(ProcessoEletronicoRN::$STA_TIPO_RECIBO_ENVIO);
1993 1974
1994 - $objGenericoBD->cadastrar($objReciboTramiteHashDTO); 1975 + $objGenericoBD->cadastrar($objReciboTramiteHashDTO);
  1976 + }
1995 } 1977 }
1996 } 1978 }
1997 - }  
1998 1979
1999 return true; 1980 return true;
2000 } 1981 }
@@ -2031,17 +2012,18 @@ class ExpedirProcedimentoRN extends InfraRN { @@ -2031,17 +2012,18 @@ class ExpedirProcedimentoRN extends InfraRN {
2031 } 2012 }
2032 2013
2033 2014
2034 - /**  
2035 - * @author Fabio.braga@softimais.com.br  
2036 - * @deprecated consulta processo  
2037 - * data : 28/05/2015  
2038 - * @return objet  
2039 - */  
2040 - public function listarTramiteParaCancelar($idProcedimento) {  
2041 - $objProtocoloDTO = $this->consultarProtocoloPk($idProcedimento);  
2042 - $result = $this->objProcessoEletronicoRN->serviceConsultarTramitesProtocolo( $objProtocoloDTO->getStrProtocoloFormatado( ) );  
2043 - return $result;  
2044 - } 2015 + /**
  2016 + * @author Fabio.braga@softimais.com.br
  2017 + * @deprecated consulta processo
  2018 + * data : 28/05/2015
  2019 + * @return objet
  2020 + */
  2021 + public function listarTramiteParaCancelar($idProcedimento)
  2022 + {
  2023 + $objProtocoloDTO = $this->consultarProtocoloPk($idProcedimento);
  2024 + $result = $this->objProcessoEletronicoRN->serviceConsultarTramitesProtocolo( $objProtocoloDTO->getStrProtocoloFormatado( ) );
  2025 + return $result;
  2026 + }
2045 2027
2046 2028
2047 /** 2029 /**
@@ -2050,8 +2032,8 @@ class ExpedirProcedimentoRN extends InfraRN { @@ -2050,8 +2032,8 @@ class ExpedirProcedimentoRN extends InfraRN {
2050 * @param int $dblIdProcedimento 2032 * @param int $dblIdProcedimento
2051 * @throws InfraException 2033 * @throws InfraException
2052 */ 2034 */
2053 - public function cancelarTramite($dblIdProcedimento) {  
2054 - 2035 + public function cancelarTramite($dblIdProcedimento)
  2036 + {
2055 //Busca os dados do protocolo 2037 //Busca os dados do protocolo
2056 $objDtoProtocolo = new ProtocoloDTO(); 2038 $objDtoProtocolo = new ProtocoloDTO();
2057 $objDtoProtocolo->retStrProtocoloFormatado(); 2039 $objDtoProtocolo->retStrProtocoloFormatado();
@@ -2065,9 +2047,8 @@ class ExpedirProcedimentoRN extends InfraRN { @@ -2065,9 +2047,8 @@ class ExpedirProcedimentoRN extends InfraRN {
2065 2047
2066 } 2048 }
2067 2049
2068 - protected function cancelarTramiteInternoControlado(ProtocoloDTO $objDtoProtocolo) {  
2069 -  
2070 - 2050 + protected function cancelarTramiteInternoControlado(ProtocoloDTO $objDtoProtocolo)
  2051 + {
2071 //Obtem o id_rh que representa a unidade no barramento 2052 //Obtem o id_rh que representa a unidade no barramento
2072 $objPenParametroRN = new PenParametroRN(); 2053 $objPenParametroRN = new PenParametroRN();
2073 $numIdRespositorio = $objPenParametroRN->getParametro('PEN_ID_REPOSITORIO_ORIGEM'); 2054 $numIdRespositorio = $objPenParametroRN->getParametro('PEN_ID_REPOSITORIO_ORIGEM');
@@ -2131,17 +2112,17 @@ class ExpedirProcedimentoRN extends InfraRN { @@ -2131,17 +2112,17 @@ class ExpedirProcedimentoRN extends InfraRN {
2131 //Valida os status 2112 //Valida os status
2132 switch ($numSituacaoAtual) { 2113 switch ($numSituacaoAtual) {
2133 case ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_RECIBO_ENVIADO_DESTINATARIO: 2114 case ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_RECIBO_ENVIADO_DESTINATARIO:
2134 - throw new InfraException("O sistema destinatário já iniciou o recebimento desse processo, portanto não é possível realizar o cancelamento");  
2135 - break; 2115 + throw new InfraException("O sistema destinatário já iniciou o recebimento desse processo, portanto não é possível realizar o cancelamento");
  2116 + break;
2136 case ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_RECIBO_RECEBIDO_REMETENTE: 2117 case ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_RECIBO_RECEBIDO_REMETENTE:
2137 - throw new InfraException("O sistema destinatário já recebeu esse processo, portanto não é possivel realizar o cancelamento");  
2138 - break; 2118 + throw new InfraException("O sistema destinatário já recebeu esse processo, portanto não é possivel realizar o cancelamento");
  2119 + break;
2139 case ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CANCELADO: 2120 case ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CANCELADO:
2140 - throw new InfraException("O trâmite externo para esse processo já se encontra cancelado.");  
2141 - break; 2121 + throw new InfraException("O trâmite externo para esse processo já se encontra cancelado.");
  2122 + break;
2142 case ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_RECUSADO: 2123 case ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_RECUSADO:
2143 - throw new InfraException("O trâmite externo para esse processo encontra-se recusado.");  
2144 - break; 2124 + throw new InfraException("O trâmite externo para esse processo encontra-se recusado.");
  2125 + break;
2145 } 2126 }
2146 2127
2147 $this->objProcessoEletronicoRN->cancelarTramite($tramite->IDT); 2128 $this->objProcessoEletronicoRN->cancelarTramite($tramite->IDT);
@@ -2195,8 +2176,8 @@ class ExpedirProcedimentoRN extends InfraRN { @@ -2195,8 +2176,8 @@ class ExpedirProcedimentoRN extends InfraRN {
2195 * @param integer $parNumIdProcedimento 2176 * @param integer $parNumIdProcedimento
2196 * @return boolean|object 2177 * @return boolean|object
2197 */ 2178 */
2198 - public function verificarProcessoEmExpedicao($parNumIdProcedimento){  
2199 - 2179 + public function verificarProcessoEmExpedicao($parNumIdProcedimento)
  2180 + {
2200 $objProcedimentoDTO = new ProcedimentoDTO(); 2181 $objProcedimentoDTO = new ProcedimentoDTO();
2201 $objProcedimentoDTO->setDblIdProcedimento($parNumIdProcedimento); 2182 $objProcedimentoDTO->setDblIdProcedimento($parNumIdProcedimento);
2202 $objProcedimentoDTO->retStrStaEstadoProtocolo(); 2183 $objProcedimentoDTO->retStrStaEstadoProtocolo();
@@ -2211,14 +2192,14 @@ class ExpedirProcedimentoRN extends InfraRN { @@ -2211,14 +2192,14 @@ class ExpedirProcedimentoRN extends InfraRN {
2211 $objAtividadeDTO = new AtividadeDTO(); 2192 $objAtividadeDTO = new AtividadeDTO();
2212 $objAtividadeDTO->setDblIdProtocolo($objProcedimentoDTO->getDblIdProcedimento()); 2193 $objAtividadeDTO->setDblIdProtocolo($objProcedimentoDTO->getDblIdProcedimento());
2213 $objAtividadeDTO->setNumIdTarefa( 2194 $objAtividadeDTO->setNumIdTarefa(
2214 - array(ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_EXPEDIDO),  
2215 - ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_RECEBIDO),  
2216 - ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_TRAMITE_CANCELADO),  
2217 - ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_TRAMITE_RECUSADO),  
2218 - ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_TRAMITE_EXTERNO),  
2219 - ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_ABORTADO),  
2220 - ),  
2221 - InfraDTO::$OPER_IN); 2195 + array(ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_EXPEDIDO),
  2196 + ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_RECEBIDO),
  2197 + ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_TRAMITE_CANCELADO),
  2198 + ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_TRAMITE_RECUSADO),
  2199 + ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_TRAMITE_EXTERNO),
  2200 + ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_ABORTADO),
  2201 + ),
  2202 + InfraDTO::$OPER_IN);
2222 $objAtividadeDTO->setNumMaxRegistrosRetorno(1); 2203 $objAtividadeDTO->setNumMaxRegistrosRetorno(1);
2223 $objAtividadeDTO->setOrdDthAbertura(InfraDTO::$TIPO_ORDENACAO_DESC); 2204 $objAtividadeDTO->setOrdDthAbertura(InfraDTO::$TIPO_ORDENACAO_DESC);
2224 $objAtividadeDTO->retNumIdAtividade(); 2205 $objAtividadeDTO->retNumIdAtividade();
@@ -2240,60 +2221,53 @@ class ExpedirProcedimentoRN extends InfraRN { @@ -2240,60 +2221,53 @@ class ExpedirProcedimentoRN extends InfraRN {
2240 } 2221 }
2241 2222
2242 2223
2243 - public function consultaUnidadePk($idUnidade) {  
2244 -  
2245 - $objUnidadeDTO = new UnidadeDTO();  
2246 - $objUnidadeDTO->setNumIdUnidade($idUnidade);  
2247 - $objUnidadeDTO->retTodos();  
2248 -  
2249 - $objUnidadeDTO = $this->objUnidadeRN->consultarRN0125($objUnidadeDTO);  
2250 -  
2251 - return $objUnidadeDTO;  
2252 - }  
2253 -  
2254 - public function consultaUsuarioPk($idUsuario) {  
2255 -  
2256 - $objUsuarioDTO = new UsuarioDTO();  
2257 - $objUsuarioDTO->setNumIdUsuario($idUsuario);  
2258 - $objUsuarioDTO->retTodos();  
2259 -  
2260 - $objUsuarioDTO = $this->objUsuarioRN->consultarRN0489($objUsuarioDTO);  
2261 -  
2262 - return $objUsuarioDTO;  
2263 - }  
2264 -  
2265 - public function consultarProtocoloPk($idPrtocedimento) { 2224 + public function consultaUnidadePk($idUnidade) {
2266 2225
2267 - $idPrtocedimento = (int)$idPrtocedimento; 2226 + $objUnidadeDTO = new UnidadeDTO();
  2227 + $objUnidadeDTO->setNumIdUnidade($idUnidade);
  2228 + $objUnidadeDTO->retTodos();
2268 2229
2269 - $objProtocoloDTO = new ProtocoloDTO();  
2270 - $objProtocoloDTO->setDblIdProtocolo($idPrtocedimento);  
2271 - $objProtocoloDTO->retTodos(); 2230 + $objUnidadeDTO = $this->objUnidadeRN->consultarRN0125($objUnidadeDTO);
2272 2231
  2232 + return $objUnidadeDTO;
  2233 + }
2273 2234
2274 - $objProtocoloDTO = $this->objProtocoloRN->consultarRN0186($objProtocoloDTO);  
2275 -  
2276 -  
2277 - $objProtocoloDTO->UnidadeGeradora = $this->consultaUnidadePk($objProtocoloDTO->getNumIdUnidadeGeradora());  
2278 -  
2279 - $objProtocoloDTO->UsuarioCriador = $this->consultaUsuarioPk($objProtocoloDTO->getNumIdUsuarioGerador());  
2280 -  
2281 - $objProtocoloDTO->Documentos = $this->consultaDocumentosProcesso($idPrtocedimento);  
2282 -  
2283 - return $objProtocoloDTO;  
2284 - }  
2285 - 2235 + public function consultaUsuarioPk($idUsuario)
  2236 + {
2286 2237
2287 - public function consultaDocumentosProcesso($idPrtocedimento) { 2238 + $objUsuarioDTO = new UsuarioDTO();
  2239 + $objUsuarioDTO->setNumIdUsuario($idUsuario);
  2240 + $objUsuarioDTO->retTodos();
2288 2241
2289 - $documentoRespArray = array(); 2242 + $objUsuarioDTO = $this->objUsuarioRN->consultarRN0489($objUsuarioDTO);
2290 2243
2291 - $documentoDTO = new DocumentoDTO();  
2292 - $documentoDTO->setDblIdProcedimento($idPrtocedimento);  
2293 - $documentoDTO->retTodos(); 2244 + return $objUsuarioDTO;
  2245 + }
2294 2246
2295 - $documentoDTO = $this->objDocumentoRN->listarRN0008($documentoDTO); 2247 + public function consultarProtocoloPk($idPrtocedimento)
  2248 + {
2296 2249
2297 - return $documentoDTO;  
2298 - } 2250 + $idPrtocedimento = (int)$idPrtocedimento;
  2251 + $objProtocoloDTO = new ProtocoloDTO();
  2252 + $objProtocoloDTO->setDblIdProtocolo($idPrtocedimento);
  2253 + $objProtocoloDTO->retTodos();
  2254 +
  2255 + $objProtocoloDTO = $this->objProtocoloRN->consultarRN0186($objProtocoloDTO);
  2256 + $objProtocoloDTO->UnidadeGeradora = $this->consultaUnidadePk($objProtocoloDTO->getNumIdUnidadeGeradora());
  2257 + $objProtocoloDTO->UsuarioCriador = $this->consultaUsuarioPk($objProtocoloDTO->getNumIdUsuarioGerador());
  2258 + $objProtocoloDTO->Documentos = $this->consultaDocumentosProcesso($idPrtocedimento);
  2259 +
  2260 + return $objProtocoloDTO;
  2261 + }
  2262 +
  2263 +
  2264 + public function consultaDocumentosProcesso($idPrtocedimento)
  2265 + {
  2266 + $documentoRespArray = array();
  2267 + $documentoDTO = new DocumentoDTO();
  2268 + $documentoDTO->setDblIdProcedimento($idPrtocedimento);
  2269 + $documentoDTO->retTodos();
  2270 + $documentoDTO = $this->objDocumentoRN->listarRN0008($documentoDTO);
  2271 + return $documentoDTO;
  2272 + }
2299 } 2273 }