Olá a todos.
Estou anexando nesse post 3 arquivos alterados para atender a seguinte necessidade:
1) Estamos utilizando o componente ACBrECFNaoFiscal (ACBrECFVirtualPrinter) para fazer o inicio de vendas, onde temos casos de itens arredondam e outros truncam;
Ex: Combustível trunca e Demais produtos arredonda.
No ECFVirtual por padrão arredondava sempre. Para resolver esse caso fiz a seguinte alteração no método vendaitem:
Procedure VendeItem( Codigo, Descricao : String; AliquotaECF : String; Qtd : Double ; ValorUnitario : Double; ValorDescontoAcrescimo : Double = 0; Unidade : String = ''; TipoDescontoAcrescimo : String = '%'; DescontoAcrescimo : String = 'D'; CodDepartamento: Integer = -1 ) ; override ;
Se as property ArredondaPorQtd e ArredondaItemMFD estiverem igual a False. O valor total será truncado (Trunca) do contrário irá arredondar (RoundABNT);
Essa alteração foi feito em ambos fontes: ACBrECFNaoFiscal e ACBrECFVirtualPrinter.
Dentro do ACBrUtil, criei a function Trunca.
Em todos nossos testes resolveu e atendeu corretamente.
Espero não ter feito nada de incorreto.
Me coloco a disposição para quaisquer esclarecimento.
Muito obrigado pela atenção e ajuda.
ACBrECFNaoFiscal.pas
ACBrECFVirtualPrinter.pas
ACBrUtil.pas