Closed EriksJunior closed 6 months ago
@EriksJunior Quebrou um teste, valida por favor.
Dei uma olhada nos testes, porém aqui esta dando problema somente no teste do Banco Sicredi REM 240 e 400.
Dei uma olhada no manual https://www.sicredi.com.br/media/manual_cnab_400_28062021.pdf pagina-4, na função ValidaBoleto esta sendo passado como parâmetro o boleto com a EspecieDocumento DM, porém na documentação só existe DMI e no switch só tem o caso para TipoEspecieDocumento.DMI
==================================================================================
public void ValidaBoleto(Boleto boleto)
{
switch (boleto.EspecieDocumento)
{
case TipoEspecieDocumento.DMI:
case TipoEspecieDocumento.DR:
case TipoEspecieDocumento.NP:
case TipoEspecieDocumento.NPR:
case TipoEspecieDocumento.NS:
case TipoEspecieDocumento.RC:
case TipoEspecieDocumento.LC:
case TipoEspecieDocumento.ND:
case TipoEspecieDocumento.DSI:
case TipoEspecieDocumento.OU:
break; //TIPOS POSSÍVEIS DE ACORDO COM A DOCUMENTAÇÃO DO SICREDI
default:
throw new Exception($"Especie de documento: {boleto.EspecieDocumento} inválida para o banco {Nome}.");
}
}
==================================================================================
Atualmente a Função GerarBoleto esta desta forma abaixo, EspecieDocumento = TipoEspecieDocumento.DM
*var boleto = new Boleto(banco) { Sacado = GerarSacado(), DataEmissao = DateTime.Now.AddDays(-3), DataProcessamento = DateTime.Now, DataVencimento = DateTime.Now.AddMonths(i), ValorTitulo = (decimal)100 i, NossoNumero = NossoNumeroInicial == 0 ? "" : (NossoNumeroInicial + _proximoNossoNumero).ToString(), NumeroDocumento = "BB" + _proximoNossoNumero.ToString("D6") + (char)(64 + i), EspecieDocumento = TipoEspecieDocumento.DM, Aceite = aceite, CodigoInstrucao1 = "11", CodigoInstrucao2 = "22", DataDesconto = DateTime.Now.AddMonths(i), ValorDesconto = (decimal)(100 i 0.10), DataMulta = DateTime.Now.AddMonths(i), PercentualMulta = (decimal)2.00, ValorMulta = (decimal)(100 i (2.00 / 100)), DataJuros = DateTime.Now.AddMonths(i), PercentualJurosDia = (decimal)0.2, ValorJurosDia = (decimal)(100 i (0.2 / 100)), MensagemArquivoRemessa = "Mensagem para o arquivo remessa", NumeroControleParticipante = "CHAVEPRIMARIA=" + _proximoNossoNumero }**
Fiz a alteração passando TipoEspecieDocumento.DMI e passou no teste tranquilo,
@EriksJunior Precisa corrigir o teste
@carloscds tarde!!!
Eu acho que o problema do teste não é do código, e sim no github mesmo: https://github.com/BoletoNet/boleto2net/pull/349#issuecomment-1217155640
tem outro PR com o mesmo problema.
@rafd75 Vou verificar.
@rafd75 @EriksJunior Eu corrigi o problema. A falha, de acordo com este post: https://www.giorgi.dev/miscellaneous/how-cloudflare-broke-my-build-and-how-i-fixed-it/ foi causada pela Cloudfare, que esta impedindo o envio dos resultados do Coverall para a nuvem. Isto foi corrigido na ultima versão do Coveralls.NET, mas esta versão só é compativel com .NET Core. Sendo assim eu "comentei" a sessão do build que envia o Coveralls, por enquanto.
Para corrigir os PRs é preciso que você atualizem, em seus repositorios, o arquivo "build.cake", é so copiar do projeto principal e refazer o commit, que ja ajusta.
Outra coisa é que existem "realmente" dois testes falhando, que eu tambem ajustei, causado por um erro do TipoDocumento.DM, que ficou faltando na validação do Boleto do Sicredi.
Qualquer dúvida me avisem.
Motivação: Realizei a alteração devido a um problema no segmento Q no leiaute CNAB240, pois ao validar o arquivo no validador de remessas estava retornando o seguinte problema
POSIÇÃO: 210 a 212 NOME DO CAMPO: 20.3Q - Cód. Bco. Corresp. na Compensação CONTEÚDO OBSERVADO: [ ] ERRO/ALERTA: Foi informado caractere não numérico ou brancos. SOLUÇÃO/RECOMENDAÇÃO: Campo numérico: Verificar o preenchimento. / Preencher com zeros à esquerda.
Solução: tive que adicionar o zero onde estava puxando vazio
Link para o validador de leiautes: https://gmtedi.bb.com.br/validaleiaute/#/