@plasoft/boletos 1.0.37 → 1.0.38

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/build/index.js CHANGED
@@ -1408,9 +1408,7 @@ function gerarRemessa3({ dados }) {
1408
1408
  arquivo.add(multaAtraso.padStart(4, "0"));
1409
1409
  arquivo.add(" ".padEnd(12, " "));
1410
1410
  arquivo.add("01");
1411
- const tipo_documento = boleto.identificacaoTitulo.substring(0, 1);
1412
- const especie = tipo_documento === "F" ? "0" /* FATURA */ : tipo_documento === "N" ? "1" /* NOTA */ : "2" /* LANCAMENTO */;
1413
- arquivo.add((especie + boleto.numeroDocumento + "/" + boleto.parcela).padEnd(10, " "));
1411
+ arquivo.add(boleto.identificacaoTitulo.padEnd(10, " "));
1414
1412
  arquivo.add((0, import_date_fns4.format)(new Date(boleto.vencimento), "ddMMyy"));
1415
1413
  arquivo.add(Number(boleto.valor).toFixed(2).replace(".", "").padStart(13, "0"));
1416
1414
  arquivo.add(" ".padEnd(9, " "));
@@ -1480,10 +1478,17 @@ function gerarRetorno3({ dados }) {
1480
1478
  continue;
1481
1479
  }
1482
1480
  const meu_numero = linha.substring(116, 126).trim();
1483
- const [financeiro, _parcela] = meu_numero.split("/");
1484
- const numero_especie = financeiro[0];
1485
- const especie = numero_especie === "0" /* FATURA */ ? "FAT" : numero_especie === "1" /* NOTA */ ? "NFE" : numero_especie === "2" /* LANCAMENTO */ ? "LAN" : "INDEFINIDO";
1486
- const id_financeiro = financeiro.substring(1);
1481
+ let tipo_documento = "";
1482
+ let id_documento = "";
1483
+ if (meu_numero.includes("-")) {
1484
+ const [tipo, id] = meu_numero.split("-");
1485
+ tipo_documento = tipo;
1486
+ id_documento = id;
1487
+ }
1488
+ let especie = "INDEFINIDO";
1489
+ if (tipo_documento.length) {
1490
+ especie = tipo_documento === "N" ? "NFE" : tipo_documento === "F" ? "FAT" : tipo_documento === "L" ? "FIN" : "INDEFINIDO";
1491
+ }
1487
1492
  const valor_titulo = Number(linha.substring(152, 165)) / 100;
1488
1493
  const abatimento = Number(linha.substring(227, 240)) / 100;
1489
1494
  let valor_desconto = Number(linha.substring(240, 253)) / 100;
@@ -1499,7 +1504,7 @@ function gerarRetorno3({ dados }) {
1499
1504
  const descontos = abatimento + valor_desconto;
1500
1505
  const valor_total = valor_titulo + valor_multa + valor_juros - descontos;
1501
1506
  documentos.push({
1502
- id_documento: id_financeiro,
1507
+ id_documento,
1503
1508
  especie,
1504
1509
  valor: valor_pago,
1505
1510
  valor_multa,
@@ -2347,7 +2352,7 @@ function gerarRemessa5({ dados }) {
2347
2352
  arquivo.add("000000000000000");
2348
2353
  arquivo.add("000000000000000");
2349
2354
  arquivo.add("000000000000000");
2350
- arquivo.add(" ".padEnd(25, " "));
2355
+ arquivo.add(boleto.identificacaoTitulo.padEnd(25, " "));
2351
2356
  arquivo.add(protesto);
2352
2357
  arquivo.add(diasProtesto);
2353
2358
  arquivo.add(baixarDevolver);
@@ -2444,7 +2449,63 @@ function gerarRemessa5({ dados }) {
2444
2449
  }
2445
2450
 
2446
2451
  // src/banks/banco-brasil/gerarRetorno.ts
2447
- function gerarRetorno4() {
2452
+ function gerarRetorno4({ dados }) {
2453
+ try {
2454
+ const { arquivo } = dados;
2455
+ const documentos = [];
2456
+ for (let i = 0; i < arquivo.length; i++) {
2457
+ let linha = arquivo[i];
2458
+ const banco = linha.substring(0, 3);
2459
+ if (banco !== "001" /* BANCO_BRASIL */) {
2460
+ continue;
2461
+ }
2462
+ const ocorrencia = linha.substring(15, 17);
2463
+ if (ocorrencia !== "06" && ocorrencia !== "17") {
2464
+ continue;
2465
+ }
2466
+ let segmento = linha.substring(13, 14);
2467
+ if (segmento === "T") {
2468
+ const meu_numero = linha.substring(105, 130).trimEnd();
2469
+ let tipo_documento = "INDEFINIDO";
2470
+ let id_documento = meu_numero;
2471
+ if (meu_numero.includes("-")) {
2472
+ const [tipo, id] = meu_numero.split("-");
2473
+ tipo_documento = tipo;
2474
+ id_documento = id;
2475
+ }
2476
+ const especie = tipo_documento.length ? tipo_documento : "INDEFINIDO";
2477
+ linha = arquivo[++i];
2478
+ segmento = linha.substring(13, 14);
2479
+ if (segmento === "U") {
2480
+ const valorAbatimentoString = linha.substring(47, 62);
2481
+ const valorAbatimento = Number(valorAbatimentoString) / 100;
2482
+ const valorDescontoString = linha.substring(32, 47);
2483
+ const valorDesconto = Number(valorDescontoString) / 100;
2484
+ const valorPagoString = linha.substring(77, 92);
2485
+ const valorPago = Number(valorPagoString) / 100;
2486
+ const valorJurosString = linha.substring(17, 32);
2487
+ const valorJuros = Number(valorJurosString) / 100;
2488
+ const valorMulta = 0;
2489
+ const descontos = valorAbatimento + valorDesconto;
2490
+ const valorTotal = valorPago - valorJuros + descontos;
2491
+ const documento = {
2492
+ id_documento,
2493
+ especie,
2494
+ valor: valorPago,
2495
+ valor_multa: valorMulta,
2496
+ valor_juros: valorJuros,
2497
+ valor_desconto: valorDesconto,
2498
+ valor_total: valorTotal
2499
+ };
2500
+ documentos.push(documento);
2501
+ }
2502
+ }
2503
+ }
2504
+ return documentos;
2505
+ } catch (error) {
2506
+ console.log(error);
2507
+ return null;
2508
+ }
2448
2509
  }
2449
2510
 
2450
2511
  // src/banks/banco-brasil/index.ts
@@ -2523,6 +2584,9 @@ function retorno({ banco, dados }) {
2523
2584
  if (banco === "748" /* SICREDI */) {
2524
2585
  return sicredi.gerarRetorno({ banco, dados });
2525
2586
  }
2587
+ if (banco === "001" /* BANCO_BRASIL */) {
2588
+ return bancoBrasil.gerarRetorno({ banco, dados });
2589
+ }
2526
2590
  }
2527
2591
 
2528
2592
  // src/config/index.ts
package/build/index.mjs CHANGED
@@ -1371,9 +1371,7 @@ function gerarRemessa3({ dados }) {
1371
1371
  arquivo.add(multaAtraso.padStart(4, "0"));
1372
1372
  arquivo.add(" ".padEnd(12, " "));
1373
1373
  arquivo.add("01");
1374
- const tipo_documento = boleto.identificacaoTitulo.substring(0, 1);
1375
- const especie = tipo_documento === "F" ? "0" /* FATURA */ : tipo_documento === "N" ? "1" /* NOTA */ : "2" /* LANCAMENTO */;
1376
- arquivo.add((especie + boleto.numeroDocumento + "/" + boleto.parcela).padEnd(10, " "));
1374
+ arquivo.add(boleto.identificacaoTitulo.padEnd(10, " "));
1377
1375
  arquivo.add(format3(new Date(boleto.vencimento), "ddMMyy"));
1378
1376
  arquivo.add(Number(boleto.valor).toFixed(2).replace(".", "").padStart(13, "0"));
1379
1377
  arquivo.add(" ".padEnd(9, " "));
@@ -1443,10 +1441,17 @@ function gerarRetorno3({ dados }) {
1443
1441
  continue;
1444
1442
  }
1445
1443
  const meu_numero = linha.substring(116, 126).trim();
1446
- const [financeiro, _parcela] = meu_numero.split("/");
1447
- const numero_especie = financeiro[0];
1448
- const especie = numero_especie === "0" /* FATURA */ ? "FAT" : numero_especie === "1" /* NOTA */ ? "NFE" : numero_especie === "2" /* LANCAMENTO */ ? "LAN" : "INDEFINIDO";
1449
- const id_financeiro = financeiro.substring(1);
1444
+ let tipo_documento = "";
1445
+ let id_documento = "";
1446
+ if (meu_numero.includes("-")) {
1447
+ const [tipo, id] = meu_numero.split("-");
1448
+ tipo_documento = tipo;
1449
+ id_documento = id;
1450
+ }
1451
+ let especie = "INDEFINIDO";
1452
+ if (tipo_documento.length) {
1453
+ especie = tipo_documento === "N" ? "NFE" : tipo_documento === "F" ? "FAT" : tipo_documento === "L" ? "FIN" : "INDEFINIDO";
1454
+ }
1450
1455
  const valor_titulo = Number(linha.substring(152, 165)) / 100;
1451
1456
  const abatimento = Number(linha.substring(227, 240)) / 100;
1452
1457
  let valor_desconto = Number(linha.substring(240, 253)) / 100;
@@ -1462,7 +1467,7 @@ function gerarRetorno3({ dados }) {
1462
1467
  const descontos = abatimento + valor_desconto;
1463
1468
  const valor_total = valor_titulo + valor_multa + valor_juros - descontos;
1464
1469
  documentos.push({
1465
- id_documento: id_financeiro,
1470
+ id_documento,
1466
1471
  especie,
1467
1472
  valor: valor_pago,
1468
1473
  valor_multa,
@@ -2310,7 +2315,7 @@ function gerarRemessa5({ dados }) {
2310
2315
  arquivo.add("000000000000000");
2311
2316
  arquivo.add("000000000000000");
2312
2317
  arquivo.add("000000000000000");
2313
- arquivo.add(" ".padEnd(25, " "));
2318
+ arquivo.add(boleto.identificacaoTitulo.padEnd(25, " "));
2314
2319
  arquivo.add(protesto);
2315
2320
  arquivo.add(diasProtesto);
2316
2321
  arquivo.add(baixarDevolver);
@@ -2407,7 +2412,63 @@ function gerarRemessa5({ dados }) {
2407
2412
  }
2408
2413
 
2409
2414
  // src/banks/banco-brasil/gerarRetorno.ts
2410
- function gerarRetorno4() {
2415
+ function gerarRetorno4({ dados }) {
2416
+ try {
2417
+ const { arquivo } = dados;
2418
+ const documentos = [];
2419
+ for (let i = 0; i < arquivo.length; i++) {
2420
+ let linha = arquivo[i];
2421
+ const banco = linha.substring(0, 3);
2422
+ if (banco !== "001" /* BANCO_BRASIL */) {
2423
+ continue;
2424
+ }
2425
+ const ocorrencia = linha.substring(15, 17);
2426
+ if (ocorrencia !== "06" && ocorrencia !== "17") {
2427
+ continue;
2428
+ }
2429
+ let segmento = linha.substring(13, 14);
2430
+ if (segmento === "T") {
2431
+ const meu_numero = linha.substring(105, 130).trimEnd();
2432
+ let tipo_documento = "INDEFINIDO";
2433
+ let id_documento = meu_numero;
2434
+ if (meu_numero.includes("-")) {
2435
+ const [tipo, id] = meu_numero.split("-");
2436
+ tipo_documento = tipo;
2437
+ id_documento = id;
2438
+ }
2439
+ const especie = tipo_documento.length ? tipo_documento : "INDEFINIDO";
2440
+ linha = arquivo[++i];
2441
+ segmento = linha.substring(13, 14);
2442
+ if (segmento === "U") {
2443
+ const valorAbatimentoString = linha.substring(47, 62);
2444
+ const valorAbatimento = Number(valorAbatimentoString) / 100;
2445
+ const valorDescontoString = linha.substring(32, 47);
2446
+ const valorDesconto = Number(valorDescontoString) / 100;
2447
+ const valorPagoString = linha.substring(77, 92);
2448
+ const valorPago = Number(valorPagoString) / 100;
2449
+ const valorJurosString = linha.substring(17, 32);
2450
+ const valorJuros = Number(valorJurosString) / 100;
2451
+ const valorMulta = 0;
2452
+ const descontos = valorAbatimento + valorDesconto;
2453
+ const valorTotal = valorPago - valorJuros + descontos;
2454
+ const documento = {
2455
+ id_documento,
2456
+ especie,
2457
+ valor: valorPago,
2458
+ valor_multa: valorMulta,
2459
+ valor_juros: valorJuros,
2460
+ valor_desconto: valorDesconto,
2461
+ valor_total: valorTotal
2462
+ };
2463
+ documentos.push(documento);
2464
+ }
2465
+ }
2466
+ }
2467
+ return documentos;
2468
+ } catch (error) {
2469
+ console.log(error);
2470
+ return null;
2471
+ }
2411
2472
  }
2412
2473
 
2413
2474
  // src/banks/banco-brasil/index.ts
@@ -2486,6 +2547,9 @@ function retorno({ banco, dados }) {
2486
2547
  if (banco === "748" /* SICREDI */) {
2487
2548
  return sicredi.gerarRetorno({ banco, dados });
2488
2549
  }
2550
+ if (banco === "001" /* BANCO_BRASIL */) {
2551
+ return bancoBrasil.gerarRetorno({ banco, dados });
2552
+ }
2489
2553
  }
2490
2554
 
2491
2555
  // src/config/index.ts
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@plasoft/boletos",
3
- "version": "1.0.37",
3
+ "version": "1.0.38",
4
4
  "main": "build",
5
5
  "license": "ISC",
6
6
  "scripts": {