ALTER PROCEDURE [dbo].[sp_remPagoImposicionesSES]
(
	@PERIODO INT = 0,
	@MES INT = 0,
	@ficini INT = 0,
	@ficfin INT = 0,
	@unineg INT = 0,
	@DEP INT = 0,
	@SEC INT = 0
)
AS
BEGIN
	SELECT
	T.ficha,
	T.rut,
	T.dv,
	T.apePaterno,
	T.apeMaterno,
	T.nombres,
	dbo.remValorResultado(T.periodo,T.mes,T.ficha, 36) AS  'Remuneracion Imponible',
	dbo.remValorResultado(T.periodo,T.mes,T.ficha, 47) AS  'RIMA',
	dbo.remValorResultado(T.periodo,T.mes,T.ficha, 49) AS  'Espectativa Vida',
	dbo.remValorResultado(T.periodo,T.mes,T.ficha, 95) AS  'Rentabilidad Protegida',
	dbo.remValorResultado(T.periodo,T.mes,T.ficha, 38) AS  'SIS',	
	CASE
	WHEN T.tipoJornada = 4 THEN 'JP'
	ELSE 'JC'
	END AS 'Tipo Jornada',
	dbo.RemDiasTrabajados(T.ficha, T.periodo, T.mes, T.fechacontrato, T.fechaFiniquito, T.tipojornada) AS diastrabajados,
	CASE
	WHEN dbo.remValorResultado(T.periodo,T.mes,T.ficha, 22) = 0 AND dbo.remValorResultado(T.periodo,T.mes,T.ficha, 23) = 0 THEN 0 
	WHEN dbo.remValorResultado(T.periodo,T.mes,T.ficha, 22) > 0 OR dbo.remValorResultado(T.periodo,T.mes,T.ficha, 23) > 0 THEN dbo.remValorResultado(T.periodo,T.mes,T.ficha, 37)
	END AS 'Remuneración Imponible Cesantia',
	dbo.remValorResultado(T.periodo,T.mes,T.ficha, 22) AS  'Cesantia Trabajador',
	dbo.remValorResultado(T.periodo,T.mes,T.ficha, 23) AS  'Cesantia Empleador'
	INTO #SES
	FROM
		remTrabajadores AS T INNER JOIN remPrevisiones AS AFP
		ON T.periodo = AFP.periodo AND T.mes = AFP.mes AND T.idPrevision = AFP.idPRevision AND T.regimenPrevisional = AFP.idRegimen
	WHERE T.periodo = @PERIODO
		AND T.mes = @MES
		AND (T.ficha BETWEEN @ficini AND @ficfin)
		AND (@unineg = 0 or T.unidadNegocios = @unineg) 
		AND	(@DEP = 0 or T.departamento = @DEP)
		AND (@SEC = 0 or T.seccion = @SEC)
		AND T.activo = 1
	ORDER BY T.apePaterno,
		T.apeMaterno

	SELECT 
		T.ficha,
		ISNULL (MP.codMovimiento, 0) AS Codigo,
		ISNULL (MP.fechaInicio, '') AS FechaIni,
		ISNULL (MP.fechaTermino, '') AS FechaFin
	INTO #MOV
	FROM
		remMovPersonal AS MP JOIN remTrabajadores AS T
		ON MP.periodo = T.periodo AND MP.mes = T.mes AND MP.ficha = T.ficha
	WHERE T.periodo = @PERIODO
		AND T.mes = @MES
		AND (T.ficha BETWEEN @ficini AND @ficfin)
		AND (@unineg = 0 or T.unidadNegocios = @unineg) 
		AND	(@DEP = 0 or T.departamento = @DEP)
		AND (@SEC = 0 or T.seccion = @SEC)
		AND T.activo = 1

	--SELECT  * FROM #AFP AS A RIGHT OUTER JOIN #MOV AS M ON A.ficha = M.ficha


	
	SELECT 
		ROW_NUMBER() OVER(PARTITION BY A.ficha ORDER BY A.ficha)as numlin,
		1 AS validador,
		A.ficha,
		A.rut,
		A.dv,
		A.apePaterno,
		A.apeMaterno,
		A.nombres,
		A.[Remuneracion Imponible],
		A.[RIMA],
		A.[Espectativa Vida],
		A.[Rentabilidad Protegida],
		A.SIS,
		A.[diastrabajados],
		A.[Tipo Jornada],
		A.[Remuneración Imponible Cesantia],
		A.[Cesantia Trabajador],
		A.[Cesantia Empleador],
		ISNULL (M.codigo, 0) AS Codigo,
		ISNULL (M.FechaIni, '') AS FechaIni,
		ISNULL (M.FechaFin, '') AS FechaFin
	 INTO #TOP	
	 FROM #SES AS A LEFT OUTER JOIN #MOV AS M ON A.ficha = M.ficha
	 
	 UNION ALL

	 SELECT	
		ROW_NUMBER() OVER(PARTITION BY A.ficha ORDER BY A.ficha) as numlin,
		0 AS validador,
		A.ficha,
		A.rut,
		A.dv,
		A.apePaterno,
		A.apeMaterno,
		A.nombres,
		0 as [Remuneracion Imponible],
		0 as [RIMA],
		0 as [Espectativa Vida],
		0 as [Rentabilidad Protegida],
		0 as SIS,
		0 AS [diastrabajados],
		CASE
		WHEN remTrabajadores.tipoJornada = 4 THEN 'JP'
		ELSE 'JC'
		END AS 'Tipo Jornada',	
		0 as [Remuneración Imponible Cesantia],
		0 as [Cesantia Trabajador],
		0 as [Cesantia Empleador],
		ISNULL (M.codigo, 0) AS Codigo,
		ISNULL (M.FechaIni, '') AS FechaIni,
		ISNULL (M.FechaFin, '') AS FechaFin
	 	
	 FROM #SES AS A LEFT OUTER JOIN #MOV AS M ON A.ficha = M.ficha
	 LEFT OUTER JOIN remTrabajadores ON A.ficha = remTrabajadores.ficha AND remTrabajadores.periodo = @PERIODO AND remTrabajadores.mes = @MES
	 

	-- SELECT DE LA TABLA FINAL CON DATOS
	SELECT  
		ROW_NUMBER() OVER(ORDER BY T.apePaterno, T.apeMaterno, T.[Remuneracion Imponible] DESC) AS Correlativo,
		T.*
	FROM #TOP AS T
	WHERE (validador = 0 AND numlin > 1) 
	   OR (validador = 1 AND numlin = 1)
	ORDER BY T.apePaterno, T.apeMaterno, T.[Remuneracion Imponible] DESC

END