DBA Data[Home] [Help]

APPS.MSC_AATP_PVT SQL Statements

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

Line: 54

		INSERT INTO msc_atp_sd_details_temp (
			session_id,
			Atp_Level,
			order_line_id,
			scenario_id,
			inventory_item_id,
			request_item_id,
			department_id,
			resource_id,
			Supplier_id,
			Supplier_Site_id,
			UOM_code,
			Supply_Demand_Type,
			Supply_Demand_Source_Type,
			Identifier1,
			Supply_Demand_Date,
			Supply_Demand_Quantity,
			creation_date,
			created_by,
			last_update_date,
			last_updated_by,
			last_update_login,
			-- time_phased_atp changes begin
			organization_id,
			original_item_id,
                        original_supply_demand_type,
                        original_demand_date,
                        original_demand_quantity,
                        allocated_quantity,
                        pf_display_flag
                        -- time_phased_atp changes end
		) VALUES (
			MSC_ATP_PVT.G_SESSION_ID,
			x_atp_supply_demand.level(k),
			x_atp_supply_demand.identifier(k),
			x_atp_supply_demand.scenario_id(k),
			x_atp_supply_demand.inventory_item_id(k),
			x_atp_supply_demand.request_item_id(k),
			x_atp_supply_demand.department_id(k),
			x_atp_supply_demand.resource_id(k),
			x_atp_supply_demand.supplier_id(k),
			x_atp_supply_demand.supplier_site_id(k),
			x_atp_supply_demand.uom(k),
			x_atp_supply_demand.supply_demand_type(k),
			x_atp_supply_demand.supply_demand_source_type(k),
			x_atp_supply_demand.identifier1(k),
			x_atp_supply_demand.supply_demand_date(k),
	                x_atp_supply_demand.supply_demand_quantity(k),
        		-- ship_rec_cal changes begin
        		l_sysdate,
        		G_USER_ID,
        		l_sysdate,
        		G_USER_ID,
        		G_USER_ID,
        		-- ship_rec_cal changes end
			-- time_phased_atp changes begin
			x_atp_supply_demand.organization_id(k),
			x_atp_supply_demand.original_item_id(k),
                        x_atp_supply_demand.original_supply_demand_type(k),
                        x_atp_supply_demand.original_demand_date(k),
                        x_atp_supply_demand.original_demand_quantity(k),
                        x_atp_supply_demand.allocated_quantity(k),
                        x_atp_supply_demand.pf_display_flag(k)
			-- time_phased_atp changes end
		);
Line: 152

              SELECT        SD_DATE,
                           SUM(SD_QTY)
             BULK COLLECT INTO
                           x_atp_dates,
                           x_atp_qtys
             FROM (
                   SELECT  --C.PRIOR_DATE SD_DATE, -- 2859130
			  GREATEST(
                           TRUNC(DECODE(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)))),
                           	 p_sys_next_date)SD_DATE, --plan by request date,promise date, schedule date--3099066
                           -- -1* D.USING_REQUIREMENT_QUANTITY*
                           -1*(D.USING_REQUIREMENT_QUANTITY - NVL(d.reserved_quantity, 0))* --5027568
                           DECODE(DECODE(G_HIERARCHY_PROFILE,
                           /*------------------------------------------------------------------------+
                           | rajjain begin 07/19/2002                                                |
                           |                                                                         |
                           | Case 1: For internal sales orders [origination type is in (6,30) and    |
                           |            source_organization_id is not null and <> organization_id]   |
                           |                  Return NULL                                            |
                           | Case 2: For others if DEMAND_CLASS is null then return null             |
                           |          else if p_demand_class is '-1' then call                       |
                           |            Get_Hierarchy_Demand_class else return DEMAND_CLASS          |
                           +------------------------------------------------------------------------*/
                              1,
                              decode(MSC_ATP_PVT.G_INTERNAL_SALES_ORDER,'N',  --10425563
                               decode(d.origination_type,
                                 6, decode(d.source_organization_id,
                                    NULL, DECODE(D.DEMAND_CLASS, null, null,
                                       DECODE(p_demand_class, '-1',
                                          MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             null, null, p_item_id, p_org_id,
                                             p_instance_id, TRUNC(
                                                  DECODE(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)))),
                                                                      --plan by request date,promise date, schedule date
                                             		p_level_id, D.DEMAND_CLASS),
                                             D.DEMAND_CLASS)),
                                    -23453, DECODE(D.DEMAND_CLASS, null, null,
                                       DECODE(p_demand_class, '-1',
                                          MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             null, null, p_item_id, p_org_id,
                                             p_instance_id, TRUNC(DECODE(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)))),
                                             					p_level_id, D.DEMAND_CLASS),  --plan by request date,promise date, schedule date
                                             D.DEMAND_CLASS)),
                                    d.organization_id, DECODE(D.DEMAND_CLASS, null, null,
                                       DECODE(p_demand_class, '-1',
                                          MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             null, null, p_item_id, p_org_id,
                                             p_instance_id, TRUNC(
                                             	    DECODE(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)))),
                                             			p_level_id, D.DEMAND_CLASS),  --plan by request date,promise date, schedule date
                                             D.DEMAND_CLASS)), TO_CHAR(NULL)),
                                 30, decode(d.source_organization_id,
                                    NULL, DECODE(D.DEMAND_CLASS, null, null,
                                       DECODE(p_demand_class, '-1',
                                          MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             null, null, p_item_id, p_org_id,
                                             p_instance_id, TRUNC(
                                             	    DECODE(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)))),
                                             				p_level_id, D.DEMAND_CLASS),  --plan by request date,promise date, schedule date
                                             D.DEMAND_CLASS)),
                                    -23453, DECODE(D.DEMAND_CLASS, null, null,
                                       DECODE(p_demand_class, '-1',
                                          MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             null, null, p_item_id, p_org_id,
                                             p_instance_id, TRUNC(
                                             	    DECODE(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)))),
                                             				p_level_id, D.DEMAND_CLASS),  --plan by request date,promise date, schedule date
                                             D.DEMAND_CLASS)),
                                    d.organization_id, DECODE(D.DEMAND_CLASS, null, null,
                                       DECODE(p_demand_class, '-1',
                                          MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             null, null, p_item_id, p_org_id,
                                             p_instance_id, TRUNC(
                                             	    DECODE(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)))),
                                             			p_level_id, D.DEMAND_CLASS),  --plan by request date,promise date, schedule date
                                             D.DEMAND_CLASS)), TO_CHAR(NULL)),
                                 DECODE(D.DEMAND_CLASS, null, null,
                                    DECODE(p_demand_class, '-1',
                                       MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                          null, null, p_item_id, p_org_id,
                                          p_instance_id, TRUNC(
                                                   DECODE(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)))),
                                          			p_level_id, D.DEMAND_CLASS),  --plan by request date,promise date, schedule date
                                          D.DEMAND_CLASS))),
                                 DECODE(D.DEMAND_CLASS, null, null,  --10425563
                                    DECODE(p_demand_class, '-1',
                                       MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                          null, null, p_item_id, p_org_id,
                                          p_instance_id, TRUNC(
                                                   DECODE(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)))),
                                          			p_level_id, D.DEMAND_CLASS),  --plan by request date,promise date, schedule date
                                          D.DEMAND_CLASS)) ),
                              -- rajjain end
                              2, DECODE(D.CUSTOMER_ID, NULL, TO_CHAR(NULL),
                                                   0, TO_CHAR(NULL),
                                 -- rajjain begin 07/19/2002
                                 decode(MSC_ATP_PVT.G_INTERNAL_SALES_ORDER,'N', --10425563
                                 decode(d.origination_type,
                                    6, decode(d.source_organization_id,
                                       NULL, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
                                             p_org_id, p_instance_id,
                                             TRUNC(DECODE(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)))), --plan by request date,promise date, schedule date
                                             p_level_id, NULL),
                                       -23453, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
                                             p_org_id, p_instance_id,
                                             TRUNC(DECODE(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)))), --plan by request date,promise date, schedule date
                                             p_level_id, NULL),
                                       d.organization_id, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
                                             p_org_id, p_instance_id, TRUNC(DECODE(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)))), --plan by request date,promise date, schedule date
                                             p_level_id, NULL),
                                       TO_CHAR(NULL)),
                                    30, decode(d.source_organization_id,
                                       NULL, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
                                             p_org_id, p_instance_id,
                                             	TRUNC(DECODE(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)))), --plan by request date,promise date, schedule date
                                             p_level_id, NULL),
                                       -23453, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
                                             p_org_id, p_instance_id,
                                             	TRUNC(DECODE(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)))), --plan by request date,promise date, schedule date
                                             p_level_id, NULL),
                                       d.organization_id, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
                                             p_org_id, p_instance_id,
                                             TRUNC(DECODE(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)))), --plan by request date,promise date, schedule date
                                             p_level_id, NULL),
                                       TO_CHAR(NULL)),
                                    MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(D.CUSTOMER_ID, D.SHIP_TO_SITE_ID,
                                       p_item_id, p_org_id, p_instance_id,
                                       	          TRUNC(DECODE(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))))--plan by request date,promise date, schedule date
                                       				,p_level_id, NULL)),
                                    MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, --10425563
                                       p_item_id, p_org_id, p_instance_id,
                                       	          TRUNC(DECODE(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))))--plan by request date,promise date, schedule date
                                       				,p_level_id, NULL))
                                       				)),
                                 -- rajjain end 07/19/2002
                           p_demand_class, 1,
                             Decode(D.Demand_Class, NULL, --4365873 If l_demand_class is not null and demand class is populated
                             -- on  supplies record then 0 should be allocated.
                              MSC_AATP_FUNC.Get_Item_Demand_Alloc_Percent(p_plan_id,
                                 D.DEMAND_ID,
		                                 TRUNC(DECODE(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)))), --plan by request date,promise date, schedule date
                                 D.USING_ASSEMBLY_ITEM_ID,
                                 DECODE(D.SOURCE_ORGANIZATION_ID,
                                    -23453, null,
                                    D.SOURCE_ORGANIZATION_ID), -- 1665483
                                 p_item_id,
                                 p_org_id, -- 1665483
                                 p_instance_id,
                                 decode (d.origination_type, -100, 30,d.origination_type), --5027568
                                 DECODE(G_HIERARCHY_PROFILE,
                                 /*-----------------------------------------------------------------+
                                 | rajjain begin 07/19/2002                                         |
                                 |                                                                  |
                                 | Case 1: For internal sales orders [origination type is in (6,30) |
                                 |         and source_organization_id is not null                   |
                                 |         and <> organization_id] -> Return p_demand_class         |
                                 | Case 2: For others if DEMAND_CLASS is null then return null      |
                                 |           else if p_demand_class is '-1' then call               |
                                 |           Get_Hierarchy_Demand_class else return DEMAND_CLASS    |
                                 +-----------------------------------------------------------------*/
                                    1,
                                    decode(MSC_ATP_PVT.G_INTERNAL_SALES_ORDER,'N', --10425563
                                     decode(d.origination_type,
                                       6, decode(d.source_organization_id,
                                          NULL, DECODE(D.DEMAND_CLASS, null, null,
                                             DECODE(p_demand_class, '-1',
                                                MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                   null, null, p_item_id, p_org_id,
                                                   p_instance_id, TRUNC(
                                                   DECODE(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)))), --plan by request date,promise date, schedule date
                                                   	p_level_id, D.DEMAND_CLASS),
                                                D.DEMAND_CLASS)),
                                          -23453, DECODE(D.DEMAND_CLASS, null, null,
                                             DECODE(p_demand_class, '-1',
                                                MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                   null, null, p_item_id, p_org_id,
                                                   p_instance_id,
                                                   	TRUNC(DECODE(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)))), --plan by request date,promise date, schedule date
                                                   			p_level_id, D.DEMAND_CLASS),
                                                D.DEMAND_CLASS)),
                                          d.organization_id, DECODE(D.DEMAND_CLASS, null, null,
                                             DECODE(p_demand_class, '-1',
                                                MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                   null, null, p_item_id, p_org_id,
                                                   p_instance_id,
                                                   TRUNC(DECODE(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)))), --plan by request date,promise date, schedule date
                                                   		p_level_id, D.DEMAND_CLASS),
                                                D.DEMAND_CLASS)),
                                          p_demand_class),
                                    30, decode(d.source_organization_id,
                                       NULL, DECODE(D.DEMAND_CLASS, null, null,
                                          DECODE(p_demand_class, '-1',
                                             MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                null, null, p_item_id, p_org_id,
                                                p_instance_id,
                                                    TRUNC(DECODE(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)))), --plan by request date,promise date, schedule date
                                                		p_level_id, D.DEMAND_CLASS),
                                             D.DEMAND_CLASS)),
                                       -23453, DECODE(D.DEMAND_CLASS, null, null,
                                          DECODE(p_demand_class, '-1',
                                             MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                null, null, p_item_id, p_org_id,
                                                p_instance_id,
                                                     TRUNC(DECODE(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)))), --plan by request date,promise date, schedule date
                                                			p_level_id, D.DEMAND_CLASS),
                                             D.DEMAND_CLASS)),
                                       d.organization_id, DECODE(D.DEMAND_CLASS, null, null,
                                          DECODE(p_demand_class, '-1',
                                             MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                null, null, p_item_id, p_org_id,
                                                p_instance_id,
                                                     TRUNC(DECODE(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)))), --plan by request date,promise date, schedule date
                                                	p_level_id, D.DEMAND_CLASS),
                                             D.DEMAND_CLASS)),
                                       p_demand_class),
                                    DECODE(D.DEMAND_CLASS, null, null,
                                       DECODE(p_demand_class, '-1',
                                          MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             null, null, p_item_id, p_org_id,
                                             p_instance_id, TRUNC(
                                             	DECODE(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))))--plan by request date,promise date, schedule date
                                             		, p_level_id, D.DEMAND_CLASS),
                                          D.DEMAND_CLASS))),
                                    DECODE(D.DEMAND_CLASS, null, null,  --10425563
                                       DECODE(p_demand_class, '-1',
                                          MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             null, null, p_item_id, p_org_id,
                                             p_instance_id, TRUNC(
                                             	DECODE(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))))--plan by request date,promise date, schedule date
                                             		, p_level_id, D.DEMAND_CLASS),
                                          D.DEMAND_CLASS))),
                                    -- rajjain end
                                    2, DECODE(D.CUSTOMER_ID, NULL, p_demand_class,
                                                   0, p_demand_class,
                                       -- rajjain begin 07/19/2002
                                       decode(MSC_ATP_PVT.G_INTERNAL_SALES_ORDER,'N', --10425563
                                       decode(d.origination_type,
                                          6, decode(d.source_organization_id,
                                             NULL, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                   D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
                                                   p_org_id, p_instance_id, TRUNC(DECODE(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)))),
                                                   p_level_id, NULL),
                                             -23453, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                   D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
                                                   p_org_id, p_instance_id, TRUNC(DECODE(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)))),
                                                   p_level_id, NULL),
                                             d.organization_id, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                   D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
                                                   p_org_id, p_instance_id, TRUNC(DECODE(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)))),
                                                   p_level_id, NULL),
                                             p_demand_class),
                                          30, decode(d.source_organization_id,
                                             NULL, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                   D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
                                                   p_org_id, p_instance_id, TRUNC(DECODE(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)))),
                                                   p_level_id, NULL),
                                             -23453, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                   D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
                                                   p_org_id, p_instance_id, TRUNC(DECODE(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)))),
                                                   p_level_id, NULL),
                                             d.organization_id, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                   D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
                                                   p_org_id, p_instance_id, TRUNC(DECODE(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)))),
                                                   p_level_id, NULL),
                                             p_demand_class),
                                        MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                        D.CUSTOMER_ID, D.SHIP_TO_SITE_ID,
                                        p_item_id, p_org_id, p_instance_id,
                                        TRUNC(DECODE
                                                    (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)
                                                            )
                                                      )
                                               ),p_level_id, NULL)
                                       ),
                                       MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(  --10425563
                                       			D.CUSTOMER_ID, D.SHIP_TO_SITE_ID,
                                             		p_item_id, p_org_id, p_instance_id,
                                             		TRUNC(DECODE
                                             			(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)
                                                                      	)
                                                                  )
                                                                 ),p_level_id, NULL)
                                      ))),
                                       -- rajjain end 07/19/2002
                                       p_demand_class,
                                       p_level_id),0)) SD_QTY --4365873
                   FROM    -- MSC_CALENDAR_DATES C, -- 2859130
                           MSC_DEMANDS D
                   WHERE        D.PLAN_ID = p_plan_id
                   AND                D.SR_INSTANCE_ID = p_instance_id
                   AND                D.INVENTORY_ITEM_ID = p_item_id
                   AND         D.ORGANIZATION_ID = p_org_id
                   AND         D.USING_REQUIREMENT_QUANTITY <> 0 --4501434
                   AND         D.ORIGINATION_TYPE NOT IN (5,7,8,9,11,15,22,28,29,31,52,70) -- For summary enhancement
                   -- 2859130
                   -- Bug1990155, 1995835 exclude the expired lots demand datreya 9/18/2001
                   -- Bug 1530311, need to exclude forecast, ngoel 12/05/2000
                   -- AND                C.CALENDAR_CODE = p_cal_code
                   -- AND                C.EXCEPTION_SET_ID = p_cal_exc_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.
                   -- 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         (( D.ORIGINATION_TYPE = 4
                   --         AND C.SEQ_NUM IS NOT NULL) OR
                   --         ( D.ORIGINATION_TYPE  <> 4))
                   -- AND         C.PRIOR_DATE < NVL(p_itf,
                   --                  C.PRIOR_DATE + 1)
                   --bug3693892 added trunc
                   AND   TRUNC(DECODE(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)))) <
                         TRUNC(NVL(p_itf,DECODE(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)))+1))
                   UNION ALL
                   SELECT  --C.NEXT_DATE SD_DATE, -- 2859130
                           --TRUNC(NVL(S.FIRM_DATE, S.NEW_SCHEDULE_DATE)) SD_DATE,
                           GREATEST(TRUNC(NVL(S.FIRM_DATE, S.NEW_SCHEDULE_DATE)),p_sys_next_date) SD_DATE,--3099066
                           NVL(S.FIRM_QUANTITY,S.NEW_ORDER_QUANTITY)*
                              DECODE(DECODE(G_HIERARCHY_PROFILE,
                                     --2424357: Convert the demand calls in case of others for
                                     --- demand class allocated ATP
                                     1, DECODE(S.DEMAND_CLASS, null, null,
                                        DECODE(p_demand_class, '-1',
                                           MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                         null,
                                                         null,
                                                         S.inventory_item_id,
                                                         p_org_id,
                                                         p_instance_id,
                                                         trunc(nvl(S.firm_date, S.new_schedule_date)),
                                                         -- c.next_date, -- 2859130
                                                         p_level_id,
                                                         S.DEMAND_CLASS),S.DEMAND_CLASS)),
                                     2, DECODE(S.CUSTOMER_ID, NULL, TO_CHAR(NULL),
                                                       0, TO_CHAR(NULL),
                                                       MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                         S.CUSTOMER_ID,
                                                         S.SHIP_TO_SITE_ID,
                                                         S.inventory_item_id,
                                                         p_org_id,
                                                         p_instance_id,
                                                         trunc(nvl(S.firm_date, S.new_schedule_date)),
                                                         -- c.next_date, -- 2859130
                                                         p_level_id,
                                                         NULL))),
                                 p_demand_class, 1,
                                 NULL, nvl(MIHM.allocation_percent/100,1), --4365873
                                 /*NVL(MSC_AATP_FUNC.Get_DC_Alloc_Percent(
                                           p_instance_id,
                                           s.inventory_item_id,
                                           p_org_id,
                                           null,
                                           null,
                                           p_demand_class,
                                           -- c.next_date -- 2859130
                                           trunc(nvl(s.firm_date, s.new_schedule_date))), 1),*/
                                 DECODE(
                                  MIHM.allocation_percent/100, --4365873
                                 /*DECODE(MSC_AATP_FUNC.Get_DC_Alloc_Percent(
                                           p_instance_id,
                                           s.inventory_item_id,
                                           p_org_id,
                                           null,
                                           null,
                                           p_demand_class,
                                           -- c.next_date -- 2859130
                                           trunc(nvl(s.firm_date, s.new_schedule_date))),*/
                                   NULL, 1,
                                 0)) SD_QTY
                   FROM    -- MSC_CALENDAR_DATES C, -- 2859130
                           MSC_SUPPLIES S,MSC_ITEM_HIERARCHY_MV MIHM
                   WHERE   S.PLAN_ID = p_plan_id
                   AND     S.SR_INSTANCE_ID = p_instance_id
                   AND     S.INVENTORY_ITEM_ID = p_item_id
                   AND     S.ORGANIZATION_ID = p_org_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
                   -- 2859130
                   -- AND     C.CALENDAR_CODE = p_cal_code
                   -- AND     C.EXCEPTION_SET_ID = p_cal_exc_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     C.NEXT_DATE >= DECODE(S.ORDER_TYPE, 27, TRUNC(SYSDATE),
                   --                                            28, TRUNC(SYSDATE),
                   --                                            C.NEXT_DATE)
                   --AND     C.NEXT_DATE < NVL(p_itf,
                   --                          C.NEXT_DATE + 1)
                   AND     trunc(NVL(S.FIRM_DATE, S.NEW_SCHEDULE_DATE)) >=
                                          trunc(DECODE(S.ORDER_TYPE, 27, SYSDATE,
                                                               28, SYSDATE,
                                                               NVL(S.FIRM_DATE, S.NEW_SCHEDULE_DATE))) --4135752
                   AND     trunc(NVL(S.FIRM_DATE, S.NEW_SCHEDULE_DATE)) < trunc(NVL(p_itf,
                                            NVL(S.FIRM_DATE, S.NEW_SCHEDULE_DATE) + 1))
		--4365873
                AND    S.INVENTORY_ITEM_ID = MIHM.INVENTORY_ITEM_ID(+)
                AND    S.SR_INSTANCE_ID = MIHM.SR_INSTANCE_ID (+)
                AND    S.ORGANIZATION_ID = MIHM.ORGANIZATION_ID (+)
                AND    decode(MIHM.level_id (+),-1,1,2) = decode(G_HIERARCHY_PROFILE,1,1,2)
                AND    trunc(NVL(S.FIRM_DATE, S.NEW_SCHEDULE_DATE)) >= MIHM.effective_date (+)
                AND    trunc(NVL(S.FIRM_DATE, S.NEW_SCHEDULE_DATE)) <= MIHM.disable_date (+)
                AND    MIHM.demand_class (+) = p_demand_class
                   )
             GROUP BY SD_DATE
             ORDER BY SD_DATE; --4698199
Line: 743

             SELECT        SD_DATE,
                           SUM(SD_QTY)
             BULK COLLECT INTO
                           x_atp_dates,
                           x_atp_qtys
             FROM (
                   SELECT  ---C.CALENDAR_DATE SD_DATE,
                   GREATEST(C.CALENDAR_DATE,p_sys_next_date) SD_DATE,--3099066
                           -1* DECODE(D.ORIGINATION_TYPE,
                                  4, D.DAILY_DEMAND_RATE,
                                  --D.USING_REQUIREMENT_QUANTITY)*
                                  (D.USING_REQUIREMENT_QUANTITY - NVL(d.reserved_quantity, 0)))*  --5027568
                           DECODE(DECODE(G_HIERARCHY_PROFILE,
                           /*------------------------------------------------------------------------+
                           | rajjain begin 07/19/2002                                                |
                           |                                                                         |
                           | Case 1: For internal sales orders [origination type is in (6,30) and    |
                           |            source_organization_id is not null and <> organization_id]   |
                           |                  Return NULL                                            |
                           | Case 2: For others if DEMAND_CLASS is null then return null             |
                           |          else if p_demand_class is '-1' then call                       |
                           |            Get_Hierarchy_Demand_class else return DEMAND_CLASS          |
                           +------------------------------------------------------------------------*/
                              1,
                              decode(MSC_ATP_PVT.G_INTERNAL_SALES_ORDER,'N', --10425563
                              decode(d.origination_type,
                                 6, decode(d.source_organization_id,
                                    NULL, DECODE(D.DEMAND_CLASS, null, null,
                                       DECODE(p_demand_class, '-1',
                                          MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             null, null, p_item_id, p_org_id,
                                             p_instance_id, c.calendar_date, p_level_id, D.DEMAND_CLASS),
                                             D.DEMAND_CLASS)),
                                    -23453, DECODE(D.DEMAND_CLASS, null, null,
                                       DECODE(p_demand_class, '-1',
                                          MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             null, null, p_item_id, p_org_id,
                                             p_instance_id, c.calendar_date, p_level_id, D.DEMAND_CLASS),
                                             D.DEMAND_CLASS)),
                                    d.organization_id, DECODE(D.DEMAND_CLASS, null, null,
                                       DECODE(p_demand_class, '-1',
                                          MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             null, null, p_item_id, p_org_id,
                                             p_instance_id, c.calendar_date, p_level_id, D.DEMAND_CLASS),
                                             D.DEMAND_CLASS)), TO_CHAR(NULL)),
                                 30, decode(d.source_organization_id,
                                    NULL, DECODE(D.DEMAND_CLASS, null, null,
                                       DECODE(p_demand_class, '-1',
                                          MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             null, null, p_item_id, p_org_id,
                                             p_instance_id, c.calendar_date, p_level_id, D.DEMAND_CLASS),
                                             D.DEMAND_CLASS)),
                                    -23453, DECODE(D.DEMAND_CLASS, null, null,
                                       DECODE(p_demand_class, '-1',
                                          MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             null, null, p_item_id, p_org_id,
                                             p_instance_id, c.calendar_date, p_level_id, D.DEMAND_CLASS),
                                             D.DEMAND_CLASS)),
                                    d.organization_id, DECODE(D.DEMAND_CLASS, null, null,
                                       DECODE(p_demand_class, '-1',
                                          MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             null, null, p_item_id, p_org_id,
                                             p_instance_id, c.calendar_date, p_level_id, D.DEMAND_CLASS),
                                             D.DEMAND_CLASS)), TO_CHAR(NULL)),
                                 DECODE(D.DEMAND_CLASS, null, null,
                                    DECODE(p_demand_class, '-1',
                                       MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                          null, null, p_item_id, p_org_id,
                                          p_instance_id, c.calendar_date, p_level_id, D.DEMAND_CLASS),
                                          D.DEMAND_CLASS))),
                                DECODE(D.DEMAND_CLASS, null, null, --10425563
                                    DECODE(p_demand_class, '-1',
                                       MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                          null, null, p_item_id, p_org_id,
                                          p_instance_id, c.calendar_date, p_level_id, D.DEMAND_CLASS),
                                          D.DEMAND_CLASS))),
                              -- rajjain end
                              2, DECODE(D.CUSTOMER_ID, NULL, TO_CHAR(NULL),
                                                   0, TO_CHAR(NULL),
                                 -- rajjain begin 07/19/2002
                                 decode(MSC_ATP_PVT.G_INTERNAL_SALES_ORDER,'N', --10425563
                                 decode(d.origination_type,
                                    6, decode(d.source_organization_id,
                                       NULL, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
                                             p_org_id, p_instance_id, c.calendar_date,
                                             p_level_id, NULL),
                                       -23453, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
                                             p_org_id, p_instance_id, c.calendar_date,
                                             p_level_id, NULL),
                                       d.organization_id, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
                                             p_org_id, p_instance_id, c.calendar_date,
                                             p_level_id, NULL),
                                       TO_CHAR(NULL)),
                                    30, decode(d.source_organization_id,
                                       NULL, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
                                             p_org_id, p_instance_id, c.calendar_date,
                                             p_level_id, NULL),
                                       -23453, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
                                             p_org_id, p_instance_id, c.calendar_date,
                                             p_level_id, NULL),
                                       d.organization_id, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
                                             p_org_id, p_instance_id, c.calendar_date,
                                             p_level_id, NULL),
                                       TO_CHAR(NULL)),
                                    MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(D.CUSTOMER_ID, D.SHIP_TO_SITE_ID,
                                       p_item_id, p_org_id, p_instance_id,
                                       c.calendar_date,p_level_id, NULL)),
                                   MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, --10425563
                                       p_item_id, p_org_id, p_instance_id,
                                       c.calendar_date,p_level_id, NULL))
                                       )),
                                 -- rajjain end 07/19/2002
                           p_demand_class, 1,
                             Decode(D.Demand_Class, NULL, --4365873
                              MSC_AATP_FUNC.Get_Item_Demand_Alloc_Percent(p_plan_id,
                                 D.DEMAND_ID,
                                 c.calendar_date,
                                 D.USING_ASSEMBLY_ITEM_ID,
                                 DECODE(D.SOURCE_ORGANIZATION_ID,
                                    -23453, null,
                                    D.SOURCE_ORGANIZATION_ID), -- 1665483
                                 p_item_id,
                                 p_org_id, -- 1665483
                                 p_instance_id,
                                 decode (d.origination_type, -100, 30,d.origination_type), --5027568
                                 DECODE(G_HIERARCHY_PROFILE,
                                 /*-----------------------------------------------------------------+
                                 | rajjain begin 07/19/2002                                         |
                                 |                                                                  |
                                 | Case 1: For internal sales orders [origination type is in (6,30) |
                                 |         and source_organization_id is not null                   |
                                 |         and <> organization_id] -> Return p_demand_class         |
                                 | Case 2: For others if DEMAND_CLASS is null then return null      |
                                 |           else if p_demand_class is '-1' then call               |
                                 |           Get_Hierarchy_Demand_class else return DEMAND_CLASS    |
                                 +-----------------------------------------------------------------*/
                                    1,
                                    decode(MSC_ATP_PVT.G_INTERNAL_SALES_ORDER,'N', --10425563
                                    decode(d.origination_type,
                                       6, decode(d.source_organization_id,
                                          NULL, DECODE(D.DEMAND_CLASS, null, null,
                                             DECODE(p_demand_class, '-1',
                                                MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                   null, null, p_item_id, p_org_id,
                                                   p_instance_id, c.calendar_date, p_level_id, D.DEMAND_CLASS),
                                                D.DEMAND_CLASS)),
                                          -23453, DECODE(D.DEMAND_CLASS, null, null,
                                             DECODE(p_demand_class, '-1',
                                                MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                   null, null, p_item_id, p_org_id,
                                                   p_instance_id, c.calendar_date, p_level_id, D.DEMAND_CLASS),
                                                D.DEMAND_CLASS)),
                                          d.organization_id, DECODE(D.DEMAND_CLASS, null, null,
                                             DECODE(p_demand_class, '-1',
                                                MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                   null, null, p_item_id, p_org_id,
                                                   p_instance_id, c.calendar_date, p_level_id, D.DEMAND_CLASS),
                                                D.DEMAND_CLASS)),
                                          p_demand_class),
                                    30, decode(d.source_organization_id,
                                       NULL, DECODE(D.DEMAND_CLASS, null, null,
                                          DECODE(p_demand_class, '-1',
                                             MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                null, null, p_item_id, p_org_id,
                                                p_instance_id, c.calendar_date, p_level_id, D.DEMAND_CLASS),
                                             D.DEMAND_CLASS)),
                                       -23453, DECODE(D.DEMAND_CLASS, null, null,
                                          DECODE(p_demand_class, '-1',
                                             MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                null, null, p_item_id, p_org_id,
                                                p_instance_id, c.calendar_date, p_level_id, D.DEMAND_CLASS),
                                             D.DEMAND_CLASS)),
                                       d.organization_id, DECODE(D.DEMAND_CLASS, null, null,
                                          DECODE(p_demand_class, '-1',
                                             MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                null, null, p_item_id, p_org_id,
                                                p_instance_id, c.calendar_date, p_level_id, D.DEMAND_CLASS),
                                             D.DEMAND_CLASS)),
                                       p_demand_class),
                                    DECODE(D.DEMAND_CLASS, null, null,
                                       DECODE(p_demand_class, '-1',
                                          MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             null, null, p_item_id, p_org_id,
                                             p_instance_id, c.calendar_date, p_level_id, D.DEMAND_CLASS),
                                          D.DEMAND_CLASS))),
                                    DECODE(D.DEMAND_CLASS, null, null, --10425563
                                       DECODE(p_demand_class, '-1',
                                          MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             null, null, p_item_id, p_org_id,
                                             p_instance_id, c.calendar_date, p_level_id, D.DEMAND_CLASS),
                                          D.DEMAND_CLASS))),
                                    -- rajjain end
                                    2, DECODE(D.CUSTOMER_ID, NULL, p_demand_class,
                                                   0, p_demand_class,
                                       -- rajjain begin 07/19/2002
                                       decode(MSC_ATP_PVT.G_INTERNAL_SALES_ORDER,'N', --10425563
                                       decode(d.origination_type,
                                          6, decode(d.source_organization_id,
                                             NULL, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                   D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
                                                   p_org_id, p_instance_id, c.calendar_date,
                                                   p_level_id, NULL),
                                             -23453, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                   D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
                                                   p_org_id, p_instance_id, c.calendar_date,
                                                   p_level_id, NULL),
                                             d.organization_id, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                   D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
                                                   p_org_id, p_instance_id, c.calendar_date,
                                                   p_level_id, NULL),
                                             p_demand_class),
                                          30, decode(d.source_organization_id,
                                             NULL, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                   D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
                                                   p_org_id, p_instance_id, c.calendar_date,
                                                   p_level_id, NULL),
                                             -23453, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                   D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
                                                   p_org_id, p_instance_id, c.calendar_date,
                                                   p_level_id, NULL),
                                             d.organization_id, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                   D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
                                                   p_org_id, p_instance_id, c.calendar_date,
                                                   p_level_id, NULL),
                                             p_demand_class),
                                          MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(D.CUSTOMER_ID, D.SHIP_TO_SITE_ID,
                                             p_item_id, p_org_id, p_instance_id,
                                             c.calendar_date,p_level_id, NULL)),
                                          MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(D.CUSTOMER_ID, D.SHIP_TO_SITE_ID,  --10425563
                                             p_item_id, p_org_id, p_instance_id,
                                             c.calendar_date,p_level_id, NULL))
                                             )),
                                       -- rajjain end 07/19/2002
                                       p_demand_class,
                                       p_level_id),0)) SD_QTY --4365873
                   FROM    MSC_CALENDAR_DATES C,
                           MSC_DEMANDS D
                   WHERE        D.PLAN_ID = p_plan_id
                   AND                D.SR_INSTANCE_ID = p_instance_id
                   AND                D.INVENTORY_ITEM_ID = p_item_id
                   AND         D.ORGANIZATION_ID = p_org_id
                   AND         D.USING_REQUIREMENT_QUANTITY <> 0 --4501434
                   AND         D.ORIGINATION_TYPE NOT IN (5,7,8,9,11,15,22,28,29,31,52,70) -- For summary enhancement
                   -- Bug1990155, 1995835 exclude the expired lots demand datreya 9/18/2001
                   -- Bug 1530311, need to exclude forecast, ngoel 12/05/2000
                   AND                C.CALENDAR_CODE = p_cal_code
                   AND                C.EXCEPTION_SET_ID = p_cal_exc_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.
                   AND         C.CALENDAR_DATE
                   -- Bug 3550296 and 3574164. IMPLEMENT_DATE AND DMD_SATISFIED_DATE are changed to
                   -- IMPLEMENT_SHIP_DATE and PLANNED_SHIP_DATE resp.
                               BETWEEN TRUNC(DECODE(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))))
                               AND     TRUNC(NVL(D.ASSEMBLY_DEMAND_COMP_DATE,
                                             DECODE(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)))))
                   AND         (( D.ORIGINATION_TYPE = 4
                           AND C.SEQ_NUM IS NOT NULL) OR
                           ( D.ORIGINATION_TYPE  <> 4))
                   -- AND         C.PRIOR_DATE < NVL(p_itf,
                   --                  C.PRIOR_DATE + 1)
                   AND         C.CALENDAR_DATE < NVL(p_itf, C.CALENDAR_DATE+1)
                   UNION ALL
                   SELECT  ---C.CALENDAR_DATE SD_DATE,
                           GREATEST(CS.CALENDAR_DATE,p_sys_next_date) SD_DATE,--3099066
                           NVL(CS.FIRM_QUANTITY,CS.NEW_ORDER_QUANTITY)*
                              DECODE(DECODE(G_HIERARCHY_PROFILE,
                                     --2424357: Convert the demand calls in case of others for
                                     --- demand class allocated ATP
                                     1, DECODE(CS.DEMAND_CLASS, null, null,
                                        DECODE(p_demand_class, '-1',
                                           MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                         null,
                                                         null,
                                                         cs.inventory_item_id,
                                                         p_org_id,
                                                         p_instance_id,
                                                         cs.calendar_date,
                                                         p_level_id,
                                                         CS.DEMAND_CLASS),CS.DEMAND_CLASS)),
                                     2, DECODE(CS.CUSTOMER_ID, NULL, TO_CHAR(NULL),
                                                       0, TO_CHAR(NULL),
                                                       MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                         CS.CUSTOMER_ID,
                                                         CS.SHIP_TO_SITE_ID,
                                                         cs.inventory_item_id,
                                                         p_org_id,
                                                         p_instance_id,
                                                         cs.calendar_date,
                                                         p_level_id,
                                                         NULL))),
                                 p_demand_class, 1,
                                 NULL, nvl(MIHM.allocation_percent/100,1), --4365873
                                 /*NVL(MSC_AATP_FUNC.Get_DC_Alloc_Percent(
                                           p_instance_id,
                                           cs.inventory_item_id,
                                           p_org_id,
                                           null,
                                           null,
                                           p_demand_class,
                                           cs.calendar_date), 1),*/
                                 DECODE(
                                 MIHM.allocation_percent/100, --4365873
                                 /*DECODE(MSC_AATP_FUNC.Get_DC_Alloc_Percent(
                                           p_instance_id,
                                           cs.inventory_item_id,
                                           p_org_id,
                                           null,
                                           null,
                                           p_demand_class,
                                           cs.calendar_date),*/
                                   NULL, 1,
                                 0)) SD_QTY
                FROM
                (
                select
                	C.NEXT_DATE,
                	C.CALENDAR_DATE,
			S.FIRM_QUANTITY,
			S.NEW_ORDER_QUANTITY,
			S.DEMAND_CLASS,
			s.inventory_item_id,
			S.CUSTOMER_ID,
			S.SHIP_TO_SITE_ID,
			S.SR_INSTANCE_ID,
			S.ORGANIZATION_ID
                   FROM    MSC_CALENDAR_DATES C,
                           MSC_SUPPLIES S
                   WHERE   S.PLAN_ID = p_plan_id
                   AND     S.SR_INSTANCE_ID = p_instance_id
                   AND     S.INVENTORY_ITEM_ID = p_item_id
                   AND     S.ORGANIZATION_ID = p_org_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_cal_code
                   AND     C.EXCEPTION_SET_ID = p_cal_exc_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
                   -- 2859130
                   AND     C.CALENDAR_DATE >= DECODE(S.ORDER_TYPE, 27, TRUNC(SYSDATE),
                                                                   28, TRUNC(SYSDATE),
                                                                   C.CALENDAR_DATE)
                   AND     C.CALENDAR_DATE < NVL(p_itf,
                                            C.CALENDAR_DATE + 1)
                   --AND     C.NEXT_DATE >= DECODE(S.ORDER_TYPE, 27, TRUNC(SYSDATE),
                   --                                            28, TRUNC(SYSDATE),
                   --                                            C.NEXT_DATE)
                   --AND     C.NEXT_DATE < NVL(p_itf,
                   --                          C.NEXT_DATE + 1)
                   )CS,
		MSC_ITEM_HIERARCHY_MV MIHM
		WHERE
		--4365873
                       CS.INVENTORY_ITEM_ID = MIHM.INVENTORY_ITEM_ID(+)
                AND    CS.SR_INSTANCE_ID = MIHM.SR_INSTANCE_ID (+)
                AND    CS.ORGANIZATION_ID = MIHM.ORGANIZATION_ID (+)
                AND    decode(MIHM.level_id (+),-1,1,2) = decode(G_HIERARCHY_PROFILE,1,1,2)
                AND    CS.NEXT_DATE >= MIHM.effective_date (+)
                AND    CS.NEXT_DATE <= MIHM.disable_date (+)
                AND    MIHM.demand_class (+) = p_demand_class
                   )
                GROUP BY SD_DATE
                ORDER BY SD_DATE;--4698199
Line: 1150

              SELECT        SD_DATE,
                           SUM(UNALLOC_SD_QTY),
                           SUM(SD_QTY)
             BULK COLLECT INTO
                           x_atp_dates,
                           x_atp_unalloc_qtys,
                           x_atp_qtys
             FROM (
                   SELECT  -- C.PRIOR_DATE SD_DATE, -- 2859130
			GREATEST(
                           TRUNC(DECODE(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))))
                           	,p_sys_next_date) SD_DATE, --3099066 --plan by request date

                           -1* (D.USING_REQUIREMENT_QUANTITY - NVL(d.reserved_quantity, 0)) UNALLOC_SD_QTY, --5027568
                           -1* (D.USING_REQUIREMENT_QUANTITY - NVL(d.reserved_quantity, 0))* --5027568
                           DECODE(DECODE(G_HIERARCHY_PROFILE,
                           /*------------------------------------------------------------------------+
                           | rajjain begin 07/19/2002                                                |
                           |                                                                         |
                           | Case 1: For internal sales orders [origination type is in (6,30) and    |
                           |            source_organization_id is not null and <> organization_id]   |
                           |                  Return NULL                                            |
                           | Case 2: For others if DEMAND_CLASS is null then return null             |
                           |          else if p_demand_class is '-1' then call                       |
                           |            Get_Hierarchy_Demand_class else return DEMAND_CLASS          |
                           +------------------------------------------------------------------------*/
                              1,
                              decode(MSC_ATP_PVT.G_INTERNAL_SALES_ORDER,'N', --10425563
                              decode(d.origination_type,
                                 6, decode(d.source_organization_id,
                                    NULL, DECODE(D.DEMAND_CLASS, null, null,
                                       DECODE(p_demand_class, '-1',
                                          MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             null, null, p_item_id, p_org_id,
                                             p_instance_id, TRUNC(DECODE(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)))), p_level_id, D.DEMAND_CLASS),
                                             D.DEMAND_CLASS)),
                                    -23453, DECODE(D.DEMAND_CLASS, null, null,
                                       DECODE(p_demand_class, '-1',
                                          MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             null, null, p_item_id, p_org_id,
                                             p_instance_id, TRUNC(DECODE(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)))), p_level_id, D.DEMAND_CLASS),
                                             D.DEMAND_CLASS)),
                                    d.organization_id, DECODE(D.DEMAND_CLASS, null, null,
                                       DECODE(p_demand_class, '-1',
                                          MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             null, null, p_item_id, p_org_id,
                                             p_instance_id, TRUNC(DECODE(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)))), p_level_id, D.DEMAND_CLASS),
                                             D.DEMAND_CLASS)), TO_CHAR(NULL)),
                                 30, decode(d.source_organization_id,
                                    NULL, DECODE(D.DEMAND_CLASS, null, null,
                                       DECODE(p_demand_class, '-1',
                                          MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             null, null, p_item_id, p_org_id,
                                             p_instance_id, TRUNC(DECODE(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)))), p_level_id, D.DEMAND_CLASS),
                                             D.DEMAND_CLASS)),
                                    -23453, DECODE(D.DEMAND_CLASS, null, null,
                                       DECODE(p_demand_class, '-1',
                                          MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             null, null, p_item_id, p_org_id,
                                             p_instance_id, TRUNC(DECODE(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)))), p_level_id, D.DEMAND_CLASS),
                                             D.DEMAND_CLASS)),
                                    d.organization_id, DECODE(D.DEMAND_CLASS, null, null,
                                       DECODE(p_demand_class, '-1',
                                          MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             null, null, p_item_id, p_org_id,
                                             p_instance_id, TRUNC(DECODE(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)))), p_level_id, D.DEMAND_CLASS),
                                             D.DEMAND_CLASS)), TO_CHAR(NULL)),
                                 DECODE(D.DEMAND_CLASS, null, null,
                                    DECODE(p_demand_class, '-1',
                                       MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                          null, null, p_item_id, p_org_id,
                                          p_instance_id, TRUNC(DECODE(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)))), p_level_id, D.DEMAND_CLASS),
                                          D.DEMAND_CLASS))),
                                 DECODE(D.DEMAND_CLASS, null, null, --10425563
                                    DECODE(p_demand_class, '-1',
                                       MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                          null, null, p_item_id, p_org_id,
                                          p_instance_id, TRUNC(DECODE(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)))), p_level_id, D.DEMAND_CLASS),
                                          D.DEMAND_CLASS))),
                              -- rajjain end
                              2, DECODE(D.CUSTOMER_ID, NULL, TO_CHAR(NULL),
                                                   0, TO_CHAR(NULL),
                                 -- rajjain begin 07/19/2002
                                 decode(MSC_ATP_PVT.G_INTERNAL_SALES_ORDER,'N', --10425563
                                 decode(d.origination_type,
                                    6, decode(d.source_organization_id,
                                       NULL, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
                                             p_org_id, p_instance_id, TRUNC(DECODE(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)))),
                                             p_level_id, NULL),
                                       -23453, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
                                             p_org_id, p_instance_id, TRUNC(DECODE(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)))),
                                             p_level_id, NULL),
                                       d.organization_id, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
                                             p_org_id, p_instance_id, TRUNC(DECODE(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)))),
                                             p_level_id, NULL),
                                       TO_CHAR(NULL)),
                                    30, decode(d.source_organization_id,
                                       NULL, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
                                             p_org_id, p_instance_id, TRUNC(DECODE(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)))),
                                             p_level_id, NULL),
                                       -23453, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
                                             p_org_id, p_instance_id, TRUNC(DECODE(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)))),
                                             p_level_id, NULL),
                                       d.organization_id, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
                                             p_org_id, p_instance_id, TRUNC(DECODE(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)))),
                                             p_level_id, NULL),
                                       TO_CHAR(NULL)),
                                    MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(D.CUSTOMER_ID, D.SHIP_TO_SITE_ID,
                                       p_item_id, p_org_id, p_instance_id,
                                       TRUNC(DECODE(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)))),p_level_id, NULL)),
                                    MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, --10425563
                                       p_item_id, p_org_id, p_instance_id,
                                       TRUNC(DECODE(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)))),p_level_id, NULL))
                                    )),
                                 -- rajjain end 07/19/2002
                           p_demand_class, 1,
                              Decode(D.Demand_Class, NULL, --4365873
                              MSC_AATP_FUNC.Get_Item_Demand_Alloc_Percent(p_plan_id,
                                 D.DEMAND_ID,
                                 TRUNC(DECODE(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)))),
                                 D.USING_ASSEMBLY_ITEM_ID,
                                 DECODE(D.SOURCE_ORGANIZATION_ID,
                                    -23453, null,
                                    D.SOURCE_ORGANIZATION_ID), -- 1665483
                                 p_item_id,
                                 p_org_id, -- 1665483
                                 p_instance_id,
                                 decode (d.origination_type, -100, 30,d.origination_type), --5027568
                                 DECODE(G_HIERARCHY_PROFILE,
                                 /*-----------------------------------------------------------------+
                                 | rajjain begin 07/19/2002                                         |
                                 |                                                                  |
                                 | Case 1: For internal sales orders [origination type is in (6,30) |
                                 |         and source_organization_id is not null                   |
                                 |         and <> organization_id] -> Return p_demand_class         |
                                 | Case 2: For others if DEMAND_CLASS is null then return null      |
                                 |           else if p_demand_class is '-1' then call               |
                                 |           Get_Hierarchy_Demand_class else return DEMAND_CLASS    |
                                 +-----------------------------------------------------------------*/
                                    1,
                                     decode(MSC_ATP_PVT.G_INTERNAL_SALES_ORDER,'N', --10425563
                                     decode(d.origination_type,
                                       6, decode(d.source_organization_id,
                                          NULL, DECODE(D.DEMAND_CLASS, null, null,
                                             DECODE(p_demand_class, '-1',
                                                MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                   null, null, p_item_id, p_org_id,
                                                   p_instance_id, TRUNC(DECODE(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)))), p_level_id, D.DEMAND_CLASS),
                                                D.DEMAND_CLASS)),
                                          -23453, DECODE(D.DEMAND_CLASS, null, null,
                                             DECODE(p_demand_class, '-1',
                                                MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                   null, null, p_item_id, p_org_id,
                                                   p_instance_id, TRUNC(DECODE(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)))), p_level_id, D.DEMAND_CLASS),
                                                D.DEMAND_CLASS)),
                                          d.organization_id, DECODE(D.DEMAND_CLASS, null, null,
                                             DECODE(p_demand_class, '-1',
                                                MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                   null, null, p_item_id, p_org_id,
                                                   p_instance_id, TRUNC(DECODE(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)))), p_level_id, D.DEMAND_CLASS),
                                                D.DEMAND_CLASS)),
                                          p_demand_class),
                                    30, decode(d.source_organization_id,
                                       NULL, DECODE(D.DEMAND_CLASS, null, null,
                                          DECODE(p_demand_class, '-1',
                                             MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                null, null, p_item_id, p_org_id,
                                                p_instance_id, TRUNC(DECODE(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)))), p_level_id, D.DEMAND_CLASS),
                                             D.DEMAND_CLASS)),
                                       -23453, DECODE(D.DEMAND_CLASS, null, null,
                                          DECODE(p_demand_class, '-1',
                                             MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                null, null, p_item_id, p_org_id,
                                                p_instance_id, TRUNC(DECODE(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)))), p_level_id, D.DEMAND_CLASS),
                                             D.DEMAND_CLASS)),
                                       d.organization_id, DECODE(D.DEMAND_CLASS, null, null,
                                          DECODE(p_demand_class, '-1',
                                             MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                null, null, p_item_id, p_org_id,
                                                p_instance_id, TRUNC(DECODE(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)))), p_level_id, D.DEMAND_CLASS),
                                             D.DEMAND_CLASS)),
                                       p_demand_class),
                                    DECODE(D.DEMAND_CLASS, null, null,
                                       DECODE(p_demand_class, '-1',
                                          MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             null, null, p_item_id, p_org_id,
                                             p_instance_id, TRUNC(DECODE(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)))), p_level_id, D.DEMAND_CLASS),
                                          D.DEMAND_CLASS))),
                                    DECODE(D.DEMAND_CLASS, null, null, --10425563
                                       DECODE(p_demand_class, '-1',
                                          MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             null, null, p_item_id, p_org_id,
                                             p_instance_id, TRUNC(DECODE(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)))), p_level_id, D.DEMAND_CLASS),
                                          D.DEMAND_CLASS))),
                                    -- rajjain end
                                    2, DECODE(D.CUSTOMER_ID, NULL, p_demand_class,
                                                   0, p_demand_class,
                                       -- rajjain begin 07/19/2002
                                       decode(MSC_ATP_PVT.G_INTERNAL_SALES_ORDER,'N', --10425563
                                       decode(d.origination_type,
                                          6, decode(d.source_organization_id,
                                             NULL, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                   D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
                                                   p_org_id, p_instance_id, TRUNC(DECODE(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)))),
                                                   p_level_id, NULL),
                                             -23453, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                   D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
                                                   p_org_id, p_instance_id, TRUNC(DECODE(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)))),
                                                   p_level_id, NULL),
                                             d.organization_id, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                   D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
                                                   p_org_id, p_instance_id, TRUNC(DECODE(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)))),
                                                   p_level_id, NULL),
                                             p_demand_class),
                                          30, decode(d.source_organization_id,
                                             NULL, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                   D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
                                                   p_org_id, p_instance_id, TRUNC(DECODE(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)))),
                                                   p_level_id, NULL),
                                             -23453, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                   D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
                                                   p_org_id, p_instance_id, TRUNC(DECODE(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)))),
                                                   p_level_id, NULL),
                                             d.organization_id, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                   D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
                                                   p_org_id, p_instance_id, TRUNC(DECODE(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)))),
                                                   p_level_id, NULL),
                                             p_demand_class),
                                          MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(D.CUSTOMER_ID, D.SHIP_TO_SITE_ID,
                                             p_item_id, p_org_id, p_instance_id,
                                             TRUNC(DECODE(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)))),p_level_id, NULL)),
                                          MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, --10425563
                                             p_item_id, p_org_id, p_instance_id,
                                             TRUNC(DECODE(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)))),p_level_id, NULL))
                                         )),
                                       -- rajjain end 07/19/2002
                                       p_demand_class,
                                       p_level_id),0)) SD_QTY --4365873
                   FROM    MSC_DEMANDS D
                   WHERE        D.PLAN_ID = p_plan_id
                   AND                D.SR_INSTANCE_ID = p_instance_id
                   AND                D.INVENTORY_ITEM_ID = p_item_id
                   AND         D.ORGANIZATION_ID = p_org_id
                   AND         D.USING_REQUIREMENT_QUANTITY <> 0 --4501434
                   AND         D.ORIGINATION_TYPE NOT IN (5,7,8,9,11,15,22,28,29,31,52,70) -- For summary enhancement
                   -- Bug1990155, 1995835 exclude the expired lots demand datreya 9/18/2001
                   -- Bug 1530311, need to exclude forecast, ngoel 12/05/2000
                   --AND                C.CALENDAR_CODE = p_cal_code
                   --AND                C.EXCEPTION_SET_ID = p_cal_exc_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.
                   -- 2859130 repetitive schedule not supported for constrained plan
                   --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         (( D.ORIGINATION_TYPE = 4
                   --        AND C.SEQ_NUM IS NOT NULL) OR
                   --        ( D.ORIGINATION_TYPE  <> 4))
                   -- AND         C.PRIOR_DATE < NVL(p_itf,
                   --                 C.PRIOR_DATE + 1)
                   --bug3693892 added trunc
                   AND         TRUNC(DECODE(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)))) <
                               TRUNC(NVL(p_itf,DECODE(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))) + 1))
                   UNION ALL
                   SELECT  -- C.NEXT_DATE SD_DATE, -- 2859130
                           -- TRUNC(NVL(S.FIRM_DATE, S.NEW_SCHEDULE_DATE)) SD_DATE,
                           greatest(TRUNC(NVL(S.FIRM_DATE, S.NEW_SCHEDULE_DATE)),p_sys_next_date) SD_DATE,--3099066
                           NVL(S.FIRM_QUANTITY,S.NEW_ORDER_QUANTITY) UNALLOC_SD_QTY,
                           NVL(S.FIRM_QUANTITY,S.NEW_ORDER_QUANTITY)*
                              DECODE(DECODE(G_HIERARCHY_PROFILE,
                                     --2424357: Convert the demand calls in case of others for
                                     --- demand class allocated ATP
                                     1, DECODE(S.DEMAND_CLASS, null, null,
                                        DECODE(p_demand_class, '-1',
                                           MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                         null,
                                                         null,
                                                         S.inventory_item_id,
                                                         p_org_id,
                                                         p_instance_id,
                                                         trunc(nvl(S.firm_date, S.new_schedule_date)),
                                                         p_level_id,
                                                         S.DEMAND_CLASS),S.DEMAND_CLASS)),
                                     2, DECODE(S.CUSTOMER_ID, NULL, TO_CHAR(NULL),
                                                       0, TO_CHAR(NULL),
                                                       MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                         S.CUSTOMER_ID,
                                                         S.SHIP_TO_SITE_ID,
                                                         S.inventory_item_id,
                                                         p_org_id,
                                                         p_instance_id,
                                                         trunc(nvl(S.firm_date, S.new_schedule_date)),
                                                         p_level_id,
                                                         NULL))),
                                 p_demand_class, 1,
                                 NULL, nvl(MIHM.allocation_percent/100,1), --4365873
                                 /*NVL(MSC_AATP_FUNC.Get_DC_Alloc_Percent(
                                           p_instance_id,
                                           s.inventory_item_id,
                                           p_org_id,
                                           null,
                                           null,
                                           p_demand_class,
                                           trunc(nvl(s.firm_date, s.new_schedule_date))), 1),*/
                                 DECODE(MIHM.allocation_percent/100, --4365873
                                 /*MSC_AATP_FUNC.Get_DC_Alloc_Percent(
                                           p_instance_id,
                                           s.inventory_item_id,
                                           p_org_id,
                                           null,
                                           null,
                                           p_demand_class,
                                           trunc(nvl(s.firm_date, s.new_schedule_date))),*/
                                   NULL, 1,
                                 0)) SD_QTY
                   FROM    -- MSC_CALENDAR_DATES C,
                           MSC_SUPPLIES S,MSC_ITEM_HIERARCHY_MV MIHM
                   WHERE   S.PLAN_ID = p_plan_id
                   AND     S.SR_INSTANCE_ID = p_instance_id
                   AND     S.INVENTORY_ITEM_ID = p_item_id
                   AND     S.ORGANIZATION_ID = p_org_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_cal_code
                   --AND     C.EXCEPTION_SET_ID = p_cal_exc_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
                   -- 2859130
                   -- AND     C.NEXT_DATE >= DECODE(S.ORDER_TYPE, 27, TRUNC(SYSDATE),
                   --                                             28, TRUNC(SYSDATE),
                   --                                             C.NEXT_DATE)
                   -- AND     C.NEXT_DATE < NVL(p_itf,
                   --                           C.NEXT_DATE + 1)
                   --AND     C.CALENDAR_DATE >= DECODE(S.ORDER_TYPE, 27, TRUNC(SYSDATE),
                   --                                            28, TRUNC(SYSDATE),
                   --                                            C.CALENDAR_DATE)
                   AND     trunc(NVL(S.FIRM_DATE, S.NEW_SCHEDULE_DATE)) >= trunc(DECODE(S.ORDER_TYPE, 27, SYSDATE,
                                                               28, SYSDATE,
                                                               trunc(NVL(S.FIRM_DATE, S.NEW_SCHEDULE_DATE)))) --4135752
                   AND     trunc(NVL(S.FIRM_DATE, S.NEW_SCHEDULE_DATE)) < NVL(p_itf,
                                             trunc(NVL(S.FIRM_DATE, S.NEW_SCHEDULE_DATE)) + 1)
		--4365873
                AND    S.INVENTORY_ITEM_ID = MIHM.INVENTORY_ITEM_ID(+)
                AND    S.SR_INSTANCE_ID = MIHM.SR_INSTANCE_ID (+)
                AND    S.ORGANIZATION_ID = MIHM.ORGANIZATION_ID (+)
                AND    decode(MIHM.level_id (+),-1,1,2) = decode(G_HIERARCHY_PROFILE,1,1,2)
                AND    trunc(NVL(S.FIRM_DATE, S.NEW_SCHEDULE_DATE)) >= MIHM.effective_date (+)
                AND    trunc(NVL(S.FIRM_DATE, S.NEW_SCHEDULE_DATE)) <= MIHM.disable_date (+)
                AND    MIHM.demand_class (+) = p_demand_class
                   )
             GROUP BY SD_DATE
             ORDER BY SD_DATE;--4698199
Line: 1685

             SELECT        SD_DATE,
                           SUM(UNALLOC_SD_QTY),
                           SUM(SD_QTY)
             BULK COLLECT INTO
                           x_atp_dates,
                           x_atp_unalloc_qtys,
                           x_atp_qtys
             FROM (
                   SELECT  --C.CALENDAR_DATE SD_DATE, -- 2859130 change to calendar date
                   	   GREATEST(C.CALENDAR_DATE,p_sys_next_date) SD_DATE,--3099066
                           -1* DECODE(D.ORIGINATION_TYPE,
                                  4, D.DAILY_DEMAND_RATE,
                                  --D.USING_REQUIREMENT_QUANTITY) UNALLOC_SD_QTY,
                                  (D.USING_REQUIREMENT_QUANTITY - NVL(d.reserved_quantity, 0))) UNALLOC_SD_QTY, --5027568
                           -1* DECODE(D.ORIGINATION_TYPE,
                                  4, D.DAILY_DEMAND_RATE,
                                  --D.USING_REQUIREMENT_QUANTITY)*
                                  (D.USING_REQUIREMENT_QUANTITY - NVL(d.reserved_quantity, 0)))* --5027568
                           DECODE(DECODE(G_HIERARCHY_PROFILE,
                           /*------------------------------------------------------------------------+
                           | rajjain begin 07/19/2002                                                |
                           |                                                                         |
                           | Case 1: For internal sales orders [origination type is in (6,30) and    |
                           |            source_organization_id is not null and <> organization_id]   |
                           |                  Return NULL                                            |
                           | Case 2: For others if DEMAND_CLASS is null then return null             |
                           |          else if p_demand_class is '-1' then call                       |
                           |            Get_Hierarchy_Demand_class else return DEMAND_CLASS          |
                           +------------------------------------------------------------------------*/
                              1,
                              decode(MSC_ATP_PVT.G_INTERNAL_SALES_ORDER,'N', --10425563
                              decode(d.origination_type,
                                 6, decode(d.source_organization_id,
                                    NULL, DECODE(D.DEMAND_CLASS, null, null,
                                       DECODE(p_demand_class, '-1',
                                          MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             null, null, p_item_id, p_org_id,
                                             p_instance_id, c.calendar_date, p_level_id, D.DEMAND_CLASS),
                                             D.DEMAND_CLASS)),
                                    -23453, DECODE(D.DEMAND_CLASS, null, null,
                                       DECODE(p_demand_class, '-1',
                                          MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             null, null, p_item_id, p_org_id,
                                             p_instance_id, c.calendar_date, p_level_id, D.DEMAND_CLASS),
                                             D.DEMAND_CLASS)),
                                    d.organization_id, DECODE(D.DEMAND_CLASS, null, null,
                                       DECODE(p_demand_class, '-1',
                                          MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             null, null, p_item_id, p_org_id,
                                             p_instance_id, c.calendar_date, p_level_id, D.DEMAND_CLASS),
                                             D.DEMAND_CLASS)), TO_CHAR(NULL)),
                                 30, decode(d.source_organization_id,
                                    NULL, DECODE(D.DEMAND_CLASS, null, null,
                                       DECODE(p_demand_class, '-1',
                                          MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             null, null, p_item_id, p_org_id,
                                             p_instance_id, c.calendar_date, p_level_id, D.DEMAND_CLASS),
                                             D.DEMAND_CLASS)),
                                    -23453, DECODE(D.DEMAND_CLASS, null, null,
                                       DECODE(p_demand_class, '-1',
                                          MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             null, null, p_item_id, p_org_id,
                                             p_instance_id, c.calendar_date, p_level_id, D.DEMAND_CLASS),
                                             D.DEMAND_CLASS)),
                                    d.organization_id, DECODE(D.DEMAND_CLASS, null, null,
                                       DECODE(p_demand_class, '-1',
                                          MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             null, null, p_item_id, p_org_id,
                                             p_instance_id, c.calendar_date, p_level_id, D.DEMAND_CLASS),
                                             D.DEMAND_CLASS)), TO_CHAR(NULL)),
                                 DECODE(D.DEMAND_CLASS, null, null,
                                    DECODE(p_demand_class, '-1',
                                       MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                          null, null, p_item_id, p_org_id,
                                          p_instance_id, c.calendar_date, p_level_id, D.DEMAND_CLASS),
                                          D.DEMAND_CLASS))),
                                DECODE(D.DEMAND_CLASS, null, null, --10425563
                                    DECODE(p_demand_class, '-1',
                                       MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                          null, null, p_item_id, p_org_id,
                                          p_instance_id, c.calendar_date, p_level_id, D.DEMAND_CLASS),
                                          D.DEMAND_CLASS))),
                              -- rajjain end
                              2, DECODE(D.CUSTOMER_ID, NULL, TO_CHAR(NULL),
                                                   0, TO_CHAR(NULL),
                                 -- rajjain begin 07/19/2002
                                 decode(MSC_ATP_PVT.G_INTERNAL_SALES_ORDER,'N', --10425563
                                 decode(d.origination_type,
                                    6, decode(d.source_organization_id,
                                       NULL, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
                                             p_org_id, p_instance_id, c.calendar_date,
                                             p_level_id, NULL),
                                       -23453, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
                                             p_org_id, p_instance_id, c.calendar_date,
                                             p_level_id, NULL),
                                       d.organization_id, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
                                             p_org_id, p_instance_id, c.calendar_date,
                                             p_level_id, NULL),
                                       TO_CHAR(NULL)),
                                    30, decode(d.source_organization_id,
                                       NULL, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
                                             p_org_id, p_instance_id, c.calendar_date,
                                             p_level_id, NULL),
                                       -23453, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
                                             p_org_id, p_instance_id, c.calendar_date,
                                             p_level_id, NULL),
                                       d.organization_id, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
                                             p_org_id, p_instance_id, c.calendar_date,
                                             p_level_id, NULL),
                                       TO_CHAR(NULL)),
                                    MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, --10425563
                                       p_item_id, p_org_id, p_instance_id,
                                       c.calendar_date,p_level_id, NULL)),
                                    MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(D.CUSTOMER_ID, D.SHIP_TO_SITE_ID,
                                       p_item_id, p_org_id, p_instance_id,
                                       c.calendar_date,p_level_id, NULL)))),
                                 -- rajjain end 07/19/2002
                           p_demand_class, 1,
                             Decode(D.Demand_Class, NULL, --4365873
                              MSC_AATP_FUNC.Get_Item_Demand_Alloc_Percent(p_plan_id,
                                 D.DEMAND_ID,
                                 c.calendar_date,
                                 D.USING_ASSEMBLY_ITEM_ID,
                                 DECODE(D.SOURCE_ORGANIZATION_ID,
                                    -23453, null,
                                    D.SOURCE_ORGANIZATION_ID), -- 1665483
                                 p_item_id,
                                 p_org_id, -- 1665483
                                 p_instance_id,
                                 DECODE (D.ORIGINATION_TYPE, -100, 30,D.ORIGINATION_TYPE) , --5027568
                                 DECODE(G_HIERARCHY_PROFILE,
                                 /*-----------------------------------------------------------------+
                                 | rajjain begin 07/19/2002                                         |
                                 |                                                                  |
                                 | Case 1: For internal sales orders [origination type is in (6,30) |
                                 |         and source_organization_id is not null                   |
                                 |         and <> organization_id] -> Return p_demand_class         |
                                 | Case 2: For others if DEMAND_CLASS is null then return null      |
                                 |           else if p_demand_class is '-1' then call               |
                                 |           Get_Hierarchy_Demand_class else return DEMAND_CLASS    |
                                 +-----------------------------------------------------------------*/
                                    1,
                                    decode(MSC_ATP_PVT.G_INTERNAL_SALES_ORDER,'N', --10425563
                                    decode(d.origination_type,
                                       6, decode(d.source_organization_id,
                                          NULL, DECODE(D.DEMAND_CLASS, null, null,
                                             DECODE(p_demand_class, '-1',
                                                MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                   null, null, p_item_id, p_org_id,
                                                   p_instance_id, c.calendar_date, p_level_id, D.DEMAND_CLASS),
                                                D.DEMAND_CLASS)),
                                          -23453, DECODE(D.DEMAND_CLASS, null, null,
                                             DECODE(p_demand_class, '-1',
                                                MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                   null, null, p_item_id, p_org_id,
                                                   p_instance_id, c.calendar_date, p_level_id, D.DEMAND_CLASS),
                                                D.DEMAND_CLASS)),
                                          d.organization_id, DECODE(D.DEMAND_CLASS, null, null,
                                             DECODE(p_demand_class, '-1',
                                                MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                   null, null, p_item_id, p_org_id,
                                                   p_instance_id, c.calendar_date, p_level_id, D.DEMAND_CLASS),
                                                D.DEMAND_CLASS)),
                                          p_demand_class),
                                    30, decode(d.source_organization_id,
                                       NULL, DECODE(D.DEMAND_CLASS, null, null,
                                          DECODE(p_demand_class, '-1',
                                             MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                null, null, p_item_id, p_org_id,
                                                p_instance_id, c.calendar_date, p_level_id, D.DEMAND_CLASS),
                                             D.DEMAND_CLASS)),
                                       -23453, DECODE(D.DEMAND_CLASS, null, null,
                                          DECODE(p_demand_class, '-1',
                                             MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                null, null, p_item_id, p_org_id,
                                                p_instance_id, c.calendar_date, p_level_id, D.DEMAND_CLASS),
                                             D.DEMAND_CLASS)),
                                       d.organization_id, DECODE(D.DEMAND_CLASS, null, null,
                                          DECODE(p_demand_class, '-1',
                                             MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                null, null, p_item_id, p_org_id,
                                                p_instance_id, c.calendar_date, p_level_id, D.DEMAND_CLASS),
                                             D.DEMAND_CLASS)),
                                       p_demand_class),
                                    DECODE(D.DEMAND_CLASS, null, null,
                                       DECODE(p_demand_class, '-1',
                                          MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             null, null, p_item_id, p_org_id,
                                             p_instance_id, c.calendar_date, p_level_id, D.DEMAND_CLASS),
                                          D.DEMAND_CLASS))),
                                    DECODE(D.DEMAND_CLASS, null, null, --10425563
                                       DECODE(p_demand_class, '-1',
                                          MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             null, null, p_item_id, p_org_id,
                                             p_instance_id, c.calendar_date, p_level_id, D.DEMAND_CLASS),
                                          D.DEMAND_CLASS))),
                                    -- rajjain end
                                    2, DECODE(D.CUSTOMER_ID, NULL, p_demand_class,
                                                   0, p_demand_class,
                                       -- rajjain begin 07/19/2002
                                       decode(MSC_ATP_PVT.G_INTERNAL_SALES_ORDER,'N', --10425563
                                       decode(d.origination_type,
                                          6, decode(d.source_organization_id,
                                             NULL, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                   D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
                                                   p_org_id, p_instance_id, c.calendar_date,
                                                   p_level_id, NULL),
                                             -23453, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                   D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
                                                   p_org_id, p_instance_id, c.calendar_date,
                                                   p_level_id, NULL),
                                             d.organization_id, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                   D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
                                                   p_org_id, p_instance_id, c.calendar_date,
                                                   p_level_id, NULL),
                                             p_demand_class),
                                          30, decode(d.source_organization_id,
                                             NULL, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                   D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
                                                   p_org_id, p_instance_id, c.calendar_date,
                                                   p_level_id, NULL),
                                             -23453, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                   D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
                                                   p_org_id, p_instance_id, c.calendar_date,
                                                   p_level_id, NULL),
                                             d.organization_id, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                   D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
                                                   p_org_id, p_instance_id, c.calendar_date,
                                                   p_level_id, NULL),
                                             p_demand_class),
                                          MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(D.CUSTOMER_ID, D.SHIP_TO_SITE_ID,
                                             p_item_id, p_org_id, p_instance_id,
                                             c.calendar_date,p_level_id, NULL)),
                                          MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, --10425563
                                             p_item_id, p_org_id, p_instance_id,
                                             c.calendar_date,p_level_id, NULL))
                                             )),
                                       -- rajjain end 07/19/2002
                                       p_demand_class,
                                       p_level_id),0)) SD_QTY --4365873
                   FROM    MSC_CALENDAR_DATES C,
                           MSC_DEMANDS D
                   WHERE        D.PLAN_ID = p_plan_id
                   AND                D.SR_INSTANCE_ID = p_instance_id
                   AND                D.INVENTORY_ITEM_ID = p_item_id
                   AND         D.ORGANIZATION_ID = p_org_id
                   AND         D.USING_REQUIREMENT_QUANTITY <> 0 --4501434
                   AND         D.ORIGINATION_TYPE NOT IN (5,7,8,9,11,15,22,28,29,31,52,70) -- For summary enhancement
                   -- Bug1990155, 1995835 exclude the expired lots demand datreya 9/18/2001
                   -- Bug 1530311, need to exclude forecast, ngoel 12/05/2000
                   AND                C.CALENDAR_CODE = p_cal_code
                   AND                C.EXCEPTION_SET_ID = p_cal_exc_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 3550296 and 3574164. IMPLEMENT_DATE AND DMD_SATISFIED_DATE are changed to
                   -- IMPLEMENT_SHIP_DATE and PLANNED_SHIP_DATE resp.
                   AND         C.CALENDAR_DATE BETWEEN TRUNC(DECODE(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)))) AND
                               TRUNC(NVL(D.ASSEMBLY_DEMAND_COMP_DATE,
                                         DECODE(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)))))
                   AND         (( D.ORIGINATION_TYPE = 4
                           AND C.SEQ_NUM IS NOT NULL) OR
                           ( D.ORIGINATION_TYPE  <> 4))
                   AND         C.CALENDAR_DATE < NVL(p_itf,
                                   C.CALENDAR_DATE + 1)
                   UNION ALL
                   SELECT  --C.CALENDAR_DATE SD_DATE, --2859130
                           greatest(CS.CALENDAR_DATE,p_sys_next_date) SD_DATE,--3099066
                           NVL(CS.FIRM_QUANTITY,CS.NEW_ORDER_QUANTITY) UNALLOC_SD_QTY,
                           NVL(CS.FIRM_QUANTITY,CS.NEW_ORDER_QUANTITY)*
                              DECODE(DECODE(G_HIERARCHY_PROFILE,
                                     --2424357: Convert the demand calls in case of others for
                                     --- demand class allocated ATP
                                     1, DECODE(CS.DEMAND_CLASS, null, null,
                                        DECODE(p_demand_class, '-1',
                                           MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                         null,
                                                         null,
                                                         cs.inventory_item_id,
                                                         p_org_id,
                                                         p_instance_id,
                                                         cs.calendar_date,
                                                         p_level_id,
                                                         CS.DEMAND_CLASS),CS.DEMAND_CLASS)),
                                     2, DECODE(CS.CUSTOMER_ID, NULL, TO_CHAR(NULL),
                                                       0, TO_CHAR(NULL),
                                                       MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                         CS.CUSTOMER_ID,
                                                         CS.SHIP_TO_SITE_ID,
                                                         cs.inventory_item_id,
                                                         p_org_id,
                                                         p_instance_id,
                                                         cs.calendar_date,
                                                         p_level_id,
                                                         NULL))),
                                 p_demand_class, 1,
                                 NULL, nvl(MIHM.allocation_percent/100,1), --4365873
                                 /*NVL(MSC_AATP_FUNC.Get_DC_Alloc_Percent(
                                           p_instance_id,
                                           s.inventory_item_id,
                                           p_org_id,
                                           null,
                                           null,
                                           p_demand_class,
                                           c.calendar_date), 1),*/
                                 DECODE(
                                 MIHM.allocation_percent/100, --4365873
                                 /*MSC_AATP_FUNC.Get_DC_Alloc_Percent(
                                           p_instance_id,
                                           s.inventory_item_id,
                                           p_org_id,
                                           null,
                                           null,
                                           p_demand_class,
                                           c.calendar_date),*/
                                   NULL, 1,
                                 0)) SD_QTY
                FROM
                (
                select
                	C.NEXT_DATE,
                	C.CALENDAR_DATE,
			S.FIRM_QUANTITY,
			S.NEW_ORDER_QUANTITY,
			S.DEMAND_CLASS,
			s.inventory_item_id,
			S.CUSTOMER_ID,
			S.SHIP_TO_SITE_ID,
			S.SR_INSTANCE_ID,
			S.ORGANIZATION_ID
                   FROM    MSC_CALENDAR_DATES C,
                           MSC_SUPPLIES S
                   WHERE   S.PLAN_ID = p_plan_id
                   AND     S.SR_INSTANCE_ID = p_instance_id
                   AND     S.INVENTORY_ITEM_ID = p_item_id
                   AND     S.ORGANIZATION_ID = p_org_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_cal_code
                   AND     C.EXCEPTION_SET_ID = p_cal_exc_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     C.CALENDAR_DATE >= DECODE(S.ORDER_TYPE, 27, TRUNC(SYSDATE),
                                                               28, TRUNC(SYSDATE),
                                                               C.CALENDAR_DATE)
                   AND     C.CALENDAR_DATE < NVL(p_itf,
                                             C.CALENDAR_DATE + 1))CS,
		MSC_ITEM_HIERARCHY_MV MIHM
		WHERE
		--4365873
                       CS.INVENTORY_ITEM_ID = MIHM.INVENTORY_ITEM_ID(+)
                AND    CS.SR_INSTANCE_ID = MIHM.SR_INSTANCE_ID (+)
                AND    CS.ORGANIZATION_ID = MIHM.ORGANIZATION_ID (+)
                AND    decode(MIHM.level_id (+),-1,1,2) = decode(G_HIERARCHY_PROFILE,1,1,2)
                AND    CS.NEXT_DATE >= MIHM.effective_date (+)
                AND    CS.NEXT_DATE <= MIHM.disable_date (+)
                AND    MIHM.demand_class (+) = p_demand_class
                   )
             GROUP BY SD_DATE
             ORDER BY SD_DATE;--4698199
Line: 2093

        INSERT INTO msc_atp_sd_details_temp (
                ATP_Level,
                Order_line_id,
                Scenario_Id,
                Inventory_Item_Id,
                Request_Item_Id,
                Organization_Id,
                Department_Id,
                Resource_Id,
                Supplier_Id,
                Supplier_Site_Id,
                From_Organization_Id,
                From_Location_Id,
                To_Organization_Id,
                To_Location_Id,
                Ship_Method,
                UOM_code,
                Supply_Demand_Type,
                Supply_Demand_Source_Type,
                Supply_Demand_Source_Type_Name,
                Identifier1,
                Identifier2,
                Identifier3,
                Identifier4,
                Allocated_Quantity, -- fixed as part of time_phased_atp
                Supply_Demand_Quantity,
                Supply_Demand_Date,
                Disposition_Type,
                Disposition_Name,
                Pegging_Id,
                End_Pegging_Id,
                creation_date,
                created_by,
                last_update_date,
                last_updated_by,
                last_update_login,
                Unallocated_Quantity,
                ORIG_CUSTOMER_SITE_NAME,--bug3263368
                ORIG_CUSTOMER_NAME, --bug3263368
                ORIG_DEMAND_CLASS, --bug3263368
                ORIG_REQUEST_DATE --bug3263368
                )
           (
            SELECT      p_level col1,
                        p_identifier col2,
                        p_scenario_id col3,
                        p_sr_item_id col4 ,
                        p_sr_item_id col5,
                        p_org_id col6,
                        l_null_num col7,
                        l_null_num col8,
                        l_null_num col9,
                        l_null_num col10,
                        l_null_num col11,
                        l_null_num col12,
                        l_null_num col13,
                        l_null_num col14,
                        l_null_char col15,
                        p_uom_code col16,
                        1 col17, -- demand
                        --D.ORIGINATION_TYPE col18,
                        DECODE( D.ORIGINATION_TYPE, -100, 30, D.ORIGINATION_TYPE) col18,  --5027568
                        l_null_char col19,
                        D.SR_INSTANCE_ID col20,
                        l_null_num col21,
                        D.DEMAND_ID col22,
                        l_null_num col23,
                        -- -1* D.USING_REQUIREMENT_QUANTITY * -- 2859130 remove decode originition_type 4
                        -1*(D.USING_REQUIREMENT_QUANTITY - NVL(d.reserved_quantity, 0))* --5027568
			/*New*/
                        DECODE(p_scenario_id, -1, 1,
                        --2424357
                        DECODE(DECODE(G_HIERARCHY_PROFILE,
                        /*------------------------------------------------------------------------+
                        | rajjain begin 07/19/2002                                                |
                        |                                                                         |
                        | Case 1: For internal sales orders [origination type is in (6,30) and    |
                        |            source_organization_id is not null and <> organization_id]   |
                        |                  Return NULL                                            |
                        | Case 2: For others if DEMAND_CLASS is null then return null             |
                        |          else if p_demand_class is '-1' then call                       |
                        |            Get_Hierarchy_Demand_class else return DEMAND_CLASS          |
                        +------------------------------------------------------------------------*/
                           1,
                           decode(MSC_ATP_PVT.G_INTERNAL_SALES_ORDER,'N', --10425563
                           decode(d.origination_type,
                              6, decode(d.source_organization_id,
                                 NULL, DECODE(D.DEMAND_CLASS, null, null,
                                    DECODE(p_demand_class, '-1',
                                       MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                          null, null, p_item_id, p_org_id,
                                          p_instance_id, trunc(DECODE(RECORD_SOURCE,
                                         2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
                                            -- Bug 3550296 and 3574164. IMPLEMENT_DATE AND DMD_SATISFIED_DATE are changed to
                                            -- IMPLEMENT_SHIP_DATE and PLANNED_SHIP_DATE resp.
                                            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)))), p_level_id, D.DEMAND_CLASS),
                                          D.DEMAND_CLASS)),
                                 -23453, DECODE(D.DEMAND_CLASS, null, null,
                                    DECODE(p_demand_class, '-1',
                                       MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                          null, null, p_item_id, p_org_id,
                                          p_instance_id, trunc(DECODE(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)))), p_level_id, D.DEMAND_CLASS),
                                          D.DEMAND_CLASS)),
                                 d.organization_id, DECODE(D.DEMAND_CLASS, null, null,
                                    DECODE(p_demand_class, '-1',
                                       MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                          null, null, p_item_id, p_org_id,
                                          p_instance_id, trunc(DECODE(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)))), p_level_id, D.DEMAND_CLASS),
                                          D.DEMAND_CLASS)), NULL),
                              30, decode(d.source_organization_id,
                                 NULL, DECODE(D.DEMAND_CLASS, null, null,
                                    DECODE(p_demand_class, '-1',
                                       MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                          null, null, p_item_id, p_org_id,
                                          p_instance_id, trunc(DECODE(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)))), p_level_id, D.DEMAND_CLASS),
                                          D.DEMAND_CLASS)),
                                 -23453, DECODE(D.DEMAND_CLASS, null, null,
                                    DECODE(p_demand_class, '-1',
                                       MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                          null, null, p_item_id, p_org_id,
                                          p_instance_id, trunc(DECODE(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)))), p_level_id, D.DEMAND_CLASS),
                                          D.DEMAND_CLASS)),
                                 d.organization_id, DECODE(D.DEMAND_CLASS, null, null,
                                    DECODE(p_demand_class, '-1',
                                       MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                          null, null, p_item_id, p_org_id,
                                          p_instance_id, trunc(DECODE(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)))), p_level_id, D.DEMAND_CLASS),
                                          D.DEMAND_CLASS)), NULL),
                              DECODE(D.DEMAND_CLASS, null, null,
                                 DECODE(p_demand_class, '-1',
                                    MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                       null, null, p_item_id, p_org_id,
                                       p_instance_id, trunc(DECODE(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)))), p_level_id, D.DEMAND_CLASS),
                                       D.DEMAND_CLASS))),
                             DECODE(D.DEMAND_CLASS, null, null, --10425563
                                 DECODE(p_demand_class, '-1',
                                    MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                       null, null, p_item_id, p_org_id,
                                       p_instance_id, trunc(DECODE(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)))), p_level_id, D.DEMAND_CLASS),
                                       D.DEMAND_CLASS))),
                           -- rajjain end
                           2, DECODE(D.CUSTOMER_ID, NULL, NULL,
                                                0, NULL,
                              -- rajjain begin 07/19/2002
                              decode(MSC_ATP_PVT.G_INTERNAL_SALES_ORDER,'N', --10425563
                              decode(d.origination_type,
                                 6, decode(d.source_organization_id,
                                    NULL, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                          D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
                                          p_org_id, p_instance_id, trunc(DECODE(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)))),
                                          p_level_id, NULL),
                                    -23453, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                          D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
                                          p_org_id, p_instance_id, trunc(DECODE(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)))),
                                          p_level_id, NULL),
                                    d.organization_id, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                          D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
                                          p_org_id, p_instance_id, trunc(DECODE(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)))),
                                          p_level_id, NULL),
                                    NULL),
                                 30, decode(d.source_organization_id,
                                    NULL, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                          D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
                                          p_org_id, p_instance_id, trunc(DECODE(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)))),
                                          p_level_id, NULL),
                                    -23453, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                          D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
                                          p_org_id, p_instance_id, trunc(DECODE(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)))),
                                          p_level_id, NULL),
                                    d.organization_id, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                          D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
                                          p_org_id, p_instance_id, trunc(DECODE(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)))),
                                          p_level_id, NULL),
                                    NULL),
                                 MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(D.CUSTOMER_ID, D.SHIP_TO_SITE_ID,
                                    p_item_id, p_org_id, p_instance_id,
                                    trunc(DECODE(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)))),p_level_id, NULL)),
                                MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, --10425563
                                    p_item_id, p_org_id, p_instance_id,
                                    trunc(DECODE(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)))),p_level_id, NULL))
                                 )),
                              -- rajjain end 07/19/2002
                        p_demand_class, 1,
                          Decode(D.Demand_Class, NULL, --4365873
                           MSC_AATP_FUNC.Get_Item_Demand_Alloc_Percent(p_plan_id,
                              D.DEMAND_ID,
                              trunc(DECODE(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)))),
                              D.USING_ASSEMBLY_ITEM_ID,
                              DECODE(D.SOURCE_ORGANIZATION_ID,
                                 -23453, null,
                                 D.SOURCE_ORGANIZATION_ID),
                              p_item_id,
                              p_org_id, -- 1665483
                              p_instance_id,
                              decode (d.origination_type, -100, 30,d.origination_type),
                              DECODE(G_HIERARCHY_PROFILE,
                              /*-----------------------------------------------------------------+
                              | rajjain begin 07/19/2002                                         |
                              |                                                                  |
                              | Case 1: For internal sales orders [origination type is in (6,30) |
                              |         and source_organization_id is not null                   |
                              |         and <> organization_id] -> Return p_demand_class         |
                              | Case 2: For others if DEMAND_CLASS is null then return null      |
                              |           else if p_demand_class is '-1' then call               |
                              |           Get_Hierarchy_Demand_class else return DEMAND_CLASS    |
                              +-----------------------------------------------------------------*/
                                 1,
                                 decode(MSC_ATP_PVT.G_INTERNAL_SALES_ORDER,'N', --10425563
                                 decode(d.origination_type,
                                    6, decode(d.source_organization_id,
                                       NULL, DECODE(D.DEMAND_CLASS, null, null,
                                          DECODE(p_demand_class, '-1',
                                             MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                null, null, p_item_id, p_org_id,
                                                p_instance_id, TRUNC(DECODE(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)))), p_level_id, D.DEMAND_CLASS),
                                             D.DEMAND_CLASS)),
                                       -23453, DECODE(D.DEMAND_CLASS, null, null,
                                          DECODE(p_demand_class, '-1',
                                             MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                null, null, p_item_id, p_org_id,
                                                p_instance_id, TRUNC(DECODE(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)))), p_level_id, D.DEMAND_CLASS),
                                             D.DEMAND_CLASS)),
                                       d.organization_id, DECODE(D.DEMAND_CLASS, null, null,
                                          DECODE(p_demand_class, '-1',
                                             MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                null, null, p_item_id, p_org_id,
                                                p_instance_id, TRUNC(DECODE(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)))), p_level_id, D.DEMAND_CLASS),
                                             D.DEMAND_CLASS)),
                                       p_demand_class),
                                 30, decode(d.source_organization_id,
                                    NULL, DECODE(D.DEMAND_CLASS, null, null,
                                       DECODE(p_demand_class, '-1',
                                          MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             null, null, p_item_id, p_org_id,
                                             p_instance_id, TRUNC(DECODE(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)))), p_level_id, D.DEMAND_CLASS),
                                          D.DEMAND_CLASS)),
                                    -23453, DECODE(D.DEMAND_CLASS, null, null,
                                       DECODE(p_demand_class, '-1',
                                          MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             null, null, p_item_id, p_org_id,
                                             p_instance_id, TRUNC(DECODE(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)))), p_level_id, D.DEMAND_CLASS),
                                          D.DEMAND_CLASS)),
                                    d.organization_id, DECODE(D.DEMAND_CLASS, null, null,
                                       DECODE(p_demand_class, '-1',
                                          MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             null, null, p_item_id, p_org_id,
                                             p_instance_id, TRUNC(DECODE(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)))), p_level_id, D.DEMAND_CLASS),
                                          D.DEMAND_CLASS)),
                                    p_demand_class),
                                 DECODE(D.DEMAND_CLASS, null, null,
                                    DECODE(p_demand_class, '-1',
                                       MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                          null, null, p_item_id, p_org_id,
                                          p_instance_id, TRUNC(DECODE(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)))), p_level_id, D.DEMAND_CLASS),
                                       D.DEMAND_CLASS))),
                                 DECODE(D.DEMAND_CLASS, null, null, --10425563
                                    DECODE(p_demand_class, '-1',
                                       MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                          null, null, p_item_id, p_org_id,
                                          p_instance_id, TRUNC(DECODE(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)))), p_level_id, D.DEMAND_CLASS),
                                       D.DEMAND_CLASS))),
                                 -- rajjain end
                                 2, DECODE(D.CUSTOMER_ID, NULL, p_demand_class,
                                                0, p_demand_class,
                                    -- rajjain begin 07/19/2002
                                    decode(MSC_ATP_PVT.G_INTERNAL_SALES_ORDER,'N', --10425563
                                    decode(d.origination_type,
                                       6, decode(d.source_organization_id,
                                          NULL, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
                                                p_org_id, p_instance_id, TRUNC(DECODE(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)))),
                                                p_level_id, NULL),
                                          -23453, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
                                                p_org_id, p_instance_id, TRUNC(DECODE(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)))),
                                                p_level_id, NULL),
                                          d.organization_id, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
                                                p_org_id, p_instance_id, TRUNC(DECODE(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)))),
                                                p_level_id, NULL),
                                          p_demand_class),
                                       30, decode(d.source_organization_id,
                                          NULL, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
                                                p_org_id, p_instance_id, TRUNC(DECODE(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)))),
                                                p_level_id, NULL),
                                          -23453, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
                                                p_org_id, p_instance_id, TRUNC(DECODE(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)))),
                                                p_level_id, NULL),
                                          d.organization_id, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
                                                p_org_id, p_instance_id, TRUNC(DECODE(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)))),
                                                p_level_id, NULL),
                                          p_demand_class),
                                       MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(D.CUSTOMER_ID, D.SHIP_TO_SITE_ID,
                                          p_item_id, p_org_id, p_instance_id,
                                          TRUNC(DECODE(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)))),p_level_id, NULL)),
                                       MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, --10425563
                                          p_item_id, p_org_id, p_instance_id,
                                          TRUNC(DECODE(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)))),p_level_id, NULL))
                                                      )),
                                    -- rajjain end 07/19/2002
                                    p_demand_class,
                                    p_level_id),0))) col24,
                                /*New*/
                        -- -1* D.USING_REQUIREMENT_QUANTITY, -- fixed as part of time_phased_atp
                        -1* (D.USING_REQUIREMENT_QUANTITY - nvl(d.reserved_quantity,0)),--5027568
                        -- C.PRIOR_DATE col25, -- 2859130
                        GREATEST(TRUNC(DECODE(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)))),
                        	 p_sys_next_date) col25, --plan by request date --3099066
                        l_null_num col26,
                        DECODE(D.ORIGINATION_TYPE, 1, to_char(D.DISPOSITION_ID), D.ORDER_NUMBER) col27,
                               -- rajjain 04/25/2003 Bug 2771075
                               -- For Planned Order Demands We will populate disposition_id
                               -- in disposition_name column
                        l_null_num col28,
                        l_null_num col29,
        		-- ship_rec_cal changes begin
        		l_sysdate,
        		G_USER_ID,
        		l_sysdate,
        		G_USER_ID,
        		G_USER_ID,
        		-- ship_rec_cal changes end
                        -- Unallocated_Quantity
                        -- -1* D.USING_REQUIREMENT_QUANTITY, -- 2859130 remove decode for origination_type 4
                        -1* (D.USING_REQUIREMENT_QUANTITY - nvl(d.reserved_quantity,0)), --5027568
                        MTPS.LOCATION, --bug3263368
                        MTP.PARTNER_NAME, --bug3263368
                        D.DEMAND_CLASS, --bug3263368
                        DECODE(D.ORDER_DATE_TYPE_CODE,2,D.REQUEST_DATE,
                                                    D.REQUEST_SHIP_DATE) --bug3263368
            FROM        -- MSC_CALENDAR_DATES C, --2859130
                        MSC_DEMANDS D,
                        MSC_TRADING_PARTNERS    MTP,--bug3263368
                        MSC_TRADING_PARTNER_SITES    MTPS --bug3263368
            WHERE       D.PLAN_ID = p_plan_id
            AND         D.SR_INSTANCE_ID = p_instance_id
            AND         D.INVENTORY_ITEM_ID = p_item_id
            AND         D.ORGANIZATION_ID = p_org_id
            AND         D.USING_REQUIREMENT_QUANTITY <> 0 --4501434
            AND         D.ORIGINATION_TYPE NOT IN (5,7,8,9,11,15,22,28,29,31,52,70) -- For summary enhancement
            AND         D.SHIP_TO_SITE_ID = MTPS.PARTNER_SITE_ID(+) --bug3263368
            AND         D.CUSTOMER_ID = MTP.PARTNER_ID(+) --bug3263368
            -- 2859130
            -- Bug1990155, 1995835 exclude the expired lots demand datreya 9/18/2001
            -- Bug 1530311, need to exclude forecast, ngoel 12/05/2000
            -- AND         C.CALENDAR_CODE = p_cal_code
            -- AND         C.EXCEPTION_SET_ID = p_cal_exc_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.
            -- 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         (( D.ORIGINATION_TYPE = 4
            --               AND C.SEQ_NUM IS NOT NULL) OR
            --               ( D.ORIGINATION_TYPE  <> 4))
            -- 2859130
            -- Bug 3550296 and 3574164. IMPLEMENT_DATE AND DMD_SATISFIED_DATE are changed to
            -- IMPLEMENT_SHIP_DATE and PLANNED_SHIP_DATE resp.
            --bug3693892 added trunc
            AND         TRUNC(DECODE(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))))
                       < TRUNC(NVL(p_itf,DECODE(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))) + 1))
            -- AND C.CALENDAR_DATE < NVL(p_itf, C.CALENDAR_DATE+1)
            UNION ALL
            SELECT      p_level col1,
                        p_identifier col2,
                        p_scenario_id col3,
                        p_sr_item_id col4 ,
                        p_sr_item_id col5,
                        p_org_id col6,
                        l_null_num col7,
                        l_null_num col8,
                        l_null_num col9,
                        l_null_num col10,
                        l_null_num col11,
                        l_null_num col12,
                        l_null_num col13,
                        l_null_num col14,
                        l_null_char col15,
                        p_uom_code col16,
                        2 col17, -- supply
                        S.ORDER_TYPE col18,
                        l_null_char col19,
                        S.SR_INSTANCE_ID col20,
                                l_null_num col21,
                        S.TRANSACTION_ID col22,
                        l_null_num col23,
                        NVL(S.FIRM_QUANTITY,S.NEW_ORDER_QUANTITY)*
                                DECODE(p_scenario_id, -1, 1,
                                DECODE(DECODE(G_HIERARCHY_PROFILE,
                                              --2424357
                                              1, DECODE(S.DEMAND_CLASS, null, null,
                                                     DECODE(p_demand_class,'-1',
                                                        MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                          null,
                                                          null,
                                                          S.inventory_item_id,
                                                          p_org_id,
                                                          p_instance_id,
                                                          TRUNC(NVL(S.FIRM_DATE,S.NEW_SCHEDULE_DATE)),
                                                          p_level_id,
                                                          S.DEMAND_CLASS), S.DEMAND_CLASS)),
                                              2, DECODE(S.CUSTOMER_ID, NULL, TO_CHAR(NULL),
                                                        --0, TO_CHAR(NULL),
                                                        MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                          S.CUSTOMER_ID,
                                                          S.SHIP_TO_SITE_ID,
                                                          S.inventory_item_id,
                                                          p_org_id,
                                                          p_instance_id,
                                                          TRUNC(NVL(S.FIRM_DATE,S.NEW_SCHEDULE_DATE)),
                                                          p_level_id,
                                                          NULL))),
                                        p_demand_class, 1,
                                        NULL, NVL(MIHM.allocation_percent/100,--4365873
                                        /*NVL(MSC_AATP_FUNC.Get_DC_Alloc_Percent(
                                                p_instance_id,
                                                s.inventory_item_id,
                                                p_org_id,
                                                null,
                                                null,
                                                p_demand_class,
                                                TRUNC(NVL(S.FIRM_DATE,S.NEW_SCHEDULE_DATE))),*/
                                                 1),
                                        DECODE(MIHM.allocation_percent/100, --4365873
                                        /*DECODE(MSC_AATP_FUNC.Get_DC_Alloc_Percent(
                                                p_instance_id,
                                                s.inventory_item_id,
                                                p_org_id,
                                                null,
                                                null,
                                                p_demand_class,
                                                TRUNC(NVL(S.FIRM_DATE,S.NEW_SCHEDULE_DATE))),*/
                                        NULL, 1,
                                        0))) col24,
                        NVL(S.FIRM_QUANTITY,S.NEW_ORDER_QUANTITY),
                        --C.NEXT_DATE col25, -- 2859130
                        --TRUNC(NVL(S.FIRM_DATE,S.NEW_SCHEDULE_DATE)) col25,
                        GREATEST(TRUNC(NVL(S.FIRM_DATE,S.NEW_SCHEDULE_DATE)),p_sys_next_date) col25,--3099066
                        l_null_num col26,
                        DECODE(S.ORDER_TYPE, 5, to_char(S.TRANSACTION_ID), S.ORDER_NUMBER) col27,
                               -- Bug 2771075. For Planned Orders, we will populate transaction_id
			       -- in the disposition_name column to be consistent with Planning.
                        l_null_num col28,
                        l_null_num col29,
        		-- ship_rec_cal changes begin
        		l_sysdate,
        		G_USER_ID,
        		l_sysdate,
        		G_USER_ID,
        		G_USER_ID,
        		-- ship_rec_cal changes end
                        NVL(S.FIRM_QUANTITY,S.NEW_ORDER_QUANTITY), -- unallocated quantity
                        null, --bug3263368 ORIG_CUSTOMER_SITE_NAME
                        null, --bug3263368 ORIG_CUSTOMER_NAME
                        null, --bug3263368 ORIG_DEMAND_CLASS
                        null  --bug3263368 ORIG_REQUEST_DATE
            FROM        -- MSC_CALENDAR_DATES C, -- 2859130
                        MSC_SUPPLIES S,MSC_ITEM_HIERARCHY_MV  MIHM
            WHERE       S.PLAN_ID = p_plan_id
            AND         S.SR_INSTANCE_ID = p_instance_id
            AND         S.INVENTORY_ITEM_ID = p_item_id
            AND         S.ORGANIZATION_ID = p_org_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
            --2859130
            --AND         C.CALENDAR_CODE = p_cal_code
            --AND         C.EXCEPTION_SET_ID = p_cal_exc_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         C.NEXT_DATE >= DECODE(S.ORDER_TYPE, 27, TRUNC(SYSDATE),
            --                                                28, TRUNC(SYSDATE),
            --                                                C.NEXT_DATE)
            --AND         C.NEXT_DATE < NVL(p_itf,
            --                             C.NEXT_DATE + 1)
            AND         TRUNC(NVL(S.FIRM_DATE,S.NEW_SCHEDULE_DATE)) >= DECODE(S.ORDER_TYPE, 27, TRUNC(SYSDATE),
                                                            28, TRUNC(SYSDATE),
                                                            TRUNC(NVL(S.FIRM_DATE,S.NEW_SCHEDULE_DATE)))
            AND         TRUNC(NVL(S.FIRM_DATE,S.NEW_SCHEDULE_DATE)) < NVL(p_itf,
                                         TRUNC(NVL(S.FIRM_DATE,S.NEW_SCHEDULE_DATE)) + 1)
	    --4365873
            AND    S.INVENTORY_ITEM_ID = MIHM.INVENTORY_ITEM_ID(+)
            AND    S.SR_INSTANCE_ID = MIHM.SR_INSTANCE_ID (+)
            AND    S.ORGANIZATION_ID = MIHM.ORGANIZATION_ID (+)
            AND    decode(MIHM.level_id (+),-1,1,2) = decode(G_HIERARCHY_PROFILE,1,1,2)
            AND    TRUNC(NVL(S.FIRM_DATE,S.NEW_SCHEDULE_DATE)) >= MIHM.effective_date (+)
            AND    TRUNC(NVL(S.FIRM_DATE,S.NEW_SCHEDULE_DATE)) <= MIHM.disable_date (+)
            AND    MIHM.demand_class (+) = p_demand_class
           ); -- dsting removed order by col25
Line: 2762

        INSERT INTO msc_atp_sd_details_temp (
                ATP_Level,
                Order_line_id,
                Scenario_Id,
                Inventory_Item_Id,
                Request_Item_Id,
                Organization_Id,
                Department_Id,
                Resource_Id,
                Supplier_Id,
                Supplier_Site_Id,
                From_Organization_Id,
                From_Location_Id,
                To_Organization_Id,
                To_Location_Id,
                Ship_Method,
                UOM_code,
                Supply_Demand_Type,
                Supply_Demand_Source_Type,
                Supply_Demand_Source_Type_Name,
                Identifier1,
                Identifier2,
                Identifier3,
                Identifier4,
                Allocated_Quantity,
                Supply_Demand_Quantity,
                Supply_Demand_Date,
                Disposition_Type,
                Disposition_Name,
                Pegging_Id,
                End_Pegging_Id,
                creation_date,
                created_by,
                last_update_date,
                last_updated_by,
                last_update_login,
                Unallocated_Quantity,
                ORIG_CUSTOMER_SITE_NAME,--bug3263368
                ORIG_CUSTOMER_NAME, --bug3263368
                ORIG_DEMAND_CLASS, --bug3263368
                ORIG_REQUEST_DATE --bug3263368
                )
           (
            SELECT      p_level col1,
                        p_identifier col2,
                        p_scenario_id col3,
                        p_sr_item_id col4 ,
                        p_sr_item_id col5,
                        p_org_id col6,
                        l_null_num col7,
                        l_null_num col8,
                        l_null_num col9,
                        l_null_num col10,
                        l_null_num col11,
                        l_null_num col12,
                        l_null_num col13,
                        l_null_num col14,
                        l_null_char col15,
                        p_uom_code col16,
                        1 col17, -- demand
                        --D.ORIGINATION_TYPE col18,
                        DECODE( D.ORIGINATION_TYPE, -100, 30, D.ORIGINATION_TYPE) col18,  --5027568
                        l_null_char col19,
                        D.SR_INSTANCE_ID col20,
                        l_null_num col21,
                        D.DEMAND_ID col22,
                        l_null_num col23,
                        -1* DECODE(D.ORIGINATION_TYPE,
                               4, D.DAILY_DEMAND_RATE,
                               --D.USING_REQUIREMENT_QUANTITY)*
                               (D.USING_REQUIREMENT_QUANTITY - NVL(d.reserved_quantity, 0)))* --5027568
			/*New*/
                        DECODE(p_scenario_id, -1, 1,
                        --2424357
                        DECODE(DECODE(G_HIERARCHY_PROFILE,
                        /*------------------------------------------------------------------------+
                        | rajjain begin 07/19/2002                                                |
                        |                                                                         |
                        | Case 1: For internal sales orders [origination type is in (6,30) and    |
                        |            source_organization_id is not null and <> organization_id]   |
                        |                  Return NULL                                            |
                        | Case 2: For others if DEMAND_CLASS is null then return null             |
                        |          else if p_demand_class is '-1' then call                       |
                        |            Get_Hierarchy_Demand_class else return DEMAND_CLASS          |
                        +------------------------------------------------------------------------*/
                           1,
                           decode(MSC_ATP_PVT.G_INTERNAL_SALES_ORDER,'N', --10425563
                           decode(d.origination_type,
                              6, decode(d.source_organization_id,
                                 NULL, DECODE(D.DEMAND_CLASS, null, null,
                                    DECODE(p_demand_class, '-1',
                                       MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                          null, null, p_item_id, p_org_id,
                                          p_instance_id, c.calendar_date, p_level_id, D.DEMAND_CLASS),
                                          D.DEMAND_CLASS)),
                                 -23453, DECODE(D.DEMAND_CLASS, null, null,
                                    DECODE(p_demand_class, '-1',
                                       MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                          null, null, p_item_id, p_org_id,
                                          p_instance_id, c.calendar_date, p_level_id, D.DEMAND_CLASS),
                                          D.DEMAND_CLASS)),
                                 d.organization_id, DECODE(D.DEMAND_CLASS, null, null,
                                    DECODE(p_demand_class, '-1',
                                       MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                          null, null, p_item_id, p_org_id,
                                          p_instance_id, c.calendar_date, p_level_id, D.DEMAND_CLASS),
                                          D.DEMAND_CLASS)), NULL),
                              30, decode(d.source_organization_id,
                                 NULL, DECODE(D.DEMAND_CLASS, null, null,
                                    DECODE(p_demand_class, '-1',
                                       MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                          null, null, p_item_id, p_org_id,
                                          p_instance_id, c.calendar_date, p_level_id, D.DEMAND_CLASS),
                                          D.DEMAND_CLASS)),
                                 -23453, DECODE(D.DEMAND_CLASS, null, null,
                                    DECODE(p_demand_class, '-1',
                                       MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                          null, null, p_item_id, p_org_id,
                                          p_instance_id, c.calendar_date, p_level_id, D.DEMAND_CLASS),
                                          D.DEMAND_CLASS)),
                                 d.organization_id, DECODE(D.DEMAND_CLASS, null, null,
                                    DECODE(p_demand_class, '-1',
                                       MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                          null, null, p_item_id, p_org_id,
                                          p_instance_id, c.calendar_date, p_level_id, D.DEMAND_CLASS),
                                          D.DEMAND_CLASS)), NULL),
                              DECODE(D.DEMAND_CLASS, null, null,
                                 DECODE(p_demand_class, '-1',
                                    MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                       null, null, p_item_id, p_org_id,
                                       p_instance_id, c.calendar_date, p_level_id, D.DEMAND_CLASS),
                                       D.DEMAND_CLASS))),
                              DECODE(D.DEMAND_CLASS, null, null, --10425563
                                 DECODE(p_demand_class, '-1',
                                    MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                       null, null, p_item_id, p_org_id,
                                       p_instance_id, c.calendar_date, p_level_id, D.DEMAND_CLASS),
                                       D.DEMAND_CLASS))),
                           -- rajjain end
                           2, DECODE(D.CUSTOMER_ID, NULL, NULL,
                                                0, NULL,
                              -- rajjain begin 07/19/2002
                              decode(MSC_ATP_PVT.G_INTERNAL_SALES_ORDER,'N', --10425563
                              decode(d.origination_type,
                                 6, decode(d.source_organization_id,
                                    NULL, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                          D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
                                          p_org_id, p_instance_id, c.calendar_date,
                                          p_level_id, NULL),
                                    -23453, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                          D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
                                          p_org_id, p_instance_id, c.calendar_date,
                                          p_level_id, NULL),
                                    d.organization_id, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                          D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
                                          p_org_id, p_instance_id, c.calendar_date,
                                          p_level_id, NULL),
                                    NULL),
                                 30, decode(d.source_organization_id,
                                    NULL, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                          D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
                                          p_org_id, p_instance_id, c.calendar_date,
                                          p_level_id, NULL),
                                    -23453, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                          D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
                                          p_org_id, p_instance_id, c.calendar_date,
                                          p_level_id, NULL),
                                    d.organization_id, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                          D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
                                          p_org_id, p_instance_id, c.calendar_date,
                                          p_level_id, NULL),
                                    NULL),
                                 MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(D.CUSTOMER_ID, D.SHIP_TO_SITE_ID,
                                    p_item_id, p_org_id, p_instance_id,
                                    c.calendar_date,p_level_id, NULL)),
                                 MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, --10425563
                                    p_item_id, p_org_id, p_instance_id,
                                    c.calendar_date,p_level_id, NULL))
                                    )),
                              -- rajjain end 07/19/2002
                        p_demand_class, 1,
                        Decode(D.Demand_Class, NULL, --4365873
                           MSC_AATP_FUNC.Get_Item_Demand_Alloc_Percent(p_plan_id,
                              D.DEMAND_ID,
                              c.calendar_date,
                              D.USING_ASSEMBLY_ITEM_ID,
                              DECODE(D.SOURCE_ORGANIZATION_ID,
                                 -23453, null,
                                 D.SOURCE_ORGANIZATION_ID),
                              p_item_id,
                              p_org_id, -- 1665483
                              p_instance_id,
                              decode (d.origination_type, -100, 30,d.origination_type),
                              DECODE(G_HIERARCHY_PROFILE,
                              /*-----------------------------------------------------------------+
                              | rajjain begin 07/19/2002                                         |
                              |                                                                  |
                              | Case 1: For internal sales orders [origination type is in (6,30) |
                              |         and source_organization_id is not null                   |
                              |         and <> organization_id] -> Return p_demand_class         |
                              | Case 2: For others if DEMAND_CLASS is null then return null      |
                              |           else if p_demand_class is '-1' then call               |
                              |           Get_Hierarchy_Demand_class else return DEMAND_CLASS    |
                              +-----------------------------------------------------------------*/
                                 1,
                                 decode(MSC_ATP_PVT.G_INTERNAL_SALES_ORDER,'N', --10425563
                                 decode(d.origination_type,
                                    6, decode(d.source_organization_id,
                                       NULL, DECODE(D.DEMAND_CLASS, null, null,
                                          DECODE(p_demand_class, '-1',
                                             MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                null, null, p_item_id, p_org_id,
                                                p_instance_id, c.calendar_date, p_level_id, D.DEMAND_CLASS),
                                             D.DEMAND_CLASS)),
                                       -23453, DECODE(D.DEMAND_CLASS, null, null,
                                          DECODE(p_demand_class, '-1',
                                             MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                null, null, p_item_id, p_org_id,
                                                p_instance_id, c.calendar_date, p_level_id, D.DEMAND_CLASS),
                                             D.DEMAND_CLASS)),
                                       d.organization_id, DECODE(D.DEMAND_CLASS, null, null,
                                          DECODE(p_demand_class, '-1',
                                             MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                null, null, p_item_id, p_org_id,
                                                p_instance_id, c.calendar_date, p_level_id, D.DEMAND_CLASS),
                                             D.DEMAND_CLASS)),
                                       p_demand_class),
                                 30, decode(d.source_organization_id,
                                    NULL, DECODE(D.DEMAND_CLASS, null, null,
                                       DECODE(p_demand_class, '-1',
                                          MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             null, null, p_item_id, p_org_id,
                                             p_instance_id, c.calendar_date, p_level_id, D.DEMAND_CLASS),
                                          D.DEMAND_CLASS)),
                                    -23453, DECODE(D.DEMAND_CLASS, null, null,
                                       DECODE(p_demand_class, '-1',
                                          MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             null, null, p_item_id, p_org_id,
                                             p_instance_id, c.calendar_date, p_level_id, D.DEMAND_CLASS),
                                          D.DEMAND_CLASS)),
                                    d.organization_id, DECODE(D.DEMAND_CLASS, null, null,
                                       DECODE(p_demand_class, '-1',
                                          MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             null, null, p_item_id, p_org_id,
                                             p_instance_id, c.calendar_date, p_level_id, D.DEMAND_CLASS),
                                          D.DEMAND_CLASS)),
                                    p_demand_class),
                                 DECODE(D.DEMAND_CLASS, null, null,
                                    DECODE(p_demand_class, '-1',
                                       MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                          null, null, p_item_id, p_org_id,
                                          p_instance_id, c.calendar_date, p_level_id, D.DEMAND_CLASS),
                                       D.DEMAND_CLASS))),
                                 DECODE(D.DEMAND_CLASS, null, null,
                                    DECODE(p_demand_class, '-1',
                                       MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                          null, null, p_item_id, p_org_id,
                                          p_instance_id, c.calendar_date, p_level_id, D.DEMAND_CLASS),
                                       D.DEMAND_CLASS))),
                                 -- rajjain end
                                 2, DECODE(D.CUSTOMER_ID, NULL, p_demand_class,
                                                0, p_demand_class,
                                    -- rajjain begin 07/19/2002
                                    decode(MSC_ATP_PVT.G_INTERNAL_SALES_ORDER,'N',
                                    decode(d.origination_type,
                                       6, decode(d.source_organization_id,
                                          NULL, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
                                                p_org_id, p_instance_id, c.calendar_date,
                                                p_level_id, NULL),
                                          -23453, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
                                                p_org_id, p_instance_id, c.calendar_date,
                                                p_level_id, NULL),
                                          d.organization_id, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
                                                p_org_id, p_instance_id, c.calendar_date,
                                                p_level_id, NULL),
                                          p_demand_class),
                                       30, decode(d.source_organization_id,
                                          NULL, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
                                                p_org_id, p_instance_id, c.calendar_date,
                                                p_level_id, NULL),
                                          -23453, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
                                                p_org_id, p_instance_id, c.calendar_date,
                                                p_level_id, NULL),
                                          d.organization_id, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
                                                p_org_id, p_instance_id, c.calendar_date,
                                                p_level_id, NULL),
                                          p_demand_class),
                                       MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(D.CUSTOMER_ID, D.SHIP_TO_SITE_ID,
                                          p_item_id, p_org_id, p_instance_id,
                                          c.calendar_date,p_level_id, NULL)),
                                       MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(D.CUSTOMER_ID, D.SHIP_TO_SITE_ID,
                                          p_item_id, p_org_id, p_instance_id,
                                          c.calendar_date,p_level_id, NULL)) --10425563
                                          )),
                                    -- rajjain end 07/19/2002
                                    p_demand_class,
                                    p_level_id),0))) col24,
                                /*New*/
                        -1* DECODE(D.ORIGINATION_TYPE,
                               4, D.DAILY_DEMAND_RATE,
                               --D.USING_REQUIREMENT_QUANTITY),
                               (D.USING_REQUIREMENT_QUANTITY- nvl(d.reserved_quantity,0))),  --5027568

                        -- C.PRIOR_DATE col25, -- 2859130
                        --C.CALENDAR_DATE col25,
                        GREATEST(C.CALENDAR_DATE,p_sys_next_date) col25,
                        l_null_num col26,
                        DECODE(D.ORIGINATION_TYPE, 1, to_char(D.DISPOSITION_ID), D.ORDER_NUMBER) col27,
                               -- rajjain 04/25/2003 Bug 2771075
                               -- For Planned Order Demands We will populate disposition_id
                               -- in disposition_name column
                        l_null_num col28,
                        l_null_num col29,
                        -- ship_rec_cal changes begin
                        l_sysdate,
                        G_USER_ID,
                        l_sysdate,
                        G_USER_ID,
                        G_USER_ID,
                        -- ship_rec_cal changes end
                        -- Unallocated_Quantity
                        -1* DECODE(D.ORIGINATION_TYPE,
                                4, D.DAILY_DEMAND_RATE,
                        --D.USING_REQUIREMENT_QUANTITY),
                        (D.USING_REQUIREMENT_QUANTITY- nvl(d.reserved_quantity,0))),  --5027568
                        MTPS.LOCATION, --bug3263368
                        MTP.PARTNER_NAME, --bug3263368
                        D.DEMAND_CLASS, --bug3263368
                        DECODE(D.ORDER_DATE_TYPE_CODE,2,D.REQUEST_DATE,
                                                D.REQUEST_SHIP_DATE) --bug3263368

            FROM        MSC_CALENDAR_DATES C,
                        MSC_DEMANDS D,
                        MSC_TRADING_PARTNERS    MTP,--bug3263368
                        MSC_TRADING_PARTNER_SITES    MTPS --bug3263368

            WHERE       D.PLAN_ID = p_plan_id
            AND         D.SR_INSTANCE_ID = p_instance_id
            AND         D.INVENTORY_ITEM_ID = p_item_id
            AND         D.USING_REQUIREMENT_QUANTITY <> 0 --4501434
            AND         D.ORGANIZATION_ID = p_org_id
            AND         D.ORIGINATION_TYPE NOT IN (5,7,8,9,11,15,22,28,29,31,52,70) -- For summary enhancement
            AND         D.SHIP_TO_SITE_ID = MTPS.PARTNER_SITE_ID(+) --bug3263368
            AND         D.CUSTOMER_ID = MTP.PARTNER_ID(+)--bug3263368

            -- Bug1990155, 1995835 exclude the expired lots demand datreya 9/18/2001
            -- Bug 1530311, need to exclude forecast, ngoel 12/05/2000
            AND         C.CALENDAR_CODE = p_cal_code
            AND         C.EXCEPTION_SET_ID = p_cal_exc_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 3550296 and 3574164. IMPLEMENT_DATE AND DMD_SATISFIED_DATE are changed to
            -- IMPLEMENT_SHIP_DATE and PLANNED_SHIP_DATE resp.
            AND         C.CALENDAR_DATE BETWEEN TRUNC(DECODE(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)))) AND
                        TRUNC(NVL(D.ASSEMBLY_DEMAND_COMP_DATE,
                                  DECODE(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)))))
            AND         (( D.ORIGINATION_TYPE = 4
                          AND C.SEQ_NUM IS NOT NULL) OR
                          ( D.ORIGINATION_TYPE  <> 4))
            -- 2859130
            -- AND         C.PRIOR_DATE < NVL(p_itf,
            --                              C.PRIOR_DATE + 1)
            AND C.CALENDAR_DATE < NVL(p_itf, C.CALENDAR_DATE+1)
            UNION ALL
            SELECT      p_level col1,
                        p_identifier col2,
                        p_scenario_id col3,
                        p_sr_item_id col4 ,
                        p_sr_item_id col5,
                        p_org_id col6,
                        l_null_num col7,
                        l_null_num col8,
                        l_null_num col9,
                        l_null_num col10,
                        l_null_num col11,
                        l_null_num col12,
                        l_null_num col13,
                        l_null_num col14,
                        l_null_char col15,
                        p_uom_code col16,
                        2 col17, -- supply
                        CS.ORDER_TYPE col18,
                        l_null_char col19,
                        CS.SR_INSTANCE_ID col20,
                                l_null_num col21,
                        CS.TRANSACTION_ID col22,
                        l_null_num col23,
                        NVL(CS.FIRM_QUANTITY,CS.NEW_ORDER_QUANTITY)*
                                DECODE(p_scenario_id, -1, 1,
                                DECODE(DECODE(G_HIERARCHY_PROFILE,
                                              --2424357
                                              1, DECODE(CS.DEMAND_CLASS, null, null,
                                                     DECODE(p_demand_class,'-1',
                                                        MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                          null,
                                                          null,
                                                          cs.inventory_item_id,
                                                          p_org_id,
                                                          p_instance_id,
                                                          cs.calendar_date,
                                                          p_level_id,
                                                          CS.DEMAND_CLASS), CS.DEMAND_CLASS)),
                                              2, DECODE(CS.CUSTOMER_ID, NULL, TO_CHAR(NULL),
                                                        --0, TO_CHAR(NULL),
                                                        MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                          CS.CUSTOMER_ID,
                                                          CS.SHIP_TO_SITE_ID,
                                                          cs.inventory_item_id,
                                                          p_org_id,
                                                          p_instance_id,
                                                          cs.calendar_date,
                                                          p_level_id,
                                                          NULL))),
                                        p_demand_class, 1,
                                        NULL, nvl(MIHM.allocation_percent/100,1), --4365873
                                        /*NVL(MSC_AATP_FUNC.Get_DC_Alloc_Percent(
                                                p_instance_id,
                                                cs.inventory_item_id,
                                                p_org_id,
                                                null,
                                                null,
                                                p_demand_class,
                                                cs.calendar_date), 1),*/
                                        DECODE(
                                        MIHM.allocation_percent/100, --4365873
                                        /*DECODE(MSC_AATP_FUNC.Get_DC_Alloc_Percent(
                                                p_instance_id,
                                                cs.inventory_item_id,
                                                p_org_id,
                                                null,
                                                null,
                                                p_demand_class,
                                                cs.calendar_date),*/
                                        NULL, 1,
                                        0))) col24,
                        NVL(CS.FIRM_QUANTITY,CS.NEW_ORDER_QUANTITY),
                        --C.NEXT_DATE col25, -- 2859130
                        --C.CALENDAR_DATE col25,
                        GREATEST(CS.CALENDAR_DATE,p_sys_next_date) col25,--3099066
                        l_null_num col26,
                        DECODE(CS.ORDER_TYPE, 5, to_char(CS.TRANSACTION_ID), CS.ORDER_NUMBER) col27,
                               -- Bug 2771075. For Planned Orders, we will populate transaction_id
			       -- in the disposition_name column to be consistent with Planning.
                        l_null_num col28,
                        l_null_num col29,
                        -- ship_rec_cal changes begin
                        l_sysdate,
                        G_USER_ID,
                        l_sysdate,
                        G_USER_ID,
                        G_USER_ID,
                        -- ship_rec_cal changes end
                        NVL(CS.FIRM_QUANTITY,CS.NEW_ORDER_QUANTITY), -- unallocated quantity
                        null, --bug3263368 ORIG_CUSTOMER_SITE_NAME
                        null, --bug3263368 ORIG_CUSTOMER_NAME
                        null, --bug3263368 ORIG_DEMAND_CLASS
                        null  --bug3263368 ORIG_REQUEST_DATE
            FROM

            	(	select
            		S.ORDER_TYPE,
			S.TRANSACTION_ID,
			S.ORDER_NUMBER,
			S.SR_INSTANCE_ID,
			C.NEXT_DATE,
			S.FIRM_QUANTITY,
			S.NEW_ORDER_QUANTITY,
			S.DEMAND_CLASS,
			s.inventory_item_id,
			S.CUSTOMER_ID,
			S.SHIP_TO_SITE_ID,
			S.ORGANIZATION_ID,
			C.CALENDAR_DATE

            FROM        MSC_CALENDAR_DATES C,
                        MSC_SUPPLIES S
            WHERE       S.PLAN_ID = p_plan_id
            AND         S.SR_INSTANCE_ID = p_instance_id
            AND         S.INVENTORY_ITEM_ID = p_item_id
            AND         S.ORGANIZATION_ID = p_org_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_cal_code
            AND         C.EXCEPTION_SET_ID = p_cal_exc_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(TRUNC(S.LAST_UNIT_COMPLETION_DATE), --4135752
                               NULL, C.NEXT_SEQ_NUM, C.SEQ_NUM) IS NOT NULL
            --2859130
            --AND         C.NEXT_DATE >= DECODE(S.ORDER_TYPE, 27, TRUNC(SYSDATE),
            --                                                28, TRUNC(SYSDATE),
            --                                                C.NEXT_DATE)
            --AND         C.NEXT_DATE < NVL(p_itf,
            --                             C.NEXT_DATE + 1)
            AND         C.CALENDAR_DATE >= DECODE(S.ORDER_TYPE, 27, TRUNC(SYSDATE),
                                                            28, TRUNC(SYSDATE),
                                                            C.CALENDAR_DATE)
            AND         C.CALENDAR_DATE < NVL(p_itf,
                                         C.CALENDAR_DATE + 1))CS,
            MSC_ITEM_HIERARCHY_MV  MIHM
            WHERE
	    --4365873
                   CS.INVENTORY_ITEM_ID = MIHM.INVENTORY_ITEM_ID(+)
            AND    CS.SR_INSTANCE_ID = MIHM.SR_INSTANCE_ID (+)
            AND    CS.ORGANIZATION_ID = MIHM.ORGANIZATION_ID (+)
            AND    decode(MIHM.level_id (+),-1,1,2) = decode(G_HIERARCHY_PROFILE,1,1,2)
            AND    CS.NEXT_DATE >= MIHM.effective_date (+)
            AND    CS.NEXT_DATE <= MIHM.disable_date (+)
            AND    MIHM.demand_class (+) = p_demand_class
           )
           ; -- dsting removed order by col25
Line: 3704

	p_insert_flag         IN NUMBER,
	x_atp_info            OUT  NoCopy MRP_ATP_PVT.ATP_Info,
	x_atp_period          OUT  NoCopy MRP_ATP_PUB.ATP_Period_Typ,
	x_atp_supply_demand   OUT  NoCopy MRP_ATP_PUB.ATP_Supply_Demand_Typ,
        p_get_mat_in_rec      IN   MSC_ATP_REQ.get_mat_in_rec,
	p_request_item_id     IN NUMBER, -- For time_phased_atp
	p_atf_date            IN DATE)   -- For time_phased_atp
IS
	l_infinite_time_fence_date	DATE;
Line: 3795

     msc_sch_wb.atp_debug('Item_Alloc_Cum_Atp: ' || 'p_insert_flag =' || p_insert_flag );
Line: 3842

       SELECT inventory_item_id, uom_code
       INTO   l_inv_item_id, l_uom_code
       FROM   msc_system_items
       WHERE  plan_id = p_plan_id
       AND    sr_instance_id = p_instance_id
       AND    organization_id = p_organization_id
       AND    sr_inventory_item_id = p_inventory_item_id;
Line: 3852

             msc_sch_wb.atp_debug('Item_Alloc_Cum_Atp: ' || 'Error selecting uom_code for the item');
Line: 3909

    We don't need to select all demand classes in case this procdure is
    called from MSC_AATP_PVT.VIEW_ALLOCATION for view total*/
 IF p_identifier <> -1 or (p_identifier = -1 and p_scenario_id <> -1) THEN

  IF PG_DEBUG in ('Y', 'C') THEN
     msc_sch_wb.atp_debug('Item_Alloc_Cum_Atp: ' || 'before select the high priority demand class');
Line: 3918

  1. Now we select all the demand classes in l_demand_class_tab irrespective of demand class for which
     Inquiry has come.
  2. l_allocation_percent_tab stores the allocation_percent for the demand classes.
  3. If inquiry is at level 2 or 3 we also populate l_fw_consume_tab which stores the type
     of forward consumption. We bulk collect 0 in l_fw_consume_tab to initialise it.

  Note:
  1. We order by allocation_percent in demand class scenario if we have multiple
     demand classes at same priority.
  2. We are not doing this for customer class scenario as it may impact performance
     negatively due to extra joins.*/

  /* time_phased_atp changes begin */
  -- bug 1680719
  IF l_level_id = -1 THEN

    IF PG_DEBUG in ('Y', 'C') THEN
       msc_sch_wb.atp_debug('Item_Alloc_Cum_Atp: ' || 'l_level_id = '||l_level_id);
Line: 3937

    SELECT demand_class, priority, allocation_percent
    BULK COLLECT INTO l_demand_class_tab, l_demand_class_priority_tab, l_allocation_percent_tab
    FROM   msc_item_hierarchy_mv
    WHERE  inventory_item_id = l_item_to_use /* New allocation logic for time_phased_atp changes*/
    AND	   organization_id = p_organization_id
    AND    sr_instance_id = p_instance_id
    AND    p_request_date BETWEEN effective_date AND disable_date
    AND    level_id = l_level_id
    --rajjain added demand_class asc
    ORDER BY priority asc, allocation_percent desc, demand_class asc;
Line: 3953

    SELECT demand_class, priority, allocation_percent
    BULK COLLECT INTO l_demand_class_tab, l_demand_class_priority_tab, l_allocation_percent_tab
    FROM   msc_item_hierarchy_mv
    WHERE  inventory_item_id = l_item_to_use /* New allocation logic for time_phased_atp changes*/
    AND    organization_id = p_organization_id
    AND    sr_instance_id = p_instance_id
    AND    p_request_date BETWEEN effective_date AND disable_date
    AND    level_id = l_level_id
    ORDER BY priority asc, class asc;
Line: 3968

    SELECT mv1.demand_class, mv1.priority, mv1.class, mv1.partner_id, 0, mv1.allocation_percent
    BULK COLLECT INTO l_demand_class_tab, l_demand_class_priority_tab,
                      l_class_tab, l_partner_tab, l_fw_consume_tab, l_allocation_percent_tab
    FROM   msc_item_hierarchy_mv mv1
    WHERE  mv1.inventory_item_id = l_item_to_use /* New allocation logic for time_phased_atp changes*/
    AND    mv1.organization_id = p_organization_id
    AND    mv1.sr_instance_id = p_instance_id
    AND    p_request_date BETWEEN mv1.effective_date AND mv1.disable_date
    AND    mv1.level_id = l_level_id
    ORDER BY trunc(mv1.priority, -3), mv1.class ,
             trunc(mv1.priority, -2), mv1.partner_id;
Line: 3989

    SELECT mv1.demand_class, mv1.priority, mv1.class, mv1.partner_id, 0, mv1.allocation_percent
    BULK COLLECT INTO l_demand_class_tab, l_demand_class_priority_tab,
                      l_class_tab, l_partner_tab, l_fw_consume_tab, l_allocation_percent_tab
    FROM   msc_item_hierarchy_mv mv1
    WHERE  mv1.inventory_item_id = l_item_to_use /* New allocation logic for time_phased_atp changes*/
    AND    mv1.organization_id = p_organization_id
    AND    mv1.sr_instance_id = p_instance_id
    AND    p_request_date BETWEEN mv1.effective_date AND mv1.disable_date
    AND    mv1.level_id = l_level_id
    ORDER BY trunc(mv1.priority, -3), mv1.class ,
             trunc(mv1.priority, -2), mv1.partner_id,
             mv1.priority, mv1.partner_site_id;
Line: 4230

    l_demand_class_tab.Delete;
Line: 4231

    l_demand_class_priority_tab.Delete;
Line: 4232

    l_allocation_percent_tab.Delete;
Line: 4314

    IF (NVL(p_insert_flag, 0) = 0  OR l_demand_class <> p_demand_class) THEN
       -- we don't want details
       IF PG_DEBUG in ('Y', 'C') THEN
          msc_sch_wb.atp_debug('Item_Alloc_Cum_Atp: ' ||
                             'Inside IF (NVL(p_insert_flag, 0) = 0');
Line: 4473

                 'Inside ELSE of IF (NVL(p_insert_flag, 0)=0 OR l_demand_class<>p_demand_class)');
Line: 4529

        msc_sch_wb.atp_debug('Item_Alloc_Cum_Atp: ' || 'after insert into msc_atp_sd_details_temp');
Line: 4808

        IF (NVL(p_insert_flag, 0) <>0)
           AND (l_demand_class_tab(i) = p_demand_class) THEN
            l_temp_atp := l_current_atp;
Line: 4908

        IF (NVL(p_insert_flag, 0) <>0) AND (l_demand_class_tab(i) = p_demand_class) THEN

          /*rajjain begin 12/10/2002
          We now do following instead of making call to MSC_SATP_FUNC.Extend_Atp_Supply_Demand
          number of times condition l_current_atp.atp_qty(j) < l_temp_atp.atp_qty(j) is true
          inside FOR LOOP
          1. Before FOR loop we extend l_temp_atp_supply_demand by l_current_atp.atp_qty.COUNT
          2. After FOR loop we trim the remaining.*/

          -- initialize k
          k := l_temp_atp_supply_demand.Level.Count;
Line: 5010

        END IF;  -- IF (NVL(p_insert_flag, 0) <>0) .....
Line: 5663

      IF NVL(p_insert_flag, 0) <> 0 THEN
        -- add one more entry to indicate infinite time fence date and quantity.

        x_atp_period.Cumulative_Quantity := x_atp_info.atp_qty;
Line: 5713

	p_insert_flag         IN 	NUMBER,
        p_max_capacity        IN        NUMBER,
        p_batchable_flag      IN        NUMBER,
        p_res_conversion_rate IN        NUMBER,
        p_res_uom_type	      IN        NUMBER,
	x_atp_info            OUT  	NoCopy MRP_ATP_PVT.ATP_Info,
	x_atp_period          OUT  	NoCopy MRP_ATP_PUB.ATP_Period_Typ,
	x_atp_supply_demand   OUT  	NoCopy MRP_ATP_PUB.ATP_Supply_Demand_Typ)
IS
l_infinite_time_fence_date	DATE;
Line: 5797

    SELECT 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(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, 2)
                           )
                         )
                       )
                     )
                   )
                 ), 0),
           trunc(plan_start_date)

    INTO   l_optimized_plan,l_constraint_plan, l_plan_start_date
    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: 5902

    msc_sch_wb.atp_debug('Res_Alloc_Cum_Atp: ' || 'before select the high priority demand class');
Line: 5914

    SELECT demand_class, priority
    BULK COLLECT INTO l_demand_class_tab, l_demand_class_priority_tab
    FROM   msc_resource_hierarchy_mv
    WHERE  department_id = p_department_id
    AND    resource_id = p_resource_id
    AND	   organization_id = p_organization_id
    AND    sr_instance_id = p_instance_id
    AND    p_request_date BETWEEN effective_date AND disable_date
    AND    priority  <= l_priority  -- 1665110, add '='
    AND    level_id = l_level_id
    ORDER BY priority asc, allocation_percent desc;
Line: 5931

    SELECT demand_class, priority
    BULK COLLECT INTO l_demand_class_tab, l_demand_class_priority_tab
    FROM   msc_resource_hierarchy_mv
    WHERE  department_id = p_department_id
    AND    resource_id = p_resource_id
    AND    organization_id = p_organization_id
    AND    sr_instance_id = p_instance_id
    AND    p_request_date BETWEEN effective_date AND disable_date
    AND    priority  <= l_priority  -- 1665110, add '='
    AND    level_id = l_level_id
    ORDER BY priority asc, class;
Line: 5949

    SELECT mv1.demand_class, mv1.priority, mv1.class, mv1.partner_id
    BULK COLLECT INTO l_demand_class_tab, l_demand_class_priority_tab,
                      l_class_tab, l_partner_tab
    FROM   msc_resource_hierarchy_mv mv1
    WHERE  mv1.department_id = p_department_id
    AND    mv1.resource_id = p_resource_id
    AND    mv1.organization_id = p_organization_id
    AND    mv1.sr_instance_id = p_instance_id
    AND    p_request_date BETWEEN mv1.effective_date AND mv1.disable_date
    --AND    mv1.priority  <= l_priority -- 1665110, add '='
    AND    mv1.level_id = l_level_id
    AND trunc(mv1.priority, -3) <= trunc(l_priority, -3)
      ORDER BY trunc(mv1.priority, -3), mv1.class ,
               trunc(mv1.priority, -2), mv1.partner_id;
Line: 5972

    SELECT mv1.demand_class, mv1.priority, mv1.class, mv1.partner_id
    BULK COLLECT INTO l_demand_class_tab, l_demand_class_priority_tab,
                      l_class_tab, l_partner_tab
    FROM   msc_resource_hierarchy_mv mv1
    WHERE  mv1.department_id = p_department_id
    AND    mv1.resource_id = p_resource_id
    AND    mv1.organization_id = p_organization_id
    AND    mv1.sr_instance_id = p_instance_id
    AND    p_request_date BETWEEN mv1.effective_date AND mv1.disable_date
    --AND    mv1.priority  <= l_priority -- 1665110, add '='
    AND    mv1.level_id = l_level_id
    AND trunc(mv1.priority, -3) <= trunc(l_priority, -3)
      ORDER BY trunc(mv1.priority, -3), mv1.class ,
               trunc(mv1.priority, -2), mv1.partner_id,
               mv1.priority, mv1.partner_site_id;
Line: 6082

   IF (NVL(p_insert_flag, 0) = 0  OR l_demand_class <> p_demand_class) THEN
       -- we don't want details

     IF (l_use_batching = 1) THEN
       IF (l_optimized_plan = 1) THEN -- Constrained Plan Bug 2809639
          IF PG_DEBUG in ('Y', 'C') THEN
              msc_sch_wb.atp_debug('Res_Alloc_Cum_Atp: ' || 'Constrained Plan Batching');
Line: 6090

       	  SELECT 	SD_DATE,
       			SUM(SD_QTY)
          BULK COLLECT INTO
                	l_current_atp.atp_period,
                	l_current_atp.atp_qty
          FROM (
          SELECT  -- C.CALENDAR_DATE SD_DATE, -- 2859130
                  -- Bug 3348095
                  -- For ATP created records use end_date otherwise start_date
                  GREATEST(DECODE(REQ.record_source, 2, TRUNC(NVL(REQ.END_DATE, REQ.START_DATE)) ,
                           TRUNC(REQ.START_DATE)),l_sys_next_date) SD_DATE, --bug3333114
                -1*DECODE(REQ.RESOURCE_ID, -1, REQ.LOAD_RATE,
                       DECODE(REQ.END_DATE, NULL, REQ.RESOURCE_HOURS,
                         DECODE(REQ.record_source, 2, REQ.RESOURCE_HOURS,
                                 REQ.DAILY_RESOURCE_HOURS))) *
                   -- For ATP created records use resource_hours
                   -- End Bug 3348095
                ---resource batching
                DECODE(DR.UOM_CLASS_TYPE, 1, I.UNIT_WEIGHT, 2, UNIT_VOLUME) *
                       NVL(MUC.CONVERSION_RATE, 1) * NVL(S.NEW_ORDER_QUANTITY, FIRM_QUANTITY) *

                        /*New*/
		DECODE(DECODE(G_HIERARCHY_PROFILE,
                              --bug 2424357
                              1, DECODE(S.DEMAND_CLASS, null, null,
                                    DECODE(l_demand_class, '-1',
                                        MSC_AATP_FUNC.Get_RES_Hierarchy_Demand_Class(
                                                  null,
                                                  null,
                                                  p_department_id,
                                                  p_resource_id,
                                                  p_organization_id,
                                                  p_instance_id,
                                                  -- 2859130 c.calendar_date,
                                                  -- Bug 3348095
                                                  -- For ATP created records use end_date
                                                  -- otherwise start_date
                                                  DECODE(REQ.record_source, 2,
                                                    TRUNC(NVL(REQ.END_DATE, REQ.START_DATE)) ,
                                                      TRUNC(REQ.START_DATE)),
                                                  --trunc(req.start_date),
                                                  -- End Bug 3348095
                                                  l_level_id,
                                                  S.DEMAND_CLASS), S.DEMAND_CLASS)),
                              2, DECODE(S.CUSTOMER_ID, NULL, TO_CHAR(NULL),
                                        0, TO_CHAR(NULL),
                                                MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                  S.CUSTOMER_ID,
                                                  S.SHIP_TO_SITE_ID,
                                                  s.inventory_item_id,
                                                  p_organization_id,
                                                  p_instance_id,
                                                  -- 2859130 c.calendar_date,
                                                  -- Bug 3348095
                                                  -- For ATP created records use end_date
                                                  -- otherwise start_date
                                                  DECODE(REQ.record_source, 2,
                                                    TRUNC(NVL(REQ.END_DATE, REQ.START_DATE)) ,
                                                      TRUNC(REQ.START_DATE)),
                                                  --trunc(req.start_date),
                                                  -- End Bug 3348095
                                                  l_level_id,
                                                  NULL))),
		       l_demand_class, 1,
                       --bug 4089293: If l_demand_class is not null and demand class is populated
                       -- on  supplies record then 0 should be allocated.
                       Decode (S.Demand_Class, NULL,
		       MSC_AATP_FUNC.Get_Res_Demand_Alloc_Percent(
                         -- 2859130 C.CALENDAR_DATE,
                         -- Bug 3348095
                         -- For ATP created records use end_date
                         -- otherwise start_date
                         DECODE(REQ.record_source, 2,
                           TRUNC(NVL(REQ.END_DATE, REQ.START_DATE)) ,
                             TRUNC(REQ.START_DATE)),
                         --trunc(req.start_date),
                         -- End Bug 3348095
                         REQ.ASSEMBLY_ITEM_ID,
			 p_organization_id,
                         p_instance_id,
                         p_department_id,
			 p_resource_id,
                         DECODE(G_HIERARCHY_PROFILE,
                                --2424357
                                1, DECODE(S.DEMAND_CLASS, null, null,
                                       DECODE(l_demand_class, -1,
                                          MSC_AATP_FUNC.Get_RES_Hierarchy_Demand_Class(
                                                  null,
                                                  null,
                                                  p_department_id,
                                                  p_resource_id,
                                                  p_organization_id,
                                                  p_instance_id,
                                                  -- 2859130 c.calendar_date,
                                                  -- Bug 3348095
                                                  -- For ATP created records use end_date
                                                  -- otherwise start_date
                                                  DECODE(REQ.record_source, 2,
                                                    TRUNC(NVL(REQ.END_DATE, REQ.START_DATE)) ,
                                                      TRUNC(REQ.START_DATE)),
                                                  --trunc(req.start_date),
                                                  -- End Bug 3348095
                                                  l_level_id,
                                                  S.DEMAND_CLASS), S.DEMAND_CLASS)),
                                2, DECODE(S.CUSTOMER_ID, NULL, l_demand_class,
                                          0, l_demand_class,
                                                MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                  S.CUSTOMER_ID,
                                                  S.SHIP_TO_SITE_ID,
                                                  l_inv_item_id,
                                                  p_organization_id,
                                                  p_instance_id,
                                                  -- 2859130 c.calendar_date,
                                                  -- Bug 3348095
                                                  -- For ATP created records use end_date
                                                  -- otherwise start_date
                                                  DECODE(REQ.record_source, 2,
                                                    TRUNC(NVL(REQ.END_DATE, REQ.START_DATE)) ,
                                                      TRUNC(REQ.START_DATE)),
                                                  --trunc(req.start_date),
                                                  -- End Bug 3348095
                                                  l_level_id,
                                                  NULL))),
                         l_demand_class), 0)) SD_QTY
                        /*New*/
          FROM    MSC_DEPARTMENT_RESOURCES DR,
                  MSC_SUPPLIES S,
                  MSC_RESOURCE_REQUIREMENTS REQ,
                  -- 2859130 MSC_CALENDAR_DATES C,
                  MSC_SYSTEM_ITEMS I,
                  MSC_UOM_CONVERSIONS  MUC
          WHERE   DR.PLAN_ID = p_plan_id
          AND     NVL(DR.OWNING_DEPARTMENT_ID, DR.DEPARTMENT_ID)=p_department_id
          AND     DR.RESOURCE_ID = p_resource_id
          AND     DR.SR_INSTANCE_ID = p_instance_id
          AND     DR.ORGANIZATION_ID = p_organization_id -- for performance
          AND     REQ.PLAN_ID = DR.PLAN_ID
          AND     REQ.SR_INSTANCE_ID = DR.SR_INSTANCE_ID
          AND     REQ.RESOURCE_ID = DR.RESOURCE_ID
          AND     REQ.DEPARTMENT_ID = DR.DEPARTMENT_ID
          AND     NVL(REQ.PARENT_ID, 1)  = 1  -- Bug 2809639
          AND     S.PLAN_ID = DR.PLAN_ID
          AND     S.TRANSACTION_ID = REQ.SUPPLY_ID
          AND     S.SR_INSTANCE_ID = REQ.SR_INSTANCE_ID --bug3948494
                  -- Exclude Cancelled Supplies 2460645
          AND     NVL(S.DISPOSITION_STATUS_TYPE, 1) <> 2 -- Bug 2460645
          AND     I.SR_INSTANCE_ID = REQ.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
          -- Begin CTO Option Dependent Resources ODR
          AND     ((I.bom_item_type <> 1 and I.bom_item_type <> 2)
               -- bom_item_type not model and option_class always committed.
                    AND   (I.atp_flag <> 'N')
               -- atp_flag is 'Y' then committed.
                    OR    (REQ.record_source = 2) ) -- this OR may be changed during performance analysis.
              -- if record created by ATP then committed.
          -- End CTO Option Dependent Resources
          AND     DECODE(p_res_uom_type, 1, I.WEIGHT_UOM, 2 , I.VOLUME_UOM) = MUC.UOM_CODE (+)
          AND     MUC.SR_INSTANCE_ID (+)= I.SR_INSTANCE_ID
          AND     MUC.INVENTORY_ITEM_ID (+)= 0
          -- 2859130
          --AND     C.SR_INSTANCE_ID = DR.SR_INSTANCE_ID
          --AND     C.CALENDAR_CODE = l_calendar_code
          --AND     C.EXCEPTION_SET_ID = l_calendar_exception_set_id
          --AND     C.CALENDAR_DATE = TRUNC(REQ.START_DATE) -- Bug 2809639
          --AND     C.SEQ_NUM IS NOT NULL
          ---bug 2341075: get data from plan_satrt date instead of sysdate
          --AND     C.CALENDAR_DATE >= trunc(sysdate)
          AND     trunc(REQ.START_DATE) >= l_plan_start_date --4135752
          UNION ALL
          SELECT  trunc(MNRA.SHIFT_DATE) SD_DATE, --4135752
                  MNRA.CAPACITY_UNITS * ((DECODE(LEAST(MNRA.from_time, MNRA.to_time),
                       MNRA.to_time,MNRA.to_time + 24*3600,
                       MNRA.to_time) - MNRA.from_time)/3600) *
                                              NVL((MRHM.allocation_percent/100), 1)
/*
                                              NVL(MSC_AATP_FUNC.Get_DC_Alloc_Percent(
                				     p_instance_id,
                			             null,
                                                     p_organization_id,
                                                     p_department_id,
                                                     p_resource_id,
                                                     l_demand_class,
                                                     SHIFT_DATE),1) SD_QTY
*/
          FROM    MSC_NET_RESOURCE_AVAIL MNRA,
                  msc_resource_hierarchy_mv MRHM
          WHERE   MNRA.PLAN_ID = p_plan_id
          AND     NVL(MNRA.PARENT_ID, -2) <> -1
          AND     MNRA.SR_INSTANCE_ID = p_instance_id
          AND     MNRA.RESOURCE_ID = p_resource_id
          AND     MNRA.DEPARTMENT_ID = p_department_id
          ---bug 2341075; get data from plan_start date
Line: 6307

       	  SELECT 	SD_DATE,
       			SUM(SD_QTY)
          BULK COLLECT INTO
                	l_current_atp.atp_period,
                	l_current_atp.atp_qty
          FROM (
          SELECT  GREATEST(C.CALENDAR_DATE,l_sys_next_date) SD_DATE, --bug3333114
                -1*DECODE(REQ.RESOURCE_ID, -1, REQ.LOAD_RATE,
                       DECODE(REQ.END_DATE, NULL, REQ.RESOURCE_HOURS,
                          -- Bug 3348095
                          DECODE(REQ.record_source, 2, REQ.RESOURCE_HOURS,
                                 REQ.DAILY_RESOURCE_HOURS))) *
                          -- For ATP created records use resource_hours
                          -- End Bug 3348095
                ---resource batching
                DECODE(DR.UOM_CLASS_TYPE, 1, I.UNIT_WEIGHT, 2, UNIT_VOLUME) *
                       NVL(MUC.CONVERSION_RATE, 1) * NVL(S.NEW_ORDER_QUANTITY, FIRM_QUANTITY) *

                        /*New*/
		DECODE(DECODE(G_HIERARCHY_PROFILE,
                              --bug 2424357
                              1, DECODE(S.DEMAND_CLASS, null, null,
                                    DECODE(l_demand_class, '-1',
                                        MSC_AATP_FUNC.Get_RES_Hierarchy_Demand_Class(
                                                  null,
                                                  null,
                                                  p_department_id,
                                                  p_resource_id,
                                                  p_organization_id,
                                                  p_instance_id,
                                                  c.calendar_date,
                                                  l_level_id,
                                                  S.DEMAND_CLASS), S.DEMAND_CLASS)),
                              2, DECODE(S.CUSTOMER_ID, NULL, TO_CHAR(NULL),
                                        0, TO_CHAR(NULL),
                                                MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                  S.CUSTOMER_ID,
                                                  S.SHIP_TO_SITE_ID,
                                                  s.inventory_item_id,
                                                  p_organization_id,
                                                  p_instance_id,
                                                  c.calendar_date,
                                                  l_level_id,
                                                  NULL))),
		       l_demand_class, 1,
                       --bug 4156016: If l_demand_class is not null and demand class is populated
                       -- on  supplies record then 0 should be allocated.
                       Decode (S.Demand_Class, NULL,
		       MSC_AATP_FUNC.Get_Res_Demand_Alloc_Percent(C.CALENDAR_DATE,
                         REQ.ASSEMBLY_ITEM_ID,
			 p_organization_id,
                         p_instance_id,
                         p_department_id,
			 p_resource_id,
                         DECODE(G_HIERARCHY_PROFILE,
                                --2424357
                                1, DECODE(S.DEMAND_CLASS, null, null,
                                       DECODE(l_demand_class, -1,
                                          MSC_AATP_FUNC.Get_RES_Hierarchy_Demand_Class(
                                                  null,
                                                  null,
                                                  p_department_id,
                                                  p_resource_id,
                                                  p_organization_id,
                                                  p_instance_id,
                                                  c.calendar_date,
                                                  l_level_id,
                                                  S.DEMAND_CLASS), S.DEMAND_CLASS)),
                                2, DECODE(S.CUSTOMER_ID, NULL, l_demand_class,
                                          0, l_demand_class,
                                                MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                  S.CUSTOMER_ID,
                                                  S.SHIP_TO_SITE_ID,
                                                  l_inv_item_id,
                                                  p_organization_id,
                                                  p_instance_id,
                                                  c.calendar_date,
                                                  l_level_id,
                                                  NULL))),
                         l_demand_class), 0)) SD_QTY
                        /*New*/
          FROM    MSC_DEPARTMENT_RESOURCES DR,
                  MSC_SUPPLIES S,
                  MSC_RESOURCE_REQUIREMENTS REQ,
                  MSC_CALENDAR_DATES C,
                  MSC_SYSTEM_ITEMS I,
                  MSC_UOM_CONVERSIONS  MUC
          WHERE   DR.PLAN_ID = p_plan_id
          AND     NVL(DR.OWNING_DEPARTMENT_ID, DR.DEPARTMENT_ID)=p_department_id
          AND     DR.RESOURCE_ID = p_resource_id
          AND     DR.SR_INSTANCE_ID = p_instance_id
          AND     DR.ORGANIZATION_ID = p_organization_id -- for performance
          AND     REQ.PLAN_ID = DR.PLAN_ID
          AND     REQ.SR_INSTANCE_ID = DR.SR_INSTANCE_ID
          AND     REQ.RESOURCE_ID = DR.RESOURCE_ID
          AND     REQ.DEPARTMENT_ID = DR.DEPARTMENT_ID
          AND     NVL(REQ.PARENT_ID, l_optimized_plan) = l_optimized_plan
          AND     S.PLAN_ID = DR.PLAN_ID
          AND     S.TRANSACTION_ID = REQ.SUPPLY_ID
          AND     S.SR_INSTANCE_ID = REQ.SR_INSTANCE_ID --bug3948494
                  -- Exclude Cancelled Supplies 2460645
          AND     NVL(S.DISPOSITION_STATUS_TYPE, 1) <> 2 -- Bug 2460645
          AND     I.SR_INSTANCE_ID = REQ.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
          -- Begin CTO Option Dependent Resources ODR
          AND     ((I.bom_item_type <> 1 and I.bom_item_type <> 2)
               -- bom_item_type not model and option_class always committed.
                    AND   (I.atp_flag <> 'N')
               -- atp_flag is 'Y' then committed.
                    OR    (REQ.record_source = 2) ) -- this OR may be changed during performance analysis.
              -- if record created by ATP then committed.
          -- End CTO Option Dependent Resources
          AND     DECODE(p_res_uom_type, 1, I.WEIGHT_UOM, 2 , I.VOLUME_UOM) = MUC.UOM_CODE (+)
          AND     MUC.SR_INSTANCE_ID (+)= I.SR_INSTANCE_ID
          AND     MUC.INVENTORY_ITEM_ID (+)= 0
          AND     C.SR_INSTANCE_ID = DR.SR_INSTANCE_ID
          AND     C.CALENDAR_CODE = l_calendar_code
          AND     C.EXCEPTION_SET_ID = l_calendar_exception_set_id
                  -- Bug 3348095
                  -- Ensure that the ATP created resource Reqs
                  -- do not get double counted.
         AND      C.CALENDAR_DATE BETWEEN DECODE(REQ.record_source, 2,
                       TRUNC(NVL(REQ.END_DATE, REQ.START_DATE)), TRUNC(REQ.START_DATE))
                   AND TRUNC(NVL(REQ.END_DATE, REQ.START_DATE))
                  -- End Bug 3348095
          AND     C.SEQ_NUM IS NOT NULL
          ---bug 2341075: get data from plan_satrt date instead of sysdate
          --AND     C.CALENDAR_DATE >= trunc(sysdate)
          AND     C.CALENDAR_DATE >= l_plan_start_date
          UNION ALL
          SELECT  trunc(MNRA.SHIFT_DATE) SD_DATE, --4135752
                  MNRA.CAPACITY_UNITS * ((DECODE(LEAST(MNRA.from_time, MNRA.to_time),
                       MNRA.to_time,MNRA.to_time + 24*3600,
                       MNRA.to_time) - MNRA.from_time)/3600) *
                                              NVL((MRHM.allocation_percent/100), 1)
/*
                                              NVL(MSC_AATP_FUNC.Get_DC_Alloc_Percent(
                				     p_instance_id,
                			             null,
                                                     p_organization_id,
                                                     p_department_id,
                                                     p_resource_id,
                                                     l_demand_class,
                                                     SHIFT_DATE),1) SD_QTY
*/
          FROM    MSC_NET_RESOURCE_AVAIL MNRA,
                  msc_resource_hierarchy_mv MRHM
          WHERE   MNRA.PLAN_ID = p_plan_id
          AND     NVL(MNRA.PARENT_ID, -2) <> -1
          AND     MNRA.SR_INSTANCE_ID = p_instance_id
          AND     MNRA.RESOURCE_ID = p_resource_id
          AND     MNRA.DEPARTMENT_ID = p_department_id
          ---bug 2341075; get data from plan_start date
Line: 6487

       	  SELECT 	SD_DATE,
       			SUM(SD_QTY)
          BULK COLLECT INTO
                	l_current_atp.atp_period,
                	l_current_atp.atp_qty
          FROM (
          SELECT  -- C.CALENDAR_DATE SD_DATE, -- 2859130
                  -- Bug 3348095
                  -- For ATP created records use end_date otherwise start_date
                 GREATEST(DECODE(REQ.record_source, 2, TRUNC(NVL(REQ.END_DATE, REQ.START_DATE)) ,
                           TRUNC(REQ.START_DATE)),l_sys_next_date) SD_DATE, --bug3333114
                -1*DECODE(REQ.RESOURCE_ID, -1, REQ.LOAD_RATE,
                       DECODE(REQ.END_DATE, NULL, REQ.RESOURCE_HOURS,
                      -- Bug 3348095
                        DECODE(REQ.record_source, 2, REQ.RESOURCE_HOURS,
                                 REQ.DAILY_RESOURCE_HOURS))) *
                      -- For ATP created records use resource_hours
                      -- End Bug 3348095
                        /*New*/
		DECODE(DECODE(G_HIERARCHY_PROFILE,
                              --2424357
                              1, DECODE(S.DEMAND_CLASS, null, null,
                                    DECODE(l_demand_class, '-1',
                                       MSC_AATP_FUNC.Get_RES_Hierarchy_Demand_Class(
                                                  null,
                                                  null,
                                                  p_department_id,
  				                  p_resource_id,
                                                  p_organization_id,
                                                  p_instance_id,
                                                  -- 2859130 c.calendar_date,
                                                  -- Bug 3348095
                                                  -- For ATP created records use end_date
                                                  -- otherwise start_date
                                                  DECODE(REQ.record_source, 2,
                                                    TRUNC(NVL(REQ.END_DATE, REQ.START_DATE)) ,
                                                      TRUNC(REQ.START_DATE)),
                                                  --trunc(req.start_date),
                                                  -- End Bug 3348095
                                                  l_level_id,
                                                  S.DEMAND_CLASS),S.DEMAND_CLASS)),
                              2, DECODE(S.CUSTOMER_ID, NULL, TO_CHAR(NULL),
                                        0, TO_CHAR(NULL),
                                                MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                  S.CUSTOMER_ID,
                                                  S.SHIP_TO_SITE_ID,
                                                  s.inventory_item_id,
                                                  p_organization_id,
                                                  p_instance_id,
                                                  -- 2859130 c.calendar_date,
                                                  -- Bug 3348095
                                                  -- For ATP created records use end_date
                                                  -- otherwise start_date
                                                  DECODE(REQ.record_source, 2,
                                                    TRUNC(NVL(REQ.END_DATE, REQ.START_DATE)) ,
                                                      TRUNC(REQ.START_DATE)),
                                                  --trunc(req.start_date),
                                                  -- End Bug 3348095
                                                  l_level_id,
                                                  NULL))),
		       l_demand_class, 1,
                       --bug 4156016: If l_demand_class is not null and demand class is populated
                       -- on  supplies record then 0 should be allocated.
                       Decode (S.Demand_Class, NULL,
		       MSC_AATP_FUNC.Get_Res_Demand_Alloc_Percent(
                         -- 2859130 C.CALENDAR_DATE,
                         -- Bug 3348095
                         -- For ATP created records use end_date
                         -- otherwise start_date
                         DECODE(REQ.record_source, 2,
                           TRUNC(NVL(REQ.END_DATE, REQ.START_DATE)) ,
                             TRUNC(REQ.START_DATE)),
                         --trunc(req.start_date),
                         -- End Bug 3348095
                         REQ.ASSEMBLY_ITEM_ID,
			 p_organization_id,
                         p_instance_id,
                         p_department_id,
			 p_resource_id,
                         DECODE(G_HIERARCHY_PROFILE,
                                --2424357
                                1, DECODE(S.DEMAND_CLASS, null, null,
                                       DECODE(l_demand_class, '-1',
                                          MSC_AATP_FUNC.Get_RES_Hierarchy_Demand_Class(
                                                  null,
                                                  null,
                                                  p_department_id,
                                                  p_resource_id,
                                                  p_organization_id,
                                                  p_instance_id,
                                                  -- c.calendar_date,
                                                  -- Bug 3348095
                                                  -- For ATP created records use end_date
                                                  -- otherwise start_date
                                                  DECODE(REQ.record_source, 2,
                                                    TRUNC(NVL(REQ.END_DATE, REQ.START_DATE)) ,
                                                      TRUNC(REQ.START_DATE)),
                                                  --trunc(req.start_date),
                                                  -- End Bug 3348095
                                                  l_level_id,
                                                  S.DEMAND_CLASS), S.DEMAND_CLASS)),
                                2, DECODE(S.CUSTOMER_ID, NULL, l_demand_class,
                                          0, l_demand_class,
                                                MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                  S.CUSTOMER_ID,
                                                  S.SHIP_TO_SITE_ID,
                                                  l_inv_item_id,
                                                  p_organization_id,
                                                  p_instance_id,
                                                  -- 2859130 c.calendar_date,
                                                  -- Bug 3348095
                                                  -- For ATP created records use end_date
                                                  -- otherwise start_date
                                                  DECODE(REQ.record_source, 2,
                                                    TRUNC(NVL(REQ.END_DATE, REQ.START_DATE)) ,
                                                      TRUNC(REQ.START_DATE)),
                                                  --trunc(req.start_date),
                                                  -- End Bug 3348095
                                                  l_level_id,
                                                  NULL))),
                         l_demand_class), 0)) SD_QTY
                        /*New*/
          FROM    MSC_DEPARTMENT_RESOURCES DR,
                  MSC_SUPPLIES S,
                  MSC_SYSTEM_ITEMS I,   -- CTO ODR
                  MSC_RESOURCE_REQUIREMENTS REQ
                  -- 2859130 MSC_CALENDAR_DATES C
          WHERE   DR.PLAN_ID = p_plan_id
          AND     NVL(DR.OWNING_DEPARTMENT_ID, DR.DEPARTMENT_ID)=p_department_id
          AND     DR.RESOURCE_ID = p_resource_id
          AND     DR.SR_INSTANCE_ID = p_instance_id
          AND     DR.ORGANIZATION_ID = p_organization_id -- for performance
          AND     REQ.PLAN_ID = DR.PLAN_ID
          AND     REQ.SR_INSTANCE_ID = DR.SR_INSTANCE_ID
          AND     REQ.RESOURCE_ID = DR.RESOURCE_ID
          AND     REQ.DEPARTMENT_ID = DR.DEPARTMENT_ID
          AND     NVL(REQ.PARENT_ID, 1)  = 1 -- Bug 2809639
          -- CTO Option Dependent Resources ODR
          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
          AND     ((I.bom_item_type <> 1 and I.bom_item_type <> 2)
                -- bom_item_type not model and option_class always committed.
                     AND   (I.atp_flag <> 'N')
                -- atp_flag is 'Y' then committed.
                     OR    (REQ.record_source = 2) ) -- this OR may be changed during performance analysis.
               -- if record created by ATP then committed.
          -- End CTO Option Dependent Resources
          AND     S.PLAN_ID = DR.PLAN_ID
          AND     S.TRANSACTION_ID = REQ.SUPPLY_ID
          AND     S.SR_INSTANCE_ID = REQ.SR_INSTANCE_ID --bug3948494
          -- Exclude Cancelled Supplies 2460645
          AND     NVL(S.DISPOSITION_STATUS_TYPE, 1) <> 2 -- Bug 2460645

          -- 2859130
          -- AND     C.SR_INSTANCE_ID = DR.SR_INSTANCE_ID
          -- AND     C.CALENDAR_CODE = l_calendar_code
          -- AND     C.EXCEPTION_SET_ID = l_calendar_exception_set_id
          -- AND     C.CALENDAR_DATE = TRUNC(REQ.START_DATE) -- Bug 2809639
          -- AND     C.SEQ_NUM IS NOT NULL
          ---bug 2341075
          --AND     C.CALENDAR_DATE >= trunc(sysdate)
          AND     trunc(REQ.START_DATE) >= l_plan_start_date --4135752
          UNION ALL
          SELECT  trunc(MNRA.SHIFT_DATE) SD_DATE, --4135752
                  MNRA.CAPACITY_UNITS * ((DECODE(LEAST(MNRA.from_time, MNRA.to_time),
                       MNRA.to_time,MNRA.to_time + 24*3600,
                       MNRA.to_time) - MNRA.from_time)/3600) *
                                              NVL((MRHM.allocation_percent/100), 1)
                                                    /*
                                                     NVL(MSC_AATP_FUNC.Get_DC_Alloc_Percent(
                				     p_instance_id,
                			             null,
                                                     p_organization_id,
                                                     p_department_id,
                                                     p_resource_id,
                                                     l_demand_class,
                                                     SHIFT_DATE),1) SD_QTY */
          FROM    MSC_NET_RESOURCE_AVAIL MNRA,
                  msc_resource_hierarchy_mv MRHM
          WHERE   MNRA.PLAN_ID = p_plan_id
          AND     NVL(MNRA.PARENT_ID, -2) <> -1
          AND     MNRA.SR_INSTANCE_ID = p_instance_id
          AND     MNRA.RESOURCE_ID = p_resource_id
          AND     MNRA.DEPARTMENT_ID = p_department_id
          --bug 2341075
          --AND     SHIFT_DATE >= trunc(sysdate)
          --bug 4232627: select only those records which are after plan start date
          AND     MNRA.SHIFT_DATE >= l_plan_start_date
          --bug 4156016
          AND     MNRA.organization_id = p_organization_id
          AND     MRHM.department_id (+) = MNRA.department_id
          AND     MRHM.resource_id  (+)= MNRA.resource_id
          AND     MRHM.organization_id (+) = MNRA.organization_id
          AND     MRHM.sr_instance_id  (+)= MNRA.sr_instance_id
          --AND     MRHM.level_id (+) = -1 --4365873
          AND     decode(MRHM.level_id (+),-1,1,2) = decode(G_HIERARCHY_PROFILE,1,1,2)
           --bug 4232627:
          AND     trunc(MNRA.shift_date) >=  trunc(GREATEST(l_plan_start_date,MRHM.effective_date (+))) --4135752
          AND     trunc(MNRA.shift_date) <=  trunc(MRHM.disable_date (+)) --4135752
          AND     MRHM.demand_class (+)= l_demand_class
          )
          GROUP BY SD_DATE
          ORDER BY SD_DATE;--4698199
Line: 6696

       	  SELECT 	SD_DATE,
       			SUM(SD_QTY)
          BULK COLLECT INTO
                	l_current_atp.atp_period,
                	l_current_atp.atp_qty
          FROM (
          SELECT GREATEST(C.CALENDAR_DATE,l_sys_next_date) SD_DATE,--bug3333114
                -1*DECODE(REQ.RESOURCE_ID, -1, REQ.LOAD_RATE,
                       DECODE(REQ.END_DATE, NULL, REQ.RESOURCE_HOURS,
                          -- Bug 3348095
                          DECODE(REQ.record_source, 2, REQ.RESOURCE_HOURS,
                                 REQ.DAILY_RESOURCE_HOURS))) *
                          -- For ATP created records use resource_hours
                          -- End Bug 3348095
                        /*New*/
		DECODE(DECODE(G_HIERARCHY_PROFILE,
                              --2424357
                              1, DECODE(S.DEMAND_CLASS, null, null,
                                    DECODE(l_demand_class, '-1',
                                       MSC_AATP_FUNC.Get_RES_Hierarchy_Demand_Class(
                                                  null,
                                                  null,
                                                  p_department_id,
  				                  p_resource_id,
                                                  p_organization_id,
                                                  p_instance_id,
                                                  c.calendar_date,
                                                  l_level_id,
                                                  S.DEMAND_CLASS),S.DEMAND_CLASS)),
                              2, DECODE(S.CUSTOMER_ID, NULL, TO_CHAR(NULL),
                                        0, TO_CHAR(NULL),
                                                MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                  S.CUSTOMER_ID,
                                                  S.SHIP_TO_SITE_ID,
                                                  s.inventory_item_id,
                                                  p_organization_id,
                                                  p_instance_id,
                                                  c.calendar_date,
                                                  l_level_id,
                                                  NULL))),
		       l_demand_class, 1,
                       --bug 4156016: If l_demand_class is not null and demand class is populated
                       -- on  supplies record then 0 should be allocated.
                       Decode (S.Demand_Class, NULL,
		       MSC_AATP_FUNC.Get_Res_Demand_Alloc_Percent(C.CALENDAR_DATE,
                         REQ.ASSEMBLY_ITEM_ID,
			 p_organization_id,
                         p_instance_id,
                         p_department_id,
			 p_resource_id,
                         DECODE(G_HIERARCHY_PROFILE,
                                --2424357
                                1, DECODE(S.DEMAND_CLASS, null, null,
                                       DECODE(l_demand_class, '-1',
                                          MSC_AATP_FUNC.Get_RES_Hierarchy_Demand_Class(
                                                  null,
                                                  null,
                                                  p_department_id,
                                                  p_resource_id,
                                                  p_organization_id,
                                                  p_instance_id,
                                                  c.calendar_date,
                                                  l_level_id,
                                                  S.DEMAND_CLASS), S.DEMAND_CLASS)),
                                2, DECODE(S.CUSTOMER_ID, NULL, l_demand_class,
                                          0, l_demand_class,
                                                MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                  S.CUSTOMER_ID,
                                                  S.SHIP_TO_SITE_ID,
                                                  l_inv_item_id,
                                                  p_organization_id,
                                                  p_instance_id,
                                                  c.calendar_date,
                                                  l_level_id,
                                                  NULL))),
                         l_demand_class), 0)) SD_QTY
                        /*New*/
          FROM    MSC_DEPARTMENT_RESOURCES DR,
                  MSC_SUPPLIES S,
                  MSC_SYSTEM_ITEMS I,   -- CTO ODR
                  MSC_RESOURCE_REQUIREMENTS REQ,
                  MSC_CALENDAR_DATES C
          WHERE   DR.PLAN_ID = p_plan_id
          AND     NVL(DR.OWNING_DEPARTMENT_ID, DR.DEPARTMENT_ID)=p_department_id
          AND     DR.RESOURCE_ID = p_resource_id
          AND     DR.SR_INSTANCE_ID = p_instance_id
          AND     DR.ORGANIZATION_ID = p_organization_id -- for performance
          AND     REQ.PLAN_ID = DR.PLAN_ID
          AND     REQ.SR_INSTANCE_ID = DR.SR_INSTANCE_ID
          AND     REQ.RESOURCE_ID = DR.RESOURCE_ID
          AND     REQ.DEPARTMENT_ID = DR.DEPARTMENT_ID
          AND     NVL(REQ.PARENT_ID, l_optimized_plan) = l_optimized_plan
          -- CTO Option Dependent Resources ODR
          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
          AND     ((I.bom_item_type <> 1 and I.bom_item_type <> 2)
                -- bom_item_type not model and option_class always committed.
                     AND   (I.atp_flag <> 'N')
                -- atp_flag is 'Y' then committed.
                     OR    (REQ.record_source = 2) ) -- this OR may be changed during performance analysis.
               -- if record created by ATP then committed.
          -- End CTO Option Dependent Resources
          AND     S.PLAN_ID = DR.PLAN_ID
          AND     S.TRANSACTION_ID = REQ.SUPPLY_ID
          AND     S.SR_INSTANCE_ID = REQ.SR_INSTANCE_ID --bug3948494
          -- Exclude Cancelled Supplies 2460645
          AND     NVL(S.DISPOSITION_STATUS_TYPE, 1) <> 2 -- Bug 2460645

          AND     C.SR_INSTANCE_ID = DR.SR_INSTANCE_ID
          AND     C.CALENDAR_CODE = l_calendar_code
          AND     C.EXCEPTION_SET_ID = l_calendar_exception_set_id
                  -- Bug 3348095
                  -- Ensure that the ATP created resource Reqs
                  -- do not get double counted.
         AND      C.CALENDAR_DATE BETWEEN DECODE(REQ.record_source, 2,
                       TRUNC(NVL(REQ.END_DATE, REQ.START_DATE)), TRUNC(REQ.START_DATE))
                   AND TRUNC(NVL(REQ.END_DATE, REQ.START_DATE))
                  -- End Bug 3348095
          AND     C.SEQ_NUM IS NOT NULL
          ---bug 2341075
          --AND     C.CALENDAR_DATE >= trunc(sysdate)
          AND     C.CALENDAR_DATE >= l_plan_start_date
          UNION ALL
          SELECT  trunc(MNRA.SHIFT_DATE) SD_DATE, --4135752
                  MNRA.CAPACITY_UNITS * ((DECODE(LEAST(MNRA.from_time, MNRA.to_time),
                       MNRA.to_time,MNRA.to_time + 24*3600,
                       MNRA.to_time) - MNRA.from_time)/3600) *
                                              NVL((MRHM.allocation_percent/100), 1)
/*
                                              NVL(MSC_AATP_FUNC.Get_DC_Alloc_Percent(
                				     p_instance_id,
                			             null,
                                                     p_organization_id,
                                                     p_department_id,
                                                     p_resource_id,
                                                     l_demand_class,
                                                     SHIFT_DATE),1) SD_QTY
*/
          FROM    MSC_NET_RESOURCE_AVAIL MNRA,
                  msc_resource_hierarchy_mv MRHM
          WHERE   MNRA.PLAN_ID = p_plan_id
          AND     NVL(MNRA.PARENT_ID, -2) <> -1
          AND     MNRA.SR_INSTANCE_ID = p_instance_id
          AND     MNRA.RESOURCE_ID = p_resource_id
          AND     MNRA.DEPARTMENT_ID = p_department_id
          ---bug 2341075; get data from plan_start date
Line: 6878

	 INSERT INTO msc_atp_sd_details_temp (
		ATP_Level,
		Order_line_id,
		Scenario_Id,
		Inventory_Item_Id,
		Request_Item_Id,
		Organization_Id,
		Department_Id,
		Resource_Id,
		Supplier_Id,
		Supplier_Site_Id,
		From_Organization_Id,
		From_Location_Id,
		To_Organization_Id,
		To_Location_Id,
		Ship_Method,
		UOM_code,
		Supply_Demand_Type,
		Supply_Demand_Source_Type,
		Supply_Demand_Source_Type_Name,
		Identifier1,
		Identifier2,
		Identifier3,
		Identifier4,
		Supply_Demand_Quantity,
		Supply_Demand_Date,
		Disposition_Type,
		Disposition_Name,
		Pegging_Id,
		End_Pegging_Id,
		creation_date,
		created_by,
		last_update_date,
		last_updated_by,
		last_update_login,
		Unallocated_Quantity
	)

	(SELECT
    	 	p_level col1,
		p_identifier col2,
                p_scenario_id col3,
                l_null_num col4 ,
                l_null_num col5,
		p_organization_id col6,
                p_department_id col7,
                p_resource_id col8,
                l_null_num col9,
                l_null_num col10,
                l_null_num col11,
                l_null_num col12,
                l_null_num col13,
                l_null_num col14,
		l_null_char col15,
		l_uom_code col16,
		1 col17, -- demand
		S.ORDER_TYPE col18,
                l_null_char col19,
		REQ.SR_INSTANCE_ID col20,
                l_null_num col21,
		REQ.TRANSACTION_ID col22,
		l_null_num col23,
                -1* DECODE(REQ.RESOURCE_ID, -1, REQ.LOAD_RATE,
                       DECODE(REQ.END_DATE, NULL, REQ.RESOURCE_HOURS,
                         -- Bug 3348095
                         DECODE(REQ.record_source, 2, REQ.RESOURCE_HOURS,
                                 REQ.DAILY_RESOURCE_HOURS))) *
                         -- For ATP created records use resource_hours
                         -- End Bug 3348095
                 ---- resource batching
                DECODE(DR.UOM_CLASS_TYPE, 1, I.UNIT_WEIGHT, 2, UNIT_VOLUME) *
                NVL(MUC.CONVERSION_RATE, 1) * NVL(S.NEW_ORDER_QUANTITY,S.FIRM_QUANTITY) *

                        /*New*/
                DECODE(p_scenario_id, -1, 1,
                       DECODE(DECODE(G_HIERARCHY_PROFILE,
                              --2424357
                              1, DECODE(S.DEMAND_CLASS, null, null,
                                     DECODE(l_demand_class, '-1',
                                         MSC_AATP_FUNC.Get_RES_Hierarchy_Demand_Class(
                                                  null,
                                                  null,
                                                  p_department_id,
                                                  p_resource_id,
                                                  p_organization_id,
                                                  p_instance_id,
                                                  -- 2859130 c.calendar_date,
                                                  -- Bug 3348095
                                                  -- For ATP created records use end_date
                                                  -- otherwise start_date
                                                  DECODE(REQ.record_source, 2,
                                                    TRUNC(NVL(REQ.END_DATE, REQ.START_DATE)) ,
                                                      TRUNC(REQ.START_DATE)),
                                                  --trunc(req.start_date),
                                                  -- End Bug 3348095
                                                  l_level_id,
                                                  S.DEMAND_CLASS), S.DEMAND_CLASS)),
                              2, DECODE(S.CUSTOMER_ID, NULL, TO_CHAR(NULL),
                                        0, TO_CHAR(NULL),
                                                MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                  S.CUSTOMER_ID,
                                                  S.SHIP_TO_SITE_ID,
                                                  s.inventory_item_id,
                                                  p_organization_id,
                                                  p_instance_id,
                                                  -- 2859130 c.calendar_date,
                                                  -- Bug 3348095
                                                  -- For ATP created records use end_date
                                                  -- otherwise start_date
                                                  DECODE(REQ.record_source, 2,
                                                    TRUNC(NVL(REQ.END_DATE, REQ.START_DATE)) ,
                                                      TRUNC(REQ.START_DATE)),
                                                  --trunc(req.start_date),
                                                  -- End Bug 3348095
                                                  l_level_id,
                                                  NULL))),
                       l_demand_class, 1,
                       --bug 4156016: If l_demand_class is not null and demand class is populated
                       -- on  supplies record then 0 should be allocated.
                       Decode (S.Demand_Class, NULL,
                       MSC_AATP_FUNC.Get_Res_Demand_Alloc_Percent(
                         -- 2859130 C.CALENDAR_DATE,
                         -- Bug 3348095
                         -- For ATP created records use end_date
                         -- otherwise start_date
                         DECODE(REQ.record_source, 2,
                            TRUNC(NVL(REQ.END_DATE, REQ.START_DATE)) ,
                               TRUNC(REQ.START_DATE)),
                         --trunc(req.start_date),
                         -- End Bug 3348095
                         REQ.ASSEMBLY_ITEM_ID,
                         p_organization_id,
                         p_instance_id,
                         p_department_id,
                         p_resource_id,
                         DECODE(G_HIERARCHY_PROFILE,
                                ---2424357
                                1, DECODE(S.DEMAND_CLASS, null, null,
                                      DECODE(l_demand_class, '-1',
                                          MSC_AATP_FUNC.Get_RES_Hierarchy_Demand_Class(
                                                  null,
                                                  null,
                                                  p_department_id,
                                                  p_resource_id,
                                                  p_organization_id,
                                                  p_instance_id,
                                                  -- 2859130 c.calendar_date,
                                                  -- Bug 3348095
                                                  -- For ATP created records use end_date
                                                  -- otherwise start_date
                                                  DECODE(REQ.record_source, 2,
                                                    TRUNC(NVL(REQ.END_DATE, REQ.START_DATE)) ,
                                                      TRUNC(REQ.START_DATE)),
                                                  --trunc(req.start_date),
                                                  -- End Bug 3348095
                                                  l_level_id,
                                                   S.DEMAND_CLASS), S.DEMAND_CLASS)),
                                2, DECODE(S.CUSTOMER_ID, NULL, l_demand_class,
                                          0, l_demand_class,
                                                MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                  S.CUSTOMER_ID,
                                                  S.SHIP_TO_SITE_ID,
                                                  l_inv_item_id,
                                                  p_organization_id,
                                                  p_instance_id,
                                                  --2859130 c.calendar_date,
                                                  -- Bug 3348095
                                                  -- For ATP created records use end_date
                                                  -- otherwise start_date
                                                  DECODE(REQ.record_source, 2,
                                                    TRUNC(NVL(REQ.END_DATE, REQ.START_DATE)) ,
                                                      TRUNC(REQ.START_DATE)),
                                                  --trunc(req.start_date),
                                                  -- End Bug 3348095
                                                  l_level_id,
                                                  NULL))),
                         l_demand_class), 0))) col24,
                        /*New*/
		-- 2859130 C.CALENDAR_DATE col25,
                -- Bug 3348095
                -- For ATP created records use end_date otherwise start_date
                GREATEST(DECODE(REQ.record_source, 2,
                   TRUNC(NVL(REQ.END_DATE, REQ.START_DATE)) , TRUNC(REQ.START_DATE)),l_sys_next_date) col25,  --bug3333114
                -- End Bug 3348095
                -- TRUNC(req.start_date) col25,
                l_null_num col26,
                -- Bug 2771075. For Planned Orders, we will populate transaction_id
		-- in the disposition_name column to be consistent with Planning.
		-- S.ORDER_NUMBER col27,
		DECODE(S.ORDER_TYPE, 5, to_char(S.TRANSACTION_ID), S.ORDER_NUMBER ) col27,
                l_null_num col28,
                l_null_num col29,
		-- ship_rec_cal changes begin
		l_sysdate,
		G_USER_ID,
		l_sysdate,
		G_USER_ID,
		G_USER_ID,
		-- ship_rec_cal changes end
		-- Unallocated_Quantity
                -1* DECODE(REQ.RESOURCE_ID, -1, REQ.LOAD_RATE,
                       DECODE(REQ.END_DATE, NULL, REQ.RESOURCE_HOURS,
                          -- Bug 3348095
                          DECODE(REQ.record_source, 2, REQ.RESOURCE_HOURS,
                                 REQ.DAILY_RESOURCE_HOURS))) *
                          -- For ATP created records use resource_hours
                          -- End Bug 3348095
                 ---- resource batching
                DECODE(DR.UOM_CLASS_TYPE, 1, I.UNIT_WEIGHT, 2, UNIT_VOLUME) *
                NVL(MUC.CONVERSION_RATE, 1) * NVL(S.NEW_ORDER_QUANTITY,S.FIRM_QUANTITY)
         FROM   MSC_DEPARTMENT_RESOURCES DR,
                MSC_SUPPLIES S,
                MSC_RESOURCE_REQUIREMENTS REQ,
                -- 2859130 MSC_CALENDAR_DATES C,
                MSC_SYSTEM_ITEMS I,
                MSC_UOM_CONVERSIONS MUC
         WHERE  DR.PLAN_ID = p_plan_id
         AND    NVL(DR.OWNING_DEPARTMENT_ID, DR.DEPARTMENT_ID)=p_department_id
         AND    DR.RESOURCE_ID = p_resource_id
         AND    DR.SR_INSTANCE_ID = p_instance_id
         AND    DR.ORGANIZATION_ID = p_organization_id -- for performance
         AND    REQ.PLAN_ID = DR.PLAN_ID
         AND    REQ.SR_INSTANCE_ID = DR.SR_INSTANCE_ID
         AND    REQ.RESOURCE_ID = DR.RESOURCE_ID
         AND    REQ.DEPARTMENT_ID = DR.DEPARTMENT_ID
         AND    NVL(REQ.PARENT_ID, 1) = 1 -- Bug 2809639
         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
          -- Begin CTO Option Dependent Resources ODR
          AND     ((I.bom_item_type <> 1 and I.bom_item_type <> 2)
               -- bom_item_type not model and option_class always committed.
                    AND   (I.atp_flag <> 'N')
               -- atp_flag is 'Y' then committed.
                    OR    (REQ.record_source = 2) ) -- this OR may be changed during performance analysis.
              -- if record created by ATP then committed.
         -- End CTO Option Dependent Resources
         AND     DECODE(p_res_uom_type, 1, I.WEIGHT_UOM, 2 , I.VOLUME_UOM) = MUC.UOM_CODE (+)
         AND     MUC.SR_INSTANCE_ID (+)= I.SR_INSTANCE_ID
         AND     MUC.INVENTORY_ITEM_ID (+)= 0
         AND    S.PLAN_ID = DR.PLAN_ID
         AND    S.TRANSACTION_ID = REQ.SUPPLY_ID
         AND    S.SR_INSTANCE_ID = REQ.SR_INSTANCE_ID --bug3948494
         -- Exclude Cancelled Supplies 2460645
         AND     NVL(S.DISPOSITION_STATUS_TYPE, 1) <> 2 -- Bug 2460645
         -- 2859130
         -- AND    C.SR_INSTANCE_ID = DR.SR_INSTANCE_ID
         -- AND    C.CALENDAR_CODE = l_calendar_code
         -- AND    C.EXCEPTION_SET_ID = l_calendar_exception_set_id
         -- AND    C.CALENDAR_DATE = TRUNC(REQ.START_DATE) -- Bug 2809639
         -- AND    C.SEQ_NUM IS NOT NULL
         ---bug 2341075
         --AND    C.CALENDAR_DATE >= trunc(sysdate)
         -- AND    C.CALENDAR_DATE >= l_plan_start_date
         AND    trunc(req.start_date) >= l_plan_start_date --4135752
         UNION ALL
         SELECT p_level col1,
                p_identifier col2,
                p_scenario_id col3,
                l_null_num col4 ,
                l_null_num col5,
                p_organization_id col6,
                p_department_id col7,
                p_resource_id col8,
                l_null_num col9,
                l_null_num col10,
                l_null_num col11,
                l_null_num col12,
                l_null_num col13,
                l_null_num col14,
                l_null_char col15,
                l_uom_code col16,
                2 col17, -- supply
                l_null_num col18,
                l_null_char col19,
                MNRA.SR_INSTANCE_ID col20,
                l_null_num col21,
                MNRA.TRANSACTION_ID col22,
                l_null_num col23,
                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(p_scenario_id, -1, 1, NVL((MRHM.allocation_percent/100), 1)) col24,
                --bug 4156016
	        /*		NVL(MSC_AATP_FUNC.Get_DC_Alloc_Percent(
                                                     p_instance_id,
                                                     null,
                                                     p_organization_id,
                                                     p_department_id,
                                                     p_resource_id,
                                                     l_demand_class,
                                                     SHIFT_DATE),1)) col24, */
                MNRA.SHIFT_DATE col25,
                l_null_num col26,
                l_null_char col27,
                l_null_num col28,
		l_null_num col29,
		-- ship_rec_cal changes begin
		l_sysdate,
		G_USER_ID,
		l_sysdate,
		G_USER_ID,
		G_USER_ID,
		-- ship_rec_cal changes end
                MNRA.CAPACITY_UNITS * p_max_capacity * p_res_conversion_rate * ((DECODE(LEAST(MNRA.from_time, MNRA.to_time),
                       MNRA.to_time,MNRA.to_time + 24*3600,
                       MNRA.to_time) - MNRA.from_time)/3600)
          FROM    MSC_NET_RESOURCE_AVAIL MNRA,
                  msc_resource_hierarchy_mv MRHM
          WHERE   MNRA.PLAN_ID = p_plan_id
          AND     NVL(MNRA.PARENT_ID, -2) <> -1
          AND     MNRA.SR_INSTANCE_ID = p_instance_id
          AND     MNRA.RESOURCE_ID = p_resource_id
          AND     MNRA.DEPARTMENT_ID = p_department_id
          --bug 2341075
          --AND     SHIFT_DATE >= trunc(sysdate)
          --bug 4232627: select only those records which are after plan start date
          AND     MNRA.SHIFT_DATE >= l_plan_start_date
          --bug 4156016
          AND     MNRA.organization_id = p_organization_id
          AND     MRHM.department_id (+) = MNRA.department_id
          AND     MRHM.resource_id  (+)= MNRA.resource_id
          AND     MRHM.organization_id (+) = MNRA.organization_id
          AND     MRHM.sr_instance_id  (+)= MNRA.sr_instance_id
          --AND     MRHM.level_id (+) = -1 --4365873
          AND     decode(MRHM.level_id (+),-1,1,2) = decode(G_HIERARCHY_PROFILE,1,1,2)
          --bug 4232627: select only those records which are after plan start date
          AND     trunc(MNRA.shift_date) >=  trunc(MRHM.effective_date (+))
          AND     trunc(MNRA.shift_date) <=  trunc(MRHM.disable_date (+))
          AND     MRHM.demand_class (+) = l_demand_class
	)
	; -- dsting removed order by col25;
Line: 7215

	 INSERT INTO msc_atp_sd_details_temp (
		ATP_Level,
		Order_line_id,
		Scenario_Id,
		Inventory_Item_Id,
		Request_Item_Id,
		Organization_Id,
		Department_Id,
		Resource_Id,
		Supplier_Id,
		Supplier_Site_Id,
		From_Organization_Id,
		From_Location_Id,
		To_Organization_Id,
		To_Location_Id,
		Ship_Method,
		UOM_code,
		Supply_Demand_Type,
		Supply_Demand_Source_Type,
		Supply_Demand_Source_Type_Name,
		Identifier1,
		Identifier2,
		Identifier3,
		Identifier4,
		Supply_Demand_Quantity,
		Supply_Demand_Date,
		Disposition_Type,
		Disposition_Name,
		Pegging_Id,
		End_Pegging_Id,
		creation_date,
		created_by,
		last_update_date,
		last_updated_by,
		last_update_login,
		Unallocated_Quantity
	)

	(SELECT
    	 	p_level col1,
		p_identifier col2,
                p_scenario_id col3,
                l_null_num col4 ,
                l_null_num col5,
		p_organization_id col6,
                p_department_id col7,
                p_resource_id col8,
                l_null_num col9,
                l_null_num col10,
                l_null_num col11,
                l_null_num col12,
                l_null_num col13,
                l_null_num col14,
		l_null_char col15,
		l_uom_code col16,
		1 col17, -- demand
		S.ORDER_TYPE col18,
                l_null_char col19,
		REQ.SR_INSTANCE_ID col20,
                l_null_num col21,
		REQ.TRANSACTION_ID col22,
		l_null_num col23,
                -1* DECODE(REQ.RESOURCE_ID, -1, REQ.LOAD_RATE,
                       DECODE(REQ.END_DATE, NULL, REQ.RESOURCE_HOURS,
                         -- Bug 3348095
                         DECODE(REQ.record_source, 2, REQ.RESOURCE_HOURS,
                                 REQ.DAILY_RESOURCE_HOURS))) *
                         -- For ATP created records use resource_hours
                         -- End Bug 3348095
                 ---- resource batching
                DECODE(DR.UOM_CLASS_TYPE, 1, I.UNIT_WEIGHT, 2, UNIT_VOLUME) *
                NVL(MUC.CONVERSION_RATE, 1) * NVL(S.NEW_ORDER_QUANTITY,S.FIRM_QUANTITY) *

                        /*New*/
                DECODE(p_scenario_id, -1, 1,
                       DECODE(DECODE(G_HIERARCHY_PROFILE,
                              --2424357
                              1, DECODE(S.DEMAND_CLASS, null, null,
                                     DECODE(l_demand_class, '-1',
                                         MSC_AATP_FUNC.Get_RES_Hierarchy_Demand_Class(
                                                  null,
                                                  null,
                                                  p_department_id,
                                                  p_resource_id,
                                                  p_organization_id,
                                                  p_instance_id,
                                                  c.calendar_date,
                                                  l_level_id,
                                                  S.DEMAND_CLASS), S.DEMAND_CLASS)),
                              2, DECODE(S.CUSTOMER_ID, NULL, TO_CHAR(NULL),
                                        0, TO_CHAR(NULL),
                                                MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                  S.CUSTOMER_ID,
                                                  S.SHIP_TO_SITE_ID,
                                                  s.inventory_item_id,
                                                  p_organization_id,
                                                  p_instance_id,
                                                  c.calendar_date,
                                                  l_level_id,
                                                  NULL))),
                       l_demand_class, 1,
                       --bug 4156016: If l_demand_class is not null and demand class is populated
                       -- on  supplies record then 0 should be allocated.
                       Decode (S.Demand_Class, NULL,
                       MSC_AATP_FUNC.Get_Res_Demand_Alloc_Percent(
                         C.CALENDAR_DATE,
                         REQ.ASSEMBLY_ITEM_ID,
                         p_organization_id,
                         p_instance_id,
                         p_department_id,
                         p_resource_id,
                         DECODE(G_HIERARCHY_PROFILE,
                                ---2424357
                                1, DECODE(S.DEMAND_CLASS, null, null,
                                      DECODE(l_demand_class, '-1',
                                          MSC_AATP_FUNC.Get_RES_Hierarchy_Demand_Class(
                                                  null,
                                                  null,
                                                  p_department_id,
                                                  p_resource_id,
                                                  p_organization_id,
                                                  p_instance_id,
                                                  c.calendar_date,
                                                  l_level_id,
                                                   S.DEMAND_CLASS), S.DEMAND_CLASS)),
                                2, DECODE(S.CUSTOMER_ID, NULL, l_demand_class,
                                          0, l_demand_class,
                                                MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                  S.CUSTOMER_ID,
                                                  S.SHIP_TO_SITE_ID,
                                                  l_inv_item_id,
                                                  p_organization_id,
                                                  p_instance_id,
                                                  c.calendar_date,
                                                  l_level_id,
                                                  NULL))),
                         l_demand_class), 0))) col24,
                        /*New*/
		GREATEST(C.CALENDAR_DATE,l_sys_next_date) col25, --bug3333114
                l_null_num col26,
                -- Bug 2771075. For Planned Orders, we will populate transaction_id
		-- in the disposition_name column to be consistent with Planning.
		-- S.ORDER_NUMBER col27,
		DECODE(S.ORDER_TYPE, 5, to_char(S.TRANSACTION_ID), S.ORDER_NUMBER ) col27,
                l_null_num col28,
                l_null_num col29,
		-- ship_rec_cal changes begin
		l_sysdate,
		G_USER_ID,
		l_sysdate,
		G_USER_ID,
		G_USER_ID,
		-- ship_rec_cal changes end
		-- Unallocated_Quantity
                -1* DECODE(REQ.RESOURCE_ID, -1, REQ.LOAD_RATE,
                       DECODE(REQ.END_DATE, NULL, REQ.RESOURCE_HOURS,
                          -- Bug 3348095
                          DECODE(REQ.record_source, 2, REQ.RESOURCE_HOURS,
                                   REQ.DAILY_RESOURCE_HOURS))) *
                          -- For ATP created records use resource_hours
                          -- End Bug 3348095
                 ---- resource batching
                DECODE(DR.UOM_CLASS_TYPE, 1, I.UNIT_WEIGHT, 2, UNIT_VOLUME) *
                NVL(MUC.CONVERSION_RATE, 1) * NVL(S.NEW_ORDER_QUANTITY,S.FIRM_QUANTITY)
         FROM   MSC_DEPARTMENT_RESOURCES DR,
                MSC_SUPPLIES S,
                MSC_RESOURCE_REQUIREMENTS REQ,
                MSC_CALENDAR_DATES C,
                MSC_SYSTEM_ITEMS I,
                MSC_UOM_CONVERSIONS MUC
         WHERE  DR.PLAN_ID = p_plan_id
         AND    NVL(DR.OWNING_DEPARTMENT_ID, DR.DEPARTMENT_ID)=p_department_id
         AND    DR.RESOURCE_ID = p_resource_id
         AND    DR.SR_INSTANCE_ID = p_instance_id
         AND    DR.ORGANIZATION_ID = p_organization_id -- for performance
         AND    REQ.PLAN_ID = DR.PLAN_ID
         AND    REQ.SR_INSTANCE_ID = DR.SR_INSTANCE_ID
         AND    REQ.RESOURCE_ID = DR.RESOURCE_ID
         AND    REQ.DEPARTMENT_ID = DR.DEPARTMENT_ID
         AND    NVL(REQ.PARENT_ID, l_optimized_plan) = l_optimized_plan
         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
          -- Begin CTO Option Dependent Resources ODR
          AND     ((I.bom_item_type <> 1 and I.bom_item_type <> 2)
               -- bom_item_type not model and option_class always committed.
                    AND   (I.atp_flag <> 'N')
               -- atp_flag is 'Y' then committed.
                    OR    (REQ.record_source = 2) ) -- this OR may be changed during performance analysis.
              -- if record created by ATP then committed.
         -- End CTO Option Dependent Resources
         AND     DECODE(p_res_uom_type, 1, I.WEIGHT_UOM, 2 , I.VOLUME_UOM) = MUC.UOM_CODE (+)
         AND     MUC.SR_INSTANCE_ID (+)= I.SR_INSTANCE_ID
         AND     MUC.INVENTORY_ITEM_ID (+)= 0
         AND    S.PLAN_ID = DR.PLAN_ID
         AND    S.TRANSACTION_ID = REQ.SUPPLY_ID
         AND    S.SR_INSTANCE_ID = REQ.SR_INSTANCE_ID --bug3948494
         -- Exclude Cancelled Supplies 2460645
         AND     NVL(S.DISPOSITION_STATUS_TYPE, 1) <> 2 -- Bug 2460645
         AND    C.SR_INSTANCE_ID = DR.SR_INSTANCE_ID
         AND    C.CALENDAR_CODE = l_calendar_code
         AND    C.EXCEPTION_SET_ID = l_calendar_exception_set_id
                -- Bug 3348095
                -- Ensure that the ATP created resource Reqs
                -- do not get double counted.
         AND     C.CALENDAR_DATE BETWEEN DECODE(REQ.record_source, 2,
                          TRUNC(NVL(REQ.END_DATE, REQ.START_DATE)), TRUNC(REQ.START_DATE))
                   AND TRUNC(NVL(REQ.END_DATE, REQ.START_DATE))
                -- End Bug 3348095
         AND    C.SEQ_NUM IS NOT NULL
         ---bug 2341075
         --AND    C.CALENDAR_DATE >= trunc(sysdate)
         AND    C.CALENDAR_DATE >= l_plan_start_date
         UNION ALL
         SELECT p_level col1,
                p_identifier col2,
                p_scenario_id col3,
                l_null_num col4 ,
                l_null_num col5,
                p_organization_id col6,
                p_department_id col7,
                p_resource_id col8,
                l_null_num col9,
                l_null_num col10,
                l_null_num col11,
                l_null_num col12,
                l_null_num col13,
                l_null_num col14,
                l_null_char col15,
                l_uom_code col16,
                2 col17, -- supply
                l_null_num col18,
                l_null_char col19,
                MNRA.SR_INSTANCE_ID col20,
                l_null_num col21,
                MNRA.TRANSACTION_ID col22,
                l_null_num col23,
                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(p_scenario_id, -1, 1, NVL((MRHM.allocation_percent/100), 1)) col24,
                --bug 4156016
	        /*		NVL(MSC_AATP_FUNC.Get_DC_Alloc_Percent(
                                                     p_instance_id,
                                                     null,
                                                     p_organization_id,
                                                     p_department_id,
                                                     p_resource_id,
                                                     l_demand_class,
                                                     SHIFT_DATE),1)) col24, */
                MNRA.SHIFT_DATE col25,
                l_null_num col26,
                l_null_char col27,
                l_null_num col28,
		l_null_num col29,
		-- ship_rec_cal changes begin
		l_sysdate,
		G_USER_ID,
		l_sysdate,
		G_USER_ID,
		G_USER_ID,
		-- ship_rec_cal changes end
                MNRA.CAPACITY_UNITS * p_max_capacity * p_res_conversion_rate * ((DECODE(LEAST(MNRA.from_time, MNRA.to_time),
                       MNRA.to_time,MNRA.to_time + 24*3600,
                       MNRA.to_time) - MNRA.from_time)/3600)
          FROM    MSC_NET_RESOURCE_AVAIL MNRA,
                  msc_resource_hierarchy_mv MRHM
          WHERE   MNRA.PLAN_ID = p_plan_id
          AND     NVL(MNRA.PARENT_ID, -2) <> -1
          AND     MNRA.SR_INSTANCE_ID = p_instance_id
          AND     MNRA.RESOURCE_ID = p_resource_id
          AND     MNRA.DEPARTMENT_ID = p_department_id
          --bug 2341075
          --AND     SHIFT_DATE >= trunc(sysdate)
          --bug 4232627: select only those records which are after plan start date
          AND     MNRA.SHIFT_DATE >= l_plan_start_date
          --bug 4156016
          AND     MNRA.organization_id = p_organization_id
          AND     MRHM.department_id (+) = MNRA.department_id
          AND     MRHM.resource_id  (+)= MNRA.resource_id
          AND     MRHM.organization_id (+) = MNRA.organization_id
          AND     MRHM.sr_instance_id  (+)= MNRA.sr_instance_id
          --AND     MRHM.level_id (+) = -1 --4365873
          AND     decode(MRHM.level_id (+),-1,1,2) = decode(G_HIERARCHY_PROFILE,1,1,2)
          --bug 4232627:
          AND     trunc(MNRA.shift_date) >=  trunc(MRHM.effective_date (+))
          AND     trunc(MNRA.shift_date) <=  trunc(MRHM.disable_date (+))
          AND     MRHM.demand_class (+) = l_demand_class
	)
	; -- dsting removed order by col25;
Line: 7513

	 INSERT INTO msc_atp_sd_details_temp (
		ATP_Level,
		Order_line_id,
		Scenario_Id,
		Inventory_Item_Id,
		Request_Item_Id,
		Organization_Id,
		Department_Id,
		Resource_Id,
		Supplier_Id,
		Supplier_Site_Id,
		From_Organization_Id,
		From_Location_Id,
		To_Organization_Id,
		To_Location_Id,
		Ship_Method,
		UOM_code,
		Supply_Demand_Type,
		Supply_Demand_Source_Type,
		Supply_Demand_Source_Type_Name,
		Identifier1,
		Identifier2,
		Identifier3,
		Identifier4,
		Supply_Demand_Quantity,
		Supply_Demand_Date,
		Disposition_Type,
		Disposition_Name,
		Pegging_Id,
		End_Pegging_Id,
		creation_date,
		created_by,
		last_update_date,
		last_updated_by,
		last_update_login,
		Unallocated_Quantity
	)
    	(SELECT
		p_level col1,
		p_identifier col2,
                p_scenario_id col3,
                l_null_num col4 ,
                l_null_num col5,
		p_organization_id col6,
                p_department_id col7,
                p_resource_id col8,
                l_null_num col9,
                l_null_num col10,
                l_null_num col11,
                l_null_num col12,
                l_null_num col13,
                l_null_num col14,
		l_null_char col15,
		l_uom_code col16,
		1 col17, -- demand
		S.ORDER_TYPE col18,
                l_null_char col19,
		REQ.SR_INSTANCE_ID col20,
                l_null_num col21,
		REQ.TRANSACTION_ID col22,
		l_null_num col23,
                -1* DECODE(REQ.RESOURCE_ID, -1, REQ.LOAD_RATE,
                       DECODE(REQ.END_DATE, NULL, REQ.RESOURCE_HOURS,
                         -- Bug 3348095
                         DECODE(REQ.record_source, 2, REQ.RESOURCE_HOURS,
                                 REQ.DAILY_RESOURCE_HOURS))) *
                         -- For ATP created records use resource_hours
                         -- End Bug 3348095
                        /*New*/
                DECODE(p_scenario_id, -1, 1,
                       DECODE(DECODE(G_HIERARCHY_PROFILE,
                              --2424357
                              1, DECODE(S.DEMAND_CLASS, null, null,
                                    DECODE(l_demand_class, '-1',
                                       MSC_AATP_FUNC.Get_RES_Hierarchy_Demand_Class(
                                                  null,
                                                  null,
                                                  p_department_id,
                                                  p_resource_id,
                                                  p_organization_id,
                                                  p_instance_id,
                                                  -- 2859130 c.calendar_date,
                                                  -- Bug 3348095
                                                  -- For ATP created records use end_date
                                                  -- otherwise start_date
                                                  DECODE(REQ.record_source, 2,
                                                    TRUNC(NVL(REQ.END_DATE, REQ.START_DATE)) ,
                                                      TRUNC(REQ.START_DATE)),
                                                  --trunc(req.start_date),
                                                  -- End Bug 3348095
                                                  l_level_id,
                                                  S.DEMAND_CLASS), S.DEMAND_CLASS)),
                              2, DECODE(S.CUSTOMER_ID, NULL, TO_CHAR(NULL),
                                        0, TO_CHAR(NULL),
                                                MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                  S.CUSTOMER_ID,
                                                  S.SHIP_TO_SITE_ID,
                                                  s.inventory_item_id,
                                                  p_organization_id,
                                                  p_instance_id,
                                                  -- 2859130 c.calendar_date,
                                                  -- Bug 3348095
                                                  -- For ATP created records use end_date
                                                  -- otherwise start_date
                                                  DECODE(REQ.record_source, 2,
                                                    TRUNC(NVL(REQ.END_DATE, REQ.START_DATE)) ,
                                                      TRUNC(REQ.START_DATE)),
                                                  --trunc(req.start_date),
                                                  -- End Bug 3348095
                                                  l_level_id,
                                                  NULL))),
                       l_demand_class, 1,
                       --bug 4156016: If l_demand_class is not null and demand class is populated
                       -- on  supplies record then 0 should be allocated.
                       Decode (S.Demand_Class, NULL,
                       MSC_AATP_FUNC.Get_Res_Demand_Alloc_Percent(
                         -- 2859130 C.CALENDAR_DATE,
                         -- Bug 3348095
                         -- For ATP created records use end_date
                         -- otherwise start_date
                         DECODE(REQ.record_source, 2,
                            TRUNC(NVL(REQ.END_DATE, REQ.START_DATE)) ,
                                TRUNC(REQ.START_DATE)),
                         --trunc(req.start_date),
                         -- End Bug 3348095
                         REQ.ASSEMBLY_ITEM_ID,
                         p_organization_id,
                         p_instance_id,
                         p_department_id,
                         p_resource_id,
                         DECODE(G_HIERARCHY_PROFILE,
                                --2424357
                                1, DECODE(S.DEMAND_CLASS, null, null,
                                     DECODE(l_demand_class, '-1',
                                         MSC_AATP_FUNC.Get_RES_Hierarchy_Demand_Class(
                                                  null,
                                                  null,
                                                  p_department_id,
                                                  p_resource_id,
                                                  p_organization_id,
                                                  p_instance_id,
                                                  -- 2859130 c.calendar_date,
                                                  -- Bug 3348095
                                                  -- For ATP created records use end_date
                                                  -- otherwise start_date
                                                  DECODE(REQ.record_source, 2,
                                                    TRUNC(NVL(REQ.END_DATE, REQ.START_DATE)) ,
                                                      TRUNC(REQ.START_DATE)),
                                                  --trunc(req.start_date),
                                                  -- End Bug 3348095
                                                  l_level_id,
                                                  S.DEMAND_CLASS), S.DEMAND_CLASS)),
                                2, DECODE(S.CUSTOMER_ID, NULL, l_demand_class,
                                          0, l_demand_class,
                                                MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                  S.CUSTOMER_ID,
                                                  S.SHIP_TO_SITE_ID,
                                                  l_inv_item_id,
                                                  p_organization_id,
                                                  p_instance_id,
                                                  --2859130 c.calendar_date,
                                                  -- Bug 3348095
                                                  -- For ATP created records use end_date
                                                  -- otherwise start_date
                                                  DECODE(REQ.record_source, 2,
                                                    TRUNC(NVL(REQ.END_DATE, REQ.START_DATE)) ,
                                                      TRUNC(REQ.START_DATE)),
                                                  --trunc(req.start_date),
                                                  -- End Bug 3348095
                                                  l_level_id,
                                                  NULL))),
                         l_demand_class), 0))) col24,
                        /*New*/
		-- 2859130 C.CALENDAR_DATE col25,
                -- Bug 3348095
                -- For ATP created records use end_date otherwise start_date
                GREATEST(DECODE(REQ.record_source, 2,
                   TRUNC(NVL(REQ.END_DATE, REQ.START_DATE)) , TRUNC(REQ.START_DATE)),l_sys_next_date) col25,  --bug3333114
                -- End Bug 3348095
                -- TRUNC(req.start_date) col25,
                l_null_num col26,
		-- Bug 2771075. For Planned Orders, we will populate transaction_id
		-- in the disposition_name column to be consistent with Planning.
		-- S.ORDER_NUMBER col27,
		DECODE(S.ORDER_TYPE, 5, to_char(S.TRANSACTION_ID), S.ORDER_NUMBER) col27,
                l_null_num col28,
                l_null_num col29,
		-- ship_rec_cal changes begin
		l_sysdate,
		G_USER_ID,
		l_sysdate,
		G_USER_ID,
		G_USER_ID,
		-- ship_rec_cal changes end
		-- Unallocated_Quantity
                -1* DECODE(REQ.RESOURCE_ID, -1, REQ.LOAD_RATE,
                       DECODE(REQ.END_DATE, NULL, REQ.RESOURCE_HOURS,
                          -- Bug 3348095
                          DECODE(REQ.record_source, 2, REQ.RESOURCE_HOURS,
                                 REQ.DAILY_RESOURCE_HOURS)))
                          -- For ATP created records use resource_hours
                          -- End Bug 3348095
         FROM   MSC_DEPARTMENT_RESOURCES DR,
                MSC_SUPPLIES S,
                MSC_SYSTEM_ITEMS I,  -- CTO ODR
                MSC_RESOURCE_REQUIREMENTS REQ
                -- 2859130 MSC_CALENDAR_DATES C
         WHERE  DR.PLAN_ID = p_plan_id
         AND    NVL(DR.OWNING_DEPARTMENT_ID, DR.DEPARTMENT_ID)=p_department_id
         AND    DR.RESOURCE_ID = p_resource_id
         AND    DR.SR_INSTANCE_ID = p_instance_id
         AND    DR.ORGANIZATION_ID = p_organization_id -- for performance
         AND    REQ.PLAN_ID = DR.PLAN_ID
         AND    REQ.SR_INSTANCE_ID = DR.SR_INSTANCE_ID
         AND    REQ.RESOURCE_ID = DR.RESOURCE_ID
         AND    REQ.DEPARTMENT_ID = DR.DEPARTMENT_ID
         AND    NVL(REQ.PARENT_ID, 1) = 1 -- parent_id is 1 for constrained plans. Bug 2809639
         -- CTO Option Dependent Resources ODR
         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
         AND     ((I.bom_item_type <> 1 and I.bom_item_type <> 2)
               -- bom_item_type not model and option_class always committed.
                    AND   (I.atp_flag <> 'N')
               -- atp_flag is 'Y' then committed.
                    OR    (REQ.record_source = 2) ) -- this OR may be changed during performance analysis.
              -- if record created by ATP then committed.
         -- End CTO Option Dependent Resources
         AND    S.PLAN_ID = DR.PLAN_ID
         AND    S.TRANSACTION_ID = REQ.SUPPLY_ID
         AND    S.SR_INSTANCE_ID = REQ.SR_INSTANCE_ID --bug3948494
                -- Exclude Cancelled Supplies 2460645
         AND     NVL(S.DISPOSITION_STATUS_TYPE, 1) <> 2 -- Bug 2460645
         -- 2859130
         -- AND    C.SR_INSTANCE_ID = DR.SR_INSTANCE_ID
         -- AND    C.CALENDAR_CODE = l_calendar_code
         -- AND    C.EXCEPTION_SET_ID = l_calendar_exception_set_id
         -- AND    C.CALENDAR_DATE = TRUNC(REQ.START_DATE) -- Bug 2809639
         -- AND    C.SEQ_NUM IS NOT NULL
         ---bug 2341075
         --AND    C.CALENDAR_DATE >= trunc(sysdate)
         -- AND    C.CALENDAR_DATE >= l_plan_start_date
         AND    trunc(req.start_date) >= l_plan_start_date --4135752
         UNION ALL
         SELECT p_level col1,
                p_identifier col2,
                p_scenario_id col3,
                l_null_num col4 ,
                l_null_num col5,
                p_organization_id col6,
                p_department_id col7,
                p_resource_id col8,
                l_null_num col9,
                l_null_num col10,
                l_null_num col11,
                l_null_num col12,
                l_null_num col13,
                l_null_num col14,
                l_null_char col15,
                l_uom_code col16,
                2 col17, -- supply
                l_null_num col18,
                l_null_char col19,
                MNRA.SR_INSTANCE_ID col20,
                l_null_num col21,
                MNRA.TRANSACTION_ID col22,
                l_null_num col23,
                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(p_scenario_id, -1, 1, NVL((MRHM.allocation_percent/100), 1)) col24,
                --bug 4156016
	        /*		NVL(MSC_AATP_FUNC.Get_DC_Alloc_Percent(
                                                     p_instance_id,
                                                     null,
                                                     p_organization_id,
                                                     p_department_id,
                                                     p_resource_id,
                                                     l_demand_class,
                                                     SHIFT_DATE),1)) col24, */
                MNRA.SHIFT_DATE col25,
                l_null_num col26,
                l_null_char col27,
                l_null_num col28,
		l_null_num col29,
		-- ship_rec_cal changes begin
		l_sysdate,
		G_USER_ID,
		l_sysdate,
		G_USER_ID,
		G_USER_ID,
		-- ship_rec_cal changes end
		-- Unallocated_Quantity
                MNRA.CAPACITY_UNITS  * ((DECODE(LEAST(MNRA.from_time, MNRA.to_time),
                       MNRA.to_time,MNRA.to_time + 24*3600,
                       MNRA.to_time) - MNRA.from_time)/3600)
          FROM    MSC_NET_RESOURCE_AVAIL MNRA,
                  msc_resource_hierarchy_mv MRHM
          WHERE   MNRA.PLAN_ID = p_plan_id
          AND     NVL(MNRA.PARENT_ID, -2) <> -1
          AND     MNRA.SR_INSTANCE_ID = p_instance_id
          AND     MNRA.RESOURCE_ID = p_resource_id
          AND     MNRA.DEPARTMENT_ID = p_department_id
          --bug 2341075
          --AND     SHIFT_DATE >= trunc(sysdate)
          --bug 4232627: select only those records which are after plan start date
          AND     MNRA.SHIFT_DATE >= l_plan_start_date
          --bug 4156016
          AND     MNRA.organization_id = p_organization_id
          AND     MRHM.department_id (+) = MNRA.department_id
          AND     MRHM.resource_id  (+)= MNRA.resource_id
          AND     MRHM.organization_id (+) = MNRA.organization_id
          AND     MRHM.sr_instance_id  (+)= MNRA.sr_instance_id
          --AND     MRHM.level_id (+) = -1 --4365873
          AND     decode(MRHM.level_id (+),-1,1,2) = decode(G_HIERARCHY_PROFILE,1,1,2)
          --bug 4232627:
          AND     trunc(MNRA.shift_date) >=  trunc(MRHM.effective_date (+))
          AND     trunc(MNRA.shift_date) <=  trunc(MRHM.disable_date (+))
          AND     MRHM.demand_class (+) = l_demand_class
	)
	; -- dsting removed order by col25;
Line: 7839

	 INSERT INTO msc_atp_sd_details_temp (
		ATP_Level,
		Order_line_id,
		Scenario_Id,
		Inventory_Item_Id,
		Request_Item_Id,
		Organization_Id,
		Department_Id,
		Resource_Id,
		Supplier_Id,
		Supplier_Site_Id,
		From_Organization_Id,
		From_Location_Id,
		To_Organization_Id,
		To_Location_Id,
		Ship_Method,
		UOM_code,
		Supply_Demand_Type,
		Supply_Demand_Source_Type,
		Supply_Demand_Source_Type_Name,
		Identifier1,
		Identifier2,
		Identifier3,
		Identifier4,
		Supply_Demand_Quantity,
		Supply_Demand_Date,
		Disposition_Type,
		Disposition_Name,
		Pegging_Id,
		End_Pegging_Id,
		creation_date,
		created_by,
		last_update_date,
		last_updated_by,
		last_update_login,
		Unallocated_Quantity
	)
    	(SELECT
		p_level col1,
		p_identifier col2,
                p_scenario_id col3,
                l_null_num col4 ,
                l_null_num col5,
		p_organization_id col6,
                p_department_id col7,
                p_resource_id col8,
                l_null_num col9,
                l_null_num col10,
                l_null_num col11,
                l_null_num col12,
                l_null_num col13,
                l_null_num col14,
		l_null_char col15,
		l_uom_code col16,
		1 col17, -- demand
		S.ORDER_TYPE col18,
                l_null_char col19,
		REQ.SR_INSTANCE_ID col20,
                l_null_num col21,
		REQ.TRANSACTION_ID col22,
		l_null_num col23,
                -1* DECODE(REQ.RESOURCE_ID, -1, REQ.LOAD_RATE,
                       DECODE(REQ.END_DATE, NULL, REQ.RESOURCE_HOURS,
                          -- Bug 3348095
                          DECODE(REQ.record_source, 2, REQ.RESOURCE_HOURS,
                                   REQ.DAILY_RESOURCE_HOURS))) *
                          -- For ATP created records use resource_hours
                          -- End Bug 3348095
                        /*New*/
                DECODE(p_scenario_id, -1, 1,
                       DECODE(DECODE(G_HIERARCHY_PROFILE,
                              --2424357
                              1, DECODE(S.DEMAND_CLASS, null, null,
                                    DECODE(l_demand_class, '-1',
                                       MSC_AATP_FUNC.Get_RES_Hierarchy_Demand_Class(
                                                  null,
                                                  null,
                                                  p_department_id,
                                                  p_resource_id,
                                                  p_organization_id,
                                                  p_instance_id,
                                                  c.calendar_date,
                                                  l_level_id,
                                                  S.DEMAND_CLASS), S.DEMAND_CLASS)),
                              2, DECODE(S.CUSTOMER_ID, NULL, TO_CHAR(NULL),
                                        0, TO_CHAR(NULL),
                                                MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                  S.CUSTOMER_ID,
                                                  S.SHIP_TO_SITE_ID,
                                                  s.inventory_item_id,
                                                  p_organization_id,
                                                  p_instance_id,
                                                  c.calendar_date,
                                                  l_level_id,
                                                  NULL))),
                       l_demand_class, 1,
                       --bug 4156016: If l_demand_class is not null and demand class is populated
                       -- on  supplies record then 0 should be allocated.
                       Decode (S.Demand_Class, NULL,
                       MSC_AATP_FUNC.Get_Res_Demand_Alloc_Percent(C.CALENDAR_DATE,
                         REQ.ASSEMBLY_ITEM_ID,
                         p_organization_id,
                         p_instance_id,
                         p_department_id,
                         p_resource_id,
                         DECODE(G_HIERARCHY_PROFILE,
                                --2424357
                                1, DECODE(S.DEMAND_CLASS, null, null,
                                     DECODE(l_demand_class, '-1',
                                         MSC_AATP_FUNC.Get_RES_Hierarchy_Demand_Class(
                                                  null,
                                                  null,
                                                  p_department_id,
                                                  p_resource_id,
                                                  p_organization_id,
                                                  p_instance_id,
                                                  c.calendar_date,
                                                  l_level_id,
                                                  S.DEMAND_CLASS), S.DEMAND_CLASS)),
                                2, DECODE(S.CUSTOMER_ID, NULL, l_demand_class,
                                          0, l_demand_class,
                                                MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                  S.CUSTOMER_ID,
                                                  S.SHIP_TO_SITE_ID,
                                                  l_inv_item_id,
                                                  p_organization_id,
                                                  p_instance_id,
                                                  c.calendar_date,
                                                  l_level_id,
                                                  NULL))),
                         l_demand_class), 0))) col24,
                        /*New*/
		GREATEST(C.CALENDAR_DATE,l_sys_next_date) col25, --bug3333114
                l_null_num col26,
		-- Bug 2771075. For Planned Orders, we will populate transaction_id
		-- in the disposition_name column to be consistent with Planning.
		-- S.ORDER_NUMBER col27,
		DECODE(S.ORDER_TYPE, 5, to_char(S.TRANSACTION_ID), S.ORDER_NUMBER) col27,
                l_null_num col28,
                l_null_num col29,
		-- ship_rec_cal changes begin
		l_sysdate,
		G_USER_ID,
		l_sysdate,
		G_USER_ID,
		G_USER_ID,
		-- ship_rec_cal changes end
		-- Unallocated_Quantity
                -1* DECODE(REQ.RESOURCE_ID, -1, REQ.LOAD_RATE,
                       DECODE(REQ.END_DATE, NULL, REQ.RESOURCE_HOURS,
                          -- Bug 3348095
                          DECODE(REQ.record_source, 2, REQ.RESOURCE_HOURS,
                                   REQ.DAILY_RESOURCE_HOURS)))
                          -- For ATP created records use resource_hours
                          -- End Bug 3348095
         FROM   MSC_DEPARTMENT_RESOURCES DR,
                MSC_SUPPLIES S,
                MSC_SYSTEM_ITEMS I, -- CTO ODR
                MSC_RESOURCE_REQUIREMENTS REQ,
                MSC_CALENDAR_DATES C
         WHERE  DR.PLAN_ID = p_plan_id
         AND    NVL(DR.OWNING_DEPARTMENT_ID, DR.DEPARTMENT_ID)=p_department_id
         AND    DR.RESOURCE_ID = p_resource_id
         AND    DR.SR_INSTANCE_ID = p_instance_id
         AND    DR.ORGANIZATION_ID = p_organization_id -- for performance
         AND    REQ.PLAN_ID = DR.PLAN_ID
         AND    REQ.SR_INSTANCE_ID = DR.SR_INSTANCE_ID
         AND    REQ.RESOURCE_ID = DR.RESOURCE_ID
         AND    REQ.DEPARTMENT_ID = DR.DEPARTMENT_ID
         AND    NVL(REQ.PARENT_ID, l_optimized_plan) = l_optimized_plan
         -- CTO Option Dependent Resources ODR
         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
         AND     ((I.bom_item_type <> 1 and I.bom_item_type <> 2)
               -- bom_item_type not model and option_class always committed.
                    AND   (I.atp_flag <> 'N')
               -- atp_flag is 'Y' then committed.
                    OR    (REQ.record_source = 2) ) -- this OR may be changed during performance analysis.
              -- if record created by ATP then committed.
         -- End CTO Option Dependent Resources
         AND    S.PLAN_ID = DR.PLAN_ID
         AND    S.TRANSACTION_ID = REQ.SUPPLY_ID
         AND    S.SR_INSTANCE_ID = REQ.SR_INSTANCE_ID --bug3948494
                -- Exclude Cancelled Supplies 2460645
         AND     NVL(S.DISPOSITION_STATUS_TYPE, 1) <> 2 -- Bug 2460645
         AND    C.SR_INSTANCE_ID = DR.SR_INSTANCE_ID
         AND    C.CALENDAR_CODE = l_calendar_code
         AND    C.EXCEPTION_SET_ID = l_calendar_exception_set_id
                -- Bug 3348095
                -- Ensure that the ATP created resource Reqs
                -- do not get double counted.
         AND     C.CALENDAR_DATE BETWEEN DECODE(REQ.record_source, 2,
                          TRUNC(NVL(REQ.END_DATE, REQ.START_DATE)), TRUNC(REQ.START_DATE))
                   AND TRUNC(NVL(REQ.END_DATE, REQ.START_DATE))
                -- End Bug 3348095
         AND    C.SEQ_NUM IS NOT NULL
         ---bug 2341075
         --AND    C.CALENDAR_DATE >= trunc(sysdate)
         AND    C.CALENDAR_DATE >= l_plan_start_date
         UNION ALL
         SELECT p_level col1,
                p_identifier col2,
                p_scenario_id col3,
                l_null_num col4 ,
                l_null_num col5,
                p_organization_id col6,
                p_department_id col7,
                p_resource_id col8,
                l_null_num col9,
                l_null_num col10,
                l_null_num col11,
                l_null_num col12,
                l_null_num col13,
                l_null_num col14,
                l_null_char col15,
                l_uom_code col16,
                2 col17, -- supply
                l_null_num col18,
                l_null_char col19,
                MNRA.SR_INSTANCE_ID col20,
                l_null_num col21,
                MNRA.TRANSACTION_ID col22,
                l_null_num col23,
                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(p_scenario_id, -1, 1, NVL((MRHM.allocation_percent/100), 1)) col24,
                --bug 4156016
	        /*		NVL(MSC_AATP_FUNC.Get_DC_Alloc_Percent(
                                                     p_instance_id,
                                                     null,
                                                     p_organization_id,
                                                     p_department_id,
                                                     p_resource_id,
                                                     l_demand_class,
                                                     SHIFT_DATE),1)) col24, */
                MNRA.SHIFT_DATE col25,
                l_null_num col26,
                l_null_char col27,
                l_null_num col28,
		l_null_num col29,
		-- ship_rec_cal changes begin
		l_sysdate,
		G_USER_ID,
		l_sysdate,
		G_USER_ID,
		G_USER_ID,
		-- ship_rec_cal changes end
		-- Unallocated_Quantity
                MNRA.CAPACITY_UNITS  * ((DECODE(LEAST(MNRA.from_time, MNRA.to_time),
                       MNRA.to_time,MNRA.to_time + 24*3600,
                       MNRA.to_time) - MNRA.from_time)/3600)
          FROM    MSC_NET_RESOURCE_AVAIL MNRA,
                  msc_resource_hierarchy_mv MRHM
          WHERE   MNRA.PLAN_ID = p_plan_id
          AND     NVL(MNRA.PARENT_ID, -2) <> -1
          AND     MNRA.SR_INSTANCE_ID = p_instance_id
          AND     MNRA.RESOURCE_ID = p_resource_id
          AND     MNRA.DEPARTMENT_ID = p_department_id
          --bug 2341075
          --AND     SHIFT_DATE >= trunc(sysdate)
          --bug 4232627: select only those records which are after plan start date
          AND     MNRA.SHIFT_DATE >= l_plan_start_date --bug#12872862
          --bug 4156016
          AND     MNRA.organization_id = p_organization_id
          AND     MRHM.department_id (+) = MNRA.department_id
          AND     MRHM.resource_id  (+)= MNRA.resource_id
          AND     MRHM.organization_id (+) = MNRA.organization_id
          AND     MRHM.sr_instance_id  (+)= MNRA.sr_instance_id
          --AND     MRHM.level_id (+) = -1 --4365873
          AND     decode(MRHM.level_id (+),-1,1,2) = decode(G_HIERARCHY_PROFILE,1,1,2)
          --bug 4232627:
          AND     trunc(MNRA.shift_date) >=  trunc(MRHM.effective_date (+))
          AND     trunc(MNRA.shift_date) <=  trunc(MRHM.disable_date (+))
          AND     MRHM.demand_class (+) = l_demand_class
	)
	; -- dsting removed order by col25;
Line: 8124

         msc_sch_wb.atp_debug('Res_Alloc_Cum_Atp: ' || 'after insert into msc_atp_sd_details_temp');
Line: 8291

        IF (NVL(p_insert_flag, 0) <>0)
           AND (l_demand_class_tab(i) = p_demand_class) THEN
            l_temp_atp := l_current_atp;
Line: 8382

        IF (NVL(p_insert_flag, 0) <>0) AND
           (l_demand_class_tab(i) = p_demand_class) THEN

          FOR j in 1..l_current_atp.atp_qty.COUNT LOOP

            IF l_current_atp.atp_qty(j) < l_temp_atp.atp_qty(j) THEN
              -- this is the stealing quantity in that period
              -- bug 1413459: the stealing quantity should be the current
              -- period quantity (after backward consumption, after stealing)
              -- minus the period quantity after backward consumption but
              -- before the stealing
              l_steal_period_quantity := l_current_atp.atp_qty(j) -
                                         l_temp_atp.atp_qty(j);
Line: 8428

        END IF;  -- IF (NVL(p_insert_flag, 0) <>0) .....
Line: 8578

      IF NVL(p_insert_flag, 0) <> 0 THEN
        -- add one more entry to indicate infinite time fence date
        -- and quantity.

        x_atp_period.Cumulative_Quantity := x_atp_info.atp_qty;
Line: 8765

    msc_sch_wb.atp_debug('Supplier_Alloc_Cum_Atp: ' || 'before select the high priority demand class');
Line: 8776

    SELECT demand_class, priority
    BULK COLLECT INTO l_demand_class_tab, l_demand_class_priority_tab
    FROM   msc_item_hierarchy_mv
    --WHERE  inventory_item_id = p_sup_atp_info_rec.inventory_item_id
    WHERE  inventory_item_id = l_inv_item_id
    AND    organization_id = p_sup_atp_info_rec.organization_id -- Ship To org
    AND    sr_instance_id = l_instance_id
    AND    p_request_date BETWEEN effective_date AND disable_date
    AND    priority  <= l_priority   -- 1665110, add '='
    AND    level_id = l_level_id
    ORDER BY priority asc, allocation_percent desc ;
Line: 8793

    SELECT demand_class, priority
    BULK COLLECT INTO l_demand_class_tab, l_demand_class_priority_tab
    FROM   msc_item_hierarchy_mv
    --WHERE  inventory_item_id = p_sup_atp_info_rec.inventory_item_id
    WHERE  inventory_item_id = l_inv_item_id
    AND    organization_id = p_sup_atp_info_rec.organization_id
    AND    sr_instance_id = l_instance_id
    AND    p_request_date BETWEEN effective_date AND disable_date
    AND    priority  <= l_priority   -- 1665110, add '='
    AND    level_id = l_level_id
    ORDER BY priority asc, class;
Line: 8811

    SELECT mv1.demand_class, mv1.priority, mv1.class, mv1.partner_id
    BULK COLLECT INTO l_demand_class_tab, l_demand_class_priority_tab,
                      l_class_tab, l_partner_tab
    FROM   msc_item_hierarchy_mv mv1
    --WHERE  mv1.inventory_item_id = p_sup_atp_info_rec.inventory_item_id
    WHERE  inventory_item_id = l_inv_item_id
    AND    mv1.organization_id = p_sup_atp_info_rec.organization_id
    AND    mv1.sr_instance_id = l_instance_id
    AND    p_request_date BETWEEN mv1.effective_date AND mv1.disable_date
    --AND    mv1.priority  <= l_priority   -- 1665110, add '='
    AND    mv1.level_id = l_level_id
    AND trunc(mv1.priority, -3) <= trunc(l_priority, -3)
      ORDER BY trunc(mv1.priority, -3), mv1.class ,
               trunc(mv1.priority, -2), mv1.partner_id;
Line: 8835

    SELECT mv1.demand_class, mv1.priority, mv1.class, mv1.partner_id
    BULK COLLECT INTO l_demand_class_tab, l_demand_class_priority_tab,
                      l_class_tab, l_partner_tab
    FROM   msc_item_hierarchy_mv mv1
    --WHERE  mv1.inventory_item_id = p_sup_atp_info_rec.inventory_item_id
    WHERE  mv1.inventory_item_id = l_inv_item_id
    AND    mv1.organization_id = p_sup_atp_info_rec.organization_id
    AND    mv1.sr_instance_id = l_instance_id
    AND    p_request_date BETWEEN mv1.effective_date AND mv1.disable_date
    --AND    mv1.priority  <= l_priority   -- 1665110, add '='
    AND    mv1.level_id = l_level_id
    AND trunc(mv1.priority, -3) <= trunc(l_priority, -3)
      ORDER BY trunc(mv1.priority, -3), mv1.class ,
               trunc(mv1.priority, -2), mv1.partner_id,
               mv1.priority, mv1.partner_site_id;
Line: 8897

  SELECT uom_code, postprocessing_lead_time
  INTO   l_uom_code, l_postprocessing_lead_time
  FROM   msc_system_items
  WHERE  plan_id = p_sup_atp_info_rec.plan_id
  AND    sr_instance_id = p_sup_atp_info_rec.instance_id
  AND    organization_id = p_sup_atp_info_rec.organization_id
  --AND    inventory_item_id = p_sup_atp_info_rec.inventory_item_id;
Line: 8925

        SELECT  tp.calendar_code
        INTO    l_calendar_code
        FROM    msc_trading_partners tp,
                msc_plans mp
        WHERE   mp.plan_id = p_sup_atp_info_rec.plan_id
        AND     tp.sr_instance_id  = mp.sr_instance_id
        AND     tp.partner_type    = 3
        AND     tp.sr_tp_id        = mp.organization_id;
Line: 8984

    IF (NVL(p_sup_atp_info_rec.insert_flag, 0) = 0  OR l_demand_class <> p_sup_atp_info_rec.demand_class) THEN
      IF l_check_cap_model_flag = 1 THEN

          -- we don't want details
         SELECT 	trunc(l_date), --4135752
      		   SUM(quantity)
         BULK COLLECT INTO
               	   l_current_atp.atp_period,
               	   l_current_atp.atp_qty
         FROM (
         SELECT GREATEST(cs.calendar_date,l_sys_next_date) l_date, --bug3333114
	        cs.capacity*(1+NVL(MSC_ATP_FUNC.get_tolerance_percentage(
                                      p_sup_atp_info_rec.instance_id, p_sup_atp_info_rec.plan_id,
                                      l_inv_item_id, p_sup_atp_info_rec.organization_id,
                                      p_sup_atp_info_rec.supplier_id, p_sup_atp_info_rec.supplier_site_id,
                                      cs.seq_num - p_sup_atp_info_rec.sysdate_seq_num),0))*
		   /*NVL(MSC_AATP_FUNC.Get_DC_Alloc_Percent(l_instance_id,
                                            s.inventory_item_id,
                                            p_sup_atp_info_rec.organization_id,
                                            null,
                                            null,
                                            l_demand_class,
                                            c.calendar_date), 1) quantity*/
                   NVL(MIHM.allocation_percent/100, 1) quantity --4365873
	FROM
      (
      SELECT
      	    c.calendar_date,
      	    c.seq_num,
	    s.inventory_item_id,
	    s.sr_instance_id,
	    S.ORGANIZATION_ID,
	    S.capacity
         FROM   msc_calendar_dates c,
                msc_supplier_capacities s
         --WHERE  s.inventory_item_id = p_sup_atp_info_rec.inventory_item_id
         WHERE  s.inventory_item_id = l_inv_item_id
         AND    s.sr_instance_id = p_sup_atp_info_rec.instance_id
         AND    s.plan_id = p_sup_atp_info_rec.plan_id
         AND    s.organization_id = p_sup_atp_info_rec.organization_id
         AND    s.supplier_id = p_sup_atp_info_rec.supplier_id
         AND    NVL(s.supplier_site_id, -1) = NVL(p_sup_atp_info_rec.supplier_site_id, -1)
         AND    c.calendar_date BETWEEN trunc(s.from_date)
                                --AND NVL(s.to_date,l_cutoff_date)
                                AND trunc(NVL(s.to_date,least(p_sup_atp_info_rec.last_cap_date,l_cutoff_date))) --4055719
         AND    (c.seq_num IS NOT NULL or p_sup_atp_info_rec.manufacturing_cal_code = '@@@')
         AND    c.calendar_code = l_calendar_code
         AND    c.exception_set_id = l_calendar_exception_set_id
         AND    c.sr_instance_id = l_instance_id
         AND    c.calendar_date >= NVL(p_sup_atp_info_rec.sup_cap_cum_date, l_plan_start_date))CS,
      msc_item_hierarchy_mv mihm
      WHERE
      --4365873
      	     CS.INVENTORY_ITEM_ID = MIHM.INVENTORY_ITEM_ID(+)
      AND    CS.SR_INSTANCE_ID = MIHM.SR_INSTANCE_ID (+)
      AND    CS.ORGANIZATION_ID = MIHM.ORGANIZATION_ID (+)
      AND    decode(MIHM.level_id (+),-1,1,2) = decode(G_HIERARCHY_PROFILE,1,1,2)
      AND    CS.calendar_date >= MIHM.effective_date (+)
      AND    CS.calendar_date <= MIHM.disable_date (+)
      AND    MIHM.demand_class (+) = l_demand_class
         -- Supplier Capacity (SCLT) Accumulation starts from this date.
         -- AND    c.calendar_date >= l_plan_start_date -- bug 1169467
         UNION ALL
         SELECT GREATEST(trunc(Decode(p_sup_atp_info_rec.sup_cap_type,  --4135752
                                1, p.new_ship_date,
                                p.new_dock_date)),l_sys_next_date) l_date, -- For ship_rec_cal --bug3333114
                (-1)*(p.new_order_quantity - NVL(p.implement_quantity,0))*
		   DECODE(DECODE(G_HIERARCHY_PROFILE,
                                 --2424357
                                 1, DECODE(p.DEMAND_CLASS, null, null,
                                       DECODE(l_demand_class, '-1',
                                           MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                     null,
                                                     null,
                                                     p.inventory_item_id,
                                                     p.organization_id,
                                                     p.sr_instance_id,
                                                     trunc(Decode(p_sup_atp_info_rec.sup_cap_type,
                                                          1, p.new_ship_date,
                                                          p.new_dock_date
                                                     )), --4135752
                                                     l_level_id,
                                                     p.DEMAND_CLASS), p.DEMAND_CLASS)),
                                 2, DECODE(p.CUSTOMER_ID, NULL, TO_CHAR(NULL),
                                           0, TO_CHAR(NULL),
                                                   MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                     p.CUSTOMER_ID,
                                                     p.SHIP_TO_SITE_ID,
                                                     p.inventory_item_id,
                                                     p.organization_id,
                                                     p.sr_instance_id,
                                                     trunc(Decode(p_sup_atp_info_rec.sup_cap_type,
                                                          1, p.new_ship_date,
                                                          p.new_dock_date
                                                     )), --4135752
                                                     l_level_id,
                                                     NULL))),
		           l_demand_class, 1,
			   NULL, NVL(MIHM.allocation_percent/100,  --4365873
			   /*NVL(MSC_AATP_FUNC.Get_DC_Alloc_Percent(p.sr_instance_id,
                                                          p.inventory_item_id ,
				                          p.organization_id,
                                                          null,
                                                          null,
				                          l_demand_class,
                                                          trunc(Decode(p_sup_atp_info_rec.sup_cap_type,
                                                                        1, p.new_ship_date,
                                                                        p.new_dock_date
                                                          ))),*/
                                                           1), --4135752
                           DECODE(MIHM.allocation_percent/100,
                           /*DECODE(MSC_AATP_FUNC.Get_DC_Alloc_Percent(p.sr_instance_id,
                                                       p.inventory_item_id,
                                                       p.organization_id,
                                                       null,
                                                       null,
                                                       l_demand_class,
                                                       trunc(Decode(p_sup_atp_info_rec.sup_cap_type,  --4135752
                                                          1, p.new_ship_date,
                                                          p.new_dock_date
                                                       ))),*/
				   NULL, 1,
				   0)) quantity
         -- Supplier Capacity (SCLT) Changes Begin
         FROM   msc_supplies p,msc_item_hierarchy_mv MIHM
         WHERE  (p.order_type IN (5, 2)
                OR (MSC_ATP_REQ.G_PURCHASE_ORDER_PREFERENCE = trunc(MSC_ATP_REQ.G_PROMISE_DATE) --4135752
                     AND p.order_type = 1 AND p.promised_date IS NULL))
         -- Supplier Capacity (SCLT) Accumulation Ignore Purchase Orders
         -- WHERE  p.order_type IN (5, 1, 2)
         AND    p.plan_id = p_sup_atp_info_rec.plan_id
         AND    p.sr_instance_id = p_sup_atp_info_rec.instance_id
         --AND    p.inventory_item_id = p_sup_atp_info_rec.inventory_item_id
   -- 1214694      AND    p.organization_id = p_sup_atp_info_rec.organization_id
         AND    p.supplier_id  = p_sup_atp_info_rec.supplier_id
         AND    NVL(p.supplier_site_id, -1) = NVL(p_sup_atp_info_rec.supplier_site_id, -1)
                -- Exclude Cancelled Supplies 2460645
         AND    NVL(P.DISPOSITION_STATUS_TYPE, 1) <> 2 -- Bug 2460645
                 --consider ATP inserted PO only and palling PO will be tied to forecats
         AND    ((p.inventory_item_id = l_inv_item_id and p.record_source=2) OR
                    p.inventory_item_id in
                           (select inventory_item_id from msc_system_items msi
                            where  msi.base_item_id = l_inv_item_id
                            and    msi.plan_id = p_sup_atp_info_rec.plan_id
                            and    msi.organization_id = p_sup_atp_info_rec.organization_id
                            and    msi.base_item_id = l_inv_item_id))
         AND    trunc(Decode(p_sup_atp_info_rec.sup_cap_type, 1, p.new_ship_date,p.new_dock_date)) --4055719 --4135752
                      <= trunc(least(p_sup_atp_info_rec.last_cap_date,l_cutoff_date))                    --4135752
         -- Supplier Capacity (SCLT) Changes End
      --4365873
      AND    p.INVENTORY_ITEM_ID = MIHM.INVENTORY_ITEM_ID(+)
      AND    p.SR_INSTANCE_ID = MIHM.SR_INSTANCE_ID (+)
      AND    p.ORGANIZATION_ID = MIHM.ORGANIZATION_ID (+)
      AND    decode(MIHM.level_id (+),-1,1,2) = decode(G_HIERARCHY_PROFILE,1,1,2)
      AND    trunc(Decode(p_sup_atp_info_rec.sup_cap_type, 1, p.new_ship_date,p.new_dock_date)) >= MIHM.effective_date (+)
      AND    trunc(Decode(p_sup_atp_info_rec.sup_cap_type, 1, p.new_ship_date,p.new_dock_date)) <= MIHM.disable_date (+)
      AND    MIHM.demand_class (+) = l_demand_class
         )
         GROUP BY l_date
         ORDER BY l_DATE;--4698199
Line: 9148

         SELECT 	trunc(l_date), --4135752
      		   SUM(quantity)
         BULK COLLECT INTO
               	   l_current_atp.atp_period,
               	   l_current_atp.atp_qty
         FROM (
         SELECT GREATEST(cs.calendar_date,l_sys_next_date) l_date, --bug3333114
	        cs.capacity*(1+NVL(MSC_ATP_FUNC.get_tolerance_percentage(
                                      p_sup_atp_info_rec.instance_id, p_sup_atp_info_rec.plan_id,
                                      p_sup_atp_info_rec.inventory_item_id, p_sup_atp_info_rec.organization_id,
                                      p_sup_atp_info_rec.supplier_id, p_sup_atp_info_rec.supplier_site_id,
                                      cs.seq_num - p_sup_atp_info_rec.sysdate_seq_num),0))*
		   /*NVL(MSC_AATP_FUNC.Get_DC_Alloc_Percent(l_instance_id,
                                            s.inventory_item_id,
                                            p_sup_atp_info_rec.organization_id,
                                            null,
                                            null,
                                            l_demand_class,
                                            c.calendar_date), 1) quantity*/
                    NVL(MIHM.allocation_percent/100, 1) quantity --4365873
         FROM
      (
      SELECT
      	    c.calendar_date,
      	    c.seq_num,
	    s.inventory_item_id,
	    s.sr_instance_id,
	    S.ORGANIZATION_ID,
	    S.capacity
         FROM   msc_calendar_dates c,
                msc_supplier_capacities s
         WHERE  s.inventory_item_id = p_sup_atp_info_rec.inventory_item_id
         AND    s.sr_instance_id = p_sup_atp_info_rec.instance_id
         AND    s.plan_id = p_sup_atp_info_rec.plan_id
         AND    s.organization_id = p_sup_atp_info_rec.organization_id
         AND    s.supplier_id = p_sup_atp_info_rec.supplier_id
         AND    NVL(s.supplier_site_id, -1) = NVL(p_sup_atp_info_rec.supplier_site_id, -1)
         AND    c.calendar_date BETWEEN trunc(s.from_date)
                                --AND NVL(s.to_date,l_cutoff_date)
                                AND trunc(NVL(s.to_date,least(p_sup_atp_info_rec.last_cap_date,l_cutoff_date))) --4055719
         AND    (c.seq_num IS NOT NULL or p_sup_atp_info_rec.manufacturing_cal_code = '@@@')
         AND    c.calendar_code = l_calendar_code
         AND    c.exception_set_id = l_calendar_exception_set_id
         AND    c.sr_instance_id = l_instance_id
         AND    c.calendar_date >= NVL(p_sup_atp_info_rec.sup_cap_cum_date, l_plan_start_date))CS,
      msc_item_hierarchy_mv mihm
      WHERE
      --4365873
      	     CS.INVENTORY_ITEM_ID = MIHM.INVENTORY_ITEM_ID(+)
      AND    CS.SR_INSTANCE_ID = MIHM.SR_INSTANCE_ID (+)
      AND    CS.ORGANIZATION_ID = MIHM.ORGANIZATION_ID (+)
      AND    decode(MIHM.level_id (+),-1,1,2) = decode(G_HIERARCHY_PROFILE,1,1,2)
      AND    CS.calendar_date >= MIHM.effective_date (+)
      AND    CS.calendar_date <= MIHM.disable_date (+)
      AND    MIHM.demand_class (+) = l_demand_class
         -- Supplier Capacity (SCLT) Accumulation starts from this date.
         -- AND    c.calendar_date >= l_plan_start_date -- bug 1169467
         UNION ALL
         SELECT GREATEST(trunc(Decode(p_sup_atp_info_rec.sup_cap_type,  --4135752
                   1, p.new_ship_date,
                   p.new_dock_date
                )),l_sys_next_date) l_date, --bug3333114
                -- ship_rec_cal rearrange signs to get rid of multiply times -1
                (NVL(p.implement_quantity,0) - p.new_order_quantity)*
		   DECODE(DECODE(G_HIERARCHY_PROFILE,
                                 --2424357
                                 1, DECODE(p.DEMAND_CLASS, null, null,
                                       DECODE(l_demand_class, '-1',
                                           MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                     null,
                                                     null,
                                                     p.inventory_item_id,
                                                     p.organization_id,
                                                     p.sr_instance_id,
                                                     trunc(Decode(p_sup_atp_info_rec.sup_cap_type,  --4135752
                                                           1, p.new_ship_date,
                                                           p.new_dock_date
                                                     )),
                                                     l_level_id,
                                                     p.DEMAND_CLASS), p.DEMAND_CLASS)),
                                 2, DECODE(p.CUSTOMER_ID, NULL, TO_CHAR(NULL),
                                           0, TO_CHAR(NULL),
                                                   MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                     p.CUSTOMER_ID,
                                                     p.SHIP_TO_SITE_ID,
                                                     p.inventory_item_id,
                                                     p.organization_id,
                                                     p.sr_instance_id,
                                                     trunc(Decode(p_sup_atp_info_rec.sup_cap_type,  --4135752
                                                           1, p.new_ship_date,
                                                           p.new_dock_date
                                                     )),
                                                     l_level_id,
                                                     NULL))),
		           l_demand_class, 1,
			   NULL, NVL(MIHM.allocation_percent/100,  --4365874
			   /*NVL(MSC_AATP_FUNC.Get_DC_Alloc_Percent(p.sr_instance_id,
                                                          p.inventory_item_id ,
				                          p.organization_id,
                                                          null,
                                                          null,
				                          l_demand_class,
                                                          trunc(Decode(p_sup_atp_info_rec.sup_cap_type,  --4135752
                                                             1, p.new_ship_date,
                                                             p.new_dock_date
                                                          ))),*/
                                                           1), --4135752
                           DECODE(MIHM.allocation_percent/100,
			   /*DECODE(MSC_AATP_FUNC.Get_DC_Alloc_Percent(p.sr_instance_id,
                                                       p.inventory_item_id,
                                                       p.organization_id,
                                                       null,
                                                       null,
                                                       l_demand_class,
                                                       trunc(Decode(p_sup_atp_info_rec.sup_cap_type, --4135752
                                                             1, p.new_ship_date,
                                                             p.new_dock_date
                                                       ))), */
				   NULL, 1,
				   0)) quantity
         -- Supplier Capacity (SCLT) Changes Begin
         FROM   msc_supplies p,msc_item_hierarchy_mv MIHM
         WHERE  (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))
         -- Supplier Capacity (SCLT) Accumulation Ignore Purchase Orders
         -- WHERE  p.order_type IN (5, 1, 2)
         AND    p.plan_id = p_sup_atp_info_rec.plan_id
         AND    p.sr_instance_id = p_sup_atp_info_rec.instance_id
         AND    p.inventory_item_id = p_sup_atp_info_rec.inventory_item_id
   -- 1214694      AND    p.organization_id = p_sup_atp_info_rec.organization_id
         AND    p.supplier_id  = p_sup_atp_info_rec.supplier_id
         AND    NVL(p.supplier_site_id, -1) = NVL(p_sup_atp_info_rec.supplier_site_id, -1)
                -- Exclude Cancelled Supplies 2460645
         AND    NVL(P.DISPOSITION_STATUS_TYPE, 1) <> 2 -- Bug 2460645
         AND    trunc(Decode(p_sup_atp_info_rec.sup_cap_type, 1, p.new_ship_date,p.new_dock_date)) --4055719 --4135752
                       <= least(p_sup_atp_info_rec.last_cap_date,l_cutoff_date)
      --4365873
      AND    p.INVENTORY_ITEM_ID = MIHM.INVENTORY_ITEM_ID(+)
      AND    p.SR_INSTANCE_ID = MIHM.SR_INSTANCE_ID (+)
      AND    p.ORGANIZATION_ID = MIHM.ORGANIZATION_ID (+)
      AND    decode(MIHM.level_id (+),-1,1,2) = decode(G_HIERARCHY_PROFILE,1,1,2)
      AND    trunc(Decode(p_sup_atp_info_rec.sup_cap_type, 1, p.new_ship_date,p.new_dock_date)) >= MIHM.effective_date (+)
      AND    trunc(Decode(p_sup_atp_info_rec.sup_cap_type, 1, p.new_ship_date,p.new_dock_date)) <= MIHM.disable_date (+)
      AND    MIHM.demand_class (+) = l_demand_class
         )
         GROUP BY l_date
         ORDER BY l_DATE;--4698199
Line: 9307

           INSERT INTO msc_atp_sd_details_temp (
           	ATP_Level,
           	Order_line_id,
           	Scenario_Id,
           	Inventory_Item_Id,
           	Request_Item_Id,
	        Organization_Id,
                Department_Id,
	        Resource_Id,
                Supplier_Id,
                Supplier_Site_Id,
	        From_Organization_Id,
	        From_Location_Id,
	        To_Organization_Id,
	        To_Location_Id,
	        Ship_Method,
	        UOM_code,
	        Supply_Demand_Type,
	        Supply_Demand_Source_Type,
	        Supply_Demand_Source_Type_Name,
	        Identifier1,
	        Identifier2,
	        Identifier3,
	        Identifier4,
	        Supply_Demand_Quantity,
	        Supply_Demand_Date,
	        Disposition_Type,
	        Disposition_Name,
	        Pegging_Id,
	        End_Pegging_Id,
	        creation_date,
	        created_by,
	        last_update_date,
	        last_updated_by,
	        last_update_login,
	        Unallocated_Quantity
            )

            (SELECT     p_sup_atp_info_rec.level col1,
		p_identifier col2,
                p_sup_atp_info_rec.scenario_id col3,
                l_null_num col4 ,
                l_null_num col5,
		p_sup_atp_info_rec.organization_id col6,
                l_null_num col7,
                l_null_num col8,
                p_sup_atp_info_rec.supplier_id col9,
                p_sup_atp_info_rec.supplier_site_id col10,
                l_null_num col11,
                l_null_num col12,
                l_null_num col13,
                l_null_num col14,
		l_null_char col15,
		l_uom_code col16,
		2 col17, -- supply
		l_null_num col18,
                l_null_char col19,
		p_sup_atp_info_rec.instance_id col20,
                l_null_num col21,
		l_null_num col22,
		l_null_num col23,
                cs.capacity*(1+NVL(MSC_ATP_FUNC.get_tolerance_percentage(
                                   p_sup_atp_info_rec.instance_id,
                                   p_sup_atp_info_rec.plan_id,
                                   l_inv_item_id,
                                   p_sup_atp_info_rec.organization_id,
                                   p_sup_atp_info_rec.supplier_id,
                                   p_sup_atp_info_rec.supplier_site_id,
                                   cs.seq_num - p_sup_atp_info_rec.sysdate_seq_num),0)) *
                                   NVL(MIHM.allocation_percent/100,  --4365873
                                   /*NVL(MSC_AATP_FUNC.Get_DC_Alloc_Percent(
                                                     l_instance_id,
                                                     s.inventory_item_id,
                                                     p_sup_atp_info_rec.organization_id,
                                                     null,
                                                     null,
                                                     l_demand_class,
                                                     c.calendar_date),*/
                                                      1) col24,
		GREATEST(CS.CALENDAR_DATE,l_sys_next_date) col25, --bug3333114
                l_null_num col26,
                l_null_char col27,
                l_null_num col28,
                l_null_num col29,
		-- ship_rec_cal changes begin
		l_sysdate,
		G_USER_ID,
		l_sysdate,
		G_USER_ID,
		G_USER_ID,
		-- ship_rec_cal changes end
		-- Unallocated_Quantity
                cs.capacity*(1+NVL(MSC_ATP_FUNC.get_tolerance_percentage(
                                   p_sup_atp_info_rec.instance_id,
                                   p_sup_atp_info_rec.plan_id,
                                   l_inv_item_id,
                                   p_sup_atp_info_rec.organization_id,
                                   p_sup_atp_info_rec.supplier_id,
                                   p_sup_atp_info_rec.supplier_site_id,
                                   cs.seq_num - p_sup_atp_info_rec.sysdate_seq_num),0))
         FROM
         (
         SELECT
            s.capacity,
	    c.calendar_date,
	    s.inventory_item_id,
	    s.sr_instance_id,
	    s.organization_id,
	    c.seq_num

                FROM   msc_calendar_dates c,
                       msc_supplier_capacities s
                --WHERE  s.inventory_item_id = p_sup_atp_info_rec.inventory_item_id
                WHERE  s.inventory_item_id = l_inv_item_id
                AND    s.sr_instance_id = p_sup_atp_info_rec.instance_id
                AND    s.plan_id = p_sup_atp_info_rec.plan_id
                AND    s.organization_id = p_sup_atp_info_rec.organization_id
                AND    s.supplier_id = p_sup_atp_info_rec.supplier_id
                AND    NVL(s.supplier_site_id, -1) = NVL(p_sup_atp_info_rec.supplier_site_id, -1)
                AND    c.calendar_date BETWEEN trunc(s.from_date)
                                --AND NVL(s.to_date,l_cutoff_date)
                                AND trunc(NVL(s.to_date,least(p_sup_atp_info_rec.last_cap_date,l_cutoff_date))) --4055719
                AND    (c.seq_num IS NOT NULL or p_sup_atp_info_rec.manufacturing_cal_code = '@@@')
                AND    c.calendar_code = l_calendar_code
                AND    c.exception_set_id = l_calendar_exception_set_id
                AND    c.sr_instance_id = l_instance_id
                AND    c.calendar_date >= NVL(p_sup_atp_info_rec.sup_cap_cum_date, l_plan_start_date))CS,
         msc_item_hierarchy_mv MIHM
         WHERE
         --4365873
                cs.INVENTORY_ITEM_ID = MIHM.INVENTORY_ITEM_ID(+)
      	 AND    cs.SR_INSTANCE_ID = MIHM.SR_INSTANCE_ID (+)
      	 AND    cs.ORGANIZATION_ID = MIHM.ORGANIZATION_ID (+)
      	 --AND    decode(MIHM.level_id,-1,1,2) (+) = (select decode(fnd_profile.value('XXXX'),1,1,2) from dual)
      	 --AND   MIHM.level_id(+)=-1
      	 AND    decode(MIHM.level_id (+),-1,1,2) = decode(G_HIERARCHY_PROFILE,1,1,2)
      	 AND    cs.calendar_date >= MIHM.effective_date (+)
      	 AND    cs.calendar_date <= MIHM.disable_date (+)
      	 AND    MIHM.demand_class (+) = l_demand_class
                -- Supplier Capacity (SCLT) Accumulation starts from this date.
                -- AND    c.calendar_date >= l_plan_start_date -- bug 1169467
                UNION ALL
                SELECT p_sup_atp_info_rec.level col1,
                p_identifier col2,
                p_sup_atp_info_rec.scenario_id col3,
                l_null_num col4 ,
                l_null_num col5,
                p_sup_atp_info_rec.organization_id col6,
                l_null_num col7,
                l_null_num col8,
                p_sup_atp_info_rec.supplier_id col9,
                p_sup_atp_info_rec.supplier_site_id col10,
                l_null_num col11,
                l_null_num col12,
                l_null_num col13,
                l_null_num col14,
                l_null_char col15,
                l_uom_code col16,
                1 col17, -- demand
                p.order_type col18,
                l_null_char col19,
                p_sup_atp_info_rec.instance_id col20,
                l_null_num col21,
                p.TRANSACTION_ID col22,
                l_null_num col23,
                -- ship_rec_cal rearrange signs to get rid of multiply times -1
                (NVL(p.implement_quantity,0) - p.new_order_quantity)*
                DECODE(DECODE(G_HIERARCHY_PROFILE,
                              --2424357
                              1, DECODE(p.DEMAND_CLASS, null, null,
                                    DECODE(l_demand_class, '-1',
                                        MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                  null,
                                                  null,
                                                  p.inventory_item_id,
                                                  p.organization_id,
                                                  p.sr_instance_id,
                                                  trunc(Decode(p_sup_atp_info_rec.sup_cap_type, --4135752
                                                     1, p.new_ship_date,
                                                     p.new_dock_date
                                                  )),
                                                  l_level_id,
                                                   p.DEMAND_CLASS), p.DEMAND_CLASS)),
                              2, DECODE(p.CUSTOMER_ID, NULL, TO_CHAR(NULL),
                                        0, TO_CHAR(NULL),
                                                MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                  p.CUSTOMER_ID,
                                                  p.SHIP_TO_SITE_ID,
                                                  p.inventory_item_id,
                                                  p.organization_id,
                                                  p.sr_instance_id,
                                                  trunc(Decode(p_sup_atp_info_rec.sup_cap_type, --4135752
                                                     1, p.new_ship_date,
                                                     p.new_dock_date
                                                  )),
                                                  l_level_id,
                                                  NULL))),
                        l_demand_class, 1,
                        NULL, NVL(MIHM.allocation_percent/100,  --4365873
                        /*NVL(MSC_AATP_FUNC.Get_DC_Alloc_Percent(p.sr_instance_id,
                                                       p.inventory_item_id ,
                                                       p.organization_id,
                                                       null,
                                                       null,
                                                       l_demand_class,
                                                       trunc(Decode(p_sup_atp_info_rec.sup_cap_type, --4135752
                                                          1, p.new_ship_date,
                                                          p.new_dock_date
                                                       ))),*/
                                                        1),
                        DECODE(MIHM.allocation_percent/100,
                        /*DECODE(MSC_AATP_FUNC.Get_DC_Alloc_Percent(p.sr_instance_id,
                                                    p.inventory_item_id,
                                                    p.organization_id,
                                                    null,
                                                    null,
                                                    l_demand_class,
                                                    trunc(Decode(p_sup_atp_info_rec.sup_cap_type, --4135752
                                                       1, p.new_ship_date,
                                                       p.new_dock_date
                                                    ))),*/
                                NULL, 1,
                                0)) col24,
                GREATEST(trunc(Decode(p_sup_atp_info_rec.sup_cap_type,  --4135752
                   1, p.new_ship_date,
                   p.new_dock_date
                )),l_sys_next_date) col25, --bug3333114
                l_null_num col26,
                -- Bug 2771075. For Planned Orders, we will populate transaction_id
		-- in the disposition_name column to be consistent with Planning.
		-- p.order_number col27,
		DECODE(p.order_type, 5, to_char(p.transaction_id), p.order_number ) col27,
                l_null_num col28,
		l_null_num col29,
		-- ship_rec_cal changes begin
		l_sysdate,
		G_USER_ID,
		l_sysdate,
		G_USER_ID,
		G_USER_ID,
		-- ship_rec_cal changes end
		-- Unallocated_Quantity
                -- ship_rec_cal rearrange signs to get rid of multiply times -1
                (NVL(p.implement_quantity,0) - p.new_order_quantity)
             -- Supplier Capacity (SCLT) Changes Begin
             FROM   msc_supplies p,msc_item_hierarchy_mv MIHM
             WHERE  (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))

             -- Supplier Capacity (SCLT) Accumulation Ignore Purchase Orders
             -- WHERE  p.order_type IN (5, 1, 2)
             AND    p.plan_id = p_sup_atp_info_rec.plan_id
             AND    p.sr_instance_id = p_sup_atp_info_rec.instance_id
             --AND    p.inventory_item_id = p_sup_atp_info_rec.inventory_item_id
       -- 1214694      AND    p.organization_id = p_sup_atp_info_rec.organization_id
             AND    p.supplier_id  = p_sup_atp_info_rec.supplier_id
             AND    NVL(p.supplier_site_id, -1) = NVL(p_sup_atp_info_rec.supplier_site_id, -1)
             -- Exclude Cancelled Supplies 2460645
             AND    NVL(P.DISPOSITION_STATUS_TYPE, 1) <> 2 -- Bug 2460645
                    --consider ATP inserted POs only. Do not use Planning inserted POs as
                    -- theu would be tied to forecast
             AND    ((p.inventory_item_id = l_inv_item_id and p.record_source=2) OR
                    p.inventory_item_id in
                           (select inventory_item_id from msc_system_items msi
                            where  msi.base_item_id = l_inv_item_id
                            and    msi.plan_id = p_sup_atp_info_rec.plan_id
                            and    msi.organization_id = p_sup_atp_info_rec.organization_id
                            and    msi.base_item_id = l_inv_item_id))
             AND    trunc(Decode(p_sup_atp_info_rec.sup_cap_type, 1, p.new_ship_date,p.new_dock_date)) --4055719 --4135752
                      <= least(p_sup_atp_info_rec.last_cap_date,l_cutoff_date)
      --4365873
      AND    p.INVENTORY_ITEM_ID = MIHM.INVENTORY_ITEM_ID(+)
      AND    p.SR_INSTANCE_ID = MIHM.SR_INSTANCE_ID (+)
      AND    p.ORGANIZATION_ID = MIHM.ORGANIZATION_ID (+)
      --AND    MIHM.level_id (+) = decode(G_HIERARCHY_PROFILE,1,-1 )
      AND    decode(MIHM.level_id (+),-1,1,2) = decode(G_HIERARCHY_PROFILE,1,1,2)
      AND    trunc(Decode(p_sup_atp_info_rec.sup_cap_type, 1, p.new_ship_date,p.new_dock_date)) >= MIHM.effective_date (+)
      AND    trunc(Decode(p_sup_atp_info_rec.sup_cap_type, 1, p.new_ship_date,p.new_dock_date)) <= MIHM.disable_date (+)
      AND    MIHM.demand_class (+) = l_demand_class
       )
       ; -- dsting removed order by col25;
Line: 9592

           INSERT INTO msc_atp_sd_details_temp (
           	ATP_Level,
           	Order_line_id,
           	Scenario_Id,
           	Inventory_Item_Id,
           	Request_Item_Id,
	        Organization_Id,
                Department_Id,
	        Resource_Id,
                Supplier_Id,
                Supplier_Site_Id,
	        From_Organization_Id,
	        From_Location_Id,
	        To_Organization_Id,
	        To_Location_Id,
	        Ship_Method,
	        UOM_code,
	        Supply_Demand_Type,
	        Supply_Demand_Source_Type,
	        Supply_Demand_Source_Type_Name,
	        Identifier1,
	        Identifier2,
	        Identifier3,
	        Identifier4,
	        Supply_Demand_Quantity,
	        Supply_Demand_Date,
	        Disposition_Type,
	        Disposition_Name,
	        Pegging_Id,
	        End_Pegging_Id,
	        creation_date,
	        created_by,
	        last_update_date,
	        last_updated_by,
	        last_update_login,
	        Unallocated_Quantity
            )

            (SELECT     p_sup_atp_info_rec.level col1,
		p_identifier col2,
                p_sup_atp_info_rec.scenario_id col3,
                l_null_num col4 ,
                l_null_num col5,
		p_sup_atp_info_rec.organization_id col6,
                l_null_num col7,
                l_null_num col8,
                p_sup_atp_info_rec.supplier_id col9,
                p_sup_atp_info_rec.supplier_site_id col10,
                l_null_num col11,
                l_null_num col12,
                l_null_num col13,
                l_null_num col14,
		l_null_char col15,
		l_uom_code col16,
		2 col17, -- supply
		l_null_num col18,
                l_null_char col19,
		p_sup_atp_info_rec.instance_id col20,
                l_null_num col21,
		l_null_num col22,
		l_null_num col23,
                cs.capacity*(1+NVL(MSC_ATP_FUNC.get_tolerance_percentage(
                                   p_sup_atp_info_rec.instance_id,
                                   p_sup_atp_info_rec.plan_id,
                                   p_sup_atp_info_rec.inventory_item_id,
                                   p_sup_atp_info_rec.organization_id,
                                   p_sup_atp_info_rec.supplier_id,
                                   p_sup_atp_info_rec.supplier_site_id,
                                   cs.seq_num - p_sup_atp_info_rec.sysdate_seq_num),0)) *
                                   NVL(MIHM.allocation_percent/100,  --4365873
                                   /*NVL(MSC_AATP_FUNC.Get_DC_Alloc_Percent(
                                                     l_instance_id,
                                                     cs.inventory_item_id,
                                                     p_sup_atp_info_rec.organization_id,
                                                     null,
                                                     null,
                                                     l_demand_class,
                                                     c.calendar_date),*/
                                                      1) col24,
		GREATEST(CS.CALENDAR_DATE,l_sys_next_date) col25, --bug3333114
                l_null_num col26,
                l_null_char col27,
                l_null_num col28,
                l_null_num col29,
		-- ship_rec_cal changes begin
		l_sysdate,
		G_USER_ID,
		l_sysdate,
		G_USER_ID,
		G_USER_ID,
		-- ship_rec_cal changes end
		-- Unallocated_Quantity
                cs.capacity*(1+NVL(MSC_ATP_FUNC.get_tolerance_percentage(
                                   p_sup_atp_info_rec.instance_id,
                                   p_sup_atp_info_rec.plan_id,
                                   p_sup_atp_info_rec.inventory_item_id,
                                   p_sup_atp_info_rec.organization_id,
                                   p_sup_atp_info_rec.supplier_id,
                                   p_sup_atp_info_rec.supplier_site_id,
                                   cs.seq_num - p_sup_atp_info_rec.sysdate_seq_num),0))
         FROM
         (
         SELECT
            s.capacity,
	    c.calendar_date,
	    s.inventory_item_id,
	    s.sr_instance_id,
	    s.organization_id,
	    c.seq_num
                FROM   msc_calendar_dates c,
                       msc_supplier_capacities s
                WHERE  s.inventory_item_id = p_sup_atp_info_rec.inventory_item_id
                AND    s.sr_instance_id = p_sup_atp_info_rec.instance_id
                AND    s.plan_id = p_sup_atp_info_rec.plan_id
                AND    s.organization_id = p_sup_atp_info_rec.organization_id
                AND    s.supplier_id = p_sup_atp_info_rec.supplier_id
                AND    NVL(s.supplier_site_id, -1) = NVL(p_sup_atp_info_rec.supplier_site_id, -1)
                AND    c.calendar_date BETWEEN trunc(s.from_date)
                                --AND NVL(s.to_date,l_cutoff_date)
                                AND trunc(NVL(s.to_date,least(p_sup_atp_info_rec.last_cap_date,l_cutoff_date))) --4055719
                AND    (c.seq_num IS NOT NULL or p_sup_atp_info_rec.manufacturing_cal_code = '@@@')
                AND    c.calendar_code = l_calendar_code
                AND    c.exception_set_id = l_calendar_exception_set_id
                AND    c.sr_instance_id = l_instance_id
                AND    c.calendar_date >= NVL(p_sup_atp_info_rec.sup_cap_cum_date, l_plan_start_date))CS,
         msc_item_hierarchy_mv MIHM
         WHERE
         --4365873
                cs.INVENTORY_ITEM_ID = MIHM.INVENTORY_ITEM_ID(+)
      	 AND    cs.SR_INSTANCE_ID = MIHM.SR_INSTANCE_ID (+)
      	 AND    cs.ORGANIZATION_ID = MIHM.ORGANIZATION_ID (+)
      	 --AND    decode(MIHM.level_id,-1,1,2) (+) = (select decode(fnd_profile.value('XXXX'),1,1,2) from dual)
      	 --AND   MIHM.level_id(+)=-1
      	 AND    decode(MIHM.level_id (+),-1,1,2) = decode(G_HIERARCHY_PROFILE,1,1,2)
      	 AND    cs.calendar_date >= MIHM.effective_date (+)
      	 AND    cs.calendar_date <= MIHM.disable_date (+)
      	 AND    MIHM.demand_class (+) = l_demand_class
                -- Supplier Capacity (SCLT) Accumulation starts from this date.
                -- AND    c.calendar_date >= l_plan_start_date -- bug 1169467
                UNION ALL
                SELECT p_sup_atp_info_rec.level col1,
                p_identifier col2,
                p_sup_atp_info_rec.scenario_id col3,
                l_null_num col4 ,
                l_null_num col5,
                p_sup_atp_info_rec.organization_id col6,
                l_null_num col7,
                l_null_num col8,
                p_sup_atp_info_rec.supplier_id col9,
                p_sup_atp_info_rec.supplier_site_id col10,
                l_null_num col11,
                l_null_num col12,
                l_null_num col13,
                l_null_num col14,
                l_null_char col15,
                l_uom_code col16,
                1 col17, -- demand
                p.order_type col18,
                l_null_char col19,
                p_sup_atp_info_rec.instance_id col20,
                l_null_num col21,
                TRANSACTION_ID col22,
                l_null_num col23,
                -- ship_rec_cal rearrange signs to get rid of multiply times -1
                (NVL(p.implement_quantity,0) - p.new_order_quantity)*
                DECODE(DECODE(G_HIERARCHY_PROFILE,
                              --2424357
                              1, DECODE(p.DEMAND_CLASS, null, null,
                                    DECODE(l_demand_class, '-1',
                                        MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                  null,
                                                  null,
                                                  p.inventory_item_id,
                                                  p.organization_id,
                                                  p.sr_instance_id,
                                                  trunc(Decode(p_sup_atp_info_rec.sup_cap_type, --4135752
                                                          1, p.new_ship_date,
                                                          p.new_dock_date
                                                  )),
                                                  l_level_id,
                                                   p.DEMAND_CLASS), p.DEMAND_CLASS)),
                              2, DECODE(p.CUSTOMER_ID, NULL, TO_CHAR(NULL),
                                        0, TO_CHAR(NULL),
                                                MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                  p.CUSTOMER_ID,
                                                  p.SHIP_TO_SITE_ID,
                                                  p.inventory_item_id,
                                                  p.organization_id,
                                                  p.sr_instance_id,
                                                  trunc(Decode(p_sup_atp_info_rec.sup_cap_type, --4135752
                                                          1, p.new_ship_date,
                                                          p.new_dock_date
                                                  )),
                                                  l_level_id,
                                                  NULL))),
                        l_demand_class, 1,
                        NULL, NVL(MIHM.allocation_percent/100,  --4365873
                        /*NULL, NVL(MSC_AATP_FUNC.Get_DC_Alloc_Percent(p.sr_instance_id,
                                                       p.inventory_item_id ,
                                                       p.organization_id,
                                                       null,
                                                       null,
                                                       l_demand_class,
                                                       trunc(Decode(p_sup_atp_info_rec.sup_cap_type, --4135752
                                                          1, p.new_ship_date,
                                                          p.new_dock_date
                                                       ))),*/
                                                        1),
                        DECODE(MIHM.allocation_percent/100,
                        /*DECODE(MSC_AATP_FUNC.Get_DC_Alloc_Percent(p.sr_instance_id,
                                                    p.inventory_item_id,
                                                    p.organization_id,
                                                    null,
                                                    null,
                                                    l_demand_class,
                                                    trunc(Decode(p_sup_atp_info_rec.sup_cap_type, --4135752
                                                          1, p.new_ship_date,
                                                          p.new_dock_date
                                                    ))),*/
                                NULL, 1,
                                0)) col24,
                GREATEST(trunc(Decode(p_sup_atp_info_rec.sup_cap_type, --4135752
                    1, p.new_ship_date,
                    p.new_dock_date
                )),l_sys_next_date) col25, --bug3333114
                l_null_num col26,
                -- Bug 2771075. For Planned Orders, we will populate transaction_id
		-- in the disposition_name column to be consistent with Planning.
		-- p.order_number col27,
		DECODE(p.order_type, 5, to_char(p.transaction_id), p.order_number ) col27,
                l_null_num col28,
		l_null_num col29,
		-- ship_rec_cal changes begin
		l_sysdate,
		G_USER_ID,
		l_sysdate,
		G_USER_ID,
		G_USER_ID,
		-- ship_rec_cal changes end
		-- Unallocated_Quantity
                -- ship_rec_cal rearrange signs to get rid of multiply times -1
                (NVL(p.implement_quantity,0) - p.new_order_quantity)
             -- Supplier Capacity (SCLT) Changes Begin
             FROM   msc_supplies p ,msc_item_hierarchy_mv MIHM
             WHERE  (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))

             -- Supplier Capacity (SCLT) Accumulation Ignore Purchase Orders
             -- WHERE  p.order_type IN (5, 1, 2)
             AND    p.plan_id = p_sup_atp_info_rec.plan_id
             AND    p.sr_instance_id = p_sup_atp_info_rec.instance_id
             AND    p.inventory_item_id = p_sup_atp_info_rec.inventory_item_id
       -- 1214694      AND    p.organization_id = p_sup_atp_info_rec.organization_id
             AND    p.supplier_id  = p_sup_atp_info_rec.supplier_id
             AND    NVL(p.supplier_site_id, -1) = NVL(p_sup_atp_info_rec.supplier_site_id, -1)
             -- Exclude Cancelled Supplies 2460645
             AND    NVL(P.DISPOSITION_STATUS_TYPE, 1) <> 2 -- Bug 2460645
             AND    trunc(Decode(p_sup_atp_info_rec.sup_cap_type, 1, p.new_ship_date,p.new_dock_date)) --4055719--4135752
                           <= least(p_sup_atp_info_rec.last_cap_date,l_cutoff_date)
             --4365873
      AND    p.INVENTORY_ITEM_ID = MIHM.INVENTORY_ITEM_ID(+)
      AND    p.SR_INSTANCE_ID = MIHM.SR_INSTANCE_ID (+)
      AND    p.ORGANIZATION_ID = MIHM.ORGANIZATION_ID (+)
      --AND    MIHM.level_id (+) = decode(G_HIERARCHY_PROFILE,1,-1 )
      AND    decode(MIHM.level_id (+),-1,1,2) = decode(G_HIERARCHY_PROFILE,1,1,2)
      AND    trunc(Decode(p_sup_atp_info_rec.sup_cap_type, 1, p.new_ship_date,p.new_dock_date)) >= MIHM.effective_date (+)
      AND    trunc(Decode(p_sup_atp_info_rec.sup_cap_type, 1, p.new_ship_date,p.new_dock_date)) <= MIHM.disable_date (+)
      AND    MIHM.demand_class (+) = l_demand_class
       )
       ; -- dsting removed order by col25;
Line: 9869

        msc_sch_wb.atp_debug('Supplier_Alloc_Cum_Atp: ' || 'after insert into msc_atp_sd_details_temp');
Line: 10036

        IF (NVL(p_sup_atp_info_rec.insert_flag, 0) <>0)
           AND (l_demand_class_tab(i) = p_sup_atp_info_rec.demand_class) THEN
            l_temp_atp := l_current_atp;
Line: 10122

        IF (NVL(p_sup_atp_info_rec.insert_flag, 0) <>0) AND
           (l_demand_class_tab(i) = p_sup_atp_info_rec.demand_class) THEN

          FOR j in 1..l_current_atp.atp_qty.COUNT LOOP

            IF l_current_atp.atp_qty(j) < l_temp_atp.atp_qty(j) THEN
              -- this is the stealing quantity in that period

              -- bug 1413459: the stealing quantity should be the current
              -- period quantity (after backward consumption, after stealing)
              -- minus the period quantity after backward consumption but
              -- before the stealing
              l_steal_period_quantity := l_current_atp.atp_qty(j) -
                                         l_temp_atp.atp_qty(j);
Line: 10172

        END IF;  -- IF (NVL(p_sup_atp_info_rec.insert_flag, 0) <>0) ....
Line: 10331

      IF NVL(p_sup_atp_info_rec.insert_flag, 0) <> 0 THEN
        -- add one more entry to indicate infinite time fence date
        -- and quantity.

        x_atp_period.Cumulative_Quantity := x_atp_info.atp_qty;
Line: 10410

                SELECT allocation_rule_name, time_phase_id
                INTO   l_rule_name, l_time_phase
                FROM   msc_item_hierarchy_mv
                WHERE  inventory_item_id = p_inv_item_id
                AND    organization_id = p_org_id
      		AND    sr_instance_id = p_instance_id
      		AND    p_request_date between effective_date and disable_date
      		AND    rownum = 1 ;
Line: 10422

                SELECT ma.priority, ma.allocation_percent/100, ma.level_id
                INTO   x_priority, x_alloc_percent, x_level_id
                FROM   msc_allocations ma
                WHERE  ma.demand_class = p_demand_class
                AND    ma.time_phase_id = l_time_phase
                AND    ma.level_id = -1;
Line: 10431

                SELECT ma.priority, ma.allocation_percent/100, ma.level_id
                INTO   x_priority, x_alloc_percent, x_level_id
                FROM   msc_allocations ma
                WHERE  ma.demand_class = p_demand_class
                AND    ma.time_phase_id = l_time_phase
                AND    ma.level_id <> -1;
Line: 10444

      		SELECT DECODE(count(allocation_percent), 0, NULL, 0)
	      	INTO   x_alloc_percent
      		FROM   msc_item_hierarchy_mv
      		WHERE  inventory_item_id = p_inv_item_id
      		AND    organization_id = p_org_id
      		AND    sr_instance_id = p_instance_id
      		AND    p_request_date between effective_date and disable_date
                AND    NVL(level_id, -1) = -1;
Line: 10479

                SELECT allocation_rule_name, time_phase_id
                INTO   l_rule_name, l_time_phase
                FROM   msc_resource_hierarchy_mv
                WHERE  department_id = p_dept_id
                AND    resource_id = p_res_id
                AND    organization_id = p_org_id
        	AND    sr_instance_id = p_instance_id
        	AND    p_request_date between effective_date and disable_date
        	AND    rownum = 1 ;
Line: 10492

                SELECT ma.priority, ma.allocation_percent/100, ma.level_id
                INTO   x_priority, x_alloc_percent, x_level_id
                FROM   msc_allocations ma
                WHERE  ma.demand_class = p_demand_class
                AND    ma.time_phase_id = l_time_phase
                AND    ma.level_id = -1;
Line: 10501

                SELECT ma.priority, ma.allocation_percent/100, ma.level_id
                INTO   x_priority, x_alloc_percent, x_level_id
                FROM   msc_allocations ma
                WHERE  ma.demand_class = p_demand_class
                AND    ma.time_phase_id = l_time_phase
                AND    ma.level_id <> -1;
Line: 10514

      		SELECT DECODE(count(allocation_percent), 0, NULL, 0)
	      	INTO   x_alloc_percent
        	FROM   msc_resource_hierarchy_mv
        	WHERE  department_id = p_dept_id
        	AND    resource_id = p_res_id
        	AND    organization_id = p_org_id
        	AND    sr_instance_id = p_instance_id
        	AND    p_request_date between effective_date and disable_date
                AND    NVL(level_id, -1) = -1;
Line: 10624

        SELECT   MSC_CALENDAR.NEXT_WORK_DAY(p_organization_id,
			p_instance_id, 1, TRUNC(sysdate))
        INTO    l_request_date
        FROM    dual;
Line: 10700

		--for the item. Set insert_flag = 1, for period atp details.
		--Pass p_identifier = -1 to identify the call from this procedure,
		--so as not to do any demand class consumption/ stealing.

                IF p_demand_class IS NULL THEN

                -- To get the total ATP, demand class is passed as NULL,
                -- Pass p_scenario_id = -1 to identify the call for
                -- toatl ATP and demand class to be null

              -- Agilent Allocated ATP Based on Planning Details changes Begin

                  IF ((MSC_ATP_PVT.G_HIERARCHY_PROFILE <> 1) OR
                     ((MSC_ATP_PVT.G_HIERARCHY_PROFILE = 1) AND
                      (MSC_ATP_PVT.G_ALLOCATION_METHOD <> 1))) THEN

                       -- Original Code

                       MSC_AATP_PVT.Item_Alloc_Cum_Atp(
                                l_plan_id,
                                0,      --p_level(for top level item)
                                -1,     --p_identifier
                                -1,     --p_scenario_id - For total request
                                p_inventory_item_id,
                                p_organization_id,
                                p_instance_id,
                                p_demand_class,
                                l_request_date,
                                1,      --p_insert_flag,
                                l_atp_info,
                                l_atp_period,
                                l_atp_supply_demand,
                                --diag_atp
                                l_get_mat_in_rec,
                                p_inventory_item_id, -- time_phased_atp passing p_inventory_item_id for compilation
                                NULL); -- time_phased_atp passing null for compilation
Line: 10760

                                1,      --p_insert_flag,
                                l_atp_info,
                                l_atp_period,
                                l_atp_supply_demand,
                                --diag_atp
                                l_get_mat_in_rec,
                                NULL,  -- p_refresh_number - For summary enhancement - Allocation WB will not use summary
                                NULL,  -- time_phased_atp - This procedure is not used
                                NULL); -- time_phased_atp - This procedure is not used
Line: 10818

                                1,      --p_insert_flag,
                                l_atp_info,
                                l_atp_period,
                                l_atp_supply_demand,
                                l_get_mat_in_rec,
                                NULL,  -- p_refresh_number - For summary enhancement - Allocation WB will not use summary
                                p_inventory_item_id,  -- time_phased_atp - Added for compilation
                                NULL); -- time_phased_atp - Added for compilation
Line: 10843

                                1,      --p_insert_flag,
                                l_atp_info,
                                l_atp_period,
                                l_atp_supply_demand,
                                --diag_atp
                                l_get_mat_in_rec,
                                p_inventory_item_id, -- time_phased_atp passing p_inventory_item_id for compilation
                                NULL); -- time_phased_atp passing null for compilation
Line: 10865

                        SELECT  min(mdr.plan_id) as plan_id
                        INTO    l_plan_id
                        FROM    msc_department_resources mdr,
                                msc_trading_partners tp,
                                msc_apps_instances ins,
                                msc_plans plans,
                                msc_designators desig
                        WHERE   desig.inventory_atp_flag = 1
                        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     ins.instance_id = plans.sr_instance_id
                        AND     ins.enable_flag = 1
                        AND     tp.sr_tp_id = plans.organization_id
                        AND     tp.sr_instance_id = plans.sr_instance_id
                        AND     tp.partner_type = 3
                        AND     mdr.plan_id = plans.plan_id
                        AND     mdr.organization_id = p_organization_id
                        AND     mdr.sr_instance_id = p_instance_id
                        AND     mdr.resource_id = p_resource_id
                        AND     mdr.department_id = p_department_id
--                      AND     mdr.demand_class = p_demand_class
                        group by mdr.organization_id, mdr.sr_instance_id,
                              mdr.resource_id, mdr.department_id;--, desig.demand_class;
Line: 10911

		--for the department/resource. Set insert_flag = 1, for period atp details.
		--Pass p_identifier = -1 to identify the call from this procedure,
		--so as not to do any demand class consumption/ stealing.
                --resource bacting: find out if resource is batchable or not and the max capacity
                BEGIN
                   SELECT  batchable_flag, max_capacity, unit_of_measure, uom_class_type
                   INTO    l_batchable_flag, l_max_capacity, l_res_uom, l_res_uom_type
                   FROM    msc_department_resources
                   WHERE   department_id = p_department_id
                   AND     resource_id = p_resource_id
                   AND     organization_id = p_organization_id
                   AND     plan_id = l_plan_id
                   AND     sr_instance_id = p_instance_id ;
Line: 10934

                          SELECT conversion_rate
                          INTO   l_res_conversion_rate
                          FROM   msc_uom_conversions
                          WHERE  inventory_item_id = 0
                          AND    sr_instance_id = p_instance_id
                          AND    UOM_CODE = l_res_uom;
Line: 10984

                                1,      --p_insert_flag
                                 ---resource batching
                                l_max_capacity,
                                l_batchable_flag,
                                l_res_conversion_rate,
                                l_res_uom_type,
                                l_atp_info,
                                l_atp_period,
                                l_atp_supply_demand);
Line: 11010

                                1,      --p_insert_flag
                                 ---resource batching
                                l_max_capacity,
                                l_batchable_flag,
                                l_res_conversion_rate,
                                l_res_uom_type,
                                l_atp_info,
                                l_atp_period,
                                l_atp_supply_demand);
Line: 11056

	--Call procedure to insert l_atp_period
	--into mrp_atp_details_temp table.

	MSC_ATP_UTILS.put_into_temp_table(
		NULL,		--x_dblink
		p_session_id,
		l_atp_rec,
		l_atp_supply_demand,
		l_atp_period,
		l_atp_details,
		l_mode,
		x_return_status,
		l_msg_data,
		l_msg_count);
Line: 11087

            msc_sch_wb.atp_debug('View_Allocation: ' || ' Inserted supply demand  records ');
Line: 11097

            msc_sch_wb.atp_debug('View_Allocation: ' || ' Inserted period records ');
Line: 11170

l_atp_insert_rec	       MRP_ATP_PVT.AtpRec;
Line: 11275

  SELECT mv.priority, mv.level_id, mv.class, mv.partner_id
  INTO   l_priority, l_level_id, l_class, l_partner_id
  FROM   msc_item_hierarchy_mv mv
  WHERE  mv.inventory_item_id = l_item_to_use /* New allocation logic for time_phased_atp changes*/
  AND    mv.organization_id = p_atp_record.organization_id
  AND    mv.sr_instance_id = p_atp_record.instance_id
  AND    p_atp_record.requested_ship_date BETWEEN effective_date
                                          AND disable_date
  AND    mv.demand_class = p_atp_record.demand_class
  AND    mv.level_id = -1;
Line: 11288

  SELECT mv.priority, mv.level_id, mv.class, mv.partner_id
  INTO   l_priority, l_level_id, l_class, l_partner_id
  FROM   msc_item_hierarchy_mv mv
  WHERE  mv.inventory_item_id = l_item_to_use /* New allocation logic for time_phased_atp changes*/
  AND    mv.organization_id = p_atp_record.organization_id
  AND    mv.sr_instance_id = p_atp_record.instance_id
  AND    p_atp_record.requested_ship_date BETWEEN effective_date
                                          AND disable_date
  AND    mv.demand_class = p_atp_record.demand_class
  AND    mv.level_id <> -1;
Line: 11326

    SELECT mv.demand_class, mv.priority, mv.allocation_percent
    BULK COLLECT INTO l_demand_class_tab_new, l_dmd_class_priority_tab_new, l_allocation_percent_tab	--6359986
    FROM   msc_item_hierarchy_mv mv
    WHERE  mv.inventory_item_id = l_item_to_use -- time_phased_atp
    AND    mv.organization_id = p_atp_record.organization_id
    AND    mv.sr_instance_id = p_atp_record.instance_id
    AND    p_atp_record.requested_ship_date BETWEEN effective_date
                                            AND disable_date
    AND    mv.priority  > l_priority
    AND    mv.level_id = l_level_id
    ORDER BY mv.priority asc , mv.allocation_percent desc ;
Line: 11343

    SELECT mv.demand_class, mv.priority, mv.allocation_percent
    BULK COLLECT INTO l_demand_class_tab_new, l_dmd_class_priority_tab_new, l_allocation_percent_tab	--6359986
    FROM   msc_item_hierarchy_mv mv
    WHERE  mv.inventory_item_id = l_item_to_use -- time_phased_atp
    AND    mv.organization_id = p_atp_record.organization_id
    AND    mv.sr_instance_id = p_atp_record.instance_id
    AND    p_atp_record.requested_ship_date BETWEEN effective_date
                                            AND disable_date
    AND    mv.priority  > l_priority
    AND    mv.level_id = l_level_id
    ORDER BY mv.priority  , mv.class  ;
Line: 11360

    SELECT mv1.demand_class, mv1.priority, mv1.allocation_percent
    BULK COLLECT INTO l_demand_class_tab_new, l_dmd_class_priority_tab_new,l_allocation_percent_tab	--6359986
    FROM   msc_item_hierarchy_mv mv1
    WHERE  mv1.inventory_item_id = l_item_to_use -- time_phased_atp
    AND    mv1.organization_id = p_atp_record.organization_id
    AND    mv1.sr_instance_id = p_atp_record.instance_id
    AND    p_atp_record.requested_ship_date BETWEEN mv1.effective_date
                                            AND mv1.disable_date
    AND    mv1.priority  > l_priority
    AND    mv1.level_id = l_level_id
    AND    NOT (trunc(mv1.priority, -3) = trunc(l_priority, -3)
            AND (mv1.class <> l_class))
--    ORDER BY mv1.priority asc, mv1.allocation_percent desc;
Line: 11381

    SELECT mv1.demand_class, mv1.priority, mv1.allocation_percent
    BULK COLLECT INTO l_demand_class_tab_new, l_dmd_class_priority_tab_new,l_allocation_percent_tab	--6359986
    FROM   msc_item_hierarchy_mv mv1
    WHERE  mv1.inventory_item_id = l_item_to_use -- time_phased_atp
    AND    mv1.organization_id = p_atp_record.organization_id
    AND    mv1.sr_instance_id = p_atp_record.instance_id
    AND    p_atp_record.requested_ship_date BETWEEN mv1.effective_date
                                            AND mv1.disable_date
    AND    mv1.priority  > l_priority
    AND    mv1.level_id = l_level_id
    AND    NOT (trunc(mv1.priority, -3) = trunc(l_priority, -3)
            AND (mv1.class <> l_class))
    AND    NOT (trunc(mv1.priority, -2) = trunc(l_priority, -2)
            AND (mv1.class = l_class)
            AND (mv1.partner_id <> l_partner_id))
--    ORDER BY mv1.priority asc, mv1.allocation_percent desc;
Line: 11460

        l_mat_atp_info_rec.insert_flag                       := p_atp_record.insert_flag;
Line: 11809

	    IF p_atp_record.insert_flag <> 0 THEN
		    MSC_ATP_DB_UTILS.move_SD_temp_into_mrp_details(l_atp_pegging_id,
					  MSC_ATP_PVT.G_DEMAND_PEGGING_ID);