@plasoft/boletos 1.0.72 → 1.0.74

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/index.js DELETED
@@ -1,3703 +0,0 @@
1
- "use strict";
2
- var __create = Object.create;
3
- var __defProp = Object.defineProperty;
4
- var __defProps = Object.defineProperties;
5
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
- var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
7
- var __getOwnPropNames = Object.getOwnPropertyNames;
8
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
9
- var __getProtoOf = Object.getPrototypeOf;
10
- var __hasOwnProp = Object.prototype.hasOwnProperty;
11
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
12
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
13
- var __spreadValues = (a, b) => {
14
- for (var prop in b || (b = {}))
15
- if (__hasOwnProp.call(b, prop))
16
- __defNormalProp(a, prop, b[prop]);
17
- if (__getOwnPropSymbols)
18
- for (var prop of __getOwnPropSymbols(b)) {
19
- if (__propIsEnum.call(b, prop))
20
- __defNormalProp(a, prop, b[prop]);
21
- }
22
- return a;
23
- };
24
- var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
25
- var __export = (target, all) => {
26
- for (var name in all)
27
- __defProp(target, name, { get: all[name], enumerable: true });
28
- };
29
- var __copyProps = (to, from, except, desc) => {
30
- if (from && typeof from === "object" || typeof from === "function") {
31
- for (let key of __getOwnPropNames(from))
32
- if (!__hasOwnProp.call(to, key) && key !== except)
33
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
34
- }
35
- return to;
36
- };
37
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
38
- // If the importer is in node compatibility mode or this is not an ESM
39
- // file that has been converted to a CommonJS file using a Babel-
40
- // compatible transform (i.e. "__esModule" has not been set), then set
41
- // "default" to the CommonJS "module.exports" for node compatibility.
42
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
43
- mod
44
- ));
45
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
46
- var __async = (__this, __arguments, generator) => {
47
- return new Promise((resolve, reject) => {
48
- var fulfilled = (value) => {
49
- try {
50
- step(generator.next(value));
51
- } catch (e) {
52
- reject(e);
53
- }
54
- };
55
- var rejected = (value) => {
56
- try {
57
- step(generator.throw(value));
58
- } catch (e) {
59
- reject(e);
60
- }
61
- };
62
- var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
63
- step((generator = generator.apply(__this, __arguments)).next());
64
- });
65
- };
66
-
67
- // src/index.ts
68
- var src_exports = {};
69
- __export(src_exports, {
70
- Banco: () => Banco,
71
- default: () => src_default,
72
- defineConfig: () => defineConfig
73
- });
74
- module.exports = __toCommonJS(src_exports);
75
-
76
- // src/utils/compileHbs.ts
77
- var import_handlebars = __toESM(require("handlebars"));
78
- var import_fs = __toESM(require("fs"));
79
- function compileHbs(templatePath, data) {
80
- const html = import_fs.default.readFileSync(templatePath, "utf-8");
81
- const content = import_handlebars.default.compile(html)(data);
82
- return content;
83
- }
84
-
85
- // src/utils/getPathTemplates.ts
86
- var import_path = __toESM(require("path"));
87
- function getPathTemplates(template) {
88
- if (process.env.NODE_ENV === "dev") {
89
- return import_path.default.resolve(process.cwd(), "views", template);
90
- }
91
- return import_path.default.resolve(__dirname, template);
92
- }
93
-
94
- // src/services/api.ts
95
- var import_config = require("dotenv/config");
96
- var import_axios = __toESM(require("axios"));
97
- var api = import_axios.default.create({
98
- baseURL: process.env.API_URL || "https://23136fv876.execute-api.sa-east-1.amazonaws.com/dev/create-report"
99
- });
100
-
101
- // src/utils/zip.ts
102
- var zlib = __toESM(require("zlib"));
103
- function decompress(input) {
104
- return new Promise((resolve, reject) => {
105
- zlib.gunzip(input, (error, result) => {
106
- if (error) {
107
- return reject(error);
108
- }
109
- resolve(result.toString());
110
- });
111
- });
112
- }
113
-
114
- // src/banks/sicredi/gerarPDFCarne.ts
115
- var import_bwip_js = __toESM(require("bwip-js"));
116
-
117
- // src/utils/maskFormat.ts
118
- var import_string_mask = __toESM(require("string-mask"));
119
- function retornaCpfCnpjFormatado(cpfCnpj) {
120
- if ((cpfCnpj == null ? void 0 : cpfCnpj.length) <= 11) {
121
- const formatter2 = new import_string_mask.default("000.000.000-00");
122
- return formatter2.apply(cpfCnpj);
123
- }
124
- const formatter = new import_string_mask.default("00.000.000/0000-00");
125
- return formatter.apply(cpfCnpj);
126
- }
127
- function retornaCEPFormatado(cep) {
128
- const formatter = new import_string_mask.default("00000-000");
129
- return formatter.apply(cep);
130
- }
131
- function numberToReal(numero) {
132
- numero = typeof numero === "string" ? parseFloat(numero) : numero;
133
- numero = numero.toFixed(2).split(".");
134
- numero[0] = numero[0].split(/(?=(?:...)*$)/).join(".");
135
- return numero.join(",");
136
- }
137
- function codigoBarra(codigo) {
138
- const formatter = new import_string_mask.default("00000.00000 00000.000000 00000.000000 0 000000000000000");
139
- return formatter.apply(codigo);
140
- }
141
- var maskFormat_default = {
142
- numberToReal,
143
- retornaCEPFormatado,
144
- retornaCpfCnpjFormatado,
145
- codigoBarra
146
- };
147
-
148
- // src/banks/sicredi/gerarPDFCarne.ts
149
- var import_qrcode = __toESM(require("qrcode"));
150
- function gerarPDFCarne(_0) {
151
- return __async(this, arguments, function* ({ dados }) {
152
- try {
153
- const { generatePDF, dadosPDF } = dados;
154
- const carnes = [];
155
- if (!dadosPDF.pagador.cpfcnpj) {
156
- throw new Error("CPF/CNPJ do pagador na\u0303o informado!");
157
- }
158
- dadosPDF.beneficiario.dadosBancario.agencia = dadosPDF.beneficiario.dadosBancario.agencia.padStart(4, "0");
159
- dadosPDF.beneficiario.cnpj = maskFormat_default.retornaCpfCnpjFormatado(
160
- dadosPDF.beneficiario.cnpj
161
- );
162
- dadosPDF.pagador.endereco.cep = maskFormat_default.retornaCEPFormatado(
163
- dadosPDF.pagador.endereco.cep
164
- );
165
- dadosPDF.pagador.cpfcnpj = maskFormat_default.retornaCpfCnpjFormatado(dadosPDF.pagador.cpfcnpj);
166
- for (const boleto of dados.dadosPDF.boleto) {
167
- const codigoBarra2 = yield import_bwip_js.default.toBuffer({
168
- bcid: "interleaved2of5",
169
- text: boleto.codigoBarra,
170
- height: 20
171
- });
172
- const qrCode = yield import_qrcode.default.toDataURL(boleto.pixCopiaCola, {
173
- errorCorrectionLevel: "H",
174
- type: "image/png",
175
- margin: 1,
176
- scale: 6
177
- });
178
- boleto.qrCodeImage = qrCode;
179
- boleto.linhaDigitavel = maskFormat_default.codigoBarra(boleto.linhaDigitavel);
180
- boleto.codigoBarraImage = codigoBarra2.toString("base64");
181
- boleto.valorAcrescimo = maskFormat_default.numberToReal(
182
- boleto.valorAcrescimo
183
- );
184
- boleto.valorCobrado = maskFormat_default.numberToReal(
185
- boleto.valorCobrado
186
- );
187
- boleto.valorDescontoAbatimento = maskFormat_default.numberToReal(
188
- boleto.valorDescontoAbatimento
189
- );
190
- const valorDocumento = Number(boleto.valorDocumento);
191
- boleto.valorDocumento = maskFormat_default.numberToReal(
192
- boleto.valorDocumento
193
- );
194
- boleto.valorMulta = maskFormat_default.numberToReal(boleto.valorMulta);
195
- boleto.valorOutrasDeducoes = maskFormat_default.numberToReal(
196
- boleto.valorOutrasDeducoes
197
- );
198
- const jurosMes = dadosPDF.beneficiario.dadosBancario.juros;
199
- const jurosDia = jurosMes / 100 / 30 * valorDocumento;
200
- if (jurosDia > 0) {
201
- boleto.instrucao1 = `COBRAR JUROS DE R$${maskFormat_default.numberToReal(jurosDia)} AO DIA, AP\xD3S O VENCIMENTO`;
202
- }
203
- const descontoVencimento = boleto.desconto > 0 ? boleto.desconto : dadosPDF.beneficiario.dadosBancario.desconto > 0 ? dadosPDF.beneficiario.dadosBancario.desconto : 0;
204
- if (descontoVencimento > 0) {
205
- boleto.instrucao2 = `AT\xC9 O VENCIMENTO, CONCEDER DESCONTO DE ${descontoVencimento}%`;
206
- }
207
- const multaAtraso = dadosPDF.beneficiario.dadosBancario.multa || 0;
208
- if (multaAtraso > 0) {
209
- boleto.instrucao3 = `MULTA DE ${multaAtraso}%`;
210
- }
211
- const protestoDias = dadosPDF.beneficiario.dadosBancario.protesto || 0;
212
- if (protestoDias > 0) {
213
- boleto.instrucao4 = `PROTESTAR AP\xD3S ${protestoDias} DIAS CORRIDOS DO VENCIMENTO`;
214
- }
215
- dadosPDF.pagador.isCnpj = dadosPDF.pagador.cpfcnpj.length > 14;
216
- carnes.push({ boleto, pagador: dadosPDF.pagador, beneficiario: dadosPDF.beneficiario });
217
- }
218
- const content = compileHbs(getPathTemplates("sicredi-carne.hbs"), { boletos: carnes });
219
- const config = {
220
- displayHeaderFooter: false,
221
- path: "./boleto.pdf",
222
- format: "a4",
223
- printBackground: true,
224
- preferCSSPageSize: true
225
- };
226
- let pdfBase64 = null;
227
- if (generatePDF) {
228
- pdfBase64 = yield generatePDF(content, config);
229
- } else {
230
- if (!api.defaults.baseURL) {
231
- throw new Error("BaseURL api not found");
232
- }
233
- const response = yield api.post("/", { content, config });
234
- const buffer = Buffer.from(response.data.pdf);
235
- pdfBase64 = yield decompress(buffer);
236
- }
237
- return {
238
- erro: false,
239
- dados: pdfBase64
240
- };
241
- } catch (error) {
242
- console.log(error);
243
- if (error instanceof Error) {
244
- return {
245
- erro: true,
246
- dados: error.message
247
- };
248
- }
249
- return {
250
- erro: true,
251
- dados: "Falha ao gerar impress\xE3o do boleto"
252
- };
253
- }
254
- });
255
- }
256
-
257
- // src/utils/getFatorVencimento.ts
258
- var import_date_fns = require("date-fns");
259
- function getFatorVencimento(vencimento) {
260
- vencimento = new Date(vencimento);
261
- if (vencimento >= new Date(2025, 1, 22)) {
262
- return (0, import_date_fns.differenceInDays)(new Date(vencimento), new Date(2022, 4, 29)).toString();
263
- } else {
264
- return (0, import_date_fns.differenceInDays)(new Date(vencimento), new Date(1997, 9, 7)).toString();
265
- }
266
- }
267
-
268
- // src/utils/copy.ts
269
- function copy(texto, startPosition, endPosition) {
270
- let retorno2 = "";
271
- if (typeof texto === "number")
272
- texto = String(texto);
273
- if (!endPosition)
274
- endPosition = texto.length;
275
- for (let i = 0; i < texto.length; i++) {
276
- const index = i + 1;
277
- if (index >= startPosition && index <= endPosition) {
278
- const letra = texto[i];
279
- retorno2 += letra;
280
- }
281
- }
282
- return retorno2;
283
- }
284
-
285
- // src/banks/sicredi/gerarDadosBoleto.ts
286
- function gerarDadosBoleto({ dados }) {
287
- try {
288
- const { bancario, parcela } = dados;
289
- parcela.valor = Number(parcela.valor);
290
- const fatorVencimento = getFatorVencimento(parcela.vencimento);
291
- const valor = getValor(parcela.valor);
292
- const nossoNumero = getNossoNumero(
293
- parcela.numeroUnico,
294
- bancario.agencia,
295
- bancario.posto,
296
- bancario.codigoCedente
297
- );
298
- let campoLivre = bancario.tipoCobranca + bancario.tipoCarteira + nossoNumero + bancario.agencia.padStart(4, "0") + bancario.posto.padStart(2, "0") + bancario.codigoCedente.padStart(5, "0") + 10;
299
- const digitoCampoLivre = getDigitoCampoLivre(campoLivre);
300
- campoLivre = campoLivre + digitoCampoLivre;
301
- const digitoGeral = getDigitoGeral(`7489${fatorVencimento}${valor}${campoLivre}`);
302
- const codigoBarra2 = `7489${digitoGeral}${fatorVencimento}${valor}${campoLivre}`;
303
- const campo1 = copy(codigoBarra2, 1, 3) + copy(codigoBarra2, 4, 4) + copy(codigoBarra2, 20, 24);
304
- const campo2 = copy(codigoBarra2, 25, 34);
305
- const campo3 = copy(codigoBarra2, 35, 44);
306
- const campo4 = copy(codigoBarra2, 5, 5);
307
- const campo5 = copy(codigoBarra2, 6, 9) + copy(codigoBarra2, 10, 19);
308
- const digito1 = getDigito(campo1);
309
- const digito2 = getDigito(campo2);
310
- const digito3 = getDigito(campo3);
311
- const linhaDigitavel = campo1 + digito1 + campo2 + digito2 + campo3 + digito3 + campo4 + /*digito4*/
312
- +campo5;
313
- const dadosBoleto = {
314
- linhaDigitavel,
315
- fatorVencimento,
316
- valor,
317
- nossoNumero,
318
- campoLivre,
319
- digitoGeral,
320
- codigoBarra: codigoBarra2
321
- };
322
- return dadosBoleto;
323
- } catch (error) {
324
- console.log("Falha ao gerar dados do boleto", error);
325
- return null;
326
- }
327
- }
328
- function getNossoNumero(id, agencia, posto, codigoCedente) {
329
- let i = 19;
330
- let j = 1;
331
- let soma = 0;
332
- let digito = 0;
333
- const texto = agencia.padStart(4, "0") + posto.padStart(2, "0") + codigoCedente.padStart(5, "0") + id.padStart(8, "0");
334
- while (i >= 1) {
335
- j++;
336
- if (j === 10)
337
- j = 2;
338
- const valor = Number(copy(texto, i, i));
339
- soma += j * valor;
340
- i--;
341
- }
342
- const restoDivisao = soma % 11;
343
- digito = 11 - restoDivisao;
344
- if (restoDivisao === 0 || restoDivisao === 1)
345
- digito = 0;
346
- return id.padStart(8, "0") + digito.toString();
347
- }
348
- function getValor(valor) {
349
- const valorFormatado = valor.toFixed(2).replace(/\D/g, "");
350
- return valorFormatado.padStart(10, "0");
351
- }
352
- function getDigitoCampoLivre(texto) {
353
- let i = 24;
354
- let j = 1;
355
- let soma = 0;
356
- let digito = 0;
357
- while (i >= 1) {
358
- j++;
359
- if (j === 10)
360
- j = 2;
361
- let valor = Number(copy(texto, i, i));
362
- soma += valor * j;
363
- i--;
364
- }
365
- const restoDivisao = soma % 11;
366
- if (restoDivisao > 1)
367
- digito = 11 - restoDivisao;
368
- return String(digito);
369
- }
370
- function getDigitoGeral(texto) {
371
- let i = 43;
372
- let j = 1;
373
- let soma = 0;
374
- let digito = 0;
375
- while (i >= 1) {
376
- j++;
377
- if (j === 10)
378
- j = 2;
379
- const valor = Number(copy(texto, i, i));
380
- soma += j * valor;
381
- i--;
382
- }
383
- const restoDivisao = soma % 11;
384
- digito = 11 - restoDivisao;
385
- if (digito <= 1 || digito >= 10)
386
- digito = 1;
387
- return String(digito);
388
- }
389
- function getDigito(texto) {
390
- let i = texto.length;
391
- let j = 1;
392
- let total = 0;
393
- let soma = 0;
394
- let digito = 0;
395
- while (i >= 1) {
396
- j = j === 1 ? 2 : 1;
397
- let valor = Number(copy(texto, i, i));
398
- total = valor * j;
399
- if (total >= 10) {
400
- valor = Number(copy(total, 1, 1)) + Number(copy(total, 2, 2));
401
- } else {
402
- valor = total;
403
- }
404
- soma += valor;
405
- i--;
406
- }
407
- const uni = Number(copy(soma, String(soma).length, String(soma).length));
408
- digito = 10 - uni;
409
- if (digito === 10)
410
- digito = 0;
411
- return String(digito);
412
- }
413
-
414
- // src/banks/sicredi/gerarPDF.ts
415
- var import_bwip_js2 = __toESM(require("bwip-js"));
416
- function gerarPDF(_0) {
417
- return __async(this, arguments, function* ({ dados }) {
418
- try {
419
- const { generatePDF, dadosPDF } = dados;
420
- if (!dadosPDF.pagador.cpfcnpj) {
421
- throw new Error("CPF/CNPJ do pagador na\u0303o informado!");
422
- }
423
- const codigoBarra2 = yield import_bwip_js2.default.toBuffer({
424
- bcid: "interleaved2of5",
425
- text: dadosPDF.boleto.codigoBarra,
426
- height: 20
427
- });
428
- dadosPDF.beneficiario.dadosBancario.agencia = dadosPDF.beneficiario.dadosBancario.agencia.padStart(4, "0");
429
- dadosPDF.boleto.linhaDigitavel = maskFormat_default.codigoBarra(dadosPDF.boleto.linhaDigitavel);
430
- dadosPDF.boleto.codigoBarraImage = codigoBarra2.toString("base64");
431
- dadosPDF.beneficiario.cnpj = maskFormat_default.retornaCpfCnpjFormatado(
432
- dadosPDF.beneficiario.cnpj
433
- );
434
- dadosPDF.beneficiario.endereco.cep = maskFormat_default.retornaCEPFormatado(
435
- dadosPDF.beneficiario.endereco.cep
436
- );
437
- dadosPDF.pagador.endereco.cep = maskFormat_default.retornaCEPFormatado(
438
- dadosPDF.pagador.endereco.cep
439
- );
440
- dadosPDF.pagador.cpfcnpj = maskFormat_default.retornaCpfCnpjFormatado(dadosPDF.pagador.cpfcnpj);
441
- dadosPDF.boleto.valorAcrescimo = maskFormat_default.numberToReal(
442
- dadosPDF.boleto.valorAcrescimo
443
- );
444
- dadosPDF.boleto.valorCobrado = maskFormat_default.numberToReal(
445
- dadosPDF.boleto.valorCobrado
446
- );
447
- dadosPDF.boleto.valorDescontoAbatimento = maskFormat_default.numberToReal(
448
- dadosPDF.boleto.valorDescontoAbatimento
449
- );
450
- const valorDocumento = Number(dadosPDF.boleto.valorDocumento);
451
- dadosPDF.boleto.valorDocumento = maskFormat_default.numberToReal(
452
- dadosPDF.boleto.valorDocumento
453
- );
454
- dadosPDF.boleto.valorMulta = maskFormat_default.numberToReal(dadosPDF.boleto.valorMulta);
455
- dadosPDF.boleto.valorOutrasDeducoes = maskFormat_default.numberToReal(
456
- dadosPDF.boleto.valorOutrasDeducoes
457
- );
458
- if (dadosPDF.boleto.quantidade) {
459
- dadosPDF.boleto.quantidade = maskFormat_default.numberToReal(dadosPDF.boleto.quantidade);
460
- }
461
- const jurosMes = dadosPDF.beneficiario.dadosBancario.juros;
462
- const jurosDia = jurosMes / 100 / 30 * valorDocumento;
463
- if (jurosDia > 0) {
464
- dadosPDF.boleto.instrucao1 = `COBRAR JUROS DE R$${maskFormat_default.numberToReal(jurosDia)} AO DIA, AP\xD3S O VENCIMENTO`;
465
- }
466
- const descontoVencimento = dadosPDF.boleto.desconto > 0 ? dadosPDF.boleto.desconto : dadosPDF.beneficiario.dadosBancario.desconto > 0 ? dadosPDF.beneficiario.dadosBancario.desconto : 0;
467
- if (descontoVencimento > 0) {
468
- dadosPDF.boleto.instrucao2 = `AT\xC9 O VENCIMENTO, CONCEDER DESCONTO DE ${descontoVencimento}%`;
469
- }
470
- const multaAtraso = dadosPDF.beneficiario.dadosBancario.multa || 0;
471
- if (multaAtraso > 0) {
472
- dadosPDF.boleto.instrucao3 = `MULTA DE ${multaAtraso}%`;
473
- }
474
- const protestoDias = dadosPDF.beneficiario.dadosBancario.protesto || 0;
475
- if (protestoDias > 0) {
476
- dadosPDF.boleto.instrucao4 = `PROTESTAR AP\xD3S ${protestoDias} DIAS CORRIDOS DO VENCIMENTO`;
477
- }
478
- dadosPDF.boleto.valor = maskFormat_default.numberToReal(dadosPDF.boleto.valor);
479
- dadosPDF.pagador.isCnpj = dadosPDF.pagador.cpfcnpj.length > 14;
480
- const content = compileHbs(getPathTemplates("sicredi-boleto.hbs"), dadosPDF);
481
- const config = {
482
- displayHeaderFooter: false,
483
- path: "./boleto.pdf",
484
- format: "a4",
485
- printBackground: true
486
- };
487
- let pdfBase64 = null;
488
- if (generatePDF) {
489
- pdfBase64 = yield generatePDF(content, config);
490
- } else {
491
- if (!api.defaults.baseURL) {
492
- throw new Error("BaseURL api not found");
493
- }
494
- const response = yield api.post("/", { content, config });
495
- const buffer = Buffer.from(response.data.pdf);
496
- pdfBase64 = yield decompress(buffer);
497
- }
498
- return {
499
- erro: false,
500
- dados: pdfBase64
501
- };
502
- } catch (error) {
503
- console.log(error);
504
- if (error instanceof Error) {
505
- return {
506
- erro: true,
507
- dados: error.message
508
- };
509
- }
510
- return {
511
- erro: true,
512
- dados: "Falha ao gerar impress\xE3o do boleto"
513
- };
514
- }
515
- });
516
- }
517
-
518
- // src/lib/Arquivo.ts
519
- var Arquivo = class {
520
- constructor() {
521
- this.arquivo = "";
522
- this.arquivo = "";
523
- }
524
- add(texto) {
525
- this.arquivo += texto;
526
- }
527
- addLine() {
528
- this.arquivo += "\n";
529
- }
530
- getArquivo() {
531
- return this.arquivo;
532
- }
533
- };
534
-
535
- // src/utils/removerCaracterEspecial.ts
536
- function removerCaracterEspecial(texto) {
537
- if (!texto)
538
- return "";
539
- let textoFormatado = texto.replace(/[`~!@#$°%^&*()_+=?;'"<>{}[\]\\]/gi, "");
540
- textoFormatado = textoFormatado.replace(/[áàãâä]/g, "a");
541
- textoFormatado = textoFormatado.replace(/[ÁÀÃÂÄ]/g, "A");
542
- textoFormatado = textoFormatado.replace(/[éèêë]/g, "e");
543
- textoFormatado = textoFormatado.replace(/[ÉÈÊË]/g, "E");
544
- textoFormatado = textoFormatado.replace(/[íìîï]/g, "i");
545
- textoFormatado = textoFormatado.replace(/[ÍÌÎÏ]/g, "I");
546
- textoFormatado = textoFormatado.replace(/[óòõôö]/g, "o");
547
- textoFormatado = textoFormatado.replace(/[ÓÒÔÕÖ]/g, "O");
548
- textoFormatado = textoFormatado.replace(/[úùûü]/g, "u");
549
- textoFormatado = textoFormatado.replace(/[ÚÙÛÜ]/g, "U");
550
- textoFormatado = textoFormatado.replace(/ç/g, "c");
551
- textoFormatado = textoFormatado.replace(/Ç/g, "C");
552
- textoFormatado = textoFormatado.replace(/[^a-zA-Z0-9|/,-]/g, " ");
553
- return textoFormatado;
554
- }
555
-
556
- // src/banks/sicredi/gerarRemessa.ts
557
- var import_date_fns2 = require("date-fns");
558
- function gerarRemessa({ dados }) {
559
- try {
560
- const { dadosBancario, beneficiario, boletos } = dados.remessa;
561
- const arquivo = new Arquivo();
562
- const data = /* @__PURE__ */ new Date();
563
- let protestar = "00";
564
- let negativar = "0000";
565
- switch (dadosBancario.tipo_protesto) {
566
- case "Nenhum":
567
- protestar = "00";
568
- negativar = "0000";
569
- break;
570
- case "Protestar":
571
- protestar = "06";
572
- negativar = "0000";
573
- break;
574
- case "Negativar":
575
- protestar = "00";
576
- negativar = "06" + String(dadosBancario.diasProtesto).padStart(2, "0");
577
- break;
578
- default:
579
- protestar = "00";
580
- negativar = "0000";
581
- break;
582
- }
583
- arquivo.add("01REMESSA");
584
- arquivo.add("01");
585
- arquivo.add("COBRANCA".padEnd(15, " "));
586
- arquivo.add(dadosBancario.codigo_cedente);
587
- arquivo.add(beneficiario.cnpj);
588
- arquivo.add(" ".padEnd(31, " "));
589
- arquivo.add("748");
590
- arquivo.add("SICREDI".padEnd(15, " "));
591
- arquivo.add((0, import_date_fns2.format)(data, "yyyyMMdd"));
592
- arquivo.add(" ".padEnd(8, " "));
593
- arquivo.add(dadosBancario.numeroRemessa.padStart(7, "0"));
594
- arquivo.add(" ".padEnd(273, " "));
595
- arquivo.add("2.00");
596
- arquivo.add("000001");
597
- arquivo.addLine();
598
- let sequencia = 2;
599
- let total = 0;
600
- for (const boleto of boletos) {
601
- const { pagador } = boleto;
602
- total += Number(boleto.valor);
603
- let tipoInscricao = pagador.pessoa === "F" ? "1" : "2";
604
- let desconto = "0000000000000";
605
- let dataDesconto = "000000";
606
- if (boleto.desconto) {
607
- desconto = boleto.desconto.toFixed(2).replace(".", "").padStart(13, "0");
608
- dataDesconto = (0, import_date_fns2.format)(new Date(boleto.vencimento), "ddMMyy");
609
- }
610
- if (!boleto.desconto && dadosBancario.descontoPagamento) {
611
- desconto = dadosBancario.descontoPagamento.toFixed(2).replace(".", "").padStart(13, "0");
612
- dataDesconto = (0, import_date_fns2.format)(new Date(boleto.vencimento), "ddMMyy");
613
- }
614
- let valorJurosDias = Number(boleto.valor) * Number(dadosBancario.jurosMes) / 100 / 30;
615
- let multaAtraso = String(dadosBancario.multaAtraso * 100);
616
- arquivo.add("1");
617
- arquivo.add("AAA");
618
- arquivo.add(" ".padEnd(12, " "));
619
- arquivo.add("AAA");
620
- arquivo.add(" ".padEnd(28, " "));
621
- arquivo.add(boleto.nossoNumero.padEnd(9, " "));
622
- arquivo.add(" ".padEnd(6, " "));
623
- arquivo.add((0, import_date_fns2.format)(new Date(boleto.emissao), "yyyyMMdd"));
624
- arquivo.add(" ");
625
- arquivo.add("N");
626
- arquivo.add(" ");
627
- arquivo.add("B");
628
- arquivo.add("0000");
629
- arquivo.add(" ".padEnd(4, " "));
630
- arquivo.add("0".padEnd(10, "0"));
631
- arquivo.add(multaAtraso.padStart(4, "0"));
632
- arquivo.add(" ".padEnd(12, " "));
633
- arquivo.add("01");
634
- arquivo.add(boleto.identificacaoTitulo.padEnd(10, " "));
635
- arquivo.add((0, import_date_fns2.format)(new Date(boleto.vencimento), "ddMMyy"));
636
- arquivo.add(Number(boleto.valor).toFixed(2).replace(".", "").padStart(13, "0"));
637
- arquivo.add(" ".padEnd(9, " "));
638
- arquivo.add("A");
639
- arquivo.add(boleto.aceite);
640
- arquivo.add((0, import_date_fns2.format)(new Date(boleto.emissao), "ddMMyy"));
641
- arquivo.add(protestar);
642
- arquivo.add(String(dadosBancario.diasProtesto).padStart(2, "0"));
643
- arquivo.add(Number(valorJurosDias).toFixed(2).replace(".", "").padStart(13, "0"));
644
- arquivo.add(dataDesconto);
645
- arquivo.add(desconto);
646
- arquivo.add(negativar);
647
- arquivo.add("0".padEnd(22, "0"));
648
- arquivo.add(tipoInscricao);
649
- arquivo.add("0");
650
- arquivo.add(pagador.cpfCnpj.padStart(14, "0"));
651
- arquivo.add(removerCaracterEspecial(pagador.nome).substring(0, 40).padEnd(40, " "));
652
- arquivo.add(removerCaracterEspecial(pagador.endereco.logradouro).substring(0, 40).padEnd(40, " "));
653
- arquivo.add("0".padEnd(11, "0"));
654
- arquivo.add(" ");
655
- arquivo.add(pagador.endereco.cep.padEnd(8, " "));
656
- arquivo.add("00000");
657
- arquivo.add(" ".padEnd(55, " "));
658
- arquivo.add(String(sequencia).padStart(6, "0"));
659
- arquivo.addLine();
660
- sequencia++;
661
- }
662
- arquivo.add("91748");
663
- arquivo.add(dadosBancario.codigo_cedente);
664
- arquivo.add(" ".padEnd(384, " "));
665
- arquivo.add(String(sequencia).padStart(6, "0"));
666
- arquivo.addLine();
667
- return {
668
- download: `${dadosBancario.codigo_cedente}${retornaMes(data)}${(0, import_date_fns2.format)(data, "dd")}.crm`,
669
- arquivo: arquivo.getArquivo()
670
- };
671
- } catch (error) {
672
- console.log(error);
673
- return null;
674
- }
675
- }
676
- function retornaMes(data) {
677
- const mes = data.getMonth() + 1;
678
- switch (mes) {
679
- case 10:
680
- return "O";
681
- case 11:
682
- return "N";
683
- case 12:
684
- return "D";
685
- default:
686
- return mes.toString();
687
- }
688
- }
689
-
690
- // src/utils/agruparRetorno.ts
691
- var import_date_fns3 = require("date-fns");
692
- function agruparRetorno(documentos) {
693
- return documentos.reduce((acc, documento) => {
694
- const dateObj = new Date(documento.data);
695
- if (isNaN(dateObj.getTime())) {
696
- return acc;
697
- }
698
- const dataKey = (0, import_date_fns3.format)(dateObj, "yyyy-MM-dd");
699
- if (!acc[dataKey]) {
700
- acc[dataKey] = [];
701
- }
702
- acc[dataKey].push(documento);
703
- return acc;
704
- }, {});
705
- }
706
-
707
- // src/banks/sicredi/gerarRetorno.ts
708
- var import_date_fns4 = require("date-fns");
709
- function gerarRetorno({ dados }) {
710
- try {
711
- const { arquivo } = dados;
712
- const documentos = [];
713
- for (const linha of arquivo) {
714
- const id_registro = linha.substring(0, 1);
715
- if (id_registro !== "1" /* DETALHE */) {
716
- continue;
717
- }
718
- const ocorrencia = linha.substring(108, 110);
719
- if (ocorrencia !== "06" && ocorrencia !== "15" && ocorrencia !== "17" && ocorrencia !== "03") {
720
- continue;
721
- }
722
- const motivo = linha.substring(213, 223).trim();
723
- const meu_numero = linha.substring(116, 126).trim();
724
- let tipo_documento = "";
725
- let id_documento = "";
726
- if (meu_numero.includes("-")) {
727
- const [tipo, id] = meu_numero.split("-");
728
- tipo_documento = tipo;
729
- id_documento = id;
730
- }
731
- let especie = "INDEFINIDO";
732
- if (tipo_documento.length) {
733
- especie = tipo_documento === "N" ? "NFE" : tipo_documento === "F" ? "FAT" : tipo_documento === "L" ? "FIN" : "INDEFINIDO";
734
- }
735
- let dataCredito;
736
- const dataCreditoString = linha.substring(328, 336);
737
- if (dataCreditoString && dataCreditoString !== "00000000") {
738
- dataCredito = (0, import_date_fns4.parse)(dataCreditoString, "yyyyMMdd", /* @__PURE__ */ new Date());
739
- } else {
740
- const dataOcorrenciaString = linha.substring(110, 116);
741
- dataCredito = (0, import_date_fns4.parse)(dataOcorrenciaString, "ddMMyy", /* @__PURE__ */ new Date());
742
- }
743
- const valor_titulo = Number(linha.substring(152, 165)) / 100;
744
- const abatimento = Number(linha.substring(227, 240)) / 100;
745
- let valor_desconto = Number(linha.substring(240, 253)) / 100;
746
- const valor_pago = Number(linha.substring(253, 266)) / 100;
747
- let valor_juros = Number(linha.substring(266, 279)) / 100;
748
- const valor_multa = Number(linha.substring(279, 292)) / 100;
749
- if (valor_titulo > valor_pago && valor_desconto === 0) {
750
- valor_desconto = valor_titulo - valor_pago;
751
- }
752
- if (valor_titulo < valor_pago && valor_juros === 0) {
753
- valor_juros = valor_pago - valor_titulo;
754
- }
755
- const descontos = abatimento + valor_desconto;
756
- const valor_total = valor_titulo + valor_multa + valor_juros - descontos;
757
- let rejeitado = false;
758
- let motivoRejeicao = "";
759
- if (ocorrencia === "03") {
760
- rejeitado = true;
761
- motivoRejeicao = retornaMotivoRejeicao(motivo);
762
- }
763
- documentos.push({
764
- id_documento,
765
- especie,
766
- valor: valor_pago,
767
- valor_multa,
768
- valor_juros,
769
- valor_desconto,
770
- valor_total,
771
- data: dataCredito,
772
- rejeitado,
773
- motivo: motivoRejeicao
774
- });
775
- }
776
- const documentosAgrupado = agruparRetorno(documentos);
777
- return documentosAgrupado;
778
- } catch (error) {
779
- console.log(error);
780
- return null;
781
- }
782
- }
783
- function retornaMotivoRejeicao(codigo) {
784
- switch (codigo) {
785
- case "01":
786
- return "C\xF3digo do banco inv\xE1lido";
787
- case "02":
788
- return "C\xF3digo do registro detalhe inv\xE1lido";
789
- case "03":
790
- return "C\xF3digo do segmento inv\xE1lido";
791
- case "04":
792
- return "C\xF3digo de movimento n\xE3o permitido para carteira";
793
- case "05":
794
- return "C\xF3digo de movimento inv\xE1lido";
795
- case "06":
796
- return "Tipo/n\xFAmero de inscri\xE7\xE3o do benefici\xE1rio inv\xE1lidos";
797
- case "07":
798
- return "Cooperativa cr\xE9dito/ag\xEAncia/conta/DV inv\xE1lido";
799
- case "08":
800
- return "Nosso n\xFAmero inv\xE1lido";
801
- case "09":
802
- return "Nosso n\xFAmero duplicado";
803
- case "10":
804
- return "Carteira inv\xE1lida";
805
- case "11":
806
- return "Forma de cadastramento do t\xEDtulo inv\xE1lido";
807
- case "12":
808
- return "Tipo de documento inv\xE1lido";
809
- case "13":
810
- return "Identifica\xE7\xE3o da emiss\xE3o do boleto inv\xE1lida";
811
- case "14":
812
- return "Identifica\xE7\xE3o da distribui\xE7\xE3o do boleto inv\xE1lida";
813
- case "15":
814
- return "Caracter\xEDsticas da cobran\xE7a incompat\xEDveis";
815
- case "16":
816
- return "Data de vencimento inv\xE1lida";
817
- case "17":
818
- return "Data de vencimento anterior a data de emiss\xE3o";
819
- case "18":
820
- return "Vencimento fora do prazo de opera\xE7\xE3o";
821
- case "20":
822
- return "Valor do t\xEDtulo inv\xE1lido";
823
- case "21":
824
- return "Esp\xE9cie do t\xEDtulo inv\xE1lida";
825
- case "22":
826
- return "Esp\xE9cie do t\xEDtulo n\xE3o permitida para a carteira";
827
- case "23":
828
- return "Aceite inv\xE1lido";
829
- case "24":
830
- return "Data da emiss\xE3o inv\xE1lida";
831
- case "25":
832
- return "Data da emiss\xE3o posterior a data de entrada";
833
- case "26":
834
- return "C\xF3digo de juros de mora inv\xE1lido";
835
- case "27":
836
- return "Valor/taxa de juros de mora inv\xE1lido";
837
- case "28":
838
- return "C\xF3digo do desconto inv\xE1lido";
839
- case "29":
840
- return "Valor do desconto maior ou igual ao valor do t\xEDtulo";
841
- case "30":
842
- return "Desconto a conceder n\xE3o confere";
843
- case "31":
844
- return "Concess\xE3o de desconto - j\xE1 existe desconto anterior";
845
- case "33":
846
- return "Valor do abatimento inv\xE1lido";
847
- case "34":
848
- return "Valor do abatimento maior ou igual ao valor do t\xEDtulo";
849
- case "35":
850
- return "Valor a conceder n\xE3o confere";
851
- case "36":
852
- return "Concess\xE3o de abatimento - j\xE1 existe abatimento anterior";
853
- case "37":
854
- return "C\xF3digo para protesto inv\xE1lido";
855
- case "38":
856
- return "Prazo para protesto inv\xE1lido";
857
- case "39":
858
- return "Pedido de protesto n\xE3o permitido para o t\xEDtulo";
859
- case "40":
860
- return "T\xEDtulo com ordem de protesto emitida";
861
- case "41":
862
- return "Pedido de cancelamento/susta\xE7\xE3o para t\xEDtulos sem instru\xE7\xE3o de protesto/negativa\xE7\xE3o";
863
- case "44":
864
- return "C\xF3digo da moeda inv\xE1lido";
865
- case "45":
866
- return "Nome do pagador n\xE3o informado";
867
- case "46":
868
- return "Tipo/n\xFAmero de inscri\xE7\xE3o do pagador inv\xE1lidos";
869
- case "47":
870
- return "Endere\xE7o do pagador n\xE3o informado";
871
- case "48":
872
- return "CEP inv\xE1lido";
873
- case "53":
874
- return "Tipo/n\xFAmero de inscri\xE7\xE3o do pagador/avalista inv\xE1lido";
875
- case "54":
876
- return "Pagador/avalista n\xE3o informado";
877
- case "55":
878
- return "Nosso n\xFAmero no banco correspondente n\xE3o informado";
879
- case "56":
880
- return "C\xF3digo do banco correspondente n\xE3o informado";
881
- case "57":
882
- return "C\xF3digo da multa inv\xE1lido";
883
- case "58":
884
- return "Data da multa inv\xE1lida";
885
- case "59":
886
- return "Valor/percentual da multa inv\xE1lido";
887
- case "60":
888
- return "Movimento para t\xEDtulo n\xE3o cadastrado";
889
- case "61":
890
- return "Altera\xE7\xE3o da cooperativa cr\xE9dito/ag\xEAncia cobradora/DV inv\xE1lida";
891
- case "62":
892
- return "Tipo de impress\xE3o inv\xE1lido";
893
- case "63":
894
- return "Entrada para t\xEDtulo j\xE1 cadastrado";
895
- case "64":
896
- return "N\xFAmero da linha inv\xE1lido";
897
- case "79":
898
- return "Data juros de mora inv\xE1lida";
899
- case "80":
900
- return "Data do desconto inv\xE1lida";
901
- case "84":
902
- return "N\xFAmero autoriza\xE7\xE3o inexistente";
903
- case "85":
904
- return "T\xEDtulo com pagamento vinculado";
905
- case "86":
906
- return "Seu n\xFAmero inv\xE1lido";
907
- case "A4":
908
- return "Pagador DDA";
909
- case "CZ":
910
- return "Instru\xE7\xE3o Inv\xE1lida";
911
- case "L6":
912
- return "Tipo de comando de instru\xE7\xE3o inv\xE1lida para benefici\xE1rio pessoa f\xEDsica.";
913
- default:
914
- return "Motivo desconhecido";
915
- }
916
- }
917
-
918
- // src/banks/sicredi/index.ts
919
- var sicredi = {
920
- gerarDadosBoleto,
921
- gerarPDF,
922
- gerarRemessa,
923
- gerarRetorno,
924
- gerarPDFCarne
925
- };
926
-
927
- // src/types/Boletos.ts
928
- var Banco = /* @__PURE__ */ ((Banco2) => {
929
- Banco2["AILOS"] = "085";
930
- Banco2["BRADESCO"] = "005";
931
- Banco2["SICREDI"] = "748";
932
- Banco2["SICOOB"] = "756";
933
- Banco2["BANCO_BRASIL"] = "001";
934
- Banco2["ITAU"] = "341";
935
- return Banco2;
936
- })(Banco || {});
937
-
938
- // src/carne.ts
939
- function carne({ banco, dados }) {
940
- if (banco === "748" /* SICREDI */) {
941
- return sicredi.gerarPDFCarne({ banco, dados });
942
- }
943
- }
944
-
945
- // src/utils/pafLeft.ts
946
- function padLeft(numero, tamanho) {
947
- numero = String(numero);
948
- if (numero.length < tamanho) {
949
- numero = `0${numero}`;
950
- return padLeft(numero, tamanho);
951
- }
952
- return numero;
953
- }
954
-
955
- // src/banks/ailos/gerarDadosBoleto.ts
956
- function gerarDadosBoleto2({ dados }) {
957
- try {
958
- const { bancario, parcela } = dados;
959
- parcela.valor = Number(parcela.valor);
960
- const fatorVencimento = getFatorVencimento(parcela.vencimento);
961
- const valor = getValor2(parcela.valor);
962
- const convenio = padLeft(bancario.convenio, 6);
963
- const numeroDocumento = padLeft(`${parcela.id_boleto}`, 9);
964
- const nossoNumero = padLeft(bancario.numero + bancario.numero_dv, 8) + numeroDocumento;
965
- const campoLivre = convenio + nossoNumero + padLeft(bancario.carteira, 2);
966
- const digitoGeral = getDigitoGeral2(`0859${fatorVencimento}${valor}${campoLivre}`);
967
- const codigoBarra2 = `0859${digitoGeral}${fatorVencimento}${valor}${campoLivre}`;
968
- const campo1 = copy(codigoBarra2, 1, 3) + copy(codigoBarra2, 4, 4) + copy(codigoBarra2, 20, 24);
969
- const campo2 = copy(codigoBarra2, 25, 34);
970
- const campo3 = copy(codigoBarra2, 35, 44);
971
- const campo4 = copy(codigoBarra2, 5, 5);
972
- const campo5 = copy(codigoBarra2, 6, 9) + copy(codigoBarra2, 10, 19);
973
- const digito1 = getDigito2(campo1);
974
- const digito2 = getDigito2(campo2);
975
- const digito3 = getDigito2(campo3);
976
- const linhaDigitavel = campo1 + digito1 + campo2 + digito2 + campo3 + digito3 + campo4 + campo5;
977
- const dadosBoleto = {
978
- linhaDigitavel,
979
- fatorVencimento,
980
- valor,
981
- convenio,
982
- nossoNumero,
983
- campoLivre,
984
- digitoGeral,
985
- codigoBarra: codigoBarra2,
986
- numeroDocumento
987
- };
988
- return dadosBoleto;
989
- } catch (error) {
990
- console.log("Falha ao gerar dados do boleto", error);
991
- return null;
992
- }
993
- }
994
- function getValor2(valor) {
995
- const valorFormatado = valor.toFixed(2).replace(/\D/g, "");
996
- return padLeft(valorFormatado, 10);
997
- }
998
- function getDigitoGeral2(texto) {
999
- let i = 43;
1000
- let j = 1;
1001
- let soma = 0;
1002
- let digito = 0;
1003
- while (i >= 1) {
1004
- j++;
1005
- if (j === 10)
1006
- j = 2;
1007
- const valor = Number(copy(texto, i, i));
1008
- soma += j * valor;
1009
- i--;
1010
- }
1011
- const restoDivisao = soma % 11;
1012
- digito = 11 - restoDivisao;
1013
- if (digito === 0 || digito === 1 || digito > 9)
1014
- digito = 1;
1015
- return String(digito);
1016
- }
1017
- function getDigito2(texto) {
1018
- let i = texto.length;
1019
- let j = 1;
1020
- let total = 0;
1021
- let soma = 0;
1022
- let digito = 0;
1023
- while (i >= 1) {
1024
- j = j === 1 ? 2 : 1;
1025
- let valor = Number(copy(texto, i, i));
1026
- total = valor * j;
1027
- if (total >= 10) {
1028
- valor = Number(copy(total, 1, 1)) + Number(copy(total, 2, 2));
1029
- } else {
1030
- valor = total;
1031
- }
1032
- soma += valor;
1033
- i--;
1034
- }
1035
- const uni = Number(copy(soma, String(soma).length, String(soma).length));
1036
- digito = 10 - uni;
1037
- if (digito === 10)
1038
- digito = 0;
1039
- return String(digito);
1040
- }
1041
-
1042
- // src/banks/ailos/gerarPDF.ts
1043
- var import_bwip_js3 = __toESM(require("bwip-js"));
1044
- function gerarPDF2(_0) {
1045
- return __async(this, arguments, function* ({ dados }) {
1046
- var _a;
1047
- try {
1048
- const { generatePDF, dadosPDF } = dados;
1049
- if (!dadosPDF.pagador.cpfcnpj) {
1050
- throw new Error("CPF/CNPJ do pagador na\u0303o informado!");
1051
- }
1052
- const codigoBarra2 = yield import_bwip_js3.default.toBuffer({
1053
- bcid: "interleaved2of5",
1054
- text: dadosPDF.boleto.codigoBarra,
1055
- height: 20
1056
- });
1057
- dadosPDF.beneficiario.dadosBancario.agencia = dadosPDF.beneficiario.dadosBancario.agencia.padStart(4, "0");
1058
- dadosPDF.beneficiario.dadosBancario.conta = dadosPDF.beneficiario.dadosBancario.conta.padStart(7, "0");
1059
- dadosPDF.boleto.linhaDigitavel = maskFormat_default.codigoBarra(dadosPDF.boleto.linhaDigitavel);
1060
- dadosPDF.boleto.codigoBarraImage = codigoBarra2.toString("base64");
1061
- dadosPDF.beneficiario.cnpj = maskFormat_default.retornaCpfCnpjFormatado(
1062
- dadosPDF.beneficiario.cnpj
1063
- );
1064
- dadosPDF.beneficiario.endereco.cep = maskFormat_default.retornaCEPFormatado(
1065
- dadosPDF.beneficiario.endereco.cep
1066
- );
1067
- dadosPDF.pagador.endereco.cep = maskFormat_default.retornaCEPFormatado(
1068
- dadosPDF.pagador.endereco.cep
1069
- );
1070
- dadosPDF.pagador.cpfcnpj = maskFormat_default.retornaCpfCnpjFormatado(dadosPDF.pagador.cpfcnpj);
1071
- dadosPDF.boleto.valorAcrescimo = maskFormat_default.numberToReal(
1072
- dadosPDF.boleto.valorAcrescimo
1073
- );
1074
- dadosPDF.boleto.valorCobrado = maskFormat_default.numberToReal(
1075
- dadosPDF.boleto.valorCobrado
1076
- );
1077
- dadosPDF.boleto.valorDescontoAbatimento = maskFormat_default.numberToReal(
1078
- dadosPDF.boleto.valorDescontoAbatimento
1079
- );
1080
- const valorDocumento = Number(dadosPDF.boleto.valorDocumento);
1081
- dadosPDF.boleto.valorDocumento = maskFormat_default.numberToReal(
1082
- dadosPDF.boleto.valorDocumento
1083
- );
1084
- dadosPDF.boleto.valorMulta = maskFormat_default.numberToReal(dadosPDF.boleto.valorMulta);
1085
- dadosPDF.boleto.valorOutrasDeducoes = maskFormat_default.numberToReal(
1086
- dadosPDF.boleto.valorOutrasDeducoes
1087
- );
1088
- if (dadosPDF.boleto.quantidade) {
1089
- dadosPDF.boleto.quantidade = maskFormat_default.numberToReal(dadosPDF.boleto.quantidade);
1090
- }
1091
- const jurosMes = dadosPDF.beneficiario.dadosBancario.juros;
1092
- const jurosDia = jurosMes / 100 / 30 * valorDocumento;
1093
- if (jurosDia > 0) {
1094
- dadosPDF.boleto.instrucao1 = `COBRAR JUROS DE R$${maskFormat_default.numberToReal(jurosDia)} AO DIA, AP\xD3S O VENCIMENTO`;
1095
- }
1096
- const descontoVencimento = dadosPDF.boleto.desconto > 0 ? dadosPDF.boleto.desconto : dadosPDF.beneficiario.dadosBancario.desconto > 0 ? dadosPDF.beneficiario.dadosBancario.desconto : 0;
1097
- if (descontoVencimento > 0) {
1098
- dadosPDF.boleto.instrucao2 = `AT\xC9 O VENCIMENTO, CONCEDER DESCONTO DE ${descontoVencimento}%`;
1099
- }
1100
- const multaAtraso = dadosPDF.beneficiario.dadosBancario.multa || 0;
1101
- if (multaAtraso > 0) {
1102
- dadosPDF.boleto.instrucao3 = `MULTA DE ${multaAtraso}%`;
1103
- }
1104
- const protestoDias = dadosPDF.beneficiario.dadosBancario.protesto || 0;
1105
- if (protestoDias > 0) {
1106
- dadosPDF.boleto.instrucao4 = `PROTESTAR AP\xD3S ${protestoDias} DIAS CORRIDOS DO VENCIMENTO`;
1107
- }
1108
- dadosPDF.boleto.valor = maskFormat_default.numberToReal(dadosPDF.boleto.valor);
1109
- dadosPDF.pagador.isCnpj = dadosPDF.pagador.cpfcnpj.length > 14;
1110
- let content = compileHbs(getPathTemplates("ailos-boleto.hbs"), dadosPDF);
1111
- if ((_a = dadosPDF.boleto) == null ? void 0 : _a.pix) {
1112
- content = compileHbs(getPathTemplates("ailos-boleto-hibrido.hbs"), dadosPDF);
1113
- }
1114
- const config = {
1115
- displayHeaderFooter: false,
1116
- path: "./boleto.pdf",
1117
- format: "a4",
1118
- printBackground: true
1119
- };
1120
- let pdfBase64 = null;
1121
- if (generatePDF) {
1122
- pdfBase64 = yield generatePDF(content, config);
1123
- } else {
1124
- if (!api.defaults.baseURL) {
1125
- throw new Error("BaseURL api not found");
1126
- }
1127
- const response = yield api.post("/", { content, config });
1128
- const buffer = Buffer.from(response.data.pdf);
1129
- pdfBase64 = yield decompress(buffer);
1130
- }
1131
- return {
1132
- erro: false,
1133
- dados: pdfBase64
1134
- };
1135
- } catch (error) {
1136
- console.log(error);
1137
- if (error instanceof Error) {
1138
- return {
1139
- erro: true,
1140
- dados: error.message
1141
- };
1142
- }
1143
- return {
1144
- erro: true,
1145
- dados: "Falha ao gerar impress\xE3o do boleto"
1146
- };
1147
- }
1148
- });
1149
- }
1150
-
1151
- // src/banks/ailos/gerarRemessa.ts
1152
- var import_date_fns5 = require("date-fns");
1153
- function gerarRemessa2({ dados }) {
1154
- try {
1155
- const { dadosBancario, beneficiario, boletos } = dados.remessa;
1156
- const arquivo = new Arquivo();
1157
- const dataAtual = /* @__PURE__ */ new Date();
1158
- const data = (0, import_date_fns5.format)(dataAtual, "ddMMyyyy");
1159
- const hora = (0, import_date_fns5.format)(dataAtual, "HHmmss");
1160
- const convenio = dadosBancario.convenio.padStart(7, "0");
1161
- const numero = dadosBancario.conta.padStart(7, "0") + dadosBancario.contaDigito;
1162
- const remessa2 = `REM${convenio}-${numero}-${data}.REM`;
1163
- arquivo.add("085");
1164
- arquivo.add("0000");
1165
- arquivo.add("0");
1166
- arquivo.add(" ");
1167
- arquivo.add("2");
1168
- arquivo.add(beneficiario.cnpj);
1169
- arquivo.add(dadosBancario.convenio.padEnd(20, " "));
1170
- arquivo.add(dadosBancario.agencia.padStart(5, "0"));
1171
- arquivo.add(dadosBancario.agenciaDigito);
1172
- arquivo.add(dadosBancario.conta.padStart(12, "0"));
1173
- arquivo.add(dadosBancario.contaDigito);
1174
- arquivo.add(" ");
1175
- arquivo.add(removerCaracterEspecial(beneficiario.nome).substring(0, 30).padEnd(30, " "));
1176
- arquivo.add("AILOS".padEnd(30, " "));
1177
- arquivo.add(" ");
1178
- arquivo.add("1");
1179
- arquivo.add(data);
1180
- arquivo.add(hora);
1181
- arquivo.add(dadosBancario.numeroRemessa.padStart(6, "0"));
1182
- arquivo.add("087");
1183
- arquivo.add("00000");
1184
- arquivo.add(" ".padEnd(20, " "));
1185
- arquivo.add(" ".padEnd(20, " "));
1186
- arquivo.add(" ".padEnd(29, " "));
1187
- arquivo.addLine();
1188
- arquivo.add("085");
1189
- arquivo.add("0001");
1190
- arquivo.add("1");
1191
- arquivo.add("R");
1192
- arquivo.add("01");
1193
- arquivo.add(" ");
1194
- arquivo.add("045");
1195
- arquivo.add(" ");
1196
- arquivo.add("2");
1197
- arquivo.add(beneficiario.cnpj.padStart(15, "0"));
1198
- arquivo.add(dadosBancario.convenio.padEnd(20, " "));
1199
- arquivo.add(dadosBancario.agencia.padStart(5, "0"));
1200
- arquivo.add(dadosBancario.agenciaDigito);
1201
- arquivo.add(dadosBancario.conta.padStart(12, "0"));
1202
- arquivo.add(dadosBancario.contaDigito);
1203
- arquivo.add(" ");
1204
- arquivo.add(removerCaracterEspecial(beneficiario.nome).substring(0, 30).padEnd(30, " "));
1205
- arquivo.add(" ".padEnd(40, " "));
1206
- arquivo.add(" ".padEnd(40, " "));
1207
- arquivo.add(dadosBancario.numeroRemessa.padStart(8, "0"));
1208
- arquivo.add(data);
1209
- arquivo.add("00000000");
1210
- arquivo.add(" ".padEnd(33, " "));
1211
- arquivo.addLine();
1212
- let sequencia = 0;
1213
- let quantidadeRegistro = 0;
1214
- let total = 0;
1215
- for (const boleto of boletos) {
1216
- const { pagador } = boleto;
1217
- const vencimento = (0, import_date_fns5.format)(new Date(boleto.vencimento), "ddMMyyyy");
1218
- total += Number(boleto.valor);
1219
- const codigoJuro = dadosBancario.jurosMes > 0 ? "2" : "3";
1220
- const juros = dadosBancario.jurosMes > 0 ? dadosBancario.jurosMes.toFixed(2) : "000000000000000";
1221
- const jurosVencimento = (0, import_date_fns5.format)(
1222
- (0, import_date_fns5.addDays)(new Date(boleto.vencimento), 1),
1223
- "ddMMyyyy"
1224
- );
1225
- const codigoDesconto = dadosBancario.descontoPagamento > 0 ? "2" : "0";
1226
- const desconto = boleto.desconto > 0 ? boleto.desconto.toFixed(2) : dadosBancario.descontoPagamento > 0 ? dadosBancario.descontoPagamento.toFixed(2) : "000000000000000";
1227
- let diasProtesto = "00";
1228
- let protesto = "3";
1229
- switch (dadosBancario.tipo_protesto) {
1230
- case "Nenhum":
1231
- protesto = "3";
1232
- diasProtesto = "00";
1233
- break;
1234
- case "Protestar":
1235
- protesto = "1";
1236
- diasProtesto = dadosBancario.diasProtesto.toString().padStart(2, "0");
1237
- break;
1238
- case "Negativar":
1239
- protesto = "2";
1240
- diasProtesto = dadosBancario.diasProtesto.toString().padStart(2, "0");
1241
- break;
1242
- default:
1243
- protesto = "3";
1244
- diasProtesto = "00";
1245
- break;
1246
- }
1247
- arquivo.add("085");
1248
- arquivo.add("0001");
1249
- arquivo.add("3");
1250
- arquivo.add((++sequencia).toString().padStart(5, "0"));
1251
- arquivo.add("P");
1252
- arquivo.add(" ");
1253
- arquivo.add("01");
1254
- arquivo.add(dadosBancario.agencia.padStart(5, "0"));
1255
- arquivo.add(dadosBancario.agenciaDigito);
1256
- arquivo.add(dadosBancario.conta.padStart(12, "0"));
1257
- arquivo.add(dadosBancario.contaDigito);
1258
- arquivo.add(" ");
1259
- arquivo.add(boleto.nossoNumero.padEnd(20, " "));
1260
- arquivo.add("1");
1261
- arquivo.add("1");
1262
- arquivo.add("1");
1263
- arquivo.add("2");
1264
- arquivo.add("2");
1265
- arquivo.add(`${boleto.numeroDocumento}/${boleto.parcela}`.padEnd(15, " "));
1266
- arquivo.add(vencimento);
1267
- arquivo.add(
1268
- Number(boleto.valor).toFixed(2).replace(".", "").padStart(15, "0")
1269
- );
1270
- arquivo.add(dadosBancario.agencia.padStart(5, "0"));
1271
- arquivo.add(dadosBancario.agenciaDigito);
1272
- arquivo.add("02");
1273
- arquivo.add(boleto.aceite);
1274
- arquivo.add(data);
1275
- arquivo.add(codigoJuro);
1276
- arquivo.add(jurosVencimento);
1277
- arquivo.add(juros.replace(".", "").padStart(15, "0"));
1278
- arquivo.add(codigoDesconto);
1279
- arquivo.add(vencimento);
1280
- arquivo.add(desconto.replace(".", "").padStart(15, "0"));
1281
- arquivo.add("000000000000000");
1282
- arquivo.add("000000000000000");
1283
- arquivo.add(boleto.identificacaoTitulo.padEnd(25, " "));
1284
- arquivo.add(protesto);
1285
- arquivo.add(diasProtesto);
1286
- arquivo.add("2");
1287
- arquivo.add(" ");
1288
- arquivo.add("09");
1289
- arquivo.add("0000000000");
1290
- arquivo.add(" ");
1291
- arquivo.addLine();
1292
- let tipoInscricao = "1";
1293
- if (pagador.pessoa === "F") {
1294
- tipoInscricao = "1";
1295
- } else {
1296
- tipoInscricao = "2";
1297
- }
1298
- pagador.endereco.logradouro = `${removerCaracterEspecial(pagador.endereco.logradouro).substring(0, 32).padEnd(32, " ")}${pagador.endereco.numero.padEnd(8, " ")}`;
1299
- arquivo.add("085");
1300
- arquivo.add("0001");
1301
- arquivo.add("3");
1302
- arquivo.add((++sequencia).toString().padStart(5, "0"));
1303
- arquivo.add("Q");
1304
- arquivo.add(" ");
1305
- arquivo.add("01");
1306
- arquivo.add(tipoInscricao);
1307
- arquivo.add(pagador.cpfCnpj.padStart(15, "0"));
1308
- arquivo.add(removerCaracterEspecial(pagador.nome).substring(0, 40).padEnd(40, " "));
1309
- arquivo.add(removerCaracterEspecial(pagador.endereco.logradouro).substring(0, 40).padEnd(40, " "));
1310
- arquivo.add(removerCaracterEspecial(pagador.endereco.bairro).substring(0, 15).padEnd(15, " "));
1311
- arquivo.add(pagador.endereco.cep.substring(0, 5).padStart(5, "0"));
1312
- arquivo.add(pagador.endereco.cep.substring(5, 7).padStart(3, "0"));
1313
- arquivo.add(removerCaracterEspecial(pagador.endereco.municipio).substring(0, 15).padEnd(15, " "));
1314
- arquivo.add(removerCaracterEspecial(pagador.endereco.uf).padEnd(2, " "));
1315
- arquivo.add("0");
1316
- arquivo.add("000000000000000");
1317
- arquivo.add(" ".padEnd(40, " "));
1318
- arquivo.add("000");
1319
- arquivo.add(" ".padEnd(20, " "));
1320
- arquivo.add(" ".padEnd(8, " "));
1321
- arquivo.addLine();
1322
- dadosBancario.multaAtraso = Number(dadosBancario.multaAtraso || 0);
1323
- if (dadosBancario.multaAtraso > 0) {
1324
- const multa = dadosBancario.multaAtraso.toFixed(2);
1325
- arquivo.add("085");
1326
- arquivo.add("0001");
1327
- arquivo.add("3");
1328
- arquivo.add((++sequencia).toString().padStart(5, "0"));
1329
- arquivo.add("R");
1330
- arquivo.add(" ");
1331
- arquivo.add("01");
1332
- arquivo.add("0");
1333
- arquivo.add("00000000");
1334
- arquivo.add("000000000000000");
1335
- arquivo.add("0");
1336
- arquivo.add("00000000");
1337
- arquivo.add("000000000000000");
1338
- arquivo.add("2");
1339
- arquivo.add(vencimento);
1340
- arquivo.add(multa.replace(".", "").padStart(15, "0"));
1341
- arquivo.add(" ".padEnd(10, " "));
1342
- arquivo.add(" ".padEnd(40, " "));
1343
- arquivo.add(" ".padEnd(40, " "));
1344
- arquivo.add(" ".padEnd(20, " "));
1345
- arquivo.add("00000000");
1346
- arquivo.add("000");
1347
- arquivo.add("00000");
1348
- arquivo.add(" ");
1349
- arquivo.add("000000000000");
1350
- arquivo.add(" ");
1351
- arquivo.add(" ");
1352
- arquivo.add("0");
1353
- arquivo.add("000000000");
1354
- arquivo.addLine();
1355
- }
1356
- quantidadeRegistro++;
1357
- }
1358
- arquivo.add("085");
1359
- arquivo.add("0001");
1360
- arquivo.add("5");
1361
- arquivo.add(" ".padEnd(9, " "));
1362
- arquivo.add((sequencia + 3).toString().padStart(6, "0"));
1363
- arquivo.add(quantidadeRegistro.toString().padStart(6, "0"));
1364
- arquivo.add(total.toFixed(2).replace(".", "").padStart(17, "0"));
1365
- arquivo.add("0".padStart(6, "0"));
1366
- arquivo.add("0".padStart(17, "0"));
1367
- arquivo.add("0".padStart(6, "0"));
1368
- arquivo.add("0".padStart(17, "0"));
1369
- arquivo.add("0".padStart(6, "0"));
1370
- arquivo.add("0".padStart(17, "0"));
1371
- arquivo.add(" ".padStart(8, " "));
1372
- arquivo.add(" ".padStart(117, " "));
1373
- arquivo.addLine();
1374
- arquivo.add("085");
1375
- arquivo.add("9999");
1376
- arquivo.add("9");
1377
- arquivo.add(" ".padEnd(9, " "));
1378
- arquivo.add("000001");
1379
- arquivo.add((sequencia + 4).toString().padStart(6, "0"));
1380
- arquivo.add("000000");
1381
- arquivo.add(" ".padEnd(205, " "));
1382
- return {
1383
- download: remessa2,
1384
- arquivo: arquivo.getArquivo()
1385
- };
1386
- } catch (error) {
1387
- console.log(error);
1388
- return null;
1389
- }
1390
- }
1391
-
1392
- // src/banks/ailos/gerarRetorno.ts
1393
- var import_date_fns6 = require("date-fns");
1394
- function gerarRetorno2({ dados }) {
1395
- try {
1396
- const { arquivo } = dados;
1397
- const documentos = [];
1398
- let index = 0;
1399
- for (const item of arquivo) {
1400
- let linha = item;
1401
- const codigoRetorno = linha.substring(15, 17);
1402
- if (codigoRetorno === "06" || codigoRetorno === "17" || codigoRetorno === "03") {
1403
- let segmento = linha.substring(13, 14);
1404
- if (segmento === "T") {
1405
- const motivo = linha.substring(213, 223).trim();
1406
- const linhaDoc = linha.substring(105, 130).trimEnd();
1407
- let tipoDocumento = "INDEFINIDO";
1408
- let idDocumento = linhaDoc;
1409
- if (linhaDoc.includes("-")) {
1410
- const [tipoDoc, idDoc] = linhaDoc.split("-");
1411
- tipoDocumento = tipoDoc;
1412
- idDocumento = idDoc;
1413
- }
1414
- const especie = tipoDocumento.length ? tipoDocumento : "INDEFINIDO";
1415
- linha = arquivo[index + 1];
1416
- segmento = linha.substring(13, 14);
1417
- if (segmento === "U") {
1418
- let dataCredito;
1419
- const dataCreditoString = linha.substring(145, 153);
1420
- if (dataCreditoString && dataCreditoString !== "00000000") {
1421
- dataCredito = (0, import_date_fns6.parse)(dataCreditoString, "ddMMyyyy", /* @__PURE__ */ new Date());
1422
- } else {
1423
- const dataOcorrenciaString = linha.substring(157, 165);
1424
- dataCredito = (0, import_date_fns6.parse)(dataOcorrenciaString, "ddMMyyyy", /* @__PURE__ */ new Date());
1425
- }
1426
- const valorAbatimentoString = linha.substring(47, 62);
1427
- const valorAbatimento = Number(valorAbatimentoString) / 100;
1428
- const valorDescontoString = linha.substring(32, 47);
1429
- const valorDesconto = Number(valorDescontoString) / 100;
1430
- const valorPagoString = linha.substring(77, 92);
1431
- const valorPago = Number(valorPagoString) / 100;
1432
- const valorJurosString = linha.substring(17, 32);
1433
- const valorJuros = Number(valorJurosString) / 100;
1434
- const valorMulta = 0;
1435
- const descontos = valorAbatimento + valorDesconto;
1436
- const valorTotal = valorPago - valorJuros + descontos;
1437
- let rejeitado = false;
1438
- let motivoRejeicao = "";
1439
- if (codigoRetorno === "03") {
1440
- rejeitado = true;
1441
- motivoRejeicao = retornaMotivoRejeicao2(motivo);
1442
- }
1443
- const documento = {
1444
- id_documento: idDocumento,
1445
- especie,
1446
- valor: valorPago,
1447
- valor_multa: valorMulta,
1448
- valor_juros: valorJuros,
1449
- valor_desconto: valorDesconto,
1450
- valor_total: valorTotal,
1451
- data: dataCredito,
1452
- rejeitado,
1453
- motivo: motivoRejeicao
1454
- };
1455
- documentos.push(documento);
1456
- }
1457
- }
1458
- }
1459
- index++;
1460
- }
1461
- const documentoAgrupado = agruparRetorno(documentos);
1462
- return documentoAgrupado;
1463
- } catch (error) {
1464
- console.log(error);
1465
- return null;
1466
- }
1467
- }
1468
- function retornaMotivoRejeicao2(codigo) {
1469
- switch (codigo) {
1470
- case "01":
1471
- return "C\xF3digo do Banco Inv\xE1lido";
1472
- case "02":
1473
- return "C\xF3digo do Registro Detalhe Inv\xE1lido";
1474
- case "03":
1475
- return "C\xF3digo do Segmento Inv\xE1lido";
1476
- case "04":
1477
- return "C\xF3digo de Movimento N\xE3o Permitido para Carteira";
1478
- case "05":
1479
- return "C\xF3digo de Movimento Inv\xE1lido";
1480
- case "06":
1481
- return "Tipo/N\xFAmero de Inscri\xE7\xE3o do Cedente Inv\xE1lidos";
1482
- case "07":
1483
- return "Ag\xEAncia/Conta/DV Inv\xE1lido";
1484
- case "08":
1485
- return "Nosso N\xFAmero Inv\xE1lido";
1486
- case "09":
1487
- return "Nosso N\xFAmero Duplicado";
1488
- case "10":
1489
- return "Carteira Inv\xE1lida";
1490
- case "11":
1491
- return "Forma de Cadastramento do T\xEDtulo Inv\xE1lido";
1492
- case "12":
1493
- return "Tipo de Documento Inv\xE1lido";
1494
- case "13":
1495
- return "Identifica\xE7\xE3o da Emiss\xE3o do Boleto Inv\xE1lida";
1496
- case "14":
1497
- return "Identifica\xE7\xE3o da Distribui\xE7\xE3o do Boleto Inv\xE1lida";
1498
- case "15":
1499
- return "Caracter\xEDsticas da Cobran\xE7a Incompat\xEDveis";
1500
- case "16":
1501
- return "Data de Vencimento Inv\xE1lida";
1502
- case "17":
1503
- return "Data de Vencimento Anterior \xE0 Data de Emiss\xE3o";
1504
- case "18":
1505
- return "Vencimento Fora do Prazo de Opera\xE7\xE3o";
1506
- case "19":
1507
- return "T\xEDtulo a Cargo de Bancos Correspondentes com Vencimento Inferior a XX Dias";
1508
- case "20":
1509
- return "Valor do T\xEDtulo Inv\xE1lido";
1510
- case "21":
1511
- return "Esp\xE9cie do T\xEDtulo Inv\xE1lida";
1512
- case "22":
1513
- return "Esp\xE9cie do T\xEDtulo N\xE3o Permitida para a Carteira";
1514
- case "23":
1515
- return "Aceite Inv\xE1lido";
1516
- case "24":
1517
- return "Data da Emiss\xE3o Inv\xE1lida";
1518
- case "25":
1519
- return "Data da Emiss\xE3o Posterior a Data de Entrada";
1520
- case "26":
1521
- return "C\xF3digo de Juros de Mora Inv\xE1lido";
1522
- case "27":
1523
- return "Vlr/Taxa de Juros de Mora Inv\xE1lido";
1524
- case "28":
1525
- return "C\xF3digo do Desconto Inv\xE1lido";
1526
- case "29":
1527
- return "Valor do Desconto Maior ou Igual ao Valor do T\xEDtulo";
1528
- case "30":
1529
- return "Desconto a Conceder N\xE3o Confere";
1530
- case "31":
1531
- return "Concess\xE3o de Desconto - J\xE1 Existe Desconto Anterior";
1532
- case "33":
1533
- return "Valor do Abatimento Inv\xE1lido";
1534
- case "34":
1535
- return "Valor do Abatimento Maior ou Igual ao Valor do T\xEDtulo";
1536
- case "35":
1537
- return "Valor a Conceder N\xE3o Confere";
1538
- case "36":
1539
- return "Concess\xE3o de Abatimento - J\xE1 Existe Abatimento Anterior";
1540
- case "37":
1541
- return "C\xF3digo para Protesto Inv\xE1lido";
1542
- case "38":
1543
- return "Prazo para Protesto Inv\xE1lido";
1544
- case "39":
1545
- return "Pedido de Protesto N\xE3o Permitido para o T\xEDtulo";
1546
- case "40":
1547
- return "T\xEDtulo com Ordem de Protesto Emitida";
1548
- case "41":
1549
- return "Pedido de Cancelamento/Susta\xE7\xE3o para T\xEDtulos sem Instru\xE7\xE3o de Protesto";
1550
- case "42":
1551
- return "C\xF3digo para Baixa/Devolu\xE7\xE3o Inv\xE1lido";
1552
- case "43":
1553
- return "Prazo para Baixa/Devolu\xE7\xE3o Inv\xE1lido";
1554
- case "44":
1555
- return "C\xF3digo da Moeda Inv\xE1lido";
1556
- case "45":
1557
- return "Nome do Sacado N\xE3o Informado";
1558
- case "46":
1559
- return "Tipo/N\xFAmero de Inscri\xE7\xE3o do Sacado Inv\xE1lidos";
1560
- case "47":
1561
- return "Endere\xE7o do Sacado N\xE3o Informado";
1562
- case "48":
1563
- return "CEP Inv\xE1lido";
1564
- case "49":
1565
- return "CEP Sem Pra\xE7a de Cobran\xE7a (N\xE3o Localizado)";
1566
- case "50":
1567
- return "CEP Referente a um Banco Correspondente";
1568
- case "51":
1569
- return "CEP incompat\xEDvel com a Unidade da Federa\xE7\xE3o";
1570
- case "52":
1571
- return "Unidade da Federa\xE7\xE3o Inv\xE1lida";
1572
- case "53":
1573
- return "Tipo/N\xFAmero de Inscri\xE7\xE3o do Sacador/Avalista Inv\xE1lidos";
1574
- case "54":
1575
- return "Sacador/Avalista N\xE3o Informado";
1576
- case "55":
1577
- return "Nosso n\xFAmero no Banco Correspondente N\xE3o Informado";
1578
- case "56":
1579
- return "C\xF3digo do Banco Correspondente N\xE3o Informado";
1580
- case "57":
1581
- return "C\xF3digo da Multa Inv\xE1lido";
1582
- case "58":
1583
- return "Data da Multa Inv\xE1lida";
1584
- case "59":
1585
- return "Valor/Percentual da Multa Inv\xE1lido";
1586
- case "60":
1587
- return "Movimento para T\xEDtulo N\xE3o Cadastrado";
1588
- case "61":
1589
- return "Altera\xE7\xE3o da Ag\xEAncia Cobradora/DV Inv\xE1lida";
1590
- case "62":
1591
- return "Tipo de Impress\xE3o Inv\xE1lido";
1592
- case "63":
1593
- return "Entrada para T\xEDtulo j\xE1 cadastrado";
1594
- case "64":
1595
- return "N\xFAmero da Linha Inv\xE1lido";
1596
- case "65":
1597
- return "C\xF3digo do Banco para D\xE9bito Inv\xE1lido";
1598
- case "66":
1599
- return "Ag\xEAncia/Conta/DV para D\xE9bito Inv\xE1lido";
1600
- case "79":
1601
- return "Data Juros de Mora Inv\xE1lido";
1602
- case "80":
1603
- return "Data do Desconto Inv\xE1lida";
1604
- case "86":
1605
- return "Seu N\xFAmero Inv\xE1lido";
1606
- case "89":
1607
- return "E-mail/SMS devolvido - endere\xE7o de e-mail ou n\xFAmero do celular incorreto";
1608
- case "91":
1609
- return "E-mail/n\xFAmero do celular do sacado n\xE3o informado";
1610
- case "96":
1611
- return "N\xFAmero do Convenio invalido";
1612
- case "97":
1613
- return "Rejei\xE7\xE3o da altera\xE7\xE3o do prazo limite de recebimento";
1614
- case "98":
1615
- return "Rejei\xE7\xE3o de dispensa de prazo limite de recebimento";
1616
- case "99":
1617
- return "Rejei\xE7\xE3o da altera\xE7\xE3o do n\xFAmero do t\xEDtulo dado pelo cedente";
1618
- case "A2":
1619
- return "Rejei\xE7\xE3o da altera\xE7\xE3o dos dados do sacado";
1620
- case "A3":
1621
- return "Rejei\xE7\xE3o da altera\xE7\xE3o dos dados do sacador/avalista";
1622
- case "A4":
1623
- return "Sacado DDA";
1624
- case "A4R1":
1625
- return "Sacado DDA / Registro online";
1626
- default:
1627
- return "Motivo de rejei\xE7\xE3o desconhecido";
1628
- }
1629
- }
1630
-
1631
- // src/banks/ailos/index.ts
1632
- var ailos = {
1633
- gerarDadosBoleto: gerarDadosBoleto2,
1634
- gerarPDF: gerarPDF2,
1635
- gerarRemessa: gerarRemessa2,
1636
- gerarRetorno: gerarRetorno2
1637
- };
1638
-
1639
- // src/banks/bradesco/gerarDadosBoleto.ts
1640
- function gerarDadosBoleto3({ dados }) {
1641
- try {
1642
- const { bancario, parcela } = dados;
1643
- parcela.valor = Number(parcela.valor);
1644
- const fatorVencimento = getFatorVencimento(parcela.vencimento);
1645
- const valor = getValor3(parcela.valor);
1646
- const convenio = padLeft(bancario.convenio, 6);
1647
- const numeroDocumento = padLeft(`${parcela.id_boleto}`, 9);
1648
- const nossoNumero = padLeft(bancario.numero + bancario.numero_dv, 8) + numeroDocumento;
1649
- const campoLivre = convenio + nossoNumero + padLeft(bancario.carteira, 2);
1650
- const digitoGeral = getDigitoGeral3(`0859${fatorVencimento}${valor}${campoLivre}`);
1651
- const codigoBarra2 = `0859${digitoGeral}${fatorVencimento}${valor}${campoLivre}`;
1652
- const campo1 = copy(codigoBarra2, 1, 3) + copy(codigoBarra2, 4, 4) + copy(codigoBarra2, 20, 24);
1653
- const campo2 = copy(codigoBarra2, 25, 34);
1654
- const campo3 = copy(codigoBarra2, 35, 44);
1655
- const campo4 = copy(codigoBarra2, 5, 5);
1656
- const campo5 = copy(codigoBarra2, 6, 9) + copy(codigoBarra2, 10, 19);
1657
- const digito1 = getDigito3(campo1);
1658
- const digito2 = getDigito3(campo2);
1659
- const digito3 = getDigito3(campo3);
1660
- const digito4 = getDigito3(campo4);
1661
- const linhaDigitavel = campo1 + digito1 + campo2 + digito2 + campo3 + digito3 + campo4 + digito4 + campo5;
1662
- const dadosBoleto = {
1663
- linhaDigitavel,
1664
- fatorVencimento,
1665
- valor,
1666
- convenio,
1667
- nossoNumero,
1668
- campoLivre,
1669
- digitoGeral,
1670
- codigoBarra: codigoBarra2,
1671
- numeroDocumento
1672
- };
1673
- return dadosBoleto;
1674
- } catch (error) {
1675
- console.log("Falha ao gerar dados do boleto", error);
1676
- return null;
1677
- }
1678
- }
1679
- function getValor3(valor) {
1680
- const valorFormatado = valor.toFixed(2).replace(/\D/g, "");
1681
- return padLeft(valorFormatado, 10);
1682
- }
1683
- function getDigitoGeral3(texto) {
1684
- let i = 43;
1685
- let j = 1;
1686
- let soma = 0;
1687
- let digito = 0;
1688
- while (i >= 1) {
1689
- j++;
1690
- if (j === 10)
1691
- j = 2;
1692
- const valor = Number(copy(texto, i, i));
1693
- soma += j * valor;
1694
- i--;
1695
- }
1696
- const restoDivisao = soma % 11;
1697
- digito = 11 - restoDivisao;
1698
- if (digito === 0 || digito === 1 || digito > 9)
1699
- digito = 1;
1700
- return String(digito);
1701
- }
1702
- function getDigito3(texto) {
1703
- let i = texto.length;
1704
- let j = 1;
1705
- let total = 0;
1706
- let soma = 0;
1707
- let digito = 0;
1708
- while (i >= 1) {
1709
- j = j === 1 ? 2 : 1;
1710
- let valor = Number(copy(texto, i, i));
1711
- total = valor * j;
1712
- if (total >= 10) {
1713
- valor = Number(copy(total, 1, 1)) + Number(copy(total, 2, 2));
1714
- } else {
1715
- valor = total;
1716
- }
1717
- soma += valor;
1718
- i--;
1719
- }
1720
- const uni = Number(copy(soma, String(soma).length, String(soma).length));
1721
- digito = 10 - uni;
1722
- if (digito === 10)
1723
- digito = 0;
1724
- return String(digito);
1725
- }
1726
-
1727
- // src/banks/bradesco/gerarPDF.ts
1728
- var import_bwip_js4 = __toESM(require("bwip-js"));
1729
- function gerarPDF3(_0) {
1730
- return __async(this, arguments, function* ({ dados }) {
1731
- try {
1732
- const { dadosPDF, generatePDF } = dados;
1733
- const codigoBarra2 = yield import_bwip_js4.default.toBuffer({
1734
- bcid: "interleaved2of5",
1735
- text: dadosPDF.boleto.codigoBarra,
1736
- height: 20
1737
- });
1738
- dadosPDF.beneficiario.dadosBancarios.agencia = dadosPDF.beneficiario.dadosBancarios.agencia.padStart(4, "0");
1739
- dadosPDF.beneficiario.dadosBancarios.conta = dadosPDF.beneficiario.dadosBancarios.conta.padStart(7, "0");
1740
- dadosPDF.boleto.codigoBarra = maskFormat_default.codigoBarra(dadosPDF.boleto.codigoBarra);
1741
- dadosPDF.boleto.codigoBarraImage = codigoBarra2.toString("base64");
1742
- dadosPDF.beneficiario.cnpj = maskFormat_default.retornaCpfCnpjFormatado(
1743
- dadosPDF.beneficiario.cnpj
1744
- );
1745
- dadosPDF.beneficiario.endereco.cep = maskFormat_default.retornaCEPFormatado(
1746
- dadosPDF.beneficiario.endereco.cep
1747
- );
1748
- dadosPDF.pagador.endereco.cep = maskFormat_default.retornaCEPFormatado(
1749
- dadosPDF.pagador.endereco.cep
1750
- );
1751
- dadosPDF.boleto.valorAcrescimo = maskFormat_default.numberToReal(
1752
- dadosPDF.boleto.valorAcrescimo
1753
- );
1754
- dadosPDF.boleto.valorCobrado = maskFormat_default.numberToReal(
1755
- dadosPDF.boleto.valorCobrado
1756
- );
1757
- dadosPDF.boleto.valorDescontoAbatimento = maskFormat_default.numberToReal(
1758
- dadosPDF.boleto.valorDescontoAbatimento
1759
- );
1760
- dadosPDF.boleto.valorDocumento = maskFormat_default.numberToReal(
1761
- dadosPDF.boleto.valorDocumento
1762
- );
1763
- dadosPDF.boleto.valorMulta = maskFormat_default.numberToReal(dadosPDF.boleto.valorMulta);
1764
- dadosPDF.boleto.valorOutrasDeducoes = maskFormat_default.numberToReal(
1765
- dadosPDF.boleto.valorOutrasDeducoes
1766
- );
1767
- if (dadosPDF.boleto.quantidade) {
1768
- dadosPDF.boleto.quantidade = maskFormat_default.numberToReal(dadosPDF.boleto.quantidade);
1769
- }
1770
- dadosPDF.boleto.valor = maskFormat_default.numberToReal(dadosPDF.boleto.valor);
1771
- const content = compileHbs(getPathTemplates("bradesco-boleto.hbs"), dadosPDF);
1772
- const config = {
1773
- displayHeaderFooter: false,
1774
- path: "./boleto.pdf",
1775
- format: "a4",
1776
- printBackground: true
1777
- };
1778
- let pdfBase64 = null;
1779
- if (generatePDF) {
1780
- pdfBase64 = yield generatePDF(content, config);
1781
- } else {
1782
- if (!api.defaults.baseURL) {
1783
- throw new Error("BaseURL api not found");
1784
- }
1785
- const response = yield api.post("/", { content, config });
1786
- const buffer = Buffer.from(response.data.pdf);
1787
- pdfBase64 = yield decompress(buffer);
1788
- }
1789
- return {
1790
- erro: false,
1791
- dados: pdfBase64
1792
- };
1793
- } catch (error) {
1794
- return {
1795
- erro: true,
1796
- dados: null
1797
- };
1798
- }
1799
- });
1800
- }
1801
-
1802
- // src/banks/bradesco/gerarRemessa.ts
1803
- var import_date_fns7 = require("date-fns");
1804
- function gerarRemessa3(_0) {
1805
- return __async(this, arguments, function* ({ dados }) {
1806
- try {
1807
- const { dadosBancario, beneficiario, boletos } = dados.remessa;
1808
- const arquivo = new Arquivo();
1809
- const dataAtual = /* @__PURE__ */ new Date();
1810
- const data = (0, import_date_fns7.format)(dataAtual, "ddMMyyyy");
1811
- const hora = (0, import_date_fns7.format)(dataAtual, "HHmmss");
1812
- const convenio = dadosBancario.convenio.padStart(7, "0");
1813
- const numero = dadosBancario.conta.padStart(7, "0") + dadosBancario.contaDigito;
1814
- const remessa2 = `REM${convenio}-${numero}-${data}.REM`;
1815
- arquivo.add("085");
1816
- arquivo.add("0000");
1817
- arquivo.add("0");
1818
- arquivo.add(" ");
1819
- arquivo.add("2");
1820
- arquivo.add(beneficiario.cnpj);
1821
- arquivo.add(dadosBancario.convenio.padEnd(20, " "));
1822
- arquivo.add(dadosBancario.agencia.padStart(5, "0"));
1823
- arquivo.add(dadosBancario.agencia);
1824
- arquivo.add(dadosBancario.conta.padStart(12, "0"));
1825
- arquivo.add(dadosBancario.contaDigito);
1826
- arquivo.add(" ");
1827
- arquivo.add(beneficiario.nome.substring(0, 30).padEnd(30, " "));
1828
- arquivo.add("AILOS".padEnd(30, " "));
1829
- arquivo.add(" ");
1830
- arquivo.add("1");
1831
- arquivo.add(data);
1832
- arquivo.add(hora);
1833
- arquivo.add(dadosBancario.numeroRemessa.padStart(6, "0"));
1834
- arquivo.add("087");
1835
- arquivo.add("00000");
1836
- arquivo.add(" ".padEnd(20, " "));
1837
- arquivo.add(" ".padEnd(20, " "));
1838
- arquivo.add(" ".padEnd(29, " "));
1839
- arquivo.addLine();
1840
- arquivo.add("085");
1841
- arquivo.add("0001");
1842
- arquivo.add("1");
1843
- arquivo.add("R");
1844
- arquivo.add("01");
1845
- arquivo.add(" ");
1846
- arquivo.add("045");
1847
- arquivo.add(" ");
1848
- arquivo.add("2");
1849
- arquivo.add(beneficiario.cnpj.padStart(15, "0"));
1850
- arquivo.add(dadosBancario.convenio.padEnd(20, " "));
1851
- arquivo.add(dadosBancario.agencia.padStart(5, "0"));
1852
- arquivo.add(dadosBancario.agenciaDigito);
1853
- arquivo.add(dadosBancario.conta.padStart(12, "0"));
1854
- arquivo.add(dadosBancario.contaDigito);
1855
- arquivo.add(" ");
1856
- arquivo.add(beneficiario.nome.substring(0, 30).padEnd(30, " "));
1857
- arquivo.add(" ".padEnd(40, " "));
1858
- arquivo.add(" ".padEnd(40, " "));
1859
- arquivo.add(dadosBancario.numeroRemessa.padStart(8, "0"));
1860
- arquivo.add(data);
1861
- arquivo.add("00000000");
1862
- arquivo.add(" ".padEnd(33, " "));
1863
- arquivo.addLine();
1864
- let sequencia = 1;
1865
- let quantidadeRegistro = 1;
1866
- let total = 0;
1867
- for (const boleto of boletos) {
1868
- const { pagador } = boleto;
1869
- const vencimento = (0, import_date_fns7.format)(new Date(boleto.vencimento), "ddMMyyyy");
1870
- total += Number(boleto.valor);
1871
- const codigoJuro = dadosBancario.jurosMes > 0 ? "2" : "3";
1872
- const juros = dadosBancario.jurosMes > 0 ? dadosBancario.jurosMes.toFixed(2) : "000000000000000";
1873
- const jurosVencimento = (0, import_date_fns7.format)(
1874
- (0, import_date_fns7.addDays)(new Date(boleto.vencimento), 1),
1875
- "ddMMyyyy"
1876
- );
1877
- const codigoDesconto = dadosBancario.descontoPagamento > 0 ? "2" : "0";
1878
- const desconto = dadosBancario.descontoPagamento > 0 ? dadosBancario.descontoPagamento.toFixed(2) : "000000000000000";
1879
- const protesto = dadosBancario.diasProtesto > 0 ? "1" : "3";
1880
- const diasProtesto = protesto === "1" ? dadosBancario.diasProtesto.toString() : "00";
1881
- arquivo.add("085");
1882
- arquivo.add("0001");
1883
- arquivo.add("3");
1884
- arquivo.add(sequencia.toString().padStart(5, "0"));
1885
- arquivo.add("P");
1886
- arquivo.add(" ");
1887
- arquivo.add("01");
1888
- arquivo.add(dadosBancario.agencia.padStart(5, "0"));
1889
- arquivo.add(dadosBancario.agenciaDigito);
1890
- arquivo.add(dadosBancario.conta.padStart(12, "0"));
1891
- arquivo.add(dadosBancario.contaDigito);
1892
- arquivo.add(" ");
1893
- arquivo.add(boleto.nossoNumero.padEnd(20, " "));
1894
- arquivo.add("1");
1895
- arquivo.add("1");
1896
- arquivo.add("1");
1897
- arquivo.add("2");
1898
- arquivo.add("2");
1899
- arquivo.add(`${boleto.numeroDocumento}/${boleto.parcela}`.padEnd(15, " "));
1900
- arquivo.add(vencimento);
1901
- arquivo.add(
1902
- Number(boleto.valor).toFixed(2).replace(".", "").padStart(15, "0")
1903
- );
1904
- arquivo.add(dadosBancario.agencia.padStart(5, "0"));
1905
- arquivo.add(dadosBancario.agenciaDigito);
1906
- arquivo.add("02");
1907
- arquivo.add("A");
1908
- arquivo.add(data);
1909
- arquivo.add(codigoJuro);
1910
- arquivo.add(jurosVencimento);
1911
- arquivo.add(juros.replace(".", "").padStart(15, "0"));
1912
- arquivo.add(codigoDesconto);
1913
- arquivo.add(vencimento);
1914
- arquivo.add(desconto.replace(".", "").padStart(15, "0"));
1915
- arquivo.add("000000000000000");
1916
- arquivo.add("000000000000000");
1917
- arquivo.add(boleto.identificacaoTitulo.padEnd(25, " "));
1918
- arquivo.add(protesto);
1919
- arquivo.add(diasProtesto.padStart(1, "0"));
1920
- arquivo.add("2");
1921
- arquivo.add(" ");
1922
- arquivo.add("09");
1923
- arquivo.add("0000000000");
1924
- arquivo.add(" ");
1925
- sequencia++;
1926
- arquivo.addLine();
1927
- let tipoInscricao = "1";
1928
- if (pagador.pessoa === "F") {
1929
- tipoInscricao = "1";
1930
- } else {
1931
- tipoInscricao = "2";
1932
- }
1933
- pagador.endereco.logradouro = `${pagador.endereco.logradouro.substring(0, 32).padEnd(32, " ")}${pagador.endereco.numero.padEnd(8, " ")}`;
1934
- arquivo.add("085");
1935
- arquivo.add("0001");
1936
- arquivo.add("3");
1937
- arquivo.add(sequencia.toString().padStart(5, "0"));
1938
- arquivo.add("Q");
1939
- arquivo.add(" ");
1940
- arquivo.add("01");
1941
- arquivo.add(tipoInscricao);
1942
- arquivo.add(pagador.cpfCnpj.padStart(15, "0"));
1943
- arquivo.add(pagador.nome.substring(0, 40).padEnd(40, " "));
1944
- arquivo.add(pagador.endereco.logradouro.substring(0, 40).padEnd(40, " "));
1945
- arquivo.add(pagador.endereco.bairro.substring(0, 15).padEnd(15, " "));
1946
- arquivo.add(pagador.endereco.cep.substring(0, 5).padStart(5, "0"));
1947
- arquivo.add(pagador.endereco.cep.substring(5, 7).padStart(3, "0"));
1948
- arquivo.add(pagador.endereco.municipio.substring(0, 15).padEnd(15, " "));
1949
- arquivo.add(pagador.endereco.uf.padEnd(2, " "));
1950
- arquivo.add("0");
1951
- arquivo.add("000000000000000");
1952
- arquivo.add(" ".padEnd(40, " "));
1953
- arquivo.add("000");
1954
- arquivo.add(" ".padEnd(20, " "));
1955
- arquivo.add(" ".padEnd(8, " "));
1956
- dadosBancario.multaAtraso = Number(dadosBancario.multaAtraso || 0);
1957
- if (dadosBancario.multaAtraso > 0) {
1958
- arquivo.addLine();
1959
- const multa = dadosBancario.multaAtraso.toFixed(2);
1960
- sequencia++;
1961
- arquivo.add("085");
1962
- arquivo.add("0001");
1963
- arquivo.add("3");
1964
- arquivo.add(sequencia.toString().padStart(5, "0"));
1965
- arquivo.add("R");
1966
- arquivo.add(" ");
1967
- arquivo.add("01");
1968
- arquivo.add("0");
1969
- arquivo.add("00000000");
1970
- arquivo.add("000000000000000");
1971
- arquivo.add("0");
1972
- arquivo.add("00000000");
1973
- arquivo.add("000000000000000");
1974
- arquivo.add("2");
1975
- arquivo.add(vencimento);
1976
- arquivo.add(multa.replace(".", "").padStart(15, "0"));
1977
- arquivo.add(" ".padEnd(10, " "));
1978
- arquivo.add(" ".padEnd(40, " "));
1979
- arquivo.add(" ".padEnd(40, " "));
1980
- arquivo.add(" ".padEnd(20, " "));
1981
- arquivo.add("00000000");
1982
- arquivo.add("000");
1983
- arquivo.add("00000");
1984
- arquivo.add(" ");
1985
- arquivo.add("000000000000");
1986
- arquivo.add(" ");
1987
- arquivo.add(" ");
1988
- arquivo.add("0");
1989
- arquivo.add("000000000");
1990
- }
1991
- arquivo.addLine();
1992
- quantidadeRegistro++;
1993
- }
1994
- arquivo.add("085");
1995
- arquivo.add("0001");
1996
- arquivo.add("5");
1997
- arquivo.add(" ".padEnd(9, " "));
1998
- arquivo.add((sequencia + 3).toString().padStart(6, "0"));
1999
- arquivo.add(quantidadeRegistro.toString().padStart(6, "0"));
2000
- arquivo.add(total.toFixed(2).replace(".", "").padStart(17, "0"));
2001
- arquivo.add("0".padStart(6, "0"));
2002
- arquivo.add("0".padStart(17, "0"));
2003
- arquivo.add("0".padStart(6, "0"));
2004
- arquivo.add("0".padStart(17, "0"));
2005
- arquivo.add("0".padStart(6, "0"));
2006
- arquivo.add("0".padStart(17, "0"));
2007
- arquivo.add(" ".padStart(8, " "));
2008
- arquivo.add(" ".padStart(117, " "));
2009
- arquivo.addLine();
2010
- arquivo.add("085");
2011
- arquivo.add("9999");
2012
- arquivo.add("9");
2013
- arquivo.add(" ".padEnd(9, " "));
2014
- arquivo.add("000001");
2015
- arquivo.add((sequencia + 4).toString().padStart(6, "0"));
2016
- arquivo.add("000000");
2017
- arquivo.add(" ".padEnd(205, " "));
2018
- return {
2019
- download: remessa2,
2020
- arquivo: arquivo.getArquivo()
2021
- };
2022
- } catch (error) {
2023
- console.log(error);
2024
- return null;
2025
- }
2026
- });
2027
- }
2028
-
2029
- // src/banks/bradesco/gerarRetorno.ts
2030
- function gerarRetorno3({ dados }) {
2031
- try {
2032
- const { arquivo } = dados;
2033
- const documentos = [];
2034
- let index = 0;
2035
- for (const item of arquivo) {
2036
- let linha = item;
2037
- const banco = linha.substring(0, 3);
2038
- const codigoRetorno = linha.substring(15, 17);
2039
- if ((banco === "001" || banco === "085") && (codigoRetorno === "06" || codigoRetorno === "17")) {
2040
- let segmento = linha.substring(13, 14);
2041
- if (segmento === "T") {
2042
- let tipoDocumento = "";
2043
- let idDocumento = "";
2044
- const linhaDoc = linha.substring(105, 130).trimEnd();
2045
- if (linhaDoc.includes("-")) {
2046
- [tipoDocumento, idDocumento] = linha.split("-");
2047
- } else {
2048
- idDocumento = linhaDoc;
2049
- }
2050
- const especie = tipoDocumento.length ? tipoDocumento : "INDEFINIDO";
2051
- linha = arquivo[index + 1];
2052
- segmento = linha.substring(13, 14);
2053
- if (segmento === "U") {
2054
- const valorAbatimentoString = linha.substring(47, 62);
2055
- const valorAbatimento = Number(valorAbatimentoString) / 100;
2056
- const valorDescontoString = linha.substring(32, 47);
2057
- const valorDesconto = Number(valorDescontoString) / 100;
2058
- const valorPagoString = linha.substring(77, 92);
2059
- const valorPago = Number(valorPagoString) / 100;
2060
- const valorJurosString = linha.substring(17, 32);
2061
- const valorJuros = Number(valorJurosString) / 100;
2062
- const valorMulta = 0;
2063
- const descontos = valorAbatimento + valorDesconto;
2064
- const valorTotal = valorPago - valorJuros + descontos;
2065
- const documento = {
2066
- id_documento: idDocumento,
2067
- especie,
2068
- valor: valorTotal,
2069
- valor_desconto: 0,
2070
- valor_juros: 0,
2071
- valor_multa: 0,
2072
- valor_total: 0,
2073
- data: /* @__PURE__ */ new Date()
2074
- };
2075
- documentos.push(documento);
2076
- }
2077
- }
2078
- }
2079
- index++;
2080
- }
2081
- const documentoAgrupado = agruparRetorno(documentos);
2082
- return documentoAgrupado;
2083
- } catch (error) {
2084
- console.log(error);
2085
- return null;
2086
- }
2087
- }
2088
-
2089
- // src/banks/bradesco/index.ts
2090
- var bradesco = {
2091
- gerarDadosBoleto: gerarDadosBoleto3,
2092
- gerarPDF: gerarPDF3,
2093
- gerarRemessa: gerarRemessa3,
2094
- gerarRetorno: gerarRetorno3
2095
- };
2096
-
2097
- // src/banks/sicoob/gerarDadosBoleto.ts
2098
- function gerarDadosBoleto4({ dados }) {
2099
- try {
2100
- const { bancario, parcela } = dados;
2101
- if (!bancario.modalidade) {
2102
- bancario.modalidade = "01";
2103
- }
2104
- bancario.modalidade = padLeft(bancario.modalidade, 2);
2105
- const codigo_cliente = `${bancario.codigo_cliente}${bancario.codigo_cliente_dv}`;
2106
- const nossoNumero = getNossoNumero2(bancario.agencia, codigo_cliente, String(parcela.id_boleto));
2107
- const fatorVencimento = getFatorVencimento(parcela.vencimento);
2108
- const valor = getValor4(Number(parcela.valor));
2109
- const campoLivre = "1" + bancario.agencia + bancario.modalidade + padLeft(codigo_cliente, 7) + nossoNumero + padLeft(parcela.parcela, 3);
2110
- const digitoGeral = getDigitoGeral4(`7569${fatorVencimento}${valor}${campoLivre}`);
2111
- const codigoBarra2 = `7569${digitoGeral}${fatorVencimento}${valor}${campoLivre}`;
2112
- const campo1 = copy(codigoBarra2, 1, 3) + copy(codigoBarra2, 4, 4) + copy(codigoBarra2, 20, 24);
2113
- const campo2 = copy(codigoBarra2, 25, 34);
2114
- const campo3 = copy(codigoBarra2, 35, 44);
2115
- const campo4 = copy(codigoBarra2, 5, 5);
2116
- const campo5 = copy(codigoBarra2, 6, 9) + copy(codigoBarra2, 10, 19);
2117
- const digito1 = getDigito4(campo1);
2118
- const digito2 = getDigito4(campo2);
2119
- const digito3 = getDigito4(campo3);
2120
- const linhaDigitavel = campo1 + digito1 + campo2 + digito2 + campo3 + digito3 + campo4 + campo5;
2121
- const dadosBoleto = {
2122
- linhaDigitavel,
2123
- fatorVencimento,
2124
- valor,
2125
- nossoNumero,
2126
- campoLivre,
2127
- digitoGeral,
2128
- codigoBarra: codigoBarra2
2129
- };
2130
- return dadosBoleto;
2131
- } catch (error) {
2132
- console.log("Falha ao gerar dados do boleto", error);
2133
- return null;
2134
- }
2135
- }
2136
- function getNossoNumero2(agencia, codigo_cliente, id_boleto) {
2137
- codigo_cliente = padLeft(codigo_cliente, 10);
2138
- id_boleto = padLeft(id_boleto, 7);
2139
- const aux = `${agencia}${codigo_cliente}${id_boleto}`;
2140
- let i = 22, m = 3, soma = 0;
2141
- while (true) {
2142
- i--;
2143
- soma += m * Number(copy(aux, i, i));
2144
- if (i === 1)
2145
- break;
2146
- else if (m === 3)
2147
- m = 7;
2148
- else if (m === 7)
2149
- m = 9;
2150
- else if (m === 9)
2151
- m = 1;
2152
- else if (m === 1)
2153
- m = 3;
2154
- }
2155
- let dig = soma % 11;
2156
- dig = dig === 1 || dig === 0 ? 0 : 11 - dig;
2157
- return `${id_boleto}${dig}`;
2158
- }
2159
- function getValor4(valor) {
2160
- const valorFormatado = valor.toFixed(2).replace(/\D/g, "");
2161
- return padLeft(valorFormatado, 10);
2162
- }
2163
- function getDigitoGeral4(texto) {
2164
- let i = 43;
2165
- let j = 1;
2166
- let soma = 0;
2167
- while (i >= 1) {
2168
- j++;
2169
- if (j === 10)
2170
- j = 2;
2171
- const valor = Number(copy(texto, i, i));
2172
- soma += j * valor;
2173
- i--;
2174
- }
2175
- const resto = soma % 11;
2176
- let digito = 11 - resto;
2177
- if (digito === 0 || digito > 9)
2178
- digito = 1;
2179
- return String(digito);
2180
- }
2181
- function getDigito4(texto) {
2182
- let i = texto.length;
2183
- let j = 1;
2184
- let total = 0;
2185
- let soma = 0;
2186
- let digito = 0;
2187
- while (i >= 1) {
2188
- j = j === 1 ? 2 : 1;
2189
- let valor = Number(copy(texto, i, i));
2190
- total = valor * j;
2191
- if (total >= 10) {
2192
- valor = Number(copy(total, 1, 1)) + Number(copy(total, 2, 2));
2193
- } else {
2194
- valor = total;
2195
- }
2196
- soma += valor;
2197
- i--;
2198
- }
2199
- const uni = Number(copy(soma, String(soma).length, String(soma).length));
2200
- digito = 10 - uni;
2201
- if (digito === 10)
2202
- digito = 0;
2203
- return String(digito);
2204
- }
2205
-
2206
- // src/banks/sicoob/gerarRemessa.ts
2207
- var import_date_fns8 = require("date-fns");
2208
- function gerarRemessa4({ dados }) {
2209
- try {
2210
- const { dadosBancario, beneficiario, boletos } = dados.remessa;
2211
- const arquivo = new Arquivo();
2212
- const dataAtual = /* @__PURE__ */ new Date();
2213
- const data = (0, import_date_fns8.format)(dataAtual, "ddMMyyyy");
2214
- const hora = (0, import_date_fns8.format)(dataAtual, "HHmmss");
2215
- const remessa2 = `REM${dadosBancario.numeroRemessa.padStart(6, "0")}.REM`;
2216
- arquivo.add("756");
2217
- arquivo.add("0000");
2218
- arquivo.add("0");
2219
- arquivo.add(" ".padEnd(9, " "));
2220
- arquivo.add("2");
2221
- arquivo.add(beneficiario.cnpj);
2222
- arquivo.add(" ".padEnd(20, " "));
2223
- arquivo.add(dadosBancario.agencia.padStart(5, "0"));
2224
- arquivo.add(dadosBancario.agenciaDigito);
2225
- arquivo.add(dadosBancario.conta.padStart(12, "0"));
2226
- arquivo.add(dadosBancario.contaDigito);
2227
- arquivo.add("0");
2228
- arquivo.add(removerCaracterEspecial(beneficiario.nome).substring(0, 30).padEnd(30, " "));
2229
- arquivo.add("SICOOB".padEnd(30, " "));
2230
- arquivo.add(" ".padEnd(10, " "));
2231
- arquivo.add("1");
2232
- arquivo.add(data);
2233
- arquivo.add(hora);
2234
- arquivo.add(dadosBancario.numeroRemessa.padStart(6, "0"));
2235
- arquivo.add("081");
2236
- arquivo.add("00000");
2237
- arquivo.add(" ".padEnd(69, " "));
2238
- arquivo.addLine();
2239
- arquivo.add("756");
2240
- arquivo.add("0001");
2241
- arquivo.add("1");
2242
- arquivo.add("R");
2243
- arquivo.add("01");
2244
- arquivo.add(" ");
2245
- arquivo.add("040");
2246
- arquivo.add(" ");
2247
- arquivo.add("2");
2248
- arquivo.add(beneficiario.cnpj.padStart(15, "0"));
2249
- arquivo.add(" ".padEnd(20, " "));
2250
- arquivo.add(dadosBancario.agencia.padStart(5, "0"));
2251
- arquivo.add(dadosBancario.agenciaDigito);
2252
- arquivo.add(dadosBancario.conta.padStart(12, "0"));
2253
- arquivo.add(dadosBancario.contaDigito);
2254
- arquivo.add(" ");
2255
- arquivo.add(removerCaracterEspecial(beneficiario.nome).substring(0, 30).padEnd(30, " "));
2256
- arquivo.add(" ".padEnd(80, " "));
2257
- arquivo.add(dadosBancario.numeroRemessa.padStart(8, "0"));
2258
- arquivo.add(data);
2259
- arquivo.add("00000000");
2260
- arquivo.add(" ".padEnd(33, " "));
2261
- arquivo.addLine();
2262
- let sequencia = 0;
2263
- let quantidadeRegistro = 0;
2264
- let total = 0;
2265
- for (const boleto of boletos) {
2266
- const { pagador } = boleto;
2267
- const vencimento = (0, import_date_fns8.format)(new Date(boleto.vencimento), "ddMMyyyy");
2268
- const valor_juros_dia = Number(boleto.valor) * dadosBancario.jurosMes / 100 / 30;
2269
- let protesto = "3";
2270
- switch (dadosBancario.tipo_protesto) {
2271
- case "Nenhum":
2272
- protesto = "3";
2273
- break;
2274
- case "Protestar":
2275
- protesto = "1";
2276
- break;
2277
- case "Negativar":
2278
- protesto = "8";
2279
- break;
2280
- }
2281
- const diasProtesto = dadosBancario.diasProtesto.toString().padStart(2, "0");
2282
- total += Number(boleto.valor);
2283
- arquivo.add("756");
2284
- arquivo.add("0001");
2285
- arquivo.add("3");
2286
- arquivo.add((++sequencia).toString().padStart(5, "0"));
2287
- arquivo.add("P");
2288
- arquivo.add(" ");
2289
- arquivo.add("01");
2290
- arquivo.add(dadosBancario.agencia.padStart(5, "0"));
2291
- arquivo.add(dadosBancario.agenciaDigito);
2292
- arquivo.add(dadosBancario.conta.padStart(12, "0"));
2293
- arquivo.add(dadosBancario.contaDigito);
2294
- arquivo.add(" ");
2295
- arquivo.add(boleto.nossoNumero.padStart(10, "0"));
2296
- arquivo.add(boleto.parcela.toString().padStart(2, "0"));
2297
- arquivo.add(dadosBancario.modalidade.padStart(2, "0"));
2298
- arquivo.add("6");
2299
- arquivo.add(" ".padEnd(5, " "));
2300
- arquivo.add(dadosBancario.carteira);
2301
- arquivo.add("0 22");
2302
- arquivo.add(`${boleto.numeroDocumento}/${Number(boleto.parcela)}`.padEnd(15, " "));
2303
- arquivo.add(vencimento);
2304
- arquivo.add(Number(boleto.valor).toFixed(2).replace(".", "").padStart(15, "0"));
2305
- arquivo.add("00000");
2306
- arquivo.add(" ");
2307
- arquivo.add("02");
2308
- arquivo.add(boleto.aceite);
2309
- arquivo.add(data);
2310
- arquivo.add("1");
2311
- arquivo.add((0, import_date_fns8.format)((0, import_date_fns8.addDays)(new Date(boleto.vencimento), 1), "ddMMyyyy"));
2312
- arquivo.add(valor_juros_dia.toFixed(2).replace(".", "").padStart(15, "0"));
2313
- arquivo.add("0");
2314
- arquivo.add("00000000");
2315
- arquivo.add("000000000000000");
2316
- arquivo.add("000000000000000");
2317
- arquivo.add("000000000000000");
2318
- arquivo.add(boleto.identificacaoTitulo.padEnd(25, " "));
2319
- arquivo.add(protesto);
2320
- arquivo.add(diasProtesto);
2321
- arquivo.add("0");
2322
- arquivo.add(" ");
2323
- arquivo.add("09");
2324
- arquivo.add("0000000000");
2325
- arquivo.add(" ");
2326
- arquivo.addLine();
2327
- let tipoInscricao = "1";
2328
- if (pagador.pessoa === "F") {
2329
- tipoInscricao = "1";
2330
- } else {
2331
- tipoInscricao = "2";
2332
- }
2333
- pagador.endereco.logradouro = `${removerCaracterEspecial(pagador.endereco.logradouro).substring(0, 32).padEnd(32, " ")}${pagador.endereco.numero.padEnd(8, " ")}`;
2334
- arquivo.add("756");
2335
- arquivo.add("0001");
2336
- arquivo.add("3");
2337
- arquivo.add((++sequencia).toString().padStart(5, "0"));
2338
- arquivo.add("Q");
2339
- arquivo.add(" ");
2340
- arquivo.add("01");
2341
- arquivo.add(tipoInscricao);
2342
- arquivo.add(pagador.cpfCnpj.padStart(15, "0"));
2343
- arquivo.add(removerCaracterEspecial(pagador.nome).substring(0, 40).padEnd(40, " "));
2344
- arquivo.add(removerCaracterEspecial(pagador.endereco.logradouro).substring(0, 40).padEnd(40, " "));
2345
- arquivo.add(removerCaracterEspecial(pagador.endereco.bairro).substring(0, 15).padEnd(15, " "));
2346
- arquivo.add(pagador.endereco.cep.padEnd(8, " "));
2347
- arquivo.add(removerCaracterEspecial(pagador.endereco.municipio).substring(0, 15).padEnd(15, " "));
2348
- arquivo.add(removerCaracterEspecial(pagador.endereco.uf).padEnd(2, " "));
2349
- arquivo.add("0");
2350
- arquivo.add("000000000000000");
2351
- arquivo.add(" ".padEnd(40, " "));
2352
- arquivo.add("000");
2353
- arquivo.add(" ".padEnd(28, " "));
2354
- arquivo.addLine();
2355
- let multa = "0";
2356
- let data_multa = "00000000";
2357
- let valor_multa = "000000000000000";
2358
- dadosBancario.multaAtraso = Number(dadosBancario.multaAtraso || 0);
2359
- if (dadosBancario.multaAtraso > 0) {
2360
- multa = "2";
2361
- data_multa = (0, import_date_fns8.format)((0, import_date_fns8.addDays)(new Date(boleto.vencimento), 1), "ddMMyyyy");
2362
- valor_multa = dadosBancario.multaAtraso.toFixed(2).replace(".", "").padStart(15, "0");
2363
- }
2364
- arquivo.add("756");
2365
- arquivo.add("0001");
2366
- arquivo.add("3");
2367
- arquivo.add("");
2368
- arquivo.add((++sequencia).toString().padStart(5, "0"));
2369
- arquivo.add("R");
2370
- arquivo.add(" ");
2371
- arquivo.add("01");
2372
- arquivo.add("0");
2373
- arquivo.add("00000000");
2374
- arquivo.add("000000000000000");
2375
- arquivo.add("0");
2376
- arquivo.add("00000000");
2377
- arquivo.add("000000000000000");
2378
- arquivo.add(multa);
2379
- arquivo.add(data_multa);
2380
- arquivo.add(valor_multa);
2381
- arquivo.add(" ".padEnd(10, " "));
2382
- arquivo.add(" ".padEnd(40, " "));
2383
- arquivo.add(" ".padEnd(40, " "));
2384
- arquivo.add(" ".padEnd(20, " "));
2385
- arquivo.add("00000000");
2386
- arquivo.add("000");
2387
- arquivo.add("00000");
2388
- arquivo.add(" ");
2389
- arquivo.add("000000000000");
2390
- arquivo.add(" ");
2391
- arquivo.add("0");
2392
- arquivo.add(" ".padEnd(9, " "));
2393
- arquivo.addLine();
2394
- quantidadeRegistro++;
2395
- }
2396
- arquivo.add("756");
2397
- arquivo.add("0001");
2398
- arquivo.add("5");
2399
- arquivo.add(" ".padEnd(9, " "));
2400
- arquivo.add((sequencia + 2).toString().padStart(6, "0"));
2401
- arquivo.add(quantidadeRegistro.toString().padStart(6, "0"));
2402
- arquivo.add("00");
2403
- arquivo.add(total.toFixed(2).replace(".", "").padStart(15, "0"));
2404
- arquivo.add("000000000000000000000000000000000000000000000000000000000000000000000");
2405
- arquivo.add(" ".padEnd(125, " "));
2406
- arquivo.addLine();
2407
- arquivo.add("756");
2408
- arquivo.add("9999");
2409
- arquivo.add("9");
2410
- arquivo.add(" ".padEnd(9, " "));
2411
- arquivo.add("000001");
2412
- arquivo.add((sequencia + 4).toString().padStart(6, "0"));
2413
- arquivo.add("000000");
2414
- arquivo.add(" ".padEnd(205, " "));
2415
- return {
2416
- download: remessa2,
2417
- arquivo: arquivo.getArquivo()
2418
- };
2419
- } catch (error) {
2420
- console.log(error);
2421
- return null;
2422
- }
2423
- }
2424
-
2425
- // src/banks/sicoob/gerarPDF.ts
2426
- var import_bwip_js5 = __toESM(require("bwip-js"));
2427
- var import_string_mask2 = __toESM(require("string-mask"));
2428
- function gerarPDF4(_0) {
2429
- return __async(this, arguments, function* ({ dados }) {
2430
- try {
2431
- const { dadosPDF, generatePDF } = dados;
2432
- if (!dadosPDF.pagador.cpfcnpj) {
2433
- throw new Error("CPF/CNPJ do pagador na\u0303o informado!");
2434
- }
2435
- const codigoBarra2 = yield import_bwip_js5.default.toBuffer({
2436
- bcid: "interleaved2of5",
2437
- text: dadosPDF.boleto.codigoBarra,
2438
- height: 20
2439
- });
2440
- dadosPDF.beneficiario.dadosBancario.agencia = formatAgenciaCodigoCedente(
2441
- dadosPDF.beneficiario.dadosBancario.agencia,
2442
- dadosPDF.beneficiario.dadosBancario.codigo_cliente
2443
- );
2444
- dadosPDF.beneficiario.dadosBancario.carteira = dadosPDF.beneficiario.dadosBancario.carteira.padStart(2, "0");
2445
- dadosPDF.boleto.nossoNumero = formatNossoNumero(
2446
- dadosPDF.boleto.parcela,
2447
- dadosPDF.boleto.nossoNumero
2448
- );
2449
- dadosPDF.pagador.cpfcnpj = dadosPDF.pagador.cpfcnpj.length === 11 ? `CPF: ${maskFormat_default.retornaCpfCnpjFormatado(dadosPDF.pagador.cpfcnpj)}` : `CNPJ: ${maskFormat_default.retornaCpfCnpjFormatado(dadosPDF.pagador.cpfcnpj)}`;
2450
- dadosPDF.boleto.linhaDigitavel = maskFormat_default.codigoBarra(dadosPDF.boleto.linhaDigitavel);
2451
- dadosPDF.boleto.codigoBarra = maskFormat_default.codigoBarra(dadosPDF.boleto.codigoBarra);
2452
- dadosPDF.boleto.codigoBarraImage = codigoBarra2.toString("base64");
2453
- dadosPDF.pagador.endereco.cep = maskFormat_default.retornaCEPFormatado(
2454
- dadosPDF.pagador.endereco.cep
2455
- );
2456
- dadosPDF.boleto.valorAcrescimo = maskFormat_default.numberToReal(
2457
- dadosPDF.boleto.valorAcrescimo
2458
- );
2459
- dadosPDF.boleto.valorCobrado = maskFormat_default.numberToReal(
2460
- dadosPDF.boleto.valorCobrado
2461
- );
2462
- dadosPDF.boleto.valorDescontoAbatimento = maskFormat_default.numberToReal(
2463
- dadosPDF.boleto.valorDescontoAbatimento
2464
- );
2465
- const valorDocumento = Number(dadosPDF.boleto.valorDocumento);
2466
- dadosPDF.boleto.valorDocumento = maskFormat_default.numberToReal(
2467
- dadosPDF.boleto.valorDocumento
2468
- );
2469
- dadosPDF.boleto.valorMulta = maskFormat_default.numberToReal(dadosPDF.boleto.valorMulta);
2470
- dadosPDF.boleto.valorOutrasDeducoes = maskFormat_default.numberToReal(
2471
- dadosPDF.boleto.valorOutrasDeducoes
2472
- );
2473
- if (dadosPDF.boleto.quantidade) {
2474
- dadosPDF.boleto.quantidade = maskFormat_default.numberToReal(dadosPDF.boleto.quantidade);
2475
- }
2476
- const jurosMes = dadosPDF.beneficiario.dadosBancario.juros;
2477
- const jurosDia = jurosMes / 100 / 30 * valorDocumento;
2478
- if (jurosDia > 0) {
2479
- dadosPDF.boleto.instrucao1 = `COBRAR JUROS DE R$${maskFormat_default.numberToReal(jurosDia)} AO DIA, AP\xD3S O VENCIMENTO`;
2480
- }
2481
- const descontoVencimento = dadosPDF.beneficiario.dadosBancario.desconto || 0;
2482
- if (descontoVencimento > 0) {
2483
- dadosPDF.boleto.instrucao2 = `AT\xC9 O VENCIMENTO, CONCEDER DESCONTO DE ${descontoVencimento}%`;
2484
- }
2485
- const multaAtraso = dadosPDF.beneficiario.dadosBancario.multa || 0;
2486
- if (multaAtraso > 0) {
2487
- dadosPDF.boleto.instrucao3 = `MULTA DE ${multaAtraso}%`;
2488
- }
2489
- const protestoDias = dadosPDF.beneficiario.dadosBancario.protesto || 0;
2490
- if (protestoDias > 0) {
2491
- dadosPDF.boleto.instrucao4 = `PROTESTAR AP\xD3S ${protestoDias} DIAS CORRIDOS DO VENCIMENTO`;
2492
- }
2493
- dadosPDF.boleto.valor = maskFormat_default.numberToReal(dadosPDF.boleto.valor);
2494
- dadosPDF.pagador.isCnpj = dadosPDF.pagador.cpfcnpj.length > 14;
2495
- const content = compileHbs(getPathTemplates("sicoob-boleto.hbs"), dadosPDF);
2496
- const config = {
2497
- displayHeaderFooter: false,
2498
- path: "./boleto.pdf",
2499
- format: "a4",
2500
- printBackground: true
2501
- };
2502
- let pdfBase64 = null;
2503
- if (generatePDF) {
2504
- pdfBase64 = yield generatePDF(content, config);
2505
- } else {
2506
- if (!api.defaults.baseURL) {
2507
- throw new Error("BaseURL api not found");
2508
- }
2509
- const response = yield api.post("/", { content, config });
2510
- const buffer = Buffer.from(response.data.pdf);
2511
- pdfBase64 = yield decompress(buffer);
2512
- }
2513
- return {
2514
- erro: false,
2515
- dados: pdfBase64
2516
- };
2517
- } catch (error) {
2518
- console.log(error);
2519
- if (error instanceof Error) {
2520
- return {
2521
- erro: true,
2522
- dados: error.message
2523
- };
2524
- }
2525
- return {
2526
- erro: true,
2527
- dados: "Falha ao gerar impress\xE3o do boleto"
2528
- };
2529
- }
2530
- });
2531
- }
2532
- function formatAgenciaCodigoCedente(agencia, conta) {
2533
- agencia = agencia.slice(0, -1).padStart(4, "0");
2534
- conta = conta.padStart(7, "0");
2535
- const agenciaFmt = new import_string_mask2.default("0000.000000-0");
2536
- return agenciaFmt.apply(agencia + conta);
2537
- }
2538
- function formatNossoNumero(parcela, nossoNumero) {
2539
- parcela = String(parcela).padStart(2, "0");
2540
- nossoNumero = nossoNumero.padStart(8, "0");
2541
- return `${parcela}/${nossoNumero.slice(0, 7)}-${nossoNumero.slice(7, 8)}`;
2542
- }
2543
-
2544
- // src/banks/sicoob/gerarRetorno.ts
2545
- var import_date_fns9 = require("date-fns");
2546
- function gerarRetorno4({ dados }) {
2547
- try {
2548
- const { arquivo } = dados;
2549
- const documentos = [];
2550
- for (let i = 0; i < arquivo.length; i++) {
2551
- let linha = arquivo[i];
2552
- const banco = linha.substring(0, 3);
2553
- if (banco !== "756" /* SICOOB */) {
2554
- continue;
2555
- }
2556
- const ocorrencia = linha.substring(15, 17);
2557
- if (ocorrencia === "06" || ocorrencia === "17" || ocorrencia === "03") {
2558
- let segmento = linha.substring(13, 14);
2559
- if (segmento === "T") {
2560
- const motivo = linha.substring(213, 223).trim();
2561
- const meu_numero = linha.substring(105, 130).trimEnd();
2562
- let tipo_documento = "INDEFINIDO";
2563
- let id_documento = meu_numero;
2564
- if (meu_numero.includes("-")) {
2565
- const [tipo, id] = meu_numero.split("-");
2566
- tipo_documento = tipo;
2567
- id_documento = id;
2568
- }
2569
- const especie = tipo_documento.length ? tipo_documento : "INDEFINIDO";
2570
- linha = arquivo[++i];
2571
- segmento = linha.substring(13, 14);
2572
- if (segmento === "U") {
2573
- let dataCredito;
2574
- const dataCreditoString = linha.substring(145, 153);
2575
- if (dataCreditoString && dataCreditoString !== "00000000") {
2576
- dataCredito = (0, import_date_fns9.parse)(dataCreditoString, "ddMMyyyy", /* @__PURE__ */ new Date());
2577
- } else {
2578
- const dataOcorrenciaString = linha.substring(137, 145);
2579
- dataCredito = (0, import_date_fns9.parse)(dataOcorrenciaString, "ddMMyyyy", /* @__PURE__ */ new Date());
2580
- }
2581
- const valorAbatimentoString = linha.substring(47, 62);
2582
- const valorAbatimento = Number(valorAbatimentoString) / 100;
2583
- const valorDescontoString = linha.substring(32, 47);
2584
- const valorDesconto = Number(valorDescontoString) / 100;
2585
- const valorPagoString = linha.substring(77, 92);
2586
- const valorPago = Number(valorPagoString) / 100;
2587
- const valorJurosString = linha.substring(17, 32);
2588
- const valorJuros = Number(valorJurosString) / 100;
2589
- const valorMulta = 0;
2590
- const descontos = valorAbatimento + valorDesconto;
2591
- const valorTotal = valorPago - valorJuros + descontos;
2592
- let rejeitado = false;
2593
- let motivoRejeicao = "";
2594
- if (ocorrencia === "03") {
2595
- rejeitado = true;
2596
- motivoRejeicao = retornaMotivoRejeicao3(motivo);
2597
- }
2598
- const documento = {
2599
- id_documento,
2600
- especie,
2601
- valor: valorPago,
2602
- valor_multa: valorMulta,
2603
- valor_juros: valorJuros,
2604
- valor_desconto: valorDesconto,
2605
- valor_total: valorTotal,
2606
- data: dataCredito,
2607
- rejeitado,
2608
- motivo: motivoRejeicao
2609
- };
2610
- documentos.push(documento);
2611
- }
2612
- }
2613
- }
2614
- }
2615
- const documentoAgrupado = agruparRetorno(documentos);
2616
- return documentoAgrupado;
2617
- } catch (error) {
2618
- console.log(error);
2619
- return null;
2620
- }
2621
- }
2622
- function retornaMotivoRejeicao3(codigo) {
2623
- switch (codigo) {
2624
- case "03":
2625
- return "Tarifa de Desist\xEAncia";
2626
- case "04":
2627
- return "Tarifa de Protesto";
2628
- case "08":
2629
- return "Custas de Protesto";
2630
- case "11":
2631
- return "Forma de Cadastramento do T\xEDtulo Inv\xE1lido";
2632
- case "21":
2633
- return "Tarifa de Grava\xE7\xE3o Eletr\xF4nica = CRA";
2634
- case "28":
2635
- return "C\xF3digo do Desconto Inv\xE1lido";
2636
- case "29":
2637
- return "Valor do Desconto Maior ou Igual ao Valor do T\xEDtulo";
2638
- case "30":
2639
- return "Desconto a Conceder N\xE3o Confere";
2640
- case "31":
2641
- return "Concess\xE3o de Desconto - J\xE1 Existe Desconto Anterior";
2642
- case "39":
2643
- return "Pedido de Protesto/Negativa\xE7\xE3o N\xE3o Permitido para o T\xEDtulo";
2644
- case "40":
2645
- return "T\xEDtulo com Ordem de Protesto/Negativa\xE7\xE3o Emitida";
2646
- case "41":
2647
- return "Pedido de Cancelamento/Susta\xE7\xE3o para T\xEDtulos sem Instru\xE7\xE3o de Negativa\xE7\xE3o/Protesto";
2648
- case "58":
2649
- return "Data da Multa Inv\xE1lida";
2650
- case "79":
2651
- return "Data Juros de Mora Inv\xE1lido";
2652
- case "80":
2653
- return "Data do Desconto Inv\xE1lida";
2654
- default:
2655
- return "Motivo de rejei\xE7\xE3o n\xE3o identificado";
2656
- }
2657
- }
2658
-
2659
- // src/banks/sicoob/index.ts
2660
- var sicoob = {
2661
- gerarDadosBoleto: gerarDadosBoleto4,
2662
- gerarRemessa: gerarRemessa4,
2663
- gerarPDF: gerarPDF4,
2664
- gerarRetorno: gerarRetorno4
2665
- };
2666
-
2667
- // src/banks/banco-brasil/gerarDadosBoleto.ts
2668
- function gerarDadosBoleto5({ dados }) {
2669
- try {
2670
- const {
2671
- bancario,
2672
- parcela
2673
- } = dados;
2674
- parcela.valor = Number(parcela.valor);
2675
- const fatorVencimento = getFatorVencimento(parcela.vencimento);
2676
- const valor = getValor5(parcela.valor);
2677
- const convenio = bancario.convenio;
2678
- let nossoNumero = "";
2679
- let numeroDocumento = "";
2680
- let campoLivre = "";
2681
- if (convenio.length === 6) {
2682
- switch (parcela.tipoDocumento) {
2683
- case "NFE":
2684
- numeroDocumento = padLeft(`${parcela.id_boleto}2`, 5);
2685
- break;
2686
- case "FAT":
2687
- numeroDocumento = padLeft(`${parcela.id_boleto}4`, 5);
2688
- break;
2689
- case "FIN":
2690
- numeroDocumento = padLeft(`${parcela.id_boleto}5`, 5);
2691
- break;
2692
- }
2693
- nossoNumero = getNossoNumero3(`${convenio}${numeroDocumento}`);
2694
- campoLivre = copy(nossoNumero, 1, 11) + padLeft(bancario.agencia, 4) + padLeft(`${bancario.numero}${bancario.numero_dv}`, 8) + padLeft(bancario.carteira, 2);
2695
- } else if (convenio.length === 7) {
2696
- switch (parcela.tipoDocumento) {
2697
- case "NFE":
2698
- numeroDocumento = padLeft(`${parcela.id_boleto}2`, 10);
2699
- break;
2700
- case "FAT":
2701
- numeroDocumento = padLeft(`${parcela.id_boleto}4`, 10);
2702
- break;
2703
- case "FIN":
2704
- numeroDocumento = padLeft(`${parcela.id_boleto}5`, 10);
2705
- break;
2706
- }
2707
- nossoNumero = `${convenio}${numeroDocumento}`;
2708
- campoLivre = `000000${nossoNumero}${padLeft(bancario.carteira, 2)}`;
2709
- }
2710
- const digitoGeral = getDigitoGeral5(`0019${fatorVencimento}${valor}${campoLivre}`);
2711
- const codigoBarra2 = `0019${digitoGeral}${fatorVencimento}${valor}${campoLivre}`;
2712
- const campo1 = copy(codigoBarra2, 1, 3) + copy(codigoBarra2, 4, 4) + copy(codigoBarra2, 20, 24);
2713
- const campo2 = copy(codigoBarra2, 25, 34);
2714
- const campo3 = copy(codigoBarra2, 35, 44);
2715
- const campo4 = copy(codigoBarra2, 5, 5);
2716
- const campo5 = copy(codigoBarra2, 6, 9) + copy(codigoBarra2, 10, 19);
2717
- const digito1 = getDigito5(campo1);
2718
- const digito2 = getDigito5(campo2);
2719
- const digito3 = getDigito5(campo3);
2720
- const linhaDigitavel = campo1 + digito1 + campo2 + digito2 + campo3 + digito3 + campo4 + campo5;
2721
- const dadosBoleto = {
2722
- linhaDigitavel,
2723
- fatorVencimento,
2724
- valor,
2725
- convenio,
2726
- nossoNumero,
2727
- campoLivre,
2728
- digitoGeral,
2729
- codigoBarra: codigoBarra2,
2730
- numeroDocumento
2731
- };
2732
- return dadosBoleto;
2733
- } catch (error) {
2734
- console.log("Falha ao gerar dados do boleto", error);
2735
- return null;
2736
- }
2737
- }
2738
- function getValor5(valor) {
2739
- const valorFormatado = valor.toFixed(2).replace(/\D/g, "");
2740
- return padLeft(valorFormatado, 10);
2741
- }
2742
- function getNossoNumero3(auxiliar) {
2743
- let i = 11, j = 10, soma = 0;
2744
- while (i >= 1) {
2745
- j--;
2746
- if (j === 1)
2747
- j = 9;
2748
- const numero = Number(copy(auxiliar, i, i));
2749
- soma += j * numero;
2750
- i--;
2751
- }
2752
- const resto = soma % 11;
2753
- const digito = resto < 10 ? String(resto) : "X";
2754
- const nosso_numero = auxiliar + digito;
2755
- return nosso_numero;
2756
- }
2757
- function getDigitoGeral5(texto) {
2758
- let i = 43;
2759
- let j = 1;
2760
- let soma = 0;
2761
- while (i >= 1) {
2762
- j++;
2763
- if (j === 10)
2764
- j = 2;
2765
- const valor = Number(copy(texto, i, i));
2766
- soma += j * valor;
2767
- i--;
2768
- }
2769
- const resto = soma % 11;
2770
- let digito = 11 - resto;
2771
- if (digito === 0 || digito > 9)
2772
- digito = 1;
2773
- return String(digito);
2774
- }
2775
- function getDigito5(texto) {
2776
- let i = texto.length;
2777
- let j = 1;
2778
- let total = 0;
2779
- let soma = 0;
2780
- let digito = 0;
2781
- while (i >= 1) {
2782
- j = j === 1 ? 2 : 1;
2783
- let valor = Number(copy(texto, i, i));
2784
- total = valor * j;
2785
- if (total >= 10) {
2786
- valor = Number(copy(total, 1, 1)) + Number(copy(total, 2, 2));
2787
- } else {
2788
- valor = total;
2789
- }
2790
- soma += valor;
2791
- i--;
2792
- }
2793
- const uni = Number(copy(soma, String(soma).length, String(soma).length));
2794
- digito = 10 - uni;
2795
- if (digito === 10)
2796
- digito = 0;
2797
- return String(digito);
2798
- }
2799
-
2800
- // src/banks/banco-brasil/gerarPDF.ts
2801
- var import_bwip_js6 = __toESM(require("bwip-js"));
2802
- function gerarPDF5(_0) {
2803
- return __async(this, arguments, function* ({ dados }) {
2804
- try {
2805
- const { dadosPDF } = dados;
2806
- if (!dadosPDF.pagador.cpfcnpj) {
2807
- throw new Error("CPF/CNPJ do pagador na\u0303o informado!");
2808
- }
2809
- const codigoBarra2 = yield import_bwip_js6.default.toBuffer({
2810
- bcid: "interleaved2of5",
2811
- text: dadosPDF.boleto.codigoBarra,
2812
- height: 20
2813
- });
2814
- dadosPDF.beneficiario.dadosBancario.agencia = dadosPDF.beneficiario.dadosBancario.agencia.padStart(4, "0");
2815
- dadosPDF.beneficiario.dadosBancario.conta = dadosPDF.beneficiario.dadosBancario.conta.padStart(7, "0");
2816
- dadosPDF.boleto.linhaDigitavel = maskFormat_default.codigoBarra(dadosPDF.boleto.linhaDigitavel);
2817
- dadosPDF.boleto.codigoBarraImage = codigoBarra2.toString("base64");
2818
- dadosPDF.beneficiario.cnpj = maskFormat_default.retornaCpfCnpjFormatado(
2819
- dadosPDF.beneficiario.cnpj
2820
- );
2821
- dadosPDF.beneficiario.endereco.cep = maskFormat_default.retornaCEPFormatado(
2822
- dadosPDF.beneficiario.endereco.cep
2823
- );
2824
- dadosPDF.pagador.endereco.cep = maskFormat_default.retornaCEPFormatado(
2825
- dadosPDF.pagador.endereco.cep
2826
- );
2827
- dadosPDF.pagador.cpfcnpj = maskFormat_default.retornaCpfCnpjFormatado(dadosPDF.pagador.cpfcnpj);
2828
- dadosPDF.boleto.valorAcrescimo = maskFormat_default.numberToReal(
2829
- dadosPDF.boleto.valorAcrescimo
2830
- );
2831
- dadosPDF.boleto.valorCobrado = maskFormat_default.numberToReal(
2832
- dadosPDF.boleto.valorCobrado
2833
- );
2834
- dadosPDF.boleto.valorDescontoAbatimento = maskFormat_default.numberToReal(
2835
- dadosPDF.boleto.valorDescontoAbatimento
2836
- );
2837
- const valorDocumento = Number(dadosPDF.boleto.valorDocumento);
2838
- dadosPDF.boleto.valorDocumento = maskFormat_default.numberToReal(
2839
- dadosPDF.boleto.valorDocumento
2840
- );
2841
- dadosPDF.boleto.valorMulta = maskFormat_default.numberToReal(dadosPDF.boleto.valorMulta);
2842
- dadosPDF.boleto.valorOutrasDeducoes = maskFormat_default.numberToReal(
2843
- dadosPDF.boleto.valorOutrasDeducoes
2844
- );
2845
- if (dadosPDF.boleto.quantidade) {
2846
- dadosPDF.boleto.quantidade = maskFormat_default.numberToReal(dadosPDF.boleto.quantidade);
2847
- }
2848
- const jurosMes = dadosPDF.beneficiario.dadosBancario.juros;
2849
- const jurosDia = jurosMes / 100 / 30 * valorDocumento;
2850
- if (jurosDia > 0) {
2851
- dadosPDF.boleto.instrucao1 = `COBRAR JUROS DE R$${jurosDia} AO DIA, AP\xD3S O VENCIMENTO`;
2852
- }
2853
- const descontoVencimento = dadosPDF.boleto.desconto > 0 ? dadosPDF.boleto.desconto : dadosPDF.beneficiario.dadosBancario.desconto > 0 ? dadosPDF.beneficiario.dadosBancario.desconto : 0;
2854
- if (descontoVencimento > 0) {
2855
- dadosPDF.boleto.instrucao2 = `AT\xC9 O VENCIMENTO, CONCEDER DESCONTO DE ${descontoVencimento}%`;
2856
- }
2857
- const multaAtraso = dadosPDF.beneficiario.dadosBancario.multa || 0;
2858
- if (multaAtraso > 0) {
2859
- dadosPDF.boleto.instrucao3 = `MULTA DE ${multaAtraso}%`;
2860
- }
2861
- const protestoDias = dadosPDF.beneficiario.dadosBancario.protesto || 0;
2862
- if (protestoDias > 0) {
2863
- dadosPDF.boleto.instrucao4 = `PROTESTAR AP\xD3S ${protestoDias} DIAS CORRIDOS DO VENCIMENTO`;
2864
- }
2865
- dadosPDF.boleto.valor = maskFormat_default.numberToReal(dadosPDF.boleto.valor);
2866
- dadosPDF.pagador.isCnpj = dadosPDF.pagador.cpfcnpj.length > 14;
2867
- const content = compileHbs(getPathTemplates("banco-brasil-boleto.hbs"), dadosPDF);
2868
- const config = {
2869
- displayHeaderFooter: false,
2870
- path: "./boleto.pdf",
2871
- format: "a4",
2872
- printBackground: true
2873
- };
2874
- let pdfBase64 = null;
2875
- if (!api.defaults.baseURL) {
2876
- throw new Error("BaseURL api not found");
2877
- }
2878
- const response = yield api.post("/", { content, config });
2879
- const buffer = Buffer.from(response.data.pdf);
2880
- pdfBase64 = yield decompress(buffer);
2881
- return {
2882
- erro: false,
2883
- dados: pdfBase64
2884
- };
2885
- } catch (error) {
2886
- console.log(error);
2887
- if (error instanceof Error) {
2888
- return {
2889
- erro: true,
2890
- dados: error.message
2891
- };
2892
- }
2893
- return {
2894
- erro: true,
2895
- dados: "Falha ao gerar impress\xE3o do boleto"
2896
- };
2897
- }
2898
- });
2899
- }
2900
-
2901
- // src/banks/banco-brasil/gerarRemessa.ts
2902
- var import_date_fns10 = require("date-fns");
2903
- function gerarRemessa5({ dados }) {
2904
- try {
2905
- const {
2906
- dadosBancario,
2907
- beneficiario,
2908
- boletos
2909
- } = dados.remessa;
2910
- const arquivo = new Arquivo();
2911
- const dataAtual = /* @__PURE__ */ new Date();
2912
- const data = (0, import_date_fns10.format)(dataAtual, "ddMMyyyy");
2913
- const hora = (0, import_date_fns10.format)(dataAtual, "HHmmss");
2914
- const remessa2 = `REM${dadosBancario.numeroRemessa.padStart(5, "0")}.CNAB`;
2915
- arquivo.add("001");
2916
- arquivo.add("0000");
2917
- arquivo.add("0");
2918
- arquivo.add(" ".padEnd(9, " "));
2919
- arquivo.add("2");
2920
- arquivo.add(beneficiario.cnpj.padStart(14, "0"));
2921
- arquivo.add(dadosBancario.convenio.padStart(9, "0"));
2922
- arquivo.add("0014");
2923
- arquivo.add(dadosBancario.carteira.padStart(2, "0"));
2924
- arquivo.add(dadosBancario.variacao_carteira.padStart(3, "0"));
2925
- arquivo.add(" ");
2926
- arquivo.add("0");
2927
- arquivo.add(`${dadosBancario.agencia}${dadosBancario.agenciaDigito}`.padStart(5, "0"));
2928
- arquivo.add("00000");
2929
- arquivo.add(`${dadosBancario.conta}${dadosBancario.contaDigito}`.padStart(8, "0"));
2930
- arquivo.add(" ");
2931
- arquivo.add(removerCaracterEspecial(beneficiario.nome).substring(0, 30).padEnd(30, " "));
2932
- arquivo.add("BANCO DO BRASIL S.A.".padEnd(30, " "));
2933
- arquivo.add(" ".padEnd(10, " "));
2934
- arquivo.add("1");
2935
- arquivo.add(data);
2936
- arquivo.add(hora);
2937
- arquivo.add(dadosBancario.numeroRemessa.padStart(6, "0"));
2938
- arquivo.add("030");
2939
- arquivo.add("00000");
2940
- arquivo.add(" ".padEnd(40, " "));
2941
- arquivo.add(" ".padEnd(11, " "));
2942
- arquivo.add("CSP");
2943
- arquivo.add("000");
2944
- arquivo.add(" ".padEnd(12, " "));
2945
- arquivo.addLine();
2946
- arquivo.add("001");
2947
- arquivo.add("0001");
2948
- arquivo.add("1");
2949
- arquivo.add("R");
2950
- arquivo.add("01");
2951
- arquivo.add(" ");
2952
- arquivo.add("020");
2953
- arquivo.add(" ");
2954
- arquivo.add("2");
2955
- arquivo.add(beneficiario.cnpj.padStart(15, "0"));
2956
- arquivo.add(dadosBancario.convenio.padStart(9, "0"));
2957
- arquivo.add("0014");
2958
- arquivo.add(dadosBancario.carteira.padStart(2, "0"));
2959
- arquivo.add(dadosBancario.variacao_carteira.padStart(3, "0"));
2960
- arquivo.add(" ");
2961
- arquivo.add("0");
2962
- arquivo.add(`${dadosBancario.agencia}${dadosBancario.agenciaDigito}`.padStart(5, "0"));
2963
- arquivo.add("00000");
2964
- arquivo.add(`${dadosBancario.conta}${dadosBancario.contaDigito}`.padStart(8, "0"));
2965
- arquivo.add(" ");
2966
- arquivo.add(removerCaracterEspecial(beneficiario.nome).substring(0, 30).padEnd(30, " "));
2967
- arquivo.add(" ".padEnd(80, " "));
2968
- arquivo.add(dadosBancario.numeroRemessa.padStart(8, "0"));
2969
- arquivo.add(data);
2970
- arquivo.add("00000000");
2971
- arquivo.add(" ".padEnd(33, " "));
2972
- arquivo.addLine();
2973
- let sequencia = 0;
2974
- let quantidadeRegistro = 0;
2975
- let total = 0;
2976
- for (const boleto of boletos) {
2977
- const convenio = dadosBancario.convenio;
2978
- let nosso_numero = "";
2979
- if (convenio.length === 6) {
2980
- switch (boleto.tipoDocumento) {
2981
- case "NFE": {
2982
- nosso_numero = getNossoNumero3(`${convenio}${boleto.id_boleto}2`);
2983
- break;
2984
- }
2985
- case "FAT": {
2986
- nosso_numero = getNossoNumero3(`${convenio}${boleto.id_boleto}4`);
2987
- break;
2988
- }
2989
- case "FIN": {
2990
- nosso_numero = getNossoNumero3(`${convenio}${boleto.id_boleto}5`);
2991
- break;
2992
- }
2993
- }
2994
- } else if (convenio.length === 7) {
2995
- switch (boleto.tipoDocumento) {
2996
- case "NFE": {
2997
- nosso_numero = `${convenio}${(boleto.id_boleto.toString() + "2").padStart(10, "0")}`;
2998
- break;
2999
- }
3000
- case "FAT": {
3001
- nosso_numero = `${convenio}${(boleto.id_boleto.toString() + "4").padStart(10, "0")}`;
3002
- break;
3003
- }
3004
- case "FIN": {
3005
- nosso_numero = `${convenio}${(boleto.id_boleto.toString() + "5").padStart(10, "0")}`;
3006
- break;
3007
- }
3008
- }
3009
- }
3010
- const valorJurosDia = dadosBancario.jurosMes > 0 ? Number(boleto.valor) * dadosBancario.jurosMes / 100 / 30 : 0;
3011
- const { pagador } = boleto;
3012
- const tipoInscricao = pagador.pessoa === "F" ? "1" : "2";
3013
- const vencimento = (0, import_date_fns10.format)(new Date(boleto.vencimento), "ddMMyyyy");
3014
- total += Number(boleto.valor);
3015
- const codigoDesconto = dadosBancario.descontoPagamento > 0 ? "2" : "0";
3016
- const desconto = boleto.desconto > 0 ? boleto.desconto.toFixed(2) : dadosBancario.descontoPagamento > 0 ? dadosBancario.descontoPagamento.toFixed(2) : "000000000000000";
3017
- let protesto = "3";
3018
- let diasProtesto = "00";
3019
- let baixarDevolver = "1";
3020
- let diasBaixa = "000";
3021
- switch (dadosBancario.tipo_protesto) {
3022
- case "Nenhum":
3023
- protesto = "3";
3024
- diasProtesto = "00";
3025
- baixarDevolver = "1";
3026
- diasBaixa = "000";
3027
- break;
3028
- case "Protestar":
3029
- protesto = "1";
3030
- diasProtesto = dadosBancario.diasProtesto.toString().padStart(2, "0");
3031
- baixarDevolver = "2";
3032
- diasBaixa = "060";
3033
- break;
3034
- case "Negativar":
3035
- protesto = "8";
3036
- diasProtesto = dadosBancario.diasProtesto.toString().padStart(2, "0");
3037
- baixarDevolver = "1";
3038
- diasBaixa = "000";
3039
- break;
3040
- default:
3041
- protesto = "3";
3042
- diasProtesto = "00";
3043
- baixarDevolver = "1";
3044
- diasBaixa = "000";
3045
- break;
3046
- }
3047
- arquivo.add("001");
3048
- arquivo.add("0001");
3049
- arquivo.add("3");
3050
- arquivo.add((++sequencia).toString().padStart(5, "0"));
3051
- arquivo.add("P");
3052
- arquivo.add(" ");
3053
- arquivo.add("01");
3054
- arquivo.add("0");
3055
- arquivo.add(`${dadosBancario.agencia}${dadosBancario.agenciaDigito}`.padStart(5, "0"));
3056
- arquivo.add("00000");
3057
- arquivo.add(`${dadosBancario.conta}${dadosBancario.contaDigito}`.padStart(8, "0"));
3058
- arquivo.add(" ");
3059
- arquivo.add(nosso_numero.padEnd(20, " "));
3060
- arquivo.add("7");
3061
- arquivo.add("1122");
3062
- arquivo.add(`${boleto.numeroDocumento.padStart(6, "0")}-${boleto.parcela.toString().padStart(2, "0")}`.padEnd(15, " "));
3063
- arquivo.add(vencimento);
3064
- arquivo.add(
3065
- Number(boleto.valor).toFixed(2).replace(".", "").padStart(15, "0")
3066
- );
3067
- arquivo.add("00000 ");
3068
- arquivo.add("02");
3069
- arquivo.add(boleto.aceite);
3070
- arquivo.add(data);
3071
- arquivo.add("1");
3072
- arquivo.add("00000000");
3073
- arquivo.add(valorJurosDia.toFixed(2).replace(".", "").padStart(15, "0"));
3074
- arquivo.add(codigoDesconto);
3075
- arquivo.add(codigoDesconto == "2" ? vencimento : "00000000");
3076
- arquivo.add(desconto.replace(".", "").padStart(15, "0"));
3077
- arquivo.add("000000000000000");
3078
- arquivo.add("000000000000000");
3079
- arquivo.add(boleto.identificacaoTitulo.padEnd(25, " "));
3080
- arquivo.add(protesto);
3081
- arquivo.add(diasProtesto);
3082
- arquivo.add(baixarDevolver);
3083
- arquivo.add(diasBaixa);
3084
- arquivo.add("09");
3085
- arquivo.add("0000000000");
3086
- arquivo.add(" ");
3087
- arquivo.addLine();
3088
- pagador.endereco.logradouro = `${removerCaracterEspecial(pagador.endereco.logradouro).substring(0, 32).padEnd(32, " ")}${pagador.endereco.numero.padEnd(8, " ")}`;
3089
- arquivo.add("001");
3090
- arquivo.add("0001");
3091
- arquivo.add("3");
3092
- arquivo.add((++sequencia).toString().padStart(5, "0"));
3093
- arquivo.add("Q");
3094
- arquivo.add(" ");
3095
- arquivo.add("01");
3096
- arquivo.add(tipoInscricao);
3097
- arquivo.add(pagador.cpfCnpj.padStart(15, "0"));
3098
- arquivo.add(removerCaracterEspecial(pagador.nome).substring(0, 40).padEnd(40, " "));
3099
- arquivo.add(removerCaracterEspecial(pagador.endereco.logradouro).substring(0, 40).padEnd(40, " "));
3100
- arquivo.add(removerCaracterEspecial(pagador.endereco.bairro).substring(0, 15).padEnd(15, " "));
3101
- arquivo.add(pagador.endereco.cep);
3102
- arquivo.add(removerCaracterEspecial(pagador.endereco.municipio).substring(0, 15).padEnd(15, " "));
3103
- arquivo.add(removerCaracterEspecial(pagador.endereco.uf).padEnd(2, " "));
3104
- arquivo.add("0");
3105
- arquivo.add("000000000000000");
3106
- arquivo.add(" ".padEnd(40, " "));
3107
- arquivo.add("000");
3108
- arquivo.add(" ".padEnd(28, " "));
3109
- arquivo.addLine();
3110
- dadosBancario.multaAtraso = Number(dadosBancario.multaAtraso || 0);
3111
- if (dadosBancario.multaAtraso > 0) {
3112
- const multa = dadosBancario.multaAtraso.toFixed(2);
3113
- arquivo.add("001");
3114
- arquivo.add("0001");
3115
- arquivo.add("3");
3116
- arquivo.add((++sequencia).toString().padStart(5, "0"));
3117
- arquivo.add("R");
3118
- arquivo.add(" ");
3119
- arquivo.add("01");
3120
- arquivo.add("0");
3121
- arquivo.add("00000000");
3122
- arquivo.add("000000000000000");
3123
- arquivo.add("0");
3124
- arquivo.add("00000000");
3125
- arquivo.add("000000000000000");
3126
- arquivo.add("2");
3127
- arquivo.add(vencimento);
3128
- arquivo.add(multa.replace(".", "").padStart(15, "0"));
3129
- arquivo.add(" ".padEnd(10, " "));
3130
- arquivo.add(" ".padEnd(40, " "));
3131
- arquivo.add(" ".padEnd(40, " "));
3132
- arquivo.add(" ".padEnd(20, " "));
3133
- arquivo.add("00000000");
3134
- arquivo.add("000");
3135
- arquivo.add("00000");
3136
- arquivo.add(" ");
3137
- arquivo.add("000000000000");
3138
- arquivo.add(" ");
3139
- arquivo.add("0");
3140
- arquivo.add(" ".padEnd(9, " "));
3141
- arquivo.addLine();
3142
- }
3143
- quantidadeRegistro++;
3144
- }
3145
- arquivo.add("001");
3146
- arquivo.add("0001");
3147
- arquivo.add("5");
3148
- arquivo.add(" ".padEnd(9, " "));
3149
- arquivo.add((sequencia + 2).toString().padStart(6, "0"));
3150
- arquivo.add("000000");
3151
- arquivo.add("00");
3152
- arquivo.add("000000000000000");
3153
- arquivo.add("000000000000000000000000000000000000000000000000000000000000000000000");
3154
- arquivo.add(" ".padEnd(125, " "));
3155
- arquivo.addLine();
3156
- arquivo.add("001");
3157
- arquivo.add("9999");
3158
- arquivo.add("9");
3159
- arquivo.add(" ".padEnd(9, " "));
3160
- arquivo.add("000001");
3161
- arquivo.add((sequencia + 4).toString().padStart(6, "0"));
3162
- arquivo.add("000000");
3163
- arquivo.add(" ".padEnd(205, " "));
3164
- arquivo.addLine();
3165
- return {
3166
- download: remessa2,
3167
- arquivo: arquivo.getArquivo()
3168
- };
3169
- } catch (error) {
3170
- console.log(error);
3171
- return null;
3172
- }
3173
- }
3174
-
3175
- // src/banks/banco-brasil/gerarRetorno.ts
3176
- var import_date_fns11 = require("date-fns");
3177
- function gerarRetorno5({ dados }) {
3178
- try {
3179
- const { arquivo } = dados;
3180
- const documentos = [];
3181
- for (let i = 0; i < arquivo.length; i++) {
3182
- let linha = arquivo[i];
3183
- const banco = linha.substring(0, 3);
3184
- if (banco !== "001" /* BANCO_BRASIL */) {
3185
- continue;
3186
- }
3187
- const ocorrencia = linha.substring(15, 17);
3188
- if (ocorrencia === "06" || ocorrencia === "17" || ocorrencia === "03") {
3189
- let segmento = linha.substring(13, 14);
3190
- if (segmento === "T") {
3191
- const motivo = linha.substring(213, 223).trim();
3192
- const meu_numero = linha.substring(105, 130).trimEnd();
3193
- let tipo_documento = "INDEFINIDO";
3194
- let id_documento = meu_numero;
3195
- if (meu_numero.includes("-")) {
3196
- const [tipo, id] = meu_numero.split("-");
3197
- tipo_documento = tipo;
3198
- id_documento = id;
3199
- }
3200
- const especie = tipo_documento.length ? tipo_documento : "INDEFINIDO";
3201
- linha = arquivo[++i];
3202
- segmento = linha.substring(13, 14);
3203
- if (segmento === "U") {
3204
- let dataCredito;
3205
- const dataCreditoString = linha.substring(145, 153);
3206
- if (dataCreditoString && dataCreditoString !== "00000000") {
3207
- dataCredito = (0, import_date_fns11.parse)(dataCreditoString, "ddMMyyyy", /* @__PURE__ */ new Date());
3208
- } else {
3209
- const dataOcorrenciaString = linha.substring(137, 145);
3210
- dataCredito = (0, import_date_fns11.parse)(dataOcorrenciaString, "ddMMyyyy", /* @__PURE__ */ new Date());
3211
- }
3212
- const valorAbatimentoString = linha.substring(47, 62);
3213
- const valorAbatimento = Number(valorAbatimentoString) / 100;
3214
- const valorDescontoString = linha.substring(32, 47);
3215
- const valorDesconto = Number(valorDescontoString) / 100;
3216
- const valorPagoString = linha.substring(77, 92);
3217
- const valorPago = Number(valorPagoString) / 100;
3218
- const valorJurosString = linha.substring(17, 32);
3219
- const valorJuros = Number(valorJurosString) / 100;
3220
- const valorMulta = 0;
3221
- const descontos = valorAbatimento + valorDesconto;
3222
- const valorTotal = valorPago - valorJuros + descontos;
3223
- let rejeitado = false;
3224
- let motivoRejeicao = "";
3225
- if (ocorrencia === "03") {
3226
- rejeitado = true;
3227
- motivoRejeicao = retornaMotivoRejeicao4(motivo);
3228
- }
3229
- const documento = {
3230
- id_documento,
3231
- especie,
3232
- valor: valorPago,
3233
- valor_multa: valorMulta,
3234
- valor_juros: valorJuros,
3235
- valor_desconto: valorDesconto,
3236
- valor_total: valorTotal,
3237
- data: dataCredito,
3238
- rejeitado,
3239
- motivo: motivoRejeicao
3240
- };
3241
- documentos.push(documento);
3242
- }
3243
- }
3244
- }
3245
- }
3246
- const documentoAgrupado = agruparRetorno(documentos);
3247
- console.log(documentoAgrupado);
3248
- return documentoAgrupado;
3249
- } catch (error) {
3250
- console.log(error);
3251
- return null;
3252
- }
3253
- }
3254
- function retornaMotivoRejeicao4(codigo) {
3255
- switch (codigo) {
3256
- case "01":
3257
- return "C\xF3digo do Banco Inv\xE1lido";
3258
- case "02":
3259
- return "C\xF3digo do Registro Detalhe Inv\xE1lido";
3260
- case "03":
3261
- return "C\xF3digo do Segmento Inv\xE1lido";
3262
- case "04":
3263
- return "C\xF3digo de Movimento N\xE3o Permitido para Carteira";
3264
- case "05":
3265
- return "C\xF3digo de Movimento Inv\xE1lido";
3266
- case "06":
3267
- return "Tipo/N\xFAmero de Inscri\xE7\xE3o do Benefici\xE1rio Inv\xE1lidos";
3268
- case "07":
3269
- return "Ag\xEAncia/Conta/DV Inv\xE1lido";
3270
- case "08":
3271
- return "Nosso N\xFAmero Inv\xE1lido";
3272
- case "09":
3273
- return "Nosso N\xFAmero Duplicado";
3274
- case "10":
3275
- return "Carteira Inv\xE1lida";
3276
- case "11":
3277
- return "Forma de Cadastramento do T\xEDtulo Inv\xE1lido";
3278
- case "12":
3279
- return "Tipo de Documento Inv\xE1lido";
3280
- case "13":
3281
- return "Identifica\xE7\xE3o da Emiss\xE3o do Boleto de Pagamento Inv\xE1lida";
3282
- case "14":
3283
- return "Identifica\xE7\xE3o da Distribui\xE7\xE3o do Boleto de Pagamento Inv\xE1lida";
3284
- case "15":
3285
- return "Caracter\xEDsticas da Cobran\xE7a Incompat\xEDveis";
3286
- case "16":
3287
- return "Data de Vencimento Inv\xE1lida";
3288
- case "17":
3289
- return "Data de Vencimento Anterior a Data de Emiss\xE3o";
3290
- case "18":
3291
- return "Vencimento Fora do Prazo de Opera\xE7\xE3o";
3292
- case "19":
3293
- return "T\xEDtulo a Cargo de Bancos Correspondentes com Vencimento Inferior a XX Dias";
3294
- case "20":
3295
- return "Valor do T\xEDtulo Inv\xE1lido";
3296
- case "21":
3297
- return "Esp\xE9cie do T\xEDtulo Inv\xE1lida";
3298
- case "22":
3299
- return "Esp\xE9cie do T\xEDtulo N\xE3o Permitida para a Carteira";
3300
- case "23":
3301
- return "Aceite Inv\xE1lido";
3302
- case "24":
3303
- return "Data da Emiss\xE3o Inv\xE1lida";
3304
- case "25":
3305
- return "Data da Emiss\xE3o Posterior a Data de Entrada";
3306
- case "26":
3307
- return "C\xF3digo de Juros de Mora Inv\xE1lido";
3308
- case "27":
3309
- return "Valor/Taxa de Juros de Mora Inv\xE1lido";
3310
- case "28":
3311
- return "C\xF3digo do Desconto Inv\xE1lido";
3312
- case "29":
3313
- return "Valor do Desconto Maior ou Igual ao Valor do T\xEDtulo";
3314
- case "30":
3315
- return "Desconto a Conceder N\xE3o Confere";
3316
- case "31":
3317
- return "Concess\xE3o de Desconto - J\xE1 Existe Desconto Anterior";
3318
- case "32":
3319
- return "Valor do IOF Inv\xE1lido";
3320
- case "33":
3321
- return "Valor do Abatimento Inv\xE1lido";
3322
- case "34":
3323
- return "Valor do Abatimento Maior ou Igual ao Valor do T\xEDtulo";
3324
- case "35":
3325
- return "Valor a Conceder N\xE3o Confere";
3326
- case "36":
3327
- return "Concess\xE3o de Abatimento - J\xE1 Existe Abatimento Anterior";
3328
- case "37":
3329
- return "C\xF3digo para Protesto Inv\xE1lido";
3330
- case "38":
3331
- return "Prazo para Protesto Inv\xE1lido";
3332
- case "39":
3333
- return "Pedido de Protesto N\xE3o Permitido para o T\xEDtulo";
3334
- case "40":
3335
- return "T\xEDtulo com Ordem de Protesto Emitida";
3336
- case "41":
3337
- return "Pedido de Cancelamento/Susta\xE7\xE3o para T\xEDtulos sem Instru\xE7\xE3o de Protesto";
3338
- case "42":
3339
- return "C\xF3digo para Baixa/Devolu\xE7\xE3o Inv\xE1lido";
3340
- case "43":
3341
- return "Prazo para Baixa/Devolu\xE7\xE3o Inv\xE1lido";
3342
- case "44":
3343
- return "C\xF3digo da Moeda Inv\xE1lido";
3344
- case "45":
3345
- return "Nome do Pagador N\xE3o Informado";
3346
- case "46":
3347
- return "Tipo/N\xFAmero de Inscri\xE7\xE3o do Pagador Inv\xE1lidos";
3348
- case "47":
3349
- return "Endere\xE7o do Pagador N\xE3o Informado";
3350
- case "48":
3351
- return "CEP Inv\xE1lido";
3352
- case "49":
3353
- return "CEP Sem Pra\xE7a de Cobran\xE7a (N\xE3o Localizado)";
3354
- case "50":
3355
- return "CEP Referente a um Banco Correspondente";
3356
- case "51":
3357
- return "CEP incompat\xEDvel com a Unidade da Federa\xE7\xE3o";
3358
- case "52":
3359
- return "Unidade da Federa\xE7\xE3o Inv\xE1lida";
3360
- case "53":
3361
- return "Tipo/N\xFAmero de Inscri\xE7\xE3o do Sacador/Avalista Inv\xE1lidos";
3362
- case "54":
3363
- return "Sacador/Avalista N\xE3o Informado";
3364
- case "55":
3365
- return "Nosso n\xFAmero no Banco Correspondente N\xE3o Informado";
3366
- case "56":
3367
- return "C\xF3digo do Banco Correspondente N\xE3o Informado";
3368
- case "57":
3369
- return "C\xF3digo da Multa Inv\xE1lido";
3370
- case "58":
3371
- return "Data da Multa Inv\xE1lida";
3372
- case "59":
3373
- return "Valor/Percentual da Multa Inv\xE1lido";
3374
- case "60":
3375
- return "Movimento para T\xEDtulo N\xE3o Cadastrado";
3376
- case "61":
3377
- return "Altera\xE7\xE3o da Ag\xEAncia Cobradora/DV Inv\xE1lida";
3378
- case "62":
3379
- return "Tipo de Impress\xE3o Inv\xE1lido";
3380
- case "63":
3381
- return "Entrada para T\xEDtulo j\xE1 Cadastrado";
3382
- case "64":
3383
- return "N\xFAmero da Linha Inv\xE1lido";
3384
- case "65":
3385
- return "C\xF3digo do Banco para D\xE9bito Inv\xE1lido";
3386
- case "66":
3387
- return "Ag\xEAncia/Conta/DV para D\xE9bito Inv\xE1lido";
3388
- case "67":
3389
- return "Dados para D\xE9bito incompat\xEDvel com a Identifica\xE7\xE3o da Emiss\xE3o do Boleto de Pagamento";
3390
- case "68":
3391
- return "D\xE9bito Autom\xE1tico Agendado";
3392
- case "69":
3393
- return "D\xE9bito N\xE3o Agendado - Erro nos Dados da Remessa";
3394
- case "70":
3395
- return "D\xE9bito N\xE3o Agendado - Pagador N\xE3o Consta do Cadastro de Autorizante";
3396
- case "71":
3397
- return "D\xE9bito N\xE3o Agendado - Benefici\xE1rio N\xE3o Autorizado pelo Pagador";
3398
- case "72":
3399
- return "D\xE9bito N\xE3o Agendado - Benefici\xE1rio N\xE3o Participa da Modalidade D\xE9bito Autom\xE1tico";
3400
- case "73":
3401
- return "D\xE9bito N\xE3o Agendado - C\xF3digo de Moeda Diferente de Real (R$)";
3402
- case "74":
3403
- return "D\xE9bito N\xE3o Agendado - Data Vencimento Inv\xE1lida";
3404
- case "75":
3405
- return "D\xE9bito N\xE3o Agendado, Conforme seu Pedido, T\xEDtulo N\xE3o Registrado";
3406
- case "76":
3407
- return "D\xE9bito N\xE3o Agendado, Tipo/Num. Inscri\xE7\xE3o do Debitado, Inv\xE1lido";
3408
- case "77":
3409
- return "Transfer\xEAncia para Desconto N\xE3o Permitida para a Carteira do T\xEDtulo";
3410
- case "78":
3411
- return "Data Inferior ou Igual ao Vencimento para D\xE9bito Autom\xE1tico";
3412
- case "79":
3413
- return "Data Juros de Mora Inv\xE1lido";
3414
- case "80":
3415
- return "Data do Desconto Inv\xE1lida";
3416
- case "81":
3417
- return "Tentativas de D\xE9bito Esgotadas - Baixado";
3418
- case "82":
3419
- return "Tentativas de D\xE9bito Esgotadas - Pendente";
3420
- case "83":
3421
- return "Limite Excedido";
3422
- case "84":
3423
- return "N\xFAmero Autoriza\xE7\xE3o Inexistente";
3424
- case "85":
3425
- return "T\xEDtulo com Pagamento Vinculado";
3426
- case "86":
3427
- return "Seu N\xFAmero Inv\xE1lido";
3428
- case "87":
3429
- return "e-mail/SMS enviado";
3430
- case "88":
3431
- return "e-mail Lido";
3432
- case "89":
3433
- return "e-mail/SMS devolvido - endere\xE7o de e-mail ou n\xFAmero do celular incorreto";
3434
- case "90":
3435
- return "e-mail devolvido - caixa postal cheia";
3436
- case "91":
3437
- return "e-mail/n\xFAmero do celular do Pagador n\xE3o informado";
3438
- case "92":
3439
- return "Pagador optante por Boleto de Pagamento Eletr\xF4nico - e-mail n\xE3o enviado";
3440
- case "93":
3441
- return "C\xF3digo para emiss\xE3o de Boleto de Pagamento n\xE3o permite envio de e-mail";
3442
- case "94":
3443
- return "C\xF3digo da Carteira inv\xE1lido para envio e-mail.";
3444
- case "95":
3445
- return "Contrato n\xE3o permite o envio de e-mail";
3446
- case "96":
3447
- return "N\xFAmero de contrato inv\xE1lido";
3448
- case "97":
3449
- return "Rejei\xE7\xE3o da altera\xE7\xE3o do prazo limite de recebimento (a data deve ser informada no campo 28.3.p)";
3450
- case "98":
3451
- return "Rejei\xE7\xE3o de dispensa de prazo limite de recebimento";
3452
- case "99":
3453
- return "Rejei\xE7\xE3o da altera\xE7\xE3o do n\xFAmero do t\xEDtulo dado pelo Benefici\xE1rio";
3454
- case "A1":
3455
- return "Rejei\xE7\xE3o da altera\xE7\xE3o do n\xFAmero controle do participante";
3456
- case "A2":
3457
- return "Rejei\xE7\xE3o da altera\xE7\xE3o dos dados do Pagador";
3458
- case "A3":
3459
- return "Rejei\xE7\xE3o da altera\xE7\xE3o dos dados do Sacador/avalista";
3460
- case "A4":
3461
- return "Pagador DDA";
3462
- case "A5":
3463
- return "Registro Rejeitado \u2013 T\xEDtulo j\xE1 Liquidado";
3464
- case "A6":
3465
- return "C\xF3digo do Convenente Inv\xE1lido ou Encerrado";
3466
- case "A7":
3467
- return "T\xEDtulo j\xE1 se encontra na situa\xE7\xE3o Pretendida";
3468
- case "A8":
3469
- return "Valor do Abatimento inv\xE1lido para cancelamento";
3470
- case "A9":
3471
- return "N\xE3o autoriza pagamento parcial";
3472
- case "B1":
3473
- return "Autoriza recebimento parcial";
3474
- case "B2":
3475
- return "Valor Nominal do T\xEDtulo Conflitante";
3476
- case "B3":
3477
- return "Tipo de Pagamento Inv\xE1lido";
3478
- case "B4":
3479
- return "Valor M\xE1ximo/Percentual Inv\xE1lido";
3480
- case "B5":
3481
- return "Valor M\xEDnimo/Percentual Inv\xE1lido";
3482
- default:
3483
- return "C\xF3digo de rejei\xE7\xE3o desconhecido";
3484
- }
3485
- }
3486
-
3487
- // src/banks/banco-brasil/index.ts
3488
- var bancoBrasil = {
3489
- gerarDadosBoleto: gerarDadosBoleto5,
3490
- gerarPDF: gerarPDF5,
3491
- gerarRemessa: gerarRemessa5,
3492
- gerarRetorno: gerarRetorno5
3493
- };
3494
-
3495
- // src/gerar.ts
3496
- function gerar({ banco, dados }) {
3497
- if (banco === "085" /* AILOS */) {
3498
- return ailos.gerarDadosBoleto({ banco, dados });
3499
- }
3500
- if (banco === "005" /* BRADESCO */) {
3501
- return bradesco.gerarDadosBoleto({ banco, dados });
3502
- }
3503
- if (banco === "748" /* SICREDI */) {
3504
- return sicredi.gerarDadosBoleto({ banco, dados });
3505
- }
3506
- if (banco === "756" /* SICOOB */) {
3507
- return sicoob.gerarDadosBoleto({ banco, dados });
3508
- }
3509
- if (banco === "001" /* BANCO_BRASIL */) {
3510
- return bancoBrasil.gerarDadosBoleto({ banco, dados });
3511
- }
3512
- }
3513
-
3514
- // src/banks/itau/gerarPDF.ts
3515
- var import_bwip_js7 = __toESM(require("bwip-js"));
3516
- function gerarPDF6(_0) {
3517
- return __async(this, arguments, function* ({ dados }) {
3518
- try {
3519
- const { dadosPDF } = dados;
3520
- if (!dadosPDF.pagador.cnpjCpf) {
3521
- throw new Error("CPF/CNPJ do pagador na\u0303o informado!");
3522
- }
3523
- const codigoBarra2 = yield import_bwip_js7.default.toBuffer({
3524
- bcid: "interleaved2of5",
3525
- text: dadosPDF.boleto.codigoBarra,
3526
- height: 20
3527
- });
3528
- dadosPDF.beneficiario.dadosBancario.agencia = dadosPDF.beneficiario.dadosBancario.agencia.padStart(4, "0");
3529
- dadosPDF.boleto.linhaDigitavel = maskFormat_default.codigoBarra(dadosPDF.boleto.linhaDigitavel);
3530
- dadosPDF.beneficiario.cnpjCpf = maskFormat_default.retornaCpfCnpjFormatado(
3531
- dadosPDF.beneficiario.cnpjCpf
3532
- );
3533
- dadosPDF.beneficiario.endereco.cep = maskFormat_default.retornaCEPFormatado(
3534
- dadosPDF.beneficiario.endereco.cep
3535
- );
3536
- dadosPDF.pagador.endereco.cep = maskFormat_default.retornaCEPFormatado(
3537
- dadosPDF.pagador.endereco.cep
3538
- );
3539
- dadosPDF.pagador.cnpjCpf = maskFormat_default.retornaCpfCnpjFormatado(dadosPDF.pagador.cnpjCpf);
3540
- const valorDocumento = Number(dadosPDF.boleto.valorDocumento);
3541
- dadosPDF.boleto.valorDocumento = maskFormat_default.numberToReal(
3542
- dadosPDF.boleto.valorDocumento
3543
- );
3544
- const jurosMes = dadosPDF.beneficiario.dadosBancario.juros;
3545
- const jurosDia = jurosMes / 100 / 30 * valorDocumento;
3546
- if (jurosDia > 0) {
3547
- dadosPDF.boleto.instrucoes = [`AP\xD3S O VENCIMENTO, COBRAR JUROS DE R$${maskFormat_default.numberToReal(jurosDia)} AO DIA`, ...dadosPDF.boleto.instrucoes];
3548
- }
3549
- const descontoVencimento = dadosPDF.beneficiario.dadosBancario.desconto || 0;
3550
- if (descontoVencimento > 0) {
3551
- dadosPDF.boleto.instrucoes = [`AT\xC9 O VENCIMENTO, CONCEDER DESCONTO DE ${descontoVencimento}%`, ...dadosPDF.boleto.instrucoes];
3552
- }
3553
- const multaAtraso = dadosPDF.beneficiario.dadosBancario.multa || 0;
3554
- if (multaAtraso > 0) {
3555
- dadosPDF.boleto.instrucoes = [`MULTA DE ${multaAtraso}%`, ...dadosPDF.boleto.instrucoes];
3556
- }
3557
- const protestoDias = dadosPDF.beneficiario.dadosBancario.protesto || 0;
3558
- if (protestoDias > 0) {
3559
- dadosPDF.boleto.instrucoes = [`PROTESTAR AP\xD3S ${protestoDias} DIAS CORRIDOS DO VENCIMENTO`, ...dadosPDF.boleto.instrucoes];
3560
- }
3561
- const content = compileHbs(getPathTemplates("itau-boleto.hbs"), __spreadProps(__spreadValues({}, dadosPDF), {
3562
- boleto: __spreadProps(__spreadValues({}, dadosPDF.boleto), {
3563
- codigoBarraImage: codigoBarra2.toString("base64"),
3564
- nossoNumeroDigito: getDigito6(`${dadosPDF.beneficiario.dadosBancario.agencia}${dadosPDF.beneficiario.dadosBancario.conta}${dadosPDF.beneficiario.dadosBancario.codigoCarteira}${dadosPDF.boleto.nossoNumero}`)
3565
- })
3566
- }));
3567
- const config = {
3568
- displayHeaderFooter: false,
3569
- path: "./boleto.pdf",
3570
- format: "a4",
3571
- printBackground: true
3572
- };
3573
- const response = yield api.post("/", { content, config });
3574
- const buffer = Buffer.from(response.data.pdf);
3575
- const pdfBase64 = yield decompress(buffer);
3576
- return {
3577
- erro: false,
3578
- dados: pdfBase64
3579
- };
3580
- } catch (error) {
3581
- console.log(error);
3582
- return {
3583
- erro: true,
3584
- dados: "Falha ao gerar impress\xE3o do boleto"
3585
- };
3586
- }
3587
- });
3588
- }
3589
- function getDigito6(texto) {
3590
- let i = texto.length;
3591
- let j = 1;
3592
- let total = 0;
3593
- let soma = 0;
3594
- let digito = 0;
3595
- while (i >= 1) {
3596
- j = j === 1 ? 2 : 1;
3597
- let valor = Number(copy(texto, i, i));
3598
- total = valor * j;
3599
- if (total >= 10) {
3600
- valor = Number(copy(total, 1, 1)) + Number(copy(total, 2, 2));
3601
- } else {
3602
- valor = total;
3603
- }
3604
- soma += valor;
3605
- i--;
3606
- }
3607
- const uni = Number(copy(soma, String(soma).length, String(soma).length));
3608
- digito = 10 - uni;
3609
- if (digito === 10)
3610
- digito = 0;
3611
- return String(digito);
3612
- }
3613
-
3614
- // src/banks/itau/index.ts
3615
- var itau = {
3616
- gerarPDF: gerarPDF6
3617
- };
3618
-
3619
- // src/pdf.ts
3620
- function pdf({ banco, dados }) {
3621
- if (banco === "085" /* AILOS */) {
3622
- return ailos.gerarPDF({ banco, dados });
3623
- }
3624
- if (banco === "005" /* BRADESCO */) {
3625
- return bradesco.gerarPDF({ banco, dados });
3626
- }
3627
- if (banco === "748" /* SICREDI */) {
3628
- return sicredi.gerarPDF({ banco, dados });
3629
- }
3630
- if (banco === "756" /* SICOOB */) {
3631
- return sicoob.gerarPDF({ banco, dados });
3632
- }
3633
- if (banco === "001" /* BANCO_BRASIL */) {
3634
- return bancoBrasil.gerarPDF({ banco, dados });
3635
- }
3636
- if (banco === "341" /* ITAU */) {
3637
- return itau.gerarPDF({ banco, dados });
3638
- }
3639
- }
3640
-
3641
- // src/remessa.ts
3642
- function remessa({ banco, dados }) {
3643
- if (banco === "085" /* AILOS */) {
3644
- return ailos.gerarRemessa({ banco, dados });
3645
- }
3646
- if (banco === "005" /* BRADESCO */) {
3647
- return bradesco.gerarRemessa({ banco, dados });
3648
- }
3649
- if (banco === "748" /* SICREDI */) {
3650
- return sicredi.gerarRemessa({ banco, dados });
3651
- }
3652
- if (banco === "756" /* SICOOB */) {
3653
- return sicoob.gerarRemessa({ banco, dados });
3654
- }
3655
- if (banco === "001" /* BANCO_BRASIL */) {
3656
- return bancoBrasil.gerarRemessa({ banco, dados });
3657
- }
3658
- }
3659
-
3660
- // src/retorno.ts
3661
- function retorno({ banco, dados }) {
3662
- if (banco === "085" /* AILOS */) {
3663
- return ailos.gerarRetorno({ banco, dados });
3664
- }
3665
- if (banco === "005" /* BRADESCO */) {
3666
- return bradesco.gerarRetorno({ banco, dados });
3667
- }
3668
- if (banco === "748" /* SICREDI */) {
3669
- return sicredi.gerarRetorno({ banco, dados });
3670
- }
3671
- if (banco === "001" /* BANCO_BRASIL */) {
3672
- return bancoBrasil.gerarRetorno({ banco, dados });
3673
- }
3674
- if (banco === "756" /* SICOOB */) {
3675
- return sicoob.gerarRetorno({ banco, dados });
3676
- }
3677
- }
3678
-
3679
- // src/config/index.ts
3680
- function defineConfig({ apiClient }) {
3681
- if (apiClient) {
3682
- const { authorization, url } = apiClient;
3683
- if (url)
3684
- api.defaults.baseURL = url;
3685
- if (authorization)
3686
- api.defaults.headers.common.Authorization = authorization;
3687
- }
3688
- }
3689
-
3690
- // src/index.ts
3691
- var src_default = {
3692
- gerar,
3693
- pdf,
3694
- remessa,
3695
- retorno,
3696
- carne
3697
- };
3698
- // Annotate the CommonJS export names for ESM import in node:
3699
- 0 && (module.exports = {
3700
- Banco,
3701
- defineConfig
3702
- });
3703
- //# sourceMappingURL=index.js.map