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