@plasoft/boletos 1.0.65 → 1.0.67

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.mjs CHANGED
@@ -38,14 +38,199 @@ var __async = (__this, __arguments, generator) => {
38
38
  });
39
39
  };
40
40
 
41
- // src/utils/pafLeft.ts
42
- function padLeft(numero, tamanho) {
43
- numero = String(numero);
44
- if (numero.length < tamanho) {
45
- numero = `0${numero}`;
46
- return padLeft(numero, tamanho);
41
+ // src/utils/compileHbs.ts
42
+ import hbs from "handlebars";
43
+ import fs from "fs";
44
+ function compileHbs(templatePath, data) {
45
+ const html = fs.readFileSync(templatePath, "utf-8");
46
+ const content = hbs.compile(html)(data);
47
+ return content;
48
+ }
49
+
50
+ // src/utils/getPathTemplates.ts
51
+ import path from "path";
52
+ function getPathTemplates(template) {
53
+ if (process.env.NODE_ENV === "dev") {
54
+ return path.resolve(process.cwd(), "views", template);
55
+ }
56
+ return path.resolve(__dirname, template);
57
+ }
58
+
59
+ // src/services/api.ts
60
+ import "dotenv/config";
61
+ import axios from "axios";
62
+ var api = axios.create({
63
+ baseURL: process.env.API_URL || "https://23136fv876.execute-api.sa-east-1.amazonaws.com/dev/create-report"
64
+ });
65
+
66
+ // src/utils/zip.ts
67
+ import * as zlib from "zlib";
68
+ function decompress(input) {
69
+ return new Promise((resolve, reject) => {
70
+ zlib.gunzip(input, (error, result) => {
71
+ if (error) {
72
+ return reject(error);
73
+ }
74
+ resolve(result.toString());
75
+ });
76
+ });
77
+ }
78
+
79
+ // src/banks/sicredi/gerarPDFCarne.ts
80
+ import BwipJs from "bwip-js";
81
+
82
+ // src/utils/maskFormat.ts
83
+ import StringMask from "string-mask";
84
+ function retornaCpfCnpjFormatado(cpfCnpj) {
85
+ if ((cpfCnpj == null ? void 0 : cpfCnpj.length) <= 11) {
86
+ const formatter2 = new StringMask("000.000.000-00");
87
+ return formatter2.apply(cpfCnpj);
88
+ }
89
+ const formatter = new StringMask("00.000.000/0000-00");
90
+ return formatter.apply(cpfCnpj);
91
+ }
92
+ function retornaCEPFormatado(cep) {
93
+ const formatter = new StringMask("00000-000");
94
+ return formatter.apply(cep);
95
+ }
96
+ function numberToReal(numero) {
97
+ numero = typeof numero === "string" ? parseFloat(numero) : numero;
98
+ numero = numero.toFixed(2).split(".");
99
+ numero[0] = numero[0].split(/(?=(?:...)*$)/).join(".");
100
+ return numero.join(",");
101
+ }
102
+ function codigoBarra(codigo) {
103
+ const formatter = new StringMask("00000.00000 00000.000000 00000.000000 0 000000000000000");
104
+ return formatter.apply(codigo);
105
+ }
106
+ var maskFormat_default = {
107
+ numberToReal,
108
+ retornaCEPFormatado,
109
+ retornaCpfCnpjFormatado,
110
+ codigoBarra
111
+ };
112
+
113
+ // src/banks/sicredi/gerarPDFCarne.ts
114
+ import QRCode from "qrcode";
115
+ function gerarPDFCarne(_0) {
116
+ return __async(this, arguments, function* ({ dados }) {
117
+ try {
118
+ const { generatePDF, dadosPDF } = dados;
119
+ const carnes = [];
120
+ if (!dadosPDF.pagador.cpfcnpj) {
121
+ throw new Error("CPF/CNPJ do pagador na\u0303o informado!");
122
+ }
123
+ for (const boleto of dados.dadosPDF.boleto) {
124
+ const codigoBarra2 = yield BwipJs.toBuffer({
125
+ bcid: "interleaved2of5",
126
+ text: boleto.codigoBarra,
127
+ height: 20
128
+ });
129
+ const qrCode = yield QRCode.toDataURL(boleto.pixCopiaCola, {
130
+ errorCorrectionLevel: "H",
131
+ type: "image/png",
132
+ margin: 1,
133
+ scale: 6
134
+ });
135
+ boleto.qrCodeImage = qrCode;
136
+ dadosPDF.beneficiario.dadosBancario.agencia = dadosPDF.beneficiario.dadosBancario.agencia.padStart(4, "0");
137
+ dadosPDF.beneficiario.cnpj = maskFormat_default.retornaCpfCnpjFormatado(
138
+ dadosPDF.beneficiario.cnpj
139
+ );
140
+ dadosPDF.beneficiario.endereco.cep = maskFormat_default.retornaCEPFormatado(
141
+ dadosPDF.beneficiario.endereco.cep
142
+ );
143
+ dadosPDF.pagador.endereco.cep = maskFormat_default.retornaCEPFormatado(
144
+ dadosPDF.pagador.endereco.cep
145
+ );
146
+ dadosPDF.pagador.cpfcnpj = maskFormat_default.retornaCpfCnpjFormatado(dadosPDF.pagador.cpfcnpj);
147
+ boleto.linhaDigitavel = maskFormat_default.codigoBarra(boleto.linhaDigitavel);
148
+ boleto.codigoBarraImage = codigoBarra2.toString("base64");
149
+ boleto.valorAcrescimo = maskFormat_default.numberToReal(
150
+ boleto.valorAcrescimo
151
+ );
152
+ boleto.valorCobrado = maskFormat_default.numberToReal(
153
+ boleto.valorCobrado
154
+ );
155
+ boleto.valorDescontoAbatimento = maskFormat_default.numberToReal(
156
+ boleto.valorDescontoAbatimento
157
+ );
158
+ const valorDocumento = Number(boleto.valorDocumento);
159
+ boleto.valorDocumento = maskFormat_default.numberToReal(
160
+ boleto.valorDocumento
161
+ );
162
+ boleto.valorMulta = maskFormat_default.numberToReal(boleto.valorMulta);
163
+ boleto.valorOutrasDeducoes = maskFormat_default.numberToReal(
164
+ boleto.valorOutrasDeducoes
165
+ );
166
+ const jurosMes = dadosPDF.beneficiario.dadosBancario.juros;
167
+ const jurosDia = jurosMes / 100 / 30 * valorDocumento;
168
+ if (jurosDia > 0) {
169
+ boleto.instrucao1 = `COBRAR JUROS DE R$${maskFormat_default.numberToReal(jurosDia)} AO DIA, AP\xD3S O VENCIMENTO`;
170
+ }
171
+ const descontoVencimento = boleto.desconto > 0 ? boleto.desconto : dadosPDF.beneficiario.dadosBancario.desconto > 0 ? dadosPDF.beneficiario.dadosBancario.desconto : 0;
172
+ if (descontoVencimento > 0) {
173
+ boleto.instrucao2 = `AT\xC9 O VENCIMENTO, CONCEDER DESCONTO DE ${descontoVencimento}%`;
174
+ }
175
+ const multaAtraso = dadosPDF.beneficiario.dadosBancario.multa || 0;
176
+ if (multaAtraso > 0) {
177
+ boleto.instrucao3 = `MULTA DE ${multaAtraso}%`;
178
+ }
179
+ const protestoDias = dadosPDF.beneficiario.dadosBancario.protesto || 0;
180
+ if (protestoDias > 0) {
181
+ boleto.instrucao4 = `PROTESTAR AP\xD3S ${protestoDias} DIAS CORRIDOS DO VENCIMENTO`;
182
+ }
183
+ dadosPDF.pagador.isCnpj = dadosPDF.pagador.cpfcnpj.length > 14;
184
+ carnes.push({ boleto, pagador: dadosPDF.pagador, beneficiario: dadosPDF.beneficiario });
185
+ }
186
+ const content = compileHbs(getPathTemplates("sicredi-carne.hbs"), { boletos: carnes });
187
+ const config = {
188
+ displayHeaderFooter: false,
189
+ path: "./boleto.pdf",
190
+ format: "a4",
191
+ printBackground: true,
192
+ preferCSSPageSize: true
193
+ };
194
+ let pdfBase64 = null;
195
+ if (generatePDF) {
196
+ pdfBase64 = yield generatePDF(content, config);
197
+ } else {
198
+ if (!api.defaults.baseURL) {
199
+ throw new Error("BaseURL api not found");
200
+ }
201
+ const response = yield api.post("/", { content, config });
202
+ const buffer = Buffer.from(response.data.pdf);
203
+ pdfBase64 = yield decompress(buffer);
204
+ }
205
+ return {
206
+ erro: false,
207
+ dados: pdfBase64
208
+ };
209
+ } catch (error) {
210
+ console.log(error);
211
+ if (error instanceof Error) {
212
+ return {
213
+ erro: true,
214
+ dados: error.message
215
+ };
216
+ }
217
+ return {
218
+ erro: true,
219
+ dados: "Falha ao gerar impress\xE3o do boleto"
220
+ };
221
+ }
222
+ });
223
+ }
224
+
225
+ // src/utils/getFatorVencimento.ts
226
+ import { differenceInDays } from "date-fns";
227
+ function getFatorVencimento(vencimento) {
228
+ vencimento = new Date(vencimento);
229
+ if (vencimento >= new Date(2025, 1, 22)) {
230
+ return differenceInDays(new Date(vencimento), new Date(2022, 4, 29)).toString();
231
+ } else {
232
+ return differenceInDays(new Date(vencimento), new Date(1997, 9, 7)).toString();
47
233
  }
48
- return numero;
49
234
  }
50
235
 
51
236
  // src/utils/copy.ts
@@ -65,30 +250,24 @@ function copy(texto, startPosition, endPosition) {
65
250
  return retorno2;
66
251
  }
67
252
 
68
- // src/utils/getFatorVencimento.ts
69
- import { differenceInDays } from "date-fns";
70
- function getFatorVencimento(vencimento) {
71
- vencimento = new Date(vencimento);
72
- if (vencimento >= new Date(2025, 1, 22)) {
73
- return differenceInDays(new Date(vencimento), new Date(2022, 4, 29)).toString();
74
- } else {
75
- return differenceInDays(new Date(vencimento), new Date(1997, 9, 7)).toString();
76
- }
77
- }
78
-
79
- // src/banks/ailos/gerarDadosBoleto.ts
253
+ // src/banks/sicredi/gerarDadosBoleto.ts
80
254
  function gerarDadosBoleto({ dados }) {
81
255
  try {
82
256
  const { bancario, parcela } = dados;
83
257
  parcela.valor = Number(parcela.valor);
84
258
  const fatorVencimento = getFatorVencimento(parcela.vencimento);
85
259
  const valor = getValor(parcela.valor);
86
- const convenio = padLeft(bancario.convenio, 6);
87
- const numeroDocumento = padLeft(`${parcela.id_boleto}`, 9);
88
- const nossoNumero = padLeft(bancario.numero + bancario.numero_dv, 8) + numeroDocumento;
89
- const campoLivre = convenio + nossoNumero + padLeft(bancario.carteira, 2);
90
- const digitoGeral = getDigitoGeral(`0859${fatorVencimento}${valor}${campoLivre}`);
91
- const codigoBarra2 = `0859${digitoGeral}${fatorVencimento}${valor}${campoLivre}`;
260
+ const nossoNumero = getNossoNumero(
261
+ parcela.numeroUnico,
262
+ bancario.agencia,
263
+ bancario.posto,
264
+ bancario.codigoCedente
265
+ );
266
+ let campoLivre = bancario.tipoCobranca + bancario.tipoCarteira + nossoNumero + bancario.agencia.padStart(4, "0") + bancario.posto.padStart(2, "0") + bancario.codigoCedente.padStart(5, "0") + 10;
267
+ const digitoCampoLivre = getDigitoCampoLivre(campoLivre);
268
+ campoLivre = campoLivre + digitoCampoLivre;
269
+ const digitoGeral = getDigitoGeral(`7489${fatorVencimento}${valor}${campoLivre}`);
270
+ const codigoBarra2 = `7489${digitoGeral}${fatorVencimento}${valor}${campoLivre}`;
92
271
  const campo1 = copy(codigoBarra2, 1, 3) + copy(codigoBarra2, 4, 4) + copy(codigoBarra2, 20, 24);
93
272
  const campo2 = copy(codigoBarra2, 25, 34);
94
273
  const campo3 = copy(codigoBarra2, 35, 44);
@@ -97,17 +276,16 @@ function gerarDadosBoleto({ dados }) {
97
276
  const digito1 = getDigito(campo1);
98
277
  const digito2 = getDigito(campo2);
99
278
  const digito3 = getDigito(campo3);
100
- const linhaDigitavel = campo1 + digito1 + campo2 + digito2 + campo3 + digito3 + campo4 + campo5;
279
+ const linhaDigitavel = campo1 + digito1 + campo2 + digito2 + campo3 + digito3 + campo4 + /*digito4*/
280
+ +campo5;
101
281
  const dadosBoleto = {
102
282
  linhaDigitavel,
103
283
  fatorVencimento,
104
284
  valor,
105
- convenio,
106
285
  nossoNumero,
107
286
  campoLivre,
108
287
  digitoGeral,
109
- codigoBarra: codigoBarra2,
110
- numeroDocumento
288
+ codigoBarra: codigoBarra2
111
289
  };
112
290
  return dadosBoleto;
113
291
  } catch (error) {
@@ -115,9 +293,47 @@ function gerarDadosBoleto({ dados }) {
115
293
  return null;
116
294
  }
117
295
  }
296
+ function getNossoNumero(id, agencia, posto, codigoCedente) {
297
+ let i = 19;
298
+ let j = 1;
299
+ let soma = 0;
300
+ let digito = 0;
301
+ const texto = agencia.padStart(4, "0") + posto.padStart(2, "0") + codigoCedente.padStart(5, "0") + id.padStart(8, "0");
302
+ while (i >= 1) {
303
+ j++;
304
+ if (j === 10)
305
+ j = 2;
306
+ const valor = Number(copy(texto, i, i));
307
+ soma += j * valor;
308
+ i--;
309
+ }
310
+ const restoDivisao = soma % 11;
311
+ digito = 11 - restoDivisao;
312
+ if (restoDivisao === 0 || restoDivisao === 1)
313
+ digito = 0;
314
+ return id.padStart(8, "0") + digito.toString();
315
+ }
118
316
  function getValor(valor) {
119
317
  const valorFormatado = valor.toFixed(2).replace(/\D/g, "");
120
- return padLeft(valorFormatado, 10);
318
+ return valorFormatado.padStart(10, "0");
319
+ }
320
+ function getDigitoCampoLivre(texto) {
321
+ let i = 24;
322
+ let j = 1;
323
+ let soma = 0;
324
+ let digito = 0;
325
+ while (i >= 1) {
326
+ j++;
327
+ if (j === 10)
328
+ j = 2;
329
+ let valor = Number(copy(texto, i, i));
330
+ soma += valor * j;
331
+ i--;
332
+ }
333
+ const restoDivisao = soma % 11;
334
+ if (restoDivisao > 1)
335
+ digito = 11 - restoDivisao;
336
+ return String(digito);
121
337
  }
122
338
  function getDigitoGeral(texto) {
123
339
  let i = 43;
@@ -134,7 +350,7 @@ function getDigitoGeral(texto) {
134
350
  }
135
351
  const restoDivisao = soma % 11;
136
352
  digito = 11 - restoDivisao;
137
- if (digito === 0 || digito === 1 || digito > 9)
353
+ if (digito <= 1 || digito >= 10)
138
354
  digito = 1;
139
355
  return String(digito);
140
356
  }
@@ -163,79 +379,8 @@ function getDigito(texto) {
163
379
  return String(digito);
164
380
  }
165
381
 
166
- // src/banks/ailos/gerarPDF.ts
167
- import BwipJs from "bwip-js";
168
-
169
- // src/utils/maskFormat.ts
170
- import StringMask from "string-mask";
171
- function retornaCpfCnpjFormatado(cpfCnpj) {
172
- if ((cpfCnpj == null ? void 0 : cpfCnpj.length) <= 11) {
173
- const formatter2 = new StringMask("000.000.000-00");
174
- return formatter2.apply(cpfCnpj);
175
- }
176
- const formatter = new StringMask("00.000.000/0000-00");
177
- return formatter.apply(cpfCnpj);
178
- }
179
- function retornaCEPFormatado(cep) {
180
- const formatter = new StringMask("00000-000");
181
- return formatter.apply(cep);
182
- }
183
- function numberToReal(numero) {
184
- numero = typeof numero === "string" ? parseFloat(numero) : numero;
185
- numero = numero.toFixed(2).split(".");
186
- numero[0] = numero[0].split(/(?=(?:...)*$)/).join(".");
187
- return numero.join(",");
188
- }
189
- function codigoBarra(codigo) {
190
- const formatter = new StringMask("00000.00000 00000.000000 00000.000000 0 000000000000000");
191
- return formatter.apply(codigo);
192
- }
193
- var maskFormat_default = {
194
- numberToReal,
195
- retornaCEPFormatado,
196
- retornaCpfCnpjFormatado,
197
- codigoBarra
198
- };
199
-
200
- // src/utils/compileHbs.ts
201
- import hbs from "handlebars";
202
- import fs from "fs";
203
- function compileHbs(templatePath, data) {
204
- const html = fs.readFileSync(templatePath, "utf-8");
205
- const content = hbs.compile(html)(data);
206
- return content;
207
- }
208
-
209
- // src/utils/getPathTemplates.ts
210
- import path from "path";
211
- function getPathTemplates(template) {
212
- if (process.env.NODE_ENV === "dev") {
213
- return path.resolve(process.cwd(), "views", template);
214
- }
215
- return path.resolve(__dirname, template);
216
- }
217
-
218
- // src/services/api.ts
219
- import "dotenv/config";
220
- import axios from "axios";
221
- var api = axios.create({
222
- baseURL: process.env.API_URL || "https://23136fv876.execute-api.sa-east-1.amazonaws.com/dev/create-report"
223
- });
224
-
225
- // src/utils/zip.ts
226
- import * as zlib from "zlib";
227
- function decompress(input) {
228
- return new Promise((resolve, reject) => {
229
- zlib.gunzip(input, (error, result) => {
230
- if (error) {
231
- return reject(error);
232
- }
233
- resolve(result.toString());
234
- });
235
- });
236
- }
237
-
238
- // src/banks/ailos/gerarPDF.ts
382
+ // src/banks/sicredi/gerarPDF.ts
383
+ import BwipJs2 from "bwip-js";
239
384
  function gerarPDF(_0) {
240
385
  return __async(this, arguments, function* ({ dados }) {
241
386
  try {
@@ -243,13 +388,12 @@ function gerarPDF(_0) {
243
388
  if (!dadosPDF.pagador.cpfcnpj) {
244
389
  throw new Error("CPF/CNPJ do pagador na\u0303o informado!");
245
390
  }
246
- const codigoBarra2 = yield BwipJs.toBuffer({
391
+ const codigoBarra2 = yield BwipJs2.toBuffer({
247
392
  bcid: "interleaved2of5",
248
393
  text: dadosPDF.boleto.codigoBarra,
249
394
  height: 20
250
395
  });
251
396
  dadosPDF.beneficiario.dadosBancario.agencia = dadosPDF.beneficiario.dadosBancario.agencia.padStart(4, "0");
252
- dadosPDF.beneficiario.dadosBancario.conta = dadosPDF.beneficiario.dadosBancario.conta.padStart(7, "0");
253
397
  dadosPDF.boleto.linhaDigitavel = maskFormat_default.codigoBarra(dadosPDF.boleto.linhaDigitavel);
254
398
  dadosPDF.boleto.codigoBarraImage = codigoBarra2.toString("base64");
255
399
  dadosPDF.beneficiario.cnpj = maskFormat_default.retornaCpfCnpjFormatado(
@@ -301,7 +445,7 @@ function gerarPDF(_0) {
301
445
  }
302
446
  dadosPDF.boleto.valor = maskFormat_default.numberToReal(dadosPDF.boleto.valor);
303
447
  dadosPDF.pagador.isCnpj = dadosPDF.pagador.cpfcnpj.length > 14;
304
- const content = compileHbs(getPathTemplates("ailos-boleto.hbs"), dadosPDF);
448
+ const content = compileHbs(getPathTemplates("sicredi-boleto.hbs"), dadosPDF);
305
449
  const config = {
306
450
  displayHeaderFooter: false,
307
451
  path: "./boleto.pdf",
@@ -339,9 +483,6 @@ function gerarPDF(_0) {
339
483
  });
340
484
  }
341
485
 
342
- // src/banks/ailos/gerarRemessa.ts
343
- import { addDays, format } from "date-fns";
344
-
345
486
  // src/lib/Arquivo.ts
346
487
  var Arquivo = class {
347
488
  constructor() {
@@ -380,238 +521,119 @@ function removerCaracterEspecial(texto) {
380
521
  return textoFormatado;
381
522
  }
382
523
 
383
- // src/banks/ailos/gerarRemessa.ts
524
+ // src/banks/sicredi/gerarRemessa.ts
525
+ import { format } from "date-fns";
384
526
  function gerarRemessa({ dados }) {
385
527
  try {
386
528
  const { dadosBancario, beneficiario, boletos } = dados.remessa;
387
529
  const arquivo = new Arquivo();
388
- const dataAtual = /* @__PURE__ */ new Date();
389
- const data = format(dataAtual, "ddMMyyyy");
390
- const hora = format(dataAtual, "HHmmss");
391
- const convenio = dadosBancario.convenio.padStart(7, "0");
392
- const numero = dadosBancario.conta.padStart(7, "0") + dadosBancario.contaDigito;
393
- const remessa2 = `REM${convenio}-${numero}-${data}.REM`;
394
- arquivo.add("085");
395
- arquivo.add("0000");
396
- arquivo.add("0");
397
- arquivo.add(" ");
398
- arquivo.add("2");
399
- arquivo.add(beneficiario.cnpj);
400
- arquivo.add(dadosBancario.convenio.padEnd(20, " "));
401
- arquivo.add(dadosBancario.agencia.padStart(5, "0"));
402
- arquivo.add(dadosBancario.agenciaDigito);
403
- arquivo.add(dadosBancario.conta.padStart(12, "0"));
404
- arquivo.add(dadosBancario.contaDigito);
405
- arquivo.add(" ");
406
- arquivo.add(removerCaracterEspecial(beneficiario.nome).substring(0, 30).padEnd(30, " "));
407
- arquivo.add("AILOS".padEnd(30, " "));
408
- arquivo.add(" ");
409
- arquivo.add("1");
410
- arquivo.add(data);
411
- arquivo.add(hora);
412
- arquivo.add(dadosBancario.numeroRemessa.padStart(6, "0"));
413
- arquivo.add("087");
414
- arquivo.add("00000");
415
- arquivo.add(" ".padEnd(20, " "));
416
- arquivo.add(" ".padEnd(20, " "));
417
- arquivo.add(" ".padEnd(29, " "));
418
- arquivo.addLine();
419
- arquivo.add("085");
420
- arquivo.add("0001");
421
- arquivo.add("1");
422
- arquivo.add("R");
530
+ const data = /* @__PURE__ */ new Date();
531
+ let protestar = "00";
532
+ let negativar = "0000";
533
+ switch (dadosBancario.tipo_protesto) {
534
+ case "Nenhum":
535
+ protestar = "00";
536
+ negativar = "0000";
537
+ break;
538
+ case "Protestar":
539
+ protestar = "06";
540
+ negativar = "0000";
541
+ break;
542
+ case "Negativar":
543
+ protestar = "00";
544
+ negativar = "06" + String(dadosBancario.diasProtesto).padStart(2, "0");
545
+ break;
546
+ default:
547
+ protestar = "00";
548
+ negativar = "0000";
549
+ break;
550
+ }
551
+ arquivo.add("01REMESSA");
423
552
  arquivo.add("01");
424
- arquivo.add(" ");
425
- arquivo.add("045");
426
- arquivo.add(" ");
427
- arquivo.add("2");
428
- arquivo.add(beneficiario.cnpj.padStart(15, "0"));
429
- arquivo.add(dadosBancario.convenio.padEnd(20, " "));
430
- arquivo.add(dadosBancario.agencia.padStart(5, "0"));
431
- arquivo.add(dadosBancario.agenciaDigito);
432
- arquivo.add(dadosBancario.conta.padStart(12, "0"));
433
- arquivo.add(dadosBancario.contaDigito);
434
- arquivo.add(" ");
435
- arquivo.add(removerCaracterEspecial(beneficiario.nome).substring(0, 30).padEnd(30, " "));
436
- arquivo.add(" ".padEnd(40, " "));
437
- arquivo.add(" ".padEnd(40, " "));
438
- arquivo.add(dadosBancario.numeroRemessa.padStart(8, "0"));
439
- arquivo.add(data);
440
- arquivo.add("00000000");
441
- arquivo.add(" ".padEnd(33, " "));
553
+ arquivo.add("COBRANCA".padEnd(15, " "));
554
+ arquivo.add(dadosBancario.codigo_cedente);
555
+ arquivo.add(beneficiario.cnpj);
556
+ arquivo.add(" ".padEnd(31, " "));
557
+ arquivo.add("748");
558
+ arquivo.add("SICREDI".padEnd(15, " "));
559
+ arquivo.add(format(data, "yyyyMMdd"));
560
+ arquivo.add(" ".padEnd(8, " "));
561
+ arquivo.add(dadosBancario.numeroRemessa.padStart(7, "0"));
562
+ arquivo.add(" ".padEnd(273, " "));
563
+ arquivo.add("2.00");
564
+ arquivo.add("000001");
442
565
  arquivo.addLine();
443
- let sequencia = 0;
444
- let quantidadeRegistro = 0;
566
+ let sequencia = 2;
445
567
  let total = 0;
446
568
  for (const boleto of boletos) {
447
569
  const { pagador } = boleto;
448
- const vencimento = format(new Date(boleto.vencimento), "ddMMyyyy");
449
570
  total += Number(boleto.valor);
450
- const codigoJuro = dadosBancario.jurosMes > 0 ? "2" : "3";
451
- const juros = dadosBancario.jurosMes > 0 ? dadosBancario.jurosMes.toFixed(2) : "000000000000000";
452
- const jurosVencimento = format(
453
- addDays(new Date(boleto.vencimento), 1),
454
- "ddMMyyyy"
455
- );
456
- const codigoDesconto = dadosBancario.descontoPagamento > 0 ? "2" : "0";
457
- const desconto = boleto.desconto > 0 ? boleto.desconto.toFixed(2) : dadosBancario.descontoPagamento > 0 ? dadosBancario.descontoPagamento.toFixed(2) : "000000000000000";
458
- let diasProtesto = "00";
459
- let protesto = "3";
460
- switch (dadosBancario.tipo_protesto) {
461
- case "Nenhum":
462
- protesto = "3";
463
- diasProtesto = "00";
464
- break;
465
- case "Protestar":
466
- protesto = "1";
467
- diasProtesto = dadosBancario.diasProtesto.toString().padStart(2, "0");
468
- break;
469
- case "Negativar":
470
- protesto = "2";
471
- diasProtesto = dadosBancario.diasProtesto.toString().padStart(2, "0");
472
- break;
473
- default:
474
- protesto = "3";
475
- diasProtesto = "00";
476
- break;
571
+ let tipoInscricao = pagador.pessoa === "F" ? "1" : "2";
572
+ let desconto = "0000000000000";
573
+ let dataDesconto = "000000";
574
+ if (boleto.desconto) {
575
+ desconto = boleto.desconto.toFixed(2).replace(".", "").padStart(13, "0");
576
+ dataDesconto = format(new Date(boleto.vencimento), "ddMMyy");
477
577
  }
478
- arquivo.add("085");
479
- arquivo.add("0001");
480
- arquivo.add("3");
481
- arquivo.add((++sequencia).toString().padStart(5, "0"));
482
- arquivo.add("P");
483
- arquivo.add(" ");
484
- arquivo.add("01");
485
- arquivo.add(dadosBancario.agencia.padStart(5, "0"));
486
- arquivo.add(dadosBancario.agenciaDigito);
487
- arquivo.add(dadosBancario.conta.padStart(12, "0"));
488
- arquivo.add(dadosBancario.contaDigito);
489
- arquivo.add(" ");
490
- arquivo.add(boleto.nossoNumero.padEnd(20, " "));
491
- arquivo.add("1");
492
- arquivo.add("1");
578
+ if (!boleto.desconto && dadosBancario.descontoPagamento) {
579
+ desconto = dadosBancario.descontoPagamento.toFixed(2).replace(".", "").padStart(13, "0");
580
+ dataDesconto = format(new Date(boleto.vencimento), "ddMMyy");
581
+ }
582
+ let valorJurosDias = Number(boleto.valor) * Number(dadosBancario.jurosMes) / 100 / 30;
583
+ let multaAtraso = String(dadosBancario.multaAtraso * 100);
493
584
  arquivo.add("1");
494
- arquivo.add("2");
495
- arquivo.add("2");
496
- arquivo.add(`${boleto.numeroDocumento}/${boleto.parcela}`.padEnd(15, " "));
497
- arquivo.add(vencimento);
498
- arquivo.add(
499
- Number(boleto.valor).toFixed(2).replace(".", "").padStart(15, "0")
500
- );
501
- arquivo.add(dadosBancario.agencia.padStart(5, "0"));
502
- arquivo.add(dadosBancario.agenciaDigito);
503
- arquivo.add("02");
504
- arquivo.add(boleto.aceite);
505
- arquivo.add(data);
506
- arquivo.add(codigoJuro);
507
- arquivo.add(jurosVencimento);
508
- arquivo.add(juros.replace(".", "").padStart(15, "0"));
509
- arquivo.add(codigoDesconto);
510
- arquivo.add(vencimento);
511
- arquivo.add(desconto.replace(".", "").padStart(15, "0"));
512
- arquivo.add("000000000000000");
513
- arquivo.add("000000000000000");
514
- arquivo.add(boleto.identificacaoTitulo.padEnd(25, " "));
515
- arquivo.add(protesto);
516
- arquivo.add(diasProtesto);
517
- arquivo.add("2");
518
- arquivo.add(" ");
519
- arquivo.add("09");
520
- arquivo.add("0000000000");
585
+ arquivo.add("AAA");
586
+ arquivo.add(" ".padEnd(12, " "));
587
+ arquivo.add("AAA");
588
+ arquivo.add(" ".padEnd(28, " "));
589
+ arquivo.add(boleto.nossoNumero.padEnd(9, " "));
590
+ arquivo.add(" ".padEnd(6, " "));
591
+ arquivo.add(format(new Date(boleto.emissao), "yyyyMMdd"));
521
592
  arquivo.add(" ");
522
- arquivo.addLine();
523
- let tipoInscricao = "1";
524
- if (pagador.pessoa === "F") {
525
- tipoInscricao = "1";
526
- } else {
527
- tipoInscricao = "2";
528
- }
529
- pagador.endereco.logradouro = `${removerCaracterEspecial(pagador.endereco.logradouro).substring(0, 32).padEnd(32, " ")}${pagador.endereco.numero.padEnd(8, " ")}`;
530
- arquivo.add("085");
531
- arquivo.add("0001");
532
- arquivo.add("3");
533
- arquivo.add((++sequencia).toString().padStart(5, "0"));
534
- arquivo.add("Q");
593
+ arquivo.add("N");
535
594
  arquivo.add(" ");
595
+ arquivo.add("B");
596
+ arquivo.add("0000");
597
+ arquivo.add(" ".padEnd(4, " "));
598
+ arquivo.add("0".padEnd(10, "0"));
599
+ arquivo.add(multaAtraso.padStart(4, "0"));
600
+ arquivo.add(" ".padEnd(12, " "));
536
601
  arquivo.add("01");
602
+ arquivo.add(boleto.identificacaoTitulo.padEnd(10, " "));
603
+ arquivo.add(format(new Date(boleto.vencimento), "ddMMyy"));
604
+ arquivo.add(Number(boleto.valor).toFixed(2).replace(".", "").padStart(13, "0"));
605
+ arquivo.add(" ".padEnd(9, " "));
606
+ arquivo.add("A");
607
+ arquivo.add(boleto.aceite);
608
+ arquivo.add(format(new Date(boleto.emissao), "ddMMyy"));
609
+ arquivo.add(protestar);
610
+ arquivo.add(String(dadosBancario.diasProtesto).padStart(2, "0"));
611
+ arquivo.add(Number(valorJurosDias).toFixed(2).replace(".", "").padStart(13, "0"));
612
+ arquivo.add(dataDesconto);
613
+ arquivo.add(desconto);
614
+ arquivo.add(negativar);
615
+ arquivo.add("0".padEnd(22, "0"));
537
616
  arquivo.add(tipoInscricao);
538
- arquivo.add(pagador.cpfCnpj.padStart(15, "0"));
617
+ arquivo.add("0");
618
+ arquivo.add(pagador.cpfCnpj.padStart(14, "0"));
539
619
  arquivo.add(removerCaracterEspecial(pagador.nome).substring(0, 40).padEnd(40, " "));
540
620
  arquivo.add(removerCaracterEspecial(pagador.endereco.logradouro).substring(0, 40).padEnd(40, " "));
541
- arquivo.add(removerCaracterEspecial(pagador.endereco.bairro).substring(0, 15).padEnd(15, " "));
542
- arquivo.add(pagador.endereco.cep.substring(0, 5).padStart(5, "0"));
543
- arquivo.add(pagador.endereco.cep.substring(5, 7).padStart(3, "0"));
544
- arquivo.add(removerCaracterEspecial(pagador.endereco.municipio).substring(0, 15).padEnd(15, " "));
545
- arquivo.add(removerCaracterEspecial(pagador.endereco.uf).padEnd(2, " "));
546
- arquivo.add("0");
547
- arquivo.add("000000000000000");
548
- arquivo.add(" ".padEnd(40, " "));
549
- arquivo.add("000");
550
- arquivo.add(" ".padEnd(20, " "));
551
- arquivo.add(" ".padEnd(8, " "));
621
+ arquivo.add("0".padEnd(11, "0"));
622
+ arquivo.add(" ");
623
+ arquivo.add(pagador.endereco.cep.padEnd(8, " "));
624
+ arquivo.add("00000");
625
+ arquivo.add(" ".padEnd(55, " "));
626
+ arquivo.add(String(sequencia).padStart(6, "0"));
552
627
  arquivo.addLine();
553
- dadosBancario.multaAtraso = Number(dadosBancario.multaAtraso || 0);
554
- if (dadosBancario.multaAtraso > 0) {
555
- const multa = dadosBancario.multaAtraso.toFixed(2);
556
- arquivo.add("085");
557
- arquivo.add("0001");
558
- arquivo.add("3");
559
- arquivo.add((++sequencia).toString().padStart(5, "0"));
560
- arquivo.add("R");
561
- arquivo.add(" ");
562
- arquivo.add("01");
563
- arquivo.add("0");
564
- arquivo.add("00000000");
565
- arquivo.add("000000000000000");
566
- arquivo.add("0");
567
- arquivo.add("00000000");
568
- arquivo.add("000000000000000");
569
- arquivo.add("2");
570
- arquivo.add(vencimento);
571
- arquivo.add(multa.replace(".", "").padStart(15, "0"));
572
- arquivo.add(" ".padEnd(10, " "));
573
- arquivo.add(" ".padEnd(40, " "));
574
- arquivo.add(" ".padEnd(40, " "));
575
- arquivo.add(" ".padEnd(20, " "));
576
- arquivo.add("00000000");
577
- arquivo.add("000");
578
- arquivo.add("00000");
579
- arquivo.add(" ");
580
- arquivo.add("000000000000");
581
- arquivo.add(" ");
582
- arquivo.add(" ");
583
- arquivo.add("0");
584
- arquivo.add("000000000");
585
- arquivo.addLine();
586
- }
587
- quantidadeRegistro++;
628
+ sequencia++;
588
629
  }
589
- arquivo.add("085");
590
- arquivo.add("0001");
591
- arquivo.add("5");
592
- arquivo.add(" ".padEnd(9, " "));
593
- arquivo.add((sequencia + 3).toString().padStart(6, "0"));
594
- arquivo.add(quantidadeRegistro.toString().padStart(6, "0"));
595
- arquivo.add(total.toFixed(2).replace(".", "").padStart(17, "0"));
596
- arquivo.add("0".padStart(6, "0"));
597
- arquivo.add("0".padStart(17, "0"));
598
- arquivo.add("0".padStart(6, "0"));
599
- arquivo.add("0".padStart(17, "0"));
600
- arquivo.add("0".padStart(6, "0"));
601
- arquivo.add("0".padStart(17, "0"));
602
- arquivo.add(" ".padStart(8, " "));
603
- arquivo.add(" ".padStart(117, " "));
630
+ arquivo.add("91748");
631
+ arquivo.add(dadosBancario.codigo_cedente);
632
+ arquivo.add(" ".padEnd(384, " "));
633
+ arquivo.add(String(sequencia).padStart(6, "0"));
604
634
  arquivo.addLine();
605
- arquivo.add("085");
606
- arquivo.add("9999");
607
- arquivo.add("9");
608
- arquivo.add(" ".padEnd(9, " "));
609
- arquivo.add("000001");
610
- arquivo.add((sequencia + 4).toString().padStart(6, "0"));
611
- arquivo.add("000000");
612
- arquivo.add(" ".padEnd(205, " "));
613
635
  return {
614
- download: remessa2,
636
+ download: `${dadosBancario.codigo_cedente}${retornaMes(data)}${format(data, "dd")}.crm`,
615
637
  arquivo: arquivo.getArquivo()
616
638
  };
617
639
  } catch (error) {
@@ -619,9 +641,19 @@ function gerarRemessa({ dados }) {
619
641
  return null;
620
642
  }
621
643
  }
622
-
623
- // src/banks/ailos/gerarRetorno.ts
624
- import { parse } from "date-fns";
644
+ function retornaMes(data) {
645
+ const mes = data.getMonth() + 1;
646
+ switch (mes) {
647
+ case 10:
648
+ return "O";
649
+ case 11:
650
+ return "N";
651
+ case 12:
652
+ return "D";
653
+ default:
654
+ return mes.toString();
655
+ }
656
+ }
625
657
 
626
658
  // src/utils/agruparRetorno.ts
627
659
  import { format as format2 } from "date-fns";
@@ -636,133 +668,293 @@ function agruparRetorno(documentos) {
636
668
  }, {});
637
669
  }
638
670
 
639
- // src/banks/ailos/gerarRetorno.ts
671
+ // src/banks/sicredi/gerarRetorno.ts
672
+ import { parse } from "date-fns";
640
673
  function gerarRetorno({ dados }) {
641
674
  try {
642
675
  const { arquivo } = dados;
643
676
  const documentos = [];
644
- let index = 0;
645
- for (const item of arquivo) {
646
- let linha = item;
647
- const banco = linha.substring(0, 3);
648
- const codigoRetorno = linha.substring(15, 17);
649
- if ((banco === "001" || banco === "085") && (codigoRetorno === "06" || codigoRetorno === "17")) {
650
- let segmento = linha.substring(13, 14);
651
- if (segmento === "T") {
652
- const linhaDoc = linha.substring(105, 130).trimEnd();
653
- let tipoDocumento = "INDEFINIDO";
654
- let idDocumento = linhaDoc;
655
- if (linhaDoc.includes("-")) {
656
- const [tipoDoc, idDoc] = linhaDoc.split("-");
657
- tipoDocumento = tipoDoc;
658
- idDocumento = idDoc;
659
- }
660
- const especie = tipoDocumento.length ? tipoDocumento : "INDEFINIDO";
661
- linha = arquivo[index + 1];
662
- segmento = linha.substring(13, 14);
663
- if (segmento === "U") {
664
- let dataCredito;
665
- const dataCreditoString = linha.substring(145, 153);
666
- if (dataCreditoString && dataCreditoString !== "00000000") {
667
- dataCredito = parse(dataCreditoString, "ddMMyyyy", /* @__PURE__ */ new Date());
668
- } else {
669
- const dataOcorrenciaString = linha.substring(157, 165);
670
- dataCredito = parse(dataOcorrenciaString, "ddMMyyyy", /* @__PURE__ */ new Date());
671
- }
672
- const valorAbatimentoString = linha.substring(47, 62);
673
- const valorAbatimento = Number(valorAbatimentoString) / 100;
674
- const valorDescontoString = linha.substring(32, 47);
675
- const valorDesconto = Number(valorDescontoString) / 100;
676
- const valorPagoString = linha.substring(77, 92);
677
- const valorPago = Number(valorPagoString) / 100;
678
- const valorJurosString = linha.substring(17, 32);
679
- const valorJuros = Number(valorJurosString) / 100;
680
- const valorMulta = 0;
681
- const descontos = valorAbatimento + valorDesconto;
682
- const valorTotal = valorPago - valorJuros + descontos;
683
- const documento = {
684
- id_documento: idDocumento,
685
- especie,
686
- valor: valorPago,
687
- valor_multa: valorMulta,
688
- valor_juros: valorJuros,
689
- valor_desconto: valorDesconto,
690
- valor_total: valorTotal,
691
- data: dataCredito
692
- };
693
- documentos.push(documento);
694
- }
695
- }
677
+ for (const linha of arquivo) {
678
+ const id_registro = linha.substring(0, 1);
679
+ if (id_registro !== "1" /* DETALHE */) {
680
+ continue;
696
681
  }
697
- index++;
682
+ const ocorrencia = linha.substring(108, 110);
683
+ if (ocorrencia !== "06" && ocorrencia !== "15" && ocorrencia !== "17" && ocorrencia !== "03") {
684
+ continue;
685
+ }
686
+ const motivo = linha.substring(213, 223).trim();
687
+ const meu_numero = linha.substring(116, 126).trim();
688
+ let tipo_documento = "";
689
+ let id_documento = "";
690
+ if (meu_numero.includes("-")) {
691
+ const [tipo, id] = meu_numero.split("-");
692
+ tipo_documento = tipo;
693
+ id_documento = id;
694
+ }
695
+ let especie = "INDEFINIDO";
696
+ if (tipo_documento.length) {
697
+ especie = tipo_documento === "N" ? "NFE" : tipo_documento === "F" ? "FAT" : tipo_documento === "L" ? "FIN" : "INDEFINIDO";
698
+ }
699
+ let dataCredito;
700
+ const dataCreditoString = linha.substring(328, 336);
701
+ if (dataCreditoString && dataCreditoString !== "00000000") {
702
+ dataCredito = parse(dataCreditoString, "yyyyMMdd", /* @__PURE__ */ new Date());
703
+ } else {
704
+ const dataOcorrenciaString = linha.substring(110, 116);
705
+ dataCredito = parse(dataOcorrenciaString, "ddMMyy", /* @__PURE__ */ new Date());
706
+ }
707
+ const valor_titulo = Number(linha.substring(152, 165)) / 100;
708
+ const abatimento = Number(linha.substring(227, 240)) / 100;
709
+ let valor_desconto = Number(linha.substring(240, 253)) / 100;
710
+ const valor_pago = Number(linha.substring(253, 266)) / 100;
711
+ let valor_juros = Number(linha.substring(266, 279)) / 100;
712
+ const valor_multa = Number(linha.substring(279, 292)) / 100;
713
+ if (valor_titulo > valor_pago && valor_desconto === 0) {
714
+ valor_desconto = valor_titulo - valor_pago;
715
+ }
716
+ if (valor_titulo < valor_pago && valor_juros === 0) {
717
+ valor_juros = valor_pago - valor_titulo;
718
+ }
719
+ const descontos = abatimento + valor_desconto;
720
+ const valor_total = valor_titulo + valor_multa + valor_juros - descontos;
721
+ let rejeitado = false;
722
+ let motivoRejeicao = "";
723
+ if (ocorrencia === "03") {
724
+ rejeitado = true;
725
+ motivoRejeicao = retornaMotivoRejeicao(motivo);
726
+ }
727
+ documentos.push({
728
+ id_documento,
729
+ especie,
730
+ valor: valor_pago,
731
+ valor_multa,
732
+ valor_juros,
733
+ valor_desconto,
734
+ valor_total,
735
+ data: dataCredito,
736
+ rejeitado,
737
+ motivo: motivoRejeicao
738
+ });
698
739
  }
699
- const documentoAgrupado = agruparRetorno(documentos);
700
- return documentoAgrupado;
740
+ const documentosAgrupado = agruparRetorno(documentos);
741
+ return documentosAgrupado;
701
742
  } catch (error) {
702
743
  console.log(error);
703
744
  return null;
704
745
  }
705
746
  }
706
-
707
- // src/banks/ailos/index.ts
708
- var ailos = {
709
- gerarDadosBoleto,
710
- gerarPDF,
711
- gerarRemessa,
712
- gerarRetorno
713
- };
714
-
715
- // src/types/Boletos.ts
716
- var Banco = /* @__PURE__ */ ((Banco2) => {
717
- Banco2["AILOS"] = "085";
718
- Banco2["BRADESCO"] = "005";
719
- Banco2["SICREDI"] = "748";
720
- Banco2["SICOOB"] = "756";
721
- Banco2["BANCO_BRASIL"] = "001";
722
- Banco2["ITAU"] = "341";
723
- return Banco2;
724
- })(Banco || {});
725
-
726
- // src/banks/bradesco/gerarDadosBoleto.ts
727
- function gerarDadosBoleto2({ dados }) {
728
- try {
729
- const { bancario, parcela } = dados;
730
- parcela.valor = Number(parcela.valor);
731
- const fatorVencimento = getFatorVencimento(parcela.vencimento);
732
- const valor = getValor2(parcela.valor);
733
- const convenio = padLeft(bancario.convenio, 6);
734
- const numeroDocumento = padLeft(`${parcela.id_boleto}`, 9);
735
- const nossoNumero = padLeft(bancario.numero + bancario.numero_dv, 8) + numeroDocumento;
736
- const campoLivre = convenio + nossoNumero + padLeft(bancario.carteira, 2);
737
- const digitoGeral = getDigitoGeral2(`0859${fatorVencimento}${valor}${campoLivre}`);
738
- const codigoBarra2 = `0859${digitoGeral}${fatorVencimento}${valor}${campoLivre}`;
739
- const campo1 = copy(codigoBarra2, 1, 3) + copy(codigoBarra2, 4, 4) + copy(codigoBarra2, 20, 24);
740
- const campo2 = copy(codigoBarra2, 25, 34);
741
- const campo3 = copy(codigoBarra2, 35, 44);
742
- const campo4 = copy(codigoBarra2, 5, 5);
743
- const campo5 = copy(codigoBarra2, 6, 9) + copy(codigoBarra2, 10, 19);
744
- const digito1 = getDigito2(campo1);
745
- const digito2 = getDigito2(campo2);
746
- const digito3 = getDigito2(campo3);
747
- const digito4 = getDigito2(campo4);
748
- const linhaDigitavel = campo1 + digito1 + campo2 + digito2 + campo3 + digito3 + campo4 + digito4 + campo5;
749
- const dadosBoleto = {
750
- linhaDigitavel,
751
- fatorVencimento,
752
- valor,
753
- convenio,
754
- nossoNumero,
755
- campoLivre,
756
- digitoGeral,
757
- codigoBarra: codigoBarra2,
758
- numeroDocumento
759
- };
760
- return dadosBoleto;
761
- } catch (error) {
762
- console.log("Falha ao gerar dados do boleto", error);
763
- return null;
764
- }
765
- }
747
+ function retornaMotivoRejeicao(codigo) {
748
+ switch (codigo) {
749
+ case "01":
750
+ return "C\xF3digo do banco inv\xE1lido";
751
+ case "02":
752
+ return "C\xF3digo do registro detalhe inv\xE1lido";
753
+ case "03":
754
+ return "C\xF3digo do segmento inv\xE1lido";
755
+ case "04":
756
+ return "C\xF3digo de movimento n\xE3o permitido para carteira";
757
+ case "05":
758
+ return "C\xF3digo de movimento inv\xE1lido";
759
+ case "06":
760
+ return "Tipo/n\xFAmero de inscri\xE7\xE3o do benefici\xE1rio inv\xE1lidos";
761
+ case "07":
762
+ return "Cooperativa cr\xE9dito/ag\xEAncia/conta/DV inv\xE1lido";
763
+ case "08":
764
+ return "Nosso n\xFAmero inv\xE1lido";
765
+ case "09":
766
+ return "Nosso n\xFAmero duplicado";
767
+ case "10":
768
+ return "Carteira inv\xE1lida";
769
+ case "11":
770
+ return "Forma de cadastramento do t\xEDtulo inv\xE1lido";
771
+ case "12":
772
+ return "Tipo de documento inv\xE1lido";
773
+ case "13":
774
+ return "Identifica\xE7\xE3o da emiss\xE3o do boleto inv\xE1lida";
775
+ case "14":
776
+ return "Identifica\xE7\xE3o da distribui\xE7\xE3o do boleto inv\xE1lida";
777
+ case "15":
778
+ return "Caracter\xEDsticas da cobran\xE7a incompat\xEDveis";
779
+ case "16":
780
+ return "Data de vencimento inv\xE1lida";
781
+ case "17":
782
+ return "Data de vencimento anterior a data de emiss\xE3o";
783
+ case "18":
784
+ return "Vencimento fora do prazo de opera\xE7\xE3o";
785
+ case "20":
786
+ return "Valor do t\xEDtulo inv\xE1lido";
787
+ case "21":
788
+ return "Esp\xE9cie do t\xEDtulo inv\xE1lida";
789
+ case "22":
790
+ return "Esp\xE9cie do t\xEDtulo n\xE3o permitida para a carteira";
791
+ case "23":
792
+ return "Aceite inv\xE1lido";
793
+ case "24":
794
+ return "Data da emiss\xE3o inv\xE1lida";
795
+ case "25":
796
+ return "Data da emiss\xE3o posterior a data de entrada";
797
+ case "26":
798
+ return "C\xF3digo de juros de mora inv\xE1lido";
799
+ case "27":
800
+ return "Valor/taxa de juros de mora inv\xE1lido";
801
+ case "28":
802
+ return "C\xF3digo do desconto inv\xE1lido";
803
+ case "29":
804
+ return "Valor do desconto maior ou igual ao valor do t\xEDtulo";
805
+ case "30":
806
+ return "Desconto a conceder n\xE3o confere";
807
+ case "31":
808
+ return "Concess\xE3o de desconto - j\xE1 existe desconto anterior";
809
+ case "33":
810
+ return "Valor do abatimento inv\xE1lido";
811
+ case "34":
812
+ return "Valor do abatimento maior ou igual ao valor do t\xEDtulo";
813
+ case "35":
814
+ return "Valor a conceder n\xE3o confere";
815
+ case "36":
816
+ return "Concess\xE3o de abatimento - j\xE1 existe abatimento anterior";
817
+ case "37":
818
+ return "C\xF3digo para protesto inv\xE1lido";
819
+ case "38":
820
+ return "Prazo para protesto inv\xE1lido";
821
+ case "39":
822
+ return "Pedido de protesto n\xE3o permitido para o t\xEDtulo";
823
+ case "40":
824
+ return "T\xEDtulo com ordem de protesto emitida";
825
+ case "41":
826
+ return "Pedido de cancelamento/susta\xE7\xE3o para t\xEDtulos sem instru\xE7\xE3o de protesto/negativa\xE7\xE3o";
827
+ case "44":
828
+ return "C\xF3digo da moeda inv\xE1lido";
829
+ case "45":
830
+ return "Nome do pagador n\xE3o informado";
831
+ case "46":
832
+ return "Tipo/n\xFAmero de inscri\xE7\xE3o do pagador inv\xE1lidos";
833
+ case "47":
834
+ return "Endere\xE7o do pagador n\xE3o informado";
835
+ case "48":
836
+ return "CEP inv\xE1lido";
837
+ case "53":
838
+ return "Tipo/n\xFAmero de inscri\xE7\xE3o do pagador/avalista inv\xE1lido";
839
+ case "54":
840
+ return "Pagador/avalista n\xE3o informado";
841
+ case "55":
842
+ return "Nosso n\xFAmero no banco correspondente n\xE3o informado";
843
+ case "56":
844
+ return "C\xF3digo do banco correspondente n\xE3o informado";
845
+ case "57":
846
+ return "C\xF3digo da multa inv\xE1lido";
847
+ case "58":
848
+ return "Data da multa inv\xE1lida";
849
+ case "59":
850
+ return "Valor/percentual da multa inv\xE1lido";
851
+ case "60":
852
+ return "Movimento para t\xEDtulo n\xE3o cadastrado";
853
+ case "61":
854
+ return "Altera\xE7\xE3o da cooperativa cr\xE9dito/ag\xEAncia cobradora/DV inv\xE1lida";
855
+ case "62":
856
+ return "Tipo de impress\xE3o inv\xE1lido";
857
+ case "63":
858
+ return "Entrada para t\xEDtulo j\xE1 cadastrado";
859
+ case "64":
860
+ return "N\xFAmero da linha inv\xE1lido";
861
+ case "79":
862
+ return "Data juros de mora inv\xE1lida";
863
+ case "80":
864
+ return "Data do desconto inv\xE1lida";
865
+ case "84":
866
+ return "N\xFAmero autoriza\xE7\xE3o inexistente";
867
+ case "85":
868
+ return "T\xEDtulo com pagamento vinculado";
869
+ case "86":
870
+ return "Seu n\xFAmero inv\xE1lido";
871
+ case "A4":
872
+ return "Pagador DDA";
873
+ case "CZ":
874
+ return "Instru\xE7\xE3o Inv\xE1lida";
875
+ case "L6":
876
+ return "Tipo de comando de instru\xE7\xE3o inv\xE1lida para benefici\xE1rio pessoa f\xEDsica.";
877
+ default:
878
+ return "Motivo desconhecido";
879
+ }
880
+ }
881
+
882
+ // src/banks/sicredi/index.ts
883
+ var sicredi = {
884
+ gerarDadosBoleto,
885
+ gerarPDF,
886
+ gerarRemessa,
887
+ gerarRetorno,
888
+ gerarPDFCarne
889
+ };
890
+
891
+ // src/types/Boletos.ts
892
+ var Banco = /* @__PURE__ */ ((Banco2) => {
893
+ Banco2["AILOS"] = "085";
894
+ Banco2["BRADESCO"] = "005";
895
+ Banco2["SICREDI"] = "748";
896
+ Banco2["SICOOB"] = "756";
897
+ Banco2["BANCO_BRASIL"] = "001";
898
+ Banco2["ITAU"] = "341";
899
+ return Banco2;
900
+ })(Banco || {});
901
+
902
+ // src/carne.ts
903
+ function carne({ banco, dados }) {
904
+ if (banco === "748" /* SICREDI */) {
905
+ return sicredi.gerarPDFCarne({ banco, dados });
906
+ }
907
+ }
908
+
909
+ // src/utils/pafLeft.ts
910
+ function padLeft(numero, tamanho) {
911
+ numero = String(numero);
912
+ if (numero.length < tamanho) {
913
+ numero = `0${numero}`;
914
+ return padLeft(numero, tamanho);
915
+ }
916
+ return numero;
917
+ }
918
+
919
+ // src/banks/ailos/gerarDadosBoleto.ts
920
+ function gerarDadosBoleto2({ dados }) {
921
+ try {
922
+ const { bancario, parcela } = dados;
923
+ parcela.valor = Number(parcela.valor);
924
+ const fatorVencimento = getFatorVencimento(parcela.vencimento);
925
+ const valor = getValor2(parcela.valor);
926
+ const convenio = padLeft(bancario.convenio, 6);
927
+ const numeroDocumento = padLeft(`${parcela.id_boleto}`, 9);
928
+ const nossoNumero = padLeft(bancario.numero + bancario.numero_dv, 8) + numeroDocumento;
929
+ const campoLivre = convenio + nossoNumero + padLeft(bancario.carteira, 2);
930
+ const digitoGeral = getDigitoGeral2(`0859${fatorVencimento}${valor}${campoLivre}`);
931
+ const codigoBarra2 = `0859${digitoGeral}${fatorVencimento}${valor}${campoLivre}`;
932
+ const campo1 = copy(codigoBarra2, 1, 3) + copy(codigoBarra2, 4, 4) + copy(codigoBarra2, 20, 24);
933
+ const campo2 = copy(codigoBarra2, 25, 34);
934
+ const campo3 = copy(codigoBarra2, 35, 44);
935
+ const campo4 = copy(codigoBarra2, 5, 5);
936
+ const campo5 = copy(codigoBarra2, 6, 9) + copy(codigoBarra2, 10, 19);
937
+ const digito1 = getDigito2(campo1);
938
+ const digito2 = getDigito2(campo2);
939
+ const digito3 = getDigito2(campo3);
940
+ const linhaDigitavel = campo1 + digito1 + campo2 + digito2 + campo3 + digito3 + campo4 + campo5;
941
+ const dadosBoleto = {
942
+ linhaDigitavel,
943
+ fatorVencimento,
944
+ valor,
945
+ convenio,
946
+ nossoNumero,
947
+ campoLivre,
948
+ digitoGeral,
949
+ codigoBarra: codigoBarra2,
950
+ numeroDocumento
951
+ };
952
+ return dadosBoleto;
953
+ } catch (error) {
954
+ console.log("Falha ao gerar dados do boleto", error);
955
+ return null;
956
+ }
957
+ }
766
958
  function getValor2(valor) {
767
959
  const valorFormatado = valor.toFixed(2).replace(/\D/g, "");
768
960
  return padLeft(valorFormatado, 10);
@@ -811,20 +1003,23 @@ function getDigito2(texto) {
811
1003
  return String(digito);
812
1004
  }
813
1005
 
814
- // src/banks/bradesco/gerarPDF.ts
815
- import BwipJs2 from "bwip-js";
1006
+ // src/banks/ailos/gerarPDF.ts
1007
+ import BwipJs3 from "bwip-js";
816
1008
  function gerarPDF2(_0) {
817
1009
  return __async(this, arguments, function* ({ dados }) {
818
1010
  try {
819
- const { dadosPDF, generatePDF } = dados;
820
- const codigoBarra2 = yield BwipJs2.toBuffer({
1011
+ const { generatePDF, dadosPDF } = dados;
1012
+ if (!dadosPDF.pagador.cpfcnpj) {
1013
+ throw new Error("CPF/CNPJ do pagador na\u0303o informado!");
1014
+ }
1015
+ const codigoBarra2 = yield BwipJs3.toBuffer({
821
1016
  bcid: "interleaved2of5",
822
1017
  text: dadosPDF.boleto.codigoBarra,
823
1018
  height: 20
824
1019
  });
825
- dadosPDF.beneficiario.dadosBancarios.agencia = dadosPDF.beneficiario.dadosBancarios.agencia.padStart(4, "0");
826
- dadosPDF.beneficiario.dadosBancarios.conta = dadosPDF.beneficiario.dadosBancarios.conta.padStart(7, "0");
827
- dadosPDF.boleto.codigoBarra = maskFormat_default.codigoBarra(dadosPDF.boleto.codigoBarra);
1020
+ dadosPDF.beneficiario.dadosBancario.agencia = dadosPDF.beneficiario.dadosBancario.agencia.padStart(4, "0");
1021
+ dadosPDF.beneficiario.dadosBancario.conta = dadosPDF.beneficiario.dadosBancario.conta.padStart(7, "0");
1022
+ dadosPDF.boleto.linhaDigitavel = maskFormat_default.codigoBarra(dadosPDF.boleto.linhaDigitavel);
828
1023
  dadosPDF.boleto.codigoBarraImage = codigoBarra2.toString("base64");
829
1024
  dadosPDF.beneficiario.cnpj = maskFormat_default.retornaCpfCnpjFormatado(
830
1025
  dadosPDF.beneficiario.cnpj
@@ -835,6 +1030,7 @@ function gerarPDF2(_0) {
835
1030
  dadosPDF.pagador.endereco.cep = maskFormat_default.retornaCEPFormatado(
836
1031
  dadosPDF.pagador.endereco.cep
837
1032
  );
1033
+ dadosPDF.pagador.cpfcnpj = maskFormat_default.retornaCpfCnpjFormatado(dadosPDF.pagador.cpfcnpj);
838
1034
  dadosPDF.boleto.valorAcrescimo = maskFormat_default.numberToReal(
839
1035
  dadosPDF.boleto.valorAcrescimo
840
1036
  );
@@ -844,6 +1040,7 @@ function gerarPDF2(_0) {
844
1040
  dadosPDF.boleto.valorDescontoAbatimento = maskFormat_default.numberToReal(
845
1041
  dadosPDF.boleto.valorDescontoAbatimento
846
1042
  );
1043
+ const valorDocumento = Number(dadosPDF.boleto.valorDocumento);
847
1044
  dadosPDF.boleto.valorDocumento = maskFormat_default.numberToReal(
848
1045
  dadosPDF.boleto.valorDocumento
849
1046
  );
@@ -854,8 +1051,26 @@ function gerarPDF2(_0) {
854
1051
  if (dadosPDF.boleto.quantidade) {
855
1052
  dadosPDF.boleto.quantidade = maskFormat_default.numberToReal(dadosPDF.boleto.quantidade);
856
1053
  }
1054
+ const jurosMes = dadosPDF.beneficiario.dadosBancario.juros;
1055
+ const jurosDia = jurosMes / 100 / 30 * valorDocumento;
1056
+ if (jurosDia > 0) {
1057
+ dadosPDF.boleto.instrucao1 = `COBRAR JUROS DE R$${maskFormat_default.numberToReal(jurosDia)} AO DIA, AP\xD3S O VENCIMENTO`;
1058
+ }
1059
+ const descontoVencimento = dadosPDF.boleto.desconto > 0 ? dadosPDF.boleto.desconto : dadosPDF.beneficiario.dadosBancario.desconto > 0 ? dadosPDF.beneficiario.dadosBancario.desconto : 0;
1060
+ if (descontoVencimento > 0) {
1061
+ dadosPDF.boleto.instrucao2 = `AT\xC9 O VENCIMENTO, CONCEDER DESCONTO DE ${descontoVencimento}%`;
1062
+ }
1063
+ const multaAtraso = dadosPDF.beneficiario.dadosBancario.multa || 0;
1064
+ if (multaAtraso > 0) {
1065
+ dadosPDF.boleto.instrucao3 = `MULTA DE ${multaAtraso}%`;
1066
+ }
1067
+ const protestoDias = dadosPDF.beneficiario.dadosBancario.protesto || 0;
1068
+ if (protestoDias > 0) {
1069
+ dadosPDF.boleto.instrucao4 = `PROTESTAR AP\xD3S ${protestoDias} DIAS CORRIDOS DO VENCIMENTO`;
1070
+ }
857
1071
  dadosPDF.boleto.valor = maskFormat_default.numberToReal(dadosPDF.boleto.valor);
858
- const content = compileHbs(getPathTemplates("bradesco-boleto.hbs"), dadosPDF);
1072
+ dadosPDF.pagador.isCnpj = dadosPDF.pagador.cpfcnpj.length > 14;
1073
+ const content = compileHbs(getPathTemplates("ailos-boleto.hbs"), dadosPDF);
859
1074
  const config = {
860
1075
  displayHeaderFooter: false,
861
1076
  path: "./boleto.pdf",
@@ -878,242 +1093,264 @@ function gerarPDF2(_0) {
878
1093
  dados: pdfBase64
879
1094
  };
880
1095
  } catch (error) {
1096
+ console.log(error);
1097
+ if (error instanceof Error) {
1098
+ return {
1099
+ erro: true,
1100
+ dados: error.message
1101
+ };
1102
+ }
881
1103
  return {
882
1104
  erro: true,
883
- dados: null
1105
+ dados: "Falha ao gerar impress\xE3o do boleto"
884
1106
  };
885
1107
  }
886
1108
  });
887
1109
  }
888
1110
 
889
- // src/banks/bradesco/gerarRemessa.ts
890
- import { addDays as addDays2, format as format3 } from "date-fns";
891
- function gerarRemessa2(_0) {
892
- return __async(this, arguments, function* ({ dados }) {
893
- try {
894
- const { dadosBancario, beneficiario, boletos } = dados.remessa;
895
- const arquivo = new Arquivo();
896
- const dataAtual = /* @__PURE__ */ new Date();
897
- const data = format3(dataAtual, "ddMMyyyy");
898
- const hora = format3(dataAtual, "HHmmss");
899
- const convenio = dadosBancario.convenio.padStart(7, "0");
900
- const numero = dadosBancario.conta.padStart(7, "0") + dadosBancario.contaDigito;
901
- const remessa2 = `REM${convenio}-${numero}-${data}.REM`;
902
- arquivo.add("085");
903
- arquivo.add("0000");
904
- arquivo.add("0");
905
- arquivo.add(" ");
906
- arquivo.add("2");
907
- arquivo.add(beneficiario.cnpj);
908
- arquivo.add(dadosBancario.convenio.padEnd(20, " "));
909
- arquivo.add(dadosBancario.agencia.padStart(5, "0"));
910
- arquivo.add(dadosBancario.agencia);
911
- arquivo.add(dadosBancario.conta.padStart(12, "0"));
912
- arquivo.add(dadosBancario.contaDigito);
913
- arquivo.add(" ");
914
- arquivo.add(beneficiario.nome.substring(0, 30).padEnd(30, " "));
915
- arquivo.add("AILOS".padEnd(30, " "));
916
- arquivo.add(" ");
917
- arquivo.add("1");
918
- arquivo.add(data);
919
- arquivo.add(hora);
920
- arquivo.add(dadosBancario.numeroRemessa.padStart(6, "0"));
921
- arquivo.add("087");
922
- arquivo.add("00000");
923
- arquivo.add(" ".padEnd(20, " "));
924
- arquivo.add(" ".padEnd(20, " "));
925
- arquivo.add(" ".padEnd(29, " "));
926
- arquivo.addLine();
927
- arquivo.add("085");
928
- arquivo.add("0001");
929
- arquivo.add("1");
930
- arquivo.add("R");
931
- arquivo.add("01");
932
- arquivo.add(" ");
933
- arquivo.add("045");
934
- arquivo.add(" ");
935
- arquivo.add("2");
936
- arquivo.add(beneficiario.cnpj.padStart(15, "0"));
937
- arquivo.add(dadosBancario.convenio.padEnd(20, " "));
938
- arquivo.add(dadosBancario.agencia.padStart(5, "0"));
939
- arquivo.add(dadosBancario.agenciaDigito);
940
- arquivo.add(dadosBancario.conta.padStart(12, "0"));
941
- arquivo.add(dadosBancario.contaDigito);
942
- arquivo.add(" ");
943
- arquivo.add(beneficiario.nome.substring(0, 30).padEnd(30, " "));
944
- arquivo.add(" ".padEnd(40, " "));
945
- arquivo.add(" ".padEnd(40, " "));
946
- arquivo.add(dadosBancario.numeroRemessa.padStart(8, "0"));
947
- arquivo.add(data);
948
- arquivo.add("00000000");
949
- arquivo.add(" ".padEnd(33, " "));
950
- arquivo.addLine();
951
- let sequencia = 1;
952
- let quantidadeRegistro = 1;
953
- let total = 0;
954
- for (const boleto of boletos) {
955
- const { pagador } = boleto;
956
- const vencimento = format3(new Date(boleto.vencimento), "ddMMyyyy");
957
- total += Number(boleto.valor);
958
- const codigoJuro = dadosBancario.jurosMes > 0 ? "2" : "3";
959
- const juros = dadosBancario.jurosMes > 0 ? dadosBancario.jurosMes.toFixed(2) : "000000000000000";
960
- const jurosVencimento = format3(
961
- addDays2(new Date(boleto.vencimento), 1),
962
- "ddMMyyyy"
963
- );
964
- const codigoDesconto = dadosBancario.descontoPagamento > 0 ? "2" : "0";
965
- const desconto = dadosBancario.descontoPagamento > 0 ? dadosBancario.descontoPagamento.toFixed(2) : "000000000000000";
966
- const protesto = dadosBancario.diasProtesto > 0 ? "1" : "3";
967
- const diasProtesto = protesto === "1" ? dadosBancario.diasProtesto.toString() : "00";
1111
+ // src/banks/ailos/gerarRemessa.ts
1112
+ import { addDays, format as format3 } from "date-fns";
1113
+ function gerarRemessa2({ dados }) {
1114
+ try {
1115
+ const { dadosBancario, beneficiario, boletos } = dados.remessa;
1116
+ const arquivo = new Arquivo();
1117
+ const dataAtual = /* @__PURE__ */ new Date();
1118
+ const data = format3(dataAtual, "ddMMyyyy");
1119
+ const hora = format3(dataAtual, "HHmmss");
1120
+ const convenio = dadosBancario.convenio.padStart(7, "0");
1121
+ const numero = dadosBancario.conta.padStart(7, "0") + dadosBancario.contaDigito;
1122
+ const remessa2 = `REM${convenio}-${numero}-${data}.REM`;
1123
+ arquivo.add("085");
1124
+ arquivo.add("0000");
1125
+ arquivo.add("0");
1126
+ arquivo.add(" ");
1127
+ arquivo.add("2");
1128
+ arquivo.add(beneficiario.cnpj);
1129
+ arquivo.add(dadosBancario.convenio.padEnd(20, " "));
1130
+ arquivo.add(dadosBancario.agencia.padStart(5, "0"));
1131
+ arquivo.add(dadosBancario.agenciaDigito);
1132
+ arquivo.add(dadosBancario.conta.padStart(12, "0"));
1133
+ arquivo.add(dadosBancario.contaDigito);
1134
+ arquivo.add(" ");
1135
+ arquivo.add(removerCaracterEspecial(beneficiario.nome).substring(0, 30).padEnd(30, " "));
1136
+ arquivo.add("AILOS".padEnd(30, " "));
1137
+ arquivo.add(" ");
1138
+ arquivo.add("1");
1139
+ arquivo.add(data);
1140
+ arquivo.add(hora);
1141
+ arquivo.add(dadosBancario.numeroRemessa.padStart(6, "0"));
1142
+ arquivo.add("087");
1143
+ arquivo.add("00000");
1144
+ arquivo.add(" ".padEnd(20, " "));
1145
+ arquivo.add(" ".padEnd(20, " "));
1146
+ arquivo.add(" ".padEnd(29, " "));
1147
+ arquivo.addLine();
1148
+ arquivo.add("085");
1149
+ arquivo.add("0001");
1150
+ arquivo.add("1");
1151
+ arquivo.add("R");
1152
+ arquivo.add("01");
1153
+ arquivo.add(" ");
1154
+ arquivo.add("045");
1155
+ arquivo.add(" ");
1156
+ arquivo.add("2");
1157
+ arquivo.add(beneficiario.cnpj.padStart(15, "0"));
1158
+ arquivo.add(dadosBancario.convenio.padEnd(20, " "));
1159
+ arquivo.add(dadosBancario.agencia.padStart(5, "0"));
1160
+ arquivo.add(dadosBancario.agenciaDigito);
1161
+ arquivo.add(dadosBancario.conta.padStart(12, "0"));
1162
+ arquivo.add(dadosBancario.contaDigito);
1163
+ arquivo.add(" ");
1164
+ arquivo.add(removerCaracterEspecial(beneficiario.nome).substring(0, 30).padEnd(30, " "));
1165
+ arquivo.add(" ".padEnd(40, " "));
1166
+ arquivo.add(" ".padEnd(40, " "));
1167
+ arquivo.add(dadosBancario.numeroRemessa.padStart(8, "0"));
1168
+ arquivo.add(data);
1169
+ arquivo.add("00000000");
1170
+ arquivo.add(" ".padEnd(33, " "));
1171
+ arquivo.addLine();
1172
+ let sequencia = 0;
1173
+ let quantidadeRegistro = 0;
1174
+ let total = 0;
1175
+ for (const boleto of boletos) {
1176
+ const { pagador } = boleto;
1177
+ const vencimento = format3(new Date(boleto.vencimento), "ddMMyyyy");
1178
+ total += Number(boleto.valor);
1179
+ const codigoJuro = dadosBancario.jurosMes > 0 ? "2" : "3";
1180
+ const juros = dadosBancario.jurosMes > 0 ? dadosBancario.jurosMes.toFixed(2) : "000000000000000";
1181
+ const jurosVencimento = format3(
1182
+ addDays(new Date(boleto.vencimento), 1),
1183
+ "ddMMyyyy"
1184
+ );
1185
+ const codigoDesconto = dadosBancario.descontoPagamento > 0 ? "2" : "0";
1186
+ const desconto = boleto.desconto > 0 ? boleto.desconto.toFixed(2) : dadosBancario.descontoPagamento > 0 ? dadosBancario.descontoPagamento.toFixed(2) : "000000000000000";
1187
+ let diasProtesto = "00";
1188
+ let protesto = "3";
1189
+ switch (dadosBancario.tipo_protesto) {
1190
+ case "Nenhum":
1191
+ protesto = "3";
1192
+ diasProtesto = "00";
1193
+ break;
1194
+ case "Protestar":
1195
+ protesto = "1";
1196
+ diasProtesto = dadosBancario.diasProtesto.toString().padStart(2, "0");
1197
+ break;
1198
+ case "Negativar":
1199
+ protesto = "2";
1200
+ diasProtesto = dadosBancario.diasProtesto.toString().padStart(2, "0");
1201
+ break;
1202
+ default:
1203
+ protesto = "3";
1204
+ diasProtesto = "00";
1205
+ break;
1206
+ }
1207
+ arquivo.add("085");
1208
+ arquivo.add("0001");
1209
+ arquivo.add("3");
1210
+ arquivo.add((++sequencia).toString().padStart(5, "0"));
1211
+ arquivo.add("P");
1212
+ arquivo.add(" ");
1213
+ arquivo.add("01");
1214
+ arquivo.add(dadosBancario.agencia.padStart(5, "0"));
1215
+ arquivo.add(dadosBancario.agenciaDigito);
1216
+ arquivo.add(dadosBancario.conta.padStart(12, "0"));
1217
+ arquivo.add(dadosBancario.contaDigito);
1218
+ arquivo.add(" ");
1219
+ arquivo.add(boleto.nossoNumero.padEnd(20, " "));
1220
+ arquivo.add("1");
1221
+ arquivo.add("1");
1222
+ arquivo.add("1");
1223
+ arquivo.add("2");
1224
+ arquivo.add("2");
1225
+ arquivo.add(`${boleto.numeroDocumento}/${boleto.parcela}`.padEnd(15, " "));
1226
+ arquivo.add(vencimento);
1227
+ arquivo.add(
1228
+ Number(boleto.valor).toFixed(2).replace(".", "").padStart(15, "0")
1229
+ );
1230
+ arquivo.add(dadosBancario.agencia.padStart(5, "0"));
1231
+ arquivo.add(dadosBancario.agenciaDigito);
1232
+ arquivo.add("02");
1233
+ arquivo.add(boleto.aceite);
1234
+ arquivo.add(data);
1235
+ arquivo.add(codigoJuro);
1236
+ arquivo.add(jurosVencimento);
1237
+ arquivo.add(juros.replace(".", "").padStart(15, "0"));
1238
+ arquivo.add(codigoDesconto);
1239
+ arquivo.add(vencimento);
1240
+ arquivo.add(desconto.replace(".", "").padStart(15, "0"));
1241
+ arquivo.add("000000000000000");
1242
+ arquivo.add("000000000000000");
1243
+ arquivo.add(boleto.identificacaoTitulo.padEnd(25, " "));
1244
+ arquivo.add(protesto);
1245
+ arquivo.add(diasProtesto);
1246
+ arquivo.add("2");
1247
+ arquivo.add(" ");
1248
+ arquivo.add("09");
1249
+ arquivo.add("0000000000");
1250
+ arquivo.add(" ");
1251
+ arquivo.addLine();
1252
+ let tipoInscricao = "1";
1253
+ if (pagador.pessoa === "F") {
1254
+ tipoInscricao = "1";
1255
+ } else {
1256
+ tipoInscricao = "2";
1257
+ }
1258
+ pagador.endereco.logradouro = `${removerCaracterEspecial(pagador.endereco.logradouro).substring(0, 32).padEnd(32, " ")}${pagador.endereco.numero.padEnd(8, " ")}`;
1259
+ arquivo.add("085");
1260
+ arquivo.add("0001");
1261
+ arquivo.add("3");
1262
+ arquivo.add((++sequencia).toString().padStart(5, "0"));
1263
+ arquivo.add("Q");
1264
+ arquivo.add(" ");
1265
+ arquivo.add("01");
1266
+ arquivo.add(tipoInscricao);
1267
+ arquivo.add(pagador.cpfCnpj.padStart(15, "0"));
1268
+ arquivo.add(removerCaracterEspecial(pagador.nome).substring(0, 40).padEnd(40, " "));
1269
+ arquivo.add(removerCaracterEspecial(pagador.endereco.logradouro).substring(0, 40).padEnd(40, " "));
1270
+ arquivo.add(removerCaracterEspecial(pagador.endereco.bairro).substring(0, 15).padEnd(15, " "));
1271
+ arquivo.add(pagador.endereco.cep.substring(0, 5).padStart(5, "0"));
1272
+ arquivo.add(pagador.endereco.cep.substring(5, 7).padStart(3, "0"));
1273
+ arquivo.add(removerCaracterEspecial(pagador.endereco.municipio).substring(0, 15).padEnd(15, " "));
1274
+ arquivo.add(removerCaracterEspecial(pagador.endereco.uf).padEnd(2, " "));
1275
+ arquivo.add("0");
1276
+ arquivo.add("000000000000000");
1277
+ arquivo.add(" ".padEnd(40, " "));
1278
+ arquivo.add("000");
1279
+ arquivo.add(" ".padEnd(20, " "));
1280
+ arquivo.add(" ".padEnd(8, " "));
1281
+ arquivo.addLine();
1282
+ dadosBancario.multaAtraso = Number(dadosBancario.multaAtraso || 0);
1283
+ if (dadosBancario.multaAtraso > 0) {
1284
+ const multa = dadosBancario.multaAtraso.toFixed(2);
968
1285
  arquivo.add("085");
969
1286
  arquivo.add("0001");
970
1287
  arquivo.add("3");
971
- arquivo.add(sequencia.toString().padStart(5, "0"));
972
- arquivo.add("P");
1288
+ arquivo.add((++sequencia).toString().padStart(5, "0"));
1289
+ arquivo.add("R");
973
1290
  arquivo.add(" ");
974
1291
  arquivo.add("01");
975
- arquivo.add(dadosBancario.agencia.padStart(5, "0"));
976
- arquivo.add(dadosBancario.agenciaDigito);
977
- arquivo.add(dadosBancario.conta.padStart(12, "0"));
978
- arquivo.add(dadosBancario.contaDigito);
979
- arquivo.add(" ");
980
- arquivo.add(boleto.nossoNumero.padEnd(20, " "));
981
- arquivo.add("1");
982
- arquivo.add("1");
983
- arquivo.add("1");
984
- arquivo.add("2");
985
- arquivo.add("2");
986
- arquivo.add(`${boleto.numeroDocumento}/${boleto.parcela}`.padEnd(15, " "));
987
- arquivo.add(vencimento);
988
- arquivo.add(
989
- Number(boleto.valor).toFixed(2).replace(".", "").padStart(15, "0")
990
- );
991
- arquivo.add(dadosBancario.agencia.padStart(5, "0"));
992
- arquivo.add(dadosBancario.agenciaDigito);
993
- arquivo.add("02");
994
- arquivo.add("A");
995
- arquivo.add(data);
996
- arquivo.add(codigoJuro);
997
- arquivo.add(jurosVencimento);
998
- arquivo.add(juros.replace(".", "").padStart(15, "0"));
999
- arquivo.add(codigoDesconto);
1000
- arquivo.add(vencimento);
1001
- arquivo.add(desconto.replace(".", "").padStart(15, "0"));
1292
+ arquivo.add("0");
1293
+ arquivo.add("00000000");
1002
1294
  arquivo.add("000000000000000");
1295
+ arquivo.add("0");
1296
+ arquivo.add("00000000");
1003
1297
  arquivo.add("000000000000000");
1004
- arquivo.add(boleto.identificacaoTitulo.padEnd(25, " "));
1005
- arquivo.add(protesto);
1006
- arquivo.add(diasProtesto.padStart(1, "0"));
1007
1298
  arquivo.add("2");
1008
- arquivo.add(" ");
1009
- arquivo.add("09");
1010
- arquivo.add("0000000000");
1299
+ arquivo.add(vencimento);
1300
+ arquivo.add(multa.replace(".", "").padStart(15, "0"));
1301
+ arquivo.add(" ".padEnd(10, " "));
1302
+ arquivo.add(" ".padEnd(40, " "));
1303
+ arquivo.add(" ".padEnd(40, " "));
1304
+ arquivo.add(" ".padEnd(20, " "));
1305
+ arquivo.add("00000000");
1306
+ arquivo.add("000");
1307
+ arquivo.add("00000");
1308
+ arquivo.add(" ");
1309
+ arquivo.add("000000000000");
1011
1310
  arquivo.add(" ");
1012
- sequencia++;
1013
- arquivo.addLine();
1014
- let tipoInscricao = "1";
1015
- if (pagador.pessoa === "F") {
1016
- tipoInscricao = "1";
1017
- } else {
1018
- tipoInscricao = "2";
1019
- }
1020
- pagador.endereco.logradouro = `${pagador.endereco.logradouro.substring(0, 32).padEnd(32, " ")}${pagador.endereco.numero.padEnd(8, " ")}`;
1021
- arquivo.add("085");
1022
- arquivo.add("0001");
1023
- arquivo.add("3");
1024
- arquivo.add(sequencia.toString().padStart(5, "0"));
1025
- arquivo.add("Q");
1026
1311
  arquivo.add(" ");
1027
- arquivo.add("01");
1028
- arquivo.add(tipoInscricao);
1029
- arquivo.add(pagador.cpfCnpj.padStart(15, "0"));
1030
- arquivo.add(pagador.nome.substring(0, 40).padEnd(40, " "));
1031
- arquivo.add(pagador.endereco.logradouro.substring(0, 40).padEnd(40, " "));
1032
- arquivo.add(pagador.endereco.bairro.substring(0, 15).padEnd(15, " "));
1033
- arquivo.add(pagador.endereco.cep.substring(0, 5).padStart(5, "0"));
1034
- arquivo.add(pagador.endereco.cep.substring(5, 7).padStart(3, "0"));
1035
- arquivo.add(pagador.endereco.municipio.substring(0, 15).padEnd(15, " "));
1036
- arquivo.add(pagador.endereco.uf.padEnd(2, " "));
1037
1312
  arquivo.add("0");
1038
- arquivo.add("000000000000000");
1039
- arquivo.add(" ".padEnd(40, " "));
1040
- arquivo.add("000");
1041
- arquivo.add(" ".padEnd(20, " "));
1042
- arquivo.add(" ".padEnd(8, " "));
1043
- dadosBancario.multaAtraso = Number(dadosBancario.multaAtraso || 0);
1044
- if (dadosBancario.multaAtraso > 0) {
1045
- arquivo.addLine();
1046
- const multa = dadosBancario.multaAtraso.toFixed(2);
1047
- sequencia++;
1048
- arquivo.add("085");
1049
- arquivo.add("0001");
1050
- arquivo.add("3");
1051
- arquivo.add(sequencia.toString().padStart(5, "0"));
1052
- arquivo.add("R");
1053
- arquivo.add(" ");
1054
- arquivo.add("01");
1055
- arquivo.add("0");
1056
- arquivo.add("00000000");
1057
- arquivo.add("000000000000000");
1058
- arquivo.add("0");
1059
- arquivo.add("00000000");
1060
- arquivo.add("000000000000000");
1061
- arquivo.add("2");
1062
- arquivo.add(vencimento);
1063
- arquivo.add(multa.replace(".", "").padStart(15, "0"));
1064
- arquivo.add(" ".padEnd(10, " "));
1065
- arquivo.add(" ".padEnd(40, " "));
1066
- arquivo.add(" ".padEnd(40, " "));
1067
- arquivo.add(" ".padEnd(20, " "));
1068
- arquivo.add("00000000");
1069
- arquivo.add("000");
1070
- arquivo.add("00000");
1071
- arquivo.add(" ");
1072
- arquivo.add("000000000000");
1073
- arquivo.add(" ");
1074
- arquivo.add(" ");
1075
- arquivo.add("0");
1076
- arquivo.add("000000000");
1077
- }
1313
+ arquivo.add("000000000");
1078
1314
  arquivo.addLine();
1079
- quantidadeRegistro++;
1080
1315
  }
1081
- arquivo.add("085");
1082
- arquivo.add("0001");
1083
- arquivo.add("5");
1084
- arquivo.add(" ".padEnd(9, " "));
1085
- arquivo.add((sequencia + 3).toString().padStart(6, "0"));
1086
- arquivo.add(quantidadeRegistro.toString().padStart(6, "0"));
1087
- arquivo.add(total.toFixed(2).replace(".", "").padStart(17, "0"));
1088
- arquivo.add("0".padStart(6, "0"));
1089
- arquivo.add("0".padStart(17, "0"));
1090
- arquivo.add("0".padStart(6, "0"));
1091
- arquivo.add("0".padStart(17, "0"));
1092
- arquivo.add("0".padStart(6, "0"));
1093
- arquivo.add("0".padStart(17, "0"));
1094
- arquivo.add(" ".padStart(8, " "));
1095
- arquivo.add(" ".padStart(117, " "));
1096
- arquivo.addLine();
1097
- arquivo.add("085");
1098
- arquivo.add("9999");
1099
- arquivo.add("9");
1100
- arquivo.add(" ".padEnd(9, " "));
1101
- arquivo.add("000001");
1102
- arquivo.add((sequencia + 4).toString().padStart(6, "0"));
1103
- arquivo.add("000000");
1104
- arquivo.add(" ".padEnd(205, " "));
1105
- return {
1106
- download: remessa2,
1107
- arquivo: arquivo.getArquivo()
1108
- };
1109
- } catch (error) {
1110
- console.log(error);
1111
- return null;
1316
+ quantidadeRegistro++;
1112
1317
  }
1113
- });
1318
+ arquivo.add("085");
1319
+ arquivo.add("0001");
1320
+ arquivo.add("5");
1321
+ arquivo.add(" ".padEnd(9, " "));
1322
+ arquivo.add((sequencia + 3).toString().padStart(6, "0"));
1323
+ arquivo.add(quantidadeRegistro.toString().padStart(6, "0"));
1324
+ arquivo.add(total.toFixed(2).replace(".", "").padStart(17, "0"));
1325
+ arquivo.add("0".padStart(6, "0"));
1326
+ arquivo.add("0".padStart(17, "0"));
1327
+ arquivo.add("0".padStart(6, "0"));
1328
+ arquivo.add("0".padStart(17, "0"));
1329
+ arquivo.add("0".padStart(6, "0"));
1330
+ arquivo.add("0".padStart(17, "0"));
1331
+ arquivo.add(" ".padStart(8, " "));
1332
+ arquivo.add(" ".padStart(117, " "));
1333
+ arquivo.addLine();
1334
+ arquivo.add("085");
1335
+ arquivo.add("9999");
1336
+ arquivo.add("9");
1337
+ arquivo.add(" ".padEnd(9, " "));
1338
+ arquivo.add("000001");
1339
+ arquivo.add((sequencia + 4).toString().padStart(6, "0"));
1340
+ arquivo.add("000000");
1341
+ arquivo.add(" ".padEnd(205, " "));
1342
+ return {
1343
+ download: remessa2,
1344
+ arquivo: arquivo.getArquivo()
1345
+ };
1346
+ } catch (error) {
1347
+ console.log(error);
1348
+ return null;
1349
+ }
1114
1350
  }
1115
1351
 
1116
- // src/banks/bradesco/gerarRetorno.ts
1352
+ // src/banks/ailos/gerarRetorno.ts
1353
+ import { parse as parse2 } from "date-fns";
1117
1354
  function gerarRetorno2({ dados }) {
1118
1355
  try {
1119
1356
  const { arquivo } = dados;
@@ -1121,23 +1358,31 @@ function gerarRetorno2({ dados }) {
1121
1358
  let index = 0;
1122
1359
  for (const item of arquivo) {
1123
1360
  let linha = item;
1124
- const banco = linha.substring(0, 3);
1125
1361
  const codigoRetorno = linha.substring(15, 17);
1126
- if ((banco === "001" || banco === "085") && (codigoRetorno === "06" || codigoRetorno === "17")) {
1362
+ if (codigoRetorno === "06" || codigoRetorno === "17" || codigoRetorno === "03") {
1127
1363
  let segmento = linha.substring(13, 14);
1128
1364
  if (segmento === "T") {
1129
- let tipoDocumento = "";
1130
- let idDocumento = "";
1365
+ const motivo = linha.substring(213, 223).trim();
1131
1366
  const linhaDoc = linha.substring(105, 130).trimEnd();
1367
+ let tipoDocumento = "INDEFINIDO";
1368
+ let idDocumento = linhaDoc;
1132
1369
  if (linhaDoc.includes("-")) {
1133
- [tipoDocumento, idDocumento] = linha.split("-");
1134
- } else {
1135
- idDocumento = linhaDoc;
1370
+ const [tipoDoc, idDoc] = linhaDoc.split("-");
1371
+ tipoDocumento = tipoDoc;
1372
+ idDocumento = idDoc;
1136
1373
  }
1137
1374
  const especie = tipoDocumento.length ? tipoDocumento : "INDEFINIDO";
1138
1375
  linha = arquivo[index + 1];
1139
1376
  segmento = linha.substring(13, 14);
1140
1377
  if (segmento === "U") {
1378
+ let dataCredito;
1379
+ const dataCreditoString = linha.substring(145, 153);
1380
+ if (dataCreditoString && dataCreditoString !== "00000000") {
1381
+ dataCredito = parse2(dataCreditoString, "ddMMyyyy", /* @__PURE__ */ new Date());
1382
+ } else {
1383
+ const dataOcorrenciaString = linha.substring(157, 165);
1384
+ dataCredito = parse2(dataOcorrenciaString, "ddMMyyyy", /* @__PURE__ */ new Date());
1385
+ }
1141
1386
  const valorAbatimentoString = linha.substring(47, 62);
1142
1387
  const valorAbatimento = Number(valorAbatimentoString) / 100;
1143
1388
  const valorDescontoString = linha.substring(32, 47);
@@ -1149,15 +1394,23 @@ function gerarRetorno2({ dados }) {
1149
1394
  const valorMulta = 0;
1150
1395
  const descontos = valorAbatimento + valorDesconto;
1151
1396
  const valorTotal = valorPago - valorJuros + descontos;
1397
+ let rejeitado = false;
1398
+ let motivoRejeicao = "";
1399
+ if (codigoRetorno === "03") {
1400
+ rejeitado = true;
1401
+ motivoRejeicao = retornaMotivoRejeicao2(motivo);
1402
+ }
1152
1403
  const documento = {
1153
1404
  id_documento: idDocumento,
1154
1405
  especie,
1155
- valor: valorTotal,
1156
- valor_desconto: 0,
1157
- valor_juros: 0,
1158
- valor_multa: 0,
1159
- valor_total: 0,
1160
- data: /* @__PURE__ */ new Date()
1406
+ valor: valorPago,
1407
+ valor_multa: valorMulta,
1408
+ valor_juros: valorJuros,
1409
+ valor_desconto: valorDesconto,
1410
+ valor_total: valorTotal,
1411
+ data: dataCredito,
1412
+ rejeitado,
1413
+ motivo: motivoRejeicao
1161
1414
  };
1162
1415
  documentos.push(documento);
1163
1416
  }
@@ -1172,123 +1425,244 @@ function gerarRetorno2({ dados }) {
1172
1425
  return null;
1173
1426
  }
1174
1427
  }
1175
-
1176
- // src/banks/bradesco/index.ts
1177
- var bradesco = {
1178
- gerarDadosBoleto: gerarDadosBoleto2,
1179
- gerarPDF: gerarPDF2,
1180
- gerarRemessa: gerarRemessa2,
1181
- gerarRetorno: gerarRetorno2
1182
- };
1183
-
1184
- // src/banks/sicredi/gerarDadosBoleto.ts
1185
- function gerarDadosBoleto3({ dados }) {
1186
- try {
1187
- const { bancario, parcela } = dados;
1188
- parcela.valor = Number(parcela.valor);
1189
- const fatorVencimento = getFatorVencimento(parcela.vencimento);
1190
- const valor = getValor3(parcela.valor);
1191
- const nossoNumero = getNossoNumero(
1192
- parcela.numeroUnico,
1193
- bancario.agencia,
1194
- bancario.posto,
1195
- bancario.codigoCedente
1196
- );
1197
- let campoLivre = bancario.tipoCobranca + bancario.tipoCarteira + nossoNumero + bancario.agencia.padStart(4, "0") + bancario.posto.padStart(2, "0") + bancario.codigoCedente.padStart(5, "0") + 10;
1198
- const digitoCampoLivre = getDigitoCampoLivre(campoLivre);
1199
- campoLivre = campoLivre + digitoCampoLivre;
1200
- const digitoGeral = getDigitoGeral3(`7489${fatorVencimento}${valor}${campoLivre}`);
1201
- const codigoBarra2 = `7489${digitoGeral}${fatorVencimento}${valor}${campoLivre}`;
1202
- const campo1 = copy(codigoBarra2, 1, 3) + copy(codigoBarra2, 4, 4) + copy(codigoBarra2, 20, 24);
1203
- const campo2 = copy(codigoBarra2, 25, 34);
1204
- const campo3 = copy(codigoBarra2, 35, 44);
1205
- const campo4 = copy(codigoBarra2, 5, 5);
1206
- const campo5 = copy(codigoBarra2, 6, 9) + copy(codigoBarra2, 10, 19);
1207
- const digito1 = getDigito3(campo1);
1208
- const digito2 = getDigito3(campo2);
1209
- const digito3 = getDigito3(campo3);
1210
- const linhaDigitavel = campo1 + digito1 + campo2 + digito2 + campo3 + digito3 + campo4 + /*digito4*/
1211
- +campo5;
1212
- const dadosBoleto = {
1213
- linhaDigitavel,
1214
- fatorVencimento,
1215
- valor,
1216
- nossoNumero,
1217
- campoLivre,
1218
- digitoGeral,
1219
- codigoBarra: codigoBarra2
1220
- };
1221
- return dadosBoleto;
1222
- } catch (error) {
1223
- console.log("Falha ao gerar dados do boleto", error);
1224
- return null;
1225
- }
1226
- }
1227
- function getNossoNumero(id, agencia, posto, codigoCedente) {
1228
- let i = 19;
1229
- let j = 1;
1230
- let soma = 0;
1231
- let digito = 0;
1232
- const texto = agencia.padStart(4, "0") + posto.padStart(2, "0") + codigoCedente.padStart(5, "0") + id.padStart(8, "0");
1233
- while (i >= 1) {
1234
- j++;
1235
- if (j === 10)
1236
- j = 2;
1237
- const valor = Number(copy(texto, i, i));
1238
- soma += j * valor;
1239
- i--;
1240
- }
1241
- const restoDivisao = soma % 11;
1242
- digito = 11 - restoDivisao;
1243
- if (restoDivisao === 0 || restoDivisao === 1)
1244
- digito = 0;
1245
- return id.padStart(8, "0") + digito.toString();
1246
- }
1247
- function getValor3(valor) {
1248
- const valorFormatado = valor.toFixed(2).replace(/\D/g, "");
1249
- return valorFormatado.padStart(10, "0");
1250
- }
1251
- function getDigitoCampoLivre(texto) {
1252
- let i = 24;
1253
- let j = 1;
1254
- let soma = 0;
1255
- let digito = 0;
1256
- while (i >= 1) {
1257
- j++;
1258
- if (j === 10)
1259
- j = 2;
1260
- let valor = Number(copy(texto, i, i));
1261
- soma += valor * j;
1262
- i--;
1263
- }
1264
- const restoDivisao = soma % 11;
1265
- if (restoDivisao > 1)
1266
- digito = 11 - restoDivisao;
1267
- return String(digito);
1268
- }
1269
- function getDigitoGeral3(texto) {
1270
- let i = 43;
1271
- let j = 1;
1272
- let soma = 0;
1273
- let digito = 0;
1274
- while (i >= 1) {
1275
- j++;
1276
- if (j === 10)
1277
- j = 2;
1278
- const valor = Number(copy(texto, i, i));
1279
- soma += j * valor;
1280
- i--;
1281
- }
1282
- const restoDivisao = soma % 11;
1283
- digito = 11 - restoDivisao;
1284
- if (digito <= 1 || digito >= 10)
1285
- digito = 1;
1286
- return String(digito);
1287
- }
1288
- function getDigito3(texto) {
1289
- let i = texto.length;
1290
- let j = 1;
1291
- let total = 0;
1428
+ function retornaMotivoRejeicao2(codigo) {
1429
+ switch (codigo) {
1430
+ case "01":
1431
+ return "C\xF3digo do Banco Inv\xE1lido";
1432
+ case "02":
1433
+ return "C\xF3digo do Registro Detalhe Inv\xE1lido";
1434
+ case "03":
1435
+ return "C\xF3digo do Segmento Inv\xE1lido";
1436
+ case "04":
1437
+ return "C\xF3digo de Movimento N\xE3o Permitido para Carteira";
1438
+ case "05":
1439
+ return "C\xF3digo de Movimento Inv\xE1lido";
1440
+ case "06":
1441
+ return "Tipo/N\xFAmero de Inscri\xE7\xE3o do Cedente Inv\xE1lidos";
1442
+ case "07":
1443
+ return "Ag\xEAncia/Conta/DV Inv\xE1lido";
1444
+ case "08":
1445
+ return "Nosso N\xFAmero Inv\xE1lido";
1446
+ case "09":
1447
+ return "Nosso N\xFAmero Duplicado";
1448
+ case "10":
1449
+ return "Carteira Inv\xE1lida";
1450
+ case "11":
1451
+ return "Forma de Cadastramento do T\xEDtulo Inv\xE1lido";
1452
+ case "12":
1453
+ return "Tipo de Documento Inv\xE1lido";
1454
+ case "13":
1455
+ return "Identifica\xE7\xE3o da Emiss\xE3o do Boleto Inv\xE1lida";
1456
+ case "14":
1457
+ return "Identifica\xE7\xE3o da Distribui\xE7\xE3o do Boleto Inv\xE1lida";
1458
+ case "15":
1459
+ return "Caracter\xEDsticas da Cobran\xE7a Incompat\xEDveis";
1460
+ case "16":
1461
+ return "Data de Vencimento Inv\xE1lida";
1462
+ case "17":
1463
+ return "Data de Vencimento Anterior \xE0 Data de Emiss\xE3o";
1464
+ case "18":
1465
+ return "Vencimento Fora do Prazo de Opera\xE7\xE3o";
1466
+ case "19":
1467
+ return "T\xEDtulo a Cargo de Bancos Correspondentes com Vencimento Inferior a XX Dias";
1468
+ case "20":
1469
+ return "Valor do T\xEDtulo Inv\xE1lido";
1470
+ case "21":
1471
+ return "Esp\xE9cie do T\xEDtulo Inv\xE1lida";
1472
+ case "22":
1473
+ return "Esp\xE9cie do T\xEDtulo N\xE3o Permitida para a Carteira";
1474
+ case "23":
1475
+ return "Aceite Inv\xE1lido";
1476
+ case "24":
1477
+ return "Data da Emiss\xE3o Inv\xE1lida";
1478
+ case "25":
1479
+ return "Data da Emiss\xE3o Posterior a Data de Entrada";
1480
+ case "26":
1481
+ return "C\xF3digo de Juros de Mora Inv\xE1lido";
1482
+ case "27":
1483
+ return "Vlr/Taxa de Juros de Mora Inv\xE1lido";
1484
+ case "28":
1485
+ return "C\xF3digo do Desconto Inv\xE1lido";
1486
+ case "29":
1487
+ return "Valor do Desconto Maior ou Igual ao Valor do T\xEDtulo";
1488
+ case "30":
1489
+ return "Desconto a Conceder N\xE3o Confere";
1490
+ case "31":
1491
+ return "Concess\xE3o de Desconto - J\xE1 Existe Desconto Anterior";
1492
+ case "33":
1493
+ return "Valor do Abatimento Inv\xE1lido";
1494
+ case "34":
1495
+ return "Valor do Abatimento Maior ou Igual ao Valor do T\xEDtulo";
1496
+ case "35":
1497
+ return "Valor a Conceder N\xE3o Confere";
1498
+ case "36":
1499
+ return "Concess\xE3o de Abatimento - J\xE1 Existe Abatimento Anterior";
1500
+ case "37":
1501
+ return "C\xF3digo para Protesto Inv\xE1lido";
1502
+ case "38":
1503
+ return "Prazo para Protesto Inv\xE1lido";
1504
+ case "39":
1505
+ return "Pedido de Protesto N\xE3o Permitido para o T\xEDtulo";
1506
+ case "40":
1507
+ return "T\xEDtulo com Ordem de Protesto Emitida";
1508
+ case "41":
1509
+ return "Pedido de Cancelamento/Susta\xE7\xE3o para T\xEDtulos sem Instru\xE7\xE3o de Protesto";
1510
+ case "42":
1511
+ return "C\xF3digo para Baixa/Devolu\xE7\xE3o Inv\xE1lido";
1512
+ case "43":
1513
+ return "Prazo para Baixa/Devolu\xE7\xE3o Inv\xE1lido";
1514
+ case "44":
1515
+ return "C\xF3digo da Moeda Inv\xE1lido";
1516
+ case "45":
1517
+ return "Nome do Sacado N\xE3o Informado";
1518
+ case "46":
1519
+ return "Tipo/N\xFAmero de Inscri\xE7\xE3o do Sacado Inv\xE1lidos";
1520
+ case "47":
1521
+ return "Endere\xE7o do Sacado N\xE3o Informado";
1522
+ case "48":
1523
+ return "CEP Inv\xE1lido";
1524
+ case "49":
1525
+ return "CEP Sem Pra\xE7a de Cobran\xE7a (N\xE3o Localizado)";
1526
+ case "50":
1527
+ return "CEP Referente a um Banco Correspondente";
1528
+ case "51":
1529
+ return "CEP incompat\xEDvel com a Unidade da Federa\xE7\xE3o";
1530
+ case "52":
1531
+ return "Unidade da Federa\xE7\xE3o Inv\xE1lida";
1532
+ case "53":
1533
+ return "Tipo/N\xFAmero de Inscri\xE7\xE3o do Sacador/Avalista Inv\xE1lidos";
1534
+ case "54":
1535
+ return "Sacador/Avalista N\xE3o Informado";
1536
+ case "55":
1537
+ return "Nosso n\xFAmero no Banco Correspondente N\xE3o Informado";
1538
+ case "56":
1539
+ return "C\xF3digo do Banco Correspondente N\xE3o Informado";
1540
+ case "57":
1541
+ return "C\xF3digo da Multa Inv\xE1lido";
1542
+ case "58":
1543
+ return "Data da Multa Inv\xE1lida";
1544
+ case "59":
1545
+ return "Valor/Percentual da Multa Inv\xE1lido";
1546
+ case "60":
1547
+ return "Movimento para T\xEDtulo N\xE3o Cadastrado";
1548
+ case "61":
1549
+ return "Altera\xE7\xE3o da Ag\xEAncia Cobradora/DV Inv\xE1lida";
1550
+ case "62":
1551
+ return "Tipo de Impress\xE3o Inv\xE1lido";
1552
+ case "63":
1553
+ return "Entrada para T\xEDtulo j\xE1 cadastrado";
1554
+ case "64":
1555
+ return "N\xFAmero da Linha Inv\xE1lido";
1556
+ case "65":
1557
+ return "C\xF3digo do Banco para D\xE9bito Inv\xE1lido";
1558
+ case "66":
1559
+ return "Ag\xEAncia/Conta/DV para D\xE9bito Inv\xE1lido";
1560
+ case "79":
1561
+ return "Data Juros de Mora Inv\xE1lido";
1562
+ case "80":
1563
+ return "Data do Desconto Inv\xE1lida";
1564
+ case "86":
1565
+ return "Seu N\xFAmero Inv\xE1lido";
1566
+ case "89":
1567
+ return "E-mail/SMS devolvido - endere\xE7o de e-mail ou n\xFAmero do celular incorreto";
1568
+ case "91":
1569
+ return "E-mail/n\xFAmero do celular do sacado n\xE3o informado";
1570
+ case "96":
1571
+ return "N\xFAmero do Convenio invalido";
1572
+ case "97":
1573
+ return "Rejei\xE7\xE3o da altera\xE7\xE3o do prazo limite de recebimento";
1574
+ case "98":
1575
+ return "Rejei\xE7\xE3o de dispensa de prazo limite de recebimento";
1576
+ case "99":
1577
+ return "Rejei\xE7\xE3o da altera\xE7\xE3o do n\xFAmero do t\xEDtulo dado pelo cedente";
1578
+ case "A2":
1579
+ return "Rejei\xE7\xE3o da altera\xE7\xE3o dos dados do sacado";
1580
+ case "A3":
1581
+ return "Rejei\xE7\xE3o da altera\xE7\xE3o dos dados do sacador/avalista";
1582
+ case "A4":
1583
+ return "Sacado DDA";
1584
+ case "A4R1":
1585
+ return "Sacado DDA / Registro online";
1586
+ default:
1587
+ return "Motivo de rejei\xE7\xE3o desconhecido";
1588
+ }
1589
+ }
1590
+
1591
+ // src/banks/ailos/index.ts
1592
+ var ailos = {
1593
+ gerarDadosBoleto: gerarDadosBoleto2,
1594
+ gerarPDF: gerarPDF2,
1595
+ gerarRemessa: gerarRemessa2,
1596
+ gerarRetorno: gerarRetorno2
1597
+ };
1598
+
1599
+ // src/banks/bradesco/gerarDadosBoleto.ts
1600
+ function gerarDadosBoleto3({ dados }) {
1601
+ try {
1602
+ const { bancario, parcela } = dados;
1603
+ parcela.valor = Number(parcela.valor);
1604
+ const fatorVencimento = getFatorVencimento(parcela.vencimento);
1605
+ const valor = getValor3(parcela.valor);
1606
+ const convenio = padLeft(bancario.convenio, 6);
1607
+ const numeroDocumento = padLeft(`${parcela.id_boleto}`, 9);
1608
+ const nossoNumero = padLeft(bancario.numero + bancario.numero_dv, 8) + numeroDocumento;
1609
+ const campoLivre = convenio + nossoNumero + padLeft(bancario.carteira, 2);
1610
+ const digitoGeral = getDigitoGeral3(`0859${fatorVencimento}${valor}${campoLivre}`);
1611
+ const codigoBarra2 = `0859${digitoGeral}${fatorVencimento}${valor}${campoLivre}`;
1612
+ const campo1 = copy(codigoBarra2, 1, 3) + copy(codigoBarra2, 4, 4) + copy(codigoBarra2, 20, 24);
1613
+ const campo2 = copy(codigoBarra2, 25, 34);
1614
+ const campo3 = copy(codigoBarra2, 35, 44);
1615
+ const campo4 = copy(codigoBarra2, 5, 5);
1616
+ const campo5 = copy(codigoBarra2, 6, 9) + copy(codigoBarra2, 10, 19);
1617
+ const digito1 = getDigito3(campo1);
1618
+ const digito2 = getDigito3(campo2);
1619
+ const digito3 = getDigito3(campo3);
1620
+ const digito4 = getDigito3(campo4);
1621
+ const linhaDigitavel = campo1 + digito1 + campo2 + digito2 + campo3 + digito3 + campo4 + digito4 + campo5;
1622
+ const dadosBoleto = {
1623
+ linhaDigitavel,
1624
+ fatorVencimento,
1625
+ valor,
1626
+ convenio,
1627
+ nossoNumero,
1628
+ campoLivre,
1629
+ digitoGeral,
1630
+ codigoBarra: codigoBarra2,
1631
+ numeroDocumento
1632
+ };
1633
+ return dadosBoleto;
1634
+ } catch (error) {
1635
+ console.log("Falha ao gerar dados do boleto", error);
1636
+ return null;
1637
+ }
1638
+ }
1639
+ function getValor3(valor) {
1640
+ const valorFormatado = valor.toFixed(2).replace(/\D/g, "");
1641
+ return padLeft(valorFormatado, 10);
1642
+ }
1643
+ function getDigitoGeral3(texto) {
1644
+ let i = 43;
1645
+ let j = 1;
1646
+ let soma = 0;
1647
+ let digito = 0;
1648
+ while (i >= 1) {
1649
+ j++;
1650
+ if (j === 10)
1651
+ j = 2;
1652
+ const valor = Number(copy(texto, i, i));
1653
+ soma += j * valor;
1654
+ i--;
1655
+ }
1656
+ const restoDivisao = soma % 11;
1657
+ digito = 11 - restoDivisao;
1658
+ if (digito === 0 || digito === 1 || digito > 9)
1659
+ digito = 1;
1660
+ return String(digito);
1661
+ }
1662
+ function getDigito3(texto) {
1663
+ let i = texto.length;
1664
+ let j = 1;
1665
+ let total = 0;
1292
1666
  let soma = 0;
1293
1667
  let digito = 0;
1294
1668
  while (i >= 1) {
@@ -1310,22 +1684,20 @@ function getDigito3(texto) {
1310
1684
  return String(digito);
1311
1685
  }
1312
1686
 
1313
- // src/banks/sicredi/gerarPDF.ts
1314
- import BwipJs3 from "bwip-js";
1687
+ // src/banks/bradesco/gerarPDF.ts
1688
+ import BwipJs4 from "bwip-js";
1315
1689
  function gerarPDF3(_0) {
1316
1690
  return __async(this, arguments, function* ({ dados }) {
1317
1691
  try {
1318
- const { generatePDF, dadosPDF } = dados;
1319
- if (!dadosPDF.pagador.cpfcnpj) {
1320
- throw new Error("CPF/CNPJ do pagador na\u0303o informado!");
1321
- }
1322
- const codigoBarra2 = yield BwipJs3.toBuffer({
1692
+ const { dadosPDF, generatePDF } = dados;
1693
+ const codigoBarra2 = yield BwipJs4.toBuffer({
1323
1694
  bcid: "interleaved2of5",
1324
1695
  text: dadosPDF.boleto.codigoBarra,
1325
1696
  height: 20
1326
1697
  });
1327
- dadosPDF.beneficiario.dadosBancario.agencia = dadosPDF.beneficiario.dadosBancario.agencia.padStart(4, "0");
1328
- dadosPDF.boleto.linhaDigitavel = maskFormat_default.codigoBarra(dadosPDF.boleto.linhaDigitavel);
1698
+ dadosPDF.beneficiario.dadosBancarios.agencia = dadosPDF.beneficiario.dadosBancarios.agencia.padStart(4, "0");
1699
+ dadosPDF.beneficiario.dadosBancarios.conta = dadosPDF.beneficiario.dadosBancarios.conta.padStart(7, "0");
1700
+ dadosPDF.boleto.codigoBarra = maskFormat_default.codigoBarra(dadosPDF.boleto.codigoBarra);
1329
1701
  dadosPDF.boleto.codigoBarraImage = codigoBarra2.toString("base64");
1330
1702
  dadosPDF.beneficiario.cnpj = maskFormat_default.retornaCpfCnpjFormatado(
1331
1703
  dadosPDF.beneficiario.cnpj
@@ -1336,7 +1708,6 @@ function gerarPDF3(_0) {
1336
1708
  dadosPDF.pagador.endereco.cep = maskFormat_default.retornaCEPFormatado(
1337
1709
  dadosPDF.pagador.endereco.cep
1338
1710
  );
1339
- dadosPDF.pagador.cpfcnpj = maskFormat_default.retornaCpfCnpjFormatado(dadosPDF.pagador.cpfcnpj);
1340
1711
  dadosPDF.boleto.valorAcrescimo = maskFormat_default.numberToReal(
1341
1712
  dadosPDF.boleto.valorAcrescimo
1342
1713
  );
@@ -1346,7 +1717,6 @@ function gerarPDF3(_0) {
1346
1717
  dadosPDF.boleto.valorDescontoAbatimento = maskFormat_default.numberToReal(
1347
1718
  dadosPDF.boleto.valorDescontoAbatimento
1348
1719
  );
1349
- const valorDocumento = Number(dadosPDF.boleto.valorDocumento);
1350
1720
  dadosPDF.boleto.valorDocumento = maskFormat_default.numberToReal(
1351
1721
  dadosPDF.boleto.valorDocumento
1352
1722
  );
@@ -1357,26 +1727,8 @@ function gerarPDF3(_0) {
1357
1727
  if (dadosPDF.boleto.quantidade) {
1358
1728
  dadosPDF.boleto.quantidade = maskFormat_default.numberToReal(dadosPDF.boleto.quantidade);
1359
1729
  }
1360
- const jurosMes = dadosPDF.beneficiario.dadosBancario.juros;
1361
- const jurosDia = jurosMes / 100 / 30 * valorDocumento;
1362
- if (jurosDia > 0) {
1363
- dadosPDF.boleto.instrucao1 = `COBRAR JUROS DE R$${maskFormat_default.numberToReal(jurosDia)} AO DIA, AP\xD3S O VENCIMENTO`;
1364
- }
1365
- const descontoVencimento = dadosPDF.boleto.desconto > 0 ? dadosPDF.boleto.desconto : dadosPDF.beneficiario.dadosBancario.desconto > 0 ? dadosPDF.beneficiario.dadosBancario.desconto : 0;
1366
- if (descontoVencimento > 0) {
1367
- dadosPDF.boleto.instrucao2 = `AT\xC9 O VENCIMENTO, CONCEDER DESCONTO DE ${descontoVencimento}%`;
1368
- }
1369
- const multaAtraso = dadosPDF.beneficiario.dadosBancario.multa || 0;
1370
- if (multaAtraso > 0) {
1371
- dadosPDF.boleto.instrucao3 = `MULTA DE ${multaAtraso}%`;
1372
- }
1373
- const protestoDias = dadosPDF.beneficiario.dadosBancario.protesto || 0;
1374
- if (protestoDias > 0) {
1375
- dadosPDF.boleto.instrucao4 = `PROTESTAR AP\xD3S ${protestoDias} DIAS CORRIDOS DO VENCIMENTO`;
1376
- }
1377
1730
  dadosPDF.boleto.valor = maskFormat_default.numberToReal(dadosPDF.boleto.valor);
1378
- dadosPDF.pagador.isCnpj = dadosPDF.pagador.cpfcnpj.length > 14;
1379
- const content = compileHbs(getPathTemplates("sicredi-boleto.hbs"), dadosPDF);
1731
+ const content = compileHbs(getPathTemplates("bradesco-boleto.hbs"), dadosPDF);
1380
1732
  const config = {
1381
1733
  displayHeaderFooter: false,
1382
1734
  path: "./boleto.pdf",
@@ -1399,225 +1751,303 @@ function gerarPDF3(_0) {
1399
1751
  dados: pdfBase64
1400
1752
  };
1401
1753
  } catch (error) {
1402
- console.log(error);
1403
- if (error instanceof Error) {
1404
- return {
1405
- erro: true,
1406
- dados: error.message
1407
- };
1408
- }
1409
1754
  return {
1410
1755
  erro: true,
1411
- dados: "Falha ao gerar impress\xE3o do boleto"
1756
+ dados: null
1412
1757
  };
1413
1758
  }
1414
1759
  });
1415
1760
  }
1416
1761
 
1417
- // src/banks/sicredi/gerarRemessa.ts
1418
- import { format as format4 } from "date-fns";
1419
- function gerarRemessa3({ dados }) {
1420
- try {
1421
- const { dadosBancario, beneficiario, boletos } = dados.remessa;
1422
- const arquivo = new Arquivo();
1423
- const data = /* @__PURE__ */ new Date();
1424
- let protestar = "00";
1425
- let negativar = "0000";
1426
- switch (dadosBancario.tipo_protesto) {
1427
- case "Nenhum":
1428
- protestar = "00";
1429
- negativar = "0000";
1430
- break;
1431
- case "Protestar":
1432
- protestar = "06";
1433
- negativar = "0000";
1434
- break;
1435
- case "Negativar":
1436
- protestar = "00";
1437
- negativar = "06" + String(dadosBancario.diasProtesto).padStart(2, "0");
1438
- break;
1439
- default:
1440
- protestar = "00";
1441
- negativar = "0000";
1442
- break;
1443
- }
1444
- arquivo.add("01REMESSA");
1445
- arquivo.add("01");
1446
- arquivo.add("COBRANCA".padEnd(15, " "));
1447
- arquivo.add(dadosBancario.codigo_cedente);
1448
- arquivo.add(beneficiario.cnpj);
1449
- arquivo.add(" ".padEnd(31, " "));
1450
- arquivo.add("748");
1451
- arquivo.add("SICREDI".padEnd(15, " "));
1452
- arquivo.add(format4(data, "yyyyMMdd"));
1453
- arquivo.add(" ".padEnd(8, " "));
1454
- arquivo.add(dadosBancario.numeroRemessa.padStart(7, "0"));
1455
- arquivo.add(" ".padEnd(273, " "));
1456
- arquivo.add("2.00");
1457
- arquivo.add("000001");
1458
- arquivo.addLine();
1459
- let sequencia = 2;
1460
- let total = 0;
1461
- for (const boleto of boletos) {
1462
- const { pagador } = boleto;
1463
- total += Number(boleto.valor);
1464
- let tipoInscricao = pagador.pessoa === "F" ? "1" : "2";
1465
- let desconto = "0000000000000";
1466
- let dataDesconto = "000000";
1467
- if (boleto.desconto) {
1468
- desconto = boleto.desconto.toFixed(2).replace(".", "").padStart(13, "0");
1469
- dataDesconto = format4(new Date(boleto.vencimento), "ddMMyy");
1470
- }
1471
- if (!boleto.desconto && dadosBancario.descontoPagamento) {
1472
- desconto = dadosBancario.descontoPagamento.toFixed(2).replace(".", "").padStart(13, "0");
1473
- dataDesconto = format4(new Date(boleto.vencimento), "ddMMyy");
1474
- }
1475
- let valorJurosDias = Number(boleto.valor) * Number(dadosBancario.jurosMes) / 100 / 30;
1476
- let multaAtraso = String(dadosBancario.multaAtraso * 100);
1477
- arquivo.add("1");
1478
- arquivo.add("AAA");
1479
- arquivo.add(" ".padEnd(12, " "));
1480
- arquivo.add("AAA");
1481
- arquivo.add(" ".padEnd(28, " "));
1482
- arquivo.add(boleto.nossoNumero.padEnd(9, " "));
1483
- arquivo.add(" ".padEnd(6, " "));
1484
- arquivo.add(format4(new Date(boleto.emissao), "yyyyMMdd"));
1485
- arquivo.add(" ");
1486
- arquivo.add("N");
1487
- arquivo.add(" ");
1488
- arquivo.add("B");
1762
+ // src/banks/bradesco/gerarRemessa.ts
1763
+ import { addDays as addDays2, format as format4 } from "date-fns";
1764
+ function gerarRemessa3(_0) {
1765
+ return __async(this, arguments, function* ({ dados }) {
1766
+ try {
1767
+ const { dadosBancario, beneficiario, boletos } = dados.remessa;
1768
+ const arquivo = new Arquivo();
1769
+ const dataAtual = /* @__PURE__ */ new Date();
1770
+ const data = format4(dataAtual, "ddMMyyyy");
1771
+ const hora = format4(dataAtual, "HHmmss");
1772
+ const convenio = dadosBancario.convenio.padStart(7, "0");
1773
+ const numero = dadosBancario.conta.padStart(7, "0") + dadosBancario.contaDigito;
1774
+ const remessa2 = `REM${convenio}-${numero}-${data}.REM`;
1775
+ arquivo.add("085");
1489
1776
  arquivo.add("0000");
1490
- arquivo.add(" ".padEnd(4, " "));
1491
- arquivo.add("0".padEnd(10, "0"));
1492
- arquivo.add(multaAtraso.padStart(4, "0"));
1493
- arquivo.add(" ".padEnd(12, " "));
1494
- arquivo.add("01");
1495
- arquivo.add(boleto.identificacaoTitulo.padEnd(10, " "));
1496
- arquivo.add(format4(new Date(boleto.vencimento), "ddMMyy"));
1497
- arquivo.add(Number(boleto.valor).toFixed(2).replace(".", "").padStart(13, "0"));
1498
- arquivo.add(" ".padEnd(9, " "));
1499
- arquivo.add("A");
1500
- arquivo.add(boleto.aceite);
1501
- arquivo.add(format4(new Date(boleto.emissao), "ddMMyy"));
1502
- arquivo.add(protestar);
1503
- arquivo.add(String(dadosBancario.diasProtesto).padStart(2, "0"));
1504
- arquivo.add(Number(valorJurosDias).toFixed(2).replace(".", "").padStart(13, "0"));
1505
- arquivo.add(dataDesconto);
1506
- arquivo.add(desconto);
1507
- arquivo.add(negativar);
1508
- arquivo.add("0".padEnd(22, "0"));
1509
- arquivo.add(tipoInscricao);
1510
1777
  arquivo.add("0");
1511
- arquivo.add(pagador.cpfCnpj.padStart(14, "0"));
1512
- arquivo.add(removerCaracterEspecial(pagador.nome).substring(0, 40).padEnd(40, " "));
1513
- arquivo.add(removerCaracterEspecial(pagador.endereco.logradouro).substring(0, 40).padEnd(40, " "));
1514
- arquivo.add("0".padEnd(11, "0"));
1778
+ arquivo.add(" ");
1779
+ arquivo.add("2");
1780
+ arquivo.add(beneficiario.cnpj);
1781
+ arquivo.add(dadosBancario.convenio.padEnd(20, " "));
1782
+ arquivo.add(dadosBancario.agencia.padStart(5, "0"));
1783
+ arquivo.add(dadosBancario.agencia);
1784
+ arquivo.add(dadosBancario.conta.padStart(12, "0"));
1785
+ arquivo.add(dadosBancario.contaDigito);
1515
1786
  arquivo.add(" ");
1516
- arquivo.add(pagador.endereco.cep.padEnd(8, " "));
1787
+ arquivo.add(beneficiario.nome.substring(0, 30).padEnd(30, " "));
1788
+ arquivo.add("AILOS".padEnd(30, " "));
1789
+ arquivo.add(" ");
1790
+ arquivo.add("1");
1791
+ arquivo.add(data);
1792
+ arquivo.add(hora);
1793
+ arquivo.add(dadosBancario.numeroRemessa.padStart(6, "0"));
1794
+ arquivo.add("087");
1517
1795
  arquivo.add("00000");
1518
- arquivo.add(" ".padEnd(55, " "));
1519
- arquivo.add(String(sequencia).padStart(6, "0"));
1796
+ arquivo.add(" ".padEnd(20, " "));
1797
+ arquivo.add(" ".padEnd(20, " "));
1798
+ arquivo.add(" ".padEnd(29, " "));
1799
+ arquivo.addLine();
1800
+ arquivo.add("085");
1801
+ arquivo.add("0001");
1802
+ arquivo.add("1");
1803
+ arquivo.add("R");
1804
+ arquivo.add("01");
1805
+ arquivo.add(" ");
1806
+ arquivo.add("045");
1807
+ arquivo.add(" ");
1808
+ arquivo.add("2");
1809
+ arquivo.add(beneficiario.cnpj.padStart(15, "0"));
1810
+ arquivo.add(dadosBancario.convenio.padEnd(20, " "));
1811
+ arquivo.add(dadosBancario.agencia.padStart(5, "0"));
1812
+ arquivo.add(dadosBancario.agenciaDigito);
1813
+ arquivo.add(dadosBancario.conta.padStart(12, "0"));
1814
+ arquivo.add(dadosBancario.contaDigito);
1815
+ arquivo.add(" ");
1816
+ arquivo.add(beneficiario.nome.substring(0, 30).padEnd(30, " "));
1817
+ arquivo.add(" ".padEnd(40, " "));
1818
+ arquivo.add(" ".padEnd(40, " "));
1819
+ arquivo.add(dadosBancario.numeroRemessa.padStart(8, "0"));
1820
+ arquivo.add(data);
1821
+ arquivo.add("00000000");
1822
+ arquivo.add(" ".padEnd(33, " "));
1823
+ arquivo.addLine();
1824
+ let sequencia = 1;
1825
+ let quantidadeRegistro = 1;
1826
+ let total = 0;
1827
+ for (const boleto of boletos) {
1828
+ const { pagador } = boleto;
1829
+ const vencimento = format4(new Date(boleto.vencimento), "ddMMyyyy");
1830
+ total += Number(boleto.valor);
1831
+ const codigoJuro = dadosBancario.jurosMes > 0 ? "2" : "3";
1832
+ const juros = dadosBancario.jurosMes > 0 ? dadosBancario.jurosMes.toFixed(2) : "000000000000000";
1833
+ const jurosVencimento = format4(
1834
+ addDays2(new Date(boleto.vencimento), 1),
1835
+ "ddMMyyyy"
1836
+ );
1837
+ const codigoDesconto = dadosBancario.descontoPagamento > 0 ? "2" : "0";
1838
+ const desconto = dadosBancario.descontoPagamento > 0 ? dadosBancario.descontoPagamento.toFixed(2) : "000000000000000";
1839
+ const protesto = dadosBancario.diasProtesto > 0 ? "1" : "3";
1840
+ const diasProtesto = protesto === "1" ? dadosBancario.diasProtesto.toString() : "00";
1841
+ arquivo.add("085");
1842
+ arquivo.add("0001");
1843
+ arquivo.add("3");
1844
+ arquivo.add(sequencia.toString().padStart(5, "0"));
1845
+ arquivo.add("P");
1846
+ arquivo.add(" ");
1847
+ arquivo.add("01");
1848
+ arquivo.add(dadosBancario.agencia.padStart(5, "0"));
1849
+ arquivo.add(dadosBancario.agenciaDigito);
1850
+ arquivo.add(dadosBancario.conta.padStart(12, "0"));
1851
+ arquivo.add(dadosBancario.contaDigito);
1852
+ arquivo.add(" ");
1853
+ arquivo.add(boleto.nossoNumero.padEnd(20, " "));
1854
+ arquivo.add("1");
1855
+ arquivo.add("1");
1856
+ arquivo.add("1");
1857
+ arquivo.add("2");
1858
+ arquivo.add("2");
1859
+ arquivo.add(`${boleto.numeroDocumento}/${boleto.parcela}`.padEnd(15, " "));
1860
+ arquivo.add(vencimento);
1861
+ arquivo.add(
1862
+ Number(boleto.valor).toFixed(2).replace(".", "").padStart(15, "0")
1863
+ );
1864
+ arquivo.add(dadosBancario.agencia.padStart(5, "0"));
1865
+ arquivo.add(dadosBancario.agenciaDigito);
1866
+ arquivo.add("02");
1867
+ arquivo.add("A");
1868
+ arquivo.add(data);
1869
+ arquivo.add(codigoJuro);
1870
+ arquivo.add(jurosVencimento);
1871
+ arquivo.add(juros.replace(".", "").padStart(15, "0"));
1872
+ arquivo.add(codigoDesconto);
1873
+ arquivo.add(vencimento);
1874
+ arquivo.add(desconto.replace(".", "").padStart(15, "0"));
1875
+ arquivo.add("000000000000000");
1876
+ arquivo.add("000000000000000");
1877
+ arquivo.add(boleto.identificacaoTitulo.padEnd(25, " "));
1878
+ arquivo.add(protesto);
1879
+ arquivo.add(diasProtesto.padStart(1, "0"));
1880
+ arquivo.add("2");
1881
+ arquivo.add(" ");
1882
+ arquivo.add("09");
1883
+ arquivo.add("0000000000");
1884
+ arquivo.add(" ");
1885
+ sequencia++;
1886
+ arquivo.addLine();
1887
+ let tipoInscricao = "1";
1888
+ if (pagador.pessoa === "F") {
1889
+ tipoInscricao = "1";
1890
+ } else {
1891
+ tipoInscricao = "2";
1892
+ }
1893
+ pagador.endereco.logradouro = `${pagador.endereco.logradouro.substring(0, 32).padEnd(32, " ")}${pagador.endereco.numero.padEnd(8, " ")}`;
1894
+ arquivo.add("085");
1895
+ arquivo.add("0001");
1896
+ arquivo.add("3");
1897
+ arquivo.add(sequencia.toString().padStart(5, "0"));
1898
+ arquivo.add("Q");
1899
+ arquivo.add(" ");
1900
+ arquivo.add("01");
1901
+ arquivo.add(tipoInscricao);
1902
+ arquivo.add(pagador.cpfCnpj.padStart(15, "0"));
1903
+ arquivo.add(pagador.nome.substring(0, 40).padEnd(40, " "));
1904
+ arquivo.add(pagador.endereco.logradouro.substring(0, 40).padEnd(40, " "));
1905
+ arquivo.add(pagador.endereco.bairro.substring(0, 15).padEnd(15, " "));
1906
+ arquivo.add(pagador.endereco.cep.substring(0, 5).padStart(5, "0"));
1907
+ arquivo.add(pagador.endereco.cep.substring(5, 7).padStart(3, "0"));
1908
+ arquivo.add(pagador.endereco.municipio.substring(0, 15).padEnd(15, " "));
1909
+ arquivo.add(pagador.endereco.uf.padEnd(2, " "));
1910
+ arquivo.add("0");
1911
+ arquivo.add("000000000000000");
1912
+ arquivo.add(" ".padEnd(40, " "));
1913
+ arquivo.add("000");
1914
+ arquivo.add(" ".padEnd(20, " "));
1915
+ arquivo.add(" ".padEnd(8, " "));
1916
+ dadosBancario.multaAtraso = Number(dadosBancario.multaAtraso || 0);
1917
+ if (dadosBancario.multaAtraso > 0) {
1918
+ arquivo.addLine();
1919
+ const multa = dadosBancario.multaAtraso.toFixed(2);
1920
+ sequencia++;
1921
+ arquivo.add("085");
1922
+ arquivo.add("0001");
1923
+ arquivo.add("3");
1924
+ arquivo.add(sequencia.toString().padStart(5, "0"));
1925
+ arquivo.add("R");
1926
+ arquivo.add(" ");
1927
+ arquivo.add("01");
1928
+ arquivo.add("0");
1929
+ arquivo.add("00000000");
1930
+ arquivo.add("000000000000000");
1931
+ arquivo.add("0");
1932
+ arquivo.add("00000000");
1933
+ arquivo.add("000000000000000");
1934
+ arquivo.add("2");
1935
+ arquivo.add(vencimento);
1936
+ arquivo.add(multa.replace(".", "").padStart(15, "0"));
1937
+ arquivo.add(" ".padEnd(10, " "));
1938
+ arquivo.add(" ".padEnd(40, " "));
1939
+ arquivo.add(" ".padEnd(40, " "));
1940
+ arquivo.add(" ".padEnd(20, " "));
1941
+ arquivo.add("00000000");
1942
+ arquivo.add("000");
1943
+ arquivo.add("00000");
1944
+ arquivo.add(" ");
1945
+ arquivo.add("000000000000");
1946
+ arquivo.add(" ");
1947
+ arquivo.add(" ");
1948
+ arquivo.add("0");
1949
+ arquivo.add("000000000");
1950
+ }
1951
+ arquivo.addLine();
1952
+ quantidadeRegistro++;
1953
+ }
1954
+ arquivo.add("085");
1955
+ arquivo.add("0001");
1956
+ arquivo.add("5");
1957
+ arquivo.add(" ".padEnd(9, " "));
1958
+ arquivo.add((sequencia + 3).toString().padStart(6, "0"));
1959
+ arquivo.add(quantidadeRegistro.toString().padStart(6, "0"));
1960
+ arquivo.add(total.toFixed(2).replace(".", "").padStart(17, "0"));
1961
+ arquivo.add("0".padStart(6, "0"));
1962
+ arquivo.add("0".padStart(17, "0"));
1963
+ arquivo.add("0".padStart(6, "0"));
1964
+ arquivo.add("0".padStart(17, "0"));
1965
+ arquivo.add("0".padStart(6, "0"));
1966
+ arquivo.add("0".padStart(17, "0"));
1967
+ arquivo.add(" ".padStart(8, " "));
1968
+ arquivo.add(" ".padStart(117, " "));
1520
1969
  arquivo.addLine();
1521
- sequencia++;
1970
+ arquivo.add("085");
1971
+ arquivo.add("9999");
1972
+ arquivo.add("9");
1973
+ arquivo.add(" ".padEnd(9, " "));
1974
+ arquivo.add("000001");
1975
+ arquivo.add((sequencia + 4).toString().padStart(6, "0"));
1976
+ arquivo.add("000000");
1977
+ arquivo.add(" ".padEnd(205, " "));
1978
+ return {
1979
+ download: remessa2,
1980
+ arquivo: arquivo.getArquivo()
1981
+ };
1982
+ } catch (error) {
1983
+ console.log(error);
1984
+ return null;
1522
1985
  }
1523
- arquivo.add("91748");
1524
- arquivo.add(dadosBancario.codigo_cedente);
1525
- arquivo.add(" ".padEnd(384, " "));
1526
- arquivo.add(String(sequencia).padStart(6, "0"));
1527
- arquivo.addLine();
1528
- return {
1529
- download: `${dadosBancario.codigo_cedente}${retornaMes(data)}${format4(data, "dd")}.crm`,
1530
- arquivo: arquivo.getArquivo()
1531
- };
1532
- } catch (error) {
1533
- console.log(error);
1534
- return null;
1535
- }
1536
- }
1537
- function retornaMes(data) {
1538
- const mes = data.getMonth() + 1;
1539
- switch (mes) {
1540
- case 10:
1541
- return "O";
1542
- case 11:
1543
- return "N";
1544
- case 12:
1545
- return "D";
1546
- default:
1547
- return mes.toString();
1548
- }
1986
+ });
1549
1987
  }
1550
1988
 
1551
- // src/banks/sicredi/gerarRetorno.ts
1552
- import { parse as parse2 } from "date-fns";
1989
+ // src/banks/bradesco/gerarRetorno.ts
1553
1990
  function gerarRetorno3({ dados }) {
1554
1991
  try {
1555
1992
  const { arquivo } = dados;
1556
1993
  const documentos = [];
1557
- for (const linha of arquivo) {
1558
- const id_registro = linha.substring(0, 1);
1559
- if (id_registro !== "1" /* DETALHE */) {
1560
- continue;
1561
- }
1562
- const ocorrencia = linha.substring(108, 110);
1563
- if (ocorrencia !== "06" && ocorrencia !== "15" && ocorrencia !== "17") {
1564
- continue;
1565
- }
1566
- const meu_numero = linha.substring(116, 126).trim();
1567
- let tipo_documento = "";
1568
- let id_documento = "";
1569
- if (meu_numero.includes("-")) {
1570
- const [tipo, id] = meu_numero.split("-");
1571
- tipo_documento = tipo;
1572
- id_documento = id;
1573
- }
1574
- let especie = "INDEFINIDO";
1575
- if (tipo_documento.length) {
1576
- especie = tipo_documento === "N" ? "NFE" : tipo_documento === "F" ? "FAT" : tipo_documento === "L" ? "FIN" : "INDEFINIDO";
1577
- }
1578
- let dataCredito;
1579
- const dataCreditoString = linha.substring(328, 336);
1580
- if (dataCreditoString && dataCreditoString !== "00000000") {
1581
- dataCredito = parse2(dataCreditoString, "yyyyMMdd", /* @__PURE__ */ new Date());
1582
- } else {
1583
- const dataOcorrenciaString = linha.substring(110, 116);
1584
- dataCredito = parse2(dataOcorrenciaString, "ddMMyy", /* @__PURE__ */ new Date());
1585
- }
1586
- const valor_titulo = Number(linha.substring(152, 165)) / 100;
1587
- const abatimento = Number(linha.substring(227, 240)) / 100;
1588
- let valor_desconto = Number(linha.substring(240, 253)) / 100;
1589
- const valor_pago = Number(linha.substring(253, 266)) / 100;
1590
- let valor_juros = Number(linha.substring(266, 279)) / 100;
1591
- const valor_multa = Number(linha.substring(279, 292)) / 100;
1592
- if (valor_titulo > valor_pago && valor_desconto === 0) {
1593
- valor_desconto = valor_titulo - valor_pago;
1594
- }
1595
- if (valor_titulo < valor_pago && valor_juros === 0) {
1596
- valor_juros = valor_pago - valor_titulo;
1994
+ let index = 0;
1995
+ for (const item of arquivo) {
1996
+ let linha = item;
1997
+ const banco = linha.substring(0, 3);
1998
+ const codigoRetorno = linha.substring(15, 17);
1999
+ if ((banco === "001" || banco === "085") && (codigoRetorno === "06" || codigoRetorno === "17")) {
2000
+ let segmento = linha.substring(13, 14);
2001
+ if (segmento === "T") {
2002
+ let tipoDocumento = "";
2003
+ let idDocumento = "";
2004
+ const linhaDoc = linha.substring(105, 130).trimEnd();
2005
+ if (linhaDoc.includes("-")) {
2006
+ [tipoDocumento, idDocumento] = linha.split("-");
2007
+ } else {
2008
+ idDocumento = linhaDoc;
2009
+ }
2010
+ const especie = tipoDocumento.length ? tipoDocumento : "INDEFINIDO";
2011
+ linha = arquivo[index + 1];
2012
+ segmento = linha.substring(13, 14);
2013
+ if (segmento === "U") {
2014
+ const valorAbatimentoString = linha.substring(47, 62);
2015
+ const valorAbatimento = Number(valorAbatimentoString) / 100;
2016
+ const valorDescontoString = linha.substring(32, 47);
2017
+ const valorDesconto = Number(valorDescontoString) / 100;
2018
+ const valorPagoString = linha.substring(77, 92);
2019
+ const valorPago = Number(valorPagoString) / 100;
2020
+ const valorJurosString = linha.substring(17, 32);
2021
+ const valorJuros = Number(valorJurosString) / 100;
2022
+ const valorMulta = 0;
2023
+ const descontos = valorAbatimento + valorDesconto;
2024
+ const valorTotal = valorPago - valorJuros + descontos;
2025
+ const documento = {
2026
+ id_documento: idDocumento,
2027
+ especie,
2028
+ valor: valorTotal,
2029
+ valor_desconto: 0,
2030
+ valor_juros: 0,
2031
+ valor_multa: 0,
2032
+ valor_total: 0,
2033
+ data: /* @__PURE__ */ new Date()
2034
+ };
2035
+ documentos.push(documento);
2036
+ }
2037
+ }
1597
2038
  }
1598
- const descontos = abatimento + valor_desconto;
1599
- const valor_total = valor_titulo + valor_multa + valor_juros - descontos;
1600
- documentos.push({
1601
- id_documento,
1602
- especie,
1603
- valor: valor_pago,
1604
- valor_multa,
1605
- valor_juros,
1606
- valor_desconto,
1607
- valor_total,
1608
- data: dataCredito
1609
- });
2039
+ index++;
1610
2040
  }
1611
- const documentosAgrupado = agruparRetorno(documentos);
1612
- return documentosAgrupado;
2041
+ const documentoAgrupado = agruparRetorno(documentos);
2042
+ return documentoAgrupado;
1613
2043
  } catch (error) {
1614
2044
  console.log(error);
1615
2045
  return null;
1616
2046
  }
1617
2047
  }
1618
2048
 
1619
- // src/banks/sicredi/index.ts
1620
- var sicredi = {
2049
+ // src/banks/bradesco/index.ts
2050
+ var bradesco = {
1621
2051
  gerarDadosBoleto: gerarDadosBoleto3,
1622
2052
  gerarPDF: gerarPDF3,
1623
2053
  gerarRemessa: gerarRemessa3,
@@ -1953,7 +2383,7 @@ function gerarRemessa4({ dados }) {
1953
2383
  }
1954
2384
 
1955
2385
  // src/banks/sicoob/gerarPDF.ts
1956
- import BwipJs4 from "bwip-js";
2386
+ import BwipJs5 from "bwip-js";
1957
2387
  import StringMask2 from "string-mask";
1958
2388
  function gerarPDF4(_0) {
1959
2389
  return __async(this, arguments, function* ({ dados }) {
@@ -1962,7 +2392,7 @@ function gerarPDF4(_0) {
1962
2392
  if (!dadosPDF.pagador.cpfcnpj) {
1963
2393
  throw new Error("CPF/CNPJ do pagador na\u0303o informado!");
1964
2394
  }
1965
- const codigoBarra2 = yield BwipJs4.toBuffer({
2395
+ const codigoBarra2 = yield BwipJs5.toBuffer({
1966
2396
  bcid: "interleaved2of5",
1967
2397
  text: dadosPDF.boleto.codigoBarra,
1968
2398
  height: 20
@@ -2084,53 +2514,61 @@ function gerarRetorno4({ dados }) {
2084
2514
  continue;
2085
2515
  }
2086
2516
  const ocorrencia = linha.substring(15, 17);
2087
- if (ocorrencia !== "06" && ocorrencia !== "17") {
2088
- continue;
2089
- }
2090
- let segmento = linha.substring(13, 14);
2091
- if (segmento === "T") {
2092
- const meu_numero = linha.substring(105, 130).trimEnd();
2093
- let tipo_documento = "INDEFINIDO";
2094
- let id_documento = meu_numero;
2095
- if (meu_numero.includes("-")) {
2096
- const [tipo, id] = meu_numero.split("-");
2097
- tipo_documento = tipo;
2098
- id_documento = id;
2099
- }
2100
- const especie = tipo_documento.length ? tipo_documento : "INDEFINIDO";
2101
- linha = arquivo[++i];
2102
- segmento = linha.substring(13, 14);
2103
- if (segmento === "U") {
2104
- let dataCredito;
2105
- const dataCreditoString = linha.substring(145, 153);
2106
- if (dataCreditoString && dataCreditoString !== "00000000") {
2107
- dataCredito = parse3(dataCreditoString, "ddMMyyyy", /* @__PURE__ */ new Date());
2108
- } else {
2109
- const dataOcorrenciaString = linha.substring(137, 145);
2110
- dataCredito = parse3(dataOcorrenciaString, "ddMMyyyy", /* @__PURE__ */ new Date());
2517
+ if (ocorrencia === "06" || ocorrencia === "17" || ocorrencia === "03") {
2518
+ let segmento = linha.substring(13, 14);
2519
+ if (segmento === "T") {
2520
+ const motivo = linha.substring(213, 223).trim();
2521
+ const meu_numero = linha.substring(105, 130).trimEnd();
2522
+ let tipo_documento = "INDEFINIDO";
2523
+ let id_documento = meu_numero;
2524
+ if (meu_numero.includes("-")) {
2525
+ const [tipo, id] = meu_numero.split("-");
2526
+ tipo_documento = tipo;
2527
+ id_documento = id;
2528
+ }
2529
+ const especie = tipo_documento.length ? tipo_documento : "INDEFINIDO";
2530
+ linha = arquivo[++i];
2531
+ segmento = linha.substring(13, 14);
2532
+ if (segmento === "U") {
2533
+ let dataCredito;
2534
+ const dataCreditoString = linha.substring(145, 153);
2535
+ if (dataCreditoString && dataCreditoString !== "00000000") {
2536
+ dataCredito = parse3(dataCreditoString, "ddMMyyyy", /* @__PURE__ */ new Date());
2537
+ } else {
2538
+ const dataOcorrenciaString = linha.substring(137, 145);
2539
+ dataCredito = parse3(dataOcorrenciaString, "ddMMyyyy", /* @__PURE__ */ new Date());
2540
+ }
2541
+ const valorAbatimentoString = linha.substring(47, 62);
2542
+ const valorAbatimento = Number(valorAbatimentoString) / 100;
2543
+ const valorDescontoString = linha.substring(32, 47);
2544
+ const valorDesconto = Number(valorDescontoString) / 100;
2545
+ const valorPagoString = linha.substring(77, 92);
2546
+ const valorPago = Number(valorPagoString) / 100;
2547
+ const valorJurosString = linha.substring(17, 32);
2548
+ const valorJuros = Number(valorJurosString) / 100;
2549
+ const valorMulta = 0;
2550
+ const descontos = valorAbatimento + valorDesconto;
2551
+ const valorTotal = valorPago - valorJuros + descontos;
2552
+ let rejeitado = false;
2553
+ let motivoRejeicao = "";
2554
+ if (ocorrencia === "03") {
2555
+ rejeitado = true;
2556
+ motivoRejeicao = retornaMotivoRejeicao3(motivo);
2557
+ }
2558
+ const documento = {
2559
+ id_documento,
2560
+ especie,
2561
+ valor: valorPago,
2562
+ valor_multa: valorMulta,
2563
+ valor_juros: valorJuros,
2564
+ valor_desconto: valorDesconto,
2565
+ valor_total: valorTotal,
2566
+ data: dataCredito,
2567
+ rejeitado,
2568
+ motivo: motivoRejeicao
2569
+ };
2570
+ documentos.push(documento);
2111
2571
  }
2112
- const valorAbatimentoString = linha.substring(47, 62);
2113
- const valorAbatimento = Number(valorAbatimentoString) / 100;
2114
- const valorDescontoString = linha.substring(32, 47);
2115
- const valorDesconto = Number(valorDescontoString) / 100;
2116
- const valorPagoString = linha.substring(77, 92);
2117
- const valorPago = Number(valorPagoString) / 100;
2118
- const valorJurosString = linha.substring(17, 32);
2119
- const valorJuros = Number(valorJurosString) / 100;
2120
- const valorMulta = 0;
2121
- const descontos = valorAbatimento + valorDesconto;
2122
- const valorTotal = valorPago - valorJuros + descontos;
2123
- const documento = {
2124
- id_documento,
2125
- especie,
2126
- valor: valorPago,
2127
- valor_multa: valorMulta,
2128
- valor_juros: valorJuros,
2129
- valor_desconto: valorDesconto,
2130
- valor_total: valorTotal,
2131
- data: dataCredito
2132
- };
2133
- documentos.push(documento);
2134
2572
  }
2135
2573
  }
2136
2574
  }
@@ -2141,6 +2579,42 @@ function gerarRetorno4({ dados }) {
2141
2579
  return null;
2142
2580
  }
2143
2581
  }
2582
+ function retornaMotivoRejeicao3(codigo) {
2583
+ switch (codigo) {
2584
+ case "03":
2585
+ return "Tarifa de Desist\xEAncia";
2586
+ case "04":
2587
+ return "Tarifa de Protesto";
2588
+ case "08":
2589
+ return "Custas de Protesto";
2590
+ case "11":
2591
+ return "Forma de Cadastramento do T\xEDtulo Inv\xE1lido";
2592
+ case "21":
2593
+ return "Tarifa de Grava\xE7\xE3o Eletr\xF4nica = CRA";
2594
+ case "28":
2595
+ return "C\xF3digo do Desconto Inv\xE1lido";
2596
+ case "29":
2597
+ return "Valor do Desconto Maior ou Igual ao Valor do T\xEDtulo";
2598
+ case "30":
2599
+ return "Desconto a Conceder N\xE3o Confere";
2600
+ case "31":
2601
+ return "Concess\xE3o de Desconto - J\xE1 Existe Desconto Anterior";
2602
+ case "39":
2603
+ return "Pedido de Protesto/Negativa\xE7\xE3o N\xE3o Permitido para o T\xEDtulo";
2604
+ case "40":
2605
+ return "T\xEDtulo com Ordem de Protesto/Negativa\xE7\xE3o Emitida";
2606
+ case "41":
2607
+ return "Pedido de Cancelamento/Susta\xE7\xE3o para T\xEDtulos sem Instru\xE7\xE3o de Negativa\xE7\xE3o/Protesto";
2608
+ case "58":
2609
+ return "Data da Multa Inv\xE1lida";
2610
+ case "79":
2611
+ return "Data Juros de Mora Inv\xE1lido";
2612
+ case "80":
2613
+ return "Data do Desconto Inv\xE1lida";
2614
+ default:
2615
+ return "Motivo de rejei\xE7\xE3o n\xE3o identificado";
2616
+ }
2617
+ }
2144
2618
 
2145
2619
  // src/banks/sicoob/index.ts
2146
2620
  var sicoob = {
@@ -2284,7 +2758,7 @@ function getDigito5(texto) {
2284
2758
  }
2285
2759
 
2286
2760
  // src/banks/banco-brasil/gerarPDF.ts
2287
- import BwipJs5 from "bwip-js";
2761
+ import BwipJs6 from "bwip-js";
2288
2762
  function gerarPDF5(_0) {
2289
2763
  return __async(this, arguments, function* ({ dados }) {
2290
2764
  try {
@@ -2292,7 +2766,7 @@ function gerarPDF5(_0) {
2292
2766
  if (!dadosPDF.pagador.cpfcnpj) {
2293
2767
  throw new Error("CPF/CNPJ do pagador na\u0303o informado!");
2294
2768
  }
2295
- const codigoBarra2 = yield BwipJs5.toBuffer({
2769
+ const codigoBarra2 = yield BwipJs6.toBuffer({
2296
2770
  bcid: "interleaved2of5",
2297
2771
  text: dadosPDF.boleto.codigoBarra,
2298
2772
  height: 20
@@ -2710,7 +3184,7 @@ function gerarRetorno5({ dados }) {
2710
3184
  let motivoRejeicao = "";
2711
3185
  if (ocorrencia === "03") {
2712
3186
  rejeitado = true;
2713
- motivoRejeicao = retornaMotivoRejeicao(motivo);
3187
+ motivoRejeicao = retornaMotivoRejeicao4(motivo);
2714
3188
  }
2715
3189
  const documento = {
2716
3190
  id_documento,
@@ -2737,7 +3211,7 @@ function gerarRetorno5({ dados }) {
2737
3211
  return null;
2738
3212
  }
2739
3213
  }
2740
- function retornaMotivoRejeicao(codigo) {
3214
+ function retornaMotivoRejeicao4(codigo) {
2741
3215
  switch (codigo) {
2742
3216
  case "01":
2743
3217
  return "C\xF3digo do Banco Inv\xE1lido";
@@ -2998,7 +3472,7 @@ function gerar({ banco, dados }) {
2998
3472
  }
2999
3473
 
3000
3474
  // src/banks/itau/gerarPDF.ts
3001
- import BwipJs6 from "bwip-js";
3475
+ import BwipJs7 from "bwip-js";
3002
3476
  function gerarPDF6(_0) {
3003
3477
  return __async(this, arguments, function* ({ dados }) {
3004
3478
  try {
@@ -3006,7 +3480,7 @@ function gerarPDF6(_0) {
3006
3480
  if (!dadosPDF.pagador.cnpjCpf) {
3007
3481
  throw new Error("CPF/CNPJ do pagador na\u0303o informado!");
3008
3482
  }
3009
- const codigoBarra2 = yield BwipJs6.toBuffer({
3483
+ const codigoBarra2 = yield BwipJs7.toBuffer({
3010
3484
  bcid: "interleaved2of5",
3011
3485
  text: dadosPDF.boleto.codigoBarra,
3012
3486
  height: 20
@@ -3178,7 +3652,8 @@ var src_default = {
3178
3652
  gerar,
3179
3653
  pdf,
3180
3654
  remessa,
3181
- retorno
3655
+ retorno,
3656
+ carne
3182
3657
  };
3183
3658
  export {
3184
3659
  Banco,