Skip to content

Commit

Permalink
fix: parsing tipoCodigo argument on validarBoleto
Browse files Browse the repository at this point in the history
  • Loading branch information
edniemeyer committed Mar 27, 2020
1 parent 2c21b3b commit 21981e3
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 10 deletions.
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,11 +37,11 @@ Função | Definição

---------------------------------------------------------
### 3. Exemplos de uso
A princípio, a função `validarBoleto(codigo: string)` é a única que poderia ser utilizada para validar e trazer informações de um código de barras/linha digitável, portanto mostrarei apenas este exemplo. As demais funções estão documentadas acima e são autoexplicativas.
A princípio, a função `validarBoleto(codigo: string, tipoCodigo: string)` é a única que poderia ser utilizada para validar e trazer informações de um código de barras/linha digitável, portanto mostrarei apenas este exemplo. As demais funções estão documentadas acima e são autoexplicativas.

Exemplo #1:
```javascript
validarBoleto('23790448095616862379336011058009740430000124020');
validarBoleto('23790448095616862379336011058009740430000124020', 'LINHA_DIGITAVEL');
```
Retorno #1:
```json
Expand All @@ -58,7 +58,7 @@ Retorno #1:
```
Exemplo #2:
```javascript
validarBoleto('34196790600001000002220000005566385101214000');
validarBoleto('34196790600001000002220000005566385101214000', 'CODIGO_DE_BARRAS);
```
Retorno #2:
```json
Expand Down
13 changes: 6 additions & 7 deletions src/boleto-utils.js
Original file line number Diff line number Diff line change
Expand Up @@ -432,9 +432,8 @@ exports.calculaDVCodBarras = (codigo, posicaoCodigo, mod) => {
*
* @return {boolean} true = boleto válido / false = boleto inválido
*/
exports.validarCodigoComDV = (codigo) => {
exports.validarCodigoComDV = (codigo, tipoCodigo) => {
codigo = codigo.replace(/[^0-9]/g, '');
let tipoCodigo = this.identificarTipoCodigo(codigo);
let tipoBoleto;

let resultado;
Expand Down Expand Up @@ -489,6 +488,8 @@ exports.validarCodigoComDV = (codigo) => {
if (tipoBoleto == 'BANCO') {
const DV = this.calculaDVCodBarras(codigo, 4, 11);
resultado = codigo.substr(0, 4) + DV + codigo.substr(5);
console.log(DV)
console.log(codigo)
} else {
const identificacaoValorRealOuReferencia = this.identificarReferencia(codigo);

Expand All @@ -497,7 +498,6 @@ exports.validarCodigoComDV = (codigo) => {
resultado = resultado.join('');

const DV = this.calculaDVCodBarras(codigo, 3, identificacaoValorRealOuReferencia.mod);

resultado = resultado.substr(0, 3) + DV + resultado.substr(3);

}
Expand Down Expand Up @@ -618,7 +618,7 @@ exports.geraCodBarras = (codigo) => {
* __Y__ | **35 a 35** | `Dígito verificador do Bloco 3`
* __Z__ | **47 a 47** | `Dígito verificador do Bloco 4`
*/
exports.validarBoleto = (codigo) => {
exports.validarBoleto = (codigo, tipoCodigo) => {
let retorno = {};
codigo = codigo.replace(/[^0-9]/g, '');

Expand All @@ -640,16 +640,15 @@ exports.validarBoleto = (codigo) => {
retorno.sucesso = false;
retorno.codigoInput = codigo;
retorno.mensagem = 'Este tipo de boleto deve possuir um código de barras 44 caracteres numéricos. Ou linha digitável de 48 caracteres numéricos.';
} else if (!this.validarCodigoComDV(codigo)) {
} else if (!this.validarCodigoComDV(codigo, tipoCodigo)) {
retorno.sucesso = false;
retorno.codigoInput = codigo;
retorno.mensagem = 'A validação do dígito verificador falhou. Tem certeza que inseriu a numeração correta?';
} else {
retorno.sucesso = true;
retorno.codigoInput = codigo;
retorno.mensagem = 'Boleto válido';
let tipoCodigo = this.identificarTipoCodigo(codigo);


switch (tipoCodigo) {
case 'LINHA_DIGITAVEL':
retorno.tipoCodigoInput = 'LINHA_DIGITAVEL';
Expand Down

0 comments on commit 21981e3

Please sign in to comment.