@plasoft/boletos 1.0.6 → 1.0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/ailos-boleto.hbs +488 -0
- package/build/index.d.mts +253 -55
- package/build/index.d.ts +253 -55
- package/build/index.js +731 -108
- package/build/index.mjs +729 -106
- package/package.json +55 -48
package/build/index.js
CHANGED
|
@@ -50,17 +50,25 @@ var __async = (__this, __arguments, generator) => {
|
|
|
50
50
|
// src/index.ts
|
|
51
51
|
var src_exports = {};
|
|
52
52
|
__export(src_exports, {
|
|
53
|
-
|
|
54
|
-
|
|
53
|
+
Banco: () => Banco,
|
|
54
|
+
default: () => src_default,
|
|
55
|
+
defineConfig: () => defineConfig
|
|
55
56
|
});
|
|
56
57
|
module.exports = __toCommonJS(src_exports);
|
|
57
58
|
|
|
59
|
+
// src/types/Boletos.ts
|
|
60
|
+
var Banco = /* @__PURE__ */ ((Banco2) => {
|
|
61
|
+
Banco2["AILOS"] = "085";
|
|
62
|
+
Banco2["BRADESCO"] = "005";
|
|
63
|
+
return Banco2;
|
|
64
|
+
})(Banco || {});
|
|
65
|
+
|
|
58
66
|
// src/ailos/gerarDadosBoleto.ts
|
|
59
67
|
var import_date_fns = require("date-fns");
|
|
60
68
|
|
|
61
69
|
// src/utils/copy.ts
|
|
62
70
|
function copy(texto, startPosition, endPosition) {
|
|
63
|
-
let
|
|
71
|
+
let retorno2 = "";
|
|
64
72
|
if (typeof texto === "number")
|
|
65
73
|
texto = String(texto);
|
|
66
74
|
if (!endPosition)
|
|
@@ -69,10 +77,10 @@ function copy(texto, startPosition, endPosition) {
|
|
|
69
77
|
const index = i + 1;
|
|
70
78
|
if (index >= startPosition && index <= endPosition) {
|
|
71
79
|
const letra = texto[i];
|
|
72
|
-
|
|
80
|
+
retorno2 += letra;
|
|
73
81
|
}
|
|
74
82
|
}
|
|
75
|
-
return
|
|
83
|
+
return retorno2;
|
|
76
84
|
}
|
|
77
85
|
|
|
78
86
|
// src/utils/pafLeft.ts
|
|
@@ -84,52 +92,44 @@ function padLeft(numero, size) {
|
|
|
84
92
|
}
|
|
85
93
|
|
|
86
94
|
// src/ailos/gerarDadosBoleto.ts
|
|
87
|
-
function gerarDadosBoleto(
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
digito4
|
|
126
|
-
};
|
|
127
|
-
return dados;
|
|
128
|
-
} catch (error) {
|
|
129
|
-
console.log("Falha ao gerar dados do boleto", error);
|
|
130
|
-
return null;
|
|
131
|
-
}
|
|
132
|
-
});
|
|
95
|
+
function gerarDadosBoleto({ dados }) {
|
|
96
|
+
try {
|
|
97
|
+
const { bancario, parcela } = dados;
|
|
98
|
+
parcela.valor = Number(parcela.valor);
|
|
99
|
+
const fatorVencimento = getFatorVencimento(parcela.vencimento);
|
|
100
|
+
const valor = getValor(parcela.valor);
|
|
101
|
+
const convenio = padLeft(bancario.convenio, 6);
|
|
102
|
+
const numeroDocumento = padLeft(`${parcela.id_boleto}`, 9);
|
|
103
|
+
const nossoNumero = padLeft(bancario.numero + bancario.numero_dv, 8) + numeroDocumento;
|
|
104
|
+
const campoLivre = convenio + nossoNumero + padLeft(bancario.carteira, 2);
|
|
105
|
+
const digitoGeral = getDigitoGeral(`0859${fatorVencimento}${valor}${campoLivre}`);
|
|
106
|
+
const codigoBarra2 = `0859${digitoGeral}${fatorVencimento}${valor}${campoLivre}`;
|
|
107
|
+
const campo1 = copy(codigoBarra2, 1, 3) + copy(codigoBarra2, 4, 4) + copy(codigoBarra2, 20, 24);
|
|
108
|
+
const campo2 = copy(codigoBarra2, 25, 34);
|
|
109
|
+
const campo3 = copy(codigoBarra2, 35, 44);
|
|
110
|
+
const campo4 = copy(codigoBarra2, 5, 5);
|
|
111
|
+
const campo5 = copy(codigoBarra2, 6, 9) + copy(codigoBarra2, 10, 19);
|
|
112
|
+
const digito1 = getDigito(campo1);
|
|
113
|
+
const digito2 = getDigito(campo2);
|
|
114
|
+
const digito3 = getDigito(campo3);
|
|
115
|
+
const digito4 = getDigito(campo4);
|
|
116
|
+
const linhaDigitavel = campo1 + digito1 + campo2 + digito2 + campo3 + digito3 + campo4 + digito4 + campo5;
|
|
117
|
+
const dadosBoleto = {
|
|
118
|
+
linhaDigitavel,
|
|
119
|
+
fatorVencimento,
|
|
120
|
+
valor,
|
|
121
|
+
convenio,
|
|
122
|
+
nossoNumero,
|
|
123
|
+
campoLivre,
|
|
124
|
+
digitoGeral,
|
|
125
|
+
codigoBarra: codigoBarra2,
|
|
126
|
+
numeroDocumento
|
|
127
|
+
};
|
|
128
|
+
return dadosBoleto;
|
|
129
|
+
} catch (error) {
|
|
130
|
+
console.log("Falha ao gerar dados do boleto", error);
|
|
131
|
+
return null;
|
|
132
|
+
}
|
|
133
133
|
}
|
|
134
134
|
function getFatorVencimento(vencimento) {
|
|
135
135
|
const data = new Date(1997, 9, 7);
|
|
@@ -184,7 +184,6 @@ function getDigito(texto) {
|
|
|
184
184
|
}
|
|
185
185
|
|
|
186
186
|
// src/ailos/gerarPDF.ts
|
|
187
|
-
var import_path = __toESM(require("path"));
|
|
188
187
|
var import_bwip_js = __toESM(require("bwip-js"));
|
|
189
188
|
|
|
190
189
|
// src/utils/compileHbs.ts
|
|
@@ -197,11 +196,18 @@ function compileHbs(templatePath, data) {
|
|
|
197
196
|
}
|
|
198
197
|
|
|
199
198
|
// src/utils/maskFormat.ts
|
|
199
|
+
var import_string_mask = __toESM(require("string-mask"));
|
|
200
200
|
function retornaCpfCnpjFormatado(cpfCnpj) {
|
|
201
|
-
|
|
201
|
+
if ((cpfCnpj == null ? void 0 : cpfCnpj.length) <= 11) {
|
|
202
|
+
const formatter2 = new import_string_mask.default("000.000.000-00");
|
|
203
|
+
return formatter2.apply(cpfCnpj);
|
|
204
|
+
}
|
|
205
|
+
const formatter = new import_string_mask.default("00.000.000/0000-00");
|
|
206
|
+
return formatter.apply(cpfCnpj);
|
|
202
207
|
}
|
|
203
208
|
function retornaCEPFormatado(cep) {
|
|
204
|
-
|
|
209
|
+
const formatter = new import_string_mask.default("00000-000");
|
|
210
|
+
return formatter.apply(cep);
|
|
205
211
|
}
|
|
206
212
|
function numberToReal(numero) {
|
|
207
213
|
numero = typeof numero === "string" ? parseFloat(numero) : numero;
|
|
@@ -210,7 +216,8 @@ function numberToReal(numero) {
|
|
|
210
216
|
return numero.join(",");
|
|
211
217
|
}
|
|
212
218
|
function codigoBarra(codigo) {
|
|
213
|
-
|
|
219
|
+
const formatter = new import_string_mask.default("00000.00000 00000.000000 00000.000000 0 000000000000000");
|
|
220
|
+
return formatter.apply(codigo);
|
|
214
221
|
}
|
|
215
222
|
var maskFormat_default = {
|
|
216
223
|
numberToReal,
|
|
@@ -219,64 +226,110 @@ var maskFormat_default = {
|
|
|
219
226
|
codigoBarra
|
|
220
227
|
};
|
|
221
228
|
|
|
229
|
+
// src/services/api.ts
|
|
230
|
+
var import_config = require("dotenv/config");
|
|
231
|
+
var import_axios = __toESM(require("axios"));
|
|
232
|
+
var api = import_axios.default.create({
|
|
233
|
+
baseURL: process.env.API_URL
|
|
234
|
+
});
|
|
235
|
+
|
|
236
|
+
// src/utils/getPathTemplates.ts
|
|
237
|
+
var import_path = __toESM(require("path"));
|
|
238
|
+
function getPathTemplates(template) {
|
|
239
|
+
if (process.env.NODE_ENV === "dev") {
|
|
240
|
+
return import_path.default.resolve(process.cwd(), "views", template);
|
|
241
|
+
}
|
|
242
|
+
return import_path.default.resolve(__dirname, template);
|
|
243
|
+
}
|
|
244
|
+
|
|
222
245
|
// src/ailos/gerarPDF.ts
|
|
223
|
-
function gerarPDF(
|
|
224
|
-
return __async(this,
|
|
246
|
+
function gerarPDF(_0) {
|
|
247
|
+
return __async(this, arguments, function* ({ dados }) {
|
|
248
|
+
var _a, _b, _c, _d;
|
|
225
249
|
try {
|
|
250
|
+
const { generatePDF, dadosPDF } = dados;
|
|
226
251
|
const codigoBarra2 = yield import_bwip_js.default.toBuffer({
|
|
227
252
|
bcid: "interleaved2of5",
|
|
228
|
-
text:
|
|
253
|
+
text: dadosPDF.boleto.codigoBarra,
|
|
229
254
|
height: 20
|
|
230
255
|
});
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
256
|
+
dadosPDF.beneficiario.dadosBancario.agencia = dadosPDF.beneficiario.dadosBancario.agencia.padStart(4, "0");
|
|
257
|
+
dadosPDF.beneficiario.dadosBancario.conta = dadosPDF.beneficiario.dadosBancario.conta.padStart(7, "0");
|
|
258
|
+
dadosPDF.boleto.linhaDigitavel = maskFormat_default.codigoBarra(dadosPDF.boleto.linhaDigitavel);
|
|
259
|
+
dadosPDF.boleto.codigoBarraImage = codigoBarra2.toString("base64");
|
|
260
|
+
dadosPDF.beneficiario.cnpj = maskFormat_default.retornaCpfCnpjFormatado(
|
|
261
|
+
dadosPDF.beneficiario.cnpj
|
|
237
262
|
);
|
|
238
|
-
|
|
239
|
-
|
|
263
|
+
dadosPDF.beneficiario.endereco.cep = maskFormat_default.retornaCEPFormatado(
|
|
264
|
+
dadosPDF.beneficiario.endereco.cep
|
|
240
265
|
);
|
|
241
|
-
|
|
242
|
-
|
|
266
|
+
dadosPDF.pagador.endereco.cep = maskFormat_default.retornaCEPFormatado(
|
|
267
|
+
dadosPDF.pagador.endereco.cep
|
|
243
268
|
);
|
|
244
|
-
|
|
245
|
-
|
|
269
|
+
dadosPDF.boleto.valorAcrescimo = maskFormat_default.numberToReal(
|
|
270
|
+
dadosPDF.boleto.valorAcrescimo
|
|
246
271
|
);
|
|
247
|
-
|
|
248
|
-
|
|
272
|
+
dadosPDF.boleto.valorCobrado = maskFormat_default.numberToReal(
|
|
273
|
+
dadosPDF.boleto.valorCobrado
|
|
249
274
|
);
|
|
250
|
-
|
|
251
|
-
|
|
275
|
+
dadosPDF.boleto.valorDescontoAbatimento = maskFormat_default.numberToReal(
|
|
276
|
+
dadosPDF.boleto.valorDescontoAbatimento
|
|
252
277
|
);
|
|
253
|
-
|
|
254
|
-
|
|
278
|
+
dadosPDF.boleto.valorDocumento = maskFormat_default.numberToReal(
|
|
279
|
+
dadosPDF.boleto.valorDocumento
|
|
255
280
|
);
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
281
|
+
dadosPDF.boleto.valorMulta = maskFormat_default.numberToReal(dadosPDF.boleto.valorMulta);
|
|
282
|
+
dadosPDF.boleto.valorOutrasDeducoes = maskFormat_default.numberToReal(
|
|
283
|
+
dadosPDF.boleto.valorOutrasDeducoes
|
|
259
284
|
);
|
|
260
|
-
if (
|
|
261
|
-
|
|
285
|
+
if (dadosPDF.boleto.quantidade) {
|
|
286
|
+
dadosPDF.boleto.quantidade = maskFormat_default.numberToReal(dadosPDF.boleto.quantidade);
|
|
287
|
+
}
|
|
288
|
+
const jurosMes = Number(((_a = dadosPDF.beneficiario.dadosBancario) == null ? void 0 : _a.juros) || 0);
|
|
289
|
+
if (jurosMes > 0) {
|
|
290
|
+
const juros = Number(dadosPDF.boleto.valor) * jurosMes / 100 / 30;
|
|
291
|
+
dadosPDF.boleto.instrucao1 = `AP\xD3S O VENCIMENTO, COBRAR JUROS DE R$ ${numberToReal(juros)} POR DIA DE ATRASO`;
|
|
292
|
+
}
|
|
293
|
+
const descontoVencimento = Number(((_b = dadosPDF.beneficiario.dadosBancario) == null ? void 0 : _b.desconto) || 0);
|
|
294
|
+
if (descontoVencimento > 0) {
|
|
295
|
+
const desconto = Number(dadosPDF.boleto.valor) / 100 * descontoVencimento;
|
|
296
|
+
dadosPDF.boleto.instrucao2 = `AT\xC9 O VENCIMENTO, CONCEDER DESCONTO DE R$ ${numberToReal(desconto)}`;
|
|
297
|
+
}
|
|
298
|
+
const multaAtraso = Number(((_c = dadosPDF.beneficiario.dadosBancario) == null ? void 0 : _c.multa) || 0);
|
|
299
|
+
if (multaAtraso > 0) {
|
|
300
|
+
dadosPDF.boleto.instrucao3 = `MULTA DE ${numberToReal(multaAtraso)} %`;
|
|
301
|
+
}
|
|
302
|
+
const protestoDias = Number(((_d = dadosPDF.beneficiario.dadosBancario) == null ? void 0 : _d.protesto) || 0);
|
|
303
|
+
if (protestoDias > 0) {
|
|
304
|
+
dadosPDF.boleto.instrucao4 = `PROTESTAR AP\xD3S ${protestoDias} DIAS CORRIDOS DO VENCIMENTO`;
|
|
262
305
|
}
|
|
263
|
-
|
|
264
|
-
const
|
|
265
|
-
const content = compileHbs(filePath, dados);
|
|
306
|
+
dadosPDF.boleto.valor = maskFormat_default.numberToReal(dadosPDF.boleto.valor);
|
|
307
|
+
const content = compileHbs(getPathTemplates("ailos-boleto.hbs"), dadosPDF);
|
|
266
308
|
const config = {
|
|
267
309
|
displayHeaderFooter: false,
|
|
268
310
|
path: "./boleto.pdf",
|
|
269
311
|
format: "a4",
|
|
270
312
|
printBackground: true
|
|
271
313
|
};
|
|
314
|
+
let pdfBase64 = null;
|
|
315
|
+
if (generatePDF) {
|
|
316
|
+
pdfBase64 = yield generatePDF(content, config);
|
|
317
|
+
} else {
|
|
318
|
+
if (!api.defaults.baseURL) {
|
|
319
|
+
throw new Error("BaseURL api not found");
|
|
320
|
+
}
|
|
321
|
+
const response = yield api.post("/", { content, config });
|
|
322
|
+
pdfBase64 = response.data;
|
|
323
|
+
}
|
|
272
324
|
return {
|
|
273
|
-
erro: false
|
|
274
|
-
|
|
325
|
+
erro: false,
|
|
326
|
+
dados: pdfBase64
|
|
275
327
|
};
|
|
276
328
|
} catch (error) {
|
|
329
|
+
console.log(error);
|
|
277
330
|
return {
|
|
278
331
|
erro: true,
|
|
279
|
-
dados:
|
|
332
|
+
dados: error
|
|
280
333
|
};
|
|
281
334
|
}
|
|
282
335
|
});
|
|
@@ -303,17 +356,475 @@ var Arquivo = class {
|
|
|
303
356
|
};
|
|
304
357
|
|
|
305
358
|
// src/ailos/gerarRemessa.ts
|
|
306
|
-
function gerarRemessa(dados) {
|
|
307
|
-
|
|
359
|
+
function gerarRemessa({ dados }) {
|
|
360
|
+
try {
|
|
361
|
+
const { dadosBancario, beneficiario, boletos } = dados.remessa;
|
|
362
|
+
const arquivo = new Arquivo();
|
|
363
|
+
const dataAtual = /* @__PURE__ */ new Date();
|
|
364
|
+
const data = (0, import_date_fns2.format)(dataAtual, "ddMMyyyy");
|
|
365
|
+
const hora = (0, import_date_fns2.format)(dataAtual, "HHmmss");
|
|
366
|
+
const convenio = dadosBancario.convenio.padStart(7, "0");
|
|
367
|
+
const numero = dadosBancario.conta.padStart(7, "0") + dadosBancario.contaDigito;
|
|
368
|
+
const remessa2 = `REM${convenio}-${numero}-${data}.REM`;
|
|
369
|
+
arquivo.add("085");
|
|
370
|
+
arquivo.add("0000");
|
|
371
|
+
arquivo.add("0");
|
|
372
|
+
arquivo.add(" ");
|
|
373
|
+
arquivo.add("2");
|
|
374
|
+
arquivo.add(beneficiario.cnpj);
|
|
375
|
+
arquivo.add(dadosBancario.convenio.padEnd(20, " "));
|
|
376
|
+
arquivo.add(dadosBancario.agencia.padStart(5, "0"));
|
|
377
|
+
arquivo.add(dadosBancario.agenciaDigito);
|
|
378
|
+
arquivo.add(dadosBancario.conta.padStart(12, "0"));
|
|
379
|
+
arquivo.add(dadosBancario.contaDigito);
|
|
380
|
+
arquivo.add(" ");
|
|
381
|
+
arquivo.add(beneficiario.nome.substring(0, 30).padEnd(30, " "));
|
|
382
|
+
arquivo.add("AILOS".padEnd(30, " "));
|
|
383
|
+
arquivo.add(" ");
|
|
384
|
+
arquivo.add("1");
|
|
385
|
+
arquivo.add(data);
|
|
386
|
+
arquivo.add(hora);
|
|
387
|
+
arquivo.add(dadosBancario.numeroRemessa.padStart(6, "0"));
|
|
388
|
+
arquivo.add("087");
|
|
389
|
+
arquivo.add("00000");
|
|
390
|
+
arquivo.add(" ".padEnd(20, " "));
|
|
391
|
+
arquivo.add(" ".padEnd(20, " "));
|
|
392
|
+
arquivo.add(" ".padEnd(29, " "));
|
|
393
|
+
arquivo.addLine();
|
|
394
|
+
arquivo.add("085");
|
|
395
|
+
arquivo.add("0001");
|
|
396
|
+
arquivo.add("1");
|
|
397
|
+
arquivo.add("R");
|
|
398
|
+
arquivo.add("01");
|
|
399
|
+
arquivo.add(" ");
|
|
400
|
+
arquivo.add("045");
|
|
401
|
+
arquivo.add(" ");
|
|
402
|
+
arquivo.add("2");
|
|
403
|
+
arquivo.add(beneficiario.cnpj.padStart(15, "0"));
|
|
404
|
+
arquivo.add(dadosBancario.convenio.padEnd(20, " "));
|
|
405
|
+
arquivo.add(dadosBancario.agencia.padStart(5, "0"));
|
|
406
|
+
arquivo.add(dadosBancario.agenciaDigito);
|
|
407
|
+
arquivo.add(dadosBancario.conta.padStart(12, "0"));
|
|
408
|
+
arquivo.add(dadosBancario.contaDigito);
|
|
409
|
+
arquivo.add(" ");
|
|
410
|
+
arquivo.add(beneficiario.nome.substring(0, 30).padEnd(30, " "));
|
|
411
|
+
arquivo.add(" ".padEnd(40, " "));
|
|
412
|
+
arquivo.add(" ".padEnd(40, " "));
|
|
413
|
+
arquivo.add(dadosBancario.numeroRemessa.padStart(8, "0"));
|
|
414
|
+
arquivo.add(data);
|
|
415
|
+
arquivo.add("00000000");
|
|
416
|
+
arquivo.add(" ".padEnd(33, " "));
|
|
417
|
+
arquivo.addLine();
|
|
418
|
+
let sequencia = 1;
|
|
419
|
+
let quantidadeRegistro = 1;
|
|
420
|
+
let total = 0;
|
|
421
|
+
for (const boleto of boletos) {
|
|
422
|
+
const { pagador } = boleto;
|
|
423
|
+
const vencimento = (0, import_date_fns2.format)(new Date(boleto.vencimento), "ddMMyyyy");
|
|
424
|
+
total += Number(boleto.valor);
|
|
425
|
+
const codigoJuro = dadosBancario.jurosMes > 0 ? "2" : "3";
|
|
426
|
+
const juros = dadosBancario.jurosMes > 0 ? dadosBancario.jurosMes.toFixed(2) : "000000000000000";
|
|
427
|
+
const jurosVencimento = (0, import_date_fns2.format)(
|
|
428
|
+
(0, import_date_fns2.addDays)(new Date(boleto.vencimento), 1),
|
|
429
|
+
"ddMMyyyy"
|
|
430
|
+
);
|
|
431
|
+
const codigoDesconto = dadosBancario.descontoPagamento > 0 ? "2" : "0";
|
|
432
|
+
const desconto = dadosBancario.descontoPagamento > 0 ? dadosBancario.descontoPagamento.toFixed(2) : "000000000000000";
|
|
433
|
+
const protesto = dadosBancario.diasProtesto > 0 ? "1" : "3";
|
|
434
|
+
const diasProtesto = protesto === "1" ? dadosBancario.diasProtesto.toString() : "00";
|
|
435
|
+
arquivo.add("085");
|
|
436
|
+
arquivo.add("0001");
|
|
437
|
+
arquivo.add("3");
|
|
438
|
+
arquivo.add(sequencia.toString().padStart(5, "0"));
|
|
439
|
+
arquivo.add("P");
|
|
440
|
+
arquivo.add(" ");
|
|
441
|
+
arquivo.add("01");
|
|
442
|
+
arquivo.add(dadosBancario.agencia.padStart(5, "0"));
|
|
443
|
+
arquivo.add(dadosBancario.agenciaDigito);
|
|
444
|
+
arquivo.add(dadosBancario.conta.padStart(12, "0"));
|
|
445
|
+
arquivo.add(dadosBancario.contaDigito);
|
|
446
|
+
arquivo.add(" ");
|
|
447
|
+
arquivo.add(boleto.nossoNumero.padEnd(20, " "));
|
|
448
|
+
arquivo.add("1");
|
|
449
|
+
arquivo.add("1");
|
|
450
|
+
arquivo.add("1");
|
|
451
|
+
arquivo.add("2");
|
|
452
|
+
arquivo.add("2");
|
|
453
|
+
arquivo.add(`${boleto.numeroDocumento}/${boleto.parcela}`.padEnd(15, " "));
|
|
454
|
+
arquivo.add(vencimento);
|
|
455
|
+
arquivo.add(
|
|
456
|
+
Number(boleto.valor).toFixed(2).replace(".", "").padStart(15, "0")
|
|
457
|
+
);
|
|
458
|
+
arquivo.add(dadosBancario.agencia.padStart(5, "0"));
|
|
459
|
+
arquivo.add(dadosBancario.agenciaDigito);
|
|
460
|
+
arquivo.add("02");
|
|
461
|
+
arquivo.add("A");
|
|
462
|
+
arquivo.add(data);
|
|
463
|
+
arquivo.add(codigoJuro);
|
|
464
|
+
arquivo.add(jurosVencimento);
|
|
465
|
+
arquivo.add(juros.replace(".", "").padStart(15, "0"));
|
|
466
|
+
arquivo.add(codigoDesconto);
|
|
467
|
+
arquivo.add(vencimento);
|
|
468
|
+
arquivo.add(desconto.replace(".", "").padStart(15, "0"));
|
|
469
|
+
arquivo.add("000000000000000");
|
|
470
|
+
arquivo.add("000000000000000");
|
|
471
|
+
arquivo.add(boleto.identificacaoTitulo.padEnd(25, " "));
|
|
472
|
+
arquivo.add(protesto);
|
|
473
|
+
arquivo.add(diasProtesto.padStart(1, "0"));
|
|
474
|
+
arquivo.add("2");
|
|
475
|
+
arquivo.add(" ");
|
|
476
|
+
arquivo.add("09");
|
|
477
|
+
arquivo.add("0000000000");
|
|
478
|
+
arquivo.add(" ");
|
|
479
|
+
sequencia++;
|
|
480
|
+
arquivo.addLine();
|
|
481
|
+
let tipoInscricao = "1";
|
|
482
|
+
if (pagador.pessoa === "F") {
|
|
483
|
+
tipoInscricao = "1";
|
|
484
|
+
} else {
|
|
485
|
+
tipoInscricao = "2";
|
|
486
|
+
}
|
|
487
|
+
pagador.endereco.logradouro = `${pagador.endereco.logradouro.substring(0, 32).padEnd(32, " ")}${pagador.endereco.numero.padEnd(8, " ")}`;
|
|
488
|
+
arquivo.add("085");
|
|
489
|
+
arquivo.add("0001");
|
|
490
|
+
arquivo.add("3");
|
|
491
|
+
arquivo.add(sequencia.toString().padStart(5, "0"));
|
|
492
|
+
arquivo.add("Q");
|
|
493
|
+
arquivo.add(" ");
|
|
494
|
+
arquivo.add("01");
|
|
495
|
+
arquivo.add(tipoInscricao);
|
|
496
|
+
arquivo.add(pagador.cpfCnpj.padStart(15, "0"));
|
|
497
|
+
arquivo.add(pagador.nome.substring(0, 40).padEnd(40, " "));
|
|
498
|
+
arquivo.add(pagador.endereco.logradouro.substring(0, 40).padEnd(40, " "));
|
|
499
|
+
arquivo.add(pagador.endereco.bairro.substring(0, 15).padEnd(15, " "));
|
|
500
|
+
arquivo.add(pagador.endereco.cep.substring(0, 5).padStart(5, "0"));
|
|
501
|
+
arquivo.add(pagador.endereco.cep.substring(5, 7).padStart(3, "0"));
|
|
502
|
+
arquivo.add(pagador.endereco.municipio.substring(0, 15).padEnd(15, " "));
|
|
503
|
+
arquivo.add(pagador.endereco.uf.padEnd(2, " "));
|
|
504
|
+
arquivo.add("0");
|
|
505
|
+
arquivo.add("000000000000000");
|
|
506
|
+
arquivo.add(" ".padEnd(40, " "));
|
|
507
|
+
arquivo.add("000");
|
|
508
|
+
arquivo.add(" ".padEnd(20, " "));
|
|
509
|
+
arquivo.add(" ".padEnd(8, " "));
|
|
510
|
+
dadosBancario.multaAtraso = Number(dadosBancario.multaAtraso || 0);
|
|
511
|
+
if (dadosBancario.multaAtraso > 0) {
|
|
512
|
+
arquivo.addLine();
|
|
513
|
+
const multa = dadosBancario.multaAtraso.toFixed(2);
|
|
514
|
+
sequencia++;
|
|
515
|
+
arquivo.add("085");
|
|
516
|
+
arquivo.add("0001");
|
|
517
|
+
arquivo.add("3");
|
|
518
|
+
arquivo.add(sequencia.toString().padStart(5, "0"));
|
|
519
|
+
arquivo.add("R");
|
|
520
|
+
arquivo.add(" ");
|
|
521
|
+
arquivo.add("01");
|
|
522
|
+
arquivo.add("0");
|
|
523
|
+
arquivo.add("00000000");
|
|
524
|
+
arquivo.add("000000000000000");
|
|
525
|
+
arquivo.add("0");
|
|
526
|
+
arquivo.add("00000000");
|
|
527
|
+
arquivo.add("000000000000000");
|
|
528
|
+
arquivo.add("2");
|
|
529
|
+
arquivo.add(vencimento);
|
|
530
|
+
arquivo.add(multa.replace(".", "").padStart(15, "0"));
|
|
531
|
+
arquivo.add(" ".padEnd(10, " "));
|
|
532
|
+
arquivo.add(" ".padEnd(40, " "));
|
|
533
|
+
arquivo.add(" ".padEnd(40, " "));
|
|
534
|
+
arquivo.add(" ".padEnd(20, " "));
|
|
535
|
+
arquivo.add("00000000");
|
|
536
|
+
arquivo.add("000");
|
|
537
|
+
arquivo.add("00000");
|
|
538
|
+
arquivo.add(" ");
|
|
539
|
+
arquivo.add("000000000000");
|
|
540
|
+
arquivo.add(" ");
|
|
541
|
+
arquivo.add(" ");
|
|
542
|
+
arquivo.add("0");
|
|
543
|
+
arquivo.add("000000000");
|
|
544
|
+
}
|
|
545
|
+
arquivo.addLine();
|
|
546
|
+
quantidadeRegistro++;
|
|
547
|
+
}
|
|
548
|
+
arquivo.add("085");
|
|
549
|
+
arquivo.add("0001");
|
|
550
|
+
arquivo.add("5");
|
|
551
|
+
arquivo.add(" ".padEnd(9, " "));
|
|
552
|
+
arquivo.add((sequencia + 3).toString().padStart(6, "0"));
|
|
553
|
+
arquivo.add(quantidadeRegistro.toString().padStart(6, "0"));
|
|
554
|
+
arquivo.add(total.toFixed(2).replace(".", "").padStart(17, "0"));
|
|
555
|
+
arquivo.add("0".padStart(6, "0"));
|
|
556
|
+
arquivo.add("0".padStart(17, "0"));
|
|
557
|
+
arquivo.add("0".padStart(6, "0"));
|
|
558
|
+
arquivo.add("0".padStart(17, "0"));
|
|
559
|
+
arquivo.add("0".padStart(6, "0"));
|
|
560
|
+
arquivo.add("0".padStart(17, "0"));
|
|
561
|
+
arquivo.add(" ".padStart(8, " "));
|
|
562
|
+
arquivo.add(" ".padStart(117, " "));
|
|
563
|
+
arquivo.addLine();
|
|
564
|
+
arquivo.add("085");
|
|
565
|
+
arquivo.add("9999");
|
|
566
|
+
arquivo.add("9");
|
|
567
|
+
arquivo.add(" ".padEnd(9, " "));
|
|
568
|
+
arquivo.add("000001");
|
|
569
|
+
arquivo.add((sequencia + 4).toString().padStart(6, "0"));
|
|
570
|
+
arquivo.add("000000");
|
|
571
|
+
arquivo.add(" ".padEnd(205, " "));
|
|
572
|
+
return {
|
|
573
|
+
download: remessa2,
|
|
574
|
+
arquivo: arquivo.getArquivo()
|
|
575
|
+
};
|
|
576
|
+
} catch (error) {
|
|
577
|
+
console.log(error);
|
|
578
|
+
return null;
|
|
579
|
+
}
|
|
580
|
+
}
|
|
581
|
+
|
|
582
|
+
// src/ailos/gerarRetorno.ts
|
|
583
|
+
function gerarRetorno({ dados }) {
|
|
584
|
+
try {
|
|
585
|
+
const { arquivo } = dados;
|
|
586
|
+
const documentos = [];
|
|
587
|
+
let index = 0;
|
|
588
|
+
for (const item of arquivo) {
|
|
589
|
+
let linha = item;
|
|
590
|
+
const banco = linha.substring(0, 3);
|
|
591
|
+
const codigoRetorno = linha.substring(15, 17);
|
|
592
|
+
if ((banco === "001" || banco === "085") && (codigoRetorno === "06" || codigoRetorno === "17")) {
|
|
593
|
+
let segmento = linha.substring(13, 14);
|
|
594
|
+
if (segmento === "T") {
|
|
595
|
+
const linhaDoc = linha.substring(105, 130).trimEnd();
|
|
596
|
+
let tipoDocumento = "INDEFINIDO";
|
|
597
|
+
let idDocumento = linhaDoc;
|
|
598
|
+
if (linhaDoc.includes("-")) {
|
|
599
|
+
const [tipoDoc, idDoc] = linhaDoc.split("-");
|
|
600
|
+
tipoDocumento = tipoDoc;
|
|
601
|
+
idDocumento = idDoc;
|
|
602
|
+
}
|
|
603
|
+
const especie = tipoDocumento.length ? tipoDocumento : "INDEFINIDO";
|
|
604
|
+
linha = arquivo[index + 1];
|
|
605
|
+
segmento = linha.substring(13, 14);
|
|
606
|
+
if (segmento === "U") {
|
|
607
|
+
const valorAbatimentoString = linha.substring(47, 62);
|
|
608
|
+
const valorAbatimento = Number(valorAbatimentoString) / 100;
|
|
609
|
+
const valorDescontoString = linha.substring(32, 47);
|
|
610
|
+
const valorDesconto = Number(valorDescontoString) / 100;
|
|
611
|
+
const valorPagoString = linha.substring(77, 92);
|
|
612
|
+
const valorPago = Number(valorPagoString) / 100;
|
|
613
|
+
const valorJurosString = linha.substring(17, 32);
|
|
614
|
+
const valorJuros = Number(valorJurosString) / 100;
|
|
615
|
+
const valorMulta = 0;
|
|
616
|
+
const descontos = valorAbatimento + valorDesconto;
|
|
617
|
+
const valorTotal = valorPago - valorJuros + descontos;
|
|
618
|
+
const documento = {
|
|
619
|
+
id_documento: idDocumento,
|
|
620
|
+
especie,
|
|
621
|
+
valor: valorPago,
|
|
622
|
+
valor_multa: valorMulta,
|
|
623
|
+
valor_juros: valorJuros,
|
|
624
|
+
valor_desconto: valorDesconto,
|
|
625
|
+
valor_total: valorTotal
|
|
626
|
+
};
|
|
627
|
+
documentos.push(documento);
|
|
628
|
+
}
|
|
629
|
+
}
|
|
630
|
+
}
|
|
631
|
+
index++;
|
|
632
|
+
}
|
|
633
|
+
return documentos;
|
|
634
|
+
} catch (error) {
|
|
635
|
+
console.log(error);
|
|
636
|
+
return null;
|
|
637
|
+
}
|
|
638
|
+
}
|
|
639
|
+
|
|
640
|
+
// src/ailos/index.ts
|
|
641
|
+
var ailos = {
|
|
642
|
+
gerarDadosBoleto,
|
|
643
|
+
gerarPDF,
|
|
644
|
+
gerarRemessa,
|
|
645
|
+
gerarRetorno
|
|
646
|
+
};
|
|
647
|
+
|
|
648
|
+
// src/bradesco/gerarDadosBoleto.ts
|
|
649
|
+
var import_date_fns3 = require("date-fns");
|
|
650
|
+
function gerarDadosBoleto2({ dados }) {
|
|
651
|
+
try {
|
|
652
|
+
const { bancario, parcela } = dados;
|
|
653
|
+
parcela.valor = Number(parcela.valor);
|
|
654
|
+
const fatorVencimento = getFatorVencimento2(parcela.vencimento);
|
|
655
|
+
const valor = getValor2(parcela.valor);
|
|
656
|
+
const convenio = padLeft(bancario.convenio, 6);
|
|
657
|
+
const numeroDocumento = padLeft(`${parcela.id_boleto}`, 9);
|
|
658
|
+
const nossoNumero = padLeft(bancario.numero + bancario.numero_dv, 8) + numeroDocumento;
|
|
659
|
+
const campoLivre = convenio + nossoNumero + padLeft(bancario.carteira, 2);
|
|
660
|
+
const digitoGeral = getDigitoGeral2(`0859${fatorVencimento}${valor}${campoLivre}`);
|
|
661
|
+
const codigoBarra2 = `0859${digitoGeral}${fatorVencimento}${valor}${campoLivre}`;
|
|
662
|
+
const campo1 = copy(codigoBarra2, 1, 3) + copy(codigoBarra2, 4, 4) + copy(codigoBarra2, 20, 24);
|
|
663
|
+
const campo2 = copy(codigoBarra2, 25, 34);
|
|
664
|
+
const campo3 = copy(codigoBarra2, 35, 44);
|
|
665
|
+
const campo4 = copy(codigoBarra2, 5, 5);
|
|
666
|
+
const campo5 = copy(codigoBarra2, 6, 9) + copy(codigoBarra2, 10, 19);
|
|
667
|
+
const digito1 = getDigito2(campo1);
|
|
668
|
+
const digito2 = getDigito2(campo2);
|
|
669
|
+
const digito3 = getDigito2(campo3);
|
|
670
|
+
const digito4 = getDigito2(campo4);
|
|
671
|
+
const linhaDigitavel = campo1 + digito1 + campo2 + digito2 + campo3 + digito3 + campo4 + digito4 + campo5;
|
|
672
|
+
const dadosBoleto = {
|
|
673
|
+
linhaDigitavel,
|
|
674
|
+
fatorVencimento,
|
|
675
|
+
valor,
|
|
676
|
+
convenio,
|
|
677
|
+
nossoNumero,
|
|
678
|
+
campoLivre,
|
|
679
|
+
digitoGeral,
|
|
680
|
+
codigoBarra: codigoBarra2,
|
|
681
|
+
numeroDocumento
|
|
682
|
+
};
|
|
683
|
+
return dadosBoleto;
|
|
684
|
+
} catch (error) {
|
|
685
|
+
console.log("Falha ao gerar dados do boleto", error);
|
|
686
|
+
return null;
|
|
687
|
+
}
|
|
688
|
+
}
|
|
689
|
+
function getFatorVencimento2(vencimento) {
|
|
690
|
+
const data = new Date(1997, 9, 7);
|
|
691
|
+
return (0, import_date_fns3.differenceInDays)(new Date(vencimento), data).toString();
|
|
692
|
+
}
|
|
693
|
+
function getValor2(valor) {
|
|
694
|
+
const valorFormatado = valor.toFixed(2).replace(/\D/g, "");
|
|
695
|
+
return padLeft(valorFormatado, 10);
|
|
696
|
+
}
|
|
697
|
+
function getDigitoGeral2(texto) {
|
|
698
|
+
let i = 43;
|
|
699
|
+
let j = 1;
|
|
700
|
+
let soma = 0;
|
|
701
|
+
let digito = 0;
|
|
702
|
+
while (i >= 1) {
|
|
703
|
+
j++;
|
|
704
|
+
if (j === 10)
|
|
705
|
+
j = 2;
|
|
706
|
+
const valor = Number(copy(texto, i, i));
|
|
707
|
+
soma += j * valor;
|
|
708
|
+
i--;
|
|
709
|
+
}
|
|
710
|
+
const restoDivisao = soma % 11;
|
|
711
|
+
digito = 11 - restoDivisao;
|
|
712
|
+
if (digito === 0 || digito === 1 || digito > 9)
|
|
713
|
+
digito = 1;
|
|
714
|
+
return String(digito);
|
|
715
|
+
}
|
|
716
|
+
function getDigito2(texto) {
|
|
717
|
+
let i = texto.length;
|
|
718
|
+
let j = 1;
|
|
719
|
+
let total = 0;
|
|
720
|
+
let soma = 0;
|
|
721
|
+
let digito = 0;
|
|
722
|
+
while (i >= 1) {
|
|
723
|
+
j = j === 1 ? 2 : 1;
|
|
724
|
+
let valor = Number(copy(texto, i, i));
|
|
725
|
+
total = valor * j;
|
|
726
|
+
if (total >= 10) {
|
|
727
|
+
valor = Number(copy(total, 1, 1)) + Number(copy(total, 2, 2));
|
|
728
|
+
} else {
|
|
729
|
+
valor = total;
|
|
730
|
+
}
|
|
731
|
+
soma += valor;
|
|
732
|
+
i--;
|
|
733
|
+
}
|
|
734
|
+
const uni = Number(copy(soma, String(soma).length, String(soma).length));
|
|
735
|
+
digito = 10 - uni;
|
|
736
|
+
if (digito === 10)
|
|
737
|
+
digito = 0;
|
|
738
|
+
return String(digito);
|
|
739
|
+
}
|
|
740
|
+
|
|
741
|
+
// src/bradesco/gerarPDF.ts
|
|
742
|
+
var import_bwip_js2 = __toESM(require("bwip-js"));
|
|
743
|
+
function gerarPDF2(_0) {
|
|
744
|
+
return __async(this, arguments, function* ({ dados }) {
|
|
308
745
|
try {
|
|
309
|
-
const {
|
|
746
|
+
const { dadosPDF, generatePDF } = dados;
|
|
747
|
+
const codigoBarra2 = yield import_bwip_js2.default.toBuffer({
|
|
748
|
+
bcid: "interleaved2of5",
|
|
749
|
+
text: dadosPDF.boleto.codigoBarra,
|
|
750
|
+
height: 20
|
|
751
|
+
});
|
|
752
|
+
dadosPDF.beneficiario.dadosBancarios.agencia = dadosPDF.beneficiario.dadosBancarios.agencia.padStart(4, "0");
|
|
753
|
+
dadosPDF.beneficiario.dadosBancarios.conta = dadosPDF.beneficiario.dadosBancarios.conta.padStart(7, "0");
|
|
754
|
+
dadosPDF.boleto.codigoBarra = maskFormat_default.codigoBarra(dadosPDF.boleto.codigoBarra);
|
|
755
|
+
dadosPDF.boleto.codigoBarraImage = codigoBarra2.toString("base64");
|
|
756
|
+
dadosPDF.beneficiario.cnpj = maskFormat_default.retornaCpfCnpjFormatado(
|
|
757
|
+
dadosPDF.beneficiario.cnpj
|
|
758
|
+
);
|
|
759
|
+
dadosPDF.beneficiario.endereco.cep = maskFormat_default.retornaCEPFormatado(
|
|
760
|
+
dadosPDF.beneficiario.endereco.cep
|
|
761
|
+
);
|
|
762
|
+
dadosPDF.pagador.endereco.cep = maskFormat_default.retornaCEPFormatado(
|
|
763
|
+
dadosPDF.pagador.endereco.cep
|
|
764
|
+
);
|
|
765
|
+
dadosPDF.boleto.valorAcrescimo = maskFormat_default.numberToReal(
|
|
766
|
+
dadosPDF.boleto.valorAcrescimo
|
|
767
|
+
);
|
|
768
|
+
dadosPDF.boleto.valorCobrado = maskFormat_default.numberToReal(
|
|
769
|
+
dadosPDF.boleto.valorCobrado
|
|
770
|
+
);
|
|
771
|
+
dadosPDF.boleto.valorDescontoAbatimento = maskFormat_default.numberToReal(
|
|
772
|
+
dadosPDF.boleto.valorDescontoAbatimento
|
|
773
|
+
);
|
|
774
|
+
dadosPDF.boleto.valorDocumento = maskFormat_default.numberToReal(
|
|
775
|
+
dadosPDF.boleto.valorDocumento
|
|
776
|
+
);
|
|
777
|
+
dadosPDF.boleto.valorMulta = maskFormat_default.numberToReal(dadosPDF.boleto.valorMulta);
|
|
778
|
+
dadosPDF.boleto.valorOutrasDeducoes = maskFormat_default.numberToReal(
|
|
779
|
+
dadosPDF.boleto.valorOutrasDeducoes
|
|
780
|
+
);
|
|
781
|
+
if (dadosPDF.boleto.quantidade) {
|
|
782
|
+
dadosPDF.boleto.quantidade = maskFormat_default.numberToReal(dadosPDF.boleto.quantidade);
|
|
783
|
+
}
|
|
784
|
+
dadosPDF.boleto.valor = maskFormat_default.numberToReal(dadosPDF.boleto.valor);
|
|
785
|
+
const content = compileHbs(getPathTemplates("bradesco-boleto.hbs"), dados);
|
|
786
|
+
const config = {
|
|
787
|
+
displayHeaderFooter: false,
|
|
788
|
+
path: "./boleto.pdf",
|
|
789
|
+
format: "a4",
|
|
790
|
+
printBackground: true
|
|
791
|
+
};
|
|
792
|
+
let pdfBase64 = null;
|
|
793
|
+
if (generatePDF) {
|
|
794
|
+
pdfBase64 = yield generatePDF(content, config);
|
|
795
|
+
} else {
|
|
796
|
+
if (!api.defaults.baseURL) {
|
|
797
|
+
throw new Error("BaseURL api not found");
|
|
798
|
+
}
|
|
799
|
+
const response = yield api.post("/", { content, config });
|
|
800
|
+
pdfBase64 = response.data;
|
|
801
|
+
}
|
|
802
|
+
return {
|
|
803
|
+
erro: false,
|
|
804
|
+
dados: pdfBase64
|
|
805
|
+
};
|
|
806
|
+
} catch (error) {
|
|
807
|
+
return {
|
|
808
|
+
erro: true,
|
|
809
|
+
dados: null
|
|
810
|
+
};
|
|
811
|
+
}
|
|
812
|
+
});
|
|
813
|
+
}
|
|
814
|
+
|
|
815
|
+
// src/bradesco/gerarRemessa.ts
|
|
816
|
+
var import_date_fns4 = require("date-fns");
|
|
817
|
+
function gerarRemessa2(_0) {
|
|
818
|
+
return __async(this, arguments, function* ({ dados }) {
|
|
819
|
+
try {
|
|
820
|
+
const { dadosBancario, beneficiario, boletos } = dados.remessa;
|
|
310
821
|
const arquivo = new Arquivo();
|
|
311
822
|
const dataAtual = /* @__PURE__ */ new Date();
|
|
312
|
-
const data = (0,
|
|
313
|
-
const hora = (0,
|
|
823
|
+
const data = (0, import_date_fns4.format)(dataAtual, "ddMMyyyy");
|
|
824
|
+
const hora = (0, import_date_fns4.format)(dataAtual, "HHmmss");
|
|
314
825
|
const convenio = dadosBancario.convenio.padStart(7, "0");
|
|
315
826
|
const numero = dadosBancario.conta.padStart(7, "0") + dadosBancario.contaDigito;
|
|
316
|
-
const
|
|
827
|
+
const remessa2 = `REM${convenio}-${numero}-${data}.REM`;
|
|
317
828
|
arquivo.add("085");
|
|
318
829
|
arquivo.add("0000");
|
|
319
830
|
arquivo.add("0");
|
|
@@ -355,7 +866,7 @@ function gerarRemessa(dados) {
|
|
|
355
866
|
arquivo.add(dadosBancario.conta.padStart(12, "0"));
|
|
356
867
|
arquivo.add(dadosBancario.contaDigito);
|
|
357
868
|
arquivo.add(" ");
|
|
358
|
-
arquivo.add(
|
|
869
|
+
arquivo.add(beneficiario.nome.substring(0, 30).padEnd(30, " "));
|
|
359
870
|
arquivo.add(" ".padEnd(40, " "));
|
|
360
871
|
arquivo.add(" ".padEnd(40, " "));
|
|
361
872
|
arquivo.add(dadosBancario.numeroRemessa.padStart(8, "0"));
|
|
@@ -367,12 +878,13 @@ function gerarRemessa(dados) {
|
|
|
367
878
|
let quantidadeRegistro = 1;
|
|
368
879
|
let total = 0;
|
|
369
880
|
for (const boleto of boletos) {
|
|
370
|
-
const
|
|
881
|
+
const { pagador } = boleto;
|
|
882
|
+
const vencimento = (0, import_date_fns4.format)(new Date(boleto.vencimento), "ddMMyyyy");
|
|
371
883
|
total += Number(boleto.valor);
|
|
372
884
|
const codigoJuro = dadosBancario.jurosMes > 0 ? "2" : "3";
|
|
373
885
|
const juros = dadosBancario.jurosMes > 0 ? dadosBancario.jurosMes.toFixed(2) : "000000000000000";
|
|
374
|
-
const jurosVencimento = (0,
|
|
375
|
-
(0,
|
|
886
|
+
const jurosVencimento = (0, import_date_fns4.format)(
|
|
887
|
+
(0, import_date_fns4.addDays)(new Date(boleto.vencimento), 1),
|
|
376
888
|
"ddMMyyyy"
|
|
377
889
|
);
|
|
378
890
|
const codigoDesconto = dadosBancario.descontoPagamento > 0 ? "2" : "0";
|
|
@@ -517,7 +1029,7 @@ function gerarRemessa(dados) {
|
|
|
517
1029
|
arquivo.add("000000");
|
|
518
1030
|
arquivo.add(" ".padEnd(205, " "));
|
|
519
1031
|
return {
|
|
520
|
-
download:
|
|
1032
|
+
download: remessa2,
|
|
521
1033
|
arquivo: arquivo.getArquivo()
|
|
522
1034
|
};
|
|
523
1035
|
} catch (error) {
|
|
@@ -527,19 +1039,130 @@ function gerarRemessa(dados) {
|
|
|
527
1039
|
});
|
|
528
1040
|
}
|
|
529
1041
|
|
|
530
|
-
// src/
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
1042
|
+
// src/bradesco/gerarRetorno.ts
|
|
1043
|
+
function gerarRetorno2({ dados }) {
|
|
1044
|
+
try {
|
|
1045
|
+
const { arquivo } = dados;
|
|
1046
|
+
const documentos = [];
|
|
1047
|
+
let index = 0;
|
|
1048
|
+
for (const item of arquivo) {
|
|
1049
|
+
let linha = item;
|
|
1050
|
+
const banco = linha.substring(0, 3);
|
|
1051
|
+
const codigoRetorno = linha.substring(15, 17);
|
|
1052
|
+
if ((banco === "001" || banco === "085") && (codigoRetorno === "06" || codigoRetorno === "17")) {
|
|
1053
|
+
let segmento = linha.substring(13, 14);
|
|
1054
|
+
if (segmento === "T") {
|
|
1055
|
+
let tipoDocumento = "";
|
|
1056
|
+
let idDocumento = "";
|
|
1057
|
+
const linhaDoc = linha.substring(105, 130).trimEnd();
|
|
1058
|
+
if (linhaDoc.includes("-")) {
|
|
1059
|
+
[tipoDocumento, idDocumento] = linha.split("-");
|
|
1060
|
+
} else {
|
|
1061
|
+
idDocumento = linhaDoc;
|
|
1062
|
+
}
|
|
1063
|
+
const especie = tipoDocumento.length ? tipoDocumento : "INDEFINIDO";
|
|
1064
|
+
linha = arquivo[index + 1];
|
|
1065
|
+
segmento = linha.substring(13, 14);
|
|
1066
|
+
if (segmento === "U") {
|
|
1067
|
+
const valorAbatimentoString = linha.substring(47, 62);
|
|
1068
|
+
const valorAbatimento = Number(valorAbatimentoString) / 100;
|
|
1069
|
+
const valorDescontoString = linha.substring(32, 47);
|
|
1070
|
+
const valorDesconto = Number(valorDescontoString) / 100;
|
|
1071
|
+
const valorPagoString = linha.substring(77, 92);
|
|
1072
|
+
const valorPago = Number(valorPagoString) / 100;
|
|
1073
|
+
const valorJurosString = linha.substring(17, 32);
|
|
1074
|
+
const valorJuros = Number(valorJurosString) / 100;
|
|
1075
|
+
const valorMulta = 0;
|
|
1076
|
+
const descontos = valorAbatimento + valorDesconto;
|
|
1077
|
+
const valorTotal = valorPago - valorJuros + descontos;
|
|
1078
|
+
const documento = {
|
|
1079
|
+
id_documento: idDocumento,
|
|
1080
|
+
especie,
|
|
1081
|
+
valor: valorTotal,
|
|
1082
|
+
acrescimo: valorMulta,
|
|
1083
|
+
desconto: valorDesconto
|
|
1084
|
+
};
|
|
1085
|
+
documentos.push(documento);
|
|
1086
|
+
}
|
|
1087
|
+
}
|
|
1088
|
+
}
|
|
1089
|
+
index++;
|
|
1090
|
+
}
|
|
1091
|
+
return documentos;
|
|
1092
|
+
} catch (error) {
|
|
1093
|
+
console.log(error);
|
|
1094
|
+
return null;
|
|
1095
|
+
}
|
|
1096
|
+
}
|
|
536
1097
|
|
|
537
1098
|
// src/bradesco/index.ts
|
|
538
|
-
|
|
539
|
-
|
|
1099
|
+
var bradesco = {
|
|
1100
|
+
gerarDadosBoleto: gerarDadosBoleto2,
|
|
1101
|
+
gerarPDF: gerarPDF2,
|
|
1102
|
+
gerarRemessa: gerarRemessa2,
|
|
1103
|
+
gerarRetorno: gerarRetorno2
|
|
1104
|
+
};
|
|
1105
|
+
|
|
1106
|
+
// src/gerar.ts
|
|
1107
|
+
function gerar({ banco, dados }) {
|
|
1108
|
+
if (banco === "085" /* AILOS */) {
|
|
1109
|
+
return ailos.gerarDadosBoleto({ banco, dados });
|
|
1110
|
+
}
|
|
1111
|
+
if (banco === "005" /* BRADESCO */) {
|
|
1112
|
+
return bradesco.gerarDadosBoleto({ banco, dados });
|
|
1113
|
+
}
|
|
1114
|
+
}
|
|
1115
|
+
|
|
1116
|
+
// src/pdf.ts
|
|
1117
|
+
function pdf({ banco, dados }) {
|
|
1118
|
+
if (banco === "085" /* AILOS */) {
|
|
1119
|
+
return ailos.gerarPDF({ banco, dados });
|
|
1120
|
+
}
|
|
1121
|
+
if (banco === "005" /* BRADESCO */) {
|
|
1122
|
+
return bradesco.gerarPDF({ banco, dados });
|
|
1123
|
+
}
|
|
1124
|
+
}
|
|
1125
|
+
|
|
1126
|
+
// src/remessa.ts
|
|
1127
|
+
function remessa({ banco, dados }) {
|
|
1128
|
+
if (banco === "085" /* AILOS */) {
|
|
1129
|
+
return ailos.gerarRemessa({ banco, dados });
|
|
1130
|
+
}
|
|
1131
|
+
if (banco === "005" /* BRADESCO */) {
|
|
1132
|
+
return bradesco.gerarRemessa({ banco, dados });
|
|
1133
|
+
}
|
|
1134
|
+
}
|
|
1135
|
+
|
|
1136
|
+
// src/retorno.ts
|
|
1137
|
+
function retorno({ banco, dados }) {
|
|
1138
|
+
if (banco === "085" /* AILOS */) {
|
|
1139
|
+
return ailos.gerarRetorno({ banco, dados });
|
|
1140
|
+
}
|
|
1141
|
+
if (banco === "005" /* BRADESCO */) {
|
|
1142
|
+
return bradesco.gerarRetorno({ banco, dados });
|
|
1143
|
+
}
|
|
540
1144
|
}
|
|
1145
|
+
|
|
1146
|
+
// src/config/index.ts
|
|
1147
|
+
function defineConfig({ apiClient }) {
|
|
1148
|
+
if (apiClient) {
|
|
1149
|
+
const { authorization, url } = apiClient;
|
|
1150
|
+
if (url)
|
|
1151
|
+
api.defaults.baseURL = url;
|
|
1152
|
+
if (authorization)
|
|
1153
|
+
api.defaults.headers.common.Authorization = authorization;
|
|
1154
|
+
}
|
|
1155
|
+
}
|
|
1156
|
+
|
|
1157
|
+
// src/index.ts
|
|
1158
|
+
var src_default = {
|
|
1159
|
+
gerar,
|
|
1160
|
+
pdf,
|
|
1161
|
+
remessa,
|
|
1162
|
+
retorno
|
|
1163
|
+
};
|
|
541
1164
|
// Annotate the CommonJS export names for ESM import in node:
|
|
542
1165
|
0 && (module.exports = {
|
|
543
|
-
|
|
544
|
-
|
|
1166
|
+
Banco,
|
|
1167
|
+
defineConfig
|
|
545
1168
|
});
|