Jump to content

dev botao

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

Recommended Posts

Posted

Bom dia.

Desenvolvi NFC-e usando ECFVirtual.

Nas vendas, impressões está funcionando tudo corretamente, mas estou com problemas na hora de cancelar item.

O problema ocorre se eu cancelar mais de um item, exemplo da venda:

Vendi item 1;

Vendi item 2;

Cancelei item 2;

Vendi item 3;

Vendi item 4;

Vendi item 5;

Cancelei o item 4

Finalizando essa venda, o item 2 foi cancelado corretamente e removido do xml, mas o item 4 continua no xml e o item 5 foi excluído do xml. 

Debugando o componente, na unit ACBrECFVirtual, procedure CancelaItemVendido, o parâmetro NumItem está chegando exatamente o item que está sendo cancelado, na Unit ACBrECFVirtualNFCe, procedure CancelaItemVendidoVirtual o parâmetro NumItem também está chegando corretamente.

Não consegui encontrar o possível problema, alguém passou por essa situação ?

Pesquisando no fórum encontrei só o link abaixo, mas mesmo assim não consegui resolver o problema.

 

Obrigado.

 

 

 

 

 

Posted

Giquieu, boa tarde.

Fiz as alterações de acordo com o que você sugeriu no link citado acima, mas ainda continuou com o problema.

Fazendo a venda na sequência que eu citei acima, o item que deveria ser excluído do XML do segundo cancelamento seria o item 4, mas foi excluído o último item, no caso o item 5.

Seguindo a sua lógica, fiz a alteração da seguinte forma:

    for I := 0 to NotasFiscais.Items[0].NFe.Det.Count -1 do
    begin
      if (NotasFiscais.Items[0].NFe.Det.Items.Prod.nItem = NumItem) then
      begin
        NotasFiscais.Items[0].NFe.Det.Delete(I);
        Break;
      end;
    end;

Dessa maneira, comparando o NumItem com o Prod.nItem deu certo todos os cancelamentos.

Obrigado.

  • Membros Pro
Posted

Que bom que ajudou.

Pra melhorar o desempenho do loop deixaria com o down to, afinal, normalmente o cancelamento vai ocorrer nos últimos itens... xD

  • 4 months later...
Posted
Em 03/02/2016 at 14:56, ftellini disse:

Giquieu, boa tarde.

Fiz as alterações de acordo com o que você sugeriu no link citado acima, mas ainda continuou com o problema.

Fazendo a venda na sequência que eu citei acima, o item que deveria ser excluído do XML do segundo cancelamento seria o item 4, mas foi excluído o último item, no caso o item 5.

Seguindo a sua lógica, fiz a alteração da seguinte forma:

    for I := 0 to NotasFiscais.Items[0].NFe.Det.Count -1 do
    begin
      if (NotasFiscais.Items[0].NFe.Det.Items.Prod.nItem = NumItem) then
      begin
        NotasFiscais.Items[0].NFe.Det.Delete(I);
        Break;
      end;
    end;

Dessa maneira, comparando o NumItem com o Prod.nItem deu certo todos os cancelamentos.

Obrigado.

Aonde incluiu o código citado? Outro erro que identifiquei no cancelamento do item individual, é que no xml da nfc-e não re-ordena o nItem. Por exemplo:

Vende item 1, 2,3.

Cancela item 2

No xml sai:

<det nItem = "1">

<det nItem = "3"> 

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

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.