DBA Data[Home] [Help]

APPS.MSC_ATP_PF SQL Statements

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

Line: 28

PROCEDURE Insert_Bucketed_Demand(
        p_atp_rec          		IN	MRP_ATP_PVT.AtpRec,
        p_plan_id          		IN	NUMBER,
        p_bucketed_demand_date          IN	DATE,
        p_bucketed_demand_qty           IN	NUMBER,
        p_display_flag                  IN	NUMBER,
        p_parent_demand_id 		IN	NUMBER,
        p_level                         IN      NUMBER,
        p_refresh_number                IN      NUMBER,
        x_return_status                 OUT     NOCOPY VARCHAR2
);
Line: 161

/* Private procedures removed for forecast at PF **Will be deleted after code review
PROCEDURE Prepare_Demands_Stmt1(
	p_share_partition               IN      VARCHAR2,
	p_demand_priority               IN      VARCHAR2,
	p_excess_supply_by_dc           IN      VARCHAR2,
	p_temp_table                    IN      VARCHAR2,
	p_parallel_degree               IN      NUMBER,
	x_sql_stmt                      OUT 	NOCOPY VARCHAR2,
        x_return_status                 OUT     NOCOPY VARCHAR2
);
Line: 199

PROCEDURE Update_Pf_Display_Flag(
	p_plan_id                       IN      NUMBER,
        x_return_status                 OUT     NOCOPY VARCHAR2
);
Line: 211

|  o  This procedure calls private procedure Insert_Bucketed_Demand to
|       add the bucketed demands
+-------------------------------------------------------------------------*/
PROCEDURE Add_PF_Bucketed_Demands(
        p_atp_rec          		IN	MRP_ATP_PVT.AtpRec,
        p_plan_id          		IN	NUMBER,
        p_parent_demand_id 		IN	NUMBER,
        p_refresh_number                IN      NUMBER,
        x_return_status                 OUT     NOCOPY VARCHAR2
) IS
        -- local variables
        l_bucketed_demands_rec          Bucketed_Demands_Rec;
Line: 273

        IF l_bucketed_demands_rec.insert_mem_bd = 'Y' and l_bucketed_demands_rec.mem_bd_qty > 0 THEN
                Insert_Bucketed_Demand(
                        p_atp_rec,
                        p_plan_id,
                        l_bucketed_demands_rec.mem_bd_date,
                        l_bucketed_demands_rec.mem_bd_qty,
                        l_bucketed_demands_rec.mem_display_flag,
                        p_parent_demand_id,
                        member, -- member item bd
                        p_refresh_number,
                        l_return_status
                );
Line: 287

                                msc_sch_wb.atp_debug('Add_PF_Bucketed_Demands: ' || 'Error occured in procedure Insert_Bucketed_Demand');
Line: 294

        IF l_bucketed_demands_rec.insert_pf_bd = 'Y' and l_bucketed_demands_rec.pf_bd_qty > 0 THEN
                Insert_Bucketed_Demand(
                        p_atp_rec,
                        p_plan_id,
                        l_bucketed_demands_rec.pf_bd_date,
                        l_bucketed_demands_rec.pf_bd_qty,
                        l_bucketed_demands_rec.pf_display_flag,
                        p_parent_demand_id,
                        family, -- family item bd
                        p_refresh_number,
                        l_return_status
                );
Line: 308

                                msc_sch_wb.atp_debug('Add_PF_Bucketed_Demands: ' || 'Error occured in procedure Insert_Bucketed_Demand');
Line: 358

                           One bucketed demand would be inserted in this case*/
                        x_bucketed_demands_rec.insert_mem_bd         := 'Y';
Line: 364

                        x_bucketed_demands_rec.insert_pf_bd          := 'N';
Line: 368

                           Two bucketed demands would be inserted in this case*/
                        x_bucketed_demands_rec.insert_mem_bd         := 'Y';
Line: 379

                        x_bucketed_demands_rec.insert_pf_bd          := 'Y';
Line: 387

                           One bucketed demand would be inserted in this case*/
                        x_bucketed_demands_rec.insert_pf_bd          := 'Y';
Line: 393

                        x_bucketed_demands_rec.insert_mem_bd         := 'N';
Line: 397

                           Two bucketed demands would be inserted in this case*/
                        x_bucketed_demands_rec.insert_mem_bd := 'Y';
Line: 402

                        x_bucketed_demands_rec.insert_pf_bd  := 'Y';
Line: 415

                   Two bucketed demands would be inserted in this case*/
                x_bucketed_demands_rec.insert_mem_bd := 'Y';
Line: 420

                x_bucketed_demands_rec.insert_pf_bd  := 'Y';
Line: 433

                msc_sch_wb.atp_debug('*    Add member item bucketed demand = ' ||x_bucketed_demands_rec.insert_mem_bd);
Line: 438

                msc_sch_wb.atp_debug('*    Add family item bucketed demand = ' ||x_bucketed_demands_rec.insert_pf_bd);
Line: 455

/*--Update_PF_Bucketed_Demands----------------------------------------------
|  o  This procedure updates bucketed demands
+-------------------------------------------------------------------------*/
PROCEDURE Update_PF_Bucketed_Demands(
        p_plan_id                       IN	NUMBER,
        p_parent_demand_id              IN	NUMBER,
        p_demand_date                   IN	DATE,
        p_atf_date                      IN      DATE,
        p_old_demand_date_qty           IN      NUMBER,
        p_new_demand_date_qty           IN      NUMBER,
        x_return_status                 OUT     NOCOPY VARCHAR2
) IS
        -- local variables
        l_mem_bd_qty                    NUMBER;
Line: 471

        l_update_mem_bd                 VARCHAR2(1) := 'N';
Line: 472

        l_update_pf_bd                  VARCHAR2(1) := 'N';
Line: 476

                msc_sch_wb.atp_debug('*********Begin procedure Update_PF_Bucketed_Demands ********');
Line: 477

                msc_sch_wb.atp_debug('Update_PF_Bucketed_Demands: ' ||  'p_plan_id = ' ||to_char(p_plan_id));
Line: 478

                msc_sch_wb.atp_debug('Update_PF_Bucketed_Demands: ' ||  'p_parent_demand_id = ' ||to_char(p_parent_demand_id));
Line: 479

                msc_sch_wb.atp_debug('Update_PF_Bucketed_Demands: ' ||  'p_demand_date = ' ||to_char(p_demand_date));
Line: 480

                msc_sch_wb.atp_debug('Update_PF_Bucketed_Demands: ' ||  'p_atf_date = ' ||to_char(p_atf_date));
Line: 481

                msc_sch_wb.atp_debug('Update_PF_Bucketed_Demands: ' ||  'p_old_demand_date_qty = ' ||to_char(p_old_demand_date_qty));
Line: 482

                msc_sch_wb.atp_debug('Update_PF_Bucketed_Demands: ' ||  'p_new_demand_date_qty = ' ||to_char(p_new_demand_date_qty));
Line: 489

                l_update_mem_bd := 'Y';
Line: 492

                l_update_pf_bd := 'D';
Line: 502

                l_update_mem_bd := 'Y';
Line: 505

                l_update_pf_bd := 'Y';
Line: 515

        IF l_update_mem_bd = 'Y' THEN
                update  msc_alloc_demands
                set     allocated_quantity = nvl(l_mem_bd_qty, allocated_quantity),
                        demand_quantity = nvl(p_new_demand_date_qty, demand_quantity)
                where   parent_demand_id = p_parent_demand_id
                --bug3693892 added trunc
                and     trunc(demand_date) <= p_atf_date
                and     plan_id = p_plan_id;
Line: 525

        IF l_update_pf_bd = 'Y' THEN
                update  msc_alloc_demands
                set     allocated_quantity = allocated_quantity - l_pf_bd_decrement_qty,
                        demand_quantity = nvl(p_new_demand_date_qty, demand_quantity)
                where   parent_demand_id = p_parent_demand_id
                --bug3693892 added trunc
                and     trunc(demand_date) > p_atf_date
                and     plan_id = p_plan_id;
Line: 533

        ELSIF l_update_pf_bd = 'D' THEN
                delete  msc_alloc_demands
                where   parent_demand_id = p_parent_demand_id
                --bug3693892 added trunc
                and     trunc(demand_date) > p_atf_date
                and     plan_id = p_plan_id;
Line: 542

                msc_sch_wb.atp_debug('*********End of procedure Update_PF_Bucketed_Demands ********');
Line: 548

                        msc_sch_wb.atp_debug('Update_PF_Bucketed_Demands: ' || 'Error occurred: ' || to_char(sqlcode) || ':' || SQLERRM);
Line: 552

END Update_PF_Bucketed_Demands;
Line: 558

|  o  This procedure calls private procedure Insert_Bucketed_Demand if
|       there is no existing bucketed demand.
+-------------------------------------------------------------------------*/
PROCEDURE Increment_Bucketed_Demands_Qty(
        p_atp_rec               IN OUT  NOCOPY MRP_ATP_PVT.AtpRec,
        p_plan_id               IN	NUMBER,
        p_parent_demand_id      IN	NUMBER,
--        p_mem_bd_increment_qty  IN	NUMBER,
--        p_pf_bd_increment_qty   IN	NUMBER,
        x_return_status         OUT     NOCOPY VARCHAR2
) IS
        -- local variables
        l_bucketed_demands_rec          Bucketed_Demands_Rec;
Line: 626

                delete  msc_alloc_demands
                where   parent_demand_id = p_parent_demand_id
                and     inventory_item_id = p_atp_rec.request_item_id
                and     plan_id = p_plan_id;
Line: 631

                update  msc_alloc_demands
                set     allocated_quantity = l_bucketed_demands_rec.mem_bd_qty,
                        demand_quantity = l_req_qty,
                        --bug3697365 added timestamp also
                        demand_date = trunc(l_bucketed_demands_rec.mem_bd_date) + MSC_ATP_PVT.G_END_OF_DAY,
                        original_demand_date = trunc(l_req_date) + MSC_ATP_PVT.G_END_OF_DAY,
                        Pf_Display_Flag = l_bucketed_demands_rec.mem_display_flag
                where   parent_demand_id = p_parent_demand_id
                and     inventory_item_id = p_atp_rec.request_item_id
                and     plan_id = p_plan_id;
Line: 644

                                msc_sch_wb.atp_debug('Increment_Bucketed_Demands_Qty: Member item bucketed demand not found. Inserting now...');
Line: 646

                        Insert_Bucketed_Demand(
                                p_atp_rec,
                                p_plan_id,
                                l_bucketed_demands_rec.mem_bd_date,
                                l_bucketed_demands_rec.mem_bd_qty,
                                l_bucketed_demands_rec.mem_display_flag,
                                p_parent_demand_id,
                                member, -- member item bd
                                p_atp_rec.refresh_number,
                                l_return_status
                        );
Line: 659

                                        msc_sch_wb.atp_debug('Increment_Bucketed_Demands_Qty: ' || 'Error occured in procedure Insert_Bucketed_Demand');
Line: 671

                delete  msc_alloc_demands
                where   parent_demand_id = p_parent_demand_id
                and     inventory_item_id = p_atp_rec.inventory_item_id
                and     plan_id = p_plan_id;
Line: 676

                update  msc_alloc_demands
                set     allocated_quantity = l_bucketed_demands_rec.pf_bd_qty,
                        demand_quantity = l_req_qty,
                        --bug3697365 added timestamp also
                        demand_date = trunc(l_bucketed_demands_rec.pf_bd_date) + MSC_ATP_PVT.G_END_OF_DAY,
                        original_demand_date = trunc(l_req_date) + MSC_ATP_PVT.G_END_OF_DAY,
                        Pf_Display_Flag = l_bucketed_demands_rec.pf_display_flag
                where   parent_demand_id = p_parent_demand_id
                and     inventory_item_id = p_atp_rec.inventory_item_id
                and     plan_id = p_plan_id;
Line: 689

                                msc_sch_wb.atp_debug('Increment_Bucketed_Demands_Qty: Family item bucketed demand not found. Inserting now...');
Line: 691

                        Insert_Bucketed_Demand(
                                p_atp_rec,
                                p_plan_id,
                                l_bucketed_demands_rec.pf_bd_date,
                                l_bucketed_demands_rec.pf_bd_qty,
                                l_bucketed_demands_rec.pf_display_flag,
                                p_parent_demand_id,
                                family, -- family item bd
                                p_atp_rec.refresh_number,
                                l_return_status
                        );
Line: 704

                                        msc_sch_wb.atp_debug('Increment_Bucketed_Demands_Qty: ' || 'Error occured in procedure Insert_Bucketed_Demand');
Line: 743

        l_update_mem_bd                 VARCHAR(1) :='N';
Line: 744

        l_update_pf_bd                  VARCHAR(1) :='N';
Line: 781

                        msc_sch_wb.atp_debug('Move_PF_Bucketed_Demands: No need to move bucketed demand dates. Update qtys');
Line: 785

                                msc_sch_wb.atp_debug('Move_PF_Bucketed_Demands: No need to update qtys');
Line: 788

                        update  msc_alloc_demands
                        set     allocated_quantity = p_demand_qty,
                                demand_quantity = p_demand_qty
                        where   parent_demand_id = p_parent_demand_id
                        and     demand_date <= p_atf_date
                        and     plan_id = p_plan_id;
Line: 803

                        update  msc_alloc_demands
                        set     allocated_quantity = nvl(p_atf_date_qty, 0),
                                demand_quantity = p_demand_qty
                        where   parent_demand_id = p_parent_demand_id
                        and     demand_date <= p_atf_date
                        and     plan_id = p_plan_id;
Line: 810

                        update  msc_alloc_demands
                        set     allocated_quantity = p_demand_qty - nvl(p_atf_date_qty, 0),
                                demand_quantity = p_demand_qty
                        where   parent_demand_id = p_parent_demand_id
                        and     demand_date > p_atf_date
                        and     plan_id = p_plan_id;
Line: 828

                        l_update_mem_bd         := 'Y';
Line: 839

                        l_update_mem_bd         := 'Y';
Line: 844

                        l_update_pf_bd          := 'Y';
Line: 855

                        l_update_pf_bd          := 'Y';
Line: 863

                        l_update_pf_bd          := 'Y';
Line: 868

                        l_update_mem_bd         := 'Y';
Line: 873

                        l_update_pf_bd          := 'Y';
Line: 885

                        msc_sch_wb.atp_debug('*    Update member item bucketed demand = ' ||l_update_mem_bd);
Line: 890

                        msc_sch_wb.atp_debug('*    Update family item bucketed demand = ' ||l_update_pf_bd);
Line: 897

                IF l_update_mem_bd = 'Y'  THEN
                        update  msc_alloc_demands
                                --bug3697365 added timestamp also
                        set     demand_date = trunc(l_mem_bd_date) + MSC_ATP_PVT.G_END_OF_DAY,
                                allocated_quantity = l_mem_bd_qty,
                                demand_quantity = p_demand_qty,
                                pf_display_flag = l_mem_display_flag,
                                --bug3697365 added timestamp also
                                original_demand_date = trunc(p_new_demand_date) + MSC_ATP_PVT.G_END_OF_DAY
                        where   parent_demand_id = p_parent_demand_id
                        --bug3693892 added trunc
                        and     trunc(demand_date) <= p_atf_date
                        and     plan_id = p_plan_id;
Line: 913

                                        msc_sch_wb.atp_debug('Move_PF_Bucketed_Demands: Member item bucketed demand not found. Inserting now...');
Line: 917

                                Insert_Bucketed_Demand(
                                        l_atp_rec,
                                        p_plan_id,
                                        l_mem_bd_date,
                                        l_mem_bd_qty,
                                        l_mem_display_flag,
                                        p_parent_demand_id,
                                        member, -- member item bd
                                        l_atp_rec.refresh_number,
                                        l_return_status
                                );
Line: 930

                                                msc_sch_wb.atp_debug('Move_PF_Bucketed_Demands: ' || 'Error occured in procedure Insert_Bucketed_Demand');
Line: 938

                IF l_update_pf_bd = 'Y' THEN
                        update  msc_alloc_demands
                                --bug3697365 added timestamp also
                        set     demand_date = trunc(l_pf_bd_date) + MSC_ATP_PVT.G_END_OF_DAY,
                                allocated_quantity = l_pf_bd_qty,
                                demand_quantity = p_demand_qty,
                                pf_display_flag = l_pf_display_flag,
                                --bug3697365 added timestamp also
                                original_demand_date = trunc(p_new_demand_date) + MSC_ATP_PVT.G_END_OF_DAY
                        where   parent_demand_id = p_parent_demand_id
                        --bug3693892 added trunc
                        and     trunc(demand_date) > p_atf_date
                        and     plan_id = p_plan_id;
Line: 954

                                        msc_sch_wb.atp_debug('Move_PF_Bucketed_Demands: Family item bucketed demand not found. Inserting now...');
Line: 958

                                Insert_Bucketed_Demand(
                                        l_atp_rec,
                                        p_plan_id,
                                        l_pf_bd_date,
                                        l_pf_bd_qty,
                                        l_pf_display_flag,
                                        p_parent_demand_id,
                                        family, -- family item bd
                                        l_atp_rec.refresh_number,
                                        l_return_status
                                );
Line: 971

                                                msc_sch_wb.atp_debug('Move_PF_Bucketed_Demands: ' || 'Error occured in procedure Insert_Bucketed_Demand');
Line: 1009

                        l_update_mem_bd         := 'Y';
Line: 1014

                        /* Delete member item's bucketed demand*/
                        IF p_bkwd_pass_atf_date_qty <> 0 THEN --bug3397904 start
                         l_update_mem_bd         := 'Y';
Line: 1021

                         l_update_mem_bd         := 'D';
Line: 1025

                        l_update_pf_bd          := 'Y';
Line: 1031

                        l_update_mem_bd         := 'Y';
Line: 1037

                        l_update_pf_bd          := 'Y';
Line: 1047

                        msc_sch_wb.atp_debug('*    Update member item bucketed demand = ' ||l_update_mem_bd);
Line: 1052

                        msc_sch_wb.atp_debug('*    Update family item bucketed demand = ' ||l_update_pf_bd);
Line: 1059

                IF l_update_mem_bd = 'Y' THEN
                        update  msc_alloc_demands
                                --bug3697365 added timestamp also
                        set     demand_date = trunc(l_mem_bd_date) + MSC_ATP_PVT.G_END_OF_DAY,
                                allocated_quantity = l_mem_bd_qty,
                                demand_quantity = p_demand_qty,
                                pf_display_flag = l_mem_display_flag,
                                --bug3697365 added timestamp also
                                original_demand_date = trunc(p_new_demand_date) + MSC_ATP_PVT.G_END_OF_DAY
                        where   parent_demand_id = p_parent_demand_id
                        --bug3693892 added trunc
                        and     trunc(demand_date) <= p_atf_date
                        and     plan_id = p_plan_id;
Line: 1075

                                        msc_sch_wb.atp_debug('Move_PF_Bucketed_Demands: Member item bucketed demand not found. Inserting now...');
Line: 1079

                                Insert_Bucketed_Demand(
                                        l_atp_rec,
                                        p_plan_id,
                                        l_mem_bd_date,
                                        l_mem_bd_qty,
                                        --l_pf_display_flag,
                                        l_mem_display_flag, -- Bug 3483954
                                        p_parent_demand_id,
                                        member, -- member item bd
                                        l_atp_rec.refresh_number,
                                        l_return_status
                                );
Line: 1093

                                                msc_sch_wb.atp_debug('Move_PF_Bucketed_Demands: ' || 'Error occured in procedure Insert_Bucketed_Demand');
Line: 1099

                ELSIF l_update_mem_bd = 'D' THEN
                        delete  msc_alloc_demands
                        where   parent_demand_id = p_parent_demand_id
                        --bug3693892 added trunc
                        and     trunc(demand_date) <= p_atf_date
                        and     plan_id = p_plan_id;
Line: 1107

                IF l_update_pf_bd = 'Y' THEN
                        update  msc_alloc_demands
                                --bug3697365 added timestamp also
                        set     demand_date = trunc(l_pf_bd_date) + MSC_ATP_PVT.G_END_OF_DAY,
                                allocated_quantity = l_pf_bd_qty,
                                demand_quantity = p_demand_qty,
                                pf_display_flag = l_pf_display_flag,
                                --bug3697365 added timestamp also
                                original_demand_date = trunc(p_new_demand_date) + MSC_ATP_PVT.G_END_OF_DAY
                        where   parent_demand_id = p_parent_demand_id
                        --bug3693892 added trunc
                        and     trunc(demand_date) > p_atf_date
                        and     plan_id = p_plan_id;
Line: 1123

                                        msc_sch_wb.atp_debug('Move_PF_Bucketed_Demands: Family item bucketed demand not found. Inserting now...');
Line: 1127

                                Insert_Bucketed_Demand(
                                        l_atp_rec,
                                        p_plan_id,
                                        l_pf_bd_date,
                                        l_pf_bd_qty,
                                        l_pf_display_flag,
                                        p_parent_demand_id,
                                        family, -- family item bd
                                        l_atp_rec.refresh_number,
                                        l_return_status
                                );
Line: 1140

                                                msc_sch_wb.atp_debug('Move_PF_Bucketed_Demands: ' || 'Error occured in procedure Insert_Bucketed_Demand');
Line: 1184

                update  msc_alloc_demands
                        --bug3697365 added timestamp also
                set     demand_date = trunc(p_new_demand_date) + MSC_ATP_PVT.G_END_OF_DAY,
                        original_demand_date = trunc(p_new_demand_date) + MSC_ATP_PVT.G_END_OF_DAY
                where   parent_demand_id = p_parent_demand_id
                --bug3693892 added trunc
                and     trunc(demand_date) <= p_atf_date
                and     plan_id = p_plan_id;
Line: 1193

                update  msc_alloc_demands
                        --bug3693892 added trunc
                set     demand_date = trunc(p_atf_date) + MSC_ATP_PVT.G_END_OF_DAY,
                        original_demand_date = trunc(p_new_demand_date) + MSC_ATP_PVT.G_END_OF_DAY,
                        Pf_Display_Flag = null
                where   parent_demand_id = p_parent_demand_id
                --bug3693892 added trunc
                and     trunc(demand_date) <= p_atf_date
                and     plan_id = p_plan_id;
Line: 1203

                update  msc_alloc_demands
                        --bug3693892 added trunc
                set     demand_date = trunc(p_new_demand_date) + MSC_ATP_PVT.G_END_OF_DAY,
                        original_demand_date = trunc(p_new_demand_date) + MSC_ATP_PVT.G_END_OF_DAY,
                        Pf_Display_Flag = 1
                where   parent_demand_id = p_parent_demand_id
                --bug3693892 added trunc
                and     trunc(demand_date) > p_atf_date
                and     plan_id = p_plan_id;
Line: 1213

                update  msc_alloc_demands
                        --bug3693892 added trunc
                set     demand_date = trunc(p_new_demand_date) + MSC_ATP_PVT.G_END_OF_DAY,
                        original_demand_date = trunc(p_new_demand_date) + MSC_ATP_PVT.G_END_OF_DAY
                where   parent_demand_id = p_parent_demand_id
                --bug3693892 added trunc
                and     trunc(demand_date) > p_atf_date
                and     plan_id = p_plan_id;
Line: 1236

/*--Insert_Bucketed_Demand--------------------------------------------------
|  o  This procedure inserts bucketed demand in msc_alloc_demands table
|       with origination type 51 (ATP Bucketed Demand).
+-------------------------------------------------------------------------*/
PROCEDURE Insert_Bucketed_Demand(
        p_atp_rec          		IN	MRP_ATP_PVT.AtpRec,
        p_plan_id          		IN	NUMBER,
        p_bucketed_demand_date          IN	DATE,
        p_bucketed_demand_qty           IN	NUMBER,
        p_display_flag                  IN	NUMBER,
        p_parent_demand_id 		IN	NUMBER,
        p_level                         IN      NUMBER,
        p_refresh_number                IN      NUMBER,
        x_return_status                 OUT     NOCOPY VARCHAR2
) IS
        -- local variables
        l_sysdate       date := sysdate;
Line: 1256

                msc_sch_wb.atp_debug('*********Begin procedure Insert_Bucketed_Demand ********');
Line: 1262

        INSERT INTO MSC_ALLOC_DEMANDS(
                PLAN_ID,
                INVENTORY_ITEM_ID,
                ORIGINAL_ITEM_ID,
                USING_ASSEMBLY_ITEM_ID,
                ORGANIZATION_ID,
                SR_INSTANCE_ID,
                DEMAND_CLASS,
                DEMAND_DATE,
                ORIGINAL_DEMAND_DATE,
                PARENT_DEMAND_ID,
                ALLOCATED_QUANTITY,
                DEMAND_QUANTITY,
                ORIGINATION_TYPE,
                ORIGINAL_ORIGINATION_TYPE,
                ORDER_NUMBER,
                SALES_ORDER_LINE_ID,
                DEMAND_SOURCE_TYPE,--cmro
                PF_DISPLAY_FLAG,
                CUSTOMER_ID,
                SHIP_TO_SITE_ID,
                REFRESH_NUMBER,
                CREATED_BY,
                CREATION_DATE,
                LAST_UPDATED_BY,
                LAST_UPDATE_DATE
        )
        VALUES (
                p_plan_id,
                decode(p_level, member, p_atp_rec.request_item_id,
                                p_atp_rec.inventory_item_id),
                p_atp_rec.request_item_id,
                p_atp_rec.request_item_id,
                p_atp_rec.organization_id,
                p_atp_rec.instance_id,
                nvl(p_atp_rec.demand_class, -1),
                --bug3697365 added timestamp also
                TRUNC(p_bucketed_demand_date) + MSC_ATP_PVT.G_END_OF_DAY,
                TRUNC(p_atp_rec.requested_ship_date) + MSC_ATP_PVT.G_END_OF_DAY,
                p_parent_demand_id,
                p_bucketed_demand_qty,
                p_atp_rec.quantity_ordered,
                51, -- ATP Bucketed Demand
                p_atp_rec.origination_type,
                decode(p_atp_rec.origination_type, 1, p_parent_demand_id,
                                                   p_atp_rec.order_number),
                p_atp_rec.demand_source_line,
                p_atp_rec.demand_source_type,--cmro
                p_display_flag,
                decode(p_atp_rec.origination_type, 6, MSC_ATP_PVT.G_PARTNER_ID,
                                                   30, MSC_ATP_PVT.G_PARTNER_ID,
                                                   null),
                decode(p_atp_rec.origination_type, 6, MSC_ATP_PVT.G_PARTNER_SITE_ID,
                                                   30, MSC_ATP_PVT.G_PARTNER_SITE_ID,
                                                   null),
                p_refresh_number,
                G_USER_ID,
                l_sysdate,
                G_USER_ID,
                l_sysdate
        );
Line: 1327

                        msc_sch_wb.atp_debug('Insert_Bucketed_Demand: ' || 'Error occurred: ' || to_char(sqlcode) || ':' || SQLERRM);
Line: 1331

END Insert_Bucketed_Demand;
Line: 1356

                SELECT  allocated_quantity,
                        demand_date
                INTO    p_bucketed_demands_rec.mem_bd_qty,
                        p_bucketed_demands_rec.mem_bd_date
                FROM    msc_alloc_demands
                WHERE   plan_id = p_plan_id
                AND     parent_demand_id = p_parent_demand_id
                AND     inventory_item_id = p_bucketed_demands_rec.mem_item_id
                ;
Line: 1377

                SELECT  allocated_quantity,
                        demand_date
                INTO    p_bucketed_demands_rec.pf_bd_qty,
                        p_bucketed_demands_rec.pf_bd_date
                FROM    msc_alloc_demands
                WHERE   plan_id = p_plan_id
                AND     parent_demand_id = p_parent_demand_id
                AND     inventory_item_id = p_bucketed_demands_rec.pf_item_id
                ;
Line: 1438

                INSERT INTO MSC_ALLOC_SUPPLIES(
                        PLAN_ID,
                        INVENTORY_ITEM_ID,
                        ORGANIZATION_ID,
                        SR_INSTANCE_ID,
                        DEMAND_CLASS,
                        SUPPLY_DATE,
                        PARENT_TRANSACTION_ID,
                        ALLOCATED_QUANTITY,
                        SUPPLY_QUANTITY,
                        ORDER_TYPE,
                        ORIGINAL_ORDER_TYPE,
                        ORIGINAL_ITEM_ID,
                        REFRESH_NUMBER,
                        CREATED_BY,
                        CREATION_DATE,
                        LAST_UPDATED_BY,
                        LAST_UPDATE_DATE,
                        CUSTOMER_ID,         -- Bug 3558125
                        SHIP_TO_SITE_ID      -- Bug 3558125
                )
                VALUES (
                        p_plan_id,
                        p_member_item_id,
                        p_organization_id,
                        p_instance_id,
                        nvl(p_demand_class, -1),
                        p_schedule_date,
                        p_parent_transaction_id,
                        p_order_quantity,
                        p_order_quantity,
                        50,
                        p_orig_order_type,
                        p_member_item_id,
                        p_refresh_number,
                        G_USER_ID,
                        l_sysdate,
                        G_USER_ID,
                        l_sysdate,
                        NVL(MSC_ATP_PVT.G_PARTNER_ID,-1),       -- Bug 3558125
                        NVL(MSC_ATP_PVT.G_PARTNER_SITE_ID,-1)   -- Bug 3558125
                );
Line: 1489

                INSERT INTO MSC_ALLOC_SUPPLIES(
                        PLAN_ID,
                        INVENTORY_ITEM_ID,
                        ORGANIZATION_ID,
                        SR_INSTANCE_ID,
                        DEMAND_CLASS,
                        SUPPLY_DATE,
                        PARENT_TRANSACTION_ID,
                        ALLOCATED_QUANTITY,
                        SUPPLY_QUANTITY,
                        ORDER_TYPE,
                        ORIGINAL_ORDER_TYPE,
                        ORIGINAL_ITEM_ID,
                        REFRESH_NUMBER,
                        CREATED_BY,
                        CREATION_DATE,
                        LAST_UPDATED_BY,
                        LAST_UPDATE_DATE,
                        CUSTOMER_ID,         -- Bug 3558125
                        SHIP_TO_SITE_ID      -- Bug 3558125
                )
                VALUES (
                        p_plan_id,
                        p_family_item_id,
                        p_organization_id,
                        p_instance_id,
                        nvl(p_demand_class, -1),
                        p_schedule_date,
                        p_parent_transaction_id,
                        p_order_quantity,
                        p_order_quantity,
                        50,
                        p_orig_order_type,
                        p_member_item_id,
                        p_refresh_number,
                        G_USER_ID,
                        l_sysdate,
                        G_USER_ID,
                        l_sysdate,
                        NVL(MSC_ATP_PVT.G_PARTNER_ID,-1),       -- Bug 3558125
                        NVL(MSC_ATP_PVT.G_PARTNER_SITE_ID,-1)   -- Bug 3558125
                );
Line: 1554

/*--Update_PF_Rollup_Supplies----------------------------------------------
|  o  This procedure is called from update_planned_order procedure to
|       update PF rollup supplies.
|  o  Updates rollup supplies to passed date and quantity values.
+-------------------------------------------------------------------------*/
PROCEDURE Update_PF_Rollup_Supplies(
        p_plan_id          		IN	NUMBER,
        p_parent_transaction_id         IN	NUMBER,
        p_mem_item_id                   IN	NUMBER,
        p_pf_item_id                    IN	NUMBER,
        p_date                          IN      DATE,
        p_quantity                      IN      NUMBER,
        p_atf_date                      IN      DATE,
        x_return_status                 OUT     NOCOPY VARCHAR2
) IS
        -- local variables
        l_sysdate               date := sysdate;
Line: 1574

                msc_sch_wb.atp_debug('*********Begin procedure Update_PF_Rollup_Supplies ********');
Line: 1575

                msc_sch_wb.atp_debug('Update_PF_Rollup_Supplies: ' || 'p_plan_id ='||to_char(p_plan_id));
Line: 1576

                msc_sch_wb.atp_debug('Update_PF_Rollup_Supplies: ' || 'p_parent_transaction_id ='||to_char(p_parent_transaction_id));
Line: 1577

                msc_sch_wb.atp_debug('Update_PF_Rollup_Supplies: ' || 'p_mem_item_id ='||to_char(p_mem_item_id));
Line: 1578

                msc_sch_wb.atp_debug('Update_PF_Rollup_Supplies: ' || 'p_pf_item_id ='||to_char(p_pf_item_id));
Line: 1579

                msc_sch_wb.atp_debug('Update_PF_Rollup_Supplies: ' || 'p_date ='||to_char(p_date));
Line: 1580

                msc_sch_wb.atp_debug('Update_PF_Rollup_Supplies: ' || 'p_quantity ='||to_char(p_quantity));
Line: 1581

                msc_sch_wb.atp_debug('Update_PF_Rollup_Supplies: ' || 'p_atf_date ='||to_char(p_atf_date));
Line: 1588

                UPDATE  msc_alloc_supplies
                SET     old_supply_date = supply_date, -- why do we populate old_supply_date and qty??
                        old_allocated_quantity = allocated_quantity, --??
                        allocated_quantity = NVL(p_quantity, allocated_quantity),
                        supply_quantity = NVL(p_quantity, supply_quantity),     -- Bug 3779200
                        LAST_UPDATED_BY = G_USER_ID,
                        LAST_UPDATE_DATE = l_sysdate
                WHERE   plan_id = p_plan_id
                AND     parent_transaction_id = p_parent_transaction_id;
Line: 1598

                UPDATE  msc_alloc_supplies
                SET     old_supply_date = supply_date, -- why do we populate old_supply_date and qty??
                        old_allocated_quantity = allocated_quantity, --??
                        supply_date = NVL(p_date, supply_date),
                        allocated_quantity = NVL(p_quantity, allocated_quantity),
                        supply_quantity = NVL(p_quantity, supply_quantity),     -- Bug 3779200
                        inventory_item_id = p_mem_item_id,
                        LAST_UPDATED_BY = G_USER_ID,
                        LAST_UPDATE_DATE = l_sysdate
                WHERE   plan_id = p_plan_id
                AND     parent_transaction_id = p_parent_transaction_id;
Line: 1610

                UPDATE  msc_alloc_supplies
                SET     old_supply_date = supply_date, -- why do we populate old_supply_date and qty??
                        old_allocated_quantity = allocated_quantity, --??
                        supply_date = NVL(p_date, supply_date),
                        allocated_quantity = NVL(p_quantity, allocated_quantity),
                        supply_quantity = NVL(p_quantity, supply_quantity),     -- Bug 3779200
                        inventory_item_id = p_pf_item_id,
                        LAST_UPDATED_BY = G_USER_ID,
                        LAST_UPDATE_DATE = l_sysdate
                WHERE   plan_id = p_plan_id
                AND     parent_transaction_id = p_parent_transaction_id;
Line: 1624

                msc_sch_wb.atp_debug('*********End of procedure Update_PF_Rollup_Supplies ********');
Line: 1630

                        msc_sch_wb.atp_debug('Update_PF_Rollup_Supplies: ' || 'Error occurred: ' || to_char(sqlcode) || ':' || SQLERRM);
Line: 1634

END Update_PF_Rollup_Supplies;
Line: 1699

                        msc_sch_wb.atp_debug('Add_PF_Stealing_Supply_Details: ' || 'before insert into msc_alloc_supplies-Stealing Info');
Line: 1703

                INSERT INTO MSC_ALLOC_SUPPLIES
                        (plan_id, inventory_item_id, organization_id, sr_instance_id,
                         demand_class, supply_date, parent_transaction_id,
                         allocated_quantity, order_type, sales_order_line_id,demand_source_type,stealing_flag,--cmro
                         supply_quantity, original_item_id, original_order_type,
                         created_by, creation_date, last_updated_by, last_update_date, from_demand_class, ato_model_line_id, refresh_number, -- For summary enhancement
                         --bug3684383
                         order_number,customer_id,ship_to_site_id
                         )
                VALUES
                        (p_plan_id, p_mem_item_id, p_organization_id,
                         p_sr_instance_id, p_stealing_demand_class, l_mem_stealing_rec_date,
                         --bug3555084 using msc_supplies_s.nextval in place of p_transaction_id
                         msc_supplies_s.nextval, p_mem_stealing_quantity, 50, p_identifier,p_demand_source_type, 1,--cmro
                         p_mem_stealing_quantity, p_mem_item_id, 46,
                         G_USER_ID, l_sysdate, G_USER_ID, l_sysdate, p_stolen_demand_class, p_ato_model_line_id, p_refresh_number,
                         --bug3684383
                         p_order_number,MSC_ATP_PVT.G_PARTNER_ID,MSC_ATP_PVT.G_PARTNER_SITE_ID) -- For summary enhancement
                         RETURNING parent_transaction_id INTO p_transaction_id; --bug3555084
Line: 1727

                        msc_sch_wb.atp_debug('Add_PF_Stealing_Supply_Details: ' || 'before insert into msc_alloc_supplies-Stolen Info');
Line: 1730

                INSERT INTO MSC_ALLOC_SUPPLIES
                        (plan_id, inventory_item_id, organization_id, sr_instance_id,
                         demand_class, supply_date, parent_transaction_id,
                         allocated_quantity, order_type, sales_order_line_id,demand_source_type, stealing_flag,--cmro
                         supply_quantity, original_item_id, original_order_type,
                         created_by, creation_date, last_updated_by, last_update_date, from_demand_class, ato_model_line_id,  refresh_number, -- For summary enhancement
                         --bug3684383
                         order_number,customer_id,ship_to_site_id)
                VALUES
                        (p_plan_id, p_mem_item_id, p_organization_id,
                         p_sr_instance_id, p_stolen_demand_class, l_mem_stealing_rec_date,
                         p_transaction_id, -1 * p_mem_stealing_quantity, 50, p_identifier,p_demand_source_type, 1,---cmro
                         -1 * p_mem_stealing_quantity, p_mem_item_id, 47,
                         G_USER_ID, l_sysdate, G_USER_ID, l_sysdate, p_stealing_demand_class, p_ato_model_line_id, p_refresh_number,
                         --bug3684383
                         p_order_number,MSC_ATP_PVT.G_PARTNER_ID,MSC_ATP_PVT.G_PARTNER_SITE_ID); -- For summary enhancement
Line: 1752

               msc_sch_wb.atp_debug('Add_PF_Stealing_Supply_Details: ' || 'before insert into msc_alloc_supplies-Stealing Info');
Line: 1757

                INSERT INTO MSC_ALLOC_SUPPLIES
                        (plan_id, inventory_item_id, organization_id, sr_instance_id,
                         demand_class, supply_date, parent_transaction_id,
                         allocated_quantity, order_type, sales_order_line_id,demand_source_type, stealing_flag,--cmro
                         supply_quantity, original_item_id, original_order_type,
                         created_by, creation_date, last_updated_by, last_update_date, from_demand_class, refresh_number, -- For summary enhancement
                         --bug3684383
                         order_number,customer_id,ship_to_site_id)
                VALUES
                        (p_plan_id, p_pf_item_id, p_organization_id,
                         p_sr_instance_id, p_stealing_demand_class, l_pf_stealing_rec_date,
                         p_transaction_id, p_pf_stealing_quantity, 50, p_identifier,p_demand_source_type, 1,--cmro
                         p_pf_stealing_quantity, p_mem_item_id, 46,
                         G_USER_ID, l_sysdate, G_USER_ID, l_sysdate, p_stolen_demand_class, p_refresh_number, -- For summary enhancement
                         --bug3684383
                         p_order_number,MSC_ATP_PVT.G_PARTNER_ID,MSC_ATP_PVT.G_PARTNER_SITE_ID);
Line: 1777

                INSERT INTO MSC_ALLOC_SUPPLIES
                        (plan_id, inventory_item_id, organization_id, sr_instance_id,
                         demand_class, supply_date, parent_transaction_id,
                         allocated_quantity, order_type, sales_order_line_id,demand_source_type, stealing_flag,--cmro
                         supply_quantity, original_item_id, original_order_type,
                         created_by, creation_date, last_updated_by, last_update_date, from_demand_class, refresh_number, -- For summary enhancement
                         --bug3684383
                         order_number,customer_id,ship_to_site_id)
                VALUES
                        (p_plan_id, p_pf_item_id, p_organization_id,
                         p_sr_instance_id, p_stealing_demand_class, l_pf_stealing_rec_date,
                         msc_supplies_s.nextval, p_pf_stealing_quantity, 50, p_identifier,p_demand_source_type, 1,--cmro
                         p_pf_stealing_quantity, p_mem_item_id, 46,
                         G_USER_ID, l_sysdate, G_USER_ID, l_sysdate, p_stolen_demand_class, p_refresh_number, -- For summary enhancement
                         --bug3684383
                         p_order_number,MSC_ATP_PVT.G_PARTNER_ID,MSC_ATP_PVT.G_PARTNER_SITE_ID)

                         RETURNING parent_transaction_id INTO p_transaction_id;
Line: 1801

                        msc_sch_wb.atp_debug('Add_PF_Stealing_Supply_Details: ' || 'before insert into msc_alloc_supplies-Stolen Info');
Line: 1804

            INSERT INTO MSC_ALLOC_SUPPLIES
                        (plan_id, inventory_item_id, organization_id, sr_instance_id,
                         demand_class, supply_date, parent_transaction_id,
                         allocated_quantity, order_type, sales_order_line_id,demand_source_type, stealing_flag,--cmro
                         supply_quantity, original_item_id, original_order_type,
                         created_by, creation_date, last_updated_by, last_update_date, from_demand_class, refresh_number, -- For summary enhancement
                         --bug3684383
                         order_number,customer_id,ship_to_site_id)
            VALUES
                        (p_plan_id, p_pf_item_id, p_organization_id,
                         p_sr_instance_id, p_stolen_demand_class, l_pf_stealing_rec_date,
                         p_transaction_id, -1 * p_pf_stealing_quantity, 50, p_identifier,p_demand_source_type, 1,--cmro
                         -1 * p_pf_stealing_quantity, p_mem_item_id, 47,
                         G_USER_ID, l_sysdate, G_USER_ID, l_sysdate, p_stealing_demand_class, p_refresh_number, -- For summary enhancement
                         --bug3684383
                         p_order_number,MSC_ATP_PVT.G_PARTNER_ID,MSC_ATP_PVT.G_PARTNER_SITE_ID);
Line: 1825

                msc_sch_wb.atp_debug('Add_PF_Stealing_Supply_Details: ' || 'Total Rows inserted ' || l_rows_proc);
Line: 1978

|  o  Called from Insert_Details procedure.
|  o  Calls these private procedures:
|       -  Get_Mat_Avail_Pf_Ods_Dtls - For PF ODS ATP
|       -  Get_Mat_Avail_Pf_Pds_Dtls - For Unallocated Time Phased PF ATP
+-------------------------------------------------------------------------*/
PROCEDURE Get_Mat_Avail_Pf_Dtls (
        p_item_id                       IN      NUMBER,
        p_request_item_id               IN      NUMBER,
        p_org_id                        IN      NUMBER,
        p_instance_id                   IN      NUMBER,
        p_plan_id                       IN      NUMBER,
        p_cal_code                      IN      VARCHAR2,
        p_sysdate_seq_num               IN      NUMBER,
        p_sys_next_date                 IN      DATE,
        p_demand_class                  IN      VARCHAR2,
        p_default_atp_rule_id           IN      NUMBER,
        p_default_dmd_class             IN      VARCHAR2,
        p_itf                           IN      DATE,
        p_level                         IN      NUMBER,
        p_scenario_id                   IN      NUMBER,
        p_identifier                    IN      NUMBER,
        x_return_status                 OUT     NOCOPY VARCHAR2
) IS
        l_return_status                 VARCHAR2(1);
Line: 2094

        SELECT SD_DATE, sum(SD_QTY)
        BULK COLLECT INTO x_atp_dates, x_atp_qtys
        FROM
        (SELECT  /*+ INDEX(D MSC_ATP_SUMMARY_SO_U1) */
                 D.SD_DATE SD_DATE,
                 -1* D.SD_QTY SD_QTY
        FROM        MSC_ATP_SUMMARY_SO D,
                    MSC_ATP_RULES R,
                    MSC_SYSTEM_ITEMS I,
                    MSC_SYSTEM_ITEMS I0
        WHERE       I0.SR_INVENTORY_ITEM_ID = p_item_id
        AND         I0.ORGANIZATION_ID = p_org_id
        AND         I0.SR_INSTANCE_ID = p_instance_id
        AND         I0.PLAN_ID = p_plan_id
        AND         I.PRODUCT_FAMILY_ID = I0.INVENTORY_ITEM_ID
        AND         I.ORGANIZATION_ID = I0.ORGANIZATION_ID
        AND         I.SR_INSTANCE_ID = I0.SR_INSTANCE_ID
        AND         I.PLAN_ID = I0.PLAN_ID
        AND         R.RULE_ID (+) = NVL(I.ATP_RULE_ID, p_default_atp_rule_id)
        AND	       R.SR_INSTANCE_ID (+)= I.SR_INSTANCE_ID
        AND	       D.PLAN_ID = I.PLAN_ID
        AND	       D.SR_INSTANCE_ID = I.SR_INSTANCE_ID
        AND	       D.INVENTORY_ITEM_ID = I.INVENTORY_ITEM_ID
        AND 	       D.ORGANIZATION_ID = I.ORGANIZATION_ID
        AND         D.SD_DATE < NVL(p_itf,
                         D.SD_DATE + 1)
        AND         NVL(D.DEMAND_CLASS, NVL(p_default_dmd_class,'@@@')) =
                             DECODE(R.DEMAND_CLASS_ATP_FLAG,
                             1, NVL(P_DEMAND_CLASS, NVL(p_default_dmd_class,'@@@')),
                             NVL(D.DEMAND_CLASS, NVL(p_default_dmd_class,'@@@')))
        AND         D.sd_qty <> 0
        UNION ALL

        SELECT      /*+ INDEX(S MSC_ATP_SUMMARY_SD_U1) */
                    S.SD_DATE SD_DATE,
                    S.SD_QTY SD_QTY
        FROM        MSC_ATP_SUMMARY_SD S,
                    MSC_ATP_RULES R,
                    MSC_SYSTEM_ITEMS I
        WHERE       I.SR_INVENTORY_ITEM_ID = p_item_id
        AND         I.ORGANIZATION_ID = p_org_id
        AND         I.SR_INSTANCE_ID = p_instance_id
        AND         I.PLAN_ID = p_plan_id
        AND         R.RULE_ID (+) = NVL(I.ATP_RULE_ID, p_default_atp_rule_id)
        AND         R.SR_INSTANCE_ID (+)= I.SR_INSTANCE_ID
        AND	       S.PLAN_ID = I.PLAN_ID
        AND	       S.SR_INSTANCE_ID = I.SR_INSTANCE_ID
        AND	       S.INVENTORY_ITEM_ID = I.INVENTORY_ITEM_ID
        AND 	       S.ORGANIZATION_ID = I.ORGANIZATION_ID
        AND         S.SD_DATE < NVL(p_itf, S.SD_DATE + 1)
        AND         NVL(S.DEMAND_CLASS, NVL(p_default_dmd_class,'@@@')) =
                             DECODE(R.DEMAND_CLASS_ATP_FLAG,
                             1, NVL(P_DEMAND_CLASS, NVL(p_default_dmd_class,'@@@')),
                             NVL(S.DEMAND_CLASS, NVL(p_default_dmd_class,'@@@')))
        AND         S.SD_QTY <> 0
        )
        group by  SD_DATE
        order by SD_DATE; --4698199
Line: 2192

        SELECT 	SD_DATE, SUM(SD_QTY)
        BULK COLLECT INTO x_atp_dates, x_atp_qtys
        FROM (
        SELECT  C.PRIOR_DATE SD_DATE,
                -1* D.USING_REQUIREMENT_QUANTITY SD_QTY
    FROM        MSC_CALENDAR_DATES C,
		MSC_DEMANDS D,
                MSC_ATP_RULES R,
                MSC_SYSTEM_ITEMS I,
                MSC_SYSTEM_ITEMS I0
    WHERE       I0.SR_INVENTORY_ITEM_ID = p_item_id
    AND         I0.ORGANIZATION_ID = p_org_id
    AND         I0.SR_INSTANCE_ID = p_instance_id
    AND         I0.PLAN_ID = p_plan_id
    AND         I.PRODUCT_FAMILY_ID = I0.INVENTORY_ITEM_ID
    AND         I.ORGANIZATION_ID = I0.ORGANIZATION_ID
    AND		I.SR_INSTANCE_ID = I0.SR_INSTANCE_ID
    AND		I.PLAN_ID = I0.PLAN_ID
    AND         R.RULE_ID (+) = NVL(I.ATP_RULE_ID, p_default_atp_rule_id)
    AND		R.SR_INSTANCE_ID (+)= I.SR_INSTANCE_ID
    AND		D.PLAN_ID = I.PLAN_ID
    AND		D.SR_INSTANCE_ID = I.SR_INSTANCE_ID
    AND		D.INVENTORY_ITEM_ID = I.INVENTORY_ITEM_ID
    AND 	D.ORGANIZATION_ID = I.ORGANIZATION_ID
    AND         USING_REQUIREMENT_QUANTITY <> 0
    AND         D.ORIGINATION_TYPE in (
                DECODE(R.INCLUDE_DISCRETE_WIP_DEMAND, 1, 3, -1),
                DECODE(R.INCLUDE_FLOW_SCHEDULE_DEMAND, 1, 25, -1),
                DECODE(R.INCLUDE_USER_DEFINED_DEMAND, 1, 42, -1),
                DECODE(R.INCLUDE_NONSTD_WIP_RECEIPTS, 1, 2, -1),
                DECODE(R.INCLUDE_REP_WIP_DEMAND, 1, 4, -1))
    AND		C.CALENDAR_CODE = p_cal_code
    AND		C.EXCEPTION_SET_ID = G_CAL_EXC_SET_ID
    AND         C.SR_INSTANCE_ID = I0.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))
                -- new clause 2640489, DECODE is also OR, Explicit OR gives CBO choices
    AND         (R.PAST_DUE_DEMAND_CUTOFF_FENCE is NULL OR
                 C.PRIOR_SEQ_NUM >= p_sysdate_seq_num - R.PAST_DUE_DEMAND_CUTOFF_FENCE)
    AND         C.PRIOR_DATE < NVL(p_itf, C.PRIOR_DATE + 1)
                -- new clause 2640489, DECODE is also OR, Explicit OR gives CBO choices
    AND         (R.DEMAND_CLASS_ATP_FLAG <> 1 OR
                 NVL(D.DEMAND_CLASS, NVL(p_default_dmd_class,'@@@')) =
                   NVL(P_DEMAND_CLASS, NVL(p_default_dmd_class,'@@@')) )
    UNION ALL
    -- bug 2461071 to_date and trunc
    SELECT      DECODE(D.RESERVATION_TYPE, 2, p_sys_next_date, TRUNC(D.REQUIREMENT_DATE)) SD_DATE, --bug 2287148
                -1*(D.PRIMARY_UOM_QUANTITY-GREATEST(NVL(D.RESERVATION_QUANTITY,0),
                    D.COMPLETED_QUANTITY)) SD_QTY
    FROM
                -- Bug 1756263, performance fix, use EXISTS subquery instead.
		--MSC_CALENDAR_DATES C,
		MSC_SALES_ORDERS D,
                MSC_ATP_RULES R,
                MSC_SYSTEM_ITEMS I,
                MSC_SYSTEM_ITEMS I0,
                MSC_CALENDAR_DATES C
    WHERE       I0.SR_INVENTORY_ITEM_ID = p_item_id
    AND         I0.ORGANIZATION_ID = p_org_id
    AND         I0.SR_INSTANCE_ID = p_instance_id
    AND         I0.PLAN_ID = p_plan_id
    AND         I.PRODUCT_FAMILY_ID = I0.INVENTORY_ITEM_ID
    AND         I.ORGANIZATION_ID = I0.ORGANIZATION_ID
    AND         I.SR_INSTANCE_ID = I0.SR_INSTANCE_ID
    AND         I.PLAN_ID = I0.PLAN_ID
    AND         R.RULE_ID (+) = NVL(I.ATP_RULE_ID, p_default_atp_rule_id)
    AND         R.SR_INSTANCE_ID (+)= I.SR_INSTANCE_ID
    AND		D.SR_INSTANCE_ID = I.SR_INSTANCE_ID
    AND		D.INVENTORY_ITEM_ID = I.INVENTORY_ITEM_ID
    AND 	D.ORGANIZATION_ID = I.ORGANIZATION_ID
    AND         D.DEMAND_SOURCE_TYPE <> DECODE(R.INCLUDE_SALES_ORDERS,2,2,-1)
    AND         D.DEMAND_SOURCE_TYPE <> DECODE(R.INCLUDE_INTERNAL_ORDERS,2,8,-1)
    AND         D.PRIMARY_UOM_QUANTITY > GREATEST(NVL(D.RESERVATION_QUANTITY,0),
                D.COMPLETED_QUANTITY)
    AND         DECODE(MSC_ATP_PVT.G_APPS_VER,3,D.COMPLETED_QUANTITY,0) = 0 -- 2300767
    AND         (D.SUBINVENTORY IS NULL OR D.SUBINVENTORY IN
                   (SELECT S.SUB_INVENTORY_CODE
                    FROM   MSC_SUB_INVENTORIES S
                    WHERE  S.ORGANIZATION_ID=D.ORGANIZATION_ID
                    AND    S.PLAN_ID = I.PLAN_ID
                    AND    S.SR_INSTANCE_ID = D.SR_INSTANCE_ID
                    AND    S.INVENTORY_ATP_CODE =DECODE(R.DEFAULT_ATP_SOURCES,
                                   1, 1, NULL, 1, S.INVENTORY_ATP_CODE)
                    AND    S.NETTING_TYPE =DECODE(R.DEFAULT_ATP_SOURCES,
                                   2, 1, S.NETTING_TYPE)))
    AND         (D.RESERVATION_TYPE = 2
                 OR D.PARENT_DEMAND_ID IS NULL
                 OR (D.RESERVATION_TYPE = 3 AND
                     ((R.INCLUDE_DISCRETE_WIP_RECEIPTS = 1) or
                      (R.INCLUDE_NONSTD_WIP_RECEIPTS = 1))))
                -- new clause, remove existing Exists Query 2640489
    AND      (R.PAST_DUE_DEMAND_CUTOFF_FENCE is NULL OR
                 C.PRIOR_SEQ_NUM >= p_sysdate_seq_num - R.PAST_DUE_DEMAND_CUTOFF_FENCE)
    AND      C.CALENDAR_CODE = p_cal_code
    AND      C.SR_INSTANCE_ID = I.SR_INSTANCE_ID
    AND      C.EXCEPTION_SET_ID = -1
    AND      C.CALENDAR_DATE = TRUNC(D.REQUIREMENT_DATE)
    AND      C.PRIOR_DATE < NVL(p_itf, C.PRIOR_DATE + 1)
                -- new clause 2640489, DECODE is also OR, Explicit OR gives CBO choices
     AND        (R.DEMAND_CLASS_ATP_FLAG <> 1
                 OR NVL(D.DEMAND_CLASS, NVL(p_default_dmd_class,'@@@'))
                  = NVL(P_DEMAND_CLASS, NVL(p_default_dmd_class,'@@@')) )
    UNION ALL
    SELECT      -- C.NEXT_DATE SD_DATE, -- 2859130
                C.CALENDAR_DATE SD_DATE,
                --- bug 1843471, 2563139
                Decode(order_type,
                30, Decode(Sign(S.Daily_rate * (TRUNC(C.Calendar_date) -  TRUNC(S.FIRST_UNIT_START_DATE))- S.qty_completed),
                             -1,S.Daily_rate* (TRUNC(C.Calendar_date) - TRUNC(S.First_Unit_Start_date) +1)- S.qty_completed,
                              S.Daily_rate),
                -- Bug 2132288, 2442009
                5, NVL(S.DAILY_RATE, NVL(S.FIRM_QUANTITY,S.NEW_ORDER_QUANTITY)),
                -- End Bug 2132288, 2442009

                 -- Bug 2439264, for OPM, lots with order_processing = "N" will be populated with
                 -- non_nettable_qty and need to be excluded from ATP calculations.

                    (NVL(S.FIRM_QUANTITY,S.NEW_ORDER_QUANTITY) - NVL(S.NON_NETTABLE_QTY, 0)) )SD_QTY
                -- NVL(S.FIRM_QUANTITY,S.NEW_ORDER_QUANTITY) )SD_QTY
    FROM        MSC_CALENDAR_DATES C,
		MSC_SUPPLIES S,
                MSC_ATP_RULES R,
                MSC_SYSTEM_ITEMS I,
                MSC_SYSTEM_ITEMS I0,  --Bug 13072988
                MSC_SUB_INVENTORIES MSI
    WHERE       I0.SR_INVENTORY_ITEM_ID = p_item_id  -- Bug 13072988, aggregate the supply of member-items
    AND         I0.ORGANIZATION_ID = p_org_id        -- as we are aggregating the demands also.
    AND         I0.SR_INSTANCE_ID = p_instance_id
    AND         I0.PLAN_ID = p_plan_id
    AND         I.PRODUCT_FAMILY_ID = I0.INVENTORY_ITEM_ID
    AND         I.ORGANIZATION_ID = I0.ORGANIZATION_ID
    AND         I.SR_INSTANCE_ID = I0.SR_INSTANCE_ID
    AND         I.PLAN_ID = I0.PLAN_ID
    AND         R.RULE_ID (+) = NVL(I.ATP_RULE_ID, p_default_atp_rule_id)
    AND         R.SR_INSTANCE_ID (+)= I.SR_INSTANCE_ID
    AND		S.PLAN_ID = I.PLAN_ID
    AND		S.SR_INSTANCE_ID = I.SR_INSTANCE_ID
    AND		S.INVENTORY_ITEM_ID = I.INVENTORY_ITEM_ID
    AND 	S.ORGANIZATION_ID = I.ORGANIZATION_ID
    ---bug 1843471
    --AND         NVL(S.FIRM_QUANTITY,S.NEW_ORDER_QUANTITY) <> 0 -- 1243985
                -- Bug 2132288, 2442009, 2453938
                -- Do not include supplies equal to 0 as per 1243985
                -- However at the same time, support negative supplies as per Bug 2362079 use ABS.
                -- Support Repetitive schedules as per 1843471
                -- Support Repetitive MPS as per 2132288, 2442009
    AND         Decode(S.order_type, 30, S.Daily_rate* (TRUNC(C.Calendar_date) - TRUNC(S.First_Unit_Start_date) + 1),
                                     5, NVL(S.Daily_rate, ABS(NVL(S.FIRM_QUANTITY,S.NEW_ORDER_QUANTITY)) ),
                        ABS(NVL(S.FIRM_QUANTITY,S.NEW_ORDER_QUANTITY)) ) >
                      Decode(S.order_type, 30, S.qty_completed,0)
                -- End Bug 2132288, 2442009, 2453938
    AND         (S.ORDER_TYPE IN (
                DECODE(R.INCLUDE_PURCHASE_ORDERS, 1, 1, -1),
                DECODE(R.INCLUDE_PURCHASE_ORDERS, 1, 8, -1), -- 1882898
                DECODE(R.INCLUDE_DISCRETE_WIP_RECEIPTS, 1, 3, -1),
                DECODE(R.INCLUDE_REP_WIP_RECEIPTS, 1, 30, -1),
                DECODE(R.INCLUDE_NONSTD_WIP_RECEIPTS, 1, 7, -1),
                DECODE(R.INCLUDE_NONSTD_WIP_RECEIPTS, 1, 15, -1),
                DECODE(R.INCLUDE_INTERORG_TRANSFERS, 1, 11, -1),
                DECODE(R.INCLUDE_INTERORG_TRANSFERS, 1, 12, -1),
                DECODE(R.INCLUDE_ONHAND_AVAILABLE, 1, 18, -1),
                DECODE(R.INCLUDE_INTERNAL_REQS, 1, 2, -1),
                DECODE(R.INCLUDE_SUPPLIER_REQS, 1, 2, -1),
                DECODE(R.INCLUDE_USER_DEFINED_SUPPLY, 1, 41, -1),
                DECODE(R.INCLUDE_FLOW_SCHEDULE_RECEIPTS, 1, 27, -1),
                DECODE(R.INCLUDE_FLOW_SCHEDULE_RECEIPTS, 1, 28, -1))
                OR
                ((R.INCLUDE_REP_MPS = 1 OR R.INCLUDE_DISCRETE_MPS = 1) AND
                S.ORDER_TYPE = 5
		-- bug 2461071
                AND exists (SELECT '1'
                            FROM    MSC_DESIGNATORS
                            WHERE   INVENTORY_ATP_FLAG = 1
                            AND     DESIGNATOR_TYPE = 2
                            AND     DESIGNATOR_ID = S.SCHEDULE_DESIGNATOR_ID
                            AND     DECODE(R.demand_class_atp_flag,1,
                                    nvl(demand_class,
                                    nvl(p_default_dmd_class,'@@@')),'@@@') =
                                    DECODE(R.demand_class_atp_flag,1,
                                    nvl(p_demand_class,
                                    nvl(p_default_dmd_class,'@@@')),'@@@')
)))
                --AND MSC_ATP_FUNC.MPS_ATP(S.SCHEDULE_DESIGNATOR_ID) = 1))
    AND		C.CALENDAR_CODE = p_cal_code
    AND		C.EXCEPTION_SET_ID = G_CAL_EXC_SET_ID
    AND         C.SR_INSTANCE_ID = I.SR_INSTANCE_ID
                 -- Bug 2132288, 2442009
    AND         C.CALENDAR_DATE BETWEEN TRUNC(NVL(S.FIRM_DATE,S.NEW_SCHEDULE_DATE))
                    AND TRUNC(NVL(DECODE(S.ORDER_TYPE, 5, S.LAST_UNIT_START_DATE,
                                   S.LAST_UNIT_COMPLETION_DATE), NVL(S.FIRM_DATE,S.NEW_SCHEDULE_DATE)))
    AND         DECODE(DECODE(S.ORDER_TYPE, 5, S.LAST_UNIT_START_DATE,
                                   S.LAST_UNIT_COMPLETION_DATE),
                       NULL, C.NEXT_SEQ_NUM, C.SEQ_NUM) IS NOT NULL
                 -- End Bug 2132288, 2442009
                 -- new clause 2640489, SIMPLIFY FOR CBO
    AND         (S.ORDER_TYPE = 18
                 OR R.PAST_DUE_SUPPLY_CUTOFF_FENCE is NULL
                 OR C.NEXT_SEQ_NUM >= p_sysdate_seq_num - R.PAST_DUE_SUPPLY_CUTOFF_FENCE)
    AND         C.NEXT_DATE >= DECODE(S.ORDER_TYPE, 27, TRUNC(l_sysdate),
                                                28, TRUNC(l_sysdate),
                                                    C.NEXT_DATE)
    AND         C.NEXT_DATE < NVL(p_itf, C.NEXT_DATE + 1)
    AND         (R.DEMAND_CLASS_ATP_FLAG <> 1
                 OR S.ORDER_TYPE = 5
                 OR NVL(S.DEMAND_CLASS, NVL(p_default_dmd_class,'@@@')) =
                    NVL(P_DEMAND_CLASS, NVL(p_default_dmd_class,'@@@')) )
					 ---bug 1735580
                --- filter out non-atpable sub-inventories
    AND          MSI.plan_id (+) =  p_plan_id
    AND          MSI.organization_id (+) = p_org_id
    AND          MSI.sr_instance_id (+) =  p_instance_id
    --aND          S.subinventory_code = (+) MSI.sub_inventory_code
    AND          MSI.sub_inventory_code (+) = S.subinventory_code
    AND          NVL(MSI.inventory_atp_code,1) <> 2 -- filter out non-atpable subinventories
    -- SQL Query changes End 2640489
)
GROUP BY SD_DATE
order by SD_DATE; --4698199
Line: 2457

        SELECT 	SD_DATE, SUM(SD_QTY)
        BULK COLLECT INTO x_atp_dates, x_atp_qtys
        FROM (
            SELECT      /*+ INDEX(S MSC_ATP_SUMMARY_SD_U1) */
                        SD_DATE, SD_QTY
            FROM        MSC_ATP_SUMMARY_SD S,
                        MSC_SYSTEM_ITEMS I
            WHERE       I.SR_INVENTORY_ITEM_ID in (p_sr_member_id, p_sr_family_id)
            AND         I.ORGANIZATION_ID = p_org_id
            AND         I.SR_INSTANCE_ID = p_instance_id
            AND         I.PLAN_ID = p_plan_id
            AND         S.PLAN_ID = I.PLAN_ID
            AND         S.SR_INSTANCE_ID = I.SR_INSTANCE_ID
            AND         S.INVENTORY_ITEM_ID = I.INVENTORY_ITEM_ID
            AND         S.ORGANIZATION_ID = I.ORGANIZATION_ID
            AND         S.SD_DATE < NVL(p_itf, S.SD_DATE + 1)

            UNION ALL
            --bug3700564 added trunc
            SELECT      TRUNC(AD.DEMAND_DATE) SD_DATE,
                        decode(AD.ALLOCATED_QUANTITY,           -- Consider unscheduled orders as dummy supplies
                               0, OLD_ALLOCATED_QUANTITY,       -- For summary enhancement
                                  -1 * AD.ALLOCATED_QUANTITY) SD_QTY
            FROM        MSC_ALLOC_DEMANDS AD,
                        MSC_SYSTEM_ITEMS I,
                        MSC_PLANS P                             -- For summary enhancement
            WHERE       I.SR_INVENTORY_ITEM_ID in (p_sr_member_id, p_sr_family_id)
            AND         I.ORGANIZATION_ID = p_org_id
            AND         I.SR_INSTANCE_ID = p_instance_id
            AND         I.PLAN_ID = p_plan_id
            AND         AD.PLAN_ID = I.PLAN_ID
            AND         AD.SR_INSTANCE_ID = I.SR_INSTANCE_ID
            AND         AD.INVENTORY_ITEM_ID = I.INVENTORY_ITEM_ID
            AND         AD.ORGANIZATION_ID = I.ORGANIZATION_ID
            --bug3700564 added trunc
            AND         TRUNC(AD.DEMAND_DATE) < NVL(p_itf, TRUNC(AD.DEMAND_DATE) + 1)
            AND         P.PLAN_ID = AD.PLAN_ID
            AND         (AD.REFRESH_NUMBER > P.LATEST_REFRESH_NUMBER
                        OR AD.REFRESH_NUMBER = p_refresh_number)

            UNION ALL
            --bug3700564 added trunc
            SELECT      TRUNC(SA.SUPPLY_DATE) SD_DATE,
                        SA.ALLOCATED_QUANTITY SD_QTY
            FROM        MSC_ALLOC_SUPPLIES SA,
                        MSC_SYSTEM_ITEMS I,
                        MSC_PLANS P                             -- For summary enhancement
            WHERE       I.SR_INVENTORY_ITEM_ID in (p_sr_member_id, p_sr_family_id)
            AND         I.ORGANIZATION_ID = p_org_id
            AND         I.SR_INSTANCE_ID = p_instance_id
            AND         I.PLAN_ID = p_plan_id
            AND         SA.PLAN_ID = I.PLAN_ID
            AND         SA.SR_INSTANCE_ID = I.SR_INSTANCE_ID
            AND         SA.INVENTORY_ITEM_ID = I.INVENTORY_ITEM_ID
            AND         SA.ORGANIZATION_ID = I.ORGANIZATION_ID
            AND         SA.ALLOCATED_QUANTITY <> 0
            --bug3700564 added trunc
            AND         TRUNC(SA.SUPPLY_DATE) < NVL(p_itf, TRUNC(SA.SUPPLY_DATE) + 1)
            AND         P.PLAN_ID = SA.PLAN_ID
            AND         (SA.REFRESH_NUMBER > P.LATEST_REFRESH_NUMBER
                        OR SA.REFRESH_NUMBER = p_refresh_number)
        )
        GROUP BY SD_DATE
        order by SD_DATE; --4698199
Line: 2561

        SELECT 	SD_DATE, SUM(SD_QTY)
        BULK COLLECT INTO x_atp_dates, x_atp_qtys
        FROM (
            --bug3700564 added trunc
            SELECT      TRUNC(AD.DEMAND_DATE) SD_DATE,
                        -1 * AD.ALLOCATED_QUANTITY SD_QTY
            FROM        MSC_ALLOC_DEMANDS AD,
                        MSC_SYSTEM_ITEMS I
            WHERE       I.SR_INVENTORY_ITEM_ID in (p_sr_member_id, p_sr_family_id)
            AND         I.ORGANIZATION_ID = p_org_id
            AND         I.SR_INSTANCE_ID = p_instance_id
            AND         I.PLAN_ID = p_plan_id
            AND         AD.PLAN_ID = I.PLAN_ID
            AND         AD.SR_INSTANCE_ID = I.SR_INSTANCE_ID
            AND         AD.INVENTORY_ITEM_ID = I.INVENTORY_ITEM_ID
            AND         AD.ORGANIZATION_ID = I.ORGANIZATION_ID
            AND         AD.ORIGINATION_TYPE <> 52
            AND         AD.ALLOCATED_QUANTITY <> 0
            --bug3700564 added trunc
            AND         TRUNC(AD.DEMAND_DATE) < NVL(p_itf, TRUNC(AD.DEMAND_DATE) + 1)
            UNION ALL
            --bug3700564 added trunc
            SELECT      TRUNC(SA.SUPPLY_DATE) SD_DATE,
                        SA.ALLOCATED_QUANTITY SD_QTY
            FROM        MSC_ALLOC_SUPPLIES SA,
                        MSC_SYSTEM_ITEMS I
            WHERE       I.SR_INVENTORY_ITEM_ID in (p_sr_member_id, p_sr_family_id)
            AND         I.ORGANIZATION_ID = p_org_id
            AND         I.SR_INSTANCE_ID = p_instance_id
            AND         I.PLAN_ID = p_plan_id
            AND         SA.PLAN_ID = I.PLAN_ID
            AND         SA.SR_INSTANCE_ID = I.SR_INSTANCE_ID
            AND         SA.INVENTORY_ITEM_ID = I.INVENTORY_ITEM_ID
            AND         SA.ORGANIZATION_ID = I.ORGANIZATION_ID
            AND         SA.ALLOCATED_QUANTITY <> 0
            --bug3700564 added trunc
            AND         TRUNC(SA.SUPPLY_DATE) >= DECODE(SA.ORIGINAL_ORDER_TYPE,
                                                        27, TRUNC(SYSDATE),
                                                        28, TRUNC(SYSDATE),
                                                        TRUNC(SA.SUPPLY_DATE))
            AND         TRUNC(SA.SUPPLY_DATE) < NVL(p_itf, TRUNC(SA.SUPPLY_DATE) + 1)
        )
        GROUP BY SD_DATE
        order by SD_DATE; --4698199
Line: 2649

        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,
        	ORIG_CUSTOMER_SITE_NAME,--bug3263368
                ORIG_CUSTOMER_NAME, --bug3263368
                ORIG_DEMAND_CLASS, --bug3263368
                ORIG_REQUEST_DATE --bug3263368
        )

        (        -- SQL Query changes Begin 2640489
        SELECT      p_level col1,
		p_identifier col2,
                p_scenario_id col3,
                p_item_id col4 ,
                p_request_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,
		I.UOM_CODE col16,
		1 col17, -- demand
		D.ORIGINATION_TYPE col18,
                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 col24,
		C.PRIOR_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,
		l_sysdate,
		G_USER_ID,
		l_sysdate,
		G_USER_ID,
		G_USER_ID,
		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_ATP_RULES R,
                MSC_SYSTEM_ITEMS I,
                MSC_SYSTEM_ITEMS I0,
                MSC_TRADING_PARTNERS    MTP,--bug3263368
                MSC_TRADING_PARTNER_SITES    MTPS --bug3263368
    WHERE       I0.SR_INVENTORY_ITEM_ID = p_item_id
    AND         I0.ORGANIZATION_ID = p_org_id
    AND		I0.SR_INSTANCE_ID = p_instance_id
    AND		I0.PLAN_ID = p_plan_id
    AND       	I.PRODUCT_FAMILY_ID = I0.INVENTORY_ITEM_ID
    AND         I.ORGANIZATION_ID = I0.ORGANIZATION_ID
    AND         I.SR_INSTANCE_ID = I0.SR_INSTANCE_ID
    AND         I.PLAN_ID = I0.PLAN_ID
    AND         R.RULE_ID (+) = NVL(I.ATP_RULE_ID, p_default_atp_rule_id)
    AND         R.SR_INSTANCE_ID (+) = I.SR_INSTANCE_ID
    AND		D.PLAN_ID = I.PLAN_ID
    AND		D.SR_INSTANCE_ID = I.SR_INSTANCE_ID
    AND		D.INVENTORY_ITEM_ID = I.INVENTORY_ITEM_ID
    AND 	D.ORGANIZATION_ID = I.ORGANIZATION_ID
    AND         USING_REQUIREMENT_QUANTITY <> 0
    AND	        D.ORIGINATION_TYPE in (
                DECODE(R.INCLUDE_DISCRETE_WIP_DEMAND, 1, 3, -1),
                DECODE(R.INCLUDE_FLOW_SCHEDULE_DEMAND, 1, 25, -1),
                DECODE(R.INCLUDE_USER_DEFINED_DEMAND, 1, 42, -1),
                DECODE(R.INCLUDE_NONSTD_WIP_RECEIPTS, 1, 2, -1),
                DECODE(R.INCLUDE_REP_WIP_DEMAND, 1, 4, -1))
    AND         D.SHIP_TO_SITE_ID = MTPS.PARTNER_SITE_ID(+) --bug3263368
    AND         D.CUSTOMER_ID = MTP.PARTNER_ID(+)--bug3263368
    AND		C.CALENDAR_CODE=p_cal_code
    AND		C.EXCEPTION_SET_ID=G_CAL_EXC_SET_ID
    AND         C.SR_INSTANCE_ID = p_instance_id
    -- since we store repetitive schedule demand in different ways for
    -- ods (total quantity on start date) and pds  (daily quantity from
    -- start date to end date), we need to make sure we only select work day
    -- for pds's repetitive schedule demand.
    AND         C.CALENDAR_DATE BETWEEN TRUNC(D.USING_ASSEMBLY_DEMAND_DATE) AND
                TRUNC(NVL(D.ASSEMBLY_DEMAND_COMP_DATE,
                          D.USING_ASSEMBLY_DEMAND_DATE))
    AND         (R.PAST_DUE_DEMAND_CUTOFF_FENCE is NULL OR
                 C.PRIOR_SEQ_NUM >= p_sysdate_seq_num - R.PAST_DUE_DEMAND_CUTOFF_FENCE)
    AND         C.PRIOR_DATE < NVL(p_itf, C.PRIOR_DATE + 1)
    AND         (R.DEMAND_CLASS_ATP_FLAG <> 1 OR
                 NVL(D.DEMAND_CLASS, NVL(p_default_dmd_class,'@@@')) =
                   NVL(P_DEMAND_CLASS, NVL(p_default_dmd_class,'@@@')) )
    UNION ALL
    SELECT      p_level col1,
                p_identifier col2,
                p_scenario_id col3,
                p_item_id col4,
                p_request_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,
                I.UOM_CODE col16,
                1 col17, -- demand
                DECODE(D.RESERVATION_TYPE, 1, 6, 10)  col18,
                l_null_char col19,
                D.SR_INSTANCE_ID col20,
                l_null_num col21,
                to_number(D.DEMAND_SOURCE_LINE) col22,
                l_null_num col23,
                -1*(D.PRIMARY_UOM_QUANTITY-
                GREATEST(NVL(D.RESERVATION_QUANTITY,0), D.COMPLETED_QUANTITY))
                col24,
                --C.PRIOR_DATE
                -- bug 2461071 to_date
                DECODE(D.RESERVATION_TYPE,2,p_sys_next_date, TRUNC(D.REQUIREMENT_DATE)) col25 ,
                l_null_num col26,
                D.SALES_ORDER_NUMBER col27,
                l_null_num col28,
                l_null_num col29,
		l_sysdate,
		G_USER_ID,
		l_sysdate,
		G_USER_ID,
		G_USER_ID,
	        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_SALES_ORDERS D,
                MSC_ATP_RULES R,
                MSC_SYSTEM_ITEMS I,
                MSC_SYSTEM_ITEMS I0,
                MSC_CALENDAR_DATES C,
                MSC_TRADING_PARTNERS    MTP,--bug3263368
                MSC_TRADING_PARTNER_SITES    MTPS --bug3263368
    WHERE       I0.SR_INVENTORY_ITEM_ID = p_item_id
    AND         I0.ORGANIZATION_ID = p_org_id
    AND         I0.SR_INSTANCE_ID = p_instance_id
    AND         I0.PLAN_ID = p_plan_id
    AND         I.PRODUCT_FAMILY_ID = I0.INVENTORY_ITEM_ID
    AND         I.ORGANIZATION_ID = I0.ORGANIZATION_ID
    AND         I.SR_INSTANCE_ID = I0.SR_INSTANCE_ID
    AND         I.PLAN_ID = I0.PLAN_ID
    AND         R.RULE_ID (+) = NVL(I.ATP_RULE_ID, p_default_atp_rule_id)
    AND         R.SR_INSTANCE_ID (+) = I.SR_INSTANCE_ID
    AND		D.SR_INSTANCE_ID = I.SR_INSTANCE_ID
    AND		D.INVENTORY_ITEM_ID = I.INVENTORY_ITEM_ID
    AND 	D.ORGANIZATION_ID = I.ORGANIZATION_ID
    AND         D.DEMAND_SOURCE_TYPE <> DECODE(R.INCLUDE_SALES_ORDERS,2,2,-1)
    AND         D.DEMAND_SOURCE_TYPE <> DECODE(R.INCLUDE_INTERNAL_ORDERS,2,8,-1)
    AND         D.PRIMARY_UOM_QUANTITY > GREATEST(NVL(D.RESERVATION_QUANTITY,0),
                D.COMPLETED_QUANTITY)
    AND         DECODE(MSC_ATP_PVT.G_APPS_VER,3,D.COMPLETED_QUANTITY,0) = 0 -- 2300767
    AND         (D.SUBINVENTORY IS NULL OR D.SUBINVENTORY IN
                   (SELECT S.SUB_INVENTORY_CODE
                    FROM   MSC_SUB_INVENTORIES S
                    WHERE  S.ORGANIZATION_ID=D.ORGANIZATION_ID
                    AND    S.PLAN_ID = I.PLAN_ID
                    AND    S.SR_INSTANCE_ID = D.SR_INSTANCE_ID
                    AND    S.INVENTORY_ATP_CODE =DECODE(R.DEFAULT_ATP_SOURCES,
                                   1, 1, NULL, 1, S.INVENTORY_ATP_CODE)
                    AND    S.NETTING_TYPE =DECODE(R.DEFAULT_ATP_SOURCES,
                                   2, 1, S.NETTING_TYPE)))
    AND         (D.RESERVATION_TYPE = 2
                 OR D.PARENT_DEMAND_ID IS NULL
                 OR (D.RESERVATION_TYPE = 3 AND
                     ((R.INCLUDE_DISCRETE_WIP_RECEIPTS = 1) or
                      (R.INCLUDE_NONSTD_WIP_RECEIPTS = 1))))
                -- new clause, remove existing Exists Query 2640489
    AND         D.SHIP_TO_SITE_USE_ID = MTPS.PARTNER_SITE_ID(+) --bug3263368
    AND         D.CUSTOMER_ID = MTP.PARTNER_ID(+) --bug3263368
    AND      (R.PAST_DUE_DEMAND_CUTOFF_FENCE is NULL OR
                 C.PRIOR_SEQ_NUM >= p_sysdate_seq_num - R.PAST_DUE_DEMAND_CUTOFF_FENCE)
    AND      C.CALENDAR_CODE = p_cal_code
    AND      C.SR_INSTANCE_ID = I.SR_INSTANCE_ID
    AND      C.EXCEPTION_SET_ID = -1
    AND      C.CALENDAR_DATE = TRUNC(D.REQUIREMENT_DATE)
    AND      C.PRIOR_DATE < NVL(p_itf, C.PRIOR_DATE + 1)
     AND        (R.DEMAND_CLASS_ATP_FLAG <> 1
                 OR NVL(D.DEMAND_CLASS, NVL(p_default_dmd_class,'@@@'))
                  = NVL(P_DEMAND_CLASS, NVL(p_default_dmd_class,'@@@')) )
    UNION ALL
    SELECT      p_level col1,
                p_identifier col2,
                p_scenario_id col3,
                p_item_id col4 ,
                p_request_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,
                I.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,
                ---bug 1843471
                --NVL(S.FIRM_QUANTITY,S.NEW_ORDER_QUANTITY) col24,
                Decode(order_type,
                30, Decode(Sign(S.Daily_rate * (TRUNC(C.Calendar_date) -
				TRUNC(S.FIRST_UNIT_START_DATE) )- S.qty_completed),
                             -1,S.Daily_rate* (TRUNC(C.Calendar_date) - TRUNC(S.First_Unit_Start_date) +1)- S.qty_completed,
                              S.Daily_rate),
                -- Bug 2132288, 2442009, 2563139
                5, NVL(S.DAILY_RATE, NVL(S.FIRM_QUANTITY,S.NEW_ORDER_QUANTITY)),
                -- End Bug 2132288, 2442009

                -- Bug 2439264, for OPM, lots with order_processing = "N" will be populated with
                -- non_nettable_qty and need to be excluded from ATP calculations.

                (NVL(S.FIRM_QUANTITY,S.NEW_ORDER_QUANTITY) - NVL(S.NON_NETTABLE_QTY, 0)) ) col24,

                -- NVL(S.FIRM_QUANTITY,S.NEW_ORDER_QUANTITY) ) col24,
                C.NEXT_DATE col25,
                l_null_num col26,
                DECODE(S.ORDER_TYPE,
                       1, S.ORDER_NUMBER,
		       2, S.ORDER_NUMBER,
		       3, S.ORDER_NUMBER,
                       7, S.ORDER_NUMBER,
                       8, S.ORDER_NUMBER,
                       5, MSC_ATP_FUNC.Get_Designator(S.SCHEDULE_DESIGNATOR_ID),
                      11, S.ORDER_NUMBER,
                      12, S.ORDER_NUMBER,
                      14, S.ORDER_NUMBER,
                      15, S.ORDER_NUMBER,
                      27, S.ORDER_NUMBER,
                      28, S.ORDER_NUMBER,
                      41, S.ORDER_NUMBER, -- bug 4085497 'User Defined Supply'
                      --NULL) col27,
                      l_null_char) col27, -- bug 4365873 fixed as a part of this bug
                l_null_num col28,
		l_null_num col29,
		l_sysdate,
		G_USER_ID,
		l_sysdate,
		G_USER_ID,
		G_USER_ID,
		--null,--bug3263368 ORIG_CUSTOMER_SITE_NAME
		--null, --bug3263368 ORIG_CUSTOMER_NAME
		--null, --bug3263368 ORIG_DEMAND_CLASS
		--null  --bug3263368 ORIG_REQUEST_DATE
		l_null_char, --bug3814584
                l_null_char, --bug3814584
                l_null_char, --bug3814584
                l_null_date  --bug3814584
    FROM        MSC_CALENDAR_DATES C,
		MSC_SUPPLIES S,
                MSC_ATP_RULES R,
                MSC_SYSTEM_ITEMS I,
                MSC_SYSTEM_ITEMS I0,  --Bug 13072988
                MSC_SUB_INVENTORIES MSI
    WHERE       I0.SR_INVENTORY_ITEM_ID = p_item_id  -- Bug 13072988, aggregate the supply of member-items
    AND         I0.ORGANIZATION_ID = p_org_id        -- as we are aggregating the demands also.
    AND         I0.SR_INSTANCE_ID = p_instance_id
    AND         I0.PLAN_ID = p_plan_id
    AND         I.PRODUCT_FAMILY_ID = I0.INVENTORY_ITEM_ID
    AND         I.ORGANIZATION_ID = I0.ORGANIZATION_ID
    AND         I.SR_INSTANCE_ID = I0.SR_INSTANCE_ID
    AND         I.PLAN_ID = I0.PLAN_ID
    AND         R.RULE_ID (+) = NVL(I.ATP_RULE_ID, p_default_atp_rule_id)
    AND         R.SR_INSTANCE_ID (+) = I.SR_INSTANCE_ID
    AND		S.PLAN_ID = I.PLAN_ID
    AND		S.SR_INSTANCE_ID = I.SR_INSTANCE_ID
    AND		S.INVENTORY_ITEM_ID = I.INVENTORY_ITEM_ID
    AND 	S.ORGANIZATION_ID = I.ORGANIZATION_ID
    --- bug 1843471
    --AND         NVL(S.FIRM_QUANTITY,S.NEW_ORDER_QUANTITY) <> 0 -- 1243985
                -- Bug 2132288, 2442009, 2453938
                -- Do not include supplies equal to 0 as per 1243985
                -- However at the same time, support negative supplies as per Bug 2362079 use ABS.
                -- Support Repetitive schedules as per 1843471
                -- Support Repetitive MPS as per 2132288, 2442009
		-- TRUNC dates 2563139
    AND         Decode(S.order_type, 30, S.Daily_rate* (TRUNC(C.Calendar_date)
					- TRUNC(S.First_Unit_Start_date) + 1),
                                     5, NVL(S.Daily_rate, ABS(NVL(S.FIRM_QUANTITY,S.NEW_ORDER_QUANTITY)) ),
                        ABS(NVL(S.FIRM_QUANTITY,S.NEW_ORDER_QUANTITY)) ) >
                      Decode(S.order_type, 30, S.qty_completed,0)
                -- End Bug 2132288, 2442009, 2453938
    AND		(S.ORDER_TYPE IN (
		DECODE(R.INCLUDE_PURCHASE_ORDERS, 1, 1, -1),
		DECODE(R.INCLUDE_PURCHASE_ORDERS, 1, 8, -1), -- 1882898
		DECODE(R.INCLUDE_DISCRETE_WIP_RECEIPTS, 1, 3, -1),
		DECODE(R.INCLUDE_REP_WIP_RECEIPTS, 1, 30, -1),
		DECODE(R.INCLUDE_NONSTD_WIP_RECEIPTS, 1, 7, -1),
		DECODE(R.INCLUDE_NONSTD_WIP_RECEIPTS, 1, 15, -1),
		DECODE(R.INCLUDE_INTERORG_TRANSFERS, 1, 11, -1),
                DECODE(R.INCLUDE_INTERORG_TRANSFERS, 1, 12, -1),
		DECODE(R.INCLUDE_ONHAND_AVAILABLE, 1, 18, -1),
		DECODE(R.INCLUDE_INTERNAL_REQS, 1, 2, -1),
		DECODE(R.INCLUDE_SUPPLIER_REQS, 1, 2, -1),
                DECODE(R.INCLUDE_USER_DEFINED_SUPPLY, 1, 41, -1),
		DECODE(R.INCLUDE_FLOW_SCHEDULE_RECEIPTS, 1, 27, -1),
		DECODE(R.INCLUDE_FLOW_SCHEDULE_RECEIPTS, 1, 28, -1))
                OR
                ((R.INCLUDE_REP_MPS = 1 OR R.INCLUDE_DISCRETE_MPS = 1) AND
                S.ORDER_TYPE = 5
                 -- bug 2461071
                AND exists (SELECT '1'
                            FROM    MSC_DESIGNATORS
                            WHERE   INVENTORY_ATP_FLAG = 1
                            AND     DESIGNATOR_TYPE = 2
                            AND     DESIGNATOR_ID = S.SCHEDULE_DESIGNATOR_ID
                            AND     DECODE(R.demand_class_atp_flag,1,
                                    nvl(demand_class,
                                    nvl(p_default_dmd_class,'@@@')),'@@@') =
                                    DECODE(R.demand_class_atp_flag,1,
                                    nvl(p_demand_class,
                                    nvl(p_default_dmd_class,'@@@')),'@@@')
)))
                --AND MSC_ATP_FUNC.MPS_ATP(S.SCHEDULE_DESIGNATOR_ID) = 1))
    AND		C.CALENDAR_CODE = p_cal_code
    AND		C.EXCEPTION_SET_ID = G_CAL_EXC_SET_ID
    AND         C.SR_INSTANCE_ID = p_instance_id
                 -- Bug 2132288, 2442009
    AND         C.CALENDAR_DATE BETWEEN TRUNC(NVL(S.FIRM_DATE,S.NEW_SCHEDULE_DATE))
                    AND TRUNC(NVL(DECODE(S.ORDER_TYPE, 5, S.LAST_UNIT_START_DATE,
                                   S.LAST_UNIT_COMPLETION_DATE), NVL(S.FIRM_DATE,S.NEW_SCHEDULE_DATE)))
    AND         DECODE(DECODE(S.ORDER_TYPE, 5, S.LAST_UNIT_START_DATE,
                                   S.LAST_UNIT_COMPLETION_DATE),
                       NULL, C.NEXT_SEQ_NUM, C.SEQ_NUM) IS NOT NULL
                 -- End Bug 2132288, 2442009
                 -- new clause 2640489, SIMPLIFY FOR CBO
    AND         (S.ORDER_TYPE = 18
                 OR R.PAST_DUE_SUPPLY_CUTOFF_FENCE is NULL
                 OR C.NEXT_SEQ_NUM >= p_sysdate_seq_num - R.PAST_DUE_SUPPLY_CUTOFF_FENCE)
    AND         C.NEXT_DATE >= DECODE(S.ORDER_TYPE, 27, TRUNC(l_sysdate),
                                                28, TRUNC(l_sysdate),
                                                    C.NEXT_DATE)
    AND         C.NEXT_DATE < NVL(p_itf, C.NEXT_DATE + 1)
    AND         (R.DEMAND_CLASS_ATP_FLAG <> 1
                 OR S.ORDER_TYPE = 5
                 OR NVL(S.DEMAND_CLASS, NVL(p_default_dmd_class,'@@@')) =
                    NVL(P_DEMAND_CLASS, NVL(p_default_dmd_class,'@@@')) )
                --- filter out non-atpable sub-inventories
    AND          MSI.plan_id (+) = p_plan_id
    AND          MSI.organization_id (+) = p_org_id
    AND          MSI.sr_instance_id (+) = p_instance_id
    -- AND          S.subinventory_code = MSI.sub_inventory_code
    AND          MSI.sub_inventory_code (+) = S.subinventory_code
    AND          NVL(MSI.inventory_atp_code,1)  <> 2  -- filter out non-atpable subinventories
    -- SQL Query changes End 2640489
)
;
Line: 3062

|  o  The supply demand SQL inserts following in msc_atp_sd_details_temp table:
|       -  Bucketed demands (origination type 51) for member item upto ATF from
|            msc_alloc_demands table.
|       -  Bucketed demands for family after ATF from msc_alloc_demands table.
|       -  Rollup supplies (order type 50) for member item upto ATF from
|            msc_alloc_supplies table.
|       -  Rollup supplies for family after ATF from msc_alloc_supplies table.
|  o  Other important differences from non PF SQLs are:
|       -  Columns Pf_Display_Flag, Original_Demand_Quantity and Original_Demand_Date
|            in msc_atp_sd_details_temp table are populated for demands.
|       -  Column Original_Supply_Demand_Type is populated for demands and supplies
|            and stores the supply demand type of parent supplies and demands.
+-------------------------------------------------------------------------------------*/
PROCEDURE Get_Mat_Avail_Pf_Pds_Dtls (
        p_sr_member_id                  IN      NUMBER,
        p_sr_family_id                  IN      NUMBER,
        p_org_id                        IN      NUMBER,
        p_instance_id                   IN      NUMBER,
        p_plan_id                       IN      NUMBER,
        p_itf                           IN      DATE,
        p_level                         IN      NUMBER,
        p_scenario_id                   IN      NUMBER,
        p_identifier                    IN      NUMBER,
        x_return_status                 OUT     NOCOPY VARCHAR2
) IS
        l_null_num              NUMBER;
Line: 3100

        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_Date,
        	Disposition_Type,
        	Disposition_Name,
        	Pegging_Id,
        	End_Pegging_Id,
        	Pf_Display_Flag,
        	Supply_Demand_Quantity,
        	Original_Demand_Quantity,
        	Original_Demand_Date,
        	Original_Item_Id,
        	Original_Supply_Demand_Type,
        	creation_date,
        	created_by,
        	last_update_date,
        	last_updated_by,
        	last_update_login,
        	ORIG_CUSTOMER_SITE_NAME,--bug3263368
                ORIG_CUSTOMER_NAME, --bug3263368
                ORIG_DEMAND_CLASS, --bug3263368
                ORIG_REQUEST_DATE, --bug3263368
                Inventory_Item_Name --bug3579625
        )
        (
            SELECT      p_level col1,
        		p_identifier col2,
                        p_scenario_id col3,
                        p_sr_family_id col4,
                        p_sr_member_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,
        		I.UOM_CODE col16,
        		1 col17, -- demand
        		AD.ORIGINATION_TYPE col18,
                        l_null_char col19,
        		AD.SR_INSTANCE_ID col20,
                        l_null_num col21,
        		AD.PARENT_DEMAND_ID col22,
        		l_null_num col23,
                        -1 * AD.ALLOCATED_QUANTITY col24,
                        TRUNC(AD.DEMAND_DATE) col25, --bug3693892 added trunc
                        l_null_num col26,
                        AD.ORDER_NUMBER col27,
                        l_null_num col28,
                        l_null_num col29,
                        AD.Pf_Display_Flag,
                        -1* NVL(AD.Demand_Quantity, AD.ALLOCATED_QUANTITY),
                        -1* NVL(AD.Demand_Quantity, AD.ALLOCATED_QUANTITY),
                        trunc(AD.Original_Demand_Date), --Bug_3693892 added trunc
                        AD.Original_Item_Id,
                        AD.Original_Origination_Type,
        		l_sysdate,
        		G_USER_ID,
        		l_sysdate,
        		G_USER_ID,
        		G_USER_ID,
        		MTPS.LOCATION,   --bug3263368
                        MTP.PARTNER_NAME, --bug3263368
                        AD.DEMAND_CLASS, --bug3263368
                        AD.REQUEST_DATE, --bug3263368
                        I2.Item_Name  --bug3579625

            FROM        MSC_SYSTEM_ITEMS I,
                        MSC_SYSTEM_ITEMS I2,  --bug3579625
        		MSC_ALLOC_DEMANDS AD,
        		MSC_TRADING_PARTNERS    MTP,--bug3263368
                        MSC_TRADING_PARTNER_SITES    MTPS --bug3263368
            WHERE       I.SR_INVENTORY_ITEM_ID in (p_sr_member_id, p_sr_family_id)
            AND         I.ORGANIZATION_ID = p_org_id
            AND         I.SR_INSTANCE_ID = p_instance_id
            AND         I.PLAN_ID = p_plan_id
            AND         AD.PLAN_ID = I.PLAN_ID
            AND         AD.SR_INSTANCE_ID = I.SR_INSTANCE_ID
            AND         AD.INVENTORY_ITEM_ID = I.INVENTORY_ITEM_ID
            AND         AD.ORGANIZATION_ID = I.ORGANIZATION_ID
            -- bug3579625 Addition join with MSC_SYSTEM_ITEMS (I2)
            AND         AD.PLAN_ID = I2.PLAN_ID
            AND         AD.SR_INSTANCE_ID = I2.SR_INSTANCE_ID
            AND         AD.ORIGINAL_ITEM_ID = I2.INVENTORY_ITEM_ID
            AND         AD.ORGANIZATION_ID = I2.ORGANIZATION_ID
            AND         AD.ORIGINATION_TYPE <> 52
            AND         AD.ALLOCATED_QUANTITY <> 0
            --bug3700564 added trunc
            AND         TRUNC(AD.DEMAND_DATE) < NVL(p_itf, TRUNC(AD.DEMAND_DATE) + 1)
            AND         AD.SHIP_TO_SITE_ID = MTPS.PARTNER_SITE_ID(+) --bug3263368
            AND         AD.CUSTOMER_ID = MTP.PARTNER_ID(+)--bug3263368
            UNION ALL
            SELECT      p_level col1,
                        p_identifier col2,
                        p_scenario_id col3,
                        p_sr_family_id col4 ,
                        p_sr_member_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,
                        I.UOM_CODE col16,
                        2 col17,
                        SA.ORDER_TYPE col18,
                        l_null_char col19,
                        SA.SR_INSTANCE_ID col20,
                        l_null_num col21,
                        SA.PARENT_TRANSACTION_ID col22,
                        l_null_num col23,
        		SA.ALLOCATED_QUANTITY col24,
                        trunc(SA.SUPPLY_DATE) col25,  --bug3693892 added trunc
                        l_null_num col26,
        		DECODE(SA.ORDER_TYPE, 5, to_char(SA.PARENT_TRANSACTION_ID), SA.ORDER_NUMBER) col27,
                        l_null_num col28,
        		l_null_num col29,
        		l_null_num,
        		NVL(SA.Supply_Quantity, SA.ALLOCATED_QUANTITY),
        		l_null_num,
        		to_date(null),
        		SA.Original_Item_Id,
        		SA.Original_Order_Type,
        		l_sysdate,
        		G_USER_ID,
        		l_sysdate,
        		G_USER_ID,
        		G_USER_ID,
        		--null, --bug3263368 ORIG_CUSTOMER_SITE_NAME
        		--null, --bug3263368 ORIG_CUSTOMER_NAME
        		--null, --bug3263368 ORIG_DEMAND_CLASS
        		--null, --bug3263368 ORIG_REQUEST_DATE
        		l_null_char, --bug3814584
                        l_null_char, --bug3814584
                        l_null_char, --bug3814584
                        l_null_date,  --bug3814584
                        I2.Item_Name  --bug3579625
            FROM        MSC_ALLOC_SUPPLIES SA,
                        MSC_SYSTEM_ITEMS I,
                        MSC_SYSTEM_ITEMS I2 --bug3579625
            WHERE       I.SR_INVENTORY_ITEM_ID in (p_sr_member_id, p_sr_family_id)
            AND         I.ORGANIZATION_ID = p_org_id
            AND         I.SR_INSTANCE_ID = p_instance_id
            AND         I.PLAN_ID = p_plan_id
            AND         SA.PLAN_ID = I.PLAN_ID
            AND         SA.SR_INSTANCE_ID = I.SR_INSTANCE_ID
            AND         SA.INVENTORY_ITEM_ID = I.INVENTORY_ITEM_ID
            AND         SA.ORGANIZATION_ID = I.ORGANIZATION_ID
            -- bug3579625 Addition join with MSC_SYSTEM_ITEMS (I2)
            AND         SA.PLAN_ID = I2.PLAN_ID
            AND         SA.SR_INSTANCE_ID = I2.SR_INSTANCE_ID
            AND         SA.ORIGINAL_ITEM_ID = I2.INVENTORY_ITEM_ID
            AND         SA.ORGANIZATION_ID = I2.ORGANIZATION_ID
            --bug3700564 added trunc
            AND         TRUNC(SA.SUPPLY_DATE) >= DECODE(SA.ORIGINAL_ORDER_TYPE,
                                                        27, TRUNC(SYSDATE),
                                                        28, TRUNC(SYSDATE),
                                                        TRUNC(SA.SUPPLY_DATE))
            AND         SA.ALLOCATED_QUANTITY <> 0
            AND         TRUNC(SA.SUPPLY_DATE) < NVL(p_itf, TRUNC(SA.SUPPLY_DATE) + 1)
        );
Line: 3360

                                SELECT allocation_percent
                                INTO   l_alloc_percent
                                FROM   msc_item_hierarchy_mv
                                WHERE  inventory_item_id = p_member_id
                                AND    organization_id = p_org_id
                                AND    sr_instance_id = p_instance_id
                                AND    p_atf_date BETWEEN effective_date AND disable_date
                                AND    level_id = -1
                                AND    rownum = 1;
Line: 3384

                                SELECT allocation_percent
                                INTO   l_alloc_percent
                                FROM   msc_item_hierarchy_mv
                                WHERE  inventory_item_id = p_member_id
                                AND    organization_id = p_org_id
                                AND    sr_instance_id = p_instance_id
                                AND    p_atf_date BETWEEN effective_date AND disable_date
                                AND    level_id <> -1
                                AND    rownum = 1;
Line: 3471

             SELECT        SD_DATE,
                           SUM(SD_QTY)
             BULK COLLECT INTO
                           x_atp_dates,
                           x_atp_qtys
             FROM (
                   SELECT  --TRUNC(AD.DEMAND_DATE) SD_DATE, 	--bug3099066
                           GREATEST(TRUNC(AD.DEMAND_DATE),p_sys_next_date) SD_DATE,--3099066
                           --bug3333114 removed trunc from p_sys_next_date as it is already trucate
                           -1* AD.ALLOCATED_QUANTITY*
                            DECODE(DECODE(MSC_AATP_PVT.G_HIERARCHY_PROFILE,
                              1, decode(AD.Original_Origination_Type,
                                 6, decode(AD.SOURCE_ORGANIZATION_ID,
                                    NULL, DECODE(AD.DEMAND_CLASS, null, null,
                                       DECODE(p_demand_class, '-1',
                                          MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             null, null, Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                                1, p_family_id,
                                                                Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                        'Y', AD.Original_Item_Id,
                                                                        p_family_id)), p_org_id,
                                             p_instance_id, trunc(AD.Demand_Date),
                                             p_level_id, AD.DEMAND_CLASS),
                                             AD.DEMAND_CLASS)),
                                    -23453, DECODE(AD.DEMAND_CLASS, null, null,
                                       DECODE(p_demand_class, '-1',
                                          MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             null, null, Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                                1, p_family_id,
                                                                Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                        'Y', AD.Original_Item_Id,
                                                                        p_family_id)), p_org_id,
                                             p_instance_id, trunc(AD.Demand_Date),
                                             p_level_id, AD.DEMAND_CLASS),
                                             AD.DEMAND_CLASS)),
                                    AD.ORGANIZATION_ID, DECODE(AD.DEMAND_CLASS, null, null,
                                       DECODE(p_demand_class, '-1',
                                          MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             null, null, Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                                1, p_family_id,
                                                                Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                        'Y', AD.Original_Item_Id,
                                                                        p_family_id)), p_org_id,
                                             p_instance_id, trunc(AD.Demand_Date),
                                             p_level_id, AD.DEMAND_CLASS),
                                             AD.DEMAND_CLASS)), TO_CHAR(NULL)),
                                 30, decode(AD.SOURCE_ORGANIZATION_ID,
                                    NULL, DECODE(AD.DEMAND_CLASS, null, null,
                                       DECODE(p_demand_class, '-1',
                                          MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             null, null, Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                                1, p_family_id,
                                                                Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                        'Y', AD.Original_Item_Id,
                                                                        p_family_id)), p_org_id,
                                             p_instance_id, trunc(AD.Demand_Date),
                                             p_level_id, AD.DEMAND_CLASS),
                                             AD.DEMAND_CLASS)),
                                    -23453, DECODE(AD.DEMAND_CLASS, null, null,
                                       DECODE(p_demand_class, '-1',
                                          MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             null, null, Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                                1, p_family_id,
                                                                Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                        'Y', AD.Original_Item_Id,
                                                                        p_family_id)), p_org_id,
                                             p_instance_id, trunc(AD.Demand_Date),
                                             p_level_id, AD.DEMAND_CLASS),
                                             AD.DEMAND_CLASS)),
                                    AD.ORGANIZATION_ID, DECODE(AD.DEMAND_CLASS, null, null,
                                       DECODE(p_demand_class, '-1',
                                          MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             null, null, Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                                1, p_family_id,
                                                                Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                        'Y', AD.Original_Item_Id,
                                                                        p_family_id)), p_org_id,
                                             p_instance_id, trunc(AD.Demand_Date),
                                             p_level_id, AD.DEMAND_CLASS),
                                             AD.DEMAND_CLASS)), TO_CHAR(NULL)),
                                 DECODE(AD.DEMAND_CLASS, null, null,
                                    DECODE(p_demand_class, '-1',
                                       MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                          null, null, Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                                1, p_family_id,
                                                                Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                        'Y', AD.Original_Item_Id,
                                                                        p_family_id)), p_org_id,
                                          p_instance_id, trunc(AD.Demand_Date),
                                          p_level_id, AD.DEMAND_CLASS),
                                          AD.DEMAND_CLASS))),
                              2, DECODE(AD.CUSTOMER_ID, NULL, TO_CHAR(NULL),
                                                   0, TO_CHAR(NULL),
                                 decode(AD.Original_Origination_Type,
                                    6, decode(AD.SOURCE_ORGANIZATION_ID,
                                       NULL, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             AD.CUSTOMER_ID, AD.SHIP_TO_SITE_ID, Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                                                        1, p_family_id,
                                                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                                'Y', AD.Original_Item_Id,
                                                                                                p_family_id)),
                                             p_org_id, p_instance_id, trunc(AD.Demand_Date),
                                             p_level_id, NULL),
                                       -23453, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             AD.CUSTOMER_ID, AD.SHIP_TO_SITE_ID, Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                                                        1, p_family_id,
                                                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                                'Y', AD.Original_Item_Id,
                                                                                                p_family_id)),
                                             p_org_id, p_instance_id, trunc(AD.Demand_Date),
                                             p_level_id, NULL),
                                       AD.ORGANIZATION_ID, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             AD.CUSTOMER_ID, AD.SHIP_TO_SITE_ID, Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                                                        1, p_family_id,
                                                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                                'Y', AD.Original_Item_Id,
                                                                                                p_family_id)),
                                             p_org_id, p_instance_id, trunc(AD.Demand_Date),
                                             p_level_id, NULL),
                                       TO_CHAR(NULL)),
                                    30, decode(AD.SOURCE_ORGANIZATION_ID,
                                       NULL, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             AD.CUSTOMER_ID, AD.SHIP_TO_SITE_ID, Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                                                        1, p_family_id,
                                                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                                'Y', AD.Original_Item_Id,
                                                                                                p_family_id)),
                                             p_org_id, p_instance_id, trunc(AD.Demand_Date),
                                             p_level_id, NULL),
                                       -23453, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             AD.CUSTOMER_ID, AD.SHIP_TO_SITE_ID, Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                                                        1, p_family_id,
                                                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                                'Y', AD.Original_Item_Id,
                                                                                                p_family_id)),
                                             p_org_id, p_instance_id, trunc(AD.Demand_Date),
                                             p_level_id, NULL),
                                       AD.ORGANIZATION_ID, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             AD.CUSTOMER_ID, AD.SHIP_TO_SITE_ID, Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                                                        1, p_family_id,
                                                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                                'Y', AD.Original_Item_Id,
                                                                                                p_family_id)),
                                             p_org_id, p_instance_id, trunc(AD.Demand_Date),
                                             p_level_id, NULL),
                                       TO_CHAR(NULL)),
                                    MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                       AD.CUSTOMER_ID, AD.SHIP_TO_SITE_ID,
                                       Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                1, p_family_id,
                                                Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                        'Y', AD.Original_Item_Id,
                                                        p_family_id)), p_org_id, p_instance_id,
                                       trunc(AD.Demand_Date),p_level_id, NULL)))),
                           p_demand_class, 1,
                              Decode(AD.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,
                                 AD.PARENT_DEMAND_ID,
                                 trunc(AD.Demand_Date),
                                 AD.USING_ASSEMBLY_ITEM_ID,
                                 DECODE(AD.SOURCE_ORGANIZATION_ID,
                                    -23453, null,
                                    AD.SOURCE_ORGANIZATION_ID),
                                 Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                        1, p_family_id,
                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                'Y', AD.Original_Item_Id,
                                                p_family_id)),
                                 p_org_id,
                                 p_instance_id,
                                 AD.Original_Origination_Type,
                                 DECODE(MSC_AATP_PVT.G_HIERARCHY_PROFILE,
                                    1, decode(AD.Original_Origination_Type,
                                       6, decode(AD.SOURCE_ORGANIZATION_ID,
                                          NULL, DECODE(AD.DEMAND_CLASS, null, null,
                                             DECODE(p_demand_class, '-1',
                                                MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                   null, null, Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                                        1, p_family_id,
                                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                'Y', AD.Original_Item_Id,
                                                                                p_family_id)), p_org_id,
                                                   p_instance_id, trunc(AD.Demand_Date),
                                                   p_level_id, AD.DEMAND_CLASS),
                                                AD.DEMAND_CLASS)),
                                          -23453, DECODE(AD.DEMAND_CLASS, null, null,
                                             DECODE(p_demand_class, '-1',
                                                MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                   null, null, Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                                        1, p_family_id,
                                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                'Y', AD.Original_Item_Id,
                                                                                p_family_id)), p_org_id,
                                                   p_instance_id, trunc(AD.Demand_Date),
                                                   p_level_id, AD.DEMAND_CLASS),
                                                AD.DEMAND_CLASS)),
                                          AD.ORGANIZATION_ID, DECODE(AD.DEMAND_CLASS, null, null,
                                             DECODE(p_demand_class, '-1',
                                                MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                   null, null, Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                                        1, p_family_id,
                                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                'Y', AD.Original_Item_Id,
                                                                                p_family_id)), p_org_id,
                                                   p_instance_id, trunc(AD.Demand_Date),
                                                   p_level_id, AD.DEMAND_CLASS),
                                                AD.DEMAND_CLASS)),
                                          p_demand_class),
                                    30, decode(AD.SOURCE_ORGANIZATION_ID,
                                       NULL, DECODE(AD.DEMAND_CLASS, null, null,
                                          DECODE(p_demand_class, '-1',
                                             MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                null, null, Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                                        1, p_family_id,
                                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                'Y', AD.Original_Item_Id,
                                                                                p_family_id)), p_org_id,
                                                p_instance_id, trunc(AD.Demand_Date),
                                                p_level_id, AD.DEMAND_CLASS),
                                             AD.DEMAND_CLASS)),
                                       -23453, DECODE(AD.DEMAND_CLASS, null, null,
                                          DECODE(p_demand_class, '-1',
                                             MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                null, null, Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                                        1, p_family_id,
                                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                'Y', AD.Original_Item_Id,
                                                                                p_family_id)), p_org_id,
                                                p_instance_id, trunc(AD.Demand_Date),
                                                p_level_id, AD.DEMAND_CLASS),
                                             AD.DEMAND_CLASS)),
                                       AD.ORGANIZATION_ID, DECODE(AD.DEMAND_CLASS, null, null,
                                          DECODE(p_demand_class, '-1',
                                             MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                null, null, Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                                        1, p_family_id,
                                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                'Y', AD.Original_Item_Id,
                                                                                p_family_id)), p_org_id,
                                                p_instance_id, trunc(AD.Demand_Date),
                                                p_level_id, AD.DEMAND_CLASS),
                                             AD.DEMAND_CLASS)),
                                       p_demand_class),
                                    DECODE(AD.DEMAND_CLASS, null, null,
                                       DECODE(p_demand_class, '-1',
                                          MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             null, null, Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                                1, p_family_id,
                                                                Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                        'Y', AD.Original_Item_Id,
                                                                        p_family_id)), p_org_id,
                                             p_instance_id, trunc(AD.Demand_Date),
                                             p_level_id, AD.DEMAND_CLASS),
                                          AD.DEMAND_CLASS))),
                                    2, DECODE(AD.CUSTOMER_ID, NULL, p_demand_class,
                                                   0, p_demand_class,
                                       decode(AD.Original_Origination_Type,
                                          6, decode(AD.SOURCE_ORGANIZATION_ID,
                                             NULL, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                   AD.CUSTOMER_ID, AD.SHIP_TO_SITE_ID, Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                                                                1, p_family_id,
                                                                                                Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                                        'Y', AD.Original_Item_Id,
                                                                                                        p_family_id)),
                                                   p_org_id, p_instance_id, trunc(AD.Demand_Date),
                                                   p_level_id, NULL),
                                             -23453, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                   AD.CUSTOMER_ID, AD.SHIP_TO_SITE_ID, Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                                                                1, p_family_id,
                                                                                                Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                                        'Y', AD.Original_Item_Id,
                                                                                                        p_family_id)),
                                                   p_org_id, p_instance_id, trunc(AD.Demand_Date),
                                                   p_level_id, NULL),
                                             AD.ORGANIZATION_ID, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                   AD.CUSTOMER_ID, AD.SHIP_TO_SITE_ID, Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                                                                1, p_family_id,
                                                                                                Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                                        'Y', AD.Original_Item_Id,
                                                                                                        p_family_id)),
                                                   p_org_id, p_instance_id, trunc(AD.Demand_Date),
                                                   p_level_id, NULL),
                                             p_demand_class),
                                          30, decode(AD.SOURCE_ORGANIZATION_ID,
                                             NULL, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                   AD.CUSTOMER_ID, AD.SHIP_TO_SITE_ID, Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                                                                1, p_family_id,
                                                                                                Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                                        'Y', AD.Original_Item_Id,
                                                                                                        p_family_id)),
                                                   p_org_id, p_instance_id, trunc(AD.Demand_Date),
                                                   p_level_id, NULL),
                                             -23453, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                   AD.CUSTOMER_ID, AD.SHIP_TO_SITE_ID, Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                                                                1, p_family_id,
                                                                                                Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                                        'Y', AD.Original_Item_Id,
                                                                                                        p_family_id)),
                                                   p_org_id, p_instance_id, trunc(AD.Demand_Date),
                                                   p_level_id, NULL),
                                             AD.ORGANIZATION_ID, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                   AD.CUSTOMER_ID, AD.SHIP_TO_SITE_ID, Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                                                        1, p_family_id,
                                                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                                'Y', AD.Original_Item_Id,
                                                                                                p_family_id)),
                                                   p_org_id, p_instance_id, trunc(AD.Demand_Date),
                                                   p_level_id, NULL),
                                             p_demand_class),
                                          MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(AD.CUSTOMER_ID, AD.SHIP_TO_SITE_ID,
                                             Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                        1, p_family_id,
                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                'Y', AD.Original_Item_Id,
                                                                p_family_id)), p_org_id, p_instance_id,
                                             trunc(AD.Demand_Date),p_level_id, NULL)))),
                                       p_demand_class,
                                       p_level_id),0)) SD_QTY --4365873
                   FROM        MSC_ALLOC_DEMANDS AD
                   WHERE       AD.PLAN_ID = p_plan_id
                   AND         AD.SR_INSTANCE_ID = p_instance_id
                   AND         AD.INVENTORY_ITEM_ID in (p_member_id,p_family_id)
                   AND         AD.ORGANIZATION_ID = p_org_id
                   AND         AD.ORIGINATION_TYPE <> 52
                   AND         AD.ALLOCATED_QUANTITY <> 0
                   --bug3700564 added trunc
                   AND         TRUNC(AD.DEMAND_DATE) < NVL(p_itf, TRUNC(AD.DEMAND_DATE) + 1)
                   UNION ALL
                   SELECT  --TRUNC(SA.SUPPLY_DATE) SD_DATE,			--bug3099066
                   	   GREATEST(TRUNC(SA.SUPPLY_DATE),p_sys_next_date) SD_DATE,--3099066
                           SA.ALLOCATED_QUANTITY*
                              DECODE(DECODE(MSC_AATP_PVT.G_HIERARCHY_PROFILE,
                                     1, DECODE(SA.DEMAND_CLASS, null, null,
                                        DECODE(p_demand_class, '-1',
                                           MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                         null,
                                                         null,
                                                         Decode(sign(trunc(SA.Supply_Date) - p_atf_date),
                                                                1, p_family_id,
                                                                Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                        'Y', SA.Original_Item_Id,
                                                                        p_family_id)),
                                                         p_org_id,
                                                         p_instance_id,
                                                         TRUNC(SA.SUPPLY_DATE),
                                                         p_level_id,
                                                         SA.DEMAND_CLASS),
                                           SA.DEMAND_CLASS)),
                                     2, DECODE(SA.CUSTOMER_ID, NULL, TO_CHAR(NULL),
                                                       0, TO_CHAR(NULL),
                                                       MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                         SA.CUSTOMER_ID,
                                                         SA.SHIP_TO_SITE_ID,
                                                         Decode(sign(trunc(SA.Supply_Date) - p_atf_date),
                                                                1, p_family_id,
                                                                Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                        'Y', SA.Original_Item_Id,
                                                                        p_family_id)),
                                                         p_org_id,
                                                         p_instance_id,
                                                         TRUNC(SA.SUPPLY_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,
                                           Decode(sign(trunc(SA.Supply_Date) - p_atf_date),
                                                1, p_family_id,
                                                Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                        'Y', SA.Original_Item_Id,
                                                        p_family_id)),
                                           p_org_id,
                                           null,
                                           null,
                                           p_demand_class,
                                           TRUNC(SA.SUPPLY_DATE)),
                                        1),*/
                                 DECODE(
                                  MIHM.allocation_percent/100, --4365873
                                 /*DECODE(MSC_AATP_FUNC.Get_DC_Alloc_Percent(
                                           p_instance_id,
                                           Decode(sign(trunc(SA.Supply_Date) - p_atf_date),
                                                1, p_family_id,
                                                Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                        'Y', SA.Original_Item_Id,
                                                        p_family_id)),
                                           p_org_id,
                                           null,
                                           null,
                                           p_demand_class,
                                           TRUNC(SA.SUPPLY_DATE)),*/
                                   NULL, 1,
                                 0)) SD_QTY
                   FROM    MSC_ALLOC_SUPPLIES SA, MSC_ITEM_HIERARCHY_MV MIHM --4365873
                   WHERE   SA.PLAN_ID = p_plan_id
                   AND     SA.SR_INSTANCE_ID = p_instance_id
                   AND     SA.INVENTORY_ITEM_ID in (p_member_id, p_family_id)
                   AND     SA.ORGANIZATION_ID = p_org_id
                   AND     SA.ALLOCATED_QUANTITY <> 0
                   --bug3700564 added trunc
                   AND     TRUNC(SA.SUPPLY_DATE) >= DECODE(SA.ORIGINAL_ORDER_TYPE,
                                                        27, TRUNC(SYSDATE),
                                                        28, TRUNC(SYSDATE),
                                                        TRUNC(SA.SUPPLY_DATE))
                   AND     TRUNC(SA.SUPPLY_DATE) < NVL(p_itf, TRUNC(SA.SUPPLY_DATE) + 1)
		   --4365874
		   --5220274 if the rule is assigned to family only then use family id.
                   AND    Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                          'N', p_family_id,
                          SA.INVENTORY_ITEM_ID) = MIHM.INVENTORY_ITEM_ID(+)
                   AND    SA.SR_INSTANCE_ID = MIHM.SR_INSTANCE_ID (+)
                   AND    SA.ORGANIZATION_ID = MIHM.ORGANIZATION_ID (+)
                AND    decode(MIHM.level_id (+),-1,1,2) = decode(MSC_AATP_PVT.G_HIERARCHY_PROFILE,1,1,2)
                   AND    TRUNC(SA.SUPPLY_DATE) >= MIHM.effective_date (+)
                   AND    TRUNC(SA.SUPPLY_DATE) <= MIHM.disable_date (+)
                AND    MIHM.demand_class (+) = p_demand_class
                   )
             GROUP BY SD_DATE
             order by SD_DATE; --4698199
Line: 3938

             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  --TRUNC(AD.DEMAND_DATE) SD_DATE,
                   	   GREATEST(TRUNC(AD.DEMAND_DATE),p_sys_next_date) SD_DATE,--3099066
                           -1* AD.ALLOCATED_QUANTITY UNALLOC_SD_QTY,
                           -1* AD.ALLOCATED_QUANTITY*
                            DECODE(DECODE(MSC_AATP_PVT.G_HIERARCHY_PROFILE,
                              1, decode(AD.Original_Origination_Type,
                                 6, decode(AD.SOURCE_ORGANIZATION_ID,
                                    NULL, DECODE(AD.DEMAND_CLASS, null, null,
                                       DECODE(p_demand_class, '-1',
                                          MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             null, null, Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                                1, p_family_id,
                                                                Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                        'Y', AD.Original_Item_Id,
                                                                        p_family_id)), p_org_id,
                                             p_instance_id, trunc(AD.Demand_Date),
                                             p_level_id, AD.DEMAND_CLASS),
                                             AD.DEMAND_CLASS)),
                                    -23453, DECODE(AD.DEMAND_CLASS, null, null,
                                       DECODE(p_demand_class, '-1',
                                          MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             null, null, Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                                1, p_family_id,
                                                                Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                        'Y', AD.Original_Item_Id,
                                                                        p_family_id)), p_org_id,
                                             p_instance_id, trunc(AD.Demand_Date),
                                             p_level_id, AD.DEMAND_CLASS),
                                             AD.DEMAND_CLASS)),
                                    AD.ORGANIZATION_ID, DECODE(AD.DEMAND_CLASS, null, null,
                                       DECODE(p_demand_class, '-1',
                                          MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             null, null, Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                                1, p_family_id,
                                                                Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                        'Y', AD.Original_Item_Id,
                                                                        p_family_id)), p_org_id,
                                             p_instance_id, trunc(AD.Demand_Date),
                                             p_level_id, AD.DEMAND_CLASS),
                                             AD.DEMAND_CLASS)), TO_CHAR(NULL)),
                                 30, decode(AD.SOURCE_ORGANIZATION_ID,
                                    NULL, DECODE(AD.DEMAND_CLASS, null, null,
                                       DECODE(p_demand_class, '-1',
                                          MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             null, null, Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                                1, p_family_id,
                                                                Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                        'Y', AD.Original_Item_Id,
                                                                        p_family_id)), p_org_id,
                                             p_instance_id, trunc(AD.Demand_Date),
                                             p_level_id, AD.DEMAND_CLASS),
                                             AD.DEMAND_CLASS)),
                                    -23453, DECODE(AD.DEMAND_CLASS, null, null,
                                       DECODE(p_demand_class, '-1',
                                          MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             null, null, Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                                1, p_family_id,
                                                                Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                        'Y', AD.Original_Item_Id,
                                                                        p_family_id)), p_org_id,
                                             p_instance_id, trunc(AD.Demand_Date),
                                             p_level_id, AD.DEMAND_CLASS),
                                             AD.DEMAND_CLASS)),
                                    AD.ORGANIZATION_ID, DECODE(AD.DEMAND_CLASS, null, null,
                                       DECODE(p_demand_class, '-1',
                                          MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             null, null, Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                                1, p_family_id,
                                                                Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                        'Y', AD.Original_Item_Id,
                                                                        p_family_id)), p_org_id,
                                             p_instance_id, trunc(AD.Demand_Date),
                                             p_level_id, AD.DEMAND_CLASS),
                                             AD.DEMAND_CLASS)), TO_CHAR(NULL)),
                                 DECODE(AD.DEMAND_CLASS, null, null,
                                    DECODE(p_demand_class, '-1',
                                       MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                          null, null, Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                                1, p_family_id,
                                                                Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                        'Y', AD.Original_Item_Id,
                                                                        p_family_id)), p_org_id,
                                          p_instance_id, trunc(AD.Demand_Date),
                                          p_level_id, AD.DEMAND_CLASS),
                                          AD.DEMAND_CLASS))),
                              2, DECODE(AD.CUSTOMER_ID, NULL, TO_CHAR(NULL),
                                                   0, TO_CHAR(NULL),
                                 decode(AD.Original_Origination_Type,
                                    6, decode(AD.SOURCE_ORGANIZATION_ID,
                                       NULL, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             AD.CUSTOMER_ID, AD.SHIP_TO_SITE_ID, Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                                                        1, p_family_id,
                                                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                                'Y', AD.Original_Item_Id,
                                                                                                p_family_id)),
                                             p_org_id, p_instance_id, trunc(AD.Demand_Date),
                                             p_level_id, NULL),
                                       -23453, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             AD.CUSTOMER_ID, AD.SHIP_TO_SITE_ID, Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                                                        1, p_family_id,
                                                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                                'Y', AD.Original_Item_Id,
                                                                                                p_family_id)),
                                             p_org_id, p_instance_id, trunc(AD.Demand_Date),
                                             p_level_id, NULL),
                                       AD.ORGANIZATION_ID, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             AD.CUSTOMER_ID, AD.SHIP_TO_SITE_ID, Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                                                        1, p_family_id,
                                                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                                'Y', AD.Original_Item_Id,
                                                                                                p_family_id)),
                                             p_org_id, p_instance_id, trunc(AD.Demand_Date),
                                             p_level_id, NULL),
                                       TO_CHAR(NULL)),
                                    30, decode(AD.SOURCE_ORGANIZATION_ID,
                                       NULL, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             AD.CUSTOMER_ID, AD.SHIP_TO_SITE_ID, Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                                                        1, p_family_id,
                                                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                                'Y', AD.Original_Item_Id,
                                                                                                p_family_id)),
                                             p_org_id, p_instance_id, trunc(AD.Demand_Date),
                                             p_level_id, NULL),
                                       -23453, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             AD.CUSTOMER_ID, AD.SHIP_TO_SITE_ID, Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                                                        1, p_family_id,
                                                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                                'Y', AD.Original_Item_Id,
                                                                                                p_family_id)),
                                             p_org_id, p_instance_id, trunc(AD.Demand_Date),
                                             p_level_id, NULL),
                                       AD.ORGANIZATION_ID, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             AD.CUSTOMER_ID, AD.SHIP_TO_SITE_ID, Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                                                        1, p_family_id,
                                                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                                'Y', AD.Original_Item_Id,
                                                                                                p_family_id)),
                                             p_org_id, p_instance_id, trunc(AD.Demand_Date),
                                             p_level_id, NULL),
                                       TO_CHAR(NULL)),
                                    MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                       AD.CUSTOMER_ID, AD.SHIP_TO_SITE_ID,
                                       Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                1, p_family_id,
                                                Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                        'Y', AD.Original_Item_Id,
                                                        p_family_id)), p_org_id, p_instance_id,
                                       trunc(AD.Demand_Date),p_level_id, NULL)))),
                           p_demand_class, 1,
                           Decode(AD.Demand_Class, NULL, --4365873
                              MSC_AATP_FUNC.Get_Item_Demand_Alloc_Percent(p_plan_id,
                                 AD.PARENT_DEMAND_ID,
                                 trunc(AD.Demand_Date),
                                 AD.USING_ASSEMBLY_ITEM_ID,
                                 DECODE(AD.SOURCE_ORGANIZATION_ID,
                                    -23453, null,
                                    AD.SOURCE_ORGANIZATION_ID),
                                 Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                        1, p_family_id,
                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                'Y', AD.Original_Item_Id,
                                                p_family_id)),
                                 p_org_id,
                                 p_instance_id,
                                 AD.Original_Origination_Type,
                                 DECODE(MSC_AATP_PVT.G_HIERARCHY_PROFILE,
                                    1, decode(AD.Original_Origination_Type,
                                       6, decode(AD.SOURCE_ORGANIZATION_ID,
                                          NULL, DECODE(AD.DEMAND_CLASS, null, null,
                                             DECODE(p_demand_class, '-1',
                                                MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                   null, null, Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                                        1, p_family_id,
                                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                'Y', AD.Original_Item_Id,
                                                                                p_family_id)), p_org_id,
                                                   p_instance_id, trunc(AD.Demand_Date),
                                                   p_level_id, AD.DEMAND_CLASS),
                                                AD.DEMAND_CLASS)),
                                          -23453, DECODE(AD.DEMAND_CLASS, null, null,
                                             DECODE(p_demand_class, '-1',
                                                MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                   null, null, Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                                        1, p_family_id,
                                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                'Y', AD.Original_Item_Id,
                                                                                p_family_id)), p_org_id,
                                                   p_instance_id, trunc(AD.Demand_Date),
                                                   p_level_id, AD.DEMAND_CLASS),
                                                AD.DEMAND_CLASS)),
                                          AD.ORGANIZATION_ID, DECODE(AD.DEMAND_CLASS, null, null,
                                             DECODE(p_demand_class, '-1',
                                                MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                   null, null, Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                                        1, p_family_id,
                                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                'Y', AD.Original_Item_Id,
                                                                                p_family_id)), p_org_id,
                                                   p_instance_id, trunc(AD.Demand_Date),
                                                   p_level_id, AD.DEMAND_CLASS),
                                                AD.DEMAND_CLASS)),
                                          p_demand_class),
                                    30, decode(AD.SOURCE_ORGANIZATION_ID,
                                       NULL, DECODE(AD.DEMAND_CLASS, null, null,
                                          DECODE(p_demand_class, '-1',
                                             MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                null, null, Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                                        1, p_family_id,
                                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                'Y', AD.Original_Item_Id,
                                                                                p_family_id)), p_org_id,
                                                p_instance_id, trunc(AD.Demand_Date),
                                                p_level_id, AD.DEMAND_CLASS),
                                             AD.DEMAND_CLASS)),
                                       -23453, DECODE(AD.DEMAND_CLASS, null, null,
                                          DECODE(p_demand_class, '-1',
                                             MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                null, null, Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                                        1, p_family_id,
                                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                'Y', AD.Original_Item_Id,
                                                                                p_family_id)), p_org_id,
                                                p_instance_id, trunc(AD.Demand_Date),
                                                p_level_id, AD.DEMAND_CLASS),
                                             AD.DEMAND_CLASS)),
                                       AD.ORGANIZATION_ID, DECODE(AD.DEMAND_CLASS, null, null,
                                          DECODE(p_demand_class, '-1',
                                             MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                null, null, Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                                        1, p_family_id,
                                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                'Y', AD.Original_Item_Id,
                                                                                p_family_id)), p_org_id,
                                                p_instance_id, trunc(AD.Demand_Date),
                                                p_level_id, AD.DEMAND_CLASS),
                                             AD.DEMAND_CLASS)),
                                       p_demand_class),
                                    DECODE(AD.DEMAND_CLASS, null, null,
                                       DECODE(p_demand_class, '-1',
                                          MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             null, null, Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                                        1, p_family_id,
                                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                'Y', AD.Original_Item_Id,
                                                                                p_family_id)), p_org_id,
                                             p_instance_id, trunc(AD.Demand_Date),
                                             p_level_id, AD.DEMAND_CLASS),
                                          AD.DEMAND_CLASS))),
                                    2, DECODE(AD.CUSTOMER_ID, NULL, p_demand_class,
                                                   0, p_demand_class,
                                       decode(AD.Original_Origination_Type,
                                          6, decode(AD.SOURCE_ORGANIZATION_ID,
                                             NULL, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                   AD.CUSTOMER_ID, AD.SHIP_TO_SITE_ID, Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                                                                1, p_family_id,
                                                                                                Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                                        'Y', AD.Original_Item_Id,
                                                                                                        p_family_id)),
                                                   p_org_id, p_instance_id, trunc(AD.Demand_Date),
                                                   p_level_id, NULL),
                                             -23453, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                   AD.CUSTOMER_ID, AD.SHIP_TO_SITE_ID, Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                                                                1, p_family_id,
                                                                                                Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                                        'Y', AD.Original_Item_Id,
                                                                                                        p_family_id)),
                                                   p_org_id, p_instance_id, trunc(AD.Demand_Date),
                                                   p_level_id, NULL),
                                             AD.ORGANIZATION_ID, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                   AD.CUSTOMER_ID, AD.SHIP_TO_SITE_ID, Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                                                                1, p_family_id,
                                                                                                Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                                        'Y', AD.Original_Item_Id,
                                                                                                        p_family_id)),
                                                   p_org_id, p_instance_id, trunc(AD.Demand_Date),
                                                   p_level_id, NULL),
                                             p_demand_class),
                                          30, decode(AD.SOURCE_ORGANIZATION_ID,
                                             NULL, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                   AD.CUSTOMER_ID, AD.SHIP_TO_SITE_ID, Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                                                                1, p_family_id,
                                                                                                Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                                        'Y', AD.Original_Item_Id,
                                                                                                        p_family_id)),
                                                   p_org_id, p_instance_id, trunc(AD.Demand_Date),
                                                   p_level_id, NULL),
                                             -23453, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                   AD.CUSTOMER_ID, AD.SHIP_TO_SITE_ID, Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                                                                1, p_family_id,
                                                                                                Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                                        'Y', AD.Original_Item_Id,
                                                                                                        p_family_id)),
                                                   p_org_id, p_instance_id, trunc(AD.Demand_Date),
                                                   p_level_id, NULL),
                                             AD.ORGANIZATION_ID, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                   AD.CUSTOMER_ID, AD.SHIP_TO_SITE_ID, Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                                                                1, p_family_id,
                                                                                                Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                                        'Y', AD.Original_Item_Id,
                                                                                                        p_family_id)),
                                                   p_org_id, p_instance_id, trunc(AD.Demand_Date),
                                                   p_level_id, NULL),
                                             p_demand_class),
                                          MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             AD.CUSTOMER_ID, AD.SHIP_TO_SITE_ID,
                                             Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                        1, p_family_id,
                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                'Y', AD.Original_Item_Id,
                                                                p_family_id)), p_org_id, p_instance_id,
                                             trunc(AD.Demand_Date),p_level_id, NULL)))),
                                       p_demand_class,
                                       p_level_id),0)) SD_QTY --4365873
                   FROM        MSC_ALLOC_DEMANDS AD
                   WHERE       AD.PLAN_ID = p_plan_id
                   AND         AD.SR_INSTANCE_ID = p_instance_id
                   AND         AD.INVENTORY_ITEM_ID in (p_member_id,p_family_id)
                   AND         AD.ORGANIZATION_ID = p_org_id
                   AND         AD.ORIGINATION_TYPE <> 52
                   AND         AD.ALLOCATED_QUANTITY <> 0
                   --bug3700564 added trunc
                   AND         TRUNC(AD.DEMAND_DATE) < NVL(p_itf, TRUNC(AD.DEMAND_DATE) + 1)
                   UNION ALL
                   SELECT  --TRUNC(SA.SUPPLY_DATE) SD_DATE,
                   	   GREATEST(TRUNC(SA.SUPPLY_DATE),p_sys_next_date) SD_DATE,--3099066
                           SA.ALLOCATED_QUANTITY UNALLOC_SD_QTY,
                           SA.ALLOCATED_QUANTITY*
                              DECODE(DECODE(MSC_AATP_PVT.G_HIERARCHY_PROFILE,
                                     1, DECODE(SA.DEMAND_CLASS, null, null,
                                        DECODE(p_demand_class, '-1',
                                           MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                         null,
                                                         null,
                                                         Decode(sign(trunc(SA.Supply_Date) - p_atf_date),
                                                                1, p_family_id,
                                                                Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                        'Y', SA.Original_Item_Id,
                                                                        p_family_id)),
                                                         p_org_id,
                                                         p_instance_id,
                                                         TRUNC(sa.SUPPLY_DATE),
                                                         p_level_id,
                                                         sa.DEMAND_CLASS),
                                           sa.DEMAND_CLASS)),
                                     2, DECODE(sa.CUSTOMER_ID, NULL, TO_CHAR(NULL),
                                                       0, TO_CHAR(NULL),
                                                       MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                         sa.CUSTOMER_ID,
                                                         sa.SHIP_TO_SITE_ID,
                                                         Decode(sign(trunc(sa.Supply_Date) - p_atf_date),
                                                                1, p_family_id,
                                                                Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                        'Y', sa.Original_Item_Id,
                                                                        p_family_id)),
                                                         p_org_id,
                                                         p_instance_id,
                                                         TRUNC(sa.SUPPLY_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,
                                           Decode(sign(trunc(sa.Supply_Date) - p_atf_date),
                                                1, p_family_id,
                                                Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                        'Y', sa.Original_Item_Id,
                                                        p_family_id)),
                                           p_org_id,
                                           null,
                                           null,
                                           p_demand_class,
                                           TRUNC(sa.SUPPLY_DATE)),
                                       1),*/
                                 DECODE(
                                  MIHM.allocation_percent/100, --4365873
                                 /*DECODE(MSC_AATP_FUNC.Get_DC_Alloc_Percent(
                                           p_instance_id,
                                           Decode(sign(trunc(sa.Supply_Date) - p_atf_date),
                                                1, p_family_id,
                                                Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                        'Y', sa.Original_Item_Id,
                                                        p_family_id)),
                                           p_org_id,
                                           null,
                                           null,
                                           p_demand_class,
                                           TRUNC(sa.SUPPLY_DATE)),*/
                                   NULL, 1,
                                 0)) SD_QTY
                   FROM    MSC_ALLOC_SUPPLIES SA,MSC_ITEM_HIERARCHY_MV MIHM
                   WHERE   SA.PLAN_ID = p_plan_id
                   AND     SA.SR_INSTANCE_ID = p_instance_id
                   AND     SA.INVENTORY_ITEM_ID in (p_member_id, p_family_id)
                   AND     SA.ORGANIZATION_ID = p_org_id
                   AND     SA.ALLOCATED_QUANTITY <> 0
                   --bug3700564 added trunc
                   AND     TRUNC(SA.SUPPLY_DATE) >= DECODE(SA.ORIGINAL_ORDER_TYPE,
                                                        27, TRUNC(SYSDATE),
                                                        28, TRUNC(SYSDATE),
                                                        TRUNC(SA.SUPPLY_DATE))
                   AND     TRUNC(SA.SUPPLY_DATE) < NVL(p_itf, TRUNC(SA.SUPPLY_DATE) + 1)
		   --4365874
		   --5220274 if the rule is assigned to family only then use family id.
                  AND    Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                             'N', p_family_id,
                         sa.INVENTORY_ITEM_ID) = MIHM.INVENTORY_ITEM_ID(+)
                  AND    sa.SR_INSTANCE_ID = MIHM.SR_INSTANCE_ID (+)
                  AND    sa.ORGANIZATION_ID = MIHM.ORGANIZATION_ID (+)
                AND    decode(MIHM.level_id (+),-1,1,2) = decode(MSC_AATP_PVT.G_HIERARCHY_PROFILE,1,1,2)
                  AND    TRUNC(sa.SUPPLY_DATE) >= MIHM.effective_date (+)
                  AND    TRUNC(sa.SUPPLY_DATE) <= MIHM.disable_date (+)
                AND    MIHM.demand_class (+) = p_demand_class
                   )
             GROUP BY SD_DATE
             order by SD_DATE; --4698199
Line: 4375

|  o  The supply demand SQL inserts following in msc_atp_sd_details_temp table:
|       -  Allocated Bucketed demands (origination type 51) for member item upto ATF
|            from msc_alloc_demands table.
|       -  Allocated Bucketed demands for family after ATF from msc_alloc_demands table.
|       -  Allocated Rollup supplies (order type 50) for member item upto ATF from
|            msc_alloc_supplies table.
|       -  Allocated Rollup supplies for family after ATF from msc_alloc_supplies table.
|  o  Other important differences from non PF SQLs are:
|       -  Columns Pf_Display_Flag, Original_Demand_Quantity and Original_Demand_Date
|            in msc_atp_sd_details_temp table are populated for demands.
|       -  Column Original_Supply_Demand_Type is populated for demands and supplies
|            and stores the supply demand type of parent supplies and demands.
+--------------------------------------------------------------------------------------*/
PROCEDURE Item_Alloc_Avail_Pf_Dtls (
        p_member_id                     IN      NUMBER,
        p_family_id                     IN      NUMBER,
        p_sr_member_id                  IN      NUMBER,
        p_sr_family_id                  IN      NUMBER,
        p_org_id                        IN      NUMBER,
        p_instance_id                   IN      NUMBER,
        p_plan_id                       IN      NUMBER,
        p_demand_class                  IN      VARCHAR2,
        p_level_id                      IN      NUMBER,
        p_itf                           IN      DATE,
        p_level                         IN      NUMBER,
        p_identifier                    IN      NUMBER,
        p_scenario_id                   IN      NUMBER,
        p_uom_code                      IN      VARCHAR2,
        p_sys_next_date			IN 	DATE, --bug3099066
        p_atf_date                      IN      DATE,
        x_return_status                 OUT     NOCOPY VARCHAR2
) IS
        l_null_num              NUMBER;
Line: 4431

        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_Date,
                Disposition_Type,
                Disposition_Name,
                Pegging_Id,
                End_Pegging_Id,
        	Pf_Display_Flag,
                Supply_Demand_Quantity,
        	Original_Demand_Quantity,
        	Original_Demand_Date,
        	Original_Item_Id,
        	Original_Supply_Demand_Type,
                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
                Inventory_Item_Name --bug3579625
                )
           (
            SELECT      p_level col1,
                        p_identifier col2,
                        p_scenario_id col3,
                        p_sr_family_id col4,
                        p_sr_member_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,
                        AD.ORIGINATION_TYPE col18,
                        l_null_char col19,
                        AD.SR_INSTANCE_ID col20,
                        l_null_num col21,
                        AD.PARENT_DEMAND_ID col22,
                        l_null_num col23,
                        -1* AD.ALLOCATED_QUANTITY *
                            DECODE(DECODE(MSC_AATP_PVT.G_HIERARCHY_PROFILE,
                              1, decode(AD.Original_Origination_Type,
                                 6, decode(AD.SOURCE_ORGANIZATION_ID,
                                    NULL, DECODE(AD.DEMAND_CLASS, null, null,
                                       DECODE(p_demand_class, '-1',
                                          MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             null, null, Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                                1, p_family_id,
                                                                Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                        'Y', AD.Original_Item_Id,
                                                                        p_family_id)), p_org_id,
                                             p_instance_id, trunc(AD.Demand_Date),
                                             p_level_id, AD.DEMAND_CLASS),
                                             AD.DEMAND_CLASS)),
                                    -23453, DECODE(AD.DEMAND_CLASS, null, null,
                                       DECODE(p_demand_class, '-1',
                                          MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             null, null, Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                                1, p_family_id,
                                                                Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                        'Y', AD.Original_Item_Id,
                                                                        p_family_id)), p_org_id,
                                             p_instance_id, trunc(AD.Demand_Date),
                                             p_level_id, AD.DEMAND_CLASS),
                                             AD.DEMAND_CLASS)),
                                    AD.ORGANIZATION_ID, DECODE(AD.DEMAND_CLASS, null, null,
                                       DECODE(p_demand_class, '-1',
                                          MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             null, null, Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                                1, p_family_id,
                                                                Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                        'Y', AD.Original_Item_Id,
                                                                        p_family_id)), p_org_id,
                                             p_instance_id, trunc(AD.Demand_Date),
                                             p_level_id, AD.DEMAND_CLASS),
                                             AD.DEMAND_CLASS)), TO_CHAR(NULL)),
                                 30, decode(AD.SOURCE_ORGANIZATION_ID,
                                    NULL, DECODE(AD.DEMAND_CLASS, null, null,
                                       DECODE(p_demand_class, '-1',
                                          MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             null, null, Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                                1, p_family_id,
                                                                Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                        'Y', AD.Original_Item_Id,
                                                                        p_family_id)), p_org_id,
                                             p_instance_id, trunc(AD.Demand_Date),
                                             p_level_id, AD.DEMAND_CLASS),
                                             AD.DEMAND_CLASS)),
                                    -23453, DECODE(AD.DEMAND_CLASS, null, null,
                                       DECODE(p_demand_class, '-1',
                                          MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             null, null, Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                                1, p_family_id,
                                                                Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                        'Y', AD.Original_Item_Id,
                                                                        p_family_id)), p_org_id,
                                             p_instance_id, trunc(AD.Demand_Date),
                                             p_level_id, AD.DEMAND_CLASS),
                                             AD.DEMAND_CLASS)),
                                    AD.ORGANIZATION_ID, DECODE(AD.DEMAND_CLASS, null, null,
                                       DECODE(p_demand_class, '-1',
                                          MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             null, null, Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                                1, p_family_id,
                                                                Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                        'Y', AD.Original_Item_Id,
                                                                        p_family_id)), p_org_id,
                                             p_instance_id, trunc(AD.Demand_Date),
                                             p_level_id, AD.DEMAND_CLASS),
                                             AD.DEMAND_CLASS)), TO_CHAR(NULL)),
                                 DECODE(AD.DEMAND_CLASS, null, null,
                                    DECODE(p_demand_class, '-1',
                                       MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                          null, null, Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                                1, p_family_id,
                                                                Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                        'Y', AD.Original_Item_Id,
                                                                        p_family_id)), p_org_id,
                                          p_instance_id, trunc(AD.Demand_Date),
                                          p_level_id, AD.DEMAND_CLASS),
                                          AD.DEMAND_CLASS))),
                              2, DECODE(AD.CUSTOMER_ID, NULL, TO_CHAR(NULL),
                                                   0, TO_CHAR(NULL),
                                 decode(AD.Original_Origination_Type,
                                    6, decode(AD.SOURCE_ORGANIZATION_ID,
                                       NULL, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             AD.CUSTOMER_ID, AD.SHIP_TO_SITE_ID, Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                                                        1, p_family_id,
                                                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                                'Y', AD.Original_Item_Id,
                                                                                                p_family_id)),
                                             p_org_id, p_instance_id, trunc(AD.Demand_Date),
                                             p_level_id, NULL),
                                       -23453, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             AD.CUSTOMER_ID, AD.SHIP_TO_SITE_ID, Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                                                        1, p_family_id,
                                                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                                'Y', AD.Original_Item_Id,
                                                                                                p_family_id)),
                                             p_org_id, p_instance_id, trunc(AD.Demand_Date),
                                             p_level_id, NULL),
                                       AD.ORGANIZATION_ID, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             AD.CUSTOMER_ID, AD.SHIP_TO_SITE_ID, Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                                                        1, p_family_id,
                                                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                                'Y', AD.Original_Item_Id,
                                                                                                p_family_id)),
                                             p_org_id, p_instance_id, trunc(AD.Demand_Date),
                                             p_level_id, NULL),
                                       TO_CHAR(NULL)),
                                    30, decode(AD.SOURCE_ORGANIZATION_ID,
                                       NULL, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             AD.CUSTOMER_ID, AD.SHIP_TO_SITE_ID, Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                                                        1, p_family_id,
                                                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                                'Y', AD.Original_Item_Id,
                                                                                                p_family_id)),
                                             p_org_id, p_instance_id, trunc(AD.Demand_Date),
                                             p_level_id, NULL),
                                       -23453, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             AD.CUSTOMER_ID, AD.SHIP_TO_SITE_ID, Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                                                        1, p_family_id,
                                                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                                'Y', AD.Original_Item_Id,
                                                                                                p_family_id)),
                                             p_org_id, p_instance_id, trunc(AD.Demand_Date),
                                             p_level_id, NULL),
                                       AD.ORGANIZATION_ID, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             AD.CUSTOMER_ID, AD.SHIP_TO_SITE_ID, Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                                                        1, p_family_id,
                                                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                                'Y', AD.Original_Item_Id,
                                                                                                p_family_id)),
                                             p_org_id, p_instance_id, trunc(AD.Demand_Date),
                                             p_level_id, NULL),
                                       TO_CHAR(NULL)),
                                    MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                       AD.CUSTOMER_ID, AD.SHIP_TO_SITE_ID,
                                       Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                1, p_family_id,
                                                Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                        'Y', AD.Original_Item_Id,
                                                        p_family_id)), p_org_id, p_instance_id,
                                       trunc(AD.Demand_Date),p_level_id, NULL)))),
                           p_demand_class, 1,
                             Decode(AD.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,
                                 AD.PARENT_DEMAND_ID,
                                 trunc(AD.Demand_Date),
                                 AD.USING_ASSEMBLY_ITEM_ID,
                                 DECODE(AD.SOURCE_ORGANIZATION_ID,
                                    -23453, null,
                                    AD.SOURCE_ORGANIZATION_ID),
                                 Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                        1, p_family_id,
                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                'Y', AD.Original_Item_Id,
                                                p_family_id)),
                                 p_org_id,
                                 p_instance_id,
                                 AD.Original_Origination_Type,
                                 DECODE(MSC_AATP_PVT.G_HIERARCHY_PROFILE,
                                    1, decode(AD.Original_Origination_Type,
                                       6, decode(AD.SOURCE_ORGANIZATION_ID,
                                          NULL, DECODE(AD.DEMAND_CLASS, null, null,
                                             DECODE(p_demand_class, '-1',
                                                MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                   null, null, Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                                        1, p_family_id,
                                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                'Y', AD.Original_Item_Id,
                                                                                p_family_id)), p_org_id,
                                                   p_instance_id, trunc(AD.Demand_Date),
                                                   p_level_id, AD.DEMAND_CLASS),
                                                AD.DEMAND_CLASS)),
                                          -23453, DECODE(AD.DEMAND_CLASS, null, null,
                                             DECODE(p_demand_class, '-1',
                                                MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                   null, null, Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                                        1, p_family_id,
                                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                'Y', AD.Original_Item_Id,
                                                                                p_family_id)), p_org_id,
                                                   p_instance_id, trunc(AD.Demand_Date),
                                                   p_level_id, AD.DEMAND_CLASS),
                                                AD.DEMAND_CLASS)),
                                          AD.ORGANIZATION_ID, DECODE(AD.DEMAND_CLASS, null, null,
                                             DECODE(p_demand_class, '-1',
                                                MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                   null, null, Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                                        1, p_family_id,
                                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                'Y', AD.Original_Item_Id,
                                                                                p_family_id)), p_org_id,
                                                   p_instance_id, trunc(AD.Demand_Date),
                                                   p_level_id, AD.DEMAND_CLASS),
                                                AD.DEMAND_CLASS)),
                                          p_demand_class),
                                    30, decode(AD.SOURCE_ORGANIZATION_ID,
                                       NULL, DECODE(AD.DEMAND_CLASS, null, null,
                                          DECODE(p_demand_class, '-1',
                                             MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                null, null, Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                                        1, p_family_id,
                                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                'Y', AD.Original_Item_Id,
                                                                                p_family_id)), p_org_id,
                                                p_instance_id, trunc(AD.Demand_Date),
                                                   p_level_id, AD.DEMAND_CLASS),
                                             AD.DEMAND_CLASS)),
                                       -23453, DECODE(AD.DEMAND_CLASS, null, null,
                                          DECODE(p_demand_class, '-1',
                                             MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                null, null, Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                                        1, p_family_id,
                                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                'Y', AD.Original_Item_Id,
                                                                                p_family_id)), p_org_id,
                                                p_instance_id, trunc(AD.Demand_Date),
                                                   p_level_id, AD.DEMAND_CLASS),
                                             AD.DEMAND_CLASS)),
                                       AD.ORGANIZATION_ID, DECODE(AD.DEMAND_CLASS, null, null,
                                          DECODE(p_demand_class, '-1',
                                             MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                null, null, Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                                        1, p_family_id,
                                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                'Y', AD.Original_Item_Id,
                                                                                p_family_id)), p_org_id,
                                                p_instance_id, trunc(AD.Demand_Date),
                                                   p_level_id, AD.DEMAND_CLASS),
                                             AD.DEMAND_CLASS)),
                                       p_demand_class),
                                    DECODE(AD.DEMAND_CLASS, null, null,
                                       DECODE(p_demand_class, '-1',
                                          MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             null, null, Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                                        1, p_family_id,
                                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                'Y', AD.Original_Item_Id,
                                                                                p_family_id)), p_org_id,
                                             p_instance_id, trunc(AD.Demand_Date),
                                                   p_level_id, AD.DEMAND_CLASS),
                                          AD.DEMAND_CLASS))),
                                    2, DECODE(AD.CUSTOMER_ID, NULL, p_demand_class,
                                                   0, p_demand_class,
                                       decode(AD.Original_Origination_Type,
                                          6, decode(AD.SOURCE_ORGANIZATION_ID,
                                             NULL, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                   AD.CUSTOMER_ID, AD.SHIP_TO_SITE_ID, Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                                                                1, p_family_id,
                                                                                                Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                                        'Y', AD.Original_Item_Id,
                                                                                                        p_family_id)),
                                                   p_org_id, p_instance_id, trunc(AD.Demand_Date),
                                                   p_level_id, NULL),
                                             -23453, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                   AD.CUSTOMER_ID, AD.SHIP_TO_SITE_ID, Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                                                                1, p_family_id,
                                                                                                Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                                        'Y', AD.Original_Item_Id,
                                                                                                        p_family_id)),
                                                   p_org_id, p_instance_id, trunc(AD.Demand_Date),
                                                   p_level_id, NULL),
                                             AD.ORGANIZATION_ID, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                   AD.CUSTOMER_ID, AD.SHIP_TO_SITE_ID, Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                                                                1, p_family_id,
                                                                                                Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                                        'Y', AD.Original_Item_Id,
                                                                                                        p_family_id)),
                                                   p_org_id, p_instance_id, trunc(AD.Demand_Date),
                                                   p_level_id, NULL),
                                             p_demand_class),
                                          30, decode(AD.SOURCE_ORGANIZATION_ID,
                                             NULL, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                   AD.CUSTOMER_ID, AD.SHIP_TO_SITE_ID, Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                                                                1, p_family_id,
                                                                                                Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                                        'Y', AD.Original_Item_Id,
                                                                                                        p_family_id)),
                                                   p_org_id, p_instance_id, trunc(AD.Demand_Date),
                                                   p_level_id, NULL),
                                             -23453, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                   AD.CUSTOMER_ID, AD.SHIP_TO_SITE_ID, Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                                                                1, p_family_id,
                                                                                                Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                                        'Y', AD.Original_Item_Id,
                                                                                                        p_family_id)),
                                                   p_org_id, p_instance_id, trunc(AD.Demand_Date),
                                                   p_level_id, NULL),
                                             AD.ORGANIZATION_ID, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                   AD.CUSTOMER_ID, AD.SHIP_TO_SITE_ID, Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                                                                1, p_family_id,
                                                                                                Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                                        'Y', AD.Original_Item_Id,
                                                                                                        p_family_id)),
                                                   p_org_id, p_instance_id, trunc(AD.Demand_Date),
                                                   p_level_id, NULL),
                                             p_demand_class),
                                          MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             AD.CUSTOMER_ID, AD.SHIP_TO_SITE_ID,
                                             Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                        1, p_family_id,
                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                'Y', AD.Original_Item_Id,
                                                                p_family_id)), p_org_id, p_instance_id,
                                             trunc(AD.Demand_Date),p_level_id, NULL)))),
                                       p_demand_class,
                                       p_level_id),0)) col24, --4365873
                        --TRUNC(AD.DEMAND_DATE) col25,
                        GREATEST(TRUNC(AD.DEMAND_DATE),p_sys_next_date) col25, --3099066
                        l_null_num col26,
                        AD.ORDER_NUMBER col27,
                        l_null_num col28,
                        l_null_num col29,
                	Decode(AD.inventory_item_id, p_family_id,
                	        Decode(AD.original_item_id, p_member_id,
                	                AD.Pf_Display_Flag,
                	                Decode(sign(trunc(AD.Original_Demand_Date) - p_atf_date),
                	                        1, AD.Pf_Display_Flag,
                	                        1)),
                	        AD.Pf_Display_Flag),
                	-1* NVL(AD.Demand_Quantity, AD.ALLOCATED_QUANTITY),
                        -1* NVL(AD.Demand_Quantity, AD.ALLOCATED_QUANTITY) *
                            DECODE(DECODE(MSC_AATP_PVT.G_HIERARCHY_PROFILE,
                              1, decode(AD.Original_Origination_Type,
                                 6, decode(AD.SOURCE_ORGANIZATION_ID,
                                    NULL, DECODE(AD.DEMAND_CLASS, null, null,
                                       DECODE(p_demand_class, '-1',
                                          MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             null, null, Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                                1, p_family_id,
                                                                Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                        'Y', AD.Original_Item_Id,
                                                                        p_family_id)), p_org_id,
                                             p_instance_id, trunc(AD.Demand_Date),
                                             p_level_id, AD.DEMAND_CLASS),
                                             AD.DEMAND_CLASS)),
                                    -23453, DECODE(AD.DEMAND_CLASS, null, null,
                                       DECODE(p_demand_class, '-1',
                                          MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             null, null, Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                                1, p_family_id,
                                                                Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                        'Y', AD.Original_Item_Id,
                                                                        p_family_id)), p_org_id,
                                             p_instance_id, trunc(AD.Demand_Date),
                                             p_level_id, AD.DEMAND_CLASS),
                                             AD.DEMAND_CLASS)),
                                    AD.ORGANIZATION_ID, DECODE(AD.DEMAND_CLASS, null, null,
                                       DECODE(p_demand_class, '-1',
                                          MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             null, null, Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                                1, p_family_id,
                                                                Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                        'Y', AD.Original_Item_Id,
                                                                        p_family_id)), p_org_id,
                                             p_instance_id, trunc(AD.Demand_Date),
                                             p_level_id, AD.DEMAND_CLASS),
                                             AD.DEMAND_CLASS)), TO_CHAR(NULL)),
                                 30, decode(AD.SOURCE_ORGANIZATION_ID,
                                    NULL, DECODE(AD.DEMAND_CLASS, null, null,
                                       DECODE(p_demand_class, '-1',
                                          MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             null, null, Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                                1, p_family_id,
                                                                Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                        'Y', AD.Original_Item_Id,
                                                                        p_family_id)), p_org_id,
                                             p_instance_id, trunc(AD.Demand_Date),
                                             p_level_id, AD.DEMAND_CLASS),
                                             AD.DEMAND_CLASS)),
                                    -23453, DECODE(AD.DEMAND_CLASS, null, null,
                                       DECODE(p_demand_class, '-1',
                                          MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             null, null, Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                                1, p_family_id,
                                                                Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                        'Y', AD.Original_Item_Id,
                                                                        p_family_id)), p_org_id,
                                             p_instance_id, trunc(AD.Demand_Date),
                                             p_level_id, AD.DEMAND_CLASS),
                                             AD.DEMAND_CLASS)),
                                    AD.ORGANIZATION_ID, DECODE(AD.DEMAND_CLASS, null, null,
                                       DECODE(p_demand_class, '-1',
                                          MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             null, null, Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                                1, p_family_id,
                                                                Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                        'Y', AD.Original_Item_Id,
                                                                        p_family_id)), p_org_id,
                                             p_instance_id, trunc(AD.Demand_Date),
                                             p_level_id, AD.DEMAND_CLASS),
                                             AD.DEMAND_CLASS)), TO_CHAR(NULL)),
                                 DECODE(AD.DEMAND_CLASS, null, null,
                                    DECODE(p_demand_class, '-1',
                                       MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                          null, null, Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                                1, p_family_id,
                                                                Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                        'Y', AD.Original_Item_Id,
                                                                        p_family_id)), p_org_id,
                                          p_instance_id, trunc(AD.Demand_Date),
                                          p_level_id, AD.DEMAND_CLASS),
                                          AD.DEMAND_CLASS))),
                              2, DECODE(AD.CUSTOMER_ID, NULL, TO_CHAR(NULL),
                                                   0, TO_CHAR(NULL),
                                 decode(AD.Original_Origination_Type,
                                    6, decode(AD.SOURCE_ORGANIZATION_ID,
                                       NULL, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             AD.CUSTOMER_ID, AD.SHIP_TO_SITE_ID, Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                                                        1, p_family_id,
                                                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                                'Y', AD.Original_Item_Id,
                                                                                                p_family_id)),
                                             p_org_id, p_instance_id, trunc(AD.Demand_Date),
                                             p_level_id, NULL),
                                       -23453, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             AD.CUSTOMER_ID, AD.SHIP_TO_SITE_ID, Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                                                        1, p_family_id,
                                                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                                'Y', AD.Original_Item_Id,
                                                                                                p_family_id)),
                                             p_org_id, p_instance_id, trunc(AD.Demand_Date),
                                             p_level_id, NULL),
                                       AD.ORGANIZATION_ID, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             AD.CUSTOMER_ID, AD.SHIP_TO_SITE_ID, Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                                                        1, p_family_id,
                                                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                                'Y', AD.Original_Item_Id,
                                                                                                p_family_id)),
                                             p_org_id, p_instance_id, trunc(AD.Demand_Date),
                                             p_level_id, NULL),
                                       TO_CHAR(NULL)),
                                    30, decode(AD.SOURCE_ORGANIZATION_ID,
                                       NULL, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             AD.CUSTOMER_ID, AD.SHIP_TO_SITE_ID, Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                                                        1, p_family_id,
                                                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                                'Y', AD.Original_Item_Id,
                                                                                                p_family_id)),
                                             p_org_id, p_instance_id, trunc(AD.Demand_Date),
                                             p_level_id, NULL),
                                       -23453, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             AD.CUSTOMER_ID, AD.SHIP_TO_SITE_ID, Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                                                        1, p_family_id,
                                                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                                'Y', AD.Original_Item_Id,
                                                                                                p_family_id)),
                                             p_org_id, p_instance_id, trunc(AD.Demand_Date),
                                             p_level_id, NULL),
                                       AD.ORGANIZATION_ID, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             AD.CUSTOMER_ID, AD.SHIP_TO_SITE_ID, Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                                                        1, p_family_id,
                                                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                                'Y', AD.Original_Item_Id,
                                                                                                p_family_id)),
                                             p_org_id, p_instance_id, trunc(AD.Demand_Date),
                                             p_level_id, NULL),
                                       TO_CHAR(NULL)),
                                    MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                       AD.CUSTOMER_ID, AD.SHIP_TO_SITE_ID,
                                       Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                1, p_family_id,
                                                Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                        'Y', AD.Original_Item_Id,
                                                        p_family_id)), p_org_id, p_instance_id,
                                       trunc(AD.Demand_Date),p_level_id, NULL)))),
                           p_demand_class, 1,
                              MSC_AATP_FUNC.Get_Item_Demand_Alloc_Percent(p_plan_id,
                                 AD.PARENT_DEMAND_ID,
                                 trunc(AD.Demand_Date),
                                 AD.USING_ASSEMBLY_ITEM_ID,
                                 DECODE(AD.SOURCE_ORGANIZATION_ID,
                                    -23453, null,
                                    AD.SOURCE_ORGANIZATION_ID),
                                 Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                        1, p_family_id,
                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                'Y', AD.Original_Item_Id,
                                                p_family_id)),
                                 p_org_id,
                                 p_instance_id,
                                 AD.Original_Origination_Type,
                                 DECODE(MSC_AATP_PVT.G_HIERARCHY_PROFILE,
                                    1, decode(AD.Original_Origination_Type,
                                       6, decode(AD.SOURCE_ORGANIZATION_ID,
                                          NULL, DECODE(AD.DEMAND_CLASS, null, null,
                                             DECODE(p_demand_class, '-1',
                                                MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                   null, null, Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                                        1, p_family_id,
                                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                'Y', AD.Original_Item_Id,
                                                                                p_family_id)), p_org_id,
                                                   p_instance_id, trunc(AD.Demand_Date),
                                                   p_level_id, AD.DEMAND_CLASS),
                                                AD.DEMAND_CLASS)),
                                          -23453, DECODE(AD.DEMAND_CLASS, null, null,
                                             DECODE(p_demand_class, '-1',
                                                MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                   null, null, Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                                        1, p_family_id,
                                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                'Y', AD.Original_Item_Id,
                                                                                p_family_id)), p_org_id,
                                                   p_instance_id, trunc(AD.Demand_Date),
                                                   p_level_id, AD.DEMAND_CLASS),
                                                AD.DEMAND_CLASS)),
                                          AD.ORGANIZATION_ID, DECODE(AD.DEMAND_CLASS, null, null,
                                             DECODE(p_demand_class, '-1',
                                                MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                   null, null, Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                                        1, p_family_id,
                                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                'Y', AD.Original_Item_Id,
                                                                                p_family_id)), p_org_id,
                                                   p_instance_id, trunc(AD.Demand_Date),
                                                   p_level_id, AD.DEMAND_CLASS),
                                                AD.DEMAND_CLASS)),
                                          p_demand_class),
                                    30, decode(AD.SOURCE_ORGANIZATION_ID,
                                       NULL, DECODE(AD.DEMAND_CLASS, null, null,
                                          DECODE(p_demand_class, '-1',
                                             MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                null, null, Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                                        1, p_family_id,
                                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                'Y', AD.Original_Item_Id,
                                                                                p_family_id)), p_org_id,
                                                p_instance_id, trunc(AD.Demand_Date),
                                                   p_level_id, AD.DEMAND_CLASS),
                                             AD.DEMAND_CLASS)),
                                       -23453, DECODE(AD.DEMAND_CLASS, null, null,
                                          DECODE(p_demand_class, '-1',
                                             MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                null, null, Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                                        1, p_family_id,
                                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                'Y', AD.Original_Item_Id,
                                                                                p_family_id)), p_org_id,
                                                p_instance_id, trunc(AD.Demand_Date),
                                                   p_level_id, AD.DEMAND_CLASS),
                                             AD.DEMAND_CLASS)),
                                       AD.ORGANIZATION_ID, DECODE(AD.DEMAND_CLASS, null, null,
                                          DECODE(p_demand_class, '-1',
                                             MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                null, null, Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                                        1, p_family_id,
                                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                'Y', AD.Original_Item_Id,
                                                                                p_family_id)), p_org_id,
                                                p_instance_id, trunc(AD.Demand_Date),
                                                   p_level_id, AD.DEMAND_CLASS),
                                             AD.DEMAND_CLASS)),
                                       p_demand_class),
                                    DECODE(AD.DEMAND_CLASS, null, null,
                                       DECODE(p_demand_class, '-1',
                                          MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             null, null, Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                                        1, p_family_id,
                                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                'Y', AD.Original_Item_Id,
                                                                                p_family_id)), p_org_id,
                                             p_instance_id, trunc(AD.Demand_Date),
                                                   p_level_id, AD.DEMAND_CLASS),
                                          AD.DEMAND_CLASS))),
                                    2, DECODE(AD.CUSTOMER_ID, NULL, p_demand_class,
                                                   0, p_demand_class,
                                       decode(AD.Original_Origination_Type,
                                          6, decode(AD.SOURCE_ORGANIZATION_ID,
                                             NULL, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                   AD.CUSTOMER_ID, AD.SHIP_TO_SITE_ID, Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                                                                1, p_family_id,
                                                                                                Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                                        'Y', AD.Original_Item_Id,
                                                                                                        p_family_id)),
                                                   p_org_id, p_instance_id, trunc(AD.Demand_Date),
                                                   p_level_id, NULL),
                                             -23453, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                   AD.CUSTOMER_ID, AD.SHIP_TO_SITE_ID, Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                                                                1, p_family_id,
                                                                                                Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                                        'Y', AD.Original_Item_Id,
                                                                                                        p_family_id)),
                                                   p_org_id, p_instance_id, trunc(AD.Demand_Date),
                                                   p_level_id, NULL),
                                             AD.ORGANIZATION_ID, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                   AD.CUSTOMER_ID, AD.SHIP_TO_SITE_ID, Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                                                                1, p_family_id,
                                                                                                Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                                        'Y', AD.Original_Item_Id,
                                                                                                        p_family_id)),
                                                   p_org_id, p_instance_id, trunc(AD.Demand_Date),
                                                   p_level_id, NULL),
                                             p_demand_class),
                                          30, decode(AD.SOURCE_ORGANIZATION_ID,
                                             NULL, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                   AD.CUSTOMER_ID, AD.SHIP_TO_SITE_ID, Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                                                                1, p_family_id,
                                                                                                Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                                        'Y', AD.Original_Item_Id,
                                                                                                        p_family_id)),
                                                   p_org_id, p_instance_id, trunc(AD.Demand_Date),
                                                   p_level_id, NULL),
                                             -23453, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                   AD.CUSTOMER_ID, AD.SHIP_TO_SITE_ID, Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                                                                1, p_family_id,
                                                                                                Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                                        'Y', AD.Original_Item_Id,
                                                                                                        p_family_id)),
                                                   p_org_id, p_instance_id, trunc(AD.Demand_Date),
                                                   p_level_id, NULL),
                                             AD.ORGANIZATION_ID, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                   AD.CUSTOMER_ID, AD.SHIP_TO_SITE_ID, Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                                                                1, p_family_id,
                                                                                                Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                                        'Y', AD.Original_Item_Id,
                                                                                                        p_family_id)),
                                                   p_org_id, p_instance_id, trunc(AD.Demand_Date),
                                                   p_level_id, NULL),
                                             p_demand_class),
                                          MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                             AD.CUSTOMER_ID, AD.SHIP_TO_SITE_ID,
                                             Decode(sign(trunc(AD.Demand_Date) - p_atf_date),
                                                        1, p_family_id,
                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                'Y', AD.Original_Item_Id,
                                                                p_family_id)), p_org_id, p_instance_id,
                                             trunc(AD.Demand_Date),p_level_id, NULL)))),
                                       p_demand_class,
                                       p_level_id)),
                	trunc(AD.Original_Demand_Date),
                	AD.Original_Item_Id,
                	AD.Original_Origination_Type,
                        l_sysdate,
                        G_USER_ID,
                        l_sysdate,
                        G_USER_ID,
                        G_USER_ID,
                        -1* AD.ALLOCATED_QUANTITY, -- bug 3282426
                        MTPS.LOCATION,   --bug3263368
                        MTP.PARTNER_NAME, --bug3263368
                        AD.DEMAND_CLASS, --bug3263368
                        AD.REQUEST_DATE, --bug3263368
                        I.Item_Name -- bug3579625
            FROM        MSC_ALLOC_DEMANDS AD,
                        MSC_TRADING_PARTNERS    MTP,--bug3263368
                        MSC_TRADING_PARTNER_SITES    MTPS, --bug3263368
                        MSC_SYSTEM_ITEMS I --bug3579625
            WHERE       AD.PLAN_ID = p_plan_id
            AND         AD.SR_INSTANCE_ID = p_instance_id
            AND         AD.INVENTORY_ITEM_ID in (p_member_id,p_family_id)
            AND         AD.ORGANIZATION_ID = p_org_id
            AND         AD.ORIGINATION_TYPE <> 52
            AND         AD.ALLOCATED_QUANTITY <> 0
            --bug3700564 added trunc
            AND         TRUNC(AD.DEMAND_DATE) < NVL(p_itf, TRUNC(AD.DEMAND_DATE) + 1)
            AND         AD.SHIP_TO_SITE_ID = MTPS.PARTNER_SITE_ID(+) --bug3263368
            AND         AD.CUSTOMER_ID = MTP.PARTNER_ID(+)--bug3263368
            -- bug3579625 Addition join with MSC_SYSTEM_ITEMS (I)
            AND         AD.PLAN_ID = I.PLAN_ID
            AND         AD.SR_INSTANCE_ID = I.SR_INSTANCE_ID
            AND         AD.ORIGINAL_ITEM_ID = I.INVENTORY_ITEM_ID
            AND         AD.ORGANIZATION_ID = I.ORGANIZATION_ID

            UNION ALL
            SELECT      p_level col1,
                        p_identifier col2,
                        p_scenario_id col3,
                        p_sr_family_id col4 ,
                        p_sr_member_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,
                        CSA.ORDER_TYPE col18,
                        l_null_char col19,
                        CSA.SR_INSTANCE_ID col20,
                        l_null_num col21,
                        CSA.PARENT_TRANSACTION_ID col22,
                        l_null_num col23,
                        CSA.ALLOCATED_QUANTITY*
                              DECODE(DECODE(MSC_AATP_PVT.G_HIERARCHY_PROFILE,
                                     1, DECODE(CSA.DEMAND_CLASS, null, null,
                                        DECODE(p_demand_class, '-1',
                                           MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                         null,
                                                         null,
                                                         Decode(sign(trunc(CSA.Supply_Date) - p_atf_date),
                                                                1, p_family_id,
                                                                Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                        'Y', CSA.Original_Item_Id,
                                                                        p_family_id)),
                                                         p_org_id,
                                                         p_instance_id,
                                                         TRUNC(CSA.SUPPLY_DATE),
                                                         p_level_id,
                                                         CSA.DEMAND_CLASS),
                                           CSA.DEMAND_CLASS)),
                                     2, DECODE(CSA.CUSTOMER_ID, NULL, TO_CHAR(NULL),
                                                       0, TO_CHAR(NULL),
                                                       MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                         CSA.CUSTOMER_ID,
                                                         CSA.SHIP_TO_SITE_ID,
                                                         Decode(sign(trunc(CSA.Supply_Date) - p_atf_date),
                                                                1, p_family_id,
                                                                Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                        'Y', CSA.Original_Item_Id,
                                                                        p_family_id)),
                                                         p_org_id,
                                                         p_instance_id,
                                                         TRUNC(CSA.SUPPLY_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,
                                           Decode(sign(trunc(CSA.Supply_Date) - p_atf_date),
                                                1, p_family_id,
                                                Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                        'Y', CSA.Original_Item_Id,
                                                        p_family_id)),
                                           p_org_id,
                                           null,
                                           null,
                                           p_demand_class,
                                           TRUNC(CSA.SUPPLY_DATE)),
                                       1),*/
                                 DECODE(
                                 MIHM.allocation_percent/100, --4365873
                                 /*DECODE(MSC_AATP_FUNC.Get_DC_Alloc_Percent(
                                           p_instance_id,
                                           Decode(sign(trunc(CSA.Supply_Date) - p_atf_date),
                                                1, p_family_id,
                                                Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                        'Y', CSA.Original_Item_Id,
                                                        p_family_id)),
                                           p_org_id,
                                           null,
                                           null,
                                           p_demand_class,
                                           TRUNC(CSA.SUPPLY_DATE)),*/
                                   NULL, 1,
                                 0)) col24,
                        --TRUNC(SA.SUPPLY_DATE) col25,
                        GREATEST(TRUNC(CSA.SUPPLY_DATE),p_sys_next_date) col25, --3099066
                        l_null_num col26,
                        CSA.ORDER_NUMBER col27,
                        l_null_num col28,
                        l_null_num col29,
        		l_null_num,
        		NVL(CSA.Supply_Quantity, CSA.ALLOCATED_QUANTITY),
        		l_null_num,
        		to_date(null),
        		CSA.Original_Item_Id,
        		CSA.Original_Order_Type,
                        l_sysdate,
                        G_USER_ID,
                        l_sysdate,
                        G_USER_ID,
                        G_USER_ID,
                        CSA.ALLOCATED_QUANTITY, -- bug 3282426
                        --null,
                        --null,
                        --null,
                        --null,
                        l_null_char, --bug3814584
                        l_null_char, --bug3814584
                        l_null_char, --bug3814584
                        l_null_date,  --bug3814584
                        CSA.Item_Name -- bug3579625
            FROM
                (
                select
                	SA.SUPPLY_DATE,
			SA.DEMAND_CLASS,
			SA.Original_Item_Id,
			SA.CUSTOMER_ID,
			SA.SHIP_TO_SITE_ID,
			SA.ORGANIZATION_ID,
			SA.SR_INSTANCE_ID,
			SA.INVENTORY_ITEM_ID,
			SA.ORIGINAL_ORDER_TYPE,
			SA.ORDER_NUMBER,
			I.Item_Name,
			SA.Supply_Quantity,
			SA.ALLOCATED_QUANTITY,
			SA.PARENT_TRANSACTION_ID,
			SA.ORDER_TYPE
            FROM        MSC_ALLOC_SUPPLIES SA,
                        MSC_SYSTEM_ITEMS I
            WHERE       SA.PLAN_ID = p_plan_id
            AND         SA.SR_INSTANCE_ID = p_instance_id
            AND         SA.INVENTORY_ITEM_ID in (p_member_id, p_family_id)
            AND         SA.ORGANIZATION_ID = p_org_id
            AND         SA.ALLOCATED_QUANTITY <> 0
            AND         TRUNC(SA.SUPPLY_DATE) >= DECODE(SA.ORIGINAL_ORDER_TYPE,
                                                        27, TRUNC(SYSDATE),
                                                        28, TRUNC(SYSDATE),
                                                        TRUNC(SA.SUPPLY_DATE))
            --bug3700564 added trunc
            AND         TRUNC(SA.SUPPLY_DATE) < NVL(p_itf, TRUNC(SA.SUPPLY_DATE) + 1)
            -- bug3579625 Addition join with MSC_SYSTEM_ITEMS (I)
            AND         SA.PLAN_ID = I.PLAN_ID
            AND         SA.SR_INSTANCE_ID = I.SR_INSTANCE_ID
            AND         SA.ORIGINAL_ITEM_ID = I.INVENTORY_ITEM_ID
            AND         SA.ORGANIZATION_ID = I.ORGANIZATION_ID) CSA,
                   MSC_ITEM_HIERARCHY_MV MIHM
	WHERE
		--4365873
		--5220274 if the rule is assigned to family only then use family id.
               Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                           'N', p_family_id,
                  CSA.INVENTORY_ITEM_ID) = MIHM.INVENTORY_ITEM_ID(+)
        AND    CSA.SR_INSTANCE_ID = MIHM.SR_INSTANCE_ID (+)
        AND    CSA.ORGANIZATION_ID = MIHM.ORGANIZATION_ID (+)
        AND    decode(MIHM.level_id (+),-1,1,2) = decode(MSC_AATP_PVT.G_HIERARCHY_PROFILE,1,1,2)
        AND    TRUNC(CSA.SUPPLY_DATE) >= MIHM.effective_date (+)
        AND    TRUNC(CSA.SUPPLY_DATE) <= MIHM.disable_date (+)
        AND    MIHM.demand_class (+) = p_demand_class
           )
           ;
Line: 5376

        SELECT 	SD_DATE,
                SUM(SD_QTY)
        BULK COLLECT INTO
                x_atp_dates,
                x_atp_qtys
        FROM (
                SELECT  TRUNC(AD.DEMAND_DATE) SD_DATE,
                        -1 * AD.ALLOCATED_QUANTITY SD_QTY
                FROM    MSC_ALLOC_DEMANDS AD
                WHERE   AD.PLAN_ID = p_plan_id
                AND     AD.SR_INSTANCE_ID = p_instance_id
                AND     AD.INVENTORY_ITEM_ID in (p_member_id, p_family_id)
                AND     AD.ORIGINATION_TYPE <> 52 -- ATP Bucketed Demand
                AND     AD.ORGANIZATION_ID = p_org_id
                AND     AD.DEMAND_CLASS = NVL(p_demand_class, AD.DEMAND_CLASS)
                AND     AD.ALLOCATED_QUANTITY  <> 0 --4501434
                AND     TRUNC(AD.DEMAND_DATE) < p_itf
                UNION ALL
                SELECT  TRUNC(SA.SUPPLY_DATE) SD_DATE,
                        SA.ALLOCATED_QUANTITY SD_QTY
                FROM    MSC_ALLOC_SUPPLIES SA
                WHERE   SA.PLAN_ID = p_plan_id
                AND     SA.SR_INSTANCE_ID = p_instance_id
                AND     SA.INVENTORY_ITEM_ID in (p_member_id, p_family_id)
                AND     TRUNC(SA.SUPPLY_DATE) >= DECODE(SA.ORIGINAL_ORDER_TYPE,
                                                        27, TRUNC(SYSDATE),
                                                        28, TRUNC(SYSDATE),
                                                        TRUNC(SA.SUPPLY_DATE))
                AND     SA.ORGANIZATION_ID = p_org_id
                AND     SA.ALLOCATED_QUANTITY <> 0
                AND     SA.DEMAND_CLASS = NVL(p_demand_class, SA.DEMAND_CLASS)
                AND     TRUNC(SA.SUPPLY_DATE) < p_itf
        )
        GROUP BY SD_DATE
        order by SD_DATE; --4698199
Line: 5453

        SELECT  SD_DATE,
                SUM(SD_QTY)
        BULK COLLECT INTO
                x_atp_dates,
                x_atp_qtys
        FROM
            (
                SELECT  /*+ INDEX(S MSC_ATP_SUMMARY_SD_U1) */
                        SD_DATE, SD_QTY
                FROM    MSC_ATP_SUMMARY_SD S
                WHERE   S.PLAN_ID = p_plan_id
                AND     S.SR_INSTANCE_ID = p_instance_id
                AND     S.INVENTORY_ITEM_ID in (p_member_id, p_family_id)
                AND     S.ORGANIZATION_ID = p_org_id
                AND     S.DEMAND_CLASS = NVL(p_demand_class, S.DEMAND_CLASS)
                AND     S.SD_DATE < p_itf

                UNION ALL

                SELECT  TRUNC(AD.DEMAND_DATE) SD_DATE,
                        decode(AD.ALLOCATED_QUANTITY,           -- Consider unscheduled orders as dummy supplies
                               0, OLD_ALLOCATED_QUANTITY,-- For summary enhancement
                                  -1 * AD.ALLOCATED_QUANTITY) SD_QTY
                FROM    MSC_ALLOC_DEMANDS AD,
                        MSC_PLANS P                             -- For summary enhancement
                WHERE   AD.PLAN_ID = p_plan_id
                AND     AD.SR_INSTANCE_ID = p_instance_id
                AND     AD.INVENTORY_ITEM_ID in (p_member_id, p_family_id)
                AND     AD.ORGANIZATION_ID = p_org_id
                AND     AD.DEMAND_CLASS = NVL(p_demand_class, AD.DEMAND_CLASS)
                AND     TRUNC(AD.DEMAND_DATE) < p_itf
                AND     P.PLAN_ID = AD.PLAN_ID
                AND     (AD.REFRESH_NUMBER > P.LATEST_REFRESH_NUMBER
                        OR AD.REFRESH_NUMBER = p_refresh_number)
                -- since repetitive schedule demand is not supported in this case
                -- join to msc_calendar_dates is not needed.

                UNION ALL

                SELECT  TRUNC(SA.SUPPLY_DATE) SD_DATE,
                        decode(SA.ALLOCATED_QUANTITY,           -- Consider deleted stealing records as dummy demands
                               0, -1 * OLD_ALLOCATED_QUANTITY,   -- For summary enhancement
                                  SA.ALLOCATED_QUANTITY) SD_QTY
                FROM    MSC_ALLOC_SUPPLIES SA,
                        MSC_PLANS P                                     -- For summary enhancement
                WHERE   SA.PLAN_ID = p_plan_id
                AND	    SA.SR_INSTANCE_ID = p_instance_id
                AND	    SA.INVENTORY_ITEM_ID in (p_member_id, p_family_id)
                AND     SA.ORGANIZATION_ID = p_org_id
                AND     SA.DEMAND_CLASS = NVL(p_demand_class, SA.DEMAND_CLASS)
                AND     TRUNC(SA.SUPPLY_DATE) < p_itf
                AND     P.PLAN_ID = SA.PLAN_ID
                AND     TRUNC(SA.SUPPLY_DATE) >= DECODE(SA.ORIGINAL_ORDER_TYPE,
                                                        27, TRUNC(SYSDATE),
                                                        28, TRUNC(SYSDATE),
                                                        TRUNC(SA.SUPPLY_DATE))
                AND     (SA.REFRESH_NUMBER > P.LATEST_REFRESH_NUMBER
                        OR SA.REFRESH_NUMBER = p_refresh_number)
            )
        GROUP BY SD_DATE
        order by SD_DATE; --4698199
Line: 5563

	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_Date,
		Disposition_Type,
		Disposition_Name,
		Pegging_Id,
		End_Pegging_Id,
        	Pf_Display_Flag,
                Supply_Demand_Quantity,
        	Original_Demand_Quantity,
        	Original_Demand_Date,
        	Original_Item_Id,
        	Original_Supply_Demand_Type,
		creation_date,
		created_by,
		last_update_date,
		last_updated_by,
		last_update_login,
                ORIG_CUSTOMER_SITE_NAME,--bug3263368
                ORIG_CUSTOMER_NAME, --bug3263368
                ORIG_DEMAND_CLASS, --bug3263368
                ORIG_REQUEST_DATE, --bug3263368
                Inventory_Item_Name --bug3579625
	)
        (
           SELECT   p_level col1,
		    p_identifier col2,
                    p_scenario_id col3,
                    p_sr_family_id col4 ,
                    p_sr_member_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
		    AD.ORIGINATION_TYPE col18,
                    l_null_char col19,
		    AD.SR_INSTANCE_ID col20,
                    l_null_num col21,
		    AD.PARENT_DEMAND_ID col22,
		    l_null_num col23,
                    -1 * AD.ALLOCATED_QUANTITY col24,
		    TRUNC(AD.DEMAND_DATE) col25,
                    l_null_num col26,
                    AD.ORDER_NUMBER col27,
                    l_null_num col28,
                    l_null_num col29,
                    Decode(AD.inventory_item_id, p_family_id,
                        Decode(AD.original_item_id, p_member_id,
                                AD.Pf_Display_Flag,
                                Decode(sign(trunc(AD.Original_Demand_Date) - p_atf_date),
                                        1, AD.Pf_Display_Flag,
                                        1)),
                        AD.Pf_Display_Flag),
                    -1* NVL(AD.Demand_Quantity, AD.ALLOCATED_QUANTITY),
                    -1* NVL(AD.Demand_Quantity, AD.ALLOCATED_QUANTITY),
		    TRUNC(AD.Original_Demand_Date),
                    AD.Original_Item_Id,
                    AD.Original_Origination_Type,
                    l_sysdate,
		    G_USER_ID,
		    l_sysdate,
		    G_USER_ID,
		    G_USER_ID,
		    MTPS.LOCATION,   --bug3263368
                    MTP.PARTNER_NAME, --bug3263368
                    AD.DEMAND_CLASS, --bug3263368
                    AD.REQUEST_DATE, --bug3263368
                    I.Item_Name  --bug3579625
           FROM     MSC_ALLOC_DEMANDS AD,
                    MSC_TRADING_PARTNERS    MTP,--bug3263368
                    MSC_TRADING_PARTNER_SITES    MTPS, --bug3263368
                    MSC_SYSTEM_ITEMS I  --bug3579625
           WHERE    AD.PLAN_ID = p_plan_id
           AND      AD.SR_INSTANCE_ID = p_instance_id
           AND      AD.INVENTORY_ITEM_ID in (p_member_id, p_family_id)
           AND      AD.ORIGINATION_TYPE <> 52
           AND      AD.ORGANIZATION_ID = p_org_id
           AND      AD.ALLOCATED_QUANTITY  <> 0 --4501434
           AND      AD.DEMAND_CLASS = NVL(p_demand_class, AD.DEMAND_CLASS)
           AND      TRUNC(AD.DEMAND_DATE) < p_itf
           AND      AD.SHIP_TO_SITE_ID = MTPS.PARTNER_SITE_ID(+) --bug3263368
           AND      AD.CUSTOMER_ID = MTP.PARTNER_ID(+)--bug3263368
           -- bug3579625 Addition join with MSC_SYSTEM_ITEMS (I)
           AND       AD.PLAN_ID = I.PLAN_ID
           AND       AD.SR_INSTANCE_ID = I.SR_INSTANCE_ID
           AND       AD.ORIGINAL_ITEM_ID = I.INVENTORY_ITEM_ID
           AND       AD.ORGANIZATION_ID = I.ORGANIZATION_ID

      UNION ALL
           SELECT   p_level col1,
                    p_identifier col2,
                    p_scenario_id col3,
                    p_sr_family_id col4 ,
                    p_sr_member_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
                    SA.ORDER_TYPE col18,
                    l_null_char col19,
                    SA.SR_INSTANCE_ID col20,
                    l_null_num col21,
                    SA.PARENT_TRANSACTION_ID col22,
                    l_null_num col23,
                    SA.ALLOCATED_QUANTITY col24,
                    TRUNC(SA.SUPPLY_DATE) col25,
                    l_null_num col26,
                    DECODE(SA.ORDER_TYPE, 5, to_char(SA.PARENT_TRANSACTION_ID), SA.ORDER_NUMBER) col27,
                    l_null_num col28,
		    l_null_num col29,
		    l_null_num,
        	    NVL(SA.Supply_Quantity, SA.ALLOCATED_QUANTITY),
        	    l_null_num,
        	    to_date(null),
        	    SA.Original_Item_Id,
                    DECODE(SA.ORIGINAL_ORDER_TYPE,
                                46, 48,                 -- Change Supply due to Stealing to Supply Adjustment
                                47, 48,                 -- Change Demand due to Stealing to Supply Adjustment
                        SA.ORIGINAL_ORDER_TYPE),
        	    l_sysdate,
		    G_USER_ID,
		    l_sysdate,
		    G_USER_ID,
		    G_USER_ID,
		    MTPS.LOCATION,   --bug3684383
                    MTP.PARTNER_NAME, --bug3684383
                    SA.DEMAND_CLASS, --bug3684383
                    --null,         --bug3684383
                    l_null_date,  --bug3814584
                    I.Item_Name --bug3579625

           FROM     MSC_ALLOC_SUPPLIES SA,
                    MSC_SYSTEM_ITEMS I,  --bug3579625
                    MSC_TRADING_PARTNERS    MTP,--bug3684383
                    MSC_TRADING_PARTNER_SITES    MTPS --bug3684383

           WHERE    SA.PLAN_ID = p_plan_id
           AND      SA.SR_INSTANCE_ID = p_instance_id
           AND      SA.INVENTORY_ITEM_ID in (p_member_id, p_family_id)
           AND      TRUNC(SA.SUPPLY_DATE) >= DECODE(SA.ORIGINAL_ORDER_TYPE,
                                                        27, TRUNC(SYSDATE),
                                                        28, TRUNC(SYSDATE),
                                                        TRUNC(SA.SUPPLY_DATE))
           AND      SA.ORGANIZATION_ID = p_org_id
           AND      SA.ALLOCATED_QUANTITY <> 0
           AND      SA.DEMAND_CLASS = NVL(p_demand_class, SA.DEMAND_CLASS )
           AND      TRUNC(SA.SUPPLY_DATE) < p_itf
           -- bug3579625 Addition join with MSC_SYSTEM_ITEMS (I)
           AND         SA.PLAN_ID = I.PLAN_ID
           AND         SA.SR_INSTANCE_ID = I.SR_INSTANCE_ID
           AND         SA.ORIGINAL_ITEM_ID = I.INVENTORY_ITEM_ID
           AND         SA.ORGANIZATION_ID = I.ORGANIZATION_ID
           AND      SA.SHIP_TO_SITE_ID = MTPS.PARTNER_SITE_ID(+) --bug3684383
           AND      SA.CUSTOMER_ID = MTP.PARTNER_ID(+)--bug3684383
          );
Line: 5813

        SELECT 	SD_DATE,
                SUM(SD_QTY),
                DEMAND_CLASS
        BULK COLLECT INTO
                x_atp_dates,
                x_atp_qtys,
                x_atp_dcs
        FROM
            (
                SELECT  TRUNC(AD.DEMAND_DATE) SD_DATE,
                        -1 * AD.ALLOCATED_QUANTITY SD_QTY,
                        AD.DEMAND_CLASS
                FROM    MSC_ALLOC_DEMANDS AD
                WHERE   AD.PLAN_ID = p_plan_id
                AND     AD.SR_INSTANCE_ID = p_instance_id
                AND     AD.INVENTORY_ITEM_ID in (p_member_id, p_family_id)
                AND     AD.ORGANIZATION_ID = p_org_id
                AND     AD.ALLOCATED_QUANTITY  <> 0 --4501434
                AND     AD.ORIGINATION_TYPE <> 52   -- Ignore copy SO and copy stealing records for summary enhancement
                AND     AD.DEMAND_CLASS IN (
                        SELECT  demand_class
                        FROM    msc_alloc_temp
                        WHERE   demand_class IS NOT NULL)
                --bug3700564 added trunc
                AND     TRUNC(AD.DEMAND_DATE) < p_itf

                UNION ALL

                SELECT  TRUNC(SA.SUPPLY_DATE) SD_DATE,
                        SA.ALLOCATED_QUANTITY SD_QTY,
                        SA.DEMAND_CLASS
                FROM    MSC_ALLOC_SUPPLIES SA
                WHERE   SA.PLAN_ID = p_plan_id
                AND     SA.SR_INSTANCE_ID = p_instance_id
                AND     SA.INVENTORY_ITEM_ID in (p_member_id, p_family_id)
                AND     SA.ORGANIZATION_ID = p_org_id
                AND     SA.ALLOCATED_QUANTITY <> 0
                -- fixed as part of time_phased_atp chagnes
                AND     TRUNC(SA.SUPPLY_DATE) >= DECODE(SA.ORIGINAL_ORDER_TYPE,
                                                        27, TRUNC(SYSDATE),
                                                        28, TRUNC(SYSDATE),
                                                        TRUNC(SA.SUPPLY_DATE))
                AND     SA.DEMAND_CLASS IN (
                        SELECT  demand_class
                        FROM    msc_alloc_temp
                        WHERE   demand_class IS NOT NULL)
                --bug3700564 added trunc
                AND     TRUNC(SA.SUPPLY_DATE) < p_itf
            )
        GROUP BY DEMAND_CLASS, SD_DATE
        order by DEMAND_CLASS, SD_DATE; --4698199 --5353882
Line: 5905

        SELECT 	SD_DATE,
                SUM(SD_QTY),
                DEMAND_CLASS
        BULK COLLECT INTO
                x_atp_dates,
                x_atp_qtys,
                x_atp_dcs
        FROM
            (
                SELECT  /*+ INDEX(S MSC_ATP_SUMMARY_SD_U1) */
                        SD_DATE, SD_QTY, DEMAND_CLASS
                FROM    MSC_ATP_SUMMARY_SD S
                WHERE   S.PLAN_ID = p_plan_id
                AND     S.SR_INSTANCE_ID = p_instance_id
                AND     S.INVENTORY_ITEM_ID in (p_member_id, p_family_id)
                AND     S.ORGANIZATION_ID = p_org_id
                AND     S.DEMAND_CLASS IN (
                        SELECT  demand_class
                        FROM    msc_alloc_temp
                        WHERE   demand_class IS NOT NULL)
                AND     S.SD_DATE < p_itf

                UNION ALL

                SELECT  TRUNC(AD.DEMAND_DATE) SD_DATE,
                        decode(AD.ALLOCATED_QUANTITY,           -- Consider unscheduled orders as dummy supplies
                               0, nvl(OLD_ALLOCATED_QUANTITY,0), --4658238        -- For summary enhancement
                                  -1 * AD.ALLOCATED_QUANTITY) SD_QTY,
                        AD.DEMAND_CLASS
                FROM    MSC_ALLOC_DEMANDS AD,
                        MSC_PLANS P                                     -- For summary enhancement
                WHERE   AD.PLAN_ID = p_plan_id
                AND     AD.SR_INSTANCE_ID = p_instance_id
                AND     AD.INVENTORY_ITEM_ID in (p_member_id, p_family_id)
                AND     AD.ORGANIZATION_ID = p_org_id
                AND     AD.DEMAND_CLASS IN (
                        SELECT  demand_class
                        FROM    msc_alloc_temp
                        WHERE   demand_class IS NOT NULL)
                --bug3700564 added trunc
                AND     TRUNC(AD.DEMAND_DATE) < p_itf
                        AND     P.PLAN_ID = AD.PLAN_ID
                        AND     (AD.REFRESH_NUMBER > P.LATEST_REFRESH_NUMBER
                                OR AD.REFRESH_NUMBER = p_refresh_number)

                UNION ALL

                SELECT  TRUNC(SA.SUPPLY_DATE) SD_DATE,
                        decode(SA.ALLOCATED_QUANTITY,           -- Consider deleted stealing records as dummy demands
                               0, -1 * OLD_ALLOCATED_QUANTITY,   -- For summary enhancement
                                  SA.ALLOCATED_QUANTITY) SD_QTY ,
                        SA.DEMAND_CLASS
                FROM    MSC_ALLOC_SUPPLIES SA,
                        MSC_PLANS P                                     -- For summary enhancement
                WHERE   SA.PLAN_ID = p_plan_id
                AND     SA.SR_INSTANCE_ID = p_instance_id
                AND     SA.INVENTORY_ITEM_ID in (p_member_id, p_family_id)
                AND     SA.ORGANIZATION_ID = p_org_id
                AND     SA.DEMAND_CLASS IN (
                        SELECT  demand_class
                        FROM    msc_alloc_temp
                        WHERE   demand_class IS NOT NULL)
                --bug3700564 added trunc
                AND     TRUNC(SA.SUPPLY_DATE) < p_itf
                AND     P.PLAN_ID = SA.PLAN_ID
                AND     (SA.REFRESH_NUMBER > P.LATEST_REFRESH_NUMBER
                        OR SA.REFRESH_NUMBER = p_refresh_number)
            )
        GROUP BY DEMAND_CLASS, SD_DATE
        order by DEMAND_CLASS, SD_DATE; --4698199;
Line: 5985

/*--Insert_SD_Into_Details_Temp-----------------------------------------------
|  o  Called from Item_Alloc_Cum_Atp procedure for Rule based Allocated Time
|  o  This is similar to previous procedure only difference being that we
+---------------------------------------------------------------------------*/
PROCEDURE Insert_SD_Into_Details_Temp(
        p_type                          IN      INTEGER,
        p_member_id                     IN      NUMBER,
        p_family_id                     IN      NUMBER,
        p_sr_member_id                  IN      NUMBER,
        p_sr_family_id                  IN      NUMBER,
        p_org_id                        IN      NUMBER,
        --bug3671294 now we donot need this as we will join with msc_system_items
        --p_inv_item_name                 IN      VARCHAR2,
        p_org_code                      IN      VARCHAR2,
        p_instance_id                   IN      NUMBER,
        p_plan_id                       IN      NUMBER,
        p_itf                           IN      DATE,
        p_level_id                      IN      PLS_INTEGER,
        p_session_id                    IN      NUMBER,
        p_record_type                   IN      PLS_INTEGER,
        p_scenario_id                   IN      NUMBER,
        p_uom_code                      IN      VARCHAR2,
        x_insert_count                  OUT     NOCOPY NUMBER,
        x_return_status                 OUT     NOCOPY VARCHAR2
) IS
        l_null_num                      NUMBER;
Line: 6017

                msc_sch_wb.atp_debug('******* Begin Insert_SD_Into_Details_Temp **********');
Line: 6018

                msc_sch_wb.atp_debug('Insert_SD_Into_Details_Temp: p_type: ' || p_type);
Line: 6019

                msc_sch_wb.atp_debug('Insert_SD_Into_Details_Temp: p_member_id: ' || p_member_id);
Line: 6020

                msc_sch_wb.atp_debug('Insert_SD_Into_Details_Temp: p_family_id: ' || p_family_id);
Line: 6021

                msc_sch_wb.atp_debug('Insert_SD_Into_Details_Temp: p_sr_member_id: ' || p_sr_member_id);
Line: 6022

                msc_sch_wb.atp_debug('Insert_SD_Into_Details_Temp: p_sr_family_id: ' || p_sr_family_id);
Line: 6023

                msc_sch_wb.atp_debug('Insert_SD_Into_Details_Temp: p_org_id: ' || p_org_id);
Line: 6026

                msc_sch_wb.atp_debug('Insert_SD_Into_Details_Temp: p_org_code: ' || p_org_code);
Line: 6027

                msc_sch_wb.atp_debug('Insert_SD_Into_Details_Temp: p_instance_id: ' || p_instance_id);
Line: 6028

                msc_sch_wb.atp_debug('Insert_SD_Into_Details_Temp: p_plan_id: ' || p_plan_id);
Line: 6029

                msc_sch_wb.atp_debug('Insert_SD_Into_Details_Temp: p_itf: ' || p_itf);
Line: 6030

                msc_sch_wb.atp_debug('Insert_SD_Into_Details_Temp: p_level_id: ' || p_level_id);
Line: 6031

                msc_sch_wb.atp_debug('Insert_SD_Into_Details_Temp: p_session_id: ' || p_session_id);
Line: 6032

                msc_sch_wb.atp_debug('Insert_SD_Into_Details_Temp: p_record_type: ' || p_record_type);
Line: 6033

                msc_sch_wb.atp_debug('Insert_SD_Into_Details_Temp: p_scenario_id: ' || p_scenario_id);
Line: 6034

                msc_sch_wb.atp_debug('Insert_SD_Into_Details_Temp: p_uom_code: ' || p_uom_code);
Line: 6041

                INSERT INTO MRP_ATP_DETAILS_TEMP
                (session_id, atp_level, inventory_item_id, organization_id, identifier1, identifier3,
                supply_demand_type, supply_demand_date, supply_demand_quantity, supply_demand_source_type,
                allocated_quantity, record_type, scenario_id, disposition_name, demand_class, char1,
                uom_code, plan_id, inventory_item_name, organization_code,
                pf_display_flag, original_demand_quantity, original_demand_date,
                original_item_id, original_supply_demand_type, request_item_id,
                ORIG_CUSTOMER_SITE_NAME,ORIG_CUSTOMER_NAME,ORIG_DEMAND_CLASS,ORIG_REQUEST_DATE )--bug3263368
                SELECT col1, col2, col3, col4, col5, col6, col7, col8, col9, col10,
                col11, col12, col13, col14, col15, col16, col17, col18, col19, col20,
                col21, col22, col23, col24, col25, col26,col27,col28,col29,col30
                FROM
                (SELECT p_session_id                    col1, -- session_id
                        p_level_id                      col2, -- level_id
                        p_sr_family_id                  col3, -- inventory_item_id
                        p_org_id                        col4, -- organization_id
                        p_instance_id                   col5, -- Identifier1
                        AD.PARENT_DEMAND_ID             col6, -- Identifier3
                        1                               col7, -- supply_demand_type
                        TRUNC(AD.DEMAND_DATE)           col8, -- supply_demand_date
                        -1 * NVL(AD.DEMAND_QUANTITY,
                        AD.ALLOCATED_QUANTITY)          col9, -- supply_demand_quantity
                        AD.ORIGINATION_TYPE             col10, -- supply_demand_source_type
                        -1 * AD.ALLOCATED_QUANTITY      col11, -- allocated_quantity
                        p_record_type                   col12, -- record_type
                        p_scenario_id                   col13, -- scenario_id
                        AD.ORDER_NUMBER                 col14, -- disposition_name
                        AD.DEMAND_CLASS                 col15, -- demand_class
                        l_null_char                     col16, -- from_demand_class  --Bug 3875786
                        p_uom_code                      col17, -- UOM Code
                        p_plan_id                       col18, -- Plan id
                        --bug3671294
                        msi.item_name                   col19, -- Item name
                        --p_inv_item_name                 col19, -- Item name
                        p_org_code                      col20,  -- Organization code
                	Decode(AD.inventory_item_id, p_family_id,
                	        Decode(AD.original_item_id, p_member_id,
                	                AD.Pf_Display_Flag,
                	                Decode(sign(trunc(AD.Original_Demand_Date) - MSC_ATP_ALLOC.G_Atf_Date),
                	                        1, AD.Pf_Display_Flag,
                	                        1)),
                	        AD.Pf_Display_Flag)     col21,
                        -1 * NVL(AD.DEMAND_QUANTITY,
                                 AD.ALLOCATED_QUANTITY) col22,
                        trunc(AD.original_demand_date)  col23, --Bug_3693892 added trunc
                        AD.original_item_id             col24,
                        AD.original_origination_type    col25,
                        p_sr_member_id                  col26,
                        MTPS.LOCATION                   col27, --bug3263368
                        MTP.PARTNER_NAME                col28, --bug3263368
                        AD.DEMAND_CLASS                 col29, --bug3263368
                        AD.REQUEST_DATE                 col30  --bug3263368
                FROM
                        MSC_ALLOC_DEMANDS AD,
                        MSC_ALLOC_TEMP TEMP,
                        MSC_TRADING_PARTNERS    MTP,--bug3263368
                        MSC_TRADING_PARTNER_SITES    MTPS, --bug3263368
                        MSC_SYSTEM_ITEMS    msi --bug3671294
                WHERE
                        AD.PLAN_ID = p_plan_id
                        AND      AD.SR_INSTANCE_ID = p_instance_id
                        AND      AD.INVENTORY_ITEM_ID in (p_member_id, p_family_id)
                        AND      AD.ORGANIZATION_ID = p_org_id
                        AND      AD.ALLOCATED_QUANTITY <> 0
                        AND      AD.DEMAND_CLASS = TEMP.DEMAND_CLASS
                        --bug3671294 start
                        AND      msi.PLAN_ID = AD.PLAN_ID
                        AND      msi.SR_INSTANCE_ID = AD.SR_INSTANCE_ID
                        AND      msi.ORGANIZATION_ID = AD.ORGANIZATION_ID
                        AND      msi.INVENTORY_ITEM_ID = AD.ORIGINAL_ITEM_ID
                        --bug3671294 end
                        --bug3700564 added trunc
                        AND      TRUNC(AD.DEMAND_DATE) < NVL(p_itf, TRUNC(AD.DEMAND_DATE) + 1)
                        AND      AD.ORIGINATION_TYPE <> 52  -- Ignore copy SO and copy stealing records for allocation WB - summary enhancement
                        AND      AD.SHIP_TO_SITE_ID = MTPS.PARTNER_SITE_ID(+) --bug3263368
                        AND      AD.CUSTOMER_ID = MTP.PARTNER_ID(+) --bug3263368
                UNION ALL
                SELECT  p_session_id                    col1,
                        p_level_id                      col2,
                        p_sr_family_id                  col3 ,
                        p_org_id                        col4,
                        p_instance_id                   col5,
                        SA.PARENT_TRANSACTION_ID        col6,
                        2                               col7, -- supply
                        TRUNC(SA.SUPPLY_DATE)           col8,
                        NVL(SA.SUPPLY_QUANTITY,
                        SA.ALLOCATED_QUANTITY)          col9,
                        SA.ORDER_TYPE                   col10,
                        SA.ALLOCATED_QUANTITY           col11,
                        p_record_type                   col12, -- record_type
                        p_scenario_id                   col13, -- scenario_id
                        DECODE(SA.ORIGINAL_ORDER_TYPE, -- SA.ORDER_TYPE, /*bug 3229032*/
                                5, to_char(SA.PARENT_TRANSACTION_ID),
                                SA.ORDER_NUMBER)        col14,
                        SA.DEMAND_CLASS                 col15,
                        SA.FROM_DEMAND_CLASS            col16,
                        p_uom_code                      col17,
                        p_plan_id                       col18,
                        --bug3671294
                        msi.item_name                   col19, -- Item name
                        --p_inv_item_name                 col19, -- Item name
                        p_org_code                      col20,  -- Organization code
                        l_null_num                      col21, -- Bug 3875786 - local variable used for NULL
                        l_null_num                      col22, -- Bug 3875786 - local variable used for NULL
                        l_null_date                     col23, -- Bug 3875786 - local variable used for NULL
                        SA.original_item_id             col24,
                        /*bug 3229032*/
                        DECODE(SA.ORIGINAL_ORDER_TYPE,
                                46, 48,                 -- Change Supply due to Stealing to Supply Adjustment
                                47, 48,                 -- Change Demand due to Stealing to Supply Adjustment
                                SA.ORIGINAL_ORDER_TYPE
                               )                        col25,
                        p_sr_member_id                  col26,
                        MTPS.LOCATION                  col27, --bug3684383
                        MTP.PARTNER_NAME               col28, --bug3684383
                        SA.DEMAND_CLASS                col29, --bug3684383
                        l_null_date                     col30  --bug3684383 -- Bug 3875786 - local variable used for NULL
                FROM
                        MSC_ALLOC_SUPPLIES SA,
                        MSC_ALLOC_TEMP TEMP,
                        MSC_SYSTEM_ITEMS    msi, --bug3671294
                        MSC_TRADING_PARTNER_SITES    MTPS, --bug3684383
                        MSC_TRADING_PARTNERS    MTP --bug3684383
                WHERE
                        SA.PLAN_ID = p_plan_id
                        AND      SA.SR_INSTANCE_ID = p_instance_id
                        AND      SA.INVENTORY_ITEM_ID in (p_member_id, p_family_id)
                        AND      SA.ORGANIZATION_ID = p_org_id
                        AND      SA.ALLOCATED_QUANTITY <> 0
                        --bug3671294 start
                        AND      msi.PLAN_ID = SA.PLAN_ID
                        AND      msi.SR_INSTANCE_ID = SA.SR_INSTANCE_ID
                        AND      msi.ORGANIZATION_ID = SA.ORGANIZATION_ID
                        AND      msi.INVENTORY_ITEM_ID = SA.ORIGINAL_ITEM_ID
                        --bug3671294 end
                        AND      TRUNC(SA.SUPPLY_DATE) >= DECODE(SA.ORIGINAL_ORDER_TYPE,
                                                        27, TRUNC(SYSDATE),
                                                        28, TRUNC(SYSDATE),
                                                        TRUNC(SA.SUPPLY_DATE))
                        AND      SA.DEMAND_CLASS = TEMP.DEMAND_CLASS
                        AND      TRUNC(SA.SUPPLY_DATE) < NVL(p_itf, TRUNC(SA.SUPPLY_DATE) + 1)
                        AND      SA.SHIP_TO_SITE_ID = MTPS.PARTNER_SITE_ID(+) --bug3684383
                        AND      SA.CUSTOMER_ID = MTP.PARTNER_ID(+) --bug3684383
                );
Line: 6187

                INSERT INTO MRP_ATP_DETAILS_TEMP
                (session_id, atp_level, inventory_item_id, organization_id, identifier1, identifier3,
                supply_demand_type, supply_demand_date, supply_demand_quantity, supply_demand_source_type,
                allocated_quantity, record_type, scenario_id, disposition_name, demand_class, uom_code,
                inventory_item_name, organization_code, identifier2, identifier4, request_item_id,
                pf_display_flag, original_demand_quantity, original_demand_date, original_item_id,
                original_supply_demand_type, unallocated_quantity,
                ORIG_CUSTOMER_SITE_NAME,ORIG_CUSTOMER_NAME,ORIG_DEMAND_CLASS,ORIG_REQUEST_DATE )--bug3263368
                SELECT col1, col2, col3, col4, col5, col6, col7, col8, col9, col10,
                col11, col12, col13, col14, col15, col16, col17, col18, col19, col20,
                col21, col22, col23, col24, col25, col26, col27,col28,col29,col30,col31
                FROM
                (SELECT p_session_id                    col1, -- session_id
                        p_level_id                      col2, -- level_id
                        p_sr_family_id                  col3, -- inventory_item_id
                        p_org_id                        col4, -- organization_id
                        p_instance_id                   col5, -- Identifier1
                        AD.PARENT_DEMAND_ID             col6, -- Identifier3
                        1                               col7, -- supply_demand_type
                        TRUNC(AD.DEMAND_DATE)           col8, -- supply_demand_date
                        -1 * NVL(AD.DEMAND_QUANTITY,
                                 AD.ALLOCATED_QUANTITY) col9, -- supply_demand_quantity
                        AD.ORIGINAL_ORIGINATION_TYPE    col10,-- supply_demand_source_type
                        -1 * AD.ALLOCATED_QUANTITY*
                          DECODE(decode(AD.ORIGINAL_ORIGINATION_TYPE,
                                6, decode(AD.source_organization_id,
                                        NULL, DECODE(AD.DEMAND_CLASS, null, null,
                                                DECODE(TEMP.DEMAND_CLASS, '-1',
                                                        MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                                null, null,
                                                                Decode(sign(trunc(AD.Demand_Date) - MSC_ATP_ALLOC.G_Atf_Date),
                                                                        1, p_family_id,
                                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                'Y', AD.Original_Item_Id,
                                                                                p_family_id)),
                                                                p_org_id,
                                                                p_instance_id, trunc(AD.DEMAND_DATE),
                                                                p_level_id, AD.DEMAND_CLASS),
                                                        AD.DEMAND_CLASS)),
                                        -23453, DECODE(AD.DEMAND_CLASS, null, null,
                                                DECODE(TEMP.DEMAND_CLASS, '-1',
                                                        MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                                null, null,
                                                                Decode(sign(trunc(AD.Demand_Date) - MSC_ATP_ALLOC.G_Atf_Date),
                                                                        1, p_family_id,
                                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                'Y', AD.Original_Item_Id,
                                                                                p_family_id)),
                                                                p_org_id,
                                                                p_instance_id, trunc(AD.DEMAND_DATE),
                                                                p_level_id, AD.DEMAND_CLASS),
                                                        AD.DEMAND_CLASS)),
                                        AD.organization_id, DECODE(AD.DEMAND_CLASS, null, null,
                                                DECODE(TEMP.DEMAND_CLASS, '-1',
                                                        MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                                null, null,
                                                                Decode(sign(trunc(AD.Demand_Date) - MSC_ATP_ALLOC.G_Atf_Date),
                                                                        1, p_family_id,
                                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                'Y', AD.Original_Item_Id,
                                                                                p_family_id)),
                                                                p_org_id,
                                                                p_instance_id, trunc(AD.DEMAND_DATE),
                                                                p_level_id, AD.DEMAND_CLASS),
                                                        AD.DEMAND_CLASS)), NULL),
                                30, decode(AD.source_organization_id,
                                        NULL, DECODE(AD.DEMAND_CLASS, null, null,
                                                DECODE(TEMP.DEMAND_CLASS, '-1',
                                                        MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                                null, null,
                                                                Decode(sign(trunc(AD.Demand_Date) - MSC_ATP_ALLOC.G_Atf_Date),
                                                                        1, p_family_id,
                                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                'Y', AD.Original_Item_Id,
                                                                                p_family_id)),
                                                                p_org_id,
                                                                p_instance_id, trunc(AD.DEMAND_DATE),
                                                                p_level_id, AD.DEMAND_CLASS),
                                                        AD.DEMAND_CLASS)),
                                        -23453, DECODE(AD.DEMAND_CLASS, null, null,
                                                DECODE(TEMP.DEMAND_CLASS, '-1',
                                                        MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                                null, null,
                                                                Decode(sign(trunc(AD.Demand_Date) - MSC_ATP_ALLOC.G_Atf_Date),
                                                                        1, p_family_id,
                                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                'Y', AD.Original_Item_Id,
                                                                                p_family_id)),
                                                                p_org_id,
                                                                p_instance_id, trunc(AD.DEMAND_DATE),
                                                                p_level_id, AD.DEMAND_CLASS),
                                                        AD.DEMAND_CLASS)),
                                        AD.organization_id, DECODE(AD.DEMAND_CLASS, null, null,
                                                DECODE(TEMP.DEMAND_CLASS, '-1',
                                                        MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                                null, null,
                                                                Decode(sign(trunc(AD.Demand_Date) - MSC_ATP_ALLOC.G_Atf_Date),
                                                                        1, p_family_id,
                                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                'Y', AD.Original_Item_Id,
                                                                                p_family_id)),
                                                                p_org_id,
                                                                p_instance_id, trunc(AD.DEMAND_DATE),
                                                                p_level_id, AD.DEMAND_CLASS),
                                                        AD.DEMAND_CLASS)), NULL),
                                DECODE(AD.DEMAND_CLASS, null, null,
                                        DECODE(TEMP.DEMAND_CLASS, '-1',
                                                MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                        null, null,
                                                        Decode(sign(trunc(AD.Demand_Date) - MSC_ATP_ALLOC.G_Atf_Date),
                                                                1, p_family_id,
                                                                Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                        'Y', AD.Original_Item_Id,
                                                                        p_family_id)),
                                                        p_org_id,
                                                        p_instance_id, trunc(AD.DEMAND_DATE),
                                                        p_level_id, AD.DEMAND_CLASS),
                                                AD.DEMAND_CLASS))),
                                TEMP.DEMAND_CLASS, 1,
                                MSC_AATP_FUNC.Get_Item_Demand_Alloc_Percent(p_plan_id,
                                        AD.PARENT_DEMAND_ID,
                                        trunc(AD.DEMAND_DATE),
                                        AD.USING_ASSEMBLY_ITEM_ID,
                                        DECODE(AD.SOURCE_ORGANIZATION_ID,
                                        -23453, null,
                                        AD.SOURCE_ORGANIZATION_ID),
                                        Decode(sign(trunc(AD.Demand_Date) - MSC_ATP_ALLOC.G_Atf_Date),
                                                1, p_family_id,
                                                Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                        'Y', AD.Original_Item_Id,
                                                        p_family_id)),
                                        p_org_id,
                                        p_instance_id,
                                        AD.ORIGINAL_ORIGINATION_TYPE,
                                        decode(AD.ORIGINAL_ORIGINATION_TYPE,
                                                6, decode(AD.source_organization_id,
                                                        NULL, DECODE(AD.DEMAND_CLASS, null, null,
                                                                DECODE(TEMP.DEMAND_CLASS, '-1',
                                                                        MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                                                null, null,
                                                                                Decode(sign(trunc(AD.Demand_Date) - MSC_ATP_ALLOC.G_Atf_Date),
                                                                                        1, p_family_id,
                                                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                                'Y', AD.Original_Item_Id,
                                                                                                p_family_id)),
                                                                                p_org_id,
                                                                                p_instance_id, trunc(AD.DEMAND_DATE),
                                                                                p_level_id, AD.DEMAND_CLASS),
                                                                                AD.DEMAND_CLASS)),
                                                        -23453, DECODE(AD.DEMAND_CLASS, null, null,
                                                                DECODE(TEMP.DEMAND_CLASS, '-1',
                                                                        MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                                                null, null,
                                                                                Decode(sign(trunc(AD.Demand_Date) - MSC_ATP_ALLOC.G_Atf_Date),
                                                                                        1, p_family_id,
                                                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                                'Y', AD.Original_Item_Id,
                                                                                                p_family_id)),
                                                                                p_org_id,
                                                                                p_instance_id, trunc(AD.DEMAND_DATE),
                                                                                p_level_id, AD.DEMAND_CLASS),
                                                                                AD.DEMAND_CLASS)),
                                                        AD.organization_id, DECODE(AD.DEMAND_CLASS, null, null,
                                                                DECODE(TEMP.DEMAND_CLASS, '-1',
                                                                        MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                                                null, null,
                                                                                Decode(sign(trunc(AD.Demand_Date) - MSC_ATP_ALLOC.G_Atf_Date),
                                                                                        1, p_family_id,
                                                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                                'Y', AD.Original_Item_Id,
                                                                                                p_family_id)),
                                                                                p_org_id,
                                                                                p_instance_id, trunc(AD.DEMAND_DATE),
                                                                                p_level_id, AD.DEMAND_CLASS),
                                                                                AD.DEMAND_CLASS)), TEMP.DEMAND_CLASS),
                                                30, decode(AD.source_organization_id,
                                                        NULL, DECODE(AD.DEMAND_CLASS, null, null,
                                                                DECODE(TEMP.DEMAND_CLASS, '-1',
                                                                        MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                                                null, null,
                                                                                Decode(sign(trunc(AD.Demand_Date) - MSC_ATP_ALLOC.G_Atf_Date),
                                                                                        1, p_family_id,
                                                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                                'Y', AD.Original_Item_Id,
                                                                                                p_family_id)),
                                                                                p_org_id,
                                                                                p_instance_id, trunc(AD.DEMAND_DATE),
                                                                                p_level_id, AD.DEMAND_CLASS),
                                                                                AD.DEMAND_CLASS)),
                                                        -23453, DECODE(AD.DEMAND_CLASS, null, null,
                                                                DECODE(TEMP.DEMAND_CLASS, '-1',
                                                                        MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                                                null, null,
                                                                                Decode(sign(trunc(AD.Demand_Date) - MSC_ATP_ALLOC.G_Atf_Date),
                                                                                        1, p_family_id,
                                                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                                'Y', AD.Original_Item_Id,
                                                                                                p_family_id)),
                                                                                p_org_id,
                                                                                p_instance_id, trunc(AD.DEMAND_DATE),
                                                                                p_level_id, AD.DEMAND_CLASS),
                                                                                AD.DEMAND_CLASS)),
                                                        AD.organization_id, DECODE(AD.DEMAND_CLASS, null, null,
                                                                DECODE(TEMP.DEMAND_CLASS, '-1',
                                                                        MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                                                null, null,
                                                                                Decode(sign(trunc(AD.Demand_Date) - MSC_ATP_ALLOC.G_Atf_Date),
                                                                                        1, p_family_id,
                                                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                                'Y', AD.Original_Item_Id,
                                                                                                p_family_id)),
                                                                                p_org_id,
                                                                                p_instance_id, trunc(AD.DEMAND_DATE),
                                                                                p_level_id, AD.DEMAND_CLASS),
                                                                                AD.DEMAND_CLASS)), TEMP.DEMAND_CLASS),
                                                DECODE(AD.DEMAND_CLASS, null, null,
                                                        DECODE(TEMP.DEMAND_CLASS, '-1',
                                                                MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                                        null, null,
                                                                        Decode(sign(trunc(AD.Demand_Date) - MSC_ATP_ALLOC.G_Atf_Date),
                                                                                1, p_family_id,
                                                                                Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                        'Y', AD.Original_Item_Id,
                                                                                        p_family_id)),
                                                                        p_org_id,
                                                                        p_instance_id, trunc(AD.DEMAND_DATE),
                                                                        p_level_id, AD.DEMAND_CLASS),
                                                                        AD.DEMAND_CLASS))),
                                        TEMP.DEMAND_CLASS,
                                        p_level_id))   col11, -- allocated_quantity
                        p_record_type                   col12, -- record_type
                        p_scenario_id                   col13, -- scenario_id
                        AD.ORDER_NUMBER                 col14, -- disposition_name
                        TEMP.DEMAND_CLASS               col15, -- demand_class
                        p_uom_code                      col16, -- UOM Code
                        --bug3671294
                        msi.item_name                   col17, -- Item name
                        --p_inv_item_name                 col17, -- Item name
                        p_org_code                      col18, -- Organization code
                        TEMP.PRIORITY                   col19, -- sysdate priroty
                        TEMP.ALLOCATION_PERCENT         col20, -- sysdate allocation percent
                        -- time_phased_atp
                        p_sr_member_id                  col21, -- request_item_id
                	Decode(AD.inventory_item_id, p_family_id,
                	        Decode(AD.original_item_id, p_member_id,
                	                AD.Pf_Display_Flag,
                	                Decode(sign(trunc(AD.Original_Demand_Date) - MSC_ATP_ALLOC.G_Atf_Date),
                	                        1, AD.Pf_Display_Flag,
                	                        1)),
                	        AD.Pf_Display_Flag)     col22,
                        -1 * NVL(AD.DEMAND_QUANTITY,
                                 AD.ALLOCATED_QUANTITY)*
                        DECODE(decode(AD.ORIGINAL_ORIGINATION_TYPE,
                                6, decode(AD.source_organization_id,
                                        NULL, DECODE(AD.DEMAND_CLASS, null, null,
                                                DECODE(TEMP.DEMAND_CLASS, '-1',
                                                        MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                                null, null,
                                                                Decode(sign(trunc(AD.Demand_Date) - MSC_ATP_ALLOC.G_Atf_Date),
                                                                        1, p_family_id,
                                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                'Y', AD.Original_Item_Id,
                                                                                p_family_id)),
                                                                p_org_id,
                                                                p_instance_id, trunc(AD.DEMAND_DATE),
                                                                p_level_id, AD.DEMAND_CLASS),
                                                        AD.DEMAND_CLASS)),
                                        -23453, DECODE(AD.DEMAND_CLASS, null, null,
                                                DECODE(TEMP.DEMAND_CLASS, '-1',
                                                        MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                                null, null,
                                                                Decode(sign(trunc(AD.Demand_Date) - MSC_ATP_ALLOC.G_Atf_Date),
                                                                        1, p_family_id,
                                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                'Y', AD.Original_Item_Id,
                                                                                p_family_id)),
                                                                p_org_id,
                                                                p_instance_id, trunc(AD.DEMAND_DATE),
                                                                p_level_id, AD.DEMAND_CLASS),
                                                        AD.DEMAND_CLASS)),
                                        AD.organization_id, DECODE(AD.DEMAND_CLASS, null, null,
                                                DECODE(TEMP.DEMAND_CLASS, '-1',
                                                        MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                                null, null,
                                                                Decode(sign(trunc(AD.Demand_Date) - MSC_ATP_ALLOC.G_Atf_Date),
                                                                        1, p_family_id,
                                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                'Y', AD.Original_Item_Id,
                                                                                p_family_id)),
                                                                p_org_id,
                                                                p_instance_id, trunc(AD.DEMAND_DATE),
                                                                p_level_id, AD.DEMAND_CLASS),
                                                        AD.DEMAND_CLASS)), NULL),
                                30, decode(AD.source_organization_id,
                                        NULL, DECODE(AD.DEMAND_CLASS, null, null,
                                                DECODE(TEMP.DEMAND_CLASS, '-1',
                                                        MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                                null, null,
                                                                Decode(sign(trunc(AD.Demand_Date) - MSC_ATP_ALLOC.G_Atf_Date),
                                                                        1, p_family_id,
                                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                'Y', AD.Original_Item_Id,
                                                                                p_family_id)),
                                                                p_org_id,
                                                                p_instance_id, trunc(AD.DEMAND_DATE),
                                                                p_level_id, AD.DEMAND_CLASS),
                                                        AD.DEMAND_CLASS)),
                                        -23453, DECODE(AD.DEMAND_CLASS, null, null,
                                                DECODE(TEMP.DEMAND_CLASS, '-1',
                                                        MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                                null, null,
                                                                Decode(sign(trunc(AD.Demand_Date) - MSC_ATP_ALLOC.G_Atf_Date),
                                                                        1, p_family_id,
                                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                'Y', AD.Original_Item_Id,
                                                                                p_family_id)),
                                                                p_org_id,
                                                                p_instance_id, trunc(AD.DEMAND_DATE),
                                                                p_level_id, AD.DEMAND_CLASS),
                                                        AD.DEMAND_CLASS)),
                                        AD.organization_id, DECODE(AD.DEMAND_CLASS, null, null,
                                                DECODE(TEMP.DEMAND_CLASS, '-1',
                                                        MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                                null, null,
                                                                Decode(sign(trunc(AD.Demand_Date) - MSC_ATP_ALLOC.G_Atf_Date),
                                                                        1, p_family_id,
                                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                'Y', AD.Original_Item_Id,
                                                                                p_family_id)),
                                                                p_org_id,
                                                                p_instance_id, trunc(AD.DEMAND_DATE),
                                                                p_level_id, AD.DEMAND_CLASS),
                                                        AD.DEMAND_CLASS)), NULL),
                                DECODE(AD.DEMAND_CLASS, null, null,
                                        DECODE(TEMP.DEMAND_CLASS, '-1',
                                                MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                        null, null,
                                                        Decode(sign(trunc(AD.Demand_Date) - MSC_ATP_ALLOC.G_Atf_Date),
                                                                1, p_family_id,
                                                                Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                        'Y', AD.Original_Item_Id,
                                                                        p_family_id)),
                                                        p_org_id,
                                                        p_instance_id, trunc(AD.DEMAND_DATE),
                                                        p_level_id, AD.DEMAND_CLASS),
                                                AD.DEMAND_CLASS))),
                                TEMP.DEMAND_CLASS, 1,
                                MSC_AATP_FUNC.Get_Item_Demand_Alloc_Percent(p_plan_id,
                                        AD.PARENT_DEMAND_ID,
                                        trunc(AD.DEMAND_DATE),
                                        AD.USING_ASSEMBLY_ITEM_ID,
                                        DECODE(AD.SOURCE_ORGANIZATION_ID,
                                        -23453, null,
                                        AD.SOURCE_ORGANIZATION_ID),
                                        Decode(sign(trunc(AD.Demand_Date) - MSC_ATP_ALLOC.G_Atf_Date),
                                                1, p_family_id,
                                                Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                        'Y', AD.Original_Item_Id,
                                                        p_family_id)),
                                        p_org_id,
                                        p_instance_id,
                                        AD.ORIGINAL_ORIGINATION_TYPE,
                                        decode(AD.ORIGINAL_ORIGINATION_TYPE,
                                                6, decode(AD.source_organization_id,
                                                        NULL, DECODE(AD.DEMAND_CLASS, null, null,
                                                                DECODE(TEMP.DEMAND_CLASS, '-1',
                                                                        MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                                                null, null,
                                                                                Decode(sign(trunc(AD.Demand_Date) - MSC_ATP_ALLOC.G_Atf_Date),
                                                                                        1, p_family_id,
                                                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                                'Y', AD.Original_Item_Id,
                                                                                                p_family_id)),
                                                                                p_org_id,
                                                                                p_instance_id, trunc(AD.DEMAND_DATE),
                                                                                p_level_id, AD.DEMAND_CLASS),
                                                                                AD.DEMAND_CLASS)),
                                                        -23453, DECODE(AD.DEMAND_CLASS, null, null,
                                                                DECODE(TEMP.DEMAND_CLASS, '-1',
                                                                        MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                                                null, null,
                                                                                Decode(sign(trunc(AD.Demand_Date) - MSC_ATP_ALLOC.G_Atf_Date),
                                                                                        1, p_family_id,
                                                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                                'Y', AD.Original_Item_Id,
                                                                                                p_family_id)),
                                                                                p_org_id,
                                                                                p_instance_id, trunc(AD.DEMAND_DATE),
                                                                                p_level_id, AD.DEMAND_CLASS),
                                                                                AD.DEMAND_CLASS)),
                                                        AD.organization_id, DECODE(AD.DEMAND_CLASS, null, null,
                                                                DECODE(TEMP.DEMAND_CLASS, '-1',
                                                                        MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                                                null, null,
                                                                                Decode(sign(trunc(AD.Demand_Date) - MSC_ATP_ALLOC.G_Atf_Date),
                                                                                        1, p_family_id,
                                                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                                'Y', AD.Original_Item_Id,
                                                                                                p_family_id)),
                                                                                p_org_id,
                                                                                p_instance_id, trunc(AD.DEMAND_DATE),
                                                                                p_level_id, AD.DEMAND_CLASS),
                                                                                AD.DEMAND_CLASS)), TEMP.DEMAND_CLASS),
                                                30, decode(AD.source_organization_id,
                                                        NULL, DECODE(AD.DEMAND_CLASS, null, null,
                                                                DECODE(TEMP.DEMAND_CLASS, '-1',
                                                                        MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                                                null, null,
                                                                                Decode(sign(trunc(AD.Demand_Date) - MSC_ATP_ALLOC.G_Atf_Date),
                                                                                        1, p_family_id,
                                                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                                'Y', AD.Original_Item_Id,
                                                                                                p_family_id)),
                                                                                p_org_id,
                                                                                p_instance_id, trunc(AD.DEMAND_DATE),
                                                                                p_level_id, AD.DEMAND_CLASS),
                                                                                AD.DEMAND_CLASS)),
                                                        -23453, DECODE(AD.DEMAND_CLASS, null, null,
                                                                DECODE(TEMP.DEMAND_CLASS, '-1',
                                                                        MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                                                null, null,
                                                                                Decode(sign(trunc(AD.Demand_Date) - MSC_ATP_ALLOC.G_Atf_Date),
                                                                                        1, p_family_id,
                                                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                                'Y', AD.Original_Item_Id,
                                                                                                p_family_id)),
                                                                                p_org_id,
                                                                                p_instance_id, trunc(AD.DEMAND_DATE),
                                                                                p_level_id, AD.DEMAND_CLASS),
                                                                                AD.DEMAND_CLASS)),
                                                        AD.organization_id, DECODE(AD.DEMAND_CLASS, null, null,
                                                                DECODE(TEMP.DEMAND_CLASS, '-1',
                                                                        MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                                                null, null,
                                                                                Decode(sign(trunc(AD.Demand_Date) - MSC_ATP_ALLOC.G_Atf_Date),
                                                                                        1, p_family_id,
                                                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                                'Y', AD.Original_Item_Id,
                                                                                                p_family_id)),
                                                                                p_org_id,
                                                                                p_instance_id, trunc(AD.DEMAND_DATE),
                                                                                p_level_id, AD.DEMAND_CLASS),
                                                                                AD.DEMAND_CLASS)), TEMP.DEMAND_CLASS),
                                                DECODE(AD.DEMAND_CLASS, null, null,
                                                        DECODE(TEMP.DEMAND_CLASS, '-1',
                                                                MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                                        null, null,
                                                                        Decode(sign(trunc(AD.Demand_Date) - MSC_ATP_ALLOC.G_Atf_Date),
                                                                                1, p_family_id,
                                                                                Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                        'Y', AD.Original_Item_Id,
                                                                                        p_family_id)),
                                                                        p_org_id,
                                                                        p_instance_id, trunc(AD.DEMAND_DATE),
                                                                        p_level_id, AD.DEMAND_CLASS),
                                                                        AD.DEMAND_CLASS))),
                                        TEMP.DEMAND_CLASS,
                                        p_level_id))    col23, -- original demand quantity
                        trunc(AD.original_demand_date)  col24, --Bug_3693892 added trunc
                        AD.original_item_id             col25,
                        AD.original_origination_type    col26,
                        -1 * AD.ALLOCATED_QUANTITY      col27,  -- unallocated quantity
                        MTPS.LOCATION                   col28, --bug3263368
                        MTP.PARTNER_NAME                col29, --bug3263368
                        AD.DEMAND_CLASS                 col30, --bug3263368
                        AD.REQUEST_DATE                 col31  --bug3263368
                FROM
                        MSC_ALLOC_DEMANDS AD,
                        MSC_ALLOC_TEMP TEMP,
                        MSC_TRADING_PARTNERS    MTP,--bug3263368
                        MSC_TRADING_PARTNER_SITES    MTPS, --bug3263368
                        MSC_SYSTEM_ITEMS    msi --bug3671294
                WHERE
                         AD.PLAN_ID = p_plan_id
                AND      AD.SR_INSTANCE_ID = p_instance_id
                AND      AD.INVENTORY_ITEM_ID in (p_member_id, p_family_id)
                AND      AD.ORGANIZATION_ID = p_org_id
                AND      AD.ALLOCATED_QUANTITY <> 0
                --bug3671294 start
                AND      msi.PLAN_ID = AD.PLAN_ID
                AND      msi.SR_INSTANCE_ID = AD.SR_INSTANCE_ID
                AND      msi.ORGANIZATION_ID = AD.ORGANIZATION_ID
                AND      msi.INVENTORY_ITEM_ID = AD.ORIGINAL_ITEM_ID
                --bug3671294 end
                AND      TRUNC(AD.DEMAND_DATE) < NVL(p_itf, TRUNC(AD.DEMAND_DATE) + 1)
                AND      AD.ORIGINATION_TYPE <> 52  -- Ignore copy SO and copy stealing records for allocation WB
                AND      AD.SHIP_TO_SITE_ID  = MTPS.PARTNER_SITE_ID(+) --bug3263368
                AND      AD.CUSTOMER_ID = MTP.PARTNER_ID(+) --bug3263368

                UNION ALL

                SELECT  p_session_id                    col1,
                        p_level_id                      col2,
                        p_sr_member_id                  col3 ,
                        p_org_id                        col4,
                        p_instance_id                   col5,
                        SA.PARENT_TRANSACTION_ID        col6,
                        2                               col7, -- supply
                        TRUNC(SA.SUPPLY_DATE)           col8,
                        NVL(SA.SUPPLY_QUANTITY,
                          SA.ALLOCATED_QUANTITY)        col9,
                        SA.ORDER_TYPE                   col10,
                        SA.ALLOCATED_QUANTITY
                         * DECODE(DECODE(SA.DEMAND_CLASS, null, null,
                                     DECODE(TEMP.DEMAND_CLASS,'-1',
                                        MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                          null,
                                          null,
                                          Decode(sign(trunc(SA.Supply_Date) - MSC_ATP_ALLOC.G_Atf_Date),
                                                1, p_family_id,
                                                Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                        'Y', SA.Original_Item_Id,
                                                        p_family_id)),
                                          p_org_id,
                                          p_instance_id,
                                          TRUNC(SA.SUPPLY_DATE),
                                          p_level_id,
                                          SA.DEMAND_CLASS),
                                        SA.DEMAND_CLASS)),
                                TEMP.DEMAND_CLASS,
                                        1,
                                NULL,
                                        NVL(MSC_AATP_FUNC.Get_DC_Alloc_Percent(
                                        p_instance_id,
                                        Decode(sign(trunc(SA.Supply_Date) - MSC_ATP_ALLOC.G_Atf_Date),
                                                1, p_family_id,
                                                Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                        'Y', SA.Original_Item_Id,
                                                        p_family_id)),
                                        p_org_id,
                                        null,
                                        null,
                                        TEMP.DEMAND_CLASS,
                                        TRUNC(SA.SUPPLY_DATE)),
                                        1),
                                DECODE(MSC_AATP_FUNC.Get_DC_Alloc_Percent(
                                        p_instance_id,
                                        Decode(sign(trunc(SA.Supply_Date) - MSC_ATP_ALLOC.G_Atf_Date),
                                                1, p_family_id,
                                                Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                        'Y', SA.Original_Item_Id,
                                                        p_family_id)),
                                        p_org_id,
                                        null,
                                        null,
                                        TEMP.DEMAND_CLASS,
                                        TRUNC(SA.SUPPLY_DATE)),
                                        NULL,
                                        1,
                                        0)
                                )                       col11, -- allocated_quantity
                        p_record_type                   col12, -- record_type
                        p_scenario_id                   col13, -- scenario_id
                        DECODE(SA.ORIGINAL_ORDER_TYPE,
                                5, to_char(SA.PARENT_TRANSACTION_ID),
                                SA.ORDER_NUMBER)        col14, -- disposition_name
                        TEMP.DEMAND_CLASS               col15, -- demand_class
                        p_uom_code                      col16, -- UOM Code
                        --bug3671294
                        msi.item_name                   col17, -- Item name
                        --p_inv_item_name                 col17, -- Item name
                        p_org_code                      col18, -- Org code
                        TEMP.PRIORITY                   col19, -- sysdate priroty
                        TEMP.ALLOCATION_PERCENT         col20,  -- sysdate allocation percent
                        p_sr_family_id                  col21,
                        l_null_num                      col22, -- Bug 3875786 - local variable used for NULL
                        l_null_num                      col23, -- Bug 3875786 - local variable used for NULL
                        l_null_date                     col24, -- Bug 3875786 - local variable used for NULL
                        SA.original_item_id             col25,
                        SA.ORIGINAL_ORDER_TYPE          col26,
                        SA.ALLOCATED_QUANTITY           col27,  -- unallocated quantity
                        l_null_char                     col28, --bug3263368 ORIG_CUSTOMER_SITE_NAME --Bug 3875786
                        l_null_char                     col29, --bug3263368 ORIG_CUSTOMER_NAME --Bug 3875786
                        l_null_char                     col30, --bug3263368 ORIG_DEMAND_CLASS --Bug 3875786
                        l_null_date                     col31  --bug3263368 ORIG_REQUEST_DATE -- Bug 3875786 - local variable used for NULL

                FROM
                        MSC_ALLOC_SUPPLIES SA,
                        MSC_ALLOC_TEMP TEMP,
                        MSC_SYSTEM_ITEMS    msi --bug3671294
                WHERE
                         SA.PLAN_ID = p_plan_id
                AND      SA.SR_INSTANCE_ID = p_instance_id
                AND      SA.INVENTORY_ITEM_ID in (p_member_id, p_family_id)
                AND      SA.ORGANIZATION_ID = p_org_id
                AND      SA.ALLOCATED_QUANTITY <> 0
                --bug3671294 start
                AND      msi.PLAN_ID = SA.PLAN_ID
                AND      msi.SR_INSTANCE_ID = SA.SR_INSTANCE_ID
                AND      msi.ORGANIZATION_ID = SA.ORGANIZATION_ID
                AND      msi.INVENTORY_ITEM_ID = SA.ORIGINAL_ITEM_ID
                --bug3671294 end
                AND      TRUNC(SA.SUPPLY_DATE) >= DECODE(SA.ORIGINAL_ORDER_TYPE,
                                                        27, TRUNC(SYSDATE),
                                                        28, TRUNC(SYSDATE),
                                                        TRUNC(SA.SUPPLY_DATE))
                AND      TRUNC(SA.SUPPLY_DATE) < NVL(p_itf, TRUNC(SA.SUPPLY_DATE) + 1)
                );
Line: 6786

                INSERT INTO MRP_ATP_DETAILS_TEMP
                (session_id, atp_level, inventory_item_id, organization_id, identifier1, identifier3,
                supply_demand_type, supply_demand_date, supply_demand_quantity, supply_demand_source_type,
                allocated_quantity, record_type, scenario_id, disposition_name, demand_class, class, customer_id,
                customer_site_id, uom_code, inventory_item_name, organization_code, identifier2, identifier4,
                Customer_Name, Customer_Site_Name, request_item_id, pf_display_flag, original_demand_quantity,
                original_demand_date, original_item_id, original_supply_demand_type, unallocated_quantity,
                ORIG_CUSTOMER_SITE_NAME,ORIG_CUSTOMER_NAME,ORIG_DEMAND_CLASS,ORIG_REQUEST_DATE ) --bug3263368
                SELECT col1, col2, col3, col4, col5, col6, col7, col8, col9, col10,
                col11, col12, col13, col14, col15, col16, col17, col18, col19, col20, col21, col22, col23, col24, col25,
                col26, col27, col28, col29, col30, col31, col32,col33,col34,col35,col36
                FROM
                (SELECT p_session_id                            col1, -- session_id
                        p_level_id                              col2, -- level_id
                        p_sr_member_id                          col3, -- inventory_item_id
                        p_org_id                                col4, -- organization_id
                        p_instance_id                           col5, -- Identifier1
                        AD.PARENT_DEMAND_ID                     col6, -- Identifier3
                        1                                       col7, -- supply_demand_type
                        TRUNC(AD.DEMAND_DATE)                   col8, -- supply_demand_date
                        -1 * NVL(AD.DEMAND_QUANTITY,
                             AD.ALLOCATED_QUANTITY)             col9, -- supply_demand_quantity
                        AD.ORIGINATION_TYPE                     col10,-- supply_demand_source_type
                        -1 * AD.ALLOCATED_QUANTITY *
                                DECODE(DECODE(AD.CUSTOMER_ID, NULL, NULL,
                                        0, NULL,
                                        decode(AD.origination_type,
                                                6, decode(AD.source_organization_id,
                                                        NULL, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                                AD.CUSTOMER_ID, AD.SHIP_TO_SITE_ID,
                                                                Decode(sign(trunc(AD.Demand_Date) - MSC_ATP_ALLOC.G_Atf_Date),
                                                                        1, p_family_id,
                                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                'Y', AD.Original_Item_Id,
                                                                                p_family_id)),
                                                                p_org_id, p_instance_id, TRUNC(AD.ORIGINAL_DEMAND_DATE),
                                                                p_level_id, NULL),
                                                        -23453, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                                AD.CUSTOMER_ID, AD.SHIP_TO_SITE_ID,
                                                                Decode(sign(trunc(AD.Demand_Date) - MSC_ATP_ALLOC.G_Atf_Date),
                                                                        1, p_family_id,
                                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                'Y', AD.Original_Item_Id,
                                                                                p_family_id)),
                                                                p_org_id, p_instance_id, TRUNC(AD.ORIGINAL_DEMAND_DATE),
                                                                p_level_id, NULL),
                                                        AD.organization_id, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                                AD.CUSTOMER_ID, AD.SHIP_TO_SITE_ID,
                                                                Decode(sign(trunc(AD.Demand_Date) - MSC_ATP_ALLOC.G_Atf_Date),
                                                                        1, p_family_id,
                                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                'Y', AD.Original_Item_Id,
                                                                                p_family_id)),
                                                                p_org_id, p_instance_id, TRUNC(AD.ORIGINAL_DEMAND_DATE),
                                                                p_level_id, NULL),
                                                        NULL),
                                                30, decode(AD.source_organization_id,
                                                        NULL, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                                AD.CUSTOMER_ID, AD.SHIP_TO_SITE_ID,
                                                                Decode(sign(trunc(AD.Demand_Date) - MSC_ATP_ALLOC.G_Atf_Date),
                                                                        1, p_family_id,
                                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                'Y', AD.Original_Item_Id,
                                                                                p_family_id)),
                                                                p_org_id, p_instance_id, TRUNC(AD.ORIGINAL_DEMAND_DATE),
                                                                p_level_id, NULL),
                                                        -23453, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                                AD.CUSTOMER_ID, AD.SHIP_TO_SITE_ID,
                                                                Decode(sign(trunc(AD.Demand_Date) - MSC_ATP_ALLOC.G_Atf_Date),
                                                                        1, p_family_id,
                                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                'Y', AD.Original_Item_Id,
                                                                                p_family_id)),
                                                                p_org_id, p_instance_id, TRUNC(AD.ORIGINAL_DEMAND_DATE),
                                                                p_level_id, NULL),
                                                        AD.organization_id, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                                AD.CUSTOMER_ID, AD.SHIP_TO_SITE_ID,
                                                                Decode(sign(trunc(AD.Demand_Date) - MSC_ATP_ALLOC.G_Atf_Date),
                                                                        1, p_family_id,
                                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                'Y', AD.Original_Item_Id,
                                                                                p_family_id)),
                                                                p_org_id, p_instance_id, TRUNC(AD.ORIGINAL_DEMAND_DATE),
                                                                p_level_id, NULL),
                                                        NULL),
                                                MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                        AD.CUSTOMER_ID, AD.SHIP_TO_SITE_ID,
                                                        Decode(sign(trunc(AD.Demand_Date) - MSC_ATP_ALLOC.G_Atf_Date),
                                                                1, p_family_id,
                                                                Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                        'Y', AD.Original_Item_Id,
                                                                        p_family_id)),
                                                        p_org_id, p_instance_id,
                                                        TRUNC(AD.ORIGINAL_DEMAND_DATE),
                                                        p_level_id, NULL))),
                                        TEMP.LEVEL_3_DEMAND_CLASS, 1,
                                        MSC_AATP_FUNC.Get_Item_Demand_Alloc_Percent(p_plan_id,
                                                AD.PARENT_DEMAND_ID,
                                                TRUNC(AD.ORIGINAL_DEMAND_DATE),
                                                AD.USING_ASSEMBLY_ITEM_ID,
                                                DECODE(AD.SOURCE_ORGANIZATION_ID,
                                                -23453, null,
                                                AD.SOURCE_ORGANIZATION_ID),
                                                Decode(sign(trunc(AD.Demand_Date) - MSC_ATP_ALLOC.G_Atf_Date),
                                                        1, p_family_id,
                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                'Y', AD.Original_Item_Id,
                                                                p_family_id)),
                                                p_org_id,
                                                p_instance_id,
                                                AD.ORIGINATION_TYPE,
                                                DECODE(AD.CUSTOMER_ID, NULL, TEMP.LEVEL_3_DEMAND_CLASS,
                                                        0, TEMP.LEVEL_3_DEMAND_CLASS,
                                                        decode(AD.origination_type,
                                                                6, decode(AD.source_organization_id,
                                                                        NULL, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                                                AD.CUSTOMER_ID, AD.SHIP_TO_SITE_ID,
                                                                                Decode(sign(trunc(AD.Demand_Date) - MSC_ATP_ALLOC.G_Atf_Date),
                                                                                        1, p_family_id,
                                                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                                'Y', AD.Original_Item_Id,
                                                                                                p_family_id)),
                                                                                p_org_id, p_instance_id, TRUNC(AD.ORIGINAL_DEMAND_DATE),
                                                                                p_level_id, NULL),
                                                                        -23453, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                                                AD.CUSTOMER_ID, AD.SHIP_TO_SITE_ID,
                                                                                Decode(sign(trunc(AD.Demand_Date) - MSC_ATP_ALLOC.G_Atf_Date),
                                                                                        1, p_family_id,
                                                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                                'Y', AD.Original_Item_Id,
                                                                                                p_family_id)),
                                                                                p_org_id, p_instance_id, TRUNC(AD.ORIGINAL_DEMAND_DATE),
                                                                                p_level_id, NULL),
                                                                        AD.organization_id, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                                                AD.CUSTOMER_ID, AD.SHIP_TO_SITE_ID,
                                                                                Decode(sign(trunc(AD.Demand_Date) - MSC_ATP_ALLOC.G_Atf_Date),
                                                                                        1, p_family_id,
                                                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                                'Y', AD.Original_Item_Id,
                                                                                                p_family_id)),
                                                                                p_org_id, p_instance_id, TRUNC(AD.ORIGINAL_DEMAND_DATE),
                                                                                p_level_id, NULL),
                                                                        TEMP.LEVEL_3_DEMAND_CLASS),
                                                                30, decode(AD.source_organization_id,
                                                                        NULL, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                                                AD.CUSTOMER_ID, AD.SHIP_TO_SITE_ID,
                                                                                Decode(sign(trunc(AD.Demand_Date) - MSC_ATP_ALLOC.G_Atf_Date),
                                                                                        1, p_family_id,
                                                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                                'Y', AD.Original_Item_Id,
                                                                                                p_family_id)),
                                                                                p_org_id, p_instance_id, TRUNC(AD.ORIGINAL_DEMAND_DATE),
                                                                                p_level_id, NULL),
                                                                        -23453, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                                                AD.CUSTOMER_ID, AD.SHIP_TO_SITE_ID,
                                                                                Decode(sign(trunc(AD.Demand_Date) - MSC_ATP_ALLOC.G_Atf_Date),
                                                                                        1, p_family_id,
                                                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                                'Y', AD.Original_Item_Id,
                                                                                                p_family_id)),
                                                                                p_org_id, p_instance_id, TRUNC(AD.ORIGINAL_DEMAND_DATE),
                                                                                p_level_id, NULL),
                                                                        AD.organization_id, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                                                AD.CUSTOMER_ID, AD.SHIP_TO_SITE_ID,
                                                                                Decode(sign(trunc(AD.Demand_Date) - MSC_ATP_ALLOC.G_Atf_Date),
                                                                                        1, p_family_id,
                                                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                                'Y', AD.Original_Item_Id,
                                                                                                p_family_id)),
                                                                                p_org_id, p_instance_id, TRUNC(AD.ORIGINAL_DEMAND_DATE),
                                                                                p_level_id, NULL),
                                                                        TEMP.LEVEL_3_DEMAND_CLASS),
                                                                MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                                        AD.CUSTOMER_ID, AD.SHIP_TO_SITE_ID,
                                                                        Decode(sign(trunc(AD.Demand_Date) - MSC_ATP_ALLOC.G_Atf_Date),
                                                                                1, p_family_id,
                                                                                Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                        'Y', AD.Original_Item_Id,
                                                                                        p_family_id)),
                                                                        p_org_id, p_instance_id,
                                                                        TRUNC(AD.ORIGINAL_DEMAND_DATE),
                                                                        p_level_id, NULL))),
                                                TEMP.LEVEL_3_DEMAND_CLASS,
                                                p_level_id))    col11, -- allocated_quantity
                        p_record_type                           col12, -- record_type
                        p_scenario_id                           col13, -- scenario_id
                        AD.ORDER_NUMBER                         col14, -- disposition_name
                        TEMP.LEVEL_3_DEMAND_CLASS               col15, -- demand_class
                        TEMP.LEVEL_1_DEMAND_CLASS               col16, -- class
                        TEMP.PARTNER_ID                         col17, -- partner_id
                        TEMP.PARTNER_SITE_ID                    col18, -- partner_site_id
                        p_uom_code                              col19, -- UOM Code
                        --bug3671294
                        msi.item_name                           col20, -- Item name
                        --p_inv_item_name                         col20, -- Item name
                        p_org_code                              col21, -- Org code
                        TEMP.LEVEL_3_DEMAND_CLASS_PRIORITY      col22, -- Level 3 priority
                        TEMP.ALLOCATION_PERCENT                 col23, -- Sysdate allocation percent
                        TEMP.customer_name                      col24, -- Customer Name
                        TEMP.customer_site_name                 col25, -- Customer Site Name
                        p_sr_member_id                          col26, -- request_item_id
                	Decode(AD.inventory_item_id, p_family_id,
                	        Decode(AD.original_item_id, p_member_id,
                	                AD.Pf_Display_Flag,
                	                Decode(sign(trunc(AD.Original_Demand_Date) - MSC_ATP_ALLOC.G_Atf_Date),
                	                        1, AD.Pf_Display_Flag,
                	                        1)),
                	        AD.Pf_Display_Flag)             col27,
                        -1 * NVL(AD.DEMAND_QUANTITY,
                             AD.ALLOCATED_QUANTITY)*
                                DECODE(DECODE(AD.CUSTOMER_ID, NULL, NULL,
                                        0, NULL,
                                        decode(AD.origination_type,
                                                6, decode(AD.source_organization_id,
                                                        NULL, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                                AD.CUSTOMER_ID, AD.SHIP_TO_SITE_ID,
                                                                Decode(sign(trunc(AD.Demand_Date) - MSC_ATP_ALLOC.G_Atf_Date),
                                                                        1, p_family_id,
                                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                'Y', AD.Original_Item_Id,
                                                                                p_family_id)),
                                                                p_org_id, p_instance_id, TRUNC(AD.ORIGINAL_DEMAND_DATE),
                                                                p_level_id, NULL),
                                                        -23453, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                                AD.CUSTOMER_ID, AD.SHIP_TO_SITE_ID,
                                                                Decode(sign(trunc(AD.Demand_Date) - MSC_ATP_ALLOC.G_Atf_Date),
                                                                        1, p_family_id,
                                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                'Y', AD.Original_Item_Id,
                                                                                p_family_id)),
                                                                p_org_id, p_instance_id, TRUNC(AD.ORIGINAL_DEMAND_DATE),
                                                                p_level_id, NULL),
                                                        AD.organization_id, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                                AD.CUSTOMER_ID, AD.SHIP_TO_SITE_ID,
                                                                Decode(sign(trunc(AD.Demand_Date) - MSC_ATP_ALLOC.G_Atf_Date),
                                                                        1, p_family_id,
                                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                'Y', AD.Original_Item_Id,
                                                                                p_family_id)),
                                                                p_org_id, p_instance_id, TRUNC(AD.ORIGINAL_DEMAND_DATE),
                                                                p_level_id, NULL),
                                                        NULL),
                                                30, decode(AD.source_organization_id,
                                                        NULL, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                                AD.CUSTOMER_ID, AD.SHIP_TO_SITE_ID,
                                                                Decode(sign(trunc(AD.Demand_Date) - MSC_ATP_ALLOC.G_Atf_Date),
                                                                        1, p_family_id,
                                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                'Y', AD.Original_Item_Id,
                                                                                p_family_id)),
                                                                p_org_id, p_instance_id, TRUNC(AD.ORIGINAL_DEMAND_DATE),
                                                                p_level_id, NULL),
                                                        -23453, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                                AD.CUSTOMER_ID, AD.SHIP_TO_SITE_ID,
                                                                Decode(sign(trunc(AD.Demand_Date) - MSC_ATP_ALLOC.G_Atf_Date),
                                                                        1, p_family_id,
                                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                'Y', AD.Original_Item_Id,
                                                                                p_family_id)),
                                                                p_org_id, p_instance_id, TRUNC(AD.ORIGINAL_DEMAND_DATE),
                                                                p_level_id, NULL),
                                                        AD.organization_id, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                                AD.CUSTOMER_ID, AD.SHIP_TO_SITE_ID,
                                                                Decode(sign(trunc(AD.Demand_Date) - MSC_ATP_ALLOC.G_Atf_Date),
                                                                        1, p_family_id,
                                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                'Y', AD.Original_Item_Id,
                                                                                p_family_id)),
                                                                p_org_id, p_instance_id, TRUNC(AD.ORIGINAL_DEMAND_DATE),
                                                                p_level_id, NULL),
                                                        NULL),
                                                MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                        AD.CUSTOMER_ID, AD.SHIP_TO_SITE_ID,
                                                        Decode(sign(trunc(AD.Demand_Date) - MSC_ATP_ALLOC.G_Atf_Date),
                                                                1, p_family_id,
                                                                Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                        'Y', AD.Original_Item_Id,
                                                                        p_family_id)),
                                                        p_org_id, p_instance_id,
                                                        TRUNC(AD.ORIGINAL_DEMAND_DATE),
                                                        p_level_id, NULL))),
                                        TEMP.LEVEL_3_DEMAND_CLASS, 1,
                                        MSC_AATP_FUNC.Get_Item_Demand_Alloc_Percent(p_plan_id,
                                                AD.PARENT_DEMAND_ID,
                                                TRUNC(AD.ORIGINAL_DEMAND_DATE),
                                                AD.USING_ASSEMBLY_ITEM_ID,
                                                DECODE(AD.SOURCE_ORGANIZATION_ID,
                                                -23453, null,
                                                AD.SOURCE_ORGANIZATION_ID),
                                                Decode(sign(trunc(AD.Demand_Date) - MSC_ATP_ALLOC.G_Atf_Date),
                                                        1, p_family_id,
                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                'Y', AD.Original_Item_Id,
                                                                p_family_id)),
                                                p_org_id,
                                                p_instance_id,
                                                AD.ORIGINATION_TYPE,
                                                DECODE(AD.CUSTOMER_ID, NULL, TEMP.LEVEL_3_DEMAND_CLASS,
                                                        0, TEMP.LEVEL_3_DEMAND_CLASS,
                                                        decode(AD.origination_type,
                                                                6, decode(AD.source_organization_id,
                                                                        NULL, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                                                AD.CUSTOMER_ID, AD.SHIP_TO_SITE_ID,
                                                                                Decode(sign(trunc(AD.Demand_Date) - MSC_ATP_ALLOC.G_Atf_Date),
                                                                                        1, p_family_id,
                                                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                                'Y', AD.Original_Item_Id,
                                                                                                p_family_id)),
                                                                                p_org_id, p_instance_id, TRUNC(AD.ORIGINAL_DEMAND_DATE),
                                                                                p_level_id, NULL),
                                                                        -23453, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                                                AD.CUSTOMER_ID, AD.SHIP_TO_SITE_ID,
                                                                                Decode(sign(trunc(AD.Demand_Date) - MSC_ATP_ALLOC.G_Atf_Date),
                                                                                        1, p_family_id,
                                                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                                'Y', AD.Original_Item_Id,
                                                                                                p_family_id)),
                                                                                p_org_id, p_instance_id, TRUNC(AD.ORIGINAL_DEMAND_DATE),
                                                                                p_level_id, NULL),
                                                                        AD.organization_id, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                                                AD.CUSTOMER_ID, AD.SHIP_TO_SITE_ID,
                                                                                Decode(sign(trunc(AD.Demand_Date) - MSC_ATP_ALLOC.G_Atf_Date),
                                                                                        1, p_family_id,
                                                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                                'Y', AD.Original_Item_Id,
                                                                                                p_family_id)),
                                                                                p_org_id, p_instance_id, TRUNC(AD.ORIGINAL_DEMAND_DATE),
                                                                                p_level_id, NULL),
                                                                        TEMP.LEVEL_3_DEMAND_CLASS),
                                                                30, decode(AD.source_organization_id,
                                                                        NULL, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                                                AD.CUSTOMER_ID, AD.SHIP_TO_SITE_ID,
                                                                                Decode(sign(trunc(AD.Demand_Date) - MSC_ATP_ALLOC.G_Atf_Date),
                                                                                        1, p_family_id,
                                                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                                'Y', AD.Original_Item_Id,
                                                                                                p_family_id)),
                                                                                p_org_id, p_instance_id, TRUNC(AD.ORIGINAL_DEMAND_DATE),
                                                                                p_level_id, NULL),
                                                                        -23453, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                                                AD.CUSTOMER_ID, AD.SHIP_TO_SITE_ID,
                                                                                Decode(sign(trunc(AD.Demand_Date) - MSC_ATP_ALLOC.G_Atf_Date),
                                                                                        1, p_family_id,
                                                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                                'Y', AD.Original_Item_Id,
                                                                                                p_family_id)),
                                                                                p_org_id, p_instance_id, TRUNC(AD.ORIGINAL_DEMAND_DATE),
                                                                                p_level_id, NULL),
                                                                        AD.organization_id, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                                                AD.CUSTOMER_ID, AD.SHIP_TO_SITE_ID,
                                                                                Decode(sign(trunc(AD.Demand_Date) - MSC_ATP_ALLOC.G_Atf_Date),
                                                                                        1, p_family_id,
                                                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                                'Y', AD.Original_Item_Id,
                                                                                                p_family_id)),
                                                                                p_org_id, p_instance_id, TRUNC(AD.ORIGINAL_DEMAND_DATE),
                                                                                p_level_id, NULL),
                                                                        TEMP.LEVEL_3_DEMAND_CLASS),
                                                                MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                                        AD.CUSTOMER_ID, AD.SHIP_TO_SITE_ID,
                                                                        Decode(sign(trunc(AD.Demand_Date) - MSC_ATP_ALLOC.G_Atf_Date),
                                                                                1, p_family_id,
                                                                                Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                                        'Y', AD.Original_Item_Id,
                                                                                        p_family_id)),
                                                                        p_org_id, p_instance_id,
                                                                        TRUNC(AD.ORIGINAL_DEMAND_DATE),
                                                                        p_level_id, NULL))),
                                                TEMP.LEVEL_3_DEMAND_CLASS,
                                                p_level_id))    col28, -- original demand quantity
                        trunc(AD.original_demand_date)          col29, --Bug_3693892 added trunc
                        AD.original_item_id                     col30,
                        AD.original_origination_type            col31,
                        -1 * AD.ALLOCATED_QUANTITY              col32,  -- unallocated quantity
                        MTPS.LOCATION                           col33, --bug3263368
                        MTP.PARTNER_NAME                        col34, --bug3263368
                        AD.DEMAND_CLASS                         col35, --bug3263368
                        AD.REQUEST_DATE                         col36  --bug3263368
                FROM
                        MSC_ALLOC_DEMANDS        AD,
                        MSC_ALLOC_HIERARCHY_TEMP TEMP,
                        MSC_TRADING_PARTNERS    MTP,--bug3263368
                        MSC_TRADING_PARTNER_SITES    MTPS, --bug3263368
                        MSC_SYSTEM_ITEMS    msi --bug3671294
                WHERE
                        AD.PLAN_ID = p_plan_id
                        AND AD.SR_INSTANCE_ID = p_instance_id
                        AND AD.INVENTORY_ITEM_ID in (p_member_id, p_family_id)
                        AND AD.ORGANIZATION_ID = p_org_id
                        AND AD.ORIGINATION_TYPE <> 52 -- For summary enhancement
                        AND TRUNC(AD.DEMAND_DATE) < NVL(p_itf, TRUNC(AD.DEMAND_DATE) + 1)
                        AND AD.ALLOCATED_QUANTITY <> 0
                        --bug3671294 start
                        AND      msi.PLAN_ID = AD.PLAN_ID
                        AND      msi.SR_INSTANCE_ID = AD.SR_INSTANCE_ID
                        AND      msi.ORGANIZATION_ID = AD.ORGANIZATION_ID
                        AND      msi.INVENTORY_ITEM_ID = AD.ORIGINAL_ITEM_ID
                        --bug3671294 end
                        AND AD.SHIP_TO_SITE_ID  = MTPS.PARTNER_SITE_ID(+) --bug3263368
                        AND AD.CUSTOMER_ID = MTP.PARTNER_ID(+)--bug3263368
                UNION ALL
                SELECT  p_session_id                            col1, -- session_id
                        p_level_id                              col2, -- level_id
                        p_sr_member_id                          col3, -- inventory_item_id
                        p_org_id                                col4, -- organization_id
                        p_instance_id                           col5, -- Identifier1
                        SA.PARENT_TRANSACTION_ID                col6, -- Identifier3
                        2                                       col7, -- supply_demand_type
                        TRUNC(SA.SUPPLY_DATE)                   col8, -- supply_demand_date
                        NVL(SA.SUPPLY_QUANTITY,
                                SA.ALLOCATED_QUANTITY)          col9, -- supply_demand_source_quantity
                        SA.ORDER_TYPE                           col10, -- supply_demand_source_type
                        SA.ALLOCATED_QUANTITY
                                * DECODE(DECODE(SA.CUSTOMER_ID, NULL, NULL,
                                                MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
                                                  SA.CUSTOMER_ID,
                                                  SA.SHIP_TO_SITE_ID,
                                                  Decode(sign(trunc(SA.Supply_Date) - MSC_ATP_ALLOC.G_Atf_Date),
                                                        1, p_family_id,
                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                'Y', SA.Original_Item_Id,
                                                                p_family_id)),
                                                  p_org_id,
                                                  p_instance_id,
                                                  TRUNC(SA.SUPPLY_DATE),
                                                  p_level_id,
                                                  NULL)),
                                        TEMP.LEVEL_3_DEMAND_CLASS,
                                                1,
                                        NULL,
                                                NVL(MSC_AATP_FUNC.Get_DC_Alloc_Percent(
                                                p_instance_id,
                                                Decode(sign(trunc(SA.Supply_Date) - MSC_ATP_ALLOC.G_Atf_Date),
                                                        1, p_family_id,
                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                'Y', SA.Original_Item_Id,
                                                                p_family_id)),
                                                p_org_id,
                                                null,
                                                null,
                                                TEMP.LEVEL_3_DEMAND_CLASS,
                                                TRUNC(SA.SUPPLY_DATE)), 1),
                                        DECODE(MSC_AATP_FUNC.Get_DC_Alloc_Percent(
                                                p_instance_id,
                                                Decode(sign(trunc(SA.Supply_Date) - MSC_ATP_ALLOC.G_Atf_Date),
                                                        1, p_family_id,
                                                        Decode(MSC_ATP_PVT.G_MEM_RULE_WITHIN_ATF,
                                                                'Y', SA.Original_Item_Id,
                                                                p_family_id)),
                                                p_org_id,
                                                null,
                                                null,
                                                TEMP.LEVEL_3_DEMAND_CLASS,
                                                TRUNC(SA.SUPPLY_DATE)),
                                                NULL, 1, 0)
                                        )                       col11, -- allocated_quantity
                        p_record_type                           col12, -- record_type
                        p_scenario_id                           col13, -- scenario_id
                        DECODE(SA.ORIGINAL_ORDER_TYPE,
                                5, to_char(SA.PARENT_TRANSACTION_ID),
                                SA.ORDER_NUMBER)                col14, -- disposition_name
                        TEMP.LEVEL_3_DEMAND_CLASS               col15, -- demand_class
                        TEMP.LEVEL_1_DEMAND_CLASS               col16, -- class
                        TEMP.PARTNER_ID                         col17, -- partner_id
                        TEMP.PARTNER_SITE_ID                    col18, -- partner_site_id
                        p_uom_code                              col19, -- UOM Code
                        --bug3671294
                        msi.item_name                           col20, -- Item name
                        --p_inv_item_name                         col20, -- Item name
                        p_org_code                              col21, -- Org code
                        TEMP.LEVEL_3_DEMAND_CLASS_PRIORITY      col22, -- Level 3 priority
                        TEMP.ALLOCATION_PERCENT                 col23, -- Sysdate allocation percent
                        TEMP.customer_name                      col24, -- Customer Name
                        TEMP.customer_site_name                 col25, -- Customer Site Name
                        p_sr_member_id                          col26, -- request_item_id
		        l_null_num                              col27,
        	        l_null_num                              col28,
        	        l_null_date                             col29, -- Bug 3875786 - local variable used for NULL
        	        SA.Original_Item_Id                     col30,
        	        SA.ORIGINAL_ORDER_TYPE                  col31,
        	        SA.ALLOCATED_QUANTITY                   col32,  -- unallocated quantity
        	        l_null_char                             col33, --bug3263368 ORIG_CUSTOMER_SITE_NAME --Bug 3875786
        	        l_null_char                             col34, --bug3263368 ORIG_CUSTOMER_NAME --Bug 3875786
        	        l_null_char                             col35, --bug3263368 ORIG_DEMAND_CLASS --Bug 3875786
        	        l_null_date                             col36  --bug3263368 ORIG_REQUEST_DATE -- Bug 3875786 - local variable used for NULL
        	FROM
                        MSC_ALLOC_SUPPLIES       SA,
                        MSC_ALLOC_HIERARCHY_TEMP TEMP,
                        MSC_SYSTEM_ITEMS    msi --bug3671294
                WHERE
                        SA.PLAN_ID = p_plan_id
                        AND SA.SR_INSTANCE_ID = p_instance_id
                        AND SA.INVENTORY_ITEM_ID in (p_member_id, p_family_id)
                        AND SA.ORGANIZATION_ID = p_org_id
                        AND SA.ALLOCATED_QUANTITY <> 0
                        --bug3671294 start
                        AND      msi.PLAN_ID = SA.PLAN_ID
                        AND      msi.SR_INSTANCE_ID = SA.SR_INSTANCE_ID
                        AND      msi.ORGANIZATION_ID = SA.ORGANIZATION_ID
                        AND      msi.INVENTORY_ITEM_ID = SA.ORIGINAL_ITEM_ID
                        --bug3671294 end
                        AND TRUNC(SA.SUPPLY_DATE) >= DECODE(SA.ORIGINAL_ORDER_TYPE,
                                                        27, TRUNC(SYSDATE),
                                                        28, TRUNC(SYSDATE),
                                                        TRUNC(SA.SUPPLY_DATE))
                        AND TRUNC(SA.SUPPLY_DATE) < NVL(p_itf, TRUNC(SA.SUPPLY_DATE) + 1)
                );
Line: 7295

        x_insert_count := SQL%ROWCOUNT;
Line: 7300

                        msc_sch_wb.atp_debug('Insert_SD_Into_Details_Temp: ' || 'Error code:' || to_char(sqlcode));
Line: 7304

END Insert_SD_Into_Details_Temp;
Line: 7331

        DELETE msc_alloc_temp;
Line: 7335

                /* Do netting in SQL and insert original demand qtys in alloc temp table*/
                INSERT INTO MSC_ALLOC_TEMP(
                        demand_class,
                        demand_id,
                        supply_demand_quantity
                )
                (SELECT demand_class,
                        parent_demand_id,
                        sum(allocated_quantity)
                 FROM   msc_alloc_demands
                 WHERE  (demand_class, parent_demand_id) in
                                (SELECT  demand_class,
                                         identifier3
                                 FROM    mrp_atp_details_temp
                                 WHERE   session_id = p_session_id
                                 AND     supply_demand_type = 1
                                 AND     record_type = 2)
                 AND    plan_id = p_plan_id
                 GROUP BY
                        demand_class,
                        parent_demand_id
                );
Line: 7358

                /* Now update original demand qtys in mrp_atp_details_temp table*/
                UPDATE  mrp_atp_details_temp madt
                SET     madt.original_demand_quantity =
                               (select  -1*mat.supply_demand_quantity
                                from    msc_alloc_temp mat
                                where   mat.demand_class = madt.demand_class
                                and     mat.demand_id = madt.identifier3)
                WHERE   madt.session_id = p_session_id
                AND     madt.supply_demand_type = 1
                AND     madt.record_type = 2;
Line: 7371

                /* Do netting in SQL and insert original demand qtys in alloc temp table*/
                INSERT INTO MSC_ALLOC_TEMP(
                        demand_id,
                        supply_demand_quantity
                )
                SELECT  parent_demand_id,
                        sum(allocated_quantity)
                FROM    msc_alloc_demands
                WHERE   parent_demand_id in
                                (SELECT  identifier3
                                 FROM    msc_atp_sd_details_temp
                                 WHERE   supply_demand_type = 1)
                AND     plan_id = p_plan_id
                AND     demand_class = nvl(p_demand_class, demand_class)
                GROUP BY
                        parent_demand_id;
Line: 7388

                /* Now update original demand qtys in msc_atp_sd_details_temp table*/
                UPDATE  msc_atp_sd_details_temp masddt
                SET     masddt.original_demand_quantity =
                               (select  -1*mat.supply_demand_quantity
                                from    msc_alloc_temp mat
                                where   mat.demand_id = masddt.identifier3)
                WHERE   masddt.supply_demand_type = 1;
Line: 7825

        SELECT  SD_View.ATP_level
                ,SD_View.scenario_id
                ,SD_View.inventory_item_id
                ,SD_View.request_item_id
                ,SD_View.organization_id
                ,SD_View.supplier_id
                ,SD_View.supplier_site_id
                ,SD_View.department_id
                ,SD_View.resource_id
                ,SD_View.supply_demand_date
                ,SD_View.identifier1
                ,SD_View.identifier2
                ,SUM(SD_View.demand_quantity)
                ,SUM(SD_View.bucketed_demand_quantity)
                ,SUM(SD_View.supply_quantity)
                ,SUM(SD_View.period_quantity)
        BULK COLLECT INTO
                x_atp_period.Level,
                x_atp_period.Scenario_Id,
                x_atp_period.Inventory_Item_Id,
                x_atp_period.Request_Item_Id,
                x_atp_period.Organization_id,
                x_atp_period.Supplier_ID,
                x_atp_period.Supplier_Site_ID,
                x_atp_period.Department_id,
                x_atp_period.Resource_id,
                x_atp_period.Period_Start_Date,
                x_atp_period.Identifier1,
                x_atp_period.Identifier2,
                x_atp_period.Total_Demand_Quantity,
                x_atp_period.Total_Bucketed_Demand_Quantity,
                x_atp_period.Total_Supply_Quantity,
                x_atp_period.Period_Quantity
        FROM (
                SELECT  ATP_level
                        ,scenario_id
                        ,inventory_item_id
                        ,request_item_id
                        ,organization_id
                        ,supplier_id
                        ,supplier_site_id
                        ,department_id
                        ,resource_id
                        ,trunc(supply_demand_date) supply_demand_date --Bug_3693892 added trunc
                        ,identifier1
                        ,identifier2
                        ,(DECODE(supply_demand_type, 1,
                                 DECODE(pf_display_flag, 1,
                                        --Bug_3693892 added trunc
                                        DECODE(trunc(original_demand_date), trunc(supply_demand_date),
                                               original_demand_quantity, 0),
                                        0),
                                 0)) demand_quantity
                        ,(DECODE(supply_demand_type, 1,
                                 allocated_quantity,
                                 0)) bucketed_demand_quantity
                        ,(DECODE(supply_demand_type, 2,
                                 allocated_quantity,
                                 0)) supply_quantity
                        ,allocated_quantity period_quantity
                FROM    msc_atp_sd_details_temp

                UNION ALL

                SELECT
                        ATP_level
                        ,scenario_id
                        ,inventory_item_id
                        ,request_item_id
                        ,organization_id
                        ,supplier_id
                        ,supplier_site_id
                        ,department_id
                        ,resource_id
                        ,trunc(original_demand_date) supply_demand_date --Bug_3693892 added trunc
                        ,identifier1
                        ,identifier2
                        ,original_demand_quantity demand_quantity
                        ,0 bucketed_demand_quantity
                        ,0 supply_quantity
                        ,0 period_quantity
                FROM    msc_atp_sd_details_temp
                WHERE   supply_demand_type = 1
                AND     pf_display_flag = 1
                AND     trunc(supply_demand_date) <> trunc(original_demand_date) --Bug_3693892 added trunc
        ) SD_View
        GROUP BY
                SD_View.supply_demand_date
                ,SD_View.ATP_level
                ,SD_View.scenario_id
                ,SD_View.inventory_item_id
                ,SD_View.request_item_id
                ,SD_View.organization_id
                ,SD_View.supplier_id
                ,SD_View.supplier_site_id
                ,SD_View.department_id
                ,SD_View.resource_id
                ,SD_View.identifier1
                ,SD_View.identifier2
        ORDER BY
                SD_View.supply_demand_date;
Line: 7980

        SELECT  SD_View.ATP_level
                ,SD_View.scenario_id
                ,SD_View.inventory_item_id
                ,SD_View.request_item_id
                ,SD_View.organization_id
                ,SD_View.supplier_id
                ,SD_View.supplier_site_id
                ,SD_View.department_id
                ,SD_View.resource_id
                ,SD_View.supply_demand_date
                ,SD_View.identifier1
                ,SD_View.identifier2
                ,SUM(SD_View.demand_quantity)
                ,SUM(SD_View.bucketed_demand_quantity)
                ,SUM(SD_View.supply_quantity)
                ,SUM(SD_View.period_quantity)
                ,SUM(SD_View.unallocated_quantity)
        BULK COLLECT INTO
                x_atp_period.Level,
                x_atp_period.Scenario_Id,
                x_atp_period.Inventory_Item_Id,
                x_atp_period.Request_Item_Id,
                x_atp_period.Organization_id,
                x_atp_period.Supplier_ID,
                x_atp_period.Supplier_Site_ID,
                x_atp_period.Department_id,
                x_atp_period.Resource_id,
                x_atp_period.Period_Start_Date,
                x_atp_period.Identifier1,
                x_atp_period.Identifier2,
                x_atp_period.Total_Demand_Quantity,
                x_atp_period.Total_Bucketed_Demand_Quantity,
                x_atp_period.Total_Supply_Quantity,
                x_atp_period.Period_Quantity,
                p_unallocated_atp.atp_qty
        FROM (
                SELECT  ATP_level
                        ,scenario_id
                        ,inventory_item_id
                        ,request_item_id
                        ,organization_id
                        ,supplier_id
                        ,supplier_site_id
                        ,department_id
                        ,resource_id
                        ,trunc(supply_demand_date) supply_demand_date --Bug_3693892 added trunc
                        ,identifier1
                        ,identifier2
                        ,DECODE(supply_demand_type, 1,
                                 DECODE(pf_display_flag, 1,
                                        --Bug_3693892 added trunc
                                        DECODE(trunc(original_demand_date), trunc(supply_demand_date),
                                               original_demand_quantity, 0),
                                        0),
                                 0) demand_quantity
                        ,DECODE(supply_demand_type, 1,
                                 allocated_quantity,
                                 0) bucketed_demand_quantity
                        ,DECODE(supply_demand_type, 2,
                                 allocated_quantity,
                                 0) supply_quantity
                        ,allocated_quantity period_quantity
                        ,unallocated_quantity
                FROM    msc_atp_sd_details_temp

                UNION ALL

                SELECT
                        ATP_level
                        ,scenario_id
                        ,inventory_item_id
                        ,request_item_id
                        ,organization_id
                        ,supplier_id
                        ,supplier_site_id
                        ,department_id
                        ,resource_id
                        ,trunc(original_demand_date) supply_demand_date --Bug_3693892 added trunc
                        ,identifier1
                        ,identifier2
                        ,original_demand_quantity demand_quantity
                        ,0 bucketed_demand_quantity
                        ,0 supply_quantity
                        ,0 period_quantity
                        ,0 unallocated_quantity
                FROM    msc_atp_sd_details_temp
                WHERE   supply_demand_type = 1
                AND     pf_display_flag = 1
                AND     trunc(supply_demand_date) <> trunc(original_demand_date) --Bug_3693892 added trunc
        ) SD_View
        GROUP BY
                SD_View.supply_demand_date
                ,SD_View.ATP_level
                ,SD_View.scenario_id
                ,SD_View.inventory_item_id
                ,SD_View.request_item_id
                ,SD_View.organization_id
                ,SD_View.supplier_id
                ,SD_View.supplier_site_id
                ,SD_View.department_id
                ,SD_View.resource_id
                ,SD_View.identifier1
                ,SD_View.identifier2
        ORDER BY
                SD_View.supply_demand_date;
Line: 8143

                SELECT
                        final.col1,
                        final.col2,
                        SUM(final.col3),
                        SUM(final.col4),
                        SUM(final.col5),
                        SUM(final.col6),
                        SUM(final.col7),
                        SUM(final.col8),
                        p_inv_item_id,
                        p_org_id,
                        p_instance_id,
                        p_scenario_id,
                        p_level_id,
                        null,           -- Initialize period end date with null
                        0,              -- Initialize backward_forward_quantity with 0
                        0               -- Initialize cumulative quantity with 0
                BULK COLLECT INTO
                        x_atp_period.Demand_Class,
                        x_atp_period.Period_Start_Date,
                        x_atp_period.Allocated_Supply_Quantity,
                        x_atp_period.Supply_Adjustment_Quantity,
                        x_atp_period.Total_Supply_Quantity,
                        x_atp_period.Total_Demand_Quantity,
                        x_atp_period.Total_Bucketed_Demand_Quantity,
                        x_atp_period.Period_Quantity,
                        x_atp_period.Inventory_Item_Id,
                        x_atp_period.Organization_Id,
                        x_atp_period.Identifier1,
                        x_atp_period.Scenario_Id,
                        x_atp_period.Level,
                        x_atp_period.Period_End_Date,
                        x_atp_period.Backward_Forward_Quantity,
                        x_atp_period.Cumulative_Quantity
                FROM
                (
                SELECT DEMAND_CLASS                                                     col1, --Bug_3693892 added trunc
                        trunc(SUPPLY_DEMAND_DATE)                                              col2,
                        DECODE(SUPPLY_DEMAND_TYPE, 2,
                                DECODE(ORIGINAL_SUPPLY_DEMAND_TYPE,
                                                48, 0,
                                                ALLOCATED_QUANTITY),
                                0)                                                      col3, -- Allocated Supply Quantity
                        DECODE(SUPPLY_DEMAND_TYPE, 2,
                                DECODE(ORIGINAL_SUPPLY_DEMAND_TYPE,
                                                48,  ALLOCATED_QUANTITY,
                                                0),
                                0)                                                      col4, -- Supply Adjustment Quantity
                        DECODE(SUPPLY_DEMAND_TYPE, 2, ALLOCATED_QUANTITY, 0)            col5, -- Total Supply
                        DECODE(SUPPLY_DEMAND_TYPE, 1,
                                  DECODE(PF_DISPLAY_FLAG, 1,
                                    --Bug_3693892 added trunc
                                    DECODE(trunc(ORIGINAL_DEMAND_DATE), trunc(SUPPLY_DEMAND_DATE),
                                       ORIGINAL_DEMAND_QUANTITY, 0),
                                  0),
                               0)                                                       col6, -- Total Demand
                        DECODE(SUPPLY_DEMAND_TYPE, 1, ALLOCATED_QUANTITY, 0)            col7, -- Total Bucketed Demand
                        ALLOCATED_QUANTITY                                              col8  -- Period Quantity
                FROM
                        MRP_ATP_DETAILS_TEMP
                WHERE
                        SESSION_ID = p_session_id
                        AND RECORD_TYPE = p_record_type

                UNION ALL

                SELECT DEMAND_CLASS                                                     col1,
                       trunc(ORIGINAL_DEMAND_DATE)                                      col2, --Bug_3693892 added trunc
                        0                                                               col3, -- Allocated Supply Quantity
                        0                                                               col4, -- Supply Adjustment Quantity
                        0                                                               col5, -- Total Supply
                        ORIGINAL_DEMAND_QUANTITY                                        col6, -- Total Demand
                        0                                                               col7, -- Total Bucketed Demand
                        0                                                               col8  -- Period Quantity
                FROM
                        MRP_ATP_DETAILS_TEMP
                WHERE
                        SESSION_ID = p_session_id
                        AND RECORD_TYPE = p_record_type
                        AND SUPPLY_DEMAND_TYPE = 1
                        AND PF_DISPLAY_FLAG = 1
                        AND trunc(SUPPLY_DEMAND_DATE) <> trunc(ORIGINAL_DEMAND_DATE) --Bug_3693892 added trunc
                ) final
                GROUP BY
                        final.col1,
                        final.col2,
                        p_inv_item_id,
                        p_org_id,
                        p_instance_id,
                        p_scenario_id,
                        p_level_id
                ORDER BY
                        final.col1,
                        final.col2
                        ;
Line: 8239

                SELECT
                        final.col1,
                        final.col2,
                        SUM(final.col3),
                        SUM(final.col4),
                        SUM(final.col5),
                        SUM(final.col6),
                        p_inv_item_id,
                        p_org_id,
                        p_instance_id,
                        p_scenario_id,
                        p_level_id,
                        null,
                        0,
                        0,
                        final.col7,
                        SUM(final.col8),
                        SUM(final.col9),
                        SUM(final.col10),
                        SUM(final.col11),
                        final.col12
                BULK COLLECT INTO
                        x_atp_period.Demand_Class,
                        x_atp_period.Period_Start_Date,
                        x_atp_period.Total_Supply_Quantity,
                        x_atp_period.Total_Demand_Quantity,
                        x_atp_period.Total_Bucketed_Demand_Quantity,
                        x_atp_period.Period_Quantity,
                        x_atp_period.Inventory_Item_Id,
                        x_atp_period.Organization_Id,
                        x_atp_period.Identifier1,
                        x_atp_period.Scenario_Id,
                        x_atp_period.Level,
                        x_atp_period.Period_End_Date,
                        x_atp_period.Cumulative_Quantity,
                        x_atp_period.Demand_Adjustment_Quantity,
                        x_atp_period.Identifier2,
                        x_atp_period.Unallocated_Supply_Quantity,
                        x_atp_period.Unallocated_Demand_Quantity,
                        x_atp_period.Unalloc_Bucketed_Demand_Qty,
                        x_atp_period.Unallocated_Net_Quantity,
                        x_atp_period.Identifier4
                FROM
                (
                SELECT  DEMAND_CLASS                                                    col1,
                        trunc(SUPPLY_DEMAND_DATE)                                       col2, --Bug_3693892 added trunc
                        DECODE(SUPPLY_DEMAND_TYPE, 2, ALLOCATED_QUANTITY, 0)            col3,
                        DECODE(SUPPLY_DEMAND_TYPE, 1,
                                  DECODE(PF_DISPLAY_FLAG, 1,
                                    --Bug_3693892 added trunc
                                    DECODE(trunc(ORIGINAL_DEMAND_DATE), trunc(SUPPLY_DEMAND_DATE),
                                       ORIGINAL_DEMAND_QUANTITY, 0),
                                  0),
                               0)                                                       col4, -- Total Demand
                        DECODE(SUPPLY_DEMAND_TYPE, 1, ALLOCATED_QUANTITY, 0)            col5, -- Total Bucketed Demand
                        ALLOCATED_QUANTITY                                              col6,
                        IDENTIFIER2                                                     col7,
                        DECODE(SUPPLY_DEMAND_TYPE, 2, UNALLOCATED_QUANTITY, 0)          col8,
                        DECODE(SUPPLY_DEMAND_TYPE, 1,
                                  DECODE(PF_DISPLAY_FLAG, 1,
                                    --Bug_3693892 added trunc
                                    DECODE(trunc(ORIGINAL_DEMAND_DATE), trunc(SUPPLY_DEMAND_DATE),
                                       SUPPLY_DEMAND_QUANTITY, 0),
                                  0),
                               0)                                                       col9,  -- Unallocated Demand
                        DECODE(SUPPLY_DEMAND_TYPE, 1, UNALLOCATED_QUANTITY, 0)          col10, -- Unallocated Bucketed Demand
                        UNALLOCATED_QUANTITY                                            col11, -- Unallocated Net
                        IDENTIFIER4                                                     col12
                FROM    MRP_ATP_DETAILS_TEMP
                WHERE   SESSION_ID = p_session_id
                AND     RECORD_TYPE = p_record_type

                UNION ALL

                SELECT  DEMAND_CLASS                                                    col1,
                        trunc(ORIGINAL_DEMAND_DATE)                                     col2, --Bug_3693892 added trunc
                        0                                                               col3,
                        ORIGINAL_DEMAND_QUANTITY                                        col4,  -- Total Demand
                        0                                                               col5,
                        0                                                               col6,
                        IDENTIFIER2                                                     col7,
                        0                                                               col8,  -- Period Quantity
                        SUPPLY_DEMAND_QUANTITY                                          col9,
                        0                                                               col10,
                        0                                                               col11,
                        IDENTIFIER4                                                     col12
                FROM
                        MRP_ATP_DETAILS_TEMP
                WHERE
                        SESSION_ID = p_session_id
                        AND RECORD_TYPE = p_record_type
                        AND SUPPLY_DEMAND_TYPE = 1
                        AND PF_DISPLAY_FLAG = 1
                        AND trunc(SUPPLY_DEMAND_DATE) <> trunc(ORIGINAL_DEMAND_DATE) --Bug_3693892 added trunc
                ) final
                GROUP BY
                        final.col1,
                        final.col2,
                        p_inv_item_id,
                        p_org_id,
                        p_instance_id,
                        p_scenario_id,
                        p_level_id,
                        final.col7,
                        final.col12
                ORDER BY
                        final.col7 asc,
                        final.col12 desc,
                        final.col1 asc,
                        final.col2
                        ;
Line: 8351

                SELECT
                        final.col1,
                        final.col2,
                        SUM(final.col3),
                        SUM(final.col4),
                        SUM(final.col5),
                        SUM(final.col6),
                        p_inv_item_id,
                        p_org_id,
                        p_instance_id,
                        p_scenario_id,
                        p_level_id,
                        null,
                        0,
                        0,
                        final.col7,
                        final.col8,
                        final.col9,
                        final.col10,
                        SUM(final.col11),
                        SUM(final.col12),
                        SUM(final.col13),
                        SUM(final.col14),
                        final.col15
                BULK COLLECT INTO
                        x_atp_period.Demand_Class,
                        x_atp_period.Period_Start_Date,
                        x_atp_period.Total_Supply_Quantity,
                        x_atp_period.Total_Demand_Quantity,
                        x_atp_period.Total_Bucketed_Demand_Quantity,
                        x_atp_period.Period_Quantity,
                        x_atp_period.Inventory_Item_Id,
                        x_atp_period.Organization_Id,
                        x_atp_period.Identifier1,
                        x_atp_period.Scenario_Id,
                        x_atp_period.Level,
                        x_atp_period.Period_End_Date,
                        x_atp_period.Cumulative_Quantity,
                        x_atp_period.Demand_Adjustment_Quantity,
                        x_atp_period.Identifier2,
                        x_atp_period.Identifier4,
                        x_atp_period.Class,
                        x_atp_period.Customer_Id,
                        x_atp_period.Unallocated_Supply_Quantity,
                        x_atp_period.Unallocated_Demand_Quantity,
                        x_atp_period.Unalloc_Bucketed_Demand_Qty,
                        x_atp_period.Unallocated_Net_Quantity,
                        x_atp_period.Customer_Site_Id
                FROM
                (
                SELECT  DEMAND_CLASS                                                    col1,  --Bug_3693892 added trunc
                        trunc(SUPPLY_DEMAND_DATE)                                              col2,
                        DECODE(SUPPLY_DEMAND_TYPE, 2, ALLOCATED_QUANTITY, 0)            col3,
                        DECODE(SUPPLY_DEMAND_TYPE, 1,
                                  DECODE(PF_DISPLAY_FLAG, 1,
                                    --Bug_3693892 added trunc
                                    DECODE(trunc(ORIGINAL_DEMAND_DATE), trunc(SUPPLY_DEMAND_DATE),
                                       ORIGINAL_DEMAND_QUANTITY, 0),
                                  0),
                               0)                                                       col4, -- Total Demand
                        DECODE(SUPPLY_DEMAND_TYPE, 1, ALLOCATED_QUANTITY, 0)            col5, -- Total Bucketed Demand
                        ALLOCATED_QUANTITY                                              col6,
                        IDENTIFIER2                                                     col7,
                        IDENTIFIER4                                                     col8,
                        CLASS                                                           col9,
                        CUSTOMER_ID                                                     col10,
                        DECODE(SUPPLY_DEMAND_TYPE, 2, UNALLOCATED_QUANTITY, 0)          col11,
                        DECODE(SUPPLY_DEMAND_TYPE, 1,
                                  DECODE(PF_DISPLAY_FLAG, 1,
                                    --Bug_3693892 added trunc
                                    DECODE(trunc(ORIGINAL_DEMAND_DATE), trunc(SUPPLY_DEMAND_DATE),
                                       SUPPLY_DEMAND_QUANTITY, 0),
                                  0),
                               0)                                                       col12, -- Unallocated Demand
                        DECODE(SUPPLY_DEMAND_TYPE, 1, UNALLOCATED_QUANTITY, 0)          col13, -- Unallocated Bucketed Demand
                        UNALLOCATED_QUANTITY                                            col14, -- Unallocated Net
                        CUSTOMER_SITE_ID                                                col15
                FROM    MRP_ATP_DETAILS_TEMP
                WHERE   SESSION_ID = p_session_id
                AND     RECORD_TYPE = p_record_type

                UNION ALL

                SELECT  DEMAND_CLASS                                                    col1,
                        trunc(ORIGINAL_DEMAND_DATE)                                     col2, --Bug_3693892 added trunc
                        0                                                               col3,
                        ORIGINAL_DEMAND_QUANTITY                                        col4,  -- Total Demand
                        0                                                               col5,
                        0                                                               col6,
                        IDENTIFIER2                                                     col7,
                        IDENTIFIER4                                                     col8,
                        CLASS                                                           col9,
                        CUSTOMER_ID                                                     col10,
                        0                                                               col11,
                        SUPPLY_DEMAND_QUANTITY                                          col12,
                        0                                                               col13,
                        0                                                               col14,
                        CUSTOMER_SITE_ID                                                col15
                FROM
                        MRP_ATP_DETAILS_TEMP
                WHERE
                        SESSION_ID = p_session_id
                        AND RECORD_TYPE = p_record_type
                        AND SUPPLY_DEMAND_TYPE = 1
                        AND PF_DISPLAY_FLAG = 1
                        AND trunc(SUPPLY_DEMAND_DATE) <> trunc(ORIGINAL_DEMAND_DATE)  --Bug_3693892 added trunc
                ) final
                GROUP BY
                        final.col1,
                        final.col2,
                        p_inv_item_id,
                        p_org_id,
                        p_instance_id,
                        p_scenario_id,
                        p_level_id,
                        final.col7,
                        final.col8,
                        final.col9,
                        final.col10,
                        final.col15
                ORDER BY
                        trunc(final.col7,-3),        -- Customer class priority
                        final.col9,                  -- Customer class
                        trunc(final.col7,-2),        -- Customer priority
                        final.col10,                 -- Customer
                        final.col7,                  -- Customer site priority
                        final.col15,
                        final.col2
                        ;
Line: 8515

        SELECT  DECODE(i2.bom_item_type,
                  5, DECODE(i2.atp_flag,
                     'N', i1.sr_inventory_item_id,
                     i2.sr_inventory_item_id),
                  i1.sr_inventory_item_id
                )
        INTO    l_pf_atp_item_id
        FROM    msc_system_items i2,
                msc_system_items i1
        WHERE   i1.sr_inventory_item_id = p_inventory_item_id
        AND     i1.organization_id = p_organization_id
        AND     i1.plan_id = p_plan_id
        AND     i1.sr_instance_id = p_instance_id
        AND     i2.inventory_item_id = DECODE(i1.product_family_id,
                                              NULL, i1.inventory_item_id,
                                              -23453, i1.inventory_item_id,
                                              i1.product_family_id)
        AND     i2.organization_id = i1.organization_id
        AND     i2.sr_instance_id = i1.sr_instance_id
        AND     i2.plan_id = i1.plan_id;
Line: 8571

        SELECT i.aggregate_time_fence_date
        INTO   l_atf_date
        FROM   msc_system_items i
        WHERE  i.plan_id = p_plan_id
        AND    i.sr_instance_id = p_instance_id
        AND    i.organization_id = p_organization_id
        AND    i.sr_inventory_item_id = p_inventory_item_id;
Line: 8612

        SELECT  DECODE(r.aggregate_time_fence_code,
                        1, NULL,
                        2, i2.demand_time_fence_days,
                        3, i2.planning_time_fence_days,
                        4, r.aggregate_time_fence
                      )
        INTO    l_atf_days
        FROM    msc_system_items i2,
                msc_system_items i1,
                msc_atp_rules r,
                msc_trading_partners tp
        WHERE   i1.inventory_item_id = p_inventory_item_id
        AND     i1.organization_id = p_organization_id
        AND     i1.plan_id = -1
        AND     i1.sr_instance_id = p_instance_id
        AND     i2.inventory_item_id = NVL(i1.product_family_id,
                                              i1.inventory_item_id)
        AND     i2.organization_id = i1.organization_id
        AND     i2.sr_instance_id = i1.sr_instance_id
        AND     i2.plan_id = i1.plan_id
        AND     i2.bom_item_type = 5
        AND     i2.atp_flag = 'Y'
        AND     tp.sr_tp_id = i2.organization_id
        AND     tp.sr_instance_id = i2.sr_instance_id
        AND     tp.partner_type = 3
        AND     r.sr_instance_id = tp.sr_instance_id
        AND     r.rule_id = NVL(i2.atp_rule_id, tp.default_atp_rule_id);
Line: 8686

        SELECT DECODE(i2.bom_item_type,
                 5, DECODE(i2.atp_flag,
                     'N', i1.inventory_item_id,
                     i2.inventory_item_id),
                 i1.inventory_item_id
               ),
               DECODE(i2.bom_item_type,
                 5, DECODE(i2.atp_flag,
                     'N', i1.sr_inventory_item_id,
                     i2.sr_inventory_item_id),
                 i1.sr_inventory_item_id
               ),
               i1.aggregate_time_fence_date,
               i2.item_name --bug3700564
        INTO   p_family_id,
               p_sr_family_id,
               p_atf_date,
               p_family_name --bug3700564
        FROM   msc_system_items i2,
               msc_system_items i1
        WHERE  i1.inventory_item_id = p_inventory_item_id
        AND    i1.organization_id = p_organization_id
        AND    i1.plan_id = p_plan_id
        AND    i1.sr_instance_id = p_instance_id
        AND    i2.inventory_item_id = DECODE(i1.product_family_id,
                                             NULL, i1.inventory_item_id,
                                             -23453, i1.inventory_item_id,
                                             i1.product_family_id)
        AND    i2.organization_id = i1.organization_id
        AND    i2.sr_instance_id = i1.sr_instance_id
        AND    i2.plan_id = i1.plan_id;
Line: 8727

	SELECT i1.inventory_item_id,
	       i1.sr_inventory_item_id,
	       i1.aggregate_time_fence_date,
               i1.item_name
        INTO   p_family_id,
               p_sr_family_id,
               p_atf_date,
               p_family_name
        FROM   msc_system_items i1
        WHERE  i1.inventory_item_id = p_inventory_item_id
        AND    i1.organization_id = p_organization_id
        AND    i1.plan_id = p_plan_id
        AND    i1.sr_instance_id = p_instance_id;
Line: 8756

|  o  Logic to select plan is as follows:
|       -
+---------------------------------------------------------------------------*/
PROCEDURE Get_PF_Plan_Info(
        p_instance_id	        IN      NUMBER,
        p_member_item_id        IN      NUMBER,
        p_family_item_id        IN      NUMBER,
        p_org_id                IN      NUMBER,
        p_demand_class          IN      VARCHAR2,
        p_atf_date              OUT     NOCOPY DATE,
        p_error_code            OUT     NOCOPY NUMBER,
        x_return_status         OUT     NOCOPY VARCHAR2,
        p_parent_plan_id        IN      NUMBER DEFAULT NULL --bug3510475
) IS
        -- local variables


BEGIN
        IF PG_DEBUG in ('Y', 'C') THEN
                msc_sch_wb.atp_debug('*********Begin procedure Get_PF_Plan_Info ********');
Line: 8916

        SELECT  c2.calendar_date,i2.organization_id,i2.sr_instance_id,i2.inventory_item_id
        BULK COLLECT INTO   l_atf_date,l_organization_id,l_sr_instance_id,l_inventory_item_id
        FROM    msc_plans mp,
                msc_plan_organizations po,
                msc_system_items i2,
                msc_trading_partners tp,
                msc_atp_rules r,
                msc_calendar_dates c1,
            	msc_calendar_dates c2
        WHERE   mp.plan_id = p_plan_id
        AND	po.plan_id = mp.plan_id
        AND	i2.organization_id = po.organization_id
        AND     i2.sr_instance_id = po.sr_instance_id
        AND     i2.plan_id = po.plan_id
        AND     i2.bom_item_type = 5
        AND     i2.atp_flag = 'Y'
        AND     tp.sr_tp_id = i2.organization_id
        AND     tp.sr_instance_id = i2.sr_instance_id
        AND     tp.partner_type = 3
        AND     r.sr_instance_id = tp.sr_instance_id
        AND     r.rule_id = NVL(i2.atp_rule_id, tp.default_atp_rule_id)
        AND     c1.sr_instance_id = r.sr_instance_id
        AND     c1.calendar_date = trunc(mp.plan_start_date)
        AND     c1.calendar_code = tp.calendar_code
        AND     c1.exception_set_id = -1
        AND     c2.sr_instance_id = c1.sr_instance_id
        AND     c2.seq_num = c1.next_seq_num +
                                        DECODE(r.aggregate_time_fence_code,
                                                1, NULL,
                                                2, i2.demand_time_fence_days,
                                                3, i2.planning_time_fence_days,
                                                4, r.aggregate_time_fence
                                              )
        AND    c2.calendar_code = c1.calendar_code
        AND    c2.exception_set_id = -1;
Line: 8959

         UPDATE  msc_system_items i
         SET     aggregate_time_fence_date = l_atf_date(j)
         WHERE   i.plan_id = p_plan_id
         AND     i.ORGANIZATION_ID = l_organization_id(j)
         AND     i.SR_INSTANCE_ID = l_sr_instance_id(j)
         AND     i.inventory_item_id = l_inventory_item_id(j);
Line: 8967

         UPDATE  msc_system_items i
         SET     aggregate_time_fence_date = l_atf_date(k)
         WHERE   i.plan_id = p_plan_id
         AND     i.ORGANIZATION_ID = l_organization_id(k)
         AND     i.SR_INSTANCE_ID = l_sr_instance_id(k)
         AND     i.product_family_id = l_inventory_item_id(k);
Line: 8982

        UPDATE  msc_system_items i
        SET     aggregate_time_fence_date =
                       (SELECT  c2.calendar_date
                        FROM    msc_calendar_dates c2,
                                msc_calendar_dates c1,
                                msc_atp_rules r,
                                msc_trading_partners tp,
                                msc_plans mp,
                                msc_system_items i2
                        WHERE   i2.inventory_item_id = i.inventory_item_id
                        AND     i2.organization_id = i.organization_id
                        AND     i2.sr_instance_id = i.sr_instance_id
                        AND     i2.plan_id = -1
                        AND     tp.sr_tp_id = i2.organization_id
                        AND     tp.sr_instance_id = i2.sr_instance_id
                        AND     tp.partner_type = 3
                        AND     mp.plan_id = p_plan_id
                        AND     r.sr_instance_id = tp.sr_instance_id
                        AND     r.rule_id = NVL(i2.atp_rule_id, tp.default_atp_rule_id)
                        AND     c1.sr_instance_id = r.sr_instance_id
                        AND     c1.calendar_date = mp.plan_start_date
                        AND     c1.calendar_code = tp.calendar_code
                        AND     c1.exception_set_id = -1
                        AND     c2.sr_instance_id = c1.sr_instance_id
                        AND     c2.seq_num = c1.next_seq_num +
                                        DECODE(r.aggregate_time_fence_code,
                                                1, NULL,
                                                2, i2.demand_time_fence_days,
                                                3, i2.planning_time_fence_days,
                                                4, r.aggregate_time_fence
                                              )
                        AND    c2.calendar_code = c1.calendar_code
                        AND    c2.exception_set_id = -1
                       )
        WHERE   i.plan_id = p_plan_id
        AND     i.bom_item_type = 5
        AND     i.atp_flag = 'Y';
Line: 9021

        UPDATE  msc_system_items i
        SET     aggregate_time_fence_date =
                       (SELECT  i2.aggregate_time_fence_date
                        FROM    msc_system_items i2
                        WHERE   i2.inventory_item_id = i.product_family_id
                        AND     i2.sr_instance_id = i.sr_instance_id
                        AND     i2.organization_id = i.organization_id
                        AND     i2.plan_id = i.plan_id
                        AND     i2.aggregate_time_fence_date is not null
                       )
        WHERE   i.plan_id = p_plan_id
        AND     i.inventory_item_id <> DECODE(i.product_family_id,
                                              NULL, i.inventory_item_id,
                                              -23453, i.inventory_item_id,
                                              i.product_family_id)
        AND     i.bom_item_type <> 5
        AND     i.atp_flag = 'Y'
        AND     EXISTS (SELECT  1
                        FROM    msc_system_items i2
                        WHERE   i2.inventory_item_id = i.product_family_id
                        AND     i2.sr_instance_id = i.sr_instance_id
                        AND     i2.organization_id = i.organization_id
                        AND     i2.plan_id = i.plan_id
                        AND     i2.aggregate_time_fence_date is not null
                       );
Line: 9085

        l_insert_stmt                   VARCHAR2(8000);
Line: 9115

        insert into msc_alloc_temp(
                transaction_id,
                demand_class,
                supply_demand_quantity
        )
        (select sup.transaction_id,
                decode(d1.inventory_item_id, NULL, '-2', d1.demand_class),
                sum(peg1.allocated_quantity)
         from
                (select /*+ NO_MERGE */ distinct d.disposition_id transaction_id --13021736 perf issue
                 from   msc_demands d,
                        msc_system_items msi
                 where  msi.plan_id = p_plan_id
                 and    msi.bom_item_type <> 5
                 and    NVL(msi.product_family_id, -23453) <> -23453 -- Bug 3629191
                 --and    msi.product_family_id is not null
                 and    msi.atp_flag = 'Y'
                 and    d.inventory_item_id = msi.inventory_item_id
                 and    d.organization_id = msi.organization_id
                 and    d.sr_instance_id = msi.sr_instance_id
                 and    d.plan_id = msi.plan_id
                 and    d.origination_type = 22
                ) sup,
                msc_full_pegging peg1,
                msc_demands d1
         where  peg1.plan_id = p_plan_id
         and    peg1.pegging_id = peg1.end_pegging_id
         and    peg1.transaction_id = sup.transaction_id
         and    d1.plan_id (+) = peg1.plan_id
         and    d1.inventory_item_id (+) = peg1.inventory_item_id
         and    d1.organization_id (+) = peg1.organization_id
         and    d1.sr_instance_id (+) = peg1.sr_instance_id
         and    d1.demand_id (+) = peg1.demand_id
         and    d1.origination_type (+) not in (6, 10, 30)
         group by
                sup.transaction_id,
                decode(d1.inventory_item_id, NULL, '-2', d1.demand_class)
        );
Line: 9156

       /* update msc_alloc_temp mat1
        set    mat1.allocation_percent =
                        mat1.supply_demand_quantity/(select sum(mat2.supply_demand_quantity)
                                                     from   msc_alloc_temp mat2
                                                     where  mat2.transaction_id = mat1.transaction_id
                                                     ); */
Line: 9162

        update msc_alloc_temp mat1
        set    mat1.allocation_percent =
                        (select mat1.supply_demand_quantity/sum(mat2.supply_demand_quantity)
                          from   msc_alloc_temp mat2
                          where  mat2.transaction_id = mat1.transaction_id
                          );
Line: 9203

|  o  Calls private procedure Update_Pf_Display_Flag procedure to update
|       Pf_Display_Flag to handle scenario when a demand on one side of ATF is
|       satisfied totally from supplies on the other side of ATF.
+-----------------------------------------------------------------------------------*/
PROCEDURE Pf_Post_Plan_Proc(
	ERRBUF                          OUT     NOCOPY VARCHAR2,
	RETCODE                         OUT     NOCOPY NUMBER,
	p_plan_id                       IN 	NUMBER,
	p_demand_priority               IN      VARCHAR2
)
IS
        -- local variables
        G_ERROR				NUMBER := 1;
Line: 9235

        l_insert_stmt                   VARCHAR2(8000);
Line: 9287

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

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

                SELECT count(*)
                INTO   l_count
                FROM   all_tab_partitions
                WHERE  table_name = l_table_name
                AND    partition_name = l_partition_name
                AND    table_owner = l_msc_schema;
Line: 9347

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

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

                SELECT  t.tablespace_name, NVL(i.def_tablespace_name, t.tablespace_name)
                INTO    l_tbspace, l_ind_tbspace
                FROM    all_tab_partitions t,
                        all_part_indexes i
                WHERE   t.table_owner = l_msc_schema
                AND     t.table_name = 'MSC_ALLOC_DEMANDS'
                AND     t.partition_name = 'ALLOC_DEMANDS_' || to_char(l_plan_id)
                AND     i.owner (+) = t.table_owner
                AND     i.table_name (+) = t.table_name
                AND     rownum = 1;
Line: 9413

                l_insert_stmt := 'CREATE TABLE ' || l_alloc_temp_table || '(
                                     PEGGING_ID             NUMBER,
                                     DEMAND_CLASS           VARCHAR2(30),
                                     ALLOCATION_PERCENT     NUMBER)
                                  TABLESPACE ' || l_tbspace || '
                                  PCTFREE 0 STORAGE(INITIAL 40K NEXT 5M PCTINCREASE 0)';
Line: 9426

                        STATEMENT => l_insert_stmt,
                        OBJECT_NAME => l_alloc_temp_table);
Line: 9447

                             STATEMENT => l_insert_stmt,
                             OBJECT_NAME => l_alloc_temp_table);
Line: 9464

                l_insert_stmt := 'insert into '|| l_alloc_temp_table ||'(
                                        pegging_id,
                                        demand_class,
                                        allocation_percent
                                )
                                (select peg1.pegging_id,
                                        :l_excess_dc,
                                        1
                                 from   msc_full_pegging peg1
                                 where  peg1.plan_id = :p_plan_id
                                 and    peg1.pegging_id = peg1.end_pegging_id
                                 and    peg1.demand_id in (-1, -2)

                                 UNION ALL

                                 select peg1.pegging_id,
                                        decode(mat.transaction_id, NULL, d.demand_class,
                                                                   mat.demand_class),
                                        decode(mat.transaction_id, NULL, 1,
                                                                   mat.allocation_percent)
                                 from   msc_full_pegging peg1,
                                        msc_demands d,
                                        msc_alloc_temp mat
                                 where  peg1.plan_id = :p_plan_id
                                 and    peg1.pegging_id = peg1.end_pegging_id
                                 and    peg1.demand_id = d.demand_id
                                 and    peg1.plan_id = d.plan_id
                                 and    d.disposition_id = mat.transaction_id (+)
                                )';
Line: 9494

                msc_util.msc_log(l_insert_stmt);
Line: 9500

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

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

           DELETE MSC_ALLOC_DEMANDS where plan_id = p_plan_id;
Line: 9550

           DELETE MSC_ALLOC_SUPPLIES where plan_id = p_plan_id;
Line: 9593

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

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

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

                   SELECT  t.tablespace_name, NVL(i.def_tablespace_name, t.tablespace_name)
        	   INTO    l_tbspace, l_ind_tbspace
                   FROM    all_tab_partitions t,
                           all_part_indexes i
                   WHERE   t.table_owner = l_msc_schema
                   AND     t.table_name = 'MSC_ALLOC_DEMANDS'
        	   AND     t.partition_name = 'ALLOC_DEMANDS_' || to_char(l_plan_id)
                   AND     i.owner (+) = t.table_owner
                   AND     i.table_name (+) = t.table_name
                   AND     rownum = 1;
Line: 9675

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

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

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

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

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

           SELECT  t.tablespace_name, NVL(i.def_tablespace_name, t.tablespace_name)
           INTO    l_tbspace, l_ind_tbspace
           FROM    all_tab_partitions t,
                   all_part_indexes i
           WHERE   t.table_owner = l_msc_schema
           AND     t.table_name = 'MSC_ALLOC_SUPPLIES'
           AND     t.partition_name = 'ALLOC_SUPPLIES_' || to_char(l_plan_id)
           AND     i.owner (+) = t.table_owner
           AND     i.table_name (+) = t.table_name
           AND     rownum = 1;
Line: 9860

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

           l_insert_stmt := 'CREATE TABLE ' || l_temp_table || '(
                                 PLAN_ID                    NUMBER           NOT NULL,
                                 INVENTORY_ITEM_ID          NUMBER           NOT NULL,
                                 ORGANIZATION_ID            NUMBER           NOT NULL,
                                 SR_INSTANCE_ID             NUMBER           NOT NULL,
                                 DEMAND_CLASS               VARCHAR2(30)      ,  --bug3272444
                                 SUPPLY_DATE                DATE             NOT NULL,
                                 PARENT_TRANSACTION_ID      NUMBER           NOT NULL,
                                 ALLOCATED_QUANTITY         NUMBER           NOT NULL,
                                 ORDER_TYPE                 NUMBER           NOT NULL,
                                 ORDER_NUMBER               VARCHAR2(240),
				 SCHEDULE_DESIGNATOR_ID	    NUMBER,
                                 SALES_ORDER_LINE_ID        NUMBER,
                                 OLD_SUPPLY_DATE            DATE,
                                 OLD_ALLOCATED_QUANTITY     NUMBER,
				 STEALING_FLAG		    NUMBER,
                                 CREATED_BY                 NUMBER           NOT NULL,
                                 CREATION_DATE              DATE             NOT NULL,
                                 LAST_UPDATED_BY            NUMBER           NOT NULL,
                                 LAST_UPDATE_DATE           DATE             NOT NULL,
                                 FROM_DEMAND_CLASS          VARCHAR2(80),
                                 SUPPLY_QUANTITY            NUMBER,
                                 ORIGINAL_ORDER_TYPE        NUMBER,         --bug3272444
                                 ORIGINAL_ITEM_ID           NUMBER,         --bug3272444
                                 CUSTOMER_ID                NUMBER,
                                 SHIP_TO_SITE_ID            NUMBER,
                                 REFRESH_NUMBER             NUMBER,        --bug3272444
                                 OLD_REFRESH_NUMBER         NUMBER,        --bug3272444
                                 ATO_MODEL_LINE_ID          NUMBER,
                               --ATO_MODEL_LINE_ID          NUMBER)        --
                                 DEMAND_SOURCE_TYPE         NUMBER)        --cmro
                                  TABLESPACE ' || l_tbspace || '
                            PCTFREE 0 STORAGE(INITIAL 40K NEXT 5M PCTINCREASE 0)';
Line: 9906

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

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

           msc_util.msc_log('after inserting item data into MSC_TEMP_ALLOC_SUPPLIES table');
Line: 10080

        /* Call Update_Pf_Display_Flags to update Pf_Display_Flag in msc_alloc_demands*/
        Update_Pf_Display_Flag(p_plan_id, l_return_status);
Line: 10085

                        msc_util.msc_log('Pf_Post_Plan_Proc: ' || 'Error occured in procedure Update_Pf_Display_Flag');
Line: 10091

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

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

                INSERT INTO MSC_ALLOC_DEMANDS(';
Line: 10170

                INSERT INTO ' || p_temp_table || '(';
Line: 10198

                                last_updated_by,
                                last_update_date,
                                request_date)--bug3263368
                	(
                        SELECT	/*+  use_hash(pegging_v mv) parallel(mv,' || to_char(p_parallel_degree) || ')  */
                                pegging_v.plan_id plan_id,
                                pegging_v.inventory_item_id,
                                pegging_v.original_item_id,
                                pegging_v.organization_id,
                                pegging_v.sr_instance_id,
                                NVL(mv.demand_class, :def_num) demand_class,
                                pegging_v.demand_date,
                                pegging_v.original_demand_date,
                                MIN(pegging_v.demand_quantity),
                                SUM(pegging_v.allocated_quantity),
                                pegging_v.demand_id,
                                pegging_v.origination_type,
                                pegging_v.original_origination_type,
                                pegging_v.pf_display_flag,
                                pegging_v.order_number,
                                pegging_v.sales_order_line_id,
                                pegging_v.demand_source_type,--cmro
                                pegging_v.source_organization_id,
                                pegging_v.using_assembly_item_id,
                                pegging_v.customer_id,
                                pegging_v.ship_to_site_id,
                                :l_user_id,
                                :l_sysdate,
                                :l_user_id,
                                :l_sysdate,
                                pegging_v.request_date --bug3263368
                        FROM
                                (SELECT peg.plan_id plan_id,
                                        decode(msi.aggregate_time_fence_date,
                                                   NULL, msi.inventory_item_id,
                                                   decode(sign(trunc(s.new_schedule_date) - msi.aggregate_time_fence_date), -- Bug 3450234 use trunc on s.new_schedule_date
                                                       1, msi.product_family_id,                                            -- to avoid wrong bucketed demands creation
                                                       msi.inventory_item_id)) inventory_item_id,
                                        msi.inventory_item_id original_item_id,
                        	        peg.organization_id,
                        	        peg.sr_instance_id,
                        	        decode(mat.demand_class, :l_excess_dc, decode(:p_excess_supply_by_dc, :l_yes, nvl(s.demand_class, :def_num),
                        	                                                                     :def_num),
                        	                                 NULL, :def_num,
                        	                                 mat.demand_class) demand_class,
                                        decode(msi.aggregate_time_fence_date,
                                        -- Bug 3574164. DMD_SATISFIED_TIME changed to PLANNED_SHIP_DATE.
                                               NULL, trunc(DECODE('||MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF||',
                                                                  2, NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
                                                                     NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
                                                     decode(sign(trunc(s.new_schedule_date) - msi.aggregate_time_fence_date),
                                                            1, decode(sign(trunc(DECODE('||MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF||',
                                                                                        2, NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
                                                                                           NVL(D.SCHEDULE_SHIP_DATE,
                                                                                               D.USING_ASSEMBLY_DEMAND_DATE)))
                                                                                               - msi.aggregate_time_fence_date),
                                                                      1, trunc(DECODE('||MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF||',
                                                                                      2, NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
                                                                                         NVL(D.SCHEDULE_SHIP_DATE,
                                                                                             D.USING_ASSEMBLY_DEMAND_DATE))),
                                                                         msi.aggregate_time_fence_date+1),
                                                               decode(sign(trunc(DECODE('||MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF||',
                                                                                        2, NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
                                                                                           NVL(D.SCHEDULE_SHIP_DATE,
                                                                                               D.USING_ASSEMBLY_DEMAND_DATE)))
                                                                                               - msi.aggregate_time_fence_date),
                                                                      1, msi.aggregate_time_fence_date,
                                                                         trunc(DECODE('||MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF||',
                                                                                      2, NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
                                                                                         NVL(D.SCHEDULE_SHIP_DATE,
                                                                                             D.USING_ASSEMBLY_DEMAND_DATE)))))) demand_date,
                                        trunc(DECODE('||MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF||',
                                                     2, NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
                                                        NVL(D.SCHEDULE_SHIP_DATE,
                                                            D.USING_ASSEMBLY_DEMAND_DATE))) original_demand_date,
                        		decode(d.origination_type, 4, d.daily_demand_rate,
                        		           d.using_requirement_quantity) demand_quantity,
                                        decode(msi.aggregate_time_fence_date,
                                               NULL, peg.allocated_quantity,
                                               decode(msi.bom_item_type,
                                                      5, 0,
                                                      peg.allocated_quantity))* mat.allocation_percent allocated_quantity,
                                        d.demand_id,
                                        decode(msi.aggregate_time_fence_date,
                                                   NULL, d.origination_type, 51) origination_type,
                        		d.origination_type original_origination_type,
                                        decode(msi.aggregate_time_fence_date,
                                                   NULL, NULL,
                                                   decode(sign(trunc(s.new_schedule_date) - msi.aggregate_time_fence_date),
                                                       1, decode(sign(trunc(DECODE('||MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF||',
                                                                                   2, NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
                                                                                      NVL(D.SCHEDULE_SHIP_DATE,
                                                                                          D.USING_ASSEMBLY_DEMAND_DATE)))
                                                                                          - msi.aggregate_time_fence_date),
                                                              1, 1,
                                                              NULL),
                                                          decode(sign(trunc(DECODE('||MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF||',
                                                                                   2, NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
                                                                                      NVL(D.SCHEDULE_SHIP_DATE,
                                                                                          D.USING_ASSEMBLY_DEMAND_DATE)))
                                                                                          - msi.aggregate_time_fence_date),
                                                              1, NULL, -- Moved paranthesis from here to end of decode. Identified as part of 3450234 testing.
                                                              1))) pf_display_flag,
                        		decode(d.origination_type, 1, to_char(d.disposition_id), d.order_number) order_number,
                        		d.sales_order_line_id,
                        		d.demand_source_type,--cmro
                                        d.source_organization_id,
                                        d.using_assembly_item_id,
                                        d.customer_id,
                                        d.ship_to_site_id,
                                        /* New Allocation logic for time phased ATP */
                                        decode(msi.aggregate_time_fence_date,
                                                   NULL, msi.inventory_item_id,
                                                   msi.product_family_id) product_family_id ,
                                        decode(d.order_date_type_code,2,d.request_date,
                        		           d.request_ship_date)request_date --bug3263368
                        	FROM    msc_system_items msi,
                        		msc_demands d,
                        	        msc_full_pegging peg,
                        	        ' || p_alloc_temp_table || ' mat,
                        	        msc_supplies s
                        	WHERE   msi.plan_id = :p_plan_id
                                AND     msi.atp_flag = :l_yes
                                AND     msi.plan_id = d.plan_id --bug3453289
                                AND     d.inventory_item_id = msi.inventory_item_id
                                AND     d.sr_instance_id = msi.sr_instance_id
                                AND     d.organization_id = msi.organization_id
                        	AND	d.origination_type NOT IN (5,7,8,9,11,15,22,28,29,31,70)
                        	AND     peg.plan_id = d.plan_id
                        	AND     peg.demand_id = d.demand_id
                        	AND     peg.sr_instance_id = d.sr_instance_id --bug3453289 MSC_FULL_PEGGING_N2
                        	AND     peg.organization_id= d.organization_id --bug3453289 MSC_FULL_PEGGING_N2
                        	AND     mat.pegging_id = peg.end_pegging_id
                        	AND     s.sr_instance_id = peg.sr_instance_id
                        	AND     s.plan_id = peg.plan_id
                        	AND     s.transaction_id = peg.transaction_id) pegging_v,
                                msc_item_hierarchy_mv mv
                        WHERE	pegging_v.product_family_id = mv.inventory_item_id(+)
                        AND     pegging_v.organization_id = mv.organization_id (+)
                        AND     pegging_v.sr_instance_id = mv.sr_instance_id (+)
                        AND     pegging_v.demand_date >=  mv.effective_date (+)
                        AND     pegging_v.demand_date <=  mv.disable_date (+)
                        AND	pegging_v.demand_class = mv.demand_class (+)
                        AND     mv.level_id (+) = -1
                        AND     pegging_v.allocated_quantity <> 0
                	GROUP BY
                                pegging_v.plan_id,
                                pegging_v.inventory_item_id,
                                pegging_v.original_item_id,
                                pegging_v.organization_id,
                                pegging_v.sr_instance_id,
                                NVL(mv.demand_class, :def_num),
                                pegging_v.demand_date,
                                pegging_v.original_demand_date,
                                pegging_v.demand_id,
                                pegging_v.origination_type,
                                pegging_v.original_origination_type,
                                pegging_v.pf_display_flag,
                                pegging_v.order_number,
                                pegging_v.sales_order_line_id,
                                pegging_v.demand_source_type,--cmro
                                pegging_v.source_organization_id,
                                pegging_v.using_assembly_item_id,
                                pegging_v.customer_id,
                                pegging_v.ship_to_site_id,
                                :l_user_id,
                                :l_sysdate,
                                :l_user_id,
                                :l_sysdate,
                                pegging_v.request_date)';
Line: 10395

                                last_updated_by,
                                last_update_date,
                                request_date)--bug3263368
                        (SELECT
                                peg1.plan_id plan_id,
                                decode(sign(trunc(s.new_schedule_date) - msi.aggregate_time_fence_date), -- Bug 3450234 use trunc on s.new_schedule_date
                                                                                                         -- to avoid wrong bucketed demands creation
                                           1, msi.product_family_id,
                                           msi.inventory_item_id) inventory_item_id,
                                msi.inventory_item_id original_item_id,
                                peg1.organization_id,
                                peg1.sr_instance_id,
                                d.demand_class demand_class,
                                decode(sign(trunc(s.new_schedule_date) - msi.aggregate_time_fence_date),
                                       1, decode(sign(trunc(DECODE('||MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF||',
                                       -- Bug 3574164. DMD_SATISFIED_TIME changed to PLANNED_SHIP_DATE.
                                                                   2, NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
                                                                   NVL(D.SCHEDULE_SHIP_DATE,
                                                                       D.USING_ASSEMBLY_DEMAND_DATE)))
                                                                       - msi.aggregate_time_fence_date),
                                                 1, trunc(DECODE('||MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF||',
                                                              2, NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
                                                                 NVL(D.SCHEDULE_SHIP_DATE,
                                                                     D.USING_ASSEMBLY_DEMAND_DATE))),
                                                 msi.aggregate_time_fence_date+1),
                                       decode(sign(trunc(DECODE('||MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF||',
                                                                2, NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
                                                                   NVL(D.SCHEDULE_SHIP_DATE,
                                                                       D.USING_ASSEMBLY_DEMAND_DATE)))
                                                                       - msi.aggregate_time_fence_date),
                                           1, msi.aggregate_time_fence_date,
                                           trunc(DECODE('||MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF||',
                                                        2, NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
                                                           NVL(D.SCHEDULE_SHIP_DATE,
                                                               D.USING_ASSEMBLY_DEMAND_DATE))))) demand_date,
                                trunc(DECODE('||MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF||',
                                             2, NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
                                                NVL(D.SCHEDULE_SHIP_DATE,
                                                    D.USING_ASSEMBLY_DEMAND_DATE))) original_demand_date,
                                MIN(decode(d.origination_type, 4, d.daily_demand_rate,
                		           d.using_requirement_quantity)) demand_quantity,
                                SUM(peg1.allocated_quantity),
                                d.demand_id,
                                51 origination_type, -- ATP Bucketed Demand
                                d.origination_type original_origination_type,
                                decode(sign(trunc(s.new_schedule_date) - msi.aggregate_time_fence_date),
                                       1, decode(sign(trunc(DECODE('||MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF||',
                                       -- Bug 3574164. DMD_SATISFIED_TIME changed to PLANNED_SHIP_DATE.
                                                                   2, NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
                                                                      NVL(D.SCHEDULE_SHIP_DATE,
                                                                          D.USING_ASSEMBLY_DEMAND_DATE)))
                                                                          - msi.aggregate_time_fence_date),
                                              1, 1,
                                              NULL),
                                       decode(sign(trunc(DECODE('||MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF||',
                                                                2, NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
                                                                   NVL(D.SCHEDULE_SHIP_DATE,
                                                                       D.USING_ASSEMBLY_DEMAND_DATE)))
                                                                       - msi.aggregate_time_fence_date),
                                           1, NULL, -- Moved paranthesis from here to end of decode. Identified as part of 3450234 testing.
                                           1)) pf_display_flag,
                		decode(d.origination_type, 1, to_char(d.disposition_id), d.order_number) order_number,
                                d.sales_order_line_id,
                                d.demand_source_type,--cmro
                                d.source_organization_id,
                                d.using_assembly_item_id,
                                d.customer_id,
                                d.ship_to_site_id,
                                :l_user_id,
                                :l_sysdate,
                                :l_user_id,
                                :l_sysdate,
                                decode(d.order_date_type_code,2,d.request_date,
        			            d.request_ship_date)request_date --bug3263368
                        FROM    msc_full_pegging peg1,
                                msc_demands d,
                                msc_supplies s,
                                msc_system_items msi
                        WHERE   d.demand_id = peg1.demand_id
                        AND     d.plan_id = peg1.plan_id
                        AND     d.sr_instance_id = peg1.sr_instance_id
                        AND     d.organization_id= peg1.organization_id --bug3453289
                        AND	d.origination_type NOT IN (5,7,8,9,11,15,22,28,29,31,70)
                        AND     s.transaction_id = peg1.transaction_id
                        AND     s.plan_id = peg1.plan_id
                        AND     s.sr_instance_id = peg1.sr_instance_id --bug3453289
                        AND     msi.plan_id = d.plan_id
                        AND     msi.inventory_item_id = d.inventory_item_id
                        AND     msi.sr_instance_id = d.sr_instance_id
                        AND     msi.organization_id = d.organization_id
                        AND     msi.aggregate_time_fence_date is not null
                        AND     msi.bom_item_type <> 5
                        AND     msi.plan_id = :p_plan_id
                        AND     msi.atp_flag = :l_yes
                        GROUP BY
                                peg1.plan_id,
                                decode(sign(trunc(s.new_schedule_date) - msi.aggregate_time_fence_date), -- Bug 3450234 use trunc on s.new_schedule_date
                                                                                                         -- to avoid wrong bucketed demands creation
                                           1, msi.product_family_id,
                                           msi.inventory_item_id),
                                msi.inventory_item_id,
                                peg1.organization_id,
                                peg1.sr_instance_id,
                                d.demand_class,
                                decode(sign(trunc(s.new_schedule_date) - msi.aggregate_time_fence_date),
                                       1, decode(sign(trunc(DECODE('||MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF||',
                                       -- Bug 3574164. DMD_SATISFIED_TIME changed to PLANNED_SHIP_DATE.
                                                                   2, NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
                                                                      NVL(D.SCHEDULE_SHIP_DATE,
                                                                          D.USING_ASSEMBLY_DEMAND_DATE)))
                                                                          - msi.aggregate_time_fence_date),
                                              1, trunc(DECODE('||MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF||',
                                                              2, NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
                                                                 NVL(D.SCHEDULE_SHIP_DATE,
                                                                     D.USING_ASSEMBLY_DEMAND_DATE))),
                                              msi.aggregate_time_fence_date+1),
                                       decode(sign(trunc(DECODE('||MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF||',
                                                                2, NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
                                                                   NVL(D.SCHEDULE_SHIP_DATE,
                                                                       D.USING_ASSEMBLY_DEMAND_DATE))) - msi.aggregate_time_fence_date),
                                           1, msi.aggregate_time_fence_date,
                                           trunc(DECODE('||MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF||',
                                                        2, NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
                                                           NVL(D.SCHEDULE_SHIP_DATE,
                                                               D.USING_ASSEMBLY_DEMAND_DATE))))),
                                trunc(DECODE('||MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF||',
                                             2, NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
                                                NVL(D.SCHEDULE_SHIP_DATE,
                                                    D.USING_ASSEMBLY_DEMAND_DATE))),
                                d.demand_id,
                                51,
                                d.origination_type,
                                decode(sign(trunc(s.new_schedule_date) - msi.aggregate_time_fence_date),
                                       1, decode(sign(trunc(DECODE('||MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF||',
                                                                   2, NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
                                                                      NVL(D.SCHEDULE_SHIP_DATE,
                                                                          D.USING_ASSEMBLY_DEMAND_DATE)))
                                                                          - msi.aggregate_time_fence_date),
                                              1, 1,
                                              NULL),
                                       decode(sign(trunc(DECODE('||MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF||',
                                                                2, NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
                                                                   NVL(D.SCHEDULE_SHIP_DATE,
                                                                       D.USING_ASSEMBLY_DEMAND_DATE)))
                                                                       - msi.aggregate_time_fence_date),
                                           1, NULL, -- Moved paranthesis from here to end of decode. Identified as part of 3450234 testing.
                                           1)),
                		decode(d.origination_type, 1, to_char(d.disposition_id), d.order_number),
                                d.sales_order_line_id,
                                d.demand_source_type,--cmro
                                d.source_organization_id,
                                d.using_assembly_item_id,
                                d.customer_id,
                                d.ship_to_site_id,
                                :l_user_id,
                                :l_sysdate,
                                :l_user_id,
                                :l_sysdate,
                                decode(d.order_date_type_code,2,d.request_date,
        			            d.request_ship_date))';  --bug3263368
Line: 10605

                INSERT INTO MSC_ALLOC_SUPPLIES(';
Line: 10608

                INSERT INTO ' || p_temp_table || '(';
Line: 10631

                                last_updated_by,
                                last_update_date)
        		(
        	        SELECT	/*+  use_hash(pegging_v mv) parallel(mv,' || to_char(p_parallel_degree) || ')  */
                                pegging_v.plan_id plan_id,
                                pegging_v.inventory_item_id,
                                pegging_v.original_item_id,
                                pegging_v.organization_id,
                                pegging_v.sr_instance_id,
                                NVL(mv.demand_class, :def_num) demand_class,
                                pegging_v.supply_date,
                                pegging_v.transaction_id,
                                SUM(pegging_v.allocated_quantity),
                                MIN(pegging_v.supply_quantity),
                                pegging_v.order_type,
                                pegging_v.original_order_type,
                                pegging_v.order_number,
                                pegging_v.schedule_designator_id,
                                pegging_v.customer_id,
                                pegging_v.ship_to_site_id,
                                :l_user_id,
                                :l_sysdate,
                                :l_user_id,
                                :l_sysdate
                        FROM
                                (SELECT peg.plan_id plan_id,
                                        decode(msi.aggregate_time_fence_date,
                                                   NULL, msi.inventory_item_id,
                                                   decode(sign(TRUNC(s.new_schedule_date) - msi.aggregate_time_fence_date),
                                                       1, msi.product_family_id,
                                                       msi.inventory_item_id)) inventory_item_id,
                                        msi.inventory_item_id original_item_id,
                                        peg.organization_id,
                                        peg.sr_instance_id,
                        	        decode(mat.demand_class, :l_excess_dc, decode(:p_excess_supply_by_dc, :l_yes, nvl(s.demand_class, :def_num),
                        	                                                                     :def_num),
                        	                                 NULL, :def_num,
                        	                                 mat.demand_class) demand_class,
                                        TRUNC(s.new_schedule_date) supply_date,
                                        decode(msi.aggregate_time_fence_date,
                                               NULL, peg.allocated_quantity,
                                               decode(msi.bom_item_type,
                                                      5, 0,
                                                      peg.allocated_quantity))* mat.allocation_percent allocated_quantity,
                                        s.new_order_quantity supply_quantity,
                                        peg.transaction_id,
                                        decode(msi.aggregate_time_fence_date,
                                                   NULL, s.order_type, 50) order_type,
                                        s.order_type original_order_type,
                                        s.order_number,
                                        s.schedule_designator_id,
                                        s.customer_id,
                                        s.ship_to_site_id,
                                        decode(msi.aggregate_time_fence_date,
                                                   NULL, msi.inventory_item_id,
                                                   msi.product_family_id) product_family_id
                        	FROM    msc_system_items msi,
                        		msc_supplies s,
                        	        msc_full_pegging peg,
                        	        ' || p_alloc_temp_table || ' mat
                        	WHERE   msi.plan_id = :p_plan_id
                                AND     msi.atp_flag = :l_yes
                                AND     s.plan_id = msi.plan_id --bug3453289
                                AND     s.inventory_item_id = msi.inventory_item_id
                                AND     s.sr_instance_id = msi.sr_instance_id
                                AND     s.organization_id = msi.organization_id
                        	AND     peg.plan_id = s.plan_id
                        	AND     peg.transaction_id = s.transaction_id
                        	AND     peg.sr_instance_id = s.sr_instance_id
                        	AND     mat.pegging_id = peg.end_pegging_id) pegging_v,
                                msc_item_hierarchy_mv mv
                        WHERE	pegging_v.product_family_id = mv.inventory_item_id(+)
                        AND     pegging_v.organization_id = mv.organization_id (+)
                        AND     pegging_v.sr_instance_id = mv.sr_instance_id (+)
                        AND     pegging_v.supply_date >=  mv.effective_date (+)
                        AND     pegging_v.supply_date <=  mv.disable_date (+)
                        AND	pegging_v.demand_class = mv.demand_class (+)
                        AND     mv.level_id (+) = -1
                        AND     pegging_v.allocated_quantity <> 0
        		GROUP BY
                                pegging_v.plan_id,
                                pegging_v.inventory_item_id,
                                pegging_v.original_item_id,
                                pegging_v.organization_id,
                                pegging_v.sr_instance_id,
                                NVL(mv.demand_class, :def_num),
                                pegging_v.supply_date,
                                pegging_v.transaction_id,
                                pegging_v.order_type,
                                pegging_v.original_order_type,
                                pegging_v.order_number,
                                pegging_v.schedule_designator_id,
                                pegging_v.customer_id,
                                pegging_v.ship_to_site_id,
                                :l_user_id,
                                :l_sysdate,
                                :l_user_id,
                                :l_sysdate)';
Line: 10751

                                last_updated_by,
                                last_update_date)
        		(
                        select  :p_plan_id,
                                decode(sign(TRUNC(s.new_schedule_date) - i.aggregate_time_fence_date),
                                        1, i.product_family_id, s.inventory_item_id),
                                s.inventory_item_id,
                                s.organization_id,
                                s.sr_instance_id,
                                s.demand_class,
                                TRUNC(s.new_schedule_date),
                                s.transaction_id,
                                s.new_order_quantity,
                                s.new_order_quantity,
                                50,
                                s.order_type,
                                s.order_number,
                                s.schedule_designator_id,
                                s.customer_id,
                                s.ship_to_site_id,
                                :l_user_id,
                                :l_sysdate,
                                :l_user_id,
                                :l_sysdate
                        from    msc_supplies s,
                                msc_system_items i
                        where   i.aggregate_time_fence_date is not null
                        and     i.bom_item_type <> 5
                        and     i.plan_id = :p_plan_id
                        and     i.atp_flag = :l_yes
                        and     s.plan_id = i.plan_id --bug3453289
                        and     s.inventory_item_id = i.inventory_item_id
                        and     s.organization_id = i.organization_id
                        and     s.sr_instance_id = i.sr_instance_id
                        and     s.plan_id = i.plan_id
                        )';
Line: 10798

/*Private procedures removed for forecast at PF  **Will be deleted after code review
/*--Prepare_Demands_Stmt1---------------------------------------------------
|  o  Called from Pf_Post_Plan_Proc procedure to:
|       -  Prepare demands stmt for preallocation + bucketting for demands
|            pegged to excess/safety stock. (Demand priority AATP)
|            :  Excess supply by demand class = No
|            :  Excess supply by demand class = Yes (for project atp)
|       -  Prepare demands stmt for bucketting. (All PDS ATP scenarios except
|            demand priority AATP)
|  o  Prepares demand stmt for both share plan partition "yes" and "no".
+-------------------------------------------------------------------------*/
/*PROCEDURE Prepare_Demands_Stmt1(
	p_share_partition               IN      VARCHAR2,
	p_demand_priority               IN      VARCHAR2,
	p_excess_supply_by_dc           IN      VARCHAR2,
	p_temp_table                    IN      VARCHAR2,
	p_parallel_degree               IN      NUMBER,
	x_sql_stmt                      OUT 	NOCOPY VARCHAR2,
        x_return_status                 OUT     NOCOPY VARCHAR2
)
IS

BEGIN

        IF PG_DEBUG in ('Y', 'C') THEN
                msc_util.msc_log('Prepare_Demands_Stmt1: ' || 'p_share_partition        : ' || p_share_partition);
Line: 10835

                INSERT INTO MSC_ALLOC_DEMANDS(';
Line: 10838

                INSERT INTO ' || p_temp_table || '(';
Line: 10876

                                last_updated_by,
                                last_update_date)
                	(
                        SELECT	/*+  use_hash(pegging_v mv) parallel(mv,' || to_char(p_parallel_degree) || ')  */
/*                                pegging_v.plan_id plan_id,
                                pegging_v.inventory_item_id,
                                pegging_v.original_item_id,
                                pegging_v.organization_id,
                                pegging_v.sr_instance_id,
                                NVL(mv.demand_class, :def_num) demand_class,
                                pegging_v.demand_date,
                                pegging_v.original_demand_date,
                                MIN(pegging_v.demand_quantity),
                                SUM(pegging_v.allocated_quantity),
                                pegging_v.demand_id,
                                pegging_v.origination_type,
                                pegging_v.original_origination_type,
                                pegging_v.pf_display_flag,
                                pegging_v.order_number,
                                pegging_v.sales_order_line_id,
                                pegging_v.source_organization_id,
                                pegging_v.using_assembly_item_id,
                                pegging_v.customer_id,
                                pegging_v.ship_to_site_id,
                                :l_user_id,
                                :l_sysdate,
                                :l_user_id,
                                :l_sysdate
                        FROM
                                (SELECT /*+ ordered use_hash(peg2 peg1 d s msi)
                        			parallel(peg2,' || to_char(p_parallel_degree) || ')
                        			parallel(peg1,' || to_char(p_parallel_degree) || ')
                        			parallel(d,' || to_char(p_parallel_degree) || ')
                                                parallel(s,' || to_char(p_parallel_degree) || ')
                                                parallel(msi,' || to_char(p_parallel_degree) || ')
                        			full(peg2) full(peg1) full(d) full(s) full(msi) */
/*                                        peg1.plan_id plan_id,
                                        decode(msi.aggregate_time_fence_date,
                                                   NULL, msi.inventory_item_id,
                                                   decode(sign(s.new_schedule_date - msi.aggregate_time_fence_date),
                                                       1, msi.product_family_id,
                                                       msi.inventory_item_id)) inventory_item_id,
                                        msi.inventory_item_id original_item_id,
                        	        peg1.organization_id,
                        	        peg1.sr_instance_id,
                        	        NVL(s.demand_class, :def_num) demand_class,
                                        decode(msi.aggregate_time_fence_date,
                                               NULL, trunc(DECODE('||MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF||',
                                                                  2, NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
                                                                     NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
                                                     decode(sign(trunc(s.new_schedule_date) - msi.aggregate_time_fence_date),
                                                            1, decode(sign(trunc(DECODE('||MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF||',
                                                                                        2, NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
                                                                                           NVL(D.SCHEDULE_SHIP_DATE,
                                                                                               D.USING_ASSEMBLY_DEMAND_DATE)))
                                                                                               - msi.aggregate_time_fence_date),
                                                                      1, trunc(DECODE('||MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF||',
                                                                                      2, NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
                                                                                         NVL(D.SCHEDULE_SHIP_DATE,
                                                                                             D.USING_ASSEMBLY_DEMAND_DATE))),
                                                                         msi.aggregate_time_fence_date+1),
                                                               decode(sign(trunc(DECODE('||MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF||',
                                                                                        2, NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
                                                                                           NVL(D.SCHEDULE_SHIP_DATE,
                                                                                               D.USING_ASSEMBLY_DEMAND_DATE)))
                                                                                               - msi.aggregate_time_fence_date),
                                                                      1, msi.aggregate_time_fence_date,
                                                                         trunc(DECODE('||MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF||',
                                                                                      2, NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
                                                                                         NVL(D.SCHEDULE_SHIP_DATE,
                                                                                             D.USING_ASSEMBLY_DEMAND_DATE)))))) demand_date,
                                        trunc(DECODE('||MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF||',
                                                     2, NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
                                                        NVL(D.SCHEDULE_SHIP_DATE,
                                                            D.USING_ASSEMBLY_DEMAND_DATE))) original_demand_date,
                        		decode(d.origination_type, 4, d.daily_demand_rate,
                        		           d.using_requirement_quantity) demand_quantity,
                                        decode(msi.aggregate_time_fence_date,
                                               NULL, peg1.allocated_quantity,
                                               decode(msi.bom_item_type,
                                                      5, 0,
                                                      peg1.allocated_quantity)) allocated_quantity,
                                        d.demand_id,
                                        decode(msi.aggregate_time_fence_date,
                                                   NULL, d.origination_type, 51) origination_type,
                        		d.origination_type original_origination_type,
                                        decode(msi.aggregate_time_fence_date,
                                                   NULL, NULL,
                                                   decode(sign(trunc(s.new_schedule_date) - msi.aggregate_time_fence_date),
                                                       1, decode(sign(trunc(DECODE('||MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF||',
                                                                                   2, NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
                                                                                      NVL(D.SCHEDULE_SHIP_DATE,
                                                                                          D.USING_ASSEMBLY_DEMAND_DATE)))
                                                                                          - msi.aggregate_time_fence_date),
                                                              1, 1,
                                                              NULL),
                                                          decode(sign(trunc(DECODE('||MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF||',
                                                                                   2, NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
                                                                                      NVL(D.SCHEDULE_SHIP_DATE,
                                                                                          D.USING_ASSEMBLY_DEMAND_DATE)))
                                                                                          - msi.aggregate_time_fence_date),
                                                              1, NULL),
                                                              1)) pf_display_flag,
                        		decode(d.origination_type, 1, to_char(d.disposition_id), d.order_number) order_number,
                        		d.sales_order_line_id,
                                        d.source_organization_id,
                                        d.using_assembly_item_id,
                                        d.customer_id,
                                        d.ship_to_site_id,
                                        /* New Allocation logic for time phased ATP */
/*                                        decode(msi.aggregate_time_fence_date,
                                                   NULL, msi.inventory_item_id,
                                                   msi.product_family_id) product_family_id
                        	FROM    msc_full_pegging peg2,
                        	        msc_full_pegging peg1,
                        		msc_demands d,
                                        msc_supplies s,
                                        msc_system_items msi
                        	WHERE   peg1.plan_id = :p_plan_id
                        	AND     peg2.plan_id = peg1.plan_id
                        	AND     peg2.pegging_id = peg1.end_pegging_id
                        	AND     peg2.demand_id IN (-1, -2)
                        	AND     d.demand_id = peg1.demand_id
                        	AND     peg1.plan_id = d.plan_id
                        	AND     d.sr_instance_id = peg1.sr_instance_id
                        	AND     peg1.sr_instance_id=s.sr_instance_id
                        	AND     peg1.plan_id = s.plan_id
                        	AND     peg1.transaction_id = s.transaction_id
                        	AND	d.origination_type NOT IN (5,7,8,9,11,15,22,28,29,31)
                        	AND     msi.plan_id = s.plan_id
                                AND     msi.inventory_item_id = s.inventory_item_id
                                AND     msi.sr_instance_id = s.sr_instance_id
                                AND     msi.organization_id = s.organization_id) pegging_v,
                                msc_item_hierarchy_mv mv
                        WHERE	pegging_v.product_family_id = mv.inventory_item_id(+)
                        AND     pegging_v.organization_id = mv.organization_id (+)
                        AND     pegging_v.sr_instance_id = mv.sr_instance_id (+)
                        AND     pegging_v.demand_date >=  mv.effective_date (+)
                        AND     pegging_v.demand_date <=  mv.disable_date (+)
                        AND	pegging_v.demand_class = mv.demand_class (+)
                        AND     mv.level_id (+) = -1
                        AND     pegging_v.allocated_quantity <> 0
                	GROUP BY
                                pegging_v.plan_id plan_id,
                                pegging_v.inventory_item_id,
                                pegging_v.original_item_id,
                                pegging_v.organization_id,
                                pegging_v.sr_instance_id,
                                NVL(mv.demand_class, :def_num),
                                pegging_v.demand_date,
                                pegging_v.original_demand_date,
                                pegging_v.demand_id,
                                pegging_v.origination_type,
                                pegging_v.original_origination_type,
                                pegging_v.pf_display_flag,
                                pegging_v.order_number,
                                pegging_v.sales_order_line_id,
                                pegging_v.demand_source_type,--cmro
                                pegging_v.source_organization_id,
                                pegging_v.using_assembly_item_id,
                                pegging_v.customer_id,
                                pegging_v.ship_to_site_id,
                                :l_user_id,
                                :l_sysdate,
                                :l_user_id,
                                :l_sysdate)';
Line: 11067

                                last_updated_by,
                                last_update_date)
                	(
                        SELECT /*+ ordered use_hash(peg2 peg1 d s msi)
                        			parallel(peg2,' || to_char(p_parallel_degree) || ')
                        			parallel(peg1,' || to_char(p_parallel_degree) || ')
                        			parallel(d,' || to_char(p_parallel_degree) || ')
                                                parallel(s,' || to_char(p_parallel_degree) || ')
                                                parallel(msi,' || to_char(p_parallel_degree) || ')
                        			full(peg2) full(peg1) full(d) full(s) full(msi) */
/*                                peg1.plan_id plan_id,
                                decode(msi.aggregate_time_fence_date,
                                           NULL, msi.inventory_item_id,
                                           decode(sign(s.new_schedule_date - msi.aggregate_time_fence_date),
                                               1, msi.product_family_id,
                                               msi.inventory_item_id)) inventory_item_id,
                                msi.inventory_item_id original_item_id,
                	        peg1.organization_id,
                	        peg1.sr_instance_id,
                	        :def_num demand_class,
                                decode(msi.aggregate_time_fence_date,
                                           NULL,trunc(DECODE('||MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF||',
                                                             2, NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
                                                                NVL(D.SCHEDULE_SHIP_DATE,
                                                                    D.USING_ASSEMBLY_DEMAND_DATE))),
                                           decode(sign(trunc(s.new_schedule_date) - msi.aggregate_time_fence_date),
                                               1, decode(sign(trunc(DECODE('||MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF||',
                                                                           2, NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
                                                                              NVL(D.SCHEDULE_SHIP_DATE,
                                                                                  D.USING_ASSEMBLY_DEMAND_DATE)))
                                                                                  - msi.aggregate_time_fence_date),
                                                      1,trunc(DECODE('||MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF||',
                                                                     2, NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
                                                                        NVL(D.SCHEDULE_SHIP_DATE,
                                                                            D.USING_ASSEMBLY_DEMAND_DATE))),
                                                      msi.aggregate_time_fence_date+1),
                                               decode(sign(trunc(DECODE('||MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF||',
                                                                        2, NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
                                                                           NVL(D.SCHEDULE_SHIP_DATE,
                                                                               D.USING_ASSEMBLY_DEMAND_DATE)))
                                                                               - msi.aggregate_time_fence_date),
                                                   1, msi.aggregate_time_fence_date,
                                                   trunc(DECODE('||MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF||',
                                                                2, NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
                                                                   NVL(D.SCHEDULE_SHIP_DATE,
                                                                       D.USING_ASSEMBLY_DEMAND_DATE)))))) demand_date,
                                trunc(DECODE('||MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF||',
                                             2, NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
                                                NVL(D.SCHEDULE_SHIP_DATE,
                                                    D.USING_ASSEMBLY_DEMAND_DATE))) original_demand_date,
                		MIN(decode(d.origination_type, 4, d.daily_demand_rate,
                		           d.using_requirement_quantity)) demand_quantity,
                                SUM(decode(msi.aggregate_time_fence_date,
                                       NULL, peg1.allocated_quantity,
                                       decode(msi.bom_item_type,
                                              5, 0,
                                              peg1.allocated_quantity))) allocated_quantity,
                                d.demand_id,
                                decode(msi.aggregate_time_fence_date,
                                           NULL, d.origination_type, 51) origination_type,
                		d.origination_type original_origination_type,
                                decode(msi.aggregate_time_fence_date,
                                           NULL, NULL,
                                           decode(sign(trunc(s.new_schedule_date) - msi.aggregate_time_fence_date),
                                               1, decode(sign(trunc(DECODE('||MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF||',
                                                                           2, NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
                                                                              NVL(D.SCHEDULE_SHIP_DATE,
                                                                                  D.USING_ASSEMBLY_DEMAND_DATE)))
                                                                                  - msi.aggregate_time_fence_date),
                                                      1, 1,
                                                      NULL),
                                               decode(sign(trunc(DECODE('||MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF||',
                                                                        2, NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
                                                                           NVL(D.SCHEDULE_SHIP_DATE,
                                                                               D.USING_ASSEMBLY_DEMAND_DATE)))
                                                                               - msi.aggregate_time_fence_date),
                                                   1, NULL),
                                                   1)) pf_display_flag,
                		decode(d.origination_type, 1, to_char(d.disposition_id), d.order_number) order_number,
                		d.sales_order_line_id,
                		d.demand_source_type,--cmro
                                d.source_organization_id,
                                d.using_assembly_item_id,
                                d.customer_id,
                                d.ship_to_site_id,
                                :l_user_id,
                                :l_sysdate,
                                :l_user_id,
                                :l_sysdate
                	FROM    msc_full_pegging peg2,
                	        msc_full_pegging peg1,
                		msc_demands d,
                                msc_supplies s,
                                msc_system_items msi
                	WHERE   peg1.plan_id = :p_plan_id
                	AND     peg2.plan_id = peg1.plan_id
                	AND     peg2.pegging_id = peg1.end_pegging_id
                	AND     peg2.demand_id IN (-1, -2)
                	AND     d.demand_id = peg1.demand_id
                	AND     peg1.plan_id = d.plan_id
                	AND     d.sr_instance_id = peg1.sr_instance_id
                	AND     peg1.sr_instance_id=s.sr_instance_id
                	AND     peg1.plan_id = s.plan_id
                	AND     peg1.transaction_id = s.transaction_id
                	AND	d.origination_type NOT IN (5,7,8,9,11,15,22,28,29,31,70)
                	AND     msi.plan_id = s.plan_id
                        AND     msi.inventory_item_id = s.inventory_item_id
                        AND     msi.sr_instance_id = s.sr_instance_id
                        AND     msi.organization_id = s.organization_id
                	GROUP BY
                                peg1.plan_id,
                                decode(msi.aggregate_time_fence_date,
                                           NULL, msi.inventory_item_id,
                                           decode(sign(s.new_schedule_date - msi.aggregate_time_fence_date),
                                               1, msi.product_family_id,
                                               msi.inventory_item_id)),
                                msi.inventory_item_id,
                	        peg1.organization_id,
                	        peg1.sr_instance_id,
                	        :def_num,
                                decode(msi.aggregate_time_fence_date,
                                           NULL, trunc(DECODE('||MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF||',
                                                                          2, NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
                                                                             NVL(D.SCHEDULE_SHIP_DATE,
                                                                                 D.USING_ASSEMBLY_DEMAND_DATE))),
                                           decode(sign(trunc(s.new_schedule_date) - msi.aggregate_time_fence_date),
                                               1, decode(sign(trunc(DECODE('||MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF||',
                                                                           2, NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
                                                                              NVL(D.SCHEDULE_SHIP_DATE,
                                                                                  D.USING_ASSEMBLY_DEMAND_DATE)))
                                                                                  - msi.aggregate_time_fence_date),
                                                      1, trunc(DECODE('||MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF||',
                                                                      2, NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
                                                                         NVL(D.SCHEDULE_SHIP_DATE,
                                                                             D.USING_ASSEMBLY_DEMAND_DATE))),
                                                      msi.aggregate_time_fence_date+1),
                                               decode(sign(trunc(DECODE('||MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF||',
                                                                        2, NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
                                                                           NVL(D.SCHEDULE_SHIP_DATE,
                                                                               D.USING_ASSEMBLY_DEMAND_DATE)))
                                                                               - msi.aggregate_time_fence_date),
                                                   1, msi.aggregate_time_fence_date,
                                                   trunc(DECODE('||MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF||',
                                                                                   2, NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
                                                                                      NVL(D.SCHEDULE_SHIP_DATE,
                                                                                          D.USING_ASSEMBLY_DEMAND_DATE)))))),
                                trunc(DECODE('||MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF||',
                                             2, NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
                                                NVL(D.SCHEDULE_SHIP_DATE,
                                                    D.USING_ASSEMBLY_DEMAND_DATE))),
                                d.demand_id,
                                decode(msi.aggregate_time_fence_date,
                                           NULL, d.origination_type, 51),
                		d.origination_type,
                                decode(msi.aggregate_time_fence_date,
                                           NULL, NULL,
                                           decode(sign(trunc(s.new_schedule_date) - msi.aggregate_time_fence_date),
                                               1, decode(sign(trunc(DECODE('||MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF||',
                                                                           2, NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
                                                                              NVL(D.SCHEDULE_SHIP_DATE,
                                                                                  D.USING_ASSEMBLY_DEMAND_DATE)))
                                                                                  - msi.aggregate_time_fence_date),
                                                      1, 1,
                                                      NULL),
                                               decode(sign(trunc(DECODE('||MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF||',
                                                                        2, NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
                                                                           NVL(D.SCHEDULE_SHIP_DATE,
                                                                               D.USING_ASSEMBLY_DEMAND_DATE)))
                                                                               - msi.aggregate_time_fence_date),
                                                   1, NULL),
                                                   1)),
                		decode(d.origination_type, 1, to_char(d.disposition_id), d.order_number),
                		d.sales_order_line_id,
                		d.demand_source_type,--cmro
                                d.source_organization_id,
                                d.using_assembly_item_id,
                                d.customer_id,
                                d.ship_to_site_id,
                                :l_user_id,
                                :l_sysdate,
                                :l_user_id,
                                :l_sysdate)';
Line: 11276

                                last_updated_by,
                                last_update_date)
                        (SELECT
                                peg1.plan_id plan_id,
                                decode(sign(s.new_schedule_date - msi.aggregate_time_fence_date),
                                           1, msi.product_family_id,
                                           msi.inventory_item_id) inventory_item_id,
                                msi.inventory_item_id original_item_id,
                                peg1.organization_id,
                                peg1.sr_instance_id,
                                d.demand_class demand_class,
                                decode(sign(trunc(s.new_schedule_date) - msi.aggregate_time_fence_date),
                                       1, decode(sign(trunc(DECODE('||MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF||',
                                                                   2, NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
                                                                   NVL(D.SCHEDULE_SHIP_DATE,
                                                                       D.USING_ASSEMBLY_DEMAND_DATE)))
                                                                       - msi.aggregate_time_fence_date),
                                                 1, trunc(DECODE('||MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF||',
                                                              2, NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
                                                                 NVL(D.SCHEDULE_SHIP_DATE,
                                                                     D.USING_ASSEMBLY_DEMAND_DATE))),
                                                 msi.aggregate_time_fence_date+1),
                                       decode(sign(trunc(DECODE('||MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF||',
                                                                2, NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
                                                                   NVL(D.SCHEDULE_SHIP_DATE,
                                                                       D.USING_ASSEMBLY_DEMAND_DATE)))
                                                                       - msi.aggregate_time_fence_date),
                                           1, msi.aggregate_time_fence_date,
                                           trunc(DECODE('||MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF||',
                                                        2, NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
                                                           NVL(D.SCHEDULE_SHIP_DATE,
                                                               D.USING_ASSEMBLY_DEMAND_DATE))))) demand_date,
                                trunc(DECODE('||MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF||',
                                             2, NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
                                                NVL(D.SCHEDULE_SHIP_DATE,
                                                    D.USING_ASSEMBLY_DEMAND_DATE))) original_demand_date,
                                MIN(decode(d.origination_type, 4, d.daily_demand_rate,
                		           d.using_requirement_quantity)) demand_quantity,
                                SUM(peg1.allocated_quantity),
                                d.demand_id,
                                51 origination_type, -- ATP Bucketed Demand
                                d.origination_type original_origination_type,
                                decode(sign(trunc(s.new_schedule_date) - msi.aggregate_time_fence_date),
                                       1, decode(sign(trunc(DECODE('||MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF||',
                                                                   2, NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
                                                                      NVL(D.SCHEDULE_SHIP_DATE,
                                                                          D.USING_ASSEMBLY_DEMAND_DATE)))
                                                                          - msi.aggregate_time_fence_date),
                                              1, 1,
                                              NULL),
                                       decode(sign(trunc(DECODE('||MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF||',
                                                                2, NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
                                                                   NVL(D.SCHEDULE_SHIP_DATE,
                                                                       D.USING_ASSEMBLY_DEMAND_DATE)))
                                                                       - msi.aggregate_time_fence_date),
                                           1, NULL),
                                           1) pf_display_flag,
                		decode(d.origination_type, 1, to_char(d.disposition_id), d.order_number) order_number,
                                d.sales_order_line_id,
                                d.demand_source_type,--cmro
                                d.source_organization_id,
                                d.using_assembly_item_id,
                                d.customer_id,
                                d.ship_to_site_id,
                                :l_user_id,
                                :l_sysdate,
                                :l_user_id,
                                :l_sysdate
                        FROM    msc_full_pegging peg1,
                                msc_demands d,
                                msc_supplies s,
                                msc_system_items msi
                        WHERE   d.demand_id = peg1.demand_id
                        AND     d.plan_id = peg1.plan_id
                        AND     d.sr_instance_id = peg1.sr_instance_id
                        AND	d.origination_type NOT IN (5,7,8,9,11,15,22,28,29,31,70)
                        AND     s.transaction_id = peg1.transaction_id
                        AND     s.plan_id = peg1.plan_id
                        AND     msi.plan_id = d.plan_id
                        AND     msi.inventory_item_id = d.inventory_item_id
                        AND     msi.sr_instance_id = d.sr_instance_id
                        AND     msi.organization_id = d.organization_id
                        --AND     nvl(msi.product_family_id, msi.inventory_item_id)<>msi.inventory_item_id
                        AND     msi.aggregate_time_fence_date is not null
                        AND     msi.bom_item_type <> 5
                        AND     msi.plan_id = :p_plan_id
                        GROUP BY
                                peg1.plan_id,
                                decode(sign(s.new_schedule_date - msi.aggregate_time_fence_date),
                                           1, msi.product_family_id,
                                           msi.inventory_item_id),
                                msi.inventory_item_id,
                                peg1.organization_id,
                                peg1.sr_instance_id,
                                d.demand_class,
                                decode(sign(trunc(s.new_schedule_date) - msi.aggregate_time_fence_date),
                                       1, decode(sign(trunc(DECODE('||MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF||',
                                                                   2, NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
                                                                      NVL(D.SCHEDULE_SHIP_DATE,
                                                                          D.USING_ASSEMBLY_DEMAND_DATE)))
                                                                          - msi.aggregate_time_fence_date),
                                              1, trunc(DECODE('||MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF||',
                                                              2, NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
                                                                 NVL(D.SCHEDULE_SHIP_DATE,
                                                                     D.USING_ASSEMBLY_DEMAND_DATE))),
                                              msi.aggregate_time_fence_date+1),
                                       decode(sign(trunc(DECODE('||MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF||',
                                                                2, NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
                                                                   NVL(D.SCHEDULE_SHIP_DATE,
                                                                       D.USING_ASSEMBLY_DEMAND_DATE))) - msi.aggregate_time_fence_date),
                                           1, msi.aggregate_time_fence_date,
                                           trunc(DECODE('||MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF||',
                                                        2, NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
                                                           NVL(D.SCHEDULE_SHIP_DATE,
                                                               D.USING_ASSEMBLY_DEMAND_DATE))))),
                                trunc(DECODE('||MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF||',
                                             2, NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
                                                NVL(D.SCHEDULE_SHIP_DATE,
                                                    D.USING_ASSEMBLY_DEMAND_DATE))),
                                d.demand_id,
                                51,
                                d.origination_type,
                                decode(sign(trunc(s.new_schedule_date) - msi.aggregate_time_fence_date),
                                       1, decode(sign(trunc(DECODE('||MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF||',
                                                                   2, NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
                                                                      NVL(D.SCHEDULE_SHIP_DATE,
                                                                          D.USING_ASSEMBLY_DEMAND_DATE)))
                                                                          - msi.aggregate_time_fence_date),
                                              1, 1,
                                              NULL),
                                       decode(sign(trunc(DECODE('||MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF||',
                                                                2, NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
                                                                   NVL(D.SCHEDULE_SHIP_DATE,
                                                                       D.USING_ASSEMBLY_DEMAND_DATE)))
                                                                       - msi.aggregate_time_fence_date),
                                           1, NULL),
                                           1),
                		decode(d.origination_type, 1, to_char(d.disposition_id), d.order_number),
                                d.sales_order_line_id,
                                d.demand_source_type,--cmro
                                d.source_organization_id,
                                d.using_assembly_item_id,
                                d.customer_id,
                                d.ship_to_site_id,
                                :l_user_id,
                                :l_sysdate,
                                :l_user_id,
                                :l_sysdate
                        )';
Line: 11457

                INSERT INTO MSC_ALLOC_DEMANDS(';
Line: 11460

                INSERT INTO ' || p_temp_table || '(';
Line: 11487

                        last_updated_by,
                        last_update_date)
		(
		SELECT  /*+ use_hash(mv) parallel(mv,' || to_char(p_parallel_degree) || ')
				full(peg1.d1) full(peg1.d2) full(peg1.peg1) full(peg1.peg2) full(mv) full(peg1.tp) */
/*                        pegging_v.plan_id,
                        pegging_v.inventory_item_id,
                        pegging_v.original_item_id,
                        pegging_v.organization_id,
                        pegging_v.sr_instance_id,
                        NVL(mv.demand_class, :def_num) demand_class,
                        pegging_v.demand_date,
                        pegging_v.original_demand_date,
                        MIN(pegging_v.demand_quantity),
                        SUM(pegging_v.allocated_quantity),
                        pegging_v.parent_demand_id,
                        pegging_v.origination_type,
                        pegging_v.original_origination_type,
                        pegging_v.pf_display_flag,
                        pegging_v.order_number,
                        pegging_v.sales_order_line_id,
                        pegging_v.demand_source_type,--cmro
                        pegging_v.source_organization_id,
                        pegging_v.using_assembly_item_id,
                        pegging_v.customer_id,
                        pegging_v.ship_to_site_id,
			:l_user_id,
			:l_sysdate,
			:l_user_id,
			:l_sysdate
		FROM
                        (SELECT /*+ ordered use_hash(d2 peg2 peg1 tp)
					parallel(d2,' || to_char(p_parallel_degree) || ')
					parallel(d1,' || to_char(p_parallel_degree) || ')
					parallel(peg2,' || to_char(p_parallel_degree) || ')
					parallel(peg1,' || to_char(p_parallel_degree) || ')
                                        parallel(tp,'  || to_char(p_parallel_degree) || ') */
/*                                peg2.plan_id plan_id,
                                decode(sign(s.new_schedule_date - msi.aggregate_time_fence_date),
                                           1, msi.product_family_id,
                                           msi.inventory_item_id) inventory_item_id,
                                msi.inventory_item_id original_item_id,
                                peg2.organization_id,
                                peg2.sr_instance_id,
				NVL(d1.demand_class, :def_num) demand_class,
                                decode(msi.aggregate_time_fence_date,
                                           NULL, trunc(DECODE('||MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF||',
                                                              2, NVL(d2.PLANNED_SHIP_DATE,d2.USING_ASSEMBLY_DEMAND_DATE),
                                                                 NVL(d2.SCHEDULE_SHIP_DATE,
                                                                     d2.USING_ASSEMBLY_DEMAND_DATE))),
                                           decode(sign(trunc(s.new_schedule_date) - msi.aggregate_time_fence_date),
                                               1, decode(sign(trunc(DECODE('||MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF||',
                                                              2, NVL(d2.PLANNED_SHIP_DATE,d2.USING_ASSEMBLY_DEMAND_DATE),
                                                                 NVL(d2.SCHEDULE_SHIP_DATE,
                                                                     d2.USING_ASSEMBLY_DEMAND_DATE))) - msi.aggregate_time_fence_date),
                                                      1, trunc(DECODE('||MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF||',
                                                                      2, NVL(d2.PLANNED_SHIP_DATE,d2.USING_ASSEMBLY_DEMAND_DATE),
                                                                         NVL(d2.SCHEDULE_SHIP_DATE,
                                                                             d2.USING_ASSEMBLY_DEMAND_DATE))),
                                                      msi.aggregate_time_fence_date+1),
                                               decode(sign(trunc(DECODE('||MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF||',
                                                                        2, NVL(d2.PLANNED_SHIP_DATE,d2.USING_ASSEMBLY_DEMAND_DATE),
                                                                           NVL(d2.SCHEDULE_SHIP_DATE,
                                                                               d2.USING_ASSEMBLY_DEMAND_DATE)))
                                                                               - msi.aggregate_time_fence_date),
                                                   1, msi.aggregate_time_fence_date,
                                                   trunc(DECODE('||MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF||',
                                                                2, NVL(d2.PLANNED_SHIP_DATE,d2.USING_ASSEMBLY_DEMAND_DATE),
                                                                   NVL(d2.SCHEDULE_SHIP_DATE,
                                                                       d2.USING_ASSEMBLY_DEMAND_DATE)))))) demand_date,
                                trunc(DECODE('||MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF||',
                                             2, NVL(d2.PLANNED_SHIP_DATE,d2.USING_ASSEMBLY_DEMAND_DATE),
                                                NVL(d2.SCHEDULE_SHIP_DATE,
                                                    d2.USING_ASSEMBLY_DEMAND_DATE))) original_demand_date,
                                decode(d2.origination_type, 4, d2.daily_demand_rate,
                		           d2.using_requirement_quantity) demand_quantity,
                                decode(msi.aggregate_time_fence_date,
                                       NULL, peg2.allocated_quantity,
                                       decode(msi.bom_item_type,
                                              5, 0,
                                              peg2.allocated_quantity)) allocated_quantity,
                                d2.demand_id parent_demand_id,
                                51 origination_type, -- ATP Bucketed Demand
                                d2.origination_type original_origination_type,
                                decode(sign(trunc(s.new_schedule_date) - msi.aggregate_time_fence_date),
                                       1, decode(sign(trunc(DECODE('||MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF||',
                                                                   2, NVL(d2.PLANNED_SHIP_DATE,d2.USING_ASSEMBLY_DEMAND_DATE),
                                                                      NVL(d2.SCHEDULE_SHIP_DATE,
                                                                          d2.USING_ASSEMBLY_DEMAND_DATE)))
                                                                          - msi.aggregate_time_fence_date),
                                              1, 1,
                                              NULL),
                                       decode(sign(trunc(DECODE('||MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF||',
                                                                2, NVL(d2.PLANNED_SHIP_DATE,d2.USING_ASSEMBLY_DEMAND_DATE),
                                                                   NVL(d2.SCHEDULE_SHIP_DATE,
                                                                       d2.USING_ASSEMBLY_DEMAND_DATE)))
                                                                       - msi.aggregate_time_fence_date),
                                           1, NULL),
                                           1) pf_display_flag,
                		decode(d2.origination_type, 1, to_char(d2.disposition_id), d2.order_number) order_number,
                                d2.sales_order_line_id,
                                d2.demand_source_type,--cmro
                                d2.source_organization_id,
                                d2.using_assembly_item_id,
                                d2.customer_id,
                                d2.ship_to_site_id,
                                decode(msi.aggregate_time_fence_date,
                                           NULL, msi.inventory_item_id,
                                           msi.product_family_id) product_family_id
                        FROM	msc_demands d2,
				msc_full_pegging peg2,
				msc_full_pegging peg1 ,
				msc_demands d1,
				msc_supplies s,
				msc_system_items msi
                        WHERE	peg2.plan_id = :p_plan_id
                        AND     peg2.plan_id = peg1.plan_id
                        AND	peg2.end_pegging_id = peg1.pegging_id
                        AND	peg2.sr_instance_id = peg1.sr_instance_id
                        AND	d1.plan_id = peg1.plan_id
                        AND	d1.demand_id = peg1.demand_id
                        AND	d1.sr_instance_id = peg1.sr_instance_id
                        AND	d2.plan_id = peg2.plan_id
                        AND	d2.demand_id = peg2.demand_id
                        AND	d2.sr_instance_id = peg2.sr_instance_id
                        AND	d2.origination_type NOT IN (5,7,8,9,11,15,22,28,29,31,70)
                	AND     peg2.sr_instance_id=s.sr_instance_id
                	AND     peg2.plan_id = s.plan_id
                	AND     peg2.transaction_id = s.transaction_id
                	AND     msi.plan_id = s.plan_id
                        AND     msi.inventory_item_id = s.inventory_item_id
                        AND     msi.sr_instance_id = s.sr_instance_id
                        AND     msi.organization_id = s.organization_id
                        ) pegging_v,
			msc_item_hierarchy_mv mv
		WHERE   pegging_v.product_family_id = mv.inventory_item_id(+)
		AND     pegging_v.organization_id = mv.organization_id (+)
		AND     pegging_v.sr_instance_id = mv.sr_instance_id (+)
		AND     pegging_v.demand_date >=  mv.effective_date (+)
		AND     pegging_v.demand_date <=  mv.disable_date (+)
		AND	pegging_v.demand_class = mv.demand_class (+)
		AND     mv.level_id (+) = -1
		AND     pegging_v.allocated_quantity <> 0
		GROUP BY
                        pegging_v.plan_id,
                        pegging_v.inventory_item_id,
                        pegging_v.original_item_id,
                        pegging_v.organization_id,
                        pegging_v.sr_instance_id,
                        NVL(mv.demand_class, :def_num),
                        pegging_v.demand_date,
                        pegging_v.original_demand_date,
                        pegging_v.parent_demand_id,
                        pegging_v.origination_type,
                        pegging_v.original_origination_type,
                        pegging_v.pf_display_flag,
                        pegging_v.order_number,
                        pegging_v.sales_order_line_id,
                        pegging_v.demand_source_type,--cmro
                        pegging_v.source_organization_id,
                        pegging_v.using_assembly_item_id,
                        pegging_v.customer_id,
                        pegging_v.ship_to_site_id,
			:l_user_id,
			:l_sysdate,
			:l_user_id,
			:l_sysdate)';
Line: 11691

                INSERT INTO MSC_ALLOC_SUPPLIES(';
Line: 11694

                INSERT INTO ' || p_temp_table || '(';
Line: 11728

                                last_updated_by,
                                last_update_date)
        		(
        	        SELECT	/*+  use_hash(pegging_v mv) parallel(mv,' || to_char(p_parallel_degree) || ')  */
/*                                pegging_v.plan_id plan_id,
                                pegging_v.inventory_item_id,
                                pegging_v.original_item_id,
                                pegging_v.organization_id,
                                pegging_v.sr_instance_id,
                                NVL(mv.demand_class, :def_num) demand_class,
                                pegging_v.supply_date,
                                pegging_v.transaction_id,
                                SUM(pegging_v.allocated_quantity),
                                MIN(pegging_v.supply_quantity),
                                pegging_v.order_type,
                                pegging_v.original_order_type,
                                pegging_v.order_number,
                                pegging_v.schedule_designator_id,
                                pegging_v.customer_id,
                                pegging_v.ship_to_site_id,
                                :l_user_id,
                                :l_sysdate,
                                :l_user_id,
                                :l_sysdate
                        FROM
                                (SELECT  /*+ ordered use_hash(peg2 peg1) use_hash(peg1 s msi)
                				parallel(peg2,' || to_char(p_parallel_degree) || ')
                				parallel(peg1,' || to_char(p_parallel_degree) || ')
                				parallel(s,' || to_char(p_parallel_degree) || ')
                                                parallel(msi,' || to_char(p_parallel_degree) || ') */
/*                                        peg1.plan_id plan_id,
                                        decode(msi.aggregate_time_fence_date,
                                                   NULL, msi.inventory_item_id,
                                                   decode(sign(TRUNC(s.new_schedule_date) - msi.aggregate_time_fence_date),
                                                       1, msi.product_family_id,
                                                       msi.inventory_item_id)) inventory_item_id,
                                        msi.inventory_item_id original_item_id,
                                        peg1.organization_id,
                                        peg1.sr_instance_id,
                                        NVL(s.demand_class, :def_num) demand_class,
                                        TRUNC(s.new_schedule_date) supply_date,
                                        decode(msi.aggregate_time_fence_date,
                                               NULL, peg1.allocated_quantity,
                                               decode(msi.bom_item_type,
                                                      5, 0,
                                                      peg1.allocated_quantity)) allocated_quantity,
                                        s.new_order_quantity supply_quantity,
                                        peg1.transaction_id,
                                        decode(msi.aggregate_time_fence_date,
                                                   NULL, s.order_type, 50) order_type
                                        s.order_type original_order_type,
                                        s.order_number,
                                        s.schedule_designator_id,
                                        s.customer_id,
                                        s.ship_to_site_id,
                                        decode(msi.aggregate_time_fence_date,
                                                   NULL, msi.inventory_item_id,
                                                   msi.product_family_id) product_family_id
                                FROM    msc_full_pegging peg2,
                                        msc_full_pegging peg1,
                                	msc_supplies s,
                                	msc_system_items msi
                                WHERE   peg1.plan_id = :p_plan_id
                                AND     peg2.plan_id = peg1.plan_id
                                AND     peg2.pegging_id = peg1.end_pegging_id
                                AND     peg2.demand_id IN (-1, -2)
                                AND     s.plan_id = peg1.plan_id
                                AND     s.transaction_id = peg1.transaction_id
                                AND     s.sr_instance_id = peg1.sr_instance_id
                                AND     msi.sr_instance_id = s.sr_instance_id
                                AND     msi.plan_id = s.plan_id
                                AND     msi.organization_id = s.organization_id
                                AND     msi.inventory_item_id = s.inventory_item_id) pegging_v,
                                msc_item_hierarchy_mv mv
                        WHERE	pegging_v.product_family_id = mv.inventory_item_id(+)
                        AND     pegging_v.organization_id = mv.organization_id (+)
                        AND     pegging_v.sr_instance_id = mv.sr_instance_id (+)
                        AND     pegging_v.supply_date >=  mv.effective_date (+)
                        AND     pegging_v.supply_date <=  mv.disable_date (+)
                        AND	pegging_v.demand_class = mv.demand_class (+)
                        AND     mv.level_id (+) = -1
                        AND     pegging_v.allocated_quantity <> 0
        		GROUP BY
                                pegging_v.plan_id plan_id,
                                pegging_v.inventory_item_id,
                                pegging_v.original_item_id,
                                pegging_v.organization_id,
                                pegging_v.sr_instance_id,
                                NVL(mv.demand_class, :def_num),
                                pegging_v.supply_date,
                                pegging_v.transaction_id,
                                pegging_v.order_type,
                                pegging_v.original_order_type,
                                pegging_v.order_number,
                                pegging_v.schedule_designator_id,
                                pegging_v.customer_id,
                                pegging_v.ship_to_site_id,
                                :l_user_id,
                                :l_sysdate,
                                :l_user_id,
                                :l_sysdate)';
Line: 11849

                                last_updated_by,
                                last_update_date)
        		(
        		SELECT  /*+ ordered use_hash(peg2 peg1) use_hash(peg1 s tp cal)
        				parallel(peg2,' || to_char(p_parallel_degree) || ')
        				parallel(peg1,' || to_char(p_parallel_degree) || ')
        				parallel(s,' || to_char(p_parallel_degree) || ')
                                        parallel(tp,' || to_char(p_parallel_degree) || ') */
/*                                peg1.plan_id plan_id,
                                decode(msi.aggregate_time_fence_date,
                                           NULL, msi.inventory_item_id,
                                           decode(sign(TRUNC(s.new_schedule_date) - msi.aggregate_time_fence_date),
                                               1, msi.product_family_id,
                                               msi.inventory_item_id)) inventory_item_id,
                                msi.inventory_item_id original_item_id,
                                peg1.organization_id,
                                peg1.sr_instance_id,
                                :def_num demand_class,
                                TRUNC(s.new_schedule_date) supply_date,
                                SUM(decode(msi.aggregate_time_fence_date,
                                       NULL, peg1.allocated_quantity,
                                       decode(msi.bom_item_type,
                                              5, 0,
                                              peg1.allocated_quantity))) allocated_quantity,
                                MIN(s.new_order_quantity) supply_quantity,
                                peg1.transaction_id,
                                decode(msi.aggregate_time_fence_date,
                                           NULL, s.order_type, 50) order_type,
                                s.order_type original_order_type,
                                s.order_number,
                                s.schedule_designator_id,
                                s.customer_id,
                                s.ship_to_site_id,
                                :l_user_id created_by,
                                :l_sysdate creation_date,
                                :l_user_id last_updated_by,
                                :l_sysdate last_update_date
        		FROM    msc_full_pegging peg2,
        		        msc_full_pegging peg1,
        			msc_supplies s,
        			msc_system_items msi
        		WHERE   peg1.plan_id = :p_plan_id
        		AND     peg2.plan_id = peg1.plan_id
        		AND     peg2.pegging_id = peg1.end_pegging_id
        		AND     peg2.demand_id IN (-1, -2)
        		AND     s.plan_id = peg1.plan_id
        		AND     s.transaction_id = peg1.transaction_id
        		AND     s.sr_instance_id = peg1.sr_instance_id
                        AND     msi.sr_instance_id = s.sr_instance_id
                        AND     msi.plan_id = s.plan_id
                        AND     msi.organization_id = s.organization_id
                        AND     msi.inventory_item_id = s.inventory_item_id
                        GROUP BY
                                peg1.plan_id,
                                decode(msi.aggregate_time_fence_date,
                                           NULL, msi.inventory_item_id,
                                           decode(sign(TRUNC(s.new_schedule_date) - msi.aggregate_time_fence_date),
                                               1, msi.product_family_id,
                                               msi.inventory_item_id)),
                                msi.inventory_item_id,
                                peg1.organization_id,
                                peg1.sr_instance_id,
                                :def_num,
                                TRUNC(s.new_schedule_date),
                                peg1.transaction_id,
                                decode(msi.aggregate_time_fence_date,
                                           NULL, s.order_type, 50),
                                s.order_type,
                                s.order_number,
                                s.schedule_designator_id,
                                s.customer_id,
                                s.ship_to_site_id,
                                :l_user_id,
                                :l_sysdate,
                                :l_user_id,
                                :l_sysdate)';
Line: 11947

                                last_updated_by,
                                last_update_date)
        		(
                        select  :p_plan_id,
                                decode(sign(TRUNC(s.new_schedule_date) - i.aggregate_time_fence_date),
                                        1, i.product_family_id, s.inventory_item_id),
                                s.inventory_item_id,
                                s.organization_id,
                                s.sr_instance_id,
                                s.demand_class,
                                TRUNC(s.new_schedule_date),
                                s.transaction_id,
                                s.new_order_quantity,
                                s.new_order_quantity,
                                50,
                                s.order_type,
                                s.order_number,
                                s.schedule_designator_id,
                                s.customer_id,
                                s.ship_to_site_id,
                                :l_user_id,
                                :l_sysdate,
                                :l_user_id,
                                :l_sysdate
                        from    msc_supplies s,
                                msc_system_items i
                        where   i.aggregate_time_fence_date is not null
                        and     i.bom_item_type <> 5
                        and     i.plan_id = :p_plan_id
                        and     s.inventory_item_id = i.inventory_item_id
                        and     s.organization_id = i.organization_id
                        and     s.sr_instance_id = i.sr_instance_id
                        and     s.plan_id = i.plan_id
                        )';
Line: 12013

                INSERT INTO MSC_ALLOC_SUPPLIES(';
Line: 12016

                INSERT INTO ' || p_temp_table || '(';
Line: 12038

                        last_updated_by,
                        last_update_date)
		(
		SELECT	/*+  use_hash(peg1 mv) parallel(mv,' || to_char(p_parallel_degree) || ')  */
/*                        pegging_v.plan_id,
                        pegging_v.inventory_item_id,
                        pegging_v.original_item_id,
                        pegging_v.organization_id,
                        pegging_v.sr_instance_id,
                        NVL(mv.demand_class, :def_num) demand_class,
                        pegging_v.supply_date,
                        pegging_v.transaction_id,
                        SUM(pegging_v.allocated_quantity),
                        MIN(pegging_v.supply_quantity),
                        pegging_v.order_type,
                        pegging_v.original_order_type,
                        pegging_v.order_number,
                        pegging_v.schedule_designator_id,
                        pegging_v.customer_id,
                        pegging_v.ship_to_site_id,
                        :l_user_id,
                        :l_sysdate,
                        :l_user_id,
                        :l_sysdate
		FROM
			(SELECT /*+  ordered use_hash(s peg2 peg1 d tp cal)
					parallel(peg2,' || to_char(p_parallel_degree) || ')
					parallel(peg1,' || to_char(p_parallel_degree) || ')
					parallel(s,' || to_char(p_parallel_degree) || ')
					parallel(d,' || to_char(p_parallel_degree) || ')
                                        parallel(tp,' || to_char(p_parallel_degree) || ') */
/*                                peg2.plan_id plan_id,
                                decode(msi.aggregate_time_fence_date,
                                           NULL, msi.inventory_item_id,
                                           decode(sign(TRUNC(s.new_schedule_date) - msi.aggregate_time_fence_date),
                                               1, msi.product_family_id,
                                               msi.inventory_item_id)) inventory_item_id,
                                msi.inventory_item_id original_item_id,
                                peg2.organization_id,
                                peg2.sr_instance_id,
                                NVL(d.demand_class, :def_num) demand_class,
                                TRUNC(s.new_schedule_date) supply_date,
                                decode(msi.aggregate_time_fence_date,
                                       NULL, peg2.allocated_quantity,
                                       decode(msi.bom_item_type,
                                              5, 0,
                                              peg2.allocated_quantity)) allocated_quantity,
                                s.new_order_quantity supply_quantity,
                                peg2.transaction_id,
                                decode(msi.aggregate_time_fence_date,
                                           NULL, s.order_type, 50) order_type,
                                s.order_type original_order_type,
                                s.order_number,
                                s.schedule_designator_id,
                                s.customer_id,
                                s.ship_to_site_id,
                                decode(msi.aggregate_time_fence_date,
                                           NULL, msi.inventory_item_id,
                                           msi.product_family_id) product_family_id
			FROM	msc_supplies s,
				msc_full_pegging peg2,
				msc_full_pegging peg1,
				msc_demands d,
                                msc_system_items msi
			WHERE	peg2.plan_id = :p_plan_id
			  AND   peg2.plan_id = peg1.plan_id
			  AND	peg2.end_pegging_id = peg1.pegging_id
			  AND	d.plan_id = peg1.plan_id
			  AND	d.demand_id = peg1.demand_id
			  AND	d.sr_instance_id = peg1.sr_instance_id
			  AND	d.inventory_item_id = peg1.inventory_item_id
			  AND	s.plan_id = peg2.plan_id
			  AND	s.transaction_id = peg2.transaction_id
			  AND	s.sr_instance_id = peg2.sr_instance_id
                          AND   msi.sr_instance_id = s.sr_instance_id
                          AND   msi.plan_id = s.plan_id
                          AND   msi.organization_id = s.organization_id
                          AND   msi.inventory_item_id = s.inventory_item_id
                        ) pegging_v,
			msc_item_hierarchy_mv mv
		WHERE	pegging_v.product_family_id = mv.inventory_item_id(+)
		AND     pegging_v.organization_id = mv.organization_id (+)
		AND     pegging_v.sr_instance_id = mv.sr_instance_id (+)
		AND     pegging_v.supply_date >=  mv.effective_date (+)
		AND     pegging_v.supply_date <=  mv.disable_date (+)
		AND	pegging_v.demand_class = mv.demand_class (+)
		AND     mv.level_id (+) = -1
		AND     pegging_v.allocated_quantity <> 0
		GROUP BY
                        pegging_v.plan_id,
                        pegging_v.inventory_item_id,
                        pegging_v.original_item_id,
                        pegging_v.organization_id,
                        pegging_v.sr_instance_id,
                        NVL(mv.demand_class, :def_num),
                        pegging_v.supply_date,
                        pegging_v.transaction_id,
                        pegging_v.order_type,
                        pegging_v.original_order_type,
                        pegging_v.order_number,
                        pegging_v.schedule_designator_id,
                        pegging_v.customer_id,
                        pegging_v.ship_to_site_id,
                        :l_user_id,
                        :l_sysdate,
                        :l_user_id,
                        :l_sysdate)';
Line: 12155

/*--Update_Pf_Display_Flag-----------------------------------------------------
|  o  Called from Pf_Post_Plan_Proc procedure to update Pf_Display_Flag to
|       handle scenario when a demand on one side of ATF is satisfied fully
|       from supplies on the other side of ATF.
+----------------------------------------------------------------------------*/
PROCEDURE Update_Pf_Display_Flag(
	p_plan_id                       IN      NUMBER,
        x_return_status                 OUT     NOCOPY VARCHAR2
)
IS
        l_return_status                 VARCHAR2(1);
Line: 12169

                msc_util.msc_log('Update_Pf_Display_Flag: ' || 'p_plan_id: ' || p_plan_id);
Line: 12177

        UPDATE  MSC_ALLOC_DEMANDS AD
        SET     Pf_Display_Flag = 1
        WHERE   AD.plan_id = p_plan_id
        --AND     AD.allocated_quantity = Demand_Quantity
        AND     AD.pf_display_flag is NULL
        AND     (AD.parent_demand_id, AD.demand_class, 1) in
                    (SELECT AD2.parent_demand_id, AD2.demand_class, count(*)
                     FROM   MSC_ALLOC_DEMANDS AD2
                     WHERE  AD2.plan_id = p_plan_id
                     GROUP BY AD2.parent_demand_id, AD2.demand_class
                    )
        AND     EXISTS (SELECT  1
                        FROM    MSC_SYSTEM_ITEMS I
                        WHERE   I.inventory_item_id = AD.inventory_item_id
                        AND     I.organization_id   = AD.organization_id
                        AND     I.sr_instance_id    = AD.sr_instance_id
                        AND     I.plan_id           = AD.plan_id
                        AND     I.aggregate_time_fence_date is not null);
Line: 12197

        UPDATE  MSC_ALLOC_DEMANDS AD
        SET     Pf_Display_Flag = 1
        WHERE   AD.plan_id = p_plan_id
        AND     AD.pf_display_flag is NULL
        AND     EXISTS (SELECT 1
                        FROM   MSC_ALLOC_DEMANDS AD2
                        WHERE  AD2.plan_id = p_plan_id
                        AND    AD.parent_demand_id = AD2.parent_demand_id
                        AND    AD.demand_class = AD2.demand_class
                        GROUP BY AD2.parent_demand_id, AD2.demand_class
                        HAVING count(*) = 1)
        AND     EXISTS (SELECT  1
                        FROM    MSC_SYSTEM_ITEMS I
                        WHERE   I.inventory_item_id = AD.inventory_item_id
                        AND     I.organization_id   = AD.organization_id
                        AND     I.sr_instance_id    = AD.sr_instance_id
                        AND     I.plan_id           = AD.plan_id
                        AND     I.aggregate_time_fence_date is not null);
Line: 12218

                        msc_util.msc_log('Update_Pf_Display_Flag: ' || 'Error occurred: ' || to_char(sqlcode) || ':' || SQLERRM);
Line: 12222

END Update_Pf_Display_Flag;
Line: 12226

|  o  Called from Gen_Atp_Pegging procedure to insert bucketed demands and
|       rollup supplies in MSC_ATP_PEGGING in demand priority cases
+----------------------------------------------------------------------------*/

PROCEDURE Create_PF_DP_Alloc_Reliefs (p_plan_id         IN          NUMBER,
                                         p_insert_table    IN          VARCHAR2,
                                         p_user_id         IN          NUMBER,
                                         p_sysdate         IN          DATE,
                                         x_return_status   OUT NOCOPY  VARCHAR2
                                        )
IS

l_sql_stmt                      VARCHAR2(800);
Line: 12250

     msc_sch_wb.atp_debug(' Insert Table parameter : ' || p_insert_table );
Line: 12258

       msc_sch_wb.atp_debug(' Inserting Demands');
Line: 12261

    l_sql_stmt_1 := 'INSERT INTO  ' || p_insert_table ||
             '(reference_item_id,
             inventory_item_id,
             original_item_id,
             original_date,
             plan_id,
             sr_instance_id,
             organization_id,
             sales_order_line_id,
             demand_source_type,
             end_demand_id,
             bom_item_type,
             sales_order_qty,
             transaction_date,
             demand_id,
             demand_quantity,
             disposition_id,
             demand_class,
             consumed_qty,
             overconsumption_qty,
             supply_id,
             supply_quantity,
             allocated_quantity,
             relief_type,
             relief_quantity,
             pegging_id,
             prev_pegging_id,
             end_pegging_id,
             created_by,
             creation_date,
             last_updated_by,
             last_update_date,
             customer_id,
             customer_site_id,
 			 offset_type)
    SELECT
             peg_v.reference_item_id,
             peg_v.inventory_item_id,
             peg_v.original_item_id,
             peg_v.original_date,
             peg_v.plan_id,
             peg_v.sr_instance_id,
             peg_v.organization_id,
             peg_v.sales_order_line_id,
             peg_v.demand_source_type,
             peg_v.end_demand_id,
             peg_v.bom_item_type,
             peg_v.sales_order_qty,
             peg_v.transaction_date,
             peg_v.demand_id ,
             peg_v.demand_quantity,
             peg_v.disposition_id,
             NVL(mv.demand_class, :l_def_dmd_class) demand_class ,
             peg_v.consumed_qty,
             peg_v.overconsumption_qty,
             peg_v.supply_id,
             peg_v.supply_quantity,
             peg_v.allocated_quantity,
             peg_v.relief_type,
             peg_v.relief_quantity,
             peg_v.pegging_id,
             peg_v.prev_pegging_id,
             peg_v.end_pegging_id,
             :p_user_id,
             :p_sysdate,
             :p_user_id,
             :p_sysdate,
             mv.partner_id,
             mv.partner_site_id,
 			 peg_v.offset_type

    FROM
        (SELECT mapt.reference_item_id reference_item_id,
                decode(mapt.atf_date,
                       NULL, mapt.inventory_item_id,
                       decode(sign(trunc(s.new_schedule_date) - mapt.atf_date),
                              1, mapt.product_family_id,
                              mapt.inventory_item_id
                              )
                       ) inventory_item_id,
                mapt.inventory_item_id original_item_id,
                mapt.transaction_date original_date,
                mapt.plan_id plan_id,
                mapt.sr_instance_id sr_instance_id,
                mapt.organization_id organization_id,
                mapt.sales_order_line_id sales_order_line_id,
                mapt.demand_source_type demand_source_type,
                mapt.end_demand_id end_demand_id,
                mapt.bom_item_type bom_item_type,
                mapt.sales_order_qty sales_order_qty,
                decode(mapt.atf_date,
                       NULL, trunc(mapt.transaction_date),
                       decode(sign(trunc(s.new_schedule_date) - mapt.atf_date),
                         1, decode(sign(trunc(mapt.transaction_date)- mapt.atf_date),
                                        1, trunc(mapt.transaction_date),
                                        mapt.atf_date+1
                                  ),
                         decode(sign(trunc(mapt.transaction_date)- mapt.atf_date),
                                     1, mapt.atf_date,
                                     trunc(mapt.transaction_date)
                                )
                              )
                       )transaction_date,
                mapt.demand_id demand_id,
                mapt.demand_quantity demand_quantity,
                mapt.disposition_id disposition_id,
                NVL(mapt.demand_class, :l_def_dmd_class) demand_class ,
                mapt.consumed_qty consumed_qty,
                mapt.overconsumption_qty overconsumption_qty,
                mapt.supply_id supply_id,
                mapt.supply_quantity supply_quantity,
                mapt.allocated_quantity allocated_quantity,
                decode(mapt.atf_date,
                       NULL,5,7) relief_type,
                mapt.relief_quantity  relief_quantity,
                mapt.pegging_id pegging_id,
                mapt.prev_pegging_id prev_pegging_id,
                mapt.end_pegging_id end_pegging_id,
                mapt.atf_date atf_date,
                mapt.product_family_id product_family_id,
		mapt.offset_type
        FROM    msc_atp_peg_temp mapt,
                msc_supplies s
        WHERE   mapt.plan_id = :p_plan_id
        AND     mapt.relief_type = 3

        AND     s.sr_instance_id = mapt.sr_instance_id
        AND     s.plan_id = mapt.plan_id
        AND     s.transaction_id = mapt.supply_id) peg_v,
                msc_item_hierarchy_mv mv
    WHERE
             decode(peg_v.atf_date,
                       NULL,peg_v.inventory_item_id,
                       peg_v.product_family_id) = mv.inventory_item_id(+)
     AND     peg_v.organization_id = mv.organization_id (+)
     AND     peg_v.sr_instance_id = mv.sr_instance_id (+)
     AND     peg_v.transaction_date >=  mv.effective_date (+)
     AND     peg_v.transaction_date <=  mv.disable_date (+)
     AND     peg_v.demand_class = mv.demand_class (+)
     AND     mv.level_id (+) = -1';
Line: 12411

        msc_sch_wb.atp_debug('Create_PF_DP_Alloc_Reliefs:  Number of Demand rows inserted '||
                               SQL%ROWCOUNT);
Line: 12416

     msc_sch_wb.atp_debug(' Inserting Supplies');
Line: 12419

    l_sql_stmt_1 := 'INSERT INTO  ' || p_insert_table ||
             '(reference_item_id,
             inventory_item_id,
             plan_id,
             sr_instance_id,
             organization_id,
             sales_order_line_id,
             demand_source_type,
             end_demand_id,
             bom_item_type,
             sales_order_qty,
             transaction_date,
             demand_id,
             demand_quantity,
             disposition_id,
             demand_class,
             consumed_qty,
             overconsumption_qty,
             supply_id,
             supply_quantity,
             allocated_quantity,
             relief_type,
             relief_quantity,
             pegging_id,
             prev_pegging_id,
             end_pegging_id,
             created_by,
             creation_date,
             last_updated_by,
             last_update_date,
             customer_id,
             customer_site_id,
		offset_type)
    SELECT   mapt.reference_item_id,
             mapt.inventory_item_id,
             mapt.plan_id,
             mapt.sr_instance_id,
             mapt.organization_id,
             mapt.sales_order_line_id,
             mapt.demand_source_type,
             mapt.end_demand_id,
             mapt.bom_item_type,
             mapt.sales_order_qty,
             mapt.transaction_date,
             mapt.demand_id ,
             mapt.demand_quantity,
             mapt.disposition_id,
             NVL(mv.demand_class, :l_def_dmd_class) demand_class ,
             mapt.consumed_qty,
             mapt.overconsumption_qty,
             mapt.supply_id,
             mapt.supply_quantity,
             mapt.allocated_quantity ,
             6,
             mapt.relief_quantity ,
             mapt.pegging_id,
             mapt.prev_pegging_id,
             mapt.end_pegging_id,
             :p_user_id,
             :p_sysdate,
             :p_user_id,
             :p_sysdate,
             mv.partner_id,
             mv.partner_site_id customer_site_id,
		mapt.offset_type
    FROM    msc_atp_peg_temp mapt, msc_item_hierarchy_mv mv
    WHERE   mapt.plan_id = :p_plan_id
    AND     mapt.relief_type = 2
    AND     mapt.inventory_item_id = mv.inventory_item_id(+)
    AND     mapt.organization_id = mv.organization_id (+)
    AND     mapt.sr_instance_id = mv.sr_instance_id (+)
    AND     mapt.transaction_date >=  mv.effective_date (+)
    AND     mapt.transaction_date <=  mv.disable_date (+)
    AND     mapt.demand_class = mv.demand_class (+)
    AND     mv.level_id (+) = -1 '
    ;
Line: 12501

        msc_sch_wb.atp_debug('Create_PF_DP_Alloc_Reliefs:  Number of Supply rows inserted '||
                               SQL%ROWCOUNT);
Line: 12516

|  o  Called from Gen_Atp_Pegging procedure to insert bucketed demands and
|       rollup supplies in MSC_ATP_PEGGING in non demand priority cases
+----------------------------------------------------------------------------*/

PROCEDURE Create_PF_Allocation_Reliefs (p_plan_id         IN          NUMBER,
                                         p_insert_table    IN          VARCHAR2,
                                         p_user_id         IN          NUMBER,
                                         p_sysdate         IN          DATE,
                                         x_return_status   OUT NOCOPY  VARCHAR2
                                        )
IS

l_sql_stmt                      VARCHAR2(800);
Line: 12535

     msc_sch_wb.atp_debug(' Insert Table parameter : ' || p_insert_table );
Line: 12543

       msc_sch_wb.atp_debug(' Inserting Demands');
Line: 12547

    l_sql_stmt_1 := 'INSERT INTO  ' || p_insert_table || -- actually the insert table parameter.
             '(reference_item_id,
             inventory_item_id,
             original_item_id,
             original_date,
             plan_id,
             sr_instance_id,
             organization_id,
             sales_order_line_id,
             demand_source_type,
             end_demand_id,
             bom_item_type,
             sales_order_qty,
             transaction_date,
             demand_id,
             demand_quantity,
             disposition_id,
             consumed_qty,
             overconsumption_qty,
             supply_id,
             supply_quantity,
             allocated_quantity,
             relief_type,
             relief_quantity,
             pegging_id,
             prev_pegging_id,
             end_pegging_id,
             created_by,
             creation_date,
             last_updated_by,
             last_update_date,
             customer_id,
             customer_site_id)
    SELECT   mapt.reference_item_id reference_item_id,
             decode(sign(trunc(s.new_schedule_date) - mapt.atf_date),
                         1, mapt.product_family_id,
                            mapt.inventory_item_id) inventory_item_id,
             mapt.inventory_item_id,
             mapt.transaction_date,
             mapt.plan_id plan_id,
             mapt.sr_instance_id sr_instance_id,
             mapt.organization_id organization_id,
             mapt.sales_order_line_id sales_order_line_id,
             mapt.demand_source_type demand_source_type,
             mapt.end_demand_id end_demand_id,
             mapt.bom_item_type bom_item_type,
             mapt.sales_order_qty sales_order_qty,
             decode(sign(trunc(s.new_schedule_date) - mapt.atf_date),
                         1, decode(sign(trunc(mapt.transaction_date)- mapt.atf_date),
                                        1, trunc(mapt.transaction_date),
                                        mapt.atf_date+1),
                         decode(sign(trunc(mapt.transaction_date)- mapt.atf_date),
                                     1, mapt.atf_date,
                                     trunc(mapt.transaction_date)
                                )
                    ) transaction_date,
             mapt.demand_id demand_id,
             mapt.demand_quantity demand_quantity,
             mapt.disposition_id disposition_id,
             mapt.consumed_qty consumed_qty,
             mapt.overconsumption_qty overconsumption_qty,
             mapt.supply_id supply_id,
             mapt.supply_quantity supply_quantity,
             mapt.allocated_quantity allocated_quantity,
             7 relief_type, --PF ATP
             mapt.relief_quantity relief_quantity,
             mapt.pegging_id pegging_id,
             mapt.prev_pegging_id prev_pegging_id,
             mapt.end_pegging_id end_pegging_id,
             :p_user_id,
             :p_sysdate,
             :p_user_id,
             :p_sysdate,
             mapt.customer_id,
             mapt.customer_site_id
    FROM    msc_atp_peg_temp mapt,
            msc_supplies s
    WHERE   mapt.plan_id = :p_plan_id
    AND     mapt.relief_type = 3

    AND     s.sr_instance_id = mapt.sr_instance_id
    AND     s.plan_id = mapt.plan_id
    AND     s.transaction_id = mapt.supply_id';
Line: 12638

        msc_sch_wb.atp_debug('Create_PF_Allocation_Reliefs:  Number of Demand rows inserted '||
                               SQL%ROWCOUNT);