Problema ao subtotalizar um cupom com o ECFVirtualNaoFiscal com valor de desconto ou acréscimo. SOMENTE NA IMPRESSÃO (BUFFER).
O problema esta na unit ACBrECFVirtualPrinter.pas na procedure TACBrECFVirtualPrinterClass.SubtotalizaCupomVirtual
O Valor da variável SubTotal já esta vindo com o Desconto/Acrescimo, portanto é só subtraí-la para enviar para o buffer para a impressão correta do subtotal, e o Total não há necessidade de calculo.
Segue a correção da procedure abaixo, testei a impressão com e sem desconto e acréscimo.
procedure TACBrECFVirtualPrinterClass.SubtotalizaCupomVirtual(
DescontoAcrescimo: Double; MensagemRodape: AnsiString);
var
S: String;
begin
ZeraBuffer;
if DescontoAcrescimo <> 0 then
begin
if DescontoAcrescimo < 0 then
S := 'Desconto '
else
S := 'Acrescimo' ;
fsBuffer.Add( padS('SUBTOTAL R$|'+
FormatFloat('#,###,##0.00',SubTotal-DescontoAcrescimo), Colunas,'|') ) ;
fsBuffer.Add( padS(S+' R$|'+FormatFloat('#,###,##0.00',DescontoAcrescimo),
Colunas,'|') ) ;
end ;
fsBuffer.Add( fsCmdImpExpandidoUmaLinha +
padS( 'TOTAL R$|'+FormatFloat('#,###,##0.00',
SubTotal),
ColunasExpandido ,'|') +
fsCmdImpFimExpandido ) ;
ImprimeBuffer ;
end;