CREATE OR REPLACE PROCEDURE ADAM.sp_fco_ins_procesos_pi(pch_compania char,
                                                        psi_anio     number,
                                                        pti_mes      number,
                                                        pch_sucursal char, /* '0'. Todas, ''. Consolidado */
                                                        pch_tipo_planilla char) is
  /*************************************************************************/
  -- Modulo Fiscal Colombiano 2.0 ADAM V3
  -- Descripcion: Alta de Procesos de Planilla Integrada
  -- Autor: Juan Carlos Leguizamon
  -- Fecha: Julio 2005
  -- Revisiones:
  /*************************************************************************/
  dummy number(1) := 0;
BEGIN
  IF pch_sucursal = '0' THEN
    INSERT INTO fco_procesos_pi
      (compania, anio, mes, sucursal, procesar, tipo_planilla)
      SELECT pch_compania, psi_anio, pti_mes, s.sucursal, 0, pch_tipo_planilla
        FROM vw_fco_sucursales s
       WHERE compania = pch_compania
         AND nvl(s.autoliquida, 1) = 1
         AND NOT EXISTS (SELECT 1
                FROM fco_procesos_pi x
               WHERE x.compania = pch_compania
                 AND x.anio = psi_anio
                 AND x.mes = pti_mes
                 AND x.sucursal = s.sucursal);
  ELSE
    begin
      select 1
        into dummy
        from fco_procesos_pi
       where compania = pch_compania
         AND anio = psi_anio
         AND mes = pti_mes
         AND nvl(sucursal, ' ') = nvl(pch_sucursal, ' ');
    exception
      when no_data_found then
        INSERT INTO fco_procesos_pi
          (compania, anio, mes, sucursal, procesar, tipo_planilla)
        VALUES
          (pch_compania, psi_anio, pti_mes, nvl(pch_sucursal, ' '), 0, pch_tipo_planilla);
        return;
    end;

    Raise_application_error(-20002,
                            'El registro a insertar en [fco_procesos_pi] ya existe');

  END IF;
END sp_fco_ins_procesos_pi;
/
