IF OBJECT_ID('dbo.sp_fco_proc_traslados_fpo') IS NOT NULL
   DROP PROCEDURE dbo.sp_fco_proc_traslados_fpo
GO
CREATE PROCEDURE dbo.sp_fco_proc_traslados_fpo
(
	@i_compania       char(4), 
	@i_anio		  int,
	@i_mes		  int
)
AS
DECLARE	@w_trabajador 	varchar(10),
	@w_nueva	varchar(10)

DECLARE cr_traslados CURSOR FOR
SELECT	trabajador, fpo_nueva
FROM	fco_traslados_fpo
WHERE	compania = @i_compania AND
trabajador In (SELECT trabajador FROM trabajadores_grales
               WHERE compania = @i_compania And
               clase_nomina is not null And
               clase_nomina in 
                (SELECT clase_nomina 
                 FROM rel_usu_clase_nom 
                 WHERE usuario = system_user
                 )) AND
DatePart(Year, fecha_cambio) = @i_anio AND
DatePart(Month, fecha_cambio) = @i_mes
BEGIN
	OPEN cr_traslados
	FETCH cr_traslados 
	INTO @w_trabajador, @w_nueva

	WHILE @@FETCH_STATUS = 0 
            BEGIN

		UPDATE 	REL_TRAB_AGR
		SET	dato = @w_nueva
		WHERE	compania = @i_compania
		AND	trabajador = @w_trabajador
		AND	agrupacion = isnull((SELECT dato FROM vw_fdt_parametros x
     WHERE x.pais = 'COL' AND x.compania = rel_trab_agr.compania AND x.parametro = 'autoliq' AND x.secuencia = 22), 'FPO')

		FETCH cr_traslados INTO @w_trabajador, @w_nueva
            END
	CLOSE cr_traslados
	DEALLOCATE cr_traslados

	UPDATE fco_traslados_fpo
    SET estado = 1
	WHERE	compania = @i_compania AND
                trabajador In (SELECT trabajador FROM trabajadores_grales
                               WHERE compania = @i_compania And
                               clase_nomina is not null And
                               clase_nomina in 
                                (SELECT clase_nomina 
                                 FROM rel_usu_clase_nom 
                                 WHERE usuario = system_user
                                 )) AND
		DatePart(Year, fecha_cambio) = @i_anio AND
		DatePart(Month, fecha_cambio) = @i_mes
END

GO
GRANT EXECUTE ON sp_fco_proc_traslados_fpo TO Public
GO
