@plasoft/boletos 1.0.30 → 1.0.32

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
@@ -219,7 +219,7 @@ function decompress(input) {
219
219
  // src/banks/ailos/gerarPDF.ts
220
220
  function gerarPDF(_0) {
221
221
  return __async(this, arguments, function* ({ dados }) {
222
- var _a, _b, _c, _d;
222
+ var _a, _b, _c, _d, _e, _f, _g, _h;
223
223
  try {
224
224
  const { generatePDF, dadosPDF } = dados;
225
225
  const codigoBarra2 = yield BwipJs.toBuffer({
@@ -261,19 +261,20 @@ function gerarPDF(_0) {
261
261
  dadosPDF.boleto.quantidade = maskFormat_default.numberToReal(dadosPDF.boleto.quantidade);
262
262
  }
263
263
  const jurosMes = Number(((_a = dadosPDF.beneficiario.dadosBancario) == null ? void 0 : _a.juros) || 0);
264
- if (jurosMes > 0) {
265
- dadosPDF.boleto.instrucao1 = `COBRAR JUROS DE ${jurosMes}% AO M\xCAS, AP\xD3S O VENCIMENTO`;
264
+ const jurosAoDia = jurosMes / 30;
265
+ if (!((_b = dadosPDF.boleto.instrucao1) == null ? void 0 : _b.length) && jurosAoDia > 0) {
266
+ dadosPDF.boleto.instrucao1 = `COBRAR JUROS DE ${jurosAoDia}% AO DIA, AP\xD3S O VENCIMENTO`;
266
267
  }
267
- const descontoVencimento = Number(((_b = dadosPDF.beneficiario.dadosBancario) == null ? void 0 : _b.desconto) || 0);
268
- if (descontoVencimento > 0) {
268
+ const descontoVencimento = Number(((_c = dadosPDF.beneficiario.dadosBancario) == null ? void 0 : _c.desconto) || 0);
269
+ if (!((_d = dadosPDF.boleto.instrucao2) == null ? void 0 : _d.length) && descontoVencimento > 0) {
269
270
  dadosPDF.boleto.instrucao2 = `AT\xC9 O VENCIMENTO, CONCEDER DESCONTO DE ${descontoVencimento}%`;
270
271
  }
271
- const multaAtraso = Number(((_c = dadosPDF.beneficiario.dadosBancario) == null ? void 0 : _c.multa) || 0);
272
- if (multaAtraso > 0) {
272
+ const multaAtraso = Number(((_e = dadosPDF.beneficiario.dadosBancario) == null ? void 0 : _e.multa) || 0);
273
+ if (!((_f = dadosPDF.boleto.instrucao3) == null ? void 0 : _f.length) && multaAtraso > 0) {
273
274
  dadosPDF.boleto.instrucao3 = `MULTA DE ${multaAtraso} %`;
274
275
  }
275
- const protestoDias = Number(((_d = dadosPDF.beneficiario.dadosBancario) == null ? void 0 : _d.protesto) || 0);
276
- if (protestoDias > 0) {
276
+ const protestoDias = Number(((_g = dadosPDF.beneficiario.dadosBancario) == null ? void 0 : _g.protesto) || 0);
277
+ if (!((_h = dadosPDF.boleto.instrucao4) == null ? void 0 : _h.length) && protestoDias > 0) {
277
278
  dadosPDF.boleto.instrucao4 = `PROTESTAR AP\xD3S ${protestoDias} DIAS CORRIDOS DO VENCIMENTO`;
278
279
  }
279
280
  dadosPDF.boleto.valor = maskFormat_default.numberToReal(dadosPDF.boleto.valor);
@@ -394,8 +395,8 @@ function gerarRemessa({ dados }) {
394
395
  arquivo.add("00000000");
395
396
  arquivo.add(" ".padEnd(33, " "));
396
397
  arquivo.addLine();
397
- let sequencia = 1;
398
- let quantidadeRegistro = 1;
398
+ let sequencia = 0;
399
+ let quantidadeRegistro = 0;
399
400
  let total = 0;
400
401
  for (const boleto of boletos) {
401
402
  const { pagador } = boleto;
@@ -414,7 +415,7 @@ function gerarRemessa({ dados }) {
414
415
  arquivo.add("085");
415
416
  arquivo.add("0001");
416
417
  arquivo.add("3");
417
- arquivo.add(sequencia.toString().padStart(5, "0"));
418
+ arquivo.add((++sequencia).toString().padStart(5, "0"));
418
419
  arquivo.add("P");
419
420
  arquivo.add(" ");
420
421
  arquivo.add("01");
@@ -455,7 +456,6 @@ function gerarRemessa({ dados }) {
455
456
  arquivo.add("09");
456
457
  arquivo.add("0000000000");
457
458
  arquivo.add(" ");
458
- sequencia++;
459
459
  arquivo.addLine();
460
460
  let tipoInscricao = "1";
461
461
  if (pagador.pessoa === "F") {
@@ -467,7 +467,7 @@ function gerarRemessa({ dados }) {
467
467
  arquivo.add("085");
468
468
  arquivo.add("0001");
469
469
  arquivo.add("3");
470
- arquivo.add(sequencia.toString().padStart(5, "0"));
470
+ arquivo.add((++sequencia).toString().padStart(5, "0"));
471
471
  arquivo.add("Q");
472
472
  arquivo.add(" ");
473
473
  arquivo.add("01");
@@ -486,15 +486,14 @@ function gerarRemessa({ dados }) {
486
486
  arquivo.add("000");
487
487
  arquivo.add(" ".padEnd(20, " "));
488
488
  arquivo.add(" ".padEnd(8, " "));
489
+ arquivo.addLine();
489
490
  dadosBancario.multaAtraso = Number(dadosBancario.multaAtraso || 0);
490
491
  if (dadosBancario.multaAtraso > 0) {
491
- arquivo.addLine();
492
492
  const multa = dadosBancario.multaAtraso.toFixed(2);
493
- sequencia++;
494
493
  arquivo.add("085");
495
494
  arquivo.add("0001");
496
495
  arquivo.add("3");
497
- arquivo.add(sequencia.toString().padStart(5, "0"));
496
+ arquivo.add((++sequencia).toString().padStart(5, "0"));
498
497
  arquivo.add("R");
499
498
  arquivo.add(" ");
500
499
  arquivo.add("01");
@@ -520,9 +519,8 @@ function gerarRemessa({ dados }) {
520
519
  arquivo.add(" ");
521
520
  arquivo.add("0");
522
521
  arquivo.add("000000000");
522
+ arquivo.addLine();
523
523
  }
524
- sequencia++;
525
- arquivo.addLine();
526
524
  quantidadeRegistro++;
527
525
  }
528
526
  arquivo.add("085");
@@ -631,6 +629,7 @@ var Banco = /* @__PURE__ */ ((Banco2) => {
631
629
  Banco2["BRADESCO"] = "005";
632
630
  Banco2["SICREDI"] = "748";
633
631
  Banco2["SICOOB"] = "756";
632
+ Banco2["BANCO_BRASIL"] = "001";
634
633
  return Banco2;
635
634
  })(Banco || {});
636
635
 
@@ -1223,7 +1222,7 @@ function getDigito3(texto) {
1223
1222
  import BwipJs3 from "bwip-js";
1224
1223
  function gerarPDF3(_0) {
1225
1224
  return __async(this, arguments, function* ({ dados }) {
1226
- var _a, _b, _c, _d;
1225
+ var _a, _b, _c, _d, _e, _f, _g;
1227
1226
  try {
1228
1227
  const { generatePDF, dadosPDF } = dados;
1229
1228
  const codigoBarra2 = yield BwipJs3.toBuffer({
@@ -1264,18 +1263,19 @@ function gerarPDF3(_0) {
1264
1263
  dadosPDF.boleto.quantidade = maskFormat_default.numberToReal(dadosPDF.boleto.quantidade);
1265
1264
  }
1266
1265
  const jurosMes = Number(((_a = dadosPDF.beneficiario.dadosBancario) == null ? void 0 : _a.juros) || 0);
1267
- if (jurosMes > 0) {
1268
- dadosPDF.boleto.instrucao1 = `COBRAR JUROS DE ${jurosMes}% AO M\xCAS, AP\xD3S O VENCIMENTO`;
1266
+ const jurosAoDia = jurosMes > 0 ? jurosMes / 30 : 0;
1267
+ if (!((_b = dadosPDF.boleto.instrucao1) == null ? void 0 : _b.length) && jurosAoDia > 0) {
1268
+ dadosPDF.boleto.instrucao1 = `COBRAR JUROS DE ${jurosAoDia}% AO DIA, AP\xD3S O VENCIMENTO`;
1269
1269
  }
1270
- const descontoVencimento = Number(((_b = dadosPDF.beneficiario.dadosBancario) == null ? void 0 : _b.desconto) || 0);
1271
- if (descontoVencimento > 0) {
1270
+ const descontoVencimento = Number(((_c = dadosPDF.beneficiario.dadosBancario) == null ? void 0 : _c.desconto) || 0);
1271
+ if (!((_d = dadosPDF.boleto.instrucao2) == null ? void 0 : _d.length) && descontoVencimento > 0) {
1272
1272
  dadosPDF.boleto.instrucao2 = `AT\xC9 O VENCIMENTO, CONCEDER DESCONTO DE ${descontoVencimento}%`;
1273
1273
  }
1274
- const multaAtraso = Number(((_c = dadosPDF.beneficiario.dadosBancario) == null ? void 0 : _c.multa) || 0);
1275
- if (multaAtraso > 0) {
1274
+ const multaAtraso = Number(((_e = dadosPDF.beneficiario.dadosBancario) == null ? void 0 : _e.multa) || 0);
1275
+ if (!((_f = dadosPDF.boleto.instrucao3) == null ? void 0 : _f.length) && multaAtraso > 0) {
1276
1276
  dadosPDF.boleto.instrucao3 = `MULTA DE ${multaAtraso} %`;
1277
1277
  }
1278
- const protestoDias = Number(((_d = dadosPDF.beneficiario.dadosBancario) == null ? void 0 : _d.protesto) || 0);
1278
+ const protestoDias = Number(((_g = dadosPDF.beneficiario.dadosBancario) == null ? void 0 : _g.protesto) || 0);
1279
1279
  if (protestoDias > 0) {
1280
1280
  dadosPDF.boleto.instrucao4 = `PROTESTAR AP\xD3S ${protestoDias} DIAS CORRIDOS DO VENCIMENTO`;
1281
1281
  }
@@ -1950,6 +1950,436 @@ var sicoob = {
1950
1950
  gerarPDF: gerarPDF4
1951
1951
  };
1952
1952
 
1953
+ // src/banks/banco-brasil/gerarDadosBoleto.ts
1954
+ function gerarDadosBoleto5({ dados }) {
1955
+ try {
1956
+ const {
1957
+ bancario,
1958
+ parcela
1959
+ } = dados;
1960
+ parcela.valor = Number(parcela.valor);
1961
+ const fatorVencimento = getFatorVencimento(parcela.vencimento);
1962
+ const valor = getValor5(parcela.valor);
1963
+ const convenio = padLeft(bancario.convenio, 6);
1964
+ const numeroDocumento = padLeft(`${parcela.id_boleto}2`, 5);
1965
+ const nossoNumero = getNossoNumero3(`${convenio}${numeroDocumento}`);
1966
+ const campoLivre = copy(nossoNumero, 1, 11) + padLeft(bancario.agencia, 4) + padLeft(`${bancario.numero}${bancario.numero_dv}`, 8) + padLeft(bancario.carteira, 2);
1967
+ const digitoGeral = getDigitoGeral5(`0019${fatorVencimento}${valor}${campoLivre}`);
1968
+ const codigoBarra2 = `0019${digitoGeral}${fatorVencimento}${valor}${campoLivre}`;
1969
+ const campo1 = copy(codigoBarra2, 1, 3) + copy(codigoBarra2, 4, 4) + copy(codigoBarra2, 20, 24);
1970
+ const campo2 = copy(codigoBarra2, 25, 34);
1971
+ const campo3 = copy(codigoBarra2, 35, 44);
1972
+ const campo4 = copy(codigoBarra2, 5, 5);
1973
+ const campo5 = copy(codigoBarra2, 6, 9) + copy(codigoBarra2, 10, 19);
1974
+ const digito1 = getDigito5(campo1);
1975
+ const digito2 = getDigito5(campo2);
1976
+ const digito3 = getDigito5(campo3);
1977
+ const linhaDigitavel = campo1 + digito1 + campo2 + digito2 + campo3 + digito3 + campo4 + campo5;
1978
+ const dadosBoleto = {
1979
+ linhaDigitavel,
1980
+ fatorVencimento,
1981
+ valor,
1982
+ convenio,
1983
+ nossoNumero,
1984
+ campoLivre,
1985
+ digitoGeral,
1986
+ codigoBarra: codigoBarra2,
1987
+ numeroDocumento
1988
+ };
1989
+ return dadosBoleto;
1990
+ } catch (error) {
1991
+ console.log("Falha ao gerar dados do boleto", error);
1992
+ return null;
1993
+ }
1994
+ }
1995
+ function getValor5(valor) {
1996
+ const valorFormatado = valor.toFixed(2).replace(/\D/g, "");
1997
+ return padLeft(valorFormatado, 10);
1998
+ }
1999
+ function getNossoNumero3(auxiliar) {
2000
+ let i = 11, j = 10, soma = 0;
2001
+ while (i >= 1) {
2002
+ j--;
2003
+ if (j === 1)
2004
+ j = 9;
2005
+ const numero = Number(copy(auxiliar, i, i));
2006
+ soma += j * numero;
2007
+ i--;
2008
+ }
2009
+ const resto = soma % 11;
2010
+ const digito = resto < 10 ? String(resto) : "X";
2011
+ const nosso_numero = auxiliar + digito;
2012
+ return nosso_numero;
2013
+ }
2014
+ function getDigitoGeral5(texto) {
2015
+ let i = 43;
2016
+ let j = 1;
2017
+ let soma = 0;
2018
+ while (i >= 1) {
2019
+ j++;
2020
+ if (j === 10)
2021
+ j = 2;
2022
+ const valor = Number(copy(texto, i, i));
2023
+ soma += j * valor;
2024
+ i--;
2025
+ }
2026
+ const resto = soma % 11;
2027
+ let digito = 11 - resto;
2028
+ if (digito === 0 || digito > 9)
2029
+ digito = 1;
2030
+ return String(digito);
2031
+ }
2032
+ function getDigito5(texto) {
2033
+ let i = texto.length;
2034
+ let j = 1;
2035
+ let total = 0;
2036
+ let soma = 0;
2037
+ let digito = 0;
2038
+ while (i >= 1) {
2039
+ j = j === 1 ? 2 : 1;
2040
+ let valor = Number(copy(texto, i, i));
2041
+ total = valor * j;
2042
+ if (total >= 10) {
2043
+ valor = Number(copy(total, 1, 1)) + Number(copy(total, 2, 2));
2044
+ } else {
2045
+ valor = total;
2046
+ }
2047
+ soma += valor;
2048
+ i--;
2049
+ }
2050
+ const uni = Number(copy(soma, String(soma).length, String(soma).length));
2051
+ digito = 10 - uni;
2052
+ if (digito === 10)
2053
+ digito = 0;
2054
+ return String(digito);
2055
+ }
2056
+
2057
+ // src/banks/banco-brasil/gerarPDF.ts
2058
+ import BwipJs5 from "bwip-js";
2059
+ function gerarPDF5(_0) {
2060
+ return __async(this, arguments, function* ({ dados }) {
2061
+ var _a, _b, _c, _d, _e, _f, _g, _h;
2062
+ try {
2063
+ const { dadosPDF } = dados;
2064
+ const codigoBarra2 = yield BwipJs5.toBuffer({
2065
+ bcid: "interleaved2of5",
2066
+ text: dadosPDF.boleto.codigoBarra,
2067
+ height: 20
2068
+ });
2069
+ dadosPDF.beneficiario.dadosBancario.agencia = dadosPDF.beneficiario.dadosBancario.agencia.padStart(4, "0");
2070
+ dadosPDF.beneficiario.dadosBancario.conta = dadosPDF.beneficiario.dadosBancario.conta.padStart(7, "0");
2071
+ dadosPDF.boleto.linhaDigitavel = maskFormat_default.codigoBarra(dadosPDF.boleto.linhaDigitavel);
2072
+ dadosPDF.boleto.codigoBarraImage = codigoBarra2.toString("base64");
2073
+ dadosPDF.beneficiario.cnpj = maskFormat_default.retornaCpfCnpjFormatado(
2074
+ dadosPDF.beneficiario.cnpj
2075
+ );
2076
+ dadosPDF.beneficiario.endereco.cep = maskFormat_default.retornaCEPFormatado(
2077
+ dadosPDF.beneficiario.endereco.cep
2078
+ );
2079
+ dadosPDF.pagador.endereco.cep = maskFormat_default.retornaCEPFormatado(
2080
+ dadosPDF.pagador.endereco.cep
2081
+ );
2082
+ dadosPDF.pagador.cnpj = maskFormat_default.retornaCpfCnpjFormatado(dadosPDF.pagador.cnpj);
2083
+ dadosPDF.boleto.valorAcrescimo = maskFormat_default.numberToReal(
2084
+ dadosPDF.boleto.valorAcrescimo
2085
+ );
2086
+ dadosPDF.boleto.valorCobrado = maskFormat_default.numberToReal(
2087
+ dadosPDF.boleto.valorCobrado
2088
+ );
2089
+ dadosPDF.boleto.valorDescontoAbatimento = maskFormat_default.numberToReal(
2090
+ dadosPDF.boleto.valorDescontoAbatimento
2091
+ );
2092
+ dadosPDF.boleto.valorDocumento = maskFormat_default.numberToReal(
2093
+ dadosPDF.boleto.valorDocumento
2094
+ );
2095
+ dadosPDF.boleto.valorMulta = maskFormat_default.numberToReal(dadosPDF.boleto.valorMulta);
2096
+ dadosPDF.boleto.valorOutrasDeducoes = maskFormat_default.numberToReal(
2097
+ dadosPDF.boleto.valorOutrasDeducoes
2098
+ );
2099
+ if (dadosPDF.boleto.quantidade) {
2100
+ dadosPDF.boleto.quantidade = maskFormat_default.numberToReal(dadosPDF.boleto.quantidade);
2101
+ }
2102
+ const jurosMes = Number(((_a = dadosPDF.beneficiario.dadosBancario) == null ? void 0 : _a.juros) || 0);
2103
+ const jurosAoDia = jurosMes / 30;
2104
+ if (!((_b = dadosPDF.boleto.instrucao1) == null ? void 0 : _b.length) && jurosAoDia > 0) {
2105
+ dadosPDF.boleto.instrucao1 = `COBRAR JUROS DE ${jurosMes}% AO DIA, AP\xD3S O VENCIMENTO`;
2106
+ }
2107
+ const descontoVencimento = Number(((_c = dadosPDF.beneficiario.dadosBancario) == null ? void 0 : _c.desconto) || 0);
2108
+ if (!((_d = dadosPDF.boleto.instrucao2) == null ? void 0 : _d.length) && descontoVencimento > 0) {
2109
+ dadosPDF.boleto.instrucao2 = `AT\xC9 O VENCIMENTO, CONCEDER DESCONTO DE ${descontoVencimento}%`;
2110
+ }
2111
+ const multaAtraso = Number(((_e = dadosPDF.beneficiario.dadosBancario) == null ? void 0 : _e.multa) || 0);
2112
+ if (!((_f = dadosPDF.boleto.instrucao3) == null ? void 0 : _f.length) && multaAtraso > 0) {
2113
+ dadosPDF.boleto.instrucao3 = `MULTA DE ${multaAtraso} %`;
2114
+ }
2115
+ const protestoDias = Number(((_g = dadosPDF.beneficiario.dadosBancario) == null ? void 0 : _g.protesto) || 0);
2116
+ if (!((_h = dadosPDF.boleto.instrucao4) == null ? void 0 : _h.length) && protestoDias > 0) {
2117
+ dadosPDF.boleto.instrucao4 = `PROTESTAR AP\xD3S ${protestoDias} DIAS CORRIDOS DO VENCIMENTO`;
2118
+ }
2119
+ dadosPDF.boleto.valor = maskFormat_default.numberToReal(dadosPDF.boleto.valor);
2120
+ const content = compileHbs(getPathTemplates("banco-brasil-boleto.hbs"), dadosPDF);
2121
+ const config = {
2122
+ displayHeaderFooter: false,
2123
+ path: "./boleto.pdf",
2124
+ format: "a4",
2125
+ printBackground: true
2126
+ };
2127
+ let pdfBase64 = null;
2128
+ if (!api.defaults.baseURL) {
2129
+ throw new Error("BaseURL api not found");
2130
+ }
2131
+ const response = yield api.post("/", { content, config });
2132
+ const buffer = Buffer.from(response.data.pdf);
2133
+ pdfBase64 = yield decompress(buffer);
2134
+ return {
2135
+ erro: false,
2136
+ dados: pdfBase64
2137
+ };
2138
+ } catch (error) {
2139
+ console.log(error);
2140
+ return {
2141
+ erro: true,
2142
+ dados: null
2143
+ };
2144
+ }
2145
+ });
2146
+ }
2147
+
2148
+ // src/banks/banco-brasil/gerarRemessa.ts
2149
+ import { addDays as addDays4, format as format5 } from "date-fns";
2150
+ function gerarRemessa5({ dados }) {
2151
+ try {
2152
+ const { dadosBancario, beneficiario, boletos } = dados.remessa;
2153
+ const arquivo = new Arquivo();
2154
+ const dataAtual = /* @__PURE__ */ new Date();
2155
+ const data = format5(dataAtual, "ddMMyyyy");
2156
+ const hora = format5(dataAtual, "HHmmss");
2157
+ const convenio = dadosBancario.convenio.padStart(7, "0");
2158
+ const numero = dadosBancario.conta.padStart(7, "0") + dadosBancario.contaDigito;
2159
+ const remessa2 = `REM${convenio}-${numero}-${data}.REM`;
2160
+ arquivo.add("085");
2161
+ arquivo.add("0000");
2162
+ arquivo.add("0");
2163
+ arquivo.add(" ");
2164
+ arquivo.add("2");
2165
+ arquivo.add(beneficiario.cnpj);
2166
+ arquivo.add(dadosBancario.convenio.padEnd(20, " "));
2167
+ arquivo.add(dadosBancario.agencia.padStart(5, "0"));
2168
+ arquivo.add(dadosBancario.agenciaDigito);
2169
+ arquivo.add(dadosBancario.conta.padStart(12, "0"));
2170
+ arquivo.add(dadosBancario.contaDigito);
2171
+ arquivo.add(" ");
2172
+ arquivo.add(removerAcentos(beneficiario.nome).substring(0, 30).padEnd(30, " "));
2173
+ arquivo.add("AILOS".padEnd(30, " "));
2174
+ arquivo.add(" ");
2175
+ arquivo.add("1");
2176
+ arquivo.add(data);
2177
+ arquivo.add(hora);
2178
+ arquivo.add(dadosBancario.numeroRemessa.padStart(6, "0"));
2179
+ arquivo.add("087");
2180
+ arquivo.add("00000");
2181
+ arquivo.add(" ".padEnd(20, " "));
2182
+ arquivo.add(" ".padEnd(20, " "));
2183
+ arquivo.add(" ".padEnd(29, " "));
2184
+ arquivo.addLine();
2185
+ arquivo.add("085");
2186
+ arquivo.add("0001");
2187
+ arquivo.add("1");
2188
+ arquivo.add("R");
2189
+ arquivo.add("01");
2190
+ arquivo.add(" ");
2191
+ arquivo.add("045");
2192
+ arquivo.add(" ");
2193
+ arquivo.add("2");
2194
+ arquivo.add(beneficiario.cnpj.padStart(15, "0"));
2195
+ arquivo.add(dadosBancario.convenio.padEnd(20, " "));
2196
+ arquivo.add(dadosBancario.agencia.padStart(5, "0"));
2197
+ arquivo.add(dadosBancario.agenciaDigito);
2198
+ arquivo.add(dadosBancario.conta.padStart(12, "0"));
2199
+ arquivo.add(dadosBancario.contaDigito);
2200
+ arquivo.add(" ");
2201
+ arquivo.add(removerAcentos(beneficiario.nome).substring(0, 30).padEnd(30, " "));
2202
+ arquivo.add(" ".padEnd(40, " "));
2203
+ arquivo.add(" ".padEnd(40, " "));
2204
+ arquivo.add(dadosBancario.numeroRemessa.padStart(8, "0"));
2205
+ arquivo.add(data);
2206
+ arquivo.add("00000000");
2207
+ arquivo.add(" ".padEnd(33, " "));
2208
+ arquivo.addLine();
2209
+ let sequencia = 0;
2210
+ let quantidadeRegistro = 0;
2211
+ let total = 0;
2212
+ for (const boleto of boletos) {
2213
+ const { pagador } = boleto;
2214
+ const vencimento = format5(new Date(boleto.vencimento), "ddMMyyyy");
2215
+ total += Number(boleto.valor);
2216
+ const codigoJuro = dadosBancario.jurosMes > 0 ? "2" : "3";
2217
+ const juros = dadosBancario.jurosMes > 0 ? dadosBancario.jurosMes.toFixed(2) : "000000000000000";
2218
+ const jurosVencimento = format5(
2219
+ addDays4(new Date(boleto.vencimento), 1),
2220
+ "ddMMyyyy"
2221
+ );
2222
+ const codigoDesconto = dadosBancario.descontoPagamento > 0 ? "2" : "0";
2223
+ const desconto = dadosBancario.descontoPagamento > 0 ? dadosBancario.descontoPagamento.toFixed(2) : "000000000000000";
2224
+ const protesto = dadosBancario.diasProtesto > 0 ? "1" : "3";
2225
+ const diasProtesto = protesto === "1" ? dadosBancario.diasProtesto.toString() : "00";
2226
+ arquivo.add("085");
2227
+ arquivo.add("0001");
2228
+ arquivo.add("3");
2229
+ arquivo.add((++sequencia).toString().padStart(5, "0"));
2230
+ arquivo.add("P");
2231
+ arquivo.add(" ");
2232
+ arquivo.add("01");
2233
+ arquivo.add(dadosBancario.agencia.padStart(5, "0"));
2234
+ arquivo.add(dadosBancario.agenciaDigito);
2235
+ arquivo.add(dadosBancario.conta.padStart(12, "0"));
2236
+ arquivo.add(dadosBancario.contaDigito);
2237
+ arquivo.add(" ");
2238
+ arquivo.add(boleto.nossoNumero.padEnd(20, " "));
2239
+ arquivo.add("1");
2240
+ arquivo.add("1");
2241
+ arquivo.add("1");
2242
+ arquivo.add("2");
2243
+ arquivo.add("2");
2244
+ arquivo.add(`${boleto.numeroDocumento}/${boleto.parcela}`.padEnd(15, " "));
2245
+ arquivo.add(vencimento);
2246
+ arquivo.add(
2247
+ Number(boleto.valor).toFixed(2).replace(".", "").padStart(15, "0")
2248
+ );
2249
+ arquivo.add(dadosBancario.agencia.padStart(5, "0"));
2250
+ arquivo.add(dadosBancario.agenciaDigito);
2251
+ arquivo.add("02");
2252
+ arquivo.add("A");
2253
+ arquivo.add(data);
2254
+ arquivo.add(codigoJuro);
2255
+ arquivo.add(jurosVencimento);
2256
+ arquivo.add(juros.replace(".", "").padStart(15, "0"));
2257
+ arquivo.add(codigoDesconto);
2258
+ arquivo.add(vencimento);
2259
+ arquivo.add(desconto.replace(".", "").padStart(15, "0"));
2260
+ arquivo.add("000000000000000");
2261
+ arquivo.add("000000000000000");
2262
+ arquivo.add(boleto.identificacaoTitulo.padEnd(25, " "));
2263
+ arquivo.add(protesto);
2264
+ arquivo.add(diasProtesto.padStart(1, "0"));
2265
+ arquivo.add("2");
2266
+ arquivo.add(" ");
2267
+ arquivo.add("09");
2268
+ arquivo.add("0000000000");
2269
+ arquivo.add(" ");
2270
+ arquivo.addLine();
2271
+ let tipoInscricao = "1";
2272
+ if (pagador.pessoa === "F") {
2273
+ tipoInscricao = "1";
2274
+ } else {
2275
+ tipoInscricao = "2";
2276
+ }
2277
+ pagador.endereco.logradouro = `${removerAcentos(pagador.endereco.logradouro).substring(0, 32).padEnd(32, " ")}${pagador.endereco.numero.padEnd(8, " ")}`;
2278
+ arquivo.add("085");
2279
+ arquivo.add("0001");
2280
+ arquivo.add("3");
2281
+ arquivo.add((++sequencia).toString().padStart(5, "0"));
2282
+ arquivo.add("Q");
2283
+ arquivo.add(" ");
2284
+ arquivo.add("01");
2285
+ arquivo.add(tipoInscricao);
2286
+ arquivo.add(pagador.cpfCnpj.padStart(15, "0"));
2287
+ arquivo.add(removerAcentos(pagador.nome).substring(0, 40).padEnd(40, " "));
2288
+ arquivo.add(removerAcentos(pagador.endereco.logradouro).substring(0, 40).padEnd(40, " "));
2289
+ arquivo.add(removerAcentos(pagador.endereco.bairro).substring(0, 15).padEnd(15, " "));
2290
+ arquivo.add(pagador.endereco.cep.substring(0, 5).padStart(5, "0"));
2291
+ arquivo.add(pagador.endereco.cep.substring(5, 7).padStart(3, "0"));
2292
+ arquivo.add(removerAcentos(pagador.endereco.municipio).substring(0, 15).padEnd(15, " "));
2293
+ arquivo.add(removerAcentos(pagador.endereco.uf).padEnd(2, " "));
2294
+ arquivo.add("0");
2295
+ arquivo.add("000000000000000");
2296
+ arquivo.add(" ".padEnd(40, " "));
2297
+ arquivo.add("000");
2298
+ arquivo.add(" ".padEnd(20, " "));
2299
+ arquivo.add(" ".padEnd(8, " "));
2300
+ arquivo.addLine();
2301
+ dadosBancario.multaAtraso = Number(dadosBancario.multaAtraso || 0);
2302
+ if (dadosBancario.multaAtraso > 0) {
2303
+ const multa = dadosBancario.multaAtraso.toFixed(2);
2304
+ arquivo.add("085");
2305
+ arquivo.add("0001");
2306
+ arquivo.add("3");
2307
+ arquivo.add((++sequencia).toString().padStart(5, "0"));
2308
+ arquivo.add("R");
2309
+ arquivo.add(" ");
2310
+ arquivo.add("01");
2311
+ arquivo.add("0");
2312
+ arquivo.add("00000000");
2313
+ arquivo.add("000000000000000");
2314
+ arquivo.add("0");
2315
+ arquivo.add("00000000");
2316
+ arquivo.add("000000000000000");
2317
+ arquivo.add("2");
2318
+ arquivo.add(vencimento);
2319
+ arquivo.add(multa.replace(".", "").padStart(15, "0"));
2320
+ arquivo.add(" ".padEnd(10, " "));
2321
+ arquivo.add(" ".padEnd(40, " "));
2322
+ arquivo.add(" ".padEnd(40, " "));
2323
+ arquivo.add(" ".padEnd(20, " "));
2324
+ arquivo.add("00000000");
2325
+ arquivo.add("000");
2326
+ arquivo.add("00000");
2327
+ arquivo.add(" ");
2328
+ arquivo.add("000000000000");
2329
+ arquivo.add(" ");
2330
+ arquivo.add(" ");
2331
+ arquivo.add("0");
2332
+ arquivo.add("000000000");
2333
+ arquivo.addLine();
2334
+ }
2335
+ quantidadeRegistro++;
2336
+ }
2337
+ arquivo.add("085");
2338
+ arquivo.add("0001");
2339
+ arquivo.add("5");
2340
+ arquivo.add(" ".padEnd(9, " "));
2341
+ arquivo.add((sequencia + 3).toString().padStart(6, "0"));
2342
+ arquivo.add(quantidadeRegistro.toString().padStart(6, "0"));
2343
+ arquivo.add(total.toFixed(2).replace(".", "").padStart(17, "0"));
2344
+ arquivo.add("0".padStart(6, "0"));
2345
+ arquivo.add("0".padStart(17, "0"));
2346
+ arquivo.add("0".padStart(6, "0"));
2347
+ arquivo.add("0".padStart(17, "0"));
2348
+ arquivo.add("0".padStart(6, "0"));
2349
+ arquivo.add("0".padStart(17, "0"));
2350
+ arquivo.add(" ".padStart(8, " "));
2351
+ arquivo.add(" ".padStart(117, " "));
2352
+ arquivo.addLine();
2353
+ arquivo.add("085");
2354
+ arquivo.add("9999");
2355
+ arquivo.add("9");
2356
+ arquivo.add(" ".padEnd(9, " "));
2357
+ arquivo.add("000001");
2358
+ arquivo.add((sequencia + 4).toString().padStart(6, "0"));
2359
+ arquivo.add("000000");
2360
+ arquivo.add(" ".padEnd(205, " "));
2361
+ return {
2362
+ download: remessa2,
2363
+ arquivo: arquivo.getArquivo()
2364
+ };
2365
+ } catch (error) {
2366
+ console.log(error);
2367
+ return null;
2368
+ }
2369
+ }
2370
+
2371
+ // src/banks/banco-brasil/gerarRetorno.ts
2372
+ function gerarRetorno4() {
2373
+ }
2374
+
2375
+ // src/banks/banco-brasil/index.ts
2376
+ var bancoBrasil = {
2377
+ gerarDadosBoleto: gerarDadosBoleto5,
2378
+ gerarPDF: gerarPDF5,
2379
+ gerarRemessa: gerarRemessa5,
2380
+ gerarRetorno: gerarRetorno4
2381
+ };
2382
+
1953
2383
  // src/gerar.ts
1954
2384
  function gerar({ banco, dados }) {
1955
2385
  if (banco === "085" /* AILOS */) {
@@ -1964,6 +2394,9 @@ function gerar({ banco, dados }) {
1964
2394
  if (banco === "756" /* SICOOB */) {
1965
2395
  return sicoob.gerarDadosBoleto({ banco, dados });
1966
2396
  }
2397
+ if (banco === "001" /* BANCO_BRASIL */) {
2398
+ return bancoBrasil.gerarDadosBoleto({ banco, dados });
2399
+ }
1967
2400
  }
1968
2401
 
1969
2402
  // src/pdf.ts
@@ -1980,6 +2413,9 @@ function pdf({ banco, dados }) {
1980
2413
  if (banco === "756" /* SICOOB */) {
1981
2414
  return sicoob.gerarPDF({ banco, dados });
1982
2415
  }
2416
+ if (banco === "001" /* BANCO_BRASIL */) {
2417
+ return bancoBrasil.gerarPDF({ banco, dados });
2418
+ }
1983
2419
  }
1984
2420
 
1985
2421
  // src/remessa.ts
@@ -1996,6 +2432,9 @@ function remessa({ banco, dados }) {
1996
2432
  if (banco === "756" /* SICOOB */) {
1997
2433
  return sicoob.gerarRemessa({ banco, dados });
1998
2434
  }
2435
+ if (banco === "001" /* BANCO_BRASIL */) {
2436
+ return bancoBrasil.gerarRemessa({ banco, dados });
2437
+ }
1999
2438
  }
2000
2439
 
2001
2440
  // src/retorno.ts