Ir para conteúdo
  • Cadastre-se

dev botao

IMPORTAR XML DO CF-E


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

Recommended Posts

  • Consultores

Bom dia Antônio,

Quando você diz CF-e você esta se referindo a qual modelo de documento fiscal (NF-e, NFC-e ou SAT)?

Se tratando de NFC-e acredito e a única solução é solicitar a SEFAZ, mas vai ter que argumentar muito bem.

Se é NF-e, e os XML foram enviados por e-mail para os destinatário, você pode começar por ai, pedir para que eles enviem esses XMLs de volta ou solicitar a SEFAZ.

Já o XML do SAT acredito que a única solução será solicitar a SEFAZ-SP.

 

Consultor SAC ACBr

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

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

os arquivos São NFC-e (cupons fiscais eletronicos)

os xml eu tenho, quero importar as informações para um banco de dados

com as nf-e eu uso o acbrnf

             form1.SaidOBS.value := Form1.ACBrNFe1.NotasFiscais.Items[0].NFe.InfAdic.infAdFisco;
             form1.saidnome.value := Form1.ACBrNFe1.NotasFiscais.Items[0].NFe.Det.Prod.xProd;;
             form1.saidemp_cnpj.Value := Form1.ACBrNFe1.NotasFiscais.Items[0].NFe.Emit.CNPJCPF;
             form1.saidmes.Value := copy(datetostr(Form1.ACBrNFe1.NotasFiscais.Items[0].NFe.ide.dEmi),04,02);
             form1.saidano.Value := copy(datetostr(Form1.ACBrNFe1.NotasFiscais.Items[0].NFe.ide.dEmi),07,04);   

 

quero saber se tem como fazer com os cupons??

 

 

Link para o comentário
Compartilhar em outros sites

  • Consultores

Boa tarde Antônio,

NFC-e não é cupom fiscal e sim Nota Fiscal ao Consumidor eletrônica.

O layout do XML da NFC-e é exatamente o mesmo da NF-e, o que muda é o modelo, que em vez de ser 55 é 65.

Logo você pode usar a mesma rotina para ler os dados do XML.

  • Curtir 1
Consultor SAC ACBr

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

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

BOM DIA

Alterei o Campo para ModeloDF para moNFCe

Estou tentando, mas nao ta funcionando

poderia olhar e ver onde estou pecando

 

var
  i,y,x,n,p: integer;
  data:string;
  VlistE,VlistS:variant;
begin

Form1.Saidcf.Active:=true;

ListBox1.ItemIndex:=0;
i:=0;
x:=0;
n:=0;
p:=0;
try

   while ListBox1.ItemIndex<Listbox1.Count - 1 do
   begin
   ACBrNFe1.NotasFiscais.Clear;
   ACBrNFe1.NotasFiscais.LoadFromFile(ListBox1.Items[ListBox1.ItemIndex]);
   Label22.Caption:='Importação de Nfe: '+ListBox1.Items[ListBox1.ItemIndex];
   form6.Refresh;
   i:=0;
   n:=n+1;
     if NOT Form1.Saidcf.Locate('chave',COPY(ACBrNFe1.NotasFiscais.Items[0].NFe.infNFe.ID,4,44) , []) then
        begin
        if ((copy(ACBrNFe1.NotasFiscais.Items[0].NFe.Det.Prod.CFOP,01,01)='5')or(copy(ACBrNFe1.NotasFiscais.Items[0].NFe.Det.Prod.CFOP,01,01)='6')) then
           begin
           i:=0;
           for i := 0 to ACBrNFe1.NotasFiscais.Items[0].NFe.Det.Count - 1 do
               begin
               Form1.Saidcf.Insert;
//               Form1.SaidcfOBS.value := ACBrNFe1.NotasFiscais.Items[0].NFe.InfAdic.infAdFisco;
               Form1.Saidcfnome.value := ACBrNFe1.NotasFiscais.Items[0].NFe.Det.Prod.xProd;
               Form1.Saidcfemp_cnpj.Value := ACBrNFe1.NotasFiscais.Items[0].NFe.Emit.CNPJCPF;
               Form1.Saidcfmes.Value := copy(datetostr(ACBrNFe1.NotasFiscais.Items[0].NFe.ide.dEmi),04,02);
               Form1.Saidcfano.Value := copy(datetostr(ACBrNFe1.NotasFiscais.Items[0].NFe.ide.dEmi),07,04);
              // data:= Form1.Saidcfmes.Value+'-'+Form1.Saidcfano.Value;
               Form1.SaidcfNR_CF.Value := ACBrNFe1.NotasFiscais.Items[0].NFe.ide.nNf;
               Form1.SaidcfCOO.AsInteger := ACBrNFe1.NotasFiscais.Items[0].NFe.ide.nNf;
               Form1.SaidcfChave.Value:= COPY(ACBrNFe1.NotasFiscais.Items[0].NFe.infNFe.ID,4,44);
               Form1.SaidcfPRO_COD.AsString := ACBrNFe1.NotasFiscais.Items[0].NFe.Det.Prod.cProd;
               Form1.SaidcfPRO_QUANT.Value :=ACBrNFe1.NotasFiscais.Items[0].NFe.Det.Prod.qCom;
               Form1.SaidcfPRECO.Value := ACBrNFe1.NotasFiscais.Items[0].NFe.Det.Prod.vDesc ;
               Form1.SaidcfVALOR.Value := ACBrNFe1.NotasFiscais.Items[0].NFe.Det.Prod.Vprod ;
               Form1.SaidcfDESCONTO.Value := ACBrNFe1.NotasFiscais.Items[0].NFe.Det.Prod.vUnCom ;

               Form1.SaidcfCfop.Value:=ACBrNFe1.NotasFiscais.Items[0].NFe.Det.Prod.CFOP;
               Form1.SaidcfItem.Value:=ACBrNFe1.NotasFiscais.Items[0].NFe.Det.Prod.nItem;
               Form1.Saidcfdata.AsDateTime:=ACBrNFe1.NotasFiscais.Items[0].NFe.Ide.dEmi;
               Form1.SaidcfCALC.VALUE:='*';


               Form1.SaidcfSER.AsString:='CFE';
               Form1.SaidcfCPF.Value:=ACBrNFe1.NotasFiscais.Items[0].NFe.Dest.CNPJCPF;
               Form1.Saidcfdata.Value:=ACBrNFe1.NotasFiscais.Items[0].NFe.Det.Prod.uCom;
               Form1.Saidcfdata.Value:=ACBrNFe1.NotasFiscais.Items[0].NFe.Det.Prod.NCM;

               Form1.SaidcfCALC.VALUE:='*';


               form1.produtos.Insert;
               form1.produtosPRO_COD.AsString := ACBrNFe1.NotasFiscais.Items[0].NFe.Det.Prod.cProd;
               form1.produtospro_descricao.value := ACBrNFe1.NotasFiscais.Items[0].NFe.Det.Prod.xProd;;
               form1.produtosund.Value := ACBrNFe1.NotasFiscais.Items[0].NFe.Det.Prod.uTrib ;
               form1.produtospro_ncm.Value := ACBrNFe1.NotasFiscais.Items[0].NFe.Det.Prod.NCM ;
               form1.produtosPRECO.Value := ACBrNFe1.NotasFiscais.Items[0].NFe.Det.Prod.vUnCom ;
               form1.produtosemp_cnpj.Value := ACBrNFe1.NotasFiscais.Items[0].NFe.Emit.CNPJCPF;
               form1.produtos.ApplyUpdates(0);

               Form1.Saidcf.Post;
               Form1.Saidcf.ApplyUpdates(0);
               Form1.Saidcf.refresh;
               p:=p+1;
              end;
           end;
        end;

     ACBrNFe1.NotasFiscais.Clear;
     ACBrNFe1.NotasFiscais.LoadFromFile(ListBox1.Items[ListBox1.ItemIndex]);
     Label22.Caption:='Importação de Nfe: '+ListBox1.Items[ListBox1.ItemIndex];
     form6.Refresh;
     i:=0;
     n:=n+1;
   end;
   showmessage('Arquivos importados com sucesso'+#13+
               'Notas : '+inttostr(n)+#13+
               'Itens : '+inttostr(p)+#13+
               'Ultima: '+COPY(ACBrNFe1.NotasFiscais.Items[0].NFe.infNFe.ID,4,44)+#13+
               'Mês/Ano:'+data);
               Form6.Refresh;


except
     On E:Exception do
       ShowMessage('Ocorreu um erro no VlistE ' + E.Message+#13+
       copy(datetostr(ACBrNFe1.NotasFiscais.Items[0].NFe.ide.dEmi),07,04)+#13+
       copy(datetostr(ACBrNFe1.NotasFiscais.Items[0].NFe.ide.dEmi),04,02)+#13+
       COPY(ACBrNFe1.NotasFiscais.Items[0].NFe.infNFe.ID,4,44)+#13+
       inttostr(ACBrNFe1.NotasFiscais.Items[0].NFe.ide.nNf));
end;
end;

 

Link para o comentário
Compartilhar em outros sites

  • Consultores

Bom dia Antônio,

O que é que não esta funcionando?

Qual é o erro?

Você "debugou" a sua rotina para saber o motivo de não esta retornando as informações?

Consultor SAC ACBr

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

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

  • Consultores

Antônio,

Antes desse IF manda mostrar na tela o conteúdo de: ACBrNFe1.NotasFiscais.Items[0].NFe.infNFe.ID

Se ocorrer erro nessa linha significa que ele não esta carregando o XML, logo a lista de notas esta vazia e isso explica o erro índice fora da faixa.

Consultor SAC ACBr

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

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

showmessage(ListBox1.Items[ListBox1.ItemIndex]);     aqui mostra o caminho de onde pegar o xml mostrou o caminho correto

ACBrNFe1.NotasFiscais.LoadFromFile(ListBox1.Items[ListBox1.ItemIndex]);     aqui carrega e nao sei pq da o erro

coloquei um showmessage( ACBrNFe1.NotasFiscais.Items[0].NFe.infNFe.ID )     aqui da o erro  deu o mesmo ERRO

AD23180500632675000153592300323900018560160540.xml

 

ai esta um xml

Link para o comentário
Compartilhar em outros sites

  • Moderadores

Boa tarde

list index out of bounds - significa que está tentando acessar um item que não exite no array ( Items[0] )

O path do xml que está passando é valido se tentar acessar de outro local?

Consultor SAC ACBr

José Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Link para o comentário
Compartilhar em outros sites

  • Consultores
  • Solution

Bom dia Antônio,

Na sua postagem acima você escreveu: "os arquivos São NFC-e (cupons fiscais eletronicos) "

Eu deixei claro que os XMLs das NF-e o modelo é 55 e das NFC-e é 65.

Agora se modelo do documento é 59, você não pode usar o componente ACBrNFe para poder carregar o XML.

XMLs cujo modelo é 59 se refere a uma nota emitida pelo SAT, logo você precisa usar o componente ACBrSAT.

  • Curtir 1
Consultor SAC ACBr

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

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

×
×
  • 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...