public void Boleto_Caixa() { // Exemplo 100% de acordo com a documentação usando os parametros mínimos // https://github.com/impactro/Boleto-ASP.NET/files/44866/ESPCODBARR_SICOB.pdf // Página 8, item 5.1.1 /* Dados usados para cálculo: * 104 Banco ...............................Posição: 01 - 03 * 9 Moeda ...............................Posição: 04 - 04 * 1099(10/10/2000) Fator de Vencimento .................Posição: 06 - 09 * 160,00 Valor ...............................Posição: 10 - 19 * 9001200200 Nosso Número (sem DV) ...............Posição: 20 - 29 * 001287000000012 Código do Cedente no SICOB(sem DV) ..Posição: 30 - 44 */ // Dados do Recebedor CedenteInfo c = new CedenteInfo() { Banco = "104-0", CodCedente = "001287000000012" }; // Dados do Pagador SacadoInfo s = new SacadoInfo(); // Informações do Boleto BoletoInfo b = new BoletoInfo() { DataVencimento = DateTime.Parse("10/10/2000"), ValorDocumento = 160, NossoNumero = "9001200200" // Exemplo do caso especial onde o Dv dá Zero (caso critico) }; // Cria uma instancia do objeto que calcula e monta um boleto Boleto bol = new Boleto(); // Seta as variáveis (parametros) com os dados do recebedor (c), pagador (s), e as informações do boleto (b) bol.MakeBoleto(c, s, b); // Calcula efetivamente o boleto bol.CalculaBoleto(); // Imprime a linha digitável no console e alguns outros dados para conferencia Console.WriteLine("Linha Digitável: " + bol.LinhaDigitavel); Console.WriteLine("Agência/Conta: " + bol.AgenciaConta); Console.WriteLine("Nosso Número: " + bol.NossoNumeroExibicao); Console.WriteLine("Fator Vencimento: " + CobUtil.CalcFatVenc(bol.DataVencimento)); // De acordo com a página 13 deve gerar exatamente a linha abaixo Assert.IsTrue(bol.LinhaDigitavel == "10499.00127 00200.001287 70000.000128 1 10990000016000"); // Outro exemplo qualquer: b.NossoNumero = "9000003225"; bol.MakeBoleto(c, s, b); // atualizo os dados (não é recomendado, mas para simplificar funciona) bol.CalculaBoleto(); // se não chamar esta rotina, virá comos resultados calculados anteriormente Console.WriteLine("Exemplo Livre: Nosso Número: " + bol.NossoNumeroExibicao); Assert.IsTrue(bol.NossoNumeroExibicao == "9000003225-0"); // no caso o sistema sempre preenche com os digitos zeros a esquerda // Salva a imagem do boleto para conferencia visual bol.Save("boleto.png"); }
public void Boleto_Banestes() { // Ainda de acordo com o exemplo em: https://github.com/impactro/Boleto-Test/wiki/Criando-Layouts/_edit // Dados do Pagador SacadoInfo s = new SacadoInfo() { Sacado = "Fabio Ferreira" }; // Informações do Boleto BoletoInfo b = new BoletoInfo() { DataVencimento = DateTime.Parse("30/07/2000"), ValorDocumento = 75, NossoNumero = "178" }; // Cria uma instancia do objeto que calcula e monta um boleto Boleto bol = new Boleto(); // Seta as variáveis (parametros) com os dados do recebedor (c), pagador (s), e as informações do boleto (b) bol.MakeBoleto(Cedente, s, b); // Calcula efetivamente o boleto bol.CalculaBoleto(); // Imprime a linha digitável no console e alguns outros dados para conferencia Console.WriteLine("Linha Digitável: " + bol.LinhaDigitavel); Console.WriteLine("Agência/Conta: " + bol.AgenciaConta); Console.WriteLine("Nosso Número: " + bol.NossoNumeroExibicao); Console.WriteLine("Fator Vencimento: " + CobUtil.CalcFatVenc(bol.DataVencimento)); // De acordo com a página 13 deve gerar exatamente a linha abaixo Assert.IsTrue(bol.LinhaDigitavel == "02190.00007 17800.006573 33154.021415 7 10270000007500"); // Página 38 da documentação // 02190.00007 17800.006573 33154.021415 3 10270000007500 // O exemplo está com o digito errado! // Salva a imagem do boleto para conferencia visual //bol.Save("boleto.png"); // Baseado no segundo exemplo da página 34 (só vou especificar o que é realmente necessário) Console.WriteLine(); bol = new Boleto(); // reseta tudo! CedenteInfo c = new CedenteInfo() { Banco = "021-3", CodCedente = "7730070", Modalidade = "4" }; // E reaproveiro a instancia (Alterando) b.DataVencimento = DateTime.Parse("09/12/2000"); b.ValorDocumento = 131.50; b.NossoNumero = "10297"; bol.MakeBoleto(c, s, b); // Calcula efetivamente o boleto bol.CalculaBoleto(); // Imprime a linha digitável no console e alguns outros dados para conferencia Console.WriteLine("Linha Digitável: " + bol.LinhaDigitavel); Console.WriteLine("Agência/Conta: " + bol.AgenciaConta); Console.WriteLine("Nosso Número: " + bol.NossoNumeroExibicao); Console.WriteLine("Fator Vencimento: " + CobUtil.CalcFatVenc(bol.DataVencimento)); // De acordo com a página 13 deve gerar exatamente a linha abaixo Assert.IsTrue(bol.LinhaDigitavel == "02190.00106 29700.007734 00704.021823 3 11590000013150"); // Note que o digito verificador é 3... acho que houve confusão na digitação da documentação // E este número retorna exatamente o informado na página 32: 021.9.3.1159.0000013150-0001029700007730070402182 }