paulofoxbr / BoletoNetCore

Versão do BoletoNet para .NET Core

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

Status

Alt

Projeto boleto .NET Core

Esta é uma versão do Boleto2Net, adaptada para funcionar com .NET Core. Para evitar a quebra de compatibilidade com aplicações que utilizam versões do .NET inferiores à 4.6.1, optamos por criar um novo projeto.

O que é o projeto boleto .net core? R: Live sobre o entendimento do projeto

Carteiras Homologadas

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

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

Banco Código do banco Carteira
Banco do Brasil 001 11 (Variação 019)
Banco CrediSIS 097 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

About

Versão do BoletoNet para .NET Core

License:MIT License


Languages

Language:C# 95.2%Language:HTML 4.3%Language:CSS 0.5%Language:PowerShell 0.0%