pues creo que me habia hecho bolas con lo que intentaba hacer, pero ya lo resolvi y creo que de buena forma.
en total hago 3 querys, el primer query marca los hijos del primer padre como saldados si estos ya no tienen "saldo" pendiente
el segundo query verifica si la factura tiene hijos pendientes de saldar, dependiendo del resultado salda o no la factura
y el tercero hace lo mismo que el anterior pero con las entradas y las facturas.
Este es el codigo que finalmente utilize para el proceso...
Código Delphi
[-] qAccion.Close;
qAccion.SQL.Text:='Update FacturasDet Set Salidas = Salidas + '+
FloatToStr(edCantidad.FloatValue-CantTmp)+', Saldada = IF(Salidas = CantRec, True, False)' +
' Where FolioDet = '+qSalidasDet.FieldByName('FolioDet').AsString;
qAccion.Execute;
qAccion.Close;
qAccion.SQL.Text:='Update Facturas Set Saldada = If((Select Count(Saldada) As Total From '+
'FacturasDet Where Folio = '+FDFolio+' and Saldada = False)>0, False, True)';
qAccion.Execute;
qAccion.Close;
qAccion.SQL.Text:='Update Entradas Set Saldada = If((Select Count(Saldada) As Total From '+
'Facturas Where NoEntrada = '+QuotedStr(FDEntrada)+' and Saldada = False)>0, False, True)';
qAccion.Execute;
de igual forma, muchas gracias por su apoyo.