DBA Data[Home] [Help]

APPS.MSC_POST_PRO SQL Statements

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

Line: 149

        SELECT NVL(summary_flag, 1), instance_code
        into   l_summary_flag, l_instance_code
        FROM   msc_apps_instances
        where  instance_id = p_instance_id;
Line: 177

	SELECT  a.oracle_username
      	INTO    l_msc_schema
      	FROM    FND_ORACLE_USERID a,
                FND_PRODUCT_INSTALLATIONS b
      	WHERE   a.oracle_id = b.oracle_id
      	AND     b.application_id = 724;
Line: 198

                  SELECT count(*)
                  INTO l_count
		  --bug 2495962: Change refrence from dba_xxx to all_xxx tables
                  --FROM DBA_TAB_PARTITIONS
                  FROM ALL_TAB_PARTITIONS
                  WHERE TABLE_NAME = l_table_name
                  AND   PARTITION_NAME = l_partition_name
                  AND   table_owner = l_msc_schema;
Line: 226

              UPDATE msc_apps_instances
              set    so_tbl_status = 2,
                     summary_flag = 2
              where  instance_id = p_instance_id;
Line: 246

                INSERT INTO MSC_TEMP_SUMM_SO (
                            organization_id,
                            inventory_item_id,
                            demand_class,
                            sd_date,
                            sd_qty,
                            plan_id,
                            sr_instance_id,
                            last_update_date,
                            last_updated_by,
		            creation_date,
                            created_by)
                (SELECT so.organization_id,
                        so.inventory_item_id,
                        so.demand_class,
                        so.SD_DATE,
                        sum(so.sd_qty),
                        -1,
                        p_instance_id,
                        l_sys_date,
                        l_user_id,
                        l_sys_date,
                        l_user_id
                 FROM
	         (SELECT
	       	         I.organization_id,
	       	         I.inventory_item_id,
	                 Decode(NVL(R.DEMAND_CLASS_ATP_FLAG,0),1, NVL(D.DEMAND_CLASS,
	                    NVL(TP.default_demand_class,'@@@')), '@@@') demand_class,
	                 DECODE(D.RESERVATION_TYPE,2,C2.next_date, trunc(D.REQUIREMENT_DATE)) SD_DATE,
	                 (D.PRIMARY_UOM_QUANTITY-
	                    GREATEST(NVL(D.RESERVATION_QUANTITY,0),
	                    D.COMPLETED_QUANTITY)) sd_qty
	          FROM
	                 MSC_SYSTEM_ITEMS I,
	                 MSC_ATP_RULES R,
	                 MSC_SALES_ORDERS D,
	                 MSC_CALENDAR_DATES C,
	                 MSC_CALENDAR_DATES C2,
	                 MSC_TRADING_PARTNERS TP
	          WHERE   I.ATP_FLAG = 'Y'
	          AND     I.ORGANIZATION_ID = TP.SR_TP_ID
	          AND     I.SR_INSTANCE_ID = TP.SR_INSTANCE_ID
	          AND     I.PLAN_ID = -1
	          AND     I.BOM_ITEM_TYPE <> 5
     	          AND     R.RULE_ID  = NVL(I.ATP_RULE_ID,  TP.default_atp_rule_id)
	          AND     R.SR_INSTANCE_ID = I.SR_INSTANCE_ID
	          AND     D.SR_INSTANCE_ID = I.SR_INSTANCE_ID
	          AND     D.INVENTORY_ITEM_ID = I.INVENTORY_ITEM_ID
	          AND 	 D.ORGANIZATION_ID = I.ORGANIZATION_ID
	          AND     D.DEMAND_SOURCE_TYPE <> DECODE(R.INCLUDE_SALES_ORDERS,2,2,-1)
	          AND     D.DEMAND_SOURCE_TYPE <>
	                               DECODE(R.INCLUDE_INTERNAL_ORDERS,2,8,-1)
	          AND     D.PRIMARY_UOM_QUANTITY >
	                           GREATEST(NVL(D.RESERVATION_QUANTITY,0),
	               	              D.COMPLETED_QUANTITY)
	          AND     (D.SUBINVENTORY IS NULL OR D.SUBINVENTORY IN
	                        (SELECT S.SUB_INVENTORY_CODE
	                         FROM   MSC_SUB_INVENTORIES S
	                         WHERE  S.ORGANIZATION_ID=D.ORGANIZATION_ID
	                         AND    S.PLAN_ID = I.PLAN_ID
	                         AND    S.SR_INSTANCE_ID = D.SR_INSTANCE_ID
	                         AND    S.INVENTORY_ATP_CODE =DECODE(R.DEFAULT_ATP_SOURCES,
	                       		            1, 1, NULL, 1, S.INVENTORY_ATP_CODE)
	                         AND    S.NETTING_TYPE =DECODE(R.DEFAULT_ATP_SOURCES,
	                      		            2, 1, S.NETTING_TYPE)))
	    		         AND         (D.RESERVATION_TYPE = 2
	                 	        OR D.PARENT_DEMAND_ID IS NULL
	                 	        OR (D.RESERVATION_TYPE = 3 AND
	                     		        ((R.INCLUDE_DISCRETE_WIP_RECEIPTS = 1) or
	                      		        (R.INCLUDE_NONSTD_WIP_RECEIPTS = 1))))
	          AND     C.PRIOR_SEQ_NUM >= DECODE(R.PAST_DUE_DEMAND_CUTOFF_FENCE,
	                         NULL, C.PRIOR_SEQ_NUM,
	          	        C2.next_seq_num - NVL(R.PAST_DUE_DEMAND_CUTOFF_FENCE,0))
	          AND     C.CALENDAR_CODE = TP.CALENDAR_CODE
	          AND     C.SR_INSTANCE_ID = TP.SR_INSTANCE_ID
	          AND     C.EXCEPTION_SET_ID = -1
	          AND     C.CALENDAR_DATE = TRUNC(D.REQUIREMENT_DATE)
	          AND     C2.CALENDAR_CODE = TP.calendar_code
	          AND     C2.EXCEPTION_SET_ID = TP.calendar_exception_set_id
	          AND     C2.SR_INSTANCE_ID = TP.SR_INSTANCE_ID
	          AND     C2.CALENDAR_DATE = TRUNC(l_sys_date)
	          AND     TP.SR_INSTANCE_ID = p_instance_id
	          AND     TP.PARTNER_TYPE   = 3
			       	         ) SO
                  GROUP BY so.inventory_item_id, so.organization_id, so.demand_class,
                           so.sd_date, -1, p_instance_id, l_sys_date, l_user_id);
Line: 340

		INSERT INTO MSC_TEMP_SUMM_SD (
                            organization_id,
                            inventory_item_id,
                            demand_class,
                            sd_date,
                            sd_qty,
                            plan_id,
                            sr_instance_id,
                            last_update_date,
                            last_updated_by,
		            creation_date,
                            created_by)
                (SELECT sd.organization_id,
                        sd.inventory_item_id,
                        sd.demand_class,
                        sd.SD_DATE,
                        sum(sd.sd_qty),
                        -1,
                        p_instance_id,
                        l_sys_date,
                        l_user_id,
                        l_sys_date,
                        l_user_id
                 FROM
		       (SELECT  I.organization_id,
		                DECODE(I2.ATP_FLAG, 'Y', I2.INVENTORY_ITEM_ID,
		                       I.INVENTORY_ITEM_ID) inventory_item_id,
		                Decode(NVL(R.DEMAND_CLASS_ATP_FLAG,0),1 , NVL(D.DEMAND_CLASS,
		                    NVL(TP.default_demand_class,'@@@')), '@@@') demand_class,
		                C.PRIOR_DATE SD_DATE, -- 2859130
		                -1* D.USING_REQUIREMENT_QUANTITY SD_QTY
		        FROM
		                MSC_SYSTEM_ITEMS I,
		                MSC_SYSTEM_ITEMS I2,
		                MSC_ATP_RULES R,
		                MSC_DEMANDS D,
		                MSC_CALENDAR_DATES C,
		                MSC_CALENDAR_DATES C2,
		                MSC_TRADING_PARTNERS TP
		        WHERE   I.ATP_FLAG = 'Y'
		        AND     I.ORGANIZATION_ID = TP.SR_TP_ID
		        AND     I.SR_INSTANCE_ID = TP.SR_INSTANCE_ID
		        AND     I.PLAN_ID = -1
		        AND     I.BOM_ITEM_TYPE <> 5
		        AND     I.PLAN_ID = I2.PLAN_ID
		        AND     I.SR_INSTANCE_ID = I2.SR_INSTANCE_ID
		        AND     I2.ORGANIZATION_ID = I.ORGANIZATION_ID
		        AND     I2.INVENTORY_ITEM_ID = NVL(I.PRODUCT_FAMILY_ID,
		                                                I.INVENTORY_ITEM_ID)
		        AND     R.RULE_ID  = NVL(I.ATP_RULE_ID ,TP.default_atp_rule_id)
		        AND     R.SR_INSTANCE_ID = I.SR_INSTANCE_ID
		        AND     D.PLAN_ID = I.PLAN_ID
		        AND     D.SR_INSTANCE_ID = I.SR_INSTANCE_ID
		        AND     D.INVENTORY_ITEM_ID =  I.INVENTORY_ITEM_ID
		        AND     D.ORGANIZATION_ID = I.ORGANIZATION_ID
		        AND     USING_REQUIREMENT_QUANTITY <> 0
		        AND     D.ORIGINATION_TYPE in (
		                   DECODE(R.INCLUDE_DISCRETE_WIP_DEMAND, 1, 3, -1),
		                   DECODE(R.INCLUDE_FLOW_SCHEDULE_DEMAND, 1, 25, -1),
		                   DECODE(R.INCLUDE_USER_DEFINED_DEMAND, 1, 42, -1),
		                   DECODE(R.INCLUDE_NONSTD_WIP_RECEIPTS, 1, 2, -1),
		                   DECODE(R.INCLUDE_REP_WIP_DEMAND, 1, 4, -1))
		        AND     C.CALENDAR_CODE = TP.calendar_code
		        AND     C.EXCEPTION_SET_ID = -1
		        AND     C.SR_INSTANCE_ID = TP.SR_INSTANCE_ID
		        AND     C.CALENDAR_DATE BETWEEN TRUNC(D.USING_ASSEMBLY_DEMAND_DATE)
		                        AND TRUNC(NVL(D.ASSEMBLY_DEMAND_COMP_DATE,
		                                   D.USING_ASSEMBLY_DEMAND_DATE))
		        AND     C.PRIOR_SEQ_NUM >= DECODE(R.PAST_DUE_DEMAND_CUTOFF_FENCE,
		                   NULL, C.PRIOR_SEQ_NUM,
		                   C2.next_seq_num - NVL(R.PAST_DUE_DEMAND_CUTOFF_FENCE,0))
		        AND     C2.CALENDAR_CODE = TP.calendar_code
		        AND     C2.EXCEPTION_SET_ID = TP.calendar_exception_set_id
		        AND     C2.SR_INSTANCE_ID = TP.SR_INSTANCE_ID
		        AND     C2.CALENDAR_DATE = TRUNC(l_sys_date)
		        AND     TP.SR_INSTANCE_ID = p_instance_id
		        AND     TP.PARTNER_TYPE   = 3
		   UNION ALL
		      SELECT
		              I.organization_id,
		              I.inventory_item_id,
		              Decode(NVL(R.DEMAND_CLASS_ATP_FLAG,0),1 ,
		                    NVL(DECODE(S.ORDER_TYPE, 5,
		                MSC_ATP_FUNC.Get_MPS_Demand_Class(S.SCHEDULE_DESIGNATOR_ID),
		                S.DEMAND_CLASS), NVL(TP.default_demand_class, '@@@')), '@@@')
		                demand_class,
		              C.NEXT_DATE SD_DATE, -- 2859130 remove trunc
		              Decode(order_type, -- 2859130 remove trunc
		                 30, Decode(Sign(S.Daily_rate * (C.Calendar_date -
		                 TRUNC(S.FIRST_UNIT_START_DATE))- S.qty_completed),
		                -1,S.Daily_rate*(C.Calendar_date - TRUNC(S.First_Unit_Start_date)+1)
		                           - S.qty_completed, S.Daily_rate),
		                           NVL(S.FIRM_QUANTITY,S.NEW_ORDER_QUANTITY) ) SD_QTY
		      FROM
		              MSC_SYSTEM_ITEMS I,
		              MSC_SYSTEM_ITEMS I2,
		              MSC_ATP_RULES R,
		              MSC_SUPPLIES S,
		              MSC_SUB_INVENTORIES MSI,
		              MSC_CALENDAR_DATES C,
		              MSC_CALENDAR_DATES C2,
		              MSC_TRADING_PARTNERS TP
		     WHERE   I.ATP_FLAG = 'Y'
		     AND     I.ORGANIZATION_ID = TP.SR_TP_ID
		     AND     I.SR_INSTANCE_ID = TP.SR_INSTANCE_ID
		     AND     I.PLAN_ID = -1
		     AND     I.PLAN_ID = I2.PLAN_ID
		     AND     I.ORGANIZATION_ID = I2.ORGANIZATION_ID
		     AND     I.SR_INSTANCE_ID = I2.SR_INSTANCE_ID
		     AND     NVL(I.PRODUCT_FAMILY_ID, I.INVENTORY_ITEM_ID) =
		                  I2.INVENTORY_ITEM_ID
		     AND     DECODE(I.PRODUCT_FAMILY_ID, NULL, 'N', I2.ATP_FLAG ) = 'N'
		     AND     R.RULE_ID  = NVL(I.ATP_RULE_ID, TP.default_atp_rule_id)
		     AND     R.SR_INSTANCE_ID = I.SR_INSTANCE_ID
		     AND     S.PLAN_ID = I.PLAN_ID
		     AND     S.SR_INSTANCE_ID = I.SR_INSTANCE_ID
		     AND     S.INVENTORY_ITEM_ID = I.INVENTORY_ITEM_ID
		     AND     S.ORGANIZATION_ID = I.ORGANIZATION_ID
                     -- 2859130 remove trunc
		     AND     Decode(S.order_type, 30, S.Daily_rate*
		                  (C.Calendar_date - TRUNC(S.First_Unit_Start_date) + 1) ,
		                  NVL(S.FIRM_QUANTITY,S.NEW_ORDER_QUANTITY)) >
		                  Decode(S.order_type, 30, S.qty_completed,0)
		     AND     (S.ORDER_TYPE IN (
		                   DECODE(R.INCLUDE_PURCHASE_ORDERS, 1, 1, -1),
		                   DECODE(R.INCLUDE_PURCHASE_ORDERS, 1, 8, -1), --1882898
		                   DECODE(R.INCLUDE_DISCRETE_WIP_RECEIPTS, 1, 3, -1),
		                   DECODE(R.INCLUDE_REP_WIP_RECEIPTS, 1, 30, -1),
		                   DECODE(R.INCLUDE_NONSTD_WIP_RECEIPTS, 1, 7, -1),
		                   DECODE(R.INCLUDE_NONSTD_WIP_RECEIPTS, 1, 15, -1),
		                   DECODE(R.INCLUDE_INTERORG_TRANSFERS, 1, 11, -1),
		                   DECODE(R.INCLUDE_INTERORG_TRANSFERS, 1, 12, -1),
		                   DECODE(R.INCLUDE_ONHAND_AVAILABLE, 1, 18, -1),
		                   DECODE(R.INCLUDE_INTERNAL_REQS, 1, 2, -1),
		                   DECODE(R.INCLUDE_SUPPLIER_REQS, 1, 2, -1),
		                   DECODE(R.INCLUDE_USER_DEFINED_SUPPLY, 1, 41, -1),
		                   DECODE(R.INCLUDE_FLOW_SCHEDULE_RECEIPTS, 1, 27, -1),
		                   DECODE(R.INCLUDE_FLOW_SCHEDULE_RECEIPTS, 1, 28, -1))
		               OR
		                   ((R.INCLUDE_REP_MPS = 1 OR R.INCLUDE_DISCRETE_MPS = 1) AND
		                   S.ORDER_TYPE = 5
		               AND exists (SELECT '1'
		                      FROM    MSC_DESIGNATORS
		                      WHERE   INVENTORY_ATP_FLAG = 1
		                      AND     DESIGNATOR_TYPE = 2
		                      AND     DESIGNATOR_ID = S.SCHEDULE_DESIGNATOR_ID)))
		    AND      C.CALENDAR_CODE = TP.calendar_code
		    AND      C.EXCEPTION_SET_ID = TP.calendar_exception_set_id
		    AND      C.SR_INSTANCE_ID = TP.SR_INSTANCE_ID
		    AND      C.CALENDAR_DATE BETWEEN TRUNC(NVL(S.FIRM_DATE,
		                       S.NEW_SCHEDULE_DATE))
		                   AND   TRUNC(NVL(S.LAST_UNIT_COMPLETION_DATE,
		                       NVL(S.FIRM_DATE,S.NEW_SCHEDULE_DATE)))
		    AND      DECODE(S.LAST_UNIT_COMPLETION_DATE,
		                    NULL, C.NEXT_SEQ_NUM, C.SEQ_NUM) IS NOT NULL
		    AND      C.NEXT_SEQ_NUM >= DECODE(S.ORDER_TYPE, 18, C.NEXT_SEQ_NUM,
		                  DECODE(R.PAST_DUE_SUPPLY_CUTOFF_FENCE,
		                  NULL, C.NEXT_SEQ_NUM,
		                  C2.next_seq_num - NVL(R.PAST_DUE_SUPPLY_CUTOFF_FENCE,0)))
		    AND      C.NEXT_DATE >= DECODE(S.ORDER_TYPE, 27, TRUNC(SYSDATE),
		                                        28, TRUNC(SYSDATE),
		                             C.NEXT_DATE)   -- to_date removed to avoid GSCC error
		    AND     MSI.plan_id (+) =  -1
		    AND     MSI.organization_id (+) = S.ORGANIZATION_ID
		    AND     MSI.sr_instance_id (+) =  S.sr_instance_id
		    AND     MSI.sub_inventory_code (+) = S.subinventory_code
		    AND     NVL(MSI.inventory_atp_code,1) <> 2
		    AND     C2.CALENDAR_CODE = TP.calendar_code
		    AND     C2.EXCEPTION_SET_ID = TP.calendar_exception_set_id
		    AND     C2.SR_INSTANCE_ID = TP.SR_INSTANCE_ID
		    AND     C2.CALENDAR_DATE = TRUNC(l_sys_date)
		    AND     TP.SR_INSTANCE_ID = p_instance_id
		    AND     TP.PARTNER_TYPE   = 3
		   ) SD
                 GROUP BY sd.inventory_item_id, sd.organization_id, sd.demand_class,
                           sd.sd_date, -1, p_instance_id, l_sys_date, l_user_id);
Line: 597

	--update the so_tbl_status to 1 so that user can do ATP
        BEGIN
           UPDATE msc_apps_instances
           set    so_tbl_status = 1,
                  summary_flag = 3
           where  instance_id = p_instance_id;
Line: 621

            UPDATE msc_apps_instances
            set    so_tbl_status = 1,
                    summary_flag = 1
            where  instance_id = p_instance_id;
Line: 734

            select  newp.plan_id, NVL(newp.copy_plan_id, -1),
                    DECODE(newp.plan_type, 4, 2,
                        DECODE(daily_material_constraints, 1, 1,
                            DECODE(daily_resource_constraints, 1, 1,
                                DECODE(weekly_material_constraints, 1, 1,
                                    DECODE(weekly_resource_constraints, 1, 1,
                                        DECODE(period_material_constraints, 1, 1,
                                            DECODE(period_resource_constraints, 1, 1, 2)
                                        )
                                    )
                                )
                            )
                        )
                    ),
                    -- IO Perf:3693983: Don't Launch ATP Post Plan Processes for IO Plans
                    newp.plan_type
            into    l_new_plan_id, l_new_cp_plan_id, l_optimized_plan, l_plan_type
            from    msc_plans newp
            where   newp.plan_id = p_plan_id;
Line: 773

        select  organization_id, sr_instance_id
        BULK COLLECT INTO l_organization_id, l_sr_instance_id
        from msc_plan_organizations
        WHERE plan_id=p_plan_id;
Line: 780

        UPDATE msc_system_items mst1
        SET (REPLENISH_TO_ORDER_FLAG,PICK_COMPONENTS_FLAG,ATP_RULE_ID,DEMAND_TIME_FENCE_DAYS) =(SELECT REPLENISH_TO_ORDER_FLAG,PICK_COMPONENTS_FLAG,ATP_RULE_ID,DEMAND_TIME_FENCE_DAYS
                    FROM msc_system_items mst2
                    WHERE mst2.sr_instance_id=mst1.sr_instance_id
                    AND mst2.organization_id=mst1.organization_id
                    AND mst2.INVENTORY_ITEM_ID=mst1.INVENTORY_ITEM_ID
                    AND mst2.plan_id=-1
                     )
        WHERE   plan_id=p_plan_id
        AND     mst1.ORGANIZATION_ID = l_organization_id(j)
        AND     mst1.SR_INSTANCE_ID = l_sr_instance_id(j)
        --populate replenish to order flag for option items as well.
        AND     mst1.bom_item_type  in (1,2,4,5)
        --bug 3713374: Missing brackets was making OR condition to be stand alone filtering criteria
        AND     (mst1.atp_flag <> 'N' OR  mst1.atp_components_flag <> 'N');
Line: 799

        Delete MSC_DEMANDS
        where origination_type = -100
        and plan_id = p_plan_id
        and ORGANIZATION_ID = l_organization_id(j)
        and sr_instance_id = l_sr_instance_id(j);
Line: 805

        msc_util.msc_log('LOAD_PLAN_SD: no of records deleted: '|| SQL%ROWCOUNT);
Line: 810

        INSERT INTO MSC_DEMANDS(
                    DEMAND_ID,
                    USING_REQUIREMENT_QUANTITY,
                    RESERVED_QUANTITY,
                    USING_ASSEMBLY_DEMAND_DATE,
                    DEMAND_TYPE,
                    DEMAND_SOURCE_TYPE,
                    ORIGINATION_TYPE,
                    USING_ASSEMBLY_ITEM_ID,
                    PLAN_ID,
                    ORGANIZATION_ID,
                    INVENTORY_ITEM_ID,
                    SALES_ORDER_LINE_ID,
                    SR_INSTANCE_ID,
                    LAST_UPDATE_DATE,
                    LAST_UPDATED_BY,
                    CREATION_DATE,
                    CREATED_BY,
                    DEMAND_CLASS,
                    REFRESH_NUMBER,
                    ORDER_NUMBER,
                    APPLIED,
                    STATUS,
                    CUSTOMER_ID,
                    SHIP_TO_SITE_ID,
                    RECORD_SOURCE,
                    ATP_SYNCHRONIZATION_FLAG,
                    DMD_SATISFIED_DATE,
                    DISPOSITION_ID,
                    LINK_TO_LINE_ID,
                    wip_supply_type,
                    ORIGINAL_ITEM_ID )
            (select
                    msc_demands_s.nextval,
                    RESERVED_QUANTITY,
                    0, --putting 0 in reserved qty
                    sysdate, --USING_ASSEMBLY_DEMAND_DATE,
                    DEMAND_TYPE,
                    DEMAND_SOURCE_TYPE,
                    -100, -- putting orgination_type as -100 so that planning UI will not pick it up.
                    USING_ASSEMBLY_ITEM_ID,
                    PLAN_ID,
                    ORGANIZATION_ID,
                    INVENTORY_ITEM_ID,
                    SALES_ORDER_LINE_ID,
                    SR_INSTANCE_ID,
                    LAST_UPDATE_DATE,
                    LAST_UPDATED_BY,
                    CREATION_DATE,
                    CREATED_BY,
                    DEMAND_CLASS,
                    REFRESH_NUMBER,
                    ORDER_NUMBER,
                    APPLIED,
                    STATUS,
                    CUSTOMER_ID,
                    SHIP_TO_SITE_ID,
                    RECORD_SOURCE,
                    ATP_SYNCHRONIZATION_FLAG,
                    DMD_SATISFIED_DATE,
                    DISPOSITION_ID,
                    LINK_TO_LINE_ID,
                    wip_supply_type,
                    ORIGINAL_ITEM_ID
                    from msc_demands
                    where plan_id = p_plan_id
                    and   reserved_quantity <> 0
                    and   organization_id = l_organization_id(j)
                    and   sr_instance_id  = l_sr_instance_id(j)
                    and   origination_type in (30,6)
                    );
Line: 882

         msc_util.msc_log('LOAD_PLAN_SD: no of records updated: '|| SQL%ROWCOUNT);
Line: 903

                select  plan_id,
                        DECODE(plan_type, 4, 2,
                            DECODE(daily_material_constraints, 1, 1,
                                DECODE(daily_resource_constraints, 1, 1,
                                    DECODE(weekly_material_constraints, 1, 1,
                                        DECODE(weekly_resource_constraints, 1, 1,
                                            DECODE(period_material_constraints, 1, 1,
                                                DECODE(period_resource_constraints, 1, 1, 2)
                                            )
                                        )
                                    )
                                )
                            )
                        )
                into    l_old_plan_id, l_old_optimized_plan
                from    msc_plans
                where   copy_plan_id = p_plan_id;
Line: 950

          select count(*)
          into l_is_cmro
          from msc_sales_orders so
          where demand_source_type = 100
          and organization_id=l_organization_id(j)
          and sr_instance_id = l_sr_instance_id(j);
Line: 965

           update msc_demands dem
           set demand_source_type = (select distinct demand_source_type
                                     from msc_sales_orders so
                                     where so.sales_order_number = dem.order_number
                                       and so.organization_id = dem.organization_id
                                       and so.sr_instance_id = dem.sr_instance_id
                                       and so.inventory_item_id = dem.inventory_item_id
                                     )
           where organization_id = l_organization_id(j)
           and sr_instance_id = l_sr_instance_id(j)
           and origination_type in (6,30)
           and plan_id = l_plan_to_use;
Line: 1127

        SELECT  NVL(SUMMARY_FLAG,1)
        into   l_summary_flag
        from   msc_apps_instances
        where  rownum = 1;
Line: 1140

        SELECT NVL(SUMMARY_FLAG,1), COMPILE_DESIGNATOR, trunc(plan_start_date)
        into   l_summary_flag, l_plan_name, l_plan_start_date
        from   msc_plans
        where  plan_id = l_plan_to_use;
Line: 1153

        SELECT  a.oracle_username
        INTO    l_msc_schema
        FROM    FND_ORACLE_USERID a,
                FND_PRODUCT_INSTALLATIONS b
        WHERE   a.oracle_id = b.oracle_id
        AND     b.application_id = 724;
Line: 1172

                SELECT  count(*)
                INTO    l_count
                --bug 2495962: Change refrence from dba_xxx to all_xxx tables
                --FROM DBA_TAB_PARTITIONS
                FROM    ALL_TAB_PARTITIONS
                WHERE   TABLE_NAME = l_table_name
                AND     PARTITION_NAME = l_partition_name
                AND     table_owner = l_msc_schema;
Line: 1197

            update msc_plans
            set    summary_flag = G_SF_FULL_SUMMARY_RUNNING -- for summary enhancement: ATP is up hereafter
            where  plan_id = l_plan_to_use;
Line: 1247

            MSC_POST_PRO.INSERT_SUPPLIER_DATA(l_plan_to_use,
                                              share_partition,
                                              l_applsys_schema,
                                              1,            -- Full summation
                                              l_sysdate);
Line: 1256

                update  msc_plans
                set     summary_flag = G_SF_SUMMARY_COMPLETED, -- For summary enhancement
                        latest_refresh_number = (SELECT apps_lrn
                                                 FROM   MSC_PLAN_REFRESHES
                                                 WHERE  plan_id = l_plan_to_use)
                where   plan_id = l_plan_to_use;
Line: 1275

                    update  msc_plans
                    set     summary_flag = G_SF_PREALLOC_COMPLETED
                    where   plan_id = l_plan_to_use;
Line: 1279

                    update  msc_plans
                    set     summary_flag = G_SF_SUMMARY_NOT_RUN
                    where   plan_id = l_plan_to_use;
Line: 1294

                msc_util.msc_debug('Update atp_synchronization_flag for 24x7 plan to support re-run after sync failure');
Line: 1296

                update  msc_demands
                set     atp_synchronization_flag = 0 -- null
                where  (plan_id, sr_instance_id, organization_id) IN
                       (select  mpo.plan_id, mpo.sr_instance_id, mpo.organization_id
                        from    msc_plan_organizations mpo
                        where   mpo.plan_id = l_old_plan)
                and     origination_type in (6,30);
Line: 1316

            update msc_plans
            set    summary_flag = 1
            where  plan_id = l_plan_to_use;
Line: 1380

        select  summary_flag,
                plan_completion_date,
                latest_refresh_number,
                trunc(plan_start_date),
        -- ATP4drp obtain plan_type info.
                plan_type
        into    l_summary_flag, l_plan_completion_date, l_last_refresh_number, l_plan_start_date, l_plan_type
        -- End ATP4drp
        from    msc_plans
        where   plan_id = p_plan_id;
Line: 1450

               SELECT  1
               INTO    l_time_phased
               FROM    msc_system_items i ,msc_plan_organizations po
               WHERE   po.plan_id = p_plan_id
               AND     i.aggregate_time_fence_date IS NOT NULL
               AND     i.plan_id = po.plan_id
               AND     i.organization_id = po.organization_id
               AND     i.sr_instance_id  = po.sr_instance_id
               AND     rownum = 1;
Line: 1472

        update msc_plans
        set    summary_flag = G_SF_NET_SUMMARY_RUNNING
        where  plan_id = p_plan_id;
Line: 1484

    SELECT  max(refresh_number)
    INTO    l_new_refresh_number
    FROM   (SELECT  refresh_number
            FROM    msc_demands
            WHERE   plan_id = p_plan_id

            UNION ALL

            SELECT  refresh_number
            FROM    msc_supplies
            WHERE   plan_id = p_plan_id

            UNION ALL

            SELECT  refresh_number
            FROM    msc_resource_requirements
            WHERE   plan_id = p_plan_id
           );
Line: 1514

        update  msc_plans
        set     summary_flag = G_SF_SUMMARY_COMPLETED,
                latest_refresh_number = l_new_refresh_number
        where   plan_id = p_plan_id;
Line: 1545

    MSC_POST_PRO.INSERT_SUPPLIER_DATA(p_plan_id,
                                      null,     -- p_share_partition ->  Not required for
                                      null,     -- p_applsys_schema  ->  incremental summation
                                      2,        -- Incremental summation
                                      l_sysdate,
                                      l_last_refresh_number,
                                      l_new_refresh_number);
Line: 1555

        update  msc_plans
        set     summary_flag = G_SF_SUMMARY_COMPLETED, -- For summary enhancement
                latest_refresh_number = l_new_refresh_number
        where   plan_id = p_plan_id;
Line: 1580

        update msc_plans
        set    summary_flag = G_SF_SUMMARY_COMPLETED
        where  plan_id = p_plan_id;
Line: 1654

PROCEDURE INSERT_SUPPLIER_DATA(p_plan_id         IN NUMBER,
                               p_share_partition IN varchar2,
                               p_applsys_schema  IN varchar2,
                               p_full_refresh    IN NUMBER, -- 1:Yes, 2:No
                               p_sys_date        IN DATE,          -- For summary enhancement
                               p_last_refresh_number    IN NUMBER, -- For summary enhancement
                               p_new_refresh_number     IN NUMBER) -- For summary enhancement
AS
    l_partition_name varchar2(30);
Line: 1679

            msc_util.msc_log('INSERT_SUPPLIER_DATA: ' || 'Share partition ');
Line: 1681

            msc_util.msc_log('INSERT_SUPPLIER_DATA: ' || 'Delete Data from msc_atp_summary_sup');
Line: 1682

            delete MSC_ATP_SUMMARY_SUP where plan_id = p_plan_id;
Line: 1685

        msc_util.msc_log('INSERT_SUPPLIER_DATA: ' || 'Loading complete summary in MSC_ATP_SUMMARY_SUP');
Line: 1688

        msc_util.msc_log('INSERT_SUPPLIER_DATA: ' || 'After loading complete summary in MSC_ATP_SUMMARY_SUP');
Line: 1694

        msc_util.msc_log('INSERT_SUPPLIER_DATA: ' || 'Loading net summary in MSC_ATP_SUMMARY_SUP');
Line: 1696

        msc_util.msc_log('INSERT_SUPPLIER_DATA: ' || 'After loading net summary in MSC_ATP_SUMMARY_SUP');
Line: 1701

END INSERT_SUPPLIER_DATA;
Line: 1715

     SELECT count(*)
     INTO   l_count
     FROM   msc_supplier_flex_fences
     WHERE  plan_id = p_plan_id
     AND    sr_instance_id = p_instance_id
     AND    organization_id = p_organization_id
     AND    inventory_item_id = p_inventory_item_id
     AND    supplier_id = p_supplier_id
     AND    supplier_site_id = p_supplier_site_id;
Line: 1756

        SELECT  decode(designator_type, 2, 1, 0),
                DECODE(plans.plan_type, 4, 2,
                    DECODE(daily_material_constraints, 1, 1,
                        DECODE(daily_resource_constraints, 1, 1,
                            DECODE(weekly_material_constraints, 1, 1,
                                DECODE(weekly_resource_constraints, 1, 1,
                                    DECODE(period_material_constraints, 1, 1,
                                        DECODE(period_resource_constraints, 1, 1, 2)
                                          )
                                      )
                                  )
                              )
                          )
                      ),
                DECODE(l_MSO_Batch_Flag, 'Y', DECODE(plans.plan_type, 4, 0,2,0,  -- filter out MPS plans
                    DECODE(daily_material_constraints, 1, 1,
                        DECODE(daily_resource_constraints, 1, 1,
                            DECODE(weekly_material_constraints, 1, 1,
                                DECODE(weekly_resource_constraints, 1, 1,
                                    DECODE(period_material_constraints, 1, 1,
                                        DECODE(period_resource_constraints, 1, 1, 0)
                                          )
                                      )
                                  )
                              )
                          )
                      ), 0)
        INTO    l_use_bor, l_optimized_plan, l_constraint_plan
        FROM    msc_designators desig,
                msc_plans plans
        WHERE   plans.plan_id = p_plan_id
        AND     desig.designator = plans.compile_designator
        AND     desig.sr_instance_id = plans.sr_instance_id
        AND     desig.organization_id = plans.organization_id;
Line: 1817

            msc_util.msc_log('LOAD_RESOURCES: ' || 'Delete Data from MSC_ATP_SUMMARY_RES');
Line: 1818

            DELETE MSC_ATP_SUMMARY_RES where plan_id = p_plan_id;
Line: 1829

                msc_util.msc_log('LOAD_RESOURCES: ' || 'Insert data into res table');
Line: 1833

                msc_util.msc_log('LOAD_RESOURCES: ' || 'After inserting into MSC_ATP_SUMMARY_RES');
Line: 1837

                msc_util.msc_log('LOAD_RESOURCES: ' || 'Insert data into res table');
Line: 1841

                msc_util.msc_log('LOAD_RESOURCES: ' || 'After inserting into MSC_ATP_SUMMARY_RES');
Line: 1850

                msc_util.msc_log('LOAD_RESOURCES: ' || 'Insert data into res table');
Line: 1854

                msc_util.msc_log('LOAD_RESOURCES: ' || 'After inserting into MSC_ATP_SUMMARY_RES');
Line: 1858

                msc_util.msc_log('LOAD_RESOURCES: ' || 'Insert data into res table');
Line: 1862

                msc_util.msc_log('LOAD_RESOURCES: ' || 'After inserting into MSC_ATP_SUMMARY_RES');
Line: 2023

           SELECT  D.organization_id,
                   D.inventory_item_id,
                   Decode(NVL(R.DEMAND_CLASS_ATP_FLAG,0),1 ,
                      NVL(D.DEMAND_CLASS,'@@@'), '@@@') demand_class ,
                   ---bug 2287148: move reservations to  sysdate
                   DECODE(D.RESERVATION_TYPE,2,l_sys_next_date,trunc(D.REQUIREMENT_DATE)) SD_DATE,
                   SUM ( (D.PRIMARY_UOM_QUANTITY -
                         GREATEST(NVL(D.RESERVATION_QUANTITY,0),
                          D.COMPLETED_QUANTITY)) ) sd_qty
             FROM
                   MSC_SALES_ORDERS D,
                   MSC_ATP_RULES R,
                   MSC_SYSTEM_ITEMS I
            WHERE  D.SR_INSTANCE_ID = l_instance_id
              AND  I.REFRESH_NUMBER > l_refresh_number -- get all new flag items
              AND  I.ORGANIZATION_ID = l_organization_id
              AND  D.SR_INSTANCE_ID = I.SR_INSTANCE_ID
              AND  D.INVENTORY_ITEM_ID = I.INVENTORY_ITEM_ID
              AND  D.ORGANIZATION_ID = I.ORGANIZATION_ID
              AND  R.RULE_ID (+) = NVL(I.ATP_RULE_ID, l_DEFAULT_ATP_RULE_ID)
              AND  R.SR_INSTANCE_ID (+)= I.SR_INSTANCE_ID
              AND  D.DEMAND_SOURCE_TYPE <> DECODE(R.INCLUDE_SALES_ORDERS,2,2,-1)
              AND  D.DEMAND_SOURCE_TYPE <> DECODE(R.INCLUDE_INTERNAL_ORDERS,2,8,-1)
              AND  D.PRIMARY_UOM_QUANTITY > GREATEST(NVL(D.RESERVATION_QUANTITY,0),
                                      D.COMPLETED_QUANTITY)
              AND  I.NEW_ATP_FLAG = 'Y' -- New flag to indicate new ATPable item.
              AND  I.plan_id = -1
              AND  ((D.PARENT_DEMAND_ID IS NOT NULL) OR -- new sales order and
                     -- equivalently D.reservation_type = 1
                     -- the demand for which the sales_order has been pegged
                    (D.RESERVATION_TYPE = 2 AND D.DEMAND_SOURCE_LINE IS NOT NULL))
              AND  (D.SUBINVENTORY IS NULL OR D.SUBINVENTORY IN
                      (SELECT S.SUB_INVENTORY_CODE
                         FROM MSC_SUB_INVENTORIES S
                        WHERE S.ORGANIZATION_ID=D.ORGANIZATION_ID
                          AND S.PLAN_ID = I.PLAN_ID
                          AND S.SR_INSTANCE_ID = D.SR_INSTANCE_ID
                          AND S.INVENTORY_ATP_CODE =DECODE(R.DEFAULT_ATP_SOURCES,
                                       1, 1, NULL, 1, S.INVENTORY_ATP_CODE)
                          AND S.NETTING_TYPE =DECODE(R.DEFAULT_ATP_SOURCES,
                                               2, 1, S.NETTING_TYPE)))
              AND (D.RESERVATION_TYPE = 2
                   OR D.PARENT_DEMAND_ID IS NULL
                   OR (D.RESERVATION_TYPE = 3 AND
                       ((R.INCLUDE_DISCRETE_WIP_RECEIPTS = 1) or
                       (R.INCLUDE_NONSTD_WIP_RECEIPTS = 1))))
              AND  EXISTS
                      (SELECT 1
                         FROM msc_calendar_dates c
                        WHERE C.PRIOR_SEQ_NUM >=
                              DECODE(R.PAST_DUE_DEMAND_CUTOFF_FENCE,
                               NULL, C.PRIOR_SEQ_NUM,
                               MSC_ATP_FUNC.NEXT_WORK_DAY_SEQNUM
                                   (D.ORGANIZATION_ID, P_INSTANCE_ID, l_sysdate)
                                - NVL(R.PAST_DUE_DEMAND_CUTOFF_FENCE,0))
                          AND C.CALENDAR_CODE = l_CALENDAR_CODE
                          AND C.SR_INSTANCE_ID = p_instance_id
                          AND C.EXCEPTION_SET_ID = l_calendar_exception_set_id
                          AND C.CALENDAR_DATE = TRUNC(D.REQUIREMENT_DATE)
                      )
         GROUP BY  D.organization_id,
                   D.inventory_item_id,
                   Decode(NVL(R.DEMAND_CLASS_ATP_FLAG,0),1 ,
                      NVL(D.DEMAND_CLASS,'@@@'), '@@@') ,
                   -- rajjain 02/06/2003 Bug 2782882
                   DECODE(D.RESERVATION_TYPE,2,l_sys_next_date,trunc(D.REQUIREMENT_DATE));
Line: 2097

            SELECT
                   D.organization_id,
                   D.inventory_item_id,
                   Decode(NVL(R.DEMAND_CLASS_ATP_FLAG,0),1 ,
                      NVL(D.DEMAND_CLASS,'@@@'), '@@@') demand_class ,
                   trunc(D.REQUIREMENT_DATE) SD_DATE,
                   sum(d.old_RESERVATION_QUANTITY) sd_qty
            FROM
                   MSC_SALES_ORDERS D,
                   MSC_ATP_RULES R,
                   MSC_SYSTEM_ITEMS I
            WHERE  D.SR_INSTANCE_ID = l_instance_id
              AND  D.REFRESH_NUMBER > l_refresh_number
              AND  I.ORGANIZATION_ID = l_organization_id
              AND  D.SR_INSTANCE_ID = I.SR_INSTANCE_ID
              AND  D.INVENTORY_ITEM_ID = I.INVENTORY_ITEM_ID
              AND  D.ORGANIZATION_ID = I.ORGANIZATION_ID
              AND  I.plan_id = -1
              AND  I.ATP_FLAG = 'Y'             -- Get ATP'able items which have
              AND  R.RULE_ID (+) = NVL(I.ATP_RULE_ID, l_DEFAULT_ATP_RULE_ID)
              AND  R.SR_INSTANCE_ID (+)= I.SR_INSTANCE_ID
              AND  D.DEMAND_SOURCE_TYPE <> DECODE(R.INCLUDE_SALES_ORDERS,2,2,-1)
              AND  D.DEMAND_SOURCE_TYPE <> DECODE(R.INCLUDE_INTERNAL_ORDERS,2,8,-1)
              AND (D.RESERVATION_TYPE=1 and reservation_quantity=0 and old_reservation_quantity <>0)
              AND  D.PRIMARY_UOM_QUANTITY > GREATEST(NVL(D.RESERVATION_QUANTITY,0),
                                      NVL(D.COMPLETED_QUANTITY,0))
              AND  (D.SUBINVENTORY IS NULL OR D.SUBINVENTORY IN
                      (SELECT S.SUB_INVENTORY_CODE
                         FROM MSC_SUB_INVENTORIES S
                        WHERE S.ORGANIZATION_ID=D.ORGANIZATION_ID
                          AND S.PLAN_ID = I.PLAN_ID
                          AND S.SR_INSTANCE_ID = D.SR_INSTANCE_ID
                          AND S.INVENTORY_ATP_CODE =DECODE(R.DEFAULT_ATP_SOURCES,
                                       1, 1, NULL, 1, S.INVENTORY_ATP_CODE)
                          AND S.NETTING_TYPE =DECODE(R.DEFAULT_ATP_SOURCES,
                                               2, 1, S.NETTING_TYPE)))
              AND  EXISTS
                      (SELECT 1
                         FROM msc_calendar_dates c
                        WHERE C.PRIOR_SEQ_NUM >=
                              DECODE(R.PAST_DUE_DEMAND_CUTOFF_FENCE,
                               NULL, C.PRIOR_SEQ_NUM,
                               MSC_ATP_FUNC.NEXT_WORK_DAY_SEQNUM(D.ORGANIZATION_ID,
                               P_INSTANCE_ID,
                               l_sysdate) - NVL(R.PAST_DUE_DEMAND_CUTOFF_FENCE,0))
                          AND C.CALENDAR_CODE = l_CALENDAR_CODE
                          AND C.SR_INSTANCE_ID = p_instance_id
                          AND C.EXCEPTION_SET_ID = l_calendar_exception_set_id
                          AND C.CALENDAR_DATE = TRUNC(D.REQUIREMENT_DATE)
                      )
         GROUP BY  D.organization_id,
                   D.inventory_item_id,
                   Decode(NVL(R.DEMAND_CLASS_ATP_FLAG,0),1 ,
                      NVL(D.DEMAND_CLASS,'@@@'), '@@@') ,
                   trunc(D.REQUIREMENT_DATE);
Line: 2160

SELECT
            D.organization_id,
            D.inventory_item_id,
            NVL(D.DEMAND_CLASS,'@@@') demand_class ,
            trunc(d.requirement_date) SD_DATE,
            sum(nvl(d.old_primary_uom_quantity, 0) - d.primary_uom_quantity) SD_QTY
                   -- QUESTION ? Does the above SUM actually result in a DELTA??
             FROM
                  msc_sales_orders d
             WHERE
             d.reservation_type =2
             and d.refresh_number > l_refresh_number
             and d.organization_id = l_organization_id
             and d.sr_instance_id =l_instance_id
             GROUP BY
             D.organization_id,
             D.inventory_item_id,
             NVL(D.DEMAND_CLASS,'@@@'),
             trunc(d.requirement_date);
Line: 2186

           SELECT  D.organization_id,
                   D.inventory_item_id,
                   Decode(NVL(R.DEMAND_CLASS_ATP_FLAG,0),1 ,
                      NVL(D.DEMAND_CLASS,'@@@'), '@@@') demand_class ,
                   ---bug 2287148: move reservations to  sysdate
                   DECODE(D.RESERVATION_TYPE,2,l_sys_next_date, trunc(D.REQUIREMENT_DATE)) SD_DATE,
                   sum(d.primary_uom_quantity -nvl(d.old_primary_uom_quantity, 0)) sd_qty
                   --SUM ( (D.PRIMARY_UOM_QUANTITY -
                         --GREATEST(NVL(D.RESERVATION_QUANTITY,0),
                            --NVL(D.COMPLETED_QUANTITY,0))) ) sd_qty
                   -- QUESTION ? Does the above SUM actually result in a DELTA??
             FROM
                   MSC_SALES_ORDERS D,
                   MSC_ATP_RULES R,
                   MSC_SYSTEM_ITEMS I
            WHERE  D.SR_INSTANCE_ID = l_instance_id
              AND  D.REFRESH_NUMBER > l_refresh_number
              AND  I.ORGANIZATION_ID = l_organization_id
              AND  D.SR_INSTANCE_ID = I.SR_INSTANCE_ID
              AND  D.INVENTORY_ITEM_ID = I.INVENTORY_ITEM_ID
              AND  D.ORGANIZATION_ID = I.ORGANIZATION_ID
              AND  I.plan_id = -1
              AND  I.ATP_FLAG = 'Y'             -- Get ATP'able items which have
              AND  R.RULE_ID (+) = NVL(I.ATP_RULE_ID, l_DEFAULT_ATP_RULE_ID)
              AND  R.SR_INSTANCE_ID (+)= I.SR_INSTANCE_ID
              AND  D.DEMAND_SOURCE_TYPE <> DECODE(R.INCLUDE_SALES_ORDERS,2,2,-1)
              AND  D.DEMAND_SOURCE_TYPE <> DECODE(R.INCLUDE_INTERNAL_ORDERS,2,8,-1)
              AND  D.PRIMARY_UOM_QUANTITY > GREATEST(NVL(D.RESERVATION_QUANTITY,0),
                                      NVL(D.COMPLETED_QUANTITY,0))
              --AND  D.DEMAND_SOURCE_LINE is NULL -- new inventory reservations.
              AND  D.RESERVATION_TYPE <> 1      -- Not a Sales Order item.
              AND  (D.SUBINVENTORY IS NULL OR D.SUBINVENTORY IN
                      (SELECT S.SUB_INVENTORY_CODE
                         FROM MSC_SUB_INVENTORIES S
                        WHERE S.ORGANIZATION_ID=D.ORGANIZATION_ID
                          AND S.PLAN_ID = I.PLAN_ID
                          AND S.SR_INSTANCE_ID = D.SR_INSTANCE_ID
                          AND S.INVENTORY_ATP_CODE =DECODE(R.DEFAULT_ATP_SOURCES,
                                       1, 1, NULL, 1, S.INVENTORY_ATP_CODE)
                          AND S.NETTING_TYPE =DECODE(R.DEFAULT_ATP_SOURCES,
                                               2, 1, S.NETTING_TYPE)))
              AND (D.RESERVATION_TYPE = 2
                   OR D.PARENT_DEMAND_ID IS NULL
                   OR (D.RESERVATION_TYPE = 3 AND
                       ((R.INCLUDE_DISCRETE_WIP_RECEIPTS = 1) or
                       (R.INCLUDE_NONSTD_WIP_RECEIPTS = 1))))
              AND  EXISTS
                      (SELECT 1
                         FROM msc_calendar_dates c
                        WHERE C.PRIOR_SEQ_NUM >=
                              DECODE(R.PAST_DUE_DEMAND_CUTOFF_FENCE,
                               NULL, C.PRIOR_SEQ_NUM,
                               MSC_ATP_FUNC.NEXT_WORK_DAY_SEQNUM(D.ORGANIZATION_ID,
                               P_INSTANCE_ID,
                               l_sysdate) - NVL(R.PAST_DUE_DEMAND_CUTOFF_FENCE,0))
                          AND C.CALENDAR_CODE = l_CALENDAR_CODE
                          AND C.SR_INSTANCE_ID = p_instance_id
                          AND C.EXCEPTION_SET_ID = l_calendar_exception_set_id
                          AND C.CALENDAR_DATE = TRUNC(D.REQUIREMENT_DATE)
                      )
         GROUP BY  D.organization_id,
                   D.inventory_item_id,
                   Decode(NVL(R.DEMAND_CLASS_ATP_FLAG,0),1 ,
                      NVL(D.DEMAND_CLASS,'@@@'), '@@@') ,
                   -- rajjain 02/06/2003 Bug 2782882
                   DECODE(D.RESERVATION_TYPE,2,l_sys_next_date, trunc(D.REQUIREMENT_DATE))
         UNION ALL
           SELECT  D.organization_id,
                   D.inventory_item_id,
                   Decode(NVL(R.DEMAND_CLASS_ATP_FLAG,0),1 ,
                      NVL(D.DEMAND_CLASS,'@@@'), '@@@') demand_class ,
                   ---bug 2287148: move reservations to  sysdate
                   -- bug 5357370: since reservation_type 1 is only selected when it is shipped,  we need to either use sysdate if we had reservation or use oldrequirement date if we did not have reservation
                   decode(NVL(D.old_reservation_quantity, 0), 0, trunc(nvl(D.old_requirement_date, D.requirement_date)), l_sys_next_date) SD_DATE,
                   -- DECODE(D.RESERVATION_TYPE,2,l_sys_next_date,trunc(D.old_REQUIREMENT_DATE)) SD_DATE,
                   --5125969 In cases of reservation type 1 and some complete qty
                    --we want to substract that from total qty
                   SUM(DECODE(D.RESERVATION_TYPE,1, -1*D.COMPLETED_QUANTITY,
                                                    -1*(NVL(D.old_PRIMARY_UOM_QUANTITY,0) -
                         GREATEST(NVL(D.old_RESERVATION_QUANTITY,0),
                            NVL(D.old_COMPLETED_QUANTITY,0))))) sd_qty
                   -- QUESTION ? Does the above SUM actually result in a DELTA??
                   -- ANSWER : We are subtratcting the sum of the old quantities.
             FROM
                   MSC_SALES_ORDERS D,
                   MSC_ATP_RULES R,
                   MSC_SYSTEM_ITEMS I
            WHERE  D.SR_INSTANCE_ID = l_instance_id
              AND  D.REFRESH_NUMBER > l_refresh_number
              AND  I.ORGANIZATION_ID = l_organization_id
              AND  D.SR_INSTANCE_ID = I.SR_INSTANCE_ID
              AND  D.INVENTORY_ITEM_ID = I.INVENTORY_ITEM_ID
              AND  D.ORGANIZATION_ID = I.ORGANIZATION_ID
              AND  I.plan_id = -1
              AND  I.ATP_FLAG = 'Y'             -- Get ATP'able items which have
              AND  R.RULE_ID (+) = NVL(I.ATP_RULE_ID, l_DEFAULT_ATP_RULE_ID)
              AND  R.SR_INSTANCE_ID (+)= I.SR_INSTANCE_ID
              AND  D.DEMAND_SOURCE_TYPE <> DECODE(R.INCLUDE_SALES_ORDERS,2,2,-1)
              AND  D.DEMAND_SOURCE_TYPE <> DECODE(R.INCLUDE_INTERNAL_ORDERS,2,8,-1)
              --5125969 Also consider rows where completed_qty is not 0
              AND  (D.OLD_PRIMARY_UOM_QUANTITY > GREATEST(NVL(D.OLD_RESERVATION_QUANTITY,0),
                                      NVL(D.OLD_COMPLETED_QUANTITY,0))
                                      OR ((NVL(D.COMPLETED_QUANTITY,0) <> 0)AND D.OLD_PRIMARY_UOM_QUANTITY-NVL(D.OLD_COMPLETED_QUANTITY,0)>0))
             --5125969 Include reservation type 1 when complete qty is not 0
              AND  ((D.DEMAND_SOURCE_LINE is NULL -- new inventory reservations.
                    AND
                    D.RESERVATION_TYPE <> 1)      -- Not a Sales Order item.
                    OR (D.RESERVATION_TYPE = 1 AND NVL(D.COMPLETED_QUANTITY,0) <> 0))

              AND  (D.SUBINVENTORY IS NULL OR D.SUBINVENTORY IN
                      (SELECT S.SUB_INVENTORY_CODE
                         FROM MSC_SUB_INVENTORIES S
                        WHERE S.ORGANIZATION_ID=D.ORGANIZATION_ID
                          AND S.PLAN_ID = I.PLAN_ID
                          AND S.SR_INSTANCE_ID = D.SR_INSTANCE_ID
                          AND S.INVENTORY_ATP_CODE =DECODE(R.DEFAULT_ATP_SOURCES,
                                       1, 1, NULL, 1, S.INVENTORY_ATP_CODE)
                          AND S.NETTING_TYPE =DECODE(R.DEFAULT_ATP_SOURCES,
                                               2, 1, S.NETTING_TYPE)))
              AND (D.RESERVATION_TYPE = 2
                   OR D.PARENT_DEMAND_ID IS NULL
                   OR (D.RESERVATION_TYPE = 3 AND
                       ((R.INCLUDE_DISCRETE_WIP_RECEIPTS = 1) or
                       (R.INCLUDE_NONSTD_WIP_RECEIPTS = 1))))
              AND  EXISTS
                      (SELECT 1
                         FROM msc_calendar_dates c
                        WHERE C.PRIOR_SEQ_NUM >=
                              DECODE(R.PAST_DUE_DEMAND_CUTOFF_FENCE,
                               NULL, C.PRIOR_SEQ_NUM,
                               MSC_ATP_FUNC.NEXT_WORK_DAY_SEQNUM(D.ORGANIZATION_ID,
                               P_INSTANCE_ID,
                               l_sysdate) - NVL(R.PAST_DUE_DEMAND_CUTOFF_FENCE,0))
                          AND C.CALENDAR_CODE = l_CALENDAR_CODE
                          AND C.SR_INSTANCE_ID = p_instance_id
                          AND C.EXCEPTION_SET_ID = l_calendar_exception_set_id
                          AND C.CALENDAR_DATE = TRUNC(D.old_REQUIREMENT_DATE)
                      )
         GROUP BY  D.organization_id,
                   D.inventory_item_id,
                   Decode(NVL(R.DEMAND_CLASS_ATP_FLAG,0),1 ,
                      NVL(D.DEMAND_CLASS,'@@@'), '@@@') ,
                   -- rajjain 02/06/2003 Bug 2782882
                   decode(NVL(D.old_reservation_quantity, 0), 0, trunc(nvl(D.old_requirement_date, D.requirement_date)), l_sys_next_date);
Line: 2360

  SELECT NVL(summary_flag, 1), NVL(summary_refresh_number,0),apps_lrn  ---LCID
  INTO   l_summary_flag,l_refresh_number,l_apps_lrn	---bug3049003
  from   msc_apps_instances
  where  instance_id = p_instance_id;
Line: 2377

/*  SELECT  sr_tp_id
  BULK  COLLECT INTO l_org_ids
  FROM    msc_trading_partners
  WHERE    sr_instance_id = p_instance_id and partner_type = 3;*/
Line: 2382

  SELECT  ORGANIZATION_ID                 ---bug3049003
  BULK  COLLECT INTO l_org_ids
  FROM    msc_instance_orgs
  WHERE   sr_instance_id = p_instance_id
  and     org_lrn=l_apps_lrn
  and     enabled_flag=1;
Line: 2409

          SELECT  cal.next_date
          INTO    l_sys_next_date
          FROM    msc_calendar_dates  cal
          WHERE   cal.exception_set_id = l_calendar_exception_set_id
          AND     cal.calendar_code = l_calendar_code
          AND     cal.calendar_date = TRUNC(l_sysdate)
          AND     cal.sr_instance_id = p_instance_id ;
Line: 2449

              INSERT INTO MSC_ATP_SUMMARY_SO
                          (plan_id,
                          sr_instance_id,
                          organization_id,
                          inventory_item_id,
                          demand_class,
                          sd_date,
                          sd_qty,
                          last_update_date,
                          last_updated_by,
                          creation_date,
                          created_by)
                  VALUES (-1, p_instance_id, l_organization_id,
                           l_inventory_item_id, l_demand_class, trunc(l_sd_date),
                           l_sd_qty, l_sysdate, l_user_id ,
                           l_sysdate, l_user_id
                         );
Line: 2471

                UPDATE MSC_ATP_SUMMARY_SO
                   SET sd_qty = sd_qty + l_sd_qty,   -- The value is now a DELTA
                       last_update_date = l_sysdate,
                       last_updated_by = l_user_id
                 WHERE plan_id = -1
                   AND sr_instance_id = p_instance_id
                   AND organization_id = l_organization_id
                   AND inventory_item_id = l_inventory_item_id
                   AND demand_class = l_demand_class
                   AND trunc(sd_date) = trunc(l_sd_date);
Line: 2518

         UPDATE MSC_ATP_SUMMARY_SO
              SET sd_qty = sd_qty + l_sd_qty,   -- APPLY THE DELTA
                  last_update_date = l_sysdate,
                  last_updated_by = l_user_id
            WHERE plan_id = -1
              AND sr_instance_id = p_instance_id
              AND organization_id = l_organization_id
              AND inventory_item_id = l_inventory_item_id
              AND demand_class = l_demand_class
              AND trunc(sd_date) = trunc(l_sd_date);
Line: 2530

                    INSERT INTO MSC_ATP_SUMMARY_SO
                            (plan_id,
                             sr_instance_id,
                             organization_id,
                             inventory_item_id,
                             demand_class,
                             sd_date,
                             sd_qty,
                             last_update_date,
                             last_updated_by,
                             creation_date,
                             created_by)
                    VALUES ( -1,
                             p_instance_id,
                             l_organization_id,
                             l_inventory_item_id,
                             l_demand_class,
                             trunc(l_sd_date),
                             l_sd_qty,
                             l_sysdate,
                             l_user_id ,
                             l_sysdate,
                             l_user_id
                           );
Line: 2560

                      update /*+ INDEX(msc_atp_summary_so MSC_ATP_SUMMARY_SO_U1) */ msc_atp_summary_so
                      set sd_qty = (sd_qty + l_sd_qty),
                          last_update_date = l_sysdate,
                          last_updated_by = l_user_id
                      where inventory_item_id = l_inventory_item_id
                      and sr_instance_id = p_instance_id
                      and organization_id = l_organization_id
                      and sd_date = trunc(l_sd_date)
                      and demand_class = l_demand_class ;
Line: 2573

         UPDATE MSC_ATP_SUMMARY_SO
              SET sd_qty = sd_qty - l_sd_qty,   -- APPLY THE DELTA
                  last_update_date = l_sysdate,
                  last_updated_by = l_user_id
            WHERE plan_id = -1
              AND sr_instance_id = p_instance_id
              AND organization_id = l_organization_id
              AND inventory_item_id = l_inventory_item_id
              AND demand_class = l_demand_class
              AND trunc(sd_date) = trunc(l_sys_next_date);
Line: 2585

                    INSERT INTO MSC_ATP_SUMMARY_SO
                            (plan_id,
                             sr_instance_id,
                             organization_id,
                             inventory_item_id,
                             demand_class,
                             sd_date,
                             sd_qty,
                             last_update_date,
                             last_updated_by,
                             creation_date,
                             created_by)
                    VALUES ( -1,
                             p_instance_id,
                             l_organization_id,
                             l_inventory_item_id,
                             l_demand_class,
                             trunc(l_sys_next_date),
                             - l_sd_qty,
                             l_sysdate,
                             l_user_id ,
                             l_sysdate,
                             l_user_id
                           );
Line: 2615

                      update /*+ INDEX(msc_atp_summary_so MSC_ATP_SUMMARY_SO_U1) */ msc_atp_summary_so
                      set sd_qty = (sd_qty - l_sd_qty),
                          last_update_date = l_sysdate,
                          last_updated_by = l_user_id
                      where inventory_item_id = l_inventory_item_id
                      and sr_instance_id = p_instance_id
                      and organization_id = l_organization_id
                      and sd_date = trunc(l_sys_next_date)
                      and demand_class = l_demand_class ;
Line: 2659

         UPDATE MSC_ATP_SUMMARY_SO
              SET sd_qty = sd_qty + l_sd_qty,   -- APPLY THE DELTA
                  last_update_date = l_sysdate,
                  last_updated_by = l_user_id
            WHERE plan_id = -1
              AND sr_instance_id = p_instance_id
              AND organization_id = l_organization_id
              AND inventory_item_id = l_inventory_item_id
              AND demand_class = l_demand_class
              AND trunc(sd_date) = trunc(l_sd_date);
Line: 2671

                    INSERT INTO MSC_ATP_SUMMARY_SO
                            (plan_id,
                             sr_instance_id,
                             organization_id,
                             inventory_item_id,
                             demand_class,
                             sd_date,
                             sd_qty,
                             last_update_date,
                             last_updated_by,
                             creation_date,
                             created_by)
                    VALUES ( -1,
                             p_instance_id,
                             l_organization_id,
                             l_inventory_item_id,
                             l_demand_class,
                             trunc(l_sd_date),
                             l_sd_qty,
                             l_sysdate,
                             l_user_id ,
                             l_sysdate,
                             l_user_id
                           );
Line: 2701

                      update /*+ INDEX(msc_atp_summary_so MSC_ATP_SUMMARY_SO_U1) */ msc_atp_summary_so
                      set sd_qty = (sd_qty + l_sd_qty),
                          last_update_date = l_sysdate,
                          last_updated_by = l_user_id
                      where inventory_item_id = l_inventory_item_id
                      and sr_instance_id = p_instance_id
                      and organization_id = l_organization_id
                      and sd_date = trunc(l_sd_date)
                      and demand_class = l_demand_class ;
Line: 2749

           UPDATE MSC_ATP_SUMMARY_SO
              SET sd_qty = sd_qty + l_sd_qty,   -- APPLY THE DELTA
                  last_update_date = l_sysdate,
                  last_updated_by = l_user_id
            WHERE plan_id = -1
              AND sr_instance_id = p_instance_id
              AND organization_id = l_organization_id
              AND inventory_item_id = l_inventory_item_id
              AND demand_class = l_demand_class
              AND trunc(sd_date) = trunc(l_sd_date);
Line: 2766

                INSERT INTO MSC_ATP_SUMMARY_SO
                            (plan_id,
                             sr_instance_id,
                             organization_id,
                             inventory_item_id,
                             demand_class,
                             sd_date,
                             sd_qty,
                             last_update_date,
                             last_updated_by,
                             creation_date,
                             created_by)
                    VALUES (-1, p_instance_id, l_organization_id,
                             l_inventory_item_id, l_demand_class, trunc(l_sd_date),
                             l_sd_qty, l_sysdate, l_user_id ,
                             l_sysdate, l_user_id
                           );
Line: 2789

                 UPDATE MSC_ATP_SUMMARY_SO
                    SET sd_qty = sd_qty + l_sd_qty,   -- The value is a DELTA
                        last_update_date = l_sysdate,
                        last_updated_by = l_user_id
                  WHERE plan_id = -1
                    AND sr_instance_id = p_instance_id
                    AND organization_id = l_organization_id
                    AND inventory_item_id = l_inventory_item_id
                    AND demand_class = l_demand_class
                    AND trunc(sd_date) = trunc(l_sd_date);
Line: 2824

          update msc_apps_instances
          set summary_flag = 1
          where instance_id = p_instance_id;
Line: 2878

   SELECT inventory_item_id, demand_class, SD_DATE, sum(sd_qty) SD_QTY
   FROM
   ((SELECT
           --- bug 2162571: Use Pf's id if doing PF based ATP
           DECODE(I2.ATP_FLAG, 'Y', I2.INVENTORY_ITEM_ID,
                                                    I.INVENTORY_ITEM_ID) inventory_item_id,
           Decode(NVL(R.DEMAND_CLASS_ATP_FLAG,0),1 ,  NVL(D.DEMAND_CLASS,
                 NVL(l_default_demand_class,'@@@')), '@@@') demand_class,
           C.PRIOR_DATE SD_DATE,
           -1* D.USING_REQUIREMENT_QUANTITY SD_QTY
                     --2 SD_TYPE
     FROM  MSC_CALENDAR_DATES C,
           MSC_DEMANDS D,
           MSC_ATP_RULES R,
           MSC_SYSTEM_ITEMS I,
           MSC_SYSTEM_ITEMS I2
    WHERE  I.ATP_FLAG = 'Y'    --- I.SR_INVENTORY_ITEM_ID = p_inventory_item_id
      AND  I.ORGANIZATION_ID = l_organization_id
      AND  I.SR_INSTANCE_ID = p_instance_id
      AND  I.PLAN_ID = -1
      --- bug 2162571
      AND     I.PLAN_ID = I2.PLAN_ID
      AND     I.ORGANIZATION_ID = I2.ORGANIZATION_ID
      AND     I.SR_INSTANCE_ID = I2.SR_INSTANCE_ID
      AND     I2.INVENTORY_ITEM_ID = NVL(I.PRODUCT_FAMILY_ID, I.INVENTORY_ITEM_ID)
      AND  D.REFRESH_NUMBER > l_refresh_number
      AND  R.RULE_ID (+) = NVL(I.ATP_RULE_ID, l_default_atp_rule_id)
      AND     R.SR_INSTANCE_ID (+)= I.SR_INSTANCE_ID
      AND     D.PLAN_ID = I.PLAN_ID
      AND     D.SR_INSTANCE_ID = I.SR_INSTANCE_ID
      AND     D.INVENTORY_ITEM_ID = I.INVENTORY_ITEM_ID
      AND     D.ORGANIZATION_ID = I.ORGANIZATION_ID
                   -- 1243985
      AND     USING_REQUIREMENT_QUANTITY <> 0
      AND     D.ORIGINATION_TYPE in (
              DECODE(R.INCLUDE_DISCRETE_WIP_DEMAND, 1, 3, -1),
              DECODE(R.INCLUDE_FLOW_SCHEDULE_DEMAND, 1, 25, -1),
              DECODE(R.INCLUDE_USER_DEFINED_DEMAND, 1, 42, -1),
              DECODE(R.INCLUDE_NONSTD_WIP_RECEIPTS, 1, 2, -1),
              DECODE(R.INCLUDE_REP_WIP_DEMAND, 1, 4, -1))
                                 -- Bug 1530311, forecast to be excluded
      AND     C.CALENDAR_CODE = l_calendar_code
      AND     C.EXCEPTION_SET_ID = l_calendar_exception_set_id
      AND     C.SR_INSTANCE_ID = p_instance_id
               -- since we store repetitive schedule demand in different ways for
               -- ods (total quantity on start date) and pds  (daily quantity from
               -- start date to end date), we need to make sure we only
               -- select work day for pds's repetitive schedule demand.
      AND     C.CALENDAR_DATE BETWEEN TRUNC(D.USING_ASSEMBLY_DEMAND_DATE) AND
                         TRUNC(NVL(D.ASSEMBLY_DEMAND_COMP_DATE,
                         D.USING_ASSEMBLY_DEMAND_DATE))
      AND     C.PRIOR_SEQ_NUM >= DECODE(R.PAST_DUE_DEMAND_CUTOFF_FENCE ,
                        NULL, C.PRIOR_SEQ_NUM,
                        l_sysdate_seq_num - NVL(R.PAST_DUE_DEMAND_CUTOFF_FENCE,0))
   )
   UNION ALL    -- with old demand information
   (SELECT
           --- bug 2162571
           --I.inventory_item_id,
           DECODE(I2.ATP_FLAG, 'Y', I2.INVENTORY_ITEM_ID,
                                                    I.INVENTORY_ITEM_ID) inventory_item_id,
           Decode(NVL(R.DEMAND_CLASS_ATP_FLAG,0),1 ,  NVL(D.DEMAND_CLASS,
                 NVL(l_default_demand_class,'@@@')), '@@@') demand_class,
           C.PRIOR_DATE SD_DATE,
           NVL(D.OLD_USING_REQUIREMENT_QUANTITY,0) SD_QTY
                     --2 SD_TYPE
     FROM  MSC_CALENDAR_DATES C,
           MSC_DEMANDS D,
           MSC_ATP_RULES R,
           MSC_SYSTEM_ITEMS I,
           MSC_SYSTEM_ITEMS I2
    WHERE  I.ATP_FLAG = 'Y'    --- I.SR_INVENTORY_ITEM_ID = p_inventory_item_id
      AND  I.ORGANIZATION_ID = l_organization_id
      AND  I.SR_INSTANCE_ID = p_instance_id
      AND  I.PLAN_ID = -1
      --- bug 2162571
      AND     I.PLAN_ID = I2.PLAN_ID
      AND     I.ORGANIZATION_ID = I2.ORGANIZATION_ID
      AND     I.SR_INSTANCE_ID = I2.SR_INSTANCE_ID
      AND     I2.INVENTORY_ITEM_ID = NVL(I.PRODUCT_FAMILY_ID, I.INVENTORY_ITEM_ID)

      AND  D.REFRESH_NUMBER > l_refresh_number
      AND  R.RULE_ID (+) = NVL(I.ATP_RULE_ID, l_default_atp_rule_id)
      AND     R.SR_INSTANCE_ID (+)= I.SR_INSTANCE_ID
      AND     D.PLAN_ID = I.PLAN_ID
      AND     D.SR_INSTANCE_ID = I.SR_INSTANCE_ID
      AND     D.INVENTORY_ITEM_ID = I.INVENTORY_ITEM_ID
      AND     D.ORGANIZATION_ID = I.ORGANIZATION_ID
                   -- 1243985
      AND     NVL(D.OLD_USING_REQUIREMENT_QUANTITY,0) <> 0
      AND     D.ORIGINATION_TYPE in (
              DECODE(R.INCLUDE_DISCRETE_WIP_DEMAND, 1, 3, -1),
              DECODE(R.INCLUDE_FLOW_SCHEDULE_DEMAND, 1, 25, -1),
              DECODE(R.INCLUDE_USER_DEFINED_DEMAND, 1, 42, -1),
              DECODE(R.INCLUDE_NONSTD_WIP_RECEIPTS, 1, 2, -1),
              DECODE(R.INCLUDE_REP_WIP_DEMAND, 1, 4, -1))
                                 -- Bug 1530311, forecast to be excluded
      AND     C.CALENDAR_CODE = l_calendar_code
      AND     C.EXCEPTION_SET_ID = l_calendar_exception_set_id
      AND     C.SR_INSTANCE_ID = p_instance_id
               -- since we store repetitive schedule demand in different ways for
               -- ods (total quantity on start date) and pds  (daily quantity from
               -- start date to end date), we need to make sure we only
               -- select work day for pds's repetitive schedule demand.
      AND     C.CALENDAR_DATE BETWEEN TRUNC(D.OLD_USING_ASSEMBLY_DEMAND_DATE) AND
                         TRUNC(NVL(D.OLD_ASSEMBLY_DEMAND_COMP_DATE,
                         D.OLD_USING_ASSEMBLY_DEMAND_DATE))
      AND     C.PRIOR_SEQ_NUM >= DECODE(R.PAST_DUE_DEMAND_CUTOFF_FENCE ,
                        NULL, C.PRIOR_SEQ_NUM,
                        l_sysdate_seq_num - NVL(R.PAST_DUE_DEMAND_CUTOFF_FENCE,0))
   )
   UNION ALL  -- new supplies information
   (SELECT /*+ ordered index(C,MSC_CALENDAR_DATES_U1) */I.inventory_item_id, -- 5098576/5199686
           Decode(NVL(R.DEMAND_CLASS_ATP_FLAG,0),1 ,
                   NVL(DECODE(S.ORDER_TYPE,
                   5, MSC_ATP_FUNC.Get_MPS_Demand_Class(S.SCHEDULE_DESIGNATOR_ID),
                   S.DEMAND_CLASS), NVL(l_default_demand_class, '@@@')), '@@@'),
           C.NEXT_DATE SD_DATE,
           --- bug 1843471, 2619493
           Decode(order_type, -- 2859130 remove trunc
            30, Decode(Sign(S.Daily_rate * (C.Calendar_date -
                TRUNC(S.FIRST_UNIT_START_DATE))- S.qty_completed),
                -1,S.Daily_rate* (C.Calendar_date - TRUNC(S.First_Unit_Start_date) +1) -
                 S.qty_completed, S.Daily_rate),
                 NVL(S.FIRM_QUANTITY,S.NEW_ORDER_QUANTITY) ) SD_QTY
           -- Changed the order of the tables for 5098576/5199686
     FROM    MSC_SYSTEM_ITEMS I,
             MSC_SYSTEM_ITEMS I2,
             MSC_SUPPLIES S,
             MSC_ATP_RULES R,
             MSC_SUB_INVENTORIES MSI,
             MSC_CALENDAR_DATES C

/*   FROM    MSC_CALENDAR_DATES C,
           MSC_SUPPLIES S,
           MSC_ATP_RULES R,
           MSC_SYSTEM_ITEMS I,
           --- bug 2162571 add to another table to get info about product family
           MSC_SYSTEM_ITEMS I2,
           MSC_SUB_INVENTORIES MSI*/ -- commented for 5098576/5199686
   WHERE   I.ATP_FLAG = 'Y'   ---I.SR_INVENTORY_ITEM_ID = p_inventory_item_id
   AND     I.ORGANIZATION_ID = l_organization_id
   AND     I.SR_INSTANCE_ID = p_instance_id
   AND     I.PLAN_ID = -1
   AND     I.PLAN_ID = I2.PLAN_ID
   --- bug 2162571: add system items tables to itself to filter out supplies of
   --  product family members if we are doing PF based atp on the member
   -- the logic is:1. If it is a regular member then we consider supplies ond demand of that itme
   -- 2. If we do product family with config PF --> A then
   --              a. If atp flag on PF is yes then we consider supplies of PF and demand of A
   --              b. If atp flag on PF in 'N' then we consider supplies and demands of A
   AND     I.ORGANIZATION_ID = I2.ORGANIZATION_ID
   AND     I.SR_INSTANCE_ID = I2.SR_INSTANCE_ID
   AND     NVL(I.PRODUCT_FAMILY_ID, I.INVENTORY_ITEM_ID) = I2.INVENTORY_ITEM_ID
   ---     in case of PF, if atp_flag on PF is yes then we want to filter out supplies of A
   --      For A, the following condition will be true only if ATP_FLAG on PF is 'N'
   ---     and therefore we will consider supplies of A. If atp_flag on PF is 'Y"
   --     then following condition will be false and we will omit supplies of A
   AND     DECODE(I.PRODUCT_FAMILY_ID, NULL, 'N', I2.ATP_FLAG ) = 'N'
   AND  S.REFRESH_NUMBER > l_refresh_number
   AND     R.RULE_ID (+) = NVL(I.ATP_RULE_ID, l_default_atp_rule_id)
   AND     R.SR_INSTANCE_ID (+)= I.SR_INSTANCE_ID
   AND     S.PLAN_ID = I.PLAN_ID
   AND     S.SR_INSTANCE_ID = I.SR_INSTANCE_ID
   AND     S.INVENTORY_ITEM_ID = I.INVENTORY_ITEM_ID
   AND     S.ORGANIZATION_ID = I.ORGANIZATION_ID
                   ---bug 1843471, 2619493
   AND     Decode(S.order_type, 30, S.Daily_rate* (C.Calendar_date -- 2859130 remove trunc
              - TRUNC(S.First_Unit_Start_date) + 1),
                NVL(S.FIRM_QUANTITY,S.NEW_ORDER_QUANTITY)) >
           Decode(S.order_type, 30, S.qty_completed,0)
   AND     (S.ORDER_TYPE IN (
                   DECODE(R.INCLUDE_PURCHASE_ORDERS, 1, 1, -1),
                   DECODE(R.INCLUDE_PURCHASE_ORDERS, 1, 8, -1), --1882898
                   DECODE(R.INCLUDE_DISCRETE_WIP_RECEIPTS, 1, 3, -1),
                   DECODE(R.INCLUDE_REP_WIP_RECEIPTS, 1, 30, -1),
                   DECODE(R.INCLUDE_NONSTD_WIP_RECEIPTS, 1, 7, -1),
                   DECODE(R.INCLUDE_NONSTD_WIP_RECEIPTS, 1, 15, -1) ,
                   DECODE(R.INCLUDE_INTERORG_TRANSFERS, 1, 11, -1),
                   DECODE(R.INCLUDE_INTERORG_TRANSFERS, 1, 12, -1),
                   DECODE(R.INCLUDE_ONHAND_AVAILABLE, 1, 18, -1),
                   DECODE(R.INCLUDE_INTERNAL_REQS, 1, 2, -1),
                   DECODE(R.INCLUDE_SUPPLIER_REQS, 1, 2, -1),
                   DECODE(R.INCLUDE_USER_DEFINED_SUPPLY, 1, 41, -1) ,
                   DECODE(R.INCLUDE_FLOW_SCHEDULE_RECEIPTS, 1, 27, -1),
                   DECODE(R.INCLUDE_FLOW_SCHEDULE_RECEIPTS, 1, 28, -1))
            OR ((R.INCLUDE_REP_MPS = 1 OR R.INCLUDE_DISCRETE_MPS = 1) AND
                   S.ORDER_TYPE = 5
                 AND exists (SELECT '1'
                               FROM   MSC_DESIGNATORS
                              WHERE   INVENTORY_ATP_FLAG = 1
                                AND   DESIGNATOR_TYPE = 2
                                AND   DESIGNATOR_ID = S.SCHEDULE_DESIGNATOR_ID)))
   AND   C.CALENDAR_CODE = l_calendar_code
   AND   C.EXCEPTION_SET_ID = l_calendar_exception_set_id
   AND   C.SR_INSTANCE_ID = p_instance_id
   AND   C.CALENDAR_DATE BETWEEN
              TRUNC(NVL(S.FIRM_DATE,S.NEW_SCHEDULE_DATE))
           AND TRUNC(NVL(S.LAST_UNIT_COMPLETION_DATE,
                  NVL(S.FIRM_DATE,S.NEW_SCHEDULE_DATE)))
   AND   DECODE(S.LAST_UNIT_COMPLETION_DATE,
                    NULL, C.NEXT_SEQ_NUM, C.SEQ_NUM) IS NOT NULL
   AND   C.NEXT_SEQ_NUM >= DECODE(S.ORDER_TYPE, 18, C.NEXT_SEQ_NUM,
              DECODE(R.PAST_DUE_SUPPLY_CUTOFF_FENCE,
                NULL, C.NEXT_SEQ_NUM, l_sysdate_seq_num -
                      NVL(R.PAST_DUE_SUPPLY_CUTOFF_FENCE,0)))
   AND   C.NEXT_DATE >= DECODE(S.ORDER_TYPE, 27, TRUNC(l_sysdate),
                                         28, TRUNC(l_sysdate),
                                         C.NEXT_DATE)
                 --- filter out non-atpable sub-inventories
   AND     MSI.plan_id (+) =  -1
   AND     MSI.organization_id (+) = l_organization_id
   AND     MSI.sr_instance_id (+) =  p_instance_id
   AND     MSI.sub_inventory_code (+) = S.subinventory_code
   AND     NVL(MSI.inventory_atp_code,1) <> 2
                             -- filter out non-atpable subinventories
   )
   UNION ALL    -- with old supplies information
   (SELECT /*+ ordered index(C,MSC_CALENDAR_DATES_U1) */I.inventory_item_id, -- 5098576/5199686
           Decode(NVL(R.DEMAND_CLASS_ATP_FLAG,0),1 ,
                   NVL(DECODE(S.ORDER_TYPE,
                   5, MSC_ATP_FUNC.Get_MPS_Demand_Class(S.SCHEDULE_DESIGNATOR_ID),
                   S.DEMAND_CLASS), NVL(l_default_demand_class, '@@@')), '@@@'),
           C.NEXT_DATE SD_DATE,
           --- bug 1843471, 2619493
           -- 2859130 remove trunc on calendar_date
           -1 * Decode(order_type,
               30, Decode(Sign(NVL(S.OLD_Daily_rate,0) * (C.Calendar_date -
                      TRUNC(S.OLD_FIRST_UNIT_START_DATE))- NVL(S.OLD_qty_completed,0)),
                          -1,NVL(S.OLD_Daily_rate,0)* (C.Calendar_date -
                                              TRUNC(S.OLD_First_Unit_Start_date) +1) -
                          NVL(S.OLD_qty_completed,0), NVL(S.OLD_Daily_rate,0)),
             NVL( NVL(S.OLD_FIRM_QUANTITY,S.OLD_NEW_ORDER_QUANTITY),0) ) SD_QTY

      /*FROM    MSC_CALENDAR_DATES C,
           MSC_SUPPLIES S,
           MSC_ATP_RULES R,
           MSC_SYSTEM_ITEMS I,
           MSC_SYSTEM_ITEMS I2,
           MSC_SUB_INVENTORIES MSI*/
     -- Commented 5098576./5199686
     -- changed order of tables for 5098576/5199686
      FROM    MSC_SYSTEM_ITEMS I,
             MSC_SYSTEM_ITEMS I2,
             MSC_SUPPLIES S,
             MSC_ATP_RULES R,
             MSC_SUB_INVENTORIES MSI,
             MSC_CALENDAR_DATES C

   WHERE   I.ATP_FLAG = 'Y'
   AND     I.ORGANIZATION_ID = l_organization_id
   AND     I.SR_INSTANCE_ID = p_instance_id
   AND     I.PLAN_ID = -1
   AND     I.PLAN_ID = I2.PLAN_ID
   --- bug 2162571: add system items tables to itself to filter out supplies of
   --  product family members if we are doing PF based atp on the member
   -- the logic is:1. If it is a regular member then we consider supplies ond demand of that itme
   -- 2. If we do product family with config PF --> A then
   --              a. If atp flag on PF is yes then we consider supplies of PF and demand of A
   --              b. If atp flag on PF in 'N' then we consider supplies and demands of A
   AND     I.ORGANIZATION_ID = I2.ORGANIZATION_ID
   AND     I.SR_INSTANCE_ID = I2.SR_INSTANCE_ID
   AND     NVL(I.PRODUCT_FAMILY_ID, I.INVENTORY_ITEM_ID) = I2.INVENTORY_ITEM_ID
   ---     in case of PF, if atp_flag on PF is yes then we want to filter out supplies of A
   --      For A, the following condition will be true only if ATP_FLAG on PF is 'N'
   ---     and therefore we will consider supplies of A. If atp_flag on PF is 'Y"
   --     then following condition will be false and we will omit supplies of A
   AND     DECODE(I.PRODUCT_FAMILY_ID, NULL, 'N', I2.ATP_FLAG ) = 'N'
   AND     S.REFRESH_NUMBER > l_refresh_number
   AND     R.RULE_ID (+) = NVL(I.ATP_RULE_ID, l_default_atp_rule_id)
   AND     R.SR_INSTANCE_ID (+)= I.SR_INSTANCE_ID
   AND     S.PLAN_ID = I.PLAN_ID
   AND     S.SR_INSTANCE_ID = I.SR_INSTANCE_ID
   AND     S.INVENTORY_ITEM_ID = I.INVENTORY_ITEM_ID
   AND     S.ORGANIZATION_ID = I.ORGANIZATION_ID
                   ---bug 1843471, 2619493
           -- 2859130 remove trunc
   AND     Decode(S.order_type, 30, NVL(S.OLD_Daily_rate,0)* (C.Calendar_date
              - TRUNC(S.OLD_First_Unit_Start_date) + 1),
                NVL(NVL(S.OLD_FIRM_QUANTITY,S.OLD_NEW_ORDER_QUANTITY),0) ) >
           Decode(S.order_type, 30, NVL(S.OLD_qty_completed,0),0)
   AND     (S.ORDER_TYPE IN (
                   DECODE(R.INCLUDE_PURCHASE_ORDERS, 1, 1, -1),
                   DECODE(R.INCLUDE_PURCHASE_ORDERS, 1, 8, -1), --1882898
                   DECODE(R.INCLUDE_DISCRETE_WIP_RECEIPTS, 1, 3, -1),
                   DECODE(R.INCLUDE_REP_WIP_RECEIPTS, 1, 30, -1),
                   DECODE(R.INCLUDE_NONSTD_WIP_RECEIPTS, 1, 7, -1),
                   DECODE(R.INCLUDE_NONSTD_WIP_RECEIPTS, 1, 15, -1) ,
                   DECODE(R.INCLUDE_INTERORG_TRANSFERS, 1, 11, -1),
                   DECODE(R.INCLUDE_INTERORG_TRANSFERS, 1, 12, -1),
                   DECODE(R.INCLUDE_ONHAND_AVAILABLE, 1, 18, -1),
                   DECODE(R.INCLUDE_INTERNAL_REQS, 1, 2, -1),
                   DECODE(R.INCLUDE_SUPPLIER_REQS, 1, 2, -1),
                   DECODE(R.INCLUDE_USER_DEFINED_SUPPLY, 1, 41, -1) ,
                   DECODE(R.INCLUDE_FLOW_SCHEDULE_RECEIPTS, 1, 27, -1),
                   DECODE(R.INCLUDE_FLOW_SCHEDULE_RECEIPTS, 1, 28, -1))
            OR ((R.INCLUDE_REP_MPS = 1 OR R.INCLUDE_DISCRETE_MPS = 1) AND
                   S.ORDER_TYPE = 5
                 AND exists (SELECT '1'
                               FROM   MSC_DESIGNATORS
                              WHERE   INVENTORY_ATP_FLAG = 1
                                AND   DESIGNATOR_TYPE = 2
                                AND   DESIGNATOR_ID = S.SCHEDULE_DESIGNATOR_ID)))
   AND   C.CALENDAR_CODE = l_calendar_code
   AND   C.EXCEPTION_SET_ID = l_calendar_exception_set_id
   AND   C.SR_INSTANCE_ID = p_instance_id
   AND   C.CALENDAR_DATE BETWEEN
              TRUNC(NVL(S.OLD_FIRM_DATE,S.OLD_NEW_SCHEDULE_DATE))
           AND TRUNC(NVL(S.OLD_LAST_UNIT_COMPLETION_DATE,
                  NVL(S.OLD_FIRM_DATE,S.OLD_NEW_SCHEDULE_DATE)))
   AND   DECODE(S.OLD_LAST_UNIT_COMPLETION_DATE,
                    NULL, C.NEXT_SEQ_NUM, C.SEQ_NUM) IS NOT NULL
   AND   C.NEXT_SEQ_NUM >= DECODE(S.ORDER_TYPE, 18, C.NEXT_SEQ_NUM,
              DECODE(R.PAST_DUE_SUPPLY_CUTOFF_FENCE,
                NULL, C.NEXT_SEQ_NUM, l_sysdate_seq_num -
                      NVL(R.PAST_DUE_SUPPLY_CUTOFF_FENCE,0)))
   AND   C.NEXT_DATE >= DECODE(S.ORDER_TYPE, 27, TRUNC(l_sysdate),
                                         28, TRUNC(l_sysdate),
                                         C.NEXT_DATE)
                 --- filter out non-atpable sub-inventories
   AND     MSI.plan_id (+) =  -1
   AND     MSI.organization_id (+) = l_organization_id
   AND     MSI.sr_instance_id (+) =  p_instance_id
   AND     MSI.sub_inventory_code (+) = S.subinventory_code
   AND     NVL(MSI.inventory_atp_code,1) <> 2
                             -- filter out non-atpable subinventories
   )
  )
  GROUP BY inventory_item_id, demand_class, sd_date ;
Line: 3235

/*   SELECT NVL(summary_flag, 1), NVL(summary_refresh_number,0) ---LCID
   INTO   l_summary_flag, l_refresh_number
   from   msc_apps_instances
   where  instance_id = p_instance_id;*/
Line: 3240

  SELECT NVL(summary_flag, 1), NVL(summary_refresh_number,0),apps_lrn  ---LCID
  INTO   l_summary_flag,l_refresh_number,l_apps_lrn		---bug3049003
  from   msc_apps_instances
  where  instance_id = p_instance_id;
Line: 3257

   /*SELECT  sr_tp_id
     BULK  COLLECT INTO l_org_ids
     FROM  msc_trading_partners
    WHERE  sr_instance_id = p_instance_id and partner_type = 3;*/
Line: 3263

  SELECT  ORGANIZATION_ID                 ---bug3049003
  BULK  COLLECT INTO l_org_ids
  FROM    msc_instance_orgs
  WHERE   sr_instance_id = p_instance_id
  and     org_lrn=l_apps_lrn
  and     enabled_flag=1;
Line: 3291

            SELECT  cal.next_seq_num
              INTO  l_sysdate_seq_num
              FROM  msc_calendar_dates  cal
             WHERE  cal.exception_set_id = l_calendar_exception_set_id
               AND  cal.calendar_code = l_calendar_code
               AND  cal.calendar_date = TRUNC(l_sysdate)
               AND  cal.sr_instance_id = p_instance_id ;
Line: 3330

          UPDATE  MSC_ATP_SUMMARY_SD
             SET  sd_qty = sd_qty + l_sd_qty,   -- APPLY THE DELTA
                  last_update_date = l_sysdate,
                  last_updated_by = l_user_id
           WHERE  plan_id = -1
             AND  sr_instance_id = p_instance_id
             AND  organization_id = l_organization_id
             AND  inventory_item_id = l_inventory_item_id
             AND  demand_class = l_demand_class
             AND  trunc(sd_date) = trunc(l_sd_date);
Line: 3346

              INSERT INTO MSC_ATP_SUMMARY_SD
                          (plan_id,
                           sr_instance_id,
                           organization_id,
                           inventory_item_id,
                           demand_class,
                           sd_date,
                           sd_qty,
                           last_update_date,
                           last_updated_by,
                           creation_date,
                           created_by)
                  VALUES (-1, p_instance_id, l_organization_id,
                           l_inventory_item_id, l_demand_class, trunc(l_sd_date),
                           l_sd_qty, l_sysdate, l_user_id ,
                           l_sysdate, l_user_id
                         );
Line: 3369

                 UPDATE MSC_ATP_SUMMARY_SD
                    SET sd_qty = sd_qty + l_sd_qty,   -- The value is a DELTA
                        last_update_date = l_sysdate,
                        last_updated_by = l_user_id
                  WHERE plan_id = -1
                    AND sr_instance_id = p_instance_id
                    AND organization_id = l_organization_id
                    AND inventory_item_id = l_inventory_item_id
                    AND demand_class = l_demand_class
                    AND trunc(sd_date) = trunc(l_sd_date);
Line: 3402

            update msc_apps_instances
            set summary_flag = 1
            where instance_id = p_instance_id;
Line: 3438

SELECT	plan_id
FROM	msc_plans
WHERE	plan_id > p_plan_id
AND	NVL(SUMMARY_FLAG, 0) <> 0
ORDER BY plan_id;
Line: 3468

	             SELECT   partition_name
                     INTO     l_name
                     --bug 2495962: Change refrence from dba_xxx to all_xxx tables
                     FROM     all_tab_partitions
                     WHERE    table_name = l_table_name
                     AND      table_owner = p_owner
                     AND      partition_name = l_partition_name;
Line: 3483

                  SELECT   NVL(summary_flag, 0)
                  INTO     l_summary_flag
                  FROM     msc_plans
                  WHERE    plan_id = p_plan_id;
Line: 3565

SELECT	instance_id
FROM	msc_apps_instances
WHERE	instance_id > p_instance_id
AND	NVL(summary_flag, 0) <> 0
ORDER BY instance_id;
Line: 3587

               SELECT  NVL(summary_flag, 0)
               INTO     l_summary_flag
               FROM     msc_apps_instances
               WHERE    instance_id = p_instance_id;
Line: 3693

        SELECT  a.oracle_username
        INTO    l_msc_schema
        FROM    FND_ORACLE_USERID a,
                FND_PRODUCT_INSTALLATIONS b
        WHERE   a.oracle_id = b.oracle_id
        AND     b.application_id = 724;
Line: 3705

           SELECT INSTANCE_ID
           BULK COLLECT INTO INSTANCE_IDS
           ---bug 2389523: use msc_ins_partitions instead of
           -- msc_apps_instances to look for existing instance partitions
           --FROM   MSC_APPS_INSTANCES
           FROM  MSC_INST_PARTITIONS
           ORDER BY INSTANCE_ID;
Line: 3728

                         SELECT count(*)
                         INTO l_count
                         --bug 2495962: Change refrence from dba_xxx to all_xxx tables
                         --FROM DBA_TAB_PARTITIONS
                         FROM ALL_TAB_PARTITIONS
                         WHERE TABLE_NAME = l_table_name
                         AND   PARTITION_NAME = l_partition_name
                         AND   table_owner = l_msc_schema;
Line: 3789

               select count(*)
               into   l_count
               --bug 2495962: Change refrence from dba_xxx to all_xxx tables
               --from dba_tab_partitions
               from ALL_tab_partitions
               where table_name = l_table_name
               and   table_owner = l_msc_schema
               and    partition_name = l_partition_name;
Line: 3815

                      select count(*)
                      into   l_count
                      --bug 2495962: Change refrence from dba_xxx to all_xxx tables
                      --from dba_tab_partitions
                      from all_tab_partitions
                      where table_name = l_table_name
                      and   table_owner = l_msc_schema
                      and    partition_name = l_partition_name;
Line: 3855

              select plan_id
              bulk collect into   plan_ids
              --bug 2389523: use msc_plan_partitions instead of msc_plans
              --from   msc_plans
              from msc_plan_partitions
              order by plan_id;
Line: 3878

                     select count(*)
                     into   l_count
                     --bug 2495962: Change refrence from dba_xxx to all_xxx tables
                     --from dba_tab_partitions
                     from all_tab_partitions
                     where table_name = l_table_name
                     and   table_owner = l_msc_schema
                     and    partition_name = l_partition_name;
Line: 3984

        UPDATE msc_apps_instances
        SET summary_refresh_number = LCID
        WHERE instance_id = p_instance_id;
Line: 4091

l_insert_stmt                   VARCHAR2(8000); -- ssurendr: increased the string length
Line: 4185

    SELECT NVL(summary_flag,1), compile_designator
    INTO   l_summary_flag, l_plan_name
    FROM   msc_plans
    WHERE  plan_id = p_plan_id;
Line: 4197

    SELECT  a.oracle_username,
	    sysdate,
	    FND_GLOBAL.USER_ID
    INTO    l_msc_schema,
	    l_sysdate,
	    l_user_id
    FROM    fnd_oracle_userid a,
            fnd_product_installations b
    WHERE   a.oracle_id = b.oracle_id
    AND     b.application_id = 724;
Line: 4222

            SELECT count(*)
            INTO   l_count
            --bug 2495962: Change refrence from dba_xxx to all_xxx tables
            --FROM   dba_tab_partitions
            FROM   all_tab_partitions
            WHERE  table_name = l_table_name
            AND    partition_name = l_partition_name
            AND    table_owner = l_msc_schema;
Line: 4248

        update msc_plans
        set    summary_flag = 2
        where  plan_id = p_plan_id;
Line: 4264

	    SELECT	NVL(pre_alloc_hash_size, -1),
			NVL(pre_alloc_sort_size, -1),
			NVL(pre_alloc_parallel_degree, 1)
	    INTO	l_hash_size,
			l_sort_size,
			l_parallel_degree
	    FROM	msc_atp_parameters
	    WHERE	rownum = 1;
Line: 4299

           msc_util.msc_log('before deleteing data from the table');
Line: 4301

           DELETE MSC_ALLOC_DEMANDS where plan_id = p_plan_id;
Line: 4304

           DELETE MSC_ALLOC_SUPPLIES where plan_id = p_plan_id;
Line: 4312

           l_sql_stmt_1 := 'INSERT INTO MSC_ALLOC_DEMANDS(
			plan_id,
			inventory_item_id,
			organization_id,
			sr_instance_id,
			demand_class,
			demand_date,
			allocated_quantity,
			parent_demand_id,
			origination_type,
			order_number,
			sales_order_line_id,
			demand_source_type, --cmro
			created_by,
			creation_date,
			last_updated_by,
			last_update_date,
			demand_quantity, -- ssurendr 25-NOV-2002: added for alloc w/b
			request_date,--bug3263368
			--bug3684383 added as in Insert_SD_Into_Details_Temp we need these columns populated
			-- to show partner name and location.
			customer_id,
                        ship_to_site_id)
		( -- Bug 3370201
		SELECT  -- Bug 3416241 changes begin Removed all hints to avoid full table scan
		        -- causing performance issues which in turn causes ORA-01555: snapshot too old
		        --/*+ use_hash(mv) parallel(mv,' || to_char(l_parallel_degree) || ')
			--	full(peg1.d1) full(peg1.d2) full(peg1.peg1) full(peg1.peg2) full(mv) */
                        --        -- 2859130 full(peg1.cal)
			peg1.plan_id,
			peg1.inventory_item_id,
			peg1.organization_id,
			peg1.sr_instance_id,
			NVL(mv.demand_class, :def_num),
			peg1.demand_date,
			SUM(peg1.allocated_quantity) - MIN(peg1.reserved_quantity), --5027568
			peg1.demand_id,
			peg1.origination_type,
			peg1.order_number,
			peg1.sales_order_line_id,
			peg1.demand_source_type, --cmro
			:l_user_id,
			:l_sysdate,
			:l_user_id,
			:l_sysdate,
			MIN(peg1.demand_quantity), -- ssurendr 25-NOV-2002: added for alloc w/b
			peg1.request_date, --bug3263368
			--bug3684383
			peg1.customer_id,
			peg1.ship_to_site_id
			-- min is used to select distinct values as demand_quantity would be
			-- repeating for the same demand_id
		FROM
                        -- use inline view so that view parallel hint could be used.
			-- msc_demand_pegging_v peg1,
                        -- 2859130 (SELECT /*+ ordered use_hash(d2 peg2 peg1 d1 tp cal)
                        (SELECT -- Bug 3416241 changes begin Removed all hints to avoid full table scan
		                -- causing performance issues which in turn causes ORA-01555: snapshot too old
		                --/*+ ordered use_hash(d2 peg2 peg1 tp)
				--	parallel(d2,' || to_char(l_parallel_degree) || ')
				--	parallel(d1,' || to_char(l_parallel_degree) || ')
				--	parallel(peg2,' || to_char(l_parallel_degree) || ')
				--	parallel(peg1,' || to_char(l_parallel_degree) || ')*/
                                        -- time_phased_atp
                                        -- parallel(tp,'  || to_char(l_parallel_degree) || ')

                                        -- 2859130
                                        -- parallel(cal,' || to_char(l_parallel_degree) || ')
				peg2.plan_id,
				peg2.inventory_item_id,
				peg2.organization_id,
				peg2.sr_instance_id,
				-- Bug 3574164 DMD_SATISFIED_DATE IS CHANGED TO PLANNED_SHIP_DATE.
				NVL(d1.demand_class, :def_num) demand_class,
				trunc(DECODE('||MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF||',
					     2, NVL(d2.PLANNED_SHIP_DATE,d2.USING_ASSEMBLY_DEMAND_DATE),
					        NVL(d2.SCHEDULE_SHIP_DATE,d2.USING_ASSEMBLY_DEMAND_DATE))) demand_date,----plan by request date, promise date or schedule date
				-- cal.prior_date demand_date, -- 2859130
				-- cal.calendar_date demand_date,
				peg2.allocated_quantity,
				DECODE( d2.origination_type, 30, NVL(d2.reserved_quantity, 0), 0) reserved_quantity, --5027568
				d2.demand_id,
				d2.origination_type,
				--d2.order_number,
				-- rajjain 04/25/2003 Bug 2771075
                                -- For Planned Order Demands We will populate disposition_id
                                -- in order_number column
				decode(d2.origination_type, 1, to_char(d2.disposition_id), d2.order_number) order_number,
				d2.sales_order_line_id,
				d2.demand_source_type, --cmro
			        decode(d2.origination_type, 4, d2.daily_demand_rate,
			           d2.using_requirement_quantity) demand_quantity , -- rajjain 02/06/2003 Bug 2782882
			        decode(d2.order_date_type_code,2,d2.request_date,
			           d2.request_ship_date)request_date, --bug3263368
				--peg2.demand_quantity -- ssurendr 25-NOV-2002: added for alloc w/b
				--bug3684383
				d2.customer_id,
                                d2.ship_to_site_id
                        FROM	msc_demands d2,
				msc_full_pegging peg2,
				msc_full_pegging peg1 ,
				msc_demands d1
				-- time_phased_atp
				-- msc_trading_partners tp
                                -- 2859130
				-- msc_calendar_dates cal
                        WHERE	peg2.plan_id = peg1.plan_id
                        AND	peg2.end_pegging_id = peg1.pegging_id
                        AND	peg2.sr_instance_id = peg1.sr_instance_id
                        AND	d1.plan_id = peg1.plan_id
                        AND	d1.demand_id = peg1.demand_id
                        AND	d1.sr_instance_id = peg1.sr_instance_id
                        AND	d2.plan_id = peg2.plan_id
                        AND	d2.demand_id = peg2.demand_id
                        AND	d2.sr_instance_id = peg2.sr_instance_id
                        AND	d2.origination_type NOT IN (5,7,8,9,11,15,22,28,29,31,70)
			-- time_phased_atp
			-- AND	tp.sr_tp_id = peg2.organization_id
			-- AND	tp.partner_type = 3 -- bug2646304
			-- AND	tp.sr_instance_id = peg2.sr_instance_id
                        -- 2859130
			-- AND	tp.sr_instance_id = cal.sr_instance_id
			-- AND	tp.calendar_code = cal.calendar_code
			-- AND	tp.calendar_exception_set_id = cal.exception_set_id
			-- AND	TRUNC(d2.using_assembly_demand_date) = cal.calendar_date
                        ) peg1,
			msc_item_hierarchy_mv mv
		WHERE   peg1.plan_id = :p_plan_id
		AND     peg1.inventory_item_id = mv.inventory_item_id(+)
		AND     peg1.organization_id = mv.organization_id (+)
		AND     peg1.sr_instance_id = mv.sr_instance_id (+)
		AND     peg1.demand_date >=  mv.effective_date (+)
		AND     peg1.demand_date <=  mv.disable_date (+)
		AND	peg1.demand_class = mv.demand_class (+)
		AND     mv.level_id (+) = -1
		GROUP BY
			peg1.plan_id,
			peg1.inventory_item_id,
			peg1.organization_id,
			peg1.sr_instance_id,
			NVL(mv.demand_class, :def_num),
			peg1.demand_date,
			peg1.demand_id,
			peg1.origination_type,
			peg1.order_number,
			peg1.sales_order_line_id,
			peg1.demand_source_type,--cmro
			:l_user_id,
			:l_sysdate,
			:l_user_id,
			:l_sysdate,
			peg1.request_date,
			--bug3684383
			peg1.customer_id,
			peg1.ship_to_site_id)';
Line: 4491

           msc_util.msc_log('After inserting in msc_alloc_demands part 1');
Line: 4506

                   l_sql_stmt_1 := 'INSERT INTO MSC_ALLOC_DEMANDS(
                                plan_id,
                                inventory_item_id,
                                organization_id,
                                sr_instance_id,
                                demand_class,
                                demand_date,
                                allocated_quantity,
                                parent_demand_id,
                                origination_type,
                                order_number,
                                sales_order_line_id,
                                demand_source_type, --cmro
                                created_by,
                                creation_date,
                                last_updated_by,
                                last_update_date,
                                demand_quantity,
                                request_date)--bug3263368
                	(
                        SELECT	--5053818
                                pegging_v.plan_id plan_id,
                                pegging_v.inventory_item_id,
                                pegging_v.organization_id,
                                pegging_v.sr_instance_id,
                                NVL(mv.demand_class, :def_num) demand_class,
                                pegging_v.demand_date,
                                SUM(pegging_v.allocated_quantity),
                                pegging_v.demand_id,
                                pegging_v.origination_type,
                                pegging_v.order_number,
                                pegging_v.sales_order_line_id,
                                pegging_v.demand_source_type,--cmro
                                :l_user_id,
                                :l_sysdate,
                                :l_user_id,
                                :l_sysdate,
                                MIN(pegging_v.demand_quantity),
                                pegging_v.request_date --bug3263368
                        FROM
                                (SELECT -- Bug 3416241 changes begin Removed all hints to avoid full table scan
		                        -- causing performance issues which in turn causes ORA-01555: snapshot too old
		                        --/*+ ordered use_hash(peg2 peg1 d s)
                        		--	parallel(peg2,' || to_char(l_parallel_degree) || ')
                        		--	parallel(peg1,' || to_char(l_parallel_degree) || ')
                        		--	parallel(d,' || to_char(l_parallel_degree) || ')
                                        --      parallel(s,' || to_char(l_parallel_degree) || ')
                        		--	full(peg2) full(peg1) full(d) full(s) */
                                        peg1.plan_id plan_id,
                        	        peg1.inventory_item_id,
                        	        peg1.organization_id,
                        	        peg1.sr_instance_id,
                        	        NVL(s.demand_class, :def_num) demand_class,
                        	        -- Bug 3574164 DMD_SATISFIED_DATE IS CHANGED TO PLANNED_SHIP_DATE.
                                        trunc(DECODE('||MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF||',
                                             2, NVL(d.PLANNED_SHIP_DATE,d.USING_ASSEMBLY_DEMAND_DATE),
                                                NVL(d.SCHEDULE_SHIP_DATE,d.USING_ASSEMBLY_DEMAND_DATE))) demand_date,--plan by request date, promise date or schedule date
                        		peg1.allocated_quantity,
                                        d.demand_id,
                        		d.origination_type,
                        		decode(d.origination_type, 1, to_char(d.disposition_id), d.order_number) order_number,
                        		d.sales_order_line_id,
                        		d.demand_source_type, --cmro
                        		decode(d.origination_type, 4, d.daily_demand_rate,
                        		           d.using_requirement_quantity) demand_quantity ,
                        		decode(d.order_date_type_code,2,d.request_date,
                        		           d.request_ship_date)request_date --bug3263368
                        	FROM    msc_full_pegging peg2,
                        	        msc_full_pegging peg1,
                        		msc_demands d,
                                        msc_supplies s
                        	WHERE   peg1.plan_id = :p_plan_id
                        	AND     peg2.plan_id = peg1.plan_id
                        	AND     peg2.pegging_id = peg1.end_pegging_id
                        	AND     peg2.demand_id IN (-1, -2)
                        	AND     d.demand_id = peg1.demand_id
                        	AND     peg1.plan_id = d.plan_id
                        	AND     d.sr_instance_id = peg1.sr_instance_id
                        	AND     peg1.sr_instance_id=s.sr_instance_id
                        	AND     peg1.plan_id = s.plan_id
                        	AND     peg1.transaction_id = s.transaction_id
                        	AND	d.origination_type NOT IN (5,7,8,9,11,15,22,28,29,31,70)) pegging_v,
                                msc_item_hierarchy_mv mv
                        WHERE	pegging_v.inventory_item_id = mv.inventory_item_id(+)
                        AND     pegging_v.organization_id = mv.organization_id (+)
                        AND     pegging_v.sr_instance_id = mv.sr_instance_id (+)
                        AND     pegging_v.demand_date >=  mv.effective_date (+)
                        AND     pegging_v.demand_date <=  mv.disable_date (+)
                        AND	pegging_v.demand_class = mv.demand_class (+)
                        AND     mv.level_id (+) = -1
                	GROUP BY
                                pegging_v.plan_id,
                                pegging_v.inventory_item_id,
                                pegging_v.organization_id,
                                pegging_v.sr_instance_id,
                                NVL(mv.demand_class, :def_num),
                                pegging_v.demand_date,
                                pegging_v.demand_id,
                                pegging_v.origination_type,
                                pegging_v.order_number,
                                pegging_v.sales_order_line_id,
                                pegging_v.demand_source_type,--cmro
                                :l_user_id,
                                :l_sysdate,
                                :l_user_id,
                                :l_sysdate,
                                pegging_v.request_date)';
Line: 4614

                   l_sql_stmt_1 := 'INSERT INTO MSC_ALLOC_DEMANDS(
                                plan_id,
                                inventory_item_id,
                                organization_id,
                                sr_instance_id,
                                demand_class,
                                demand_date,
                                allocated_quantity,
                                parent_demand_id,
                                origination_type,
                                order_number,
                                sales_order_line_id,
                                demand_source_type, --cmro
                                created_by,
                                creation_date,
                                last_updated_by,
                                last_update_date,
                                demand_quantity,  -- ssurendr 25-NOV-2002: added for alloc w/b
                                request_date)--bug3263368
        		 (SELECT -- Bug 3416241 changes begin Removed all hints to avoid full table scan
		                 -- causing performance issues which in turn causes ORA-01555: snapshot too old
		                 --/*+ ordered use_hash(peg2 peg1 d)
        			--	parallel(peg2,' || to_char(l_parallel_degree) || ')
        			--	parallel(peg1,' || to_char(l_parallel_degree) || ')
        			--	parallel(d,' || to_char(l_parallel_degree) || ')
        			--	full(peg2) full(peg1) full(d) */
                                        -- time_phased_atp
                                        -- parallel(tp,' || to_char(l_parallel_degree) || ')
                                        -- 2859130 parallel(cal,' || to_char(l_parallel_degree) || ')
                                        -- full(cal)
                                peg1.plan_id plan_id,
        		        peg1.inventory_item_id,
        		        peg1.organization_id,
        		        peg1.sr_instance_id,
        		        :def_num demand_class,
                                -- cal.prior_date, -- 2859130
                                -- Bug 3574164 DMD_SATISFIED_DATE IS CHANGED TO PLANNED_SHIP_DATE.
        			trunc(DECODE('||MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF||',
                                             2, NVL(d.PLANNED_SHIP_DATE,d.USING_ASSEMBLY_DEMAND_DATE),
                                                NVL(d.SCHEDULE_SHIP_DATE,d.USING_ASSEMBLY_DEMAND_DATE))),--plan by request date, promise date or schedule date
        			SUM(peg1.allocated_quantity),
                                d.demand_id,
        			d.origination_type,
        			--d.order_number,
        			-- rajjain 04/25/2003 Bug 2771075
                                -- For Planned Order Demands We will populate disposition_id
                                -- in order_number column
        			decode(d.origination_type, 1, to_char(d.disposition_id), d.order_number),
        			d.sales_order_line_id,
        			d.demand_source_type, --cmro
                                :l_user_id,
                                :l_sysdate,
                                :l_user_id,
                                :l_sysdate,
        			MIN(decode(d.origination_type, 4, d.daily_demand_rate,
        			           d.using_requirement_quantity)), -- rajjain 02/06/2003 Bug 2782882
        			--MIN(peg1.demand_quantity)  -- ssurendr 25-NOV-2002: added for alloc w/b
        			-- min is used to select distinct values as demand_quantity would be
        			-- repeating for the same demand_id
        			--decode(d.order_date_type_code,2,d2.request_date,
        			decode(d.order_date_type_code,2,d.request_date, -- Bug 3370201
        			            d.request_ship_date)request_date --bug3263368
        		FROM    msc_full_pegging peg2,
        		        msc_full_pegging peg1,
        			msc_demands d
                                -- time_phased_atp msc_trading_partners tp
                                -- 2859130 msc_calendar_dates cal
        		WHERE   peg1.plan_id = :p_plan_id
        		AND     peg2.plan_id = peg1.plan_id
        		AND     peg2.pegging_id = peg1.end_pegging_id
        		AND     peg2.demand_id IN (-1, -2)
        		AND     d.demand_id = peg1.demand_id
        		AND     peg1.plan_id = d.plan_id
        		AND     d.sr_instance_id = peg1.sr_instance_id
        		AND	d.origination_type NOT IN (5,7,8,9,11,15,22,28,29,31,70)
                        --AND     tp.sr_tp_id = peg1.organization_id
        		--AND	tp.partner_type = 3 -- bug2646304
                        --AND     tp.sr_instance_id = peg1.sr_instance_id
                        --AND     tp.sr_instance_id = cal.sr_instance_id
                        --AND     tp.calendar_code = cal.calendar_code
                        --AND     tp.calendar_exception_set_id = cal.exception_set_id
                        --AND     TRUNC(d.using_assembly_demand_date) = cal.calendar_date
        		GROUP BY
        			peg1.plan_id,
        		        peg1.inventory_item_id,
        		        peg1.organization_id,
        		        peg1.sr_instance_id,
        		        :def_num,
        		        -- Bug 3574164 DMD_SATISFIED_DATE IS CHANGED TO PLANNED_SHIP_DATE.
                                trunc(DECODE('||MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF||',
                                             2, NVL(d.PLANNED_SHIP_DATE,d.USING_ASSEMBLY_DEMAND_DATE),
                                                NVL(d.SCHEDULE_SHIP_DATE,d.USING_ASSEMBLY_DEMAND_DATE))),--plan by request date, promise date or schedule date
                                -- 2859130 cal.prior_date,
        			d.demand_id,
                                d.origination_type,
                                decode(d.origination_type, 1, to_char(d.disposition_id), d.order_number),
                                d.sales_order_line_id,
                                d.demand_source_type,--cmro
                                :l_user_id,
                                :l_sysdate,
                                :l_user_id,
                                :l_sysdate,
                                --decode(d.order_date_type_code,2,d2.request_date,
                                decode(d.order_date_type_code,2,d.request_date, -- Bug 3370201
        			            d.request_ship_date) --bug3263368
        		)';
Line: 4741

           msc_util.msc_log('after inserting item data into MSC_ALLOC_DEMANDS tables');
Line: 4748

           l_sql_stmt_1 := 'INSERT INTO MSC_ALLOC_SUPPLIES(
			plan_id,
			inventory_item_id,
			organization_id,
			sr_instance_id,
			demand_class,
			supply_date,
			allocated_quantity,
			parent_transaction_id,
			order_type,
			order_number,
			schedule_designator_id,
			created_by,
			creation_date,
			last_updated_by,
			last_update_date,
			supply_quantity)  -- ssurendr 25-NOV-2002: added for alloc w/b
		(
		SELECT	/*+  use_hash(peg1 mv) parallel(mv,' || to_char(l_parallel_degree) || ')  */
			peg1.plan_id plan_id,
			peg1.inventory_item_id,
			peg1.organization_id,
			peg1.sr_instance_id,
			NVL(mv.demand_class, :def_num) demand_class,
			peg1.supply_date,
			SUM(peg1.allocated_quantity),
                        peg1.transaction_id,
			peg1.order_type,
			peg1.order_number,
			peg1.schedule_designator_id,
                        :l_user_id,
                        :l_sysdate,
                        :l_user_id,
                        :l_sysdate,
			MIN(peg1.supply_quantity)  -- ssurendr 25-NOV-2002: added for alloc w/b
			-- min is used to select distinct values as supply_quantity would be
			-- repeating for the same transaction_id
		FROM    -- msc_supply_pegging_v peg1,
			(SELECT --5053818
                                        -- time_phased_atp
                                        -- parallel(tp,' || to_char(l_parallel_degree) || ')
                                        -- 2859130 parallel(cal,' || to_char(l_parallel_degree) || ')
				peg2.plan_id,
				peg2.inventory_item_id,
				peg2.organization_id,
				peg2.sr_instance_id,
				NVL (d.demand_class, :def_num) demand_class,
				trunc(s.new_schedule_date) supply_date,
				-- cal.next_date supply_date,  --2859130
				peg2.allocated_quantity,
				peg2.transaction_id,
				s.order_type,
				s.order_number,
				s.schedule_designator_id ,
				nvl(s.firm_quantity,s.new_order_quantity) supply_quantity -- rajjain 02/06/2003 Bug 2782882
				--peg2.supply_quantity  -- ssurendr 25-NOV-2002: added for alloc w/b
			FROM	msc_supplies s,
				msc_full_pegging peg2,
				msc_full_pegging peg1,
				msc_demands d
                                -- time_phased_atp msc_trading_partners tp
                                -- 2859130 msc_calendar_dates cal
			WHERE	peg2.plan_id = peg1.plan_id
			  AND	peg2.end_pegging_id = peg1.pegging_id
			  AND	d.plan_id = peg1.plan_id
			  AND	d.demand_id = peg1.demand_id
			  AND	d.sr_instance_id = peg1.sr_instance_id
			  AND	d.inventory_item_id = peg1.inventory_item_id
			  AND	s.plan_id = peg2.plan_id
			  AND	s.transaction_id = peg2.transaction_id
			  AND	s.sr_instance_id = peg2.sr_instance_id
                          -- time_phased_atp
                          -- AND   tp.sr_tp_id = peg2.organization_id
			  -- AND	tp.partner_type = 3 -- bug2646304
                          -- AND   tp.sr_instance_id = peg2.sr_instance_id
                          -- 2859130 AND   tp.sr_instance_id = cal.sr_instance_id
                          --AND   tp.calendar_code = cal.calendar_code
                          --AND   tp.calendar_exception_set_id = cal.exception_set_id
                          --AND   TRUNC(s.new_schedule_date) = cal.calendar_date
                        ) peg1,
			msc_item_hierarchy_mv mv
		WHERE	peg1.plan_id = :p_plan_id
		AND     peg1.inventory_item_id = mv.inventory_item_id(+)
		AND     peg1.organization_id = mv.organization_id (+)
		AND     peg1.sr_instance_id = mv.sr_instance_id (+)
		AND     peg1.supply_date >=  mv.effective_date (+)
		AND     peg1.supply_date <=  mv.disable_date (+)
		AND	peg1.demand_class = mv.demand_class (+)
		AND     mv.level_id (+) = -1
		GROUP BY
			peg1.plan_id,
			peg1.inventory_item_id,
			peg1.organization_id,
			peg1.sr_instance_id,
			NVL(mv.demand_class, :def_num),
			peg1.supply_date,
                        peg1.transaction_id,
			peg1.order_type,
			peg1.order_number,
			peg1.schedule_designator_id,
                        :l_user_id,
                        :l_sysdate,
                        :l_user_id,
                        :l_sysdate)';
Line: 4872

           msc_util.msc_log('After inserting in msc_alloc_supplies part 1');
Line: 4891

                   l_sql_stmt_1 := 'INSERT INTO MSC_ALLOC_SUPPLIES(
                                plan_id,
                                inventory_item_id,
                                organization_id,
                                sr_instance_id,
                                demand_class,
                                supply_date,
                                allocated_quantity,
                                parent_transaction_id,
                                order_type,
                                order_number,
                                schedule_designator_id,
                                created_by,
                                creation_date,
                                last_updated_by,
                                last_update_date,
                                supply_quantity)
        		(
        	        SELECT	--5053818
                                pegging_v.plan_id plan_id,
                                pegging_v.inventory_item_id,
                                pegging_v.organization_id,
                                pegging_v.sr_instance_id,
                                NVL(mv.demand_class, :def_num) demand_class,
                                pegging_v.supply_date,
                                SUM(pegging_v.allocated_quantity),
                                pegging_v.transaction_id,
                                pegging_v.order_type,
                                pegging_v.order_number,
                                pegging_v.schedule_designator_id,
                                :l_user_id,
                                :l_sysdate,
                                :l_user_id,
                                :l_sysdate,
                                MIN(pegging_v.supply_quantity)
                        FROM
                                (SELECT  --5053818
                                        peg1.plan_id plan_id,
                                        peg1.inventory_item_id,
                                        peg1.organization_id,
                                        peg1.sr_instance_id,
                                        NVL(s.demand_class, :def_num) demand_class,
                                        TRUNC(s.new_schedule_date) supply_date,
                                        peg1.allocated_quantity,
                                        peg1.transaction_id,
                                        s.order_type,
                                        s.order_number,
                                        s.schedule_designator_id,
                                        nvl(s.firm_quantity,s.new_order_quantity) supply_quantity
                                FROM    msc_full_pegging peg2,
                                        msc_full_pegging peg1,
                                	msc_supplies s
                                WHERE   peg1.plan_id = :p_plan_id
                                AND     peg2.plan_id = peg1.plan_id
                                AND     peg2.pegging_id = peg1.end_pegging_id
                                AND     peg2.demand_id IN (-1, -2)
                                AND     s.plan_id = peg1.plan_id
                                AND     s.transaction_id = peg1.transaction_id
                                AND     s.sr_instance_id = peg1.sr_instance_id) pegging_v,
                                msc_item_hierarchy_mv mv
                        WHERE	pegging_v.inventory_item_id = mv.inventory_item_id(+)
                        AND     pegging_v.organization_id = mv.organization_id (+)
                        AND     pegging_v.sr_instance_id = mv.sr_instance_id (+)
                        AND     pegging_v.supply_date >=  mv.effective_date (+)
                        AND     pegging_v.supply_date <=  mv.disable_date (+)
                        AND	pegging_v.demand_class = mv.demand_class (+)
                        AND     mv.level_id (+) = -1
        		GROUP BY
                                pegging_v.plan_id,
                                pegging_v.inventory_item_id,
                                pegging_v.organization_id,
                                pegging_v.sr_instance_id,
                                NVL(mv.demand_class, :def_num),
                                pegging_v.supply_date,
                                pegging_v.transaction_id,
                                pegging_v.order_type,
                                pegging_v.order_number,
                                pegging_v.schedule_designator_id,
                                :l_user_id,
                                :l_sysdate,
                                :l_user_id,
                                :l_sysdate)';
Line: 4975

                   l_sql_stmt_1 := 'INSERT INTO MSC_ALLOC_SUPPLIES(
                                plan_id,
                                inventory_item_id,
                                organization_id,
                                sr_instance_id,
                                demand_class,
                                supply_date,
                                allocated_quantity,
                                parent_transaction_id,
                                order_type,
                                order_number,
                                schedule_designator_id,
                                created_by,
                                creation_date,
                                last_updated_by,
                                last_update_date,
                                supply_quantity)  -- ssurendr 25-NOV-2002: added for alloc w/b
        		(
        		SELECT  --5053818
                                        -- time_phased_atp parallel(tp,' || to_char(l_parallel_degree) || ')
                                        -- 2859130 parallel(cal,' || to_char(l_parallel_degree) || ')
        			peg1.plan_id plan_id,
        		        peg1.inventory_item_id,
        		        peg1.organization_id,
        		        peg1.sr_instance_id,
        		        :def_num demand_class,
        			trunc(s.new_schedule_date),
        			-- cal.next_date, --2859130
        			-- cal.calendar_date,
        			SUM(peg1.allocated_quantity),
                                peg1.transaction_id,
        			s.order_type,
        			s.order_number,
        			s.schedule_designator_id,
                                :l_user_id,
                                :l_sysdate,
                                :l_user_id,
                                :l_sysdate,
        			MIN(nvl(s.firm_quantity,s.new_order_quantity)) -- rajjain 02/06/2003 Bug 2782882
        			--MIN(peg1.supply_quantity)  -- ssurendr 25-NOV-2002: added for alloc w/b
        			-- min is used to select distinct values as supply_quantity would be
        			-- repeating for the same transaction_id
        		FROM    msc_full_pegging peg2,
        		        msc_full_pegging peg1,
        			msc_supplies s
                                -- time_phased_atp msc_trading_partners tp
                                -- 2859130 msc_calendar_dates cal
        		WHERE   peg1.plan_id = :p_plan_id
        		AND     peg2.plan_id = peg1.plan_id
        		AND     peg2.pegging_id = peg1.end_pegging_id
        		AND     peg2.demand_id IN (-1, -2)
        		AND     s.plan_id = peg1.plan_id
        		AND     s.transaction_id = peg1.transaction_id
        		AND     s.sr_instance_id = peg1.sr_instance_id
                        -- time_phased_atp
                        -- AND     tp.sr_tp_id = peg1.organization_id
        		-- AND	tp.partner_type = 3 -- bug2646304
                        -- AND     tp.sr_instance_id = peg1.sr_instance_id
                        -- 2859130 AND     tp.sr_instance_id = cal.sr_instance_id
                        -- AND     tp.calendar_code = cal.calendar_code
                        -- AND     tp.calendar_exception_set_id = cal.exception_set_id
                        -- AND     TRUNC(s.new_schedule_date) = cal.calendar_date
        		GROUP BY
        			peg1.plan_id,
        		        peg1.inventory_item_id,
        		        peg1.organization_id,
        		        peg1.sr_instance_id,
        		        :def_num,
        			trunc(s.new_schedule_date),
        			-- 2859130 cal.next_date,
                                peg1.transaction_id,
        			s.order_type,
        			s.order_number,
        			s.schedule_designator_id,
                                :l_user_id,
                                :l_sysdate,
                                :l_user_id,
                                :l_sysdate)';
Line: 5074

           msc_util.msc_log('After inserting in msc_alloc_supplies part 2');
Line: 5076

           msc_util.msc_log('after inserting item data into MSC_ALLOC_SUPPLIES tables');
Line: 5091

           msc_util.msc_log('not a shared plan partition, insert data into temp tables');
Line: 5097

           SELECT  t.tablespace_name, NVL(i.def_tablespace_name, t.tablespace_name)
	   INTO    l_tbspace, l_ind_tbspace
           --bug 2495962: Change refrence from dba_xxx to all_xxx tables
           --FROM    dba_tab_partitions t,
           --       dba_part_indexes i
           FROM    all_tab_partitions t,
                   all_part_indexes i
           WHERE   t.table_owner = l_msc_schema
           AND     t.table_name = 'MSC_ALLOC_DEMANDS'
	   AND     t.partition_name = 'ALLOC_DEMANDS_' || to_char(l_plan_id)
           AND     i.owner (+) = t.table_owner
           AND     i.table_name (+) = t.table_name
           AND     rownum = 1;
Line: 5115

         l_insert_stmt := 'CREATE TABLE ' || l_temp_table
           || ' TABLESPACE ' || l_tbspace
           || ' PCTFREE 0 STORAGE(INITIAL 40K NEXT 5M PCTINCREASE 0)'
           || ' as select * from MSC_ALLOC_DEMANDS where 1=2 ';
Line: 5121

           l_insert_stmt := 'CREATE TABLE ' || l_temp_table || '(
				 PLAN_ID                    NUMBER           NOT NULL,
				 INVENTORY_ITEM_ID          NUMBER           NOT NULL,
				 ORGANIZATION_ID            NUMBER           NOT NULL,
				 SR_INSTANCE_ID             NUMBER           NOT NULL,
				 DEMAND_CLASS               VARCHAR2(30)     ,   --bug3272444
				 DEMAND_DATE                DATE             NOT NULL,
				 PARENT_DEMAND_ID           NUMBER           NOT NULL,
				 ALLOCATED_QUANTITY         NUMBER           NOT NULL,
				 ORIGINATION_TYPE           NUMBER           NOT NULL,
				 ORDER_NUMBER               VARCHAR2(62),
				 SALES_ORDER_LINE_ID        NUMBER,
				 OLD_DEMAND_DATE            DATE,
				 OLD_ALLOCATED_QUANTITY     NUMBER,
				 CREATED_BY                 NUMBER           NOT NULL,
				 CREATION_DATE              DATE             NOT NULL,
				 LAST_UPDATED_BY            NUMBER           NOT NULL,
				 LAST_UPDATE_DATE           DATE             NOT NULL,
				 DEMAND_QUANTITY            NUMBER,   -- ssurendr 25-NOV-2002: added for alloc w/b
				 PF_DISPLAY_FLAG            NUMBER,   -- For time_phased_atp
				 ORIGINAL_ITEM_ID           NUMBER,   -- For time_phased_atp
				 ORIGINAL_ORIGINATION_TYPE  NUMBER,   -- For time_phased_atp
				 ORIGINAL_DEMAND_DATE       DATE,     -- For time_phased_atp
		                 SOURCE_ORGANIZATION_ID     NUMBER,   -- For time_phased_atp --bug3272444
                                 USING_ASSEMBLY_ITEM_ID     NUMBER,   -- For time_phased_atp --bug3272444
                                 CUSTOMER_ID                NUMBER,   -- For time_phased_atp
                                 SHIP_TO_SITE_ID            NUMBER,   -- For time_phased_atp
                                 REFRESH_NUMBER             NUMBER,   --bug3272444
                                 OLD_REFRESH_NUMBER         NUMBER,   --bug3272444
                                 DEMAND_SOURCE_TYPE         NUMBER,   --cmro
                                 REQUEST_DATE               DATE)     --bug3263368
			    TABLESPACE ' || l_tbspace || '
                            -- NOLOGGING
                            PCTFREE 0 STORAGE(INITIAL 40K NEXT 5M PCTINCREASE 0)';
Line: 5161

                   STATEMENT => l_insert_stmt,
                   OBJECT_NAME => l_temp_table);
Line: 5182

                        STATEMENT => l_insert_stmt,
                        OBJECT_NAME => l_temp_table);
Line: 5192

           l_insert_stmt := 'INSERT INTO ' || l_temp_table || '(
                        plan_id,
                        inventory_item_id,
                        organization_id,
                        sr_instance_id,
                        demand_class,
                        demand_date,
                        allocated_quantity,
                        parent_demand_id,
                        origination_type,
                        order_number,
                        sales_order_line_id,
                        demand_source_type,--cmro
                        created_by,
                        creation_date,
                        last_updated_by,
                        last_update_date,
                        demand_quantity,  -- ssurendr 25-NOV-2002: added for alloc w/b
                        request_date,-- Bug 3370201
                        --bug3684383
                        customer_id,
                        ship_to_site_id)
                (
		SELECT	--5053818
				-- full(peg1.tp)
                                -- full(peg1.cal)
                        peg1.plan_id,
			peg1.inventory_item_id,
			peg1.organization_id,
			peg1.sr_instance_id,
			NVL(mv.demand_class, :def_num) demand_class,
			peg1.demand_date,
			(SUM(peg1.allocated_quantity)- MIN(peg1.reserved_quantity)) allocated_quantity, --5027568
			peg1.demand_id,
			peg1.origination_type,
			peg1.order_number,
			peg1.sales_order_line_id,
			peg1.demand_source_type,--cmro
			:l_user_id created_by,
			:l_sysdate creation_date,
			:l_user_id last_updated_by,
			:l_sysdate last_update_date,
			MIN(peg1.demand_quantity) demand_quantity,  -- ssurendr 25-NOV-2002: added for alloc w/b
			-- min is used to select distinct values as demand_quantity would be
			-- repeating for the same demand_id
			peg1.request_date, -- Bug 3370201
                        --bug3684383
			peg1.customer_id,
			peg1.ship_to_site_id
		FROM
                        -- use inline view so that view parallel hint could be used.
			-- msc_demand_pegging_v peg1,
                        (SELECT --5053818
                                        -- parallel(tp,' || to_char(l_parallel_degree) || ')
                                        -- parallel(cal,' || to_char(l_parallel_degree) || ')
                        	peg2.plan_id,
				peg2.inventory_item_id,
				peg2.organization_id,
				peg2.sr_instance_id,
				NVL(d1.demand_class, :def_num) demand_class,
				-- Bug 3574164 DMD_SATISFIED_DATE IS CHANGED TO PLANNED_SHIP_DATE.
				trunc(DECODE('||MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF||',
                                             2, NVL(d2.PLANNED_SHIP_DATE,d2.USING_ASSEMBLY_DEMAND_DATE),
                                                NVL(d2.SCHEDULE_SHIP_DATE,d2.USING_ASSEMBLY_DEMAND_DATE))) demand_date, --plan by request date, promise date or schedule date
				-- cal.prior_date demand_date,
				-- cal.calendar_date demand_date, -- 2859130
				peg2.allocated_quantity,
				DECODE( d2.origination_type, 30, NVL(d2.reserved_quantity, 0), 0) reserved_quantity, --5027568
				d2.demand_id,
				d2.origination_type,
				--d2.order_number,
				-- rajjain 04/25/2003 Bug 2771075
                                -- For Planned Order Demands We will populate disposition_id
                                -- in order_number column
				decode(d2.origination_type, 1, to_char(d2.disposition_id), d2.order_number) order_number,
				d2.sales_order_line_id,
				d2.demand_source_type,--cmro
			        decode(d2.origination_type, 4, d2.daily_demand_rate,
			           d2.using_requirement_quantity) demand_quantity, -- rajjain 02/06/2003 Bug 2782882
				--peg2.demand_quantity -- ssurendr 25-NOV-2002: added for alloc w/b
			        decode(d2.order_date_type_code,2,d2.request_date,
			           d2.request_ship_date) request_date, -- Bug 3370201
                                --bug3684383
				d2.customer_id,
                                d2.ship_to_site_id
                        FROM	msc_demands d2,
				msc_full_pegging peg2,
				msc_full_pegging peg1,
				msc_demands d1
				-- time_phased_atp msc_trading_partners tp
				-- 2859130 msc_calendar_dates cal
                        WHERE	peg2.plan_id = peg1.plan_id
                        AND	peg2.end_pegging_id = peg1.pegging_id
                        AND	peg2.sr_instance_id = peg1.sr_instance_id
                        AND	d1.plan_id = peg1.plan_id
                        AND	d1.demand_id = peg1.demand_id
                        AND	d1.sr_instance_id = peg1.sr_instance_id
                        AND	d2.plan_id = peg2.plan_id
                        AND	d2.demand_id = peg2.demand_id
                        AND	d2.sr_instance_id = peg2.sr_instance_id
                        AND	d2.origination_type NOT IN (5,7,8,9,11,15,22,28,29,31,70)
			-- time_phased_atp
			-- AND	tp.sr_tp_id = peg2.organization_id
			-- AND	tp.partner_type = 3 -- bug2646304
			-- AND	tp.sr_instance_id = peg2.sr_instance_id
			-- 2859130
                        -- AND	tp.sr_instance_id = cal.sr_instance_id
			--AND	tp.calendar_code = cal.calendar_code
			--AND	tp.calendar_exception_set_id = cal.exception_set_id
			--AND	TRUNC(d2.using_assembly_demand_date) = cal.calendar_date
                        ) peg1,
			msc_item_hierarchy_mv mv
		WHERE   peg1.plan_id = :p_plan_id
		AND     peg1.inventory_item_id = mv.inventory_item_id(+)
		AND     peg1.organization_id = mv.organization_id (+)
		AND     peg1.sr_instance_id = mv.sr_instance_id (+)
		AND     peg1.demand_date >=  mv.effective_date (+)
		AND     peg1.demand_date <=  mv.disable_date (+)
		AND	peg1.demand_class = mv.demand_class (+)
		AND     mv.level_id (+) = -1
		GROUP BY
			peg1.plan_id,
			peg1.inventory_item_id,
			peg1.organization_id,
			peg1.sr_instance_id,
			NVL(mv.demand_class, :def_num),
			peg1.demand_date,
			peg1.demand_id,
			peg1.origination_type,
			peg1.order_number,
			peg1.sales_order_line_id,
			peg1.demand_source_type,--cmro
			:l_user_id,
			:l_sysdate,
			:l_user_id,
			:l_sysdate,
			peg1.request_date, -- Bug 3370201
                        --bug3684383
			peg1.customer_id,
			peg1.ship_to_site_id)';
Line: 5338

           DBMS_SQL.PARSE(cur_handler, l_insert_stmt, DBMS_SQL.NATIVE);
Line: 5369

                   l_insert_stmt := 'INSERT INTO ' || l_temp_table || '(
                                plan_id,
                                inventory_item_id,
                                organization_id,
                                sr_instance_id,
                                demand_class,
                                demand_date,
                                allocated_quantity,
                                parent_demand_id,
                                origination_type,
                                order_number,
                                sales_order_line_id,
                                demand_source_type,--cmro
                                created_by,
                                creation_date,
                                last_updated_by,
                                last_update_date,
                                demand_quantity,
                                request_date) -- Bug 3370201
                	(
                        SELECT	--5053818
                                pegging_v.plan_id plan_id,
                                pegging_v.inventory_item_id,
                                pegging_v.organization_id,
                                pegging_v.sr_instance_id,
                                NVL(mv.demand_class, :def_num) demand_class,
                                pegging_v.demand_date,
                                SUM(pegging_v.allocated_quantity),
                                pegging_v.demand_id,
                                pegging_v.origination_type,
                                pegging_v.order_number,
                                pegging_v.sales_order_line_id,
                                pegging_v.demand_source_type,--cmro
                                :l_user_id,
                                :l_sysdate,
                                :l_user_id,
                                :l_sysdate,
                                MIN(pegging_v.demand_quantity),
                                pegging_v.request_date -- Bug 3370201
                        FROM
                                (SELECT --5053818
                                        peg1.plan_id plan_id,
                        	        peg1.inventory_item_id,
                        	        peg1.organization_id,
                        	        peg1.sr_instance_id,
                        	        NVL(s.demand_class, :def_num) demand_class,
                        	        -- Bug 3574164 DMD_SATISFIED_DATE IS CHANGED TO PLANNED_SHIP_DATE.
                                        trunc(DECODE('||MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF||',
                                             2, NVL(d.PLANNED_SHIP_DATE,d.USING_ASSEMBLY_DEMAND_DATE),
                                                NVL(d.SCHEDULE_SHIP_DATE,d.USING_ASSEMBLY_DEMAND_DATE))) demand_date,--plan by request date, promise date or schedule date
                        		peg1.allocated_quantity,
                                        d.demand_id,
                        		d.origination_type,
                        		decode(d.origination_type, 1, to_char(d.disposition_id), d.order_number) order_number,
                        		d.sales_order_line_id,
                        		d.demand_source_type,--cmro
                        		decode(d.origination_type, 4, d.daily_demand_rate,
                        		           d.using_requirement_quantity) demand_quantity,
        			        decode(d.order_date_type_code,2,d.request_date,
        			           d.request_ship_date) request_date -- Bug 3370201
                        	FROM    msc_full_pegging peg2,
                        	        msc_full_pegging peg1,
                        		msc_demands d,
                                        msc_supplies s
                        	WHERE   peg1.plan_id = :p_plan_id
                        	AND     peg2.plan_id = peg1.plan_id
                        	AND     peg2.pegging_id = peg1.end_pegging_id
                        	AND     peg2.demand_id IN (-1, -2)
                        	AND     d.demand_id = peg1.demand_id
                        	AND     peg1.plan_id = d.plan_id
                        	AND     d.sr_instance_id = peg1.sr_instance_id
                        	AND     peg1.sr_instance_id=s.sr_instance_id
                        	AND     peg1.plan_id = s.plan_id
                        	AND     peg1.transaction_id = s.transaction_id
                        	AND	d.origination_type NOT IN (5,7,8,9,11,15,22,28,29,31,70)) pegging_v,
                                msc_item_hierarchy_mv mv
                        WHERE	pegging_v.inventory_item_id = mv.inventory_item_id(+)
                        AND     pegging_v.organization_id = mv.organization_id (+)
                        AND     pegging_v.sr_instance_id = mv.sr_instance_id (+)
                        AND     pegging_v.demand_date >=  mv.effective_date (+)
                        AND     pegging_v.demand_date <=  mv.disable_date (+)
                        AND	pegging_v.demand_class = mv.demand_class (+)
                        AND     mv.level_id (+) = -1
                	GROUP BY
                                pegging_v.plan_id,
                                pegging_v.inventory_item_id,
                                pegging_v.organization_id,
                                pegging_v.sr_instance_id,
                                NVL(mv.demand_class, :def_num),
                                pegging_v.demand_date,
                                pegging_v.demand_id,
                                pegging_v.origination_type,
                                pegging_v.order_number,
                                pegging_v.sales_order_line_id,
                                pegging_v.demand_source_type,--cmro
                                :l_user_id,
                                :l_sysdate,
                                :l_user_id,
                                :l_sysdate,
                                pegging_v.request_date)'; -- Bug 3370201
Line: 5472

                   l_insert_stmt := 'INSERT INTO ' || l_temp_table || '(
                                plan_id,
                                inventory_item_id,
                                organization_id,
                                sr_instance_id,
                                demand_class,
                                demand_date,
                                allocated_quantity,
                                parent_demand_id,
                                origination_type,
                                order_number,
                                sales_order_line_id,
                                demand_source_type,--cmro
                                created_by,
                                creation_date,
                                last_updated_by,
                                last_update_date,
                                demand_quantity,  -- ssurendr 25-NOV-2002: added for alloc w/b
                                request_date) -- Bug 3370201
                        (SELECT  --5053818
                                        -- time_phased_atp
                                        -- parallel(tp,' || to_char(l_parallel_degree) || ')
                                        -- 2859130 full(cal)
                                        --parallel(cal,' || to_char(l_parallel_degree) || ')
                                peg1.plan_id plan_id,
                                peg1.inventory_item_id,
                                peg1.organization_id,
                                peg1.sr_instance_id,
                                :def_num demand_class,
                                -- Bug 3574164 DMD_SATISFIED_DATE IS CHANGED TO PLANNED_SHIP_DATE.
                                trunc(DECODE('||MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF||',
                                             2, NVL(d.PLANNED_SHIP_DATE,d.USING_ASSEMBLY_DEMAND_DATE),
                                                NVL(d.SCHEDULE_SHIP_DATE,d.USING_ASSEMBLY_DEMAND_DATE))),--plan by request date, promise date or schedule date -- 2859130
                                -- cal.prior_date,
                                SUM(peg1.allocated_quantity),
                                d.demand_id,
                                d.origination_type,
        			--d.order_number,
        			-- rajjain 04/25/2003 Bug 2771075
                                -- For Planned Order Demands We will populate disposition_id
                                -- in order_number column
        			decode(d.origination_type, 1, to_char(d.disposition_id), d.order_number),
                                d.sales_order_line_id,
                                d.demand_source_type,--cmro
                                :l_user_id,
                                :l_sysdate,
                                :l_user_id,
                                :l_sysdate,
        			MIN(decode(d.origination_type, 4, d.daily_demand_rate,
        			           d.using_requirement_quantity)), -- rajjain 02/06/2003 Bug 2782882
        			--MIN(peg1.demand_quantity)  -- ssurendr 25-NOV-2002: added for alloc w/b
        			-- min is used to select distinct values as demand_quantity would be
        			-- repeating for the same demand_id
			        decode(d.order_date_type_code,2,d.request_date,
			           d.request_ship_date) request_date -- Bug 3370201
                        FROM    msc_full_pegging peg2,
                                msc_full_pegging peg1,
                                msc_demands d
                                -- time_phased_atp msc_trading_partners tp
                                -- 2859130 msc_calendar_dates cal
                        WHERE   peg1.plan_id = :p_plan_id
                        AND     peg2.plan_id = peg1.plan_id
                        AND     peg2.pegging_id = peg1.end_pegging_id
                        AND     peg2.demand_id IN (-1, -2)
                        AND     d.demand_id = peg1.demand_id
                        AND     peg1.plan_id = d.plan_id
                        AND     d.sr_instance_id = peg1.sr_instance_id
                        AND     d.origination_type NOT IN (5,7,8,9,11,15,22,28,29,31,70)
                        -- time_phased_atp
                        --AND     tp.sr_tp_id = peg1.organization_id
        		--AND	tp.partner_type = 3 -- bug2646304
                        --AND     tp.sr_instance_id = peg1.sr_instance_id
                        -- 2859130 AND     tp.sr_instance_id = cal.sr_instance_id
                        --AND     tp.calendar_code = cal.calendar_code
                        --AND     tp.calendar_exception_set_id = cal.exception_set_id
                        --AND     TRUNC(d.using_assembly_demand_date) = cal.calendar_date
                        GROUP BY
                                peg1.plan_id,
                                peg1.inventory_item_id,
                                peg1.organization_id,
                                peg1.sr_instance_id,
                                :def_num,
                                -- Bug 3574164 DMD_SATISFIED_DATE IS CHANGED TO PLANNED_SHIP_DATE.
                                trunc(DECODE('||MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF||',
                                             2, NVL(d.PLANNED_SHIP_DATE,d.USING_ASSEMBLY_DEMAND_DATE),
                                                NVL(d.SCHEDULE_SHIP_DATE,d.USING_ASSEMBLY_DEMAND_DATE))),--plan by request date, promise date or schedule date
                                --cal.prior_date,
                                d.demand_id,
                                d.origination_type,
                                decode(d.origination_type, 1, to_char(d.disposition_id), d.order_number),
                                d.sales_order_line_id,
                                d.demand_source_type,--cmro
                                :l_user_id,
                                :l_sysdate,
                                :l_user_id,
                                :l_sysdate,
			        decode(d.order_date_type_code,2,d.request_date,
			           d.request_ship_date) -- Bug 3370201
        		)';
Line: 5578

           DBMS_SQL.PARSE(cur_handler, l_insert_stmt, DBMS_SQL.NATIVE);
Line: 5591

           msc_util.msc_log('after inserting item data into MSC_TEMP_ALLOC_DEMANDS table');
Line: 5649

           SELECT  t.tablespace_name, NVL(i.def_tablespace_name, t.tablespace_name)
           INTO    l_tbspace, l_ind_tbspace
           --bug 2495962: Change refrence from dba_xxx to all_xxx tables
           --FROM    dba_tab_partitions t,
           --        dba_part_indexes i
           FROM    all_tab_partitions t,
                   all_part_indexes i
           WHERE   t.table_owner = l_msc_schema
           AND     t.table_name = 'MSC_ALLOC_SUPPLIES'
           AND     t.partition_name = 'ALLOC_SUPPLIES_' || to_char(l_plan_id)
           AND     i.owner (+) = t.table_owner
           AND     i.table_name (+) = t.table_name
           AND     rownum = 1;
Line: 5667

           l_insert_stmt := 'CREATE TABLE ' || l_temp_table
           || ' TABLESPACE ' || l_tbspace
           || ' PCTFREE 0 STORAGE(INITIAL 40K NEXT 5M PCTINCREASE 0)'
           || ' as select * from msc_alloc_supplies where 1=2 ';
Line: 5673

           l_insert_stmt := 'CREATE TABLE ' || l_temp_table || '(
                                 PLAN_ID                    NUMBER           NOT NULL,
                                 INVENTORY_ITEM_ID          NUMBER           NOT NULL,
                                 ORGANIZATION_ID            NUMBER           NOT NULL,
                                 SR_INSTANCE_ID             NUMBER           NOT NULL,
                                 DEMAND_CLASS               VARCHAR2(30)      ,  --bug3272444
                                 SUPPLY_DATE                DATE             NOT NULL,
                                 PARENT_TRANSACTION_ID      NUMBER           NOT NULL,
                                 ALLOCATED_QUANTITY         NUMBER           NOT NULL,
                                 ORDER_TYPE                 NUMBER           NOT NULL,
                                 ORDER_NUMBER               VARCHAR2(240),
				 SCHEDULE_DESIGNATOR_ID	    NUMBER,
                                 SALES_ORDER_LINE_ID        NUMBER,
                                 OLD_SUPPLY_DATE            DATE,
                                 OLD_ALLOCATED_QUANTITY     NUMBER,
				 STEALING_FLAG		    NUMBER,
                                 CREATED_BY                 NUMBER           NOT NULL,
                                 CREATION_DATE              DATE             NOT NULL,
                                 LAST_UPDATED_BY            NUMBER           NOT NULL,
                                 LAST_UPDATE_DATE           DATE             NOT NULL,
                                 FROM_DEMAND_CLASS          VARCHAR2(80),  -- ssurendr 25-NOV-2002: added for alloc w/b
                                 SUPPLY_QUANTITY            NUMBER,        -- ssurendr 25-NOV-2002: added for alloc w/b
                                 ORIGINAL_ORDER_TYPE        NUMBER,        -- For time_phased_atp --bug3272444
                                 ORIGINAL_ITEM_ID           NUMBER,        -- For time_phased_atp --bug3272444
                                 CUSTOMER_ID                NUMBER,        -- For time_phased_atp
                                 SHIP_TO_SITE_ID            NUMBER,
                                 REFRESH_NUMBER             NUMBER,
                                 OLD_REFRESH_NUMBER         NUMBER,        --bug3272444
                                 ATO_MODEL_LINE_ID          NUMBER,
                               --ATO_MODEL_LINE_ID          NUMBER)        -- For time_phased_atp commented as part of cmro
                                 DEMAND_SOURCE_TYPE         NUMBER)        --cmro
                            TABLESPACE ' || l_tbspace || '
                            -- NOLOGGING
                            PCTFREE 0 STORAGE(INITIAL 40K NEXT 5M PCTINCREASE 0)';
Line: 5714

                   STATEMENT => l_insert_stmt,
                   OBJECT_NAME => l_temp_table);
Line: 5735

                        STATEMENT => l_insert_stmt,
                        OBJECT_NAME => l_temp_table);
Line: 5745

           l_insert_stmt := 'INSERT INTO ' || l_temp_table || '(
                        plan_id,
                        inventory_item_id,
                        organization_id,
                        sr_instance_id,
                        demand_class,
                        supply_date,
                        allocated_quantity,
                        parent_transaction_id,
                        order_type,
                        order_number,
                        schedule_designator_id,
                        created_by,
                        creation_date,
                        last_updated_by,
                        last_update_date,
                        supply_quantity)  -- ssurendr 25-NOV-2002: added for alloc w/b
                (
		SELECT	--5053818
			peg1.plan_id plan_id,
			peg1.inventory_item_id,
			peg1.organization_id,
			peg1.sr_instance_id,
			NVL(mv.demand_class, :def_num) demand_class,
			peg1.supply_date,
			SUM(peg1.allocated_quantity) allocated_quantity,
                        peg1.transaction_id,
			peg1.order_type,
			peg1.order_number,
			peg1.schedule_designator_id,
                        :l_user_id created_by,
                        :l_sysdate creation_date,
                        :l_user_id last_updated_by,
                        :l_sysdate last_update_date,
			MIN(peg1.supply_quantity) supply_quantity  -- ssurendr 25-NOV-2002: added for alloc w/b
			-- min is used to select distinct values as supply_quantity would be
			-- repeating for the same transaction_id
		FROM    -- msc_supply_pegging_v peg1,
			(SELECT --5053818
                                        -- time_phased_atp parallel(tp,' || to_char(l_parallel_degree) || ')
                                        -- parallel(cal,' || to_char(l_parallel_degree) || ')
				peg2.plan_id,
				peg2.inventory_item_id,
				peg2.organization_id,
				peg2.sr_instance_id,
				NVL (d.demand_class, :def_num) demand_class,
				trunc(s.new_schedule_date) supply_date,
				-- cal.next_date supply_date,
				-- cal.calendar_date supply_date, -- 2859130
				peg2.allocated_quantity,
				peg2.transaction_id,
				s.order_type,
				s.order_number,
				s.schedule_designator_id,
				nvl(s.firm_quantity,s.new_order_quantity) supply_quantity -- rajjain 02/06/2003 Bug 2782882
				--peg2.supply_quantity  -- ssurendr 25-NOV-2002: added for alloc w/b
			FROM	msc_supplies s,
				msc_full_pegging peg2,
				msc_full_pegging peg1,
				msc_demands d
                                -- time_phased_atp msc_trading_partners tp
                                -- 2859130 msc_calendar_dates cal
			WHERE	peg2.plan_id = peg1.plan_id
			  AND	peg2.end_pegging_id = peg1.pegging_id
			  AND	d.plan_id = peg1.plan_id
			  AND	d.demand_id = peg1.demand_id
			  AND	d.sr_instance_id = peg1.sr_instance_id
			  AND	d.inventory_item_id = peg1.inventory_item_id
			  AND	s.plan_id = peg2.plan_id
			  AND	s.transaction_id = peg2.transaction_id
			  AND	s.sr_instance_id = peg2.sr_instance_id
                          -- time_phased_atp
                          --AND   tp.sr_tp_id = peg2.organization_id
			  --AND	tp.partner_type = 3 -- bug2646304
                          --AND   tp.sr_instance_id = peg2.sr_instance_id
                          -- 2859130 AND   tp.sr_instance_id = cal.sr_instance_id
                          --AND   tp.calendar_code = cal.calendar_code
                          --AND   tp.calendar_exception_set_id = cal.exception_set_id
                          --AND   TRUNC(s.new_schedule_date) = cal.calendar_date
                        ) peg1,
			msc_item_hierarchy_mv mv
		WHERE   peg1.plan_id = :p_plan_id
		AND     peg1.inventory_item_id = mv.inventory_item_id(+)
		AND     peg1.organization_id = mv.organization_id (+)
		AND     peg1.sr_instance_id = mv.sr_instance_id (+)
		AND     peg1.supply_date >=  mv.effective_date (+)
		AND     peg1.supply_date <=  mv.disable_date (+)
		AND	peg1.demand_class = mv.demand_class (+)
		AND     mv.level_id (+) = -1
		GROUP BY
			peg1.plan_id,
			peg1.inventory_item_id,
			peg1.organization_id,
			peg1.sr_instance_id,
			NVL(mv.demand_class, :def_num),
			peg1.supply_date,
                        peg1.transaction_id,
			peg1.order_type,
			peg1.order_number,
			peg1.schedule_designator_id,
                        :l_user_id,
                        :l_sysdate,
                        :l_user_id,
                        :l_sysdate)';
Line: 5854

           DBMS_SQL.PARSE(cur_handler, l_insert_stmt, DBMS_SQL.NATIVE);
Line: 5867

           msc_util.msc_log('After inserting in msc_alloc_supplies part 1');
Line: 5886

                   l_insert_stmt := 'INSERT INTO ' || l_temp_table || '(
                                plan_id,
                                inventory_item_id,
                                organization_id,
                                sr_instance_id,
                                demand_class,
                                supply_date,
                                allocated_quantity,
                                parent_transaction_id,
                                order_type,
                                order_number,
                                schedule_designator_id,
                                created_by,
                                creation_date,
                                last_updated_by,
                                last_update_date,
                                supply_quantity)
        		(
        	        SELECT	--5053818
                                pegging_v.plan_id plan_id,
                                pegging_v.inventory_item_id,
                                pegging_v.organization_id,
                                pegging_v.sr_instance_id,
                                NVL(mv.demand_class, :def_num) demand_class,
                                pegging_v.supply_date,
                                SUM(pegging_v.allocated_quantity),
                                pegging_v.transaction_id,
                                pegging_v.order_type,
                                pegging_v.order_number,
                                pegging_v.schedule_designator_id,
                                :l_user_id,
                                :l_sysdate,
                                :l_user_id,
                                :l_sysdate,
                                MIN(pegging_v.supply_quantity)
                        FROM
                                (SELECT  --5053818
                                        peg1.plan_id plan_id,
                                        peg1.inventory_item_id,
                                        peg1.organization_id,
                                        peg1.sr_instance_id,
                                        NVL(s.demand_class, :def_num) demand_class,
                                        trunc(s.new_schedule_date) supply_date,
                                        peg1.allocated_quantity,
                                        peg1.transaction_id,
                                        s.order_type,
                                        s.order_number,
                                        s.schedule_designator_id,
                                        nvl(s.firm_quantity,s.new_order_quantity) supply_quantity
                                FROM    msc_full_pegging peg2,
                                        msc_full_pegging peg1,
                                	msc_supplies s
                                WHERE   peg1.plan_id = :p_plan_id
                                AND     peg2.plan_id = peg1.plan_id
                                AND     peg2.pegging_id = peg1.end_pegging_id
                                AND     peg2.demand_id IN (-1, -2)
                                AND     s.plan_id = peg1.plan_id
                                AND     s.transaction_id = peg1.transaction_id
                                AND     s.sr_instance_id = peg1.sr_instance_id) pegging_v,
                                msc_item_hierarchy_mv mv
                        WHERE	pegging_v.inventory_item_id = mv.inventory_item_id(+)
                        AND     pegging_v.organization_id = mv.organization_id (+)
                        AND     pegging_v.sr_instance_id = mv.sr_instance_id (+)
                        AND     pegging_v.supply_date >=  mv.effective_date (+)
                        AND     pegging_v.supply_date <=  mv.disable_date (+)
                        AND	pegging_v.demand_class = mv.demand_class (+)
                        AND     mv.level_id (+) = -1
        		GROUP BY
                                pegging_v.plan_id,
                                pegging_v.inventory_item_id,
                                pegging_v.organization_id,
                                pegging_v.sr_instance_id,
                                NVL(mv.demand_class, :def_num),
                                pegging_v.supply_date,
                                pegging_v.transaction_id,
                                pegging_v.order_type,
                                pegging_v.order_number,
                                pegging_v.schedule_designator_id,
                                :l_user_id,
                                :l_sysdate,
                                :l_user_id,
                                :l_sysdate)';
Line: 5972

                   l_insert_stmt := 'INSERT INTO ' || l_temp_table || '(
                                plan_id,
                                inventory_item_id,
                                organization_id,
                                sr_instance_id,
                                demand_class,
                                supply_date,
                                allocated_quantity,
                                parent_transaction_id,
                                order_type,
                                order_number,
                                schedule_designator_id,
                                created_by,
                                creation_date,
                                last_updated_by,
                                last_update_date,
                                supply_quantity)  -- ssurendr 25-NOV-2002: added for alloc w/b
                        (
        		SELECT  --5053818
                                        -- time_phased_atp parallel(tp,' || to_char(l_parallel_degree) || ')
                                        --2859130 parallel(cal,' || to_char(l_parallel_degree) || ')
                                peg1.plan_id plan_id,
        		        peg1.inventory_item_id,
        		        peg1.organization_id,
        		        peg1.sr_instance_id,
        		        :def_num demand_class,
        			trunc(s.new_schedule_date),
        			-- cal.next_date,
                                --cal.calendar_date, -- 2859130
        			SUM(peg1.allocated_quantity),
                                peg1.transaction_id,
        			s.order_type,
        			s.order_number,
        			s.schedule_designator_id,
                                :l_user_id,
                                :l_sysdate,
                                :l_user_id,
                                :l_sysdate,
        			MIN(nvl(s.firm_quantity,s.new_order_quantity))  -- rajjain 02/06/2003 Bug 2782882
        			--MIN(peg1.supply_quantity)  -- ssurendr 25-NOV-2002: added for alloc w/b
        			-- min is used to select distinct values as supply_quantity would be
        			-- repeating for the same transaction_id
        		FROM    msc_full_pegging peg2,
        		        msc_full_pegging peg1,
        			msc_supplies s
                                -- msc_trading_partners tp
                                -- msc_calendar_dates cal
        		WHERE   peg1.plan_id = :p_plan_id
        		AND     peg2.plan_id = peg1.plan_id
        		AND     peg2.pegging_id = peg1.end_pegging_id
        		AND     peg2.demand_id IN (-1, -2)
        		AND     s.plan_id = peg1.plan_id
        		AND     s.transaction_id = peg1.transaction_id
        		AND     s.sr_instance_id = peg1.sr_instance_id
                        -- time_phased_atp
                        --AND     tp.sr_tp_id = peg1.organization_id
        		--AND	tp.partner_type = 3 -- bug2646304
                        --AND     tp.sr_instance_id = peg1.sr_instance_id
                        -- 2859130 AND     tp.sr_instance_id = cal.sr_instance_id
                        --AND     tp.calendar_code = cal.calendar_code
                        --AND     tp.calendar_exception_set_id = cal.exception_set_id
                        --AND     TRUNC(s.new_schedule_date) = cal.calendar_date
        		GROUP BY
        			peg1.plan_id,
        		        peg1.inventory_item_id,
        		        peg1.organization_id,
        		        peg1.sr_instance_id,
        		        :def_num,
        			trunc(s.new_schedule_date),
        			-- cal.next_date, -- 2859130
                                peg1.transaction_id,
        			s.order_type,
        			s.order_number,
        			s.schedule_designator_id,
                                :l_user_id,
                                :l_sysdate,
                                :l_user_id,
                                :l_sysdate)';
Line: 6057

           DBMS_SQL.PARSE(cur_handler, l_insert_stmt, DBMS_SQL.NATIVE);
Line: 6070

           msc_util.msc_log('After inserting in msc_alloc_supplies part 2');
Line: 6177

	--insert reservation_records to msc_alloc_demands.
	msc_util.msc_log('inserting reservation rows in msc_alloc_demands');
Line: 6179

	INSERT INTO MSC_ALLOC_DEMANDS(
			plan_id,
			inventory_item_id,
			organization_id,
			sr_instance_id,
			demand_class,
			demand_date,
			allocated_quantity,
			parent_demand_id,
			origination_type,
			order_number,
			sales_order_line_id,
			created_by,
			creation_date,
			last_updated_by,
			last_update_date,
			demand_quantity
                        )
        (SELECT
            plan_id,
            USING_ASSEMBLY_ITEM_ID,
            ORGANIZATION_ID,
            SR_INSTANCE_ID,
            DECODE(DEMAND_CLASS, NULL, '-1', MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                  NULL,
                                                  NULL,
                                                  USING_ASSEMBLY_ITEM_ID,
                                                  ORGANIZATION_ID,
                                                  SR_INSTANCE_ID,
                                                  TRUNC(SYSDATE),
                                                  NULL,
                                                  DEMAND_CLASS)), --bug 13064033
            TRUNC(SYSDATE),
            using_requirement_quantity,
            demand_id,
            origination_type,
            ORDER_NUMBER,
            SALES_ORDER_LINE_ID,
            CREATED_BY,
            CREATION_DATE,
            LAST_UPDATED_BY,
            LAST_UPDATE_DATE,
            using_requirement_quantity
            from msc_demands
            where plan_id = p_plan_id
            and origination_type = -100
            and using_requirement_quantity <> 0
            );
Line: 6227

	msc_util.msc_log('inserted reservation rows in msc_alloc_demands :' || SQL%ROWCOUNT);
Line: 6230

            update msc_plans
            set    summary_flag = 3
            where  plan_id = p_plan_id;
Line: 6247

               update msc_plans
               set    summary_flag = 1
               where  plan_id = p_plan_id;
Line: 6323

       SELECT count(*)
       INTO   l_count
       FROM   msc_plans plans,
              msc_designators desig
       WHERE  desig.inventory_atp_flag = 1
       AND    plans.plan_id = p_plan_id
       AND    plans.compile_designator = desig.designator
       AND    plans.sr_instance_id = desig.sr_instance_id
       AND    plans.organization_id = desig.organization_id
       AND    plans.plan_completion_date is not null
       AND    plans.data_completion_date is not null
       -- IO Perf:3693983: Don't Launch ATP Post Plan Processes for IO Plans
       AND    plans.plan_type <> 4;
Line: 6356

    SELECT count(*)
    INTO   l_count
    FROM   msc_plans plans,
           msc_designators desig
    WHERE  desig.inventory_atp_flag = 1
    AND    plans.plan_id = p_plan_id
    AND    plans.compile_designator = desig.designator
    AND    plans.sr_instance_id = desig.sr_instance_id
    AND    plans.organization_id = desig.organization_id
    AND    plans.plan_completion_date is not null
    AND    plans.data_completion_date is not null;
Line: 6374

        select  nvl (copy_plan_id, -1)
        into    l_copy_plan_id
        from    msc_plans
        where   plan_id = p_plan_id
        -- IO Perf:3693983: Don't Launch ATP Post Plan Processes for IO Plans
        AND     plan_type <> 4;
Line: 6389

    SELECT count(*)
       INTO   l_count1
       FROM   msc_plans plans,
              msc_designators desig
       WHERE  desig.inventory_atp_flag = 1
       AND    plans.plan_id = l_copy_plan_id
       AND    plans.compile_designator = desig.designator
       AND    plans.sr_instance_id = desig.sr_instance_id
       AND    plans.organization_id = desig.organization_id
       AND    plans.plan_completion_date is not null
       AND    plans.data_completion_date is not null
       AND    plans.plan_type <> 4;
Line: 6412

       UPDATE msc_plans
       SET    summary_flag = 1
       WHERE  plan_id = p_plan_id;
Line: 6423

        UPDATE msc_plans
        SET    summary_flag = 1
        WHERE  plan_id = p_plan_id;
Line: 6438

	UPDATE msc_plans       /* for 24x7 ATP */
        SET     request_id = l_request_id
        WHERE   plan_id = p_plan_id;
Line: 6457

 * Deletes entries from mrp_atp_schedule_temp and mrp_atp_details_temp
 * older than p_hours old
 *
 */
PROCEDURE ATP_Purge_MRP_Temp(
  ERRBUF		OUT	NoCopy VARCHAR2,
  RETCODE		OUT	NoCopy NUMBER,
  p_hours		IN	NUMBER
)
IS
l_retain_date		DATE;
Line: 6486

		msc_util.msc_log('Delete records older than l_retain_date ' ||
					   to_char(l_retain_date, 'DD:MM:YYYY hh24:mi:ss'));
Line: 6492

		DELETE FROM mrp_atp_schedule_temp
		WHERE last_update_date < l_retain_date;
Line: 6495

		msc_util.msc_log('Records Deleted from mrp_atp_schedule_temp : ' ||
					  SQL%ROWCOUNT);
Line: 6501

		DELETE FROM mrp_atp_details_temp
		WHERE last_update_date < l_retain_date;
Line: 6504

		msc_util.msc_log('Records Deleted from mrp_atp_details_temp : ' ||
					  SQL%ROWCOUNT);
Line: 6507

                DELETE FROM msc_atp_src_profile_temp
		WHERE last_update_date < l_retain_date;
Line: 6510

		msc_util.msc_log('Records Deleted from msc_atp_src_profile_temp : ' ||
					  SQL%ROWCOUNT);
Line: 6516

	        SELECT  a.oracle_username
      	        INTO    l_mrp_schema
      	        FROM    FND_ORACLE_USERID a,
                        FND_PRODUCT_INSTALLATIONS b
      	        WHERE   a.oracle_id = b.oracle_id
      	        AND     b.application_id = 704;
Line: 6529

		SELECT  a.oracle_username
      	        INTO    l_msc_schema
      	        FROM    FND_ORACLE_USERID a,
                        FND_PRODUCT_INSTALLATIONS b
      	        WHERE   a.oracle_id = b.oracle_id
      	        AND     b.application_id = 724;
Line: 6600

            msc_util.msc_log('LOAD_PLAN_SUMMARY_SD: ' || 'before deleteing data from the table');
Line: 6602

            DELETE MSC_ATP_SUMMARY_SD where plan_id = p_plan_id;
Line: 6610

            msc_util.msc_log('LOAD_PLAN_SUMMARY_SD: ' || 'Insert data into sd table');
Line: 6614

            msc_util.msc_log('LOAD_PLAN_SUMMARY_SD: ' || 'After inserting into MSC_ATP_SUMMARY_SD');
Line: 6617

            msc_util.msc_log('LOAD_PLAN_SUMMARY_SD: ' || 'Insert data into sd table');
Line: 6647

            msc_util.msc_log('LOAD_PLAN_SUMMARY_SD: ' || 'After inserting into MSC_ATP_SUMMARY_SD');
Line: 6655

            msc_util.msc_log('LOAD_PLAN_SUMMARY_SD: ' || 'Insert data into sd table');
Line: 6659

            msc_util.msc_log('LOAD_PLAN_SUMMARY_SD: ' || 'After inserting into MSC_ATP_SUMMARY_SD');
Line: 6662

            msc_util.msc_log('LOAD_PLAN_SUMMARY_SD: ' || 'Insert data into sd table');
Line: 6673

            msc_util.msc_log('LOAD_PLAN_SUMMARY_SD: ' || 'After inserting into MSC_ATP_SUMMARY_SD');
Line: 6693

    INSERT INTO MSC_ATP_SUMMARY_SD (
            plan_id,
            sr_instance_id,
            organization_id,
            inventory_item_id,
            demand_class,
            sd_date,
            sd_qty,
            last_update_date,
            last_updated_by,
            creation_date,
            created_by)
   (SELECT  plan_id,
            sr_instance_id,
            organization_id,
            inventory_item_id,
            demand_class,
            SD_DATE,
            sum(sd_qty),
            last_update_date,
            last_updated_by,
            creation_date,
            created_by
            --Bug 6046524 added index hint for performance improvement.
    from   (SELECT /*+ ORDERED index(C,MSC_CALENDAR_DATES_U1)*/
                    I.plan_id plan_id,
                    I.sr_instance_id,
                    I.organization_id,
                    I.inventory_item_id,
                    '@@@' demand_class,
                    -- TRUNC(C.PRIOR_DATE) SD_DATE,
                    C.CALENDAR_DATE SD_DATE, -- 2859130
                    -1* DECODE(D.ORIGINATION_TYPE,
                               4, D.DAILY_DEMAND_RATE,
                                  D.USING_REQUIREMENT_QUANTITY) SD_QTY,
                    p_sys_date last_update_date,
                    l_user_id last_updated_by,
                    p_sys_date creation_date,
                    l_user_id created_by
            FROM    MSC_SYSTEM_ITEMS I,
                    MSC_TRADING_PARTNERS P,
                    MSC_DEMANDS D,
                    MSC_CALENDAR_DATES C
            WHERE   I.ATP_FLAG = 'Y'
            AND     I.PLAN_ID = p_plan_id
            AND     D.PLAN_ID = I.PLAN_ID
            AND     D.SR_INSTANCE_ID = I.SR_INSTANCE_ID
            AND     D.INVENTORY_ITEM_ID = I.INVENTORY_ITEM_ID
            AND     D.ORGANIZATION_ID = I.ORGANIZATION_ID
                    -- 1243985
            AND     D.ORIGINATION_TYPE NOT IN (5,7,8,9,11,15,22,28,29,31,70)
                    -- Bug 1530311, forecast to be excluded
            AND     C.CALENDAR_CODE = P.CALENDAR_CODE
            AND     C.EXCEPTION_SET_ID = P.CALENDAR_EXCEPTION_SET_ID
            AND     C.SR_INSTANCE_ID = D.SR_INSTANCE_ID
                    -- since we store repetitive schedule demand in different ways for
                    -- ods (total quantity on start date) and pds  (daily quantity from
                    -- start date to end date), we need to make sure we only select work day
                    -- for pds's repetitive schedule demand.
                    -- Bug 3574164 DMD_SATISFIED_DATE IS CHANGED TO PLANNED_SHIP_DATE.
            AND     C.CALENDAR_DATE
                        BETWEEN
                        TRUNC(DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
                                     2, NVL(d.PLANNED_SHIP_DATE,d.USING_ASSEMBLY_DEMAND_DATE),
                                        NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))
                        AND
                        TRUNC(NVL(D.ASSEMBLY_DEMAND_COMP_DATE,
                                  DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
                                     2, NVL(d.PLANNED_SHIP_DATE,d.USING_ASSEMBLY_DEMAND_DATE),
                                        NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))))--plan by request date, promise date or schedule date
            AND     ((D.ORIGINATION_TYPE = 4 AND C.SEQ_NUM IS NOT NULL) OR
                    (D.ORIGINATION_TYPE  <> 4))
            AND     I.ORGANIZATION_ID = P.SR_TP_ID
            AND     I.SR_INSTANCE_ID  = P.SR_INSTANCE_ID
            AND     P.PARTNER_TYPE    = 3
            AND     D.REFRESH_NUMBER IS NULL   -- consider only planning records in full summation - summary enhancement

            UNION ALL

    --Bug 6046524 added index hint for performance improvement.
            SELECT  /*+ ORDERED index(C,MSC_CALENDAR_DATES_U1)*/
                    I.plan_id plan_id,
                    I.sr_instance_id,
                    I.organization_id,
                    I.inventory_item_id,
                    '@@@' demand_class,
                    -- TRUNC(C.NEXT_DATE) SD_DATE, -- 2859130
                    C.CALENDAR_DATE SD_DATE,
                    NVL(S.FIRM_QUANTITY,S.NEW_ORDER_QUANTITY)  SD_QTY,
                    p_sys_date last_update_date,
                    l_user_id last_updated_by,
                    p_sys_date creation_date,
                    l_user_id created_by
            FROM    MSC_SYSTEM_ITEMS I,
                    MSC_TRADING_PARTNERS P,
                    MSC_SUPPLIES S,
                    MSC_CALENDAR_DATES C
            WHERE   I.ATP_FLAG = 'Y'
            AND     I.PLAN_ID = p_plan_id
            AND     S.PLAN_ID = I.PLAN_ID
            AND     S.SR_INSTANCE_ID = I.SR_INSTANCE_ID
            AND     S.INVENTORY_ITEM_ID = I.INVENTORY_ITEM_ID
            AND     S.ORGANIZATION_ID = I.ORGANIZATION_ID
                    -- Exclude Cancelled Supplies 2460645
            AND     NVL(S.DISPOSITION_STATUS_TYPE, 1) <> 2 -- Bug 2460645
            AND     NVL(S.FIRM_QUANTITY,S.NEW_ORDER_QUANTITY) <> 0 -- 1243985
            AND     C.CALENDAR_CODE = P.CALENDAR_CODE
            AND     C.EXCEPTION_SET_ID = P.CALENDAR_EXCEPTION_SET_ID
            AND     C.SR_INSTANCE_ID = S.SR_INSTANCE_ID
            AND     C.CALENDAR_DATE BETWEEN TRUNC(NVL(S.FIRM_DATE,S.NEW_SCHEDULE_DATE))
            AND     TRUNC(NVL(S.LAST_UNIT_COMPLETION_DATE, NVL(S.FIRM_DATE,S.NEW_SCHEDULE_DATE)))
            AND     DECODE(S.LAST_UNIT_COMPLETION_DATE,
                           NULL, C.NEXT_SEQ_NUM, C.SEQ_NUM) IS NOT NULL
            AND     I.ORGANIZATION_ID = P.SR_TP_ID
            AND     I.SR_INSTANCE_ID  = P.SR_INSTANCE_ID
            AND     P.PARTNER_TYPE    = 3
            AND     S.REFRESH_NUMBER IS NULL   -- consider only planning records in full summation - summary enhancement
           )
    GROUP BY plan_id, inventory_item_id,organization_id, sr_instance_id,demand_class, sd_date,
            last_update_date, last_updated_by, creation_date, created_by );
Line: 6814

    msc_util.msc_log('LOAD_SD_FULL_UNALLOC_UNOPT: ' || 'Records inserted : ' || SQL%ROWCOUNT);
Line: 6833

    INSERT INTO MSC_ATP_SUMMARY_SD (
            plan_id,
            sr_instance_id,
            organization_id,
            inventory_item_id,
            demand_class,
            sd_date,
            sd_qty,
            last_update_date,
            last_updated_by,
            creation_date,
            created_by)
   (SELECT  plan_id,
            sr_instance_id,
            organization_id,
            inventory_item_id,
            demand_class,
            SD_DATE,
            sum(sd_qty),
            last_update_date,
            last_updated_by,
            creation_date,
            created_by
    from   (SELECT /*+ ORDERED */
                    I.plan_id plan_id,
                    I.sr_instance_id,
                    I.organization_id,
                    I.inventory_item_id,
                    '@@@' demand_class,
                    -- TRUNC(C.PRIOR_DATE) SD_DATE,
                    C.CALENDAR_DATE SD_DATE, -- 2859130
                    -1* DECODE(D.ORIGINATION_TYPE,
                               4, D.DAILY_DEMAND_RATE,
                                  D.USING_REQUIREMENT_QUANTITY) SD_QTY,
                    p_sys_date last_update_date,
                    l_user_id last_updated_by,
                    p_sys_date creation_date,
                    l_user_id created_by
            FROM    MSC_SYSTEM_ITEMS I,
                    MSC_TRADING_PARTNERS P,
                    MSC_DEMANDS D,
                    MSC_CALENDAR_DATES C
            WHERE   I.ATP_FLAG = 'Y'
            AND     I.PLAN_ID = p_plan_id
            AND     D.PLAN_ID = I.PLAN_ID
            AND     D.SR_INSTANCE_ID = I.SR_INSTANCE_ID
            AND     D.INVENTORY_ITEM_ID = I.INVENTORY_ITEM_ID
            AND     D.ORGANIZATION_ID = I.ORGANIZATION_ID
                    -- 1243985
            AND     D.ORIGINATION_TYPE NOT IN (5,7,8,9,11,15,22,28,29,31,70)
                    -- Bug 1530311, forecast to be excluded
            AND     C.CALENDAR_CODE = P.CALENDAR_CODE
            AND     C.EXCEPTION_SET_ID = P.CALENDAR_EXCEPTION_SET_ID
            AND     C.SR_INSTANCE_ID = D.SR_INSTANCE_ID
                    -- since we store repetitive schedule demand in different ways for
                    -- ods (total quantity on start date) and pds  (daily quantity from
                    -- start date to end date), we need to make sure we only select work day
                    -- for pds's repetitive schedule demand.
                    -- Bug 3574164 DMD_SATISFIED_DATE IS CHANGED TO PLANNED_SHIP_DATE.
            AND     C.CALENDAR_DATE
                        BETWEEN TRUNC(DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
                                             2, NVL(d.PLANNED_SHIP_DATE,d.USING_ASSEMBLY_DEMAND_DATE),
                                                NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))
                        AND     TRUNC(NVL(D.ASSEMBLY_DEMAND_COMP_DATE,
                                          DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
                                             2, NVL(d.PLANNED_SHIP_DATE,d.USING_ASSEMBLY_DEMAND_DATE),
                                                NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))))--plan by request date, promise date or schedule date
            AND     ((D.ORIGINATION_TYPE = 4 AND C.SEQ_NUM IS NOT NULL) OR
                    (D.ORIGINATION_TYPE  <> 4))
            AND     I.ORGANIZATION_ID = P.SR_TP_ID
            AND     I.SR_INSTANCE_ID  = P.SR_INSTANCE_ID
            AND     P.PARTNER_TYPE    = 3
            AND     D.REFRESH_NUMBER IS NULL   -- consider only planning records in full summation - summary enhancement
            AND     I.AGGREGATE_TIME_FENCE_DATE IS NULL -- PF and members to be picked from alloc tables

            UNION ALL

            SELECT  /*+ ORDERED */
                    I.plan_id plan_id,
                    I.sr_instance_id,
                    I.organization_id,
                    I.inventory_item_id,
                    '@@@' demand_class,
                    -- TRUNC(C.NEXT_DATE) SD_DATE, -- 2859130
                    C.CALENDAR_DATE SD_DATE,
                    NVL(S.FIRM_QUANTITY,S.NEW_ORDER_QUANTITY)  SD_QTY,
                    p_sys_date last_update_date,
                    l_user_id last_updated_by,
                    p_sys_date creation_date,
                    l_user_id created_by
            FROM    MSC_SYSTEM_ITEMS I,
                    MSC_TRADING_PARTNERS P,
                    MSC_SUPPLIES S,
                    MSC_CALENDAR_DATES C
            WHERE   I.ATP_FLAG = 'Y'
            AND     I.PLAN_ID = p_plan_id
            AND     S.PLAN_ID = I.PLAN_ID
            AND     S.SR_INSTANCE_ID = I.SR_INSTANCE_ID
            AND     S.INVENTORY_ITEM_ID = I.INVENTORY_ITEM_ID
            AND     S.ORGANIZATION_ID = I.ORGANIZATION_ID
                    -- Exclude Cancelled Supplies 2460645
            AND     NVL(S.DISPOSITION_STATUS_TYPE, 1) <> 2 -- Bug 2460645
            AND     NVL(S.FIRM_QUANTITY,S.NEW_ORDER_QUANTITY) <> 0 -- 1243985
            AND     C.CALENDAR_CODE = P.CALENDAR_CODE
            AND     C.EXCEPTION_SET_ID = P.CALENDAR_EXCEPTION_SET_ID
            AND     C.SR_INSTANCE_ID = S.SR_INSTANCE_ID
            AND     C.CALENDAR_DATE BETWEEN TRUNC(NVL(S.FIRM_DATE,S.NEW_SCHEDULE_DATE))
            AND     TRUNC(NVL(S.LAST_UNIT_COMPLETION_DATE, NVL(S.FIRM_DATE,S.NEW_SCHEDULE_DATE)))
            AND     DECODE(S.LAST_UNIT_COMPLETION_DATE,
                           NULL, C.NEXT_SEQ_NUM, C.SEQ_NUM) IS NOT NULL
            AND     I.ORGANIZATION_ID = P.SR_TP_ID
            AND     I.SR_INSTANCE_ID  = P.SR_INSTANCE_ID
            AND     P.PARTNER_TYPE    = 3
            AND     S.REFRESH_NUMBER IS NULL   -- consider only planning records in full summation - summary enhancement
            AND     I.AGGREGATE_TIME_FENCE_DATE IS NULL -- PF and members to be picked from alloc tables

            UNION ALL

            SELECT  /*+ ORDERED */
                    AD.plan_id,
                    AD.sr_instance_id,
                    AD.organization_id,
                    AD.inventory_item_id,
                    '@@@' demand_class,
                    TRUNC(AD.demand_date) SD_DATE,
                    -1 * AD.allocated_quantity SD_QTY,
                    p_sys_date last_update_date,
                    l_user_id last_updated_by,
                    p_sys_date creation_date,
                    l_user_id created_by
            FROM    MSC_ALLOC_DEMANDS AD
            WHERE   AD.PLAN_ID = p_plan_id
            AND     AD.allocated_quantity <> 0
            AND     AD.refresh_number IS NULL   -- consider only planning records in full summation - summary enhancement

            UNION ALL

            SELECT  /*+ ORDERED */
                    SA.plan_id,
                    SA.sr_instance_id,
                    SA.organization_id,
                    SA.inventory_item_id,
                    '@@@' demand_class,
                    TRUNC(SA.supply_date) SD_DATE,
                    SA.allocated_quantity SD_QTY,
                    p_sys_date last_update_date,
                    l_user_id last_updated_by,
                    p_sys_date creation_date,
                    l_user_id created_by
            FROM    MSC_ALLOC_SUPPLIES SA
            WHERE   SA.PLAN_ID = p_plan_id
            AND     SA.allocated_quantity <> 0
            AND     SA.refresh_number IS NULL   -- consider only planning records in full summation - summary enhancement
           )
    GROUP BY plan_id, inventory_item_id,organization_id, sr_instance_id,demand_class, sd_date,
            last_update_date, last_updated_by, creation_date, created_by );
Line: 6990

    msc_util.msc_log('LOAD_SD_FULL_UNALLOC_UNOPT_PF: ' || 'Records inserted : ' || SQL%ROWCOUNT);
Line: 7009

    INSERT INTO MSC_ATP_SUMMARY_SD (
            plan_id,
            sr_instance_id,
            organization_id,
            inventory_item_id,
            demand_class,
            sd_date,
            sd_qty,
            last_update_date,
            last_updated_by,
            creation_date,
            created_by)
   (SELECT  plan_id,
            sr_instance_id,
            organization_id,
            inventory_item_id,
            demand_class,
            SD_DATE,
            sum(sd_qty),
            last_update_date,
            last_updated_by,
            creation_date,
            created_by
    from   (SELECT  /*+ ORDERED */
                    I.plan_id plan_id,
                    I.sr_instance_id,
                    I.organization_id,
                    I.inventory_item_id,
                    '@@@' demand_class,
                    -- Bug 3574164 DMD_SATISFIED_DATE IS CHANGED TO PLANNED_SHIP_DATE.
                    TRUNC(DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
                                 2, NVL(d.PLANNED_SHIP_DATE,d.USING_ASSEMBLY_DEMAND_DATE),
                                    NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))) SD_DATE,
                                    --plan by request date, promise date or schedule date -- 2859130
                    -1* D.USING_REQUIREMENT_QUANTITY SD_QTY,
                    p_sys_date last_update_date,
                    l_user_id last_updated_by,
                    p_sys_date creation_date,
                    l_user_id created_by
            FROM    MSC_SYSTEM_ITEMS I,
                    -- MSC_TRADING_PARTNERS P,  -- Removed with summary enhancement changes
                                                -- Not required as calendar has been removed
                    MSC_DEMANDS D
            WHERE   I.ATP_FLAG          = 'Y'
            AND     I.PLAN_ID           = p_plan_id
            AND     D.PLAN_ID           = I.PLAN_ID
            AND     D.SR_INSTANCE_ID    = I.SR_INSTANCE_ID
            AND     D.INVENTORY_ITEM_ID = I.INVENTORY_ITEM_ID
            AND     D.ORGANIZATION_ID   = I.ORGANIZATION_ID
            AND     D.ORIGINATION_TYPE NOT IN (5,7,8,9,11,15,22,28,29,31,70)
            --AND   I.ORGANIZATION_ID   = P.SR_TP_ID        -- Removed with summary enhancement
            --AND   I.SR_INSTANCE_ID    = P.SR_INSTANCE_ID  -- changes. Not required as calendar
            --AND   P.PARTNER_TYPE      = 3                 -- has been removed
            AND     D.REFRESH_NUMBER IS NULL   -- consider only planning records in full summation - summary enhancement

            UNION ALL

            SELECT  /*+ ORDERED */
                    I.plan_id plan_id,
                    I.sr_instance_id,
                    I.organization_id,
                    I.inventory_item_id,
                    '@@@' demand_class,
                    TRUNC(NVL(S.FIRM_DATE,S.NEW_SCHEDULE_DATE)) SD_DATE,
                    NVL(S.FIRM_QUANTITY,S.NEW_ORDER_QUANTITY)  SD_QTY,
                    p_sys_date last_update_date,
                    l_user_id last_updated_by,
                    p_sys_date creation_date,
                    l_user_id created_by
            FROM    MSC_SYSTEM_ITEMS I,
                    -- MSC_TRADING_PARTNERS P,  -- Removed with summary enhancement changes
                                                -- Not required as calendar has been removed
                    MSC_SUPPLIES S
            WHERE   I.ATP_FLAG          = 'Y'
            AND     I.PLAN_ID           = p_plan_id
            AND     S.PLAN_ID           = I.PLAN_ID
            AND     S.SR_INSTANCE_ID    = I.SR_INSTANCE_ID
            AND     S.INVENTORY_ITEM_ID = I.INVENTORY_ITEM_ID
            AND     S.ORGANIZATION_ID   = I.ORGANIZATION_ID
            AND     NVL(S.DISPOSITION_STATUS_TYPE, 1) <> 2
            AND     NVL(S.FIRM_QUANTITY,S.NEW_ORDER_QUANTITY) <> 0
            --AND   I.ORGANIZATION_ID   = P.SR_TP_ID        -- Removed with summary enhancement
            --AND   I.SR_INSTANCE_ID    = P.SR_INSTANCE_ID  -- changes. Not required as calendar
            --AND   P.PARTNER_TYPE      = 3                 -- has been removed
            AND     S.REFRESH_NUMBER IS NULL   -- consider only planning records in full summation - summary enhancement
           )
    GROUP BY plan_id, inventory_item_id,organization_id, sr_instance_id, demand_class, sd_date,
             last_update_date, last_updated_by, creation_date, created_by );
Line: 7098

    msc_util.msc_log('LOAD_SD_FULL_UNALLOC_OPT: ' || 'Records inserted : ' || SQL%ROWCOUNT);
Line: 7117

    INSERT INTO MSC_ATP_SUMMARY_SD (
            plan_id,
            sr_instance_id,
            organization_id,
            inventory_item_id,
            demand_class,
            sd_date,
            sd_qty,
            last_update_date,
            last_updated_by,
            creation_date,
            created_by)
   (SELECT  plan_id,
            sr_instance_id,
            organization_id,
            inventory_item_id,
            demand_class,
            SD_DATE,
            sum(sd_qty),
            last_update_date,
            last_updated_by,
            creation_date,
            created_by
    from   (SELECT  /*+ ORDERED */
                    I.plan_id plan_id,
                    I.sr_instance_id,
                    I.organization_id,
                    I.inventory_item_id,
                    '@@@' demand_class,
                    -- Bug 3574164 DMD_SATISFIED_DATE IS CHANGED TO PLANNED_SHIP_DATE.
                    TRUNC(DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
                                 2, NVL(d.PLANNED_SHIP_DATE,d.USING_ASSEMBLY_DEMAND_DATE),
                                    NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))) SD_DATE,
                                    --plan by request date, promise date or schedule date -- 2859130
                    -1* D.USING_REQUIREMENT_QUANTITY SD_QTY,
                    p_sys_date last_update_date,
                    l_user_id last_updated_by,
                    p_sys_date creation_date,
                    l_user_id created_by
            FROM    MSC_SYSTEM_ITEMS I,
                    -- MSC_TRADING_PARTNERS P,  -- Removed with summary enhancement changes
                                                -- Not required as calendar has been removed
                    MSC_DEMANDS D
            WHERE   I.ATP_FLAG          = 'Y'
            AND     I.PLAN_ID           = p_plan_id
            AND     D.PLAN_ID           = I.PLAN_ID
            AND     D.SR_INSTANCE_ID    = I.SR_INSTANCE_ID
            AND     D.INVENTORY_ITEM_ID = I.INVENTORY_ITEM_ID
            AND     D.ORGANIZATION_ID   = I.ORGANIZATION_ID
            AND     D.ORIGINATION_TYPE NOT IN (5,7,8,9,11,15,22,28,29,31,70)
            --AND   I.ORGANIZATION_ID   = P.SR_TP_ID        -- Removed with summary enhancement
            --AND   I.SR_INSTANCE_ID    = P.SR_INSTANCE_ID  -- changes. Not required as calendar
            --AND   P.PARTNER_TYPE      = 3                 -- has been removed
            AND     D.REFRESH_NUMBER IS NULL   -- consider only planning records in full summation - summary enhancement
            AND     I.AGGREGATE_TIME_FENCE_DATE IS NULL -- PF and members to be picked from alloc tables

            UNION ALL

            SELECT  /*+ ORDERED */
                    I.plan_id plan_id,
                    I.sr_instance_id,
                    I.organization_id,
                    I.inventory_item_id,
                    '@@@' demand_class,
                    TRUNC(NVL(S.FIRM_DATE,S.NEW_SCHEDULE_DATE)) SD_DATE,
                    NVL(S.FIRM_QUANTITY,S.NEW_ORDER_QUANTITY)  SD_QTY,
                    p_sys_date last_update_date,
                    l_user_id last_updated_by,
                    p_sys_date creation_date,
                    l_user_id created_by
            FROM    MSC_SYSTEM_ITEMS I,
                    -- MSC_TRADING_PARTNERS P,  -- Removed with summary enhancement changes
                                                -- Not required as calendar has been removed
                    MSC_SUPPLIES S
            WHERE   I.ATP_FLAG          = 'Y'
            AND     I.PLAN_ID           = p_plan_id
            AND     S.PLAN_ID           = I.PLAN_ID
            AND     S.SR_INSTANCE_ID    = I.SR_INSTANCE_ID
            AND     S.INVENTORY_ITEM_ID = I.INVENTORY_ITEM_ID
            AND     S.ORGANIZATION_ID   = I.ORGANIZATION_ID
            AND     NVL(S.DISPOSITION_STATUS_TYPE, 1) <> 2
            AND     NVL(S.FIRM_QUANTITY,S.NEW_ORDER_QUANTITY) <> 0
            --AND   I.ORGANIZATION_ID   = P.SR_TP_ID        -- Removed with summary enhancement
            --AND   I.SR_INSTANCE_ID    = P.SR_INSTANCE_ID  -- changes. Not required as calendar
            --AND   P.PARTNER_TYPE      = 3                 -- has been removed
            AND     S.REFRESH_NUMBER IS NULL   -- consider only planning records in full summation - summary enhancement
            AND     I.AGGREGATE_TIME_FENCE_DATE IS NULL -- PF and members to be picked from alloc tables

            UNION ALL

            SELECT  /*+ ORDERED */
                    AD.plan_id,
                    AD.sr_instance_id,
                    AD.organization_id,
                    AD.inventory_item_id,
                    '@@@' demand_class,
                    TRUNC(AD.demand_date) SD_DATE,
                    -1 * AD.allocated_quantity SD_QTY,
                    p_sys_date last_update_date,
                    l_user_id last_updated_by,
                    p_sys_date creation_date,
                    l_user_id created_by
            FROM    MSC_ALLOC_DEMANDS AD
            WHERE   AD.PLAN_ID = p_plan_id
            AND     AD.allocated_quantity <> 0
            AND     AD.refresh_number IS NULL   -- consider only planning records in full summation - summary enhancement

            UNION ALL

            SELECT  /*+ ORDERED */
                    SA.plan_id,
                    SA.sr_instance_id,
                    SA.organization_id,
                    SA.inventory_item_id,
                    '@@@' demand_class,
                    TRUNC(SA.supply_date) SD_DATE,
                    SA.allocated_quantity SD_QTY,
                    p_sys_date last_update_date,
                    l_user_id last_updated_by,
                    p_sys_date creation_date,
                    l_user_id created_by
            FROM    MSC_ALLOC_SUPPLIES SA
            WHERE   SA.PLAN_ID = p_plan_id
            AND     SA.allocated_quantity <> 0
            AND     SA.refresh_number IS NULL   -- consider only planning records in full summation - summary enhancement
           )
    GROUP BY plan_id, inventory_item_id,organization_id, sr_instance_id, demand_class, sd_date,
             last_update_date, last_updated_by, creation_date, created_by );
Line: 7246

    msc_util.msc_log('LOAD_SD_FULL_UNALLOC_OPT_PF: ' || 'Records inserted : ' || SQL%ROWCOUNT);
Line: 7269

    INSERT INTO MSC_ATP_SUMMARY_SD (
            plan_id,
            sr_instance_id,
            organization_id,
            inventory_item_id,
            demand_class,
            sd_date,
            sd_qty,
            last_update_date,
            last_updated_by,
            creation_date,
            created_by)
   (SELECT  plan_id,
            sr_instance_id,
            organization_id,
            inventory_item_id,
            demand_class,
            SD_DATE,
            sum(sd_qty),
            last_update_date,
            last_updated_by,
            creation_date,
            created_by
    from   (SELECT  /*+ ORDERED */
                    AD.plan_id,
                    AD.sr_instance_id,
                    AD.organization_id,
                    AD.inventory_item_id,
                    AD.demand_class,
                    TRUNC(AD.demand_date) SD_DATE,
                    -1 * AD.allocated_quantity SD_QTY,
                    p_sys_date last_update_date,
                    l_user_id last_updated_by,
                    p_sys_date creation_date,
                    l_user_id created_by
            FROM    MSC_ALLOC_DEMANDS AD
            WHERE   AD.PLAN_ID = p_plan_id
            AND     AD.allocated_quantity <> 0
            AND     AD.refresh_number IS NULL   -- consider only planning records in full summation - summary enhancement

            UNION ALL

            SELECT  /*+ ORDERED */
                    SA.plan_id,
                    SA.sr_instance_id,
                    SA.organization_id,
                    SA.inventory_item_id,
                    SA.demand_class,
                    TRUNC(SA.supply_date) SD_DATE,
                    SA.allocated_quantity SD_QTY,
                    p_sys_date last_update_date,
                    l_user_id last_updated_by,
                    p_sys_date creation_date,
                    l_user_id created_by
            FROM    MSC_ALLOC_SUPPLIES SA
            WHERE   SA.PLAN_ID = p_plan_id
            AND     SA.allocated_quantity <> 0
            AND     SA.refresh_number IS NULL   -- consider only planning records in full summation - summary enhancement
           )
    GROUP BY plan_id, inventory_item_id, organization_id, sr_instance_id,demand_class, sd_date,
            last_update_date, last_updated_by, creation_date, created_by
    HAVING sum(SD_QTY) <> 0);
Line: 7332

    msc_util.msc_log('LOAD_SD_FULL_ALLOC: ' || 'Records inserted : ' || SQL%ROWCOUNT);
Line: 7364

        SELECT  sr_instance_id,
                organization_id,
                inventory_item_id,
                SD_DATE,
                sum(sd_qty)
                -- Bug 3550296 and 3574164. IMPLEMENT_DATE AND DMD_SATISFIED_DATE are changed to
                -- IMPLEMENT_SHIP_DATE and PLANNED_SHIP_DATE resp.
        from   (SELECT  I.sr_instance_id,
                        I.organization_id,
                        I.inventory_item_id,
                        TRUNC(DECODE(D.RECORD_SOURCE,
                                     2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
                                        DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
                                               2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(d.PLANNED_SHIP_DATE,d.USING_ASSEMBLY_DEMAND_DATE))),
                                                  NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))) SD_DATE,
                                                  --plan by request date, promise date or schedule date
                        decode(D.USING_REQUIREMENT_QUANTITY,            -- Consider unscheduled orders as dummy supplies
                               0, D.OLD_DEMAND_QUANTITY,                -- For summary enhancement
                                  -1 * D.USING_REQUIREMENT_QUANTITY)  SD_QTY
                FROM    MSC_SYSTEM_ITEMS I,
                        MSC_DEMANDS D
                WHERE   I.ATP_FLAG          = 'Y'
                AND     I.PLAN_ID           = p_plan_id
                AND     D.PLAN_ID           = I.PLAN_ID
                AND     D.SR_INSTANCE_ID    = I.SR_INSTANCE_ID
                AND     D.INVENTORY_ITEM_ID = I.INVENTORY_ITEM_ID
                AND     D.ORGANIZATION_ID   = I.ORGANIZATION_ID
                AND     D.ORIGINATION_TYPE NOT IN (5,7,8,9,11,15,22,28,29,31,70)
                AND     D.REFRESH_NUMBER BETWEEN (p_last_refresh_number + 1) and p_new_refresh_number

                UNION ALL

                SELECT  I.sr_instance_id,
                        I.organization_id,
                        I.inventory_item_id,
                        TRUNC(NVL(S.FIRM_DATE,S.NEW_SCHEDULE_DATE)) SD_DATE,
                        NVL(S.FIRM_QUANTITY,S.NEW_ORDER_QUANTITY)  SD_QTY
                FROM    MSC_SYSTEM_ITEMS I,
                        MSC_SUPPLIES S
                WHERE   I.ATP_FLAG          = 'Y'
                AND     I.PLAN_ID           = p_plan_id
                AND     S.PLAN_ID           = I.PLAN_ID
                AND     S.SR_INSTANCE_ID    = I.SR_INSTANCE_ID
                AND     S.INVENTORY_ITEM_ID = I.INVENTORY_ITEM_ID
                AND     S.ORGANIZATION_ID   = I.ORGANIZATION_ID
                AND     NVL(S.DISPOSITION_STATUS_TYPE, 1) <> 2          -- These two conditions
                AND     NVL(S.FIRM_QUANTITY,S.NEW_ORDER_QUANTITY) <> 0  -- may not be required
                AND     S.REFRESH_NUMBER BETWEEN (p_last_refresh_number + 1) and p_new_refresh_number
               )
        GROUP BY inventory_item_id, organization_id, sr_instance_id, sd_date;
Line: 7420

        SELECT  sr_instance_id,
                organization_id,
                inventory_item_id,
                SD_DATE,
                sum(sd_qty)
                -- Bug 3550296 and 3574164. IMPLEMENT_DATE AND DMD_SATISFIED_DATE are changed to
                -- IMPLEMENT_SHIP_DATE and PLANNED_SHIP_DATE resp.
        from   (SELECT  I.sr_instance_id,
                        I.organization_id,
                        I.inventory_item_id,
                        TRUNC(DECODE(D.RECORD_SOURCE,
                                     2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
                                        DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
                                               2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(d.PLANNED_SHIP_DATE,d.USING_ASSEMBLY_DEMAND_DATE))),
                                                  NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))) SD_DATE,
                                                  --plan by request date, promise date or schedule date
                        decode(D.USING_REQUIREMENT_QUANTITY,            -- Consider unscheduled orders as dummy supplies
                               0, D.OLD_DEMAND_QUANTITY,                -- For summary enhancement
                                  -1 * D.USING_REQUIREMENT_QUANTITY)  SD_QTY
                FROM    MSC_SYSTEM_ITEMS I,
                        MSC_DEMANDS D
                WHERE   I.ATP_FLAG          = 'Y'
                AND     I.PLAN_ID           = p_plan_id
                AND     D.PLAN_ID           = I.PLAN_ID
                AND     D.SR_INSTANCE_ID    = I.SR_INSTANCE_ID
                AND     D.INVENTORY_ITEM_ID = I.INVENTORY_ITEM_ID
                AND     D.ORGANIZATION_ID   = I.ORGANIZATION_ID
                AND     D.ORIGINATION_TYPE NOT IN (5,7,8,9,11,15,22,28,29,31,70)
                AND     D.REFRESH_NUMBER BETWEEN (p_last_refresh_number + 1) and p_new_refresh_number
                AND     I.AGGREGATE_TIME_FENCE_DATE IS NULL -- PF and members to be picked from alloc tables

                UNION ALL

                SELECT  I.sr_instance_id,
                        I.organization_id,
                        I.inventory_item_id,
                        TRUNC(NVL(S.FIRM_DATE,S.NEW_SCHEDULE_DATE)) SD_DATE,
                        NVL(S.FIRM_QUANTITY,S.NEW_ORDER_QUANTITY)  SD_QTY
                FROM    MSC_SYSTEM_ITEMS I,
                        MSC_SUPPLIES S
                WHERE   I.ATP_FLAG          = 'Y'
                AND     I.PLAN_ID           = p_plan_id
                AND     S.PLAN_ID           = I.PLAN_ID
                AND     S.SR_INSTANCE_ID    = I.SR_INSTANCE_ID
                AND     S.INVENTORY_ITEM_ID = I.INVENTORY_ITEM_ID
                AND     S.ORGANIZATION_ID   = I.ORGANIZATION_ID
                AND     NVL(S.DISPOSITION_STATUS_TYPE, 1) <> 2          -- These two conditions
                AND     NVL(S.FIRM_QUANTITY,S.NEW_ORDER_QUANTITY) <> 0  -- may not be required
                AND     S.REFRESH_NUMBER BETWEEN (p_last_refresh_number + 1) and p_new_refresh_number
                AND     I.AGGREGATE_TIME_FENCE_DATE IS NULL -- PF and members to be picked from alloc tables

                UNION ALL

                SELECT  AD.sr_instance_id,
                        AD.organization_id,
                        AD.inventory_item_id,
                        TRUNC(AD.demand_date) SD_DATE,
                        decode(AD.allocated_quantity,
                               0, AD.old_allocated_quantity,
                                  -1 * AD.allocated_quantity) SD_QTY
                FROM    MSC_ALLOC_DEMANDS AD
                WHERE   AD.PLAN_ID = p_plan_id
                AND     AD.REFRESH_NUMBER BETWEEN (p_last_refresh_number + 1) and p_new_refresh_number

                UNION ALL

                SELECT  SA.sr_instance_id,
                        SA.organization_id,
                        SA.inventory_item_id,
                        TRUNC(SA.supply_date) SD_DATE,
                        SA.allocated_quantity SD_QTY
                FROM    MSC_ALLOC_SUPPLIES SA
                WHERE   SA.PLAN_ID = p_plan_id
                AND     SA.allocated_quantity <> 0
                AND     SA.REFRESH_NUMBER BETWEEN (p_last_refresh_number + 1) and p_new_refresh_number
               )
        GROUP BY inventory_item_id, organization_id, sr_instance_id, sd_date;
Line: 7530

        UPDATE MSC_ATP_SUMMARY_SD
        SET    sd_qty = sd_qty + l_sd_quantity_tab(j),
               last_update_date  = p_sys_date,
               last_updated_by   = l_user_id
        WHERE  plan_id           = p_plan_id
        AND    sr_instance_id    = l_sr_instance_id_tab(j)
        AND    inventory_item_id = l_inventory_item_id_tab(j)
        AND    organization_id   = l_organization_id_tab(j)
        AND    sd_date           = l_sd_date_tab(j);
Line: 7540

        msc_util.msc_log('LOAD_SD_NET_UNALLOC: ' || 'After FORALL UPDATE');
Line: 7563

            INSERT  INTO MSC_ATP_SUMMARY_SD (
                    plan_id,
                    sr_instance_id,
                    organization_id,
                    inventory_item_id,
                    demand_class,
                    sd_date,
                    sd_qty,
                    last_update_date,
                    last_updated_by,
                    creation_date,
                    created_by)
            VALUES (p_plan_id,
                    l_ins_sr_instance_id_tab(j),
                    l_ins_organization_id_tab(j),
                    l_ins_inventory_item_id_tab(j),
                    '@@@',
                    l_ins_sd_date_tab(j),
                    l_ins_sd_quantity_tab(j),
                    p_sys_date,
                    l_user_id,
                    p_sys_date,
                    l_user_id);
Line: 7587

            msc_util.msc_log('LOAD_SD_NET_UNALLOC: ' || 'After FORALL INSERT');
Line: 7590

            msc_util.msc_log('LOAD_SD_NET_UNALLOC: ' || 'No records to be inserted');
Line: 7628

        SELECT  sr_instance_id,
                organization_id,
                inventory_item_id,
                demand_class,
                SD_DATE,
                sum(sd_qty)
        from   (SELECT  AD.sr_instance_id,
                        AD.organization_id,
                        AD.inventory_item_id,
                        AD.demand_class,
                        TRUNC(AD.demand_date) SD_DATE,
                        decode(AD.allocated_quantity,
                               0, AD.old_allocated_quantity,
                                  -1 * AD.allocated_quantity) SD_QTY
                FROM    MSC_ALLOC_DEMANDS AD
                WHERE   AD.PLAN_ID = p_plan_id
                AND     AD.REFRESH_NUMBER BETWEEN (p_last_refresh_number + 1) and p_new_refresh_number

                UNION ALL

                SELECT  SA.sr_instance_id,
                        SA.organization_id,
                        SA.inventory_item_id,
                        SA.demand_class,
                        TRUNC(SA.supply_date) SD_DATE,
                        decode(SA.ALLOCATED_QUANTITY,           -- Consider deleted stealing records as dummy demands
                               0, -1 * OLD_ALLOCATED_QUANTITY,  -- For summary enhancement
                                  SA.ALLOCATED_QUANTITY) SD_QTY
                FROM    MSC_ALLOC_SUPPLIES SA
                WHERE   SA.PLAN_ID = p_plan_id
                AND     SA.REFRESH_NUMBER BETWEEN (p_last_refresh_number + 1) and p_new_refresh_number
               )
        GROUP BY inventory_item_id, organization_id, sr_instance_id, demand_class, sd_date;
Line: 7682

        UPDATE MSC_ATP_SUMMARY_SD
        SET    sd_qty = sd_qty + l_sd_quantity_tab(j),
               last_update_date  = p_sys_date,
               last_updated_by   = l_user_id
        WHERE  plan_id           = p_plan_id
        AND    sr_instance_id    = l_sr_instance_id_tab(j)
        AND    inventory_item_id = l_inventory_item_id_tab(j)
        AND    organization_id   = l_organization_id_tab(j)
        AND    sd_date           = l_sd_date_tab(j)
        AND    demand_class      = l_demand_class_tab(j);
Line: 7693

        msc_util.msc_log('LOAD_SD_NET_ALLOC: ' || 'After FORALL UPDATE');
Line: 7718

            INSERT  INTO MSC_ATP_SUMMARY_SD (
                    plan_id,
                    sr_instance_id,
                    organization_id,
                    inventory_item_id,
                    demand_class,
                    sd_date,
                    sd_qty,
                    last_update_date,
                    last_updated_by,
                    creation_date,
                    created_by)
            VALUES (p_plan_id,
                    l_ins_sr_instance_id_tab(j),
                    l_ins_organization_id_tab(j),
                    l_ins_inventory_item_id_tab(j),
                    l_ins_demand_class_tab(j),
                    l_ins_sd_date_tab(j),
                    l_ins_sd_quantity_tab(j),
                    p_sys_date,
                    l_user_id,
                    p_sys_date,
                    l_user_id);
Line: 7742

            msc_util.msc_log('LOAD_SD_NET_ALLOC: ' || 'After FORALL INSERT');
Line: 7745

            msc_util.msc_log('LOAD_SD_NET_ALLOC: ' || 'No records to be inserted');
Line: 7773

    SELECT  trunc(p.plan_start_date),
            p.sr_instance_id,
            p.organization_id,
            trunc(p.cutoff_date),
            tp.calendar_code
    INTO    l_plan_start_date,
            l_instance_id,
            l_org_id,
            l_cutoff_date,
            l_calendar_code
    FROM    msc_plans p,
            msc_trading_partners tp
    WHERE   p.plan_id           = p_plan_id
    AND     p.organization_id   = tp.sr_tp_id
    AND     p.sr_instance_id    = tp.sr_instance_id
    AND     tp.partner_type     = 3;
Line: 7797

    INSERT INTO MSC_ATP_SUMMARY_SUP(
                plan_id,
                sr_instance_id,
                inventory_item_id,
                supplier_id,
                supplier_site_id,
                sd_date,
                sd_qty,
                demand_class,
                last_update_date,
                last_updated_by,
                creation_date,
                created_by)
    (SELECT plan_id, sr_instance_id, inventory_item_id, supplier_id, supplier_site_id, sd_date, sum(sd_qty),
    demand_class, last_update_date, last_updated_by, creation_date, created_by
    FROM (
            SELECT  SV.plan_id plan_id,
                    SV.sr_instance_id,
                    SV.inventory_item_id inventory_item_id,
                    SV.supplier_id supplier_id,
                    SV.supplier_site_id supplier_site_id,
                    c.calendar_date sd_date, -- 2859130 remove trunc
                    SV.capacity sd_qty,
                    null demand_class,
                    p_sys_date last_update_date,
                    l_user_id last_updated_by,
                    p_sys_date creation_date,
                    l_user_id created_by
            FROM    msc_calendar_dates c,
                   (SELECT  /*+ LEADING (I) */
                            I.plan_id plan_id,
                            I.sr_instance_id,
                            I.inventory_item_id inventory_item_id,
                            S.supplier_id supplier_id,
                            S.supplier_site_id supplier_site_id,
                            S.capacity,
                            trunc(S.from_date) from_date,
                            trunc(S.to_date) to_date,
                            mis.delivery_calendar_code,
                            mis.supplier_lead_time_date
                    FROM    msc_system_items I,
                            msc_supplier_capacities s,
                            msc_item_suppliers mis                      -- Bug 3912422 - Move to the inner query
                    WHERE   I.plan_id = p_plan_id
                    AND     I.atp_components_flag in ('Y', 'C')
                    AND     s.inventory_item_id = I.inventory_item_id
                    AND     s.sr_instance_id = I.sr_instance_id
                    AND     s.plan_id = I.plan_id
                    AND     s.organization_id = i.organization_id       --\
                    AND     s.inventory_item_id = mis.inventory_item_id --|
                    AND     s.sr_instance_id = mis.sr_instance_id       --> Bug 3912422
                    AND     s.plan_id = mis.plan_id                     --|
                    AND     s.organization_id = mis.organization_id     --/
                    AND NOT EXISTS --Bug 3912422, Replaced 'NOT IN' by 'NOT EXISTS'
                    --AND     (I.inventory_item_id, S.supplier_id, nvl(S.supplier_site_id,-1)) NOT IN
                             -- Bug 3912422
                            (SELECT 'x'        -- summary is not supported with flex flences : summary enhancement
                             FROM   msc_supplier_flex_fences msff
                             WHERE  plan_id = p_plan_id
                             AND msff.inventory_item_id = s.inventory_item_id --\
                             AND msff.supplier_id = s.supplier_id             -- } Bug 3912422
                             AND msff.supplier_site_id = s.supplier_site_id   --/
                             AND rownum = 1)
                    group by I.plan_id,
                            I.inventory_item_id,
                            I.sr_instance_id,
                            s.supplier_id,
                            s.supplier_site_id,
                            s.capacity,
                            trunc(s.from_date),
                            trunc(s.to_date),
                            mis.delivery_calendar_code,
                            mis.supplier_lead_time_date) SV
                    -- msc_item_suppliers mis                           -- Bug 3912422 - Move to the inner query
            WHERE   /* SV.inventory_item_id        = mis.inventory_item_id
            AND     SV.supplier_id              = mis.supplier_id
            AND     nvl(SV.supplier_site_id,-1) = nvl(mis.supplier_site_id, -1)
            AND     SV.sr_instance_id           = mis.sr_instance_id
            AND     c.calendar_code             = nvl(mis.delivery_calendar_code, l_calendar_code)
            AND*/     c.calendar_code             = nvl(SV.delivery_calendar_code, l_calendar_code)
            AND     c.calendar_date BETWEEN trunc(SV.from_date)
                                    AND NVL(SV.to_date,l_cutoff_date)
            -- AND     (c.seq_num IS NOT NULL OR mis.delivery_calendar_code IS NULL) -- Bug 3912422
            AND     (c.seq_num IS NOT NULL OR SV.delivery_calendar_code IS NULL) -- NULL means FOC
            AND     c.exception_set_id          = l_calendar_exception_set_id
            AND     c.sr_instance_id            = l_instance_id
            -- AND     c.calendar_date             >= mis.supplier_lead_time_date -- Bug 3912422
            AND     c.calendar_date             > SV.supplier_lead_time_date
                    -- Bug 3912422 - We should start looking from the day after supplier_lead_time_date
                    -- to accomodate for planning's additional "-1". If SMC is found in ASL then this
                    -- would mean one day offset as per ASL. If it is FOC then it would mean starting
                    -- from the next day.

            UNION ALL
            -- Net out planned orders, purchase orders and purchase requisitions /
            -- bug 1303196

            SELECT  /*+ LEADING (I) */
                    I.plan_id,
                    I.sr_instance_id,
                    I.inventory_item_id,
                    P.supplier_id,
                    P.supplier_site_id,
                    DECODE(tps.shipping_control,'BUYER',p.new_ship_date,p.new_dock_date),
                    (NVL(p.implement_quantity,0) - p.new_order_quantity) sd_qty,
                    null demand_class,
                    p_sys_date last_update_date,
                    l_user_id last_updated_by,
                    p_sys_date creation_date,
                    l_user_id created_by
            FROM    msc_supplies p,
            --      msc_trading_partners tp,
            --      msc_calendar_dates c,
            --      msc_calendar_dates c1,
                    msc_trading_partner_sites tps,
                    msc_system_items I
            WHERE   I.plan_id = p_plan_id
            AND     I.atp_components_flag in ( 'Y', 'C')
            AND     (p.order_type IN (5, 2)
                    OR (MSC_ATP_REQ.G_PURCHASE_ORDER_PREFERENCE = MSC_ATP_REQ.G_PROMISE_DATE
                        AND p.order_type = 1 AND p.promised_date IS NULL))
            AND     p.plan_id = I.plan_id
            AND     p.sr_instance_id = I.sr_instance_id
            AND     p.inventory_item_id = I.inventory_item_id
            AND     p.organization_id = I.organization_id
            AND     p.sr_instance_id  = I.sr_instance_id
            AND     NVL(P.DISPOSITION_STATUS_TYPE, 1) <> 2
            AND     p.supplier_id is not null
            AND     p.supplier_id = tps.partner_id (+)
            AND     p.supplier_site_id = tps.partner_site_id (+)
            AND NOT EXISTS  --Bug 3912422, Replaced 'NOT IN' by 'NOT EXISTS'
            --AND     (i.inventory_item_id, p.supplier_id, nvl(p.supplier_site_id,-1)) NOT IN
                     -- Bug 3912422
                    (SELECT 'x'     -- summary is not supported with flex flences : summary enhancement
                     FROM   msc_supplier_flex_fences msff
                     WHERE  plan_id = p_plan_id
                     AND msff.inventory_item_id = p.inventory_item_id  --\
                     AND msff.supplier_id = p.supplier_id              -- } Bug 3912422
                     AND msff.supplier_site_id = p.supplier_site_id    --/
                     AND rownum = 1)
    /*      AND     tp.sr_tp_id = p.organization_id
            AND     tp.sr_instance_id = p.sr_instance_id
            AND     tp.partner_type = 3
            AND     c.calendar_date = trunc(p.new_schedule_date) -- 1529756
            AND     c.calendar_code = tp.calendar_code
            AND     c.exception_set_id = tp.calendar_exception_set_id
            AND     c.sr_instance_id = tp.sr_instance_id
            AND     c1.seq_num = c.prior_seq_num-
                                 nvl(I.postprocessing_lead_time, 0)
            AND     c1.calendar_code = c.calendar_code
            AND     c1.exception_set_id = c.exception_set_id
            AND     c1.sr_instance_id = c.sr_instance_id*/
            AND     p.REFRESH_NUMBER IS NULL   -- consider only planning records in full summation  - summary enhancement
        )
    group by plan_id,inventory_item_id, supplier_id, supplier_site_id, sr_instance_id,
             sd_date, demand_class, last_update_date, last_updated_by, creation_date, created_by
    );
Line: 7955

    msc_util.msc_log('LOAD_SUP_DATA_FULL: ' || 'Records inserted : ' || SQL%ROWCOUNT);
Line: 7986

        SELECT  I.sr_instance_id,
                I.inventory_item_id,
                P.supplier_id,
                P.supplier_site_id,
                DECODE(tps.shipping_control,'BUYER',p.new_ship_date,p.new_dock_date),
                sum(NVL(p.implement_quantity,0) - p.new_order_quantity) sd_qty
        FROM    msc_supplies p,
        --      msc_trading_partners tp,
        --      msc_calendar_dates c,
        --      msc_calendar_dates c1,
                msc_trading_partner_sites tps,
                msc_system_items I
        WHERE   I.plan_id = p_plan_id
        AND     I.atp_components_flag in ( 'Y', 'C')
        AND     (p.order_type IN (5, 2)
                OR (MSC_ATP_REQ.G_PURCHASE_ORDER_PREFERENCE = MSC_ATP_REQ.G_PROMISE_DATE
                    AND p.order_type = 1 AND p.promised_date IS NULL))
        AND     p.plan_id = I.plan_id
        AND     p.sr_instance_id = I.sr_instance_id
        AND     p.inventory_item_id = I.inventory_item_id
        AND     p.organization_id = I.organization_id
        AND     p.sr_instance_id  = I.sr_instance_id
        AND     NVL(P.DISPOSITION_STATUS_TYPE, 1) <> 2
        AND     p.supplier_id is not null
        AND     p.supplier_id = tps.partner_id (+)
        AND     p.supplier_site_id = tps.partner_site_id (+)
        AND NOT EXISTS -- Bug 3912422, Replaced 'NOT IN' by 'NOT EXISTS'
        --AND     (i.inventory_item_id, p.supplier_id, nvl(p.supplier_site_id,-1)) NOT IN
                -- Bug 3912422
                (SELECT 'x'      -- summary is not supported with flex flences : summary enhancement
                 FROM   msc_supplier_flex_fences msff
                 WHERE  plan_id = p_plan_id
                 AND msff.inventory_item_id = p.inventory_item_id  --\
                 AND msff.supplier_id = p.supplier_id              -- } Bug 3912422
                 AND msff.supplier_site_id = p.supplier_site_id    --/
                 AND rownum = 1)
    /*  AND     tp.sr_tp_id = p.organization_id
        AND     tp.sr_instance_id = p.sr_instance_id
        AND     tp.partner_type = 3
        AND     c.calendar_date = trunc(p.new_schedule_date)
        AND     c.calendar_code = tp.calendar_code
        AND     c.exception_set_id = tp.calendar_exception_set_id
        AND     c.sr_instance_id = tp.sr_instance_id
        AND     c1.seq_num = c.prior_seq_num-
                             nvl(I.postprocessing_lead_time, 0)
        AND     c1.calendar_code = c.calendar_code
        AND     c1.exception_set_id = c.exception_set_id
        AND     c1.sr_instance_id = c.sr_instance_id  */
        AND     p.refresh_number between (p_last_refresh_number + 1) and p_new_refresh_number
        GROUP BY I.inventory_item_id, P.supplier_id, P.supplier_site_id, I.sr_instance_id,
                DECODE(tps.shipping_control,'BUYER',p.new_ship_date,p.new_dock_date);
Line: 8059

        UPDATE MSC_ATP_SUMMARY_SUP
        SET    sd_qty = sd_qty + l_sd_quantity_tab(j),
               last_update_date  = p_sys_date,
               last_updated_by   = l_user_id
        WHERE  plan_id           = p_plan_id
        AND    sr_instance_id    = l_sr_instance_id_tab(j)
        AND    inventory_item_id = l_inventory_item_id_tab(j)
        AND    supplier_id       = l_supplier_id_tab(j)
        AND    supplier_site_id  = l_supplier_site_id_tab(j)
        AND    sd_date           = l_sd_date_tab(j);
Line: 8070

        msc_util.msc_log('LOAD_SUP_DATA_NET: ' || 'After FORALL UPDATE');
Line: 8095

            INSERT  INTO MSC_ATP_SUMMARY_SUP (
                    plan_id,
                    sr_instance_id,
                    inventory_item_id,
                    supplier_id,
                    supplier_site_id,
                    sd_date,
                    sd_qty,
                    demand_class,
                    last_update_date,
                    last_updated_by,
                    creation_date,
                    created_by)
            VALUES (p_plan_id,
                    l_ins_sr_instance_id_tab(j),
                    l_ins_inventory_item_id_tab(j),
                    l_ins_supplier_id_tab(j),
                    l_ins_supplier_site_id_tab(j),
                    l_ins_sd_date_tab(j),
                    l_ins_sd_quantity_tab(j),
                    NULL,
                    p_sys_date,
                    l_user_id,
                    p_sys_date,
                    l_user_id);
Line: 8121

            msc_util.msc_log('LOAD_SUP_DATA_NET: ' || 'After FORALL INSERT');
Line: 8124

            msc_util.msc_log('LOAD_SUP_DATA_NET: ' || 'No records to be inserted');
Line: 8147

    INSERT INTO MSC_ATP_SUMMARY_RES(
            plan_id,
            department_id,
            resource_id,
            organization_id,
            sr_instance_id,
            sd_date,
            sd_qty,
            last_update_date,
            last_updated_by,
            creation_date,
            created_by)
    (SELECT plan_id,
            department_id,
            resource_id,
            organization_id,
            sr_instance_id,
            SD_DATE,
            SUM(SD_QTY),
            last_update_date,
            last_updated_by,
            creation_date,
            created_by
    FROM
           (SELECT  RES_VIEW.plan_id plan_id,
                    RES_VIEW.department_id department_id,
                    RES_VIEW.resource_id resource_id,
                    RES_VIEW.organization_id organization_id,
                    RES_VIEW.sr_instance_id sr_instance_id,
                    trunc(RES_VIEW.SD_DATE) SD_DATE,
                    RES_VIEW.SD_QTY
                        * DECODE(RES_VIEW.BATCHABLE_FLAG, 0, 1, NVL(MUC.CONVERSION_RATE,1)) SD_QTY,
                    p_sys_date last_update_date,
                    l_user_id last_updated_by,
                    p_sys_date creation_date,
                    l_user_id created_by
            FROM    MSC_UOM_CONVERSIONS MUC,
                   (SELECT  -- hint for better performance.
                            /*+  ORDERED index(REQ MSC_RESOURCE_REQUIREMENTS_N2) */
                            DR.PLAN_ID plan_id,
                            NVL(DR.OWNING_DEPARTMENT_ID, DR.DEPARTMENT_ID) department_id,
                            DR.RESOURCE_ID resource_id,
                            DR.organization_id organization_id,
                            DR.SR_INSTANCE_ID sr_instance_id,
                            C.CALENDAR_DATE SD_DATE,
                            -- Bug 3321897, 2943979 For Line Based Resources,
                            -- Resource_ID is not NULL but -1
                            -1 * DECODE(REQ.RESOURCE_ID, -1, REQ.LOAD_RATE,
                                    DECODE(REQ.END_DATE, NULL, REQ.RESOURCE_HOURS,
                                        REQ.DAILY_RESOURCE_HOURS)) *
                                 DECODE(NVL(DR.BATCHABLE_FLAG,2), 1,
                                    (DECODE(DR.UOM_CLASS_TYPE, 1, I.UNIT_WEIGHT, 2, I.UNIT_VOLUME) *
                                        NVL(S.NEW_ORDER_QUANTITY, S.FIRM_QUANTITY)), 1)  SD_QTY,
                            NVL(DR.BATCHABLE_FLAG,2) BATCHABLE_FLAG,
                            DECODE(DR.UOM_CLASS_TYPE,1 , I.WEIGHT_UOM, 2, I.VOLUME_UOM) UOM_CODE
                    FROM    MSC_DEPARTMENT_RESOURCES DR,
                            MSC_TRADING_PARTNERS P,
                            MSC_RESOURCE_REQUIREMENTS REQ,
                            MSC_SYSTEM_ITEMS I,
                            MSC_SUPPLIES S,
                            ----  re-ordered tables for performance
                            MSC_CALENDAR_DATES C
                    WHERE   DR.PLAN_ID = REQ.PLAN_ID
                    AND     NVL(DR.OWNING_DEPARTMENT_ID, DR.DEPARTMENT_ID)=REQ.DEPARTMENT_ID
                    AND     DR.RESOURCE_ID = REQ.RESOURCE_ID
                    AND     DR.SR_INSTANCE_ID = REQ.SR_INSTANCE_ID
                    AND     DR.organization_id = REQ.ORGANIZATION_ID
                    AND     REQ.PLAN_ID = p_plan_id
                    AND     NVL(REQ.PARENT_ID, 2) = 2
                    AND     I.SR_INSTANCE_ID = S.SR_INSTANCE_Id
                    AND     I.PLAN_ID = S.PLAN_ID
                    AND     I.ORGANIZATION_ID = S.ORGANIZATION_ID
                    AND     I.INVENTORY_ITEM_ID = S.INVENTORY_ITEM_ID
                    AND     I.inventory_item_id = REQ.assembly_item_id    ----\
                    AND     ((I.bom_item_type <> 1                          --|
                              and I.bom_item_type <> 2                      --|- summary enhancement change for CTO ODR
                              AND I.atp_flag <> 'N')                        --|
                             OR (REQ.record_source = 2))                  ----/
                    AND     S.TRANSACTION_ID = REQ.SUPPLY_ID
                    AND     S.PLAN_ID = REQ.PLAN_ID
                    AND     S.SR_INSTANCE_ID = REQ.SR_INSTANCE_ID
                    AND     S.ORGANIZATION_ID = REQ.ORGANIZATION_ID
                    AND     NVL(S.DISPOSITION_STATUS_TYPE, 1) <> 2
                    AND     P.SR_TP_ID = DR.ORGANIZATION_ID
                    AND     P.SR_INSTANCE_ID = DR.SR_INSTANCE_ID
                    AND     P.PARTNER_TYPE = 3
                    AND     C.SR_INSTANCE_ID = DR.SR_INSTANCE_ID
                    AND     C.CALENDAR_CODE = P.CALENDAR_CODE
                    AND     C.EXCEPTION_SET_ID = P.CALENDAR_EXCEPTION_SET_ID
                    AND     C.CALENDAR_DATE BETWEEN TRUNC(REQ.START_DATE) AND
                                                    TRUNC(NVL(REQ.END_DATE, REQ.START_DATE))
                    AND     C.SEQ_NUM IS NOT NULL
                    AND     C.CALENDAR_DATE >= p_plan_start_date  -- summary enhancement - made consistent
                    AND     REQ.REFRESH_NUMBER IS NULL)RES_VIEW   -- consider only planning records in full summation - summary enhancement
            WHERE   RES_VIEW.UOM_CODE = MUC.UOM_CODE (+)
            AND     RES_VIEW.SR_INSTANCE_ID = MUC.SR_INSTANCE_ID (+)
            AND     MUC.INVENTORY_ITEM_ID (+)= 0

            UNION ALL

            SELECT  MNRA.plan_id plan_id,
                    MNRA.department_id,
                    MNRA.resource_id,
                    MNRA.organization_id,
                    MNRA.sr_instance_id,
                    trunc(MNRA.SHIFT_DATE) SD_DATE,
                    MNRA.CAPACITY_UNITS * ((DECODE(LEAST(MNRA.from_time, MNRA.to_time),
                        MNRA.to_time,to_time + 24*3600,
                        MNRA.to_time) - MNRA.from_time)/3600)
                            * DECODE(NVL(DR.BATCHABLE_FLAG, 2), 1,
                            DR.MAX_CAPACITY *  NVL(MUC.CONVERSION_RATE, 1), 1) SD_QTY,
                    p_sys_date last_update_date,
                    l_user_id last_updated_by,
                    p_sys_date creation_date,
                    l_user_id created_by
            FROM    MSC_NET_RESOURCE_AVAIL MNRA,
                    MSC_DEPARTMENT_RESOURCES DR,
                    MSC_UOM_CONVERSIONS MUC         -- noted in summary enhancement : inconsistent with MSCRATPB
            WHERE   MNRA.PLAN_ID = p_plan_id
            AND     NVL(MNRA.PARENT_ID, -2) <> -1
            AND     DR.PLAN_ID = MNRA.PLAN_ID
            AND     DR.SR_INSTANCE_ID = MNRA.SR_INSTANCE_ID
            AND     DR.ORGANIZATION_ID = MNRA.ORGANIZATION_ID
            AND     DR.RESOURCE_ID = MNRA.RESOURCE_ID
            AND     DR.DEPARTMENT_ID = MNRA.DEPARTMENT_ID
            AND     DR.UNIT_OF_MEASURE = MUC.UOM_CODE (+)
            AND     DR.SR_INSTANCE_ID =  MUC.SR_INSTANCE_ID (+)
            AND     MUC.INVENTORY_ITEM_ID (+) = 0
                    --- un commented the following row. This is done so that less number of rows are selected
            AND     SHIFT_DATE >= p_plan_start_date  -- summary enhancement - made consistent
            ) group by plan_id, department_id, resource_id, organization_id, sr_instance_id, sd_date,
            last_update_date,last_updated_by, creation_date, created_by
    );
Line: 8281

    msc_util.msc_log('LOAD_RES_FULL_UNOPT_BATCH: ' || 'Records inserted : ' || SQL%ROWCOUNT);
Line: 8299

    INSERT INTO MSC_ATP_SUMMARY_RES(
            plan_id,
            department_id,
            resource_id,
            organization_id,
            sr_instance_id,
            sd_date,
            sd_qty,
            last_update_date,
            last_updated_by,
            creation_date,
            created_by)
    (SELECT plan_id,
            department_id,
            resource_id,
            organization_id,
            sr_instance_id,
            SD_DATE,
            SUM(SD_QTY),
            last_update_date,
            last_updated_by,
            creation_date,
            created_by
    FROM
            (SELECT RES_VIEW.plan_id plan_id,
                    RES_VIEW.department_id department_id,
                    RES_VIEW.resource_id resource_id,
                    RES_VIEW.organization_id organization_id,
                    RES_VIEW.sr_instance_id sr_instance_id,
                    trunc(RES_VIEW.SD_DATE) SD_DATE,
                    RES_VIEW.SD_QTY
                    * DECODE(RES_VIEW.BATCHABLE_FLAG, 0, 1, NVL(MUC.CONVERSION_RATE,1)) SD_QTY,
                    p_sys_date last_update_date,
                    l_user_id last_updated_by,
                    p_sys_date creation_date,
                    l_user_id created_by
            FROM    MSC_UOM_CONVERSIONS MUC,
                    (SELECT -- hint for better performance.
                            /*+  ORDERED index(REQ MSC_RESOURCE_REQUIREMENTS_N2) */
                            DR.PLAN_ID plan_id,
                            NVL(DR.OWNING_DEPARTMENT_ID, DR.DEPARTMENT_ID) department_id,
                            DR.RESOURCE_ID resource_id,
                            DR.organization_id organization_id,
                            DR.SR_INSTANCE_ID sr_instance_id,
                            TRUNC(REQ.START_DATE) SD_DATE,
                            -- Bug 3321897, 2943979 For Line Based Resources,
                            -- Resource_ID is not NULL but -1
                            -1*DECODE(REQ.RESOURCE_ID, -1, REQ.LOAD_RATE,
                            REQ.RESOURCE_HOURS) * -- 2859130         -- noted in summary enhancement : inconsistent with MSCRATPB
                            -- DECODE(REQ.END_DATE, NULL, REQ.RESOURCE_HOURS,
                            -- REQ.DAILY_RESOURCE_HOURS)) *
                            DECODE(NVL(DR.BATCHABLE_FLAG,2), 1,
                                (DECODE(DR.UOM_CLASS_TYPE, 1, I.UNIT_WEIGHT, 2, I.UNIT_VOLUME) *
                                    NVL(S.NEW_ORDER_QUANTITY, S.FIRM_QUANTITY)), 1)  SD_QTY,
                            NVL(DR.BATCHABLE_FLAG,2) BATCHABLE_FLAG,
                            DECODE(DR.UOM_CLASS_TYPE,1 , I.WEIGHT_UOM, 2, I.VOLUME_UOM) UOM_CODE
                    FROM    MSC_DEPARTMENT_RESOURCES DR,
                            MSC_RESOURCE_REQUIREMENTS REQ,
                            MSC_SYSTEM_ITEMS I,
                            MSC_SUPPLIES S
                            ----  re-ordered tables for performance
                    WHERE   DR.PLAN_ID = REQ.PLAN_ID
                    AND     NVL(DR.OWNING_DEPARTMENT_ID, DR.DEPARTMENT_ID)=REQ.DEPARTMENT_ID
                    AND     DR.RESOURCE_ID = REQ.RESOURCE_ID
                    AND     DR.SR_INSTANCE_ID = REQ.SR_INSTANCE_ID
                    AND     DR.organization_id = REQ.ORGANIZATION_ID
                    AND     REQ.PLAN_ID = p_plan_id
                    AND     NVL(REQ.PARENT_ID, 1) = 1
                    AND     I.SR_INSTANCE_ID = S.SR_INSTANCE_Id
                    AND     I.PLAN_ID = S.PLAN_ID
                    AND     I.ORGANIZATION_ID = S.ORGANIZATION_ID
                    AND     I.INVENTORY_ITEM_ID = S.INVENTORY_ITEM_ID
                    AND     S.TRANSACTION_ID = REQ.SUPPLY_ID
                    AND     S.PLAN_ID = REQ.PLAN_ID
                    AND     S.SR_INSTANCE_ID = REQ.SR_INSTANCE_ID
                    AND     S.ORGANIZATION_ID = REQ.ORGANIZATION_ID
                    AND     NVL(S.DISPOSITION_STATUS_TYPE, 1) <> 2
                    AND     I.inventory_item_id = REQ.assembly_item_id    ----\
                    AND     ((I.bom_item_type <> 1                          --|
                              and I.bom_item_type <> 2                      --|- summary enhancement change for CTO ODR
                              AND I.atp_flag <> 'N')                        --|
                             OR (REQ.record_source = 2))                  ----/
                    AND     REQ.START_DATE >= p_plan_start_date     -- summary enhancement - made consistent
                    AND     REQ.REFRESH_NUMBER IS NULL   -- consider only planning records in full summation - summary enhancement
                    )RES_VIEW
            WHERE RES_VIEW.UOM_CODE = MUC.UOM_CODE (+)
            AND   RES_VIEW.SR_INSTANCE_ID = MUC.SR_INSTANCE_ID (+)
            AND   MUC.INVENTORY_ITEM_ID (+)= 0

            UNION ALL

            SELECT  MNRA.plan_id plan_id,
                    MNRA.department_id,
                    MNRA.resource_id,
                    MNRA.organization_id,
                    MNRA.sr_instance_id,
                    trunc(MNRA.SHIFT_DATE) SD_DATE,
                    MNRA.CAPACITY_UNITS * ((DECODE(LEAST(MNRA.from_time, MNRA.to_time),
                        MNRA.to_time,to_time + 24*3600,
                        MNRA.to_time) - MNRA.from_time)/3600)
                            * DECODE(NVL(DR.BATCHABLE_FLAG, 2), 1,
                              DR.MAX_CAPACITY *  NVL(MUC.CONVERSION_RATE, 1), 1) SD_QTY,
                    p_sys_date last_update_date,
                    l_user_id last_updated_by,
                    p_sys_date creation_date,
                    l_user_id created_by
            FROM    MSC_NET_RESOURCE_AVAIL MNRA,
                    MSC_DEPARTMENT_RESOURCES DR,
                    MSC_UOM_CONVERSIONS MUC             -- noted in summary enhancement : inconsistent with MSCRATPB
            WHERE   MNRA.PLAN_ID = p_plan_id
            AND     NVL(MNRA.PARENT_ID, -2) <> -1
            AND     DR.PLAN_ID = MNRA.PLAN_ID
            AND     DR.SR_INSTANCE_ID = MNRA.SR_INSTANCE_ID
            AND     DR.ORGANIZATION_ID = MNRA.ORGANIZATION_ID
            AND     DR.RESOURCE_ID = MNRA.RESOURCE_ID
            AND     DR.DEPARTMENT_ID = MNRA.DEPARTMENT_ID
            AND     DR.UNIT_OF_MEASURE = MUC.UOM_CODE (+)
            AND     DR.SR_INSTANCE_ID =  MUC.SR_INSTANCE_ID (+)
            AND     MUC.INVENTORY_ITEM_ID (+) = 0
                    --- un commented the following row. This is done so that less number of rows are selected
            AND     SHIFT_DATE >= p_plan_start_date -- summary enhancement - made consistent
            )
    group by plan_id, department_id, resource_id, organization_id, sr_instance_id, sd_date,
            last_update_date,last_updated_by, creation_date, created_by
    );
Line: 8425

    msc_util.msc_log('LOAD_RES_FULL_OPT_BATCH: ' || 'Records inserted : ' || SQL%ROWCOUNT);
Line: 8443

    INSERT INTO MSC_ATP_SUMMARY_RES(
            plan_id,
            department_id,
            resource_id,
            organization_id,
            sr_instance_id,
            sd_date,
            sd_qty,
            last_update_date,
            last_updated_by,
            creation_date,
            created_by)
    (SELECT plan_id,
            department_id,
            resource_id,
            organization_id,
            sr_instance_id,
            SD_DATE,
            SUM(SD_QTY),
            last_update_date,
            last_updated_by,
            creation_date,
            created_by
    FROM
        (
            SELECT  /*+ ORDERED index(REQ MSC_RESOURCE_REQUIREMENTS_N2) index(C MSC_CALENDAR_DATES_U1) */
                    DR.PLAN_ID plan_id,
                    NVL(DR.OWNING_DEPARTMENT_ID, DR.DEPARTMENT_ID) department_id,
                    DR.RESOURCE_ID resource_id,
                    DR.organization_id organization_id,
                    DR.SR_INSTANCE_ID sr_instance_id,
                    C.CALENDAR_DATE SD_DATE, -- 2859130 remove trunc
                    -- Bug 3321897, 2943979 For Line Based Resources,
                    -- Resource_ID is not NULL but -1
                    -1*DECODE(REQ.RESOURCE_ID, -1, REQ.LOAD_RATE,
                        DECODE(REQ.END_DATE, NULL, REQ.RESOURCE_HOURS,
                            REQ.DAILY_RESOURCE_HOURS))  SD_QTY,
                    p_sys_date last_update_date,
                    l_user_id last_updated_by,
                    p_sys_date creation_date,
                    l_user_id created_by
            FROM    MSC_DEPARTMENT_RESOURCES DR,
                    MSC_TRADING_PARTNERS P,
                    MSC_RESOURCE_REQUIREMENTS REQ,
                    MSC_SYSTEM_ITEMS I,                 -- summary enhancement change for CTO ODR
                    MSC_CALENDAR_DATES C
                    ----  re-ordered tables for performance
            WHERE   DR.PLAN_ID = REQ.PLAN_ID
            AND     NVL(DR.OWNING_DEPARTMENT_ID, DR.DEPARTMENT_ID)=REQ.DEPARTMENT_ID    -- summary enhancement - made consistent
            AND     DR.RESOURCE_ID = REQ.RESOURCE_ID
            AND     DR.SR_INSTANCE_ID = REQ.SR_INSTANCE_ID
            AND     DR.organization_id = REQ.ORGANIZATION_ID
            AND     REQ.PLAN_ID = p_plan_id
            AND     NVL(REQ.PARENT_ID, 2) = 2
            AND     P.SR_TP_ID = DR.ORGANIZATION_ID
            AND     P.SR_INSTANCE_ID = DR.SR_INSTANCE_ID
            AND     P.PARTNER_TYPE = 3
            AND     C.SR_INSTANCE_ID = DR.SR_INSTANCE_ID
            AND     C.CALENDAR_CODE = P.CALENDAR_CODE
            AND     C.EXCEPTION_SET_ID = P.CALENDAR_EXCEPTION_SET_ID
            AND     C.CALENDAR_DATE BETWEEN TRUNC(REQ.START_DATE) AND
                    TRUNC(NVL(REQ.END_DATE, REQ.START_DATE))
            AND     C.SEQ_NUM IS NOT NULL
            AND     C.CALENDAR_DATE >= p_plan_start_date
            AND     I.SR_INSTANCE_ID = REQ.SR_INSTANCE_Id         ----\
            AND     I.PLAN_ID = REQ.PLAN_ID                         --|
            AND     I.ORGANIZATION_ID = REQ.ORGANIZATION_ID         --|
            AND     I.inventory_item_id = REQ.assembly_item_id      --|\ summary enhancement
            AND     ((I.bom_item_type <> 1                          --|/ change for CTO ODR
                      and I.bom_item_type <> 2                      --|
                      AND I.atp_flag <> 'N')                        --|
                     OR (REQ.record_source = 2))                  ----/
            AND     REQ.REFRESH_NUMBER IS NULL   -- consider only planning records in full summation - summary enhancement

            UNION ALL

            SELECT  plan_id plan_id,
                    department_id,
                    resource_id,
                    organization_id,
                    sr_instance_id,
                    trunc(SHIFT_DATE) SD_DATE,
                    CAPACITY_UNITS * ((DECODE(LEAST(from_time, to_time),
                        to_time,to_time + 24*3600,
                        to_time) - from_time)/3600) SD_QTY,
                    p_sys_date last_update_date,
                    l_user_id last_updated_by,
                    p_sys_date creation_date,
                    l_user_id created_by
            FROM    MSC_NET_RESOURCE_AVAIL
            WHERE   PLAN_ID = p_plan_id
            AND     NVL(PARENT_ID, -2) <> -1
                    -- uncommented following line so that less number of rows are selected
            AND     SHIFT_DATE >= p_plan_start_date     -- summary enhancement - made consistent
        )
    group by plan_id, department_id, resource_id, organization_id, sr_instance_id, sd_date,
            last_update_date,last_updated_by, creation_date, created_by
    );
Line: 8542

    msc_util.msc_log('LOAD_RES_FULL_UNOPT_NOBATCH: ' || 'Records inserted : ' || SQL%ROWCOUNT);
Line: 8560

    INSERT INTO MSC_ATP_SUMMARY_RES(
            plan_id,
            department_id,
            resource_id,
            organization_id,
            sr_instance_id,
            sd_date,
            sd_qty,
            last_update_date,
            last_updated_by,
            creation_date,
            created_by)
    (SELECT plan_id,
            department_id,
            resource_id,
            organization_id,
            sr_instance_id,
            SD_DATE,
            SUM(SD_QTY),
            last_update_date,
            last_updated_by,
            creation_date,
            created_by
    FROM
        (
            SELECT  /*+ ORDERED index(REQ MSC_RESOURCE_REQUIREMENTS_N2) index(C MSC_CALENDAR_DATES_U1) */
                    DR.PLAN_ID plan_id,
                    NVL(DR.OWNING_DEPARTMENT_ID, DR.DEPARTMENT_ID) department_id,
                    DR.RESOURCE_ID resource_id,
                    DR.organization_id organization_id,
                    DR.SR_INSTANCE_ID sr_instance_id,
                    TRUNC(REQ.START_DATE) SD_DATE,
                    -- Bug 3321897, 2943979 For Line Based Resources,
                    -- Resource_ID is not NULL but -1
                    -1*DECODE(REQ.RESOURCE_ID, -1, REQ.LOAD_RATE,
                        REQ.RESOURCE_HOURS) SD_QTY, --2859130
                    -- DECODE(REQ.END_DATE, NULL, REQ.RESOURCE_HOURS,   -- noted in summary enhancement : inconsistent with MSCRATPB
                        -- REQ.DAILY_RESOURCE_HOURS))  SD_QTY,
                    p_sys_date last_update_date,
                    l_user_id last_updated_by,
                    p_sys_date creation_date,
                    l_user_id created_by
            FROM    MSC_DEPARTMENT_RESOURCES DR,
                    MSC_RESOURCE_REQUIREMENTS REQ,
                    MSC_SYSTEM_ITEMS I                  -- summary enhancement change for CTO ODR
            WHERE   DR.PLAN_ID = REQ.PLAN_ID
            AND     NVL(DR.OWNING_DEPARTMENT_ID, DR.DEPARTMENT_ID)=REQ.DEPARTMENT_ID    -- summary enhancement: made consistent
            AND     DR.RESOURCE_ID = REQ.RESOURCE_ID
            AND     DR.SR_INSTANCE_ID = REQ.SR_INSTANCE_ID
            AND     DR.organization_id = REQ.ORGANIZATION_ID
            AND     REQ.PLAN_ID = p_plan_id
            AND     NVL(REQ.PARENT_ID, 1) = 1
            AND     I.SR_INSTANCE_ID = REQ.SR_INSTANCE_Id         ----\
            AND     I.PLAN_ID = REQ.PLAN_ID                         --|
            AND     I.ORGANIZATION_ID = REQ.ORGANIZATION_ID         --|
            AND     I.inventory_item_id = REQ.assembly_item_id      --|\ summary enhancement
            AND     ((I.bom_item_type <> 1                          --|/ change for CTO ODR
                      and I.bom_item_type <> 2                      --|
                      AND I.atp_flag <> 'N')                        --|
                     OR (REQ.record_source = 2))                  ----/
            AND     REQ.START_DATE >= p_plan_start_date                                     -- summary enhancement: made consistent
            AND     REQ.REFRESH_NUMBER IS NULL   -- consider only planning records in full summation - summary enhancement

            UNION ALL

            SELECT  plan_id plan_id,
                    department_id,
                    resource_id,
                    organization_id,
                    sr_instance_id,
                    trunc(SHIFT_DATE) SD_DATE,
                    CAPACITY_UNITS * ((DECODE(LEAST(from_time, to_time),
                        to_time,to_time + 24*3600,
                        to_time) - from_time)/3600) SD_QTY,
                    p_sys_date last_update_date,
                    l_user_id last_updated_by,
                    p_sys_date creation_date,
                    l_user_id created_by
            FROM    MSC_NET_RESOURCE_AVAIL
            WHERE   PLAN_ID = p_plan_id
            AND     NVL(PARENT_ID, -2) <> -1
            AND     SHIFT_DATE >= p_plan_start_date         -- summary enhancement: made consistent
        )
    group by plan_id, department_id, resource_id, organization_id, sr_instance_id, sd_date,
            last_update_date,last_updated_by, creation_date, created_by
    );
Line: 8647

    msc_util.msc_log('LOAD_RES_FULL_OPT_NOBATCH: ' || 'Records inserted : ' || SQL%ROWCOUNT);
Line: 8678

        SELECT  NVL(DR.OWNING_DEPARTMENT_ID, DR.DEPARTMENT_ID) department_id,
                DR.RESOURCE_ID resource_id,
                DR.organization_id organization_id,
                DR.SR_INSTANCE_ID sr_instance_id,
                -- Bug 3348095
                -- Only ATP created records, so use end_date
                TRUNC(NVL(REQ.END_DATE, REQ.START_DATE)) SD_DATE,
                -- TRUNC(REQ.START_DATE) SD_DATE,
                -- End Bug 3348095
                SUM((-1) * REQ.RESOURCE_HOURS) SD_QTY -- ATP always populates resource_hours
        FROM    MSC_DEPARTMENT_RESOURCES DR,
                MSC_RESOURCE_REQUIREMENTS REQ
        WHERE   DR.PLAN_ID = p_plan_id
        AND     REQ.PLAN_ID = DR.PLAN_ID
        AND     REQ.SR_INSTANCE_ID = DR.sr_instance_id
        AND     REQ.RESOURCE_ID = DR.resource_id
        AND     NVL(DR.OWNING_DEPARTMENT_ID, DR.DEPARTMENT_ID) = DR.DEPARTMENT_ID
        AND     REQ.refresh_number between (p_last_refresh_number + 1) and p_new_refresh_number
        GROUP BY DR.OWNING_DEPARTMENT_ID, DR.DEPARTMENT_ID, DR.RESOURCE_ID, DR.organization_id, DR.SR_INSTANCE_ID, TRUNC(NVL(REQ.END_DATE, REQ.START_DATE));
Line: 8719

        UPDATE MSC_ATP_SUMMARY_RES
        SET    sd_qty = sd_qty + l_sd_quantity_tab(j),
               last_update_date  = p_sys_date,
               last_updated_by   = l_user_id
        WHERE  plan_id           = p_plan_id
        AND    sr_instance_id    = l_sr_instance_id_tab(j)
        AND    organization_id   = l_organization_id_tab(j)
        AND    resource_id       = l_resource_id_tab(j)
        AND    department_id     = l_department_id_tab(j)
        AND    sd_date           = l_sd_date_tab(j);
Line: 8730

        msc_util.msc_log('LOAD_RES_DATA_NET: ' || 'After FORALL UPDATE');
Line: 8755

            INSERT  INTO MSC_ATP_SUMMARY_RES (
                    plan_id,
                    department_id,
                    resource_id,
                    organization_id,
                    sr_instance_id,
                    sd_date,
                    sd_qty,
                    last_update_date,
                    last_updated_by,
                    creation_date,
                    created_by)
            VALUES (p_plan_id,
                    l_ins_department_id_tab(j),
                    l_ins_resource_id_tab(j),
                    l_ins_organization_id_tab(j),
                    l_ins_sr_instance_id_tab(j),
                    l_ins_sd_date_tab(j),
                    l_ins_sd_quantity_tab(j),
                    p_sys_date,
                    l_user_id,
                    p_sys_date,
                    l_user_id);
Line: 8779

            msc_util.msc_log('LOAD_RES_DATA_NET: ' || 'After FORALL INSERT');
Line: 8782

            msc_util.msc_log('LOAD_RES_DATA_NET: ' || 'No records to be inserted');
Line: 8871

    SELECT  a.oracle_username
      	INTO    l_msc_schema
      	FROM    FND_ORACLE_USERID a,
                FND_PRODUCT_INSTALLATIONS b
      	WHERE   a.oracle_id = b.oracle_id
      	AND     b.application_id = 724;
Line: 8939

        SELECT count(*)
        INTO   l_count
        FROM   msc_plans plans,
               msc_designators desig
        WHERE  plans.plan_id = p_plan_id
        AND    plans.plan_type <> 4
        AND    plans.compile_designator = desig.designator
        AND    plans.sr_instance_id = desig.sr_instance_id
        AND    plans.organization_id = desig.organization_id
        AND    (desig.inventory_atp_flag = 1
                OR plans.copy_plan_id IS NOT NULL);
Line: 8955

        UPDATE msc_plan_organizations mpo
        SET so_lrn =(SELECT so_lrn
                    FROM msc_instance_orgs mio
                    WHERE mio.sr_instance_id=mpo.sr_instance_id
                    AND mio.organization_id=mpo.organization_id
                     )
        WHERE plan_id=p_plan_id;
Line: 8964

        msc_util.msc_log('atp_snapshot_hook: No. of Rows updated: '|| SQL%ROWCOUNT );
Line: 8969

        UPDATE msc_system_items mst1
        SET (REPLENISH_TO_ORDER_FLAG,PICK_COMPONENTS_FLAG) =(SELECT REPLENISH_TO_ORDER_FLAG,PICK_COMPONENTS_FLAG
                    FROM msc_system_items mst2
                    WHERE mst2.sr_instance_id=mst1.sr_instance_id
                    AND mst2.organization_id=mst1.organization_id
                    AND mst2.INVENTORY_ITEM_ID=mst1.INVENTORY_ITEM_ID
                    AND mst2.plan_id=-1
                     )
        WHERE plan_id=p_plan_id;
Line: 8984

        UPDATE msc_system_items mst1
        SET (REPLENISH_TO_ORDER_FLAG,PICK_COMPONENTS_FLAG,ATP_RULE_ID,DEMAND_TIME_FENCE_DAYS) =(SELECT REPLENISH_TO_ORDER_FLAG,PICK_COMPONENTS_FLAG,ATP_RULE_ID,DEMAND_TIME_FENCE_DAYS
                    FROM msc_system_items mst2
                    WHERE mst2.sr_instance_id=mst1.sr_instance_id
                    AND mst2.organization_id=mst1.organization_id
                    AND mst2.INVENTORY_ITEM_ID=mst1.INVENTORY_ITEM_ID
                    AND mst2.plan_id=-1
                     )
        WHERE plan_id=p_plan_id
        AND     mst1.ORGANIZATION_ID = l_organization_id(j)
        AND     mst1.SR_INSTANCE_ID = l_sr_instance_id(j)
        AND     mst1.bom_item_type  in (1,4,5)
        AND     mst1.atp_flag <> 'N'
        OR      mst1.atp_components_flag <> 'N';
Line: 9011

Procedure Delete_CTO_BOM_OSS(
          p_plan_id			IN		NUMBER)
IS
BEGIN
    msc_util.msc_log('Begin Delete_CTO_BOM_OSS for plan_id: ' || p_plan_id);
Line: 9016

    msc_util.msc_log('Before Delete data for CTO BOM');
Line: 9018

    DELETE msc_cto_bom
	WHERE  nvl(plan_id, p_plan_id) = p_plan_id;
Line: 9021

    msc_util.msc_log('After Delete data for CTO BOM: ' || SQL%ROWCOUNT);
Line: 9023

    msc_util.msc_log('Before Delete data for CTO OSS');
Line: 9025

    DELETE msc_cto_sources
	WHERE  nvl(plan_id, p_plan_id) = p_plan_id;
Line: 9028

    msc_util.msc_log('After Delete data for CTO OSS: ' || SQL%ROWCOUNT);
Line: 9032

    msc_util.msc_log('End Delete_CTO_BOM_OSS');
Line: 9035

		 msc_util.msc_log('Exception in Delete_CTO_BOM_OSS :' || SQLCODE || '-' || SQLERRM);
Line: 9036

END Delete_CTO_BOM_OSS;