El primer script finalizado fue el de llenado de Bases de Datos. Debido a que esta no tiene mucha ciencia y siempre sería el mismo, cargando las tablas fijas.
El otro script que se espera que este terminado y que no haya que cambiar, es el script de creación de la Bases de Datos. Este no se debería de alterar a menos de ser necesario al no haber contemplado circunstacias extras.
Pendientes: Simulaciones
Horas estimadas de trabajo: 2h
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [dbo].[cargaDatos]
as begin
DECLARE @XML XML
SET @XML = (SELECT * FROM OPENROWSET(BULK '/home/datos/Feriados.xml', SINGLE_BLOB) AS BasicData)
/*
Cargar Feriados
*/
INSERT Feriado (Nombre, Fecha)
SELECT
Child.value('(@NombreFeriado)[1]', 'varchar(50)'),
Child.value('(@Fecha)[1]', 'Date')
FROM @XML.nodes('dataset/Feriados') AS N (Child)
SET @XML = (SELECT * FROM OPENROWSET(BULK '/home/datos/Puesto.xml', SINGLE_BLOB) AS BasicData)
INSERT Puesto (Nombre)
SELECT
Child.value('(@nombre)[1]', 'varchar(25)')
FROM @XML.nodes('dataset/Puesto') AS N (Child)
SET @XML = (SELECT * FROM OPENROWSET(BULK '/home/datos/TipoJornadas.xml', SINGLE_BLOB) AS BasicData)
INSERT Tipo_Jornada (Nombre,Hora_Inicio,Hora_Fin)
SELECT
Child.value('(@nombre)[1]', 'Varchar(15)'),
Child.value('(@HoraInicio)[1]', 'Time'),
Child.value('(@HoraFin)[1]', 'Time')
FROM @XML.nodes('dataset/TipoJornadas') AS N (Child)
--SET @XML = (SELECT * FROM OPENROWSET(BULK '/home/datos/TipoDeduccion.xml', SINGLE_BLOB) AS BasicData) --Tiene lo mismo que TipoMovimiento (?)
SET @XML = (SELECT * FROM OPENROWSET(BULK '/home/datos/TipoMovimiento.xml', SINGLE_BLOB) AS BasicData)
INSERT Tipo_Movimiento (Nombre)
SELECT
Child.value('(@nombre)[1]', 'Varchar(100)')
FROM @XML.nodes('dataset/TipoMovimiento') AS N (Child)
SET @XML = (SELECT * FROM OPENROWSET(BULK '/home/datos/SalarioXHora.xml', SINGLE_BLOB) AS BasicData)
INSERT SalarioXHora (ID_Puesto,ID_Tipo_Jornada,Salario)
SELECT
Child.value('(@idPuesto)[1]', 'int'),
Child.value('(@idTipoJornada)[1]', 'int'),
Child.value('(@valorHora)[1]', 'Money')
FROM @XML.nodes('dataset/SalarioxHora') AS N (Child)
END
GO
CREATE TABLE ASISTENCIA ( "ID" BIGINT IDENTITY NOT NULL , "FECHA" DATE NOT NULL , "ID_PLANILLA_SEMANAL" BIGINT NULL , "ID_OBRERO" BIGINT NOT NULL , "ID_TIPO_JORNADA" INT NOT NULL , "HORA_ENTRADA" TIME NULL , "HORA_SALIDA" TIME NULL , CONSTRAINT "ASISTENCIA_PK" PRIMARY KEY ( "ID" ) ); CREATE TABLE EVENT_LOG ( "ID" BIGINT IDENTITY NOT NULL , "DESCRIPCION" VARCHAR(MAX) NOT NULL , "FECHA" DATETIME2 NOT NULL DEFAULT GETDATE() , CONSTRAINT "EVENT_LOG_PK" PRIMARY KEY ( "ID" ) ); CREATE TABLE FERIADO ( "ID" INT IDENTITY NOT NULL , "NOMBRE" VARCHAR(50) NOT NULL , "FECHA" DATE NOT NULL , CONSTRAINT "FERIADO_PK" PRIMARY KEY ( "ID" ) ); CREATE TABLE INCAPACIDAD ( "ID" INT IDENTITY NOT NULL , "FECHA" DATE NOT NULL , "ID_OBRERO" BIGINT NOT NULL , "ID_TIPO_JORNADA" INT NOT NULL , CONSTRAINT "INCAPACIDAD_PK" PRIMARY KEY ( "ID" ) ); CREATE TABLE MOVIMIENTO ( "ID" BIGINT IDENTITY NOT NULL , "ID_PLANILLA_SEMANAL" BIGINT NULL , "ID_PLANILLA_MENSUAL" BIGINT NULL , "ID_OBRERO" BIGINT NOT NULL , "FECHA" DATE NOT NULL , "MONTO" MONEY NOT NULL , "TIPO_MOVIMIENTO" INT NOT NULL , CONSTRAINT "MOVIMIENTO_PK" PRIMARY KEY ( "ID" ) ); CREATE TABLE OBRERO ( "ID" BIGINT IDENTITY NOT NULL , "NOMBRE" VARCHAR(20) NOT NULL , "CUENTA" BIGINT NULL , "ID_PUESTO" INT NOT NULL , CONSTRAINT "Obrero_PK" PRIMARY KEY ( "ID" ) ); CREATE TABLE PLANILLA_MENSUAL ( "ID" BIGINT NOT NULL , "ID_OBRERO" BIGINT NOT NULL , "SALARIO_BRUTO" MONEY NULL , "SALARIO_NETO" MONEY NULL , "MES" NUMERIC(2) NOT NULL , "ANNO" NUMERIC(4) NOT NULL , CONSTRAINT "PLANILLA_MENSUAL_PK" PRIMARY KEY ( "ID" ) ); CREATE TABLE PLANILLA_SEMANA ( "ID" BIGINT NOT NULL , "FECHA" DATE NOT NULL , "SALARIO_BRUTO" MONEY NULL , "SALARIO_NETO" MONEY NULL , "ID_PLANILLA_MENSUAL" BIGINT NOT NULL , CONSTRAINT "PLANILLA_SEMANA_PK" PRIMARY KEY ( "ID" ) ); CREATE TABLE PUESTO ( "ID" INT IDENTITY NOT NULL , "NOMBRE" VARCHAR(25) NOT NULL , CONSTRAINT "PUESTO_PK" PRIMARY KEY ( "ID" ) ); CREATE TABLE SALARIOXHORA ( "ID" BIGINT IDENTITY NOT NULL , "ID_TIPO_JORNADA" INT NOT NULL , "ID_PUESTO" INT NOT NULL , "SALARIO" MONEY NOT NULL , CONSTRAINT "SALARIOXHORA_PK" PRIMARY KEY ( "ID" ) , CONSTRAINT "SALARIOXHORA_UK1" UNIQUE ( "ID_TIPO_JORNADA", "ID_PUESTO" ) ); CREATE TABLE TIPO_JORNADA ( "ID" INT IDENTITY NOT NULL , "NOMBRE" VARCHAR(15) NOT NULL , "HORA_INICIO" TIME NOT NULL , "HORA_FIN" TIME NOT NULL , CONSTRAINT "TIPOJORNADA_PK" PRIMARY KEY ( "ID" ) ); CREATE TABLE TIPO_MOVIMIENTO ( "ID" INT IDENTITY NOT NULL , "NOMBRE" VARCHAR(100) NOT NULL , CONSTRAINT "TIPO_MOVIMIENTO_PK" PRIMARY KEY ( "ID" ) ); ALTER TABLE ASISTENCIA ADD CONSTRAINT "ASISTENCIA_FK1" FOREIGN KEY ( "ID_OBRERO" ) REFERENCES OBRERO ( "ID" ); ALTER TABLE ASISTENCIA ADD CONSTRAINT "ASISTENCIA_FK2" FOREIGN KEY ( "ID_TIPO_JORNADA" ) REFERENCES TIPO_JORNADA ( "ID" ); ALTER TABLE ASISTENCIA ADD CONSTRAINT "ASISTENCIA_FK3" FOREIGN KEY ( "ID_PLANILLA_SEMANAL" ) REFERENCES PLANILLA_SEMANA ( "ID" ); ALTER TABLE INCAPACIDAD ADD CONSTRAINT "INCAPACIDAD_FK1" FOREIGN KEY ( "ID_OBRERO" ) REFERENCES OBRERO ( "ID" ); ALTER TABLE INCAPACIDAD ADD CONSTRAINT "INCAPACIDAD_FK2" FOREIGN KEY ( "ID_TIPO_JORNADA" ) REFERENCES TIPO_JORNADA ( "ID" ); ALTER TABLE MOVIMIENTO ADD CONSTRAINT "MOVIMIENTO_FK1" FOREIGN KEY ( "TIPO_MOVIMIENTO" ) REFERENCES TIPO_MOVIMIENTO ( "ID" ); ALTER TABLE MOVIMIENTO ADD CONSTRAINT "MOVIMIENTO_FK2" FOREIGN KEY ( "ID_OBRERO" ) REFERENCES OBRERO ( "ID" ); ALTER TABLE MOVIMIENTO ADD CONSTRAINT "MOVIMIENTO_FK3" FOREIGN KEY ( "ID_PLANILLA_SEMANAL" ) REFERENCES PLANILLA_SEMANA ( "ID" ); ALTER TABLE MOVIMIENTO ADD CONSTRAINT "MOVIMIENTO_FK4" FOREIGN KEY ( "ID_PLANILLA_MENSUAL" ) REFERENCES PLANILLA_MENSUAL ( "ID" ); ALTER TABLE OBRERO ADD CONSTRAINT "OBRERO_FK1" FOREIGN KEY ( "ID_PUESTO" ) REFERENCES PUESTO ( "ID" ); ALTER TABLE PLANILLA_MENSUAL ADD CONSTRAINT "PLANILLA_MENSUAL_FK1" FOREIGN KEY ( "ID_OBRERO" ) REFERENCES OBRERO ( "ID" ); ALTER TABLE PLANILLA_SEMANA ADD CONSTRAINT "PLANILLA_SEMANA_FK1" FOREIGN KEY ( "ID_PLANILLA_MENSUAL" ) REFERENCES PLANILLA_MENSUAL ( "ID" ); ALTER TABLE SALARIOXHORA ADD CONSTRAINT "SALARIOXHORA_FK1" FOREIGN KEY ( "ID_PUESTO" ) REFERENCES PUESTO ( "ID" ); ALTER TABLE SALARIOXHORA ADD CONSTRAINT "SALARIOXHORA_FK2" FOREIGN KEY ( "ID_TIPO_JORNADA" ) REFERENCES TIPO_JORNADA ( "ID" );


No hay comentarios.:
Publicar un comentario