CREATE OR REPLACE PROCEDURE sp_fco_alta_sucursales
(
    i_compania		char,
    i_sucursal	    	char,
    i_descripcion  	varchar2,
    i_direccion    	varchar2,
    i_cod_dpto     	char,
    i_cod_ciudad   	char,
    i_telefono     	varchar2,
    i_fax          	varchar2,
    i_nombre_retenedor 	varchar2,
    i_cedula_retenedor 	varchar2,
    i_agencias 		varchar2,
    i_codigo_iss 	char,
    i_autoliquida       number
)
AS
	vnm_existe	number(1);
  vch_agr char(10);
  
BEGIN
	vnm_existe := 0;

	BEGIN
		SELECT 1 INTO vnm_existe 
		FROM fco_sucursales
    WHERE compania = i_compania 
		And sucursal = i_sucursal;
	EXCEPTION
		WHEN OTHERS THEN vnm_existe := 0;
	END;

	IF vnm_existe = 1 THEN
		raise_application_error(-20001, 'El registro a insertar en [fco_sucursales] ya existe');
		return;
	END IF;

  BEGIN
    SELECT NVL(dato, 'SUC')
    INTO vch_agr
    FROM vw_fdt_parametros 
    WHERE pais = 'COL' 
      AND compania = i_compania 
      AND parametro = 'autoliq' 
      AND secuencia = 23;
	EXCEPTION
			WHEN OTHERS THEN vch_agr := 'SUC';	
  END;
    
  vnm_existe := 0;
  BEGIN
    SELECT 1 INTO vnm_existe
    FROM datos_agr_trab
    WHERE agrupacion = vch_agr
    AND dato = i_sucursal;
	EXCEPTION
			WHEN OTHERS THEN vnm_existe := 0;	
  END;

  IF vnm_existe = 1 THEN
        sp_cambio_datos_agr_trab(vch_agr, i_sucursal, i_descripcion);
  ELSE
        sp_alta_datos_agr_trab(vch_agr, i_sucursal, i_descripcion);
  END IF;
      
	BEGIN
    		INSERT INTO fco_sucursales
    		(compania, sucursal, descripcion,
     		direccion, cod_dpto, cod_ciudad, telefono, fax, 
     		nombre_retenedor, cedula_retenedor, agencias, codigo_iss, clase_nomina, autoliquida)
    		VALUES
    		(i_compania, i_sucursal, i_descripcion,
     		i_direccion, i_cod_dpto, i_cod_ciudad, i_telefono, i_fax, 
     		i_nombre_retenedor, i_cedula_retenedor, i_agencias, i_codigo_iss, '--', i_autoliquida);
	EXCEPTION
		WHEN OTHERS THEN 
		raise_application_error(-20001, 'El registro a insertar en la tabla [fco_sucursales]');
		return;
	END;
	COMMIT WORK;
END;
/
CREATE PUBLIC SYNONYM sp_fco_alta_sucursales FOR ADAM.sp_fco_alta_sucursales;
GRANT EXECUTE ON sp_fco_alta_sucursales TO adama;

