cancel
Showing results for 
Search instead for 
Did you mean: 

Obtener el valor "Total" de ventana medios de pago en una TN

Former Member
0 Kudos

Buen día,

En nuestra empresa requerimos restringir los pagos a proveedores cuando el monto a pagar es mayor al saldo en la cuenta elegida, esto lo estamos haciendo dentro del Transaction Notification, el detalle es que no se como obtener el valor del campo "Total", este se encuentra en

Gestión de Bancos

  Pagos Efectuados

    Pagos Efectuados (Elegir el proveedor al que se le realizará el pago, seleccionar lo que se va a pagar, ir a Medios de Pago, Elegir el Banco y regresar a Medios de pago, presionar contro-B y ésta acción coloca el monto a pagar en el campo "Total", este dato es el que requiero cachar u obtener)

Este es el código

IF @object_type = '46' and @transaction_type In ('A', 'U')

BEGIN

  IF Not Exists

    (SELECT CurrTotal FROM OACT T0

   INNER JOIN OVPM T1 ON T0.AcctCode = T1.CashAcct

    WHERE T0.CurrTotal >  0 AND T1.DocTotal = "ESTE ES EL VALOR QUE NECESITO OBTENER DE LA PANTALLA"

  )

  BEGIN

    SET @error = 1

    SET @error_message = 'El Saldo en Bancos es insuficiente  '

  END

END

¿Alguien es tan amable de orientarme?

Gracias!

Accepted Solutions (0)

Answers (1)

Answers (1)

felipe_loyolarodriguez
Active Contributor
0 Kudos

Buenas tardes.

Estas haciendo mal el TN.

Debes usar la variable @list_of_cols_val_tab_del para recuperar el registro de la base de datos que está siendo modificado.

Deberías probar esto.

IF @object_type = '46' and @transaction_type In ('A', 'U')

BEGIN

  IF Not Exists

    (SELECT CurrTotal FROM OACT T0

   INNER JOIN OVPM T1 ON T0.AcctCode = T1.CashAcct

    WHERE T0.CurrTotal > 0 AND T1.DocEntry=@list_of_cols_val_tab_del AND T1.DocTotal......etc

  )

  BEGIN

    SET @error = 1

    SET @error_message = 'El Saldo en Bancos es insuficiente  '

  END

END

Saludos

FLR

Former Member
0 Kudos

Gracias Felipe,

Lo modifiqué porque no todos los documentos traen algo en el CashAcct , así que consideré también a los otros campos que tienen que ver con la cuenta, pero no me bloquea el pago cuando el saldo en banco es igual o menor que 0 o si el valor a pagar es mayor al saldo en Banco, el código quedó así:

-- Rechazar pago a proveedor si la cuenta de Banco elegida no tiene fondos suficientes

IF @object_type = '46' and @transaction_type In ('A', 'U')

BEGIN

  IF Not Exists

    (SELECT T0.CurrTotal FROM OACT T0

     INNER JOIN OVPM T1 ON

     (T0.AcctCode = T1.CashAcct  OR

      T0.AcctCode = T1.CheckAcct OR

      T0.AcctCode = T1.TrsfrAcct OR

      T0.AcctCode = T1.WtAccount

     )

    WHERE (T0.CurrTotal > 0 AND T1.DocTotal<T0.CurrTotal)

   AND T1.DocEntry=@list_of_cols_val_tab_del

   )

  BEGIN

  SET @error = 1

  SET @error_message = 'El Saldo en Bancos es insuficiente  '

  END

END

-- Termina Rechazar pago a proveedor