CREATE PROCEDURE [dbo].[CASP_InsertarMovimiento]
-- Add the parameters for the stored procedure here
@Numero_Cuenta nvarchar(50),
@TipoMovimiento nvarchar(100),
@Fecha date,
@Monto money,
@Descripcion nvarchar(200)
AS
BEGIN
-- SET NOCOUNT ON added to
prevent extra result sets from
-- interfering with SELECT
statements.
SET NOCOUNT ON;
-- Insert statements for
procedure here
BEGIN TRY
-- Se verifica que los parametros no vengan nulos
IF @Numero_Cuenta = NULL
BEGIN
return -100001
END
IF @TipoMovimiento = NULL
BEGIN
return -100002
END
IF @Fecha = NULL
BEGIN
return -100003
END
IF @Monto = NULL
BEGIN
return -100004
END
IF @Descripcion = NULL
BEGIN
return -100005
END
--Inicio de
cambios en tablas correspondientes
declare @tipo nvarchar(1);
set @tipo = (select TM.TipoDC from
TipoMovimiento TM where TM.Nombre =
@TipoMovimiento)
IF (@tipo = 'C')
BEGIN
Update CuentaAhorro set Saldo = Saldo + @Monto
Where Numero_Cuenta = @Numero_Cuenta
END
ELSE
BEGIN
if((select CA.Saldo from CuentaAhorro CA where CA.Numero_Cuenta = @Numero_Cuenta)
< @Monto)
BEGIN
Update CuentaAhorro set Saldo = 0
Where Numero_Cuenta = @Numero_Cuenta
END
ELSE
BEGIN
Update CuentaAhorro set Saldo = Saldo - @Monto
Where Numero_Cuenta = @Numero_Cuenta
END
END
--Actualizacion
del estadoCuenta
declare @nuevoSaldo money = (Select CA.Saldo from
CuentaAhorro CA
where CA.Numero_Cuenta = @Numero_Cuenta)
Update EstadoCuenta set Saldo_Final = @nuevoSaldo
Where Numero_Cuenta = @Numero_Cuenta and Fecha_Inicio < @fecha and
Fecha_Final > @Fecha
--Insercion del
nuevo movimiento
INSERT dbo.Movimiento
SELECT CA.id, TM.id, @Numero_Cuenta, @TipoMovimiento,
@Fecha, @Monto, @Descripcion
FROM CuentaAhorro CA, TipoMovimiento TM
WHERE TM.Nombre = @TipoMovimiento
AND CA.Numero_Cuenta = @Numero_Cuenta
END TRY
BEGIN CATCH
return @@ERROR * -1
END CATCH
ENDAdemas este dia inicie muy muy muy poco del trigger dado que me puse a trabajar con cosas de otros cursos, acontinuacion el poco codigo que realice del trigger:
ALTER TRIGGER [dbo].[Estados] ON [dbo].[CuentaAhorro]
AFTER INSERT
AS
BEGIN
-- SET NOCOUNT ON added to
prevent extra result sets from
-- interfering with SELECT
statements.
SET NOCOUNT ON;
declare @idCuenta int;
Select @idCuenta = NewCA.id from inserted NewCA;
Este dia inverti en horas lo siguiente: 1,9 horas
No hay comentarios:
Publicar un comentario