DBA Data[Home] [Help]

APPS.MSC_SUPPLY_PKG SQL Statements

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

Line: 69

  select trunc(mp.curr_start_date),trunc(mp.curr_cutoff_date)
  into l_curr_start_date,l_curr_cutoff_date
  from msc_plans mp where mp.plan_id=p_plan_id;
Line: 77

  select msc_hub_query_s.nextval into l_qid_vmi      from dual;
Line: 79

   insert into msc_hub_query(
    query_id,
    last_update_date,
    last_updated_by,
    creation_date,
    created_by,
    last_update_login,
    number1,    -- plan_id
    number3,    -- sr_instance_id
    number4,    -- organization_id
    number5,        -- inventory_item_id
    number10    -- vmi flag
    )
    select
    unique l_qid_vmi,l_sysdate,1,l_sysdate,1,1,
    p_plan_id,
    msi.sr_instance_id,
    msi.organization_id,
    msi.inventory_item_id,
    nvl(mis.vmi_flag,0)
    from msc_item_suppliers mis,
     msc_system_items msi
    where msi.plan_id = mis.plan_id
    and msi.sr_instance_id = mis.sr_instance_id
    and msi.organization_id = mis.organization_id
    and msi.inventory_item_id = mis.inventory_item_id
    and msi.plan_id=p_plan_id
    and nvl(mis.vmi_flag,0)=1;
Line: 116

  Insert into msc_supplies_f (
        created_by,
    creation_date,
    last_updated_by,
    last_update_date,
    last_update_login,
    PROGRAM_ID ,
    PROGRAM_LOGIN_ID    ,
    PROGRAM_APPLICATION_ID ,
    REQUEST_ID     ,
-----------------------------------------------------
    plan_id, -- plan_id
    plan_run_id,
    io_plan_flag,   --- this flag indidate whether it is an io plan
    sr_instance_id,
    organization_id,
    inventory_item_id,
    project_id,
    task_id,
    supplier_id,
    supplier_site_id,
    region_id,
    ship_method,
    supply_date,
    aggr_type, category_set_id, sr_category_id,
    supply_type,
    vmi_flag,
    supply_qty,
    Planned_order_count,
    work_order_leadtime  , --- for work order (work order, planned work order)
    work_order_count,
    work_order_qty,
    stockout_days , -- this is for vmi measure 'stockout day'
    drp_supply_as_demand,
    return_order_Qty
    )
   select
    l_user_id,
    l_sysdate,
    l_user_id,
    l_sysdate,
    l_user_login_id,
    l_program_id,
    l_cp_login_id,
    l_appl_id,
    l_request_id,
----------------------------------------------
    p_plan_id, -- plan_id
    p_plan_run_id, -- plan_run_id,
    decode(mp.plan_type,4,1,9,1,0)  io_plan_flag,
    supply_tbl.sr_instance_id,
    supply_tbl.organization_id,
    supply_tbl.inventory_item_id,
    supply_tbl.project_id,
    supply_tbl.task_id,
    supply_tbl.supplier_id,
    supply_tbl.supplier_site_id,
    mps.region_id,
    --- if supply_date l_curr_cutoff_date, supply_date=l_curr_cutoff_date+1
    --- else supply_date
    --- we can not simply put it at plan start date,
    --- should be at the last working day of the bucket where plan start date is

    supply_tbl.ship_method,
    decode(sign(to_number(supply_tbl.supply_date-l_curr_start_date)),
        -1, msc_hub_calendar.last_work_date(p_plan_id,l_curr_start_date),
        decode(supply_tbl.supply_type,
            18, msc_hub_calendar.last_work_date(p_plan_id,supply_tbl.supply_date),
            supply_tbl.supply_date)),
    to_number(0) aggr_type,
    to_number(-23453) category_set_id,
    to_number(-23453) sr_category_id,
    supply_tbl.supply_type,
    supply_tbl.vmi_flag,
    sum(supply_tbl.supply_qty),
    sum(supply_tbl.Planned_order_count),
    sum(supply_tbl.work_order_leadtime),
    sum(supply_tbl.work_order_count),
    sum(supply_tbl.work_order_qty),
    sum(supply_tbl.stockout_days),
    sum(supply_tbl.drp_supply_as_demand) ,
    sum(supply_tbl.return_order_qty)

    from
       (select
       ms.sr_instance_id,
       ms.organization_id,
       ms.inventory_item_id,
       nvl(ms.project_id,-23453) project_id,
       nvl(ms.task_id,-23453)  task_id,
       nvl(ms.supplier_id,-23453)  supplier_id,
       nvl(ms.supplier_site_id,-23453) supplier_site_id,
       nvl(ms.zone_id,-23453) region_id,
       nvl(ms.ship_method, '-23453') ship_method,
       trunc(nvl(ms.firm_date,ms.new_schedule_date)) supply_date,
       ms.order_type supply_type,
       msi.vmi_flag,

       sum(decode(msi.base_item_id,null,
          decode(ms.disposition_status_type,2, 0,
        decode(ms.last_unit_completion_date,null, ms.new_order_quantity,ms.daily_rate) ),
          decode(ms.last_unit_completion_date,null, ms.new_order_quantity,ms.daily_rate) )) supply_qty,

      sum(decode(ms.order_type,5,
         decode(msi.base_item_id,null,
           decode(ms.disposition_status_type, 2, 0,1),1),to_number(null))) Planned_order_count,


    ---------------------------------------------------------------------------
    --- ??? exclude if new_schedule_date is null
    --- decode(nvl(ms.source_organization_id, ms.organization_id),
        --           ms.organization_id,
        --         PLANNED_MAKE_OFF,
        --       PLANNED_BUY_OFF)
    -- make order 3,7,14,15,27,28,
    -- 4,13 ?? do we need to include Repetitive schdule as make order??
    -- make planned order
    -- 3,4,5,7,13,14,15,16,17,27,28,30
    ---------------------------------------------------------------------------
    sum(decode(ms.order_type,3, nvl(ms.NEW_SCHEDULE_DATE,null)-nvl(ms.new_wip_start_date,null),
            5,decode(msc_supply_pkg.implement_code(ms.source_organization_id,ms.organization_id,
                            msi.repetitive_type,ms.source_supplier_id,
                        msi.planning_make_buy_code,msi.build_in_wip_flag),
               3,nvl(ms.NEW_SCHEDULE_DATE,null)-nvl(ms.new_wip_start_date,null),
               4,nvl(ms.NEW_SCHEDULE_DATE,null)- nvl(ms.FIRST_UNIT_START_DATE,null),
               0),
            7,nvl(ms.NEW_SCHEDULE_DATE,null)-nvl(ms.new_wip_start_date,null),
            14,nvl(ms.NEW_SCHEDULE_DATE,null)-nvl(ms.new_wip_start_date,null),
            15,nvl(ms.NEW_SCHEDULE_DATE,null)-nvl(ms.new_wip_start_date,null),
            27,nvl(ms.NEW_SCHEDULE_DATE,null)-nvl(ms.new_wip_start_date,null),
            28,nvl(ms.NEW_SCHEDULE_DATE,null)-nvl(ms.new_wip_start_date,null),
            4,nvl(ms.NEW_SCHEDULE_DATE,null)- nvl(ms.FIRST_UNIT_START_DATE,null),
            13,nvl(ms.NEW_SCHEDULE_DATE,null)- nvl(ms.FIRST_UNIT_START_DATE,null),
            16,nvl(ms.NEW_SCHEDULE_DATE,null)- nvl(ms.FIRST_UNIT_START_DATE,null),
            17,nvl(ms.NEW_SCHEDULE_DATE,null)-nvl(ms.new_wip_start_date,null),
            30,nvl(ms.NEW_SCHEDULE_DATE,null)- nvl(ms.FIRST_UNIT_START_DATE,null),
            88,nvl(ms.NEW_SCHEDULE_DATE,null)- nvl(ms.FIRST_UNIT_START_DATE,null),
            to_number(null))) work_order_leadtime,

    sum(decode(ms.order_type,3,1,
          5,decode(msc_supply_pkg.implement_code(ms.source_organization_id,ms.organization_id,
                            msi.repetitive_type,ms.source_supplier_id,
                        msi.planning_make_buy_code,msi.build_in_wip_flag),
              3,1,0),
          7,1,
          14,1,
          15,1,
          27,1,
          28,1,
          4,1,
          13,1,
          16,1,
          17,1,
          30,1,
          88,1,
          to_number(null))) work_order_count,
    sum(decode(ms.order_type,
                           3, decode(msi.base_item_id,null,
                    decode(ms.disposition_status_type,2, 0,
                    decode(ms.last_unit_completion_date,null, ms.new_order_quantity,ms.daily_rate) ),
                    decode(ms.last_unit_completion_date,null, ms.new_order_quantity,ms.daily_rate) ),
                   5, decode(msc_supply_pkg.implement_code(ms.source_organization_id,ms.organization_id,
                            msi.repetitive_type,ms.source_supplier_id,
                        msi.planning_make_buy_code,msi.build_in_wip_flag),
                  3,decode(msi.base_item_id,null,
                    decode(ms.disposition_status_type,2, 0,
                    decode(ms.last_unit_completion_date,null, ms.new_order_quantity,ms.daily_rate) ),
                    decode(ms.last_unit_completion_date,null, ms.new_order_quantity,ms.daily_rate) ),
                  4,decode(msi.base_item_id,null,
                    decode(ms.disposition_status_type,2, 0,
                    decode(ms.last_unit_completion_date,null, ms.new_order_quantity,ms.daily_rate) ),
                    decode(ms.last_unit_completion_date,null, ms.new_order_quantity,ms.daily_rate) ),
                  0),
                7,decode(msi.base_item_id,null,
                    decode(ms.disposition_status_type,2, 0,
                    decode(ms.last_unit_completion_date,null, ms.new_order_quantity,ms.daily_rate) ),
                    decode(ms.last_unit_completion_date,null, ms.new_order_quantity,ms.daily_rate) ),
                14,decode(msi.base_item_id,null,
                    decode(ms.disposition_status_type,2, 0,
                    decode(ms.last_unit_completion_date,null, ms.new_order_quantity,ms.daily_rate) ),
                    decode(ms.last_unit_completion_date,null, ms.new_order_quantity,ms.daily_rate) ),
                15,decode(msi.base_item_id,null,
                    decode(ms.disposition_status_type,2, 0,
                    decode(ms.last_unit_completion_date,null, ms.new_order_quantity,ms.daily_rate) ),
                    decode(ms.last_unit_completion_date,null, ms.new_order_quantity,ms.daily_rate) ),
                27,decode(msi.base_item_id,null,
                    decode(ms.disposition_status_type,2, 0,
                    decode(ms.last_unit_completion_date,null, ms.new_order_quantity,ms.daily_rate) ),
                    decode(ms.last_unit_completion_date,null, ms.new_order_quantity,ms.daily_rate) ),
                28,decode(msi.base_item_id,null,
                    decode(ms.disposition_status_type,2, 0,
                    decode(ms.last_unit_completion_date,null, ms.new_order_quantity,ms.daily_rate) ),
                    decode(ms.last_unit_completion_date,null, ms.new_order_quantity,ms.daily_rate) ),
                4,decode(msi.base_item_id,null,
                    decode(ms.disposition_status_type,2, 0,
                    decode(ms.last_unit_completion_date,null, ms.new_order_quantity,ms.daily_rate) ),
                    decode(ms.last_unit_completion_date,null, ms.new_order_quantity,ms.daily_rate) ),
                13,decode(msi.base_item_id,null,
                    decode(ms.disposition_status_type,2, 0,
                    decode(ms.last_unit_completion_date,null, ms.new_order_quantity,ms.daily_rate) ),
                    decode(ms.last_unit_completion_date,null, ms.new_order_quantity,ms.daily_rate) ),
                16,decode(msi.base_item_id,null,
                    decode(ms.disposition_status_type,2, 0,
                    decode(ms.last_unit_completion_date,null, ms.new_order_quantity,ms.daily_rate) ),
                    decode(ms.last_unit_completion_date,null, ms.new_order_quantity,ms.daily_rate) ),
                17,decode(msi.base_item_id,null,
                    decode(ms.disposition_status_type,2, 0,
                    decode(ms.last_unit_completion_date,null, ms.new_order_quantity,ms.daily_rate) ),
                    decode(ms.last_unit_completion_date,null, ms.new_order_quantity,ms.daily_rate) ),
                30,decode(msi.base_item_id,null,
                    decode(ms.disposition_status_type,2, 0,
                    decode(ms.last_unit_completion_date,null, ms.new_order_quantity,ms.daily_rate) ),
                    decode(ms.last_unit_completion_date,null, ms.new_order_quantity,ms.daily_rate) ),
                88,decode(msi.base_item_id,null,
                    decode(ms.disposition_status_type,2, 0,
                    decode(ms.last_unit_completion_date,null, ms.new_order_quantity,ms.daily_rate) ),
                    decode(ms.last_unit_completion_date,null, ms.new_order_quantity,ms.daily_rate) ),
                to_number(null))) work_order_qty,

     --- order_type in (1,2,18) and nvl(item_type_id,401) = 401 and nvl(item_type_value,1) = 2

     sum(decode(mp.plan_type,8,
                         decode(ms.order_type,1,decode(nvl(item_type_id,401),401,
                                                       decode(nvl(item_type_value,1),
                                      2,decode(msi.base_item_id,null,
                                    decode(ms.disposition_status_type,2, 0,
                                                decode(ms.last_unit_completion_date,null, ms.new_order_quantity,ms.daily_rate) ),
                                                    decode(ms.last_unit_completion_date,null, ms.new_order_quantity,ms.daily_rate) ),
                                      0),
                                    0),
                                 2,decode(nvl(item_type_id,401),401,
                                                       decode(nvl(item_type_value,1),
                                      2,decode(msi.base_item_id,null,
                                    decode(ms.disposition_status_type,2, 0,
                                                decode(ms.last_unit_completion_date,null, ms.new_order_quantity,ms.daily_rate) ),
                                                    decode(ms.last_unit_completion_date,null, ms.new_order_quantity,ms.daily_rate) ),
                                      0),
                                    0),
                          18,decode(nvl(item_type_id,401),401,
                                                       decode(nvl(item_type_value,1),
                                      2,decode(msi.base_item_id,null,
                                    decode(ms.disposition_status_type,2, 0,
                                                decode(ms.last_unit_completion_date,null, ms.new_order_quantity,ms.daily_rate) ),
                                                    decode(ms.last_unit_completion_date,null, ms.new_order_quantity,ms.daily_rate) ),
                                      0),
                                    0),
                        0),
              9,
                  decode(ms.order_type,1,decode(nvl(item_type_id,401),401,
                                                       decode(nvl(item_type_value,1),
                                      2,decode(msi.base_item_id,null,
                                    decode(ms.disposition_status_type,2, 0,
                                                decode(ms.last_unit_completion_date,null, ms.new_order_quantity,ms.daily_rate) ),
                                                    decode(ms.last_unit_completion_date,null, ms.new_order_quantity,ms.daily_rate) ),
                                      0),
                                    0),
                                 2,decode(nvl(item_type_id,401),401,
                                                       decode(nvl(item_type_value,1),
                                      2,decode(msi.base_item_id,null,
                                    decode(ms.disposition_status_type,2, 0,
                                                decode(ms.last_unit_completion_date,null, ms.new_order_quantity,ms.daily_rate) ),
                                                    decode(ms.last_unit_completion_date,null, ms.new_order_quantity,ms.daily_rate) ),
                                      0),
                                    0),
                          18,decode(nvl(item_type_id,401),401,
                                                       decode(nvl(item_type_value,1),
                                      2,decode(msi.base_item_id,null,
                                    decode(ms.disposition_status_type,2, 0,
                                                decode(ms.last_unit_completion_date,null, ms.new_order_quantity,ms.daily_rate) ),
                                                    decode(ms.last_unit_completion_date,null, ms.new_order_quantity,ms.daily_rate) ),
                                      0),
                                    0),
                        0),
             0)) return_order_qty,
      to_number(null) drp_supply_as_demand,


      to_number(null) stockout_days

    from
       msc_supplies ms,
       ( select msi_1.plan_id,
            msi_1.sr_instance_id,
            msi_1.organization_id,
            msi_1.inventory_item_id,
            msi_1.base_item_id,
            msi_1.repetitive_type,
            msi_1.planning_make_buy_code,
            msi_1.build_in_wip_flag,
            nvl(f_1.number10,0) vmi_flag
         from msc_system_items msi_1,
          msc_hub_query f_1
         where f_1.query_id(+) = l_qid_vmi
         and   f_1.number1(+) = msi_1.plan_id
         and   f_1.number3(+) = msi_1.sr_instance_id
         and   f_1.number4(+) = msi_1.organization_id
         and   f_1.number5(+) = msi_1.inventory_item_id) msi, msc_plans mp
    where ms.plan_id = msi.plan_id
    and   ms.sr_instance_id = msi.sr_instance_id
    and   ms.organization_id =msi.organization_id
    and   ms.inventory_item_id = msi.inventory_item_id
    and ms.plan_id=p_plan_id
    and ms.plan_id=mp.plan_id
    group by
    ms.sr_instance_id,
    ms.organization_id,
    ms.inventory_item_id,
    nvl(ms.project_id,-23453),
    nvl(ms.task_id,-23453),
    nvl(ms.supplier_id,-23453),
    nvl(ms.supplier_site_id,-23453),
    nvl(ms.zone_id,-23453),
    nvl(ms.ship_method, '-23453'),
    trunc(nvl(ms.firm_date,ms.new_schedule_date)),
    ms.order_type,
    msi.vmi_flag


    union all

    select
       med.sr_instance_id,
       med.organization_id,
       med.inventory_item_id,
       -23453 project_id,
       -23453 task_id,
       nvl(med.supplier_id, -23453)  supplier_id,
       nvl(med.supplier_site_id, -23453) supplier_id,
       nvl(med.zone_id, -23453) region_id,
       '-23453' ship_method,
       trunc(med.date1) supply_date,  -- exception date
       -23453 supply_type,
       nvl(f_2.number10,0) vmi_flag,
       -----------------------------------------------------------------------
       to_number(null)  supply_qty,
       to_number(null) Planned_order_count,
       to_number(null) work_order_leadtime,
       to_number(null) work_order_count,
       to_number(null) work_order_qty,
       to_number(null) return_order_qty,
       to_number(null) drp_supply_as_demand,
       sum(MED.DATE2 - MED.DATE1) stockout_days     --- should be to_date - from_date
       -- may get from msc_exception_f if this has performance issue
       -- table from_date - to_date
    from
         msc_exception_details med,
         msc_hub_query f_2
    where f_2.query_id(+) = l_qid_vmi
         and   f_2.number1(+) = med.plan_id
         and   f_2.number3(+) = med.sr_instance_id
         and   f_2.number4(+) = med.organization_id
         and   f_2.number5(+) = med.inventory_item_id
         and   med.exception_type =2
         and   med.plan_id = p_plan_id
    group by
       med.sr_instance_id,
       med.organization_id,
       med.inventory_item_id,
       -23453,
       -23453,
       nvl(med.supplier_id, -23453),
       nvl(med.supplier_site_id, -23453),
       nvl(med.zone_id, -23453),
       trunc(med.date1),
       -23453,
       nvl(f_2.number10,0)

    union all
    select
       ms2.sr_instance_id,
       ms2.source_organization_id organization_id,
       ms2.inventory_item_id,
       nvl(ms2.project_id,-23453) project_id,
       nvl(ms2.task_id,-23453)  task_id,
       nvl(ms2.supplier_id,-23453)  supplier_id,
       nvl(ms2.supplier_site_id,-23453) supplier_site_id,
       nvl(ms2.zone_id,-23453) supplier_site_id,
       nvl(ms2.ship_method, '-23453') ship_method,
       trunc(nvl(ms2.firm_date,ms2.new_schedule_date)) supply_date,
       ms2.order_type supply_type,
       msi2.vmi_flag,

       -----------------------------------------------------------------------
       to_number(null)  supply_qty,
       to_number(null) Planned_order_count,
       to_number(null) work_order_leadtime,
       to_number(null) work_order_count,
       to_number(null) work_order_qty,
       to_number(null) return_order_qty,


    /*  ms.source_organization_id <> ms.organization_id
         and     (ms.order_type <> PURCH_REQ or
         (ms.order_type = PURCH_REQ and ms.supplier_id is not null))*/


        sum(decode(mp.plan_type,5,decode(ms2.order_type,1,
                    decode(ms2.organization_id,ms2.source_organization_id,0,
                      decode(msi2.base_item_id,null,
                        decode(ms2.disposition_status_type,2, 0,
                        decode(ms2.last_unit_completion_date,null, ms2.new_order_quantity,ms2.daily_rate) ),
                        decode(ms2.last_unit_completion_date,null, ms2.new_order_quantity,ms2.daily_rate) )),
                       51,decode(ms2.organization_id, ms2.source_organization_id,0,
                          decode(msi2.base_item_id,null,
                        decode(ms2.disposition_status_type,2, 0,
                        decode(ms2.last_unit_completion_date,null, ms2.new_order_quantity,ms2.daily_rate) ),
                        decode(ms2.last_unit_completion_date,null, ms2.new_order_quantity,ms2.daily_rate) )),
                       2,decode(ms2.supplier_id,null,0,
                           decode(ms2.organization_id, ms2.source_organization_id,0,
                          decode(msi2.base_item_id,null,
                        decode(ms2.disposition_status_type,2, 0,
                        decode(ms2.last_unit_completion_date,null, ms2.new_order_quantity,ms2.daily_rate) ),
                        decode(ms2.last_unit_completion_date,null, ms2.new_order_quantity,ms2.daily_rate) ))),
                      0),0)) drp_supply_as_demand,
        to_number(null) stockout_days
        from msc_supplies ms2,msc_plans mp,
       ( select msi_2.plan_id,
            msi_2.sr_instance_id,
            msi_2.organization_id,
            msi_2.inventory_item_id,
            msi_2.base_item_id,
            msi_2.planning_make_buy_code,
            msi_2.build_in_wip_flag,
            nvl(f_3.number10,0) vmi_flag
         from msc_system_items msi_2,
          msc_hub_query f_3
         where f_3.query_id(+) = l_qid_vmi
         and   f_3.number1(+) = msi_2.plan_id
         and   f_3.number3(+) = msi_2.sr_instance_id
         and   f_3.number4(+) = msi_2.organization_id
         and   f_3.number5(+) = msi_2.inventory_item_id) msi2
    where ms2.plan_id = msi2.plan_id
    and   ms2.sr_instance_id = msi2.sr_instance_id
    and   ms2.source_organization_id =msi2.organization_id
    and   ms2.inventory_item_id = msi2.inventory_item_id
    and ms2.plan_id=p_plan_id
    and ms2.order_type in (1,2,51)
    and ms2.plan_id=mp.plan_id
    group by
    ms2.sr_instance_id,
    ms2.source_organization_id,
    ms2.inventory_item_id,
    nvl(ms2.project_id,-23453),
    nvl(ms2.task_id,-23453),
    nvl(ms2.supplier_id,-23453),
    nvl(ms2.supplier_site_id,-23453),
    nvl(ms2.zone_id,-23453),
    nvl(ms2.ship_method, '-23453'),
    trunc(nvl(ms2.firm_date,ms2.new_schedule_date)),
    ms2.order_type,
    msi2.vmi_flag
    order by 1,2,3,4,5,6,7,8,9,10) supply_tbl,
    msc_plans mp,
    msc_phub_suppliers_mv mps
    where mp.plan_id=p_plan_id    --- we need this to separate io measure from  other measures
    and mps.supplier_id = nvl(supply_tbl.supplier_id, -23453)
    and mps.supplier_site_id = nvl(supply_tbl.supplier_site_id, -23453)
    and mps.region_id = decode(nvl(supply_tbl.supplier_id, -23453),
        -23453, nvl(supply_tbl.region_id, -23453), mps.region_id)
    group by
    decode(mp.plan_type,4,1,9,1,0),
    supply_tbl.sr_instance_id,
    supply_tbl.organization_id,
    supply_tbl.inventory_item_id,
    supply_tbl.project_id,
    supply_tbl.task_id,
    supply_tbl.supplier_id,
    supply_tbl.supplier_site_id,
    mps.region_id,
    supply_tbl.ship_method,
    decode(sign(to_number(supply_tbl.supply_date-l_curr_start_date)),
        -1, msc_hub_calendar.last_work_date(p_plan_id,l_curr_start_date),
        decode(supply_tbl.supply_type,
            18, msc_hub_calendar.last_work_date(p_plan_id,supply_tbl.supply_date),
            supply_tbl.supply_date)),
    supply_tbl.supply_type,
    supply_tbl.vmi_flag;
Line: 606

 Insert into msc_item_wips_f (
        created_by,
    creation_date,
    last_updated_by,
    last_update_date,
    last_update_login,
    PROGRAM_ID ,
    PROGRAM_LOGIN_ID    ,
    PROGRAM_APPLICATION_ID ,
    REQUEST_ID     ,
-----------------------------------------------------
    plan_id, -- plan_id
    plan_run_id,
    sr_instance_id,
    organization_id,
    inventory_item_id,
    vmi_flag,
    wip_start_date,
    aggr_type, category_set_id, sr_category_id,
    wip_qty
    )
   select
    l_user_id,
    l_sysdate,
    l_user_id,
    l_sysdate,
        l_user_login_id,
    l_program_id,
    l_cp_login_id,
    l_appl_id,
    l_request_id,
----------------------------------------------
    p_plan_id,          -- plan_id
    p_plan_run_id,          -- plan_run_id,
        wip_tbl.sr_instance_id,
    wip_tbl.organization_id,
    wip_tbl.inventory_item_id,
    wip_tbl.vmi_flag,
    decode(sign(to_number(wip_tbl.wip_start_date-l_curr_start_date)),-1,l_curr_start_date,wip_tbl.wip_start_date),
    to_number(0) aggr_type,
    to_number(-23453) category_set_id,
    to_number(-23453) sr_category_id,
    sum(wip_tbl.wip_qty)
    from
       (select
       ms.sr_instance_id,
       ms.organization_id,
       ms.inventory_item_id,
       msi.vmi_flag,
       trunc(nvl(nvl(ms.new_wip_start_date,ms.FIRST_UNIT_START_DATE),l_curr_start_date)) wip_start_date,
    -- make order 3,7,14,15,27,28,
    -- 4,13 ?? do we need to include Repetitive schdule as make order??
    -- make planned order
    ---------------------------------------------------------------------------
    sum(decode(ms.order_type,
                           3, decode(msi.base_item_id,null,
                    decode(ms.disposition_status_type,2, 0,
                    decode(ms.last_unit_completion_date,null, ms.new_order_quantity,ms.daily_rate) ),
                    decode(ms.last_unit_completion_date,null, ms.new_order_quantity,ms.daily_rate) ),
                   5, decode(msc_supply_pkg.implement_code(ms.source_organization_id,ms.organization_id,
                            msi.repetitive_type,ms.source_supplier_id,
                        msi.planning_make_buy_code,msi.build_in_wip_flag),
                  3,decode(msi.base_item_id,null,
                    decode(ms.disposition_status_type,2, 0,
                    decode(ms.last_unit_completion_date,null, ms.new_order_quantity,ms.daily_rate) ),
                    decode(ms.last_unit_completion_date,null, ms.new_order_quantity,ms.daily_rate) ),
                  4,decode(msi.base_item_id,null,
                    decode(ms.disposition_status_type,2, 0,
                    decode(ms.last_unit_completion_date,null, ms.new_order_quantity,ms.daily_rate) ),
                    decode(ms.last_unit_completion_date,null, ms.new_order_quantity,ms.daily_rate) ),
                  0),
                7,decode(msi.base_item_id,null,
                    decode(ms.disposition_status_type,2, 0,
                    decode(ms.last_unit_completion_date,null, ms.new_order_quantity,ms.daily_rate) ),
                    decode(ms.last_unit_completion_date,null, ms.new_order_quantity,ms.daily_rate) ),
                14,decode(msi.base_item_id,null,
                    decode(ms.disposition_status_type,2, 0,
                    decode(ms.last_unit_completion_date,null, ms.new_order_quantity,ms.daily_rate) ),
                    decode(ms.last_unit_completion_date,null, ms.new_order_quantity,ms.daily_rate) ),
                15,decode(msi.base_item_id,null,
                    decode(ms.disposition_status_type,2, 0,
                    decode(ms.last_unit_completion_date,null, ms.new_order_quantity,ms.daily_rate) ),
                    decode(ms.last_unit_completion_date,null, ms.new_order_quantity,ms.daily_rate) ),
                27,decode(msi.base_item_id,null,
                    decode(ms.disposition_status_type,2, 0,
                    decode(ms.last_unit_completion_date,null, ms.new_order_quantity,ms.daily_rate) ),
                    decode(ms.last_unit_completion_date,null, ms.new_order_quantity,ms.daily_rate) ),
                28,decode(msi.base_item_id,null,
                    decode(ms.disposition_status_type,2, 0,
                    decode(ms.last_unit_completion_date,null, ms.new_order_quantity,ms.daily_rate) ),
                    decode(ms.last_unit_completion_date,null, ms.new_order_quantity,ms.daily_rate) ),
                4,decode(msi.base_item_id,null,
                    decode(ms.disposition_status_type,2, 0,
                    decode(ms.last_unit_completion_date,null, ms.new_order_quantity,ms.daily_rate) ),
                    decode(ms.last_unit_completion_date,null, ms.new_order_quantity,ms.daily_rate) ),
                13,decode(msi.base_item_id,null,
                    decode(ms.disposition_status_type,2, 0,
                    decode(ms.last_unit_completion_date,null, ms.new_order_quantity,ms.daily_rate) ),
                    decode(ms.last_unit_completion_date,null, ms.new_order_quantity,ms.daily_rate) ),
                16,decode(msi.base_item_id,null,
                    decode(ms.disposition_status_type,2, 0,
                    decode(ms.last_unit_completion_date,null, ms.new_order_quantity,ms.daily_rate) ),
                    decode(ms.last_unit_completion_date,null, ms.new_order_quantity,ms.daily_rate) ),
                17,decode(msc_supply_pkg.implement_code(ms.source_organization_id,ms.organization_id,
                            msi.repetitive_type,ms.source_supplier_id,
                        msi.planning_make_buy_code,msi.build_in_wip_flag),
                  3,decode(msi.base_item_id,null,
                    decode(ms.disposition_status_type,2, 0,
                    decode(ms.last_unit_completion_date,null, ms.new_order_quantity,ms.daily_rate) ),
                    decode(ms.last_unit_completion_date,null, ms.new_order_quantity,ms.daily_rate) ),
                  4,decode(msi.base_item_id,null,
                    decode(ms.disposition_status_type,2, 0,
                    decode(ms.last_unit_completion_date,null, ms.new_order_quantity,ms.daily_rate) ),
                    decode(ms.last_unit_completion_date,null, ms.new_order_quantity,ms.daily_rate) ),
                  0),
                30,decode(msi.base_item_id,null,
                    decode(ms.disposition_status_type,2, 0,
                    decode(ms.last_unit_completion_date,null, ms.new_order_quantity,ms.daily_rate) ),
                    decode(ms.last_unit_completion_date,null, ms.new_order_quantity,ms.daily_rate) ),
                88,decode(msi.base_item_id,null,
                    decode(ms.disposition_status_type,2, 0,
                    decode(ms.last_unit_completion_date,null, ms.new_order_quantity,ms.daily_rate) ),
                    decode(ms.last_unit_completion_date,null, ms.new_order_quantity,ms.daily_rate) ),
                to_number(null))) wip_qty
    from
       msc_supplies ms,
       ( select msi_1.plan_id,
            msi_1.sr_instance_id,
            msi_1.organization_id,
            msi_1.inventory_item_id,
            msi_1.base_item_id,
            msi_1.repetitive_type,
            msi_1.planning_make_buy_code,
            msi_1.build_in_wip_flag,
            nvl(f_1.number10,0) vmi_flag
         from msc_system_items msi_1,
          msc_hub_query f_1
         where f_1.query_id(+) = l_qid_vmi
         and   f_1.number1(+) = msi_1.plan_id
         and   f_1.number3(+) = msi_1.sr_instance_id
         and   f_1.number4(+) = msi_1.organization_id
         and   f_1.number5(+) = msi_1.inventory_item_id) msi,
         msc_plans mp
    where ms.plan_id = msi.plan_id
    and   ms.sr_instance_id = msi.sr_instance_id
    and   ms.organization_id =msi.organization_id
    and   ms.inventory_item_id = msi.inventory_item_id
    and ms.plan_id=p_plan_id
    and mp.plan_id=ms.plan_id
    and mp.plan_type not in (4,9)  --- exclude io plan
    group by
    ms.sr_instance_id,
    ms.organization_id,
    ms.inventory_item_id,
    msi.vmi_flag,
    trunc(nvl(nvl(ms.new_wip_start_date,ms.FIRST_UNIT_START_DATE),l_curr_start_date))  ) wip_tbl
--    where l_plan_type <> 6
    group by
    l_user_id,
    l_sysdate,
    l_user_id,
    l_sysdate,
        l_user_login_id,
    l_program_id,
    l_cp_login_id,
    l_appl_id,
    l_request_id,
-----------------------------------------------
    p_plan_id, -- plan_id
    p_plan_run_id, -- plan_run_id,
        wip_tbl.sr_instance_id,
    wip_tbl.organization_id,
    wip_tbl.inventory_item_id,
    wip_tbl.vmi_flag,
    decode(sign(to_number(wip_tbl.wip_start_date-l_curr_start_date)),-1,l_curr_start_date,wip_tbl.wip_start_date);
Line: 834

        insert into msc_supplies_f (
            plan_id, plan_run_id, io_plan_flag,
            sr_instance_id, organization_id, inventory_item_id,
            project_id, task_id,
            supplier_id, supplier_site_id, region_id,
            ship_method,
            supply_date,
            aggr_type, category_set_id, sr_category_id,
            supply_type, vmi_flag,
            supply_qty,
            planned_order_count,
            work_order_leadtime,
            work_order_count,
            work_order_qty,
            stockout_days,
            drp_supply_as_demand,
            return_order_qty,
            created_by, creation_date,
            last_update_date, last_updated_by, last_update_login,
            program_id, program_login_id,
            program_application_id, request_id)
        -- category (42, 43, 44)
        select
            f.plan_id, f.plan_run_id, f.io_plan_flag,
            f.sr_instance_id, f.organization_id,
            to_number(-23453) inventory_item_id,
            f.project_id, f.task_id,
            f.supplier_id, f.supplier_site_id, f.region_id,
            f.ship_method,
            f.supply_date,
            to_number(42) aggr_type,
            l_category_set_id1 category_set_id,
            nvl(q.sr_category_id, -23453),
            f.supply_type, f.vmi_flag,
            sum(f.supply_qty),
            sum(f.planned_order_count),
            sum(f.work_order_leadtime),
            sum(f.work_order_count),
            sum(f.work_order_qty),
            sum(f.stockout_days),
            sum(f.drp_supply_as_demand),
            sum(f.return_order_qty),
            fnd_global.user_id, sysdate,
            sysdate, fnd_global.user_id, fnd_global.login_id,
            fnd_global.conc_program_id, fnd_global.conc_login_id,
            fnd_global.prog_appl_id, fnd_global.conc_request_id
        from
            msc_supplies_f f,
            msc_phub_item_categories_mv q
        where f.plan_id = p_plan_id and f.plan_run_id = p_plan_run_id
            and f.aggr_type=0
            and f.sr_instance_id=q.sr_instance_id(+)
            and f.organization_id=q.organization_id(+)
            and f.inventory_item_id=q.inventory_item_id(+)
            and q.category_set_id(+)=l_category_set_id1
        group by
            f.plan_id, f.plan_run_id, f.io_plan_flag,
            f.sr_instance_id, f.organization_id,
            f.project_id, f.task_id,
            f.supplier_id, f.supplier_site_id, f.region_id,
            f.ship_method,
            f.supply_date,
            nvl(q.sr_category_id, -23453),
            f.supply_type, f.vmi_flag;
Line: 902

        insert into msc_item_wips_f (
            plan_id, plan_run_id,
            sr_instance_id, organization_id, inventory_item_id,
            vmi_flag, wip_start_date,
            aggr_type, category_set_id, sr_category_id,
            wip_qty,
            created_by, creation_date,
            last_update_date, last_updated_by, last_update_login,
            program_id, program_login_id,
            program_application_id, request_id)
        -- category (42, 43, 44)
        select
            f.plan_id, f.plan_run_id,
            f.sr_instance_id, f.organization_id,
            to_number(-23453) inventory_item_id,
            f.vmi_flag, f.wip_start_date,
            to_number(42) aggr_type,
            l_category_set_id1 category_set_id,
            nvl(q.sr_category_id, -23453),
            sum(f.wip_qty),
            fnd_global.user_id, sysdate,
            sysdate, fnd_global.user_id, fnd_global.login_id,
            fnd_global.conc_program_id, fnd_global.conc_login_id,
            fnd_global.prog_appl_id, fnd_global.conc_request_id
        from
            msc_item_wips_f f,
            msc_phub_item_categories_mv q
        where f.plan_id = p_plan_id and f.plan_run_id = p_plan_run_id
            and f.aggr_type=0
            and f.sr_instance_id=q.sr_instance_id(+)
            and f.organization_id=q.organization_id(+)
            and f.inventory_item_id=q.inventory_item_id(+)
            and q.category_set_id(+)=l_category_set_id1
        group by
            f.plan_id, f.plan_run_id,
            f.sr_instance_id, f.organization_id,
            f.vmi_flag, f.wip_start_date,
            nvl(q.sr_category_id, -23453);
Line: 944

        insert into msc_supplies_f (
            plan_id, plan_run_id, io_plan_flag,
            sr_instance_id, organization_id, inventory_item_id,
            project_id, task_id,
            supplier_id, supplier_site_id, region_id,
            ship_method,
            supply_date,
            aggr_type, category_set_id, sr_category_id,
            supply_type, vmi_flag,
            supply_qty,
            planned_order_count,
            work_order_leadtime,
            work_order_count,
            work_order_qty,
            stockout_days,
            drp_supply_as_demand,
            return_order_qty,
            created_by, creation_date,
            last_update_date, last_updated_by, last_update_login,
            program_id, program_login_id,
            program_application_id, request_id)
        -- category-mfg_period (1016, 1017, 1018)
        select
            f.plan_id, f.plan_run_id, f.io_plan_flag,
            f.sr_instance_id, f.organization_id, f.inventory_item_id,
            f.project_id, f.task_id,
            f.supplier_id, f.supplier_site_id, f.region_id,
            f.ship_method,
            mp.period_start_date supply_date,
            decode(f.aggr_type, 42, 1016, 43, 1017, 1018) aggr_type,
            f.category_set_id, f.sr_category_id,
            f.supply_type, f.vmi_flag,
            sum(f.supply_qty),
            sum(f.planned_order_count),
            sum(f.work_order_leadtime),
            sum(f.work_order_count),
            sum(f.work_order_qty),
            sum(f.stockout_days),
            sum(f.drp_supply_as_demand),
            sum(f.return_order_qty),
            fnd_global.user_id, sysdate,
            sysdate, fnd_global.user_id, fnd_global.login_id,
            fnd_global.conc_program_id, fnd_global.conc_login_id,
            fnd_global.prog_appl_id, fnd_global.conc_request_id
        from
            msc_supplies_f f,
            msc_phub_mfg_cal_periods_mv mp
        where f.plan_id = p_plan_id and f.plan_run_id = p_plan_run_id
            and f.aggr_type between 42 and 44
            and f.supply_date between mp.period_start_date and mp.period_end_date
        group by
            f.plan_id, f.plan_run_id, f.io_plan_flag,
            f.sr_instance_id, f.organization_id, f.inventory_item_id,
            f.project_id, f.task_id,
            f.supplier_id, f.supplier_site_id, f.region_id,
            f.ship_method,
            mp.period_start_date,
            decode(f.aggr_type, 42, 1016, 43, 1017, 1018),
            f.category_set_id, f.sr_category_id,
            f.supply_type, f.vmi_flag
        union all
        -- category-fiscal_period (1019, 1020, 1021)
        select
            f.plan_id, f.plan_run_id, f.io_plan_flag,
            f.sr_instance_id, f.organization_id, f.inventory_item_id,
            f.project_id, f.task_id,
            f.supplier_id, f.supplier_site_id, f.region_id,
            f.ship_method,
            fp.start_date supply_date,
            decode(f.aggr_type, 42, 1019, 43, 1020, 1021) aggr_type,
            f.category_set_id, f.sr_category_id,
            f.supply_type, f.vmi_flag,
            sum(f.supply_qty),
            sum(f.planned_order_count),
            sum(f.work_order_leadtime),
            sum(f.work_order_count),
            sum(f.work_order_qty),
            sum(f.stockout_days),
            sum(f.drp_supply_as_demand),
            sum(f.return_order_qty),
            fnd_global.user_id, sysdate,
            sysdate, fnd_global.user_id, fnd_global.login_id,
            fnd_global.conc_program_id, fnd_global.conc_login_id,
            fnd_global.prog_appl_id, fnd_global.conc_request_id
        from
            msc_supplies_f f,
            msc_phub_fiscal_periods_mv fp
        where f.plan_id = p_plan_id and f.plan_run_id = p_plan_run_id
            and f.aggr_type between 42 and 44
            and f.supply_date between fp.start_date and fp.end_date
        group by
            f.plan_id, f.plan_run_id, f.io_plan_flag,
            f.sr_instance_id, f.organization_id, f.inventory_item_id,
            f.project_id, f.task_id,
            f.supplier_id, f.supplier_site_id, f.region_id,
            f.ship_method,
            fp.start_date,
            decode(f.aggr_type, 42, 1019, 43, 1020, 1021),
            f.category_set_id, f.sr_category_id,
            f.supply_type, f.vmi_flag;
Line: 1048

        insert into msc_item_wips_f (
            plan_id, plan_run_id,
            sr_instance_id, organization_id, inventory_item_id,
            vmi_flag, wip_start_date,
            aggr_type, category_set_id, sr_category_id,
            wip_qty,
            created_by, creation_date,
            last_update_date, last_updated_by, last_update_login,
            program_id, program_login_id,
            program_application_id, request_id)
        -- category-mfg_period (1016, 1017, 1018)
        select
            f.plan_id, f.plan_run_id,
            f.sr_instance_id, f.organization_id, f.inventory_item_id,
            f.vmi_flag,
            mp.period_start_date wip_start_date,
            decode(f.aggr_type, 42, 1016, 43, 1017, 1018) aggr_type,
            f.category_set_id, f.sr_category_id,
            sum(f.wip_qty),
            fnd_global.user_id, sysdate,
            sysdate, fnd_global.user_id, fnd_global.login_id,
            fnd_global.conc_program_id, fnd_global.conc_login_id,
            fnd_global.prog_appl_id, fnd_global.conc_request_id
        from
            msc_item_wips_f f,
            msc_phub_mfg_cal_periods_mv mp
        where f.plan_id = p_plan_id and f.plan_run_id = p_plan_run_id
            and f.aggr_type between 42 and 44
            and f.wip_start_date between mp.period_start_date and mp.period_end_date
        group by
            f.plan_id, f.plan_run_id,
            f.sr_instance_id, f.organization_id, f.inventory_item_id,
            f.vmi_flag,
            mp.period_start_date,
            decode(f.aggr_type, 42, 1016, 43, 1017, 1018),
            f.category_set_id, f.sr_category_id
        union all
        -- category-fiscal_period (1019, 1020, 1021)
        select
            f.plan_id, f.plan_run_id,
            f.sr_instance_id, f.organization_id, f.inventory_item_id,
            f.vmi_flag,
            fp.start_date wip_start_date,
            decode(f.aggr_type, 42, 1019, 43, 1020, 1021) aggr_type,
            f.category_set_id, f.sr_category_id,
            sum(f.wip_qty),
            fnd_global.user_id, sysdate,
            sysdate, fnd_global.user_id, fnd_global.login_id,
            fnd_global.conc_program_id, fnd_global.conc_login_id,
            fnd_global.prog_appl_id, fnd_global.conc_request_id
        from
            msc_item_wips_f f,
            msc_phub_fiscal_periods_mv fp
        where f.plan_id = p_plan_id and f.plan_run_id = p_plan_run_id
            and f.aggr_type between 42 and 44
            and f.wip_start_date between fp.start_date and fp.end_date
        group by
            f.plan_id, f.plan_run_id,
            f.sr_instance_id, f.organization_id, f.inventory_item_id,
            f.vmi_flag,
            fp.start_date,
            decode(f.aggr_type, 42, 1019, 43, 1020, 1021),
            f.category_set_id, f.sr_category_id;
Line: 1147

       delete /*+ PARALLEL(mos) */ from msc_supplies_f
       where rownum<=p_commit_size and plan_id=p_plan_id and plan_run_id=nvl(p_plan_run_id,plan_run_id);
Line: 1153

       select count(1) into l_num from msc_supplies_f
       where plan_id=p_plan_id and plan_run_id=nvl(p_plan_run_id,plan_run_id);