create view rrhh.view_tiposPlanilla as
select tipos.id,
	tipos.codtipoplanilla,
	tipos.tipoPlanilla,
	tipos.descripcion,
	tipos.fechaRegistro,
	usuarios.nombres+' '+usuarios.apellidos usuario,
	tipos.estado,
	tipos.fechaImplementacion
from rrhh.cat_tiposPlanilla tipos
inner join sistema.datos_usuarios usuarios on tipos.idUsuario = usuarios.id;

create view rrhh.view_codigosObservacionPlanillaUnica as
SELECT cat.id,
	cat.codigo,
	cat.concepto,
	cat.aplicaPersonaNatural,
	cat.aplicaPersonaJuridica,
	cat.validaciones,
	cat.fechaRegistro,
	cat.estado,
	usuarios.nombres+' '+usuarios.apellidos usuario
FROM rrhh.cat_codigosObservacionPlanillaUnica cat
inner join sistema.datos_usuarios usuarios on cat.idUsuario = usuarios.id;

create view rrhh.view_documentosPlanillaUnica as
SELECT doc.id,
	doc.idDocumento idTipoDocumento,
	documentos.nomdocumento tipoDocumento,
	doc.codigo,
	doc.fechaRegistro,
	doc.estado,
	usuarios.nombres+' '+usuarios.apellidos usuario
FROM rrhh.cat_tiposDocumentoPlanillaUnica doc
left join [negocios_a].dbo.gen_documento_identidad documentos on doc.idDocumento = documentos.coddocumento
inner join sistema.datos_usuarios usuarios on doc.idUsuario = usuarios.id;

create view rrhh.view_institucionesPlanillaUnica AS
SELECT inst.id,
	inst.idInstitucion,
	instituciones.descripcionafp nombreInstitucion,
	inst.codigo,
	inst.fechaRegistro,
	inst.estado,
	usuarios.nombres+' '+usuarios.apellidos usuario
FROM rrhh.cat_institucionesPlanillaUnica inst
left join [negocios_a].dbo.gen_afp instituciones on inst.idInstitucion = instituciones.codafp
inner join sistema.datos_usuarios usuarios on inst.idUsuario = usuarios.id;

create view rrhh.view_empleadosPlanillaUnica as
SELECT '06142007221097' documentoEmpleador,
	'702220757' numeroPatronalEmpleador,
	'001' correlativoTrabajo,
	empleados.codtipoplanilla,
	empleados.nomempleado1 primerNombre,
	empleados.nomempleado2 segundoNombre,
	empleados.apellidosempleado1 primerApellido,
	empleados.apellidosempleado2 segundoApellido,
	empleados.apellidocasadaempleado apellidoCasada,
	empleados.duiempleado numeroDocumento,
	'01' tipoDocumento,
	empleados.isssempleado numeroPatronalEmpleado,
	(empleados.salario*2) salarioAsignado,
	instituciones.codigo institucionPrevisional,
	empleados.codempleado
FROM [negocios_a].dbo.gen_empleado empleados
LEFT join rrhh.cat_institucionesPlanillaUnica instituciones on empleados.codafp = instituciones.idInstitucion;

create view rrhh.view_datosProyeccionPlanillaUnica as
SELECT empleados.*,
	detalles.anio,
	detalles.periodo,
	detalles.pagoAdicional,
	detalles.salario,
	detalles.dias,
	detalles.horas,
	detalles.horasExtra,
	detalles.montoVacaciones,
	detalles.diasVacacion,
	'01' codigo1,
	'01' codigo2
FROM
(
	select detalles.codempleado,
		encabezados.anio,
		RIGHT('0' + CONVERT(VARCHAR(2), MONTH(encabezados.fechadesde)), 2) + CONVERT(VARCHAR(4), YEAR(encabezados.fechadesde)) periodo,
		sum(isnull(detalles.otrosingresos,0) + isnull(detalles.sueldohorasextras,0)) pagoAdicional,
		sum(detalles.sueldobruto) salario,
		sum(detalles.totaldias) dias,
		8 horas,
		sum(isnull(detalles.canthorasextras,0)) horasExtra,
		sum(isnull(detalles.vacaciones,0)) montoVacaciones,
		0 diasVacacion
	FROM [negocios_a].dbo.pla_planilla_det detalles
	inner join [negocios_a].dbo.pla_planilla_enc encabezados on detalles.correlativo = encabezados.correlativo
	--WHERE detalles.codempleado = '0010861'
	group by 
		detalles.codempleado,
		encabezados.anio,
		RIGHT('0' + CONVERT(VARCHAR(2), MONTH(encabezados.fechadesde)), 2) + CONVERT(VARCHAR(4), YEAR(encabezados.fechadesde))
	--order by RIGHT('0' + CONVERT(VARCHAR(2), MONTH(encabezados.fechadesde)), 2) + CONVERT(VARCHAR(4), YEAR(encabezados.fechadesde)) asc
) detalles
inner join rrhh.view_empleadosPlanillaUnica empleados on detalles.codempleado = empleados.codempleado;

CREATE VIEW rrhh.view_planillas as
SELECT codempresa, 
	correlativo, 
	codsucursal, 
	codproyecto, 
	codtipoplanilla, 
	anio, 
	planilla, 
	numerocatorcena, 
	descripcionplanilla descripcion, 
	cerrada, 
	fechadesde, 
	fechahasta, 
	diasprocesados, 
	fecha, 
	contabilizado, 
	creado, 
	aguinaldo, 
    codempresaext
FROM negocios_a.dbo.pla_planilla_enc;

ALTER VIEW rrhh.view_empleados AS
SELECT empleados.codempleado, 
	empleados.codempresa, 
	empleados.codsucursal,
	empleados.codproyecto,
	(select top(1) sucursales.nomsucursal from [negocios_a].dbo.gen_sucursal sucursales where sucursales.codsucursal = empleados.codsucursal) nombreSucursal,
	(select top(1) proyectos.nomproyecto from [negocios_a].dbo.gen_proyecto proyectos where proyectos.codproyecto = empleados.codproyecto) nombreProyecto,
	empleados.nombreArchivoFoto,
	empleados.nomempleado1 primerNombre,
	empleados.nomempleado2 segundoNombre,
	empleados.apellidosempleado1 primerApellido,
	empleados.apellidosempleado2 segundoApellido,
	empleados.apellidocasadaempleado apellidoCasada,
	empleados.correoempresarial AS email, 
	empleados.coddepartamento, 
	empleados.codpuesto,
	empleados.codestado, 
	empleados.codtipoplanilla, 
	empleados.fechaingreso fechaIngreso, 
	empleados.fecharetiro fechaRetiro, 
	empleados.salario,
	departamentos.nomdepartamento AS nombreDepartamento, 
	puestos.descripcionpuesto AS nombrePuesto, 
	descripciones.descripcion descripcionRecibo,
	empleados.idUnidadTrabajo,
	(SELECT TOP(1) unidades.unidadTrabajo FROM rrhh.cat_unidadesTrabajo unidades WHERE unidades.id = empleados.idUnidadTrabajo and unidades.estado = 1) unidadTrabajo
FROM negocios_a.dbo.gen_empleado AS empleados 
LEFT JOIN negocios_a.dbo.gen_puesto AS puestos ON empleados.codpuesto = puestos.codpuesto 
LEFT JOIN negocios_a.dbo.gen_departamento AS departamentos ON empleados.coddepartamento = departamentos.coddepartamento 
LEFT JOIN rrhh.det_descripcionServiciosProfesionalesEmpleados AS descripciones ON empleados.codempresa = descripciones.codempresa AND empleados.codempleado = descripciones.codempleado COLLATE Modern_Spanish_CI_AS;

CREATE VIEW rrhh.view_pagosEmpleados AS
SELECT detalles.correlativo, 
	detalles.codempleado, 
	planilla.fechadesde desde, 
	planilla.fechahasta hasta, 
	detalles.totaldias, 
	empleados.nomempleado1 primerNombre, 
	empleados.nomempleado2 segundoNombre, 
	empleados.apellidosempleado1 primerApellido, 
	empleados.apellidosempleado2 segundoApellido, 
	empleados.apellidocasadaempleado apellidoCasada, 
	empleados.correoempresarial AS email, 
	empleados.fechaingreso fechaIngreso, 
	empleados.salario,
	empleados.duiempleado AS dui, 
	empleados.nitempleado AS nit, 
	puestos.descripcionpuesto AS nombrePuesto, 
	departamentos.coddepartamento, 
	departamentos.nomdepartamento AS nombreDepartamento, 
	detalles.sueldobase, 
	detalles.sueldobruto AS sueldo, 
	detalles.otrosingresos, 
	detalles.vacaciones, 
	detalles.viaticos, 
	detalles.isss, 
	detalles.renta, 
	detalles.afp, 
	detalles.procuraduria, 
	detalles.fsv, 
	detalles.anticipos, 
	detalles.prestamobanco, 
	detalles.prestamointerno, 
	detalles.otrosdescuentos, 
	detalles.sueldoliquido sueldoLiquido, 
	descripciones.descripcion AS descripcionServiciosProfesionales
FROM negocios_a.dbo.pla_planilla_det AS detalles 
INNER JOIN negocios_a.dbo.pla_planilla_enc AS planilla ON detalles.correlativo = planilla.correlativo 
INNER JOIN negocios_a.dbo.gen_empleado AS empleados ON detalles.codempleado = empleados.codempleado 
INNER JOIN negocios_a.dbo.gen_puesto AS puestos ON empleados.codpuesto = puestos.codpuesto 
INNER JOIN negocios_a.dbo.gen_departamento AS departamentos ON empleados.coddepartamento = departamentos.coddepartamento 
LEFT JOIN rrhh.det_descripcionServiciosProfesionalesEmpleados AS descripciones ON empleados.codempresa = descripciones.codempresa AND empleados.codempleado = descripciones.codempleado COLLATE Modern_Spanish_CI_AS

create view rrhh.view_unidadesTrabajo as
select unidades.id,
	unidades.unidadTrabajo,
	0 cantidadEmpleados,
	unidades.fechaRegistro,
	usuarios.nombres +' '+usuarios.apellidos usuario,
	unidades.estado
FROM rrhh.cat_unidadesTrabajo unidades
inner join sistema.datos_usuarios usuarios on unidades.idUsuario = usuarios.id;

alter view rrhh.view_tiposHoraExtra as
SELECT tipos.codtipohoraextra codtipo,
	tipos.nomtipohoraextra tipoHoraExtra,
	tipos.Factor factor,
	tipos.Recargo recargo,
	tipos.aplicaCotizaciones,
	tipos.aplicaRenta,
	tipos.calcularSobreSalario,
	tipos.planillaComplementaria,
	tipos.estado
FROM [negocios_a].dbo.pla_tipo_hora_extra tipos;

alter view rrhh.view_tiposOtrosIngresos as
SELECT tipos.codtipoingreso codtipo,
	tipos.nomtipoingreso tipoOtroIngreso,
	tipos.aplicadescuentoley aplicaCotizaciones,
	tipos.aplicarenta aplicaRenta,
	tipos.planillaComplementaria,
	tipos.estado
FROM [negocios_a].dbo.pla_tipo_ingreso tipos;

create view rrhh.view_bonos as
select bonos.id,
	bonos.codtipoplanilla,
	bonos.idTipo,
	case when bonos.idTipo = 1 then
		'Periódico'
	when bonos.idTipo = 2 then
		'Extraordinario'
	else
		'No definido'
	end tipo,
	bonos.idPeriodicidad,
	bonos.descripcion,
	case when bonos.idPeriodicidad = 1 then
		'Quincenal'
	when bonos.idPeriodicidad = 2 then
		'Mensual'
	else 'Sin definir' end periodicidad,
	bonos.monto,
	(
		isnull((select count(distinct(detalles.idAsignacion)) FROM rrhh.det_bono detalles WHERE detalles.idBono = bonos.id and detalles.estado = 1 and detalles.idTipoAsignacion = 2),0)
		+
		isnull((SELECT COUNT(distinct(empleados.codempleado)) FROM [negocios_a].dbo.gen_empleado empleados where empleados.codtipoplanilla = bonos.codtipoplanilla and empleados.codestado IN(1,4,5) AND empleados.idUnidadTrabajo IN (SELECT distinct(detalles.idAsignacion) FROM rrhh.det_bono detalles WHERE detalles.estado = 1 AND detalles.idBono = bonos.id AND detalles.idTipoAsignacion = 1)),0)
		+
		isnull((SELECT COUNT(distinct(empleados.codempleado)) FROM [negocios_a].dbo.gen_empleado empleados where empleados.codtipoplanilla = bonos.codtipoplanilla and empleados.codestado IN(1,4,5) AND empleados.codpuesto IN (SELECT distinct(detalles.idAsignacion) FROM rrhh.det_bono detalles WHERE detalles.estado = 1 AND detalles.idBono = bonos.id AND detalles.idTipoAsignacion = 3)),0)
	) empleados,
	bonos.fechaRegistro,
	bonos.fechaModificacion,
	bonos.fechaPago,
	bonos.mesPago,
	bonos.planillaPago,
	bonos.pagado,
	null ultimaAplicacion,
	usuarios.nombres + ' ' + usuarios.apellidos usuario,
	bonos.estado
FROM rrhh.datos_bonos bonos
inner join sistema.datos_usuarios usuarios on bonos.idUsuario = usuarios.id;

create view rrhh.view_detallesBono AS
SELECT detalles.id,
	detalles.idBono,
	detalles.idTipoAsignacion,
	case when detalles.idTipoAsignacion = 1 then
		'Unidad de trabajo'
	when detalles.idTipoAsignacion = 2 then
		'Empleado'
	when detalles.idTipoAsignacion = 3 then
		'Cargo'
	else 'No definido' end tipoAsignacion,
	detalles.idAsignacion,
	case when detalles.idTipoAsignacion = 1 then
		(SELECT top(1) unidades.unidadTrabajo COLLATE Modern_Spanish_CI_AS FROM rrhh.cat_unidadesTrabajo unidades where unidades.id = cast(detalles.idAsignacion as int))
	when detalles.idTipoAsignacion = 2 then
		isnull(empleados.nomempleado1,'')+' ' + isnull(empleados.nomempleado2,'')+' ' + isnull(empleados.apellidosempleado1,'')+' ' + ISNULL(empleados.apellidosempleado2,'')
	when detalles.idTipoAsignacion = 3 then
		(select top(1) puestos2.descripcionpuesto FROM [negocios_a].dbo.gen_puesto puestos2 where puestos2.codpuesto = cast(detalles.idAsignacion as int))
	else 'N/A' end asignacion,
	case when detalles.idTipoAsignacion = 2 then
		departamentos.nomdepartamento
	else 'N/A' end nombreDepartamento,
	case when detalles.idTipoAsignacion = 2 then
		puestos.descripcionpuesto
	else 'N/A' end nombrePuesto,
	detalles.fechaRegistro,
	detalles.fechaModificacion,
	usuarios.nombres +' '+usuarios.apellidos usuario,
	detalles.estado
FROM rrhh.det_bono detalles
inner join sistema.datos_usuarios usuarios on detalles.idUsuario = usuarios.id
left join [negocios_a].dbo.gen_empleado empleados on cast(detalles.idAsignacion as varchar) COLLATE Modern_Spanish_CI_AS = cast(empleados.codempleado as varchar)
left join [negocios_a].dbo.gen_departamento departamentos on empleados.coddepartamento = departamentos.coddepartamento
left join [negocios_a].dbo.gen_puesto puestos on empleados.codpuesto = puestos.codpuesto;

alter view rrhh.view_procesosCargaHorasExtras AS
SELECT procesos.id,
	procesos.codtipoplanilla,
	--procesos.correlativoPlanilla,
	--procesos.fechaPago,
	(select top(1) correlativopla from [negocios_a].dbo.pla_horas_extras where idProcesoCarga = procesos.id order by correlativopla desc) correlativoPlanilla,
	(select top(1) cast(fecha as date) from [negocios_a].dbo.pla_planilla_enc where correlativo = (select top(1) correlativopla from [negocios_a].dbo.pla_horas_extras where idProcesoCarga = procesos.id order by correlativopla desc)) fechaPago,
	procesos.mesPago,
	procesos.quincenaPago,
	procesos.fechaProyeccion,
	DATEPART(year,ISNULL(procesos.fechaProyeccion,CAST(getdate() as date))) anio,
	procesos.fechaRegistro,
	usuarios.nombres + ' '+ usuarios.apellidos usuario,
	procesos.estado,
	(select COUNT(distinct(horas.codempleado)) FROM [negocios_a].dbo.pla_horas_extras horas WHERE horas.idProcesoCarga = procesos.id) empleados,
	(SELECT SUM(isnull(horas.valorhoraextra,0)) FROM [negocios_a].dbo.pla_horas_extras horas where horas.idProcesoCarga = procesos.id) monto
FROM rrhh.datos_cargaHorasExtras procesos
inner join sistema.datos_usuarios usuarios on procesos.idUsuario = usuarios.id;

create view rrhh.view_horasExtras AS
SELECT horas.codempresa,
	horas.codtipoplanilla tipoPlanilla,
	tipoPlanilla.nomtipoplanilla nombreTipoPlanilla,
	horas.codempleado,
	horas.descripcionhoraextra concepto,
	horas.codtipohoraextra tipoHora,
	tipoHoras.nomtipohoraextra tipoHoraExtra,
	horas.cantidad,
	horas.Valorhoraextra monto,
	horas.estado,
	horas.cancelado,
	horas.correlativopla,
	horas.correlativo,
	horas.codautoriza,
	(SELECT top(1) ISNULL(empleados.nomempleado1,'')+' '+ISNULL(empleados.nomempleado2,'')+' '+ISNULL(empleados.apellidosempleado1,'') + ISNULL(empleados.apellidosempleado2,'') FROM [negocios_a].dbo.gen_empleado empleados where empleados.codempleado = horas.codempleado) nombreEmpleado,
	horas.idProcesoCarga,
	horas.fechaProyeccion,
	horas.fechaPago,
	horas.fechaRegistro
FROM [negocios_a].dbo.pla_horas_extras horas
inner join [negocios_a].dbo.pla_tipo_hora_extra tipoHoras on horas.codtipohoraextra = tipoHoras.codtipohoraextra
inner join [negocios_a].dbo.pla_tipo_planilla tipoPlanilla on horas.codtipoplanilla = tipoPlanilla.codtipoplanilla;

alter view rrhh.view_procesosCargaOtrosIngresos AS
SELECT procesos.id,
	procesos.codtipoplanilla,
	--procesos.correlativoPlanilla,
	--procesos.fechaPago,
	(select top(1) correlativopla from [negocios_a].dbo.pla_otros_ingresos where idProcesoCarga = procesos.id order by correlativopla desc) correlativoPlanilla,
	(select top(1) cast(fecha as date) from [negocios_a].dbo.pla_planilla_enc where correlativo = (select top(1) correlativopla from [negocios_a].dbo.pla_otros_ingresos where idProcesoCarga = procesos.id order by correlativopla desc)) fechaPago,
	procesos.mesPago,
	procesos.quincenaPago,
	procesos.fechaProyeccion,
	DATEPART(year,ISNULL(procesos.fechaProyeccion,CAST(getdate() as date))) anio,
	procesos.fechaRegistro,
	usuarios.nombres + ' '+ usuarios.apellidos usuario,
	procesos.estado,
	(select COUNT(distinct(oi.codempleado)) FROM [negocios_a].dbo.pla_otros_ingresos oi WHERE oi.idProcesoCarga = procesos.id) empleados,
	(SELECT SUM(isnull(oi.valoringreso,0)) FROM [negocios_a].dbo.pla_otros_ingresos oi where oi.idProcesoCarga = procesos.id) monto
FROM rrhh.datos_cargaOtrosIngresos procesos
inner join sistema.datos_usuarios usuarios on procesos.idUsuario = usuarios.id;

create view rrhh.view_otrosIngresos AS
SELECT oi.codempresa,
	oi.codtipoplanilla tipoPlanilla,
	tipoPlanilla.nomtipoplanilla nombreTipoPlanilla,
	oi.codempleado,
	oi.descripcioningreso concepto,
	oi.codtipoingreso tipoIngreso,
	tipoIngreso.nomtipoingreso tipoOtroIngreso,
	oi.valoringreso monto,
	oi.estado,
	oi.cancelado,
	oi.correlativopla,
	oi.correlativo,
	oi.codautoriza,
	(SELECT top(1) ISNULL(empleados.nomempleado1,'')+' '+ISNULL(empleados.nomempleado2,'')+' '+ISNULL(empleados.apellidosempleado1,'') + ISNULL(empleados.apellidosempleado2,'') FROM [negocios_a].dbo.gen_empleado empleados where empleados.codempleado = oi.codempleado) nombreEmpleado,
	oi.idProcesoCarga,
	oi.fechaProyeccion,
	oi.fechaPago,
	oi.fechaRegistro
FROM [negocios_a].dbo.pla_otros_ingresos oi
inner join [negocios_a].dbo.pla_tipo_ingreso tipoIngreso on oi.codtipoingreso = tipoIngreso.codtipoingreso
inner join [negocios_a].dbo.pla_tipo_planilla tipoPlanilla on oi.codtipoplanilla = tipoPlanilla.codtipoplanilla;

alter view rrhh.view_gestionEmpleados as
select empleados.codempleado,
	empleados.codempresa,
	empleados.codtipoplanilla,
	(select top(1) tipos.nomtipoplanilla from [negocios_a].dbo.pla_tipo_planilla tipos where tipos.codtipoplanilla = empleados.codtipoplanilla) tipoPlanilla,
	empleados.nombreArchivoFoto,
	empleados.nomempleado1 primerNombre,
	empleados.nomempleado2 segundoNombre,
	empleados.apellidosempleado1 primerApellido,
	empleados.apellidosempleado2 segundoApellido,
	empleados.codsucursal,
	(select top(1) sucursales.nomsucursal from [negocios_a].dbo.gen_sucursal sucursales where sucursales.codsucursal = empleados.codsucursal) nombreSucursal,
	empleados.codproyecto,
	(select top(1) proyectos.nomproyecto from [negocios_a].dbo.gen_proyecto proyectos where proyectos.codproyecto = empleados.codproyecto) nombreProyecto,
	1 idTipoDocumento,
	'DUI' tipoDocumento,
	empleados.duiempleado numeroDocumento,
	empleados.nitempleado nit,
	case when empleados.sexo = 1 then
		'M'
	else
		'F'
	END genero,
	empleados.codestadocivil idEstadoCivil,
	empleados.apellidocasadaempleado apellidoCasada,
	empleados.conocidopor conocidoPor,
	cast(empleados.fechanacimiento as date) fechaNacimiento,
	empleados.codpais idPais,
	empleados.coddeptodir idDepartamento,
	empleados.codmunicipiodir idMunicipio,
	empleados.direccion,
	empleados.idUnidadTrabajo,
	(select top(1) unidades.unidadTrabajo from rrhh.cat_unidadesTrabajo unidades where unidades.id = empleados.idUnidadTrabajo) unidadTrabajo,
	empleados.telefono telefonoFijo,
	empleados.celular telefonoMovil,
	empleados.coddepartamento,
	empleados.codpuesto,
	(select top(1) departamentos.nomdepartamento FROM [negocios_a].dbo.gen_departamento departamentos where departamentos.coddepartamento = empleados.coddepartamento) nombreDepartamentoEmpresa,
	(select top(1) puestos.descripcionpuesto FROM [negocios_a].dbo.gen_puesto puestos WHERE puestos.codpuesto = empleados.codpuesto) nombrePuesto,
	empleados.codprofesion,
	(select top(1) profesiones.nomprofesion FROM [negocios_a].dbo.gen_profesion profesiones where profesiones.codprofesion = empleados.codprofesion) nombreProfesion,
	empleados.fechadui fechaEmisionDUI,
	empleados.fechaVencimientoDUI,
	empleados.codjefe,
	empleados.codestado,
	(select top(1) estados.nomestado FROM [negocios_a].dbo.pla_estado_empleado estados WHERE estados.codestado = empleados.codestado) nombreEstado,
	cast(empleados.fechaingreso as date) fechaIngreso,
	empleados.cotizaisss,
	cast(empleados.fechacotiza as date) fechaInicioCotizacion,
	empleados.isssempleado,
	empleados.codafp,
	empleados.nupempleado,
	empleados.salario,
	empleados.pagocontarjetasn pagoPorTransaccion,
	empleados.codbanco,
	empleados.numcta numeroCuenta,
	empleados.numtarjeta numeroTarjeta,
	empleados.correoempresarial email
FROM [negocios_a].dbo.gen_empleado empleados;

alter view rrhh.view_departamentos as
select departamentos.coddepartamento,
	departamentos.nomdepartamento nombreDepartamento
FROM [negocios_a].dbo.gen_departamento departamentos
WHERE LEN(RTRIM(LTRIM(departamentos.nomdepartamento))) > 0

alter view rrhh.view_puestos as
select puestos.codpuesto,
	puestos.descripcionpuesto nombrePuesto
from [negocios_a].dbo.gen_puesto puestos
WHERE LEN(RTRIM(LTRIM(puestos.descripcionpuesto))) > 0;

create view rrhh.view_estadosEmpleado as
select estados.codestado,
	estados.nomestado estado
FROM [negocios_a].dbo.pla_estado_empleado estados;

create view rrhh.view_licenciasArmasEmpleado as
select licencias.id,
	licencias.codempleado,
	licencias.numeroLicencia,
	licencias.fechaEmision,
	licencias.fechaExpira,
	licencias.enEmergenciaLlamar,
	licencias.numeroRegistro,
	licencias.tipoSangre,
	licencias.telefono,
	licencias.estado,
	usuarios.nombres +' '+ usuarios.apellidos usuario
FROM rrhh.det_licenciasArmasEmpleado licencias
inner join sistema.datos_usuarios usuarios on licencias.idUsuario = usuarios.id;

create view rrhh.view_adjuntosEmpleado as
SELECT adjuntos.id,
	adjuntos.codempleado,
	adjuntos.nombreDocumento,
	adjuntos.nombreArchivo,
	adjuntos.idTipoDocumento,
	tipos.tipoDocumento,
	adjuntos.tipoArchivo,
	adjuntos.estado,
	usuarios.nombres+' '+usuarios.apellidos usuario
FROM rrhh.det_adjuntosEmpleado adjuntos
inner join sistema.datos_usuarios usuarios on adjuntos.idUsuario = usuarios.id
inner join general.cat_tiposDocumentosAdjuntos tipos on adjuntos.idTipoDocumento = tipos.id;

create view rrhh.view_tiposMovimientoEmpleado as
SELECT tipos.id,
	tipos.tipoMovimiento,
	tipos.fechaRegistro,
	tipos.estado
from rrhh.cat_tiposMovimientoEmpleado tipos;

alter view rrhh.view_movimientosEmpleados as
select movimientos.id,
	movimientos.codtipoplanilla,
	(select top(1) planillas.nomtipoplanilla from [negocios_a].dbo.pla_tipo_planilla planillas where planillas.codtipoplanilla = movimientos.codtipoplanilla) tipoPlanilla,
	movimientos.codempleado,
	(select top(1) empleados.nombreArchivoFoto from [negocios_a].dbo.gen_empleado empleados where empleados.codempleado collate Modern_Spanish_CI_AS = movimientos.codempleado) nombreArchivoFoto,
	movimientos.nombreCompleto,
	movimientos.idTipoMovimiento,
	tipos.tipoMovimiento,
	movimientos.coddepartamento,
	movimientos.codpuesto,
	movimientos.codsucursal,
	movimientos.codproyecto,
	movimientos.codsucursalMovimiento,
	movimientos.codproyectoMovimiento,
	movimientos.idOficina,
	movimientos.fechaEfectiva,
	movimientos.fechaRetorno,
	movimientos.comentarios,
	usuarios.nombres + ' ' + usuarios.apellidos usuario,
	movimientos.fechaRegistro,
	'Sin definir' nombreOficina,
	movimientos.estado,
	(select top(1) sucursales.nomsucursal from [negocios_a].dbo.gen_sucursal sucursales where sucursales.codsucursal = movimientos.codsucursal) nombreSucursal,
	(select top(1) proyectos.nomproyecto from [negocios_a].dbo.gen_proyecto proyectos where proyectos.codproyecto = movimientos.codproyecto) nombreProyecto,
	(select top(1) sucursales.nomsucursal from [negocios_a].dbo.gen_sucursal sucursales where sucursales.codsucursal = movimientos.codsucursalMovimiento) nombreSucursalMovimiento,
	(select top(1) proyectos.nomproyecto from [negocios_a].dbo.gen_proyecto proyectos where proyectos.codproyecto = movimientos.codproyectoMovimiento) nombreProyectoMovimiento
from rrhh.datos_movimientosEmpleados movimientos
inner join rrhh.cat_tiposMovimientoEmpleado tipos on movimientos.idTipoMovimiento = tipos.id
inner join sistema.datos_usuarios usuarios on movimientos.idUsuario = usuarios.id;
