DBA Data[Home] [Help]

APPS.PJI_RM_SUM_ROLLUP_RES SQL Statements

The following lines contain the word 'select', 'insert', 'update' or 'delete':

Line: 58

    select count(*)
    into   l_row_count
    from   PJI_RES_DELTA
    where  CHANGE_TYPE = 'Y';
Line: 65

      insert /*+ append parallel(fcst_i) */ into PJI_RM_REXT_FCSTITEM fcst_i
      (
        WORKER_ID,
        FID_ROWID,
        START_DATE,
        END_DATE,
        PJI_SUMMARIZED_FLAG,
        BATCH_ID
      )
      select /*+ ordered
                 full(delta)
                 full(fcst)   use_hash(fcst)
                 full(status) use_hash(status)
             */
        p_worker_id      WORKER_ID,
        fid.ROWID        FID_ROWID,
        delta.START_DATE,
        delta.END_DATE,
        fid.PJI_SUMMARIZED_FLAG,
        ceil(ROWNUM / PJI_RM_SUM_MAIN.g_commit_threshold)
      from
        PJI_RES_DELTA            delta,
        PA_FORECAST_ITEMS        fi,
        PA_FORECAST_ITEM_DETAILS fid,
        PJI_RM_REXT_FCSTITEM     fcst,
        PJI_ORG_EXTR_STATUS      status
      where
        delta.CHANGE_TYPE     = 'Y'                                       and
        fi.RESOURCE_ID        = delta.RESOURCE_ID                         and
        fi.FORECAST_ITEM_TYPE in ('U', 'A')                               and
        fi.ITEM_DATE          between delta.START_DATE and delta.END_DATE and
        fi.FORECAST_ITEM_ID   = fid.FORECAST_ITEM_ID                      and
        nvl(fid.pji_summarized_flag,'Y') <> 'N'                           and
        fi.EXPENDITURE_ORGANIZATION_ID   = status.ORGANIZATION_ID         and
        fcst.FID_ROWID (+)    = fid.ROWID                                 and
        fcst.WORKER_ID (+)    = p_worker_id                               and
        fcst.FID_ROWID        is null;
Line: 103

      insert /*+ append parallel(cdl_i) */ into PJI_FM_REXT_CDL cdl_i
      (
        WORKER_ID,
        CDL_ROWID,
        START_DATE,
        END_DATE,
        PROJECT_ORG_ID,
        PROJECT_ORGANIZATION_ID,
        PJI_SUMMARIZED_FLAG,
        BATCH_ID
      )
      select /*+ ordered
                 full(delta)
                 full(rcdl)      use_hash(rcdl)
                 full(status)    use_hash(status)
             */
        p_worker_id      WORKER_ID,
        cdl.ROWID        CDL_ROWID,
        delta.START_DATE,
        delta.END_DATE,
        -1               PROJECT_ORG_ID,
        -1               PROJECT_ORGANIZATION_ID,
        cdl.PJI_SUMMARIZED_FLAG,
        ceil(ROWNUM / PJI_RM_SUM_MAIN.g_commit_threshold)
      from
        PJI_RES_DELTA                  delta,
        PA_EXPENDITURES_ALL            exp,
        PA_EXPENDITURE_ITEMS_ALL       ei,
        PA_COST_DISTRIBUTION_LINES_ALL cdl,
        PJI_FM_REXT_CDL                rcdl,
        PJI_PROJ_EXTR_STATUS           status
      where
        delta.CHANGE_TYPE          = 'Y'                           and
        nvl(cdl.ORG_ID, -999)      = nvl(ei.ORG_ID, -999)          and
        nvl(exp.ORG_ID, -999)      = nvl(ei.ORG_ID, -999)          and
        ei.EXPENDITURE_ITEM_DATE   between delta.START_DATE and
                                           delta.END_DATE          and
        delta.PERSON_ID            = exp.INCURRED_BY_PERSON_ID     and
        exp.EXPENDITURE_ID         = ei.EXPENDITURE_ID             and
        ei.EXPENDITURE_ITEM_ID     = cdl.EXPENDITURE_ITEM_ID       and
        cdl.LINE_TYPE              = 'R'                           and
        nvl(cdl.PJI_SUMMARIZED_FLAG, 'Y') <> 'N'                   and
        cdl.PROJECT_ID             = status.PROJECT_ID             and
        rcdl.CDL_ROWID (+)         = cdl.ROWID                     and
        rcdl.WORKER_ID (+)         = p_worker_id                   and
        rcdl.CDL_ROWID             is null;
Line: 195

    select count(*)
    into   l_count
    from   PJI_RM_WORK_TYPE_INFO
    where  RECORD_TYPE = 'CHANGE_OLD' or
           RECORD_TYPE = 'CHANGE_NEW';
Line: 211

      select
        sum(case when bkt.SEQ = 1
                 then bkt.TO_VALUE
                 else null
                 end) ,
        sum(case when bkt.SEQ = 2
                 then bkt.TO_VALUE
                 else null
                 end) ,
        sum(case when bkt.SEQ = 3
                 then bkt.TO_VALUE
                 else null
                 end) ,
        sum(case when bkt.SEQ = 4
                 then bkt.TO_VALUE
                 else null
                 end) ,
        sum(case when bkt.SEQ = 5
                 then bkt.TO_VALUE
                 else null
                 end)
      into
        l_avl_bkt_1,
        l_avl_bkt_2,
        l_avl_bkt_3,
        l_avl_bkt_4,
        l_avl_bkt_5
      from
        PJI_MT_BUCKETS  bkt
      where
        bkt.BUCKET_SET_CODE  = 'PJI_RESOURCE_AVAILABILITY';
Line: 248

    insert /*+ append parallel(res2_i) */ into PJI_RM_AGGR_RES2 res2_i
    (
      WORKER_ID,
      PERSON_ID,
      EXPENDITURE_ORG_ID,
      EXPENDITURE_ORGANIZATION_ID,
      JOB_ID,
      TIME_ID,
      PERIOD_TYPE_ID,
      CALENDAR_TYPE,
      GL_CALENDAR_ID,
      PA_CALENDAR_ID,
      CAPACITY_HRS,
      TOTAL_HRS_A,
      MISSING_HRS_A,
      TOTAL_WTD_ORG_HRS_A,
      TOTAL_WTD_RES_HRS_A,
      BILL_HRS_A,
      BILL_WTD_ORG_HRS_A,
      BILL_WTD_RES_HRS_A,
      TRAINING_HRS_A,
      REDUCIBLE_CAPACITY_HRS_A,
      REDUCE_CAPACITY_HRS_A,
      CONF_HRS_S,
      CONF_WTD_ORG_HRS_S,
      CONF_WTD_RES_HRS_S,
      CONF_BILL_HRS_S,
      CONF_BILL_WTD_ORG_HRS_S,
      CONF_BILL_WTD_RES_HRS_S,
      PROV_HRS_S,
      PROV_WTD_ORG_HRS_S,
      PROV_WTD_RES_HRS_S,
      PROV_BILL_HRS_S,
      PROV_BILL_WTD_ORG_HRS_S,
      PROV_BILL_WTD_RES_HRS_S,
      TRAINING_HRS_S,
      UNASSIGNED_HRS_S,
      REDUCIBLE_CAPACITY_HRS_S,
      REDUCE_CAPACITY_HRS_S,
      CONF_OVERCOM_HRS_S,
      PROV_OVERCOM_HRS_S,
      AVAILABLE_HRS_BKT1_S,
      AVAILABLE_HRS_BKT2_S,
      AVAILABLE_HRS_BKT3_S,
      AVAILABLE_HRS_BKT4_S,
      AVAILABLE_HRS_BKT5_S,
      AVAILABLE_RES_COUNT_BKT1_S,
      AVAILABLE_RES_COUNT_BKT2_S,
      AVAILABLE_RES_COUNT_BKT3_S,
      AVAILABLE_RES_COUNT_BKT4_S,
      AVAILABLE_RES_COUNT_BKT5_S,
      TOTAL_RES_COUNT
    )
    select
      p_worker_id                                   WORKER_ID,
      tmp1.PERSON_ID,
      tmp1.EXPENDITURE_ORG_ID,
      tmp1.EXPENDITURE_ORGANIZATION_ID,
      tmp1.JOB_ID,
      tmp1.TIME_ID,
      tmp1.PERIOD_TYPE_ID,
      tmp1.CALENDAR_TYPE,
      tmp1.GL_CALENDAR_ID,
      tmp1.PA_CALENDAR_ID,
      sum(tmp1.CAPACITY_HRS),
      sum(tmp1.TOTAL_HRS_A),
      sum(greatest(nvl(tmp1.CAPACITY_HRS,0) + nvl(rms.CAPACITY_HRS, 0) -
                   (nvl(tmp1.TOTAL_HRS_A,0) + nvl(rms.TOTAL_HRS_A, 0)), 0) -
          nvl(rms.MISSING_HRS_A, 0))                MISSING_HRS_A,
      sum(tmp1.TOTAL_WTD_ORG_HRS_A),
      sum(tmp1.TOTAL_WTD_RES_HRS_A),
      sum(tmp1.BILL_HRS_A),
      sum(tmp1.BILL_WTD_ORG_HRS_A),
      sum(tmp1.BILL_WTD_RES_HRS_A),
      sum(tmp1.TRAINING_HRS_A),
      sum(tmp1.REDUCE_CAPACITY_HRS_A)               REDUCIBLE_CAPACITY_HRS_A,
      sum(least(nvl(tmp1.CAPACITY_HRS, 0) + nvl(rms.CAPACITY_HRS, 0),
                nvl(tmp1.REDUCE_CAPACITY_HRS_A, 0) +
                nvl(rms.REDUCIBLE_CAPACITY_HRS_A, 0)) -
          nvl(rms.REDUCE_CAPACITY_HRS_A, 0))        REDUCE_CAPACITY_HRS_A,
      sum(tmp1.CONF_HRS_S),
      sum(tmp1.CONF_WTD_ORG_HRS_S),
      sum(tmp1.CONF_WTD_RES_HRS_S),
      sum(tmp1.CONF_BILL_HRS_S),
      sum(tmp1.CONF_BILL_WTD_ORG_HRS_S),
      sum(tmp1.CONF_BILL_WTD_RES_HRS_S),
      sum(tmp1.PROV_HRS_S),
      sum(tmp1.PROV_WTD_ORG_HRS_S),
      sum(tmp1.PROV_WTD_RES_HRS_S),
      sum(tmp1.PROV_BILL_HRS_S),
      sum(tmp1.PROV_BILL_WTD_ORG_HRS_S),
      sum(tmp1.PROV_BILL_WTD_RES_HRS_S),
      sum(tmp1.TRAINING_HRS_S),
      sum(tmp1.UNASSIGNED_HRS_S),
      sum(tmp1.REDUCE_CAPACITY_HRS_S)               REDUCIBLE_CAPACITY_HRS_S,
      sum(least(nvl(tmp1.CAPACITY_HRS, 0) + nvl(rms.CAPACITY_HRS, 0),
                nvl(tmp1.REDUCE_CAPACITY_HRS_S, 0) +
                nvl(rms.REDUCIBLE_CAPACITY_HRS_S, 0)) -
          nvl(rms.REDUCE_CAPACITY_HRS_S, 0))        REDUCE_CAPACITY_HRS_S,
      sum(tmp1.CONF_OVERCOM_HRS_S),
      sum(tmp1.PROV_OVERCOM_HRS_S),
      sum(case when l_avl_bkt_1 is not null and
                    nvl(rms.CONF_HRS_S, 0) + nvl(tmp1.CONF_HRS_S, 0) <=
                    ((nvl(rms.CAPACITY_HRS, 0) + nvl(tmp1.CAPACITY_HRS, 0)) *
                    ((100-l_avl_bkt_1)/100))
               then - nvl(tmp1.CONF_HRS_S, 0) + nvl(tmp1.CAPACITY_HRS, 0)
               else - nvl(rms.AVAILABLE_HRS_BKT1_S, 0)
               end)                                 AVAILABLE_HRS_BKT1_S,
      sum(case when l_avl_bkt_2 is not null and
                    nvl(rms.CONF_HRS_S, 0) + nvl(tmp1.CONF_HRS_S, 0) <=
                    ((nvl(rms.CAPACITY_HRS, 0) + nvl(tmp1.CAPACITY_HRS, 0)) *
                    ((100-l_avl_bkt_2)/100))
               then - nvl(tmp1.CONF_HRS_S, 0) + nvl(tmp1.CAPACITY_HRS, 0)
               else - nvl(rms.AVAILABLE_HRS_BKT2_S, 0)
               end)                                 AVAILABLE_HRS_BKT2_S,
      sum(case when l_avl_bkt_3 is not null and
                    nvl(rms.CONF_HRS_S, 0) + nvl(tmp1.CONF_HRS_S, 0) <=
                    ((nvl(rms.CAPACITY_HRS, 0) + nvl(tmp1.CAPACITY_HRS, 0)) *
                    ((100-l_avl_bkt_3)/100))
               then - nvl(tmp1.CONF_HRS_S, 0) + nvl(tmp1.CAPACITY_HRS, 0)
               else - nvl(rms.AVAILABLE_HRS_BKT3_S, 0)
               end)                                 AVAILABLE_HRS_BKT3_S,
      sum(case when l_avl_bkt_4 is not null and
                    nvl(rms.CONF_HRS_S, 0) + nvl(tmp1.CONF_HRS_S, 0) <=
                    ((nvl(rms.CAPACITY_HRS, 0) + nvl(tmp1.CAPACITY_HRS, 0)) *
                    ((100-l_avl_bkt_4)/100))
               then - nvl(tmp1.CONF_HRS_S, 0) + nvl(tmp1.CAPACITY_HRS, 0)
               else - nvl(rms.AVAILABLE_HRS_BKT4_S, 0)
               end)                                 AVAILABLE_HRS_BKT4_S,
      sum(case when l_avl_bkt_5 is not null and
                    nvl(rms.CONF_HRS_S, 0) + nvl(tmp1.CONF_HRS_S, 0) <=
                    ((nvl(rms.CAPACITY_HRS, 0) + nvl(tmp1.CAPACITY_HRS, 0)) *
                    ((100-l_avl_bkt_5)/100))
               then - nvl(tmp1.CONF_HRS_S, 0) + nvl(tmp1.CAPACITY_HRS, 0)
               else - nvl(rms.AVAILABLE_HRS_BKT5_S, 0)
               end)                                 AVAILABLE_HRS_BKT5_S,
      sum(case when l_avl_bkt_1 is not null and
                    nvl(rms.CONF_HRS_S, 0) + nvl(tmp1.CONF_HRS_S, 0) <=
                    ((nvl(rms.CAPACITY_HRS, 0) + nvl(tmp1.CAPACITY_HRS, 0)) *
                    ((100-l_avl_bkt_1)/100))
               then 1 - nvl(rms.AVAILABLE_RES_COUNT_BKT1_S, 0)
               else - nvl(rms.AVAILABLE_RES_COUNT_BKT1_S, 0)
               end)                                 AVAILABLE_RES_COUNT_BKT1_S,
      sum(case when l_avl_bkt_2 is not null and
                    nvl(rms.CONF_HRS_S, 0) + nvl(tmp1.CONF_HRS_S, 0) <=
                    ((nvl(rms.CAPACITY_HRS, 0) + nvl(tmp1.CAPACITY_HRS, 0)) *
                    ((100-l_avl_bkt_2)/100))
               then 1 - nvl(rms.AVAILABLE_RES_COUNT_BKT2_S, 0)
               else - nvl(rms.AVAILABLE_RES_COUNT_BKT2_S, 0)
               end)                                 AVAILABLE_RES_COUNT_BKT2_S,
      sum(case when l_avl_bkt_3 is not null and
                    nvl(rms.CONF_HRS_S, 0) + nvl(tmp1.CONF_HRS_S, 0) <=
                    ((nvl(rms.CAPACITY_HRS, 0) + nvl(tmp1.CAPACITY_HRS, 0)) *
                    ((100-l_avl_bkt_3)/100))
               then 1 - nvl(rms.AVAILABLE_RES_COUNT_BKT3_S, 0)
               else - nvl(rms.AVAILABLE_RES_COUNT_BKT3_S, 0)
               end)                                 AVAILABLE_RES_COUNT_BKT3_S,
      sum(case when l_avl_bkt_4 is not null and
                    nvl(rms.CONF_HRS_S, 0) + nvl(tmp1.CONF_HRS_S, 0) <=
                    ((nvl(rms.CAPACITY_HRS, 0) + nvl(tmp1.CAPACITY_HRS, 0)) *
                    ((100-l_avl_bkt_4)/100))
               then 1 - nvl(rms.AVAILABLE_RES_COUNT_BKT4_S, 0)
               else - nvl(rms.AVAILABLE_RES_COUNT_BKT4_S, 0)
               end)                                 AVAILABLE_RES_COUNT_BKT4_S,
      sum(case when l_avl_bkt_5 is not null and
                    nvl(rms.CONF_HRS_S, 0) + nvl(tmp1.CONF_HRS_S, 0) <=
                    ((nvl(rms.CAPACITY_HRS, 0) + nvl(tmp1.CAPACITY_HRS, 0)) *
                    ((100-l_avl_bkt_5)/100))
               then 1 - nvl(rms.AVAILABLE_RES_COUNT_BKT5_S, 0)
               else - nvl(rms.AVAILABLE_RES_COUNT_BKT5_S, 0)
               end)                                 AVAILABLE_RES_COUNT_BKT5_S,
      sum(case when tmp1.CAPACITY_HRS < 0 and
                    (tmp1.CAPACITY_HRS + nvl(rms.CAPACITY_HRS, 0)) = 0
               then -1
               when tmp1.CAPACITY_HRS > 0 and
                    nvl(rms.CAPACITY_HRS, 0) = 0
               then 1
               else 0
               end) TOTAL_RES_COUNT
    from
      (
      select
        PERSON_ID,
        EXPENDITURE_ORG_ID,
        EXPENDITURE_ORGANIZATION_ID,
        JOB_ID,
        TIME_ID,
        PERIOD_TYPE_ID,
        CALENDAR_TYPE,
        GL_CALENDAR_ID,
        PA_CALENDAR_ID,
        sum(CAPACITY_HRS)            CAPACITY_HRS,
        sum(TOTAL_HRS_A)             TOTAL_HRS_A,
        sum(TOTAL_WTD_ORG_HRS_A)     TOTAL_WTD_ORG_HRS_A,
        sum(TOTAL_WTD_RES_HRS_A)     TOTAL_WTD_RES_HRS_A,
        sum(BILL_HRS_A)              BILL_HRS_A,
        sum(BILL_WTD_ORG_HRS_A)      BILL_WTD_ORG_HRS_A,
        sum(BILL_WTD_RES_HRS_A)      BILL_WTD_RES_HRS_A,
        sum(TRAINING_HRS_A)          TRAINING_HRS_A,
        sum(REDUCE_CAPACITY_HRS_A)   REDUCE_CAPACITY_HRS_A,
        sum(CONF_HRS_S)              CONF_HRS_S,
        sum(CONF_WTD_ORG_HRS_S)      CONF_WTD_ORG_HRS_S,
        sum(CONF_WTD_RES_HRS_S)      CONF_WTD_RES_HRS_S,
        sum(CONF_BILL_HRS_S)         CONF_BILL_HRS_S,
        sum(CONF_BILL_WTD_ORG_HRS_S) CONF_BILL_WTD_ORG_HRS_S,
        sum(CONF_BILL_WTD_RES_HRS_S) CONF_BILL_WTD_RES_HRS_S,
        sum(PROV_HRS_S)              PROV_HRS_S,
        sum(PROV_WTD_ORG_HRS_S)      PROV_WTD_ORG_HRS_S,
        sum(PROV_WTD_RES_HRS_S)      PROV_WTD_RES_HRS_S,
        sum(PROV_BILL_HRS_S)         PROV_BILL_HRS_S,
        sum(PROV_BILL_WTD_ORG_HRS_S) PROV_BILL_WTD_ORG_HRS_S,
        sum(PROV_BILL_WTD_RES_HRS_S) PROV_BILL_WTD_RES_HRS_S,
        sum(TRAINING_HRS_S)          TRAINING_HRS_S,
        sum(UNASSIGNED_HRS_S)        UNASSIGNED_HRS_S,
        sum(REDUCE_CAPACITY_HRS_S)   REDUCE_CAPACITY_HRS_S,
        sum(CONF_OVERCOM_HRS_S)      CONF_OVERCOM_HRS_S,
        sum(PROV_OVERCOM_HRS_S)      PROV_OVERCOM_HRS_S
      from
      (
        select /*+ ordered
                   full(wt)   use_hash(wt)   swap_join_inputs(wt)
                   full(tmp1) use_hash(tmp1) parallel(tmp1) */
          tmp1.PERSON_ID,
          tmp1.EXPENDITURE_ORG_ID,
          tmp1.EXPENDITURE_ORGANIZATION_ID,
          tmp1.JOB_ID,
          tmp1.TIME_ID,
          tmp1.PERIOD_TYPE_ID,
          tmp1.CALENDAR_TYPE,
          tmp1.GL_CALENDAR_ID,
          tmp1.PA_CALENDAR_ID,
          tmp1.CAPACITY_HRS                            CAPACITY_HRS,
          tmp1.TOTAL_HRS_A                             TOTAL_HRS_A,
          tmp1.TOTAL_HRS_A
            * wt.ORG_UTILIZATION_PERCENTAGE / 100      TOTAL_WTD_ORG_HRS_A,
          tmp1.TOTAL_HRS_A
            * wt.RES_UTILIZATION_PERCENTAGE / 100      TOTAL_WTD_RES_HRS_A,
          tmp1.BILL_HRS_A                              BILL_HRS_A,
          tmp1.BILL_HRS_A
            * wt.ORG_UTILIZATION_PERCENTAGE / 100      BILL_WTD_ORG_HRS_A,
          tmp1.BILL_HRS_A
            * wt.RES_UTILIZATION_PERCENTAGE / 100      BILL_WTD_RES_HRS_A,
          decode(wt.TRAINING_FLAG,
                 'Y', tmp1.TOTAL_HRS_A, 0)             TRAINING_HRS_A,
          decode(wt.REDUCE_CAPACITY_FLAG,
                 'Y', tmp1.TOTAL_HRS_A, 0)             REDUCE_CAPACITY_HRS_A,
          tmp1.CONF_HRS_S                              CONF_HRS_S,
          tmp1.CONF_HRS_S
            * wt.ORG_UTILIZATION_PERCENTAGE / 100      CONF_WTD_ORG_HRS_S,
          tmp1.CONF_HRS_S
            * wt.RES_UTILIZATION_PERCENTAGE / 100      CONF_WTD_RES_HRS_S,
          decode(wt.BILLABLE_CAPITALIZABLE_FLAG,
                 'Y', tmp1.CONF_HRS_S, 0)              CONF_BILL_HRS_S,
          decode(wt.BILLABLE_CAPITALIZABLE_FLAG,
                 'Y', tmp1.CONF_HRS_S
                      * wt.ORG_UTILIZATION_PERCENTAGE
                      / 100, 0)                        CONF_BILL_WTD_ORG_HRS_S,
          decode(wt.BILLABLE_CAPITALIZABLE_FLAG,
                 'Y', tmp1.CONF_HRS_S
                      * wt.RES_UTILIZATION_PERCENTAGE
                      / 100, 0)                        CONF_BILL_WTD_RES_HRS_S,
          tmp1.PROV_HRS_S                              PROV_HRS_S,
          tmp1.PROV_HRS_S
            * wt.ORG_UTILIZATION_PERCENTAGE / 100      PROV_WTD_ORG_HRS_S,
          tmp1.PROV_HRS_S
            * wt.RES_UTILIZATION_PERCENTAGE / 100      PROV_WTD_RES_HRS_S,
          decode(wt.BILLABLE_CAPITALIZABLE_FLAG,
                 'Y', tmp1.PROV_HRS_S, 0)              PROV_BILL_HRS_S,
          decode(wt.BILLABLE_CAPITALIZABLE_FLAG,
                 'Y', tmp1.PROV_HRS_S
                      * wt.ORG_UTILIZATION_PERCENTAGE
                      / 100, 0)                        PROV_BILL_WTD_ORG_HRS_S,
          decode(wt.BILLABLE_CAPITALIZABLE_FLAG,
                 'Y', tmp1.PROV_HRS_S
                      * wt.RES_UTILIZATION_PERCENTAGE
                      / 100, 0)                        PROV_BILL_WTD_RES_HRS_S,
          decode(wt.TRAINING_FLAG,
                 'Y', tmp1.CONF_HRS_S, 0)              TRAINING_HRS_S,
          tmp1.UNASSIGNED_HRS_S                        UNASSIGNED_HRS_S,
          decode(wt.REDUCE_CAPACITY_FLAG,
                 'Y', tmp1.CONF_HRS_S, 0)              REDUCE_CAPACITY_HRS_S,
          tmp1.CONF_OVERCOM_HRS_S                      CONF_OVERCOM_HRS_S,
          tmp1.PROV_OVERCOM_HRS_S                      PROV_OVERCOM_HRS_S
        from
          PJI_RM_WORK_TYPE_INFO wt,
          PJI_RM_AGGR_RES1      tmp1
        where
          tmp1.WORKER_ID    = p_worker_id         and
          tmp1.RECORD_TYPE <> 'N'                 and
          'NORMAL'          = wt.RECORD_TYPE  (+) and
          tmp1.WORK_TYPE_ID = wt.WORK_TYPE_ID (+)
        union all
        select /*+ ordered
                   full(wt_old)   use_hash(wt_old)
                   full(wt_new)   use_hash(wt_new)
                   parallel(rmr)
                   full(info)     use_hash(info) */    -- work type corrections
          rmr.PERSON_ID,
          rmr.EXPENDITURE_ORG_ID,
          rmr.EXPENDITURE_ORGANIZATION_ID,
          rmr.JOB_ID,
          rmr.TIME_ID,
          rmr.PERIOD_TYPE_ID,
          rmr.CALENDAR_TYPE,
          info.GL_CALENDAR_ID,
          info.PA_CALENDAR_ID,
          0                                            CAPACITY_HRS,
          0                                            TOTAL_HRS_A,
          rmr.TOTAL_HRS_A
            * (wt_new.ORG_UTILIZATION_PERCENTAGE -
               wt_old.ORG_UTILIZATION_PERCENTAGE)
            / 100                                      TOTAL_WTD_ORG_HRS_A,
          rmr.TOTAL_HRS_A
            * (wt_new.RES_UTILIZATION_PERCENTAGE -
               wt_old.RES_UTILIZATION_PERCENTAGE)
            / 100                                      TOTAL_WTD_RES_HRS_A,
          0                                            BILL_HRS_A,
          rmr.BILL_HRS_A
            * (wt_new.ORG_UTILIZATION_PERCENTAGE -
               wt_old.ORG_UTILIZATION_PERCENTAGE)
            / 100                                      BILL_WTD_ORG_HRS_A,
          rmr.BILL_HRS_A
            * (wt_new.RES_UTILIZATION_PERCENTAGE -
               wt_old.RES_UTILIZATION_PERCENTAGE)
            / 100                                      BILL_WTD_RES_HRS_A,
          case when nvl(wt_old.TRAINING_FLAG, 'N') = 'N' and
                    nvl(wt_new.TRAINING_FLAG, 'N') = 'Y'
               then rmr.TOTAL_HRS_A
               when nvl(wt_old.TRAINING_FLAG, 'N') = 'Y' and
                    nvl(wt_new.TRAINING_FLAG, 'N') = 'N'
               then -rmr.TOTAL_HRS_A
               else 0
               end                                     TRAINING_HRS_A,
          case when nvl(wt_old.REDUCE_CAPACITY_FLAG, 'N') = 'N' and
                    nvl(wt_new.REDUCE_CAPACITY_FLAG, 'N') = 'Y'
               then rmr.TOTAL_HRS_A
               when nvl(wt_old.REDUCE_CAPACITY_FLAG, 'N') = 'Y' and
                    nvl(wt_new.REDUCE_CAPACITY_FLAG, 'N') = 'N'
               then -rmr.TOTAL_HRS_A
               else 0
               end                                     REDUCE_CAPACITY_HRS_A,
          0                                            CONF_HRS_S,
          rmr.CONF_HRS_S
            * (wt_new.ORG_UTILIZATION_PERCENTAGE -
               wt_old.ORG_UTILIZATION_PERCENTAGE)
            / 100                                      CONF_WTD_ORG_HRS_S,
          rmr.CONF_HRS_S
            * (wt_new.RES_UTILIZATION_PERCENTAGE -
               wt_old.RES_UTILIZATION_PERCENTAGE)
            / 100                                      CONF_WTD_RES_HRS_S,
          case when nvl(wt_old.BILLABLE_CAPITALIZABLE_FLAG, 'N') = 'N' and
                    nvl(wt_new.BILLABLE_CAPITALIZABLE_FLAG, 'N') = 'Y'
               then rmr.CONF_HRS_S
               when nvl(wt_old.BILLABLE_CAPITALIZABLE_FLAG, 'N') = 'Y' and
                    nvl(wt_new.BILLABLE_CAPITALIZABLE_FLAG, 'N') = 'N'
               then -rmr.CONF_HRS_S
               else 0
               end                                     CONF_BILL_HRS_S,
          case when nvl(wt_old.BILLABLE_CAPITALIZABLE_FLAG, 'N') = 'N' and
                    nvl(wt_new.BILLABLE_CAPITALIZABLE_FLAG, 'N') = 'Y'
               then rmr.CONF_HRS_S * wt_new.ORG_UTILIZATION_PERCENTAGE / 100
               when nvl(wt_old.BILLABLE_CAPITALIZABLE_FLAG, 'N') = 'Y' and
                    nvl(wt_new.BILLABLE_CAPITALIZABLE_FLAG, 'N') = 'N'
               then -rmr.CONF_HRS_S * wt_old.ORG_UTILIZATION_PERCENTAGE / 100
               else 0
               end                                     CONF_BILL_WTD_ORG_HRS_S,
          case when nvl(wt_old.BILLABLE_CAPITALIZABLE_FLAG, 'N') = 'N' and
                    nvl(wt_new.BILLABLE_CAPITALIZABLE_FLAG, 'N') = 'Y'
               then rmr.CONF_HRS_S * wt_new.RES_UTILIZATION_PERCENTAGE / 100
               when nvl(wt_old.BILLABLE_CAPITALIZABLE_FLAG, 'N') = 'Y' and
                    nvl(wt_new.BILLABLE_CAPITALIZABLE_FLAG, 'N') = 'N'
               then -rmr.CONF_HRS_S * wt_old.RES_UTILIZATION_PERCENTAGE / 100
               else 0
               end                                     CONF_BILL_WTD_RES_HRS_S,
          0                                            PROV_HRS_S,
          rmr.PROV_HRS_S
            * (wt_new.ORG_UTILIZATION_PERCENTAGE -
               wt_old.ORG_UTILIZATION_PERCENTAGE)
            / 100                                      PROV_WTD_ORG_HRS_S,
          rmr.PROV_HRS_S
            * (wt_new.RES_UTILIZATION_PERCENTAGE -
               wt_old.RES_UTILIZATION_PERCENTAGE)
            / 100                                      PROV_WTD_RES_HRS_S,
          case when nvl(wt_old.BILLABLE_CAPITALIZABLE_FLAG, 'N') = 'N' and
                    nvl(wt_new.BILLABLE_CAPITALIZABLE_FLAG, 'N') = 'Y'
               then rmr.PROV_HRS_S
               when nvl(wt_old.BILLABLE_CAPITALIZABLE_FLAG, 'N') = 'Y' and
                    nvl(wt_new.BILLABLE_CAPITALIZABLE_FLAG, 'N') = 'N'
               then -rmr.PROV_HRS_S
               else 0
               end                                     PROV_BILL_HRS_S,
          case when nvl(wt_old.BILLABLE_CAPITALIZABLE_FLAG, 'N') = 'N' and
                    nvl(wt_new.BILLABLE_CAPITALIZABLE_FLAG, 'N') = 'Y'
               then rmr.PROV_HRS_S * wt_new.ORG_UTILIZATION_PERCENTAGE / 100
               when nvl(wt_old.BILLABLE_CAPITALIZABLE_FLAG, 'N') = 'Y' and
                    nvl(wt_new.BILLABLE_CAPITALIZABLE_FLAG, 'N') = 'N'
               then -rmr.PROV_HRS_S * wt_old.ORG_UTILIZATION_PERCENTAGE / 100
               else 0
               end                                     PROV_BILL_WTD_ORG_HRS_S,
          case when nvl(wt_old.BILLABLE_CAPITALIZABLE_FLAG, 'N') = 'N' and
                    nvl(wt_new.BILLABLE_CAPITALIZABLE_FLAG, 'N') = 'Y'
               then rmr.PROV_HRS_S * wt_new.RES_UTILIZATION_PERCENTAGE / 100
               when nvl(wt_old.BILLABLE_CAPITALIZABLE_FLAG, 'N') = 'Y' and
                    nvl(wt_new.BILLABLE_CAPITALIZABLE_FLAG, 'N') = 'N'
               then -rmr.PROV_HRS_S * wt_old.RES_UTILIZATION_PERCENTAGE / 100
               else 0
               end                                     PROV_BILL_WTD_RES_HRS_S,
          case when nvl(wt_old.TRAINING_FLAG, 'N') = 'N' and
                    nvl(wt_new.TRAINING_FLAG, 'N') = 'Y'
               then rmr.CONF_HRS_S
               when nvl(wt_old.TRAINING_FLAG, 'N') = 'Y' and
                    nvl(wt_new.TRAINING_FLAG, 'N') = 'N'
               then -rmr.CONF_HRS_S
               else 0
               end                                     TRAINING_HRS_S,
          0                                            UNASSIGNED_HRS_S,
          case when nvl(wt_old.REDUCE_CAPACITY_FLAG, 'N') = 'N' and
                    nvl(wt_new.REDUCE_CAPACITY_FLAG, 'N') = 'Y'
               then rmr.CONF_HRS_S
               when nvl(wt_old.REDUCE_CAPACITY_FLAG, 'N') = 'Y' and
                    nvl(wt_new.REDUCE_CAPACITY_FLAG, 'N') = 'N'
               then -rmr.CONF_HRS_S
               else 0
               end                                     REDUCE_CAPACITY_HRS_S,
          0                                            CONF_OVERCOM_HRS_S,
          0                                            PROV_OVERCOM_HRS_S
        from
          PJI_RM_WORK_TYPE_INFO wt_old,
          PJI_RM_WORK_TYPE_INFO wt_new,
          PJI_RM_RES_WT_F       rmr,
          PJI_ORG_EXTR_INFO     info
        where
          l_extraction_type          = 'INCREMENTAL'                        and
          l_work_type_change         = 'CHANGE_EXISTS'                      and
          wt_old.RECORD_TYPE         = 'CHANGE_OLD'                         and
          wt_new.RECORD_TYPE         = 'CHANGE_NEW'                         and
          wt_old.WORK_TYPE_ID        = wt_new.WORK_TYPE_ID                  and
          rmr.CALENDAR_TYPE          = 'C'                                  and
          rmr.PERIOD_TYPE_ID         = 1                                    and
          wt_new.WORK_TYPE_ID        = rmr.WORK_TYPE_ID                     and
          (rmr.PROJECT_ID in
           (select /*+ full(map1) */
                   PROJECT_ID
            from   PJI_PJI_PROJ_BATCH_MAP map1
            where  WORKER_ID = p_worker_id) or
           rmr.EXPENDITURE_ORGANIZATION_ID in
           (select /*+ full(map2) */
                   ORGANIZATION_ID
            from   PJI_RM_ORG_BATCH_MAP map2
            where  WORKER_ID = p_worker_id))                                and
          rmr.EXPENDITURE_ORG_ID = info.ORG_ID
        )
      group by
        PERSON_ID,
        EXPENDITURE_ORG_ID,
        EXPENDITURE_ORGANIZATION_ID,
        JOB_ID,
        TIME_ID,
        PERIOD_TYPE_ID,
        CALENDAR_TYPE,
        GL_CALENDAR_ID,
        PA_CALENDAR_ID
      ) tmp1,
      PJI_RM_RES_F rms
    where
      tmp1.PERSON_ID                   = rms.PERSON_ID                  (+) and
      tmp1.EXPENDITURE_ORG_ID          = rms.EXPENDITURE_ORG_ID         (+) and
      tmp1.EXPENDITURE_ORGANIZATION_ID = rms.EXPENDITURE_ORGANIZATION_ID(+) and
      tmp1.TIME_ID                     = rms.TIME_ID                    (+) and
      tmp1.PERIOD_TYPE_ID              = rms.PERIOD_TYPE_ID             (+) and
      tmp1.CALENDAR_TYPE               = rms.CALENDAR_TYPE              (+)
    group by
      tmp1.PERSON_ID,
      tmp1.EXPENDITURE_ORG_ID,
      tmp1.EXPENDITURE_ORGANIZATION_ID,
      tmp1.JOB_ID,
      tmp1.TIME_ID,
      tmp1.PERIOD_TYPE_ID,
      tmp1.CALENDAR_TYPE,
      tmp1.GL_CALENDAR_ID,
      tmp1.PA_CALENDAR_ID;
Line: 761

    insert /*+ append parallel(res1_i) */ into PJI_RM_AGGR_RES1 res1_i
    (
      WORKER_ID,
      RECORD_TYPE,
      PROJECT_ID,
      PERSON_ID,
      EXPENDITURE_ORG_ID,
      EXPENDITURE_ORGANIZATION_ID,
      WORK_TYPE_ID,
      JOB_ID,
      TIME_ID,
      PERIOD_TYPE_ID,
      CALENDAR_TYPE,
      CAPACITY_HRS,
      TOTAL_HRS_A,
      BILL_HRS_A,
      CONF_HRS_S,
      PROV_HRS_S,
      UNASSIGNED_HRS_S,
      CONF_OVERCOM_HRS_S,
      PROV_OVERCOM_HRS_S
    )
    select /*+ ordered
               full(time) use_hash(time) swap_join_inputs(time)
               full(tmp1) use_hash(tmp1) parallel(tmp1) */
      p_worker_id,
      tmp1.RECORD_TYPE,
      -1,
      tmp1.PERSON_ID,
      tmp1.EXPENDITURE_ORG_ID,
      tmp1.EXPENDITURE_ORGANIZATION_ID,
      tmp1.WORK_TYPE_ID,
      tmp1.JOB_ID,
      case when grouping(time.ENT_YEAR_ID)   = 0 and
                grouping(time.ENT_QTR_ID)    = 0 and
                grouping(time.ENT_PERIOD_ID) = 0
           then time.ENT_PERIOD_ID
           when grouping(time.ENT_YEAR_ID)   = 0 and
                grouping(time.ENT_QTR_ID)    = 0 and
                grouping(time.ENT_PERIOD_ID) = 1
           then time.ENT_QTR_ID
           when grouping(time.ENT_YEAR_ID)   = 0 and
                grouping(time.ENT_QTR_ID)    = 1 and
                grouping(time.ENT_PERIOD_ID) = 1
           then time.ENT_YEAR_ID
           end                                TIME_ID,
      case when grouping(time.ENT_YEAR_ID)   = 0 and
                grouping(time.ENT_QTR_ID)    = 0 and
                grouping(time.ENT_PERIOD_ID) = 0
           then 32
           when grouping(time.ENT_YEAR_ID)   = 0 and
                grouping(time.ENT_QTR_ID)    = 0 and
                grouping(time.ENT_PERIOD_ID) = 1
           then 64
           when grouping(time.ENT_YEAR_ID)   = 0 and
                grouping(time.ENT_QTR_ID)    = 1 and
                grouping(time.ENT_PERIOD_ID) = 1
           then 128
           end                                PERIOD_TYPE_ID,
      'E'                                     CALENDAR_TYPE,
      sum(tmp1.CAPACITY_HRS)                  CAPACITY_HRS,
      sum(tmp1.TOTAL_HRS_A)                   TOTAL_HRS_A,
      sum(tmp1.BILL_HRS_A)                    BILL_HRS_A,
      sum(tmp1.CONF_HRS_S)                    CONF_HRS_S,
      sum(tmp1.PROV_HRS_S)                    PROV_HRS_S,
      sum(tmp1.UNASSIGNED_HRS_S)              UNASSIGNED_HRS_S,
      sum(tmp1.CONF_OVERCOM_HRS_S)            CONF_OVERCOM_HRS_S,
      sum(tmp1.PROV_OVERCOM_HRS_S)            PROV_OVERCOM_HRS_S
    from
      FII_TIME_DAY     time,
      PJI_RM_AGGR_RES1 tmp1
    where
      tmp1.WORKER_ID      = p_worker_id and
      tmp1.RECORD_TYPE   <> 'N'         and
      tmp1.PERIOD_TYPE_ID = 1           and
      tmp1.CALENDAR_TYPE  = 'C'         and
      tmp1.TIME_ID        = time.REPORT_DATE_JULIAN
    group by
      tmp1.RECORD_TYPE,
      tmp1.PERSON_ID,
      tmp1.EXPENDITURE_ORG_ID,
      tmp1.EXPENDITURE_ORGANIZATION_ID,
      tmp1.WORK_TYPE_ID,
      tmp1.JOB_ID,
      rollup (time.ENT_YEAR_ID,
              time.ENT_QTR_ID,
              time.ENT_PERIOD_ID)
    having
      not (grouping(time.ENT_YEAR_ID)   = 1 and
           grouping(time.ENT_QTR_ID)    = 1 and
           grouping(time.ENT_PERIOD_ID) = 1);
Line: 909

    insert /*+ append parallel(res1_i) */ into PJI_RM_AGGR_RES1 res1_i
    (
      WORKER_ID,
      RECORD_TYPE,
      PROJECT_ID,
      PERSON_ID,
      EXPENDITURE_ORG_ID,
      EXPENDITURE_ORGANIZATION_ID,
      WORK_TYPE_ID,
      JOB_ID,
      TIME_ID,
      PERIOD_TYPE_ID,
      CALENDAR_TYPE,
      CAPACITY_HRS,
      TOTAL_HRS_A,
      BILL_HRS_A,
      CONF_HRS_S,
      PROV_HRS_S,
      UNASSIGNED_HRS_S,
      CONF_OVERCOM_HRS_S,
      PROV_OVERCOM_HRS_S
    )
    select /*+ ordered
               full(time) use_hash(time) parallel(time) swap_join_inputs(time)
               full(tmp1) use_hash(tmp1) parallel(tmp1) */
      p_worker_id,
      tmp1.RECORD_TYPE,
      -1,
      tmp1.PERSON_ID,
      tmp1.EXPENDITURE_ORG_ID,
      tmp1.EXPENDITURE_ORGANIZATION_ID,
      tmp1.WORK_TYPE_ID,
      tmp1.JOB_ID,
      case when grouping(time.CAL_YEAR_ID)   = 0 and
                grouping(time.CAL_QTR_ID)    = 0 and
                grouping(time.CAL_PERIOD_ID) = 0
           then time.CAL_PERIOD_ID
           when grouping(time.CAL_YEAR_ID)   = 0 and
                grouping(time.CAL_QTR_ID)    = 0 and
                grouping(time.CAL_PERIOD_ID) = 1
           then time.CAL_QTR_ID
           when grouping(time.CAL_YEAR_ID)   = 0 and
                grouping(time.CAL_QTR_ID)    = 1 and
                grouping(time.CAL_PERIOD_ID) = 1
           then time.CAL_YEAR_ID
           end                                TIME_ID,
      case when grouping(time.CAL_YEAR_ID)   = 0 and
                grouping(time.CAL_QTR_ID)    = 0 and
                grouping(time.CAL_PERIOD_ID) = 0
           then 32
           when grouping(time.CAL_YEAR_ID)   = 0 and
                grouping(time.CAL_QTR_ID)    = 0 and
                grouping(time.CAL_PERIOD_ID) = 1
           then 64
           when grouping(time.CAL_YEAR_ID)   = 0 and
                grouping(time.CAL_QTR_ID)    = 1 and
                grouping(time.CAL_PERIOD_ID) = 1
           then 128
           end                                PERIOD_TYPE_ID,
      'P'                                     CALENDAR_TYPE,
      sum(tmp1.CAPACITY_HRS)                  CAPACITY_HRS,
      sum(tmp1.TOTAL_HRS_A)                   TOTAL_HRS_A,
      sum(tmp1.BILL_HRS_A)                    BILL_HRS_A,
      sum(tmp1.CONF_HRS_S)                    CONF_HRS_S,
      sum(tmp1.PROV_HRS_S)                    PROV_HRS_S,
      sum(tmp1.UNASSIGNED_HRS_S)              UNASSIGNED_HRS_S,
      sum(tmp1.CONF_OVERCOM_HRS_S)            CONF_OVERCOM_HRS_S,
      sum(tmp1.PROV_OVERCOM_HRS_S)            PROV_OVERCOM_HRS_S
    from
      FII_TIME_CAL_DAY_MV time,
      PJI_RM_AGGR_RES1    tmp1
    where
      tmp1.WORKER_ID                      = p_worker_id      and
      tmp1.RECORD_TYPE                   <> 'N'              and
      tmp1.PERIOD_TYPE_ID                 = 1                and
      tmp1.CALENDAR_TYPE                  = 'C'              and
      to_date(to_char(tmp1.TIME_ID), 'J') = time.REPORT_DATE and
      tmp1.PA_CALENDAR_ID                 = time.CALENDAR_ID
    group by
      tmp1.RECORD_TYPE,
      tmp1.PERSON_ID,
      tmp1.EXPENDITURE_ORGANIZATION_ID,
      tmp1.EXPENDITURE_ORG_ID,
      tmp1.WORK_TYPE_ID,
      tmp1.JOB_ID,
      rollup (time.CAL_YEAR_ID,
              time.CAL_QTR_ID,
              time.CAL_PERIOD_ID)
    having
      not (grouping(time.CAL_YEAR_ID)   = 1 and
           grouping(time.CAL_QTR_ID)    = 1 and
           grouping(time.CAL_PERIOD_ID) = 1);
Line: 1058

    insert /*+ append parallel(res1_i) */ into PJI_RM_AGGR_RES1 res1_i
    (
      WORKER_ID,
      RECORD_TYPE,
      PROJECT_ID,
      PERSON_ID,
      EXPENDITURE_ORG_ID,
      EXPENDITURE_ORGANIZATION_ID,
      WORK_TYPE_ID,
      JOB_ID,
      TIME_ID,
      PERIOD_TYPE_ID,
      CALENDAR_TYPE,
      CAPACITY_HRS,
      TOTAL_HRS_A,
      BILL_HRS_A,
      CONF_HRS_S,
      PROV_HRS_S,
      UNASSIGNED_HRS_S,
      CONF_OVERCOM_HRS_S,
      PROV_OVERCOM_HRS_S
    )
    select /*+ ordered
               full(time) use_hash(time) parallel(time) swap_join_inputs(time)
               full(tmp1) use_hash(tmp1) parallel(tmp1) */
      p_worker_id,
      tmp1.RECORD_TYPE,
      -1,
      tmp1.PERSON_ID,
      tmp1.EXPENDITURE_ORG_ID,
      tmp1.EXPENDITURE_ORGANIZATION_ID,
      tmp1.WORK_TYPE_ID,
      tmp1.JOB_ID,
      case when grouping(time.CAL_YEAR_ID)   = 0 and
                grouping(time.CAL_QTR_ID)    = 0 and
                grouping(time.CAL_PERIOD_ID) = 0
           then time.CAL_PERIOD_ID
           when grouping(time.CAL_YEAR_ID)   = 0 and
                grouping(time.CAL_QTR_ID)    = 0 and
                grouping(time.CAL_PERIOD_ID) = 1
           then time.CAL_QTR_ID
           when grouping(time.CAL_YEAR_ID)   = 0 and
                grouping(time.CAL_QTR_ID)    = 1 and
                grouping(time.CAL_PERIOD_ID) = 1
           then time.CAL_YEAR_ID
           end                                TIME_ID,
      case when grouping(time.CAL_YEAR_ID)   = 0 and
                grouping(time.CAL_QTR_ID)    = 0 and
                grouping(time.CAL_PERIOD_ID) = 0
           then 32
           when grouping(time.CAL_YEAR_ID)   = 0 and
                grouping(time.CAL_QTR_ID)    = 0 and
                grouping(time.CAL_PERIOD_ID) = 1
           then 64
           when grouping(time.CAL_YEAR_ID)   = 0 and
                grouping(time.CAL_QTR_ID)    = 1 and
                grouping(time.CAL_PERIOD_ID) = 1
           then 128
           end                                PERIOD_TYPE_ID,
      'G'                                     CALENDAR_TYPE,
      sum(tmp1.CAPACITY_HRS)                  CAPACITY_HRS,
      sum(tmp1.TOTAL_HRS_A)                   TOTAL_HRS_A,
      sum(tmp1.BILL_HRS_A)                    BILL_HRS_A,
      sum(tmp1.CONF_HRS_S)                    CONF_HRS_S,
      sum(tmp1.PROV_HRS_S)                    PROV_HRS_S,
      sum(tmp1.UNASSIGNED_HRS_S)              UNASSIGNED_HRS_S,
      sum(tmp1.CONF_OVERCOM_HRS_S)            CONF_OVERCOM_HRS_S,
      sum(tmp1.PROV_OVERCOM_HRS_S)            PROV_OVERCOM_HRS_S
    from
      FII_TIME_CAL_DAY_MV time,
      PJI_RM_AGGR_RES1    tmp1
    where
      tmp1.WORKER_ID                      = p_worker_id      and
      tmp1.RECORD_TYPE                   <> 'N'              and
      tmp1.PERIOD_TYPE_ID                 = 1                and
      tmp1.CALENDAR_TYPE                  = 'C'              and
      to_date(to_char(tmp1.TIME_ID), 'J') = time.REPORT_DATE and
      tmp1.GL_CALENDAR_ID                 = time.CALENDAR_ID
    group by
      tmp1.RECORD_TYPE,
      tmp1.PERSON_ID,
      tmp1.EXPENDITURE_ORGANIZATION_ID,
      tmp1.EXPENDITURE_ORG_ID,
      tmp1.WORK_TYPE_ID,
      tmp1.JOB_ID,
      rollup (time.CAL_YEAR_ID,
              time.CAL_QTR_ID,
              time.CAL_PERIOD_ID)
    having
      not (grouping(time.CAL_YEAR_ID)   = 1 and
           grouping(time.CAL_QTR_ID)    = 1 and
           grouping(time.CAL_PERIOD_ID) = 1);
Line: 1197

    insert /*+ append parallel(res1_i) */ into PJI_RM_AGGR_RES1 res1_i
    (
      WORKER_ID,
      RECORD_TYPE,
      PROJECT_ID,
      PERSON_ID,
      EXPENDITURE_ORG_ID,
      EXPENDITURE_ORGANIZATION_ID,
      WORK_TYPE_ID,
      JOB_ID,
      TIME_ID,
      PERIOD_TYPE_ID,
      CALENDAR_TYPE,
      CAPACITY_HRS,
      TOTAL_HRS_A,
      BILL_HRS_A,
      CONF_HRS_S,
      PROV_HRS_S,
      UNASSIGNED_HRS_S,
      CONF_OVERCOM_HRS_S,
      PROV_OVERCOM_HRS_S
    )
    select /*+ ordered
               full(time) use_hash(time) swap_join_inputs(time)
               full(tmp1) use_hash(tmp1) parallel(tmp1) */
      p_worker_id,
      tmp1.RECORD_TYPE,
      -1,
      tmp1.PERSON_ID,
      tmp1.EXPENDITURE_ORG_ID,
      tmp1.EXPENDITURE_ORGANIZATION_ID,
      tmp1.WORK_TYPE_ID,
      tmp1.JOB_ID,
      time.WEEK_ID                            TIME_ID,
      16                                      PERIOD_TYPE_ID,
      'E'                                     CALENDAR_TYPE,
      sum(tmp1.CAPACITY_HRS)                  CAPACITY_HRS,
      sum(tmp1.TOTAL_HRS_A)                   TOTAL_HRS_A,
      sum(tmp1.BILL_HRS_A)                    BILL_HRS_A,
      sum(tmp1.CONF_HRS_S)                    CONF_HRS_S,
      sum(tmp1.PROV_HRS_S)                    PROV_HRS_S,
      sum(tmp1.UNASSIGNED_HRS_S)              UNASSIGNED_HRS_S,
      sum(tmp1.CONF_OVERCOM_HRS_S)            CONF_OVERCOM_HRS_S,
      sum(tmp1.PROV_OVERCOM_HRS_S)            PROV_OVERCOM_HRS_S
    from
      FII_TIME_DAY     time,
      PJI_RM_AGGR_RES1 tmp1
    where
      tmp1.WORKER_ID      = p_worker_id and
      tmp1.RECORD_TYPE   <> 'N'         and
      tmp1.PERIOD_TYPE_ID = 1           and
      tmp1.CALENDAR_TYPE  = 'C'         and
      tmp1.TIME_ID        = time.REPORT_DATE_JULIAN
    group by
      tmp1.RECORD_TYPE,
      tmp1.PERSON_ID,
      tmp1.EXPENDITURE_ORGANIZATION_ID,
      tmp1.EXPENDITURE_ORG_ID,
      tmp1.WORK_TYPE_ID,
      tmp1.JOB_ID,
      time.WEEK_ID;
Line: 1305

    insert /*+ append parallel(res2_i) */ into PJI_RM_AGGR_RES2 res2_i
    (
      WORKER_ID,
      PERSON_ID,
      EXPENDITURE_ORG_ID,
      EXPENDITURE_ORGANIZATION_ID,
      JOB_ID,
      TIME_ID,
      PERIOD_TYPE_ID,
      CALENDAR_TYPE,
      CAPACITY_HRS,
      TOTAL_HRS_A,
      MISSING_HRS_A,
      TOTAL_WTD_ORG_HRS_A,
      TOTAL_WTD_RES_HRS_A,
      BILL_HRS_A,
      BILL_WTD_ORG_HRS_A,
      BILL_WTD_RES_HRS_A,
      TRAINING_HRS_A,
      UNASSIGNED_HRS_A,
      REDUCIBLE_CAPACITY_HRS_A,
      REDUCE_CAPACITY_HRS_A,
      CONF_HRS_S,
      CONF_WTD_ORG_HRS_S,
      CONF_WTD_RES_HRS_S,
      CONF_BILL_HRS_S,
      CONF_BILL_WTD_ORG_HRS_S,
      CONF_BILL_WTD_RES_HRS_S,
      PROV_HRS_S,
      PROV_WTD_ORG_HRS_S,
      PROV_WTD_RES_HRS_S,
      PROV_BILL_HRS_S,
      PROV_BILL_WTD_ORG_HRS_S,
      PROV_BILL_WTD_RES_HRS_S,
      TRAINING_HRS_S,
      UNASSIGNED_HRS_S,
      REDUCIBLE_CAPACITY_HRS_S,
      REDUCE_CAPACITY_HRS_S,
      CONF_OVERCOM_HRS_S,
      PROV_OVERCOM_HRS_S,
      AVAILABLE_HRS_BKT1_S,
      AVAILABLE_HRS_BKT2_S,
      AVAILABLE_HRS_BKT3_S,
      AVAILABLE_HRS_BKT4_S,
      AVAILABLE_HRS_BKT5_S,
      AVAILABLE_RES_COUNT_BKT1_S,
      AVAILABLE_RES_COUNT_BKT2_S,
      AVAILABLE_RES_COUNT_BKT3_S,
      AVAILABLE_RES_COUNT_BKT4_S,
      AVAILABLE_RES_COUNT_BKT5_S,
      TOTAL_RES_COUNT
    )
    select /*+ ordered
               full(time) use_hash(time) swap_join_inputs(time)
               full(tmp2) use_hash(tmp2) parallel(tmp2) */
      p_worker_id,
      tmp2.PERSON_ID,
      tmp2.EXPENDITURE_ORG_ID,
      tmp2.EXPENDITURE_ORGANIZATION_ID,
      tmp2.JOB_ID,
      case when grouping(time.ENT_YEAR_ID)   = 0 and
                grouping(time.ENT_QTR_ID)    = 0 and
                grouping(time.ENT_PERIOD_ID) = 0
           then time.ENT_PERIOD_ID
           when grouping(time.ENT_YEAR_ID)   = 0 and
                grouping(time.ENT_QTR_ID)    = 0 and
                grouping(time.ENT_PERIOD_ID) = 1
           then time.ENT_QTR_ID
           when grouping(time.ENT_YEAR_ID)   = 0 and
                grouping(time.ENT_QTR_ID)    = 1 and
                grouping(time.ENT_PERIOD_ID) = 1
           then time.ENT_YEAR_ID
           end                                TIME_ID,
      case when grouping(time.ENT_YEAR_ID)   = 0 and
                grouping(time.ENT_QTR_ID)    = 0 and
                grouping(time.ENT_PERIOD_ID) = 0
           then 32
           when grouping(time.ENT_YEAR_ID)   = 0 and
                grouping(time.ENT_QTR_ID)    = 0 and
                grouping(time.ENT_PERIOD_ID) = 1
           then 64
           when grouping(time.ENT_YEAR_ID)   = 0 and
                grouping(time.ENT_QTR_ID)    = 1 and
                grouping(time.ENT_PERIOD_ID) = 1
           then 128
           end                                PERIOD_TYPE_ID,
      'E'                                     CALENDAR_TYPE,
      sum(tmp2.CAPACITY_HRS)                  CAPACITY_HRS,
      sum(tmp2.TOTAL_HRS_A)                   TOTAL_HRS_A,
      sum(tmp2.MISSING_HRS_A)                 MISSING_HRS_A,
      sum(tmp2.TOTAL_WTD_ORG_HRS_A)           TOTAL_WTD_ORG_HRS_A,
      sum(tmp2.TOTAL_WTD_RES_HRS_A)           TOTAL_WTD_RES_HRS_A,
      sum(tmp2.BILL_HRS_A)                    BILL_HRS_A,
      sum(tmp2.BILL_WTD_ORG_HRS_A)            BILL_WTD_ORG_HRS_A,
      sum(tmp2.BILL_WTD_RES_HRS_A)            BILL_WTD_RES_HRS_A,
      sum(tmp2.TRAINING_HRS_A)                TRAINING_HRS_A,
      sum(tmp2.UNASSIGNED_HRS_A)              UNASSIGNED_HRS_A,
      sum(tmp2.REDUCIBLE_CAPACITY_HRS_A)      REDUCIBLE_CAPACITY_HRS_A,
      sum(tmp2.REDUCE_CAPACITY_HRS_A)         REDUCE_CAPACITY_HRS_A,
      sum(tmp2.CONF_HRS_S)                    CONF_HRS_S,
      sum(tmp2.CONF_WTD_ORG_HRS_S)            CONF_WTD_ORG_HRS_S,
      sum(tmp2.CONF_WTD_RES_HRS_S)            CONF_WTD_RES_HRS_S,
      sum(tmp2.CONF_BILL_HRS_S)               CONF_BILL_HRS_S,
      sum(tmp2.CONF_BILL_WTD_ORG_HRS_S)       CONF_BILL_WTD_ORG_HRS_S,
      sum(tmp2.CONF_BILL_WTD_RES_HRS_S)       CONF_BILL_WTD_RES_HRS_S,
      sum(tmp2.PROV_HRS_S)                    PROV_HRS_S,
      sum(tmp2.PROV_WTD_ORG_HRS_S)            PROV_WTD_ORG_HRS_S,
      sum(tmp2.PROV_WTD_RES_HRS_S)            PROV_WTD_RES_HRS_S,
      sum(tmp2.PROV_BILL_HRS_S)               PROV_BILL_HRS_S,
      sum(tmp2.PROV_BILL_WTD_ORG_HRS_S)       PROV_BILL_WTD_ORG_HRS_S,
      sum(tmp2.PROV_BILL_WTD_RES_HRS_S)       PROV_BILL_WTD_RES_HRS_S,
      sum(tmp2.TRAINING_HRS_S)                TRAINING_HRS_S,
      sum(tmp2.UNASSIGNED_HRS_S)              UNASSIGNED_HRS_S,
      sum(tmp2.REDUCIBLE_CAPACITY_HRS_S)      REDUCIBLE_CAPACITY_HRS_S,
      sum(tmp2.REDUCE_CAPACITY_HRS_S)         REDUCE_CAPACITY_HRS_S,
      sum(tmp2.CONF_OVERCOM_HRS_S)            CONF_OVERCOM_HRS_S,
      sum(tmp2.PROV_OVERCOM_HRS_S)            PROV_OVERCOM_HRS_S,
      sum(tmp2.AVAILABLE_HRS_BKT1_S)          AVAILABLE_HRS_BKT1_S,
      sum(tmp2.AVAILABLE_HRS_BKT2_S)          AVAILABLE_HRS_BKT2_S,
      sum(tmp2.AVAILABLE_HRS_BKT3_S)          AVAILABLE_HRS_BKT3_S,
      sum(tmp2.AVAILABLE_HRS_BKT4_S)          AVAILABLE_HRS_BKT4_S,
      sum(tmp2.AVAILABLE_HRS_BKT5_S)          AVAILABLE_HRS_BKT5_S,
      sum(tmp2.AVAILABLE_RES_COUNT_BKT1_S)    AVAILABLE_RES_COUNT_BKT1_S,
      sum(tmp2.AVAILABLE_RES_COUNT_BKT2_S)    AVAILABLE_RES_COUNT_BKT2_S,
      sum(tmp2.AVAILABLE_RES_COUNT_BKT3_S)    AVAILABLE_RES_COUNT_BKT3_S,
      sum(tmp2.AVAILABLE_RES_COUNT_BKT4_S)    AVAILABLE_RES_COUNT_BKT4_S,
      sum(tmp2.AVAILABLE_RES_COUNT_BKT5_S)    AVAILABLE_RES_COUNT_BKT5_S,
      sum(tmp2.TOTAL_RES_COUNT)               TOTAL_RES_COUNT
    from
      FII_TIME_DAY     time,
      PJI_RM_AGGR_RES2 tmp2
    where
      tmp2.WORKER_ID      = p_worker_id and
      tmp2.PERIOD_TYPE_ID = 1           and
      tmp2.CALENDAR_TYPE  = 'C'         and
      tmp2.TIME_ID        = time.REPORT_DATE_JULIAN
    group by
      tmp2.PERSON_ID,
      tmp2.EXPENDITURE_ORG_ID,
      tmp2.EXPENDITURE_ORGANIZATION_ID,
      tmp2.JOB_ID,
      rollup (time.ENT_YEAR_ID,
              time.ENT_QTR_ID,
              time.ENT_PERIOD_ID)
    having
      not (grouping(time.ENT_YEAR_ID)   = 1 and
           grouping(time.ENT_QTR_ID)    = 1 and
           grouping(time.ENT_PERIOD_ID) = 1);
Line: 1510

    insert /*+ append parallel(res2_i) */ into PJI_RM_AGGR_RES2 res2_i
    (
      WORKER_ID,
      PERSON_ID,
      EXPENDITURE_ORG_ID,
      EXPENDITURE_ORGANIZATION_ID,
      JOB_ID,
      TIME_ID,
      PERIOD_TYPE_ID,
      CALENDAR_TYPE,
      CAPACITY_HRS,
      TOTAL_HRS_A,
      MISSING_HRS_A,
      TOTAL_WTD_ORG_HRS_A,
      TOTAL_WTD_RES_HRS_A,
      BILL_HRS_A,
      BILL_WTD_ORG_HRS_A,
      BILL_WTD_RES_HRS_A,
      TRAINING_HRS_A,
      UNASSIGNED_HRS_A,
      REDUCIBLE_CAPACITY_HRS_A,
      REDUCE_CAPACITY_HRS_A,
      CONF_HRS_S,
      CONF_WTD_ORG_HRS_S,
      CONF_WTD_RES_HRS_S,
      CONF_BILL_HRS_S,
      CONF_BILL_WTD_ORG_HRS_S,
      CONF_BILL_WTD_RES_HRS_S,
      PROV_HRS_S,
      PROV_WTD_ORG_HRS_S,
      PROV_WTD_RES_HRS_S,
      PROV_BILL_HRS_S,
      PROV_BILL_WTD_ORG_HRS_S,
      PROV_BILL_WTD_RES_HRS_S,
      TRAINING_HRS_S,
      UNASSIGNED_HRS_S,
      REDUCIBLE_CAPACITY_HRS_S,
      REDUCE_CAPACITY_HRS_S,
      CONF_OVERCOM_HRS_S,
      PROV_OVERCOM_HRS_S,
      AVAILABLE_HRS_BKT1_S,
      AVAILABLE_HRS_BKT2_S,
      AVAILABLE_HRS_BKT3_S,
      AVAILABLE_HRS_BKT4_S,
      AVAILABLE_HRS_BKT5_S,
      AVAILABLE_RES_COUNT_BKT1_S,
      AVAILABLE_RES_COUNT_BKT2_S,
      AVAILABLE_RES_COUNT_BKT3_S,
      AVAILABLE_RES_COUNT_BKT4_S,
      AVAILABLE_RES_COUNT_BKT5_S,
      TOTAL_RES_COUNT
    )
    select /*+ ordered
               full(time) use_hash(time) parallel(time) swap_join_inputs(time)
               full(tmp2) use_hash(tmp2) parallel(tmp2) */
      p_worker_id,
      tmp2.PERSON_ID,
      tmp2.EXPENDITURE_ORG_ID,
      tmp2.EXPENDITURE_ORGANIZATION_ID,
      tmp2.JOB_ID,
      case when grouping(time.CAL_YEAR_ID)   = 0 and
                grouping(time.CAL_QTR_ID)    = 0 and
                grouping(time.CAL_PERIOD_ID) = 0
           then time.CAL_PERIOD_ID
           when grouping(time.CAL_YEAR_ID)   = 0 and
                grouping(time.CAL_QTR_ID)    = 0 and
                grouping(time.CAL_PERIOD_ID) = 1
           then time.CAL_QTR_ID
           when grouping(time.CAL_YEAR_ID)   = 0 and
                grouping(time.CAL_QTR_ID)    = 1 and
                grouping(time.CAL_PERIOD_ID) = 1
           then time.CAL_YEAR_ID
           end                                      TIME_ID,
      case when grouping(time.CAL_YEAR_ID)   = 0 and
                grouping(time.CAL_QTR_ID)    = 0 and
                grouping(time.CAL_PERIOD_ID) = 0
           then 32
           when grouping(time.CAL_YEAR_ID)   = 0 and
                grouping(time.CAL_QTR_ID)    = 0 and
                grouping(time.CAL_PERIOD_ID) = 1
           then 64
           when grouping(time.CAL_YEAR_ID)   = 0 and
                grouping(time.CAL_QTR_ID)    = 1 and
                grouping(time.CAL_PERIOD_ID) = 1
           then 128
           end                                      PERIOD_TYPE_ID,
      'P'                                           CALENDAR_TYPE,
      sum(tmp2.CAPACITY_HRS)                        CAPACITY_HRS,
      sum(tmp2.TOTAL_HRS_A)                         TOTAL_HRS_A,
      sum(tmp2.MISSING_HRS_A)                       MISSING_HRS_A,
      sum(tmp2.TOTAL_WTD_ORG_HRS_A)                 TOTAL_WTD_ORG_HRS_A,
      sum(tmp2.TOTAL_WTD_RES_HRS_A)                 TOTAL_WTD_RES_HRS_A,
      sum(tmp2.BILL_HRS_A)                          BILL_HRS_A,
      sum(tmp2.BILL_WTD_ORG_HRS_A)                  BILL_WTD_ORG_HRS_A,
      sum(tmp2.BILL_WTD_RES_HRS_A)                  BILL_WTD_RES_HRS_A,
      sum(tmp2.TRAINING_HRS_A)                      TRAINING_HRS_A,
      sum(tmp2.UNASSIGNED_HRS_A)                    UNASSIGNED_HRS_A,
      sum(tmp2.REDUCIBLE_CAPACITY_HRS_A)            REDUCIBLE_CAPACITY_HRS_A,
      sum(tmp2.REDUCE_CAPACITY_HRS_A)               REDUCE_CAPACITY_HRS_A,
      sum(tmp2.CONF_HRS_S)                          CONF_HRS_S,
      sum(tmp2.CONF_WTD_ORG_HRS_S)                  CONF_WTD_ORG_HRS_S,
      sum(tmp2.CONF_WTD_RES_HRS_S)                  CONF_WTD_RES_HRS_S,
      sum(tmp2.CONF_BILL_HRS_S)                     CONF_BILL_HRS_S,
      sum(tmp2.CONF_BILL_WTD_ORG_HRS_S)             CONF_BILL_WTD_ORG_HRS_S,
      sum(tmp2.CONF_BILL_WTD_RES_HRS_S)             CONF_BILL_WTD_RES_HRS_S,
      sum(tmp2.PROV_HRS_S)                          PROV_HRS_S,
      sum(tmp2.PROV_WTD_ORG_HRS_S)                  PROV_WTD_ORG_HRS_S,
      sum(tmp2.PROV_WTD_RES_HRS_S)                  PROV_WTD_RES_HRS_S,
      sum(tmp2.PROV_BILL_HRS_S)                     PROV_BILL_HRS_S,
      sum(tmp2.PROV_BILL_WTD_ORG_HRS_S)             PROV_BILL_WTD_ORG_HRS_S,
      sum(tmp2.PROV_BILL_WTD_RES_HRS_S)             PROV_BILL_WTD_RES_HRS_S,
      sum(tmp2.TRAINING_HRS_S)                      TRAINING_HRS_S,
      sum(tmp2.UNASSIGNED_HRS_S)                    UNASSIGNED_HRS_S,
      sum(tmp2.REDUCIBLE_CAPACITY_HRS_S)            REDUCIBLE_CAPACITY_HRS_S,
      sum(tmp2.REDUCE_CAPACITY_HRS_S)               REDUCE_CAPACITY_HRS_S,
      sum(tmp2.CONF_OVERCOM_HRS_S)                  CONF_OVERCOM_HRS_S,
      sum(tmp2.PROV_OVERCOM_HRS_S)                  PROV_OVERCOM_HRS_S,
      sum(tmp2.AVAILABLE_HRS_BKT1_S)                AVAILABLE_HRS_BKT1_S,
      sum(tmp2.AVAILABLE_HRS_BKT2_S)                AVAILABLE_HRS_BKT2_S,
      sum(tmp2.AVAILABLE_HRS_BKT3_S)                AVAILABLE_HRS_BKT3_S,
      sum(tmp2.AVAILABLE_HRS_BKT4_S)                AVAILABLE_HRS_BKT4_S,
      sum(tmp2.AVAILABLE_HRS_BKT5_S)                AVAILABLE_HRS_BKT5_S,
      sum(tmp2.AVAILABLE_RES_COUNT_BKT1_S)          AVAILABLE_RES_COUNT_BKT1_S,
      sum(tmp2.AVAILABLE_RES_COUNT_BKT2_S)          AVAILABLE_RES_COUNT_BKT2_S,
      sum(tmp2.AVAILABLE_RES_COUNT_BKT3_S)          AVAILABLE_RES_COUNT_BKT3_S,
      sum(tmp2.AVAILABLE_RES_COUNT_BKT4_S)          AVAILABLE_RES_COUNT_BKT4_S,
      sum(tmp2.AVAILABLE_RES_COUNT_BKT5_S)          AVAILABLE_RES_COUNT_BKT5_S,
      sum(tmp2.TOTAL_RES_COUNT)                     TOTAL_RES_COUNT
    from
      FII_TIME_CAL_DAY_MV time,
      PJI_RM_AGGR_RES2    tmp2
    where
      tmp2.WORKER_ID                      = p_worker_id      and
      tmp2.PERIOD_TYPE_ID                 = 1                and
      tmp2.CALENDAR_TYPE                  = 'C'              and
      to_date(to_char(tmp2.TIME_ID), 'J') = time.REPORT_DATE and
      tmp2.PA_CALENDAR_ID                 = time.CALENDAR_ID
    group by
      tmp2.PERSON_ID,
      tmp2.EXPENDITURE_ORGANIZATION_ID,
      tmp2.EXPENDITURE_ORG_ID,
      tmp2.JOB_ID,
      rollup (time.CAL_YEAR_ID,
              time.CAL_QTR_ID,
              time.CAL_PERIOD_ID)
    having
      not (grouping(time.CAL_YEAR_ID)   = 1 and
           grouping(time.CAL_QTR_ID)    = 1 and
           grouping(time.CAL_PERIOD_ID) = 1);
Line: 1716

    insert /*+ append parallel(res2_i) */ into PJI_RM_AGGR_RES2 res2_i
    (
      WORKER_ID,
      PERSON_ID,
      EXPENDITURE_ORG_ID,
      EXPENDITURE_ORGANIZATION_ID,
      JOB_ID,
      TIME_ID,
      PERIOD_TYPE_ID,
      CALENDAR_TYPE,
      CAPACITY_HRS,
      TOTAL_HRS_A,
      MISSING_HRS_A,
      TOTAL_WTD_ORG_HRS_A,
      TOTAL_WTD_RES_HRS_A,
      BILL_HRS_A,
      BILL_WTD_ORG_HRS_A,
      BILL_WTD_RES_HRS_A,
      TRAINING_HRS_A,
      UNASSIGNED_HRS_A,
      REDUCIBLE_CAPACITY_HRS_A,
      REDUCE_CAPACITY_HRS_A,
      CONF_HRS_S,
      CONF_WTD_ORG_HRS_S,
      CONF_WTD_RES_HRS_S,
      CONF_BILL_HRS_S,
      CONF_BILL_WTD_ORG_HRS_S,
      CONF_BILL_WTD_RES_HRS_S,
      PROV_HRS_S,
      PROV_WTD_ORG_HRS_S,
      PROV_WTD_RES_HRS_S,
      PROV_BILL_HRS_S,
      PROV_BILL_WTD_ORG_HRS_S,
      PROV_BILL_WTD_RES_HRS_S,
      TRAINING_HRS_S,
      UNASSIGNED_HRS_S,
      REDUCIBLE_CAPACITY_HRS_S,
      REDUCE_CAPACITY_HRS_S,
      CONF_OVERCOM_HRS_S,
      PROV_OVERCOM_HRS_S,
      AVAILABLE_HRS_BKT1_S,
      AVAILABLE_HRS_BKT2_S,
      AVAILABLE_HRS_BKT3_S,
      AVAILABLE_HRS_BKT4_S,
      AVAILABLE_HRS_BKT5_S,
      AVAILABLE_RES_COUNT_BKT1_S,
      AVAILABLE_RES_COUNT_BKT2_S,
      AVAILABLE_RES_COUNT_BKT3_S,
      AVAILABLE_RES_COUNT_BKT4_S,
      AVAILABLE_RES_COUNT_BKT5_S,
      TOTAL_RES_COUNT
    )
    select /*+ ordered
               full(time) use_hash(time) parallel(time) swap_join_inputs(time)
               full(tmp2) use_hash(tmp2) parallel(tmp2) */
      p_worker_id,
      tmp2.PERSON_ID,
      tmp2.EXPENDITURE_ORG_ID,
      tmp2.EXPENDITURE_ORGANIZATION_ID,
      tmp2.JOB_ID,
      case when grouping(time.CAL_YEAR_ID)   = 0 and
                grouping(time.CAL_QTR_ID)    = 0 and
                grouping(time.CAL_PERIOD_ID) = 0
           then time.CAL_PERIOD_ID
           when grouping(time.CAL_YEAR_ID)   = 0 and
                grouping(time.CAL_QTR_ID)    = 0 and
                grouping(time.CAL_PERIOD_ID) = 1
           then time.CAL_QTR_ID
           when grouping(time.CAL_YEAR_ID)   = 0 and
                grouping(time.CAL_QTR_ID)    = 1 and
                grouping(time.CAL_PERIOD_ID) = 1
           then time.CAL_YEAR_ID
           end                                TIME_ID,
      case when grouping(time.CAL_YEAR_ID)   = 0 and
                grouping(time.CAL_QTR_ID)    = 0 and
                grouping(time.CAL_PERIOD_ID) = 0
           then 32
           when grouping(time.CAL_YEAR_ID)   = 0 and
                grouping(time.CAL_QTR_ID)    = 0 and
                grouping(time.CAL_PERIOD_ID) = 1
           then 64
           when grouping(time.CAL_YEAR_ID)   = 0 and
                grouping(time.CAL_QTR_ID)    = 1 and
                grouping(time.CAL_PERIOD_ID) = 1
           then 128
           end                                PERIOD_TYPE_ID,
      'G'                                     CALENDAR_TYPE,
      sum(tmp2.CAPACITY_HRS)                  CAPACITY_HRS,
      sum(tmp2.TOTAL_HRS_A)                   TOTAL_HRS_A,
      sum(tmp2.MISSING_HRS_A)                 MISSING_HRS_A,
      sum(tmp2.TOTAL_WTD_ORG_HRS_A)           TOTAL_WTD_ORG_HRS_A,
      sum(tmp2.TOTAL_WTD_RES_HRS_A)           TOTAL_WTD_RES_HRS_A,
      sum(tmp2.BILL_HRS_A)                    BILL_HRS_A,
      sum(tmp2.BILL_WTD_ORG_HRS_A)            BILL_WTD_ORG_HRS_A,
      sum(tmp2.BILL_WTD_RES_HRS_A)            BILL_WTD_RES_HRS_A,
      sum(tmp2.TRAINING_HRS_A)                TRAINING_HRS_A,
      sum(tmp2.UNASSIGNED_HRS_A)              UNASSIGNED_HRS_A,
      sum(tmp2.REDUCIBLE_CAPACITY_HRS_A)      REDUCIBLE_CAPACITY_HRS_A,
      sum(tmp2.REDUCE_CAPACITY_HRS_A)         REDUCE_CAPACITY_HRS_A,
      sum(tmp2.CONF_HRS_S)                    CONF_HRS_S,
      sum(tmp2.CONF_WTD_ORG_HRS_S)            CONF_WTD_ORG_HRS_S,
      sum(tmp2.CONF_WTD_RES_HRS_S)            CONF_WTD_RES_HRS_S,
      sum(tmp2.CONF_BILL_HRS_S)               CONF_BILL_HRS_S,
      sum(tmp2.CONF_BILL_WTD_ORG_HRS_S)       CONF_BILL_WTD_ORG_HRS_S,
      sum(tmp2.CONF_BILL_WTD_RES_HRS_S)       CONF_BILL_WTD_RES_HRS_S,
      sum(tmp2.PROV_HRS_S)                    PROV_HRS_S,
      sum(tmp2.PROV_WTD_ORG_HRS_S)            PROV_WTD_ORG_HRS_S,
      sum(tmp2.PROV_WTD_RES_HRS_S)            PROV_WTD_RES_HRS_S,
      sum(tmp2.PROV_BILL_HRS_S)               PROV_BILL_HRS_S,
      sum(tmp2.PROV_BILL_WTD_ORG_HRS_S)       PROV_BILL_WTD_ORG_HRS_S,
      sum(tmp2.PROV_BILL_WTD_RES_HRS_S)       PROV_BILL_WTD_RES_HRS_S,
      sum(tmp2.TRAINING_HRS_S)                TRAINING_HRS_S,
      sum(tmp2.UNASSIGNED_HRS_S)              UNASSIGNED_HRS_S,
      sum(tmp2.REDUCIBLE_CAPACITY_HRS_S)      REDUCIBLE_CAPACITY_HRS_S,
      sum(tmp2.REDUCE_CAPACITY_HRS_S)         REDUCE_CAPACITY_HRS_S,
      sum(tmp2.CONF_OVERCOM_HRS_S)            CONF_OVERCOM_HRS_S,
      sum(tmp2.PROV_OVERCOM_HRS_S)            PROV_OVERCOM_HRS_S,
      sum(tmp2.AVAILABLE_HRS_BKT1_S)          AVAILABLE_HRS_BKT1_S,
      sum(tmp2.AVAILABLE_HRS_BKT2_S)          AVAILABLE_HRS_BKT2_S,
      sum(tmp2.AVAILABLE_HRS_BKT3_S)          AVAILABLE_HRS_BKT3_S,
      sum(tmp2.AVAILABLE_HRS_BKT4_S)          AVAILABLE_HRS_BKT4_S,
      sum(tmp2.AVAILABLE_HRS_BKT5_S)          AVAILABLE_HRS_BKT5_S,
      sum(tmp2.AVAILABLE_RES_COUNT_BKT1_S)    AVAILABLE_RES_COUNT_BKT1_S,
      sum(tmp2.AVAILABLE_RES_COUNT_BKT2_S)    AVAILABLE_RES_COUNT_BKT2_S,
      sum(tmp2.AVAILABLE_RES_COUNT_BKT3_S)    AVAILABLE_RES_COUNT_BKT3_S,
      sum(tmp2.AVAILABLE_RES_COUNT_BKT4_S)    AVAILABLE_RES_COUNT_BKT4_S,
      sum(tmp2.AVAILABLE_RES_COUNT_BKT5_S)    AVAILABLE_RES_COUNT_BKT5_S,
      sum(tmp2.TOTAL_RES_COUNT)               TOTAL_RES_COUNT
    from
      FII_TIME_CAL_DAY_MV time,
      PJI_RM_AGGR_RES2    tmp2
    where
      tmp2.WORKER_ID                      = p_worker_id      and
      tmp2.PERIOD_TYPE_ID                 = 1                and
      tmp2.CALENDAR_TYPE                  = 'C'              and
      to_date(to_char(tmp2.TIME_ID), 'J') = time.REPORT_DATE and
      tmp2.GL_CALENDAR_ID                 = time.CALENDAR_ID
    group by
      tmp2.PERSON_ID,
      tmp2.EXPENDITURE_ORGANIZATION_ID,
      tmp2.EXPENDITURE_ORG_ID,
      tmp2.JOB_ID,
      rollup (time.CAL_YEAR_ID,
              time.CAL_QTR_ID,
              time.CAL_PERIOD_ID)
    having
      not (grouping(time.CAL_YEAR_ID)   = 1 and
           grouping(time.CAL_QTR_ID)    = 1 and
           grouping(time.CAL_PERIOD_ID) = 1);
Line: 1912

    insert /*+ append parallel(res2_i) */ into PJI_RM_AGGR_RES2 res2_i
    (
      WORKER_ID,
      PERSON_ID,
      EXPENDITURE_ORG_ID,
      EXPENDITURE_ORGANIZATION_ID,
      JOB_ID,
      TIME_ID,
      PERIOD_TYPE_ID,
      CALENDAR_TYPE,
      CAPACITY_HRS,
      TOTAL_HRS_A,
      MISSING_HRS_A,
      TOTAL_WTD_ORG_HRS_A,
      TOTAL_WTD_RES_HRS_A,
      BILL_HRS_A,
      BILL_WTD_ORG_HRS_A,
      BILL_WTD_RES_HRS_A,
      TRAINING_HRS_A,
      UNASSIGNED_HRS_A,
      REDUCIBLE_CAPACITY_HRS_A,
      REDUCE_CAPACITY_HRS_A,
      CONF_HRS_S,
      CONF_WTD_ORG_HRS_S,
      CONF_WTD_RES_HRS_S,
      CONF_BILL_HRS_S,
      CONF_BILL_WTD_ORG_HRS_S,
      CONF_BILL_WTD_RES_HRS_S,
      PROV_HRS_S,
      PROV_WTD_ORG_HRS_S,
      PROV_WTD_RES_HRS_S,
      PROV_BILL_HRS_S,
      PROV_BILL_WTD_ORG_HRS_S,
      PROV_BILL_WTD_RES_HRS_S,
      TRAINING_HRS_S,
      UNASSIGNED_HRS_S,
      REDUCIBLE_CAPACITY_HRS_S,
      REDUCE_CAPACITY_HRS_S,
      CONF_OVERCOM_HRS_S,
      PROV_OVERCOM_HRS_S,
      AVAILABLE_HRS_BKT1_S,
      AVAILABLE_HRS_BKT2_S,
      AVAILABLE_HRS_BKT3_S,
      AVAILABLE_HRS_BKT4_S,
      AVAILABLE_HRS_BKT5_S,
      AVAILABLE_RES_COUNT_BKT1_S,
      AVAILABLE_RES_COUNT_BKT2_S,
      AVAILABLE_RES_COUNT_BKT3_S,
      AVAILABLE_RES_COUNT_BKT4_S,
      AVAILABLE_RES_COUNT_BKT5_S,
      TOTAL_RES_COUNT
    )
    select /*+ ordered
               full(time) use_hash(time) swap_join_inputs(time)
               full(tmp2) use_hash(tmp2) parallel(tmp2) */
      p_worker_id,
      tmp2.PERSON_ID,
      tmp2.EXPENDITURE_ORG_ID,
      tmp2.EXPENDITURE_ORGANIZATION_ID,
      tmp2.JOB_ID,
      time.WEEK_ID                            TIME_ID,
      16                                      PERIOD_TYPE_ID,
      'E'                                     CALENDAR_TYPE,
      sum(tmp2.CAPACITY_HRS)                  CAPACITY_HRS,
      sum(tmp2.TOTAL_HRS_A)                   TOTAL_HRS_A,
      sum(tmp2.MISSING_HRS_A)                 MISSING_HRS_A,
      sum(tmp2.TOTAL_WTD_ORG_HRS_A)           TOTAL_WTD_ORG_HRS_A,
      sum(tmp2.TOTAL_WTD_RES_HRS_A)           TOTAL_WTD_RES_HRS_A,
      sum(tmp2.BILL_HRS_A)                    BILL_HRS_A,
      sum(tmp2.BILL_WTD_ORG_HRS_A)            BILL_WTD_ORG_HRS_A,
      sum(tmp2.BILL_WTD_RES_HRS_A)            BILL_WTD_RES_HRS_A,
      sum(tmp2.TRAINING_HRS_A)                TRAINING_HRS_A,
      sum(tmp2.UNASSIGNED_HRS_A)              UNASSIGNED_HRS_A,
      sum(tmp2.REDUCIBLE_CAPACITY_HRS_A)      REDUCIBLE_CAPACITY_HRS_A,
      sum(tmp2.REDUCE_CAPACITY_HRS_A)         REDUCE_CAPACITY_HRS_A,
      sum(tmp2.CONF_HRS_S)                    CONF_HRS_S,
      sum(tmp2.CONF_WTD_ORG_HRS_S)            CONF_WTD_ORG_HRS_S,
      sum(tmp2.CONF_WTD_RES_HRS_S)            CONF_WTD_RES_HRS_S,
      sum(tmp2.CONF_BILL_HRS_S)               CONF_BILL_HRS_S,
      sum(tmp2.CONF_BILL_WTD_ORG_HRS_S)       CONF_BILL_WTD_ORG_HRS_S,
      sum(tmp2.CONF_BILL_WTD_RES_HRS_S)       CONF_BILL_WTD_RES_HRS_S,
      sum(tmp2.PROV_HRS_S)                    PROV_HRS_S,
      sum(tmp2.PROV_WTD_ORG_HRS_S)            PROV_WTD_ORG_HRS_S,
      sum(tmp2.PROV_WTD_RES_HRS_S)            PROV_WTD_RES_HRS_S,
      sum(tmp2.PROV_BILL_HRS_S)               PROV_BILL_HRS_S,
      sum(tmp2.PROV_BILL_WTD_ORG_HRS_S)       PROV_BILL_WTD_ORG_HRS_S,
      sum(tmp2.PROV_BILL_WTD_RES_HRS_S)       PROV_BILL_WTD_RES_HRS_S,
      sum(tmp2.TRAINING_HRS_S)                TRAINING_HRS_S,
      sum(tmp2.UNASSIGNED_HRS_S)              UNASSIGNED_HRS_S,
      sum(tmp2.REDUCIBLE_CAPACITY_HRS_S)      REDUCIBLE_CAPACITY_HRS_S,
      sum(tmp2.REDUCE_CAPACITY_HRS_S)         REDUCE_CAPACITY_HRS_S,
      sum(tmp2.CONF_OVERCOM_HRS_S)            CONF_OVERCOM_HRS_S,
      sum(tmp2.PROV_OVERCOM_HRS_S)            PROV_OVERCOM_HRS_S,
      sum(tmp2.AVAILABLE_HRS_BKT1_S)          AVAILABLE_HRS_BKT1_S,
      sum(tmp2.AVAILABLE_HRS_BKT2_S)          AVAILABLE_HRS_BKT2_S,
      sum(tmp2.AVAILABLE_HRS_BKT3_S)          AVAILABLE_HRS_BKT3_S,
      sum(tmp2.AVAILABLE_HRS_BKT4_S)          AVAILABLE_HRS_BKT4_S,
      sum(tmp2.AVAILABLE_HRS_BKT5_S)          AVAILABLE_HRS_BKT5_S,
      sum(tmp2.AVAILABLE_RES_COUNT_BKT1_S)    AVAILABLE_RES_COUNT_BKT1_S,
      sum(tmp2.AVAILABLE_RES_COUNT_BKT2_S)    AVAILABLE_RES_COUNT_BKT2_S,
      sum(tmp2.AVAILABLE_RES_COUNT_BKT3_S)    AVAILABLE_RES_COUNT_BKT3_S,
      sum(tmp2.AVAILABLE_RES_COUNT_BKT4_S)    AVAILABLE_RES_COUNT_BKT4_S,
      sum(tmp2.AVAILABLE_RES_COUNT_BKT5_S)    AVAILABLE_RES_COUNT_BKT5_S,
      sum(tmp2.TOTAL_RES_COUNT)               TOTAL_RES_COUNT
    from
      FII_TIME_DAY     time,
      PJI_RM_AGGR_RES2 tmp2
    where
      tmp2.WORKER_ID      = p_worker_id and
      tmp2.PERIOD_TYPE_ID = 1           and
      tmp2.CALENDAR_TYPE  = 'C'         and
      tmp2.TIME_ID        = time.REPORT_DATE_JULIAN
    group by
      tmp2.PERSON_ID,
      tmp2.EXPENDITURE_ORGANIZATION_ID,
      tmp2.EXPENDITURE_ORG_ID,
      tmp2.JOB_ID,
      time.WEEK_ID;
Line: 2064

    l_last_update_date  date;
Line: 2065

    l_last_updated_by   number;
Line: 2068

    l_last_update_login number;
Line: 2085

    l_last_update_date  := sysdate;
Line: 2086

    l_last_updated_by   := FND_GLOBAL.USER_ID;
Line: 2089

    l_last_update_login := FND_GLOBAL.LOGIN_ID;
Line: 2093

      insert /*+ append parallel(rmr_i) */ into PJI_RM_RES_WT_F rmr_i
      (
        RECORD_TYPE,
        PROJECT_ID,
        PERSON_ID,
        EXPENDITURE_ORG_ID,
        EXPENDITURE_ORGANIZATION_ID,
        WORK_TYPE_ID,
        JOB_ID,
        TIME_ID,
        PERIOD_TYPE_ID,
        CALENDAR_TYPE,
        CAPACITY_HRS,
        TOTAL_HRS_A,
        BILL_HRS_A,
        CONF_HRS_S,
        PROV_HRS_S,
        UNASSIGNED_HRS_S,
        CONF_OVERCOM_HRS_S,
        PROV_OVERCOM_HRS_S,
        LAST_UPDATE_DATE,
        LAST_UPDATED_BY,
        CREATION_DATE,
        CREATED_BY,
        LAST_UPDATE_LOGIN
      )
      select /*+ parallel(res1) */
        RECORD_TYPE,
        PROJECT_ID,
        PERSON_ID,
        EXPENDITURE_ORG_ID,
        EXPENDITURE_ORGANIZATION_ID,
        WORK_TYPE_ID,
        JOB_ID,
        TIME_ID,
        PERIOD_TYPE_ID,
        CALENDAR_TYPE,
        sum(CAPACITY_HRS)       CAPACITY_HRS,
        sum(TOTAL_HRS_A)        TOTAL_HRS_A,
        sum(BILL_HRS_A)         BILL_HRS_A,
        sum(CONF_HRS_S)         CONF_HRS_S,
        sum(PROV_HRS_S)         PROV_HRS_S,
        sum(UNASSIGNED_HRS_S)   UNASSIGNED_HRS_S,
        sum(CONF_OVERCOM_HRS_S) CONF_OVERCOM_HRS_S,
        sum(PROV_OVERCOM_HRS_S) PROV_OVERCOM_HRS_S,
        l_last_update_date      LAST_UPDATE_DATE,
        l_last_updated_by       LAST_UPDATED_BY,
        l_creation_date         CREATION_DATE,
        l_created_by            CREATED_BY,
        l_last_update_login     LAST_UPDATE_LOGIN
      from
        PJI_RM_AGGR_RES1 res1
      where
        WORKER_ID = p_worker_id and
        EXPENDITURE_ORGANIZATION_ID is not null and
        RECORD_TYPE <> 'N'
      group by
        RECORD_TYPE,
        PROJECT_ID,
        PERSON_ID,
        EXPENDITURE_ORG_ID,
        EXPENDITURE_ORGANIZATION_ID,
        WORK_TYPE_ID,
        JOB_ID,
        TIME_ID,
        PERIOD_TYPE_ID,
        CALENDAR_TYPE;
Line: 2166

        select /*+ parallel(res1) */
          RECORD_TYPE,
          PROJECT_ID,
          PERSON_ID,
          EXPENDITURE_ORG_ID,
          EXPENDITURE_ORGANIZATION_ID,
          WORK_TYPE_ID,
          JOB_ID,
          TIME_ID,
          PERIOD_TYPE_ID,
          CALENDAR_TYPE,
          sum(CAPACITY_HRS)       CAPACITY_HRS,
          sum(TOTAL_HRS_A)        TOTAL_HRS_A,
          sum(BILL_HRS_A)         BILL_HRS_A,
          sum(CONF_HRS_S)         CONF_HRS_S,
          sum(PROV_HRS_S)         PROV_HRS_S,
          sum(UNASSIGNED_HRS_S)   UNASSIGNED_HRS_S,
          sum(CONF_OVERCOM_HRS_S) CONF_OVERCOM_HRS_S,
          sum(PROV_OVERCOM_HRS_S) PROV_OVERCOM_HRS_S,
          l_last_update_date      LAST_UPDATE_DATE,
          l_last_updated_by       LAST_UPDATED_BY,
          l_creation_date         CREATION_DATE,
          l_created_by            CREATED_BY,
          l_last_update_login     LAST_UPDATE_LOGIN
        from
          PJI_RM_AGGR_RES1 res1
        where
          WORKER_ID = p_worker_id and
          EXPENDITURE_ORGANIZATION_ID is not null and
          RECORD_TYPE <> 'N'
        group by
          RECORD_TYPE,
          PROJECT_ID,
          PERSON_ID,
          EXPENDITURE_ORG_ID,
          EXPENDITURE_ORGANIZATION_ID,
          WORK_TYPE_ID,
          JOB_ID,
          TIME_ID,
          PERIOD_TYPE_ID,
          CALENDAR_TYPE
      ) res1
      on
      (
        res1.RECORD_TYPE                 = rmr.RECORD_TYPE                 and
        res1.PROJECT_ID                  = rmr.PROJECT_ID                  and
        res1.PERSON_ID                   = rmr.PERSON_ID                   and
        res1.EXPENDITURE_ORG_ID          = rmr.EXPENDITURE_ORG_ID          and
        res1.EXPENDITURE_ORGANIZATION_ID = rmr.EXPENDITURE_ORGANIZATION_ID and
        res1.JOB_ID                      = rmr.JOB_ID                      and
        res1.WORK_TYPE_ID                = rmr.WORK_TYPE_ID                and
        res1.TIME_ID                     = rmr.TIME_ID                     and
        res1.PERIOD_TYPE_ID              = rmr.PERIOD_TYPE_ID              and
        res1.CALENDAR_TYPE               = rmr.CALENDAR_TYPE
      )
      when matched then update set
        rmr.CAPACITY_HRS       = case when rmr.CAPACITY_HRS is null and
                                           res1.CAPACITY_HRS is null
                                      then to_number(null)
                                      else nvl(rmr.CAPACITY_HRS, 0) +
                                           nvl(res1.CAPACITY_HRS, 0)
                                      end,
        rmr.TOTAL_HRS_A        = case when rmr.TOTAL_HRS_A is null and
                                           res1.TOTAL_HRS_A is null
                                      then to_number(null)
                                      else nvl(rmr.TOTAL_HRS_A, 0) +
                                           nvl(res1.TOTAL_HRS_A, 0)
                                      end,
        rmr.BILL_HRS_A         = case when rmr.BILL_HRS_A is null and
                                           res1.BILL_HRS_A is null
                                      then to_number(null)
                                      else nvl(rmr.BILL_HRS_A, 0) +
                                           nvl(res1.BILL_HRS_A, 0)
                                      end,
        rmr.CONF_HRS_S         = case when rmr.CONF_HRS_S is null and
                                           res1.CONF_HRS_S is null
                                      then to_number(null)
                                      else nvl(rmr.CONF_HRS_S, 0) +
                                           nvl(res1.CONF_HRS_S, 0)
                                      end,
        rmr.PROV_HRS_S         = case when rmr.PROV_HRS_S is null and
                                           res1.PROV_HRS_S is null
                                      then to_number(null)
                                      else nvl(rmr.PROV_HRS_S, 0) +
                                           nvl(res1.PROV_HRS_S, 0)
                                      end,
        rmr.UNASSIGNED_HRS_S   = case when rmr.UNASSIGNED_HRS_S is null and
                                           res1.UNASSIGNED_HRS_S is null
                                      then to_number(null)
                                      else nvl(rmr.UNASSIGNED_HRS_S, 0) +
                                           nvl(res1.UNASSIGNED_HRS_S, 0)
                                      end,
        rmr.CONF_OVERCOM_HRS_S = case when rmr.CONF_OVERCOM_HRS_S is null and
                                           res1.CONF_OVERCOM_HRS_S is null
                                      then to_number(null)
                                      else nvl(rmr.CONF_OVERCOM_HRS_S, 0) +
                                           nvl(res1.CONF_OVERCOM_HRS_S, 0)
                                      end,
        rmr.PROV_OVERCOM_HRS_S = case when rmr.PROV_OVERCOM_HRS_S is null and
                                           res1.PROV_OVERCOM_HRS_S is null
                                      then to_number(null)
                                      else nvl(rmr.PROV_OVERCOM_HRS_S, 0) +
                                           nvl(res1.PROV_OVERCOM_HRS_S, 0)
                                      end,
        rmr.LAST_UPDATE_DATE   = res1.LAST_UPDATE_DATE,
        rmr.LAST_UPDATED_BY    = res1.LAST_UPDATED_BY,
        rmr.LAST_UPDATE_LOGIN  = res1.LAST_UPDATE_LOGIN
      when not matched then insert
      (
        rmr.RECORD_TYPE,
        rmr.PROJECT_ID,
        rmr.PERSON_ID,
        rmr.EXPENDITURE_ORG_ID,
        rmr.EXPENDITURE_ORGANIZATION_ID,
        rmr.WORK_TYPE_ID,
        rmr.JOB_ID,
        rmr.TIME_ID,
        rmr.PERIOD_TYPE_ID,
        rmr.CALENDAR_TYPE,
        rmr.CAPACITY_HRS,
        rmr.TOTAL_HRS_A,
        rmr.BILL_HRS_A,
        rmr.CONF_HRS_S,
        rmr.PROV_HRS_S,
        rmr.UNASSIGNED_HRS_S,
        rmr.CONF_OVERCOM_HRS_S,
        rmr.PROV_OVERCOM_HRS_S,
        rmr.LAST_UPDATE_DATE,
        rmr.LAST_UPDATED_BY,
        rmr.CREATION_DATE,
        rmr.CREATED_BY,
        rmr.LAST_UPDATE_LOGIN
      )
      values
      (
        res1.RECORD_TYPE,
        res1.PROJECT_ID,
        res1.PERSON_ID,
        res1.EXPENDITURE_ORG_ID,
        res1.EXPENDITURE_ORGANIZATION_ID,
        res1.WORK_TYPE_ID,
        res1.JOB_ID,
        res1.TIME_ID,
        res1.PERIOD_TYPE_ID,
        res1.CALENDAR_TYPE,
        res1.CAPACITY_HRS,
        res1.TOTAL_HRS_A,
        res1.BILL_HRS_A,
        res1.CONF_HRS_S,
        res1.PROV_HRS_S,
        res1.UNASSIGNED_HRS_S,
        res1.CONF_OVERCOM_HRS_S,
        res1.PROV_OVERCOM_HRS_S,
        res1.LAST_UPDATE_DATE,
        res1.LAST_UPDATED_BY,
        res1.CREATION_DATE,
        res1.CREATED_BY,
        res1.LAST_UPDATE_LOGIN
      );
Line: 2358

    delete
    from   PJI_RM_RES_WT_F
    where  (RECORD_TYPE,
            PROJECT_ID,
            PERSON_ID,
            EXPENDITURE_ORG_ID,
            EXPENDITURE_ORGANIZATION_ID,
            WORK_TYPE_ID,
            JOB_ID,
            TIME_ID,
            PERIOD_TYPE_ID,
            CALENDAR_TYPE) in
           (select /*+ parallel(res1) */
                   RECORD_TYPE,
                   PROJECT_ID,
                   PERSON_ID,
                   EXPENDITURE_ORG_ID,
                   EXPENDITURE_ORGANIZATION_ID,
                   WORK_TYPE_ID,
                   JOB_ID,
                   TIME_ID,
                   PERIOD_TYPE_ID,
                   CALENDAR_TYPE
            from   PJI_RM_AGGR_RES1 res1
            where  WORKER_ID = p_worker_id and
                   RECORD_TYPE <> 'N') and
           nvl(CAPACITY_HRS, 0)       = 0 and
           nvl(TOTAL_HRS_A, 0)        = 0 and
           nvl(BILL_HRS_A, 0)         = 0 and
           nvl(CONF_HRS_S, 0)         = 0 and
           nvl(PROV_HRS_S, 0)         = 0 and
           nvl(UNASSIGNED_HRS_S, 0)   = 0 and
           nvl(CONF_OVERCOM_HRS_S, 0) = 0 and
           nvl(PROV_OVERCOM_HRS_S, 0) = 0;
Line: 2414

    l_last_update_date  date;
Line: 2415

    l_last_updated_by   number;
Line: 2418

    l_last_update_login number;
Line: 2435

    l_last_update_date  := sysdate;
Line: 2436

    l_last_updated_by   := FND_GLOBAL.USER_ID;
Line: 2439

    l_last_update_login := FND_GLOBAL.LOGIN_ID;
Line: 2443

      insert /*+ append parallel(rms_i) */ into PJI_RM_RES_F rms_i
      (
        PERSON_ID,
        EXPENDITURE_ORG_ID,
        EXPENDITURE_ORGANIZATION_ID,
        JOB_ID,
        TIME_ID,
        PERIOD_TYPE_ID,
        CALENDAR_TYPE,
        CAPACITY_HRS,
        TOTAL_HRS_A,
        MISSING_HRS_A,
        TOTAL_WTD_ORG_HRS_A,
        TOTAL_WTD_RES_HRS_A,
        BILL_HRS_A,
        BILL_WTD_ORG_HRS_A,
        BILL_WTD_RES_HRS_A,
        TRAINING_HRS_A,
        UNASSIGNED_HRS_A,
        REDUCIBLE_CAPACITY_HRS_A,
        REDUCE_CAPACITY_HRS_A,
        CONF_HRS_S,
        CONF_WTD_ORG_HRS_S,
        CONF_WTD_RES_HRS_S,
        CONF_BILL_HRS_S,
        CONF_BILL_WTD_ORG_HRS_S,
        CONF_BILL_WTD_RES_HRS_S,
        PROV_HRS_S,
        PROV_WTD_ORG_HRS_S,
        PROV_WTD_RES_HRS_S,
        PROV_BILL_HRS_S,
        PROV_BILL_WTD_ORG_HRS_S,
        PROV_BILL_WTD_RES_HRS_S,
        TRAINING_HRS_S,
        UNASSIGNED_HRS_S,
        REDUCIBLE_CAPACITY_HRS_S,
        REDUCE_CAPACITY_HRS_S,
        CONF_OVERCOM_HRS_S,
        PROV_OVERCOM_HRS_S,
        AVAILABLE_HRS_BKT1_S,
        AVAILABLE_HRS_BKT2_S,
        AVAILABLE_HRS_BKT3_S,
        AVAILABLE_HRS_BKT4_S,
        AVAILABLE_HRS_BKT5_S,
        AVAILABLE_RES_COUNT_BKT1_S,
        AVAILABLE_RES_COUNT_BKT2_S,
        AVAILABLE_RES_COUNT_BKT3_S,
        AVAILABLE_RES_COUNT_BKT4_S,
        AVAILABLE_RES_COUNT_BKT5_S,
        TOTAL_RES_COUNT,
        LAST_UPDATE_DATE,
        LAST_UPDATED_BY,
        CREATION_DATE,
        CREATED_BY,
        LAST_UPDATE_LOGIN
      )
      select /*+ parallel(res2) */
        PERSON_ID,
        EXPENDITURE_ORG_ID,
        EXPENDITURE_ORGANIZATION_ID,
        JOB_ID,
        TIME_ID,
        PERIOD_TYPE_ID,
        CALENDAR_TYPE,
        sum(CAPACITY_HRS)               CAPACITY_HRS,
        sum(TOTAL_HRS_A)                TOTAL_HRS_A,
        sum(MISSING_HRS_A)              MISSING_HRS_A,
        sum(TOTAL_WTD_ORG_HRS_A)        TOTAL_WTD_ORG_HRS_A,
        sum(TOTAL_WTD_RES_HRS_A)        TOTAL_WTD_RES_HRS_A,
        sum(BILL_HRS_A)                 BILL_HRS_A,
        sum(BILL_WTD_ORG_HRS_A)         BILL_WTD_ORG_HRS_A,
        sum(BILL_WTD_RES_HRS_A)         BILL_WTD_RES_HRS_A,
        sum(TRAINING_HRS_A)             TRAINING_HRS_A,
        sum(UNASSIGNED_HRS_A)           UNASSIGNED_HRS_A,
        sum(REDUCIBLE_CAPACITY_HRS_A)   REDUCIBLE_CAPACITY_HRS_A,
        sum(REDUCE_CAPACITY_HRS_A)      REDUCE_CAPACITY_HRS_A,
        sum(CONF_HRS_S)                 CONF_HRS_S,
        sum(CONF_WTD_ORG_HRS_S)         CONF_WTD_ORG_HRS_S,
        sum(CONF_WTD_RES_HRS_S)         CONF_WTD_RES_HRS_S,
        sum(CONF_BILL_HRS_S)            CONF_BILL_HRS_S,
        sum(CONF_BILL_WTD_ORG_HRS_S)    CONF_BILL_WTD_ORG_HRS_S,
        sum(CONF_BILL_WTD_RES_HRS_S)    CONF_BILL_WTD_RES_HRS_S,
        sum(PROV_HRS_S)                 PROV_HRS_S,
        sum(PROV_WTD_ORG_HRS_S)         PROV_WTD_ORG_HRS_S,
        sum(PROV_WTD_RES_HRS_S)         PROV_WTD_RES_HRS_S,
        sum(PROV_BILL_HRS_S)            PROV_BILL_HRS_S,
        sum(PROV_BILL_WTD_ORG_HRS_S)    PROV_BILL_WTD_ORG_HRS_S,
        sum(PROV_BILL_WTD_RES_HRS_S)    PROV_BILL_WTD_RES_HRS_S,
        sum(TRAINING_HRS_S)             TRAINING_HRS_S,
        sum(UNASSIGNED_HRS_S)           UNASSIGNED_HRS_S,
        sum(REDUCIBLE_CAPACITY_HRS_S)   REDUCIBLE_CAPACITY_HRS_S,
        sum(REDUCE_CAPACITY_HRS_S)      REDUCE_CAPACITY_HRS_S,
        sum(CONF_OVERCOM_HRS_S)         CONF_OVERCOM_HRS_S,
        sum(PROV_OVERCOM_HRS_S)         PROV_OVERCOM_HRS_S,
        sum(AVAILABLE_HRS_BKT1_S)       AVAILABLE_HRS_BKT1_S,
        sum(AVAILABLE_HRS_BKT2_S)       AVAILABLE_HRS_BKT2_S,
        sum(AVAILABLE_HRS_BKT3_S)       AVAILABLE_HRS_BKT3_S,
        sum(AVAILABLE_HRS_BKT4_S)       AVAILABLE_HRS_BKT4_S,
        sum(AVAILABLE_HRS_BKT5_S)       AVAILABLE_HRS_BKT5_S,
        sum(AVAILABLE_RES_COUNT_BKT1_S) AVAILABLE_RES_COUNT_BKT1_S,
        sum(AVAILABLE_RES_COUNT_BKT2_S) AVAILABLE_RES_COUNT_BKT2_S,
        sum(AVAILABLE_RES_COUNT_BKT3_S) AVAILABLE_RES_COUNT_BKT3_S,
        sum(AVAILABLE_RES_COUNT_BKT4_S) AVAILABLE_RES_COUNT_BKT4_S,
        sum(AVAILABLE_RES_COUNT_BKT5_S) AVAILABLE_RES_COUNT_BKT5_S,
        sum(TOTAL_RES_COUNT)            TOTAL_RES_COUNT,
        l_last_update_date              LAST_UPDATE_DATE,
        l_last_updated_by               LAST_UPDATED_BY,
        l_creation_date                 CREATION_DATE,
        l_created_by                    CREATED_BY,
        l_last_update_login             LAST_UPDATE_LOGIN
      from
        PJI_RM_AGGR_RES2 res2
      where
        WORKER_ID = p_worker_id and
        EXPENDITURE_ORGANIZATION_ID is not null
      group by
        PERSON_ID,
        EXPENDITURE_ORG_ID,
        EXPENDITURE_ORGANIZATION_ID,
        JOB_ID,
        TIME_ID,
        PERIOD_TYPE_ID,
        CALENDAR_TYPE;
Line: 2572

        select /*+ parallel(res2) */
          PERSON_ID,
          EXPENDITURE_ORG_ID,
          EXPENDITURE_ORGANIZATION_ID,
          JOB_ID,
          TIME_ID,
          PERIOD_TYPE_ID,
          CALENDAR_TYPE,
          sum(CAPACITY_HRS)               CAPACITY_HRS,
          sum(TOTAL_HRS_A)                TOTAL_HRS_A,
          sum(MISSING_HRS_A)              MISSING_HRS_A,
          sum(TOTAL_WTD_ORG_HRS_A)        TOTAL_WTD_ORG_HRS_A,
          sum(TOTAL_WTD_RES_HRS_A)        TOTAL_WTD_RES_HRS_A,
          sum(BILL_HRS_A)                 BILL_HRS_A,
          sum(BILL_WTD_ORG_HRS_A)         BILL_WTD_ORG_HRS_A,
          sum(BILL_WTD_RES_HRS_A)         BILL_WTD_RES_HRS_A,
          sum(TRAINING_HRS_A)             TRAINING_HRS_A,
          sum(UNASSIGNED_HRS_A)           UNASSIGNED_HRS_A,
          sum(REDUCIBLE_CAPACITY_HRS_A)   REDUCIBLE_CAPACITY_HRS_A,
          sum(REDUCE_CAPACITY_HRS_A)      REDUCE_CAPACITY_HRS_A,
          sum(CONF_HRS_S)                 CONF_HRS_S,
          sum(CONF_WTD_ORG_HRS_S)         CONF_WTD_ORG_HRS_S,
          sum(CONF_WTD_RES_HRS_S)         CONF_WTD_RES_HRS_S,
          sum(CONF_BILL_HRS_S)            CONF_BILL_HRS_S,
          sum(CONF_BILL_WTD_ORG_HRS_S)    CONF_BILL_WTD_ORG_HRS_S,
          sum(CONF_BILL_WTD_RES_HRS_S)    CONF_BILL_WTD_RES_HRS_S,
          sum(PROV_HRS_S)                 PROV_HRS_S,
          sum(PROV_WTD_ORG_HRS_S)         PROV_WTD_ORG_HRS_S,
          sum(PROV_WTD_RES_HRS_S)         PROV_WTD_RES_HRS_S,
          sum(PROV_BILL_HRS_S)            PROV_BILL_HRS_S,
          sum(PROV_BILL_WTD_ORG_HRS_S)    PROV_BILL_WTD_ORG_HRS_S,
          sum(PROV_BILL_WTD_RES_HRS_S)    PROV_BILL_WTD_RES_HRS_S,
          sum(TRAINING_HRS_S)             TRAINING_HRS_S,
          sum(UNASSIGNED_HRS_S)           UNASSIGNED_HRS_S,
          sum(REDUCIBLE_CAPACITY_HRS_S)   REDUCIBLE_CAPACITY_HRS_S,
          sum(REDUCE_CAPACITY_HRS_S)      REDUCE_CAPACITY_HRS_S,
          sum(CONF_OVERCOM_HRS_S)         CONF_OVERCOM_HRS_S,
          sum(PROV_OVERCOM_HRS_S)         PROV_OVERCOM_HRS_S,
          sum(AVAILABLE_HRS_BKT1_S)       AVAILABLE_HRS_BKT1_S,
          sum(AVAILABLE_HRS_BKT2_S)       AVAILABLE_HRS_BKT2_S,
          sum(AVAILABLE_HRS_BKT3_S)       AVAILABLE_HRS_BKT3_S,
          sum(AVAILABLE_HRS_BKT4_S)       AVAILABLE_HRS_BKT4_S,
          sum(AVAILABLE_HRS_BKT5_S)       AVAILABLE_HRS_BKT5_S,
          sum(AVAILABLE_RES_COUNT_BKT1_S) AVAILABLE_RES_COUNT_BKT1_S,
          sum(AVAILABLE_RES_COUNT_BKT2_S) AVAILABLE_RES_COUNT_BKT2_S,
          sum(AVAILABLE_RES_COUNT_BKT3_S) AVAILABLE_RES_COUNT_BKT3_S,
          sum(AVAILABLE_RES_COUNT_BKT4_S) AVAILABLE_RES_COUNT_BKT4_S,
          sum(AVAILABLE_RES_COUNT_BKT5_S) AVAILABLE_RES_COUNT_BKT5_S,
          sum(TOTAL_RES_COUNT)            TOTAL_RES_COUNT,
          l_last_update_date              LAST_UPDATE_DATE,
          l_last_updated_by               LAST_UPDATED_BY,
          l_creation_date                 CREATION_DATE,
          l_created_by                    CREATED_BY,
          l_last_update_login             LAST_UPDATE_LOGIN
        from
          PJI_RM_AGGR_RES2 res2
        where
          WORKER_ID = p_worker_id and
          EXPENDITURE_ORGANIZATION_ID is not null
        group by
          PERSON_ID,
          EXPENDITURE_ORG_ID,
          EXPENDITURE_ORGANIZATION_ID,
          JOB_ID,
          TIME_ID,
          PERIOD_TYPE_ID,
          CALENDAR_TYPE
      ) res2
      on
      (
        res2.PERSON_ID                   = rms.PERSON_ID                   and
        res2.EXPENDITURE_ORG_ID          = rms.EXPENDITURE_ORG_ID          and
        res2.EXPENDITURE_ORGANIZATION_ID = rms.EXPENDITURE_ORGANIZATION_ID and
        res2.JOB_ID                      = rms.JOB_ID                      and
        res2.TIME_ID                     = rms.TIME_ID                     and
        res2.PERIOD_TYPE_ID              = rms.PERIOD_TYPE_ID              and
        res2.CALENDAR_TYPE               = rms.CALENDAR_TYPE
      )
      when matched then update set
        rms.CAPACITY_HRS = case when rms.CAPACITY_HRS is null and
                                     res2.CAPACITY_HRS is null
                                then to_number(null)
                                else nvl(rms.CAPACITY_HRS, 0) +
                                     nvl(res2.CAPACITY_HRS, 0)
                                end,
        rms.TOTAL_HRS_A  = case when rms.TOTAL_HRS_A is null and
                                     res2.TOTAL_HRS_A is null
                                then to_number(null)
                                else nvl(rms.TOTAL_HRS_A, 0) +
                                     nvl(res2.TOTAL_HRS_A, 0)
                                end,
        rms.MISSING_HRS_A= case when rms.MISSING_HRS_A  is null and
                                     res2.MISSING_HRS_A is null
                                then to_number(null)
                                else nvl(rms.MISSING_HRS_A, 0) +
                                     nvl(res2.MISSING_HRS_A, 0)
                                end,
        rms.TOTAL_WTD_ORG_HRS_A
                         = case when rms.TOTAL_WTD_ORG_HRS_A is null and
                                     res2.TOTAL_WTD_ORG_HRS_A is null
                                then to_number(null)
                                else nvl(rms.TOTAL_WTD_ORG_HRS_A, 0) +
                                     nvl(res2.TOTAL_WTD_ORG_HRS_A, 0)
                                end,
        rms.TOTAL_WTD_RES_HRS_A
                         = case when rms.TOTAL_WTD_RES_HRS_A is null and
                                     res2.TOTAL_WTD_RES_HRS_A is null
                                then to_number(null)
                                else nvl(rms.TOTAL_WTD_RES_HRS_A, 0) +
                                     nvl(res2.TOTAL_WTD_RES_HRS_A, 0)
                                end,
        rms.BILL_HRS_A   = case when rms.BILL_HRS_A is null and
                                     res2.BILL_HRS_A is null
                                then to_number(null)
                                else nvl(rms.BILL_HRS_A, 0) +
                                     nvl(res2.BILL_HRS_A, 0)
                                end,
        rms.BILL_WTD_ORG_HRS_A
                         = case when rms.BILL_WTD_ORG_HRS_A is null and
                                     res2.BILL_WTD_ORG_HRS_A is null
                                then to_number(null)
                                else nvl(rms.BILL_WTD_ORG_HRS_A, 0) +
                                     nvl(res2.BILL_WTD_ORG_HRS_A, 0)
                                end,
        rms.BILL_WTD_RES_HRS_A
                         = case when rms.BILL_WTD_RES_HRS_A is null and
                                     res2.BILL_WTD_RES_HRS_A is null
                                then to_number(null)
                                else nvl(rms.BILL_WTD_RES_HRS_A, 0) +
                                     nvl(res2.BILL_WTD_RES_HRS_A, 0)
                                end,
        rms.TRAINING_HRS_A
                         = case when rms.TRAINING_HRS_A is null and
                                     res2.TRAINING_HRS_A is null
                                then to_number(null)
                                else nvl(rms.TRAINING_HRS_A, 0) +
                                     nvl(res2.TRAINING_HRS_A, 0)
                                end,
        rms.UNASSIGNED_HRS_A
                         = case when rms.UNASSIGNED_HRS_A is null and
                                     res2.UNASSIGNED_HRS_A is null
                                then to_number(null)
                                else nvl(rms.UNASSIGNED_HRS_A, 0) +
                                     nvl(res2.UNASSIGNED_HRS_A, 0)
                                end,
        rms.REDUCIBLE_CAPACITY_HRS_A
                         = case when rms.REDUCIBLE_CAPACITY_HRS_A is null and
                                     res2.REDUCIBLE_CAPACITY_HRS_A is null
                                then to_number(null)
                                else nvl(rms.REDUCIBLE_CAPACITY_HRS_A, 0) +
                                     nvl(res2.REDUCIBLE_CAPACITY_HRS_A, 0)
                                end,
        rms.REDUCE_CAPACITY_HRS_A
                         = case when rms.REDUCE_CAPACITY_HRS_A is null and
                                     res2.REDUCE_CAPACITY_HRS_A is null
                                then to_number(null)
                                else nvl(rms.REDUCE_CAPACITY_HRS_A, 0) +
                                     nvl(res2.REDUCE_CAPACITY_HRS_A, 0)
                                end,
        rms.CONF_HRS_S   = case when rms.CONF_HRS_S is null and
                                     res2.CONF_HRS_S is null
                                then to_number(null)
                                else nvl(rms.CONF_HRS_S, 0) +
                                     nvl(res2.CONF_HRS_S, 0)
                                end,
        rms.CONF_WTD_ORG_HRS_S
                         = case when rms.CONF_WTD_ORG_HRS_S is null and
                                     res2.CONF_WTD_ORG_HRS_S is null
                                then to_number(null)
                                else nvl(rms.CONF_WTD_ORG_HRS_S, 0) +
                                     nvl(res2.CONF_WTD_ORG_HRS_S, 0)
                                end,
        rms.CONF_WTD_RES_HRS_S
                         = case when rms.CONF_WTD_RES_HRS_S is null and
                                     res2.CONF_WTD_RES_HRS_S is null
                                then to_number(null)
                                else nvl(rms.CONF_WTD_RES_HRS_S, 0) +
                                     nvl(res2.CONF_WTD_RES_HRS_S, 0)
                                end,
        rms.CONF_BILL_HRS_S
                         = case when rms.CONF_BILL_HRS_S is null and
                                     res2.CONF_BILL_HRS_S is null
                                then to_number(null)
                                else nvl(rms.CONF_BILL_HRS_S, 0) +
                                     nvl(res2.CONF_BILL_HRS_S, 0)
                                end,
        rms.CONF_BILL_WTD_ORG_HRS_S
                         = case when rms.CONF_BILL_WTD_ORG_HRS_S is null and
                                     res2.CONF_BILL_WTD_ORG_HRS_S is null
                                then to_number(null)
                                else nvl(rms.CONF_BILL_WTD_ORG_HRS_S, 0) +
                                     nvl(res2.CONF_BILL_WTD_ORG_HRS_S, 0)
                                end,
        rms.CONF_BILL_WTD_RES_HRS_S
                         = case when rms.CONF_BILL_WTD_RES_HRS_S is null and
                                     res2.CONF_BILL_WTD_RES_HRS_S is null
                                then to_number(null)
                                else nvl(rms.CONF_BILL_WTD_RES_HRS_S, 0) +
                                     nvl(res2.CONF_BILL_WTD_RES_HRS_S, 0)
                                end,
        rms.PROV_HRS_S   = case when rms.PROV_HRS_S is null and
                                     res2.PROV_HRS_S is null
                                then to_number(null)
                                else nvl(rms.PROV_HRS_S, 0) +
                                     nvl(res2.PROV_HRS_S, 0)
                                end,
        rms.PROV_WTD_ORG_HRS_S
                         = case when rms.PROV_WTD_ORG_HRS_S is null and
                                     res2.PROV_WTD_ORG_HRS_S is null
                                then to_number(null)
                                else nvl(rms.PROV_WTD_ORG_HRS_S, 0) +
                                     nvl(res2.PROV_WTD_ORG_HRS_S, 0)
                                end,
        rms.PROV_WTD_RES_HRS_S
                         = case when rms.PROV_WTD_RES_HRS_S is null and
                                     res2.PROV_WTD_RES_HRS_S is null
                                then to_number(null)
                                else nvl(rms.PROV_WTD_RES_HRS_S, 0) +
                                     nvl(res2.PROV_WTD_RES_HRS_S, 0)
                                end,
        rms.PROV_BILL_HRS_S
                         = case when rms.PROV_BILL_HRS_S is null and
                                     res2.PROV_BILL_HRS_S is null
                                then to_number(null)
                                else nvl(rms.PROV_BILL_HRS_S, 0) +
                                     nvl(res2.PROV_BILL_HRS_S, 0)
                                end,
        rms.PROV_BILL_WTD_ORG_HRS_S
                         = case when rms.PROV_BILL_WTD_ORG_HRS_S is null and
                                     res2.PROV_BILL_WTD_ORG_HRS_S is null
                                then to_number(null)
                                else nvl(rms.PROV_BILL_WTD_ORG_HRS_S, 0) +
                                     nvl(res2.PROV_BILL_WTD_ORG_HRS_S, 0)
                                end,
        rms.PROV_BILL_WTD_RES_HRS_S
                         = case when rms.PROV_BILL_WTD_RES_HRS_S is null and
                                     res2.PROV_BILL_WTD_RES_HRS_S is null
                                then to_number(null)
                                else nvl(rms.PROV_BILL_WTD_RES_HRS_S, 0) +
                                     nvl(res2.PROV_BILL_WTD_RES_HRS_S, 0)
                                end,
        rms.TRAINING_HRS_S
                         = case when rms.TRAINING_HRS_S is null and
                                     res2.TRAINING_HRS_S is null
                                then to_number(null)
                                else nvl(rms.TRAINING_HRS_S, 0) +
                                     nvl(res2.TRAINING_HRS_S, 0)
                                end,
        rms.UNASSIGNED_HRS_S
                         = case when rms.UNASSIGNED_HRS_S is null and
                                     res2.UNASSIGNED_HRS_S is null
                                then to_number(null)
                                else nvl(rms.UNASSIGNED_HRS_S, 0) +
                                     nvl(res2.UNASSIGNED_HRS_S, 0)
                                end,
        rms.REDUCIBLE_CAPACITY_HRS_S
                         = case when rms.REDUCIBLE_CAPACITY_HRS_S is null and
                                     res2.REDUCIBLE_CAPACITY_HRS_S is null
                                then to_number(null)
                                else nvl(rms.REDUCIBLE_CAPACITY_HRS_S, 0) +
                                     nvl(res2.REDUCIBLE_CAPACITY_HRS_S, 0)
                                end,
        rms.REDUCE_CAPACITY_HRS_S
                         = case when rms.REDUCE_CAPACITY_HRS_S is null and
                                     res2.REDUCE_CAPACITY_HRS_S is null
                                then to_number(null)
                                else nvl(rms.REDUCE_CAPACITY_HRS_S, 0) +
                                     nvl(res2.REDUCE_CAPACITY_HRS_S, 0)
                                end,
        rms.CONF_OVERCOM_HRS_S
                         = case when rms.CONF_OVERCOM_HRS_S is null and
                                     res2.CONF_OVERCOM_HRS_S is null
                                then to_number(null)
                                else nvl(rms.CONF_OVERCOM_HRS_S, 0) +
                                     nvl(res2.CONF_OVERCOM_HRS_S, 0)
                                end,
        rms.PROV_OVERCOM_HRS_S
                         = case when rms.PROV_OVERCOM_HRS_S is null and
                                     res2.PROV_OVERCOM_HRS_S is null
                                then to_number(null)
                                else nvl(rms.PROV_OVERCOM_HRS_S, 0) +
                                     nvl(res2.PROV_OVERCOM_HRS_S, 0)
                                end,
        rms.AVAILABLE_HRS_BKT1_S
                         = case when rms.AVAILABLE_HRS_BKT1_S is null and
                                     res2.AVAILABLE_HRS_BKT1_S is null
                                then to_number(null)
                                else nvl(rms.AVAILABLE_HRS_BKT1_S, 0) +
                                     nvl(res2.AVAILABLE_HRS_BKT1_S, 0)
                                end,
        rms.AVAILABLE_HRS_BKT2_S
                         = case when rms.AVAILABLE_HRS_BKT2_S is null and
                                     res2.AVAILABLE_HRS_BKT2_S is null
                                then to_number(null)
                                else nvl(rms.AVAILABLE_HRS_BKT2_S, 0) +
                                     nvl(res2.AVAILABLE_HRS_BKT2_S, 0)
                                end,
        rms.AVAILABLE_HRS_BKT3_S
                         = case when rms.AVAILABLE_HRS_BKT3_S is null and
                                     res2.AVAILABLE_HRS_BKT3_S is null
                                then to_number(null)
                                else nvl(rms.AVAILABLE_HRS_BKT3_S, 0) +
                                     nvl(res2.AVAILABLE_HRS_BKT3_S, 0)
                                end,
        rms.AVAILABLE_HRS_BKT4_S
                         = case when rms.AVAILABLE_HRS_BKT4_S is null and
                                     res2.AVAILABLE_HRS_BKT4_S is null
                                then to_number(null)
                                else nvl(rms.AVAILABLE_HRS_BKT4_S, 0) +
                                     nvl(res2.AVAILABLE_HRS_BKT4_S, 0)
                                end,
        rms.AVAILABLE_HRS_BKT5_S
                         = case when rms.AVAILABLE_HRS_BKT5_S is null and
                                     res2.AVAILABLE_HRS_BKT5_S is null
                                then to_number(null)
                                else nvl(rms.AVAILABLE_HRS_BKT5_S, 0) +
                                     nvl(res2.AVAILABLE_HRS_BKT5_S, 0)
                                end,
        rms.AVAILABLE_RES_COUNT_BKT1_S
                         = case when rms.AVAILABLE_RES_COUNT_BKT1_S is null and
                                     res2.AVAILABLE_RES_COUNT_BKT1_S is null
                                then to_number(null)
                                else nvl(rms.AVAILABLE_RES_COUNT_BKT1_S, 0) +
                                     nvl(res2.AVAILABLE_RES_COUNT_BKT1_S, 0)
                                end,
        rms.AVAILABLE_RES_COUNT_BKT2_S
                         = case when rms.AVAILABLE_RES_COUNT_BKT2_S is null and
                                     res2.AVAILABLE_RES_COUNT_BKT2_S is null
                                then to_number(null)
                                else nvl(rms.AVAILABLE_RES_COUNT_BKT2_S, 0) +
                                     nvl(res2.AVAILABLE_RES_COUNT_BKT2_S, 0)
                                end,
        rms.AVAILABLE_RES_COUNT_BKT3_S
                         = case when rms.AVAILABLE_RES_COUNT_BKT3_S is null and
                                     res2.AVAILABLE_RES_COUNT_BKT3_S is null
                                then to_number(null)
                                else nvl(rms.AVAILABLE_RES_COUNT_BKT3_S, 0) +
                                     nvl(res2.AVAILABLE_RES_COUNT_BKT3_S, 0)
                                end,
        rms.AVAILABLE_RES_COUNT_BKT4_S
                         = case when rms.AVAILABLE_RES_COUNT_BKT4_S is null and
                                     res2.AVAILABLE_RES_COUNT_BKT4_S is null
                                then to_number(null)
                                else nvl(rms.AVAILABLE_RES_COUNT_BKT4_S, 0) +
                                     nvl(res2.AVAILABLE_RES_COUNT_BKT4_S, 0)
                                end,
        rms.AVAILABLE_RES_COUNT_BKT5_S
                         = case when rms.AVAILABLE_RES_COUNT_BKT5_S is null and
                                     res2.AVAILABLE_RES_COUNT_BKT5_S is null
                                then to_number(null)
                                else nvl(rms.AVAILABLE_RES_COUNT_BKT5_S, 0) +
                                     nvl(res2.AVAILABLE_RES_COUNT_BKT5_S, 0)
                                end,
        rms.TOTAL_RES_COUNT
                         = case when rms.TOTAL_RES_COUNT is null and
                                     res2.TOTAL_RES_COUNT is null
                                then to_number(null)
                                else nvl(rms.TOTAL_RES_COUNT, 0) +
                                     nvl(res2.TOTAL_RES_COUNT, 0)
                                end,
        rms.LAST_UPDATE_DATE
            = res2.LAST_UPDATE_DATE,
        rms.LAST_UPDATED_BY
            = res2.LAST_UPDATED_BY,
        rms.LAST_UPDATE_LOGIN
            = res2.LAST_UPDATE_LOGIN
      when not matched then insert
      (
        rms.PERSON_ID,
        rms.EXPENDITURE_ORG_ID,
        rms.EXPENDITURE_ORGANIZATION_ID,
        rms.JOB_ID,
        rms.TIME_ID,
        rms.PERIOD_TYPE_ID,
        rms.CALENDAR_TYPE,
        rms.CAPACITY_HRS,
        rms.TOTAL_HRS_A,
        rms.MISSING_HRS_A,
        rms.TOTAL_WTD_ORG_HRS_A,
        rms.TOTAL_WTD_RES_HRS_A,
        rms.BILL_HRS_A,
        rms.BILL_WTD_ORG_HRS_A,
        rms.BILL_WTD_RES_HRS_A,
        rms.TRAINING_HRS_A,
        rms.UNASSIGNED_HRS_A,
        rms.REDUCIBLE_CAPACITY_HRS_A,
        rms.REDUCE_CAPACITY_HRS_A,
        rms.CONF_HRS_S,
        rms.CONF_WTD_ORG_HRS_S,
        rms.CONF_WTD_RES_HRS_S,
        rms.CONF_BILL_HRS_S,
        rms.CONF_BILL_WTD_ORG_HRS_S,
        rms.CONF_BILL_WTD_RES_HRS_S,
        rms.PROV_HRS_S,
        rms.PROV_WTD_ORG_HRS_S,
        rms.PROV_WTD_RES_HRS_S,
        rms.PROV_BILL_HRS_S,
        rms.PROV_BILL_WTD_ORG_HRS_S,
        rms.PROV_BILL_WTD_RES_HRS_S,
        rms.TRAINING_HRS_S,
        rms.UNASSIGNED_HRS_S,
        rms.REDUCIBLE_CAPACITY_HRS_S,
        rms.REDUCE_CAPACITY_HRS_S,
        rms.CONF_OVERCOM_HRS_S,
        rms.PROV_OVERCOM_HRS_S,
        rms.AVAILABLE_HRS_BKT1_S,
        rms.AVAILABLE_HRS_BKT2_S,
        rms.AVAILABLE_HRS_BKT3_S,
        rms.AVAILABLE_HRS_BKT4_S,
        rms.AVAILABLE_HRS_BKT5_S,
        rms.AVAILABLE_RES_COUNT_BKT1_S,
        rms.AVAILABLE_RES_COUNT_BKT2_S,
        rms.AVAILABLE_RES_COUNT_BKT3_S,
        rms.AVAILABLE_RES_COUNT_BKT4_S,
        rms.AVAILABLE_RES_COUNT_BKT5_S,
        rms.TOTAL_RES_COUNT,
        rms.LAST_UPDATE_DATE,
        rms.LAST_UPDATED_BY,
        rms.CREATION_DATE,
        rms.CREATED_BY,
        rms.LAST_UPDATE_LOGIN
      )
      values
      (
        res2.PERSON_ID,
        res2.EXPENDITURE_ORG_ID,
        res2.EXPENDITURE_ORGANIZATION_ID,
        res2.JOB_ID,
        res2.TIME_ID,
        res2.PERIOD_TYPE_ID,
        res2.CALENDAR_TYPE,
        res2.CAPACITY_HRS,
        res2.TOTAL_HRS_A,
        res2.MISSING_HRS_A,
        res2.TOTAL_WTD_ORG_HRS_A,
        res2.TOTAL_WTD_RES_HRS_A,
        res2.BILL_HRS_A,
        res2.BILL_WTD_ORG_HRS_A,
        res2.BILL_WTD_RES_HRS_A,
        res2.TRAINING_HRS_A,
        res2.UNASSIGNED_HRS_A,
        res2.REDUCIBLE_CAPACITY_HRS_A,
        res2.REDUCE_CAPACITY_HRS_A,
        res2.CONF_HRS_S,
        res2.CONF_WTD_ORG_HRS_S,
        res2.CONF_WTD_RES_HRS_S,
        res2.CONF_BILL_HRS_S,
        res2.CONF_BILL_WTD_ORG_HRS_S,
        res2.CONF_BILL_WTD_RES_HRS_S,
        res2.PROV_HRS_S,
        res2.PROV_WTD_ORG_HRS_S,
        res2.PROV_WTD_RES_HRS_S,
        res2.PROV_BILL_HRS_S,
        res2.PROV_BILL_WTD_ORG_HRS_S,
        res2.PROV_BILL_WTD_RES_HRS_S,
        res2.TRAINING_HRS_S,
        res2.UNASSIGNED_HRS_S,
        res2.REDUCIBLE_CAPACITY_HRS_S,
        res2.REDUCE_CAPACITY_HRS_S,
        res2.CONF_OVERCOM_HRS_S,
        res2.PROV_OVERCOM_HRS_S,
        res2.AVAILABLE_HRS_BKT1_S,
        res2.AVAILABLE_HRS_BKT2_S,
        res2.AVAILABLE_HRS_BKT3_S,
        res2.AVAILABLE_HRS_BKT4_S,
        res2.AVAILABLE_HRS_BKT5_S,
        res2.AVAILABLE_RES_COUNT_BKT1_S,
        res2.AVAILABLE_RES_COUNT_BKT2_S,
        res2.AVAILABLE_RES_COUNT_BKT3_S,
        res2.AVAILABLE_RES_COUNT_BKT4_S,
        res2.AVAILABLE_RES_COUNT_BKT5_S,
        res2.TOTAL_RES_COUNT,
        res2.LAST_UPDATE_DATE,
        res2.LAST_UPDATED_BY,
        res2.CREATION_DATE,
        res2.CREATED_BY,
        res2.LAST_UPDATE_LOGIN
      );
Line: 3083

    delete
    from   PJI_RM_RES_F
    where  (PERSON_ID,
            EXPENDITURE_ORG_ID,
            EXPENDITURE_ORGANIZATION_ID,
            JOB_ID,
            TIME_ID,
            PERIOD_TYPE_ID,
            CALENDAR_TYPE) in
           (select /*+ parallel(res2) */
                   PERSON_ID,
                   EXPENDITURE_ORG_ID,
                   EXPENDITURE_ORGANIZATION_ID,
                   JOB_ID,
                   TIME_ID,
                   PERIOD_TYPE_ID,
                   CALENDAR_TYPE
            from   PJI_RM_AGGR_RES2 res2
            where  WORKER_ID = p_worker_id) and
           nvl(CAPACITY_HRS, 0)       = 0 and
           nvl(TOTAL_HRS_A, 0)        = 0 and
           nvl(BILL_HRS_A, 0)         = 0 and
           nvl(CONF_HRS_S, 0)         = 0 and
           nvl(PROV_HRS_S, 0)         = 0 and
           nvl(UNASSIGNED_HRS_S, 0)   = 0 and
           nvl(CONF_OVERCOM_HRS_S, 0) = 0 and
           nvl(PROV_OVERCOM_HRS_S, 0) = 0;