Histórico de mensagens em bolix

EXIBINDO CONVERSAS RECENTES:

Canal: bolix
Avatar discord do usuario anoni_mato

anoni_mato

function calcula_linha(barra)
{
//var barra = form.barra.value; // Codigo da Barra
linha = barra.replace(/[^0-9]/g,'');
//
if (modulo10('399903512') != 8) alert('Função "modulo10" está com erro!');
if (linha.length != 44) alert ('A linha do código de barras está incompleta!');
//
var campo1 = linha.substr(0,4)+linha.substr(19,1)+'.'+linha.substr(20,4);
var campo2 = linha.substr(24,5)+'.'+linha.substr(24+5,5);
var campo3 = linha.substr(34,5)+'.'+linha.substr(34+5,5);
var campo4 = linha.substr(4,1); // Digito verificador
var campo5 = linha.substr(5,14); // Vencimento + Valor
//
if ( modulo11_banco( linha.substr(0,4)+linha.substr(5,99) ) != campo4 )
alert('Digito verificador '+campo4+', o correto é '+modulo11_banco( linha.substr(0,4)+linha.substr(5,99) )+'\nO sistema não altera automaticamente o dígito correto na quinta casa!');
//
if (campo5 == 0) campo5 = '000';
//
linha = campo1 + modulo10(campo1)
+' '
+campo2 + modulo10(campo2)
+' '
+campo3 + modulo10(campo3)
+' '
+campo4
+' '
+campo5
;
//if (form.linha.value != form.linha2.value) alert('Linhas diferentes');
return(linha);
}

Avatar discord do usuario anoni_mato

anoni_mato

essa função calcula a barcode a partir da LD (Javascript)

Avatar discord do usuario anoni_mato

anoni_mato

function calcula_barra(linha)
{
//var linha = form.linha.value; // Linha Digitável
barra = linha.replace(/[^0-9]/g,'');
//
// CÁLCULO DO DÍGITO DE AUTOCONFERÊNCIA (DAC) - 5ª POSIÇÃO
if (modulo11_banco('34191000000000000001753980229122525005423000') != 1) alert('Função "modulo11_banco" está com erro!');
//
//if (barra.length == 36) barra = barra + '00000000000';
if (barra.length < 47 ) barra = barra + '00000000000'.substr(0,47-barra.length);
if (barra.length != 47) alert ('A linha do código de barras está incompleta!'+barra.length);
//
barra = barra.substr(0,4)
+barra.substr(32,15)
+barra.substr(4,5)
+barra.substr(10,10)
+barra.substr(21,10)
;
//form.barra.value = barra;
if (modulo11_banco(barra.substr(0,4)+barra.substr(5,39)) != barra.substr(4,1))
alert('Digito verificador '+barra.substr(4,1)+', o correto é '+modulo11_banco(barra.substr(0,4)+barra.substr(5,39))+'\nO sistema não altera automaticamente o dígito correto na quinta casa!');
//if (form.barra.value != form.barra2.value) alert('Barras diferentes');
return(barra);
}

Avatar discord do usuario anoni_mato

anoni_mato

Ver Respostas

a fórmula que converte LD/barcode (ou vice-versa) é FIXA e será sempre funcional, independente da forma como o banco usar os "campos" constantes da LD/barcode

Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

O banco no caso é a Gerencianet... se eles mudarem algo, quebra sim sua aplicação.

Avatar discord do usuario anoni_mato

anoni_mato

o formato da LD e barcode varia de banco pra banco, sim. mas uma vez gerado o LD ou barcode conforme a spec de um banco em particular, a conversão de LD para barcode ou vice versa, segue o mesmo padrão

Avatar discord do usuario anoni_mato

anoni_mato

Ver Respostas

não. é padrão pra todos os bancos.

Avatar discord do usuario bartwitch

bartwitch

Ver Respostas

eu dei uma procurada hoje mais cedo, parece que muda a "Lógica" com base no banco.. aí complica porque se eu fizer aqui e depois a GN atualizar algo, quebra meu código

Avatar discord do usuario bartwitch

bartwitch

Ver Respostas

sim, por enqnto é o unico caminho.. seria legal se a GN já retornasse isso, facilitaria bastante

Avatar discord do usuario anoni_mato

anoni_mato

Ver Respostas

mas tem um esquema de conversão de LD para barcode.. é uma coisa padronizada. vou ver se acho aqui

Avatar discord do usuario bartwitch

bartwitch

então.. o nome da variável é "barcode", mas pelo formato é claramente uma linha digitável.. é que dependendo do caso, gostaria de ter o conteúdo do código de barras de fato, caso queira gerar um boleto customizado..

Avatar discord do usuario anoni_mato

anoni_mato

Ver Respostas

vc queria o barcode pra gerar um boleto por sua conta? teria fazer um fetch no 'link' e puxar de lá

Avatar discord do usuario anoni_mato

anoni_mato

com base no formato eu arrisco dizer que na verdade o conteúdo já é a linha digitável, apesar do nome 'barcode'

Avatar discord do usuario bartwitch

bartwitch

Ou em produção é retornado mais algum campo?

Avatar discord do usuario bartwitch

bartwitch


imagem enviada na mensagem pelo usuario bartwitch

Avatar discord do usuario bartwitch

bartwitch

Ver Respostas

Notei que no retorno ao gerar o boleto é enviado um campo chamado "barcode" que tem a "linha digitável". A GN não retorna o conteúdo para ser gerado o barcode? Ou eu tenho que gerar isso manualmente com base na linha digitável?

Avatar discord do usuario bartwitch

bartwitch

Obrigado pelo esclarecimento <@!739946843940847757> ! 🙂