@plasoft/boletos 1.0.37 → 1.0.39
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 +11 -5
- package/build/index.d.ts +11 -5
- package/build/index.js +208 -111
- package/build/index.mjs +208 -111
- package/build/sicoob-boleto.hbs +849 -842
- package/package.json +1 -1
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
|
-
|
|
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
|
-
|
|
1447
|
-
|
|
1448
|
-
|
|
1449
|
-
|
|
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
|
|
1470
|
+
id_documento,
|
|
1466
1471
|
especie,
|
|
1467
1472
|
valor: valor_pago,
|
|
1468
1473
|
valor_multa,
|
|
@@ -1494,13 +1499,14 @@ function gerarDadosBoleto4({ dados }) {
|
|
|
1494
1499
|
bancario.modalidade = "01";
|
|
1495
1500
|
}
|
|
1496
1501
|
bancario.modalidade = padLeft(bancario.modalidade, 2);
|
|
1497
|
-
const
|
|
1502
|
+
const codigo_cliente = `${bancario.codigo_cliente}${bancario.codigo_cliente_dv}`;
|
|
1503
|
+
const nossoNumero = getNossoNumero2(bancario.agencia, codigo_cliente, String(parcela.id_boleto));
|
|
1498
1504
|
const fatorVencimento = getFatorVencimento(parcela.vencimento);
|
|
1499
1505
|
const valor = getValor4(Number(parcela.valor));
|
|
1500
|
-
const campoLivre = "1" +
|
|
1506
|
+
const campoLivre = "1" + bancario.agencia + bancario.modalidade + codigo_cliente + nossoNumero + padLeft(parcela.parcela, 3);
|
|
1501
1507
|
const digitoGeral = getDigitoGeral4(`7569${fatorVencimento}${valor}${campoLivre}`);
|
|
1502
1508
|
const codigoBarra2 = `7569${digitoGeral}${fatorVencimento}${valor}${campoLivre}`;
|
|
1503
|
-
const campo1 = copy(codigoBarra2, 1, 4) + copy(codigoBarra2, 20, 24);
|
|
1509
|
+
const campo1 = copy(codigoBarra2, 1, 3) + copy(codigoBarra2, 4, 4) + copy(codigoBarra2, 20, 24);
|
|
1504
1510
|
const campo2 = copy(codigoBarra2, 25, 34);
|
|
1505
1511
|
const campo3 = copy(codigoBarra2, 35, 44);
|
|
1506
1512
|
const campo4 = copy(codigoBarra2, 5, 5);
|
|
@@ -1524,15 +1530,24 @@ function gerarDadosBoleto4({ dados }) {
|
|
|
1524
1530
|
return null;
|
|
1525
1531
|
}
|
|
1526
1532
|
}
|
|
1527
|
-
function getNossoNumero2(
|
|
1528
|
-
|
|
1529
|
-
|
|
1530
|
-
|
|
1531
|
-
|
|
1532
|
-
|
|
1533
|
-
|
|
1534
|
-
|
|
1535
|
-
|
|
1533
|
+
function getNossoNumero2(agencia, codigo_cliente, id_boleto) {
|
|
1534
|
+
codigo_cliente = codigo_cliente.padStart(10, "0");
|
|
1535
|
+
id_boleto = id_boleto.padStart(7, "0");
|
|
1536
|
+
const aux = `${agencia}${codigo_cliente}${id_boleto}`;
|
|
1537
|
+
let i = 22, m = 3, soma = 0;
|
|
1538
|
+
while (true) {
|
|
1539
|
+
i--;
|
|
1540
|
+
soma += m * Number(copy(aux, i, i));
|
|
1541
|
+
if (i === 1)
|
|
1542
|
+
break;
|
|
1543
|
+
if (m === 3)
|
|
1544
|
+
m = 7;
|
|
1545
|
+
if (m === 7)
|
|
1546
|
+
m = 9;
|
|
1547
|
+
if (m === 9)
|
|
1548
|
+
m = 1;
|
|
1549
|
+
if (m === 1)
|
|
1550
|
+
m = 3;
|
|
1536
1551
|
}
|
|
1537
1552
|
let dig = soma % 11;
|
|
1538
1553
|
dig = dig === 1 ? dig = 0 : 11 - dig;
|
|
@@ -1603,10 +1618,12 @@ function gerarRemessa4({ dados }) {
|
|
|
1603
1618
|
arquivo.add("2");
|
|
1604
1619
|
arquivo.add(beneficiario.cnpj);
|
|
1605
1620
|
arquivo.add(" ".padEnd(20, " "));
|
|
1606
|
-
arquivo.add(dadosBancario.agencia.padStart(
|
|
1607
|
-
arquivo.add(dadosBancario.
|
|
1621
|
+
arquivo.add(dadosBancario.agencia.padStart(5, "0"));
|
|
1622
|
+
arquivo.add(dadosBancario.agenciaDigito);
|
|
1623
|
+
arquivo.add(dadosBancario.conta.padStart(12, "0"));
|
|
1624
|
+
arquivo.add(dadosBancario.contaDigito);
|
|
1608
1625
|
arquivo.add("0");
|
|
1609
|
-
arquivo.add(beneficiario.nome.padEnd(30, " "));
|
|
1626
|
+
arquivo.add(removerAcentos(beneficiario.nome).substring(0, 30).padEnd(30, " "));
|
|
1610
1627
|
arquivo.add("SICOOB".padEnd(30, " "));
|
|
1611
1628
|
arquivo.add(" ".padEnd(10, " "));
|
|
1612
1629
|
arquivo.add("1");
|
|
@@ -1628,10 +1645,12 @@ function gerarRemessa4({ dados }) {
|
|
|
1628
1645
|
arquivo.add("2");
|
|
1629
1646
|
arquivo.add(beneficiario.cnpj.padStart(15, "0"));
|
|
1630
1647
|
arquivo.add(" ".padEnd(20, " "));
|
|
1631
|
-
arquivo.add(dadosBancario.agencia.padStart(
|
|
1632
|
-
arquivo.add(dadosBancario.
|
|
1648
|
+
arquivo.add(dadosBancario.agencia.padStart(5, "0"));
|
|
1649
|
+
arquivo.add(dadosBancario.agenciaDigito);
|
|
1650
|
+
arquivo.add(dadosBancario.conta.padStart(12, "0"));
|
|
1651
|
+
arquivo.add(dadosBancario.contaDigito);
|
|
1633
1652
|
arquivo.add(" ");
|
|
1634
|
-
arquivo.add(beneficiario.nome.padEnd(30, " "));
|
|
1653
|
+
arquivo.add(removerAcentos(beneficiario.nome).substring(0, 30).padEnd(30, " "));
|
|
1635
1654
|
arquivo.add(" ".padEnd(80, " "));
|
|
1636
1655
|
arquivo.add(dadosBancario.numeroRemessa.padStart(8, "0"));
|
|
1637
1656
|
arquivo.add(data);
|
|
@@ -1646,21 +1665,19 @@ function gerarRemessa4({ dados }) {
|
|
|
1646
1665
|
const vencimento = format4(new Date(boleto.vencimento), "ddMMyyyy");
|
|
1647
1666
|
const valor_juros_dia = Number(boleto.valor) * dadosBancario.jurosMes / 100 / 30;
|
|
1648
1667
|
const protesto = dadosBancario.diasProtesto > 0 ? "1" : "3";
|
|
1649
|
-
const diasProtesto =
|
|
1650
|
-
if (dadosBancario.aceite === "S") {
|
|
1651
|
-
dadosBancario.aceite = "A";
|
|
1652
|
-
}
|
|
1668
|
+
const diasProtesto = dadosBancario.diasProtesto.toString().padStart(2, "0");
|
|
1653
1669
|
total += Number(boleto.valor);
|
|
1654
|
-
sequencia++;
|
|
1655
1670
|
arquivo.add("756");
|
|
1656
1671
|
arquivo.add("0001");
|
|
1657
1672
|
arquivo.add("3");
|
|
1658
|
-
arquivo.add(sequencia.toString().padStart(5, "0"));
|
|
1673
|
+
arquivo.add((++sequencia).toString().padStart(5, "0"));
|
|
1659
1674
|
arquivo.add("P");
|
|
1660
1675
|
arquivo.add(" ");
|
|
1661
1676
|
arquivo.add("01");
|
|
1662
|
-
arquivo.add(dadosBancario.agencia.padStart(
|
|
1663
|
-
arquivo.add(dadosBancario.
|
|
1677
|
+
arquivo.add(dadosBancario.agencia.padStart(5, "0"));
|
|
1678
|
+
arquivo.add(dadosBancario.agenciaDigito);
|
|
1679
|
+
arquivo.add(dadosBancario.conta.padStart(12, "0"));
|
|
1680
|
+
arquivo.add(dadosBancario.contaDigito);
|
|
1664
1681
|
arquivo.add(" ");
|
|
1665
1682
|
arquivo.add(boleto.nossoNumero.padStart(10, "0"));
|
|
1666
1683
|
arquivo.add(boleto.parcela.toString().padStart(2, "0"));
|
|
@@ -1675,7 +1692,7 @@ function gerarRemessa4({ dados }) {
|
|
|
1675
1692
|
arquivo.add("00000");
|
|
1676
1693
|
arquivo.add(" ");
|
|
1677
1694
|
arquivo.add("02");
|
|
1678
|
-
arquivo.add(
|
|
1695
|
+
arquivo.add("N");
|
|
1679
1696
|
arquivo.add(data);
|
|
1680
1697
|
arquivo.add("1");
|
|
1681
1698
|
arquivo.add(format4(addDays3(new Date(boleto.vencimento), 1), "ddMMyyyy"));
|
|
@@ -1685,15 +1702,14 @@ function gerarRemessa4({ dados }) {
|
|
|
1685
1702
|
arquivo.add("000000000000000");
|
|
1686
1703
|
arquivo.add("000000000000000");
|
|
1687
1704
|
arquivo.add("000000000000000");
|
|
1688
|
-
arquivo.add(
|
|
1705
|
+
arquivo.add(boleto.identificacaoTitulo.padEnd(25, " "));
|
|
1689
1706
|
arquivo.add(protesto);
|
|
1690
|
-
arquivo.add(diasProtesto
|
|
1707
|
+
arquivo.add(diasProtesto);
|
|
1691
1708
|
arquivo.add("0");
|
|
1692
1709
|
arquivo.add(" ");
|
|
1693
1710
|
arquivo.add("09");
|
|
1694
1711
|
arquivo.add("0000000000");
|
|
1695
1712
|
arquivo.add(" ");
|
|
1696
|
-
sequencia++;
|
|
1697
1713
|
arquivo.addLine();
|
|
1698
1714
|
let tipoInscricao = "1";
|
|
1699
1715
|
if (pagador.pessoa === "F") {
|
|
@@ -1701,26 +1717,18 @@ function gerarRemessa4({ dados }) {
|
|
|
1701
1717
|
} else {
|
|
1702
1718
|
tipoInscricao = "2";
|
|
1703
1719
|
}
|
|
1704
|
-
pagador.endereco.
|
|
1705
|
-
pagador.endereco.logradouro = pagador.endereco.logradouro.toUpperCase();
|
|
1706
|
-
pagador.endereco.municipio = pagador.endereco.municipio.toUpperCase();
|
|
1707
|
-
pagador.endereco.uf = pagador.endereco.uf.toUpperCase();
|
|
1708
|
-
const { tipo_logradouro, logradouro } = getLogradouro(pagador.endereco.logradouro);
|
|
1720
|
+
pagador.endereco.logradouro = `${removerAcentos(pagador.endereco.logradouro).substring(0, 32).padEnd(32, " ")}${pagador.endereco.numero.padEnd(8, " ")}`;
|
|
1709
1721
|
arquivo.add("756");
|
|
1710
1722
|
arquivo.add("0001");
|
|
1711
1723
|
arquivo.add("3");
|
|
1712
|
-
arquivo.add(sequencia.toString().padStart(5, "0"));
|
|
1724
|
+
arquivo.add((++sequencia).toString().padStart(5, "0"));
|
|
1713
1725
|
arquivo.add("Q");
|
|
1714
1726
|
arquivo.add(" ");
|
|
1715
1727
|
arquivo.add("01");
|
|
1716
1728
|
arquivo.add(tipoInscricao);
|
|
1717
1729
|
arquivo.add(pagador.cpfCnpj.padStart(15, "0"));
|
|
1718
|
-
arquivo.add(removerAcentos(pagador.nome
|
|
1719
|
-
arquivo.add(removerAcentos(
|
|
1720
|
-
arquivo.add(" ");
|
|
1721
|
-
arquivo.add(removerAcentos(logradouro).substring(0, 29).padEnd(29, " "));
|
|
1722
|
-
arquivo.add(" ");
|
|
1723
|
-
arquivo.add(pagador.endereco.numero.padEnd(6, " "));
|
|
1730
|
+
arquivo.add(removerAcentos(pagador.nome).substring(0, 40).padEnd(40, " "));
|
|
1731
|
+
arquivo.add(removerAcentos(pagador.endereco.logradouro).substring(0, 40).padEnd(40, " "));
|
|
1724
1732
|
arquivo.add(removerAcentos(pagador.endereco.bairro).substring(0, 15).padEnd(15, " "));
|
|
1725
1733
|
arquivo.add(pagador.endereco.cep.padEnd(8, " "));
|
|
1726
1734
|
arquivo.add(removerAcentos(pagador.endereco.municipio).substring(0, 15).padEnd(15, " "));
|
|
@@ -1730,22 +1738,21 @@ function gerarRemessa4({ dados }) {
|
|
|
1730
1738
|
arquivo.add(" ".padEnd(40, " "));
|
|
1731
1739
|
arquivo.add("000");
|
|
1732
1740
|
arquivo.add(" ".padEnd(28, " "));
|
|
1733
|
-
sequencia++;
|
|
1734
1741
|
arquivo.addLine();
|
|
1735
1742
|
let multa = "0";
|
|
1736
1743
|
let data_multa = "00000000";
|
|
1737
|
-
let
|
|
1744
|
+
let valor_multa = "000000000000000";
|
|
1738
1745
|
dadosBancario.multaAtraso = Number(dadosBancario.multaAtraso || 0);
|
|
1739
1746
|
if (dadosBancario.multaAtraso > 0) {
|
|
1740
1747
|
multa = "2";
|
|
1741
1748
|
data_multa = format4(addDays3(new Date(boleto.vencimento), 1), "ddMMyyyy");
|
|
1742
|
-
|
|
1749
|
+
valor_multa = dadosBancario.multaAtraso.toFixed(2).replace(".", "").padStart(15, "0");
|
|
1743
1750
|
}
|
|
1744
1751
|
arquivo.add("756");
|
|
1745
1752
|
arquivo.add("0001");
|
|
1746
1753
|
arquivo.add("3");
|
|
1747
1754
|
arquivo.add("");
|
|
1748
|
-
arquivo.add(sequencia.toString().padStart(5, "0"));
|
|
1755
|
+
arquivo.add((++sequencia).toString().padStart(5, "0"));
|
|
1749
1756
|
arquivo.add("R");
|
|
1750
1757
|
arquivo.add(" ");
|
|
1751
1758
|
arquivo.add("01");
|
|
@@ -1757,7 +1764,7 @@ function gerarRemessa4({ dados }) {
|
|
|
1757
1764
|
arquivo.add("000000000000000");
|
|
1758
1765
|
arquivo.add(multa);
|
|
1759
1766
|
arquivo.add(data_multa);
|
|
1760
|
-
arquivo.add(
|
|
1767
|
+
arquivo.add(valor_multa);
|
|
1761
1768
|
arquivo.add(" ".padEnd(10, " "));
|
|
1762
1769
|
arquivo.add(" ".padEnd(40, " "));
|
|
1763
1770
|
arquivo.add(" ".padEnd(40, " "));
|
|
@@ -1801,47 +1808,6 @@ function gerarRemessa4({ dados }) {
|
|
|
1801
1808
|
return null;
|
|
1802
1809
|
}
|
|
1803
1810
|
}
|
|
1804
|
-
function getLogradouro(logradouro) {
|
|
1805
|
-
const logradouro_split = logradouro.split(" ");
|
|
1806
|
-
let tipo_logradouro = "RUA";
|
|
1807
|
-
if (/^R(\.|UA)?\b/i.test(logradouro_split[0])) {
|
|
1808
|
-
logradouro = logradouro_split.slice(1).join(" ");
|
|
1809
|
-
} else if (/^AV(\.|ENIDA)?\b/i.test(logradouro_split[0])) {
|
|
1810
|
-
tipo_logradouro = "AV";
|
|
1811
|
-
logradouro = logradouro_split.slice(1).join(" ");
|
|
1812
|
-
} else if (/^SERVIDAO\b/i.test(logradouro_split[0])) {
|
|
1813
|
-
tipo_logradouro = "SEV";
|
|
1814
|
-
logradouro = logradouro_split.slice(1).join(" ");
|
|
1815
|
-
} else if (/^SEV(\.)?\b/i.test(logradouro_split[0])) {
|
|
1816
|
-
tipo_logradouro = "SEV";
|
|
1817
|
-
logradouro = logradouro_split.slice(1).join(" ");
|
|
1818
|
-
} else if (/^ROD(\.|OVIA)?\b/i.test(logradouro_split[0])) {
|
|
1819
|
-
tipo_logradouro = "ROD";
|
|
1820
|
-
logradouro = logradouro_split.slice(1).join(" ");
|
|
1821
|
-
} else if (/^FAZ(\.|ENDA)?\b/i.test(logradouro_split[0])) {
|
|
1822
|
-
tipo_logradouro = "FAZ";
|
|
1823
|
-
logradouro = logradouro_split.slice(1).join(" ");
|
|
1824
|
-
} else if (/^EST(\.|RADA)?\b/i.test(logradouro_split[0])) {
|
|
1825
|
-
tipo_logradouro = "EST";
|
|
1826
|
-
logradouro = logradouro_split.slice(1).join(" ");
|
|
1827
|
-
} else if (/^ALA(\.|MEDA)?\b/i.test(logradouro_split[0])) {
|
|
1828
|
-
tipo_logradouro = "ALA";
|
|
1829
|
-
logradouro = logradouro_split.slice(1).join(" ");
|
|
1830
|
-
} else if (/^ENC(\.|RUZILHADA)?\b/i.test(logradouro_split[0])) {
|
|
1831
|
-
tipo_logradouro = "ENC";
|
|
1832
|
-
logradouro = logradouro_split.slice(1).join(" ");
|
|
1833
|
-
} else if (/^PR(\.|ACA)?\b/i.test(logradouro_split[0])) {
|
|
1834
|
-
tipo_logradouro = "PR";
|
|
1835
|
-
logradouro = logradouro_split.slice(1).join(" ");
|
|
1836
|
-
} else if (/^TRAVESSA\b/i.test(logradouro_split[0])) {
|
|
1837
|
-
tipo_logradouro = "TV";
|
|
1838
|
-
logradouro = logradouro_split.slice(1).join(" ");
|
|
1839
|
-
} else if (/^TV(\.)?\b/i.test(logradouro_split[0])) {
|
|
1840
|
-
tipo_logradouro = "TV";
|
|
1841
|
-
logradouro = logradouro_split.slice(1).join(" ");
|
|
1842
|
-
}
|
|
1843
|
-
return { tipo_logradouro, logradouro };
|
|
1844
|
-
}
|
|
1845
1811
|
|
|
1846
1812
|
// src/banks/sicoob/gerarPDF.ts
|
|
1847
1813
|
import BwipJs4 from "bwip-js";
|
|
@@ -1855,14 +1821,11 @@ function gerarPDF4(_0) {
|
|
|
1855
1821
|
text: dadosPDF.boleto.codigoBarra,
|
|
1856
1822
|
height: 20
|
|
1857
1823
|
});
|
|
1858
|
-
dadosPDF.boleto.numeroDocumento = formatNumeroDocumento(
|
|
1859
|
-
dadosPDF.boleto.numeroDocumento,
|
|
1860
|
-
dadosPDF.boleto.parcela
|
|
1861
|
-
);
|
|
1862
1824
|
dadosPDF.beneficiario.dadosBancario.agencia = formatAgenciaCodigoCedente(
|
|
1863
1825
|
dadosPDF.beneficiario.dadosBancario.agencia,
|
|
1864
1826
|
dadosPDF.beneficiario.dadosBancario.codigo_cliente
|
|
1865
1827
|
);
|
|
1828
|
+
dadosPDF.beneficiario.dadosBancario.carteira = dadosPDF.beneficiario.dadosBancario.carteira.padStart(2, "0");
|
|
1866
1829
|
dadosPDF.boleto.nossoNumero = formatNossoNumero(
|
|
1867
1830
|
dadosPDF.boleto.parcela,
|
|
1868
1831
|
dadosPDF.boleto.nossoNumero
|
|
@@ -1883,6 +1846,7 @@ function gerarPDF4(_0) {
|
|
|
1883
1846
|
dadosPDF.boleto.valorDescontoAbatimento = maskFormat_default.numberToReal(
|
|
1884
1847
|
dadosPDF.boleto.valorDescontoAbatimento
|
|
1885
1848
|
);
|
|
1849
|
+
const valorDocumento = Number(dadosPDF.boleto.valorDocumento);
|
|
1886
1850
|
dadosPDF.boleto.valorDocumento = maskFormat_default.numberToReal(
|
|
1887
1851
|
dadosPDF.boleto.valorDocumento
|
|
1888
1852
|
);
|
|
@@ -1893,6 +1857,23 @@ function gerarPDF4(_0) {
|
|
|
1893
1857
|
if (dadosPDF.boleto.quantidade) {
|
|
1894
1858
|
dadosPDF.boleto.quantidade = maskFormat_default.numberToReal(dadosPDF.boleto.quantidade);
|
|
1895
1859
|
}
|
|
1860
|
+
const jurosMes = dadosPDF.beneficiario.dadosBancario.juros;
|
|
1861
|
+
const jurosDia = jurosMes / 100 / 30 * valorDocumento;
|
|
1862
|
+
if (jurosDia > 0) {
|
|
1863
|
+
dadosPDF.boleto.instrucao1 = `COBRAR JUROS DE R$${maskFormat_default.numberToReal(jurosDia)} AO DIA, AP\xD3S O VENCIMENTO`;
|
|
1864
|
+
}
|
|
1865
|
+
const descontoVencimento = dadosPDF.beneficiario.dadosBancario.desconto || 0;
|
|
1866
|
+
if (descontoVencimento > 0) {
|
|
1867
|
+
dadosPDF.boleto.instrucao2 = `AT\xC9 O VENCIMENTO, CONCEDER DESCONTO DE ${descontoVencimento}%`;
|
|
1868
|
+
}
|
|
1869
|
+
const multaAtraso = dadosPDF.beneficiario.dadosBancario.multa || 0;
|
|
1870
|
+
if (multaAtraso > 0) {
|
|
1871
|
+
dadosPDF.boleto.instrucao3 = `MULTA DE ${multaAtraso}%`;
|
|
1872
|
+
}
|
|
1873
|
+
const protestoDias = dadosPDF.beneficiario.dadosBancario.protesto || 0;
|
|
1874
|
+
if (protestoDias > 0) {
|
|
1875
|
+
dadosPDF.boleto.instrucao4 = `PROTESTAR AP\xD3S ${protestoDias} DIAS CORRIDOS DO VENCIMENTO`;
|
|
1876
|
+
}
|
|
1896
1877
|
dadosPDF.boleto.valor = maskFormat_default.numberToReal(dadosPDF.boleto.valor);
|
|
1897
1878
|
const content = compileHbs(getPathTemplates("sicoob-boleto.hbs"), dadosPDF);
|
|
1898
1879
|
const config = {
|
|
@@ -1933,21 +1914,75 @@ function formatAgenciaCodigoCedente(agencia, conta) {
|
|
|
1933
1914
|
function formatNossoNumero(parcela, nossoNumero) {
|
|
1934
1915
|
parcela = String(parcela).padStart(2, "0");
|
|
1935
1916
|
nossoNumero = nossoNumero.padStart(8, "0");
|
|
1936
|
-
|
|
1937
|
-
return nossoNumeroFmt.apply(parcela + nossoNumero);
|
|
1917
|
+
return `${parcela}/${nossoNumero.slice(0, 7)}-${nossoNumero.slice(7, 8)}`;
|
|
1938
1918
|
}
|
|
1939
|
-
|
|
1940
|
-
|
|
1941
|
-
|
|
1942
|
-
|
|
1943
|
-
|
|
1919
|
+
|
|
1920
|
+
// src/banks/sicoob/gerarRetorno.ts
|
|
1921
|
+
function gerarRetorno4({ dados }) {
|
|
1922
|
+
try {
|
|
1923
|
+
const { arquivo } = dados;
|
|
1924
|
+
const documentos = [];
|
|
1925
|
+
for (let i = 0; i < arquivo.length; i++) {
|
|
1926
|
+
let linha = arquivo[i];
|
|
1927
|
+
const banco = linha.substring(0, 3);
|
|
1928
|
+
if (banco !== "756" /* SICOOB */) {
|
|
1929
|
+
continue;
|
|
1930
|
+
}
|
|
1931
|
+
const ocorrencia = linha.substring(15, 17);
|
|
1932
|
+
if (ocorrencia !== "06" && ocorrencia !== "17") {
|
|
1933
|
+
continue;
|
|
1934
|
+
}
|
|
1935
|
+
let segmento = linha.substring(13, 14);
|
|
1936
|
+
if (segmento === "T") {
|
|
1937
|
+
const meu_numero = linha.substring(105, 130).trimEnd();
|
|
1938
|
+
let tipo_documento = "INDEFINIDO";
|
|
1939
|
+
let id_documento = meu_numero;
|
|
1940
|
+
if (meu_numero.includes("-")) {
|
|
1941
|
+
const [tipo, id] = meu_numero.split("-");
|
|
1942
|
+
tipo_documento = tipo;
|
|
1943
|
+
id_documento = id;
|
|
1944
|
+
}
|
|
1945
|
+
const especie = tipo_documento.length ? tipo_documento : "INDEFINIDO";
|
|
1946
|
+
linha = arquivo[++i];
|
|
1947
|
+
segmento = linha.substring(13, 14);
|
|
1948
|
+
if (segmento === "U") {
|
|
1949
|
+
const valorAbatimentoString = linha.substring(47, 62);
|
|
1950
|
+
const valorAbatimento = Number(valorAbatimentoString) / 100;
|
|
1951
|
+
const valorDescontoString = linha.substring(32, 47);
|
|
1952
|
+
const valorDesconto = Number(valorDescontoString) / 100;
|
|
1953
|
+
const valorPagoString = linha.substring(77, 92);
|
|
1954
|
+
const valorPago = Number(valorPagoString) / 100;
|
|
1955
|
+
const valorJurosString = linha.substring(17, 32);
|
|
1956
|
+
const valorJuros = Number(valorJurosString) / 100;
|
|
1957
|
+
const valorMulta = 0;
|
|
1958
|
+
const descontos = valorAbatimento + valorDesconto;
|
|
1959
|
+
const valorTotal = valorPago - valorJuros + descontos;
|
|
1960
|
+
const documento = {
|
|
1961
|
+
id_documento,
|
|
1962
|
+
especie,
|
|
1963
|
+
valor: valorPago,
|
|
1964
|
+
valor_multa: valorMulta,
|
|
1965
|
+
valor_juros: valorJuros,
|
|
1966
|
+
valor_desconto: valorDesconto,
|
|
1967
|
+
valor_total: valorTotal
|
|
1968
|
+
};
|
|
1969
|
+
documentos.push(documento);
|
|
1970
|
+
}
|
|
1971
|
+
}
|
|
1972
|
+
}
|
|
1973
|
+
return documentos;
|
|
1974
|
+
} catch (error) {
|
|
1975
|
+
console.log(error);
|
|
1976
|
+
return null;
|
|
1977
|
+
}
|
|
1944
1978
|
}
|
|
1945
1979
|
|
|
1946
1980
|
// src/banks/sicoob/index.ts
|
|
1947
1981
|
var sicoob = {
|
|
1948
1982
|
gerarDadosBoleto: gerarDadosBoleto4,
|
|
1949
1983
|
gerarRemessa: gerarRemessa4,
|
|
1950
|
-
gerarPDF: gerarPDF4
|
|
1984
|
+
gerarPDF: gerarPDF4,
|
|
1985
|
+
gerarRetorno: gerarRetorno4
|
|
1951
1986
|
};
|
|
1952
1987
|
|
|
1953
1988
|
// src/banks/banco-brasil/gerarDadosBoleto.ts
|
|
@@ -2310,7 +2345,7 @@ function gerarRemessa5({ dados }) {
|
|
|
2310
2345
|
arquivo.add("000000000000000");
|
|
2311
2346
|
arquivo.add("000000000000000");
|
|
2312
2347
|
arquivo.add("000000000000000");
|
|
2313
|
-
arquivo.add(
|
|
2348
|
+
arquivo.add(boleto.identificacaoTitulo.padEnd(25, " "));
|
|
2314
2349
|
arquivo.add(protesto);
|
|
2315
2350
|
arquivo.add(diasProtesto);
|
|
2316
2351
|
arquivo.add(baixarDevolver);
|
|
@@ -2407,7 +2442,63 @@ function gerarRemessa5({ dados }) {
|
|
|
2407
2442
|
}
|
|
2408
2443
|
|
|
2409
2444
|
// src/banks/banco-brasil/gerarRetorno.ts
|
|
2410
|
-
function
|
|
2445
|
+
function gerarRetorno5({ dados }) {
|
|
2446
|
+
try {
|
|
2447
|
+
const { arquivo } = dados;
|
|
2448
|
+
const documentos = [];
|
|
2449
|
+
for (let i = 0; i < arquivo.length; i++) {
|
|
2450
|
+
let linha = arquivo[i];
|
|
2451
|
+
const banco = linha.substring(0, 3);
|
|
2452
|
+
if (banco !== "001" /* BANCO_BRASIL */) {
|
|
2453
|
+
continue;
|
|
2454
|
+
}
|
|
2455
|
+
const ocorrencia = linha.substring(15, 17);
|
|
2456
|
+
if (ocorrencia !== "06" && ocorrencia !== "17") {
|
|
2457
|
+
continue;
|
|
2458
|
+
}
|
|
2459
|
+
let segmento = linha.substring(13, 14);
|
|
2460
|
+
if (segmento === "T") {
|
|
2461
|
+
const meu_numero = linha.substring(105, 130).trimEnd();
|
|
2462
|
+
let tipo_documento = "INDEFINIDO";
|
|
2463
|
+
let id_documento = meu_numero;
|
|
2464
|
+
if (meu_numero.includes("-")) {
|
|
2465
|
+
const [tipo, id] = meu_numero.split("-");
|
|
2466
|
+
tipo_documento = tipo;
|
|
2467
|
+
id_documento = id;
|
|
2468
|
+
}
|
|
2469
|
+
const especie = tipo_documento.length ? tipo_documento : "INDEFINIDO";
|
|
2470
|
+
linha = arquivo[++i];
|
|
2471
|
+
segmento = linha.substring(13, 14);
|
|
2472
|
+
if (segmento === "U") {
|
|
2473
|
+
const valorAbatimentoString = linha.substring(47, 62);
|
|
2474
|
+
const valorAbatimento = Number(valorAbatimentoString) / 100;
|
|
2475
|
+
const valorDescontoString = linha.substring(32, 47);
|
|
2476
|
+
const valorDesconto = Number(valorDescontoString) / 100;
|
|
2477
|
+
const valorPagoString = linha.substring(77, 92);
|
|
2478
|
+
const valorPago = Number(valorPagoString) / 100;
|
|
2479
|
+
const valorJurosString = linha.substring(17, 32);
|
|
2480
|
+
const valorJuros = Number(valorJurosString) / 100;
|
|
2481
|
+
const valorMulta = 0;
|
|
2482
|
+
const descontos = valorAbatimento + valorDesconto;
|
|
2483
|
+
const valorTotal = valorPago - valorJuros + descontos;
|
|
2484
|
+
const documento = {
|
|
2485
|
+
id_documento,
|
|
2486
|
+
especie,
|
|
2487
|
+
valor: valorPago,
|
|
2488
|
+
valor_multa: valorMulta,
|
|
2489
|
+
valor_juros: valorJuros,
|
|
2490
|
+
valor_desconto: valorDesconto,
|
|
2491
|
+
valor_total: valorTotal
|
|
2492
|
+
};
|
|
2493
|
+
documentos.push(documento);
|
|
2494
|
+
}
|
|
2495
|
+
}
|
|
2496
|
+
}
|
|
2497
|
+
return documentos;
|
|
2498
|
+
} catch (error) {
|
|
2499
|
+
console.log(error);
|
|
2500
|
+
return null;
|
|
2501
|
+
}
|
|
2411
2502
|
}
|
|
2412
2503
|
|
|
2413
2504
|
// src/banks/banco-brasil/index.ts
|
|
@@ -2415,7 +2506,7 @@ var bancoBrasil = {
|
|
|
2415
2506
|
gerarDadosBoleto: gerarDadosBoleto5,
|
|
2416
2507
|
gerarPDF: gerarPDF5,
|
|
2417
2508
|
gerarRemessa: gerarRemessa5,
|
|
2418
|
-
gerarRetorno:
|
|
2509
|
+
gerarRetorno: gerarRetorno5
|
|
2419
2510
|
};
|
|
2420
2511
|
|
|
2421
2512
|
// src/gerar.ts
|
|
@@ -2486,6 +2577,12 @@ function retorno({ banco, dados }) {
|
|
|
2486
2577
|
if (banco === "748" /* SICREDI */) {
|
|
2487
2578
|
return sicredi.gerarRetorno({ banco, dados });
|
|
2488
2579
|
}
|
|
2580
|
+
if (banco === "001" /* BANCO_BRASIL */) {
|
|
2581
|
+
return bancoBrasil.gerarRetorno({ banco, dados });
|
|
2582
|
+
}
|
|
2583
|
+
if (banco === "756" /* SICOOB */) {
|
|
2584
|
+
return sicoob.gerarRetorno({ banco, dados });
|
|
2585
|
+
}
|
|
2489
2586
|
}
|
|
2490
2587
|
|
|
2491
2588
|
// src/config/index.ts
|