Calcula dígito verificador do CT-e - Conhecimento de Trânsito
Publicado por Cleiton Ap. de Souza (última atualização em 01/08/2014)
[ Hits: 4.510 ]
Esse script calcula o dígito verificador da chave de acesso do CT-e.
Muito semelhante ao cálculo de chave do Nf-e.
String valor = jTextField1.getText(); //Valor inputado pelo Usuario
String valormult = "4329876543298765432987654329876543298765432"; //Valor a sere multiplicado
String valorresmult = "0000000000000000000000000000000000000000000" ;
double divisao=123.123;
int resto=0,digitoV=0,digitoverificador=0;
double soma=0;
int[] valorJtxt = new int[valor.length()];
int[] valorMulti = new int[valormult.length()];
int[] valorResMult = new int[valorresmult.length()];
if ((valor.length() < 43) ||(valor.length()> 43)) { // Verifica quantidade de
JOptionPane.showConfirmDialog(null,"O campo deve conter");
} else {
//Guardando informações no Array da chave de acesso
for (int i = 0; i < valorJtxt.length; i++) {
valorJtxt[i] = Integer.parseInt(valor.substring(i, i+1));
System.out.println("Valor da chave de acesso "+valorJtxt[i]);
}
//Guardando informações dos numeros que multiplicam
for (int i=0; i< valorMulti.length;i++){
valorMulti[i] = Integer.parseInt(valormult.substring(i, i+1));
System.out.println("Valores para calculo "+valorMulti[i]);
}
//multiplicando os itens
for (int i=0; i<43;i++){
valorResMult[i] = valorMulti[i]*valorJtxt[i];
System.out.println("Valores Multiplicados"+valorResMult[i]);
}
//Somando itens Multiplicados
for (int i=0; i<43;i++){
soma = soma + valorResMult[i];
System.out.println("Valor Somado "+soma);
}
System.out.println("Soma "+soma);
divisao = soma/11;
System.out.println("Divisão "+divisao);
resto = (int)soma % 11;
System.out.println("Valor Do Resto da Divisão "+resto);
digitoV = 11-resto;
System.out.println("Valor 11 - Resto = "+digitoV);
if ((resto == 0) || (resto==1)){
digitoverificador= 0;
jTextField2.setText(Integer.toString(digitoverificador));
System.out.println("Valor Digito Verificador = "+digitoverificador);
}else {
digitoverificador=digitoV;
jTextField2.setText(Integer.toString(digitoverificador));
System.out.println("Valor Digito Verificador = "+digitoverificador);
}
}
Contador de caracteres, palavras e linhas de um arquivo
Nenhum comentário foi encontrado.
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
[Resolvido] VirtualBox can't enable the AMD-V extension
Como verificar a saúde dos discos no Linux
Como instalar , particionar, formatar e montar um HD adicional no Linux?
Como automatizar sua instalação do Ubuntu para desenvolvimento de software.
Fiz uma pergunta no fórum mas não consigo localizar (13)
Quais os códigos mais dificeis que vcs sabem fazer? (2)
Não consigo instalar distro antiga no virtualbox nem direto no hd (7)
Servidor Ubuntu 24.04 HD 500 não tenho espaço na \home\adminis... [RES... (8)
Dá para criar um bom jogo usando a linguagem de programação C? [RESOLV... (1)









