@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/ailos-boleto.hbs +490 -490
- package/build/index.d.mts +317 -23
- package/build/index.d.ts +317 -23
- package/build/index.js +861 -76
- package/build/index.mjs +861 -76
- package/build/sicoob-boleto.hbs +843 -0
- package/build/sicredi-boleto.hbs +581 -0
- package/build/teste.html +811 -0
- package/build/teste2.html +490 -0
- package/package.json +3 -3
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/
|
|
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/
|
|
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
|
|
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/
|
|
230
|
-
var
|
|
231
|
-
var
|
|
232
|
-
|
|
233
|
-
|
|
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/
|
|
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/
|
|
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/
|
|
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"),
|
|
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
|
-
|
|
1081
|
-
|
|
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/
|
|
1105
|
-
|
|
1106
|
-
|
|
1107
|
-
|
|
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
|
-
|
|
1110
|
-
|
|
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
|
-
|
|
1115
|
-
|
|
1116
|
-
|
|
1117
|
-
|
|
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
|
-
|
|
1120
|
-
|
|
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
|
-
|
|
1125
|
-
|
|
1126
|
-
|
|
1127
|
-
|
|
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
|
-
|
|
1130
|
-
|
|
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
|
|