@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.mjs
CHANGED
|
@@ -19,12 +19,19 @@ var __async = (__this, __arguments, generator) => {
|
|
|
19
19
|
});
|
|
20
20
|
};
|
|
21
21
|
|
|
22
|
+
// src/types/Boletos.ts
|
|
23
|
+
var Banco = /* @__PURE__ */ ((Banco2) => {
|
|
24
|
+
Banco2["AILOS"] = "085";
|
|
25
|
+
Banco2["BRADESCO"] = "005";
|
|
26
|
+
return Banco2;
|
|
27
|
+
})(Banco || {});
|
|
28
|
+
|
|
22
29
|
// src/ailos/gerarDadosBoleto.ts
|
|
23
30
|
import { differenceInDays } from "date-fns";
|
|
24
31
|
|
|
25
32
|
// src/utils/copy.ts
|
|
26
33
|
function copy(texto, startPosition, endPosition) {
|
|
27
|
-
let
|
|
34
|
+
let retorno2 = "";
|
|
28
35
|
if (typeof texto === "number")
|
|
29
36
|
texto = String(texto);
|
|
30
37
|
if (!endPosition)
|
|
@@ -33,10 +40,10 @@ function copy(texto, startPosition, endPosition) {
|
|
|
33
40
|
const index = i + 1;
|
|
34
41
|
if (index >= startPosition && index <= endPosition) {
|
|
35
42
|
const letra = texto[i];
|
|
36
|
-
|
|
43
|
+
retorno2 += letra;
|
|
37
44
|
}
|
|
38
45
|
}
|
|
39
|
-
return
|
|
46
|
+
return retorno2;
|
|
40
47
|
}
|
|
41
48
|
|
|
42
49
|
// src/utils/pafLeft.ts
|
|
@@ -48,52 +55,44 @@ function padLeft(numero, size) {
|
|
|
48
55
|
}
|
|
49
56
|
|
|
50
57
|
// src/ailos/gerarDadosBoleto.ts
|
|
51
|
-
function gerarDadosBoleto(
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
digito4
|
|
90
|
-
};
|
|
91
|
-
return dados;
|
|
92
|
-
} catch (error) {
|
|
93
|
-
console.log("Falha ao gerar dados do boleto", error);
|
|
94
|
-
return null;
|
|
95
|
-
}
|
|
96
|
-
});
|
|
58
|
+
function gerarDadosBoleto({ dados }) {
|
|
59
|
+
try {
|
|
60
|
+
const { bancario, parcela } = dados;
|
|
61
|
+
parcela.valor = Number(parcela.valor);
|
|
62
|
+
const fatorVencimento = getFatorVencimento(parcela.vencimento);
|
|
63
|
+
const valor = getValor(parcela.valor);
|
|
64
|
+
const convenio = padLeft(bancario.convenio, 6);
|
|
65
|
+
const numeroDocumento = padLeft(`${parcela.id_boleto}`, 9);
|
|
66
|
+
const nossoNumero = padLeft(bancario.numero + bancario.numero_dv, 8) + numeroDocumento;
|
|
67
|
+
const campoLivre = convenio + nossoNumero + padLeft(bancario.carteira, 2);
|
|
68
|
+
const digitoGeral = getDigitoGeral(`0859${fatorVencimento}${valor}${campoLivre}`);
|
|
69
|
+
const codigoBarra2 = `0859${digitoGeral}${fatorVencimento}${valor}${campoLivre}`;
|
|
70
|
+
const campo1 = copy(codigoBarra2, 1, 3) + copy(codigoBarra2, 4, 4) + copy(codigoBarra2, 20, 24);
|
|
71
|
+
const campo2 = copy(codigoBarra2, 25, 34);
|
|
72
|
+
const campo3 = copy(codigoBarra2, 35, 44);
|
|
73
|
+
const campo4 = copy(codigoBarra2, 5, 5);
|
|
74
|
+
const campo5 = copy(codigoBarra2, 6, 9) + copy(codigoBarra2, 10, 19);
|
|
75
|
+
const digito1 = getDigito(campo1);
|
|
76
|
+
const digito2 = getDigito(campo2);
|
|
77
|
+
const digito3 = getDigito(campo3);
|
|
78
|
+
const digito4 = getDigito(campo4);
|
|
79
|
+
const linhaDigitavel = campo1 + digito1 + campo2 + digito2 + campo3 + digito3 + campo4 + digito4 + campo5;
|
|
80
|
+
const dadosBoleto = {
|
|
81
|
+
linhaDigitavel,
|
|
82
|
+
fatorVencimento,
|
|
83
|
+
valor,
|
|
84
|
+
convenio,
|
|
85
|
+
nossoNumero,
|
|
86
|
+
campoLivre,
|
|
87
|
+
digitoGeral,
|
|
88
|
+
codigoBarra: codigoBarra2,
|
|
89
|
+
numeroDocumento
|
|
90
|
+
};
|
|
91
|
+
return dadosBoleto;
|
|
92
|
+
} catch (error) {
|
|
93
|
+
console.log("Falha ao gerar dados do boleto", error);
|
|
94
|
+
return null;
|
|
95
|
+
}
|
|
97
96
|
}
|
|
98
97
|
function getFatorVencimento(vencimento) {
|
|
99
98
|
const data = new Date(1997, 9, 7);
|
|
@@ -148,7 +147,6 @@ function getDigito(texto) {
|
|
|
148
147
|
}
|
|
149
148
|
|
|
150
149
|
// src/ailos/gerarPDF.ts
|
|
151
|
-
import path from "path";
|
|
152
150
|
import BwipJs from "bwip-js";
|
|
153
151
|
|
|
154
152
|
// src/utils/compileHbs.ts
|
|
@@ -161,11 +159,18 @@ function compileHbs(templatePath, data) {
|
|
|
161
159
|
}
|
|
162
160
|
|
|
163
161
|
// src/utils/maskFormat.ts
|
|
162
|
+
import StringMask from "string-mask";
|
|
164
163
|
function retornaCpfCnpjFormatado(cpfCnpj) {
|
|
165
|
-
|
|
164
|
+
if ((cpfCnpj == null ? void 0 : cpfCnpj.length) <= 11) {
|
|
165
|
+
const formatter2 = new StringMask("000.000.000-00");
|
|
166
|
+
return formatter2.apply(cpfCnpj);
|
|
167
|
+
}
|
|
168
|
+
const formatter = new StringMask("00.000.000/0000-00");
|
|
169
|
+
return formatter.apply(cpfCnpj);
|
|
166
170
|
}
|
|
167
171
|
function retornaCEPFormatado(cep) {
|
|
168
|
-
|
|
172
|
+
const formatter = new StringMask("00000-000");
|
|
173
|
+
return formatter.apply(cep);
|
|
169
174
|
}
|
|
170
175
|
function numberToReal(numero) {
|
|
171
176
|
numero = typeof numero === "string" ? parseFloat(numero) : numero;
|
|
@@ -174,7 +179,8 @@ function numberToReal(numero) {
|
|
|
174
179
|
return numero.join(",");
|
|
175
180
|
}
|
|
176
181
|
function codigoBarra(codigo) {
|
|
177
|
-
|
|
182
|
+
const formatter = new StringMask("00000.00000 00000.000000 00000.000000 0 000000000000000");
|
|
183
|
+
return formatter.apply(codigo);
|
|
178
184
|
}
|
|
179
185
|
var maskFormat_default = {
|
|
180
186
|
numberToReal,
|
|
@@ -183,64 +189,110 @@ var maskFormat_default = {
|
|
|
183
189
|
codigoBarra
|
|
184
190
|
};
|
|
185
191
|
|
|
192
|
+
// src/services/api.ts
|
|
193
|
+
import "dotenv/config";
|
|
194
|
+
import axios from "axios";
|
|
195
|
+
var api = axios.create({
|
|
196
|
+
baseURL: process.env.API_URL
|
|
197
|
+
});
|
|
198
|
+
|
|
199
|
+
// src/utils/getPathTemplates.ts
|
|
200
|
+
import path from "path";
|
|
201
|
+
function getPathTemplates(template) {
|
|
202
|
+
if (process.env.NODE_ENV === "dev") {
|
|
203
|
+
return path.resolve(process.cwd(), "views", template);
|
|
204
|
+
}
|
|
205
|
+
return path.resolve(__dirname, template);
|
|
206
|
+
}
|
|
207
|
+
|
|
186
208
|
// src/ailos/gerarPDF.ts
|
|
187
|
-
function gerarPDF(
|
|
188
|
-
return __async(this,
|
|
209
|
+
function gerarPDF(_0) {
|
|
210
|
+
return __async(this, arguments, function* ({ dados }) {
|
|
211
|
+
var _a, _b, _c, _d;
|
|
189
212
|
try {
|
|
213
|
+
const { generatePDF, dadosPDF } = dados;
|
|
190
214
|
const codigoBarra2 = yield BwipJs.toBuffer({
|
|
191
215
|
bcid: "interleaved2of5",
|
|
192
|
-
text:
|
|
216
|
+
text: dadosPDF.boleto.codigoBarra,
|
|
193
217
|
height: 20
|
|
194
218
|
});
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
219
|
+
dadosPDF.beneficiario.dadosBancario.agencia = dadosPDF.beneficiario.dadosBancario.agencia.padStart(4, "0");
|
|
220
|
+
dadosPDF.beneficiario.dadosBancario.conta = dadosPDF.beneficiario.dadosBancario.conta.padStart(7, "0");
|
|
221
|
+
dadosPDF.boleto.linhaDigitavel = maskFormat_default.codigoBarra(dadosPDF.boleto.linhaDigitavel);
|
|
222
|
+
dadosPDF.boleto.codigoBarraImage = codigoBarra2.toString("base64");
|
|
223
|
+
dadosPDF.beneficiario.cnpj = maskFormat_default.retornaCpfCnpjFormatado(
|
|
224
|
+
dadosPDF.beneficiario.cnpj
|
|
201
225
|
);
|
|
202
|
-
|
|
203
|
-
|
|
226
|
+
dadosPDF.beneficiario.endereco.cep = maskFormat_default.retornaCEPFormatado(
|
|
227
|
+
dadosPDF.beneficiario.endereco.cep
|
|
204
228
|
);
|
|
205
|
-
|
|
206
|
-
|
|
229
|
+
dadosPDF.pagador.endereco.cep = maskFormat_default.retornaCEPFormatado(
|
|
230
|
+
dadosPDF.pagador.endereco.cep
|
|
207
231
|
);
|
|
208
|
-
|
|
209
|
-
|
|
232
|
+
dadosPDF.boleto.valorAcrescimo = maskFormat_default.numberToReal(
|
|
233
|
+
dadosPDF.boleto.valorAcrescimo
|
|
210
234
|
);
|
|
211
|
-
|
|
212
|
-
|
|
235
|
+
dadosPDF.boleto.valorCobrado = maskFormat_default.numberToReal(
|
|
236
|
+
dadosPDF.boleto.valorCobrado
|
|
213
237
|
);
|
|
214
|
-
|
|
215
|
-
|
|
238
|
+
dadosPDF.boleto.valorDescontoAbatimento = maskFormat_default.numberToReal(
|
|
239
|
+
dadosPDF.boleto.valorDescontoAbatimento
|
|
216
240
|
);
|
|
217
|
-
|
|
218
|
-
|
|
241
|
+
dadosPDF.boleto.valorDocumento = maskFormat_default.numberToReal(
|
|
242
|
+
dadosPDF.boleto.valorDocumento
|
|
219
243
|
);
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
244
|
+
dadosPDF.boleto.valorMulta = maskFormat_default.numberToReal(dadosPDF.boleto.valorMulta);
|
|
245
|
+
dadosPDF.boleto.valorOutrasDeducoes = maskFormat_default.numberToReal(
|
|
246
|
+
dadosPDF.boleto.valorOutrasDeducoes
|
|
223
247
|
);
|
|
224
|
-
if (
|
|
225
|
-
|
|
248
|
+
if (dadosPDF.boleto.quantidade) {
|
|
249
|
+
dadosPDF.boleto.quantidade = maskFormat_default.numberToReal(dadosPDF.boleto.quantidade);
|
|
250
|
+
}
|
|
251
|
+
const jurosMes = Number(((_a = dadosPDF.beneficiario.dadosBancario) == null ? void 0 : _a.juros) || 0);
|
|
252
|
+
if (jurosMes > 0) {
|
|
253
|
+
const juros = Number(dadosPDF.boleto.valor) * jurosMes / 100 / 30;
|
|
254
|
+
dadosPDF.boleto.instrucao1 = `AP\xD3S O VENCIMENTO, COBRAR JUROS DE R$ ${numberToReal(juros)} POR DIA DE ATRASO`;
|
|
255
|
+
}
|
|
256
|
+
const descontoVencimento = Number(((_b = dadosPDF.beneficiario.dadosBancario) == null ? void 0 : _b.desconto) || 0);
|
|
257
|
+
if (descontoVencimento > 0) {
|
|
258
|
+
const desconto = Number(dadosPDF.boleto.valor) / 100 * descontoVencimento;
|
|
259
|
+
dadosPDF.boleto.instrucao2 = `AT\xC9 O VENCIMENTO, CONCEDER DESCONTO DE R$ ${numberToReal(desconto)}`;
|
|
226
260
|
}
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
261
|
+
const multaAtraso = Number(((_c = dadosPDF.beneficiario.dadosBancario) == null ? void 0 : _c.multa) || 0);
|
|
262
|
+
if (multaAtraso > 0) {
|
|
263
|
+
dadosPDF.boleto.instrucao3 = `MULTA DE ${numberToReal(multaAtraso)} %`;
|
|
264
|
+
}
|
|
265
|
+
const protestoDias = Number(((_d = dadosPDF.beneficiario.dadosBancario) == null ? void 0 : _d.protesto) || 0);
|
|
266
|
+
if (protestoDias > 0) {
|
|
267
|
+
dadosPDF.boleto.instrucao4 = `PROTESTAR AP\xD3S ${protestoDias} DIAS CORRIDOS DO VENCIMENTO`;
|
|
268
|
+
}
|
|
269
|
+
dadosPDF.boleto.valor = maskFormat_default.numberToReal(dadosPDF.boleto.valor);
|
|
270
|
+
const content = compileHbs(getPathTemplates("ailos-boleto.hbs"), dadosPDF);
|
|
230
271
|
const config = {
|
|
231
272
|
displayHeaderFooter: false,
|
|
232
273
|
path: "./boleto.pdf",
|
|
233
274
|
format: "a4",
|
|
234
275
|
printBackground: true
|
|
235
276
|
};
|
|
277
|
+
let pdfBase64 = null;
|
|
278
|
+
if (generatePDF) {
|
|
279
|
+
pdfBase64 = yield generatePDF(content, config);
|
|
280
|
+
} else {
|
|
281
|
+
if (!api.defaults.baseURL) {
|
|
282
|
+
throw new Error("BaseURL api not found");
|
|
283
|
+
}
|
|
284
|
+
const response = yield api.post("/", { content, config });
|
|
285
|
+
pdfBase64 = response.data;
|
|
286
|
+
}
|
|
236
287
|
return {
|
|
237
|
-
erro: false
|
|
238
|
-
|
|
288
|
+
erro: false,
|
|
289
|
+
dados: pdfBase64
|
|
239
290
|
};
|
|
240
291
|
} catch (error) {
|
|
292
|
+
console.log(error);
|
|
241
293
|
return {
|
|
242
294
|
erro: true,
|
|
243
|
-
dados:
|
|
295
|
+
dados: error
|
|
244
296
|
};
|
|
245
297
|
}
|
|
246
298
|
});
|
|
@@ -267,17 +319,475 @@ var Arquivo = class {
|
|
|
267
319
|
};
|
|
268
320
|
|
|
269
321
|
// src/ailos/gerarRemessa.ts
|
|
270
|
-
function gerarRemessa(dados) {
|
|
271
|
-
|
|
322
|
+
function gerarRemessa({ dados }) {
|
|
323
|
+
try {
|
|
324
|
+
const { dadosBancario, beneficiario, boletos } = dados.remessa;
|
|
325
|
+
const arquivo = new Arquivo();
|
|
326
|
+
const dataAtual = /* @__PURE__ */ new Date();
|
|
327
|
+
const data = format(dataAtual, "ddMMyyyy");
|
|
328
|
+
const hora = format(dataAtual, "HHmmss");
|
|
329
|
+
const convenio = dadosBancario.convenio.padStart(7, "0");
|
|
330
|
+
const numero = dadosBancario.conta.padStart(7, "0") + dadosBancario.contaDigito;
|
|
331
|
+
const remessa2 = `REM${convenio}-${numero}-${data}.REM`;
|
|
332
|
+
arquivo.add("085");
|
|
333
|
+
arquivo.add("0000");
|
|
334
|
+
arquivo.add("0");
|
|
335
|
+
arquivo.add(" ");
|
|
336
|
+
arquivo.add("2");
|
|
337
|
+
arquivo.add(beneficiario.cnpj);
|
|
338
|
+
arquivo.add(dadosBancario.convenio.padEnd(20, " "));
|
|
339
|
+
arquivo.add(dadosBancario.agencia.padStart(5, "0"));
|
|
340
|
+
arquivo.add(dadosBancario.agenciaDigito);
|
|
341
|
+
arquivo.add(dadosBancario.conta.padStart(12, "0"));
|
|
342
|
+
arquivo.add(dadosBancario.contaDigito);
|
|
343
|
+
arquivo.add(" ");
|
|
344
|
+
arquivo.add(beneficiario.nome.substring(0, 30).padEnd(30, " "));
|
|
345
|
+
arquivo.add("AILOS".padEnd(30, " "));
|
|
346
|
+
arquivo.add(" ");
|
|
347
|
+
arquivo.add("1");
|
|
348
|
+
arquivo.add(data);
|
|
349
|
+
arquivo.add(hora);
|
|
350
|
+
arquivo.add(dadosBancario.numeroRemessa.padStart(6, "0"));
|
|
351
|
+
arquivo.add("087");
|
|
352
|
+
arquivo.add("00000");
|
|
353
|
+
arquivo.add(" ".padEnd(20, " "));
|
|
354
|
+
arquivo.add(" ".padEnd(20, " "));
|
|
355
|
+
arquivo.add(" ".padEnd(29, " "));
|
|
356
|
+
arquivo.addLine();
|
|
357
|
+
arquivo.add("085");
|
|
358
|
+
arquivo.add("0001");
|
|
359
|
+
arquivo.add("1");
|
|
360
|
+
arquivo.add("R");
|
|
361
|
+
arquivo.add("01");
|
|
362
|
+
arquivo.add(" ");
|
|
363
|
+
arquivo.add("045");
|
|
364
|
+
arquivo.add(" ");
|
|
365
|
+
arquivo.add("2");
|
|
366
|
+
arquivo.add(beneficiario.cnpj.padStart(15, "0"));
|
|
367
|
+
arquivo.add(dadosBancario.convenio.padEnd(20, " "));
|
|
368
|
+
arquivo.add(dadosBancario.agencia.padStart(5, "0"));
|
|
369
|
+
arquivo.add(dadosBancario.agenciaDigito);
|
|
370
|
+
arquivo.add(dadosBancario.conta.padStart(12, "0"));
|
|
371
|
+
arquivo.add(dadosBancario.contaDigito);
|
|
372
|
+
arquivo.add(" ");
|
|
373
|
+
arquivo.add(beneficiario.nome.substring(0, 30).padEnd(30, " "));
|
|
374
|
+
arquivo.add(" ".padEnd(40, " "));
|
|
375
|
+
arquivo.add(" ".padEnd(40, " "));
|
|
376
|
+
arquivo.add(dadosBancario.numeroRemessa.padStart(8, "0"));
|
|
377
|
+
arquivo.add(data);
|
|
378
|
+
arquivo.add("00000000");
|
|
379
|
+
arquivo.add(" ".padEnd(33, " "));
|
|
380
|
+
arquivo.addLine();
|
|
381
|
+
let sequencia = 1;
|
|
382
|
+
let quantidadeRegistro = 1;
|
|
383
|
+
let total = 0;
|
|
384
|
+
for (const boleto of boletos) {
|
|
385
|
+
const { pagador } = boleto;
|
|
386
|
+
const vencimento = format(new Date(boleto.vencimento), "ddMMyyyy");
|
|
387
|
+
total += Number(boleto.valor);
|
|
388
|
+
const codigoJuro = dadosBancario.jurosMes > 0 ? "2" : "3";
|
|
389
|
+
const juros = dadosBancario.jurosMes > 0 ? dadosBancario.jurosMes.toFixed(2) : "000000000000000";
|
|
390
|
+
const jurosVencimento = format(
|
|
391
|
+
addDays(new Date(boleto.vencimento), 1),
|
|
392
|
+
"ddMMyyyy"
|
|
393
|
+
);
|
|
394
|
+
const codigoDesconto = dadosBancario.descontoPagamento > 0 ? "2" : "0";
|
|
395
|
+
const desconto = dadosBancario.descontoPagamento > 0 ? dadosBancario.descontoPagamento.toFixed(2) : "000000000000000";
|
|
396
|
+
const protesto = dadosBancario.diasProtesto > 0 ? "1" : "3";
|
|
397
|
+
const diasProtesto = protesto === "1" ? dadosBancario.diasProtesto.toString() : "00";
|
|
398
|
+
arquivo.add("085");
|
|
399
|
+
arquivo.add("0001");
|
|
400
|
+
arquivo.add("3");
|
|
401
|
+
arquivo.add(sequencia.toString().padStart(5, "0"));
|
|
402
|
+
arquivo.add("P");
|
|
403
|
+
arquivo.add(" ");
|
|
404
|
+
arquivo.add("01");
|
|
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(boleto.nossoNumero.padEnd(20, " "));
|
|
411
|
+
arquivo.add("1");
|
|
412
|
+
arquivo.add("1");
|
|
413
|
+
arquivo.add("1");
|
|
414
|
+
arquivo.add("2");
|
|
415
|
+
arquivo.add("2");
|
|
416
|
+
arquivo.add(`${boleto.numeroDocumento}/${boleto.parcela}`.padEnd(15, " "));
|
|
417
|
+
arquivo.add(vencimento);
|
|
418
|
+
arquivo.add(
|
|
419
|
+
Number(boleto.valor).toFixed(2).replace(".", "").padStart(15, "0")
|
|
420
|
+
);
|
|
421
|
+
arquivo.add(dadosBancario.agencia.padStart(5, "0"));
|
|
422
|
+
arquivo.add(dadosBancario.agenciaDigito);
|
|
423
|
+
arquivo.add("02");
|
|
424
|
+
arquivo.add("A");
|
|
425
|
+
arquivo.add(data);
|
|
426
|
+
arquivo.add(codigoJuro);
|
|
427
|
+
arquivo.add(jurosVencimento);
|
|
428
|
+
arquivo.add(juros.replace(".", "").padStart(15, "0"));
|
|
429
|
+
arquivo.add(codigoDesconto);
|
|
430
|
+
arquivo.add(vencimento);
|
|
431
|
+
arquivo.add(desconto.replace(".", "").padStart(15, "0"));
|
|
432
|
+
arquivo.add("000000000000000");
|
|
433
|
+
arquivo.add("000000000000000");
|
|
434
|
+
arquivo.add(boleto.identificacaoTitulo.padEnd(25, " "));
|
|
435
|
+
arquivo.add(protesto);
|
|
436
|
+
arquivo.add(diasProtesto.padStart(1, "0"));
|
|
437
|
+
arquivo.add("2");
|
|
438
|
+
arquivo.add(" ");
|
|
439
|
+
arquivo.add("09");
|
|
440
|
+
arquivo.add("0000000000");
|
|
441
|
+
arquivo.add(" ");
|
|
442
|
+
sequencia++;
|
|
443
|
+
arquivo.addLine();
|
|
444
|
+
let tipoInscricao = "1";
|
|
445
|
+
if (pagador.pessoa === "F") {
|
|
446
|
+
tipoInscricao = "1";
|
|
447
|
+
} else {
|
|
448
|
+
tipoInscricao = "2";
|
|
449
|
+
}
|
|
450
|
+
pagador.endereco.logradouro = `${pagador.endereco.logradouro.substring(0, 32).padEnd(32, " ")}${pagador.endereco.numero.padEnd(8, " ")}`;
|
|
451
|
+
arquivo.add("085");
|
|
452
|
+
arquivo.add("0001");
|
|
453
|
+
arquivo.add("3");
|
|
454
|
+
arquivo.add(sequencia.toString().padStart(5, "0"));
|
|
455
|
+
arquivo.add("Q");
|
|
456
|
+
arquivo.add(" ");
|
|
457
|
+
arquivo.add("01");
|
|
458
|
+
arquivo.add(tipoInscricao);
|
|
459
|
+
arquivo.add(pagador.cpfCnpj.padStart(15, "0"));
|
|
460
|
+
arquivo.add(pagador.nome.substring(0, 40).padEnd(40, " "));
|
|
461
|
+
arquivo.add(pagador.endereco.logradouro.substring(0, 40).padEnd(40, " "));
|
|
462
|
+
arquivo.add(pagador.endereco.bairro.substring(0, 15).padEnd(15, " "));
|
|
463
|
+
arquivo.add(pagador.endereco.cep.substring(0, 5).padStart(5, "0"));
|
|
464
|
+
arquivo.add(pagador.endereco.cep.substring(5, 7).padStart(3, "0"));
|
|
465
|
+
arquivo.add(pagador.endereco.municipio.substring(0, 15).padEnd(15, " "));
|
|
466
|
+
arquivo.add(pagador.endereco.uf.padEnd(2, " "));
|
|
467
|
+
arquivo.add("0");
|
|
468
|
+
arquivo.add("000000000000000");
|
|
469
|
+
arquivo.add(" ".padEnd(40, " "));
|
|
470
|
+
arquivo.add("000");
|
|
471
|
+
arquivo.add(" ".padEnd(20, " "));
|
|
472
|
+
arquivo.add(" ".padEnd(8, " "));
|
|
473
|
+
dadosBancario.multaAtraso = Number(dadosBancario.multaAtraso || 0);
|
|
474
|
+
if (dadosBancario.multaAtraso > 0) {
|
|
475
|
+
arquivo.addLine();
|
|
476
|
+
const multa = dadosBancario.multaAtraso.toFixed(2);
|
|
477
|
+
sequencia++;
|
|
478
|
+
arquivo.add("085");
|
|
479
|
+
arquivo.add("0001");
|
|
480
|
+
arquivo.add("3");
|
|
481
|
+
arquivo.add(sequencia.toString().padStart(5, "0"));
|
|
482
|
+
arquivo.add("R");
|
|
483
|
+
arquivo.add(" ");
|
|
484
|
+
arquivo.add("01");
|
|
485
|
+
arquivo.add("0");
|
|
486
|
+
arquivo.add("00000000");
|
|
487
|
+
arquivo.add("000000000000000");
|
|
488
|
+
arquivo.add("0");
|
|
489
|
+
arquivo.add("00000000");
|
|
490
|
+
arquivo.add("000000000000000");
|
|
491
|
+
arquivo.add("2");
|
|
492
|
+
arquivo.add(vencimento);
|
|
493
|
+
arquivo.add(multa.replace(".", "").padStart(15, "0"));
|
|
494
|
+
arquivo.add(" ".padEnd(10, " "));
|
|
495
|
+
arquivo.add(" ".padEnd(40, " "));
|
|
496
|
+
arquivo.add(" ".padEnd(40, " "));
|
|
497
|
+
arquivo.add(" ".padEnd(20, " "));
|
|
498
|
+
arquivo.add("00000000");
|
|
499
|
+
arquivo.add("000");
|
|
500
|
+
arquivo.add("00000");
|
|
501
|
+
arquivo.add(" ");
|
|
502
|
+
arquivo.add("000000000000");
|
|
503
|
+
arquivo.add(" ");
|
|
504
|
+
arquivo.add(" ");
|
|
505
|
+
arquivo.add("0");
|
|
506
|
+
arquivo.add("000000000");
|
|
507
|
+
}
|
|
508
|
+
arquivo.addLine();
|
|
509
|
+
quantidadeRegistro++;
|
|
510
|
+
}
|
|
511
|
+
arquivo.add("085");
|
|
512
|
+
arquivo.add("0001");
|
|
513
|
+
arquivo.add("5");
|
|
514
|
+
arquivo.add(" ".padEnd(9, " "));
|
|
515
|
+
arquivo.add((sequencia + 3).toString().padStart(6, "0"));
|
|
516
|
+
arquivo.add(quantidadeRegistro.toString().padStart(6, "0"));
|
|
517
|
+
arquivo.add(total.toFixed(2).replace(".", "").padStart(17, "0"));
|
|
518
|
+
arquivo.add("0".padStart(6, "0"));
|
|
519
|
+
arquivo.add("0".padStart(17, "0"));
|
|
520
|
+
arquivo.add("0".padStart(6, "0"));
|
|
521
|
+
arquivo.add("0".padStart(17, "0"));
|
|
522
|
+
arquivo.add("0".padStart(6, "0"));
|
|
523
|
+
arquivo.add("0".padStart(17, "0"));
|
|
524
|
+
arquivo.add(" ".padStart(8, " "));
|
|
525
|
+
arquivo.add(" ".padStart(117, " "));
|
|
526
|
+
arquivo.addLine();
|
|
527
|
+
arquivo.add("085");
|
|
528
|
+
arquivo.add("9999");
|
|
529
|
+
arquivo.add("9");
|
|
530
|
+
arquivo.add(" ".padEnd(9, " "));
|
|
531
|
+
arquivo.add("000001");
|
|
532
|
+
arquivo.add((sequencia + 4).toString().padStart(6, "0"));
|
|
533
|
+
arquivo.add("000000");
|
|
534
|
+
arquivo.add(" ".padEnd(205, " "));
|
|
535
|
+
return {
|
|
536
|
+
download: remessa2,
|
|
537
|
+
arquivo: arquivo.getArquivo()
|
|
538
|
+
};
|
|
539
|
+
} catch (error) {
|
|
540
|
+
console.log(error);
|
|
541
|
+
return null;
|
|
542
|
+
}
|
|
543
|
+
}
|
|
544
|
+
|
|
545
|
+
// src/ailos/gerarRetorno.ts
|
|
546
|
+
function gerarRetorno({ dados }) {
|
|
547
|
+
try {
|
|
548
|
+
const { arquivo } = dados;
|
|
549
|
+
const documentos = [];
|
|
550
|
+
let index = 0;
|
|
551
|
+
for (const item of arquivo) {
|
|
552
|
+
let linha = item;
|
|
553
|
+
const banco = linha.substring(0, 3);
|
|
554
|
+
const codigoRetorno = linha.substring(15, 17);
|
|
555
|
+
if ((banco === "001" || banco === "085") && (codigoRetorno === "06" || codigoRetorno === "17")) {
|
|
556
|
+
let segmento = linha.substring(13, 14);
|
|
557
|
+
if (segmento === "T") {
|
|
558
|
+
const linhaDoc = linha.substring(105, 130).trimEnd();
|
|
559
|
+
let tipoDocumento = "INDEFINIDO";
|
|
560
|
+
let idDocumento = linhaDoc;
|
|
561
|
+
if (linhaDoc.includes("-")) {
|
|
562
|
+
const [tipoDoc, idDoc] = linhaDoc.split("-");
|
|
563
|
+
tipoDocumento = tipoDoc;
|
|
564
|
+
idDocumento = idDoc;
|
|
565
|
+
}
|
|
566
|
+
const especie = tipoDocumento.length ? tipoDocumento : "INDEFINIDO";
|
|
567
|
+
linha = arquivo[index + 1];
|
|
568
|
+
segmento = linha.substring(13, 14);
|
|
569
|
+
if (segmento === "U") {
|
|
570
|
+
const valorAbatimentoString = linha.substring(47, 62);
|
|
571
|
+
const valorAbatimento = Number(valorAbatimentoString) / 100;
|
|
572
|
+
const valorDescontoString = linha.substring(32, 47);
|
|
573
|
+
const valorDesconto = Number(valorDescontoString) / 100;
|
|
574
|
+
const valorPagoString = linha.substring(77, 92);
|
|
575
|
+
const valorPago = Number(valorPagoString) / 100;
|
|
576
|
+
const valorJurosString = linha.substring(17, 32);
|
|
577
|
+
const valorJuros = Number(valorJurosString) / 100;
|
|
578
|
+
const valorMulta = 0;
|
|
579
|
+
const descontos = valorAbatimento + valorDesconto;
|
|
580
|
+
const valorTotal = valorPago - valorJuros + descontos;
|
|
581
|
+
const documento = {
|
|
582
|
+
id_documento: idDocumento,
|
|
583
|
+
especie,
|
|
584
|
+
valor: valorPago,
|
|
585
|
+
valor_multa: valorMulta,
|
|
586
|
+
valor_juros: valorJuros,
|
|
587
|
+
valor_desconto: valorDesconto,
|
|
588
|
+
valor_total: valorTotal
|
|
589
|
+
};
|
|
590
|
+
documentos.push(documento);
|
|
591
|
+
}
|
|
592
|
+
}
|
|
593
|
+
}
|
|
594
|
+
index++;
|
|
595
|
+
}
|
|
596
|
+
return documentos;
|
|
597
|
+
} catch (error) {
|
|
598
|
+
console.log(error);
|
|
599
|
+
return null;
|
|
600
|
+
}
|
|
601
|
+
}
|
|
602
|
+
|
|
603
|
+
// src/ailos/index.ts
|
|
604
|
+
var ailos = {
|
|
605
|
+
gerarDadosBoleto,
|
|
606
|
+
gerarPDF,
|
|
607
|
+
gerarRemessa,
|
|
608
|
+
gerarRetorno
|
|
609
|
+
};
|
|
610
|
+
|
|
611
|
+
// src/bradesco/gerarDadosBoleto.ts
|
|
612
|
+
import { differenceInDays as differenceInDays2 } from "date-fns";
|
|
613
|
+
function gerarDadosBoleto2({ dados }) {
|
|
614
|
+
try {
|
|
615
|
+
const { bancario, parcela } = dados;
|
|
616
|
+
parcela.valor = Number(parcela.valor);
|
|
617
|
+
const fatorVencimento = getFatorVencimento2(parcela.vencimento);
|
|
618
|
+
const valor = getValor2(parcela.valor);
|
|
619
|
+
const convenio = padLeft(bancario.convenio, 6);
|
|
620
|
+
const numeroDocumento = padLeft(`${parcela.id_boleto}`, 9);
|
|
621
|
+
const nossoNumero = padLeft(bancario.numero + bancario.numero_dv, 8) + numeroDocumento;
|
|
622
|
+
const campoLivre = convenio + nossoNumero + padLeft(bancario.carteira, 2);
|
|
623
|
+
const digitoGeral = getDigitoGeral2(`0859${fatorVencimento}${valor}${campoLivre}`);
|
|
624
|
+
const codigoBarra2 = `0859${digitoGeral}${fatorVencimento}${valor}${campoLivre}`;
|
|
625
|
+
const campo1 = copy(codigoBarra2, 1, 3) + copy(codigoBarra2, 4, 4) + copy(codigoBarra2, 20, 24);
|
|
626
|
+
const campo2 = copy(codigoBarra2, 25, 34);
|
|
627
|
+
const campo3 = copy(codigoBarra2, 35, 44);
|
|
628
|
+
const campo4 = copy(codigoBarra2, 5, 5);
|
|
629
|
+
const campo5 = copy(codigoBarra2, 6, 9) + copy(codigoBarra2, 10, 19);
|
|
630
|
+
const digito1 = getDigito2(campo1);
|
|
631
|
+
const digito2 = getDigito2(campo2);
|
|
632
|
+
const digito3 = getDigito2(campo3);
|
|
633
|
+
const digito4 = getDigito2(campo4);
|
|
634
|
+
const linhaDigitavel = campo1 + digito1 + campo2 + digito2 + campo3 + digito3 + campo4 + digito4 + campo5;
|
|
635
|
+
const dadosBoleto = {
|
|
636
|
+
linhaDigitavel,
|
|
637
|
+
fatorVencimento,
|
|
638
|
+
valor,
|
|
639
|
+
convenio,
|
|
640
|
+
nossoNumero,
|
|
641
|
+
campoLivre,
|
|
642
|
+
digitoGeral,
|
|
643
|
+
codigoBarra: codigoBarra2,
|
|
644
|
+
numeroDocumento
|
|
645
|
+
};
|
|
646
|
+
return dadosBoleto;
|
|
647
|
+
} catch (error) {
|
|
648
|
+
console.log("Falha ao gerar dados do boleto", error);
|
|
649
|
+
return null;
|
|
650
|
+
}
|
|
651
|
+
}
|
|
652
|
+
function getFatorVencimento2(vencimento) {
|
|
653
|
+
const data = new Date(1997, 9, 7);
|
|
654
|
+
return differenceInDays2(new Date(vencimento), data).toString();
|
|
655
|
+
}
|
|
656
|
+
function getValor2(valor) {
|
|
657
|
+
const valorFormatado = valor.toFixed(2).replace(/\D/g, "");
|
|
658
|
+
return padLeft(valorFormatado, 10);
|
|
659
|
+
}
|
|
660
|
+
function getDigitoGeral2(texto) {
|
|
661
|
+
let i = 43;
|
|
662
|
+
let j = 1;
|
|
663
|
+
let soma = 0;
|
|
664
|
+
let digito = 0;
|
|
665
|
+
while (i >= 1) {
|
|
666
|
+
j++;
|
|
667
|
+
if (j === 10)
|
|
668
|
+
j = 2;
|
|
669
|
+
const valor = Number(copy(texto, i, i));
|
|
670
|
+
soma += j * valor;
|
|
671
|
+
i--;
|
|
672
|
+
}
|
|
673
|
+
const restoDivisao = soma % 11;
|
|
674
|
+
digito = 11 - restoDivisao;
|
|
675
|
+
if (digito === 0 || digito === 1 || digito > 9)
|
|
676
|
+
digito = 1;
|
|
677
|
+
return String(digito);
|
|
678
|
+
}
|
|
679
|
+
function getDigito2(texto) {
|
|
680
|
+
let i = texto.length;
|
|
681
|
+
let j = 1;
|
|
682
|
+
let total = 0;
|
|
683
|
+
let soma = 0;
|
|
684
|
+
let digito = 0;
|
|
685
|
+
while (i >= 1) {
|
|
686
|
+
j = j === 1 ? 2 : 1;
|
|
687
|
+
let valor = Number(copy(texto, i, i));
|
|
688
|
+
total = valor * j;
|
|
689
|
+
if (total >= 10) {
|
|
690
|
+
valor = Number(copy(total, 1, 1)) + Number(copy(total, 2, 2));
|
|
691
|
+
} else {
|
|
692
|
+
valor = total;
|
|
693
|
+
}
|
|
694
|
+
soma += valor;
|
|
695
|
+
i--;
|
|
696
|
+
}
|
|
697
|
+
const uni = Number(copy(soma, String(soma).length, String(soma).length));
|
|
698
|
+
digito = 10 - uni;
|
|
699
|
+
if (digito === 10)
|
|
700
|
+
digito = 0;
|
|
701
|
+
return String(digito);
|
|
702
|
+
}
|
|
703
|
+
|
|
704
|
+
// src/bradesco/gerarPDF.ts
|
|
705
|
+
import BwipJs2 from "bwip-js";
|
|
706
|
+
function gerarPDF2(_0) {
|
|
707
|
+
return __async(this, arguments, function* ({ dados }) {
|
|
708
|
+
try {
|
|
709
|
+
const { dadosPDF, generatePDF } = dados;
|
|
710
|
+
const codigoBarra2 = yield BwipJs2.toBuffer({
|
|
711
|
+
bcid: "interleaved2of5",
|
|
712
|
+
text: dadosPDF.boleto.codigoBarra,
|
|
713
|
+
height: 20
|
|
714
|
+
});
|
|
715
|
+
dadosPDF.beneficiario.dadosBancarios.agencia = dadosPDF.beneficiario.dadosBancarios.agencia.padStart(4, "0");
|
|
716
|
+
dadosPDF.beneficiario.dadosBancarios.conta = dadosPDF.beneficiario.dadosBancarios.conta.padStart(7, "0");
|
|
717
|
+
dadosPDF.boleto.codigoBarra = maskFormat_default.codigoBarra(dadosPDF.boleto.codigoBarra);
|
|
718
|
+
dadosPDF.boleto.codigoBarraImage = codigoBarra2.toString("base64");
|
|
719
|
+
dadosPDF.beneficiario.cnpj = maskFormat_default.retornaCpfCnpjFormatado(
|
|
720
|
+
dadosPDF.beneficiario.cnpj
|
|
721
|
+
);
|
|
722
|
+
dadosPDF.beneficiario.endereco.cep = maskFormat_default.retornaCEPFormatado(
|
|
723
|
+
dadosPDF.beneficiario.endereco.cep
|
|
724
|
+
);
|
|
725
|
+
dadosPDF.pagador.endereco.cep = maskFormat_default.retornaCEPFormatado(
|
|
726
|
+
dadosPDF.pagador.endereco.cep
|
|
727
|
+
);
|
|
728
|
+
dadosPDF.boleto.valorAcrescimo = maskFormat_default.numberToReal(
|
|
729
|
+
dadosPDF.boleto.valorAcrescimo
|
|
730
|
+
);
|
|
731
|
+
dadosPDF.boleto.valorCobrado = maskFormat_default.numberToReal(
|
|
732
|
+
dadosPDF.boleto.valorCobrado
|
|
733
|
+
);
|
|
734
|
+
dadosPDF.boleto.valorDescontoAbatimento = maskFormat_default.numberToReal(
|
|
735
|
+
dadosPDF.boleto.valorDescontoAbatimento
|
|
736
|
+
);
|
|
737
|
+
dadosPDF.boleto.valorDocumento = maskFormat_default.numberToReal(
|
|
738
|
+
dadosPDF.boleto.valorDocumento
|
|
739
|
+
);
|
|
740
|
+
dadosPDF.boleto.valorMulta = maskFormat_default.numberToReal(dadosPDF.boleto.valorMulta);
|
|
741
|
+
dadosPDF.boleto.valorOutrasDeducoes = maskFormat_default.numberToReal(
|
|
742
|
+
dadosPDF.boleto.valorOutrasDeducoes
|
|
743
|
+
);
|
|
744
|
+
if (dadosPDF.boleto.quantidade) {
|
|
745
|
+
dadosPDF.boleto.quantidade = maskFormat_default.numberToReal(dadosPDF.boleto.quantidade);
|
|
746
|
+
}
|
|
747
|
+
dadosPDF.boleto.valor = maskFormat_default.numberToReal(dadosPDF.boleto.valor);
|
|
748
|
+
const content = compileHbs(getPathTemplates("bradesco-boleto.hbs"), dados);
|
|
749
|
+
const config = {
|
|
750
|
+
displayHeaderFooter: false,
|
|
751
|
+
path: "./boleto.pdf",
|
|
752
|
+
format: "a4",
|
|
753
|
+
printBackground: true
|
|
754
|
+
};
|
|
755
|
+
let pdfBase64 = null;
|
|
756
|
+
if (generatePDF) {
|
|
757
|
+
pdfBase64 = yield generatePDF(content, config);
|
|
758
|
+
} else {
|
|
759
|
+
if (!api.defaults.baseURL) {
|
|
760
|
+
throw new Error("BaseURL api not found");
|
|
761
|
+
}
|
|
762
|
+
const response = yield api.post("/", { content, config });
|
|
763
|
+
pdfBase64 = response.data;
|
|
764
|
+
}
|
|
765
|
+
return {
|
|
766
|
+
erro: false,
|
|
767
|
+
dados: pdfBase64
|
|
768
|
+
};
|
|
769
|
+
} catch (error) {
|
|
770
|
+
return {
|
|
771
|
+
erro: true,
|
|
772
|
+
dados: null
|
|
773
|
+
};
|
|
774
|
+
}
|
|
775
|
+
});
|
|
776
|
+
}
|
|
777
|
+
|
|
778
|
+
// src/bradesco/gerarRemessa.ts
|
|
779
|
+
import { addDays as addDays2, format as format2 } from "date-fns";
|
|
780
|
+
function gerarRemessa2(_0) {
|
|
781
|
+
return __async(this, arguments, function* ({ dados }) {
|
|
272
782
|
try {
|
|
273
|
-
const { dadosBancario, beneficiario, boletos
|
|
783
|
+
const { dadosBancario, beneficiario, boletos } = dados.remessa;
|
|
274
784
|
const arquivo = new Arquivo();
|
|
275
785
|
const dataAtual = /* @__PURE__ */ new Date();
|
|
276
|
-
const data =
|
|
277
|
-
const hora =
|
|
786
|
+
const data = format2(dataAtual, "ddMMyyyy");
|
|
787
|
+
const hora = format2(dataAtual, "HHmmss");
|
|
278
788
|
const convenio = dadosBancario.convenio.padStart(7, "0");
|
|
279
789
|
const numero = dadosBancario.conta.padStart(7, "0") + dadosBancario.contaDigito;
|
|
280
|
-
const
|
|
790
|
+
const remessa2 = `REM${convenio}-${numero}-${data}.REM`;
|
|
281
791
|
arquivo.add("085");
|
|
282
792
|
arquivo.add("0000");
|
|
283
793
|
arquivo.add("0");
|
|
@@ -319,7 +829,7 @@ function gerarRemessa(dados) {
|
|
|
319
829
|
arquivo.add(dadosBancario.conta.padStart(12, "0"));
|
|
320
830
|
arquivo.add(dadosBancario.contaDigito);
|
|
321
831
|
arquivo.add(" ");
|
|
322
|
-
arquivo.add(
|
|
832
|
+
arquivo.add(beneficiario.nome.substring(0, 30).padEnd(30, " "));
|
|
323
833
|
arquivo.add(" ".padEnd(40, " "));
|
|
324
834
|
arquivo.add(" ".padEnd(40, " "));
|
|
325
835
|
arquivo.add(dadosBancario.numeroRemessa.padStart(8, "0"));
|
|
@@ -331,12 +841,13 @@ function gerarRemessa(dados) {
|
|
|
331
841
|
let quantidadeRegistro = 1;
|
|
332
842
|
let total = 0;
|
|
333
843
|
for (const boleto of boletos) {
|
|
334
|
-
const
|
|
844
|
+
const { pagador } = boleto;
|
|
845
|
+
const vencimento = format2(new Date(boleto.vencimento), "ddMMyyyy");
|
|
335
846
|
total += Number(boleto.valor);
|
|
336
847
|
const codigoJuro = dadosBancario.jurosMes > 0 ? "2" : "3";
|
|
337
848
|
const juros = dadosBancario.jurosMes > 0 ? dadosBancario.jurosMes.toFixed(2) : "000000000000000";
|
|
338
|
-
const jurosVencimento =
|
|
339
|
-
|
|
849
|
+
const jurosVencimento = format2(
|
|
850
|
+
addDays2(new Date(boleto.vencimento), 1),
|
|
340
851
|
"ddMMyyyy"
|
|
341
852
|
);
|
|
342
853
|
const codigoDesconto = dadosBancario.descontoPagamento > 0 ? "2" : "0";
|
|
@@ -481,7 +992,7 @@ function gerarRemessa(dados) {
|
|
|
481
992
|
arquivo.add("000000");
|
|
482
993
|
arquivo.add(" ".padEnd(205, " "));
|
|
483
994
|
return {
|
|
484
|
-
download:
|
|
995
|
+
download: remessa2,
|
|
485
996
|
arquivo: arquivo.getArquivo()
|
|
486
997
|
};
|
|
487
998
|
} catch (error) {
|
|
@@ -491,18 +1002,130 @@ function gerarRemessa(dados) {
|
|
|
491
1002
|
});
|
|
492
1003
|
}
|
|
493
1004
|
|
|
494
|
-
// src/
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
1005
|
+
// src/bradesco/gerarRetorno.ts
|
|
1006
|
+
function gerarRetorno2({ dados }) {
|
|
1007
|
+
try {
|
|
1008
|
+
const { arquivo } = dados;
|
|
1009
|
+
const documentos = [];
|
|
1010
|
+
let index = 0;
|
|
1011
|
+
for (const item of arquivo) {
|
|
1012
|
+
let linha = item;
|
|
1013
|
+
const banco = linha.substring(0, 3);
|
|
1014
|
+
const codigoRetorno = linha.substring(15, 17);
|
|
1015
|
+
if ((banco === "001" || banco === "085") && (codigoRetorno === "06" || codigoRetorno === "17")) {
|
|
1016
|
+
let segmento = linha.substring(13, 14);
|
|
1017
|
+
if (segmento === "T") {
|
|
1018
|
+
let tipoDocumento = "";
|
|
1019
|
+
let idDocumento = "";
|
|
1020
|
+
const linhaDoc = linha.substring(105, 130).trimEnd();
|
|
1021
|
+
if (linhaDoc.includes("-")) {
|
|
1022
|
+
[tipoDocumento, idDocumento] = linha.split("-");
|
|
1023
|
+
} else {
|
|
1024
|
+
idDocumento = linhaDoc;
|
|
1025
|
+
}
|
|
1026
|
+
const especie = tipoDocumento.length ? tipoDocumento : "INDEFINIDO";
|
|
1027
|
+
linha = arquivo[index + 1];
|
|
1028
|
+
segmento = linha.substring(13, 14);
|
|
1029
|
+
if (segmento === "U") {
|
|
1030
|
+
const valorAbatimentoString = linha.substring(47, 62);
|
|
1031
|
+
const valorAbatimento = Number(valorAbatimentoString) / 100;
|
|
1032
|
+
const valorDescontoString = linha.substring(32, 47);
|
|
1033
|
+
const valorDesconto = Number(valorDescontoString) / 100;
|
|
1034
|
+
const valorPagoString = linha.substring(77, 92);
|
|
1035
|
+
const valorPago = Number(valorPagoString) / 100;
|
|
1036
|
+
const valorJurosString = linha.substring(17, 32);
|
|
1037
|
+
const valorJuros = Number(valorJurosString) / 100;
|
|
1038
|
+
const valorMulta = 0;
|
|
1039
|
+
const descontos = valorAbatimento + valorDesconto;
|
|
1040
|
+
const valorTotal = valorPago - valorJuros + descontos;
|
|
1041
|
+
const documento = {
|
|
1042
|
+
id_documento: idDocumento,
|
|
1043
|
+
especie,
|
|
1044
|
+
valor: valorTotal,
|
|
1045
|
+
acrescimo: valorMulta,
|
|
1046
|
+
desconto: valorDesconto
|
|
1047
|
+
};
|
|
1048
|
+
documentos.push(documento);
|
|
1049
|
+
}
|
|
1050
|
+
}
|
|
1051
|
+
}
|
|
1052
|
+
index++;
|
|
1053
|
+
}
|
|
1054
|
+
return documentos;
|
|
1055
|
+
} catch (error) {
|
|
1056
|
+
console.log(error);
|
|
1057
|
+
return null;
|
|
1058
|
+
}
|
|
1059
|
+
}
|
|
500
1060
|
|
|
501
1061
|
// src/bradesco/index.ts
|
|
502
|
-
|
|
503
|
-
|
|
1062
|
+
var bradesco = {
|
|
1063
|
+
gerarDadosBoleto: gerarDadosBoleto2,
|
|
1064
|
+
gerarPDF: gerarPDF2,
|
|
1065
|
+
gerarRemessa: gerarRemessa2,
|
|
1066
|
+
gerarRetorno: gerarRetorno2
|
|
1067
|
+
};
|
|
1068
|
+
|
|
1069
|
+
// src/gerar.ts
|
|
1070
|
+
function gerar({ banco, dados }) {
|
|
1071
|
+
if (banco === "085" /* AILOS */) {
|
|
1072
|
+
return ailos.gerarDadosBoleto({ banco, dados });
|
|
1073
|
+
}
|
|
1074
|
+
if (banco === "005" /* BRADESCO */) {
|
|
1075
|
+
return bradesco.gerarDadosBoleto({ banco, dados });
|
|
1076
|
+
}
|
|
1077
|
+
}
|
|
1078
|
+
|
|
1079
|
+
// src/pdf.ts
|
|
1080
|
+
function pdf({ banco, dados }) {
|
|
1081
|
+
if (banco === "085" /* AILOS */) {
|
|
1082
|
+
return ailos.gerarPDF({ banco, dados });
|
|
1083
|
+
}
|
|
1084
|
+
if (banco === "005" /* BRADESCO */) {
|
|
1085
|
+
return bradesco.gerarPDF({ banco, dados });
|
|
1086
|
+
}
|
|
504
1087
|
}
|
|
1088
|
+
|
|
1089
|
+
// src/remessa.ts
|
|
1090
|
+
function remessa({ banco, dados }) {
|
|
1091
|
+
if (banco === "085" /* AILOS */) {
|
|
1092
|
+
return ailos.gerarRemessa({ banco, dados });
|
|
1093
|
+
}
|
|
1094
|
+
if (banco === "005" /* BRADESCO */) {
|
|
1095
|
+
return bradesco.gerarRemessa({ banco, dados });
|
|
1096
|
+
}
|
|
1097
|
+
}
|
|
1098
|
+
|
|
1099
|
+
// src/retorno.ts
|
|
1100
|
+
function retorno({ banco, dados }) {
|
|
1101
|
+
if (banco === "085" /* AILOS */) {
|
|
1102
|
+
return ailos.gerarRetorno({ banco, dados });
|
|
1103
|
+
}
|
|
1104
|
+
if (banco === "005" /* BRADESCO */) {
|
|
1105
|
+
return bradesco.gerarRetorno({ banco, dados });
|
|
1106
|
+
}
|
|
1107
|
+
}
|
|
1108
|
+
|
|
1109
|
+
// src/config/index.ts
|
|
1110
|
+
function defineConfig({ apiClient }) {
|
|
1111
|
+
if (apiClient) {
|
|
1112
|
+
const { authorization, url } = apiClient;
|
|
1113
|
+
if (url)
|
|
1114
|
+
api.defaults.baseURL = url;
|
|
1115
|
+
if (authorization)
|
|
1116
|
+
api.defaults.headers.common.Authorization = authorization;
|
|
1117
|
+
}
|
|
1118
|
+
}
|
|
1119
|
+
|
|
1120
|
+
// src/index.ts
|
|
1121
|
+
var src_default = {
|
|
1122
|
+
gerar,
|
|
1123
|
+
pdf,
|
|
1124
|
+
remessa,
|
|
1125
|
+
retorno
|
|
1126
|
+
};
|
|
505
1127
|
export {
|
|
506
|
-
|
|
507
|
-
|
|
1128
|
+
Banco,
|
|
1129
|
+
src_default as default,
|
|
1130
|
+
defineConfig
|
|
508
1131
|
};
|