procedure TfPdv.ACBrECFVirtualSAT1QuandoCancelarCupom(
const NumCOOCancelar: Integer; CupomVirtual: TACBrECFVirtualClassCupom;
var PermiteCancelamento: Boolean);
var
vItemCupom : TACBrECFVirtualClassItemCupom;
vsAliq : string;
viSeq : integer;
Aliq : TACBrECFAliquota;
FormaPag : TACBrECFFormaPagamento;
begin
inherited;
with MontaSQL(dmPDv.dbPDV,'select * from itensvendaecf where gidecf="'+GidECF+'" and cancelado=0') do
try
if NumCooCancelar = stoi(FieldbyName('num_coo').AsString) then
exit;
CupomVirtual.Clear;
viSeq := 0;
while not eof do
begin
inc(viSeq);
vsAliq := copy(fieldByName('totalizador').AsString,1,2);
if Pos(Copy(vsAliq,1,1),'FIN') > 0 then
vsAliq := Copy(vsAliq,1,1) + '1';
Aliq := ACBrECF1.AchaICMSIndice(vsAliq);
CupomVirtual.VendeItem(FieldByName('codbarras').AsString,
FieldByName('descricao').AsString,
FieldByName('quantidade').AsFloat,
FieldbyName('unitario').AsFloat,
FieldbyName('desconto').AsFloat * (-1),
Aliq,
fieldbyName('unidade').AsString,
0);
next;
end;
finally
close;
free;
end;
// Pagamentos
with MontaSQL(dmPDV.dbPDV,'select pagamento_ecf.valor,formapagamento.codigoecf '+
'from pagamento_ecf inner join formapagamento on (pagamento_ecf.forma_pagamento = formapagamento.codigo) '+
'where pagamento_ecf.gid_venda = "' + GidECF + '"') do
try
while not eof do
begin
FormaPag := ACBrECF1.AchaFPGIndice(FieldByName('codigoecf').AsString);
CupomVirtual.EfetuaPagamento(FieldbyName('valor').AsFloat,'',stoi(Formapag.Indice));
next;
end;
finally
close;
free;
end;
end;
Ta na mão