Ir para conteúdo
  • Cadastre-se

dev botao

Erro Forma De Pagamento Da Nfc-E


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

Recommended Posts

  • Membros Pro

Caros Colegas,

 

Ao gerar o XML da NFC-e, na forma de pagamento esta sendo acrescentado uma varias formas com valores zerados, sendo que ja revisei o código e só mando quando o valor é maior que zero.

 

Trecho do meu código:

      if EVLR_Dinheiro.Value > 0 then
       begin
        pag.Add.tPag := fpDinheiro;
        pag.Add.vPag := A_Menu.Arredonda(EVLR_Dinheiro.Value);
       end;
      if (EVLR_ChequeAV.Value > 0) Or (EVLR_ChequeAP.Value > 0) then
       begin
        pag.Add.tPag := fpCheque;
        pag.Add.vPag := A_Menu.Arredonda(EVLR_ChequeAV.Value + EVLR_ChequeAP.Value);
       end;
      if EVLR_Cartao.Value > 0 then
       begin
        pag.Add.tPag := fpCartaoCredito;
        pag.Add.vPag := A_Menu.Arredonda(EVLR_Cartao.Value);
       end;
      if EVLR_CartaoDebito.Value > 0 then
       begin
        pag.Add.tPag := fpCartaoDebito;
        pag.Add.vPag := A_Menu.Arredonda(EVLR_CartaoDebito.Value);
       end;
      if EVLR_Crediario.Value > 0 then
       begin
        pag.Add.tPag := fpCreditoLoja;
        pag.Add.vPag := A_Menu.Arredonda(EVLR_Crediario.Value);
       end;
      if (EVLR_Convenio.Value + EVLR_Banco.Value)   > 0 then
       begin
        pag.Add.tPag := fpOutro;
        pag.Add.vPag := A_Menu.Arredonda(EVLR_Convenio.Value + EVLR_Banco.Value);
       end;

 

 

Código do XML

 

- <pag>
  <tPag>01</tPag>
  <vPag>0.00</vPag>
  </pag>
- <pag>
  <tPag>01</tPag>
  <vPag>3.00</vPag>
  </pag>
- <pag>
  <tPag>04</tPag>
  <vPag>0.00</vPag>
  </pag>
- <pag>
  <tPag>01</tPag>
  <vPag>2.97</vPag>
  </pag>

 

Agradeço pela atenção. O XML está em anexo.

 

Obrigado

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Moderadores

Vc está chamando o add pra cada campo. Chame apenas uma vez.

with pag.Add do
 begin
   tPag := fpDinheiro;
   vPag := A_Menu.Arredonda(EVLR_Dinheiro.Value); 
 end;
djsystem-logo.png
 youtube.png facebook.png instagram.png linkedin.png
André Ferreira de Moraes | Analista de Sistemas
www.djsystem.com.br | www.djpdv.com.br
www.tefhouse.com.br | www.xpos.com.br
Link para o comentário
Compartilhar em outros sites

  • 7 meses depois ...
  • Moderadores

Caro colega

 

Tem como adicionar a opção fpDeposito?

 

Os tipos de pagamento para NFC-e são definidos por meio de nota técnica, então não é possível adicionar meios de pagamento que não os que são permitidos pelo SEFAZ.

No seu caso deveria utilizar o meio de pagamento Outros.

  • Curtir 1

Equipe ACBr

Régys Borges da Silveira

http://www.regys.com.br

certificacao delphicertificacao delphi
Link para o comentário
Compartilhar em outros sites

  • 1 mês depois ...

Boa tarde, eu sou novo aqui e estou tentando gerar uma NFC-e com duas formas de pagamento na mesma venda, exemplo Cartão de Crédito 30,00 e Cartão de Débito 50,00 mais não esta dando certo quando gera o XML da NFC-e segue abaixo alguns testes que fiz no Delphi, se alguém puder me ajudar agradeço.

with pag.Add do 
       begin
         tPag := fpCartaoCredito;
         vPag := 30;
         tPag := fpCartaoDebito;
         vPag := 50;
       end;
Passando da forma acima da um erro quando vai enviar a NFC-e dizendo que o somatorio das formas de pagamento não bate.
 
Da forma embaixo fica errado no XML pois adiciona 3 formas de pagamento.
         pag.Add.tPag := fpCartaoCredito;
         pag.Add.vPag := 30;
         pag.Add.tPag := fpCartaoDebito;
         pag.Add.vPag := 50;
 
        XML
       <pag>
         <tPag>03</tPag>
         <vPag>30.00</vPag>
      </pag>
      <pag>
        <tPag>04</tPag>
        <vPag>00.00</vPag>
      </pag>
       <pag>
        <tPag>01</tPag>
        <vPag>50.00</vPag>
      </pag>
      
    O valor de 50,00 que é Cartão de Debito fica na forma de pagamento Dinheiro mais eu não adicionei a forma de pagamento Dinheiro.   
 
Editado por carlos vilanova
Link para o comentário
Compartilhar em outros sites

  • Moderadores

Verifique os demos antes de implementar, ajuda muito o entendimento, a forma correta seguindo seu exemplo é:

with pag.Add do 
begin
  tPag := fpCartaoCredito;
  vPag := 30;
end;

with pag.Add do 
begin
  tPag := fpCartaoDebito;
  vPag := 50;
end;

Equipe ACBr

Régys Borges da Silveira

http://www.regys.com.br

certificacao delphicertificacao delphi
Link para o comentário
Compartilhar em outros sites

  • 2 anos depois...

ola pessoal, segundo o manual, a tag 'pag' so deve ser usada para NFC-e, mas estou enviando uma NF-e e esta dando rejeicao nessa tag:

Element '{http://www.portalfiscal.inf.br/nfe}pag' cannot be empty according to the DTD/Schema.

 

estou usando ACBrNFe e enviando NF-e para o estado do MT. nao achei na net dizendo alguma coisa q seja obrigatorio essa tag para NFe no MT. alg tem algum link ou alguma dica?

Analista de Sistemas

Control Fácil Sistemas

MultiWare Tecnologia

TW Speed Telecom

Link para o comentário
Compartilhar em outros sites

  • Moderadores
7 horas atrás, joemil disse:

ola pessoal, segundo o manual, a tag 'pag' so deve ser usada para NFC-e, mas estou enviando uma NF-e e esta dando rejeicao nessa tag:

O grupo de pagamentos passou a ser obrigatório na NFe 4.0.

Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

Link para o comentário
Compartilhar em outros sites

  • 4 semanas depois ...

eu faço dessa forma

if RDINHEIRO.Value >= Total.ICMSTot.vNF THEN
      begin
      with pag.Add do //PAGAMENTOS apenas para NFC-e
       begin
           tPag := fpDinheiro;
           vPag := RoundTo(Total.ICMSTot.vNF,-2);
          end;
      END;

      if RDINHEIRO.Value < Total.ICMSTot.vNF then
          BEGIN
          if rdinheiro.Value >0 then
           begin
            with pag.Add do
            begin
              tpag:=fpDinheiro;
              vpag:=RoundTo(rdinheiro.Value,-2);
            end;
          END;
          END;

            // Crediario da loja
        if RCREDIARIO.Value >0 THEN
        begin
       with pag.Add do //PAGAMENTOS apenas para NFC-e
       begin
           tpag:=fpCreditoLoja;
           vPag:=RoundTo(Total.ICMSTot.vNF - rdinheiro.value - rcartaocred.value - rcartaodeb.value - rchequeav.value,-2);
         end;
       end;


       if rcartaocred.value >0 then
       begin
           with pag.Add do
           begin
             tpag:=fpCartaoCredito;
             vpag:=RoundTo(Total.ICMSTot.vNF - rdinheiro.value - rcrediario.value - rcartaodeb.value - rchequeav.value,-2);
           end;
       end;


       if rcartaodeb.Value >0 then
       begin
           with pag.Add do
           begin
             tpag:=fpCartaoDebito;
             vpag:=RoundTo(Total.ICMSTot.vNF - rdinheiro.value - rcrediario.value - rcartaocred.value - rchequeav.value,-2);
           end;
       end;

              // meio cheque avista
       if rchequeav.Value >0 then
       begin   //4
       with pag.Add do //PAGAMENTOS apenas para NFC-e
       begin
           tpag:=fpCheque;
           vPag:=RoundTo(Total.ICMSTot.vNF - rdinheiro.value - rcrediario.value - rcartaodeb.value - rcartaocred.Value,-2);
         end;
         end;

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 2512 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...
The popup will be closed in 10 segundos...