viernes, 6 de junio de 2014
Migracion finalizada
Creador del Post: Edward Ovares Villegas
Hora Inicio: 19:00 Hora Fin: 03:03
Horas Trabajadas: 8
Se logro terminar la migracion, se mostraba un error que hacia que se hiciera un rollback de la transaction. Luego se encontro el error, pues se cambio el nombre de una tabla y por esta razon se presentaba ese error, luego de que esto se soluciono se presento un error que solo algunas se estaban migrando. Despues de revisar el codigo minusiosamente se logro encontrar el error al llamar a una tabla temporal incorrecta. Despues de este par de inconvenientes se logro migrar correctamente todas las tablas.
Moralejas y resumen de trabajo
Creador del Post: Javier Gómez Madrigal
Hora Inicio: 00:00 Hora Fin: 00:30
Horas Trabajadas: 0.5
La principal moraleja que este proyecto nos dejo fue no dejar las cosas para tan tarde, trabajar con tiempo para lograr terminar todo lo que se nos pide en los proyectos.
horas trabajadas en total: 46.5
Hora Inicio: 00:00 Hora Fin: 00:30
Horas Trabajadas: 0.5
La principal moraleja que este proyecto nos dejo fue no dejar las cosas para tan tarde, trabajar con tiempo para lograr terminar todo lo que se nos pide en los proyectos.
horas trabajadas en total: 46.5
jueves, 5 de junio de 2014
Creación del procedure calculo de estados de cuenta y conclusión del procedure aplica movimientos
Creador del Post: Javier Gómez Madrigal
Hora Inicio: 16:00 Hora Fin: 23:45
Horas Trabajadas: 7.5
Se trabajó en el procedure de calculo de estados de cuenta, se dejó inconcluso. Se presentaron severas dudas a la hora de analizar la consulta y se llego a una resolución clara del problema. Luego de estos problemas se decidió retomar el procedure del día de ayer, el cual se logró terminar luego de arduas horas de trabajo.
GO
CREATE PROCEDURE SP_ESTADOS_CUENTA
(@COM INT)
AS
BEGIN
BEGIN TRY
DECLARE @SALDOS TABLE(ID INT, SALDO MONEY, MORA MONEY, ACUMULADOS MONEY, TARJETA INT)
INSERT INTO @SALDOS
SELECT E.ID, E.SaldoActual, E.IntMoratorioAcumulado, E.IntNormalAcumulado, T.ID
FROM TC_Cuentas AS E
INNER JOIN TC_Tarjetas AS T ON T.FK_Cuentas = E.ID
DECLARE @SALDOCOM TABLE(ID INT, SALDO MONEY)
INSERT INTO @SALDOCOM
SELECT E.ID, E.SaldoActual
FROM TC_Cuentas AS E
UPDATE @SALDOCOM
SET SALDO = SALDO * @COM
BEGIN TRANSACTION
INSERT INTO TC_MovimientoSaldo
SELECT S.ID, 1, S.TARJETA, GETDATE(), C.SALDO, 'Comisión Administración'
FROM @SALDOS AS S
INNER JOIN @SALDOCOM AS C ON C.ID = S.ID
INSERT INTO TC_MovIntMoratorio
SELECT S.ID, 1, GETDATE(), S.MORA, 'Intereses moratorios'
FROM @SALDOS AS S
UPDATE TC_EstadoCuenta
SET SaldoAlCorte = S.SALDO
FROM @SALDOS AS S
WHERE (TC_EstadoCuenta.FK_Cuentas = S.ID)
INSERT INTO TC_MovIntNormal
SELECT S.ID, 1, GETDATE(), S.ACUMULADOS, 'Intereses Acumulados'
FROM @SALDOS AS S
INSERT INTO TC_MovIntNormal
SELECT S.ID, 2, GETDATE(), S.ACUMULADOS, 'Interes'
FROM @SALDOS AS S
UPDATE TC_Cuentas
SET IntNormalAcumulado = 0
INSERT INTO TC_MovIntNormal
SELECT S.ID, 2, GETDATE(), E.PagosAcumulados, 'Intereses acumulados de estado de cuenta anterior'
FROM @SALDOS AS S
INNER JOIN TC_EstadoCuenta AS E ON E.FK_Cuentas = S.ID
WHERE (E.PagosAcumulados > E.PagoContado)
COMMIT TRANSACTION
RETURN 1;
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0
ROLLBACK TRANSACTION;
RETURN @@ERROR*-1;
END CATCH;
END
GO
Hora Inicio: 16:00 Hora Fin: 23:45
Horas Trabajadas: 7.5
Se trabajó en el procedure de calculo de estados de cuenta, se dejó inconcluso. Se presentaron severas dudas a la hora de analizar la consulta y se llego a una resolución clara del problema. Luego de estos problemas se decidió retomar el procedure del día de ayer, el cual se logró terminar luego de arduas horas de trabajo.
GO
CREATE PROCEDURE SP_ESTADOS_CUENTA
(@COM INT)
AS
BEGIN
BEGIN TRY
DECLARE @SALDOS TABLE(ID INT, SALDO MONEY, MORA MONEY, ACUMULADOS MONEY, TARJETA INT)
INSERT INTO @SALDOS
SELECT E.ID, E.SaldoActual, E.IntMoratorioAcumulado, E.IntNormalAcumulado, T.ID
FROM TC_Cuentas AS E
INNER JOIN TC_Tarjetas AS T ON T.FK_Cuentas = E.ID
DECLARE @SALDOCOM TABLE(ID INT, SALDO MONEY)
INSERT INTO @SALDOCOM
SELECT E.ID, E.SaldoActual
FROM TC_Cuentas AS E
UPDATE @SALDOCOM
SET SALDO = SALDO * @COM
BEGIN TRANSACTION
INSERT INTO TC_MovimientoSaldo
SELECT S.ID, 1, S.TARJETA, GETDATE(), C.SALDO, 'Comisión Administración'
FROM @SALDOS AS S
INNER JOIN @SALDOCOM AS C ON C.ID = S.ID
INSERT INTO TC_MovIntMoratorio
SELECT S.ID, 1, GETDATE(), S.MORA, 'Intereses moratorios'
FROM @SALDOS AS S
UPDATE TC_EstadoCuenta
SET SaldoAlCorte = S.SALDO
FROM @SALDOS AS S
WHERE (TC_EstadoCuenta.FK_Cuentas = S.ID)
INSERT INTO TC_MovIntNormal
SELECT S.ID, 1, GETDATE(), S.ACUMULADOS, 'Intereses Acumulados'
FROM @SALDOS AS S
INSERT INTO TC_MovIntNormal
SELECT S.ID, 2, GETDATE(), S.ACUMULADOS, 'Interes'
FROM @SALDOS AS S
UPDATE TC_Cuentas
SET IntNormalAcumulado = 0
INSERT INTO TC_MovIntNormal
SELECT S.ID, 2, GETDATE(), E.PagosAcumulados, 'Intereses acumulados de estado de cuenta anterior'
FROM @SALDOS AS S
INNER JOIN TC_EstadoCuenta AS E ON E.FK_Cuentas = S.ID
WHERE (E.PagosAcumulados > E.PagoContado)
COMMIT TRANSACTION
RETURN 1;
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0
ROLLBACK TRANSACTION;
RETURN @@ERROR*-1;
END CATCH;
END
GO
miércoles, 4 de junio de 2014
Creación del procedure aplica movimientos
Creador del Post: Javier Gómez Madrigal
Hora Inicio: 14:00 Hora Fin: 17:42
Horas Trabajadas: 3.5
Se trabajó en el procedure de aplica movimientos. No se logró terminar, se dejó inconcluso y se decidió terminar el día de mañana. Entender el problema se llevo bastante tiempo y cuando se procedió a programar surgieron varias dudas al respecto.
Hora Inicio: 14:00 Hora Fin: 17:42
Horas Trabajadas: 3.5
Se trabajó en el procedure de aplica movimientos. No se logró terminar, se dejó inconcluso y se decidió terminar el día de mañana. Entender el problema se llevo bastante tiempo y cuando se procedió a programar surgieron varias dudas al respecto.
martes, 3 de junio de 2014
Creación de múltiples procedures
Creador del Post: Javier Gómez Madrigal
Hora Inicio: 14:00 Hora Fin: 23:35
Horas Trabajadas: 9
A falta de tiempo y presionados, decidimos que debíamos avanzar el día de hoy lo más que podíamos, por lo tanto nos pusimos a trabajar desde la tarde hasta la noche, logrando un día fructífero. Descansando tan solo 10 minutos cada hora, se lograron sacar 6 procedures.
GO
CREATE PROCEDURE SP_ACUMULAR_INTERESES_MORATORIOS
AS
BEGIN
BEGIN TRY
DECLARE @INTERESES TABLE(ID INT, IM MONEY)
INSERT INTO @INTERESES
SELECT C.ID, C.IntMoratorioAcumulado
FROM TC_Cuentas AS C
BEGIN TRANSACTION
UPDATE TC_Cuentas
SET SaldoActual = SaldoActual + IntMoratorioAcumulado
INSERT INTO TC_MovIntMoratorio
SELECT I.ID, 2, GETDATE(), I.IM, 'Crédito de intereses moratorios'
FROM @INTERESES AS I
UPDATE TC_Cuentas
SET IntMoratorioAcumulado = 0
COMMIT TRANSACTION
RETURN 1;
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0
ROLLBACK TRANSACTION;
RETURN @@ERROR*-1;
END CATCH;
END
GO
-----------------------------------------------------------------------------------------------------------------------
GO
CREATE PROCEDURE SP_APLICAR_COMISION_ADMI
AS
BEGIN
BEGIN TRY
DECLARE @COMISION TABLE(ID INT, FK_CUENTA INT, COMISION MONEY, TARJETA INT)
INSERT INTO @COMISION
SELECT C.FK_Clase, C.ID, M.ComisionAdm, T.ID
FROM TC_Cuentas AS C
INNER JOIN TC_Clase AS M ON M.ID = C.FK_Clase
INNER JOIN TC_TarjetaS AS T ON T.FK_Cuentas = C.ID
DECLARE @MONTOS TABLE(ID INT, MONTO MONEY)
BEGIN TRANSACTION
UPDATE TC_Cuentas
SET SaldoActual = SaldoActual + (SaldoActual * C.COMISION)
FROM @COMISION AS C
INSERT INTO @MONTOS
SELECT E.ID, E.SaldoActual
FROM TC_Cuentas AS E
INSERT INTO TC_MovimientoSaldo
SELECT C.FK_CUENTA, 3, C.TARJETA, GETDATE(), M.MONTO, 'Movimiento por comisión administrativa'
FROM @COMISION AS C
INNER JOIN @MONTOS AS M ON M.ID = C.FK_CUENTA
COMMIT TRANSACTION
RETURN 1;
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0
ROLLBACK TRANSACTION;
RETURN @@ERROR*-1;
END CATCH;
END
GO
-----------------------------------------------------------------------------------------------------------------------
GO
CREATE PROCEDURE SP_CALCULAR_PAGO_MINIMO
(@PPM MONEY)
AS
BEGIN
BEGIN TRY
DECLARE @DATOS TABLE(ID INT, PC MONEY)
INSERT INTO @DATOS
SELECT E.ID, E.PagoContado
FROM TC_EstadoCuenta AS E
BEGIN TRANSACTION
UPDATE TC_EstadoCuenta
SET PagoMinimo = D.PC*@PPM/100
FROM @DATOS AS D
WHERE (TC_EstadoCuenta.ID = D.ID)
COMMIT TRANSACTION
RETURN 1;
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0
ROLLBACK TRANSACTION;
RETURN @@ERROR*-1;
END CATCH;
END
GO
-----------------------------------------------------------------------------------------------------------------------
GO
CREATE PROCEDURE SP_CALCULO_FECHAS_PAGO
(@CPM INT,
@CPC INT)
AS
BEGIN
BEGIN TRY
BEGIN TRANSACTION
UPDATE TC_EstadoCuenta
SET FechaPagoMinimo = FechaCorte+@CPM, FechaPagoContado = FechaCorte+@CPC;
COMMIT TRANSACTION
RETURN 1;
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0
ROLLBACK TRANSACTION;
RETURN @@ERROR*-1;
END CATCH;
END
GO
-----------------------------------------------------------------------------------------------------------------------
GO
CREATE PROCEDURE SP_CONSULTAR_ESTADOS_CUENTA
(@ID INT)
AS
BEGIN
BEGIN TRY
SELECT TOP 6 E.SaldoAlCorte, E.FechaCorte, E.PagoContado, E.PagosAcumulados, E.RetirosAcumulados
FROM TC_EstadoCuenta AS E
WHERE (E.FK_Cuentas = @ID)
ORDER BY FechaCorte ASC
RETURN 1;
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0
ROLLBACK TRANSACTION;
RETURN @@ERROR*-1;
END CATCH;
END
GO
-----------------------------------------------------------------------------------------------------------------------
GO
CREATE PROCEDURE SP_CREAR_CLIENTE
(@NOMBRE VARCHAR(50),
@NUMEROIDENTIFICACION VARCHAR(45),
@USUARIO VARCHAR(50),
@CLAVE VARCHAR(50))
AS
BEGIN
BEGIN TRY
INSERT INTO TC_Cliente
VALUES (@NOMBRE, @NUMEROIDENTIFICACION, @USUARIO, @CLAVE)
RETURN 1;
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0
ROLLBACK TRANSACTION;
RETURN @@ERROR*-1;
END CATCH;
END
GO
-----------------------------------------------------------------------------------------------------------------------
Hora Inicio: 14:00 Hora Fin: 23:35
Horas Trabajadas: 9
A falta de tiempo y presionados, decidimos que debíamos avanzar el día de hoy lo más que podíamos, por lo tanto nos pusimos a trabajar desde la tarde hasta la noche, logrando un día fructífero. Descansando tan solo 10 minutos cada hora, se lograron sacar 6 procedures.
GO
CREATE PROCEDURE SP_ACUMULAR_INTERESES_MORATORIOS
AS
BEGIN
BEGIN TRY
DECLARE @INTERESES TABLE(ID INT, IM MONEY)
INSERT INTO @INTERESES
SELECT C.ID, C.IntMoratorioAcumulado
FROM TC_Cuentas AS C
BEGIN TRANSACTION
UPDATE TC_Cuentas
SET SaldoActual = SaldoActual + IntMoratorioAcumulado
INSERT INTO TC_MovIntMoratorio
SELECT I.ID, 2, GETDATE(), I.IM, 'Crédito de intereses moratorios'
FROM @INTERESES AS I
UPDATE TC_Cuentas
SET IntMoratorioAcumulado = 0
COMMIT TRANSACTION
RETURN 1;
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0
ROLLBACK TRANSACTION;
RETURN @@ERROR*-1;
END CATCH;
END
GO
-----------------------------------------------------------------------------------------------------------------------
GO
CREATE PROCEDURE SP_APLICAR_COMISION_ADMI
AS
BEGIN
BEGIN TRY
DECLARE @COMISION TABLE(ID INT, FK_CUENTA INT, COMISION MONEY, TARJETA INT)
INSERT INTO @COMISION
SELECT C.FK_Clase, C.ID, M.ComisionAdm, T.ID
FROM TC_Cuentas AS C
INNER JOIN TC_Clase AS M ON M.ID = C.FK_Clase
INNER JOIN TC_TarjetaS AS T ON T.FK_Cuentas = C.ID
DECLARE @MONTOS TABLE(ID INT, MONTO MONEY)
BEGIN TRANSACTION
UPDATE TC_Cuentas
SET SaldoActual = SaldoActual + (SaldoActual * C.COMISION)
FROM @COMISION AS C
INSERT INTO @MONTOS
SELECT E.ID, E.SaldoActual
FROM TC_Cuentas AS E
INSERT INTO TC_MovimientoSaldo
SELECT C.FK_CUENTA, 3, C.TARJETA, GETDATE(), M.MONTO, 'Movimiento por comisión administrativa'
FROM @COMISION AS C
INNER JOIN @MONTOS AS M ON M.ID = C.FK_CUENTA
COMMIT TRANSACTION
RETURN 1;
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0
ROLLBACK TRANSACTION;
RETURN @@ERROR*-1;
END CATCH;
END
GO
-----------------------------------------------------------------------------------------------------------------------
GO
CREATE PROCEDURE SP_CALCULAR_PAGO_MINIMO
(@PPM MONEY)
AS
BEGIN
BEGIN TRY
DECLARE @DATOS TABLE(ID INT, PC MONEY)
INSERT INTO @DATOS
SELECT E.ID, E.PagoContado
FROM TC_EstadoCuenta AS E
BEGIN TRANSACTION
UPDATE TC_EstadoCuenta
SET PagoMinimo = D.PC*@PPM/100
FROM @DATOS AS D
WHERE (TC_EstadoCuenta.ID = D.ID)
COMMIT TRANSACTION
RETURN 1;
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0
ROLLBACK TRANSACTION;
RETURN @@ERROR*-1;
END CATCH;
END
GO
-----------------------------------------------------------------------------------------------------------------------
GO
CREATE PROCEDURE SP_CALCULO_FECHAS_PAGO
(@CPM INT,
@CPC INT)
AS
BEGIN
BEGIN TRY
BEGIN TRANSACTION
UPDATE TC_EstadoCuenta
SET FechaPagoMinimo = FechaCorte+@CPM, FechaPagoContado = FechaCorte+@CPC;
COMMIT TRANSACTION
RETURN 1;
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0
ROLLBACK TRANSACTION;
RETURN @@ERROR*-1;
END CATCH;
END
GO
-----------------------------------------------------------------------------------------------------------------------
GO
CREATE PROCEDURE SP_CONSULTAR_ESTADOS_CUENTA
(@ID INT)
AS
BEGIN
BEGIN TRY
SELECT TOP 6 E.SaldoAlCorte, E.FechaCorte, E.PagoContado, E.PagosAcumulados, E.RetirosAcumulados
FROM TC_EstadoCuenta AS E
WHERE (E.FK_Cuentas = @ID)
ORDER BY FechaCorte ASC
RETURN 1;
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0
ROLLBACK TRANSACTION;
RETURN @@ERROR*-1;
END CATCH;
END
GO
-----------------------------------------------------------------------------------------------------------------------
GO
CREATE PROCEDURE SP_CREAR_CLIENTE
(@NOMBRE VARCHAR(50),
@NUMEROIDENTIFICACION VARCHAR(45),
@USUARIO VARCHAR(50),
@CLAVE VARCHAR(50))
AS
BEGIN
BEGIN TRY
INSERT INTO TC_Cliente
VALUES (@NOMBRE, @NUMEROIDENTIFICACION, @USUARIO, @CLAVE)
RETURN 1;
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0
ROLLBACK TRANSACTION;
RETURN @@ERROR*-1;
END CATCH;
END
GO
-----------------------------------------------------------------------------------------------------------------------
lunes, 2 de junio de 2014
Creación del procedure sumatoria de pagos después de la última fecha de corte
Creador del Post: Javier Gómez Madrigal
Hora Inicio: 13:00 Hora Fin: 15:31
Horas Trabajadas: 2
Se realizó el procedure de sumatoria de pagos después de la última fecha de corte. Se llevó un tiempo analizar esta consulta y luego se procedió a programarlo. No se realizaron pruebas de este procedure.
GO
CREATE PROCEDURE SP_SUMA_PAGOS_ULTIMA_FECHA_CORTE
AS
BEGIN
BEGIN TRY
DECLARE @PAGOS TABLE(FK_CUENTA INT, FECHA DATE, MONTO MONEY, PAGOCONTADO MONEY, TARJETA INT)
INSERT INTO @PAGOS
SELECT E.FK_Cuentas, E.FechaCorte, E.RetirosAcumulados, E.PagoContado, T.ID
FROM TC_EstadoCuenta AS E
INNER JOIN TC_Tarjetas AS T ON T.FK_Cuentas = E.FK_Cuentas
BEGIN TRANSACTION
INSERT INTO TC_MovimientoSaldo
SELECT P.FK_CUENTA, 2, P.TARJETA, GETDATE(), P.MONTO, 'Devolución de intereses'
FROM @PAGOS AS P
WHERE (P.MONTO >= P.PAGOCONTADO)
UPDATE TC_Cuentas
SET SaldoActual = SaldoActual - P.MONTO
FROM @PAGOS AS P
WHERE (P.FK_CUENTA = TC_Cuentas.ID)
COMMIT TRANSACTION
RETURN 1;
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0
ROLLBACK TRANSACTION;
RETURN @@ERROR*-1;
END CATCH;
END
GO
Hora Inicio: 13:00 Hora Fin: 15:31
Horas Trabajadas: 2
Se realizó el procedure de sumatoria de pagos después de la última fecha de corte. Se llevó un tiempo analizar esta consulta y luego se procedió a programarlo. No se realizaron pruebas de este procedure.
GO
CREATE PROCEDURE SP_SUMA_PAGOS_ULTIMA_FECHA_CORTE
AS
BEGIN
BEGIN TRY
DECLARE @PAGOS TABLE(FK_CUENTA INT, FECHA DATE, MONTO MONEY, PAGOCONTADO MONEY, TARJETA INT)
INSERT INTO @PAGOS
SELECT E.FK_Cuentas, E.FechaCorte, E.RetirosAcumulados, E.PagoContado, T.ID
FROM TC_EstadoCuenta AS E
INNER JOIN TC_Tarjetas AS T ON T.FK_Cuentas = E.FK_Cuentas
BEGIN TRANSACTION
INSERT INTO TC_MovimientoSaldo
SELECT P.FK_CUENTA, 2, P.TARJETA, GETDATE(), P.MONTO, 'Devolución de intereses'
FROM @PAGOS AS P
WHERE (P.MONTO >= P.PAGOCONTADO)
UPDATE TC_Cuentas
SET SaldoActual = SaldoActual - P.MONTO
FROM @PAGOS AS P
WHERE (P.FK_CUENTA = TC_Cuentas.ID)
COMMIT TRANSACTION
RETURN 1;
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0
ROLLBACK TRANSACTION;
RETURN @@ERROR*-1;
END CATCH;
END
GO
domingo, 1 de junio de 2014
Creación del procedure sumatoria de retiros en el presente periodo
Creador del Post: Javier Gómez Madrigal
Hora Inicio: 15:00 Hora Fin: 17:50
Horas Trabajadas: 3
Se creó el procedure de la suma de retiros en el presente periodo. Se consumió mucho tiempo al tratar de entender el problema, buscarle solución y luego programarlo. Hubo varios errores que tuvieron que corregirse para que este procedure funcionara de manera optima.
GO
CREATE PROCEDURE SP_SUMA_RETIROS_PRESENTE_PERIODO
(@PCR INT)
AS
BEGIN
BEGIN TRY
DECLARE @SUMARETIROS TABLE(ID INT, FK_CUENTAS INT, RETIROSACUMULADOS INT, TARJETA INT)
INSERT INTO @SUMARETIROS
SELECT E.ID, E.FK_Cuentas, E.RetirosAcumulados, T.ID
FROM TC_EstadoCuenta AS E
INNER JOIN TC_Tarjetas AS T ON T.FK_Cuentas = E.FK_Cuentas
WHERE (E.FechaCorte < GETDATE())
BEGIN TRANSACTION
UPDATE @SUMARETIROS
SET RETIROSACUMULADOS = RETIROSACUMULADOS * @PCR
INSERT INTO TC_MovimientoSaldo
SELECT S.ID, 1, S.TARJETA, GETDATE(), S.RETIROSACUMULADOS, 'Suma de todos retiros en el presente periodo'
FROM @SUMARETIROS AS S
WHERE (S.RETIROSACUMULADOS > 0)
UPDATE TC_Cuentas
SET SaldoActual = SaldoActual + S.RETIROSACUMULADOS
FROM @SUMARETIROS AS S
WHERE (S.FK_CUENTAS = TC_Cuentas.ID)
COMMIT TRANSACTION
RETURN 1;
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0
ROLLBACK TRANSACTION;
RETURN @@ERROR*-1;
END CATCH;
END
GO
Hora Inicio: 15:00 Hora Fin: 17:50
Horas Trabajadas: 3
Se creó el procedure de la suma de retiros en el presente periodo. Se consumió mucho tiempo al tratar de entender el problema, buscarle solución y luego programarlo. Hubo varios errores que tuvieron que corregirse para que este procedure funcionara de manera optima.
GO
CREATE PROCEDURE SP_SUMA_RETIROS_PRESENTE_PERIODO
(@PCR INT)
AS
BEGIN
BEGIN TRY
DECLARE @SUMARETIROS TABLE(ID INT, FK_CUENTAS INT, RETIROSACUMULADOS INT, TARJETA INT)
INSERT INTO @SUMARETIROS
SELECT E.ID, E.FK_Cuentas, E.RetirosAcumulados, T.ID
FROM TC_EstadoCuenta AS E
INNER JOIN TC_Tarjetas AS T ON T.FK_Cuentas = E.FK_Cuentas
WHERE (E.FechaCorte < GETDATE())
BEGIN TRANSACTION
UPDATE @SUMARETIROS
SET RETIROSACUMULADOS = RETIROSACUMULADOS * @PCR
INSERT INTO TC_MovimientoSaldo
SELECT S.ID, 1, S.TARJETA, GETDATE(), S.RETIROSACUMULADOS, 'Suma de todos retiros en el presente periodo'
FROM @SUMARETIROS AS S
WHERE (S.RETIROSACUMULADOS > 0)
UPDATE TC_Cuentas
SET SaldoActual = SaldoActual + S.RETIROSACUMULADOS
FROM @SUMARETIROS AS S
WHERE (S.FK_CUENTAS = TC_Cuentas.ID)
COMMIT TRANSACTION
RETURN 1;
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0
ROLLBACK TRANSACTION;
RETURN @@ERROR*-1;
END CATCH;
END
GO
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
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
viernes, 30 de mayo de 2014
Creacion del procedure de calculo de intereses normales
Creador del Post: Javier Gómez Madrigal
Hora Inicio: 17:00 Hora Fin: 20:16
Horas Trabajadas: 3
Se creo el procedure de cálculo de intereses normales. Se presentaron problemas a la hora de entender la consulta. Cuando finalmente se logró entender, se procedió a programarlo y luego a realizar un par de pruebas.
GO
CREATE PROCEDURE SP_CALCULO_INTERESES_NORMALES
(@IN INT)
AS
BEGIN
BEGIN TRY
DECLARE @INTERESES TABLE(ID INT, IA INT)
DECLARE @FECHA DATE
SET @FECHA = GETDATE();
BEGIN TRANSACTION
UPDATE TC_Cuentas
SET IntNormalAcumulado = SaldoActual * @IN
INSERT INTO @INTERESES
SELECT C.ID, C.IntNormalAcumulado
FROM TC_Cuentas AS C
INSERT INTO TC_MovIntNormal
SELECT I.ID, 1, @FECHA, I.IA, 'Calculo de interes diario'
FROM @INTERESES AS I
COMMIT TRANSACTION
RETURN 1;
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0
ROLLBACK TRANSACTION;
RETURN @@ERROR*-1;
END CATCH;
END
GO
Hora Inicio: 17:00 Hora Fin: 20:16
Horas Trabajadas: 3
Se creo el procedure de cálculo de intereses normales. Se presentaron problemas a la hora de entender la consulta. Cuando finalmente se logró entender, se procedió a programarlo y luego a realizar un par de pruebas.
GO
CREATE PROCEDURE SP_CALCULO_INTERESES_NORMALES
(@IN INT)
AS
BEGIN
BEGIN TRY
DECLARE @INTERESES TABLE(ID INT, IA INT)
DECLARE @FECHA DATE
SET @FECHA = GETDATE();
BEGIN TRANSACTION
UPDATE TC_Cuentas
SET IntNormalAcumulado = SaldoActual * @IN
INSERT INTO @INTERESES
SELECT C.ID, C.IntNormalAcumulado
FROM TC_Cuentas AS C
INSERT INTO TC_MovIntNormal
SELECT I.ID, 1, @FECHA, I.IA, 'Calculo de interes diario'
FROM @INTERESES AS I
COMMIT TRANSACTION
RETURN 1;
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0
ROLLBACK TRANSACTION;
RETURN @@ERROR*-1;
END CATCH;
END
GO
jueves, 29 de mayo de 2014
miércoles, 28 de mayo de 2014
Arreglo de la base
Creador del Post: Javier Gómez Madrigal
Hora Inicio: 13:00 Hora Fin: 14:20
Horas Trabajadas: 1
Se cambiaron varias tablas, agregando columnas en tarjeta y en estado de cuenta, agregando marca en tarjeta y pagos acumulados en estado de cuenta.
Hora Inicio: 13:00 Hora Fin: 14:20
Horas Trabajadas: 1
Se cambiaron varias tablas, agregando columnas en tarjeta y en estado de cuenta, agregando marca en tarjeta y pagos acumulados en estado de cuenta.
lunes, 26 de mayo de 2014
Creación del diagrama
Creador del Post: Javier Gómez Madrigal
Hora Inicio: 11:00 Hora Fin: 13:00
Horas Trabajadas: 2
Se creo el diagrama de la base de datos.
Hora Inicio: 11:00 Hora Fin: 13:00
Horas Trabajadas: 2
Se creo el diagrama de la base de datos.
Suscribirse a:
Entradas (Atom)
