@plasoft/boletos 1.0.50 → 1.0.52

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/build/index.mjs CHANGED
@@ -358,9 +358,25 @@ var Arquivo = class {
358
358
  }
359
359
  };
360
360
 
361
- // src/utils/removerAcentos.ts
362
- function removerAcentos(texto) {
363
- return texto.normalize("NFD").replace(/[\u0300-\u036f.]/g, "");
361
+ // src/utils/removerCaracterEspecial.ts
362
+ function removerCaracterEspecial(texto) {
363
+ if (!texto)
364
+ return "";
365
+ let textoFormatado = texto.replace(/[`~!@#$°%^&*()_+=?;'"<>{}[\]\\]/gi, "");
366
+ textoFormatado = textoFormatado.replace(/[áàãâä]/g, "a");
367
+ textoFormatado = textoFormatado.replace(/[ÁÀÃÂÄ]/g, "A");
368
+ textoFormatado = textoFormatado.replace(/[éèêë]/g, "e");
369
+ textoFormatado = textoFormatado.replace(/[ÉÈÊË]/g, "E");
370
+ textoFormatado = textoFormatado.replace(/[íìîï]/g, "i");
371
+ textoFormatado = textoFormatado.replace(/[ÍÌÎÏ]/g, "I");
372
+ textoFormatado = textoFormatado.replace(/[óòõôö]/g, "o");
373
+ textoFormatado = textoFormatado.replace(/[ÓÒÔÕÖ]/g, "O");
374
+ textoFormatado = textoFormatado.replace(/[úùûü]/g, "u");
375
+ textoFormatado = textoFormatado.replace(/[ÚÙÛÜ]/g, "U");
376
+ textoFormatado = textoFormatado.replace(/ç/g, "c");
377
+ textoFormatado = textoFormatado.replace(/Ç/g, "C");
378
+ textoFormatado = textoFormatado.replace(/[^a-zA-Z0-9|/,-]/g, " ");
379
+ return textoFormatado;
364
380
  }
365
381
 
366
382
  // src/banks/ailos/gerarRemessa.ts
@@ -386,7 +402,7 @@ function gerarRemessa({ dados }) {
386
402
  arquivo.add(dadosBancario.conta.padStart(12, "0"));
387
403
  arquivo.add(dadosBancario.contaDigito);
388
404
  arquivo.add(" ");
389
- arquivo.add(removerAcentos(beneficiario.nome).substring(0, 30).padEnd(30, " "));
405
+ arquivo.add(removerCaracterEspecial(beneficiario.nome).substring(0, 30).padEnd(30, " "));
390
406
  arquivo.add("AILOS".padEnd(30, " "));
391
407
  arquivo.add(" ");
392
408
  arquivo.add("1");
@@ -415,7 +431,7 @@ function gerarRemessa({ dados }) {
415
431
  arquivo.add(dadosBancario.conta.padStart(12, "0"));
416
432
  arquivo.add(dadosBancario.contaDigito);
417
433
  arquivo.add(" ");
418
- arquivo.add(removerAcentos(beneficiario.nome).substring(0, 30).padEnd(30, " "));
434
+ arquivo.add(removerCaracterEspecial(beneficiario.nome).substring(0, 30).padEnd(30, " "));
419
435
  arquivo.add(" ".padEnd(40, " "));
420
436
  arquivo.add(" ".padEnd(40, " "));
421
437
  arquivo.add(dadosBancario.numeroRemessa.padStart(8, "0"));
@@ -438,10 +454,25 @@ function gerarRemessa({ dados }) {
438
454
  );
439
455
  const codigoDesconto = dadosBancario.descontoPagamento > 0 ? "2" : "0";
440
456
  const desconto = dadosBancario.descontoPagamento > 0 ? dadosBancario.descontoPagamento.toFixed(2) : "000000000000000";
441
- const protesto = dadosBancario.diasProtesto > 0 ? "1" : "3";
442
457
  let diasProtesto = "00";
443
- if (protesto === "1") {
444
- diasProtesto = dadosBancario.diasProtesto.toString().padStart(2, "0");
458
+ let protesto = "3";
459
+ switch (dadosBancario.tipo_protesto) {
460
+ case "Nenhum":
461
+ protesto = "3";
462
+ diasProtesto = "00";
463
+ break;
464
+ case "Protestar":
465
+ protesto = "1";
466
+ diasProtesto = dadosBancario.diasProtesto.toString().padStart(2, "0");
467
+ break;
468
+ case "Negativar":
469
+ protesto = "2";
470
+ diasProtesto = dadosBancario.diasProtesto.toString().padStart(2, "0");
471
+ break;
472
+ default:
473
+ protesto = "3";
474
+ diasProtesto = "00";
475
+ break;
445
476
  }
446
477
  arquivo.add("085");
447
478
  arquivo.add("0001");
@@ -494,7 +525,7 @@ function gerarRemessa({ dados }) {
494
525
  } else {
495
526
  tipoInscricao = "2";
496
527
  }
497
- pagador.endereco.logradouro = `${removerAcentos(pagador.endereco.logradouro).substring(0, 32).padEnd(32, " ")}${pagador.endereco.numero.padEnd(8, " ")}`;
528
+ pagador.endereco.logradouro = `${removerCaracterEspecial(pagador.endereco.logradouro).substring(0, 32).padEnd(32, " ")}${pagador.endereco.numero.padEnd(8, " ")}`;
498
529
  arquivo.add("085");
499
530
  arquivo.add("0001");
500
531
  arquivo.add("3");
@@ -504,13 +535,13 @@ function gerarRemessa({ dados }) {
504
535
  arquivo.add("01");
505
536
  arquivo.add(tipoInscricao);
506
537
  arquivo.add(pagador.cpfCnpj.padStart(15, "0"));
507
- arquivo.add(removerAcentos(pagador.nome).substring(0, 40).padEnd(40, " "));
508
- arquivo.add(removerAcentos(pagador.endereco.logradouro).substring(0, 40).padEnd(40, " "));
509
- arquivo.add(removerAcentos(pagador.endereco.bairro).substring(0, 15).padEnd(15, " "));
538
+ arquivo.add(removerCaracterEspecial(pagador.nome).substring(0, 40).padEnd(40, " "));
539
+ arquivo.add(removerCaracterEspecial(pagador.endereco.logradouro).substring(0, 40).padEnd(40, " "));
540
+ arquivo.add(removerCaracterEspecial(pagador.endereco.bairro).substring(0, 15).padEnd(15, " "));
510
541
  arquivo.add(pagador.endereco.cep.substring(0, 5).padStart(5, "0"));
511
542
  arquivo.add(pagador.endereco.cep.substring(5, 7).padStart(3, "0"));
512
- arquivo.add(removerAcentos(pagador.endereco.municipio).substring(0, 15).padEnd(15, " "));
513
- arquivo.add(removerAcentos(pagador.endereco.uf).padEnd(2, " "));
543
+ arquivo.add(removerCaracterEspecial(pagador.endereco.municipio).substring(0, 15).padEnd(15, " "));
544
+ arquivo.add(removerCaracterEspecial(pagador.endereco.uf).padEnd(2, " "));
514
545
  arquivo.add("0");
515
546
  arquivo.add("000000000000000");
516
547
  arquivo.add(" ".padEnd(40, " "));
@@ -1362,8 +1393,23 @@ function gerarRemessa3({ dados }) {
1362
1393
  const data = /* @__PURE__ */ new Date();
1363
1394
  let protestar = "00";
1364
1395
  let negativar = "0000";
1365
- if (dadosBancario.diasProtesto > 0) {
1366
- protestar = "06";
1396
+ switch (dadosBancario.tipo_protesto) {
1397
+ case "Nenhum":
1398
+ protestar = "00";
1399
+ negativar = "0000";
1400
+ break;
1401
+ case "Protestar":
1402
+ protestar = "06";
1403
+ negativar = "0000";
1404
+ break;
1405
+ case "Negativar":
1406
+ protestar = "00";
1407
+ negativar = "06" + String(dadosBancario.diasProtesto).padStart(2, "0");
1408
+ break;
1409
+ default:
1410
+ protestar = "00";
1411
+ negativar = "0000";
1412
+ break;
1367
1413
  }
1368
1414
  arquivo.add("01REMESSA");
1369
1415
  arquivo.add("01");
@@ -1429,8 +1475,8 @@ function gerarRemessa3({ dados }) {
1429
1475
  arquivo.add(tipoInscricao);
1430
1476
  arquivo.add("0");
1431
1477
  arquivo.add(pagador.cpfCnpj.padStart(14, "0"));
1432
- arquivo.add(removerAcentos(pagador.nome).substring(0, 40).padEnd(40, " "));
1433
- arquivo.add(removerAcentos(pagador.endereco.logradouro).substring(0, 40).padEnd(40, " "));
1478
+ arquivo.add(removerCaracterEspecial(pagador.nome).substring(0, 40).padEnd(40, " "));
1479
+ arquivo.add(removerCaracterEspecial(pagador.endereco.logradouro).substring(0, 40).padEnd(40, " "));
1434
1480
  arquivo.add("0".padEnd(11, "0"));
1435
1481
  arquivo.add(" ");
1436
1482
  arquivo.add(pagador.endereco.cep.padEnd(8, " "));
@@ -1664,7 +1710,7 @@ function gerarRemessa4({ dados }) {
1664
1710
  arquivo.add(dadosBancario.conta.padStart(12, "0"));
1665
1711
  arquivo.add(dadosBancario.contaDigito);
1666
1712
  arquivo.add("0");
1667
- arquivo.add(removerAcentos(beneficiario.nome).substring(0, 30).padEnd(30, " "));
1713
+ arquivo.add(removerCaracterEspecial(beneficiario.nome).substring(0, 30).padEnd(30, " "));
1668
1714
  arquivo.add("SICOOB".padEnd(30, " "));
1669
1715
  arquivo.add(" ".padEnd(10, " "));
1670
1716
  arquivo.add("1");
@@ -1691,7 +1737,7 @@ function gerarRemessa4({ dados }) {
1691
1737
  arquivo.add(dadosBancario.conta.padStart(12, "0"));
1692
1738
  arquivo.add(dadosBancario.contaDigito);
1693
1739
  arquivo.add(" ");
1694
- arquivo.add(removerAcentos(beneficiario.nome).substring(0, 30).padEnd(30, " "));
1740
+ arquivo.add(removerCaracterEspecial(beneficiario.nome).substring(0, 30).padEnd(30, " "));
1695
1741
  arquivo.add(" ".padEnd(80, " "));
1696
1742
  arquivo.add(dadosBancario.numeroRemessa.padStart(8, "0"));
1697
1743
  arquivo.add(data);
@@ -1705,7 +1751,18 @@ function gerarRemessa4({ dados }) {
1705
1751
  const { pagador } = boleto;
1706
1752
  const vencimento = format4(new Date(boleto.vencimento), "ddMMyyyy");
1707
1753
  const valor_juros_dia = Number(boleto.valor) * dadosBancario.jurosMes / 100 / 30;
1708
- const protesto = dadosBancario.diasProtesto > 0 ? "1" : "3";
1754
+ let protesto = "3";
1755
+ switch (dadosBancario.tipo_protesto) {
1756
+ case "Nenhum":
1757
+ protesto = "3";
1758
+ break;
1759
+ case "Protestar":
1760
+ protesto = "1";
1761
+ break;
1762
+ case "Negativar":
1763
+ protesto = "8";
1764
+ break;
1765
+ }
1709
1766
  const diasProtesto = dadosBancario.diasProtesto.toString().padStart(2, "0");
1710
1767
  total += Number(boleto.valor);
1711
1768
  arquivo.add("756");
@@ -1758,7 +1815,7 @@ function gerarRemessa4({ dados }) {
1758
1815
  } else {
1759
1816
  tipoInscricao = "2";
1760
1817
  }
1761
- pagador.endereco.logradouro = `${removerAcentos(pagador.endereco.logradouro).substring(0, 32).padEnd(32, " ")}${pagador.endereco.numero.padEnd(8, " ")}`;
1818
+ pagador.endereco.logradouro = `${removerCaracterEspecial(pagador.endereco.logradouro).substring(0, 32).padEnd(32, " ")}${pagador.endereco.numero.padEnd(8, " ")}`;
1762
1819
  arquivo.add("756");
1763
1820
  arquivo.add("0001");
1764
1821
  arquivo.add("3");
@@ -1768,12 +1825,12 @@ function gerarRemessa4({ dados }) {
1768
1825
  arquivo.add("01");
1769
1826
  arquivo.add(tipoInscricao);
1770
1827
  arquivo.add(pagador.cpfCnpj.padStart(15, "0"));
1771
- arquivo.add(removerAcentos(pagador.nome).substring(0, 40).padEnd(40, " "));
1772
- arquivo.add(removerAcentos(pagador.endereco.logradouro).substring(0, 40).padEnd(40, " "));
1773
- arquivo.add(removerAcentos(pagador.endereco.bairro).substring(0, 15).padEnd(15, " "));
1828
+ arquivo.add(removerCaracterEspecial(pagador.nome).substring(0, 40).padEnd(40, " "));
1829
+ arquivo.add(removerCaracterEspecial(pagador.endereco.logradouro).substring(0, 40).padEnd(40, " "));
1830
+ arquivo.add(removerCaracterEspecial(pagador.endereco.bairro).substring(0, 15).padEnd(15, " "));
1774
1831
  arquivo.add(pagador.endereco.cep.padEnd(8, " "));
1775
- arquivo.add(removerAcentos(pagador.endereco.municipio).substring(0, 15).padEnd(15, " "));
1776
- arquivo.add(removerAcentos(pagador.endereco.uf).padEnd(2, " "));
1832
+ arquivo.add(removerCaracterEspecial(pagador.endereco.municipio).substring(0, 15).padEnd(15, " "));
1833
+ arquivo.add(removerCaracterEspecial(pagador.endereco.uf).padEnd(2, " "));
1777
1834
  arquivo.add("0");
1778
1835
  arquivo.add("000000000000000");
1779
1836
  arquivo.add(" ".padEnd(40, " "));
@@ -2279,7 +2336,7 @@ function gerarRemessa5({ dados }) {
2279
2336
  arquivo.add("00000");
2280
2337
  arquivo.add(`${dadosBancario.conta}${dadosBancario.contaDigito}`.padStart(8, "0"));
2281
2338
  arquivo.add(" ");
2282
- arquivo.add(removerAcentos(beneficiario.nome).substring(0, 30).padEnd(30, " "));
2339
+ arquivo.add(removerCaracterEspecial(beneficiario.nome).substring(0, 30).padEnd(30, " "));
2283
2340
  arquivo.add("BANCO DO BRASIL S.A.".padEnd(30, " "));
2284
2341
  arquivo.add(" ".padEnd(10, " "));
2285
2342
  arquivo.add("1");
@@ -2314,7 +2371,7 @@ function gerarRemessa5({ dados }) {
2314
2371
  arquivo.add("00000");
2315
2372
  arquivo.add(`${dadosBancario.conta}${dadosBancario.contaDigito}`.padStart(8, "0"));
2316
2373
  arquivo.add(" ");
2317
- arquivo.add(removerAcentos(beneficiario.nome).substring(0, 30).padEnd(30, " "));
2374
+ arquivo.add(removerCaracterEspecial(beneficiario.nome).substring(0, 30).padEnd(30, " "));
2318
2375
  arquivo.add(" ".padEnd(80, " "));
2319
2376
  arquivo.add(dadosBancario.numeroRemessa.padStart(8, "0"));
2320
2377
  arquivo.add(data);
@@ -2367,11 +2424,31 @@ function gerarRemessa5({ dados }) {
2367
2424
  let diasProtesto = "00";
2368
2425
  let baixarDevolver = "1";
2369
2426
  let diasBaixa = "000";
2370
- if (dadosBancario.diasProtesto) {
2371
- protesto = "1";
2372
- diasProtesto = dadosBancario.diasProtesto.toString().padStart(2, "0");
2373
- baixarDevolver = "2";
2374
- diasBaixa = "060";
2427
+ switch (dadosBancario.tipo_protesto) {
2428
+ case "Nenhum":
2429
+ protesto = "3";
2430
+ diasProtesto = "00";
2431
+ baixarDevolver = "1";
2432
+ diasBaixa = "000";
2433
+ break;
2434
+ case "Protestar":
2435
+ protesto = "1";
2436
+ diasProtesto = dadosBancario.diasProtesto.toString().padStart(2, "0");
2437
+ baixarDevolver = "2";
2438
+ diasBaixa = "060";
2439
+ break;
2440
+ case "Negativar":
2441
+ protesto = "8";
2442
+ diasProtesto = dadosBancario.diasProtesto.toString().padStart(2, "0");
2443
+ baixarDevolver = "1";
2444
+ diasBaixa = "000";
2445
+ break;
2446
+ default:
2447
+ protesto = "3";
2448
+ diasProtesto = "00";
2449
+ baixarDevolver = "1";
2450
+ diasBaixa = "000";
2451
+ break;
2375
2452
  }
2376
2453
  arquivo.add("001");
2377
2454
  arquivo.add("0001");
@@ -2414,7 +2491,7 @@ function gerarRemessa5({ dados }) {
2414
2491
  arquivo.add("0000000000");
2415
2492
  arquivo.add(" ");
2416
2493
  arquivo.addLine();
2417
- pagador.endereco.logradouro = `${removerAcentos(pagador.endereco.logradouro).substring(0, 32).padEnd(32, " ")}${pagador.endereco.numero.padEnd(8, " ")}`;
2494
+ pagador.endereco.logradouro = `${removerCaracterEspecial(pagador.endereco.logradouro).substring(0, 32).padEnd(32, " ")}${pagador.endereco.numero.padEnd(8, " ")}`;
2418
2495
  arquivo.add("001");
2419
2496
  arquivo.add("0001");
2420
2497
  arquivo.add("3");
@@ -2424,12 +2501,12 @@ function gerarRemessa5({ dados }) {
2424
2501
  arquivo.add("01");
2425
2502
  arquivo.add(tipoInscricao);
2426
2503
  arquivo.add(pagador.cpfCnpj.padStart(15, "0"));
2427
- arquivo.add(removerAcentos(pagador.nome).substring(0, 40).padEnd(40, " "));
2428
- arquivo.add(removerAcentos(pagador.endereco.logradouro).substring(0, 40).padEnd(40, " "));
2429
- arquivo.add(removerAcentos(pagador.endereco.bairro).substring(0, 15).padEnd(15, " "));
2504
+ arquivo.add(removerCaracterEspecial(pagador.nome).substring(0, 40).padEnd(40, " "));
2505
+ arquivo.add(removerCaracterEspecial(pagador.endereco.logradouro).substring(0, 40).padEnd(40, " "));
2506
+ arquivo.add(removerCaracterEspecial(pagador.endereco.bairro).substring(0, 15).padEnd(15, " "));
2430
2507
  arquivo.add(pagador.endereco.cep);
2431
- arquivo.add(removerAcentos(pagador.endereco.municipio).substring(0, 15).padEnd(15, " "));
2432
- arquivo.add(removerAcentos(pagador.endereco.uf).padEnd(2, " "));
2508
+ arquivo.add(removerCaracterEspecial(pagador.endereco.municipio).substring(0, 15).padEnd(15, " "));
2509
+ arquivo.add(removerCaracterEspecial(pagador.endereco.uf).padEnd(2, " "));
2433
2510
  arquivo.add("0");
2434
2511
  arquivo.add("000000000000000");
2435
2512
  arquivo.add(" ".padEnd(40, " "));