No he tenido timpo todavía de examinar a fondo el código, aunque a simple vista he detectado un pequeñin "error":
Código:
// Localizamos los pagos y lo actualizamos
if DataModule2.Pt_commitR.Active then <------ falta código o sobra?
else
DataModule2.Pt_commitR.Active := True; <------ siempre se ejecuta
try
begin <------ a quién pertenece realmente?
if monto_credito.Value > 0 then
begin
credito.Insert;
credito.FieldByName('key_cliente').AsInteger := cliente.fieldbyname('key_cliente').AsInteger;
credito.FieldByName('Emision').AsDateTime := DataModule2.FechaHOY.Value;
credito.FieldByName('vence').AsDateTime := DataModule2.FechaHOY.Value + cliente.fieldbyname('plazo_credito').Value;
credito.FieldByName('monto').AsCurrency := monto_credito.Value;
credito.FieldByName('abono').AsCurrency := 0;
credito.FieldByName('tp_cxc').AsString := 'F';
credito.FieldByName('letra').AsInteger := 1;
credito.FieldByName('key_relacion').AsInteger := cabeza.fieldByname('Key_cab_fac').AsInteger;
credito.Post;
end;
// Barremos e insertamos en formpago
Quizás me he precipitado sin observarlo en detalle y esté bien