Crear un procedimiento que permita realizar la transferencia de un monto en nuevos soles de una cuenta de ahorros origen a otra cuenta de ahorros destino ambas en soles.
Los parámetros del procedimiento serán el monto a transferir, el número de la cuenta de ahorros origen y el número de la cuenta de ahorros destino.
Considerar las siguientes especificaciones:
• El monto de transferencia en nuevos soles no deberá ser mayor al saldo de la cuenta.
• Por las operaciones de transferencia se cobra una comisión de S/.5 para montos menores a S/.1000 y del 0.5% del monto de transferencia a partir de S/. 1000, el cual se cumula en la cuenta “M0002” con sus movimientos de depósito respectivos para transferencias entre cuentas de diferentes clientes.
• Si la cuenta origen y la cuenta destino pertenecen al mismo cliente no se cobra ninguna comisión.
• Se guarda en la cuenta “ITF02” la aplicación del impuesto a las transacciones financieras correspondiente al 0.8 % del monto transferido en soles.
CODIGO
CREATE PROCEDURE TRANSFERENCIA_MONTO @MONTO MONEY, @CUENTA_O VARCHAR(5), @CUENTA_D VARCHAR(5)
AS
BEGIN
TRANSACTION
DECLARE @SALDO MONEY
SELECT @SALDO=C.S_SALDO FROM CUENTA C WHERE C.C_CUENTA=@CUENTA_O
IF(@MONTO>@SALDO)
BEGIN
RAISERROR ('EL MONTO SUPERA SU SALDO',16,1)
ROLLBACK
RETURN
END
IF(@CUENTA_O!=@CUENTA_D)
BEGIN
IF(@MONTO<1000)
BEGIN
UPDATE CUENTA
SET S_SALDO-=5
WHERE C_CUENTA=@CUENTA_O
UPDATE CUENTA
SET S_MONTO+=5
WHERE CUENTA.C_CUENTA='M0002'
END
IF(@MONTO>1000)
BEGIN
UPDATE CUENTA
SET S_SALDO-=05*@MONTO
WHERE C_CUENTA=@CUENTA_O
UPDATE CUENTA
SET S_MONTO+=0.005*@MONTO
WHERE CUENTA.C_CUENTA='M0002'
END
END
UPDATE CUENTA
SET S_MONTO+=@MONTO*0.008
WHERE CUENTA.C_CUENTA='ITF02'
UPDATE CUENTA
SET S_MONTO-=@MONTO*0.008
WHERE CUENTA.C_CUENTA=@CUENTA_O
COMMIT
No hay comentarios:
Publicar un comentario