/BoletoCNAB

Versão do BoletoNet para .NET Core

Primary LanguageC#MIT LicenseMIT

Build status Nuget count Nuget count Issues open Coverage Status MyGet Ultimo PR

Status

Alt

BoletoNetCore

Esta é uma versão baseado no Boleto2Net, mas para funcionar com .NET Core

Foi criado um novo projeto para não quebrar a compatibilidade com aplicações que usam .NET inferior ao 4.6.1

Carteiras Homologadas

  • Banrisul (041) - Carteira 1
  • Bradesco (237) - Carteira 09
  • Brasil (001) - Carteira 17 (Variações 019 027 035)
  • Caixa Econômica Federal (104) - Carteira SIG14
  • Cecred/Ailos (085) - Carteira 1
  • Itau (341) - Carteira 109, 112
  • Safra (422) - Carteira 1
  • Santander (033) - Carteira 101
  • Sicoob (756) - Carteira 1-01
  • Sicredi (748) - Carteira 1-A

Carteiras Implementadas (Não foi homologada. Falta teste unitário)

  • Banco do Brasil (001) - Carteira 11 (Variação 019)
  • Banco CrediSIS (097) - Carteira 18

Atenção: Para manter a ordem do projeto, qualquer solicitação de Pull Request de um novo banco ou carteira implementada, deverá seguir o formato dos bancos/carteiras já implementados e vir acompanhado de teste unitário da geração do boleto (PDF), arquivo remessa e geração de 9 boletos, com dígitos da linha digitável variando de 1 a 9, checando além do próprio dígito verificador, o cálculo do nosso número, linha digitável e código de barras.

Pre requisitos

  • Visual Studio 2017 ou superior
  • .NET Framework 4.6.1 ou superior

Como Contribuir

Leia o arquivo contributing.md

Este projeto está dividido em 3 partes:

BoletoNetCore (Projeto Principal)

Responsável por guardar toda a lógica de leitura de remessa e retorno de arquivos e regras e impressão do boleto em hipertexto. Por ser um projeto multitarget, todo o código será avaliado se puder rodar corretamente tanto em netstandard2 quanto em net40.

BoletoNetCore.Pdf

Responsável pelos serviços de impessão em PDF.

Obs.: Para geração de PDF em linux (ambientes baseados em Debian), é necessário a instalação das seguintes dependências:

apt-get install -y libfontconfig1 libxrender1 libxext6

Também é necessário garantir a permissão de execução para o binário responsável por gerar o PDF:

chmod +x "<Caminho do projeto>/BoletoNetCore.Testes/bin/Debug/net7.0/Rotativa/Linux/wkhtmltopdf"

BoletoNetCore.Testes

Validação e testes de toda a lógica dos boletos.

  • Em linhas gerais, novas carteiras deverão passar por validações e apresentar comprovação de passe nos testes propostos, contendo validações conforme proposto acima.
  • Procure comentar todo o código para facilitar o entendimento e motivação para outros colegas. Embora o código original não seja muito comentado, não é motivo para que se crie o hábito.
  • Se houver a necessidade de incluir novas imagens ou recursos para impressão, abra uma issue primeiro, ou apenas use as pastas convencionadas no projeto para receber esses tipos de arquivo. /Images e /BoletoBancario
  • Nomenclaturas e termos devem estar alinhados aos padrões definidos no CNAB: https://cmsportal.febraban.org.br/Arquivos/documentos/PDF/Layout%20padrao%20CNAB240%20%20V%2010%2005%20-%2005_11_18.pdf
  • A Estrutura das classes dos Banco estão distribuídas em arquivos que representam partial classes
  • Cada uma das partial classes implementa uma interface diferente que representa um formato, existem 3 formatos implementados: CNAB400, CNAB240 e OnlineRest (Procuramos Implementadores)

Migrando do Boleto2Net

Este projeto possui algumas diferenças relevantes em relação ao Boleto2Net que podem quebrar o seu código:

  • Retorno de Arquivos CNAB geram CodMovimentoRetorno no Lugar de CodOcorrencia.
  • Se você quer usar a impressão em PDF, use o BoletoNetCorePdfProxy e não BoletoNetCoreProxy.
  • Para a impressão em PDF, também é necessário a instalação do pacote BoletoNetCore.Pdf.
  • Este projeto não usa System.Web então, não existem componentes manipuláveis para WebForms para o Editor do VS.
  • Cedente e Sacado foram substituidos em todo o projeto pelos termos atuais Beneficiario e Pagador