create or replace procedure adam.sp_fco_pi_tot_pagar(pch_compania in char,
                                                     psi_anio     in number,
                                                     pti_mes      in number,
                                                     pch_sucursal in char,
                                                     pch_tipo_planilla in char) is
begin

  insert into fco_integrada_rt11
    (compania,
     anio,
     mes,
     sucursal,
     tipo_planilla,
     pensiones,
     salud,
     riesgos,
     cajas,
     sena,
     icbf,
     esap,
     mineducacion,
     conteo_afp,
     conteo_eps,
     conteo_arp,
     conteo_ccf)
  values
    (pch_compania,
     psi_anio,
     pti_mes,
     nvl(pch_sucursal, ' '),
     pch_tipo_planilla,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0);

  update fco_integrada_rt11
     set pensiones  = (select nvl(sum(total_pagar), 0)
                         from fco_integrada_rt03 x
                        where fco_integrada_rt11.compania = x.compania
                          and fco_integrada_rt11.anio = x.anio
                          and fco_integrada_rt11.mes = x.mes
                          and fco_integrada_rt11.sucursal = x.sucursal
                          and fco_integrada_rt11.tipo_planilla = x.tipo_planilla),
         conteo_afp = (select count(*)
                         from fco_integrada_rt03 x
                        where fco_integrada_rt11.compania = x.compania
                          and fco_integrada_rt11.anio = x.anio
                          and fco_integrada_rt11.mes = x.mes
                          and fco_integrada_rt11.sucursal = x.sucursal
                          and fco_integrada_rt11.tipo_planilla = x.tipo_planilla)
   where compania = pch_compania
     and anio = psi_anio
     and mes = pti_mes
     and (sucursal = pch_sucursal or pch_sucursal is null)
     and tipo_planilla = pch_tipo_planilla;

  update fco_integrada_rt11
     set salud      = (select nvl(sum(total_pagar), 0)
                         from fco_integrada_rt04 x
                        where fco_integrada_rt11.compania = x.compania
                          and fco_integrada_rt11.anio = x.anio
                          and fco_integrada_rt11.mes = x.mes
                          and fco_integrada_rt11.sucursal = x.sucursal
                          and fco_integrada_rt11.tipo_planilla = x.tipo_planilla),
         conteo_eps = (select count(*)
                         from fco_integrada_rt04 x
                        where fco_integrada_rt11.compania = x.compania
                          and fco_integrada_rt11.anio = x.anio
                          and fco_integrada_rt11.mes = x.mes
                          and fco_integrada_rt11.sucursal = x.sucursal
                          and fco_integrada_rt11.tipo_planilla = x.tipo_planilla)
   where compania = pch_compania
     and anio = psi_anio
     and mes = pti_mes
     and (sucursal = pch_sucursal or pch_sucursal is null)
     and tipo_planilla = pch_tipo_planilla;

  update fco_integrada_rt11
     set riesgos    = (select nvl(sum(total_pagar), 0)
                         from fco_integrada_rt05 x
                        where fco_integrada_rt11.compania = x.compania
                          and fco_integrada_rt11.anio = x.anio
                          and fco_integrada_rt11.mes = x.mes
                          and fco_integrada_rt11.sucursal = x.sucursal
                          and fco_integrada_rt11.tipo_planilla = x.tipo_planilla),
         conteo_arp = (select count(*)
                         from fco_integrada_rt05 x
                        where fco_integrada_rt11.compania = x.compania
                          and fco_integrada_rt11.anio = x.anio
                          and fco_integrada_rt11.mes = x.mes
                          and fco_integrada_rt11.sucursal = x.sucursal
                          and fco_integrada_rt11.tipo_planilla = x.tipo_planilla)
   where compania = pch_compania
     and anio = psi_anio
     and mes = pti_mes
     and (sucursal = pch_sucursal or pch_sucursal is null)
     and tipo_planilla = pch_tipo_planilla;

  update fco_integrada_rt11
     set cajas      = (select nvl(sum(total_pagar), 0)
                         from fco_integrada_rt06 x
                        where fco_integrada_rt11.compania = x.compania
                          and fco_integrada_rt11.anio = x.anio
                          and fco_integrada_rt11.mes = x.mes
                          and fco_integrada_rt11.sucursal = x.sucursal
                          and fco_integrada_rt11.tipo_planilla = x.tipo_planilla),
         conteo_ccf = (select count(*)
                         from fco_integrada_rt06 x
                        where fco_integrada_rt11.compania = x.compania
                          and fco_integrada_rt11.anio = x.anio
                          and fco_integrada_rt11.mes = x.mes
                          and fco_integrada_rt11.sucursal = x.sucursal
                          and fco_integrada_rt11.tipo_planilla = x.tipo_planilla)
   where compania = pch_compania
     and anio = psi_anio
     and mes = pti_mes
     and (sucursal = pch_sucursal or pch_sucursal is null)
     and tipo_planilla = pch_tipo_planilla;

  update fco_integrada_rt11
     set sena = (select nvl(sum(total_pagar), 0)
                   from fco_integrada_rt07 x
                  where fco_integrada_rt11.compania = x.compania
                    and fco_integrada_rt11.anio = x.anio
                    and fco_integrada_rt11.mes = x.mes
                    and fco_integrada_rt11.sucursal = x.sucursal
                    and fco_integrada_rt11.tipo_planilla = x.tipo_planilla)
   where compania = pch_compania
     and anio = psi_anio
     and mes = pti_mes
     and (sucursal = pch_sucursal or pch_sucursal is null)
     and tipo_planilla = pch_tipo_planilla;

  update fco_integrada_rt11
     set icbf = (select nvl(sum(total_pagar), 0)
                   from fco_integrada_rt08 x
                  where fco_integrada_rt11.compania = x.compania
                    and fco_integrada_rt11.anio = x.anio
                    and fco_integrada_rt11.mes = x.mes
                    and fco_integrada_rt11.sucursal = x.sucursal
                    and fco_integrada_rt11.tipo_planilla = x.tipo_planilla)
   where compania = pch_compania
     and anio = psi_anio
     and mes = pti_mes
     and (sucursal = pch_sucursal or pch_sucursal is null)
     and tipo_planilla = pch_tipo_planilla;

  update fco_integrada_rt11
     set esap = (select nvl(sum(total_pagar), 0)
                   from fco_integrada_rt09 x
                  where fco_integrada_rt11.compania = x.compania
                    and fco_integrada_rt11.anio = x.anio
                    and fco_integrada_rt11.mes = x.mes
                    and fco_integrada_rt11.sucursal = x.sucursal
                    and fco_integrada_rt11.tipo_planilla = x.tipo_planilla)
   where compania = pch_compania
     and anio = psi_anio
     and mes = pti_mes
     and (sucursal = pch_sucursal or pch_sucursal is null)
     and tipo_planilla = pch_tipo_planilla;

  update fco_integrada_rt11
     set mineducacion = (select nvl(sum(total_pagar), 0)
                           from fco_integrada_rt10 x
                          where fco_integrada_rt11.compania = x.compania
                            and fco_integrada_rt11.anio = x.anio
                            and fco_integrada_rt11.mes = x.mes
                          and fco_integrada_rt11.sucursal = x.sucursal
                          and fco_integrada_rt11.tipo_planilla = x.tipo_planilla)
   where compania = pch_compania
     and anio = psi_anio
     and mes = pti_mes
     and (sucursal = pch_sucursal or pch_sucursal is null)
     and tipo_planilla = pch_tipo_planilla;

end sp_fco_pi_tot_pagar;
/
