sábado, 31 de mayo de 2014

Creación del procedure de cálculo de intereses moratorios

Creador del Post: Javier Gómez Madrigal
Hora Inicio: 10:15 Hora Fin: 12:37
Horas Trabajadas: 2.5

Se creo el procedure de cálculo de intereses moratorios. No se presentó tanto problema como con el procedure anterior, pero consumió más tiempo por la longitud de este.

GO
CREATE PROCEDURE SP_CALCULO_INTERESES_MORATORIOS
(@TIM INT)
AS
BEGIN
BEGIN TRY
DECLARE @FECHA DATE
SET @FECHA = GETDATE();

DECLARE @MONTOS TABLE(ID INT, MONTO MONEY)
 
   DECLARE @PAGOS TABLE(ID INT, FPM DATE, PM MONEY, AP MONEY)
 
   INSERT INTO @PAGOS
   SELECT E.FK_Cuentas, E.FechaPagoMinimo, E.PagoMinimo, E.PagosAcumulados
   FROM TC_EstadoCuenta AS E
 
   BEGIN TRANSACTION
UPDATE TC_Cuentas
SET IntMoratorioAcumulado = (P.PM - P.AP)*@TIM/100
FROM @PAGOS AS P
WHERE (P.ID = TC_Cuentas.ID) AND (@FECHA > P.FPM) AND (P.PM > P.AP)

INSERT INTO @MONTOS
SELECT C.ID, C.IntMoratorioAcumulado
FROM TC_Cuentas AS C

INSERT INTO TC_MovIntMoratorio
SELECT M.ID, 1, @FECHA, M.MONTO, 'Calculo de intereses moratorios'
FROM @MONTOS AS M
COMMIT TRANSACTION
RETURN 1;
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0
ROLLBACK TRANSACTION;
RETURN @@ERROR*-1;
END CATCH;
END
GO

No hay comentarios:

Publicar un comentario