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

fix: erro de descrição longa com utf8 #295

Merged
Show file tree
Hide file tree
Changes from 4 commits
Commits
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
61 changes: 61 additions & 0 deletions docs/changelogs/CHANGELOG-3.3.1.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
# NOTAS DE VERSÃO MOD-SEI-PEN (versão 3.3.1)

Este documento descreve as principais mudanças aplicadas nesta versão do módulo de integração do SEI com o TRAMITA.GOV.BR.

As melhorias entregues em cada uma das versões são cumulativas, ou seja, contêm todas as implementações realizadas em versões anteriores.

## Compatibilidade de versões
* O módulo é compatível com as seguintes versões do **SEI**:
* 3.1.0 até 3.1.7,
* 4.0.0 até 4.0.10

Para maiores informações sobre os procedimentos de instalação ou atualização, acesse os seguintes documentos localizados no pacote de distribuição mod-sei-pen-VERSAO.zip:
> Atenção: É impreterível seguir rigorosamente o disposto no README.md do Módulo para instalação ou atualização com sucesso.

* **INSTALACAO.md** - Procedimento de instalação e configuração do módulo
* **ATUALIZACAO.md** - Procedimento específicos para atualização de uma versão anterior

### Lista de melhorias e correções de problemas

Todas as atualizações podem incluir itens referentes à segurança, requisito em permanente monitoramento e evolução, motivo pelo qual a atualização com a maior brevidade possível é sempre recomendada.


#### Erro de SOAP-ERROR com 'is not a valid utf-8 string' em descrição de órgãos muito grandes (#294)

Trata erro de encoding com descrição de órgãos e unidades muito longas e characteres grandes inválidos para utf8;



### Atualização de Versão

Para obter informações detalhadas sobre cada um dos passos de atualização, vide arquivo **ATUALIZACAO.md**.

#### Instruções

1. Baixar a última versão do módulo de instalação do sistema (arquivo `mod-sei-pen-[VERSÃO].zip`) localizado na página de [Releases do projeto MOD-SEI-PEN](https://github.com/spbgovbr/mod-sei-pen/releases), seção **Assets**. _Somente usuários autorizados previamente pela Coordenação-Geral do Processo Eletrônico Nacional podem ter acesso às versões._

2. Fazer backup dos diretórios "sei", "sip" e "infra" do servidor web;

3. Descompactar o pacote de instalação `mod-sei-pen-[VERSÃO].zip`;

4. Copiar os diretórios descompactados "sei", "sip" para os servidores, sobrescrevendo os arquivos existentes;

5. Executar o script de instalação/atualização `sei_atualizar_versao_modulo_pen.php` do módulo para o SEI localizado no diretório `sei/scripts/mod-pen/`

```bash
php -c /etc/php.ini <DIRETÓRIO RAIZ DE INSTALAÇÃO DO SEI E SIP>/sei/scripts/mod-pen/sei_atualizar_versao_modulo_pen.php
```

6. Executar o script de instalação/atualização `sip_atualizar_versao_modulo_pen.php` do módulo para o SIP localizado no diretório `sip/scripts/mod-pen/`

```bash
php -c /etc/php.ini <DIRETÓRIO RAIZ DE INSTALAÇÃO DO SEI E SIP>/sip/scripts/mod-pen/sip_atualizar_versao_modulo_pen.php
```

7. Verificar a correta instalação e configuração do módulo

Para executar a verificação, execute o script ```verifica_instalacao_modulo_pen.php``` localizado no diretório de scripts do SEI ```<DIRETÓRIO RAIZ DE INSTALAÇÃO DO SEI E SIP>/sei/scripts/mod-pen/```.

```bash
$ php -c /etc/php.ini <DIRETÓRIO RAIZ DE INSTALAÇÃO DO SEI E SIP>/sei/scripts/mod-pen/verifica_instalacao_modulo_pen.php
```
8 changes: 4 additions & 4 deletions src/rn/ExpedirProcedimentoRN.php
Original file line number Diff line number Diff line change
Expand Up @@ -1726,25 +1726,25 @@ 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){
$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));
$objDocumento->identificacao->ano = substr($parObjDocumentoDTO->getDtaGeracaoProtocolo(), 6, 4);
}
}
Expand Down
18 changes: 18 additions & 0 deletions tests_super/unitario/rn/ProcessoEletronicoRNTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -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(){
Expand Down