create table rrhh.cat_tiposPlanilla(
	id int not null identity(1,1),
	codtipoplanilla int not null,
	tipoPlanilla varchar(300) null,
	descripcion text,
	fechaRegistro datetime not null default getdate(),
	idUsuario int not null,
	estado int not null default 2,
	fechaImplementacion datetime null,
	primary key(id),
	foreign key(idUsuario) references sistema.datos_usuarios(id)
);

create table rrhh.config_tiposPlanillaUsuario(
	idUsuario int not null,
	idTipoPlanilla int not null,
	codtipoplanilla int not null,
	tipoPlanilla varchar(350) null,
	foreign key(idTipoPlanilla) references rrhh.cat_tiposPlanilla(id),
	foreign key(idUsuario) references sistema.datos_usuarios(id),
);

create table rrhh.cat_codigosObservacionPlanillaUnica(
	id int not null identity(1,1),
	codigo int not null,
	concepto varchar(150) null,
	aplicaPersonaNatural bit not null default 0,
	aplicaPersonaJuridica bit not null default 0,
	validaciones text null,
	fechaRegistro datetime not null default getdate(),
	fechaActualizacion datetime null,
	estado bit not null default 1,
	idUsuario int not null,
	idUltimoUsuario int not null,
	primary key(id),
	foreign key(idUsuario) references sistema.datos_usuarios(id),
	foreign key(idUltimoUsuario) references sistema.datos_usuarios(id)
);

create table rrhh.cat_tiposDocumentoPlanillaUnica(
	id int not null identity(1,1),
	idDocumento int not null,
	codigo int not null,
	fechaRegistro datetime not null default getdate(),
	fechaActualizacion datetime null,
	estado bit not null default 1,
	idUsuario int not null,
	idUltimoUsuario int not null,
	primary key(id),
	foreign key(idUsuario) references sistema.datos_usuarios(id),
	foreign key(idUltimoUsuario) references sistema.datos_usuarios(id)
);

create table rrhh.cat_institucionesPlanillaUnica(
	id int not null identity(1,1),
	idInstitucion int not null,
	codigo varchar(10) not null,
	fechaRegistro datetime not null default getdate(),
	fechaActualizacion datetime null,
	estado bit not null default 1,
	idUsuario int not null,
	idUltimoUsuario int not null,
	primary key(id),
	foreign key(idUsuario) references sistema.datos_usuarios(id),
	foreign key(idUltimoUsuario) references sistema.datos_usuarios(id)
);

create table rrhh.datos_planillaUnica(
	id int not null identity(1,1),
	codtipoplanilla int not null,
	periodo varchar(6) not null,
	fechaRegistro datetime not null default getdate(),
	estado bit not null default 1,
	idUsuario int not null,
	primary key(id),
	foreign key(idUsuario) references sistema.datos_usuarios(id)
);

create table rrhh.det_planillaUnica(
	id int not null identity(1,1),
	idPlanillaUnica int not null,
	codempleado varchar(25) not null,
	tipoDocumento varchar(5) not null,
	numeroDocumento varchar(20) not null,
	documentoEmpleador varchar(14) not null,
	numeroPatronalEmpleador varchar(9) not null,
	correlativoTrabajo varchar(3) not null,
	codtipoplanilla int not null,
	primerNombre varchar(40) null,
	segundoNombre varchar(40) null,
	primerApellido varchar(40) null,
	segundoApellido varchar(40) null,
	apellidoCasada varchar(40) null,
	numeroPatronalEmpleado varchar(9) not null,
	institucionPrevisional varchar(3) not null,
	anio int not null,
	periodo varchar(6) not null,
	salario decimal(18,2) not null,
	pagoAdicional decimal(18,2) not null default 0,
	dias int not null,
	horas decimal(18,2) not null,
	horasExtra decimal(18,2) not null default 0,
	diasVacacion int not null default 0,
	montoVacaciones decimal(18,2) not null default 0,
	codigo1 varchar(2) not null,
	codigo2 varchar(2) not null,
	fechaRegistro datetime not null default getdate(),
	idUsuario int not null,
	primary key(id),
	foreign key(idPlanillaUnica) references rrhh.datos_planillaUnica(id),
	foreign key(idUsuario) references sistema.datos_usuarios(id)
);

create table rrhh.datos_procesosDocumentosPago(
	id int not null identity(1,1),
	codempresa int not null,
	tipoPlanilla int not null,
	planilla int not null,
	tipoAccion varchar(25) null,
	fechaRegistro datetime not null default getdate(),
	estado bit not null default 1,
	idUsuario int not null,
	primary key(id),
	foreign key(idUsuario) references sistema.datos_usuarios(id)
);

create table rrhh.det_procesosDocumentosPago(
	id int not null identity(1,1),
	idProceso int,
	codempresa int not null,
	codempleado varchar(15) not null,
	coddepartamento int not null,
	puesto varchar(300) null,
	nombreEmpleado varchar(350) null,
	email nvarchar(300),
	tipoProceso int not null default 1,
	fechaRegistro datetime not null default getdate(),
	estado int not null default 1,
	primary key(id),
	foreign key(idProceso) references rrhh.datos_procesosDocumentosPago(id)
);

create table rrhh.det_descripcionServiciosProfesionalesEmpleados(
	id int not null identity(1,1),
	codempresa int not null,
	codempleado varchar(15) null,
	descripcion text,
	fechaRegistro datetime not null default getdate(),
	ultimaActualizacion datetime null,
	estado bit not null default 1,
	primary key(id)
);

create table rrhh.cat_unidadesTrabajo(
	id int not null identity(1,1),
	unidadTrabajo varchar(300) null,
	fechaRegistro datetime not null default getdate(),
	estado bit not null default 1,
	idUsuario int not null,
	primary key(id),
	foreign key(idUsuario) references sistema.datos_usuarios(id)
);

create table rrhh.datos_bonos(
	id int not null identity(1,1),
	codtipoplanilla int not null default 0,
	idTipo int not null default 0,
	descripcion varchar(500) null,
	idPeriodicidad int not null default 0,
	monto decimal(18,2) not null default 0,
	fechaPago date null,
	mesPago varchar(7) null,
	planillaPago int null,
	pagado bit not null default 0,
	correlativoPlanilla int null,
	idUsuario int not null,
	fechaRegistro datetime not null default getdate(),
	fechaModificacion datetime null,
	estado bit not null default 1,
	primary key(id),
	foreign key(idUsuario) references sistema.datos_usuarios(id)
);

create table rrhh.det_bono(
	idBono int not null,
	id int not null identity(1,1),
	idTipoAsignacion int not null default 0,
	idAsignacion varchar(15) not null default '0',
	idUsuario int not null,
	fechaRegistro datetime not null default getdate(),
	fechaModificacion datetime null,
	estado bit not null default 1,
	primary key(id),
	foreign key(idBono) references rrhh.datos_bonos(id),
	foreign key(idUsuario) references sistema.datos_usuarios(id)
);

-- Ajuste de tabla de horas extras de la base de .net

/*A ejecutar en la base de .net
create table [negocios_a].dbo.pla_horas_extras(
	codempresa int NOT NULL,
	correlativo int NOT NULL identity(1,1),
	codsucursaltransa int NOT NULL default 1,
	codtipoplanilla int NULL,
	correlativopla int NULL default 0,
	codempleado varchar(15) NOT NULL,
	codtipohoraextra int NOT NULL,
	descripcionhoraextra varchar(75) NULL,
	cantidad int NULL,
	Valorhoraextra decimal(18, 2) NULL,
	fechahoraextra datetime NULL,
	codautoriza varchar(15) NULL,
	cancelado bit not NULL default 0,
	idProcesoCarga int not null default 0,
	fechaProyeccion date null,
	fechaRegistro datetime not null default getdate(),
	fechaPago datetime null,
	estado bit not null default 1,
	primary key(codempresa,correlativo)
);

alter table [negocios_a].dbo.pla_horas_extras add estado bit not null default 1
*/

create table rrhh.datos_cargaHorasExtras(
	id int not null identity(1,1),
	codtipoplanilla int not null,
	correlativoPlanilla int not null default 0,
	mesPago varchar(7) not null,
	quincenaPago int not null default 0,
	fechaProyeccion date null,
	fechaPago datetime null,
	ipOrdenador varchar(50) null,
	idUsuario int not null,
	fechaRegistro datetime not null default getdate(),
	fechaModificacion datetime null,
	estado int not null default 1
);

create table rrhh.logs_cargaHorasExtras(
	id int not null identity(1,1),
	accion varchar(150) null,
	ipOrdenador varchar(50) null,
	detalles text,
	fechaRegistro datetime not null default getdate(),
	estado bit not null default 1,
	idUsuario int not null,
	primary key(id),
	foreign key(idUsuario) references sistema.datos_usuarios(id)
);

-- Ajuste de la tabla de otros ingresos de la base de .NET
/*
create table [negocios_a].dbo.pla_otros_ingresos(
	codempresa int NOT NULL,
	correlativo int NOT NULL identity(1,1),
	codsucursaltransa int NOT NULL,
	codtipoplanilla int NULL,
	correlativopla int NULL,
	codempleado varchar(15) NOT NULL,
	descripcioningreso varchar(75) NULL,
	codtipoingreso int NULL,
	valoringreso decimal(18, 2) NULL,
	codautoriza varchar(15) NULL,
	fechaautoriza datetime NULL,
	cancelado bit NULL,
	idProcesoCarga int not null default 0,
	fechaProyeccion date null,
	fechaRegistro datetime not null default getdate(),
	fechaPago datetime null,
	estado bit not null default 1,
	primary key(codempresa,correlativo)
);
*/

create table rrhh.datos_cargaOtrosIngresos(
	id int not null identity(1,1),
	codtipoplanilla int not null,
	correlativoPlanilla int not null default 0,
	mesPago varchar(7) not null,
	quincenaPago int not null default 0,
	fechaProyeccion date null,
	fechaPago datetime null,
	ipOrdenador varchar(50) null,
	idUsuario int not null,
	fechaRegistro datetime not null default getdate(),
	fechaModificacion datetime null,
	estado int not null default 1
);

create table rrhh.logs_cargaOtrosIngresos(
	id int not null identity(1,1),
	accion varchar(150) null,
	ipOrdenador varchar(50) null,
	detalles text,
	fechaRegistro datetime not null default getdate(),
	estado bit not null default 1,
	idUsuario int not null,
	primary key(id),
	foreign key(idUsuario) references sistema.datos_usuarios(id)
);

create table rrhh.det_licenciasArmasEmpleado(
	id int not null identity(1,1),
	codempleado varchar(15) not null,
	numeroLicencia varchar(50) null,
	fechaEmision date null,
	fechaExpira date null,
	enEmergenciaLlamar varchar(350) null,
	numeroRegistro varchar(50) null,
	tipoSangre varchar(25) null,
	telefono varchar(15) null,
	fechaRegistro datetime not null default getdate(),
	estado bit not null default 1,
	idUsuario int not null,
	fechaActualizacion datetime null,
	ultimoUsuario int null,
	primary key(id),
	foreign key(idUsuario) references sistema.datos_usuarios(id)
);

create table rrhh.det_adjuntosEmpleado(
	id int not null identity(1,1),
	codempleado varchar(15),
	idTipoDocumento int not null,
	nombreDocumento varchar(300) null,
	tipoArchivo varchar(50) null,
	nombreArchivo varchar(300) null,
	fechaRegistro datetime not null default getdate(),
	idUsuario int not null,
	estado bit not null default 1,
	primary key(id),
	foreign key(idTipoDocumento) references general.cat_tiposDocumentosAdjuntos(id),
	foreign key(idUsuario) references sistema.datos_usuarios(id)
);

create table rrhh.cat_tiposMovimientoEmpleado(
	id int not null identity(1,1),
	tipoMovimiento varchar(350) null,
	fechaRegistro datetime not null default getdate(),
	estado bit not null default 1,
	idUsuario int not null,
	primary key(id),
	foreign key(idUsuario) references sistema.datos_usuarios(id)
);

create table rrhh.datos_movimientosEmpleados(
	id int not null identity(1,1),
	codtipoplanilla int not null,
	codempleado varchar(15) not null,
	nombreCompleto varchar(500),
	codsucursal int null,
	codproyecto int null,
	coddepartamento int null,
	codpuesto int null,
	codsucursalMovimiento int null,
	codproyectoMovimiento int null,
	idOficina int null,
	idTipoMovimiento int null,
	fechaEfectiva date not null,
	fechaRetorno date null,
	comentarios text,
	fechaRegistro datetime not null default getdate(),
	estado int not null default 1,
	idSeguimiento int null,
	idUsuario int not null,
	primary key(id),
	foreign key(idTipoMovimiento) references rrhh.cat_tiposMovimientoEmpleado(id),
	foreign key(idUsuario) references sistema.datos_usuarios(id)
);
