Ir para conteúdo
  • Cadastre-se

dev botao

Exemplo de utilização do CTe


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

Recommended Posts

Bom dia Prezados Amigos!

Alguem sabe me dizer se existe algum exemplo de utilização do CTe?

Estou estudando o assunto e gostaria de ver o funcionamento (uma demo).

Se alguem tiver uma demo e puder me passar agradeço!

Um forte abraço!

Giovani

Peço desculpas, acho que me expressei de forma incompleta.

Além da demo que já acompanha o componente. Por que por exemplo não tem um exemplo de geração do arquivo XML

Link para o comentário
Compartilhar em outros sites

  • Consultores

Boa tarde Giovani,

Na pasta Exemplos\ACBrCTe temos 4 arquivos TXT, são fragmentos de códigos da minha aplicação, estude eles.

[]s

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

Link para o comentário
Compartilhar em outros sites

  • 3 anos depois...
  • Membros Pro

Ola Italo JJR, Primeiramente gostaria de lhe agradecer pelas inúmeros auxílios que tem me passado, Segundo gostaria de ver o erro em anexo.

Este erro começou a ocorrer no momento que foi implementado a tag infdocant.

 

no qual segue abaixo o código implementado

 

 if ide.tpServ <> tsNormal then
          begin
            with infCTeNorm.docAnt.emiDocAnt.Add do
             begin
               qrutil.Close;
               qrutil.SQL.Clear;
               qrutil.SQL.Add('select * from doc_transp_ant');
               qrutil.SQL.Add('where cod_conhecimento =:cod');
               qrutil.ParamByName('cod').AsInteger  := qrConhecimentoCODIGO.AsInteger;
               qrutil.Open;
              // Dados do Emissor do Documento Anterior
              CNPJCPF := qrutil.fieldbyname('cnpj').AsString;   //Exped.CNPJCPF;
              IE      := qrutil.fieldbyname('ie').AsString;     //Exped.IE;
              UF      := qrutil.fieldbyname('uf').AsString;     //Exped.EnderExped.UF;
              xNome   := qrutil.fieldbyname('razao').AsString;  //Exped.xNome;
              with idDocAnt.Add do
               begin
                 qryAuxiliar.Close;
                 qryAuxiliar.SQL.Clear;
                 qryAuxiliar.SQL.Add('select * from doc_transp_ant_papel');
                 qryAuxiliar.SQL.Add('where cod_conhecimento =:codc and cod_trans_ant =:coda');
                 qryAuxiliar.ParamByName('codc').AsInteger :=qrConhecimentoCODIGO.AsInteger;
                 qryAuxiliar.ParamByName('coda').AsInteger :=qrutil.fieldbyname('codigo').AsInteger;
                 qryAuxiliar.Open;
                 qryAuxiliar.First; // Documentos Anteriores de Papel
                  while not qryAuxiliar.Eof do
                    begin
                      with idDocAntPap.Add do
                         begin
                           // TpcteTipoDocumentoAnterior = (daCTRC, daCTAC, daACT, daNF7, daNF27, daCAN, daCTMC, daATRE, daDTA, daCAI, daCCPI, daCA, daTIF, daOutros);
                            if (qryAuxiliar.fieldbyname('tipo_doc').AsString ='CTRC')then
                                tpDoc := daCTRC;
                            if (qryAuxiliar.fieldbyname('tipo_doc').AsString ='CTAC')then
                                tpDoc := daCTAC;
                            if (qryAuxiliar.fieldbyname('tipo_doc').AsString ='ACT')then
                                tpDoc := daACT;
                            if (qryAuxiliar.fieldbyname('tipo_doc').AsString ='NF MODELO 7')then
                                tpDoc := daNF7;
                            if (qryAuxiliar.fieldbyname('tipo_doc').AsString ='NF MODELO 27')then
                                tpDoc := daNF27;
                            if (qryAuxiliar.fieldbyname('tipo_doc').AsString ='CONHECIMENTO AEREO NACIONAL')then
                                tpDoc := daCAN;
                            if (qryAuxiliar.fieldbyname('tipo_doc').AsString ='CTME')then
                                tpDoc := daCTMC;
                            if (qryAuxiliar.fieldbyname('tipo_doc').AsString ='ATRE')then
                                tpDoc := daATRE;
                            if (qryAuxiliar.fieldbyname('tipo_doc').AsString ='DTA (DESPACHO DE TRÂNSITO ADUANEIRO)')then
                                tpDoc := daDTA;
                            if (qryAuxiliar.fieldbyname('tipo_doc').AsString ='CONHECIMENTO AEREO INTERNACIONAL')then
                                tpDoc := daCAI;
                            if (qryAuxiliar.fieldbyname('tipo_doc').AsString ='CONHECIMENTO - CARTA DE PORTE INTERNACIONAL')then
                                tpDoc := daCCPI;
                            if (qryAuxiliar.fieldbyname('tipo_doc').AsString ='CONHECIMENTO AVULSO')then
                                tpDoc := daCA;
                            if (qryAuxiliar.fieldbyname('tipo_doc').AsString ='TIF (TRANSPORTE INTERNACIONAL FERROVIARIO)')then
                                tpDoc := daTIF;
                            if (qryAuxiliar.fieldbyname('tipo_doc').AsString ='OUTROS')then
                                tpDoc := daOutros;
 
                               serie  := qryAuxiliar.fieldbyname('serie').AsString;
                               subser := qryAuxiliar.fieldbyname('sub_serie').AsString;
                               nDoc   := qryAuxiliar.fieldbyname('numero_doc').AsInteger;
                               dEmi   := qryAuxiliar.fieldbyname('data_emiss').AsDateTime;
                         end;
                      qryAuxiliar.Next;
                    end;
                 qryAuxiliar.Close;
                 qryAuxiliar.SQL.Clear;
                 qryAuxiliar.SQL.Add('select * from doc_transp_ant_eletronico');
                 qryAuxiliar.SQL.Add('where cod_conhecimento =:codc and cod_trans_ant =:coda');
                 qryAuxiliar.ParamByName('codc').AsInteger :=qrConhecimentoCODIGO.AsInteger;
                 qryAuxiliar.ParamByName('coda').AsInteger :=qrutil.fieldbyname('codigo').AsInteger;
                 qryAuxiliar.Open;
                 qryAuxiliar.First; // Documentos Anteriores Eletrônico
                 while not qryAuxiliar.Eof do
                  begin
                   with idDocAntEle.Add do
                     begin
                        chave := qryAuxiliar.fieldbyname('chave').AsString;
                     end;
                    qryAuxiliar.Next;
                  end;
               end;
             end;
          end;

post-9634-0-20404600-1405684043.png

Editado por EFV
Link para o comentário
Compartilhar em outros sites

  • Consultores

Bom dia EFV,

 

Primeiro vamos ao Manual versão 2.00a do CT-e.

 

Página 134 campo # 261 se refere ao grupo infDoc - nível 2 ou seja esta dentro do grupo infCTeNorm.

 

O grupo infDoc se refere a informações dos documentos originários, ou seja, o documento emitido pelo remetente da carga.

Esse grupo poderá ser omitido quando se tratar de redespacho intermediário caso contrario temos que informar.

Outro detalhe como esse grupo esta dentro do infCTeNorm isso significa que estamos emitindo um CT-e Normal, não se tratata de um de complementação de valores ou anulação.

 

Página 140 campo #344 se refere ao grupo docAnt - nível 2 ou seja esta dentro do grupo infCTeNorm, também.

Esse grupo é opcional ele só é informado quando se tratar de redespacho ou redespacho intermediário.

É nesse grupo que informamos o documento emitido pela transportadora anterior.

 

Cuidado para não confundir:

 

O tipo do CT-e (tpCTe) que pode ser: Normal, Complemento de Valores, Anulação ou Substituição.

 

O tipo do Serviço (tpServ) que pode ser: Normal, Subcontratação, Redespacho, Redespacho Intermediário ou Serviço Vinculado a Multimodal.

 

Outra coisa, você esta utilizando os schemas da pasta: ...\Exemplos\ACBrCTe\Delphi\Schemas\V200?

 

Tanto os fontes quanto os schemas estão atualizados?

 

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

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 3725 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.