@adonisinoda/gerar-boletos
Version:
Gerar boletos para vários bancos
429 lines (353 loc) • 15.8 kB
JavaScript
const PdfGerador = require('../../../lib/pdf-gerador');
var fs = require('fs'),
boletos = require('../../../lib/utils/functions/boletoUtils.js'),
Caixa = require('../../../lib/boleto/bancos/caixa.js'),
geradorDeLinhaDigitavel = require('../../../lib/boleto/gerador-de-linha-digitavel.js'),
Datas = boletos.Datas,
Endereco = boletos.Endereco,
Beneficiario = boletos.Beneficiario,
Pagador = boletos.Pagador,
Boleto = boletos.Boleto,
banco,
boletoSinco,
boletoSicgb,
beneficiario;
module.exports = {
setUp: function(done) {
banco = new Caixa();
// SINCO
var datas = Datas.novasDatas();
datas.comDocumento('04-22-2013');
datas.comProcessamento('04-22-2013');
datas.comVencimento('04-29-2013');
const pagador = Pagador.novoPagador();
pagador.comNome('Mario Amaral');
beneficiario = Beneficiario.novoBeneficiario();
beneficiario.comNome('Rodrigo Turini');
beneficiario.comRegistroNacional('19950366000150');
beneficiario.comAgencia('2873');
beneficiario.comCarteira('1');
beneficiario.comCodigoBeneficiario('2359');
beneficiario.comNossoNumero('990000000003994458');
beneficiario.comDigitoNossoNumero('0');
boletoSinco = Boleto.novoBoleto();
boletoSinco.comDatas(datas);
boletoSinco.comBeneficiario(beneficiario);
boletoSinco.comBanco(banco);
boletoSinco.comPagador(pagador);
boletoSinco.comValorBoleto(4016.10);
boletoSinco.comNumeroDoDocumento(3084373);
// SIGCB
var datas2 = Datas.novasDatas();
datas2.comDocumento('02-04-2020');
datas2.comProcessamento('02-04-2020');
datas2.comVencimento('02-04-2020');
var beneficiario2 = Beneficiario.novoBeneficiario();
beneficiario2.comNome('Gammasoft Desenvolvimento de Software Ltda');
beneficiario2.comAgencia('589');
beneficiario2.comCarteira('24');
beneficiario2.comCodigoBeneficiario('290274');
beneficiario2.comDigitoCodigoBeneficiario('5');
beneficiario2.comNossoNumero('900000000000132');
beneficiario2.comDigitoNossoNumero('3');
beneficiario2.comRegistroNacional('19950366000150');
var enderecoDoBeneficiario = Endereco.novoEndereco();
enderecoDoBeneficiario.comLogradouro('Rua da Programação');
enderecoDoBeneficiario.comBairro('Zona Rural');
enderecoDoBeneficiario.comCep('71550050');
enderecoDoBeneficiario.comCidade('Patos de Minas');
enderecoDoBeneficiario.comUf('MG');
beneficiario2.comEndereco(enderecoDoBeneficiario);
var pagador2 = Pagador.novoPagador();
pagador2.comNome('Paulo Fulano da Silva');
pagador2.comRegistroNacional('77134854817');
var enderecoDoPagador = Endereco.novoEndereco();
enderecoDoPagador.comLogradouro('Avenida dos Testes Unitários');
enderecoDoPagador.comBairro('Barra da Tijuca');
enderecoDoPagador.comCep('72000000');
enderecoDoPagador.comCidade('Rio de Janeiro');
enderecoDoPagador.comUf('RJ');
pagador2.comEndereco(enderecoDoPagador);
boletoSicgb = Boleto.novoBoleto();
boletoSicgb.comDatas(datas2);
boletoSicgb.comBeneficiario(beneficiario2);
boletoSicgb.comBanco(banco);
boletoSicgb.comPagador(pagador2);
boletoSicgb.comValorBoleto(80.00);
boletoSicgb.comNumeroDoDocumento('NF100/00000132');
boletoSicgb.comLocaisDePagamento([
'PREFERENCIALMENTE NAS CASAS LOTÉRICAS ATÉ O VALOR LIMITE'
]);
done();
},
'Nosso número formatado deve ter 17 digitos': function(test) {
// var nossoNumeroSinco = banco.getNossoNumeroFormatado(boletoSinco.getBeneficiario());
// test.equals(17, nossoNumeroSinco.length);
// test.equals('990000000003994458', nossoNumeroSinco); //Sinco deve ter 18?
var nossoNumeroSicgb = banco.getNossoNumeroFormatado(boletoSicgb.getBeneficiario());
test.equals(17, nossoNumeroSicgb.length);
test.equals('24900000000000132', nossoNumeroSicgb); // Sicgb deve ter 17?
test.done();
},
'Carteira formatado deve ter dois dígitos': function(test) {
var beneficiario = Beneficiario.novoBeneficiario().comCarteira('1'),
numeroFormatado = banco.getCarteiraFormatado(beneficiario);
test.equals(2, numeroFormatado.length);
test.equals('01', numeroFormatado);
test.done();
},
'Conta corrente formatada deve ter cinco dígitos': function(test) {
var numeroFormatado = banco.getCodigoFormatado(beneficiario);
test.equals(5, numeroFormatado.length);
test.equals('02359', numeroFormatado);
test.done();
},
// 'Testa código de barras com carteira SINCO': function(test) {
// var codigoDeBarras = banco.geraCodigoDeBarrasPara(boletoSinco);
// test.equal('10492568300004016101002359990000000003994458', codigoDeBarras);
// test.done();
// },
// 'Linha digitavel com carteira SINCO': function(test) {
// var codigoDeBarras = banco.geraCodigoDeBarrasPara(boletoSinco),
// linhaEsperada = "10491.00231 59990.000008 00039.944582 2 56830000401610";
// test.equal(linhaEsperada, geradorDeLinhaDigitavel(codigoDeBarras, banco));
// test.done();
// },
'Linha digitavel com carteira SIGCB 1': function(test) {
var datas2 = Datas.novasDatas();
datas2.comDocumento('02-04-2020');
datas2.comProcessamento('02-04-2020');
datas2.comVencimento('02-04-2020');
var beneficiario2 = Beneficiario.novoBeneficiario();
beneficiario2.comNome('AGUINALDO LUIZ TELES - ME');
beneficiario2.comAgencia('4221');
beneficiario2.comCarteira('14');
beneficiario2.comCodigoBeneficiario('648995');
beneficiario2.comDigitoCodigoBeneficiario('8');
beneficiario2.comNossoNumero('000000000000007');
beneficiario2.comDigitoNossoNumero('3');
beneficiario2.comRegistroNacional('08432498000173');
var enderecoDoBeneficiario = Endereco.novoEndereco();
enderecoDoBeneficiario.comLogradouro('Rua da Programação');
enderecoDoBeneficiario.comBairro('Zona Rural');
enderecoDoBeneficiario.comCep('71550050');
enderecoDoBeneficiario.comCidade('Patos de Minas');
enderecoDoBeneficiario.comUf('MG');
beneficiario2.comEndereco(enderecoDoBeneficiario);
var pagador2 = Pagador.novoPagador();
pagador2.comNome('Paulo Fulano da Silva');
pagador2.comRegistroNacional('77134854817');
var enderecoDoPagador = Endereco.novoEndereco();
enderecoDoPagador.comLogradouro('Avenida dos Testes Unitários');
enderecoDoPagador.comBairro('Barra da Tijuca');
enderecoDoPagador.comCep('72000000');
enderecoDoPagador.comCidade('Rio de Janeiro');
enderecoDoPagador.comUf('RJ');
pagador2.comEndereco(enderecoDoPagador);
boletoSinco = Boleto.novoBoleto();
boletoSinco.comDatas(datas2);
boletoSinco.comBeneficiario(beneficiario2);
boletoSinco.comBanco(banco);
boletoSinco.comPagador(pagador2);
boletoSinco.comValorBoleto(158.76);
boletoSinco.comNumeroDoDocumento('NF100/00000215');
boletoSinco.comLocaisDePagamento([
'PREFERENCIALMENTE NAS CASAS LOTÉRICAS ATÉ O VALOR LIMITE'
]);
var codigoDeBarras = banco.geraCodigoDeBarrasPara(boletoSinco),
linhaEsperada = '10496.48999 58000.100048 00000.000711 7 81550000015876';
console.log(geradorDeLinhaDigitavel(codigoDeBarras, banco));
test.equal(linhaEsperada, geradorDeLinhaDigitavel(codigoDeBarras, banco));
test.done();
},
'Linha digitavel com carteira SIGCB 2': function(test) {
var codigoDeBarras = banco.geraCodigoDeBarrasPara(boletoSicgb),
linhaEsperada = '10492.90271 45900.200044 00000.013227 5 81550000008000';
test.equal(linhaEsperada, geradorDeLinhaDigitavel(codigoDeBarras, banco));
test.done();
},
// 'Verifica geração da linha digitável - 1': function(test) {
// var codigoDeBarras = banco.geraCodigoDeBarrasPara(boleto),
// linhaEsperada = "34191.57213 89766.660164 74514.590004 6 56550000268016";
// test.equal(linhaEsperada, geradorDeLinhaDigitavel(codigoDeBarras, banco));
// test.done();
// },
// 'Verifica geração da linha digitável - 2': function(test) {
// datas = Datas.novasDatas();
// datas.comDocumento(20, 03, 2014);
// datas.comProcessamento(20, 03, 2014);
// datas.comVencimento(10, 04, 2014);
// beneficiario = Beneficiario.novoBeneficiario();
// beneficiario.comNome('Mario Amaral');
// beneficiario.comAgencia('8462');
// beneficiario.comCarteira('174');
// beneficiario.comCodigoBeneficiario('05825');
// beneficiario.comNossoNumero('00015135')
// beneficiario.comDigitoNossoNumero('6');
// pagador = Pagador.novoPagador();
// pagador.comNome('Rodrigo de Sousa');
// boleto = Boleto.novoBoleto();
// boleto.comDatas(datas);
// boleto.comBeneficiario(beneficiario);
// boleto.comBanco(banco);
// boleto.comPagador(pagador);
// boleto.comValorBoleto(2680.16);
// boleto.comNumeroDoDocumento('575');
// boleto.comBanco(banco);
// var codigoDeBarras = banco.geraCodigoDeBarrasPara(boleto),
// linhaEsperada = '34191.74002 01513.568467 20582.590004 6 60290000268016';
// test.equal(linhaEsperada, geradorDeLinhaDigitavel(codigoDeBarras, banco));
// test.done();
// },
// 'Verifica geração da linha digitável - 3': function(test) {
// datas = Datas.novasDatas();
// datas.comDocumento(21, 5, 2014);
// datas.comProcessamento(21, 5, 2014);
// datas.comVencimento(21, 5, 2014);
// beneficiario = Beneficiario.novoBeneficiario();
// beneficiario.comCarteira('181');
// beneficiario.comAgencia('654');
// beneficiario.comCodigoBeneficiario('8711'); //Não se deve indicar o dígito da agencia
// beneficiario.comNossoNumero('94588021')
// beneficiario.comDigitoNossoNumero('4');
// pagador = Pagador.novoPagador();
// boleto = Boleto.novoBoleto();
// boleto.comEspecieDocumento('DSI');
// boleto.comDatas(datas);
// boleto.comBeneficiario(beneficiario);
// boleto.comBanco(banco);
// boleto.comPagador(pagador);
// boleto.comValorBoleto(575);
// boleto.comNumeroDoDocumento('1');
// boleto.comBanco(banco);
// var codigoDeBarras = banco.geraCodigoDeBarrasPara(boleto),
// linhaEsperada = '34191.81940 58802.140655 40871.130007 4 60700000057500',
// linhaGerada = geradorDeLinhaDigitavel(codigoDeBarras, banco);
// test.equal(linhaEsperada, linhaGerada);
// test.done();
// },
// 'Verifica geração da linha digitável - 4': function(test) {
// datas = Datas.novasDatas();
// datas.comDocumento(29, 5, 2014);
// datas.comProcessamento(29, 5, 2014);
// datas.comVencimento(23, 6, 2014);
// beneficiario = Beneficiario.novoBeneficiario();
// beneficiario.comCarteira('157');
// beneficiario.comAgencia('654');
// beneficiario.comCodigoBeneficiario('8711'); //Não se deve indicar o dígito da agencia
// beneficiario.comNossoNumero('89605074')
// beneficiario.comDigitoNossoNumero('2');
// pagador = Pagador.novoPagador();
// boleto = Boleto.novoBoleto();
// boleto.comEspecieDocumento('DSI');
// boleto.comDatas(datas);
// boleto.comBeneficiario(beneficiario);
// boleto.comBanco(banco);
// boleto.comPagador(pagador);
// boleto.comValorBoleto(115.38);
// boleto.comNumeroDoDocumento('2');
// boleto.comBanco(banco);
// var codigoDeBarras = banco.geraCodigoDeBarrasPara(boleto),
// linhaEsperada = '34191.57890 60507.420655 40871.130007 1 61030000011538',
// linhaGerada = geradorDeLinhaDigitavel(codigoDeBarras, banco);
// test.equal(linhaEsperada, linhaGerada);
// test.done();
// },
// 'Verifica geração da linha digitável - 5': function(test) {
// datas = Datas.novasDatas();
// datas.comDocumento(20, 8, 2014);
// datas.comProcessamento(20, 8, 2014);
// datas.comVencimento(27, 8, 2014);
// beneficiario = Beneficiario.novoBeneficiario();
// beneficiario.comCarteira('157');
// beneficiario.comAgencia('654');
// beneficiario.comCodigoBeneficiario('8711'); //Não se deve indicar o dígito da agencia
// beneficiario.comNossoNumero('02891620')
// beneficiario.comDigitoNossoNumero('8');
// pagador = Pagador.novoPagador();
// boleto = Boleto.novoBoleto();
// boleto.comEspecieDocumento('DSI');
// boleto.comDatas(datas);
// boleto.comBeneficiario(beneficiario);
// boleto.comBanco(banco);
// boleto.comPagador(pagador);
// boleto.comValorBoleto(115.38);
// boleto.comNumeroDoDocumento('4');
// boleto.comBanco(banco);
// var codigoDeBarras = banco.geraCodigoDeBarrasPara(boleto),
// linhaEsperada = '34191.57023 89162.080652 40871.130007 4 61680000011538',
// linhaGerada = geradorDeLinhaDigitavel(codigoDeBarras, banco);
// test.equal(linhaEsperada, linhaGerada);
// test.done();
// },
// 'Verifica geração da linha digitável - 6': function(test) {
// datas = Datas.novasDatas();
// datas.comDocumento(19, 9, 2014);
// datas.comProcessamento(19, 9, 2014);
// datas.comVencimento(26, 9, 2014);
// beneficiario = Beneficiario.novoBeneficiario();
// beneficiario.comCarteira('157');
// beneficiario.comAgencia('654');
// beneficiario.comCodigoBeneficiario('8711'); //Não se deve indicar o dígito da agencia
// beneficiario.comNossoNumero('07967777')
// beneficiario.comDigitoNossoNumero('4');
// pagador = Pagador.novoPagador();
// boleto = Boleto.novoBoleto();
// boleto.comEspecieDocumento('FS');
// boleto.comDatas(datas);
// boleto.comBeneficiario(beneficiario);
// boleto.comBanco(banco);
// boleto.comPagador(pagador);
// boleto.comValorBoleto(230.76);
// boleto.comNumeroDoDocumento('5');
// boleto.comBanco(banco);
// var codigoDeBarras = banco.geraCodigoDeBarrasPara(boleto),
// linhaEsperada = '34191.57072 96777.740653 40871.130007 9 61980000023076',
// linhaGerada = geradorDeLinhaDigitavel(codigoDeBarras, banco);
// test.equal(linhaEsperada, linhaGerada);
// test.done();
// },
// 'Verifica nome correto do banco': function(test) {
// test.equals(banco.getNome(), 'Banco Itaú S/A');
// test.done();
// },
'Verifica a numeração correta do banco': function(test) {
test.equal(banco.getNumeroFormatadoComDigito(), '104-0');
test.done();
},
'Verifica que arquivo de imagem do logotipo existe': function(test) {
test.ok(fs.existsSync(banco.getImagem()));
test.done();
},
// 'Verifica deve imprimir o nome do banco no boleto': function(test) {
// test.ok(banco.getImprimirNome());
// test.done();
// },
// 'Verifica geração do código de barras': function(test) {
// var codigoDeBarras = banco.geraCodigoDeBarrasPara(boleto);
// test.equal('34196565500002680161572189766660167451459000', codigoDeBarras);
// test.done();
// },
'Exibir campo CIP retorna falso': function(test) {
test.equal(banco.exibirCampoCip(), false);
test.done();
},
'Verifica criação de pdf - SIGCB 1': function(test) {
new PdfGerador(boletoSicgb).pdfFile(
'../tests/boleto/bancos/boleto-caixa1.pdf'
).then(async({path})=>{
test.ok(fs.existsSync(path));
test.equal(fs.unlinkSync(path), undefined);
test.done();
});
},
'Verifica criação de pdf - SIGCB 2': async function(test) {
new PdfGerador(boletoSicgb).pdfFile(
'../tests/boleto/bancos/boleto-caixa2.pdf'
).then(async({path})=>{
test.ok(fs.existsSync(path));
test.equal(fs.unlinkSync(path), undefined);
test.done();
});
}
};