CREATE OR REPLACE PROCEDURE sp_fco_upd_var_trabajador
(
	i_compania	char,
	i_anio 		smallint,
	i_periodo	smallint,
	i_variable_1	smallint,
	i_concepto	smallint,
	i_tiempo	smallint,
	i_procedimiento	smallint,
	i_var_proc	smallint
)
AS
	w_trabajador	char(10);
	w_importe	number(13,2);
	w_tiempo	number(13,2);

	CURSOR cr_trab IS
	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 = i_compania And
	a.concepto = i_concepto And
	a.anio = i_anio And
	a.periodo = i_periodo And
	t.sit_trabajador = 1;
BEGIN

	OPEN cr_trab;
	LOOP	
        	FETCH cr_trab INTO w_trabajador, w_importe, w_tiempo;
		EXIT WHEN cr_trab%NOTFOUND;

		IF i_tiempo = 1 THEN
       w_importe := w_tiempo;
		END IF;

    sp_actualiza_var_trabajador(i_compania, w_trabajador, i_variable_1, w_importe);

		IF i_procedimiento = 1 THEN
		    sp_actualiza_var_trabajador(i_compania,w_trabajador, i_var_proc,2);			
		END IF;

         END LOOP;
    
         CLOSE cr_trab;
END;
/
CREATE PUBLIC SYNONYM sp_fco_upd_var_trabajador FOR ADAM.sp_fco_upd_var_trabajador;
GRANT EXECUTE ON sp_fco_upd_var_trabajador TO adama;
