Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

261 melhoria da mensagem alteração na ordem de documentos do processo indicar ordem #269

Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
b085220
feat: melhoria na mensagem de alteração de ordem de documentos do pro…
Mauro1706 Dec 30, 2022
571a886
Merge branch 'master' into 81-melhoria-da-mensagem-alteração-na-ordem…
Mauro1706 Feb 7, 2023
7043eb5
feat: correções para validações de tramite de ordem alterada
Mauro1706 Feb 7, 2023
b4f7e32
fix: correção de arquivo diferente
Mauro1706 Feb 7, 2023
024e065
feat: melhoria na mensagem de alteração de ordem de documentos do pro…
Mauro1706 Feb 7, 2023
46c343a
feat: melhoria de código para melhoria da mensagem para alteração na …
Mauro1706 Feb 20, 2023
1ab9aa0
feat: complementacao da mensagem de indicacao de ordem do documento
mic-oliveira Apr 23, 2023
d6ac79a
Merge branch 'master' into 261-melhoria-da-mensagem-alteração-na-orde…
mic-oliveira Apr 24, 2023
cf70752
fix: quebra de linhas na mensagem
mic-oliveira Apr 26, 2023
eebdd96
fix: quebra de linhas na mensagem
mic-oliveira Apr 27, 2023
5152d9a
mensagem atualizada
mic-oliveira May 4, 2023
4ded980
chore: correcao texto
mic-oliveira May 12, 2023
8a15df0
chore: correcao texto
mic-oliveira May 12, 2023
e55d727
Merge remote-tracking branch 'origin/master' into 261-melhoria-da-men…
michael-ferreira2022 May 15, 2023
0ca53ac
chore: correcao da mensagem de documento alterado
michael-ferreira2022 Jun 14, 2023
fa95cc5
chore: correcao da mensagem de documento alterado
michael-ferreira2022 Jun 14, 2023
9152cf3
chore: correcao da mensagem de documento alterado
michael-ferreira2022 Jun 14, 2023
0014f08
fix: correcao pr
michael-ferreira2022 Jun 22, 2023
5732ec3
fix: correcao exibicao mensagem de alteracao de ordem de documento do…
michael-ferreira2022 Jun 29, 2023
e81ff05
feat: mensagem excecao ao mudar ordem processo
michael-ferreira2022 Jul 17, 2023
5c7454c
Merge branch 'master' into 261-melhoria-da-mensagem-alteração-na-orde…
michael-ferreira2022 Aug 4, 2023
2157dd8
chore: descricao do teste
michael-ferreira2022 Aug 4, 2023
880005e
fix: test funcional
michael-ferreira2022 Sep 28, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 13 additions & 12 deletions src/rn/ExpedirProcedimentoRN.php
Original file line number Diff line number Diff line change
Expand Up @@ -212,11 +212,12 @@ protected function expedirProcedimentoControlado(ExpedirProcedimentoDTO $objExpe
$this->objProcessoEletronicoRN->cancelarTramite($objTramiteInconsistente->IDT);
}

$param = new stdClass();
$param->novoTramiteDeProcesso = new stdClass();
$param->novoTramiteDeProcesso->cabecalho = $objCabecalho;
$param->novoTramiteDeProcesso->processo = $objProcesso;
$novoTramite = $this->objProcessoEletronicoRN->enviarProcesso($param);
$param = new stdClass();
$param->novoTramiteDeProcesso = new stdClass();
$param->novoTramiteDeProcesso->cabecalho = $objCabecalho;
$param->novoTramiteDeProcesso->processo = $objProcesso;
$param->dblIdProcedimento = $dblIdProcedimento;
$novoTramite = $this->objProcessoEletronicoRN->enviarProcesso($param);

$numIdTramite = $novoTramite->dadosTramiteDeProcessoCriado->IDT;
$this->lancarEventoEnvioMetadados($numIdTramite);
Expand Down Expand Up @@ -2458,13 +2459,13 @@ private function validarHipoteseLegalEnvio(InfraException $objInfraException, Pr
$objInfraException->adicionarValidacao('N�o � poss�vel tramitar um processo de n�vel restrito sem a hip�tese legal mapeada.', $strAtributoValidacao);
}

$objHipoteseLegalDTO = new HipoteseLegalDTO();
$objHipoteseLegalDTO->setNumIdHipoteseLegal($objProcedimentoDTO->getNumIdHipoteseLegalProtocolo());
$objHipoteseLegalDTO->setBolExclusaoLogica(false);
$objHipoteseLegalDTO->retStrNome();
$objHipoteseLegalDTO->retStrSinAtivo();
$objHipoteseLegalRN = new HipoteseLegalRN();
$dados = $objHipoteseLegalRN->consultar($objHipoteseLegalDTO);
$objHipoteseLegalDTO = new HipoteseLegalDTO();
$objHipoteseLegalDTO->setNumIdHipoteseLegal($objProcedimentoDTO->getNumIdHipoteseLegalProtocolo());
$objHipoteseLegalDTO->setBolExclusaoLogica(false);
$objHipoteseLegalDTO->retStrNome();
$objHipoteseLegalDTO->retStrSinAtivo();
$objHipoteseLegalRN = new HipoteseLegalRN();
$dados = $objHipoteseLegalRN->consultar($objHipoteseLegalDTO);

$objPenRelHipoteseLegalEnvioRN = new PenRelHipoteseLegalEnvioRN();
if(!empty($dados)){
Expand Down
66 changes: 53 additions & 13 deletions src/rn/ProcessoEletronicoRN.php
Original file line number Diff line number Diff line change
Expand Up @@ -547,22 +547,62 @@ public function enviarProcesso($parametros)
return $objPenWs->enviarProcesso($parametros);
});

} catch (\SoapFault $e) {
$strMensagem = str_replace(array("\n", "\r"), ' ', InfraString::formatarJavaScript(utf8_decode($e->faultstring)));
if ($e instanceof \SoapFault && !empty($e->detail->interoperabilidadeException->codigoErro) && $e->detail->interoperabilidadeException->codigoErro == '0005') {
$$strMensagem .= 'O c�digo mapeado para a unidade ' . utf8_decode($parametros->novoTramiteDeProcesso->processo->documento[0]->produtor->unidade->nome) . ' est� incorreto.';
}
} catch (\SoapFault $e) {
$strMensagem = str_replace(array("\n", "\r"), ' ', InfraString::formatarJavaScript(utf8_decode($e->faultstring)));
if ($e instanceof \SoapFault && !empty($e->detail->interoperabilidadeException->codigoErro) && $e->detail->interoperabilidadeException->codigoErro == '0005') {
$strMensagem .= 'O c�digo mapeado para a unidade ' . utf8_decode($parametros->novoTramiteDeProcesso->processo->documento[0]->produtor->unidade->nome) . ' est� incorreto.';
}

$strDetalhes = str_replace(array("\n", "\r"), ' ', InfraString::formatarJavaScript($this->tratarFalhaWebService($e)));
throw new InfraException($strMensagem, $e, $strDetalhes);
} catch (\Exception $e) {
$mensagem = "Falha no envio externo do processo. Verifique log de erros do sistema para maiores informa��es.";
$detalhes = InfraString::formatarJavaScript($this->tratarFalhaWebService($e));
throw new InfraException($mensagem, $e, $detalhes);
$strDetalhes = str_replace(array("\n", "\r"), ' ', InfraString::formatarJavaScript($this->tratarFalhaWebService($e)));
$detalhes = InfraString::formatarJavaScript($this->tratarFalhaWebService($e));
if (strpos(strtolower($strMensagem), "hash de ao menos um componente digital n�o confere")) {
$strMensagem = $this->validarMudancaOrdemDocumentos($parametros->dblIdProcedimento, $strMensagem, $parametros);
}
throw new InfraException($strMensagem, $e, $strDetalhes);
} catch (\Exception $e) {
$mensagem = "Falha no envio externo do processo. Verifique log de erros do sistema para maiores informa��es.";
$detalhes = InfraString::formatarJavaScript($this->tratarFalhaWebService($e));
throw new InfraException($mensagem, $e, $detalhes);
}
}

private function validarMudancaOrdemDocumentos($dblIdProcedimento, $strMensagem, $params = null)
{
$objProcessoEletronicoDTO = new ProcessoEletronicoDTO();
$objProcessoEletronicoDTO->setDblIdProcedimento($dblIdProcedimento);

$objProcessoEletronicoRN = new ProcessoEletronicoRN();
$objUltimoTramiteDTO = $objProcessoEletronicoRN->consultarUltimoTramite($objProcessoEletronicoDTO);
$numIdTramite = $objUltimoTramiteDTO->getNumIdTramite();

if (!is_null($numIdTramite) && $numIdTramite > 0) {
$objAtividadeDTO = new AtividadeDTO();
$objAtividadeDTO->setDblIdProtocolo($dblIdProcedimento);
$objAtividadeDTO->setNumIdTarefa(TarefaRN::$TI_PROCESSO_ALTERACAO_ORDEM_ARVORE);
$objAtividadeDTO->setOrdDthAbertura(InfraDTO::$TIPO_ORDENACAO_DESC);
$objAtividadeDTO->retNumIdAtividade();
$objAtividadeDTO->retDblIdProcedimentoProtocolo();

$objAtividadeRN = new AtividadeRN();
$arrObjAtividadeDTO = $objAtividadeRN->contarRN0035($objAtividadeDTO);

$msg = "Houve uma altera��o na ordem dos documentos no processo, o que impede o reenvio de um processo que j� foi tramitado pela plataforma. ".
"Portanto, � recomendado reordenar os documentos de acordo com a ordem original. ".
"Caso voc� seja um usu�rio sem permiss�o para reordenar o processo, � necess�rio entrar em contato internamente para identificar quem possui essa permiss�o.";

if ($arrObjAtividadeDTO > 0) {
$strMensagem = str_replace(
'hash de ao menos um componente digital n�o confere',
$msg,
$strMensagem
);
}
}

return $strMensagem;
}
}

public function listarPendencias($bolTodasPendencias)
public function listarPendencias($bolTodasPendencias)
{
$arrObjPendenciaDTO = array();

Expand Down
17 changes: 17 additions & 0 deletions tests_super/funcional/src/paginas/PaginaReordenarProcesso.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<?php

class PaginaReordenarProcesso extends PaginaTeste
{
public function irParaPaginaMudarOrdem()
{
$this->test->frame(null);
$this->test->frame("ifrVisualizacao");
$this->test->byXPath(utf8_encode("//img[@alt='Ordenar �rvore do Processo']"))->click();
}

public function clicarReordenar()
{
$this->test->byId('imgRelProtocoloProtocoloReordenar')->click();
}

}
2 changes: 2 additions & 0 deletions tests_super/funcional/tests/CenarioBaseTestCase.php
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ class CenarioBaseTestCase extends Selenium2TestCase
protected $paginaAnexarProcesso = null;
protected $paginaCancelarDocumento = null;
protected $paginaTramitarProcessoEmLote = null;
protected $paginaReordenarProcesso = null;

public function setUpPage(): void
{
Expand All @@ -56,6 +57,7 @@ public function setUpPage(): void
$this->paginaCancelarDocumento = new PaginaCancelarDocumento($this);
$this->paginaMoverDocumento = new PaginaMoverDocumento($this);
$this->paginaTramitarProcessoEmLote = new PaginaTramitarProcessoEmLote($this);
$this->paginaReordenarProcesso = new PaginaReordenarProcesso($this);
$this->currentWindow()->maximize();
}

Expand Down
115 changes: 115 additions & 0 deletions tests_super/funcional/tests/ReordernarProcesso.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,115 @@
<?php

/**
* Testes de tr�mite de processos em lote
*
* Este mesmo documento deve ser recebido e assinalado como cancelado no destinat�rio e
* a devolu��o do mesmo processo n�o deve ser impactado pela inser��o de outros documentos
*/
class ReordernarProcesso extends CenarioBaseTestCase
{
public static $remetente;
public static $destinatario;
public static $processoTeste;
public static $documentoTeste1;
public static $documentoTeste2;
public static $protocoloTeste;
public static $documentosTeste;


/**
* Testa a funcionalidade de reordernar documento no Super
*
* @return true
*
*/
public function test_reordenar_ordem()
{
//Aumenta o tempo de timeout devido � quantidade de arquivos
$this->setSeleniumServerRequestsTimeout(6000);

// Configura��o do dados para teste do cen�rio
self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A);
self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B);
self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente);
self::$documentosTeste[] = $this->gerarDadosDocumentoInternoTeste(self::$remetente);
self::$documentosTeste[] = $this->gerarDadosDocumentoInternoTeste(self::$remetente);
self::$documentosTeste[] = $this->gerarDadosDocumentoInternoTeste(self::$remetente);


$this->assinarDocumentosInterno(self::$processoTeste, self::$documentosTeste, self::$remetente, self::$destinatario);
$this->abrirProcesso(self::$processoTeste["PROTOCOLO"]);
sleep(3);
$this->paginaReordenarProcesso->irParaPaginaMudarOrdem();
$this->paginaReordenarProcesso->clicarReordenar();
sleep(3);
$this->acceptAlert();
$this->assertTrue(true);
}

public function assinarDocumentosInterno(&$processoTeste, $documentosTeste, $remetente, $destinatario)
{
$orgaosDiferentes = $remetente['URL'] != $destinatario['URL'];

// 1 - Acessar sistema do REMETENTE do processo
$this->acessarSistema($remetente['URL'], $remetente['SIGLA_UNIDADE'], $remetente['LOGIN'], $remetente['SENHA']);

// 2 - Cadastrar novo processo de teste
if (isset($processoTeste['PROTOCOLO'])) {
$strProtocoloTeste = $processoTeste['PROTOCOLO'];
$this->abrirProcesso($strProtocoloTeste);
} else {
$strProtocoloTeste = $this->cadastrarProcesso($processoTeste);
$processoTeste['PROTOCOLO'] = $strProtocoloTeste;
}

// 3 - Incluir Documentos no Processo
$documentosTeste = array_key_exists('TIPO', $documentosTeste) ? array($documentosTeste) : $documentosTeste;
foreach ($documentosTeste as $doc) {
$this->cadastrarDocumentoInterno($doc);
$this->assinarDocumento($remetente['ORGAO'], $remetente['CARGO_ASSINATURA'], $remetente['SENHA']);
}
}

public function test_reordenar_processo_com_adicao_de_documento()
{
//Aumenta o tempo de timeout devido � quantidade de arquivos
$this->setSeleniumServerRequestsTimeout(6000);

// Configura��o do dados para teste do cen�rio
self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A);
self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B);
self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente);
self::$documentosTeste[] = $this->gerarDadosDocumentoInternoTeste(self::$remetente);
self::$documentosTeste[] = $this->gerarDadosDocumentoInternoTeste(self::$remetente);
self::$documentosTeste[] = $this->gerarDadosDocumentoInternoTeste(self::$remetente);


$this->assinarDocumentosInterno(self::$processoTeste, self::$documentosTeste, self::$remetente, self::$destinatario);
$this->abrirProcesso(self::$processoTeste["PROTOCOLO"]);
sleep(3);
$this->paginaReordenarProcesso->irParaPaginaMudarOrdem();
$this->paginaReordenarProcesso->clicarReordenar();
sleep(3);
$this->realizarTramiteExternoComValidacaoNoRemetente(self::$protocoloTeste, self::$documentosTeste, self::$remetente, self::$destinatario);
self::$protocoloTeste = self::$processoTeste["PROTOCOLO"];
$this->sairSistema();

// Configura��o do dados para teste do cen�rio
self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_B);
self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_A);
self::$documentosTeste = [];
self::$documentosTeste[] = $this->gerarDadosDocumentoInternoTeste(self::$remetente);
self::$documentosTeste[] = $this->gerarDadosDocumentoInternoTeste(self::$remetente);
$this->assinarDocumentosInterno(self::$processoTeste, self::$documentosTeste, self::$remetente, self::$destinatario);

$this->abrirProcesso(self::$processoTeste["PROTOCOLO"]);
self::$processoTeste = self::$protocoloTeste["PROTOCOLO"];

sleep(3);
$this->paginaReordenarProcesso->irParaPaginaMudarOrdem();


$this->assertTrue(true);
}
}