IF OBJECT_ID('dbo.sp_fco_upd_var_trabajador') IS NOT NULL
   DROP PROCEDURE dbo.sp_fco_upd_var_trabajador
GO
CREATE PROCEDURE dbo.sp_fco_upd_var_trabajador
(
    @pch_compania   char(4),
    @psm_anio 	    smallint,
    @ptn_periodo    tinyint,
    @ptn_variable   tinyint,
    @psm_concepto   smallint,
    @ptn_use_tiempo tinyint,
    @ptn_act_proc   tinyint,
    @ptn_var_proc   tinyint
)
AS
DECLARE
    @cch_trabajador  char(10),
    @cdc_importe	    decimal(19,6),
    @cdc_tiempo      decimal(10,3)

    DECLARE cr_trab CURSOR FOR 
    SELECT 
        t.trabajador, a.importe, a.tiempo
    FROM   
        trabajadores_grales t, acum_concepto a
    WHERE  
		t.compania = a.compania And
		t.trabajador = a.trabajador And
		a.compania = @pch_compania And
		a.concepto = @psm_concepto And
		a.anio = @psm_anio And
		a.periodo = @ptn_periodo And
		t.sit_trabajador = 1
BEGIN

    OPEN cr_trab
    FETCH NEXT FROM cr_trab INTO @cch_trabajador, @cdc_importe, @cdc_tiempo

    WHILE @@FETCH_STATUS = 0        	       
    BEGIN
        IF @ptn_use_tiempo = 1
            SET @cdc_importe = @cdc_tiempo
                
        EXECUTE sp_actualiza_var_trabajador
            @pch_compania, @cch_trabajador, @ptn_variable, @cdc_importe

        IF @ptn_act_proc = 1 --And IsNull(@cdc_importe, 0) > 0 /* Ajuste JCL Jun.29/06. Panalpina segun indicacion de SCN */
            EXECUTE sp_actualiza_var_trabajador
                @pch_compania, @cch_trabajador, @ptn_var_proc, 2
            
        FETCH NEXT FROM cr_trab INTO @cch_trabajador, @cdc_importe, @cdc_tiempo
    END
    
    CLOSE cr_trab
    DEALLOCATE cr_trab
END


GO
GRANT EXECUTE ON sp_fco_upd_var_trabajador TO Public
GO