From bc0b41d3c024401844b10468805e5415f42d9e89 Mon Sep 17 00:00:00 2001 From: caduvieira <3831408+caduvieira@users.noreply.github.com> Date: Tue, 15 Aug 2023 11:42:37 -0300 Subject: [PATCH] =?UTF-8?q?fix:=20erro=20de=20descri=C3=A7=C3=A3o=20longa?= =?UTF-8?q?=20com=20utf8=20(#295)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix: erro de descrição longa com utf8 Exemplo do Erro: SOAP-ERROR: Encoding: string 'Assessoria de Comunicação do Gabinete do Diretor-Presidente da Autoridade Nacional de Proteç\xc3...' is not a valid utf-8 string * fix: erro de descrição longa com utf8 Exemplo do Erro: SOAP-ERROR: Encoding: string 'Assessoria de Comunicação do Gabinete do Diretor-Presidente da Autoridade Nacional de Proteç\xc3...' is not a valid utf-8 string * fix: erro de descrição longa com utf8 Exemplo do Erro: SOAP-ERROR: Encoding: string 'Assessoria de Comunicação do Gabinete do Diretor-Presidente da Autoridade Nacional de Proteç\xc3...' is not a valid utf-8 string * tests: adiciona teste de descrição longa com utf8 --- docs/changelogs/CHANGELOG-3.3.1.md | 0 src/rn/ExpedirProcedimentoRN.php | 8 ++++---- .../unitario/rn/ProcessoEletronicoRNTest.php | 18 ++++++++++++++++++ 3 files changed, 22 insertions(+), 4 deletions(-) mode change 100755 => 100644 docs/changelogs/CHANGELOG-3.3.1.md diff --git a/docs/changelogs/CHANGELOG-3.3.1.md b/docs/changelogs/CHANGELOG-3.3.1.md old mode 100755 new mode 100644 diff --git a/src/rn/ExpedirProcedimentoRN.php b/src/rn/ExpedirProcedimentoRN.php index 55d28be54..8153c3eeb 100755 --- a/src/rn/ExpedirProcedimentoRN.php +++ b/src/rn/ExpedirProcedimentoRN.php @@ -1729,17 +1729,17 @@ private function atribuirNumeracaoDocumento($objDocumento, DocumentoDTO $parObjD $objDocumento->identificacao = new stdClass(); $objDocumento->identificacao->numero = utf8_encode($parObjDocumentoDTO->getStrNumero()); $objDocumento->identificacao->siglaDaUnidadeProdutora = utf8_encode($parObjDocumentoDTO->getStrSiglaUnidadeGeradoraProtocolo()); - $objDocumento->identificacao->complemento = $this->objProcessoEletronicoRN->reduzirCampoTexto(utf8_encode($parObjDocumentoDTO->getStrDescricaoUnidadeGeradoraProtocolo()), 100); + $objDocumento->identificacao->complemento = utf8_encode($this->objProcessoEletronicoRN->reduzirCampoTexto($parObjDocumentoDTO->getStrDescricaoUnidadeGeradoraProtocolo(), 100)); }else if($strStaNumeracao == SerieRN::$TN_SEQUENCIAL_ORGAO){ $objOrgaoDTO = $this->consultarOrgao($parObjDocumentoDTO->getNumIdOrgaoUnidadeGeradoraProtocolo()); $objDocumento->identificacao = new stdClass(); $objDocumento->identificacao->numero = utf8_encode($parObjDocumentoDTO->getStrNumero()); $objDocumento->identificacao->siglaDaUnidadeProdutora = utf8_encode($objOrgaoDTO->getStrSigla()); - $objDocumento->identificacao->complemento = $this->objProcessoEletronicoRN->reduzirCampoTexto(utf8_encode($objOrgaoDTO->getStrDescricao()), 100); + $objDocumento->identificacao->complemento = utf8_encode($this->objProcessoEletronicoRN->reduzirCampoTexto($objOrgaoDTO->getStrDescricao(), 100)); }else if($strStaNumeracao == SerieRN::$TN_SEQUENCIAL_ANUAL_UNIDADE){ $objDocumento->identificacao = new stdClass(); $objDocumento->identificacao->siglaDaUnidadeProdutora = utf8_encode($parObjDocumentoDTO->getStrSiglaUnidadeGeradoraProtocolo()); - $objDocumento->identificacao->complemento = $this->objProcessoEletronicoRN->reduzirCampoTexto(utf8_encode($parObjDocumentoDTO->getStrDescricaoUnidadeGeradoraProtocolo()), 100); + $objDocumento->identificacao->complemento = utf8_encode($this->objProcessoEletronicoRN->reduzirCampoTexto($parObjDocumentoDTO->getStrDescricaoUnidadeGeradoraProtocolo(), 100)); $objDocumento->identificacao->numero = utf8_encode($parObjDocumentoDTO->getStrNumero()); $objDocumento->identificacao->ano = substr($parObjDocumentoDTO->getDtaGeracaoProtocolo(), 6, 4); }else if($strStaNumeracao == SerieRN::$TN_SEQUENCIAL_ANUAL_ORGAO){ @@ -1747,7 +1747,7 @@ private function atribuirNumeracaoDocumento($objDocumento, DocumentoDTO $parObjD $objDocumento->identificacao = new stdClass(); $objDocumento->identificacao->numero = utf8_encode($parObjDocumentoDTO->getStrNumero()); $objDocumento->identificacao->siglaDaUnidadeProdutora = utf8_encode($objOrgaoDTO->getStrSigla()); - $objDocumento->identificacao->complemento = $this->objProcessoEletronicoRN->reduzirCampoTexto(utf8_encode($objOrgaoDTO->getStrDescricao()), 100); + $objDocumento->identificacao->complemento = utf8_encode($this->objProcessoEletronicoRN->reduzirCampoTexto($objOrgaoDTO->getStrDescricao(), 100)); $objDocumento->identificacao->ano = substr($parObjDocumentoDTO->getDtaGeracaoProtocolo(), 6, 4); } } diff --git a/tests_super/unitario/rn/ProcessoEletronicoRNTest.php b/tests_super/unitario/rn/ProcessoEletronicoRNTest.php index dedc8dbe7..e13e912cc 100755 --- a/tests_super/unitario/rn/ProcessoEletronicoRNTest.php +++ b/tests_super/unitario/rn/ProcessoEletronicoRNTest.php @@ -82,6 +82,24 @@ public function testReduzirCampoTexto() $this->assertEquals($strResultadoEsperado, $strResultadoAtual); $this->assertTrue(strlen($strResultadoAtual) <= 150); + $strTexto = "ããããã ããããã"; + $strResultadoEsperado = utf8_encode("ããããã ..."); + $strResultadoAtual = utf8_encode($this->objProcessoEletronicoRN->reduzirCampoTexto($strTexto, 9)); + $this->assertEquals($strResultadoEsperado, $strResultadoAtual); + $this->assertTrue(strlen(utf8_decode($strResultadoAtual)) <= 9); + + $strTexto = "ããããã ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut lbore et dolore magna aliqua. Ut enim ad minim veniamr quis"; + $strResultadoEsperado = utf8_encode("ããããã ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut lbore et dolore magna aliqua. Ut enim ad minim veniam ..."); + $strResultadoAtual = utf8_encode($this->objProcessoEletronicoRN->reduzirCampoTexto($strTexto, 150)); + $this->assertEquals($strResultadoEsperado, $strResultadoAtual); + $this->assertTrue(mb_strlen($strResultadoAtual) <= 150); + + $strTexto = "Assessoria de Comunicação do Gabinete do Diretor-Presidente da Autoridade Nacional dede Proteção de dados"; + $strResultadoEsperado = utf8_encode("Assessoria de Comunicação do Gabinete do Diretor-Presidente da Autoridade Nacional dede Proteçã ..."); + $strResultadoAtual = utf8_encode($this->objProcessoEletronicoRN->reduzirCampoTexto($strTexto, 100)); + $this->assertEquals($strResultadoEsperado, $strResultadoAtual); + $this->assertTrue(strlen(utf8_decode($strResultadoAtual)) <= 100); + } public function testCompararVersoes(){