create or replace procedure sp_fco_pi_fantasmas(p_compania in char,
                                                     p_anio     in number,
                                                     p_mes      in number,
                                                     p_sucursal in char,
                                                     p_tipo_planilla in char) is
  v_rec_detalle fco_integrada_det%rowtype;
  vsi_secuencia fco_integrada_det.secuencia%type;
  v_cont        number := 0;

  cursor c1(c_compania char, c_anio number, c_mes number, c_sucursal char, c_tipo_planilla char) 
  return fco_integrada_det%rowtype is
    select c_compania,
           c_anio,
           c_mes,
           c_sucursal,
 	   c_tipo_planilla,
           a.trabajador,
           0,
           tipo_id,
           nro_id,
           '0' dc,
           tipo_cotizante,
           0,
           ' ',
           ' ',
           ' ',
           ' ',
           primer_apellido,
           segundo_apellido,
           primer_nombre,
           segundo_nombre,
           ' ',
           ' ',
           ' ',
           ' ',
           ' ',
           ' ',
           ' ',
           ' ',
           ' ',
           ' ',
           ' ',
           ' ',
           ' ',
           ' ',
           ' ',
           ' ',
           NVL(AFP, ' '),
           ' ',
           NVL(EPS, ' '),
           ' ',
           NVL(CCF, ' '),
           dias_AFP,
           dias_EPS,
           dias_ARP,
           0,
           salario,
           IBC_AFP,
           IBC_EPS,
           IBC_ARP,
           IBC_CCF,
           0,
           pkg_fco_gral.vdc_tar_AFP,
           aporte_afp,
           0,
           0,
           0,
           aporte_FSP_sol,
           aporte_FSP_sub,
           pkg_fco_gral.vdc_tar_EPS,
           aporte_EPS,
           UPC_adicional,
           ' ',
           0,
           ' ',
           0,
           tarifa_ARP,
           decode(ISNUMERIC(CTR), 1, CTR, 0),
           aporte_ARP,
           pkg_fco_gral.vdc_tar_CCF,
           aporte_CCF,
           pkg_fco_gral.vdc_tar_SENA,
           aporte_SENA,
           pkg_fco_gral.vdc_tar_ICBF,
           aporte_ICBF,
           pkg_fco_gral.vdc_tar_ESAP,
           aporte_ESAP,
           pkg_fco_gral.vdc_tar_MEdu,
           aporte_MEdu,
           2,
           0,
           ' ',
           0
      from fco_fantasmas a
     where a.compania = c_compania
       and (sucursal = c_sucursal or c_sucursal is null)
       and a.tipo_planilla = c_tipo_planilla
       and a.eps || a.Afp is not null
       and ((a.anio - 2000) * 12 + a.mes) >= ((c_anio - 2000) * 12 + c_mes);
begin
  select max(secuencia)
    into vsi_secuencia
    from fco_integrada_det
   where compania = p_compania
     and anio = p_anio
     and mes = p_mes
     and (sucursal = p_sucursal or p_sucursal is null)
     and tipo_planilla = p_tipo_planilla;

  open c1(p_compania, p_anio, p_mes, p_sucursal, p_tipo_planilla);
  loop
    fetch c1
      into v_rec_detalle;
    exit when c1%notfound;
    v_cont                  := v_cont + 1;
    v_rec_detalle.secuencia := vsi_secuencia + v_cont;
    insert into fco_integrada_det values v_rec_detalle;
  end loop;
  close c1;

end sp_fco_pi_fantasmas;
/
