ALTER PROCEDURE [dbo].[sp_RemDatosPlantillaDocumentosWeb] 
(@diseño INT = 0,
@tipo INT = 1,
@periodo INT = 0,
@mes INT = 0,
@fichaini INT = 1,
@fichafin INT = 999999999,
@rutempresa VARCHAR(50) = '0',
@codigo INT = 0)
AS

	SET NOCOUNT ON

	IF @diseño = 1 --DISEÑO
	BEGIN
		SELECT
			@fichaini = MIN(ficha)
		FROM remTrabajadores
		WHERE (periodo = @periodo
		AND mes = @mes)
		SET @fichafin = @fichaini
	END

	--IF @diseño=4 --DISEÑO
	--BEGIN
	--	SELECT @fichaini = MIN(FICHA)  FROM remFiniquito
	--	WHERE (periodo=@periodo and mes=@mes) 
	--SET @fichafin=@fichaini
	--END

	DECLARE @fecha DATE
		   ,@fechaf DATE
	DECLARE @DayOfMonth TINYINT
	SET @DayOfMonth = 1
	DECLARE @Month TINYINT
	SET @Month = @mes
	DECLARE @Year INTEGER
	SET @Year = @periodo
	DECLARE @diasmes AS INTEGER

	SET @fecha = DATEADD(DAY, @DayOfMonth - 1, DATEADD(MONTH, @Month - 1, DATEADD(YEAR, @Year - 1900, 0)))
	SET @fechaf = (DATEADD(ms, -2, DATEADD(MONTH, DATEDIFF(MONTH, 0, @fecha) + 1, 0)))

	--Select @fecha
	--Select @fechaf


	--select @fichaini=min(a.ficha) from
	--(select top 10 ficha from remTrabajadores
	--order by ficha asc) a

	--select @fichafin=max(a.ficha) from
	--(select top 10 ficha from remTrabajadores
	--order by ficha asc) a
	--END
	--1 - PLAZO FIJO
	--2 - PLAZO INDEFINIDO
	--3 - POR FAENA

	EXEC sp_Registro_Sel @rutempresa

	SELECT
		concat(t.periodo, t.mes) as claveFecha
		,T.mes
	   ,T.periodo
	   ,T.ficha
	   ,T.activo
	   ,T.rut
	   ,T.dv
	   ,T.extranjero
	   ,CASE T.extranjero
			WHEN 1 THEN 'CHILENA'
			WHEN 2 THEN 'EXTRANJERA'
			WHEN 3 THEN 'EXTRANJERA/NO COTIZA'
		END AS descripextranjero
	   ,T.nombres
	   ,T.apePaterno
	   ,T.apeMaterno
	   ,T.fechaNac
	   ,dbo.NumeroMesTexto(MONTH(T.fechaNac)) AS 'fechaNac_mes_desc'
	   ,T.sexo
	   ,T.cargo
	   ,T.profesion
	   ,T.direccion
	   ,T.comuna
	   ,priComuna.descripcion AS descripComuna
	   ,T.ciudad
	   ,ISNULL(priRegion.descripcion, '') AS region
	   ,ISNULL(priComuna.codComunaLibroRem, 0) AS codComunaLibroRem
	   ,ISNULL(priRegion.codRegionLibroRem, 0) AS codRegionLibroRem
	   ,T.codSucursal
	   ,T.nomSucursal
	   ,T.dirSucursal
	   ,T.comSucursal
	   ,priComuna2.descripcion AS descripComSucursal
	   ,T.ciuSucursal
	   ,ISNULL(priRegion2.descripcion, '') AS regSucursal
	   ,ISNULL(priComuna2.codComunaLibroRem, 0) AS codComSucLibroRem
	   ,ISNULL(priRegion2.codRegionLibroRem, 0) AS codRegSucLibroRem
	   ,T.pais
	   ,T.telefonoPart
	   ,T.telefonoEmp
	   ,T.celularPart
	   ,T.celularEmp
	   ,T.correoPart
	   ,T.correoEmp
	   ,T.estadocivil
	   ,T.seccion
	   ,T.departamento
	   ,T.unidadNegocios
	   ,T.fechaingreso
	     ,dbo.NumeroMesTexto(MONTH(T.fechaingreso)) AS 'fechaIngre_mes_desc'
	   ,T.fechacontrato
	     ,dbo.NumeroMesTexto(MONTH(T.fechacontrato)) AS 'fechaContra_mes_desc'
	   ,T.tipocontrato
	   ,CASE T.tipocontrato
			WHEN 1 THEN 'PLAZO FIJO'
			WHEN 2 THEN 'PLAZO INDEFINIDO'
			WHEN 3 THEN 'POR FAENA'
			ELSE ''
		END AS tipoContratoDescripcion
	   ,T.fechatermino
	   ,T.fechaTerminoExt
	   ,T.fechaFiniquito
	      ,dbo.NumeroMesTexto(MONTH(T.fechaFiniquito)) AS 'fechaFini_mes_desc'
	   ,T.tiposueldo
	   ,T.sueldobase
	   ,T.tipojornada
	   ,T.cantidadHoras
	   ,T.tipoMovilizacion
	   ,T.montoMovilizacion
	   ,T.tipoColacion
	   ,T.montoColacion
	   ,T.rentaPromedio
	   ,T.formaPago
	   ,T.numCuenta
	   ,T.banco
	   ,T.tipoTrabajador
	   ,T.regimenPrevisional
	   ,T.idPrevision
	   ,T.porcPrevision
	   ,T.tipoAhorroAFP
	   ,T.montoAhorroAFP
	   ,T.segcesantia
	   ,T.idDesahucio
	   ,T.porcDesahucio
	   ,T.regimenSalud
	   ,T.instSalud
	   ,T.monedaSalud
	   ,T.pactadoSalud
	   ,T.periodosRecon
	   ,T.bienestar
	   ,T.modoBienestar
	   ,T.montoBienestar
	   ,T.idSindicato
	   ,T.modoSindicato
	   ,T.montoSindicato
	   ,T.servMedico
	   ,T.smedicoNormal
	   ,T.smedicoMaternal
	   ,T.smedicoEspecial
	   ,T.idApvi1
	   ,T.contratoApvi1
	   ,T.formapagoApvi1
	   ,T.modoApvi1
	   ,T.montoApvi1
	   ,T.idApvi2
	   ,T.contratoApvi2
	   ,T.formapagoApvi2
	   ,T.modoApvi2
	   ,T.montoApvi2
	   ,T.idApvi3
	   ,T.contratoApvi3
	   ,T.formapagoApvi3
	   ,T.modoApvi3
	   ,T.montoApvi3
	   ,T.idApvc1
	   ,T.contratoApvc1
	   ,T.modoApvc1
	   ,T.formapagoApvc1
	   ,T.montoApvc1
	   ,T.saldoperiodoanterior
	   ,T.areconocidos
	   ,T.moneda
	   ,T.montoretencionJudicial
	   ,T.coment1
	   ,T.coment2
	   ,T.coment3
	   ,T.coment4
	   ,T.CargaNormal
	   ,T.CargaInvalida
	   ,T.imagen
	   ,T.loging
	   ,T.fecing
	   ,T.logmod
	   ,T.fecmod
	   ,conUnidadNegocio.descripcion AS uninegdesc
	   ,remDepartamentos.descripcion AS despartamentodesc
	   ,remSecciones.descripcion AS secciondesc
	   ,remCargos.descripcion AS cargodesc
	   ,remProfesiones.descripcion AS profesiondesc
	   ,remPrevisiones.descripcion AS nomprevision
	   ,remPrevisiones.cotizacion AS cotizacion
	   ,remIsapre.descripcion AS nomIsapre
	   ,DATENAME(MONTH, DATEADD(MONTH, T.mes, -1)) AS mesdesc
	   ,dbo.RemDiasTrabajados(T.ficha, T.periodo, T.mes, T.fechacontrato, T.fechaFiniquito, T.tipojornada) AS diastrabajados
	   ,dbo.RemDiasMovPersonal(T.ficha, T.periodo, T.mes, 3) AS diassubsidios
	   ,dbo.RemDiasMovPersonal(T.ficha, T.periodo, T.mes, 4) AS diaspermisos
	   ,dbo.RemDiasMovPersonal(T.ficha, T.periodo, T.mes, 6) AS diasaccidentes
	   ,dbo.RemDiasMovPersonal(T.ficha, T.periodo, T.mes, 11) AS diasausencia
	   ,CASE T.regimenPrevisional
			WHEN 1 THEN 'AFP'
			WHEN 2 THEN 'IPS(EX-INP)'
			WHEN 3 THEN 'SIN INSTITUCIÓN PREVISIONAL'
		END AS nomregprevicional
	   ,CASE T.regimenSalud
			WHEN 1 THEN 'FONASA'
			WHEN 2 THEN 'ISAPRE'
		END AS nomregsalud
	   ,CASE T.monedaSalud
			WHEN 1 THEN '%'
			WHEN 2 THEN 'UF'
			WHEN 3 THEN '$'
		END AS nommonedaSalud
	   ,tramoasigfamiliar
	   ,tramoimpuesto
	   ,dbo.MontoaLetras(T.ficha, T.periodo, T.mes) AS liquidacionLetras
	   ,CASE
			WHEN YEAR(T.fechacontrato) = YEAR(@fecha) AND
				MONTH(T.fechacontrato) = MONTH(@fecha) THEN (DATEDIFF(DAY, @fecha, T.fechacontrato)) + 1
			ELSE 0
		END AS diascontrato
	   ,CASE
			WHEN YEAR(T.fechaFiniquito) = YEAR(@fecha) AND
				MONTH(T.fechaFiniquito) = MONTH(@fecha) THEN (DATEDIFF(DAY, T.fechaFiniquito, @fechaf))
			ELSE 0
		END diasfiniquito
	   ,CASE T.tipoTrabajador
			WHEN 0 THEN 'ACTIVO'
			WHEN 1 THEN 'PENSIONADO Y COTIZA'
			WHEN 2 THEN 'PENSIONADO (NO COTIZA)'
			WHEN 3 THEN 'ACTIVO > 65 AÑOS (NUNCA PENSIONADO)'
		END tipotrabajadordesc
	   ,remCargos.descripcion AS desccargo
	   ,remProfesiones.descripcion AS descprofesion
	   ,remDepartamentos.descripcion AS descdepartamento
	   ,remSecciones.descripcion AS descseccion
	   ,remFormasPago.descripcion AS descformapago
	   ,COALESCE(conBancos.nombre, '') AS descbanco
	   ,RTRIM(T.apePaterno) + ' ' + RTRIM(T.apeMaterno) + ' ' + RTRIM(T.nombres) AS nombrecompleto
	   ,dbo.CalcEdad([fechaNac], GETDATE()) AS edad
	   ,T.CargaMaternal

	FROM remTrabajadores AS T
	LEFT OUTER JOIN conBancos
		ON T.banco = conBancos.idBanco
	LEFT OUTER JOIN remFormasPago
		ON T.formaPago = remFormasPago.idFormaPago
	LEFT OUTER JOIN remIsapre
		ON T.periodo = remIsapre.periodo
			AND T.mes = remIsapre.mes
			AND T.instSalud = remIsapre.idIsapre
	LEFT OUTER JOIN remPrevisiones
		ON T.mes = remPrevisiones.mes
			AND T.periodo = remPrevisiones.periodo
			AND T.regimenPrevisional = remPrevisiones.idRegimen
			AND T.idPrevision = remPrevisiones.idPrevision
	LEFT OUTER JOIN remProfesiones
		ON T.profesion = remProfesiones.idProfesion
	LEFT OUTER JOIN remCargos
		ON T.cargo = remCargos.idCargo
	LEFT OUTER JOIN remSecciones
		ON T.departamento = remSecciones.idDepartamento
			AND T.seccion = remSecciones.idSeccion
	LEFT OUTER JOIN remDepartamentos
		ON T.departamento = remDepartamentos.idDepartamento
	LEFT OUTER JOIN conUnidadNegocio
		ON T.unidadNegocios = conUnidadNegocio.idUniNeg
	LEFT OUTER JOIN priComuna
		ON T.comuna = priComuna.idComuna
	LEFT OUTER JOIN priRegion 
		ON priComuna.idRegion = priRegion.idRegion
	LEFT OUTER JOIN priComuna priComuna2 
		ON T.comSucursal = priComuna2.idComuna
	LEFT OUTER JOIN priRegion priRegion2 
		ON priComuna2.idRegion = priRegion2.idRegion

	WHERE T.activo = 1
	AND (T.periodo = @periodo
	AND T.mes = @mes)
	AND (T.ficha BETWEEN @fichaini AND @fichafin)

	
	IF @tipo = 1   ----CONTRATOS  
	BEGIN

		SELECT TOP (1)
			remContratos.id AS contrato
		   ,remContratos.periodo
		   ,remContratos.mes
		   ,remContratos.ficha
		   ,remContratos.fechaingreso
		   ,dbo.NumeroMesTexto(MONTH(remContratos.fechaingreso)) AS 'fechaingreso_mes_desc'
		   ,remContratos.fechacontrato
		   ,dbo.NumeroMesTexto(MONTH(remContratos.fechacontrato)) AS 'fechacontrato_mes_desc'
		   ,fechatermino
		   ,dbo.NumeroMesTexto(MONTH(remContratos.fechatermino)) AS 'fechatermino_mes_desc'
		   ,remContratos.formato
		   ,remContratos.tiposueldo
		   ,remContratos.sueldo
		   ,dbo.MontoTexto(dbo.remContratos.sueldo) AS sueldoLetras
		   ,remContratos.sueldobase
		   ,remContratos.estadocivil
		   ,CASE remContratos.estadocivil
				WHEN 0 THEN 'SOLTERO(A)'
				WHEN 1 THEN 'CASADO(A)'
				WHEN 2 THEN 'VIUDO(A)'
				WHEN 3 THEN 'DIVORCIADO(A)'
				WHEN 4 THEN 'SEPARADO(A)'
				WHEN 5 THEN 'CONVIVIENTE'
			END AS descripEstadoCivil
			-- monto en letras
		   ,dbo.MontoTexto(dbo.remContratos.sueldobase) AS sueldoBaseLetras
		   ,remContratos.colacion
		   ,dbo.MontoTexto(dbo.remContratos.colacion) AS colacionLetras
		   ,remContratos.movilizacion
		   ,dbo.MontoTexto(dbo.remContratos.colacion) AS movilizacionLetras
		   ,remContratos.tipocontrato
		   ,CASE remContratos.tipocontrato
				WHEN 1 THEN 'PLAZO FIJO'
				WHEN 2 THEN 'PLAZO INDEFINIDO'
				WHEN 3 THEN 'POR FAENA'
				ELSE ''
			END AS tipoContratoDescripcion
		   ,remContratos.tipojornada
		   ,remContratos.horascontrato
		   ,remContratos.pais
		   ,remContratos.lugar
		   ,remContratos.sucursal
		   ,remContratos.cargo
		   ,remContratos.horario
		   ,remContratos.archivo
		   ,remContratos.nombarchivo
		   ,remContratos.coment1
		   ,remContratos.coment2
		   ,priSucursales.nomsuc
		   ,priSucursales.dirsuc
		   ,priSucursales.comsuc
		   ,priComuna.descripcion
		   ,priRegion.idRegion
		   ,priRegion.descripcion AS region
		   ,remContratos.loging
		   ,remContratos.fecing
		   ,remContratos.logmod
		   ,remContratos.fecmod
		FROM priComuna
		INNER JOIN priSucursales
			ON priComuna.idComuna = priSucursales.comsuc
		INNER JOIN priRegion
			ON priComuna.idRegion = priRegion.idRegion
		RIGHT OUTER JOIN remContratos
			ON priSucursales.codsuc = remContratos.sucursal

		WHERE id = @codigo
		OR @diseño = 1

	---Otras tablas
	END


	IF @tipo IN (3,1) --LIQUIDACION 
	BEGIN
		--HABERES 2
		SELECT
			remConceptos.idConcepto
		   ,remConceptos.descripcion
		   ,COALESCE(remMovimientosHD.valor, 0) AS valor
		   ,imponible
		   ,libroDetalle
		   ,tributableRebaja
		   ,imponible
		   ,aLiquidacion
		   ,conCero
		   ,enCuotas
		   ,ctacontable
		   ,idclasificacion
		   ,tipodato
		   ,desde
		   ,hasta
		   ,tablavariable
		   ,tipoarastre
		   ,remMovimientosHD.cantcuotas
		   ,remMovimientosHD.cuotaactual
		   ,remMovimientosHD.ficha

		FROM remConceptos
		LEFT OUTER JOIN remMovimientosHD
			ON remConceptos.tipoConcepto = remMovimientosHD.tipoConcepto
				AND remConceptos.mes = remMovimientosHD.mes
				AND remConceptos.periodo = remMovimientosHD.periodo
				AND remConceptos.idConcepto = remMovimientosHD.idConcepto

		WHERE (remConceptos.tipoConcepto = 'H')
		AND (remMovimientosHD.valor > 0
		OR conCero = 1)
		AND (ficha BETWEEN @fichaini AND @fichafin)
		AND (remConceptos.periodo = @periodo
		AND remConceptos.mes = @mes)

		ORDER BY remConceptos.idConcepto

		--DESCUENTOS 3
		SELECT
			remConceptos.idConcepto
		   ,remConceptos.descripcion
		   ,COALESCE(remMovimientosHD.valor, 0) AS valor
		   ,imponible
		   ,libroDetalle
		   ,tributableRebaja
		   ,imponible
		   ,aLiquidacion
		   ,conCero
		   ,enCuotas
		   ,ctacontable
		   ,idclasificacion
		   ,tipodato
		   ,desde
		   ,hasta
		   ,tablavariable
		   ,tipoarastre
		   ,remMovimientosHD.cantcuotas
		   ,remMovimientosHD.cuotaactual
		   ,remMovimientosHD.ficha

		FROM remConceptos
		LEFT OUTER JOIN remMovimientosHD
			ON remConceptos.tipoConcepto = remMovimientosHD.tipoConcepto
				AND remConceptos.mes = remMovimientosHD.mes
				AND remConceptos.periodo = remMovimientosHD.periodo
				AND remConceptos.idConcepto = remMovimientosHD.idConcepto

		WHERE (remConceptos.tipoConcepto = 'D')
		AND (remMovimientosHD.valor > 0
		OR conCero = 1)
		AND (ficha BETWEEN @fichaini AND @fichafin)
		AND (remConceptos.periodo = @periodo
		AND remConceptos.mes = @mes)

		ORDER BY remConceptos.idConcepto

		--MENSUALES 4
		SELECT
			remMovimientosRM.idConcepto
		   ,remConceptos.descripcion
		   ,remMovimientosRM.valor
		   ,imponible
		   ,libroDetalle
		   ,tributableRebaja
		   ,imponible
		   ,aLiquidacion
		   ,conCero
		   ,enCuotas
		   ,ctacontable
		   ,idclasificacion
		   ,tipodato
		   ,desde
		   ,hasta
		   ,tablavariable
		   ,tipoarastre
		   ,remMovimientosRM.ficha

		FROM remMovimientosRM
		INNER JOIN remConceptos
			ON remMovimientosRM.periodo = remConceptos.periodo
				AND remMovimientosRM.mes = remConceptos.mes
				AND remMovimientosRM.tipoConcepto = remConceptos.tipoConcepto
				AND remMovimientosRM.idConcepto = remConceptos.idConcepto

		WHERE (remMovimientosRM.tipoConcepto = 'M')
		AND (remMovimientosRM.periodo = @periodo
		AND remMovimientosRM.mes = @mes)
		AND (ficha BETWEEN @fichaini AND @fichafin)
		AND (remConceptos.periodo = @periodo
		AND remConceptos.mes = @mes)

		--RESULTADOS 5
		SELECT
			remMovimientosRM.idConcepto
		   ,remConceptos.descripcion
		   ,remMovimientosRM.valor
		   ,remMovimientosRM.ficha
		   ,remMovimientosRM.ficha

		FROM remMovimientosRM
		INNER JOIN remConceptos
			ON remMovimientosRM.periodo = remConceptos.periodo
				AND remMovimientosRM.mes = remConceptos.mes
				AND remMovimientosRM.tipoConcepto = remConceptos.tipoConcepto
				AND remMovimientosRM.idConcepto = remConceptos.idConcepto

		WHERE (remMovimientosRM.tipoConcepto = 'R')
		AND (remMovimientosRM.periodo = @periodo
		AND remMovimientosRM.mes = @mes)
		AND (ficha BETWEEN @fichaini AND @fichafin)
		AND (remConceptos.periodo = @periodo
		AND remConceptos.mes = @mes)

		-- DATOS PLANTILLA 6
		SELECT
			codigo
		   ,descripcion
		   ,resultado
		   ,remTrabajadores.ficha
		   ,dbo.remValorResultado(DP.periodo, DP.mes, ficha, RESULTADO) AS valor

		FROM remDatosPlanilla AS DP
		INNER JOIN remTrabajadores
			ON DP.periodo = remTrabajadores.periodo
				AND DP.mes = remTrabajadores.mes

		WHERE (DP.periodo = @periodo)
		AND (DP.mes = @mes)
		AND (ficha BETWEEN @fichaini AND @fichafin)

		-- MOVIMIENTOS PERSONAL - 7
		SELECT
			remMovPersonal.codMovimiento
		   ,remTablaMovPersonal.descripcion
		   ,remMovPersonal.fechaInicio
		   ,remMovPersonal.fechatermino
		   ,remMovPersonal.documento
		   ,remMovPersonal.comentario
		   ,remMovPersonal.dias
		   ,remTrabajadores.ficha

		FROM remMovPersonal
		INNER JOIN remTrabajadores
			ON remMovPersonal.periodo = remTrabajadores.periodo
				AND remMovPersonal.mes = remTrabajadores.mes
				AND remMovPersonal.ficha = remTrabajadores.ficha
		INNER JOIN remTablaMovPersonal
			ON remMovPersonal.codMovimiento = remTablaMovPersonal.codigo

		WHERE (remMovPersonal.periodo = @periodo
		AND remMovPersonal.mes = @mes)
		AND (remTrabajadores.ficha BETWEEN @fichaini AND @fichafin)

		--FACTORES 8
		SELECT
			[codigo]
		   ,[descripcion]
		   ,[tipodato]
		   ,[valor]

		FROM [remFactores]

		WHERE (periodo = @periodo)
		AND (mes = @mes)

		--DATOS FIJOS FICHA

		SELECT 
			remDatosFijosFicha.idconcepto
			,remConceptos.descripcion
			,remDatosFijosFicha.valor
			,remDatosFijosFicha.ficha
	
		FROM remDatosFijosFicha
			INNER JOIN remConceptos ON remDatosFijosFicha.periodo = remConceptos.Periodo
					AND remDatosFijosFicha.mes =  remConceptos.mes
					AND remDatosFijosFicha.idconcepto =  remConceptos.idConcepto

		WHERE (remConceptos.tipoConcepto = 'F')
		AND (remDatosFijosFicha.periodo = @periodo
		AND remDatosFijosFicha.mes = @mes)
		AND (remDatosFijosFicha.ficha BETWEEN @fichaini AND @fichafin)
		AND (remConceptos.periodo = @periodo
		AND remConceptos.mes = @mes)

	END
	

	IF @tipo IN (5, 6)
	BEGIN
		-- REGISTRO

		SELECT
			(1) tipo
		   ,idsolicitud
		   ,remVacaciones.periodo
		   ,remVacaciones.mes
		   ,remVacaciones.ficha
		   ,fecha
		   ,CONVERT(DATE, fechainicio) AS fechainicio
		   ,dbo.NumeroMesTexto(MONTH(fechainicio)) AS mesFechaInicioDesc
		   ,diashabiles
		   ,diasinhabiles
		   ,CONVERT(DATE, remVacaciones.fechatermino) AS fechatermino
		   ,dbo.NumeroMesTexto(MONTH(remVacaciones.fechatermino)) AS mesFechaTerminoDesc
		   ,comentario
		   ,estado
		   ,saldoinicial
		   ,tomadoinicial
		   ,diasderecho
		   ,diasprogresivos
		   ,diastomados
		   ,saldoactual
		   ,saldodespues
		   ,diasderechovacaciones
		   ,saldoderechodesferiado
		   ,diasacumulados
		   ,saldoacumulado
		   ,diasproximoperiodo
		   ,diasperiodosvencidos
		   ,saldoperiodovencido
		   ,remVacaciones.fechainicioperiodo
		   ,diasperiodoactual
		   ,diastomadosactual
		   ,saldodespuesferiado
		   ,remTrabajadores.fechainivacprog
		   ,remTrabajadores.diasprogresivostomados
		   ,ISNULL(remTrabajadores.vacacionesProgresivas, 0) AS vacacionesProgresivas
		   ,remVacaciones.loging
		   ,remVacaciones.fecing
		   ,remVacaciones.logmod
		   ,remVacaciones.fecmod
		   ,logingaprob
		   ,fecingaprob

		FROM remVacaciones INNER JOIN 
			 remTrabajadores ON remVacaciones.ficha = remTrabajadores.ficha
			 AND remVacaciones.periodo = remTrabajadores.periodo
			 AND remVacaciones.mes = remTrabajadores.mes

		WHERE
		--(periodo=@periodo OR @periodo=0)
		--AND (mes=@mes OR @mes=0)
		--AND 
		(remVacaciones.ficha BETWEEN @fichaini AND @fichafin)
		AND (idsolicitud = @codigo
		OR @codigo = 0)
		AND (tipo = 1)
		AND (progresivas =
		CASE
			WHEN @tipo = 5 THEN 0
			ELSE 1
		END)
	END

	IF @tipo = 8
	BEGIN
		-- REGISTRO

		SELECT
			(1) tipo
		   ,idsolicitud
		   ,remVacaciones.periodo
		   ,remVacaciones.mes
		   ,remVacaciones.ficha
		   ,fecha
		   ,CONVERT(DATE, fechainicio) AS fechainicio
		   ,diashabiles
		   ,diasinhabiles
		   ,CONVERT(DATE, remVacaciones.fechatermino) AS fechatermino
		   ,comentario
		   ,estado
		   ,saldoinicial
		   ,tomadoinicial
		   ,diasderecho
		   ,diasprogresivos
		   ,diastomados
		   ,saldoactual
		   ,saldodespues
		   ,diasderechovacaciones
		   ,saldoderechodesferiado
		   ,diasacumulados
		   ,saldoacumulado
		   ,diasproximoperiodo
		   ,diasperiodosvencidos
		   ,saldoperiodovencido
		   ,remVacaciones.fechainicioperiodo
		   ,diasperiodoactual
		   ,diastomadosactual
		   ,saldodespuesferiado
		   ,remTrabajadores.fechainivacprog
		   ,remTrabajadores.diasprogresivostomados
		   ,ISNULL(remTrabajadores.vacacionesProgresivas, 0) AS vacacionesProgresivas
		   ,remVacaciones.loging
		   ,remVacaciones.fecing
		   ,remVacaciones.logmod
		   ,remVacaciones.fecmod
		   ,logingaprob
		   ,fecingaprob

		FROM remVacaciones INNER JOIN 
			 remTrabajadores ON remVacaciones.ficha = remTrabajadores.ficha
			 AND remVacaciones.periodo = remTrabajadores.periodo
			 AND remVacaciones.mes = remTrabajadores.mes

		WHERE
		--(periodo=@periodo OR @periodo=0)
		--AND (mes=@mes OR @mes=0)
		--AND 
		(remVacaciones.ficha BETWEEN @fichaini AND @fichafin)
		AND (idsolicitud = @codigo
		OR @codigo = 0)
		AND (tipo = 2)
	END


	IF @tipo NOT IN (1, 4, 5, 7, 8)
	BEGIN

		SELECT
			ficha
		   ,remCentralizacionClasificacion.unidadnegocio
		   ,conUnidadNegocio.descripcion
		   ,remCentralizacionClasificacion.valor
		FROM remCentralizacionClasificacion
		RIGHT OUTER JOIN conUnidadNegocio
			ON remCentralizacionClasificacion.unidadnegocio = conUnidadNegocio.idUniNeg
		WHERE (periodo = @periodo
		AND mes = @mes)
		AND (ficha BETWEEN @fichaini AND @fichafin)
		AND remCentralizacionClasificacion.unidadnegocio <> 0
	END

	IF @tipo = 4   ----FINIQUITOS
	BEGIN

		SELECT TOP (1)
			F.numfiniquito
		   ,F.ficha
		   ,fechaemision
		   ,T.rut
		   ,T.dv
		   ,T.nombres
		   ,T.apePaterno
		   ,T.apeMaterno
		   ,F.fechafiniquito
		   ,CASE MONTH(F.fechafiniquito)
				WHEN 1 THEN 'ENERO'
				WHEN 2 THEN 'FEBRERO'
				WHEN 3 THEN 'MARZO'
				WHEN 4 THEN 'ABRIL'
				WHEN 5 THEN 'MAYO'
				WHEN 6 THEN 'JUNIO'
				WHEN 7 THEN 'JULIO'
				WHEN 8 THEN 'AGOSTO'
				WHEN 9 THEN 'SEPTIEMBRE'
				WHEN 10 THEN 'OCTUBRE'
				WHEN 11 THEN 'NOVIEMBRE'
				WHEN 12 THEN 'DICIEMBRE'
				END AS mesFiniquitoTexto
		   ,F.fechaingreso
		   ,F.cargo
		   ,Cg.descripcion AS descCargo
		   ,F.formato
		   ,F.causal
		   ,C.descripcion AS descCausal
		   ,F.conceptopagar
		   ,isnull(CON.descripcion,'NO DEFINIDO') as desConceptoPago
		   ,F.tipopago
		   ,CASE F.tipopago
				WHEN 0 THEN 'NO DEFINIDO'
				WHEN 1 THEN 'ULTIMO MES'
				WHEN 2 THEN 'ULTIMOS TRES MESES'
			END AS desTipoPago
		   ,F.sueldobase
		   ,F.cantidadañosservicios
		   ,F.totalañosservicios
		   ,F.mesaviso
		   ,F.mutuoacuerdo
		   ,F.fueromaternal
		   ,F.totalindemnizacion
		   ,F.conceptopagarvacaciones
		   ,ISNULL(CON2.descripcion, 'NO DEFINIDO') as desConceptoPagoVac
		   ,CASE F.tipopagovacaciones
				WHEN 0 THEN 'NO DEFINIDO'
				WHEN 1 THEN 'ULTIMO MES'
				WHEN 2 THEN 'ULTIMOS TRES MESES'
			END AS desTipoPagoVac
		   ,F.sueldobasevacaciones
		   ,F.diashabiles
		   ,F.montodiashabiles
		   ,F.diasprogresivos
		   ,F.montodiasprogresivos
		   ,F.totaldiaspendiente
		   ,F.montototaldiaspendiente
		   ,F.diasinhabiles
		   ,F.montodiasinhabiles
		   ,F.totaldiasvacaciones
		   ,F.montototalvacaciones
		   ,F.resultadoafc
		   ,ISNULL(CON3.descripcion,'NO DEFINIDO') as desResultadoAFC
		   ,F.montoafc
		   ,F.otrosbonos
		   ,F.otrosbonos2
		   ,F.otrosbonos3
		   ,F.totalbonos
		   ,F.otrosdescuentos
		   ,F.otrosdescuentos2
		   ,F.otrosdescuentos3
		   ,F.totalotrosdescuentos
		   ,F.totalotros
		   ,F.totalpagar
		   ,dbo.MontoTexto(F.totalpagar) AS totalFiniquitoLetras
		   ,F.periodo
		   ,CASE F.mes
				WHEN 1 THEN 'ENERO'
				WHEN 2 THEN 'FEBRERO'
				WHEN 3 THEN 'MARZO'
				WHEN 4 THEN 'ABRIL'
				WHEN 5 THEN 'MAYO'
				WHEN 6 THEN 'JUNIO'
				WHEN 7 THEN 'JULIO'
				WHEN 8 THEN 'AGOSTO'
				WHEN 9 THEN 'SEPTIEMBRE'
				WHEN 10 THEN 'OCTUBRE'
				WHEN 11 THEN 'NOVIEMBRE'
				WHEN 12 THEN 'DICIEMBRE'
			END AS descMes
			,F.retencionJudicial
			,F.TotRetenciones

		FROM remFiniquitoNuevo F
		INNER JOIN remTrabajadores T
			ON F.periodo = T.periodo
				AND F.mes = T.mes
				AND F.ficha = T.ficha
		INNER JOIN remCausales C
			ON F.causal = C.CausalLRE
		INNER JOIN remCargos Cg
			ON F.cargo = Cg.idCargo
		LEFT OUTER JOIN remConceptos CON
			ON F.conceptopagar = CON.idConcepto AND F.periodo = CON.periodo AND F.mes = CON.mes AND CON.tipoConcepto = 'R'
		LEFT OUTER JOIN remConceptos CON2 
			ON F.conceptopagarvacaciones = CON.idConcepto AND F.periodo = CON.periodo AND F.mes = CON.mes AND CON.tipoConcepto = 'R'
		LEFT OUTER JOIN remConceptos CON3 
			ON F.resultadoafc = CON3.idConcepto AND F.periodo = CON.periodo AND F.mes = CON.mes AND CON.tipoConcepto = 'R'

		WHERE numfiniquito = @codigo

		--DESCUENTOS
		SELECT	numfiniquito
			   ,ficha
			   ,tipo
			   ,tipoConcepto
			   ,idconcepto
			   ,nomconcepto
			   ,totalcuotas
			   ,cuotasrestantes
			   ,montocuota
			   ,total	
		FROM remFiniquitoDescuentos
		WHERE numfiniquito = @codigo

	END