Commit 98a213521de656603d374dd5977edb09881b210d

Authored by Thiago Farias
1 parent e79a8d8a

Sprint 5

pen_procedimento_expedir.php
... ... @@ -99,7 +99,11 @@ try {
99 99  
100 100 $objUnidadeRN = new UnidadeRN();
101 101 $objUnidadeDTO = $objUnidadeRN->consultarRN0125($objUnidadeDTO);
102   -
  102 +
  103 + if (!$objUnidadeDTO) {
  104 + throw new InfraException("A unidade atual não foi mapeada.");
  105 + }
  106 +
103 107 $numIdUnidadeOrigem = $objUnidadeDTO->getNumIdUnidadeRH();
104 108 $numIdProcedimento = $_POST['hdnIdProcedimento'];
105 109 $strProtocoloProcedimentoFormatado = $_POST['txtProtocoloExibir'];
... ...
rn/ExpedirProcedimentoRN.php
... ... @@ -1651,7 +1651,6 @@ class ExpedirProcedimentoRN extends InfraRN {
1651 1651 $objPenRelHipoteseLegalEnvioRN = new PenRelHipoteseLegalEnvioRN();
1652 1652  
1653 1653 foreach($arrDocumentoDTO as $objDocumentoDTO) {
1654   -
1655 1654 $objDocMapDTO->unSetTodos();
1656 1655 $objDocMapDTO->setNumIdSerie($objDocumentoDTO->getNumIdSerie());
1657 1656  
... ... @@ -1675,7 +1674,7 @@ class ExpedirProcedimentoRN extends InfraRN {
1675 1674 $objHipoteseLegalRN = new HipoteseLegalRN();
1676 1675 $dados = $objHipoteseLegalRN->consultar($objHipoteseLegalDTO);
1677 1676  
1678   - $objInfraException->adicionarValidacao('Hipótese Legal "'.$dados->getStrNome().'" do Documento Não foi Mapeada', $strAtributoValidacao);
  1677 + $objInfraException->adicionarValidacao('Hipótese Legal "'.$dados->getStrNome().'" do Documento '.$objDocumentoDTO->getStrNomeSerie(). ' ' . $objDocumentoDTO->getStrProtocoloDocumentoFormatado() .' Não foi Mapeada', $strAtributoValidacao);
1679 1678 }
1680 1679 }
1681 1680 }
... ... @@ -1723,7 +1722,6 @@ class ExpedirProcedimentoRN extends InfraRN {
1723 1722 if (empty($objProcedimentoDTO->getNumIdHipoteseLegalProtocolo())) {
1724 1723 $objInfraException->adicionarValidacao('Não é possível expedir processo de nível restrito sem a hipótese legal mapeada.', $strAtributoValidacao);
1725 1724 }
1726   -
1727 1725 }
1728 1726 }
1729 1727  
... ... @@ -2309,10 +2307,10 @@ class ExpedirProcedimentoRN extends InfraRN {
2309 2307 throw new InfraException("O sistema destinatário já recebeu esse processo, portanto não é possivel realizar o cancelamento");
2310 2308 break;
2311 2309 case ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CANCELADO:
2312   - throw new InfraException("O processo já se encontra cancelado");
  2310 + throw new InfraException("O trâmite externo para esse processo já se encontra cancelado.");
2313 2311 break;
2314 2312 case ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_RECUSADO:
2315   - throw new InfraException("O processo se encontra recusado");
  2313 + throw new InfraException("O trâmite externo para esse processo se encontra recusado.");
2316 2314 break;
2317 2315 }
2318 2316  
... ...
rn/ProcessoEletronicoRN.php
... ... @@ -402,10 +402,13 @@ class ProcessoEletronicoRN extends InfraRN {
402 402 //error_log("PARAMETROS:" . print_r($parametros, true));
403 403 return $this->getObjPenWs()->enviarProcesso($parametros);
404 404 } catch (\SoapFault $fault) {
405   - //error_log("REQUEST:" . $this->getObjPenWs()->__getLastRequest());
406   - //error_log("ERROR:" . print_r($fault, true));
407   - $mensagem = $this->tratarFalhaWebService($fault);
408   -
  405 +
  406 +
  407 + if (!empty($fault->detail->interoperabilidadeException->codigoErro) && $fault->detail->interoperabilidadeException->codigoErro == '0005') {
  408 + $mensagem = 'O código mapeado para a unidade ' . utf8_decode($parametros->novoTramiteDeProcesso->processo->documento[0]->produtor->unidade->nome) . ' está incorreto.';
  409 + } else {
  410 + $mensagem = $this->tratarFalhaWebService($fault);
  411 + }
409 412 //TODO: Remover formatação do javascript após resolução do BUG enviado para Mairon
410 413 //relacionado ao a renderização de mensagens de erro na barra de progresso
411 414 error_log($mensagem);
... ...
rn/ReceberProcedimentoRN.php
... ... @@ -11,6 +11,8 @@ class ReceberProcedimentoRN extends InfraRN
11 11 private $objInfraParametro;
12 12 private $objProcedimentoAndamentoRN;
13 13 private $documentosRetirados = array();
  14 +
  15 + public $destinatarioReal = null;
14 16  
15 17 public function __construct()
16 18 {
... ... @@ -90,9 +92,16 @@ class ReceberProcedimentoRN extends InfraRN
90 92 if (!isset($parNumIdentificacaoTramite)) {
91 93 throw new InfraException('Parâmetro $parNumIdentificacaoTramite não informado.');
92 94 }
93   -
  95 +
  96 +
94 97 //TODO: Urgente: Verificar o status do trâmite e verificar se ele já foi salvo na base de dados
95 98 $objMetadadosProcedimento = $this->objProcessoEletronicoRN->solicitarMetadados($parNumIdentificacaoTramite);
  99 +
  100 + //!Substituir a unidade destinatária para a receptora (!1!)
  101 + if (isset($objMetadadosProcedimento->metadados->unidadeReceptora)) {
  102 + $this->destinatarioReal = $objMetadadosProcedimento->metadados->destinatario->numeroDeIdentificacaoDaEstrutura;
  103 + $objMetadadosProcedimento->metadados->destinatario = $objMetadadosProcedimento->metadados->unidadeReceptora;
  104 + }
96 105  
97 106 if (isset($objMetadadosProcedimento)) {
98 107  
... ... @@ -453,8 +462,6 @@ class ReceberProcedimentoRN extends InfraRN
453 462 if(!isset($objMetadadosProcedimento)){
454 463 throw new InfraException('Parâmetro $objMetadadosProcedimento não informado.');
455 464 }
456   -
457   - $objDestinatario = $objMetadadosProcedimento->metadados->destinatario;
458 465  
459 466 //TODO: Refatorar código para criar método de pesquisa do procedimento e reutilizá-la
460 467  
... ... @@ -489,7 +496,6 @@ class ReceberProcedimentoRN extends InfraRN
489 496 $numIdUnidade = $objAtividadeDTO->getNumIdUnidade();
490 497 }
491 498  
492   -
493 499 $objSeiRN = new SeiRN();
494 500  
495 501 $objAtividadeDTO = new AtividadeDTO();
... ... @@ -528,7 +534,7 @@ class ReceberProcedimentoRN extends InfraRN
528 534 $objEntradaDesbloquearProcessoAPI = new EntradaDesbloquearProcessoAPI();
529 535 $objEntradaDesbloquearProcessoAPI->setIdProcedimento($parDblIdProcedimento);
530 536 $objSeiRN->desbloquearProcesso($objEntradaDesbloquearProcessoAPI);
531   -
  537 +
532 538 //TODO: Obter código da unidade através de mapeamento entre SEI e Barramento
533 539 $objUnidadeDTO = $this->atribuirDadosUnidade($objProcedimentoDTO, $objDestinatario);
534 540  
... ... @@ -612,9 +618,25 @@ class ReceberProcedimentoRN extends InfraRN
612 618 $strDescricao .= $objProcesso->observacao;
613 619  
614 620 $objObservacaoDTO = new ObservacaoDTO();
615   - $objObservacaoDTO->setStrDescricao($strDescricao);
616   - $objProtocoloDTO->setArrObjObservacaoDTO(array($objObservacaoDTO));
  621 +
  622 + //!Criação da observação de aviso para qual é a real unidade emitida (!2!)
  623 + if ($this->destinatarioReal) {
  624 + $objUnidadeDTO = new PenUnidadeDTO();
  625 + $objUnidadeDTO->setNumIdUnidadeRH($this->destinatarioReal);
  626 + $objUnidadeDTO->setStrSinAtivo('S');
  627 + $objUnidadeDTO->retStrDescricao();
617 628  
  629 + $objUnidadeRN = new UnidadeRN();
  630 + $objUnidadeDTO = $objUnidadeRN->consultarRN0125($objUnidadeDTO);
  631 + $objObservacaoDTO->setStrDescricao($strDescricao . PHP_EOL .'Processo remetido para a unidade ' . $objUnidadeDTO->getStrDescricao());
  632 + } else {
  633 + $objObservacaoDTO->setStrDescricao($strDescricao);
  634 + }
  635 +
  636 + //throw new InfraException(var_export($objObservacaoDTO, true));
  637 +
  638 + $objProtocoloDTO->setArrObjObservacaoDTO(array($objObservacaoDTO));
  639 +
618 640 //Atribuição de dados do procedimento
619 641 //TODO: Validar cada uma das informações de entrada do webservice
620 642 $objProcedimentoDTO = new ProcedimentoDTO();
... ... @@ -768,6 +790,7 @@ class ReceberProcedimentoRN extends InfraRN
768 790 $arrObjAtributoAndamentoDTO[] = $objAtributoAndamentoDTO;
769 791 }
770 792  
  793 +
771 794 $objAtividadeDTO = new AtividadeDTO();
772 795 $objAtividadeDTO->setDblIdProtocolo($objProcedimentoDTO->getDblIdProcedimento());
773 796 $objAtividadeDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual());
... ... @@ -780,7 +803,37 @@ class ReceberProcedimentoRN extends InfraRN
780 803  
781 804 $objAtividadeRN = new AtividadeRN();
782 805 $objAtividadeRN->gerarInternaRN0727($objAtividadeDTO);
783   -
  806 +
  807 +
  808 + //Cadastro das atividades para quando o destinatário é desviado pelo receptor (!3!)
  809 + if ($this->destinatarioReal) {
  810 + $objUnidadeDTO = new PenUnidadeDTO();
  811 + $objUnidadeDTO->setNumIdUnidadeRH($this->destinatarioReal);
  812 + $objUnidadeDTO->setStrSinAtivo('S');
  813 + $objUnidadeDTO->retStrDescricao(); //descricao
  814 + $objUnidadeRN = new UnidadeRN();
  815 + $objUnidadeDTO = $objUnidadeRN->consultarRN0125($objUnidadeDTO);
  816 +
  817 + $objAtributoAndamentoDTO = new AtributoAndamentoDTO();
  818 + $objAtributoAndamentoDTO->setStrNome('DESCRICAO');
  819 + $objAtributoAndamentoDTO->setStrValor('Processo remetido para a unidade ' . $objUnidadeDTO->getStrDescricao());
  820 + $objAtributoAndamentoDTO->setStrIdOrigem($objNivel->numeroDeIdentificacaoDaEstrutura);
  821 +
  822 + $arrObjAtributoAndamentoDTO = array($objAtributoAndamentoDTO);
  823 +
  824 + $objAtividadeDTO = new AtividadeDTO();
  825 + $objAtividadeDTO->setDblIdProtocolo($objProcedimentoDTO->getDblIdProcedimento());
  826 + $objAtividadeDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual());
  827 + $objAtividadeDTO->setNumIdUsuario(SessaoSEI::getInstance()->getNumIdUsuario());
  828 + $objAtividadeDTO->setNumIdTarefa(TarefaRN::$TI_ATUALIZACAO_ANDAMENTO);
  829 + $objAtividadeDTO->setArrObjAtributoAndamentoDTO($arrObjAtributoAndamentoDTO);
  830 + $objAtividadeDTO->setDthConclusao(null);
  831 + $objAtividadeDTO->setNumIdUsuarioConclusao(null);
  832 + $objAtividadeDTO->setStrSinInicial('N');
  833 +
  834 + $objAtividadeRN = new AtividadeRN();
  835 + $objAtividadeRN->gerarInternaRN0727($objAtividadeDTO);
  836 + }
784 837 }
785 838  
786 839  
... ... @@ -879,7 +932,7 @@ class ReceberProcedimentoRN extends InfraRN
879 932 }
880 933  
881 934 protected function atribuirDadosUnidade(ProcedimentoDTO $objProcedimentoDTO, $objDestinatario){
882   -
  935 +
883 936 if(!isset($objDestinatario)){
884 937 throw new InfraException('Parâmetro $objDestinatario não informado.');
885 938 }
... ...