@plasoft/boletos 1.0.2 → 1.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/build/index.d.mts CHANGED
@@ -1,3 +1,170 @@
1
+ interface IParcelaGerarBoleto {
2
+ id_boleto: number;
3
+ parcela: number;
4
+ vencimento: string | Date;
5
+ valor: number | string;
6
+ pago: number | string;
7
+ data_emissao: string | Date;
8
+ }
9
+
10
+ type IParcela = IParcelaGerarBoleto;
11
+ interface ICedente {
12
+ numero: string;
13
+ numero_dv: string;
14
+ convenio: string;
15
+ msg_local: string;
16
+ msg_1: string;
17
+ msg_2: string;
18
+ msg_3: string;
19
+ nome: string;
20
+ cnpj: string;
21
+ carteira: string;
22
+ }
23
+ declare function gerarDadosBoleto(cedente: ICedente, parcela: IParcela): Promise<{
24
+ fatorVencimento: string;
25
+ valor: string;
26
+ convenio: string;
27
+ nossoNumero: string;
28
+ campoLivre: string;
29
+ digitoGeral: string;
30
+ codigoBarra: string;
31
+ numeroDocumento: string;
32
+ campo1: string;
33
+ campo2: string;
34
+ campo3: string;
35
+ campo4: string;
36
+ campo5: string;
37
+ digito1: string;
38
+ digito2: string;
39
+ digito3: string;
40
+ digito4: string;
41
+ } | null>;
42
+
43
+ interface IDadosBoleto {
44
+ pagador: {
45
+ nome: string;
46
+ endereco: {
47
+ logradouro: string;
48
+ numero: string;
49
+ bairro: string;
50
+ cep: string;
51
+ municipio: string;
52
+ uf: string;
53
+ };
54
+ };
55
+ beneficiario: {
56
+ nome: string;
57
+ cnpj: string;
58
+ dadosBancarios: {
59
+ carteira: string;
60
+ convenio: string;
61
+ agencia: string;
62
+ agenciaDigito: string;
63
+ conta: string;
64
+ contaDigito: string;
65
+ };
66
+ endereco: {
67
+ logradouro: string;
68
+ numero: string;
69
+ bairro: string;
70
+ cep: string;
71
+ municipio: string;
72
+ uf: string;
73
+ };
74
+ };
75
+ boleto: {
76
+ dataVencimento: string;
77
+ dataProcessamento: string;
78
+ dataDocumento: string;
79
+ valorCobrado: number | string;
80
+ valorDocumento: number | string;
81
+ valorDescontoAbatimento: number | string;
82
+ valorOutrasDeducoes: number | string;
83
+ valorMulta: number | string;
84
+ valorAcrescimo: number | string;
85
+ quantidade?: number | string;
86
+ valor?: number | string;
87
+ numeroDocumento: string;
88
+ nossoNumero: string;
89
+ especieDocumento: string;
90
+ aceite: 'S' | 'N';
91
+ moeda: string;
92
+ usoDoBanco?: string;
93
+ cip?: string;
94
+ codigoBarra: string;
95
+ codigoBarraImage?: string;
96
+ instrucao1?: string;
97
+ instrucao2?: string;
98
+ instrucao3?: string;
99
+ };
100
+ }
101
+ declare function gerarPDF(dados: IDadosBoleto): Promise<{
102
+ erro: boolean;
103
+ dados?: undefined;
104
+ } | {
105
+ erro: boolean;
106
+ dados: null;
107
+ }>;
108
+
109
+ interface IDadosRemessa {
110
+ pagador: {
111
+ nome: string;
112
+ pessoa: 'F' | 'J';
113
+ cpfCnpj: string;
114
+ endereco: {
115
+ logradouro: string;
116
+ numero: string;
117
+ bairro: string;
118
+ cep: string;
119
+ municipio: string;
120
+ uf: string;
121
+ };
122
+ };
123
+ beneficiario: {
124
+ nome: string;
125
+ cnpj: string;
126
+ endereco: {
127
+ logradouro: string;
128
+ numero: string;
129
+ bairro: string;
130
+ cep: string;
131
+ municipio: string;
132
+ uf: string;
133
+ };
134
+ };
135
+ dadosBancario: {
136
+ carteira: string;
137
+ convenio: string;
138
+ agencia: string;
139
+ agenciaDigito: string;
140
+ conta: string;
141
+ contaDigito: string;
142
+ numeroRemessa: string;
143
+ jurosMes: number;
144
+ multaAtraso: number;
145
+ descontoPagamento: number;
146
+ diasProtesto: number;
147
+ };
148
+ boletos: {
149
+ identificacaoTitulo: string;
150
+ vencimento: string | Date;
151
+ valor: number | string;
152
+ nossoNumero: string;
153
+ numeroDocumento: string;
154
+ parcela: number | string;
155
+ }[];
156
+ }
157
+ declare function gerarRemessa(dados: IDadosRemessa): Promise<{
158
+ download: string;
159
+ arquivo: string;
160
+ } | null>;
161
+
162
+ declare const ailos: {
163
+ gerarDadosBoleto: typeof gerarDadosBoleto;
164
+ gerarPDF: typeof gerarPDF;
165
+ gerarRemessa: typeof gerarRemessa;
166
+ };
167
+
1
168
  declare function bradesco(): void;
2
169
 
3
- export { bradesco };
170
+ export { ailos, bradesco };
package/build/index.d.ts CHANGED
@@ -1,3 +1,170 @@
1
+ interface IParcelaGerarBoleto {
2
+ id_boleto: number;
3
+ parcela: number;
4
+ vencimento: string | Date;
5
+ valor: number | string;
6
+ pago: number | string;
7
+ data_emissao: string | Date;
8
+ }
9
+
10
+ type IParcela = IParcelaGerarBoleto;
11
+ interface ICedente {
12
+ numero: string;
13
+ numero_dv: string;
14
+ convenio: string;
15
+ msg_local: string;
16
+ msg_1: string;
17
+ msg_2: string;
18
+ msg_3: string;
19
+ nome: string;
20
+ cnpj: string;
21
+ carteira: string;
22
+ }
23
+ declare function gerarDadosBoleto(cedente: ICedente, parcela: IParcela): Promise<{
24
+ fatorVencimento: string;
25
+ valor: string;
26
+ convenio: string;
27
+ nossoNumero: string;
28
+ campoLivre: string;
29
+ digitoGeral: string;
30
+ codigoBarra: string;
31
+ numeroDocumento: string;
32
+ campo1: string;
33
+ campo2: string;
34
+ campo3: string;
35
+ campo4: string;
36
+ campo5: string;
37
+ digito1: string;
38
+ digito2: string;
39
+ digito3: string;
40
+ digito4: string;
41
+ } | null>;
42
+
43
+ interface IDadosBoleto {
44
+ pagador: {
45
+ nome: string;
46
+ endereco: {
47
+ logradouro: string;
48
+ numero: string;
49
+ bairro: string;
50
+ cep: string;
51
+ municipio: string;
52
+ uf: string;
53
+ };
54
+ };
55
+ beneficiario: {
56
+ nome: string;
57
+ cnpj: string;
58
+ dadosBancarios: {
59
+ carteira: string;
60
+ convenio: string;
61
+ agencia: string;
62
+ agenciaDigito: string;
63
+ conta: string;
64
+ contaDigito: string;
65
+ };
66
+ endereco: {
67
+ logradouro: string;
68
+ numero: string;
69
+ bairro: string;
70
+ cep: string;
71
+ municipio: string;
72
+ uf: string;
73
+ };
74
+ };
75
+ boleto: {
76
+ dataVencimento: string;
77
+ dataProcessamento: string;
78
+ dataDocumento: string;
79
+ valorCobrado: number | string;
80
+ valorDocumento: number | string;
81
+ valorDescontoAbatimento: number | string;
82
+ valorOutrasDeducoes: number | string;
83
+ valorMulta: number | string;
84
+ valorAcrescimo: number | string;
85
+ quantidade?: number | string;
86
+ valor?: number | string;
87
+ numeroDocumento: string;
88
+ nossoNumero: string;
89
+ especieDocumento: string;
90
+ aceite: 'S' | 'N';
91
+ moeda: string;
92
+ usoDoBanco?: string;
93
+ cip?: string;
94
+ codigoBarra: string;
95
+ codigoBarraImage?: string;
96
+ instrucao1?: string;
97
+ instrucao2?: string;
98
+ instrucao3?: string;
99
+ };
100
+ }
101
+ declare function gerarPDF(dados: IDadosBoleto): Promise<{
102
+ erro: boolean;
103
+ dados?: undefined;
104
+ } | {
105
+ erro: boolean;
106
+ dados: null;
107
+ }>;
108
+
109
+ interface IDadosRemessa {
110
+ pagador: {
111
+ nome: string;
112
+ pessoa: 'F' | 'J';
113
+ cpfCnpj: string;
114
+ endereco: {
115
+ logradouro: string;
116
+ numero: string;
117
+ bairro: string;
118
+ cep: string;
119
+ municipio: string;
120
+ uf: string;
121
+ };
122
+ };
123
+ beneficiario: {
124
+ nome: string;
125
+ cnpj: string;
126
+ endereco: {
127
+ logradouro: string;
128
+ numero: string;
129
+ bairro: string;
130
+ cep: string;
131
+ municipio: string;
132
+ uf: string;
133
+ };
134
+ };
135
+ dadosBancario: {
136
+ carteira: string;
137
+ convenio: string;
138
+ agencia: string;
139
+ agenciaDigito: string;
140
+ conta: string;
141
+ contaDigito: string;
142
+ numeroRemessa: string;
143
+ jurosMes: number;
144
+ multaAtraso: number;
145
+ descontoPagamento: number;
146
+ diasProtesto: number;
147
+ };
148
+ boletos: {
149
+ identificacaoTitulo: string;
150
+ vencimento: string | Date;
151
+ valor: number | string;
152
+ nossoNumero: string;
153
+ numeroDocumento: string;
154
+ parcela: number | string;
155
+ }[];
156
+ }
157
+ declare function gerarRemessa(dados: IDadosRemessa): Promise<{
158
+ download: string;
159
+ arquivo: string;
160
+ } | null>;
161
+
162
+ declare const ailos: {
163
+ gerarDadosBoleto: typeof gerarDadosBoleto;
164
+ gerarPDF: typeof gerarPDF;
165
+ gerarRemessa: typeof gerarRemessa;
166
+ };
167
+
1
168
  declare function bradesco(): void;
2
169
 
3
- export { bradesco };
170
+ export { ailos, bradesco };
package/build/index.js CHANGED
@@ -26,10 +26,31 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
26
26
  mod
27
27
  ));
28
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var __async = (__this, __arguments, generator) => {
30
+ return new Promise((resolve, reject) => {
31
+ var fulfilled = (value) => {
32
+ try {
33
+ step(generator.next(value));
34
+ } catch (e) {
35
+ reject(e);
36
+ }
37
+ };
38
+ var rejected = (value) => {
39
+ try {
40
+ step(generator.throw(value));
41
+ } catch (e) {
42
+ reject(e);
43
+ }
44
+ };
45
+ var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
46
+ step((generator = generator.apply(__this, __arguments)).next());
47
+ });
48
+ };
29
49
 
30
50
  // src/index.ts
31
51
  var src_exports = {};
32
52
  __export(src_exports, {
53
+ ailos: () => ailos,
33
54
  bradesco: () => bradesco
34
55
  });
35
56
  module.exports = __toCommonJS(src_exports);
@@ -37,20 +58,488 @@ module.exports = __toCommonJS(src_exports);
37
58
  // src/ailos/gerarDadosBoleto.ts
38
59
  var import_date_fns = require("date-fns");
39
60
 
61
+ // src/utils/copy.ts
62
+ function copy(texto, startPosition, endPosition) {
63
+ let retorno = "";
64
+ if (typeof texto === "number")
65
+ texto = String(texto);
66
+ if (!endPosition)
67
+ endPosition = texto.length;
68
+ for (let i = 0; i < texto.length; i++) {
69
+ const index = i + 1;
70
+ if (index >= startPosition && index <= endPosition) {
71
+ const letra = texto[i];
72
+ retorno += letra;
73
+ }
74
+ }
75
+ return retorno;
76
+ }
77
+
78
+ // src/utils/pafLeft.ts
79
+ function padLeft(numero, size) {
80
+ let numeroPadLeft = `${numero}`;
81
+ while (numeroPadLeft.length < size)
82
+ numeroPadLeft = `0${numeroPadLeft}`;
83
+ return numeroPadLeft;
84
+ }
85
+
86
+ // src/ailos/gerarDadosBoleto.ts
87
+ function gerarDadosBoleto(cedente, parcela) {
88
+ return __async(this, null, function* () {
89
+ try {
90
+ parcela.valor = Number(parcela.valor);
91
+ const fatorVencimento = getFatorVencimento(parcela.vencimento);
92
+ const valor = getValor(parcela.valor);
93
+ const convenio = padLeft(cedente.convenio, 6);
94
+ const numeroDocumento = padLeft(`${parcela.id_boleto}`, 9);
95
+ const nossoNumero = padLeft(cedente.numero + cedente.numero_dv, 8) + numeroDocumento;
96
+ const campoLivre = convenio + nossoNumero + padLeft(cedente.carteira, 2);
97
+ const digitoGeral = getDigitoGeral(`0859${fatorVencimento}${valor}${campoLivre}`);
98
+ const codigoBarra2 = `0859${digitoGeral}${fatorVencimento}${valor}${campoLivre}`;
99
+ const campo1 = copy(codigoBarra2, 1, 3) + copy(codigoBarra2, 4, 4) + copy(codigoBarra2, 20, 24);
100
+ const campo2 = copy(codigoBarra2, 25, 34);
101
+ const campo3 = copy(codigoBarra2, 35, 44);
102
+ const campo4 = copy(codigoBarra2, 5, 5);
103
+ const campo5 = copy(codigoBarra2, 6, 9) + copy(codigoBarra2, 10, 19);
104
+ const digito1 = getDigito(campo1);
105
+ const digito2 = getDigito(campo2);
106
+ const digito3 = getDigito(campo3);
107
+ const digito4 = getDigito(campo4);
108
+ const dados = {
109
+ fatorVencimento,
110
+ valor,
111
+ convenio,
112
+ nossoNumero,
113
+ campoLivre,
114
+ digitoGeral,
115
+ codigoBarra: codigoBarra2,
116
+ numeroDocumento,
117
+ campo1,
118
+ campo2,
119
+ campo3,
120
+ campo4,
121
+ campo5,
122
+ digito1,
123
+ digito2,
124
+ digito3,
125
+ digito4
126
+ };
127
+ return dados;
128
+ } catch (error) {
129
+ console.log("Falha ao gerar dados do boleto", error);
130
+ return null;
131
+ }
132
+ });
133
+ }
134
+ function getFatorVencimento(vencimento) {
135
+ const data = new Date(1997, 9, 7);
136
+ return (0, import_date_fns.differenceInDays)(new Date(vencimento), data).toString();
137
+ }
138
+ function getValor(valor) {
139
+ const valorFormatado = valor.toFixed(2).replace(/\D/g, "");
140
+ return padLeft(valorFormatado, 10);
141
+ }
142
+ function getDigitoGeral(texto) {
143
+ let i = 43;
144
+ let j = 1;
145
+ let soma = 0;
146
+ let digito = 0;
147
+ while (i >= 1) {
148
+ j++;
149
+ if (j === 10)
150
+ j = 2;
151
+ const valor = Number(copy(texto, i, i));
152
+ soma += j * valor;
153
+ i--;
154
+ }
155
+ const restoDivisao = soma % 11;
156
+ digito = 11 - restoDivisao;
157
+ if (digito === 0 || digito === 1 || digito > 9)
158
+ digito = 1;
159
+ return String(digito);
160
+ }
161
+ function getDigito(texto) {
162
+ let i = texto.length;
163
+ let j = 1;
164
+ let total = 0;
165
+ let soma = 0;
166
+ let digito = 0;
167
+ while (i >= 1) {
168
+ j = j === 1 ? 2 : 1;
169
+ let valor = Number(copy(texto, i, i));
170
+ total = valor * j;
171
+ if (total >= 10) {
172
+ valor = Number(copy(total, 1, 1)) + Number(copy(total, 2, 2));
173
+ } else {
174
+ valor = total;
175
+ }
176
+ soma += valor;
177
+ i--;
178
+ }
179
+ const uni = Number(copy(soma, String(soma).length, String(soma).length));
180
+ digito = 10 - uni;
181
+ if (digito === 10)
182
+ digito = 0;
183
+ return String(digito);
184
+ }
185
+
40
186
  // src/ailos/gerarPDF.ts
187
+ var import_path = __toESM(require("path"));
41
188
  var import_bwip_js = __toESM(require("bwip-js"));
42
189
 
43
190
  // src/utils/compileHbs.ts
44
191
  var import_handlebars = __toESM(require("handlebars"));
192
+ var import_fs = __toESM(require("fs"));
193
+ function compileHbs(templatePath, data) {
194
+ const html = import_fs.default.readFileSync(templatePath, "utf-8");
195
+ const content = import_handlebars.default.compile(html)(data);
196
+ return content;
197
+ }
198
+
199
+ // src/utils/maskFormat.ts
200
+ function retornaCpfCnpjFormatado(cpfCnpj) {
201
+ return cpfCnpj;
202
+ }
203
+ function retornaCEPFormatado(cep) {
204
+ return cep;
205
+ }
206
+ function numberToReal(numero) {
207
+ numero = typeof numero === "string" ? parseFloat(numero) : numero;
208
+ numero = numero.toFixed(2).split(".");
209
+ numero[0] = numero[0].split(/(?=(?:...)*$)/).join(".");
210
+ return numero.join(",");
211
+ }
212
+ function codigoBarra(codigo) {
213
+ return codigo;
214
+ }
215
+ var maskFormat_default = {
216
+ numberToReal,
217
+ retornaCEPFormatado,
218
+ retornaCpfCnpjFormatado,
219
+ codigoBarra
220
+ };
221
+
222
+ // src/ailos/gerarPDF.ts
223
+ function gerarPDF(dados) {
224
+ return __async(this, null, function* () {
225
+ try {
226
+ const codigoBarra2 = yield import_bwip_js.default.toBuffer({
227
+ bcid: "interleaved2of5",
228
+ text: dados.boleto.codigoBarra,
229
+ height: 20
230
+ });
231
+ dados.beneficiario.dadosBancarios.agencia = dados.beneficiario.dadosBancarios.agencia.padStart(4, "0");
232
+ dados.beneficiario.dadosBancarios.conta = dados.beneficiario.dadosBancarios.conta.padStart(7, "0");
233
+ dados.boleto.codigoBarra = maskFormat_default.codigoBarra(dados.boleto.codigoBarra);
234
+ dados.boleto.codigoBarraImage = codigoBarra2.toString("base64");
235
+ dados.beneficiario.cnpj = maskFormat_default.retornaCpfCnpjFormatado(
236
+ dados.beneficiario.cnpj
237
+ );
238
+ dados.beneficiario.endereco.cep = maskFormat_default.retornaCEPFormatado(
239
+ dados.beneficiario.endereco.cep
240
+ );
241
+ dados.pagador.endereco.cep = maskFormat_default.retornaCEPFormatado(
242
+ dados.pagador.endereco.cep
243
+ );
244
+ dados.boleto.valorAcrescimo = maskFormat_default.numberToReal(
245
+ dados.boleto.valorAcrescimo
246
+ );
247
+ dados.boleto.valorCobrado = maskFormat_default.numberToReal(
248
+ dados.boleto.valorCobrado
249
+ );
250
+ dados.boleto.valorDescontoAbatimento = maskFormat_default.numberToReal(
251
+ dados.boleto.valorDescontoAbatimento
252
+ );
253
+ dados.boleto.valorDocumento = maskFormat_default.numberToReal(
254
+ dados.boleto.valorDocumento
255
+ );
256
+ dados.boleto.valorMulta = maskFormat_default.numberToReal(dados.boleto.valorMulta);
257
+ dados.boleto.valorOutrasDeducoes = maskFormat_default.numberToReal(
258
+ dados.boleto.valorOutrasDeducoes
259
+ );
260
+ if (dados.boleto.quantidade) {
261
+ dados.boleto.quantidade = maskFormat_default.numberToReal(dados.boleto.quantidade);
262
+ }
263
+ dados.boleto.valor = maskFormat_default.numberToReal(dados.boleto.valor);
264
+ const filePath = import_path.default.join(__dirname, "views", "boleto.hbs");
265
+ const content = compileHbs(filePath, dados);
266
+ const config = {
267
+ displayHeaderFooter: false,
268
+ path: "./boleto.pdf",
269
+ format: "a4",
270
+ printBackground: true
271
+ };
272
+ return {
273
+ erro: false
274
+ // dados: response.data,
275
+ };
276
+ } catch (error) {
277
+ return {
278
+ erro: true,
279
+ dados: null
280
+ };
281
+ }
282
+ });
283
+ }
45
284
 
46
285
  // src/ailos/gerarRemessa.ts
47
286
  var import_date_fns2 = require("date-fns");
48
287
 
288
+ // src/lib/Arquivo.ts
289
+ var Arquivo = class {
290
+ constructor() {
291
+ this.arquivo = "";
292
+ this.arquivo = "";
293
+ }
294
+ add(texto) {
295
+ this.arquivo += texto;
296
+ }
297
+ addLine() {
298
+ this.arquivo += "\n";
299
+ }
300
+ getArquivo() {
301
+ return this.arquivo;
302
+ }
303
+ };
304
+
305
+ // src/ailos/gerarRemessa.ts
306
+ function gerarRemessa(dados) {
307
+ return __async(this, null, function* () {
308
+ try {
309
+ const { dadosBancario, beneficiario, boletos, pagador } = dados;
310
+ const arquivo = new Arquivo();
311
+ const dataAtual = /* @__PURE__ */ new Date();
312
+ const data = (0, import_date_fns2.format)(dataAtual, "ddMMyyyy");
313
+ const hora = (0, import_date_fns2.format)(dataAtual, "HHmmss");
314
+ const convenio = dadosBancario.convenio.padStart(7, "0");
315
+ const numero = dadosBancario.conta.padStart(7, "0") + dadosBancario.contaDigito;
316
+ const remessa = `REM${convenio}-${numero}-${data}.REM`;
317
+ arquivo.add("085");
318
+ arquivo.add("0000");
319
+ arquivo.add("0");
320
+ arquivo.add(" ");
321
+ arquivo.add("2");
322
+ arquivo.add(beneficiario.cnpj);
323
+ arquivo.add(dadosBancario.convenio.padEnd(20, " "));
324
+ arquivo.add(dadosBancario.agencia.padStart(5, "0"));
325
+ arquivo.add(dadosBancario.agencia);
326
+ arquivo.add(dadosBancario.conta.padStart(12, "0"));
327
+ arquivo.add(dadosBancario.contaDigito);
328
+ arquivo.add(" ");
329
+ arquivo.add(beneficiario.nome.substring(0, 30).padEnd(30, " "));
330
+ arquivo.add("AILOS".padEnd(30, " "));
331
+ arquivo.add(" ");
332
+ arquivo.add("1");
333
+ arquivo.add(data);
334
+ arquivo.add(hora);
335
+ arquivo.add(dadosBancario.numeroRemessa.padStart(6, "0"));
336
+ arquivo.add("087");
337
+ arquivo.add("00000");
338
+ arquivo.add(" ".padEnd(20, " "));
339
+ arquivo.add(" ".padEnd(20, " "));
340
+ arquivo.add(" ".padEnd(29, " "));
341
+ arquivo.addLine();
342
+ arquivo.add("085");
343
+ arquivo.add("0001");
344
+ arquivo.add("1");
345
+ arquivo.add("R");
346
+ arquivo.add("01");
347
+ arquivo.add(" ");
348
+ arquivo.add("045");
349
+ arquivo.add(" ");
350
+ arquivo.add("2");
351
+ arquivo.add(beneficiario.cnpj.padStart(15, "0"));
352
+ arquivo.add(dadosBancario.convenio.padEnd(20, " "));
353
+ arquivo.add(dadosBancario.agencia.padStart(5, "0"));
354
+ arquivo.add(dadosBancario.agenciaDigito);
355
+ arquivo.add(dadosBancario.conta.padStart(12, "0"));
356
+ arquivo.add(dadosBancario.contaDigito);
357
+ arquivo.add(" ");
358
+ arquivo.add(pagador.nome.substring(0, 30).padEnd(30, " "));
359
+ arquivo.add(" ".padEnd(40, " "));
360
+ arquivo.add(" ".padEnd(40, " "));
361
+ arquivo.add(dadosBancario.numeroRemessa.padStart(8, "0"));
362
+ arquivo.add(data);
363
+ arquivo.add("00000000");
364
+ arquivo.add(" ".padEnd(33, " "));
365
+ arquivo.addLine();
366
+ let sequencia = 1;
367
+ let quantidadeRegistro = 1;
368
+ let total = 0;
369
+ for (const boleto of boletos) {
370
+ const vencimento = (0, import_date_fns2.format)(new Date(boleto.vencimento), "ddMMyyyy");
371
+ total += Number(boleto.valor);
372
+ const codigoJuro = dadosBancario.jurosMes > 0 ? "2" : "3";
373
+ const juros = dadosBancario.jurosMes > 0 ? dadosBancario.jurosMes.toFixed(2) : "000000000000000";
374
+ const jurosVencimento = (0, import_date_fns2.format)(
375
+ (0, import_date_fns2.addDays)(new Date(boleto.vencimento), 1),
376
+ "ddMMyyyy"
377
+ );
378
+ const codigoDesconto = dadosBancario.descontoPagamento > 0 ? "2" : "0";
379
+ const desconto = dadosBancario.descontoPagamento > 0 ? dadosBancario.descontoPagamento.toFixed(2) : "000000000000000";
380
+ const protesto = dadosBancario.diasProtesto > 0 ? "1" : "3";
381
+ const diasProtesto = protesto === "1" ? dadosBancario.diasProtesto.toString() : "00";
382
+ arquivo.add("085");
383
+ arquivo.add("0001");
384
+ arquivo.add("3");
385
+ arquivo.add(sequencia.toString().padStart(5, "0"));
386
+ arquivo.add("P");
387
+ arquivo.add(" ");
388
+ arquivo.add("01");
389
+ arquivo.add(dadosBancario.agencia.padStart(5, "0"));
390
+ arquivo.add(dadosBancario.agenciaDigito);
391
+ arquivo.add(dadosBancario.conta.padStart(12, "0"));
392
+ arquivo.add(dadosBancario.contaDigito);
393
+ arquivo.add(" ");
394
+ arquivo.add(boleto.nossoNumero.padEnd(20, " "));
395
+ arquivo.add("1");
396
+ arquivo.add("1");
397
+ arquivo.add("1");
398
+ arquivo.add("2");
399
+ arquivo.add("2");
400
+ arquivo.add(`${boleto.numeroDocumento}/${boleto.parcela}`.padEnd(15, " "));
401
+ arquivo.add(vencimento);
402
+ arquivo.add(
403
+ Number(boleto.valor).toFixed(2).replace(".", "").padStart(15, "0")
404
+ );
405
+ arquivo.add(dadosBancario.agencia.padStart(5, "0"));
406
+ arquivo.add(dadosBancario.agenciaDigito);
407
+ arquivo.add("02");
408
+ arquivo.add("A");
409
+ arquivo.add(data);
410
+ arquivo.add(codigoJuro);
411
+ arquivo.add(jurosVencimento);
412
+ arquivo.add(juros.replace(".", "").padStart(15, "0"));
413
+ arquivo.add(codigoDesconto);
414
+ arquivo.add(vencimento);
415
+ arquivo.add(desconto.replace(".", "").padStart(15, "0"));
416
+ arquivo.add("000000000000000");
417
+ arquivo.add("000000000000000");
418
+ arquivo.add(boleto.identificacaoTitulo.padEnd(25, " "));
419
+ arquivo.add(protesto);
420
+ arquivo.add(diasProtesto.padStart(1, "0"));
421
+ arquivo.add("2");
422
+ arquivo.add(" ");
423
+ arquivo.add("09");
424
+ arquivo.add("0000000000");
425
+ arquivo.add(" ");
426
+ sequencia++;
427
+ arquivo.addLine();
428
+ let tipoInscricao = "1";
429
+ if (pagador.pessoa === "F") {
430
+ tipoInscricao = "1";
431
+ } else {
432
+ tipoInscricao = "2";
433
+ }
434
+ pagador.endereco.logradouro = `${pagador.endereco.logradouro.substring(0, 32).padEnd(32, " ")}${pagador.endereco.numero.padEnd(8, " ")}`;
435
+ arquivo.add("085");
436
+ arquivo.add("0001");
437
+ arquivo.add("3");
438
+ arquivo.add(sequencia.toString().padStart(5, "0"));
439
+ arquivo.add("Q");
440
+ arquivo.add(" ");
441
+ arquivo.add("01");
442
+ arquivo.add(tipoInscricao);
443
+ arquivo.add(pagador.cpfCnpj.padStart(15, "0"));
444
+ arquivo.add(pagador.nome.substring(0, 40).padEnd(40, " "));
445
+ arquivo.add(pagador.endereco.logradouro.substring(0, 40).padEnd(40, " "));
446
+ arquivo.add(pagador.endereco.bairro.substring(0, 15).padEnd(15, " "));
447
+ arquivo.add(pagador.endereco.cep.substring(0, 5).padStart(5, "0"));
448
+ arquivo.add(pagador.endereco.cep.substring(5, 7).padStart(3, "0"));
449
+ arquivo.add(pagador.endereco.municipio.substring(0, 15).padEnd(15, " "));
450
+ arquivo.add(pagador.endereco.uf.padEnd(2, " "));
451
+ arquivo.add("0");
452
+ arquivo.add("000000000000000");
453
+ arquivo.add(" ".padEnd(40, " "));
454
+ arquivo.add("000");
455
+ arquivo.add(" ".padEnd(20, " "));
456
+ arquivo.add(" ".padEnd(8, " "));
457
+ dadosBancario.multaAtraso = Number(dadosBancario.multaAtraso || 0);
458
+ if (dadosBancario.multaAtraso > 0) {
459
+ arquivo.addLine();
460
+ const multa = dadosBancario.multaAtraso.toFixed(2);
461
+ sequencia++;
462
+ arquivo.add("085");
463
+ arquivo.add("0001");
464
+ arquivo.add("3");
465
+ arquivo.add(sequencia.toString().padStart(5, "0"));
466
+ arquivo.add("R");
467
+ arquivo.add(" ");
468
+ arquivo.add("01");
469
+ arquivo.add("0");
470
+ arquivo.add("00000000");
471
+ arquivo.add("000000000000000");
472
+ arquivo.add("0");
473
+ arquivo.add("00000000");
474
+ arquivo.add("000000000000000");
475
+ arquivo.add("2");
476
+ arquivo.add(vencimento);
477
+ arquivo.add(multa.replace(".", "").padStart(15, "0"));
478
+ arquivo.add(" ".padEnd(10, " "));
479
+ arquivo.add(" ".padEnd(40, " "));
480
+ arquivo.add(" ".padEnd(40, " "));
481
+ arquivo.add(" ".padEnd(20, " "));
482
+ arquivo.add("00000000");
483
+ arquivo.add("000");
484
+ arquivo.add("00000");
485
+ arquivo.add(" ");
486
+ arquivo.add("000000000000");
487
+ arquivo.add(" ");
488
+ arquivo.add(" ");
489
+ arquivo.add("0");
490
+ arquivo.add("000000000");
491
+ }
492
+ arquivo.addLine();
493
+ quantidadeRegistro++;
494
+ }
495
+ arquivo.add("085");
496
+ arquivo.add("0001");
497
+ arquivo.add("5");
498
+ arquivo.add(" ".padEnd(9, " "));
499
+ arquivo.add((sequencia + 3).toString().padStart(6, "0"));
500
+ arquivo.add(quantidadeRegistro.toString().padStart(6, "0"));
501
+ arquivo.add(total.toFixed(2).replace(".", "").padStart(17, "0"));
502
+ arquivo.add("0".padStart(6, "0"));
503
+ arquivo.add("0".padStart(17, "0"));
504
+ arquivo.add("0".padStart(6, "0"));
505
+ arquivo.add("0".padStart(17, "0"));
506
+ arquivo.add("0".padStart(6, "0"));
507
+ arquivo.add("0".padStart(17, "0"));
508
+ arquivo.add(" ".padStart(8, " "));
509
+ arquivo.add(" ".padStart(117, " "));
510
+ arquivo.addLine();
511
+ arquivo.add("085");
512
+ arquivo.add("9999");
513
+ arquivo.add("9");
514
+ arquivo.add(" ".padEnd(9, " "));
515
+ arquivo.add("000001");
516
+ arquivo.add((sequencia + 4).toString().padStart(6, "0"));
517
+ arquivo.add("000000");
518
+ arquivo.add(" ".padEnd(205, " "));
519
+ return {
520
+ download: remessa,
521
+ arquivo: arquivo.getArquivo()
522
+ };
523
+ } catch (error) {
524
+ console.log(error);
525
+ return null;
526
+ }
527
+ });
528
+ }
529
+
530
+ // src/ailos/index.ts
531
+ var ailos = {
532
+ gerarDadosBoleto,
533
+ gerarPDF,
534
+ gerarRemessa
535
+ };
536
+
49
537
  // src/bradesco/index.ts
50
538
  function bradesco() {
51
539
  console.log("bradesco");
52
540
  }
53
541
  // Annotate the CommonJS export names for ESM import in node:
54
542
  0 && (module.exports = {
543
+ ailos,
55
544
  bradesco
56
545
  });
package/build/index.mjs CHANGED
@@ -1,19 +1,508 @@
1
+ var __async = (__this, __arguments, generator) => {
2
+ return new Promise((resolve, reject) => {
3
+ var fulfilled = (value) => {
4
+ try {
5
+ step(generator.next(value));
6
+ } catch (e) {
7
+ reject(e);
8
+ }
9
+ };
10
+ var rejected = (value) => {
11
+ try {
12
+ step(generator.throw(value));
13
+ } catch (e) {
14
+ reject(e);
15
+ }
16
+ };
17
+ var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
18
+ step((generator = generator.apply(__this, __arguments)).next());
19
+ });
20
+ };
21
+
1
22
  // src/ailos/gerarDadosBoleto.ts
2
23
  import { differenceInDays } from "date-fns";
3
24
 
25
+ // src/utils/copy.ts
26
+ function copy(texto, startPosition, endPosition) {
27
+ let retorno = "";
28
+ if (typeof texto === "number")
29
+ texto = String(texto);
30
+ if (!endPosition)
31
+ endPosition = texto.length;
32
+ for (let i = 0; i < texto.length; i++) {
33
+ const index = i + 1;
34
+ if (index >= startPosition && index <= endPosition) {
35
+ const letra = texto[i];
36
+ retorno += letra;
37
+ }
38
+ }
39
+ return retorno;
40
+ }
41
+
42
+ // src/utils/pafLeft.ts
43
+ function padLeft(numero, size) {
44
+ let numeroPadLeft = `${numero}`;
45
+ while (numeroPadLeft.length < size)
46
+ numeroPadLeft = `0${numeroPadLeft}`;
47
+ return numeroPadLeft;
48
+ }
49
+
50
+ // src/ailos/gerarDadosBoleto.ts
51
+ function gerarDadosBoleto(cedente, parcela) {
52
+ return __async(this, null, function* () {
53
+ try {
54
+ parcela.valor = Number(parcela.valor);
55
+ const fatorVencimento = getFatorVencimento(parcela.vencimento);
56
+ const valor = getValor(parcela.valor);
57
+ const convenio = padLeft(cedente.convenio, 6);
58
+ const numeroDocumento = padLeft(`${parcela.id_boleto}`, 9);
59
+ const nossoNumero = padLeft(cedente.numero + cedente.numero_dv, 8) + numeroDocumento;
60
+ const campoLivre = convenio + nossoNumero + padLeft(cedente.carteira, 2);
61
+ const digitoGeral = getDigitoGeral(`0859${fatorVencimento}${valor}${campoLivre}`);
62
+ const codigoBarra2 = `0859${digitoGeral}${fatorVencimento}${valor}${campoLivre}`;
63
+ const campo1 = copy(codigoBarra2, 1, 3) + copy(codigoBarra2, 4, 4) + copy(codigoBarra2, 20, 24);
64
+ const campo2 = copy(codigoBarra2, 25, 34);
65
+ const campo3 = copy(codigoBarra2, 35, 44);
66
+ const campo4 = copy(codigoBarra2, 5, 5);
67
+ const campo5 = copy(codigoBarra2, 6, 9) + copy(codigoBarra2, 10, 19);
68
+ const digito1 = getDigito(campo1);
69
+ const digito2 = getDigito(campo2);
70
+ const digito3 = getDigito(campo3);
71
+ const digito4 = getDigito(campo4);
72
+ const dados = {
73
+ fatorVencimento,
74
+ valor,
75
+ convenio,
76
+ nossoNumero,
77
+ campoLivre,
78
+ digitoGeral,
79
+ codigoBarra: codigoBarra2,
80
+ numeroDocumento,
81
+ campo1,
82
+ campo2,
83
+ campo3,
84
+ campo4,
85
+ campo5,
86
+ digito1,
87
+ digito2,
88
+ digito3,
89
+ digito4
90
+ };
91
+ return dados;
92
+ } catch (error) {
93
+ console.log("Falha ao gerar dados do boleto", error);
94
+ return null;
95
+ }
96
+ });
97
+ }
98
+ function getFatorVencimento(vencimento) {
99
+ const data = new Date(1997, 9, 7);
100
+ return differenceInDays(new Date(vencimento), data).toString();
101
+ }
102
+ function getValor(valor) {
103
+ const valorFormatado = valor.toFixed(2).replace(/\D/g, "");
104
+ return padLeft(valorFormatado, 10);
105
+ }
106
+ function getDigitoGeral(texto) {
107
+ let i = 43;
108
+ let j = 1;
109
+ let soma = 0;
110
+ let digito = 0;
111
+ while (i >= 1) {
112
+ j++;
113
+ if (j === 10)
114
+ j = 2;
115
+ const valor = Number(copy(texto, i, i));
116
+ soma += j * valor;
117
+ i--;
118
+ }
119
+ const restoDivisao = soma % 11;
120
+ digito = 11 - restoDivisao;
121
+ if (digito === 0 || digito === 1 || digito > 9)
122
+ digito = 1;
123
+ return String(digito);
124
+ }
125
+ function getDigito(texto) {
126
+ let i = texto.length;
127
+ let j = 1;
128
+ let total = 0;
129
+ let soma = 0;
130
+ let digito = 0;
131
+ while (i >= 1) {
132
+ j = j === 1 ? 2 : 1;
133
+ let valor = Number(copy(texto, i, i));
134
+ total = valor * j;
135
+ if (total >= 10) {
136
+ valor = Number(copy(total, 1, 1)) + Number(copy(total, 2, 2));
137
+ } else {
138
+ valor = total;
139
+ }
140
+ soma += valor;
141
+ i--;
142
+ }
143
+ const uni = Number(copy(soma, String(soma).length, String(soma).length));
144
+ digito = 10 - uni;
145
+ if (digito === 10)
146
+ digito = 0;
147
+ return String(digito);
148
+ }
149
+
4
150
  // src/ailos/gerarPDF.ts
151
+ import path from "path";
5
152
  import BwipJs from "bwip-js";
6
153
 
7
154
  // src/utils/compileHbs.ts
8
155
  import hbs from "handlebars";
156
+ import fs from "fs";
157
+ function compileHbs(templatePath, data) {
158
+ const html = fs.readFileSync(templatePath, "utf-8");
159
+ const content = hbs.compile(html)(data);
160
+ return content;
161
+ }
162
+
163
+ // src/utils/maskFormat.ts
164
+ function retornaCpfCnpjFormatado(cpfCnpj) {
165
+ return cpfCnpj;
166
+ }
167
+ function retornaCEPFormatado(cep) {
168
+ return cep;
169
+ }
170
+ function numberToReal(numero) {
171
+ numero = typeof numero === "string" ? parseFloat(numero) : numero;
172
+ numero = numero.toFixed(2).split(".");
173
+ numero[0] = numero[0].split(/(?=(?:...)*$)/).join(".");
174
+ return numero.join(",");
175
+ }
176
+ function codigoBarra(codigo) {
177
+ return codigo;
178
+ }
179
+ var maskFormat_default = {
180
+ numberToReal,
181
+ retornaCEPFormatado,
182
+ retornaCpfCnpjFormatado,
183
+ codigoBarra
184
+ };
185
+
186
+ // src/ailos/gerarPDF.ts
187
+ function gerarPDF(dados) {
188
+ return __async(this, null, function* () {
189
+ try {
190
+ const codigoBarra2 = yield BwipJs.toBuffer({
191
+ bcid: "interleaved2of5",
192
+ text: dados.boleto.codigoBarra,
193
+ height: 20
194
+ });
195
+ dados.beneficiario.dadosBancarios.agencia = dados.beneficiario.dadosBancarios.agencia.padStart(4, "0");
196
+ dados.beneficiario.dadosBancarios.conta = dados.beneficiario.dadosBancarios.conta.padStart(7, "0");
197
+ dados.boleto.codigoBarra = maskFormat_default.codigoBarra(dados.boleto.codigoBarra);
198
+ dados.boleto.codigoBarraImage = codigoBarra2.toString("base64");
199
+ dados.beneficiario.cnpj = maskFormat_default.retornaCpfCnpjFormatado(
200
+ dados.beneficiario.cnpj
201
+ );
202
+ dados.beneficiario.endereco.cep = maskFormat_default.retornaCEPFormatado(
203
+ dados.beneficiario.endereco.cep
204
+ );
205
+ dados.pagador.endereco.cep = maskFormat_default.retornaCEPFormatado(
206
+ dados.pagador.endereco.cep
207
+ );
208
+ dados.boleto.valorAcrescimo = maskFormat_default.numberToReal(
209
+ dados.boleto.valorAcrescimo
210
+ );
211
+ dados.boleto.valorCobrado = maskFormat_default.numberToReal(
212
+ dados.boleto.valorCobrado
213
+ );
214
+ dados.boleto.valorDescontoAbatimento = maskFormat_default.numberToReal(
215
+ dados.boleto.valorDescontoAbatimento
216
+ );
217
+ dados.boleto.valorDocumento = maskFormat_default.numberToReal(
218
+ dados.boleto.valorDocumento
219
+ );
220
+ dados.boleto.valorMulta = maskFormat_default.numberToReal(dados.boleto.valorMulta);
221
+ dados.boleto.valorOutrasDeducoes = maskFormat_default.numberToReal(
222
+ dados.boleto.valorOutrasDeducoes
223
+ );
224
+ if (dados.boleto.quantidade) {
225
+ dados.boleto.quantidade = maskFormat_default.numberToReal(dados.boleto.quantidade);
226
+ }
227
+ dados.boleto.valor = maskFormat_default.numberToReal(dados.boleto.valor);
228
+ const filePath = path.join(__dirname, "views", "boleto.hbs");
229
+ const content = compileHbs(filePath, dados);
230
+ const config = {
231
+ displayHeaderFooter: false,
232
+ path: "./boleto.pdf",
233
+ format: "a4",
234
+ printBackground: true
235
+ };
236
+ return {
237
+ erro: false
238
+ // dados: response.data,
239
+ };
240
+ } catch (error) {
241
+ return {
242
+ erro: true,
243
+ dados: null
244
+ };
245
+ }
246
+ });
247
+ }
9
248
 
10
249
  // src/ailos/gerarRemessa.ts
11
250
  import { addDays, format } from "date-fns";
12
251
 
252
+ // src/lib/Arquivo.ts
253
+ var Arquivo = class {
254
+ constructor() {
255
+ this.arquivo = "";
256
+ this.arquivo = "";
257
+ }
258
+ add(texto) {
259
+ this.arquivo += texto;
260
+ }
261
+ addLine() {
262
+ this.arquivo += "\n";
263
+ }
264
+ getArquivo() {
265
+ return this.arquivo;
266
+ }
267
+ };
268
+
269
+ // src/ailos/gerarRemessa.ts
270
+ function gerarRemessa(dados) {
271
+ return __async(this, null, function* () {
272
+ try {
273
+ const { dadosBancario, beneficiario, boletos, pagador } = dados;
274
+ const arquivo = new Arquivo();
275
+ const dataAtual = /* @__PURE__ */ new Date();
276
+ const data = format(dataAtual, "ddMMyyyy");
277
+ const hora = format(dataAtual, "HHmmss");
278
+ const convenio = dadosBancario.convenio.padStart(7, "0");
279
+ const numero = dadosBancario.conta.padStart(7, "0") + dadosBancario.contaDigito;
280
+ const remessa = `REM${convenio}-${numero}-${data}.REM`;
281
+ arquivo.add("085");
282
+ arquivo.add("0000");
283
+ arquivo.add("0");
284
+ arquivo.add(" ");
285
+ arquivo.add("2");
286
+ arquivo.add(beneficiario.cnpj);
287
+ arquivo.add(dadosBancario.convenio.padEnd(20, " "));
288
+ arquivo.add(dadosBancario.agencia.padStart(5, "0"));
289
+ arquivo.add(dadosBancario.agencia);
290
+ arquivo.add(dadosBancario.conta.padStart(12, "0"));
291
+ arquivo.add(dadosBancario.contaDigito);
292
+ arquivo.add(" ");
293
+ arquivo.add(beneficiario.nome.substring(0, 30).padEnd(30, " "));
294
+ arquivo.add("AILOS".padEnd(30, " "));
295
+ arquivo.add(" ");
296
+ arquivo.add("1");
297
+ arquivo.add(data);
298
+ arquivo.add(hora);
299
+ arquivo.add(dadosBancario.numeroRemessa.padStart(6, "0"));
300
+ arquivo.add("087");
301
+ arquivo.add("00000");
302
+ arquivo.add(" ".padEnd(20, " "));
303
+ arquivo.add(" ".padEnd(20, " "));
304
+ arquivo.add(" ".padEnd(29, " "));
305
+ arquivo.addLine();
306
+ arquivo.add("085");
307
+ arquivo.add("0001");
308
+ arquivo.add("1");
309
+ arquivo.add("R");
310
+ arquivo.add("01");
311
+ arquivo.add(" ");
312
+ arquivo.add("045");
313
+ arquivo.add(" ");
314
+ arquivo.add("2");
315
+ arquivo.add(beneficiario.cnpj.padStart(15, "0"));
316
+ arquivo.add(dadosBancario.convenio.padEnd(20, " "));
317
+ arquivo.add(dadosBancario.agencia.padStart(5, "0"));
318
+ arquivo.add(dadosBancario.agenciaDigito);
319
+ arquivo.add(dadosBancario.conta.padStart(12, "0"));
320
+ arquivo.add(dadosBancario.contaDigito);
321
+ arquivo.add(" ");
322
+ arquivo.add(pagador.nome.substring(0, 30).padEnd(30, " "));
323
+ arquivo.add(" ".padEnd(40, " "));
324
+ arquivo.add(" ".padEnd(40, " "));
325
+ arquivo.add(dadosBancario.numeroRemessa.padStart(8, "0"));
326
+ arquivo.add(data);
327
+ arquivo.add("00000000");
328
+ arquivo.add(" ".padEnd(33, " "));
329
+ arquivo.addLine();
330
+ let sequencia = 1;
331
+ let quantidadeRegistro = 1;
332
+ let total = 0;
333
+ for (const boleto of boletos) {
334
+ const vencimento = format(new Date(boleto.vencimento), "ddMMyyyy");
335
+ total += Number(boleto.valor);
336
+ const codigoJuro = dadosBancario.jurosMes > 0 ? "2" : "3";
337
+ const juros = dadosBancario.jurosMes > 0 ? dadosBancario.jurosMes.toFixed(2) : "000000000000000";
338
+ const jurosVencimento = format(
339
+ addDays(new Date(boleto.vencimento), 1),
340
+ "ddMMyyyy"
341
+ );
342
+ const codigoDesconto = dadosBancario.descontoPagamento > 0 ? "2" : "0";
343
+ const desconto = dadosBancario.descontoPagamento > 0 ? dadosBancario.descontoPagamento.toFixed(2) : "000000000000000";
344
+ const protesto = dadosBancario.diasProtesto > 0 ? "1" : "3";
345
+ const diasProtesto = protesto === "1" ? dadosBancario.diasProtesto.toString() : "00";
346
+ arquivo.add("085");
347
+ arquivo.add("0001");
348
+ arquivo.add("3");
349
+ arquivo.add(sequencia.toString().padStart(5, "0"));
350
+ arquivo.add("P");
351
+ arquivo.add(" ");
352
+ arquivo.add("01");
353
+ arquivo.add(dadosBancario.agencia.padStart(5, "0"));
354
+ arquivo.add(dadosBancario.agenciaDigito);
355
+ arquivo.add(dadosBancario.conta.padStart(12, "0"));
356
+ arquivo.add(dadosBancario.contaDigito);
357
+ arquivo.add(" ");
358
+ arquivo.add(boleto.nossoNumero.padEnd(20, " "));
359
+ arquivo.add("1");
360
+ arquivo.add("1");
361
+ arquivo.add("1");
362
+ arquivo.add("2");
363
+ arquivo.add("2");
364
+ arquivo.add(`${boleto.numeroDocumento}/${boleto.parcela}`.padEnd(15, " "));
365
+ arquivo.add(vencimento);
366
+ arquivo.add(
367
+ Number(boleto.valor).toFixed(2).replace(".", "").padStart(15, "0")
368
+ );
369
+ arquivo.add(dadosBancario.agencia.padStart(5, "0"));
370
+ arquivo.add(dadosBancario.agenciaDigito);
371
+ arquivo.add("02");
372
+ arquivo.add("A");
373
+ arquivo.add(data);
374
+ arquivo.add(codigoJuro);
375
+ arquivo.add(jurosVencimento);
376
+ arquivo.add(juros.replace(".", "").padStart(15, "0"));
377
+ arquivo.add(codigoDesconto);
378
+ arquivo.add(vencimento);
379
+ arquivo.add(desconto.replace(".", "").padStart(15, "0"));
380
+ arquivo.add("000000000000000");
381
+ arquivo.add("000000000000000");
382
+ arquivo.add(boleto.identificacaoTitulo.padEnd(25, " "));
383
+ arquivo.add(protesto);
384
+ arquivo.add(diasProtesto.padStart(1, "0"));
385
+ arquivo.add("2");
386
+ arquivo.add(" ");
387
+ arquivo.add("09");
388
+ arquivo.add("0000000000");
389
+ arquivo.add(" ");
390
+ sequencia++;
391
+ arquivo.addLine();
392
+ let tipoInscricao = "1";
393
+ if (pagador.pessoa === "F") {
394
+ tipoInscricao = "1";
395
+ } else {
396
+ tipoInscricao = "2";
397
+ }
398
+ pagador.endereco.logradouro = `${pagador.endereco.logradouro.substring(0, 32).padEnd(32, " ")}${pagador.endereco.numero.padEnd(8, " ")}`;
399
+ arquivo.add("085");
400
+ arquivo.add("0001");
401
+ arquivo.add("3");
402
+ arquivo.add(sequencia.toString().padStart(5, "0"));
403
+ arquivo.add("Q");
404
+ arquivo.add(" ");
405
+ arquivo.add("01");
406
+ arquivo.add(tipoInscricao);
407
+ arquivo.add(pagador.cpfCnpj.padStart(15, "0"));
408
+ arquivo.add(pagador.nome.substring(0, 40).padEnd(40, " "));
409
+ arquivo.add(pagador.endereco.logradouro.substring(0, 40).padEnd(40, " "));
410
+ arquivo.add(pagador.endereco.bairro.substring(0, 15).padEnd(15, " "));
411
+ arquivo.add(pagador.endereco.cep.substring(0, 5).padStart(5, "0"));
412
+ arquivo.add(pagador.endereco.cep.substring(5, 7).padStart(3, "0"));
413
+ arquivo.add(pagador.endereco.municipio.substring(0, 15).padEnd(15, " "));
414
+ arquivo.add(pagador.endereco.uf.padEnd(2, " "));
415
+ arquivo.add("0");
416
+ arquivo.add("000000000000000");
417
+ arquivo.add(" ".padEnd(40, " "));
418
+ arquivo.add("000");
419
+ arquivo.add(" ".padEnd(20, " "));
420
+ arquivo.add(" ".padEnd(8, " "));
421
+ dadosBancario.multaAtraso = Number(dadosBancario.multaAtraso || 0);
422
+ if (dadosBancario.multaAtraso > 0) {
423
+ arquivo.addLine();
424
+ const multa = dadosBancario.multaAtraso.toFixed(2);
425
+ sequencia++;
426
+ arquivo.add("085");
427
+ arquivo.add("0001");
428
+ arquivo.add("3");
429
+ arquivo.add(sequencia.toString().padStart(5, "0"));
430
+ arquivo.add("R");
431
+ arquivo.add(" ");
432
+ arquivo.add("01");
433
+ arquivo.add("0");
434
+ arquivo.add("00000000");
435
+ arquivo.add("000000000000000");
436
+ arquivo.add("0");
437
+ arquivo.add("00000000");
438
+ arquivo.add("000000000000000");
439
+ arquivo.add("2");
440
+ arquivo.add(vencimento);
441
+ arquivo.add(multa.replace(".", "").padStart(15, "0"));
442
+ arquivo.add(" ".padEnd(10, " "));
443
+ arquivo.add(" ".padEnd(40, " "));
444
+ arquivo.add(" ".padEnd(40, " "));
445
+ arquivo.add(" ".padEnd(20, " "));
446
+ arquivo.add("00000000");
447
+ arquivo.add("000");
448
+ arquivo.add("00000");
449
+ arquivo.add(" ");
450
+ arquivo.add("000000000000");
451
+ arquivo.add(" ");
452
+ arquivo.add(" ");
453
+ arquivo.add("0");
454
+ arquivo.add("000000000");
455
+ }
456
+ arquivo.addLine();
457
+ quantidadeRegistro++;
458
+ }
459
+ arquivo.add("085");
460
+ arquivo.add("0001");
461
+ arquivo.add("5");
462
+ arquivo.add(" ".padEnd(9, " "));
463
+ arquivo.add((sequencia + 3).toString().padStart(6, "0"));
464
+ arquivo.add(quantidadeRegistro.toString().padStart(6, "0"));
465
+ arquivo.add(total.toFixed(2).replace(".", "").padStart(17, "0"));
466
+ arquivo.add("0".padStart(6, "0"));
467
+ arquivo.add("0".padStart(17, "0"));
468
+ arquivo.add("0".padStart(6, "0"));
469
+ arquivo.add("0".padStart(17, "0"));
470
+ arquivo.add("0".padStart(6, "0"));
471
+ arquivo.add("0".padStart(17, "0"));
472
+ arquivo.add(" ".padStart(8, " "));
473
+ arquivo.add(" ".padStart(117, " "));
474
+ arquivo.addLine();
475
+ arquivo.add("085");
476
+ arquivo.add("9999");
477
+ arquivo.add("9");
478
+ arquivo.add(" ".padEnd(9, " "));
479
+ arquivo.add("000001");
480
+ arquivo.add((sequencia + 4).toString().padStart(6, "0"));
481
+ arquivo.add("000000");
482
+ arquivo.add(" ".padEnd(205, " "));
483
+ return {
484
+ download: remessa,
485
+ arquivo: arquivo.getArquivo()
486
+ };
487
+ } catch (error) {
488
+ console.log(error);
489
+ return null;
490
+ }
491
+ });
492
+ }
493
+
494
+ // src/ailos/index.ts
495
+ var ailos = {
496
+ gerarDadosBoleto,
497
+ gerarPDF,
498
+ gerarRemessa
499
+ };
500
+
13
501
  // src/bradesco/index.ts
14
502
  function bradesco() {
15
503
  console.log("bradesco");
16
504
  }
17
505
  export {
506
+ ailos,
18
507
  bradesco
19
508
  };
package/package.json CHANGED
@@ -1,12 +1,11 @@
1
1
  {
2
2
  "name": "@plasoft/boletos",
3
- "version": "1.0.2",
3
+ "version": "1.0.4",
4
4
  "main": "build/index.js",
5
5
  "license": "ISC",
6
6
  "scripts": {
7
7
  "build": "tsup src/index.ts --format esm, cjs --dts --out-dir build",
8
- "dev": "tsup src/index.ts --format esm, cjs --dts --out-dir build --watch",
9
- "deploy": "npm run build && npm publish --access=public"
8
+ "dev": "tsup src/index.ts --format esm, cjs --dts --out-dir build --watch"
10
9
  },
11
10
  "devDependencies": {
12
11
  "@types/bwip-js": "^3.2.0",
@@ -2,7 +2,7 @@ import { gerarDadosBoleto } from './gerarDadosBoleto';
2
2
  import { gerarPDF } from './gerarPDF';
3
3
  import { gerarRemessa } from './gerarRemessa';
4
4
 
5
- export default {
5
+ export const ailos = {
6
6
  gerarDadosBoleto,
7
7
  gerarPDF,
8
8
  gerarRemessa,