Ir para conteúdo
  • Cadastre-se

dev botao

Definir Chave De Acesso Do Cte


Ver Solução Respondido por Italo Giurizzato Junior,
  • Este tópico foi criado há 3904 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Bom dia a todos.

 

   Recebi uma solicitação do meu chefe em que deveria fazer com que o meu programa inserisse a chave de acesso na hora de alimentar o componente, pois assim que insiro todos os dados no componente e faço a consulta, o componente permite salvar o XML com todos os dados e o protocolo de autorização. 

  Gostaria de saber se é possível ser inserido manualmente o valor da Chave de acesso do CTe

 

Grato por toda a ajuda.

 

  • Consultores
Postado

Boa tarde Igor,

 

O que você quer dizer com "o valor da chave"?

 

É a chave completa com os seus 44 digitos ou é o código aleatório que compõe a chave?

 

Se é o código aleatório isso eu já faço a mais de 3 anos.

 

Ao salvar os dados pertinentes ao transporte da carga no banco de dados, é gerado um código aletório e salvo em um dos campos que compõe o registro.

 

Quando for executado a emissão do CT-e, a rotina que alimenta o componente, lê as informações do banco de dados, e é nesse momento que eu atribu-o ao campo cCT o código aleatório alteriormente gerado e salvo no banco de dados.

 

Como a chave é gerada usando os seguintes dados:

 

Código da UF do Emitente;

Data de Emissão do CT-e;

CNPJ do Emitente;

Modelo do Documento Fiscal;

Série;

Numero;

Tipo de Emissão;

Código Aleatório e

Digito Verificador

 

Note que de todos os componentes somente o código aleatório e o DV poderiam ser diferentes se por acaso o XML fosse gerado novamente, visto que os demais dados são "fixos".

 

Se você atribuir zero a cCT toda vez que você gerar o XML do mesmo CT-e uma nova chave será gerada, pois o componente se encarrega de gerar automaticamente o código aleatório.

 

Por outro lado se você atribuir qualquer valor diferente de zero a cCT a chave gerada sempre vai ser a mesma.

 

Espero ter ajudado.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

Postado

Entendi, então eu devo inserir o codigo aleatório para que ele gere a mesma chave na hora que alimenta o componente? o que eu preciso mesmo é que o componente, ao carregar um mesmo CTe ja autorizado, venha com a chave digital que eu tenho no banco, que no caso seria a chave que consta na base de dados da SEFAZ

  • Consultores
  • Solution
Postado

Igor,

 

Da mesma forma que a sua aplicação defini qual será o numero do CT-e ( TAG nCT ) ela deve também definir o código aleatório ( TAG cCT ).

 

Ambos, numero e código devem ser armazenados no registro juntamente com os demais dados do CT-e no banco de dados.

 

Por outro lado o LoadFromFile que utilizamos para carregar para o componente o conteudo de um XML, possui dois parametros.

 

Sendo que o segundo é um valor booleano, cujo padrão é True, isso diz ao componente para que ele gere novamente o XML.

 

Se você executar desta forma: LoadFormFile( sArquivo, False );

 

O XML vai ser lido e nada vai ser gerado, portanto a chave do CT-e lido não corre o risco de ser alterada.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

  • Este tópico foi criado há 3904 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.

The popup will be closed in 10 segundos...