Ir para conteúdo
  • Cadastre-se

dev botao

criar uma tag no componente ACBrNFeDANFEFR para adicionar a diferenca do troco na formar de pagamento


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

Recommended Posts

boa tarde Leandro e seguinte eu li: não sei vc mexe com cliente

e cliente acha que tem que ser do jeito deles

ai tive que mudar em ACBrNFeDANFEFR a tive que fazer isso

       if tPag in [fpDinheiro, fpCheque] then
           if vTroco > 1 then begin
             FieldByName('vPag').AsFloat   := vPag+vTroco;
           end else
             FieldByName('vPag').AsFloat   := vPag
        else
             FieldByName('vPag').AsFloat   := vPag;

 

e que eles tao acustumado com ecf ai acha que tem que ser igual cupom fiscal.
 

ai pensei se poderia criar uma propriedade pra somar o troco junto com forma de pagamento dinheiro ou cheque.

 

Editado por Ricardo De Luca
Link para o comentário
Compartilhar em outros sites

boa tarde Henrique fiz esta alteração criei uma propriedade SomaTrocoFormaPgto em ACBrNFeDANFEClass como padrão esta como falsa e alterei ACBrNFeDANFEFRDM da uma analizada se e possível colocar esta propriedade ou fazer diferente.

procedure TACBrNFeFRClass.CarregaPagamento;
var
  i: Integer;
begin
  with cdsPagamento do
  begin
    Close;
    CreateDataSet;
    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;
 
        if SomaTrocoFormaPgto then begin
           if tPag in [fpDinheiro, fpCheque] then
              if vTroco > 1 then
                  FieldByName('vPag').AsFloat   := vPag+vTroco;
        end;
 
        // ver tpIntegra
        FieldByName('CNPJ').AsString  := FormatarCNPJ(CNPJ);
        FieldByName('tBand').AsString := BandeiraCartaoToDescStr( tBand );
        FieldByName('cAut').AsString  := cAut;
      end;
      Post;
    end;
 
    // acrescenta o troco
    if vTroco > 0 then
    begin
      Append;
      FieldByName('tPag').AsString  := 'Troco R$';
      FieldByName('vPag').AsFloat   := vTroco;
    end;
  end;
end;

alterei 3 arquivos esta em anexo:

 

 

ACBrNFeDANFEClass.pas

ACBrNFeDANFEFR.pas

ACBrNFeDANFEFRDM.pas

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

  • Moderadores

@Ricardo De Luca, eu não aplicarei  esta regra no componente. Pois este tipo de tratamento deve ficar na aplicação do usuário. Por que o componente não sabe,  onde somar o troco ( ex : dinheiro ou Cheque ).

Segue uma previa q teremos.

Fast.rar

Equipe ACBr Henrique Leonardo
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Tecnólogo em processamento de dados

E-mail [email protected] - Skype : hleorj

Link para o comentário
Compartilhar em outros sites

boa tarde Henrique criei duas propriedade ImprimeFormaPgtoXML e ListaFormaPgto:

ImprimeFormaPgtoXML por padrão e verdadeira vai imprimir a forma de pagamento que tiver no arquivo XML ser for falsa vai imprimir a forma de pagamento quer  for passada para a propriedade ListaFormaPgto. segue os arquivos que alterei por gentileza analisa.

 

e obrigado pela atenção.

ACBrNFeDANFEClass.pas

ACBrNFeDANFEFR.pas

ACBrNFeDANFEFRDM.pas

Link para o comentário
Compartilhar em outros sites

ai não vai afetar a regra como esta so vai acrescentar uma opção a mais e questão de tratamento e feito na aplicação o problema a impressão na danfe.

procedure TACBrNFeFRClass.CarregaPagamento;
var
  i: Integer;
begin
  with cdsPagamento do
  begin
    Close;
    CreateDataSet;
    if ImprimeFormaPgtoXML then begin
       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;
 
             // ver tpIntegra
             FieldByName('CNPJ').AsString  := FormatarCNPJ(CNPJ);
             FieldByName('tBand').AsString := BandeiraCartaoToDescStr( tBand );
             FieldByName('cAut').AsString  := cAut;
           end;
           Post;
       end;
    end else begin
        for i := 1 to 15 do begin
            if FDANFEClassOwner.ListaFormaPgto.FormaPgto.VAlor>0 then begin
               Append;
               FieldByName('tPag').AsString  := FDANFEClassOwner.ListaFormaPgto.FormaPgto.Descricao;
               FieldByName('vPag').AsFloat   := FDANFEClassOwner.ListaFormaPgto.FormaPgto.VAlor;
               post;
            end;
        end;
    end;
 
    // acrescenta o troco
    if vTroco > 0 then
    begin
      Append;
      FieldByName('tPag').AsString  := 'Troco R$';
      FieldByName('vPag').AsFloat   := vTroco;
    end;
  end;
end;
 
  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Moderadores

@Ricardo De Luca

Suas sugestões são boas , mas não devo aplica-las , por enquanto. Pois tenho a meta de conseguir um padrão onde o xml deva controlar a danfe. com a exceção dos controles de visual.  Aplique na sua aplicação onde terá controle total do troco.

Equipe ACBr Henrique Leonardo
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Tecnólogo em processamento de dados

E-mail [email protected] - Skype : hleorj

Link para o comentário
Compartilhar em outros sites

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