Se revisó la especificación del proyecto y el XML de carga
de datos.
Se crearon y organizaron scripts de carga inicial para
Puesto, TipoEvento, TipoMovimiento, Usuario, Empleado y Movimiento.
Se cargó la tabla Error con sus códigos y descripciones.
Se invesitgo el como tenia qeu hacer los scripts cuando era
hora de conectar dos tablas y traer cosas de una tabla a otra
Se validó el orden correcto de ejecución de los scripts en
SSMS. (Por errores que se dieron mas tarde)
Al ejecutar CargarEmpleado.sql apareció 0 filas afectadas
porque no se había cargado antes la tabla Puesto.
Al ejecutar CargarMovimiento.sql ocurrió el mismo problema
porque no se había cargado antes la tabla TipoMovimiento.
Se resolvió confirmando el orden correcto de carga: primero
catálogos, luego usuarios, después empleados y al final movimientos.
Se aclaró que la tabla Error es el catálogo de errores
funcionales y DBError es para errores técnicos de base de datos.
Se aclaró que el XML no necesariamente se lee en tiempo de
ejecución, sino que sirve como base para generar scripts de carga.
La diferencia entre VALUES y SELECT cuando se necesitan ids
de otras tablas.
Quedaron listos los scripts de carga para Error, Puesto,
TipoEvento, TipoMovimiento, Usuario, Empleado y Movimiento.
USE VacacionesDB;
GO
INSERT dbo.Movimiento (idEmpleado, idTipoMovimiento, Fecha, Monto, NuevoSaldo, idPostByUser, PostInIP, PostTime)
SELECT e.id, t.id, '2024-01-18', 2, 0.00, u.id, '42.142.119.153', '2024-01-18 18:47:14'
FROM Empleado e, TipoMovimiento t, Usuario u
WHERE e.ValorDocumentoIdentidad = '7517662' AND t.Nombre = 'Venta de vacaciones' AND u.Username = 'hardingmicheal';
INSERT dbo.Movimiento (idEmpleado, idTipoMovimiento, Fecha, Monto, NuevoSaldo, idPostByUser, PostInIP, PostTime)
SELECT e.id, t.id, '2024-10-31', 1, 0.00, u.id, '156.92.82.57', '2024-10-31 12:43:18'
FROM Empleado e, TipoMovimiento t, Usuario u
WHERE e.ValorDocumentoIdentidad = '6993943' AND t.Nombre = 'Bono vacacional' AND u.Username = 'mgarrison';
INSERT dbo.Movimiento (idEmpleado, idTipoMovimiento, Fecha, Monto, NuevoSaldo, idPostByUser, PostInIP, PostTime)
SELECT e.id, t.id, '2024-11-22', 7, 0.00, u.id, '218.213.110.232', '2024-11-22 00:23:53'
FROM Empleado e, TipoMovimiento t, Usuario u
WHERE e.ValorDocumentoIdentidad = '8326328' AND t.Nombre = 'Venta de vacaciones' AND u.Username = 'andersondeborah';
INSERT dbo.Movimiento (idEmpleado, idTipoMovimiento, Fecha, Monto, NuevoSaldo, idPostByUser, PostInIP, PostTime)
SELECT e.id, t.id, '2024-07-03', 3, 0.00, u.id, '143.42.131.166', '2024-07-03 17:07:39'
FROM Empleado e, TipoMovimiento t, Usuario u
WHERE e.ValorDocumentoIdentidad = '4510358' AND t.Nombre = 'Reversion de Credito' AND u.Username = 'hardingmicheal';
INSERT dbo.Movimiento (idEmpleado, idTipoMovimiento, Fecha, Monto, NuevoSaldo, idPostByUser, PostInIP, PostTime)
SELECT e.id, t.id, '2024-12-07', 8, 0.00, u.id, '155.44.100.105', '2024-12-07 15:44:30'
FROM Empleado e, TipoMovimiento t, Usuario u
WHERE e.ValorDocumentoIdentidad = '8403646' AND t.Nombre = 'Reversion de Credito' AND u.Username = 'zkelly';
INSERT dbo.Movimiento (idEmpleado, idTipoMovimiento, Fecha, Monto, NuevoSaldo, idPostByUser, PostInIP, PostTime)
SELECT e.id, t.id, '2024-11-26', 10, 0.00, u.id, '141.163.255.56', '2024-11-26 09:33:41'
FROM Empleado e, TipoMovimiento t, Usuario u
WHERE e.ValorDocumentoIdentidad = '8326328' AND t.Nombre = 'Venta de vacaciones' AND u.Username = 'hardingmicheal';
INSERT dbo.Movimiento (idEmpleado, idTipoMovimiento, Fecha, Monto, NuevoSaldo, idPostByUser, PostInIP, PostTime)
SELECT e.id, t.id, '2024-11-20', 6, 0.00, u.id, '4.176.52.1', '2024-11-20 23:31:41'
FROM Empleado e, TipoMovimiento t, Usuario u
WHERE e.ValorDocumentoIdentidad = '6993943' AND t.Nombre = 'Disfrute de vacaciones' AND u.Username = 'hardingmicheal';
INSERT dbo.Movimiento (idEmpleado, idTipoMovimiento, Fecha, Monto, NuevoSaldo, idPostByUser, PostInIP, PostTime)
SELECT e.id, t.id, '2024-10-30', 10, 0.00, u.id, '220.164.108.231', '2024-10-30 03:55:57'
FROM Empleado e, TipoMovimiento t, Usuario u
WHERE e.ValorDocumentoIdentidad = '2918773' AND t.Nombre = 'Disfrute de vacaciones' AND u.Username = 'zkelly';
INSERT dbo.Movimiento (idEmpleado, idTipoMovimiento, Fecha, Monto, NuevoSaldo, idPostByUser, PostInIP, PostTime)
SELECT e.id, t.id, '2024-06-13', 2, 0.00, u.id, '135.223.57.22', '2024-06-13 13:28:39'
FROM Empleado e, TipoMovimiento t, Usuario u
WHERE e.ValorDocumentoIdentidad = '2161775' AND t.Nombre = 'Reversion Debito' AND u.Username = 'hardingmicheal';
INSERT dbo.Movimiento (idEmpleado, idTipoMovimiento, Fecha, Monto, NuevoSaldo, idPostByUser, PostInIP, PostTime)
SELECT e.id, t.id, '2024-01-01', 6, 0.00, u.id, '150.250.94.62', '2024-01-01 05:17:10'
FROM Empleado e, TipoMovimiento t, Usuario u
WHERE e.ValorDocumentoIdentidad = '8403646' AND t.Nombre = 'Bono vacacional' AND u.Username = 'zkelly';
INSERT dbo.Movimiento (idEmpleado, idTipoMovimiento, Fecha, Monto, NuevoSaldo, idPostByUser, PostInIP, PostTime)
SELECT e.id, t.id, '2024-07-12', 6, 0.00, u.id, '218.191.123.15', '2024-07-12 09:10:16'
FROM Empleado e, TipoMovimiento t, Usuario u
WHERE e.ValorDocumentoIdentidad = '2918773' AND t.Nombre = 'Venta de vacaciones' AND u.Username = 'hardingmicheal';
INSERT dbo.Movimiento (idEmpleado, idTipoMovimiento, Fecha, Monto, NuevoSaldo, idPostByUser, PostInIP, PostTime)
SELECT e.id, t.id, '2024-12-27', 14, 0.00, u.id, '136.103.23.170', '2024-12-27 12:59:03'
FROM Empleado e, TipoMovimiento t, Usuario u
WHERE e.ValorDocumentoIdentidad = '5095109' AND t.Nombre = 'Reversion de Credito' AND u.Username = 'hardingmicheal';
INSERT dbo.Movimiento (idEmpleado, idTipoMovimiento, Fecha, Monto, NuevoSaldo, idPostByUser, PostInIP, PostTime)
SELECT e.id, t.id, '2024-04-08', 1, 0.00, u.id, '158.48.100.86', '2024-04-08 01:24:38'
FROM Empleado e, TipoMovimiento t, Usuario u
WHERE e.ValorDocumentoIdentidad = '6993943' AND t.Nombre = 'Venta de vacaciones' AND u.Username = 'jgonzalez';
INSERT dbo.Movimiento (idEmpleado, idTipoMovimiento, Fecha, Monto, NuevoSaldo, idPostByUser, PostInIP, PostTime)
SELECT e.id, t.id, '2024-08-25', 8, 0.00, u.id, '204.0.219.231', '2024-08-25 16:24:07'
FROM Empleado e, TipoMovimiento t, Usuario u
WHERE e.ValorDocumentoIdentidad = '8403646' AND t.Nombre = 'Bono vacacional' AND u.Username = 'jgonzalez';
INSERT dbo.Movimiento (idEmpleado, idTipoMovimiento, Fecha, Monto, NuevoSaldo, idPostByUser, PostInIP, PostTime)
SELECT e.id, t.id, '2024-03-07', 7, 0.00, u.id, '208.0.4.33', '2024-03-07 08:19:28'
FROM Empleado e, TipoMovimiento t, Usuario u
WHERE e.ValorDocumentoIdentidad = '5095109' AND t.Nombre = 'Bono vacacional' AND u.Username = 'andersondeborah';
Primero deben cargarse los catálogos que otros scripts
dependen de ellos.
Cuando un INSERT usa datos de otra tabla, conviene validar
el id con SELECT en lugar de escribirlo a mano.
Antes de ampliar datos, es mejor probar la funcionalidad con
una carga mínima y controlada.
Seguir con la parte pendiente de procedimientos almacenados
y validaciones de negocio.
Después revisar la actualización del saldo de vacaciones y
la lógica de bitácora y errores.
Comentarios
Publicar un comentario