CREATE OR REPLACE PROCEDURE sp_fco_alta_autorizaciones
(
  i_compania		char,
  i_sucursal      	char,
  i_numero	    	varchar2,
  i_tipo_incapacidad 	char,
  i_tipo_entidad	    	char,
  i_cod_entidad	    	char,
  i_fecha	    		date,
  i_periodo 	    	char,
  i_ausentismo	    	number,
  i_descontar_ala    	char,
  i_valor_total	    	number
)
AS
	w_autorizacion		number(9,0); ---consecutivo
BEGIN
	w_autorizacion := 0;

	SELECT NVL(Max(autorizacion),0) + 1
	INTO w_autorizacion
	FROM fco_autorizaciones
	WHERE compania = i_compania;

	BEGIN
		INSERT INTO fco_autorizaciones 
     (compania, sucursal, autorizacion, numero, tipo_incapacidad,
      tipo_entidad, cod_entidad, fecha, periodo, ausentismo, descontar_ala,
      valor_total, tipo_planilla)
    VALUES 
    (i_compania,
    i_sucursal,
    w_autorizacion,
    i_numero,
    i_tipo_incapacidad,
    i_tipo_entidad,
    i_cod_entidad,
    i_fecha,
    i_periodo,
    i_ausentismo,
    i_descontar_ala,
    i_valor_total,
    'E');
	EXCEPTION
     		WHEN OTHERS THEN
         	raise_application_error(-20001, 'Error al tratar de insertar en la tabla [fco_autorizaciones]');
	 	return;
	END;
	COMMIT WORK;
END;
/

CREATE PUBLIC SYNONYM sp_fco_alta_autorizaciones FOR ADAM.sp_fco_alta_autorizaciones;
GRANT EXECUTE ON sp_fco_alta_autorizaciones TO adama;

