gerador-boletos
Version:
Gerador de boletos, utilizando a biblioteca PDFKit
428 lines (348 loc) • 16.8 kB
JavaScript
var path = require('path'),
fs = require('fs'),
boleto = require('../../../lib/boletoUtils.js'),
Caixa = require('../../../lib/boleto/bancos/caixa.js'),
geradorDeLinhaDigitavel = require('../../../lib/boleto/gerador-de-linha-digitavel.js'),
GeradorDeBoleto = require('../../../lib/boleto/gerador-de-boleto.js'),
Datas = boleto.Datas,
Endereco = boleto.Endereco,
Beneficiario = boleto.Beneficiario,
Pagador = boleto.Pagador,
Boleto = boleto.Boleto,
banco,
boletoSinco,
boletoSicgb,
beneficiario;
module.exports = {
setUp: function(done) {
banco = new Caixa();
// SINCO
// var datas = Datas.novasDatas();
// datas.comDocumento(22, 4, 2013);
// datas.comProcessamento(22, 4, 2013);
// datas.comVencimento(29, 4, 2013);
// 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(21, 8, 2012);
datas2.comProcessamento(21, 8, 2012);
datas2.comVencimento(4, 9, 2012);
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(30, 11, 2015);
datas2.comProcessamento(30, 11, 2015);
datas2.comVencimento(30, 12, 2015);
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);
var boletoSicgb = Boleto.novoBoleto();
boletoSicgb.comDatas(datas2)
boletoSicgb.comBeneficiario(beneficiario2)
boletoSicgb.comBanco(banco)
boletoSicgb.comPagador(pagador2)
boletoSicgb.comValorBoleto(158.76)
boletoSicgb.comNumeroDoDocumento("NF100/00000215");
boletoSicgb.comLocaisDePagamento([
'PREFERENCIALMENTE NAS CASAS LOTÉRICAS ATÉ O VALOR LIMITE'
]);
var codigoDeBarras = banco.geraCodigoDeBarrasPara(boletoSicgb),
linhaEsperada = "10496.48999 58000.100048 00000.000711 6 66580000015876"; // Certo
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 9 54460000008000";
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': function(test) {
var geradorDeBoleto = new GeradorDeBoleto(boletoSicgb);
geradorDeBoleto.gerarPDF(function boletosGerados(err, pdf) {
test.ifError(err);
var caminhoDoArquivo = path.join(__dirname, '/boleto-caixa.pdf');
writeStream = fs.createWriteStream(caminhoDoArquivo);
pdf.pipe(writeStream);
writeStream.on('close', function() {
test.ok(fs.existsSync(caminhoDoArquivo));
test.done();
});
});
}
}