Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado

Pessoal, estava fazendo uns testes e tentei importar pelo DEMO uma NFe, no campo NFe.Total.ICMSTot.vFrete ele está trazendo errado e também no campo vFrete do produto o mesmo não está trazendo corretamente.

Tentei debugar para identificar mas não conseguir entender muito bem o código da Unit PncNFeR

(* Grupo da TAG *****************************************************)

if Leitor.rExtrai(1, 'total') <> '' then

begin

if Leitor.rExtrai(2, 'ICMSTot') <> '' then

begin

(*W03*)NFe.Total.ICMSTot.vBC := Leitor.rCampo(tcDe2, 'vBC');

(*W04*)NFe.Total.ICMSTot.vICMS := Leitor.rCampo(tcDe2, 'vICMS');

(*W05*)NFe.Total.ICMSTot.vBCST := Leitor.rCampo(tcDe2, 'vBCST');

(*W06*)NFe.Total.ICMSTot.vST := Leitor.rCampo(tcDe2, 'vST');

(*W07*)NFe.Total.ICMSTot.vProd := Leitor.rCampo(tcDe2, 'vProd');

(*W08*)NFe.Total.ICMSTot.vFrete := Leitor.rCampo(tcDe2, 'vFrete');

(*W09*)NFe.Total.ICMSTot.vSeg := Leitor.rCampo(tcDe2, 'vSeg');

(*W10*)NFe.Total.ICMSTot.vDesc := Leitor.rCampo(tcDe2, 'vDesc');

(*W11*)NFe.Total.ICMSTot.vII := Leitor.rCampo(tcDe2, 'vII');

(*W12*)NFe.Total.ICMSTot.vIPI := Leitor.rCampo(tcDe2, 'vIPI');

(*W13*)NFe.Total.ICMSTot.vPIS := Leitor.rCampo(tcDe2, 'vPIS');

(*W14*)NFe.Total.ICMSTot.vCOFINS := Leitor.rCampo(tcDe2, 'vCOFINS');

(*W15*)NFe.Total.ICMSTot.vOutro := Leitor.rCampo(tcDe2, 'vOutro');

(*W16*)NFe.Total.ICMSTot.vNF := Leitor.rCampo(tcDe2, 'vNF');

:P

Postado

Cara eu to usando assim e tem dado certo.

var

i, j, k, n : integer;

Nota, Node, NodePai, NodeItem: TTreeNode;

NFeRTXT: TNFeRTXT;

begin

PageControl1.Pages[9].TabVisible:=True;

PageControl1.Pages[9].Enabled:=true;

PageControl1.ActivePageIndex:=9;

OpenDialog1.FileName := '';

OpenDialog1.Title := 'Selecione a NFE';

OpenDialog1.DefaultExt := '*.XML';

OpenDialog1.Filter := 'Arquivos NFE (*-nfe.XML)|*-nfe.XML|Arquivos XML (*.XML)|*.XML|Arquivos TXT (*.TXT)|*.TXT|Todos os Arquivos (*.*)|*.*';

if OpenDialog1.Execute then

begin

ACBrNFe1.NotasFiscais.Clear;

//tenta TXT

ACBrNFe1.NotasFiscais.Add;

NFeRTXT := TNFeRTXT.Create(ACBrNFe1.NotasFiscais.Items[0].NFe);

NFeRTXT.CarregarArquivo(OpenDialog1.FileName);

if NFeRTXT.LerTxt then

NFeRTXT.Free

else

begin

NFeRTXT.Free;

//tenta XML

ACBrNFe1.NotasFiscais.Clear;

try

ACBrNFe1.NotasFiscais.LoadFromFile(OpenDialog1.FileName);

except

ShowMessage('Arquivo NFe Inválido');

exit;

end;

end;

for n:=0 to ACBrNFe1.NotasFiscais.Count-1 do

begin

with ACBrNFe1.NotasFiscais.Items[n].NFe do

begin

Nota := trvwNFe.Items.Add(nil,infNFe.ID);

trvwNFe.Items.AddChild(Nota,'ID= ' +infNFe.ID);

Node := trvwNFe.Items.AddChild(Nota,'procNFe');

trvwNFe.Items.AddChild(Node,'tpAmb= ' +TpAmbToStr(procNFe.tpAmb));

trvwNFe.Items.AddChild(Node,'verAplic= ' +procNFe.verAplic);

trvwNFe.Items.AddChild(Node,'chNFe= ' +procNFe.chNFe);

trvwNFe.Items.AddChild(Node,'dhRecbto= ' +DateTimeToStr(procNFe.dhRecbto));

trvwNFe.Items.AddChild(Node,'nProt= ' +procNFe.nProt);

trvwNFe.Items.AddChild(Node,'digVal= ' +procNFe.digVal);

trvwNFe.Items.AddChild(Node,'cStat= ' +IntToStr(procNFe.cStat));

trvwNFe.Items.AddChild(Node,'xMotivo= ' +procNFe.xMotivo);

.....

e depois de carregar as informações e pego elas assim;

begin

dados.CDS_PRODUTOS.Append;

dados.CDS_PRODUTOSCODIGO.Value:=funcoes.RetornaCodigo('produtos');

dados.CDS_PRODUTOSDESCRICAO.Value:=Prod.xProd;

dados.CDS_PRODUTOSREFERENCIA.Value:=referencia;

dados.CDS_PRODUTOSCODIGO_BARRAS.Value:=Prod.cEAN;

dados.CDS_PRODUTOSID_FORNECEDOR.Value:=dados.CDS_NOTASID_FORNECEDOR.Value;

dados.CDS_PRODUTOSUNIDADE.Value:=Prod.uCom;

dados.CDS_PRODUTOSVAL_CUSTO.Value:=Prod.vUnCom;

dados.CDS_PRODUTOSREF_FORNECEDOR.Value:=Prod.cProd;

dados.CDS_PRODUTOSCLASSIFICACAO_FISCAL.Value:=Prod.NCM;

dados.cds_produtos.Post;

dados.CDS_PRODUTOS.ApplyUpdates(0);

end;

Postado

Sim, está dando certo, é apenas o campo vfrete que não retorna corretamente.

Por exemplo, no XML ta assim

-

-

9.77

0.68

0.00

0.00

630.00

54.00

0.00

0.00

0.00

0.00

0.00

0.00

0.00

684.00

O componente não pega o valor 54.00 para esse campo.

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