Ir para conteúdo
  • Cadastre-se

dev botao

Danfe NFC-e linha Valor Recebido $


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

Recommended Posts

  • Membros Pro
Postado

Olá pessoal,

Infelizmente por causa de um fiscal do procon aqui de minha cidade,

tive que imprimir no danfe da nfce uma linha, Valor Recebido, segundo o mesmo

para representar o valor entregue pelo cliente, aí já sabem a grande maioria de servidores

se acham "autoridade". Enfim, alterei as Units:

ACBrNFeDANFCeFortesFr, 

criei uma RLBand antes de troco e no evento beforeprint muito igaul a troco:

procedure TACBrNFeDANFCeFortesFr.rlbVRecebidoBeforePrint(Sender: TObject;
  var PrintIt: Boolean);
var
  Troco : Currency ;
begin
    lRecebido.Caption := FormatFloatBr(fACBrNFeDANFCeFortes.vTroco++ACBrNFeDANFCeFortes.FpNFe.Total.ICMSTot.vNF);
end;


para a unit: ACBrNFeDANFeESCPOS alterei o seguinte procedimento:

procedure TACBrNFeDANFeESCPOS.GerarPagamentos(Resumido: Boolean = False);
var
  i: Integer;
  {Total,} Troco, vRecebido: Real;
begin
  //Total := 0;
  FPosPrinter.Buffer.Add('<c>' + PadSpace('FORMA DE PAGAMENTO | Valor Pago',
     FPosPrinter.ColunasFonteCondensada, '|'));
  vRecebido := 0.00;
  for i := 0 to FpNFe.pag.Count - 1 do
  begin
       FPosPrinter.Buffer.Add('<c>' + ACBrStr(PadSpace(FormaPagamentoToDescricao(FpNFe.pag.Items.tPag) +
          '|' + FormatFloatBr(FpNFe.pag.Items.vPag),
          FPosPrinter.ColunasFonteCondensada, '|')));
    vRecebido := vRecebido + FpNFe.pag.Items.vPag;
  end;

  //Troco := Total - FpNFe.Total.ICMSTot.vNF;
  Troco := vTroco;
  vRecebido := vRecebido + vTroco;
    FPosPrinter.Buffer.Add('<c>' + PadSpace('Valor Recebido R$|' +
       FormatFloatBr(vRecebido), FPosPrinter.ColunasFonteCondensada, '|'));
  if Troco > 0 then
    FPosPrinter.Buffer.Add('<c>' + PadSpace('Troco R$|' +
       FormatFloatBr(Troco), FPosPrinter.ColunasFonteCondensada, '|'));

end;

para a unit: ACBrNFeDANFEFRDM alterei o seguinte procedimento

procedure TACBrNFeFRClass.CarregaPagamento;
var
  i: Integer;
  vRecebido: Currency;
begin
  with cdsPagamento do
  begin
    Close;
    CreateDataSet;
    vRecebido := 0.00;
    for i := 0 to NFe.Pag.Count - 1 do
    begin
      Append;
      with FNFe.Pag do
      begin
        FieldByName('tPag').AsString  := FormaPagamentoToDescricao( tPag );
        FieldByName('vPag').AsFloat   := vPag;
        vRecebido := vRecebido + FieldByName('vPag').AsFloat;
        // ver tpIntegra
        FieldByName('CNPJ').AsString  := FormatarCNPJ(CNPJ);
        FieldByName('tBand').AsString := BandeiraCartaoToDescStr( tBand );
        FieldByName('cAut').AsString  := cAut;
      end;
      Post;
    end;

    // acrescenta o troco
      Append;
      FieldByName('tPag').AsString  := 'Valor Recebido R$';
      FieldByName('vPag').AsFloat   := vTroco+vRecebido;
      Post;
      vRecebido := 0.00;

    if vTroco > 0 then
    begin
      Append;
      FieldByName('tPag').AsString  := 'Troco R$';
      FieldByName('vPag').AsFloat   := vTroco;
      Post;
    end;
  end;
end;


Se os amigos acharem por bem efetuar tal alteração de agora em diante

fico grato porque não terei que alterar sempre que atualizar o ACBr

em minha máquina:

ps: apenas imprime antes da linha Troco, a linha Valor Recebido.

grato por sua ateção.

 

  • Membros Pro
  • Solution
Postado

Olá pessoal,

 

lendo a nota técnica na nfe 4.1, gostaria de observar

que não percam tempo com essa sugestão, visto que,

a mesma ja é contemplada na versão citada.

 

grato por sua atenção.

  • Este tópico foi criado há 2854 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • 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.