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.244 ]

Download CalculaDigitoCte.zip




Esse script calcula o dígito verificador da chave de acesso do CT-e.
Muito semelhante ao cálculo de chave do Nf-e.

  



Esconder código-fonte

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);
           }
        }

Scripts recomendados

MostraSeNumPrimo.java

Um pouco de Java e Sockets. (Fonte 01: AbstractTransfer)

Algoritmo para Gerar um Sudoku NxN válido

Cadastramento de Produtos com .JOptionPane

Gerador de nicks


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts