Buen día estimados, estoy queriendo realizar un control dentro del “SBO_SP_TransactionNotification” que no permita cambiar la moneda de una cuenta contable (en el plan de cuentas) si esta tiene saldo.
El desarrollo que hice hasta el momento es el siguiente:
--Variables Control de cambio de moneda en cuenta contable con saldo
MonedaCtaAhora NVARCHAR(5);
MonedaCtaAntes NVARCHAR(5);
BanderaCta INTEGER;
----------------------------------------------------
---------------------------------------------------------------------------------------
--Control de cambio de moneda en cuenta contable con saldo-- INICIO
---------------------------------------------------------------------------------------
--si se esta actualizando una cuenta contable
IF :object_type = '1' AND :transaction_type = ('U') THEN
--consulto el valor de la moneda en la cuenta contable
SELECT( SELECT "ActCurr" FROM OACT WHERE "AcctCode" = :list_of_cols_val_tab_del) INTO MonedaCtaAhora FROM DUMMY;
--consulto la ultima actualizacion de la cuenta contable y guardo la moneda con la que trabajaba
SELECT( SELECT TOP 1 ("ActCurr" +1) FROM AACT WHERE "AcctCode" = :list_of_cols_val_tab_del ORDER BY "UpdateDate" ASC) INTO MonedaCtaAntes FROM DUMMY;
--me fijo si hay registros en la tabla JDT1 con la cuenta contable (si tiene mvimientos)
SELECT( SELECT 1 FROM JDT1 WHERE "Account" = :list_of_cols_val_tab_del) INTO BanderaCta FROM DUMMY;
--si la moneda cambio mostrar mensaje
IF (MonedaCtaAhora<>MonedaCtaAntes AND BanderaCta=1) THEN
error := 22;
error_message := 'No es posible cambiar la moneda a una cuenta contable con saldo';
select :error, :error_message FROM dummy;
Return;
END IF;
END IF;
---------------------------------------------------------------------------------------
--Control de cambio de moneda en cuenta contable con saldo-- FIN
---------------------------------------------------------------------------------------
Al querer realizar una prueba para que me salte el mensaje, el sistema me muestra lo siguiente: