while not QFrasIva.Eof do
begin
dTotalIva := QFrasIva.FieldByName('IMPORTE_IVA').AsFloat +
QFrasIva.FieldByName('IMPORTE_RECARGO').AsFloat;
if QFrasIva.FieldByName('BASE_IMPONIBLE').AsFloat <> 0 then begin
if dTotalIva = 0 then begin
if QFrasIva.FieldByName('MOTIVO_EXENCION').AsString <> '' then begin
sMotivoExencion := QFrasIva.FieldByName('MOTIVO_EXENCION').AsString;
sCalificaOperacion := '';
end else begin
sMotivoExencion := '';
sCalificaOperacion := 'N2';
end;
actual.exenta[index].tipoExenta := sMotivoExencion;
actual.exenta[index].claveRegimen := QRegSif.FieldByName('AEAT_CLAVE_REGIMEN').AsString;
actual.exenta[index].calificacionOperacion := sCalificaOperacion;
actual.exenta[index].baseImp := value(QFrasIva.FieldByName('BASE_IMPONIBLE').AsString);
Inc(actual.nexentas);
end
else if dTotalIva <> 0 then begin
actual.iva[index].baseImp := value(QFrasIva.FieldByName('BASE_IMPONIBLE').AsString);
actual.iva[index].iva := value(QFrasIva.FieldByName('PORCENTAJE_IVA').AsString);
actual.iva[index].impiva := value(QFrasIva.FieldByName('IMPORTE_IVA').AsString);
if QFrasIva.FieldByName('IMPORTE_RECARGO').AsFloat <> 0 then
begin
actual.iva[index].req := value(QFrasIva.FieldByName('PORCENTAJE_RECARGO').AsString);
actual.iva[index].impreq := value(QFrasIva.FieldByName('IMPORTE_RECARGO').AsString);
end
else
begin
actual.iva[index].req := value('0');
actual.iva[index].impreq := value('0');
end;
cuota := cuota + dTotalIva;
Inc(actual.nivas);
end;
end;
Inc(index);
QFrasIva.Next;
end;