@plasoft/boletos 1.0.15 → 1.0.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/build/index.js CHANGED
@@ -56,16 +56,19 @@ __export(src_exports, {
56
56
  });
57
57
  module.exports = __toCommonJS(src_exports);
58
58
 
59
- // src/types/Boletos.ts
60
- var Banco = /* @__PURE__ */ ((Banco2) => {
61
- Banco2["AILOS"] = "085";
62
- Banco2["BRADESCO"] = "005";
63
- return Banco2;
64
- })(Banco || {});
65
-
66
- // src/ailos/gerarDadosBoleto.ts
59
+ // src/banks/ailos/gerarDadosBoleto.ts
67
60
  var import_date_fns = require("date-fns");
68
61
 
62
+ // src/utils/pafLeft.ts
63
+ function padLeft(numero, tamanho) {
64
+ numero = String(numero);
65
+ if (numero.length < tamanho) {
66
+ numero = `0${numero}`;
67
+ return padLeft(numero, tamanho);
68
+ }
69
+ return numero;
70
+ }
71
+
69
72
  // src/utils/copy.ts
70
73
  function copy(texto, startPosition, endPosition) {
71
74
  let retorno2 = "";
@@ -83,15 +86,7 @@ function copy(texto, startPosition, endPosition) {
83
86
  return retorno2;
84
87
  }
85
88
 
86
- // src/utils/pafLeft.ts
87
- function padLeft(numero, size) {
88
- let numeroPadLeft = `${numero}`;
89
- while (numeroPadLeft.length < size)
90
- numeroPadLeft = `0${numeroPadLeft}`;
91
- return numeroPadLeft;
92
- }
93
-
94
- // src/ailos/gerarDadosBoleto.ts
89
+ // src/banks/ailos/gerarDadosBoleto.ts
95
90
  function gerarDadosBoleto({ dados }) {
96
91
  try {
97
92
  const { bancario, parcela } = dados;
@@ -112,8 +107,7 @@ function gerarDadosBoleto({ dados }) {
112
107
  const digito1 = getDigito(campo1);
113
108
  const digito2 = getDigito(campo2);
114
109
  const digito3 = getDigito(campo3);
115
- const digito4 = getDigito(campo4);
116
- const linhaDigitavel = campo1 + digito1 + campo2 + digito2 + campo3 + digito3 + campo4 + digito4 + campo5;
110
+ const linhaDigitavel = campo1 + digito1 + campo2 + digito2 + campo3 + digito3 + campo4 + campo5;
117
111
  const dadosBoleto = {
118
112
  linhaDigitavel,
119
113
  fatorVencimento,
@@ -183,18 +177,9 @@ function getDigito(texto) {
183
177
  return String(digito);
184
178
  }
185
179
 
186
- // src/ailos/gerarPDF.ts
180
+ // src/banks/ailos/gerarPDF.ts
187
181
  var import_bwip_js = __toESM(require("bwip-js"));
188
182
 
189
- // src/utils/compileHbs.ts
190
- var import_handlebars = __toESM(require("handlebars"));
191
- var import_fs = __toESM(require("fs"));
192
- function compileHbs(templatePath, data) {
193
- const html = import_fs.default.readFileSync(templatePath, "utf-8");
194
- const content = import_handlebars.default.compile(html)(data);
195
- return content;
196
- }
197
-
198
183
  // src/utils/maskFormat.ts
199
184
  var import_string_mask = __toESM(require("string-mask"));
200
185
  function retornaCpfCnpjFormatado(cpfCnpj) {
@@ -226,12 +211,14 @@ var maskFormat_default = {
226
211
  codigoBarra
227
212
  };
228
213
 
229
- // src/services/api.ts
230
- var import_config = require("dotenv/config");
231
- var import_axios = __toESM(require("axios"));
232
- var api = import_axios.default.create({
233
- baseURL: process.env.API_URL
234
- });
214
+ // src/utils/compileHbs.ts
215
+ var import_handlebars = __toESM(require("handlebars"));
216
+ var import_fs = __toESM(require("fs"));
217
+ function compileHbs(templatePath, data) {
218
+ const html = import_fs.default.readFileSync(templatePath, "utf-8");
219
+ const content = import_handlebars.default.compile(html)(data);
220
+ return content;
221
+ }
235
222
 
236
223
  // src/utils/getPathTemplates.ts
237
224
  var import_path = __toESM(require("path"));
@@ -242,7 +229,14 @@ function getPathTemplates(template) {
242
229
  return import_path.default.resolve(__dirname, template);
243
230
  }
244
231
 
245
- // src/ailos/gerarPDF.ts
232
+ // src/services/api.ts
233
+ var import_config = require("dotenv/config");
234
+ var import_axios = __toESM(require("axios"));
235
+ var api = import_axios.default.create({
236
+ baseURL: process.env.API_URL
237
+ });
238
+
239
+ // src/banks/ailos/gerarPDF.ts
246
240
  function gerarPDF(_0) {
247
241
  return __async(this, arguments, function* ({ dados }) {
248
242
  var _a, _b, _c, _d;
@@ -266,6 +260,7 @@ function gerarPDF(_0) {
266
260
  dadosPDF.pagador.endereco.cep = maskFormat_default.retornaCEPFormatado(
267
261
  dadosPDF.pagador.endereco.cep
268
262
  );
263
+ dadosPDF.pagador.cnpj = maskFormat_default.retornaCpfCnpjFormatado(dadosPDF.pagador.cnpj);
269
264
  dadosPDF.boleto.valorAcrescimo = maskFormat_default.numberToReal(
270
265
  dadosPDF.boleto.valorAcrescimo
271
266
  );
@@ -333,7 +328,7 @@ function gerarPDF(_0) {
333
328
  });
334
329
  }
335
330
 
336
- // src/ailos/gerarRemessa.ts
331
+ // src/banks/ailos/gerarRemessa.ts
337
332
  var import_date_fns2 = require("date-fns");
338
333
 
339
334
  // src/lib/Arquivo.ts
@@ -353,7 +348,12 @@ var Arquivo = class {
353
348
  }
354
349
  };
355
350
 
356
- // src/ailos/gerarRemessa.ts
351
+ // src/utils/removerAcentos.ts
352
+ function removerAcentos(texto) {
353
+ return texto.normalize("NFD").replace(/[\u0300-\u036f.]/g, "");
354
+ }
355
+
356
+ // src/banks/ailos/gerarRemessa.ts
357
357
  function gerarRemessa({ dados }) {
358
358
  try {
359
359
  const { dadosBancario, beneficiario, boletos } = dados.remessa;
@@ -376,7 +376,7 @@ function gerarRemessa({ dados }) {
376
376
  arquivo.add(dadosBancario.conta.padStart(12, "0"));
377
377
  arquivo.add(dadosBancario.contaDigito);
378
378
  arquivo.add(" ");
379
- arquivo.add(beneficiario.nome.substring(0, 30).padEnd(30, " "));
379
+ arquivo.add(removerAcentos(beneficiario.nome).substring(0, 30).padEnd(30, " "));
380
380
  arquivo.add("AILOS".padEnd(30, " "));
381
381
  arquivo.add(" ");
382
382
  arquivo.add("1");
@@ -405,7 +405,7 @@ function gerarRemessa({ dados }) {
405
405
  arquivo.add(dadosBancario.conta.padStart(12, "0"));
406
406
  arquivo.add(dadosBancario.contaDigito);
407
407
  arquivo.add(" ");
408
- arquivo.add(beneficiario.nome.substring(0, 30).padEnd(30, " "));
408
+ arquivo.add(removerAcentos(beneficiario.nome).substring(0, 30).padEnd(30, " "));
409
409
  arquivo.add(" ".padEnd(40, " "));
410
410
  arquivo.add(" ".padEnd(40, " "));
411
411
  arquivo.add(dadosBancario.numeroRemessa.padStart(8, "0"));
@@ -482,7 +482,7 @@ function gerarRemessa({ dados }) {
482
482
  } else {
483
483
  tipoInscricao = "2";
484
484
  }
485
- pagador.endereco.logradouro = `${pagador.endereco.logradouro.substring(0, 32).padEnd(32, " ")}${pagador.endereco.numero.padEnd(8, " ")}`;
485
+ pagador.endereco.logradouro = `${removerAcentos(pagador.endereco.logradouro).substring(0, 32).padEnd(32, " ")}${pagador.endereco.numero.padEnd(8, " ")}`;
486
486
  arquivo.add("085");
487
487
  arquivo.add("0001");
488
488
  arquivo.add("3");
@@ -492,13 +492,13 @@ function gerarRemessa({ dados }) {
492
492
  arquivo.add("01");
493
493
  arquivo.add(tipoInscricao);
494
494
  arquivo.add(pagador.cpfCnpj.padStart(15, "0"));
495
- arquivo.add(pagador.nome.substring(0, 40).padEnd(40, " "));
496
- arquivo.add(pagador.endereco.logradouro.substring(0, 40).padEnd(40, " "));
497
- arquivo.add(pagador.endereco.bairro.substring(0, 15).padEnd(15, " "));
495
+ arquivo.add(removerAcentos(pagador.nome).substring(0, 40).padEnd(40, " "));
496
+ arquivo.add(removerAcentos(pagador.endereco.logradouro).substring(0, 40).padEnd(40, " "));
497
+ arquivo.add(removerAcentos(pagador.endereco.bairro).substring(0, 15).padEnd(15, " "));
498
498
  arquivo.add(pagador.endereco.cep.substring(0, 5).padStart(5, "0"));
499
499
  arquivo.add(pagador.endereco.cep.substring(5, 7).padStart(3, "0"));
500
- arquivo.add(pagador.endereco.municipio.substring(0, 15).padEnd(15, " "));
501
- arquivo.add(pagador.endereco.uf.padEnd(2, " "));
500
+ arquivo.add(removerAcentos(pagador.endereco.municipio).substring(0, 15).padEnd(15, " "));
501
+ arquivo.add(removerAcentos(pagador.endereco.uf).padEnd(2, " "));
502
502
  arquivo.add("0");
503
503
  arquivo.add("000000000000000");
504
504
  arquivo.add(" ".padEnd(40, " "));
@@ -577,7 +577,7 @@ function gerarRemessa({ dados }) {
577
577
  }
578
578
  }
579
579
 
580
- // src/ailos/gerarRetorno.ts
580
+ // src/banks/ailos/gerarRetorno.ts
581
581
  function gerarRetorno({ dados }) {
582
582
  try {
583
583
  const { arquivo } = dados;
@@ -635,7 +635,7 @@ function gerarRetorno({ dados }) {
635
635
  }
636
636
  }
637
637
 
638
- // src/ailos/index.ts
638
+ // src/banks/ailos/index.ts
639
639
  var ailos = {
640
640
  gerarDadosBoleto,
641
641
  gerarPDF,
@@ -643,7 +643,16 @@ var ailos = {
643
643
  gerarRetorno
644
644
  };
645
645
 
646
- // src/bradesco/gerarDadosBoleto.ts
646
+ // src/types/Boletos.ts
647
+ var Banco = /* @__PURE__ */ ((Banco2) => {
648
+ Banco2["AILOS"] = "085";
649
+ Banco2["BRADESCO"] = "005";
650
+ Banco2["SICREDI"] = "748";
651
+ Banco2["SICOOB"] = "756";
652
+ return Banco2;
653
+ })(Banco || {});
654
+
655
+ // src/banks/bradesco/gerarDadosBoleto.ts
647
656
  var import_date_fns3 = require("date-fns");
648
657
  function gerarDadosBoleto2({ dados }) {
649
658
  try {
@@ -736,7 +745,7 @@ function getDigito2(texto) {
736
745
  return String(digito);
737
746
  }
738
747
 
739
- // src/bradesco/gerarPDF.ts
748
+ // src/banks/bradesco/gerarPDF.ts
740
749
  var import_bwip_js2 = __toESM(require("bwip-js"));
741
750
  function gerarPDF2(_0) {
742
751
  return __async(this, arguments, function* ({ dados }) {
@@ -780,7 +789,7 @@ function gerarPDF2(_0) {
780
789
  dadosPDF.boleto.quantidade = maskFormat_default.numberToReal(dadosPDF.boleto.quantidade);
781
790
  }
782
791
  dadosPDF.boleto.valor = maskFormat_default.numberToReal(dadosPDF.boleto.valor);
783
- const content = compileHbs(getPathTemplates("bradesco-boleto.hbs"), dados);
792
+ const content = compileHbs(getPathTemplates("bradesco-boleto.hbs"), dadosPDF);
784
793
  const config = {
785
794
  displayHeaderFooter: false,
786
795
  path: "./boleto.pdf",
@@ -810,7 +819,7 @@ function gerarPDF2(_0) {
810
819
  });
811
820
  }
812
821
 
813
- // src/bradesco/gerarRemessa.ts
822
+ // src/banks/bradesco/gerarRemessa.ts
814
823
  var import_date_fns4 = require("date-fns");
815
824
  function gerarRemessa2(_0) {
816
825
  return __async(this, arguments, function* ({ dados }) {
@@ -1037,7 +1046,7 @@ function gerarRemessa2(_0) {
1037
1046
  });
1038
1047
  }
1039
1048
 
1040
- // src/bradesco/gerarRetorno.ts
1049
+ // src/banks/bradesco/gerarRetorno.ts
1041
1050
  function gerarRetorno2({ dados }) {
1042
1051
  try {
1043
1052
  const { arquivo } = dados;
@@ -1077,8 +1086,10 @@ function gerarRetorno2({ dados }) {
1077
1086
  id_documento: idDocumento,
1078
1087
  especie,
1079
1088
  valor: valorTotal,
1080
- acrescimo: valorMulta,
1081
- desconto: valorDesconto
1089
+ valor_desconto: 0,
1090
+ valor_juros: 0,
1091
+ valor_multa: 0,
1092
+ valor_total: 0
1082
1093
  };
1083
1094
  documentos.push(documento);
1084
1095
  }
@@ -1093,7 +1104,7 @@ function gerarRetorno2({ dados }) {
1093
1104
  }
1094
1105
  }
1095
1106
 
1096
- // src/bradesco/index.ts
1107
+ // src/banks/bradesco/index.ts
1097
1108
  var bradesco = {
1098
1109
  gerarDadosBoleto: gerarDadosBoleto2,
1099
1110
  gerarPDF: gerarPDF2,
@@ -1101,33 +1112,807 @@ var bradesco = {
1101
1112
  gerarRetorno: gerarRetorno2
1102
1113
  };
1103
1114
 
1104
- // src/gerar.ts
1105
- function gerar({ banco, dados }) {
1106
- if (banco === "085" /* AILOS */) {
1107
- return ailos.gerarDadosBoleto({ banco, dados });
1115
+ // src/banks/sicredi/gerarDadosBoleto.ts
1116
+ var import_date_fns5 = require("date-fns");
1117
+ function gerarDadosBoleto3({ dados }) {
1118
+ try {
1119
+ const { bancario, parcela } = dados;
1120
+ parcela.valor = Number(parcela.valor);
1121
+ const fatorVencimento = getFatorVencimento3(parcela.vencimento);
1122
+ const valor = getValor3(parcela.valor);
1123
+ const nossoNumero = getNossoNumero(
1124
+ parcela.numeroUnico,
1125
+ bancario.agencia,
1126
+ bancario.posto,
1127
+ bancario.codigoCedente
1128
+ );
1129
+ let campoLivre = bancario.tipoCobranca + bancario.tipoCarteira + nossoNumero + bancario.agencia.padStart(4, "0") + bancario.posto.padStart(2, "0") + bancario.codigoCedente.padStart(5, "0") + 10;
1130
+ const digitoCampoLivre = getDigitoCampoLivre(campoLivre);
1131
+ campoLivre = campoLivre + digitoCampoLivre;
1132
+ const digitoGeral = getDigitoGeral3(`7489${fatorVencimento}${valor}${campoLivre}`);
1133
+ const codigoBarra2 = `7489${digitoGeral}${fatorVencimento}${valor}${campoLivre}`;
1134
+ const campo1 = copy(codigoBarra2, 1, 3) + copy(codigoBarra2, 4, 4) + copy(codigoBarra2, 20, 24);
1135
+ const campo2 = copy(codigoBarra2, 25, 34);
1136
+ const campo3 = copy(codigoBarra2, 35, 44);
1137
+ const campo4 = copy(codigoBarra2, 5, 5);
1138
+ const campo5 = copy(codigoBarra2, 6, 9) + copy(codigoBarra2, 10, 19);
1139
+ const digito1 = getDigito3(campo1);
1140
+ const digito2 = getDigito3(campo2);
1141
+ const digito3 = getDigito3(campo3);
1142
+ const linhaDigitavel = campo1 + digito1 + campo2 + digito2 + campo3 + digito3 + campo4 + /*digito4*/
1143
+ +campo5;
1144
+ const dadosBoleto = {
1145
+ linhaDigitavel,
1146
+ fatorVencimento,
1147
+ valor,
1148
+ nossoNumero,
1149
+ campoLivre,
1150
+ digitoGeral,
1151
+ codigoBarra: codigoBarra2
1152
+ };
1153
+ return dadosBoleto;
1154
+ } catch (error) {
1155
+ console.log("Falha ao gerar dados do boleto", error);
1156
+ return null;
1108
1157
  }
1109
- if (banco === "005" /* BRADESCO */) {
1110
- return bradesco.gerarDadosBoleto({ banco, dados });
1158
+ }
1159
+ function getNossoNumero(id, agencia, posto, codigoCedente) {
1160
+ let i = 19;
1161
+ let j = 1;
1162
+ let soma = 0;
1163
+ let digito = 0;
1164
+ const texto = agencia.padStart(4, "0") + posto.padStart(2, "0") + codigoCedente.padStart(5, "0") + id.padStart(8, "0");
1165
+ while (i >= 1) {
1166
+ j++;
1167
+ if (j === 10)
1168
+ j = 2;
1169
+ const valor = Number(copy(texto, i, i));
1170
+ soma += j * valor;
1171
+ i--;
1111
1172
  }
1173
+ const restoDivisao = soma % 11;
1174
+ digito = 11 - restoDivisao;
1175
+ if (restoDivisao === 0 || restoDivisao === 1)
1176
+ digito = 0;
1177
+ return id.padStart(8, "0") + digito.toString();
1112
1178
  }
1113
-
1114
- // src/pdf.ts
1115
- function pdf({ banco, dados }) {
1116
- if (banco === "085" /* AILOS */) {
1117
- return ailos.gerarPDF({ banco, dados });
1179
+ function getFatorVencimento3(vencimento) {
1180
+ const data = new Date(1997, 9, 7);
1181
+ return (0, import_date_fns5.differenceInDays)(new Date(vencimento), data).toString();
1182
+ }
1183
+ function getValor3(valor) {
1184
+ const valorFormatado = valor.toFixed(2).replace(/\D/g, "");
1185
+ return valorFormatado.padStart(10, "0");
1186
+ }
1187
+ function getDigitoCampoLivre(texto) {
1188
+ let i = 24;
1189
+ let j = 1;
1190
+ let soma = 0;
1191
+ let digito = 0;
1192
+ while (i >= 1) {
1193
+ j++;
1194
+ if (j === 10)
1195
+ j = 2;
1196
+ let valor = Number(copy(texto, i, i));
1197
+ soma += valor * j;
1198
+ i--;
1118
1199
  }
1119
- if (banco === "005" /* BRADESCO */) {
1120
- return bradesco.gerarPDF({ banco, dados });
1200
+ const restoDivisao = soma % 11;
1201
+ if (restoDivisao > 1)
1202
+ digito = 11 - restoDivisao;
1203
+ return String(digito);
1204
+ }
1205
+ function getDigitoGeral3(texto) {
1206
+ let i = 43;
1207
+ let j = 1;
1208
+ let soma = 0;
1209
+ let digito = 0;
1210
+ while (i >= 1) {
1211
+ j++;
1212
+ if (j === 10)
1213
+ j = 2;
1214
+ const valor = Number(copy(texto, i, i));
1215
+ soma += j * valor;
1216
+ i--;
1121
1217
  }
1218
+ const restoDivisao = soma % 11;
1219
+ digito = 11 - restoDivisao;
1220
+ if (digito <= 1 || digito >= 10)
1221
+ digito = 1;
1222
+ return String(digito);
1122
1223
  }
1123
-
1124
- // src/remessa.ts
1125
- function remessa({ banco, dados }) {
1126
- if (banco === "085" /* AILOS */) {
1127
- return ailos.gerarRemessa({ banco, dados });
1224
+ function getDigito3(texto) {
1225
+ let i = texto.length;
1226
+ let j = 1;
1227
+ let total = 0;
1228
+ let soma = 0;
1229
+ let digito = 0;
1230
+ while (i >= 1) {
1231
+ j = j === 1 ? 2 : 1;
1232
+ let valor = Number(copy(texto, i, i));
1233
+ total = valor * j;
1234
+ if (total >= 10) {
1235
+ valor = Number(copy(total, 1, 1)) + Number(copy(total, 2, 2));
1236
+ } else {
1237
+ valor = total;
1238
+ }
1239
+ soma += valor;
1240
+ i--;
1128
1241
  }
1129
- if (banco === "005" /* BRADESCO */) {
1130
- return bradesco.gerarRemessa({ banco, dados });
1242
+ const uni = Number(copy(soma, String(soma).length, String(soma).length));
1243
+ digito = 10 - uni;
1244
+ if (digito === 10)
1245
+ digito = 0;
1246
+ return String(digito);
1247
+ }
1248
+
1249
+ // src/banks/sicredi/gerarPDF.ts
1250
+ var import_bwip_js3 = __toESM(require("bwip-js"));
1251
+ function gerarPDF3(_0) {
1252
+ return __async(this, arguments, function* ({ dados }) {
1253
+ var _a, _b, _c, _d;
1254
+ try {
1255
+ const { generatePDF, dadosPDF } = dados;
1256
+ const codigoBarra2 = yield import_bwip_js3.default.toBuffer({
1257
+ bcid: "interleaved2of5",
1258
+ text: dadosPDF.boleto.codigoBarra,
1259
+ height: 20
1260
+ });
1261
+ dadosPDF.beneficiario.dadosBancario.agencia = dadosPDF.beneficiario.dadosBancario.agencia.padStart(4, "0");
1262
+ dadosPDF.boleto.linhaDigitavel = maskFormat_default.codigoBarra(dadosPDF.boleto.linhaDigitavel);
1263
+ dadosPDF.boleto.codigoBarraImage = codigoBarra2.toString("base64");
1264
+ dadosPDF.beneficiario.cnpj = maskFormat_default.retornaCpfCnpjFormatado(
1265
+ dadosPDF.beneficiario.cnpj
1266
+ );
1267
+ dadosPDF.beneficiario.endereco.cep = maskFormat_default.retornaCEPFormatado(
1268
+ dadosPDF.beneficiario.endereco.cep
1269
+ );
1270
+ dadosPDF.pagador.endereco.cep = maskFormat_default.retornaCEPFormatado(
1271
+ dadosPDF.pagador.endereco.cep
1272
+ );
1273
+ dadosPDF.pagador.cnpj = maskFormat_default.retornaCpfCnpjFormatado(dadosPDF.pagador.cnpj);
1274
+ dadosPDF.boleto.valorAcrescimo = maskFormat_default.numberToReal(
1275
+ dadosPDF.boleto.valorAcrescimo
1276
+ );
1277
+ dadosPDF.boleto.valorCobrado = maskFormat_default.numberToReal(
1278
+ dadosPDF.boleto.valorCobrado
1279
+ );
1280
+ dadosPDF.boleto.valorDescontoAbatimento = maskFormat_default.numberToReal(
1281
+ dadosPDF.boleto.valorDescontoAbatimento
1282
+ );
1283
+ dadosPDF.boleto.valorDocumento = maskFormat_default.numberToReal(
1284
+ dadosPDF.boleto.valorDocumento
1285
+ );
1286
+ dadosPDF.boleto.valorMulta = maskFormat_default.numberToReal(dadosPDF.boleto.valorMulta);
1287
+ dadosPDF.boleto.valorOutrasDeducoes = maskFormat_default.numberToReal(
1288
+ dadosPDF.boleto.valorOutrasDeducoes
1289
+ );
1290
+ if (dadosPDF.boleto.quantidade) {
1291
+ dadosPDF.boleto.quantidade = maskFormat_default.numberToReal(dadosPDF.boleto.quantidade);
1292
+ }
1293
+ const jurosMes = Number(((_a = dadosPDF.beneficiario.dadosBancario) == null ? void 0 : _a.juros) || 0);
1294
+ if (jurosMes > 0) {
1295
+ dadosPDF.boleto.instrucao1 = `COBRAR JUROS DE ${jurosMes}% AO M\xCAS, AP\xD3S O VENCIMENTO`;
1296
+ }
1297
+ const descontoVencimento = Number(((_b = dadosPDF.beneficiario.dadosBancario) == null ? void 0 : _b.desconto) || 0);
1298
+ if (descontoVencimento > 0) {
1299
+ dadosPDF.boleto.instrucao2 = `AT\xC9 O VENCIMENTO, CONCEDER DESCONTO DE ${descontoVencimento}%`;
1300
+ }
1301
+ const multaAtraso = Number(((_c = dadosPDF.beneficiario.dadosBancario) == null ? void 0 : _c.multa) || 0);
1302
+ if (multaAtraso > 0) {
1303
+ dadosPDF.boleto.instrucao3 = `MULTA DE ${multaAtraso} %`;
1304
+ }
1305
+ const protestoDias = Number(((_d = dadosPDF.beneficiario.dadosBancario) == null ? void 0 : _d.protesto) || 0);
1306
+ if (protestoDias > 0) {
1307
+ dadosPDF.boleto.instrucao4 = `PROTESTAR AP\xD3S ${protestoDias} DIAS CORRIDOS DO VENCIMENTO`;
1308
+ }
1309
+ dadosPDF.boleto.valor = maskFormat_default.numberToReal(dadosPDF.boleto.valor);
1310
+ const content = compileHbs(getPathTemplates("sicredi-boleto.hbs"), dadosPDF);
1311
+ const config = {
1312
+ displayHeaderFooter: false,
1313
+ path: "./boleto.pdf",
1314
+ format: "a4",
1315
+ printBackground: true
1316
+ };
1317
+ let pdfBase64 = null;
1318
+ if (generatePDF) {
1319
+ pdfBase64 = yield generatePDF(content, config);
1320
+ } else {
1321
+ if (!api.defaults.baseURL) {
1322
+ throw new Error("BaseURL api not found");
1323
+ }
1324
+ const response = yield api.post("/", { content, config });
1325
+ pdfBase64 = response.data;
1326
+ }
1327
+ return {
1328
+ erro: false,
1329
+ dados: pdfBase64
1330
+ };
1331
+ } catch (error) {
1332
+ console.log(error);
1333
+ return {
1334
+ erro: true,
1335
+ dados: error
1336
+ };
1337
+ }
1338
+ });
1339
+ }
1340
+
1341
+ // src/banks/sicredi/gerarRemessa.ts
1342
+ var import_date_fns6 = require("date-fns");
1343
+ function gerarRemessa3({ dados }) {
1344
+ try {
1345
+ const { dadosBancario, beneficiario, boletos } = dados.remessa;
1346
+ const arquivo = new Arquivo();
1347
+ const dataAtual = (0, import_date_fns6.format)(/* @__PURE__ */ new Date(), "ddMMyyyy");
1348
+ const dia = copy(dataAtual, 1, 2);
1349
+ const mes = copy(dataAtual, 2, 4);
1350
+ let protestar = "00";
1351
+ let negativar = "0000";
1352
+ if (dadosBancario.diasProtesto > 0) {
1353
+ protestar = "06";
1354
+ }
1355
+ const remessa2 = `${dadosBancario.codigo_cedente}`;
1356
+ arquivo.add("01REMESSA");
1357
+ arquivo.add("01");
1358
+ arquivo.add("COBRANCA".padEnd(15, " "));
1359
+ arquivo.add(dadosBancario.codigo_cedente);
1360
+ arquivo.add(beneficiario.cnpj);
1361
+ arquivo.add(" ".padEnd(31, " "));
1362
+ arquivo.add("748");
1363
+ arquivo.add("SICREDI".padEnd(15, " "));
1364
+ arquivo.add((0, import_date_fns6.format)(/* @__PURE__ */ new Date(), "yyyyMMdd"));
1365
+ arquivo.add(" ".padEnd(8, " "));
1366
+ arquivo.add(dadosBancario.numeroRemessa.padStart(7, "0"));
1367
+ arquivo.add(" ".padEnd(273, " "));
1368
+ arquivo.add("2.00");
1369
+ arquivo.add("000001");
1370
+ arquivo.addLine();
1371
+ let sequencia = 2;
1372
+ let total = 0;
1373
+ for (const boleto of boletos) {
1374
+ const { pagador } = boleto;
1375
+ total += Number(boleto.valor);
1376
+ console.log(pagador);
1377
+ let nossoNumero = "100010001";
1378
+ let tipoInscricao = pagador.pessoa === "F" ? "1" : "";
1379
+ const desconto = dadosBancario.descontoPagamento > 0 ? dadosBancario.descontoPagamento.toFixed(2) : "0";
1380
+ const dataDesconto = (0, import_date_fns6.format)(new Date(boleto.vencimento), "ddMMyy");
1381
+ let valorJurosDias = Number(boleto.valor) + Number(dadosBancario.jurosMes) / 100 / 30;
1382
+ let multaAtraso = String(dadosBancario.multaAtraso * 100);
1383
+ arquivo.add("1");
1384
+ arquivo.add("AAA");
1385
+ arquivo.add(" ".padEnd(12, " "));
1386
+ arquivo.add("AAA");
1387
+ arquivo.add(" ".padEnd(28, " "));
1388
+ arquivo.add(nossoNumero.padEnd(9, " "));
1389
+ arquivo.add(" ".padEnd(6, " "));
1390
+ arquivo.add((0, import_date_fns6.format)(new Date(boleto.emissao), "yyyyMMdd"));
1391
+ arquivo.add(" ");
1392
+ arquivo.add("N");
1393
+ arquivo.add(" ");
1394
+ arquivo.add("B");
1395
+ arquivo.add("0000");
1396
+ arquivo.add(" ".padEnd(4, " "));
1397
+ arquivo.add("0".padEnd(10, "0"));
1398
+ arquivo.add(multaAtraso.padStart(4, "0"));
1399
+ arquivo.add(" ".padEnd(12, " "));
1400
+ arquivo.add("01");
1401
+ arquivo.add(boleto.identificacaoTitulo.padEnd(10, " "));
1402
+ arquivo.add((0, import_date_fns6.format)(new Date(boleto.vencimento), "ddMMyy"));
1403
+ arquivo.add(Number(boleto.valor).toFixed(2).replace(".", "").padStart(13, "0"));
1404
+ arquivo.add(" ".padEnd(9, " "));
1405
+ arquivo.add("AN");
1406
+ arquivo.add((0, import_date_fns6.format)(new Date(boleto.emissao), "ddMMyy"));
1407
+ arquivo.add(protestar);
1408
+ arquivo.add(String(dadosBancario.diasProtesto).padStart(2, "0"));
1409
+ arquivo.add(Number(valorJurosDias).toFixed(2).replace(".", "").padStart(13, "0"));
1410
+ arquivo.add(dataDesconto);
1411
+ arquivo.add(Number(desconto).toFixed(2).replace(".", "").padStart(13, "0"));
1412
+ arquivo.add(negativar);
1413
+ arquivo.add("0".padEnd(22, "0"));
1414
+ arquivo.add(tipoInscricao);
1415
+ arquivo.add("0");
1416
+ arquivo.add(pagador.cpfCnpj.padStart(14, "0"));
1417
+ arquivo.add(removerAcentos(pagador.nome).substring(0, 40).padEnd(40, " "));
1418
+ arquivo.add(pagador.endereco.logradouro.substring(0, 40).padEnd(40, " "));
1419
+ arquivo.add("0".padEnd(11, "0"));
1420
+ arquivo.add(" ");
1421
+ arquivo.add(pagador.endereco.cep.padEnd(8, " "));
1422
+ arquivo.add("00000");
1423
+ arquivo.add(" ".padEnd(55, " "));
1424
+ arquivo.add(String(sequencia).padStart(6, "0"));
1425
+ arquivo.addLine();
1426
+ sequencia++;
1427
+ }
1428
+ arquivo.add("91748");
1429
+ arquivo.add(dadosBancario.codigo_cedente);
1430
+ arquivo.add(" ".padEnd(384, " "));
1431
+ arquivo.add(String(sequencia).padStart(6, "0"));
1432
+ return {
1433
+ download: "teste.rem",
1434
+ arquivo: arquivo.getArquivo()
1435
+ };
1436
+ } catch (error) {
1437
+ console.log(error);
1438
+ return null;
1439
+ }
1440
+ }
1441
+
1442
+ // src/banks/sicredi/index.ts
1443
+ var sicredi = {
1444
+ gerarDadosBoleto: gerarDadosBoleto3,
1445
+ gerarPDF: gerarPDF3,
1446
+ gerarRemessa: gerarRemessa3
1447
+ };
1448
+
1449
+ // src/banks/sicoob/gerarDadosBoleto.ts
1450
+ var import_date_fns7 = require("date-fns");
1451
+ function gerarDadosBoleto4({ dados }) {
1452
+ try {
1453
+ const { bancario, parcela } = dados;
1454
+ if (!bancario.modalidade) {
1455
+ bancario.modalidade = "01";
1456
+ }
1457
+ bancario.modalidade = padLeft(bancario.modalidade, 2);
1458
+ const nossoNumero = getNossoNumero2(bancario.agencia, bancario.codigo_cliente, parcela.id_boleto);
1459
+ const fatorVencimento = getFatorVencimento4(parcela.vencimento);
1460
+ const valor = getValor4(Number(parcela.valor));
1461
+ const campoLivre = "1" + padLeft(copy(bancario.agencia, 1, 4), 4) + bancario.modalidade + padLeft(bancario.codigo_cliente, 7) + nossoNumero + padLeft(parcela.parcela, 3);
1462
+ const digitoGeral = getDigitoGeral4(`7569${fatorVencimento}${valor}${campoLivre}`);
1463
+ const codigoBarra2 = `7569${digitoGeral}${fatorVencimento}${valor}${campoLivre}`;
1464
+ const campo1 = copy(codigoBarra2, 1, 4) + copy(codigoBarra2, 20, 24);
1465
+ const campo2 = copy(codigoBarra2, 25, 34);
1466
+ const campo3 = copy(codigoBarra2, 35, 44);
1467
+ const campo4 = copy(codigoBarra2, 5, 5);
1468
+ const campo5 = copy(codigoBarra2, 6, 9) + copy(codigoBarra2, 10, 19);
1469
+ const digito1 = getDigito4(campo1);
1470
+ const digito2 = getDigito4(campo2);
1471
+ const digito3 = getDigito4(campo3);
1472
+ const linhaDigitavel = campo1 + digito1 + campo2 + digito2 + campo3 + digito3 + campo4 + campo5;
1473
+ const dadosBoleto = {
1474
+ linhaDigitavel,
1475
+ fatorVencimento,
1476
+ valor,
1477
+ nossoNumero,
1478
+ campoLivre,
1479
+ digitoGeral,
1480
+ codigoBarra: codigoBarra2
1481
+ };
1482
+ return dadosBoleto;
1483
+ } catch (error) {
1484
+ console.log("Falha ao gerar dados do boleto", error);
1485
+ return null;
1486
+ }
1487
+ }
1488
+ function getFatorVencimento4(vencimento) {
1489
+ const data = new Date(1997, 9, 7);
1490
+ return (0, import_date_fns7.differenceInDays)(new Date(vencimento), data).toString().padStart(4, "0");
1491
+ }
1492
+ function getNossoNumero2(numero_cooperativa, codigo_cliente, id_boleto) {
1493
+ const constante_calculo = "3197";
1494
+ numero_cooperativa = padLeft(copy(numero_cooperativa, 1, 4), 4);
1495
+ codigo_cliente = padLeft(codigo_cliente, 10);
1496
+ id_boleto = padLeft(`${id_boleto}2`, 7);
1497
+ const sequencia_concatenada = numero_cooperativa + codigo_cliente + id_boleto;
1498
+ let soma = 0;
1499
+ for (let i = sequencia_concatenada.length - 1; i >= 0; i--) {
1500
+ soma += Number(sequencia_concatenada[i]) * Number(constante_calculo[i % constante_calculo.length]);
1501
+ }
1502
+ let dig = soma % 11;
1503
+ dig = dig === 1 ? dig = 0 : 11 - dig;
1504
+ return `${id_boleto}${dig}`;
1505
+ }
1506
+ function getValor4(valor) {
1507
+ const valorFormatado = valor.toFixed(2).replace(/\D/g, "");
1508
+ return padLeft(valorFormatado, 10);
1509
+ }
1510
+ function getDigitoGeral4(texto) {
1511
+ let i = 43;
1512
+ let j = 1;
1513
+ let soma = 0;
1514
+ let digito = 0;
1515
+ while (i >= 1) {
1516
+ j++;
1517
+ if (j === 10)
1518
+ j = 2;
1519
+ const valor = Number(copy(texto, i, i));
1520
+ soma += j * valor;
1521
+ i--;
1522
+ }
1523
+ const restoDivisao = soma % 11;
1524
+ digito = 11 - restoDivisao;
1525
+ if (digito === 0 || digito === 1 || digito > 9)
1526
+ digito = 1;
1527
+ return String(digito);
1528
+ }
1529
+ function getDigito4(texto) {
1530
+ let i = texto.length;
1531
+ let j = 1;
1532
+ let total = 0;
1533
+ let soma = 0;
1534
+ let digito = 0;
1535
+ while (i >= 1) {
1536
+ j = j === 1 ? 2 : 1;
1537
+ let valor = Number(copy(texto, i, i));
1538
+ total = valor * j;
1539
+ if (total >= 10) {
1540
+ valor = Number(copy(total, 1, 1)) + Number(copy(total, 2, 2));
1541
+ } else {
1542
+ valor = total;
1543
+ }
1544
+ soma += valor;
1545
+ i--;
1546
+ }
1547
+ const uni = Number(copy(soma, String(soma).length, String(soma).length));
1548
+ digito = 10 - uni;
1549
+ if (digito === 10)
1550
+ digito = 0;
1551
+ return String(digito);
1552
+ }
1553
+
1554
+ // src/banks/sicoob/gerarRemessa.ts
1555
+ var import_date_fns8 = require("date-fns");
1556
+ function gerarRemessa4({ dados }) {
1557
+ try {
1558
+ const { dadosBancario, beneficiario, boletos } = dados.remessa;
1559
+ const arquivo = new Arquivo();
1560
+ const dataAtual = /* @__PURE__ */ new Date();
1561
+ const data = (0, import_date_fns8.format)(dataAtual, "ddMMyyyy");
1562
+ const hora = (0, import_date_fns8.format)(dataAtual, "HHmmss");
1563
+ const convenio = dadosBancario.convenio.padStart(7, "0");
1564
+ const numero = dadosBancario.conta.padStart(7, "0") + dadosBancario.contaDigito;
1565
+ const remessa2 = `REM${convenio}-${numero}-${data}.REM`;
1566
+ arquivo.add("756");
1567
+ arquivo.add("0000");
1568
+ arquivo.add("0");
1569
+ arquivo.add(" ".padEnd(9, " "));
1570
+ arquivo.add("2");
1571
+ arquivo.add(beneficiario.cnpj);
1572
+ arquivo.add(" ".padEnd(20, " "));
1573
+ arquivo.add(dadosBancario.agencia.padStart(6, "0"));
1574
+ arquivo.add(dadosBancario.conta.padStart(13, "0"));
1575
+ arquivo.add("0");
1576
+ arquivo.add(beneficiario.nome.padEnd(30, " "));
1577
+ arquivo.add("SICOOB".padEnd(30, " "));
1578
+ arquivo.add(" ".padEnd(10, " "));
1579
+ arquivo.add("1");
1580
+ arquivo.add(data);
1581
+ arquivo.add(hora);
1582
+ arquivo.add(dadosBancario.numeroRemessa.padStart(6, "0"));
1583
+ arquivo.add("081");
1584
+ arquivo.add("00000");
1585
+ arquivo.add(" ".padEnd(69, " "));
1586
+ arquivo.addLine();
1587
+ arquivo.add("756");
1588
+ arquivo.add("0001");
1589
+ arquivo.add("1");
1590
+ arquivo.add("R");
1591
+ arquivo.add("01");
1592
+ arquivo.add(" ");
1593
+ arquivo.add("040");
1594
+ arquivo.add(" ");
1595
+ arquivo.add("2");
1596
+ arquivo.add(beneficiario.cnpj.padStart(15, "0"));
1597
+ arquivo.add(" ".padEnd(20, " "));
1598
+ arquivo.add(dadosBancario.agencia.padStart(6, "0"));
1599
+ arquivo.add(dadosBancario.conta.padStart(13, "0"));
1600
+ arquivo.add(" ");
1601
+ arquivo.add(beneficiario.nome.padEnd(30, " "));
1602
+ arquivo.add(" ".padEnd(80, " "));
1603
+ arquivo.add(dadosBancario.numeroRemessa.padStart(8, "0"));
1604
+ arquivo.add(data);
1605
+ arquivo.add("00000000");
1606
+ arquivo.add(" ".padEnd(33, " "));
1607
+ arquivo.addLine();
1608
+ let sequencia = 0;
1609
+ let quantidadeRegistro = 0;
1610
+ let total = 0;
1611
+ for (const boleto of boletos) {
1612
+ const { pagador } = boleto;
1613
+ const vencimento = (0, import_date_fns8.format)(new Date(boleto.vencimento), "ddMMyyyy");
1614
+ const valor_juros_dia = Number(boleto.valor) * dadosBancario.jurosMes / 100 / 30;
1615
+ const protesto = dadosBancario.diasProtesto > 0 ? "1" : "3";
1616
+ const diasProtesto = protesto === "1" ? dadosBancario.diasProtesto.toString() : "00";
1617
+ if (dadosBancario.aceite === "S") {
1618
+ dadosBancario.aceite = "A";
1619
+ }
1620
+ total += Number(boleto.valor);
1621
+ sequencia++;
1622
+ arquivo.add("756");
1623
+ arquivo.add("0001");
1624
+ arquivo.add("3");
1625
+ arquivo.add(sequencia.toString().padStart(5, "0"));
1626
+ arquivo.add("P");
1627
+ arquivo.add(" ");
1628
+ arquivo.add("01");
1629
+ arquivo.add(dadosBancario.agencia.padStart(6, "0"));
1630
+ arquivo.add(dadosBancario.conta.padStart(13, "0"));
1631
+ arquivo.add(" ");
1632
+ arquivo.add(boleto.nossoNumero.padStart(10, "0"));
1633
+ arquivo.add(boleto.parcela.toString().padStart(2, "0"));
1634
+ arquivo.add(dadosBancario.modalidade.padStart(2, "0"));
1635
+ arquivo.add("6");
1636
+ arquivo.add(" ".padEnd(5, " "));
1637
+ arquivo.add(dadosBancario.carteira);
1638
+ arquivo.add("0 22");
1639
+ arquivo.add(`${boleto.numeroDocumento}/${Number(boleto.parcela)}`.padEnd(15, " "));
1640
+ arquivo.add(vencimento);
1641
+ arquivo.add(Number(boleto.valor).toFixed(2).replace(".", "").padStart(15, "0"));
1642
+ arquivo.add("00000");
1643
+ arquivo.add(" ");
1644
+ arquivo.add("02");
1645
+ arquivo.add(dadosBancario.aceite);
1646
+ arquivo.add(data);
1647
+ arquivo.add("1");
1648
+ arquivo.add((0, import_date_fns8.format)((0, import_date_fns8.addDays)(new Date(boleto.vencimento), 1), "ddMMyyyy"));
1649
+ arquivo.add(valor_juros_dia.toFixed(2).replace(".", "").padStart(15, "0"));
1650
+ arquivo.add("0");
1651
+ arquivo.add("00000000");
1652
+ arquivo.add("000000000000000");
1653
+ arquivo.add("000000000000000");
1654
+ arquivo.add("000000000000000");
1655
+ arquivo.add(" ".padEnd(25, " "));
1656
+ arquivo.add(protesto);
1657
+ arquivo.add(diasProtesto.padStart(2, "0"));
1658
+ arquivo.add("0");
1659
+ arquivo.add(" ");
1660
+ arquivo.add("09");
1661
+ arquivo.add("0000000000");
1662
+ arquivo.add(" ");
1663
+ sequencia++;
1664
+ arquivo.addLine();
1665
+ let tipoInscricao = "1";
1666
+ if (pagador.pessoa === "F") {
1667
+ tipoInscricao = "1";
1668
+ } else {
1669
+ tipoInscricao = "2";
1670
+ }
1671
+ arquivo.add("756");
1672
+ arquivo.add("0001");
1673
+ arquivo.add("3");
1674
+ arquivo.add(sequencia.toString().padStart(5, "0"));
1675
+ arquivo.add("Q");
1676
+ arquivo.add(" ");
1677
+ arquivo.add("01");
1678
+ arquivo.add(tipoInscricao);
1679
+ arquivo.add(pagador.cpfCnpj.padStart(15, "0"));
1680
+ arquivo.add(removerAcentos(pagador.nome).substring(0, 40).padEnd(40, " "));
1681
+ arquivo.add(removerAcentos(pagador.endereco.tipo_logradouro).padEnd(3, " "));
1682
+ arquivo.add(" ");
1683
+ arquivo.add(removerAcentos(pagador.endereco.logradouro).substring(0, 29).padEnd(29, " "));
1684
+ arquivo.add(" ");
1685
+ arquivo.add(pagador.endereco.numero.padEnd(6, " "));
1686
+ arquivo.add(removerAcentos(pagador.endereco.bairro).substring(0, 15).padEnd(15, " "));
1687
+ arquivo.add(pagador.endereco.cep.padEnd(8, " "));
1688
+ arquivo.add(removerAcentos(pagador.endereco.municipio).substring(0, 15).padEnd(15, " "));
1689
+ arquivo.add(removerAcentos(pagador.endereco.uf).padEnd(2, " "));
1690
+ arquivo.add("0");
1691
+ arquivo.add("000000000000000");
1692
+ arquivo.add(" ".padEnd(40, " "));
1693
+ arquivo.add("000");
1694
+ arquivo.add(" ".padEnd(28, " "));
1695
+ sequencia++;
1696
+ let multa = "0";
1697
+ let data_multa = "00000000";
1698
+ let percentual_multa = "000000000000000";
1699
+ dadosBancario.multaAtraso = Number(dadosBancario.multaAtraso || 0);
1700
+ if (dadosBancario.multaAtraso > 0) {
1701
+ multa = "2";
1702
+ data_multa = (0, import_date_fns8.format)((0, import_date_fns8.addDays)(new Date(boleto.vencimento), 1), "ddMMyyyy");
1703
+ percentual_multa = (dadosBancario.multaAtraso * 100).toString().padStart(15, "0");
1704
+ }
1705
+ arquivo.add("756");
1706
+ arquivo.add("0001");
1707
+ arquivo.add("3");
1708
+ arquivo.add("");
1709
+ arquivo.add(sequencia.toString().padStart(5, "0"));
1710
+ arquivo.add("R");
1711
+ arquivo.add(" ");
1712
+ arquivo.add("01");
1713
+ arquivo.add("0");
1714
+ arquivo.add("00000000");
1715
+ arquivo.add("000000000000000");
1716
+ arquivo.add("0");
1717
+ arquivo.add("00000000");
1718
+ arquivo.add("000000000000000");
1719
+ arquivo.add(multa);
1720
+ arquivo.add(data_multa);
1721
+ arquivo.add(percentual_multa);
1722
+ arquivo.add(" ".padEnd(10, " "));
1723
+ arquivo.add(" ".padEnd(40, " "));
1724
+ arquivo.add(" ".padEnd(40, " "));
1725
+ arquivo.add(" ".padEnd(20, " "));
1726
+ arquivo.add("00000000");
1727
+ arquivo.add("000");
1728
+ arquivo.add("00000");
1729
+ arquivo.add(" ");
1730
+ arquivo.add("000000000000");
1731
+ arquivo.add(" ");
1732
+ arquivo.add("0");
1733
+ arquivo.add(" ".padEnd(9, " "));
1734
+ arquivo.addLine();
1735
+ quantidadeRegistro++;
1736
+ }
1737
+ arquivo.add("756");
1738
+ arquivo.add("0001");
1739
+ arquivo.add("5");
1740
+ arquivo.add(" ".padEnd(9, " "));
1741
+ arquivo.add((sequencia + 2).toString().padStart(6, "0"));
1742
+ arquivo.add(quantidadeRegistro.toString().padStart(6, "0"));
1743
+ arquivo.add("00");
1744
+ arquivo.add(total.toFixed(2).replace(".", "").padStart(15, "0"));
1745
+ arquivo.add("000000000000000000000000000000000000000000000000000000000000000000000");
1746
+ arquivo.add(" ".padEnd(125, " "));
1747
+ arquivo.addLine();
1748
+ arquivo.add("756");
1749
+ arquivo.add("9999");
1750
+ arquivo.add("9");
1751
+ arquivo.add(" ".padEnd(9, " "));
1752
+ arquivo.add("000001");
1753
+ arquivo.add((sequencia + 4).toString().padStart(6, "0"));
1754
+ arquivo.add("000000");
1755
+ arquivo.add(" ".padEnd(205, " "));
1756
+ return {
1757
+ download: remessa2,
1758
+ arquivo: arquivo.getArquivo()
1759
+ };
1760
+ } catch (error) {
1761
+ console.log(error);
1762
+ return null;
1763
+ }
1764
+ }
1765
+
1766
+ // src/banks/sicoob/gerarPDF.ts
1767
+ var import_bwip_js4 = __toESM(require("bwip-js"));
1768
+ var import_string_mask2 = __toESM(require("string-mask"));
1769
+ function gerarPDF4(_0) {
1770
+ return __async(this, arguments, function* ({ dados }) {
1771
+ try {
1772
+ const { dadosPDF, generatePDF } = dados;
1773
+ const codigoBarra2 = yield import_bwip_js4.default.toBuffer({
1774
+ bcid: "interleaved2of5",
1775
+ text: dadosPDF.boleto.codigoBarra,
1776
+ height: 20
1777
+ });
1778
+ dadosPDF.boleto.numeroDocumento = formatNumeroDocumento(
1779
+ dadosPDF.boleto.numeroDocumento,
1780
+ dadosPDF.boleto.parcela
1781
+ );
1782
+ dadosPDF.beneficiario.dadosBancario.agencia = formatAgenciaCodigoCedente(
1783
+ dadosPDF.beneficiario.dadosBancario.agencia,
1784
+ dadosPDF.beneficiario.dadosBancario.codigo_cliente
1785
+ );
1786
+ dadosPDF.boleto.nossoNumero = formatNossoNumero(
1787
+ dadosPDF.boleto.parcela,
1788
+ dadosPDF.boleto.nossoNumero
1789
+ );
1790
+ dadosPDF.boleto.linhaDigitavel = maskFormat_default.codigoBarra(dadosPDF.boleto.linhaDigitavel);
1791
+ dadosPDF.boleto.codigoBarra = maskFormat_default.codigoBarra(dadosPDF.boleto.codigoBarra);
1792
+ dadosPDF.boleto.codigoBarraImage = codigoBarra2.toString("base64");
1793
+ dadosPDF.pagador.endereco.cep = maskFormat_default.retornaCEPFormatado(
1794
+ dadosPDF.pagador.endereco.cep
1795
+ );
1796
+ dadosPDF.boleto.valorAcrescimo = maskFormat_default.numberToReal(
1797
+ dadosPDF.boleto.valorAcrescimo
1798
+ );
1799
+ dadosPDF.boleto.valorCobrado = maskFormat_default.numberToReal(
1800
+ dadosPDF.boleto.valorCobrado
1801
+ );
1802
+ dadosPDF.boleto.valorDescontoAbatimento = maskFormat_default.numberToReal(
1803
+ dadosPDF.boleto.valorDescontoAbatimento
1804
+ );
1805
+ dadosPDF.boleto.valorDocumento = maskFormat_default.numberToReal(
1806
+ dadosPDF.boleto.valorDocumento
1807
+ );
1808
+ dadosPDF.boleto.valorMulta = maskFormat_default.numberToReal(dadosPDF.boleto.valorMulta);
1809
+ dadosPDF.boleto.valorOutrasDeducoes = maskFormat_default.numberToReal(
1810
+ dadosPDF.boleto.valorOutrasDeducoes
1811
+ );
1812
+ if (dadosPDF.boleto.quantidade) {
1813
+ dadosPDF.boleto.quantidade = maskFormat_default.numberToReal(dadosPDF.boleto.quantidade);
1814
+ }
1815
+ dadosPDF.boleto.valor = maskFormat_default.numberToReal(dadosPDF.boleto.valor);
1816
+ const content = compileHbs(getPathTemplates("sicoob-boleto.hbs"), dadosPDF);
1817
+ const config = {
1818
+ displayHeaderFooter: false,
1819
+ path: "./boleto.pdf",
1820
+ format: "a4",
1821
+ printBackground: true
1822
+ };
1823
+ let pdfBase64 = null;
1824
+ if (generatePDF) {
1825
+ pdfBase64 = yield generatePDF(content, config);
1826
+ } else {
1827
+ if (!api.defaults.baseURL) {
1828
+ throw new Error("BaseURL api not found");
1829
+ }
1830
+ const response = yield api.post("/", { content, config });
1831
+ pdfBase64 = response.data;
1832
+ }
1833
+ return {
1834
+ erro: false,
1835
+ dados: pdfBase64
1836
+ };
1837
+ } catch (error) {
1838
+ return {
1839
+ erro: true,
1840
+ dados: null
1841
+ };
1842
+ }
1843
+ });
1844
+ }
1845
+ function formatAgenciaCodigoCedente(agencia, conta) {
1846
+ agencia = agencia.slice(0, -1).padStart(4, "0");
1847
+ conta = conta.padStart(7, "0");
1848
+ const agenciaFmt = new import_string_mask2.default("0000.000000-0");
1849
+ return agenciaFmt.apply(agencia + conta);
1850
+ }
1851
+ function formatNossoNumero(parcela, nossoNumero) {
1852
+ parcela = String(parcela).padStart(2, "0");
1853
+ nossoNumero = nossoNumero.padStart(8, "0");
1854
+ const nossoNumeroFmt = new import_string_mask2.default("00/0000000-0");
1855
+ return nossoNumeroFmt.apply(parcela + nossoNumero);
1856
+ }
1857
+ function formatNumeroDocumento(numeroDocumento, parcela) {
1858
+ parcela = String(parcela).padStart(2, "0");
1859
+ numeroDocumento = numeroDocumento.padStart(6, "0");
1860
+ const numeroDoctoFmt = new import_string_mask2.default("000000-00");
1861
+ return numeroDoctoFmt.apply(numeroDocumento + parcela);
1862
+ }
1863
+
1864
+ // src/banks/sicoob/index.ts
1865
+ var sicoob = {
1866
+ gerarDadosBoleto: gerarDadosBoleto4,
1867
+ gerarRemessa: gerarRemessa4,
1868
+ gerarPDF: gerarPDF4
1869
+ };
1870
+
1871
+ // src/gerar.ts
1872
+ function gerar({ banco, dados }) {
1873
+ if (banco === "085" /* AILOS */) {
1874
+ return ailos.gerarDadosBoleto({ banco, dados });
1875
+ }
1876
+ if (banco === "005" /* BRADESCO */) {
1877
+ return bradesco.gerarDadosBoleto({ banco, dados });
1878
+ }
1879
+ if (banco === "748" /* SICREDI */) {
1880
+ return sicredi.gerarDadosBoleto({ banco, dados });
1881
+ }
1882
+ if (banco === "756" /* SICOOB */) {
1883
+ return sicoob.gerarDadosBoleto({ banco, dados });
1884
+ }
1885
+ }
1886
+
1887
+ // src/pdf.ts
1888
+ function pdf({ banco, dados }) {
1889
+ if (banco === "085" /* AILOS */) {
1890
+ return ailos.gerarPDF({ banco, dados });
1891
+ }
1892
+ if (banco === "005" /* BRADESCO */) {
1893
+ return bradesco.gerarPDF({ banco, dados });
1894
+ }
1895
+ if (banco === "748" /* SICREDI */) {
1896
+ return sicredi.gerarPDF({ banco, dados });
1897
+ }
1898
+ if (banco === "756" /* SICOOB */) {
1899
+ return sicoob.gerarPDF({ banco, dados });
1900
+ }
1901
+ }
1902
+
1903
+ // src/remessa.ts
1904
+ function remessa({ banco, dados }) {
1905
+ if (banco === "085" /* AILOS */) {
1906
+ return ailos.gerarRemessa({ banco, dados });
1907
+ }
1908
+ if (banco === "005" /* BRADESCO */) {
1909
+ return bradesco.gerarRemessa({ banco, dados });
1910
+ }
1911
+ if (banco === "748" /* SICREDI */) {
1912
+ return sicredi.gerarRemessa({ banco, dados });
1913
+ }
1914
+ if (banco === "756" /* SICOOB */) {
1915
+ return sicoob.gerarRemessa({ banco, dados });
1131
1916
  }
1132
1917
  }
1133
1918