Proyecto 2 - Bases de Datos
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
Suscribirse a:
Entradas (Atom)