caelum / caelum-stella

O Caelum Stella visa suprir as necessidades do dia a dia do desenvolvedor brasileiro
http://stella.caelum.com.br
663 stars 340 forks source link

Atualização de modelo de relatório: #231

Closed MathOliveira closed 6 years ago

MathOliveira commented 6 years ago

228

Esse pull request feita por mim e pelo @EliasMezalira complementa o pull #229

angeliski commented 6 years ago

Desculpa a demora no Retorno @MathOliveira , no FDS eu vou priorizar isso

gilbertoca commented 5 years ago

@angeliski @MathOliveira @EliasMezalira Há uma regressão aqui. Uma página vazia é gerada antes do boleto.

angeliski commented 5 years ago

Nossa @gilbertoca Você pode abrir uma issue com as evidências? Assim a gente acompanha por lá junto da correção.

gilbertoca commented 5 years ago

Rogério (@angeliski ), a única evidência no momento são os boletos dos clientes da aplicação que desenvolvi(gerando duas páginas) - construi a aplicação com a nova versão do stella-boleto. Infelizmente o teste de integração deleta o pdf do boleto no final do teste. Talvez um test unitário verificando se há mais de uma páguina? No momento estou atarefado, mas assim que puder verifico isso.

gilbertoca commented 3 years ago

@angeliski acrescentei esse teste no meu fork:

    @Test
    public void testPDFWriterGerouUmaPagina() throws IOException {
                PDDocument document = PDDocument.load(new File("arquivo.pdf"));                
                int numberOfPages = document.getNumberOfPages();
                document.close();
        assertTrue(numberOfPages == 1);
    }

E a regressão é no sistema que mantenho. Nesse sistema, uso o Jasperreports 6.8.1 com o stella-boleto-2.1.3 sem esse problema da pagina em branco. Agora é investigar mais a fundo.

gilbertoca commented 3 years ago

@MathOliveira @angeliski , gostaria rever esse PR, pois o mesmo causou regressão da versão 2.1.3 para 2.1.4, a qual esse PR foi feito merge. No comentário anterior, o qual mencionei que adicionei um teste do meu fork do projeto e não constantando problema, foi usado os valores default. Quando acrescento mais instruções no corpo do boleto o erro é evidenciado - estou nesse problema a 3 dias. O sistema está na versão 2.1.3, mas é impactado bug do ano 2024 #233, quando atualizo para 2.1.4, consigo gerar boletos mas caio aqui nessa regressão. Portanto considere:

* Correção de erros ortográficos;

Tudo bem aqui.

  • Tamanho do código de barras foi ampliado; Tudo bem aqui.
  • Adicionado digito do nosso número nos respectivos campos; A documentação da FEBRABAN não menciona digito verificador para NOSSO_NUMERO no leiaute do boleto de cobrança, esse número é personalizado para cada banco, portanto, não cabe essa mudança. Quando testo com a versão 2.1.4, os boletos do sistema saem como NOSSO_NUMERO - null. numero-contrato.pdf
  • Atualizado layout do boleto, removendo espaços desnecessários; Essa parte deu mais trabalho para descobrir. Fiz um diff das versões e o arquivo jrxml foi acrescido em todo ele pela tag positionType="FixRelativeToBottom" , causando (creio eu) a geração de duas páginas para o boleto, a primeira em branco.

diff-stella-boleto-13-para-14

* Adicionado hífen separando o CEP da endereço do pagador;

Tudo bem aqui.

No momento reverti esse leiaute no meu fork para permitir gerar boletos após 2025. numero-contrato-patched.pdf

Não entendo como isso não impactou outros que usam a API. Mas entendo se não considerarem isso como regressão.

angeliski commented 3 years ago

Salve @gilbertoca Primeiro agradecer por essa investigação primorosa, belíssimo trabalho. Acredito que temos dois problemas aqui então:

O primeiro caso me parece que podemos tratar o layout para não exibir a informação quando o digito não for informado.

No segundo caso, acho que uma solução precisa ser mais investigada, faz sentido? Podemos abrir duas issues para lidar com isso e gerar uma nova versão com todas essas correções.

gilbertoca commented 3 years ago

Concordo @angeliski . Foi o que fiz aqui https://github.com/caelum/caelum-stella/compare/master...gilbertoca:regressao-boleto--2.1.4 , revertendo esses dois pontos somente no leiaute do boleto. O @MathOliveira poderia acompanhar o patch e verificar se impacta algum sistema que ele mantém.