UNPKG

gerador-boletos

Version:

Gerador de boletos, utilizando a biblioteca PDFKit

116 lines (87 loc) 3.75 kB
const path = require('path'); const StringUtils = require('../../utils/string-utils') const CodigoDeBarrasBuilder = require('../codigo-de-barras-builder'); const Cecred = (function() { const NUMERO_CECRED = '085'; const DIGITO_CECRED = '0'; function Cecred() {} Cecred.prototype.getTitulos = function() { return { instrucoes: 'Instruções (texto de responsabilidade do beneficiário)', nomeDoPagador: 'Pagador', especie: 'Moeda', quantidade: 'Quantidade', valor: 'x Valor', moraMulta: '(+) Moras / Multa' }; }; Cecred.prototype.exibirReciboDoPagadorCompleto = function() { return true; }; Cecred.prototype.exibirCampoCip = function() { return true; }; Cecred.prototype.geraCodigoDeBarrasPara = boleto => { const beneficiario = boleto.getBeneficiario(); const errorMsg = 'Erro ao gerar código de barras,'; if (!beneficiario.getNumeroConvenio() || beneficiario.getNumeroConvenio().length != 6) throw new Error(`${errorMsg} número convênio da cooperativa não possui 6 dígitos: ${beneficiario.getNumeroConvenio()}`); if (!beneficiario.getNossoNumero() || beneficiario.getNossoNumero().length != 17) throw new Error(`${errorMsg} nosso número não possui 17 dígitos: ${beneficiario.getNossoNumero()}`); if (!beneficiario.getCarteira() || beneficiario.getCarteira().length != 2) throw new Error(`${errorMsg} código carteira não possui 2 dígitos: ${beneficiario.getCarteira()}`); const campoLivre = []; campoLivre.push(beneficiario.getNumeroConvenio()); campoLivre.push(beneficiario.getNossoNumero()); campoLivre.push(beneficiario.getCarteira()); return new CodigoDeBarrasBuilder(boleto).comCampoLivre(campoLivre); } Cecred.prototype.getNumeroFormatadoComDigito = function() { return [NUMERO_CECRED, DIGITO_CECRED].join('-'); } Cecred.prototype.getNumeroFormatado = function() { return NUMERO_CECRED; } Cecred.prototype.getCarteiraFormatado = function(beneficiario) { return StringUtils.pad(beneficiario.getCarteira(), 2, '0'); } Cecred.prototype.getCarteiraTexto = function(beneficiario) { return StringUtils.pad(beneficiario.getCarteira(), 2, '0'); } Cecred.prototype.getCodigoFormatado = function(beneficiario) { return StringUtils.pad(beneficiario.getCodigoBeneficiario(), 7, '0'); } Cecred.prototype.getImagem = function() { return path.join(__dirname, 'logotipos/ailos.png'); } Cecred.prototype.getNossoNumeroFormatado = function(beneficiario) { return StringUtils.pad(beneficiario.getNossoNumero(), 11, '0'); } Cecred.prototype.getNossoNumeroECodigoDocumento = function(boleto) { const beneficiario = boleto.getBeneficiario(); const nossoNumero = this.getNossoNumeroFormatado(beneficiario); return nossoNumero; } Cecred.prototype.getNome = function() { return 'Ailos'; } Cecred.prototype.getImprimirNome = function() { return false; } Cecred.prototype.getLocaisDePagamentoPadrao = function() { return ['PAGAVEL PREFERENCIALMENTE NAS COOPERATIVAS DO SISTEMA AILOS.', 'APOS VENCIMENTO PAGAR SOMENTE NA COOPERATIVA '] } Cecred.prototype.getAgenciaECodigoBeneficiario = function(boleto) { const beneficiario = boleto.getBeneficiario(); const digitoCodigo = beneficiario.getDigitoCodigoBeneficiario(); let codigo = this.getCodigoFormatado(beneficiario); if (digitoCodigo) codigo += '-' + digitoCodigo; const agenciaComDigito = beneficiario.getAgenciaFormatada() + '-' + beneficiario.getDigitoAgencia(); return agenciaComDigito + '/' + codigo; } Cecred.novoCecred = function() { return new Cecred(); } return Cecred; })(); module.exports = Cecred;