Não tenho certeza se é exatamente isso que você deseja, mas vou explicar como funciona o código de barras para produtos pesados, como o Queijo Mussarela com o código: 2003600017377
.
Esse código de barras pode ser dividido em quatro seções:
-
2
: O primeiro dígito indica que se trata de um produto pesado. Em muitos sistemas de balança, o número2
é usado para identificar produtos que foram pesados e vendidos por peso, ao invés de uma quantidade fixa. -
0036
: Esses quatro dígitos representam o código do produto, que é definido manualmente por nós. Nesse caso, o código0036
identifica o Queijo Mussarela. Podemos cadastrar produtos com códigos que vão de0000
a9999
. -
0001737
: Essa sequência representa o valor do produto. No caso, o valor do Queijo é R$ 17,37 e podemos atribuir valores de até R$ 99.999,99. -
7
: O último dígito é o dígito verificador, utilizado para garantir a validade do código de barras. Esse dígito é calculado a partir dos outros 12 dígitos do código, utilizando o algoritmo detalhado neste artigo da Wikipédia.
Implementei o algoritmo nesta função em JavaScript. Ela recebe os primeiros 12 dígitos do código de barras, calcula o dígito verificador e retorna o código completo, com os 13 dígitos:
function calcularCodigoDeBarras(codigoCom12Digitos) {
const array = codigoCom12Digitos.split('');
const soma = array.reduce(
(total, numero, i) => total + (i % 2 === 0 ? numero * 1 : numero * 3),
0
);
const digitoVerificador = ((Math.floor(soma / 10) + 1) * 10 - soma) % 10;
const codigoDeBarrasCompleto = codigoCom12Digitos + digitoVerificador;
return codigoDeBarrasCompleto;
}
console.log(calcularCodigoDeBarras('200360001737')) // '2003600017377'