The following lines contain the word 'select', 'insert', 'update' or 'delete':
INSERT INTO msc_atp_sd_details_temp (
session_id,
Atp_Level,
order_line_id,
scenario_id,
inventory_item_id,
request_item_id,
department_id,
resource_id,
Supplier_id,
Supplier_Site_id,
UOM_code,
Supply_Demand_Type,
Supply_Demand_Source_Type,
Identifier1,
Supply_Demand_Date,
Supply_Demand_Quantity,
creation_date,
created_by,
last_update_date,
last_updated_by,
last_update_login,
-- time_phased_atp changes begin
organization_id,
original_item_id,
original_supply_demand_type,
original_demand_date,
original_demand_quantity,
allocated_quantity,
pf_display_flag
-- time_phased_atp changes end
) VALUES (
MSC_ATP_PVT.G_SESSION_ID,
x_atp_supply_demand.level(k),
x_atp_supply_demand.identifier(k),
x_atp_supply_demand.scenario_id(k),
x_atp_supply_demand.inventory_item_id(k),
x_atp_supply_demand.request_item_id(k),
x_atp_supply_demand.department_id(k),
x_atp_supply_demand.resource_id(k),
x_atp_supply_demand.supplier_id(k),
x_atp_supply_demand.supplier_site_id(k),
x_atp_supply_demand.uom(k),
x_atp_supply_demand.supply_demand_type(k),
x_atp_supply_demand.supply_demand_source_type(k),
x_atp_supply_demand.identifier1(k),
x_atp_supply_demand.supply_demand_date(k),
x_atp_supply_demand.supply_demand_quantity(k),
-- ship_rec_cal changes begin
l_sysdate,
G_USER_ID,
l_sysdate,
G_USER_ID,
G_USER_ID,
-- ship_rec_cal changes end
-- time_phased_atp changes begin
x_atp_supply_demand.organization_id(k),
x_atp_supply_demand.original_item_id(k),
x_atp_supply_demand.original_supply_demand_type(k),
x_atp_supply_demand.original_demand_date(k),
x_atp_supply_demand.original_demand_quantity(k),
x_atp_supply_demand.allocated_quantity(k),
x_atp_supply_demand.pf_display_flag(k)
-- time_phased_atp changes end
);
SELECT SD_DATE,
SUM(SD_QTY)
BULK COLLECT INTO
x_atp_dates,
x_atp_qtys
FROM (
SELECT --C.PRIOR_DATE SD_DATE, -- 2859130
GREATEST(
TRUNC(DECODE(RECORD_SOURCE,
2,
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2,
(NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))),
p_sys_next_date)SD_DATE, --plan by request date,promise date, schedule date--3099066
-- -1* D.USING_REQUIREMENT_QUANTITY*
-1*(D.USING_REQUIREMENT_QUANTITY - NVL(d.reserved_quantity, 0))* --5027568
DECODE(DECODE(G_HIERARCHY_PROFILE,
/*------------------------------------------------------------------------+
| rajjain begin 07/19/2002 |
| |
| Case 1: For internal sales orders [origination type is in (6,30) and |
| source_organization_id is not null and <> organization_id] |
| Return NULL |
| Case 2: For others if DEMAND_CLASS is null then return null |
| else if p_demand_class is '-1' then call |
| Get_Hierarchy_Demand_class else return DEMAND_CLASS |
+------------------------------------------------------------------------*/
1,
decode(MSC_ATP_PVT.G_INTERNAL_SALES_ORDER,'N', --10425563
decode(d.origination_type,
6, decode(d.source_organization_id,
NULL, DECODE(D.DEMAND_CLASS, null, null,
DECODE(p_demand_class, '-1',
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
null, null, p_item_id, p_org_id,
p_instance_id, TRUNC(
DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))),
--plan by request date,promise date, schedule date
p_level_id, D.DEMAND_CLASS),
D.DEMAND_CLASS)),
-23453, DECODE(D.DEMAND_CLASS, null, null,
DECODE(p_demand_class, '-1',
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
null, null, p_item_id, p_org_id,
p_instance_id, TRUNC(DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))),
p_level_id, D.DEMAND_CLASS), --plan by request date,promise date, schedule date
D.DEMAND_CLASS)),
d.organization_id, DECODE(D.DEMAND_CLASS, null, null,
DECODE(p_demand_class, '-1',
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
null, null, p_item_id, p_org_id,
p_instance_id, TRUNC(
DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))),
p_level_id, D.DEMAND_CLASS), --plan by request date,promise date, schedule date
D.DEMAND_CLASS)), TO_CHAR(NULL)),
30, decode(d.source_organization_id,
NULL, DECODE(D.DEMAND_CLASS, null, null,
DECODE(p_demand_class, '-1',
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
null, null, p_item_id, p_org_id,
p_instance_id, TRUNC(
DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))),
p_level_id, D.DEMAND_CLASS), --plan by request date,promise date, schedule date
D.DEMAND_CLASS)),
-23453, DECODE(D.DEMAND_CLASS, null, null,
DECODE(p_demand_class, '-1',
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
null, null, p_item_id, p_org_id,
p_instance_id, TRUNC(
DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))),
p_level_id, D.DEMAND_CLASS), --plan by request date,promise date, schedule date
D.DEMAND_CLASS)),
d.organization_id, DECODE(D.DEMAND_CLASS, null, null,
DECODE(p_demand_class, '-1',
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
null, null, p_item_id, p_org_id,
p_instance_id, TRUNC(
DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))),
p_level_id, D.DEMAND_CLASS), --plan by request date,promise date, schedule date
D.DEMAND_CLASS)), TO_CHAR(NULL)),
DECODE(D.DEMAND_CLASS, null, null,
DECODE(p_demand_class, '-1',
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
null, null, p_item_id, p_org_id,
p_instance_id, TRUNC(
DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))),
p_level_id, D.DEMAND_CLASS), --plan by request date,promise date, schedule date
D.DEMAND_CLASS))),
DECODE(D.DEMAND_CLASS, null, null, --10425563
DECODE(p_demand_class, '-1',
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
null, null, p_item_id, p_org_id,
p_instance_id, TRUNC(
DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))),
p_level_id, D.DEMAND_CLASS), --plan by request date,promise date, schedule date
D.DEMAND_CLASS)) ),
-- rajjain end
2, DECODE(D.CUSTOMER_ID, NULL, TO_CHAR(NULL),
0, TO_CHAR(NULL),
-- rajjain begin 07/19/2002
decode(MSC_ATP_PVT.G_INTERNAL_SALES_ORDER,'N', --10425563
decode(d.origination_type,
6, decode(d.source_organization_id,
NULL, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
p_org_id, p_instance_id,
TRUNC(DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))), --plan by request date,promise date, schedule date
p_level_id, NULL),
-23453, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
p_org_id, p_instance_id,
TRUNC(DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))), --plan by request date,promise date, schedule date
p_level_id, NULL),
d.organization_id, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
p_org_id, p_instance_id, TRUNC(DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))), --plan by request date,promise date, schedule date
p_level_id, NULL),
TO_CHAR(NULL)),
30, decode(d.source_organization_id,
NULL, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
p_org_id, p_instance_id,
TRUNC(DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))), --plan by request date,promise date, schedule date
p_level_id, NULL),
-23453, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
p_org_id, p_instance_id,
TRUNC(DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))), --plan by request date,promise date, schedule date
p_level_id, NULL),
d.organization_id, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
p_org_id, p_instance_id,
TRUNC(DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))), --plan by request date,promise date, schedule date
p_level_id, NULL),
TO_CHAR(NULL)),
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(D.CUSTOMER_ID, D.SHIP_TO_SITE_ID,
p_item_id, p_org_id, p_instance_id,
TRUNC(DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))))--plan by request date,promise date, schedule date
,p_level_id, NULL)),
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, --10425563
p_item_id, p_org_id, p_instance_id,
TRUNC(DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))))--plan by request date,promise date, schedule date
,p_level_id, NULL))
)),
-- rajjain end 07/19/2002
p_demand_class, 1,
Decode(D.Demand_Class, NULL, --4365873 If l_demand_class is not null and demand class is populated
-- on supplies record then 0 should be allocated.
MSC_AATP_FUNC.Get_Item_Demand_Alloc_Percent(p_plan_id,
D.DEMAND_ID,
TRUNC(DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))), --plan by request date,promise date, schedule date
D.USING_ASSEMBLY_ITEM_ID,
DECODE(D.SOURCE_ORGANIZATION_ID,
-23453, null,
D.SOURCE_ORGANIZATION_ID), -- 1665483
p_item_id,
p_org_id, -- 1665483
p_instance_id,
decode (d.origination_type, -100, 30,d.origination_type), --5027568
DECODE(G_HIERARCHY_PROFILE,
/*-----------------------------------------------------------------+
| rajjain begin 07/19/2002 |
| |
| Case 1: For internal sales orders [origination type is in (6,30) |
| and source_organization_id is not null |
| and <> organization_id] -> Return p_demand_class |
| Case 2: For others if DEMAND_CLASS is null then return null |
| else if p_demand_class is '-1' then call |
| Get_Hierarchy_Demand_class else return DEMAND_CLASS |
+-----------------------------------------------------------------*/
1,
decode(MSC_ATP_PVT.G_INTERNAL_SALES_ORDER,'N', --10425563
decode(d.origination_type,
6, decode(d.source_organization_id,
NULL, DECODE(D.DEMAND_CLASS, null, null,
DECODE(p_demand_class, '-1',
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
null, null, p_item_id, p_org_id,
p_instance_id, TRUNC(
DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))), --plan by request date,promise date, schedule date
p_level_id, D.DEMAND_CLASS),
D.DEMAND_CLASS)),
-23453, DECODE(D.DEMAND_CLASS, null, null,
DECODE(p_demand_class, '-1',
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
null, null, p_item_id, p_org_id,
p_instance_id,
TRUNC(DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))), --plan by request date,promise date, schedule date
p_level_id, D.DEMAND_CLASS),
D.DEMAND_CLASS)),
d.organization_id, DECODE(D.DEMAND_CLASS, null, null,
DECODE(p_demand_class, '-1',
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
null, null, p_item_id, p_org_id,
p_instance_id,
TRUNC(DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))), --plan by request date,promise date, schedule date
p_level_id, D.DEMAND_CLASS),
D.DEMAND_CLASS)),
p_demand_class),
30, decode(d.source_organization_id,
NULL, DECODE(D.DEMAND_CLASS, null, null,
DECODE(p_demand_class, '-1',
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
null, null, p_item_id, p_org_id,
p_instance_id,
TRUNC(DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))), --plan by request date,promise date, schedule date
p_level_id, D.DEMAND_CLASS),
D.DEMAND_CLASS)),
-23453, DECODE(D.DEMAND_CLASS, null, null,
DECODE(p_demand_class, '-1',
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
null, null, p_item_id, p_org_id,
p_instance_id,
TRUNC(DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))), --plan by request date,promise date, schedule date
p_level_id, D.DEMAND_CLASS),
D.DEMAND_CLASS)),
d.organization_id, DECODE(D.DEMAND_CLASS, null, null,
DECODE(p_demand_class, '-1',
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
null, null, p_item_id, p_org_id,
p_instance_id,
TRUNC(DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))), --plan by request date,promise date, schedule date
p_level_id, D.DEMAND_CLASS),
D.DEMAND_CLASS)),
p_demand_class),
DECODE(D.DEMAND_CLASS, null, null,
DECODE(p_demand_class, '-1',
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
null, null, p_item_id, p_org_id,
p_instance_id, TRUNC(
DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))))--plan by request date,promise date, schedule date
, p_level_id, D.DEMAND_CLASS),
D.DEMAND_CLASS))),
DECODE(D.DEMAND_CLASS, null, null, --10425563
DECODE(p_demand_class, '-1',
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
null, null, p_item_id, p_org_id,
p_instance_id, TRUNC(
DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))))--plan by request date,promise date, schedule date
, p_level_id, D.DEMAND_CLASS),
D.DEMAND_CLASS))),
-- rajjain end
2, DECODE(D.CUSTOMER_ID, NULL, p_demand_class,
0, p_demand_class,
-- rajjain begin 07/19/2002
decode(MSC_ATP_PVT.G_INTERNAL_SALES_ORDER,'N', --10425563
decode(d.origination_type,
6, decode(d.source_organization_id,
NULL, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
p_org_id, p_instance_id, TRUNC(DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))),
p_level_id, NULL),
-23453, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
p_org_id, p_instance_id, TRUNC(DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))),
p_level_id, NULL),
d.organization_id, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
p_org_id, p_instance_id, TRUNC(DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))),
p_level_id, NULL),
p_demand_class),
30, decode(d.source_organization_id,
NULL, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
p_org_id, p_instance_id, TRUNC(DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))),
p_level_id, NULL),
-23453, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
p_org_id, p_instance_id, TRUNC(DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))),
p_level_id, NULL),
d.organization_id, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
p_org_id, p_instance_id, TRUNC(DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))),
p_level_id, NULL),
p_demand_class),
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
D.CUSTOMER_ID, D.SHIP_TO_SITE_ID,
p_item_id, p_org_id, p_instance_id,
TRUNC(DECODE
(RECORD_SOURCE,
2,
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(
MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2,
NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)
)
)
),p_level_id, NULL)
),
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class( --10425563
D.CUSTOMER_ID, D.SHIP_TO_SITE_ID,
p_item_id, p_org_id, p_instance_id,
TRUNC(DECODE
(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(
MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2,
NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)
)
)
),p_level_id, NULL)
))),
-- rajjain end 07/19/2002
p_demand_class,
p_level_id),0)) SD_QTY --4365873
FROM -- MSC_CALENDAR_DATES C, -- 2859130
MSC_DEMANDS D
WHERE D.PLAN_ID = p_plan_id
AND D.SR_INSTANCE_ID = p_instance_id
AND D.INVENTORY_ITEM_ID = p_item_id
AND D.ORGANIZATION_ID = p_org_id
AND D.USING_REQUIREMENT_QUANTITY <> 0 --4501434
AND D.ORIGINATION_TYPE NOT IN (5,7,8,9,11,15,22,28,29,31,52,70) -- For summary enhancement
-- 2859130
-- Bug1990155, 1995835 exclude the expired lots demand datreya 9/18/2001
-- Bug 1530311, need to exclude forecast, ngoel 12/05/2000
-- AND C.CALENDAR_CODE = p_cal_code
-- AND C.EXCEPTION_SET_ID = p_cal_exc_set_id
-- AND C.SR_INSTANCE_ID = D.SR_INSTANCE_ID
-- since we store repetitive schedule demand in different ways for
-- ods (total quantity on start date) and pds (daily quantity from
-- start date to end date), we need to make sure we only select work day
-- for pds's repetitive schedule demand.
-- AND C.CALENDAR_DATE BETWEEN TRUNC(D.USING_ASSEMBLY_DEMAND_DATE) AND
-- TRUNC(NVL(D.ASSEMBLY_DEMAND_COMP_DATE,
-- D.USING_ASSEMBLY_DEMAND_DATE))
-- AND (( D.ORIGINATION_TYPE = 4
-- AND C.SEQ_NUM IS NOT NULL) OR
-- ( D.ORIGINATION_TYPE <> 4))
-- AND C.PRIOR_DATE < NVL(p_itf,
-- C.PRIOR_DATE + 1)
--bug3693892 added trunc
AND TRUNC(DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))) <
TRUNC(NVL(p_itf,DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))+1))
UNION ALL
SELECT --C.NEXT_DATE SD_DATE, -- 2859130
--TRUNC(NVL(S.FIRM_DATE, S.NEW_SCHEDULE_DATE)) SD_DATE,
GREATEST(TRUNC(NVL(S.FIRM_DATE, S.NEW_SCHEDULE_DATE)),p_sys_next_date) SD_DATE,--3099066
NVL(S.FIRM_QUANTITY,S.NEW_ORDER_QUANTITY)*
DECODE(DECODE(G_HIERARCHY_PROFILE,
--2424357: Convert the demand calls in case of others for
--- demand class allocated ATP
1, DECODE(S.DEMAND_CLASS, null, null,
DECODE(p_demand_class, '-1',
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
null,
null,
S.inventory_item_id,
p_org_id,
p_instance_id,
trunc(nvl(S.firm_date, S.new_schedule_date)),
-- c.next_date, -- 2859130
p_level_id,
S.DEMAND_CLASS),S.DEMAND_CLASS)),
2, DECODE(S.CUSTOMER_ID, NULL, TO_CHAR(NULL),
0, TO_CHAR(NULL),
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
S.CUSTOMER_ID,
S.SHIP_TO_SITE_ID,
S.inventory_item_id,
p_org_id,
p_instance_id,
trunc(nvl(S.firm_date, S.new_schedule_date)),
-- c.next_date, -- 2859130
p_level_id,
NULL))),
p_demand_class, 1,
NULL, nvl(MIHM.allocation_percent/100,1), --4365873
/*NVL(MSC_AATP_FUNC.Get_DC_Alloc_Percent(
p_instance_id,
s.inventory_item_id,
p_org_id,
null,
null,
p_demand_class,
-- c.next_date -- 2859130
trunc(nvl(s.firm_date, s.new_schedule_date))), 1),*/
DECODE(
MIHM.allocation_percent/100, --4365873
/*DECODE(MSC_AATP_FUNC.Get_DC_Alloc_Percent(
p_instance_id,
s.inventory_item_id,
p_org_id,
null,
null,
p_demand_class,
-- c.next_date -- 2859130
trunc(nvl(s.firm_date, s.new_schedule_date))),*/
NULL, 1,
0)) SD_QTY
FROM -- MSC_CALENDAR_DATES C, -- 2859130
MSC_SUPPLIES S,MSC_ITEM_HIERARCHY_MV MIHM
WHERE S.PLAN_ID = p_plan_id
AND S.SR_INSTANCE_ID = p_instance_id
AND S.INVENTORY_ITEM_ID = p_item_id
AND S.ORGANIZATION_ID = p_org_id
-- Exclude Cancelled Supplies 2460645
AND NVL(S.DISPOSITION_STATUS_TYPE, 1) <> 2 -- Bug 2460645
AND NVL(S.FIRM_QUANTITY,S.NEW_ORDER_QUANTITY) <> 0 -- 1243985
-- 2859130
-- AND C.CALENDAR_CODE = p_cal_code
-- AND C.EXCEPTION_SET_ID = p_cal_exc_set_id
-- AND C.SR_INSTANCE_ID = S.SR_INSTANCE_ID
-- AND C.CALENDAR_DATE BETWEEN TRUNC(NVL(S.FIRM_DATE,S.NEW_SCHEDULE_DATE))
-- AND TRUNC(NVL(S.LAST_UNIT_COMPLETION_DATE,
-- NVL(S.FIRM_DATE,S.NEW_SCHEDULE_DATE)))
-- AND DECODE(S.LAST_UNIT_COMPLETION_DATE,
-- NULL, C.NEXT_SEQ_NUM, C.SEQ_NUM) IS NOT NULL
-- AND C.NEXT_DATE >= DECODE(S.ORDER_TYPE, 27, TRUNC(SYSDATE),
-- 28, TRUNC(SYSDATE),
-- C.NEXT_DATE)
--AND C.NEXT_DATE < NVL(p_itf,
-- C.NEXT_DATE + 1)
AND trunc(NVL(S.FIRM_DATE, S.NEW_SCHEDULE_DATE)) >=
trunc(DECODE(S.ORDER_TYPE, 27, SYSDATE,
28, SYSDATE,
NVL(S.FIRM_DATE, S.NEW_SCHEDULE_DATE))) --4135752
AND trunc(NVL(S.FIRM_DATE, S.NEW_SCHEDULE_DATE)) < trunc(NVL(p_itf,
NVL(S.FIRM_DATE, S.NEW_SCHEDULE_DATE) + 1))
--4365873
AND S.INVENTORY_ITEM_ID = MIHM.INVENTORY_ITEM_ID(+)
AND S.SR_INSTANCE_ID = MIHM.SR_INSTANCE_ID (+)
AND S.ORGANIZATION_ID = MIHM.ORGANIZATION_ID (+)
AND decode(MIHM.level_id (+),-1,1,2) = decode(G_HIERARCHY_PROFILE,1,1,2)
AND trunc(NVL(S.FIRM_DATE, S.NEW_SCHEDULE_DATE)) >= MIHM.effective_date (+)
AND trunc(NVL(S.FIRM_DATE, S.NEW_SCHEDULE_DATE)) <= MIHM.disable_date (+)
AND MIHM.demand_class (+) = p_demand_class
)
GROUP BY SD_DATE
ORDER BY SD_DATE; --4698199
SELECT SD_DATE,
SUM(SD_QTY)
BULK COLLECT INTO
x_atp_dates,
x_atp_qtys
FROM (
SELECT ---C.CALENDAR_DATE SD_DATE,
GREATEST(C.CALENDAR_DATE,p_sys_next_date) SD_DATE,--3099066
-1* DECODE(D.ORIGINATION_TYPE,
4, D.DAILY_DEMAND_RATE,
--D.USING_REQUIREMENT_QUANTITY)*
(D.USING_REQUIREMENT_QUANTITY - NVL(d.reserved_quantity, 0)))* --5027568
DECODE(DECODE(G_HIERARCHY_PROFILE,
/*------------------------------------------------------------------------+
| rajjain begin 07/19/2002 |
| |
| Case 1: For internal sales orders [origination type is in (6,30) and |
| source_organization_id is not null and <> organization_id] |
| Return NULL |
| Case 2: For others if DEMAND_CLASS is null then return null |
| else if p_demand_class is '-1' then call |
| Get_Hierarchy_Demand_class else return DEMAND_CLASS |
+------------------------------------------------------------------------*/
1,
decode(MSC_ATP_PVT.G_INTERNAL_SALES_ORDER,'N', --10425563
decode(d.origination_type,
6, decode(d.source_organization_id,
NULL, DECODE(D.DEMAND_CLASS, null, null,
DECODE(p_demand_class, '-1',
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
null, null, p_item_id, p_org_id,
p_instance_id, c.calendar_date, p_level_id, D.DEMAND_CLASS),
D.DEMAND_CLASS)),
-23453, DECODE(D.DEMAND_CLASS, null, null,
DECODE(p_demand_class, '-1',
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
null, null, p_item_id, p_org_id,
p_instance_id, c.calendar_date, p_level_id, D.DEMAND_CLASS),
D.DEMAND_CLASS)),
d.organization_id, DECODE(D.DEMAND_CLASS, null, null,
DECODE(p_demand_class, '-1',
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
null, null, p_item_id, p_org_id,
p_instance_id, c.calendar_date, p_level_id, D.DEMAND_CLASS),
D.DEMAND_CLASS)), TO_CHAR(NULL)),
30, decode(d.source_organization_id,
NULL, DECODE(D.DEMAND_CLASS, null, null,
DECODE(p_demand_class, '-1',
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
null, null, p_item_id, p_org_id,
p_instance_id, c.calendar_date, p_level_id, D.DEMAND_CLASS),
D.DEMAND_CLASS)),
-23453, DECODE(D.DEMAND_CLASS, null, null,
DECODE(p_demand_class, '-1',
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
null, null, p_item_id, p_org_id,
p_instance_id, c.calendar_date, p_level_id, D.DEMAND_CLASS),
D.DEMAND_CLASS)),
d.organization_id, DECODE(D.DEMAND_CLASS, null, null,
DECODE(p_demand_class, '-1',
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
null, null, p_item_id, p_org_id,
p_instance_id, c.calendar_date, p_level_id, D.DEMAND_CLASS),
D.DEMAND_CLASS)), TO_CHAR(NULL)),
DECODE(D.DEMAND_CLASS, null, null,
DECODE(p_demand_class, '-1',
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
null, null, p_item_id, p_org_id,
p_instance_id, c.calendar_date, p_level_id, D.DEMAND_CLASS),
D.DEMAND_CLASS))),
DECODE(D.DEMAND_CLASS, null, null, --10425563
DECODE(p_demand_class, '-1',
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
null, null, p_item_id, p_org_id,
p_instance_id, c.calendar_date, p_level_id, D.DEMAND_CLASS),
D.DEMAND_CLASS))),
-- rajjain end
2, DECODE(D.CUSTOMER_ID, NULL, TO_CHAR(NULL),
0, TO_CHAR(NULL),
-- rajjain begin 07/19/2002
decode(MSC_ATP_PVT.G_INTERNAL_SALES_ORDER,'N', --10425563
decode(d.origination_type,
6, decode(d.source_organization_id,
NULL, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
p_org_id, p_instance_id, c.calendar_date,
p_level_id, NULL),
-23453, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
p_org_id, p_instance_id, c.calendar_date,
p_level_id, NULL),
d.organization_id, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
p_org_id, p_instance_id, c.calendar_date,
p_level_id, NULL),
TO_CHAR(NULL)),
30, decode(d.source_organization_id,
NULL, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
p_org_id, p_instance_id, c.calendar_date,
p_level_id, NULL),
-23453, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
p_org_id, p_instance_id, c.calendar_date,
p_level_id, NULL),
d.organization_id, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
p_org_id, p_instance_id, c.calendar_date,
p_level_id, NULL),
TO_CHAR(NULL)),
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(D.CUSTOMER_ID, D.SHIP_TO_SITE_ID,
p_item_id, p_org_id, p_instance_id,
c.calendar_date,p_level_id, NULL)),
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, --10425563
p_item_id, p_org_id, p_instance_id,
c.calendar_date,p_level_id, NULL))
)),
-- rajjain end 07/19/2002
p_demand_class, 1,
Decode(D.Demand_Class, NULL, --4365873
MSC_AATP_FUNC.Get_Item_Demand_Alloc_Percent(p_plan_id,
D.DEMAND_ID,
c.calendar_date,
D.USING_ASSEMBLY_ITEM_ID,
DECODE(D.SOURCE_ORGANIZATION_ID,
-23453, null,
D.SOURCE_ORGANIZATION_ID), -- 1665483
p_item_id,
p_org_id, -- 1665483
p_instance_id,
decode (d.origination_type, -100, 30,d.origination_type), --5027568
DECODE(G_HIERARCHY_PROFILE,
/*-----------------------------------------------------------------+
| rajjain begin 07/19/2002 |
| |
| Case 1: For internal sales orders [origination type is in (6,30) |
| and source_organization_id is not null |
| and <> organization_id] -> Return p_demand_class |
| Case 2: For others if DEMAND_CLASS is null then return null |
| else if p_demand_class is '-1' then call |
| Get_Hierarchy_Demand_class else return DEMAND_CLASS |
+-----------------------------------------------------------------*/
1,
decode(MSC_ATP_PVT.G_INTERNAL_SALES_ORDER,'N', --10425563
decode(d.origination_type,
6, decode(d.source_organization_id,
NULL, DECODE(D.DEMAND_CLASS, null, null,
DECODE(p_demand_class, '-1',
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
null, null, p_item_id, p_org_id,
p_instance_id, c.calendar_date, p_level_id, D.DEMAND_CLASS),
D.DEMAND_CLASS)),
-23453, DECODE(D.DEMAND_CLASS, null, null,
DECODE(p_demand_class, '-1',
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
null, null, p_item_id, p_org_id,
p_instance_id, c.calendar_date, p_level_id, D.DEMAND_CLASS),
D.DEMAND_CLASS)),
d.organization_id, DECODE(D.DEMAND_CLASS, null, null,
DECODE(p_demand_class, '-1',
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
null, null, p_item_id, p_org_id,
p_instance_id, c.calendar_date, p_level_id, D.DEMAND_CLASS),
D.DEMAND_CLASS)),
p_demand_class),
30, decode(d.source_organization_id,
NULL, DECODE(D.DEMAND_CLASS, null, null,
DECODE(p_demand_class, '-1',
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
null, null, p_item_id, p_org_id,
p_instance_id, c.calendar_date, p_level_id, D.DEMAND_CLASS),
D.DEMAND_CLASS)),
-23453, DECODE(D.DEMAND_CLASS, null, null,
DECODE(p_demand_class, '-1',
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
null, null, p_item_id, p_org_id,
p_instance_id, c.calendar_date, p_level_id, D.DEMAND_CLASS),
D.DEMAND_CLASS)),
d.organization_id, DECODE(D.DEMAND_CLASS, null, null,
DECODE(p_demand_class, '-1',
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
null, null, p_item_id, p_org_id,
p_instance_id, c.calendar_date, p_level_id, D.DEMAND_CLASS),
D.DEMAND_CLASS)),
p_demand_class),
DECODE(D.DEMAND_CLASS, null, null,
DECODE(p_demand_class, '-1',
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
null, null, p_item_id, p_org_id,
p_instance_id, c.calendar_date, p_level_id, D.DEMAND_CLASS),
D.DEMAND_CLASS))),
DECODE(D.DEMAND_CLASS, null, null, --10425563
DECODE(p_demand_class, '-1',
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
null, null, p_item_id, p_org_id,
p_instance_id, c.calendar_date, p_level_id, D.DEMAND_CLASS),
D.DEMAND_CLASS))),
-- rajjain end
2, DECODE(D.CUSTOMER_ID, NULL, p_demand_class,
0, p_demand_class,
-- rajjain begin 07/19/2002
decode(MSC_ATP_PVT.G_INTERNAL_SALES_ORDER,'N', --10425563
decode(d.origination_type,
6, decode(d.source_organization_id,
NULL, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
p_org_id, p_instance_id, c.calendar_date,
p_level_id, NULL),
-23453, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
p_org_id, p_instance_id, c.calendar_date,
p_level_id, NULL),
d.organization_id, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
p_org_id, p_instance_id, c.calendar_date,
p_level_id, NULL),
p_demand_class),
30, decode(d.source_organization_id,
NULL, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
p_org_id, p_instance_id, c.calendar_date,
p_level_id, NULL),
-23453, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
p_org_id, p_instance_id, c.calendar_date,
p_level_id, NULL),
d.organization_id, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
p_org_id, p_instance_id, c.calendar_date,
p_level_id, NULL),
p_demand_class),
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(D.CUSTOMER_ID, D.SHIP_TO_SITE_ID,
p_item_id, p_org_id, p_instance_id,
c.calendar_date,p_level_id, NULL)),
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, --10425563
p_item_id, p_org_id, p_instance_id,
c.calendar_date,p_level_id, NULL))
)),
-- rajjain end 07/19/2002
p_demand_class,
p_level_id),0)) SD_QTY --4365873
FROM MSC_CALENDAR_DATES C,
MSC_DEMANDS D
WHERE D.PLAN_ID = p_plan_id
AND D.SR_INSTANCE_ID = p_instance_id
AND D.INVENTORY_ITEM_ID = p_item_id
AND D.ORGANIZATION_ID = p_org_id
AND D.USING_REQUIREMENT_QUANTITY <> 0 --4501434
AND D.ORIGINATION_TYPE NOT IN (5,7,8,9,11,15,22,28,29,31,52,70) -- For summary enhancement
-- Bug1990155, 1995835 exclude the expired lots demand datreya 9/18/2001
-- Bug 1530311, need to exclude forecast, ngoel 12/05/2000
AND C.CALENDAR_CODE = p_cal_code
AND C.EXCEPTION_SET_ID = p_cal_exc_set_id
AND C.SR_INSTANCE_ID = D.SR_INSTANCE_ID
-- since we store repetitive schedule demand in different ways for
-- ods (total quantity on start date) and pds (daily quantity from
-- start date to end date), we need to make sure we only select work day
-- for pds's repetitive schedule demand.
AND C.CALENDAR_DATE
-- Bug 3550296 and 3574164. IMPLEMENT_DATE AND DMD_SATISFIED_DATE are changed to
-- IMPLEMENT_SHIP_DATE and PLANNED_SHIP_DATE resp.
BETWEEN TRUNC(DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))))
AND TRUNC(NVL(D.ASSEMBLY_DEMAND_COMP_DATE,
DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))))
AND (( D.ORIGINATION_TYPE = 4
AND C.SEQ_NUM IS NOT NULL) OR
( D.ORIGINATION_TYPE <> 4))
-- AND C.PRIOR_DATE < NVL(p_itf,
-- C.PRIOR_DATE + 1)
AND C.CALENDAR_DATE < NVL(p_itf, C.CALENDAR_DATE+1)
UNION ALL
SELECT ---C.CALENDAR_DATE SD_DATE,
GREATEST(CS.CALENDAR_DATE,p_sys_next_date) SD_DATE,--3099066
NVL(CS.FIRM_QUANTITY,CS.NEW_ORDER_QUANTITY)*
DECODE(DECODE(G_HIERARCHY_PROFILE,
--2424357: Convert the demand calls in case of others for
--- demand class allocated ATP
1, DECODE(CS.DEMAND_CLASS, null, null,
DECODE(p_demand_class, '-1',
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
null,
null,
cs.inventory_item_id,
p_org_id,
p_instance_id,
cs.calendar_date,
p_level_id,
CS.DEMAND_CLASS),CS.DEMAND_CLASS)),
2, DECODE(CS.CUSTOMER_ID, NULL, TO_CHAR(NULL),
0, TO_CHAR(NULL),
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
CS.CUSTOMER_ID,
CS.SHIP_TO_SITE_ID,
cs.inventory_item_id,
p_org_id,
p_instance_id,
cs.calendar_date,
p_level_id,
NULL))),
p_demand_class, 1,
NULL, nvl(MIHM.allocation_percent/100,1), --4365873
/*NVL(MSC_AATP_FUNC.Get_DC_Alloc_Percent(
p_instance_id,
cs.inventory_item_id,
p_org_id,
null,
null,
p_demand_class,
cs.calendar_date), 1),*/
DECODE(
MIHM.allocation_percent/100, --4365873
/*DECODE(MSC_AATP_FUNC.Get_DC_Alloc_Percent(
p_instance_id,
cs.inventory_item_id,
p_org_id,
null,
null,
p_demand_class,
cs.calendar_date),*/
NULL, 1,
0)) SD_QTY
FROM
(
select
C.NEXT_DATE,
C.CALENDAR_DATE,
S.FIRM_QUANTITY,
S.NEW_ORDER_QUANTITY,
S.DEMAND_CLASS,
s.inventory_item_id,
S.CUSTOMER_ID,
S.SHIP_TO_SITE_ID,
S.SR_INSTANCE_ID,
S.ORGANIZATION_ID
FROM MSC_CALENDAR_DATES C,
MSC_SUPPLIES S
WHERE S.PLAN_ID = p_plan_id
AND S.SR_INSTANCE_ID = p_instance_id
AND S.INVENTORY_ITEM_ID = p_item_id
AND S.ORGANIZATION_ID = p_org_id
-- Exclude Cancelled Supplies 2460645
AND NVL(S.DISPOSITION_STATUS_TYPE, 1) <> 2 -- Bug 2460645
AND NVL(S.FIRM_QUANTITY,S.NEW_ORDER_QUANTITY) <> 0 -- 1243985
AND C.CALENDAR_CODE = p_cal_code
AND C.EXCEPTION_SET_ID = p_cal_exc_set_id
AND C.SR_INSTANCE_ID = S.SR_INSTANCE_ID
AND C.CALENDAR_DATE BETWEEN TRUNC(NVL(S.FIRM_DATE,S.NEW_SCHEDULE_DATE))
AND TRUNC(NVL(S.LAST_UNIT_COMPLETION_DATE,
NVL(S.FIRM_DATE,S.NEW_SCHEDULE_DATE)))
AND DECODE(S.LAST_UNIT_COMPLETION_DATE,
NULL, C.NEXT_SEQ_NUM, C.SEQ_NUM) IS NOT NULL
-- 2859130
AND C.CALENDAR_DATE >= DECODE(S.ORDER_TYPE, 27, TRUNC(SYSDATE),
28, TRUNC(SYSDATE),
C.CALENDAR_DATE)
AND C.CALENDAR_DATE < NVL(p_itf,
C.CALENDAR_DATE + 1)
--AND C.NEXT_DATE >= DECODE(S.ORDER_TYPE, 27, TRUNC(SYSDATE),
-- 28, TRUNC(SYSDATE),
-- C.NEXT_DATE)
--AND C.NEXT_DATE < NVL(p_itf,
-- C.NEXT_DATE + 1)
)CS,
MSC_ITEM_HIERARCHY_MV MIHM
WHERE
--4365873
CS.INVENTORY_ITEM_ID = MIHM.INVENTORY_ITEM_ID(+)
AND CS.SR_INSTANCE_ID = MIHM.SR_INSTANCE_ID (+)
AND CS.ORGANIZATION_ID = MIHM.ORGANIZATION_ID (+)
AND decode(MIHM.level_id (+),-1,1,2) = decode(G_HIERARCHY_PROFILE,1,1,2)
AND CS.NEXT_DATE >= MIHM.effective_date (+)
AND CS.NEXT_DATE <= MIHM.disable_date (+)
AND MIHM.demand_class (+) = p_demand_class
)
GROUP BY SD_DATE
ORDER BY SD_DATE;--4698199
SELECT SD_DATE,
SUM(UNALLOC_SD_QTY),
SUM(SD_QTY)
BULK COLLECT INTO
x_atp_dates,
x_atp_unalloc_qtys,
x_atp_qtys
FROM (
SELECT -- C.PRIOR_DATE SD_DATE, -- 2859130
GREATEST(
TRUNC(DECODE(RECORD_SOURCE,
2,
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2,
(NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))))
,p_sys_next_date) SD_DATE, --3099066 --plan by request date
-1* (D.USING_REQUIREMENT_QUANTITY - NVL(d.reserved_quantity, 0)) UNALLOC_SD_QTY, --5027568
-1* (D.USING_REQUIREMENT_QUANTITY - NVL(d.reserved_quantity, 0))* --5027568
DECODE(DECODE(G_HIERARCHY_PROFILE,
/*------------------------------------------------------------------------+
| rajjain begin 07/19/2002 |
| |
| Case 1: For internal sales orders [origination type is in (6,30) and |
| source_organization_id is not null and <> organization_id] |
| Return NULL |
| Case 2: For others if DEMAND_CLASS is null then return null |
| else if p_demand_class is '-1' then call |
| Get_Hierarchy_Demand_class else return DEMAND_CLASS |
+------------------------------------------------------------------------*/
1,
decode(MSC_ATP_PVT.G_INTERNAL_SALES_ORDER,'N', --10425563
decode(d.origination_type,
6, decode(d.source_organization_id,
NULL, DECODE(D.DEMAND_CLASS, null, null,
DECODE(p_demand_class, '-1',
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
null, null, p_item_id, p_org_id,
p_instance_id, TRUNC(DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))), p_level_id, D.DEMAND_CLASS),
D.DEMAND_CLASS)),
-23453, DECODE(D.DEMAND_CLASS, null, null,
DECODE(p_demand_class, '-1',
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
null, null, p_item_id, p_org_id,
p_instance_id, TRUNC(DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))), p_level_id, D.DEMAND_CLASS),
D.DEMAND_CLASS)),
d.organization_id, DECODE(D.DEMAND_CLASS, null, null,
DECODE(p_demand_class, '-1',
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
null, null, p_item_id, p_org_id,
p_instance_id, TRUNC(DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))), p_level_id, D.DEMAND_CLASS),
D.DEMAND_CLASS)), TO_CHAR(NULL)),
30, decode(d.source_organization_id,
NULL, DECODE(D.DEMAND_CLASS, null, null,
DECODE(p_demand_class, '-1',
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
null, null, p_item_id, p_org_id,
p_instance_id, TRUNC(DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))), p_level_id, D.DEMAND_CLASS),
D.DEMAND_CLASS)),
-23453, DECODE(D.DEMAND_CLASS, null, null,
DECODE(p_demand_class, '-1',
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
null, null, p_item_id, p_org_id,
p_instance_id, TRUNC(DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))), p_level_id, D.DEMAND_CLASS),
D.DEMAND_CLASS)),
d.organization_id, DECODE(D.DEMAND_CLASS, null, null,
DECODE(p_demand_class, '-1',
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
null, null, p_item_id, p_org_id,
p_instance_id, TRUNC(DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))), p_level_id, D.DEMAND_CLASS),
D.DEMAND_CLASS)), TO_CHAR(NULL)),
DECODE(D.DEMAND_CLASS, null, null,
DECODE(p_demand_class, '-1',
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
null, null, p_item_id, p_org_id,
p_instance_id, TRUNC(DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))), p_level_id, D.DEMAND_CLASS),
D.DEMAND_CLASS))),
DECODE(D.DEMAND_CLASS, null, null, --10425563
DECODE(p_demand_class, '-1',
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
null, null, p_item_id, p_org_id,
p_instance_id, TRUNC(DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))), p_level_id, D.DEMAND_CLASS),
D.DEMAND_CLASS))),
-- rajjain end
2, DECODE(D.CUSTOMER_ID, NULL, TO_CHAR(NULL),
0, TO_CHAR(NULL),
-- rajjain begin 07/19/2002
decode(MSC_ATP_PVT.G_INTERNAL_SALES_ORDER,'N', --10425563
decode(d.origination_type,
6, decode(d.source_organization_id,
NULL, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
p_org_id, p_instance_id, TRUNC(DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))),
p_level_id, NULL),
-23453, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
p_org_id, p_instance_id, TRUNC(DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))),
p_level_id, NULL),
d.organization_id, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
p_org_id, p_instance_id, TRUNC(DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))),
p_level_id, NULL),
TO_CHAR(NULL)),
30, decode(d.source_organization_id,
NULL, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
p_org_id, p_instance_id, TRUNC(DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))),
p_level_id, NULL),
-23453, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
p_org_id, p_instance_id, TRUNC(DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))),
p_level_id, NULL),
d.organization_id, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
p_org_id, p_instance_id, TRUNC(DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))),
p_level_id, NULL),
TO_CHAR(NULL)),
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(D.CUSTOMER_ID, D.SHIP_TO_SITE_ID,
p_item_id, p_org_id, p_instance_id,
TRUNC(DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))),p_level_id, NULL)),
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, --10425563
p_item_id, p_org_id, p_instance_id,
TRUNC(DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))),p_level_id, NULL))
)),
-- rajjain end 07/19/2002
p_demand_class, 1,
Decode(D.Demand_Class, NULL, --4365873
MSC_AATP_FUNC.Get_Item_Demand_Alloc_Percent(p_plan_id,
D.DEMAND_ID,
TRUNC(DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))),
D.USING_ASSEMBLY_ITEM_ID,
DECODE(D.SOURCE_ORGANIZATION_ID,
-23453, null,
D.SOURCE_ORGANIZATION_ID), -- 1665483
p_item_id,
p_org_id, -- 1665483
p_instance_id,
decode (d.origination_type, -100, 30,d.origination_type), --5027568
DECODE(G_HIERARCHY_PROFILE,
/*-----------------------------------------------------------------+
| rajjain begin 07/19/2002 |
| |
| Case 1: For internal sales orders [origination type is in (6,30) |
| and source_organization_id is not null |
| and <> organization_id] -> Return p_demand_class |
| Case 2: For others if DEMAND_CLASS is null then return null |
| else if p_demand_class is '-1' then call |
| Get_Hierarchy_Demand_class else return DEMAND_CLASS |
+-----------------------------------------------------------------*/
1,
decode(MSC_ATP_PVT.G_INTERNAL_SALES_ORDER,'N', --10425563
decode(d.origination_type,
6, decode(d.source_organization_id,
NULL, DECODE(D.DEMAND_CLASS, null, null,
DECODE(p_demand_class, '-1',
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
null, null, p_item_id, p_org_id,
p_instance_id, TRUNC(DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))), p_level_id, D.DEMAND_CLASS),
D.DEMAND_CLASS)),
-23453, DECODE(D.DEMAND_CLASS, null, null,
DECODE(p_demand_class, '-1',
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
null, null, p_item_id, p_org_id,
p_instance_id, TRUNC(DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))), p_level_id, D.DEMAND_CLASS),
D.DEMAND_CLASS)),
d.organization_id, DECODE(D.DEMAND_CLASS, null, null,
DECODE(p_demand_class, '-1',
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
null, null, p_item_id, p_org_id,
p_instance_id, TRUNC(DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))), p_level_id, D.DEMAND_CLASS),
D.DEMAND_CLASS)),
p_demand_class),
30, decode(d.source_organization_id,
NULL, DECODE(D.DEMAND_CLASS, null, null,
DECODE(p_demand_class, '-1',
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
null, null, p_item_id, p_org_id,
p_instance_id, TRUNC(DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))), p_level_id, D.DEMAND_CLASS),
D.DEMAND_CLASS)),
-23453, DECODE(D.DEMAND_CLASS, null, null,
DECODE(p_demand_class, '-1',
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
null, null, p_item_id, p_org_id,
p_instance_id, TRUNC(DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))), p_level_id, D.DEMAND_CLASS),
D.DEMAND_CLASS)),
d.organization_id, DECODE(D.DEMAND_CLASS, null, null,
DECODE(p_demand_class, '-1',
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
null, null, p_item_id, p_org_id,
p_instance_id, TRUNC(DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))), p_level_id, D.DEMAND_CLASS),
D.DEMAND_CLASS)),
p_demand_class),
DECODE(D.DEMAND_CLASS, null, null,
DECODE(p_demand_class, '-1',
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
null, null, p_item_id, p_org_id,
p_instance_id, TRUNC(DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))), p_level_id, D.DEMAND_CLASS),
D.DEMAND_CLASS))),
DECODE(D.DEMAND_CLASS, null, null, --10425563
DECODE(p_demand_class, '-1',
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
null, null, p_item_id, p_org_id,
p_instance_id, TRUNC(DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))), p_level_id, D.DEMAND_CLASS),
D.DEMAND_CLASS))),
-- rajjain end
2, DECODE(D.CUSTOMER_ID, NULL, p_demand_class,
0, p_demand_class,
-- rajjain begin 07/19/2002
decode(MSC_ATP_PVT.G_INTERNAL_SALES_ORDER,'N', --10425563
decode(d.origination_type,
6, decode(d.source_organization_id,
NULL, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
p_org_id, p_instance_id, TRUNC(DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))),
p_level_id, NULL),
-23453, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
p_org_id, p_instance_id, TRUNC(DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))),
p_level_id, NULL),
d.organization_id, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
p_org_id, p_instance_id, TRUNC(DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))),
p_level_id, NULL),
p_demand_class),
30, decode(d.source_organization_id,
NULL, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
p_org_id, p_instance_id, TRUNC(DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))),
p_level_id, NULL),
-23453, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
p_org_id, p_instance_id, TRUNC(DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))),
p_level_id, NULL),
d.organization_id, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
p_org_id, p_instance_id, TRUNC(DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))),
p_level_id, NULL),
p_demand_class),
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(D.CUSTOMER_ID, D.SHIP_TO_SITE_ID,
p_item_id, p_org_id, p_instance_id,
TRUNC(DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))),p_level_id, NULL)),
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, --10425563
p_item_id, p_org_id, p_instance_id,
TRUNC(DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))),p_level_id, NULL))
)),
-- rajjain end 07/19/2002
p_demand_class,
p_level_id),0)) SD_QTY --4365873
FROM MSC_DEMANDS D
WHERE D.PLAN_ID = p_plan_id
AND D.SR_INSTANCE_ID = p_instance_id
AND D.INVENTORY_ITEM_ID = p_item_id
AND D.ORGANIZATION_ID = p_org_id
AND D.USING_REQUIREMENT_QUANTITY <> 0 --4501434
AND D.ORIGINATION_TYPE NOT IN (5,7,8,9,11,15,22,28,29,31,52,70) -- For summary enhancement
-- Bug1990155, 1995835 exclude the expired lots demand datreya 9/18/2001
-- Bug 1530311, need to exclude forecast, ngoel 12/05/2000
--AND C.CALENDAR_CODE = p_cal_code
--AND C.EXCEPTION_SET_ID = p_cal_exc_set_id
--AND C.SR_INSTANCE_ID = D.SR_INSTANCE_ID
-- since we store repetitive schedule demand in different ways for
-- ods (total quantity on start date) and pds (daily quantity from
-- start date to end date), we need to make sure we only select work day
-- for pds's repetitive schedule demand.
-- 2859130 repetitive schedule not supported for constrained plan
--AND C.CALENDAR_DATE BETWEEN TRUNC(D.USING_ASSEMBLY_DEMAND_DATE) AND
-- TRUNC(NVL(D.ASSEMBLY_DEMAND_COMP_DATE,
-- D.USING_ASSEMBLY_DEMAND_DATE))
--AND (( D.ORIGINATION_TYPE = 4
-- AND C.SEQ_NUM IS NOT NULL) OR
-- ( D.ORIGINATION_TYPE <> 4))
-- AND C.PRIOR_DATE < NVL(p_itf,
-- C.PRIOR_DATE + 1)
--bug3693892 added trunc
AND TRUNC(DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))) <
TRUNC(NVL(p_itf,DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))) + 1))
UNION ALL
SELECT -- C.NEXT_DATE SD_DATE, -- 2859130
-- TRUNC(NVL(S.FIRM_DATE, S.NEW_SCHEDULE_DATE)) SD_DATE,
greatest(TRUNC(NVL(S.FIRM_DATE, S.NEW_SCHEDULE_DATE)),p_sys_next_date) SD_DATE,--3099066
NVL(S.FIRM_QUANTITY,S.NEW_ORDER_QUANTITY) UNALLOC_SD_QTY,
NVL(S.FIRM_QUANTITY,S.NEW_ORDER_QUANTITY)*
DECODE(DECODE(G_HIERARCHY_PROFILE,
--2424357: Convert the demand calls in case of others for
--- demand class allocated ATP
1, DECODE(S.DEMAND_CLASS, null, null,
DECODE(p_demand_class, '-1',
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
null,
null,
S.inventory_item_id,
p_org_id,
p_instance_id,
trunc(nvl(S.firm_date, S.new_schedule_date)),
p_level_id,
S.DEMAND_CLASS),S.DEMAND_CLASS)),
2, DECODE(S.CUSTOMER_ID, NULL, TO_CHAR(NULL),
0, TO_CHAR(NULL),
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
S.CUSTOMER_ID,
S.SHIP_TO_SITE_ID,
S.inventory_item_id,
p_org_id,
p_instance_id,
trunc(nvl(S.firm_date, S.new_schedule_date)),
p_level_id,
NULL))),
p_demand_class, 1,
NULL, nvl(MIHM.allocation_percent/100,1), --4365873
/*NVL(MSC_AATP_FUNC.Get_DC_Alloc_Percent(
p_instance_id,
s.inventory_item_id,
p_org_id,
null,
null,
p_demand_class,
trunc(nvl(s.firm_date, s.new_schedule_date))), 1),*/
DECODE(MIHM.allocation_percent/100, --4365873
/*MSC_AATP_FUNC.Get_DC_Alloc_Percent(
p_instance_id,
s.inventory_item_id,
p_org_id,
null,
null,
p_demand_class,
trunc(nvl(s.firm_date, s.new_schedule_date))),*/
NULL, 1,
0)) SD_QTY
FROM -- MSC_CALENDAR_DATES C,
MSC_SUPPLIES S,MSC_ITEM_HIERARCHY_MV MIHM
WHERE S.PLAN_ID = p_plan_id
AND S.SR_INSTANCE_ID = p_instance_id
AND S.INVENTORY_ITEM_ID = p_item_id
AND S.ORGANIZATION_ID = p_org_id
-- Exclude Cancelled Supplies 2460645
AND NVL(S.DISPOSITION_STATUS_TYPE, 1) <> 2 -- Bug 2460645
AND NVL(S.FIRM_QUANTITY,S.NEW_ORDER_QUANTITY) <> 0 -- 1243985
--AND C.CALENDAR_CODE = p_cal_code
--AND C.EXCEPTION_SET_ID = p_cal_exc_set_id
--AND C.SR_INSTANCE_ID = S.SR_INSTANCE_ID
--AND C.CALENDAR_DATE BETWEEN TRUNC(NVL(S.FIRM_DATE,S.NEW_SCHEDULE_DATE))
-- AND TRUNC(NVL(S.LAST_UNIT_COMPLETION_DATE,
-- NVL(S.FIRM_DATE,S.NEW_SCHEDULE_DATE)))
--AND DECODE(S.LAST_UNIT_COMPLETION_DATE,
-- NULL, C.NEXT_SEQ_NUM, C.SEQ_NUM) IS NOT NULL
-- 2859130
-- AND C.NEXT_DATE >= DECODE(S.ORDER_TYPE, 27, TRUNC(SYSDATE),
-- 28, TRUNC(SYSDATE),
-- C.NEXT_DATE)
-- AND C.NEXT_DATE < NVL(p_itf,
-- C.NEXT_DATE + 1)
--AND C.CALENDAR_DATE >= DECODE(S.ORDER_TYPE, 27, TRUNC(SYSDATE),
-- 28, TRUNC(SYSDATE),
-- C.CALENDAR_DATE)
AND trunc(NVL(S.FIRM_DATE, S.NEW_SCHEDULE_DATE)) >= trunc(DECODE(S.ORDER_TYPE, 27, SYSDATE,
28, SYSDATE,
trunc(NVL(S.FIRM_DATE, S.NEW_SCHEDULE_DATE)))) --4135752
AND trunc(NVL(S.FIRM_DATE, S.NEW_SCHEDULE_DATE)) < NVL(p_itf,
trunc(NVL(S.FIRM_DATE, S.NEW_SCHEDULE_DATE)) + 1)
--4365873
AND S.INVENTORY_ITEM_ID = MIHM.INVENTORY_ITEM_ID(+)
AND S.SR_INSTANCE_ID = MIHM.SR_INSTANCE_ID (+)
AND S.ORGANIZATION_ID = MIHM.ORGANIZATION_ID (+)
AND decode(MIHM.level_id (+),-1,1,2) = decode(G_HIERARCHY_PROFILE,1,1,2)
AND trunc(NVL(S.FIRM_DATE, S.NEW_SCHEDULE_DATE)) >= MIHM.effective_date (+)
AND trunc(NVL(S.FIRM_DATE, S.NEW_SCHEDULE_DATE)) <= MIHM.disable_date (+)
AND MIHM.demand_class (+) = p_demand_class
)
GROUP BY SD_DATE
ORDER BY SD_DATE;--4698199
SELECT SD_DATE,
SUM(UNALLOC_SD_QTY),
SUM(SD_QTY)
BULK COLLECT INTO
x_atp_dates,
x_atp_unalloc_qtys,
x_atp_qtys
FROM (
SELECT --C.CALENDAR_DATE SD_DATE, -- 2859130 change to calendar date
GREATEST(C.CALENDAR_DATE,p_sys_next_date) SD_DATE,--3099066
-1* DECODE(D.ORIGINATION_TYPE,
4, D.DAILY_DEMAND_RATE,
--D.USING_REQUIREMENT_QUANTITY) UNALLOC_SD_QTY,
(D.USING_REQUIREMENT_QUANTITY - NVL(d.reserved_quantity, 0))) UNALLOC_SD_QTY, --5027568
-1* DECODE(D.ORIGINATION_TYPE,
4, D.DAILY_DEMAND_RATE,
--D.USING_REQUIREMENT_QUANTITY)*
(D.USING_REQUIREMENT_QUANTITY - NVL(d.reserved_quantity, 0)))* --5027568
DECODE(DECODE(G_HIERARCHY_PROFILE,
/*------------------------------------------------------------------------+
| rajjain begin 07/19/2002 |
| |
| Case 1: For internal sales orders [origination type is in (6,30) and |
| source_organization_id is not null and <> organization_id] |
| Return NULL |
| Case 2: For others if DEMAND_CLASS is null then return null |
| else if p_demand_class is '-1' then call |
| Get_Hierarchy_Demand_class else return DEMAND_CLASS |
+------------------------------------------------------------------------*/
1,
decode(MSC_ATP_PVT.G_INTERNAL_SALES_ORDER,'N', --10425563
decode(d.origination_type,
6, decode(d.source_organization_id,
NULL, DECODE(D.DEMAND_CLASS, null, null,
DECODE(p_demand_class, '-1',
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
null, null, p_item_id, p_org_id,
p_instance_id, c.calendar_date, p_level_id, D.DEMAND_CLASS),
D.DEMAND_CLASS)),
-23453, DECODE(D.DEMAND_CLASS, null, null,
DECODE(p_demand_class, '-1',
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
null, null, p_item_id, p_org_id,
p_instance_id, c.calendar_date, p_level_id, D.DEMAND_CLASS),
D.DEMAND_CLASS)),
d.organization_id, DECODE(D.DEMAND_CLASS, null, null,
DECODE(p_demand_class, '-1',
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
null, null, p_item_id, p_org_id,
p_instance_id, c.calendar_date, p_level_id, D.DEMAND_CLASS),
D.DEMAND_CLASS)), TO_CHAR(NULL)),
30, decode(d.source_organization_id,
NULL, DECODE(D.DEMAND_CLASS, null, null,
DECODE(p_demand_class, '-1',
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
null, null, p_item_id, p_org_id,
p_instance_id, c.calendar_date, p_level_id, D.DEMAND_CLASS),
D.DEMAND_CLASS)),
-23453, DECODE(D.DEMAND_CLASS, null, null,
DECODE(p_demand_class, '-1',
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
null, null, p_item_id, p_org_id,
p_instance_id, c.calendar_date, p_level_id, D.DEMAND_CLASS),
D.DEMAND_CLASS)),
d.organization_id, DECODE(D.DEMAND_CLASS, null, null,
DECODE(p_demand_class, '-1',
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
null, null, p_item_id, p_org_id,
p_instance_id, c.calendar_date, p_level_id, D.DEMAND_CLASS),
D.DEMAND_CLASS)), TO_CHAR(NULL)),
DECODE(D.DEMAND_CLASS, null, null,
DECODE(p_demand_class, '-1',
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
null, null, p_item_id, p_org_id,
p_instance_id, c.calendar_date, p_level_id, D.DEMAND_CLASS),
D.DEMAND_CLASS))),
DECODE(D.DEMAND_CLASS, null, null, --10425563
DECODE(p_demand_class, '-1',
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
null, null, p_item_id, p_org_id,
p_instance_id, c.calendar_date, p_level_id, D.DEMAND_CLASS),
D.DEMAND_CLASS))),
-- rajjain end
2, DECODE(D.CUSTOMER_ID, NULL, TO_CHAR(NULL),
0, TO_CHAR(NULL),
-- rajjain begin 07/19/2002
decode(MSC_ATP_PVT.G_INTERNAL_SALES_ORDER,'N', --10425563
decode(d.origination_type,
6, decode(d.source_organization_id,
NULL, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
p_org_id, p_instance_id, c.calendar_date,
p_level_id, NULL),
-23453, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
p_org_id, p_instance_id, c.calendar_date,
p_level_id, NULL),
d.organization_id, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
p_org_id, p_instance_id, c.calendar_date,
p_level_id, NULL),
TO_CHAR(NULL)),
30, decode(d.source_organization_id,
NULL, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
p_org_id, p_instance_id, c.calendar_date,
p_level_id, NULL),
-23453, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
p_org_id, p_instance_id, c.calendar_date,
p_level_id, NULL),
d.organization_id, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
p_org_id, p_instance_id, c.calendar_date,
p_level_id, NULL),
TO_CHAR(NULL)),
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, --10425563
p_item_id, p_org_id, p_instance_id,
c.calendar_date,p_level_id, NULL)),
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(D.CUSTOMER_ID, D.SHIP_TO_SITE_ID,
p_item_id, p_org_id, p_instance_id,
c.calendar_date,p_level_id, NULL)))),
-- rajjain end 07/19/2002
p_demand_class, 1,
Decode(D.Demand_Class, NULL, --4365873
MSC_AATP_FUNC.Get_Item_Demand_Alloc_Percent(p_plan_id,
D.DEMAND_ID,
c.calendar_date,
D.USING_ASSEMBLY_ITEM_ID,
DECODE(D.SOURCE_ORGANIZATION_ID,
-23453, null,
D.SOURCE_ORGANIZATION_ID), -- 1665483
p_item_id,
p_org_id, -- 1665483
p_instance_id,
DECODE (D.ORIGINATION_TYPE, -100, 30,D.ORIGINATION_TYPE) , --5027568
DECODE(G_HIERARCHY_PROFILE,
/*-----------------------------------------------------------------+
| rajjain begin 07/19/2002 |
| |
| Case 1: For internal sales orders [origination type is in (6,30) |
| and source_organization_id is not null |
| and <> organization_id] -> Return p_demand_class |
| Case 2: For others if DEMAND_CLASS is null then return null |
| else if p_demand_class is '-1' then call |
| Get_Hierarchy_Demand_class else return DEMAND_CLASS |
+-----------------------------------------------------------------*/
1,
decode(MSC_ATP_PVT.G_INTERNAL_SALES_ORDER,'N', --10425563
decode(d.origination_type,
6, decode(d.source_organization_id,
NULL, DECODE(D.DEMAND_CLASS, null, null,
DECODE(p_demand_class, '-1',
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
null, null, p_item_id, p_org_id,
p_instance_id, c.calendar_date, p_level_id, D.DEMAND_CLASS),
D.DEMAND_CLASS)),
-23453, DECODE(D.DEMAND_CLASS, null, null,
DECODE(p_demand_class, '-1',
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
null, null, p_item_id, p_org_id,
p_instance_id, c.calendar_date, p_level_id, D.DEMAND_CLASS),
D.DEMAND_CLASS)),
d.organization_id, DECODE(D.DEMAND_CLASS, null, null,
DECODE(p_demand_class, '-1',
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
null, null, p_item_id, p_org_id,
p_instance_id, c.calendar_date, p_level_id, D.DEMAND_CLASS),
D.DEMAND_CLASS)),
p_demand_class),
30, decode(d.source_organization_id,
NULL, DECODE(D.DEMAND_CLASS, null, null,
DECODE(p_demand_class, '-1',
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
null, null, p_item_id, p_org_id,
p_instance_id, c.calendar_date, p_level_id, D.DEMAND_CLASS),
D.DEMAND_CLASS)),
-23453, DECODE(D.DEMAND_CLASS, null, null,
DECODE(p_demand_class, '-1',
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
null, null, p_item_id, p_org_id,
p_instance_id, c.calendar_date, p_level_id, D.DEMAND_CLASS),
D.DEMAND_CLASS)),
d.organization_id, DECODE(D.DEMAND_CLASS, null, null,
DECODE(p_demand_class, '-1',
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
null, null, p_item_id, p_org_id,
p_instance_id, c.calendar_date, p_level_id, D.DEMAND_CLASS),
D.DEMAND_CLASS)),
p_demand_class),
DECODE(D.DEMAND_CLASS, null, null,
DECODE(p_demand_class, '-1',
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
null, null, p_item_id, p_org_id,
p_instance_id, c.calendar_date, p_level_id, D.DEMAND_CLASS),
D.DEMAND_CLASS))),
DECODE(D.DEMAND_CLASS, null, null, --10425563
DECODE(p_demand_class, '-1',
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
null, null, p_item_id, p_org_id,
p_instance_id, c.calendar_date, p_level_id, D.DEMAND_CLASS),
D.DEMAND_CLASS))),
-- rajjain end
2, DECODE(D.CUSTOMER_ID, NULL, p_demand_class,
0, p_demand_class,
-- rajjain begin 07/19/2002
decode(MSC_ATP_PVT.G_INTERNAL_SALES_ORDER,'N', --10425563
decode(d.origination_type,
6, decode(d.source_organization_id,
NULL, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
p_org_id, p_instance_id, c.calendar_date,
p_level_id, NULL),
-23453, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
p_org_id, p_instance_id, c.calendar_date,
p_level_id, NULL),
d.organization_id, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
p_org_id, p_instance_id, c.calendar_date,
p_level_id, NULL),
p_demand_class),
30, decode(d.source_organization_id,
NULL, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
p_org_id, p_instance_id, c.calendar_date,
p_level_id, NULL),
-23453, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
p_org_id, p_instance_id, c.calendar_date,
p_level_id, NULL),
d.organization_id, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
p_org_id, p_instance_id, c.calendar_date,
p_level_id, NULL),
p_demand_class),
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(D.CUSTOMER_ID, D.SHIP_TO_SITE_ID,
p_item_id, p_org_id, p_instance_id,
c.calendar_date,p_level_id, NULL)),
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, --10425563
p_item_id, p_org_id, p_instance_id,
c.calendar_date,p_level_id, NULL))
)),
-- rajjain end 07/19/2002
p_demand_class,
p_level_id),0)) SD_QTY --4365873
FROM MSC_CALENDAR_DATES C,
MSC_DEMANDS D
WHERE D.PLAN_ID = p_plan_id
AND D.SR_INSTANCE_ID = p_instance_id
AND D.INVENTORY_ITEM_ID = p_item_id
AND D.ORGANIZATION_ID = p_org_id
AND D.USING_REQUIREMENT_QUANTITY <> 0 --4501434
AND D.ORIGINATION_TYPE NOT IN (5,7,8,9,11,15,22,28,29,31,52,70) -- For summary enhancement
-- Bug1990155, 1995835 exclude the expired lots demand datreya 9/18/2001
-- Bug 1530311, need to exclude forecast, ngoel 12/05/2000
AND C.CALENDAR_CODE = p_cal_code
AND C.EXCEPTION_SET_ID = p_cal_exc_set_id
AND C.SR_INSTANCE_ID = D.SR_INSTANCE_ID
-- since we store repetitive schedule demand in different ways for
-- ods (total quantity on start date) and pds (daily quantity from
-- start date to end date), we need to make sure we only select work day
-- for pds's repetitive schedule demand.
-- Bug 3550296 and 3574164. IMPLEMENT_DATE AND DMD_SATISFIED_DATE are changed to
-- IMPLEMENT_SHIP_DATE and PLANNED_SHIP_DATE resp.
AND C.CALENDAR_DATE BETWEEN TRUNC(DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))) AND
TRUNC(NVL(D.ASSEMBLY_DEMAND_COMP_DATE,
DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))))
AND (( D.ORIGINATION_TYPE = 4
AND C.SEQ_NUM IS NOT NULL) OR
( D.ORIGINATION_TYPE <> 4))
AND C.CALENDAR_DATE < NVL(p_itf,
C.CALENDAR_DATE + 1)
UNION ALL
SELECT --C.CALENDAR_DATE SD_DATE, --2859130
greatest(CS.CALENDAR_DATE,p_sys_next_date) SD_DATE,--3099066
NVL(CS.FIRM_QUANTITY,CS.NEW_ORDER_QUANTITY) UNALLOC_SD_QTY,
NVL(CS.FIRM_QUANTITY,CS.NEW_ORDER_QUANTITY)*
DECODE(DECODE(G_HIERARCHY_PROFILE,
--2424357: Convert the demand calls in case of others for
--- demand class allocated ATP
1, DECODE(CS.DEMAND_CLASS, null, null,
DECODE(p_demand_class, '-1',
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
null,
null,
cs.inventory_item_id,
p_org_id,
p_instance_id,
cs.calendar_date,
p_level_id,
CS.DEMAND_CLASS),CS.DEMAND_CLASS)),
2, DECODE(CS.CUSTOMER_ID, NULL, TO_CHAR(NULL),
0, TO_CHAR(NULL),
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
CS.CUSTOMER_ID,
CS.SHIP_TO_SITE_ID,
cs.inventory_item_id,
p_org_id,
p_instance_id,
cs.calendar_date,
p_level_id,
NULL))),
p_demand_class, 1,
NULL, nvl(MIHM.allocation_percent/100,1), --4365873
/*NVL(MSC_AATP_FUNC.Get_DC_Alloc_Percent(
p_instance_id,
s.inventory_item_id,
p_org_id,
null,
null,
p_demand_class,
c.calendar_date), 1),*/
DECODE(
MIHM.allocation_percent/100, --4365873
/*MSC_AATP_FUNC.Get_DC_Alloc_Percent(
p_instance_id,
s.inventory_item_id,
p_org_id,
null,
null,
p_demand_class,
c.calendar_date),*/
NULL, 1,
0)) SD_QTY
FROM
(
select
C.NEXT_DATE,
C.CALENDAR_DATE,
S.FIRM_QUANTITY,
S.NEW_ORDER_QUANTITY,
S.DEMAND_CLASS,
s.inventory_item_id,
S.CUSTOMER_ID,
S.SHIP_TO_SITE_ID,
S.SR_INSTANCE_ID,
S.ORGANIZATION_ID
FROM MSC_CALENDAR_DATES C,
MSC_SUPPLIES S
WHERE S.PLAN_ID = p_plan_id
AND S.SR_INSTANCE_ID = p_instance_id
AND S.INVENTORY_ITEM_ID = p_item_id
AND S.ORGANIZATION_ID = p_org_id
-- Exclude Cancelled Supplies 2460645
AND NVL(S.DISPOSITION_STATUS_TYPE, 1) <> 2 -- Bug 2460645
AND NVL(S.FIRM_QUANTITY,S.NEW_ORDER_QUANTITY) <> 0 -- 1243985
AND C.CALENDAR_CODE = p_cal_code
AND C.EXCEPTION_SET_ID = p_cal_exc_set_id
AND C.SR_INSTANCE_ID = S.SR_INSTANCE_ID
AND C.CALENDAR_DATE BETWEEN TRUNC(NVL(S.FIRM_DATE,S.NEW_SCHEDULE_DATE))
AND TRUNC(NVL(S.LAST_UNIT_COMPLETION_DATE,
NVL(S.FIRM_DATE,S.NEW_SCHEDULE_DATE)))
AND DECODE(S.LAST_UNIT_COMPLETION_DATE,
NULL, C.NEXT_SEQ_NUM, C.SEQ_NUM) IS NOT NULL
AND C.CALENDAR_DATE >= DECODE(S.ORDER_TYPE, 27, TRUNC(SYSDATE),
28, TRUNC(SYSDATE),
C.CALENDAR_DATE)
AND C.CALENDAR_DATE < NVL(p_itf,
C.CALENDAR_DATE + 1))CS,
MSC_ITEM_HIERARCHY_MV MIHM
WHERE
--4365873
CS.INVENTORY_ITEM_ID = MIHM.INVENTORY_ITEM_ID(+)
AND CS.SR_INSTANCE_ID = MIHM.SR_INSTANCE_ID (+)
AND CS.ORGANIZATION_ID = MIHM.ORGANIZATION_ID (+)
AND decode(MIHM.level_id (+),-1,1,2) = decode(G_HIERARCHY_PROFILE,1,1,2)
AND CS.NEXT_DATE >= MIHM.effective_date (+)
AND CS.NEXT_DATE <= MIHM.disable_date (+)
AND MIHM.demand_class (+) = p_demand_class
)
GROUP BY SD_DATE
ORDER BY SD_DATE;--4698199
INSERT INTO msc_atp_sd_details_temp (
ATP_Level,
Order_line_id,
Scenario_Id,
Inventory_Item_Id,
Request_Item_Id,
Organization_Id,
Department_Id,
Resource_Id,
Supplier_Id,
Supplier_Site_Id,
From_Organization_Id,
From_Location_Id,
To_Organization_Id,
To_Location_Id,
Ship_Method,
UOM_code,
Supply_Demand_Type,
Supply_Demand_Source_Type,
Supply_Demand_Source_Type_Name,
Identifier1,
Identifier2,
Identifier3,
Identifier4,
Allocated_Quantity, -- fixed as part of time_phased_atp
Supply_Demand_Quantity,
Supply_Demand_Date,
Disposition_Type,
Disposition_Name,
Pegging_Id,
End_Pegging_Id,
creation_date,
created_by,
last_update_date,
last_updated_by,
last_update_login,
Unallocated_Quantity,
ORIG_CUSTOMER_SITE_NAME,--bug3263368
ORIG_CUSTOMER_NAME, --bug3263368
ORIG_DEMAND_CLASS, --bug3263368
ORIG_REQUEST_DATE --bug3263368
)
(
SELECT p_level col1,
p_identifier col2,
p_scenario_id col3,
p_sr_item_id col4 ,
p_sr_item_id col5,
p_org_id col6,
l_null_num col7,
l_null_num col8,
l_null_num col9,
l_null_num col10,
l_null_num col11,
l_null_num col12,
l_null_num col13,
l_null_num col14,
l_null_char col15,
p_uom_code col16,
1 col17, -- demand
--D.ORIGINATION_TYPE col18,
DECODE( D.ORIGINATION_TYPE, -100, 30, D.ORIGINATION_TYPE) col18, --5027568
l_null_char col19,
D.SR_INSTANCE_ID col20,
l_null_num col21,
D.DEMAND_ID col22,
l_null_num col23,
-- -1* D.USING_REQUIREMENT_QUANTITY * -- 2859130 remove decode originition_type 4
-1*(D.USING_REQUIREMENT_QUANTITY - NVL(d.reserved_quantity, 0))* --5027568
/*New*/
DECODE(p_scenario_id, -1, 1,
--2424357
DECODE(DECODE(G_HIERARCHY_PROFILE,
/*------------------------------------------------------------------------+
| rajjain begin 07/19/2002 |
| |
| Case 1: For internal sales orders [origination type is in (6,30) and |
| source_organization_id is not null and <> organization_id] |
| Return NULL |
| Case 2: For others if DEMAND_CLASS is null then return null |
| else if p_demand_class is '-1' then call |
| Get_Hierarchy_Demand_class else return DEMAND_CLASS |
+------------------------------------------------------------------------*/
1,
decode(MSC_ATP_PVT.G_INTERNAL_SALES_ORDER,'N', --10425563
decode(d.origination_type,
6, decode(d.source_organization_id,
NULL, DECODE(D.DEMAND_CLASS, null, null,
DECODE(p_demand_class, '-1',
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
null, null, p_item_id, p_org_id,
p_instance_id, trunc(DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
-- Bug 3550296 and 3574164. IMPLEMENT_DATE AND DMD_SATISFIED_DATE are changed to
-- IMPLEMENT_SHIP_DATE and PLANNED_SHIP_DATE resp.
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))), p_level_id, D.DEMAND_CLASS),
D.DEMAND_CLASS)),
-23453, DECODE(D.DEMAND_CLASS, null, null,
DECODE(p_demand_class, '-1',
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
null, null, p_item_id, p_org_id,
p_instance_id, trunc(DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))), p_level_id, D.DEMAND_CLASS),
D.DEMAND_CLASS)),
d.organization_id, DECODE(D.DEMAND_CLASS, null, null,
DECODE(p_demand_class, '-1',
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
null, null, p_item_id, p_org_id,
p_instance_id, trunc(DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))), p_level_id, D.DEMAND_CLASS),
D.DEMAND_CLASS)), NULL),
30, decode(d.source_organization_id,
NULL, DECODE(D.DEMAND_CLASS, null, null,
DECODE(p_demand_class, '-1',
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
null, null, p_item_id, p_org_id,
p_instance_id, trunc(DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))), p_level_id, D.DEMAND_CLASS),
D.DEMAND_CLASS)),
-23453, DECODE(D.DEMAND_CLASS, null, null,
DECODE(p_demand_class, '-1',
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
null, null, p_item_id, p_org_id,
p_instance_id, trunc(DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))), p_level_id, D.DEMAND_CLASS),
D.DEMAND_CLASS)),
d.organization_id, DECODE(D.DEMAND_CLASS, null, null,
DECODE(p_demand_class, '-1',
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
null, null, p_item_id, p_org_id,
p_instance_id, trunc(DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))), p_level_id, D.DEMAND_CLASS),
D.DEMAND_CLASS)), NULL),
DECODE(D.DEMAND_CLASS, null, null,
DECODE(p_demand_class, '-1',
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
null, null, p_item_id, p_org_id,
p_instance_id, trunc(DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))), p_level_id, D.DEMAND_CLASS),
D.DEMAND_CLASS))),
DECODE(D.DEMAND_CLASS, null, null, --10425563
DECODE(p_demand_class, '-1',
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
null, null, p_item_id, p_org_id,
p_instance_id, trunc(DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))), p_level_id, D.DEMAND_CLASS),
D.DEMAND_CLASS))),
-- rajjain end
2, DECODE(D.CUSTOMER_ID, NULL, NULL,
0, NULL,
-- rajjain begin 07/19/2002
decode(MSC_ATP_PVT.G_INTERNAL_SALES_ORDER,'N', --10425563
decode(d.origination_type,
6, decode(d.source_organization_id,
NULL, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
p_org_id, p_instance_id, trunc(DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))),
p_level_id, NULL),
-23453, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
p_org_id, p_instance_id, trunc(DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))),
p_level_id, NULL),
d.organization_id, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
p_org_id, p_instance_id, trunc(DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))),
p_level_id, NULL),
NULL),
30, decode(d.source_organization_id,
NULL, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
p_org_id, p_instance_id, trunc(DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))),
p_level_id, NULL),
-23453, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
p_org_id, p_instance_id, trunc(DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))),
p_level_id, NULL),
d.organization_id, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
p_org_id, p_instance_id, trunc(DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))),
p_level_id, NULL),
NULL),
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(D.CUSTOMER_ID, D.SHIP_TO_SITE_ID,
p_item_id, p_org_id, p_instance_id,
trunc(DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))),p_level_id, NULL)),
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, --10425563
p_item_id, p_org_id, p_instance_id,
trunc(DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))),p_level_id, NULL))
)),
-- rajjain end 07/19/2002
p_demand_class, 1,
Decode(D.Demand_Class, NULL, --4365873
MSC_AATP_FUNC.Get_Item_Demand_Alloc_Percent(p_plan_id,
D.DEMAND_ID,
trunc(DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))),
D.USING_ASSEMBLY_ITEM_ID,
DECODE(D.SOURCE_ORGANIZATION_ID,
-23453, null,
D.SOURCE_ORGANIZATION_ID),
p_item_id,
p_org_id, -- 1665483
p_instance_id,
decode (d.origination_type, -100, 30,d.origination_type),
DECODE(G_HIERARCHY_PROFILE,
/*-----------------------------------------------------------------+
| rajjain begin 07/19/2002 |
| |
| Case 1: For internal sales orders [origination type is in (6,30) |
| and source_organization_id is not null |
| and <> organization_id] -> Return p_demand_class |
| Case 2: For others if DEMAND_CLASS is null then return null |
| else if p_demand_class is '-1' then call |
| Get_Hierarchy_Demand_class else return DEMAND_CLASS |
+-----------------------------------------------------------------*/
1,
decode(MSC_ATP_PVT.G_INTERNAL_SALES_ORDER,'N', --10425563
decode(d.origination_type,
6, decode(d.source_organization_id,
NULL, DECODE(D.DEMAND_CLASS, null, null,
DECODE(p_demand_class, '-1',
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
null, null, p_item_id, p_org_id,
p_instance_id, TRUNC(DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))), p_level_id, D.DEMAND_CLASS),
D.DEMAND_CLASS)),
-23453, DECODE(D.DEMAND_CLASS, null, null,
DECODE(p_demand_class, '-1',
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
null, null, p_item_id, p_org_id,
p_instance_id, TRUNC(DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))), p_level_id, D.DEMAND_CLASS),
D.DEMAND_CLASS)),
d.organization_id, DECODE(D.DEMAND_CLASS, null, null,
DECODE(p_demand_class, '-1',
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
null, null, p_item_id, p_org_id,
p_instance_id, TRUNC(DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))), p_level_id, D.DEMAND_CLASS),
D.DEMAND_CLASS)),
p_demand_class),
30, decode(d.source_organization_id,
NULL, DECODE(D.DEMAND_CLASS, null, null,
DECODE(p_demand_class, '-1',
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
null, null, p_item_id, p_org_id,
p_instance_id, TRUNC(DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))), p_level_id, D.DEMAND_CLASS),
D.DEMAND_CLASS)),
-23453, DECODE(D.DEMAND_CLASS, null, null,
DECODE(p_demand_class, '-1',
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
null, null, p_item_id, p_org_id,
p_instance_id, TRUNC(DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))), p_level_id, D.DEMAND_CLASS),
D.DEMAND_CLASS)),
d.organization_id, DECODE(D.DEMAND_CLASS, null, null,
DECODE(p_demand_class, '-1',
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
null, null, p_item_id, p_org_id,
p_instance_id, TRUNC(DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))), p_level_id, D.DEMAND_CLASS),
D.DEMAND_CLASS)),
p_demand_class),
DECODE(D.DEMAND_CLASS, null, null,
DECODE(p_demand_class, '-1',
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
null, null, p_item_id, p_org_id,
p_instance_id, TRUNC(DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))), p_level_id, D.DEMAND_CLASS),
D.DEMAND_CLASS))),
DECODE(D.DEMAND_CLASS, null, null, --10425563
DECODE(p_demand_class, '-1',
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
null, null, p_item_id, p_org_id,
p_instance_id, TRUNC(DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))), p_level_id, D.DEMAND_CLASS),
D.DEMAND_CLASS))),
-- rajjain end
2, DECODE(D.CUSTOMER_ID, NULL, p_demand_class,
0, p_demand_class,
-- rajjain begin 07/19/2002
decode(MSC_ATP_PVT.G_INTERNAL_SALES_ORDER,'N', --10425563
decode(d.origination_type,
6, decode(d.source_organization_id,
NULL, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
p_org_id, p_instance_id, TRUNC(DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))),
p_level_id, NULL),
-23453, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
p_org_id, p_instance_id, TRUNC(DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))),
p_level_id, NULL),
d.organization_id, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
p_org_id, p_instance_id, TRUNC(DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))),
p_level_id, NULL),
p_demand_class),
30, decode(d.source_organization_id,
NULL, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
p_org_id, p_instance_id, TRUNC(DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))),
p_level_id, NULL),
-23453, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
p_org_id, p_instance_id, TRUNC(DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))),
p_level_id, NULL),
d.organization_id, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
p_org_id, p_instance_id, TRUNC(DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))),
p_level_id, NULL),
p_demand_class),
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(D.CUSTOMER_ID, D.SHIP_TO_SITE_ID,
p_item_id, p_org_id, p_instance_id,
TRUNC(DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))),p_level_id, NULL)),
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, --10425563
p_item_id, p_org_id, p_instance_id,
TRUNC(DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))),p_level_id, NULL))
)),
-- rajjain end 07/19/2002
p_demand_class,
p_level_id),0))) col24,
/*New*/
-- -1* D.USING_REQUIREMENT_QUANTITY, -- fixed as part of time_phased_atp
-1* (D.USING_REQUIREMENT_QUANTITY - nvl(d.reserved_quantity,0)),--5027568
-- C.PRIOR_DATE col25, -- 2859130
GREATEST(TRUNC(DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))),
p_sys_next_date) col25, --plan by request date --3099066
l_null_num col26,
DECODE(D.ORIGINATION_TYPE, 1, to_char(D.DISPOSITION_ID), D.ORDER_NUMBER) col27,
-- rajjain 04/25/2003 Bug 2771075
-- For Planned Order Demands We will populate disposition_id
-- in disposition_name column
l_null_num col28,
l_null_num col29,
-- ship_rec_cal changes begin
l_sysdate,
G_USER_ID,
l_sysdate,
G_USER_ID,
G_USER_ID,
-- ship_rec_cal changes end
-- Unallocated_Quantity
-- -1* D.USING_REQUIREMENT_QUANTITY, -- 2859130 remove decode for origination_type 4
-1* (D.USING_REQUIREMENT_QUANTITY - nvl(d.reserved_quantity,0)), --5027568
MTPS.LOCATION, --bug3263368
MTP.PARTNER_NAME, --bug3263368
D.DEMAND_CLASS, --bug3263368
DECODE(D.ORDER_DATE_TYPE_CODE,2,D.REQUEST_DATE,
D.REQUEST_SHIP_DATE) --bug3263368
FROM -- MSC_CALENDAR_DATES C, --2859130
MSC_DEMANDS D,
MSC_TRADING_PARTNERS MTP,--bug3263368
MSC_TRADING_PARTNER_SITES MTPS --bug3263368
WHERE D.PLAN_ID = p_plan_id
AND D.SR_INSTANCE_ID = p_instance_id
AND D.INVENTORY_ITEM_ID = p_item_id
AND D.ORGANIZATION_ID = p_org_id
AND D.USING_REQUIREMENT_QUANTITY <> 0 --4501434
AND D.ORIGINATION_TYPE NOT IN (5,7,8,9,11,15,22,28,29,31,52,70) -- For summary enhancement
AND D.SHIP_TO_SITE_ID = MTPS.PARTNER_SITE_ID(+) --bug3263368
AND D.CUSTOMER_ID = MTP.PARTNER_ID(+) --bug3263368
-- 2859130
-- Bug1990155, 1995835 exclude the expired lots demand datreya 9/18/2001
-- Bug 1530311, need to exclude forecast, ngoel 12/05/2000
-- AND C.CALENDAR_CODE = p_cal_code
-- AND C.EXCEPTION_SET_ID = p_cal_exc_set_id
-- AND C.SR_INSTANCE_ID = D.SR_INSTANCE_ID
-- since we store repetitive schedule demand in different ways for
-- ods (total quantity on start date) and pds (daily quantity from
-- start date to end date), we need to make sure we only select work day
-- for pds's repetitive schedule demand.
-- AND C.CALENDAR_DATE BETWEEN TRUNC(D.USING_ASSEMBLY_DEMAND_DATE) AND
-- TRUNC(NVL(D.ASSEMBLY_DEMAND_COMP_DATE,
-- D.USING_ASSEMBLY_DEMAND_DATE))
-- AND (( D.ORIGINATION_TYPE = 4
-- AND C.SEQ_NUM IS NOT NULL) OR
-- ( D.ORIGINATION_TYPE <> 4))
-- 2859130
-- Bug 3550296 and 3574164. IMPLEMENT_DATE AND DMD_SATISFIED_DATE are changed to
-- IMPLEMENT_SHIP_DATE and PLANNED_SHIP_DATE resp.
--bug3693892 added trunc
AND TRUNC(DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))))
< TRUNC(NVL(p_itf,DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))) + 1))
-- AND C.CALENDAR_DATE < NVL(p_itf, C.CALENDAR_DATE+1)
UNION ALL
SELECT p_level col1,
p_identifier col2,
p_scenario_id col3,
p_sr_item_id col4 ,
p_sr_item_id col5,
p_org_id col6,
l_null_num col7,
l_null_num col8,
l_null_num col9,
l_null_num col10,
l_null_num col11,
l_null_num col12,
l_null_num col13,
l_null_num col14,
l_null_char col15,
p_uom_code col16,
2 col17, -- supply
S.ORDER_TYPE col18,
l_null_char col19,
S.SR_INSTANCE_ID col20,
l_null_num col21,
S.TRANSACTION_ID col22,
l_null_num col23,
NVL(S.FIRM_QUANTITY,S.NEW_ORDER_QUANTITY)*
DECODE(p_scenario_id, -1, 1,
DECODE(DECODE(G_HIERARCHY_PROFILE,
--2424357
1, DECODE(S.DEMAND_CLASS, null, null,
DECODE(p_demand_class,'-1',
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
null,
null,
S.inventory_item_id,
p_org_id,
p_instance_id,
TRUNC(NVL(S.FIRM_DATE,S.NEW_SCHEDULE_DATE)),
p_level_id,
S.DEMAND_CLASS), S.DEMAND_CLASS)),
2, DECODE(S.CUSTOMER_ID, NULL, TO_CHAR(NULL),
--0, TO_CHAR(NULL),
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
S.CUSTOMER_ID,
S.SHIP_TO_SITE_ID,
S.inventory_item_id,
p_org_id,
p_instance_id,
TRUNC(NVL(S.FIRM_DATE,S.NEW_SCHEDULE_DATE)),
p_level_id,
NULL))),
p_demand_class, 1,
NULL, NVL(MIHM.allocation_percent/100,--4365873
/*NVL(MSC_AATP_FUNC.Get_DC_Alloc_Percent(
p_instance_id,
s.inventory_item_id,
p_org_id,
null,
null,
p_demand_class,
TRUNC(NVL(S.FIRM_DATE,S.NEW_SCHEDULE_DATE))),*/
1),
DECODE(MIHM.allocation_percent/100, --4365873
/*DECODE(MSC_AATP_FUNC.Get_DC_Alloc_Percent(
p_instance_id,
s.inventory_item_id,
p_org_id,
null,
null,
p_demand_class,
TRUNC(NVL(S.FIRM_DATE,S.NEW_SCHEDULE_DATE))),*/
NULL, 1,
0))) col24,
NVL(S.FIRM_QUANTITY,S.NEW_ORDER_QUANTITY),
--C.NEXT_DATE col25, -- 2859130
--TRUNC(NVL(S.FIRM_DATE,S.NEW_SCHEDULE_DATE)) col25,
GREATEST(TRUNC(NVL(S.FIRM_DATE,S.NEW_SCHEDULE_DATE)),p_sys_next_date) col25,--3099066
l_null_num col26,
DECODE(S.ORDER_TYPE, 5, to_char(S.TRANSACTION_ID), S.ORDER_NUMBER) col27,
-- Bug 2771075. For Planned Orders, we will populate transaction_id
-- in the disposition_name column to be consistent with Planning.
l_null_num col28,
l_null_num col29,
-- ship_rec_cal changes begin
l_sysdate,
G_USER_ID,
l_sysdate,
G_USER_ID,
G_USER_ID,
-- ship_rec_cal changes end
NVL(S.FIRM_QUANTITY,S.NEW_ORDER_QUANTITY), -- unallocated quantity
null, --bug3263368 ORIG_CUSTOMER_SITE_NAME
null, --bug3263368 ORIG_CUSTOMER_NAME
null, --bug3263368 ORIG_DEMAND_CLASS
null --bug3263368 ORIG_REQUEST_DATE
FROM -- MSC_CALENDAR_DATES C, -- 2859130
MSC_SUPPLIES S,MSC_ITEM_HIERARCHY_MV MIHM
WHERE S.PLAN_ID = p_plan_id
AND S.SR_INSTANCE_ID = p_instance_id
AND S.INVENTORY_ITEM_ID = p_item_id
AND S.ORGANIZATION_ID = p_org_id
-- Exclude Cancelled Supplies 2460645
AND NVL(S.DISPOSITION_STATUS_TYPE, 1) <> 2 -- Bug 2460645
AND NVL(S.FIRM_QUANTITY,S.NEW_ORDER_QUANTITY) <> 0 -- 1243985
--2859130
--AND C.CALENDAR_CODE = p_cal_code
--AND C.EXCEPTION_SET_ID = p_cal_exc_set_id
--AND C.SR_INSTANCE_ID = S.SR_INSTANCE_ID
--AND C.CALENDAR_DATE BETWEEN TRUNC(NVL(S.FIRM_DATE,S.NEW_SCHEDULE_DATE))
-- AND TRUNC(NVL(S.LAST_UNIT_COMPLETION_DATE,
-- NVL(S.FIRM_DATE,S.NEW_SCHEDULE_DATE)))
--AND DECODE(S.LAST_UNIT_COMPLETION_DATE,
-- NULL, C.NEXT_SEQ_NUM, C.SEQ_NUM) IS NOT NULL
--AND C.NEXT_DATE >= DECODE(S.ORDER_TYPE, 27, TRUNC(SYSDATE),
-- 28, TRUNC(SYSDATE),
-- C.NEXT_DATE)
--AND C.NEXT_DATE < NVL(p_itf,
-- C.NEXT_DATE + 1)
AND TRUNC(NVL(S.FIRM_DATE,S.NEW_SCHEDULE_DATE)) >= DECODE(S.ORDER_TYPE, 27, TRUNC(SYSDATE),
28, TRUNC(SYSDATE),
TRUNC(NVL(S.FIRM_DATE,S.NEW_SCHEDULE_DATE)))
AND TRUNC(NVL(S.FIRM_DATE,S.NEW_SCHEDULE_DATE)) < NVL(p_itf,
TRUNC(NVL(S.FIRM_DATE,S.NEW_SCHEDULE_DATE)) + 1)
--4365873
AND S.INVENTORY_ITEM_ID = MIHM.INVENTORY_ITEM_ID(+)
AND S.SR_INSTANCE_ID = MIHM.SR_INSTANCE_ID (+)
AND S.ORGANIZATION_ID = MIHM.ORGANIZATION_ID (+)
AND decode(MIHM.level_id (+),-1,1,2) = decode(G_HIERARCHY_PROFILE,1,1,2)
AND TRUNC(NVL(S.FIRM_DATE,S.NEW_SCHEDULE_DATE)) >= MIHM.effective_date (+)
AND TRUNC(NVL(S.FIRM_DATE,S.NEW_SCHEDULE_DATE)) <= MIHM.disable_date (+)
AND MIHM.demand_class (+) = p_demand_class
); -- dsting removed order by col25
INSERT INTO msc_atp_sd_details_temp (
ATP_Level,
Order_line_id,
Scenario_Id,
Inventory_Item_Id,
Request_Item_Id,
Organization_Id,
Department_Id,
Resource_Id,
Supplier_Id,
Supplier_Site_Id,
From_Organization_Id,
From_Location_Id,
To_Organization_Id,
To_Location_Id,
Ship_Method,
UOM_code,
Supply_Demand_Type,
Supply_Demand_Source_Type,
Supply_Demand_Source_Type_Name,
Identifier1,
Identifier2,
Identifier3,
Identifier4,
Allocated_Quantity,
Supply_Demand_Quantity,
Supply_Demand_Date,
Disposition_Type,
Disposition_Name,
Pegging_Id,
End_Pegging_Id,
creation_date,
created_by,
last_update_date,
last_updated_by,
last_update_login,
Unallocated_Quantity,
ORIG_CUSTOMER_SITE_NAME,--bug3263368
ORIG_CUSTOMER_NAME, --bug3263368
ORIG_DEMAND_CLASS, --bug3263368
ORIG_REQUEST_DATE --bug3263368
)
(
SELECT p_level col1,
p_identifier col2,
p_scenario_id col3,
p_sr_item_id col4 ,
p_sr_item_id col5,
p_org_id col6,
l_null_num col7,
l_null_num col8,
l_null_num col9,
l_null_num col10,
l_null_num col11,
l_null_num col12,
l_null_num col13,
l_null_num col14,
l_null_char col15,
p_uom_code col16,
1 col17, -- demand
--D.ORIGINATION_TYPE col18,
DECODE( D.ORIGINATION_TYPE, -100, 30, D.ORIGINATION_TYPE) col18, --5027568
l_null_char col19,
D.SR_INSTANCE_ID col20,
l_null_num col21,
D.DEMAND_ID col22,
l_null_num col23,
-1* DECODE(D.ORIGINATION_TYPE,
4, D.DAILY_DEMAND_RATE,
--D.USING_REQUIREMENT_QUANTITY)*
(D.USING_REQUIREMENT_QUANTITY - NVL(d.reserved_quantity, 0)))* --5027568
/*New*/
DECODE(p_scenario_id, -1, 1,
--2424357
DECODE(DECODE(G_HIERARCHY_PROFILE,
/*------------------------------------------------------------------------+
| rajjain begin 07/19/2002 |
| |
| Case 1: For internal sales orders [origination type is in (6,30) and |
| source_organization_id is not null and <> organization_id] |
| Return NULL |
| Case 2: For others if DEMAND_CLASS is null then return null |
| else if p_demand_class is '-1' then call |
| Get_Hierarchy_Demand_class else return DEMAND_CLASS |
+------------------------------------------------------------------------*/
1,
decode(MSC_ATP_PVT.G_INTERNAL_SALES_ORDER,'N', --10425563
decode(d.origination_type,
6, decode(d.source_organization_id,
NULL, DECODE(D.DEMAND_CLASS, null, null,
DECODE(p_demand_class, '-1',
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
null, null, p_item_id, p_org_id,
p_instance_id, c.calendar_date, p_level_id, D.DEMAND_CLASS),
D.DEMAND_CLASS)),
-23453, DECODE(D.DEMAND_CLASS, null, null,
DECODE(p_demand_class, '-1',
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
null, null, p_item_id, p_org_id,
p_instance_id, c.calendar_date, p_level_id, D.DEMAND_CLASS),
D.DEMAND_CLASS)),
d.organization_id, DECODE(D.DEMAND_CLASS, null, null,
DECODE(p_demand_class, '-1',
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
null, null, p_item_id, p_org_id,
p_instance_id, c.calendar_date, p_level_id, D.DEMAND_CLASS),
D.DEMAND_CLASS)), NULL),
30, decode(d.source_organization_id,
NULL, DECODE(D.DEMAND_CLASS, null, null,
DECODE(p_demand_class, '-1',
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
null, null, p_item_id, p_org_id,
p_instance_id, c.calendar_date, p_level_id, D.DEMAND_CLASS),
D.DEMAND_CLASS)),
-23453, DECODE(D.DEMAND_CLASS, null, null,
DECODE(p_demand_class, '-1',
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
null, null, p_item_id, p_org_id,
p_instance_id, c.calendar_date, p_level_id, D.DEMAND_CLASS),
D.DEMAND_CLASS)),
d.organization_id, DECODE(D.DEMAND_CLASS, null, null,
DECODE(p_demand_class, '-1',
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
null, null, p_item_id, p_org_id,
p_instance_id, c.calendar_date, p_level_id, D.DEMAND_CLASS),
D.DEMAND_CLASS)), NULL),
DECODE(D.DEMAND_CLASS, null, null,
DECODE(p_demand_class, '-1',
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
null, null, p_item_id, p_org_id,
p_instance_id, c.calendar_date, p_level_id, D.DEMAND_CLASS),
D.DEMAND_CLASS))),
DECODE(D.DEMAND_CLASS, null, null, --10425563
DECODE(p_demand_class, '-1',
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
null, null, p_item_id, p_org_id,
p_instance_id, c.calendar_date, p_level_id, D.DEMAND_CLASS),
D.DEMAND_CLASS))),
-- rajjain end
2, DECODE(D.CUSTOMER_ID, NULL, NULL,
0, NULL,
-- rajjain begin 07/19/2002
decode(MSC_ATP_PVT.G_INTERNAL_SALES_ORDER,'N', --10425563
decode(d.origination_type,
6, decode(d.source_organization_id,
NULL, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
p_org_id, p_instance_id, c.calendar_date,
p_level_id, NULL),
-23453, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
p_org_id, p_instance_id, c.calendar_date,
p_level_id, NULL),
d.organization_id, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
p_org_id, p_instance_id, c.calendar_date,
p_level_id, NULL),
NULL),
30, decode(d.source_organization_id,
NULL, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
p_org_id, p_instance_id, c.calendar_date,
p_level_id, NULL),
-23453, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
p_org_id, p_instance_id, c.calendar_date,
p_level_id, NULL),
d.organization_id, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
p_org_id, p_instance_id, c.calendar_date,
p_level_id, NULL),
NULL),
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(D.CUSTOMER_ID, D.SHIP_TO_SITE_ID,
p_item_id, p_org_id, p_instance_id,
c.calendar_date,p_level_id, NULL)),
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, --10425563
p_item_id, p_org_id, p_instance_id,
c.calendar_date,p_level_id, NULL))
)),
-- rajjain end 07/19/2002
p_demand_class, 1,
Decode(D.Demand_Class, NULL, --4365873
MSC_AATP_FUNC.Get_Item_Demand_Alloc_Percent(p_plan_id,
D.DEMAND_ID,
c.calendar_date,
D.USING_ASSEMBLY_ITEM_ID,
DECODE(D.SOURCE_ORGANIZATION_ID,
-23453, null,
D.SOURCE_ORGANIZATION_ID),
p_item_id,
p_org_id, -- 1665483
p_instance_id,
decode (d.origination_type, -100, 30,d.origination_type),
DECODE(G_HIERARCHY_PROFILE,
/*-----------------------------------------------------------------+
| rajjain begin 07/19/2002 |
| |
| Case 1: For internal sales orders [origination type is in (6,30) |
| and source_organization_id is not null |
| and <> organization_id] -> Return p_demand_class |
| Case 2: For others if DEMAND_CLASS is null then return null |
| else if p_demand_class is '-1' then call |
| Get_Hierarchy_Demand_class else return DEMAND_CLASS |
+-----------------------------------------------------------------*/
1,
decode(MSC_ATP_PVT.G_INTERNAL_SALES_ORDER,'N', --10425563
decode(d.origination_type,
6, decode(d.source_organization_id,
NULL, DECODE(D.DEMAND_CLASS, null, null,
DECODE(p_demand_class, '-1',
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
null, null, p_item_id, p_org_id,
p_instance_id, c.calendar_date, p_level_id, D.DEMAND_CLASS),
D.DEMAND_CLASS)),
-23453, DECODE(D.DEMAND_CLASS, null, null,
DECODE(p_demand_class, '-1',
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
null, null, p_item_id, p_org_id,
p_instance_id, c.calendar_date, p_level_id, D.DEMAND_CLASS),
D.DEMAND_CLASS)),
d.organization_id, DECODE(D.DEMAND_CLASS, null, null,
DECODE(p_demand_class, '-1',
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
null, null, p_item_id, p_org_id,
p_instance_id, c.calendar_date, p_level_id, D.DEMAND_CLASS),
D.DEMAND_CLASS)),
p_demand_class),
30, decode(d.source_organization_id,
NULL, DECODE(D.DEMAND_CLASS, null, null,
DECODE(p_demand_class, '-1',
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
null, null, p_item_id, p_org_id,
p_instance_id, c.calendar_date, p_level_id, D.DEMAND_CLASS),
D.DEMAND_CLASS)),
-23453, DECODE(D.DEMAND_CLASS, null, null,
DECODE(p_demand_class, '-1',
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
null, null, p_item_id, p_org_id,
p_instance_id, c.calendar_date, p_level_id, D.DEMAND_CLASS),
D.DEMAND_CLASS)),
d.organization_id, DECODE(D.DEMAND_CLASS, null, null,
DECODE(p_demand_class, '-1',
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
null, null, p_item_id, p_org_id,
p_instance_id, c.calendar_date, p_level_id, D.DEMAND_CLASS),
D.DEMAND_CLASS)),
p_demand_class),
DECODE(D.DEMAND_CLASS, null, null,
DECODE(p_demand_class, '-1',
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
null, null, p_item_id, p_org_id,
p_instance_id, c.calendar_date, p_level_id, D.DEMAND_CLASS),
D.DEMAND_CLASS))),
DECODE(D.DEMAND_CLASS, null, null,
DECODE(p_demand_class, '-1',
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
null, null, p_item_id, p_org_id,
p_instance_id, c.calendar_date, p_level_id, D.DEMAND_CLASS),
D.DEMAND_CLASS))),
-- rajjain end
2, DECODE(D.CUSTOMER_ID, NULL, p_demand_class,
0, p_demand_class,
-- rajjain begin 07/19/2002
decode(MSC_ATP_PVT.G_INTERNAL_SALES_ORDER,'N',
decode(d.origination_type,
6, decode(d.source_organization_id,
NULL, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
p_org_id, p_instance_id, c.calendar_date,
p_level_id, NULL),
-23453, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
p_org_id, p_instance_id, c.calendar_date,
p_level_id, NULL),
d.organization_id, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
p_org_id, p_instance_id, c.calendar_date,
p_level_id, NULL),
p_demand_class),
30, decode(d.source_organization_id,
NULL, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
p_org_id, p_instance_id, c.calendar_date,
p_level_id, NULL),
-23453, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
p_org_id, p_instance_id, c.calendar_date,
p_level_id, NULL),
d.organization_id, MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
D.CUSTOMER_ID, D.SHIP_TO_SITE_ID, p_item_id,
p_org_id, p_instance_id, c.calendar_date,
p_level_id, NULL),
p_demand_class),
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(D.CUSTOMER_ID, D.SHIP_TO_SITE_ID,
p_item_id, p_org_id, p_instance_id,
c.calendar_date,p_level_id, NULL)),
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(D.CUSTOMER_ID, D.SHIP_TO_SITE_ID,
p_item_id, p_org_id, p_instance_id,
c.calendar_date,p_level_id, NULL)) --10425563
)),
-- rajjain end 07/19/2002
p_demand_class,
p_level_id),0))) col24,
/*New*/
-1* DECODE(D.ORIGINATION_TYPE,
4, D.DAILY_DEMAND_RATE,
--D.USING_REQUIREMENT_QUANTITY),
(D.USING_REQUIREMENT_QUANTITY- nvl(d.reserved_quantity,0))), --5027568
-- C.PRIOR_DATE col25, -- 2859130
--C.CALENDAR_DATE col25,
GREATEST(C.CALENDAR_DATE,p_sys_next_date) col25,
l_null_num col26,
DECODE(D.ORIGINATION_TYPE, 1, to_char(D.DISPOSITION_ID), D.ORDER_NUMBER) col27,
-- rajjain 04/25/2003 Bug 2771075
-- For Planned Order Demands We will populate disposition_id
-- in disposition_name column
l_null_num col28,
l_null_num col29,
-- ship_rec_cal changes begin
l_sysdate,
G_USER_ID,
l_sysdate,
G_USER_ID,
G_USER_ID,
-- ship_rec_cal changes end
-- Unallocated_Quantity
-1* DECODE(D.ORIGINATION_TYPE,
4, D.DAILY_DEMAND_RATE,
--D.USING_REQUIREMENT_QUANTITY),
(D.USING_REQUIREMENT_QUANTITY- nvl(d.reserved_quantity,0))), --5027568
MTPS.LOCATION, --bug3263368
MTP.PARTNER_NAME, --bug3263368
D.DEMAND_CLASS, --bug3263368
DECODE(D.ORDER_DATE_TYPE_CODE,2,D.REQUEST_DATE,
D.REQUEST_SHIP_DATE) --bug3263368
FROM MSC_CALENDAR_DATES C,
MSC_DEMANDS D,
MSC_TRADING_PARTNERS MTP,--bug3263368
MSC_TRADING_PARTNER_SITES MTPS --bug3263368
WHERE D.PLAN_ID = p_plan_id
AND D.SR_INSTANCE_ID = p_instance_id
AND D.INVENTORY_ITEM_ID = p_item_id
AND D.USING_REQUIREMENT_QUANTITY <> 0 --4501434
AND D.ORGANIZATION_ID = p_org_id
AND D.ORIGINATION_TYPE NOT IN (5,7,8,9,11,15,22,28,29,31,52,70) -- For summary enhancement
AND D.SHIP_TO_SITE_ID = MTPS.PARTNER_SITE_ID(+) --bug3263368
AND D.CUSTOMER_ID = MTP.PARTNER_ID(+)--bug3263368
-- Bug1990155, 1995835 exclude the expired lots demand datreya 9/18/2001
-- Bug 1530311, need to exclude forecast, ngoel 12/05/2000
AND C.CALENDAR_CODE = p_cal_code
AND C.EXCEPTION_SET_ID = p_cal_exc_set_id
AND C.SR_INSTANCE_ID = D.SR_INSTANCE_ID
-- since we store repetitive schedule demand in different ways for
-- ods (total quantity on start date) and pds (daily quantity from
-- start date to end date), we need to make sure we only select work day
-- for pds's repetitive schedule demand.
-- Bug 3550296 and 3574164. IMPLEMENT_DATE AND DMD_SATISFIED_DATE are changed to
-- IMPLEMENT_SHIP_DATE and PLANNED_SHIP_DATE resp.
AND C.CALENDAR_DATE BETWEEN TRUNC(DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))) AND
TRUNC(NVL(D.ASSEMBLY_DEMAND_COMP_DATE,
DECODE(RECORD_SOURCE,
2, NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE),
DECODE(MSC_ATP_PVT.G_HP_DEMAND_BUCKETING_PREF,
2, NVL(D.IMPLEMENT_SHIP_DATE,NVL(D.FIRM_DATE,NVL(D.PLANNED_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE))),
NVL(D.SCHEDULE_SHIP_DATE,D.USING_ASSEMBLY_DEMAND_DATE)))))
AND (( D.ORIGINATION_TYPE = 4
AND C.SEQ_NUM IS NOT NULL) OR
( D.ORIGINATION_TYPE <> 4))
-- 2859130
-- AND C.PRIOR_DATE < NVL(p_itf,
-- C.PRIOR_DATE + 1)
AND C.CALENDAR_DATE < NVL(p_itf, C.CALENDAR_DATE+1)
UNION ALL
SELECT p_level col1,
p_identifier col2,
p_scenario_id col3,
p_sr_item_id col4 ,
p_sr_item_id col5,
p_org_id col6,
l_null_num col7,
l_null_num col8,
l_null_num col9,
l_null_num col10,
l_null_num col11,
l_null_num col12,
l_null_num col13,
l_null_num col14,
l_null_char col15,
p_uom_code col16,
2 col17, -- supply
CS.ORDER_TYPE col18,
l_null_char col19,
CS.SR_INSTANCE_ID col20,
l_null_num col21,
CS.TRANSACTION_ID col22,
l_null_num col23,
NVL(CS.FIRM_QUANTITY,CS.NEW_ORDER_QUANTITY)*
DECODE(p_scenario_id, -1, 1,
DECODE(DECODE(G_HIERARCHY_PROFILE,
--2424357
1, DECODE(CS.DEMAND_CLASS, null, null,
DECODE(p_demand_class,'-1',
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
null,
null,
cs.inventory_item_id,
p_org_id,
p_instance_id,
cs.calendar_date,
p_level_id,
CS.DEMAND_CLASS), CS.DEMAND_CLASS)),
2, DECODE(CS.CUSTOMER_ID, NULL, TO_CHAR(NULL),
--0, TO_CHAR(NULL),
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
CS.CUSTOMER_ID,
CS.SHIP_TO_SITE_ID,
cs.inventory_item_id,
p_org_id,
p_instance_id,
cs.calendar_date,
p_level_id,
NULL))),
p_demand_class, 1,
NULL, nvl(MIHM.allocation_percent/100,1), --4365873
/*NVL(MSC_AATP_FUNC.Get_DC_Alloc_Percent(
p_instance_id,
cs.inventory_item_id,
p_org_id,
null,
null,
p_demand_class,
cs.calendar_date), 1),*/
DECODE(
MIHM.allocation_percent/100, --4365873
/*DECODE(MSC_AATP_FUNC.Get_DC_Alloc_Percent(
p_instance_id,
cs.inventory_item_id,
p_org_id,
null,
null,
p_demand_class,
cs.calendar_date),*/
NULL, 1,
0))) col24,
NVL(CS.FIRM_QUANTITY,CS.NEW_ORDER_QUANTITY),
--C.NEXT_DATE col25, -- 2859130
--C.CALENDAR_DATE col25,
GREATEST(CS.CALENDAR_DATE,p_sys_next_date) col25,--3099066
l_null_num col26,
DECODE(CS.ORDER_TYPE, 5, to_char(CS.TRANSACTION_ID), CS.ORDER_NUMBER) col27,
-- Bug 2771075. For Planned Orders, we will populate transaction_id
-- in the disposition_name column to be consistent with Planning.
l_null_num col28,
l_null_num col29,
-- ship_rec_cal changes begin
l_sysdate,
G_USER_ID,
l_sysdate,
G_USER_ID,
G_USER_ID,
-- ship_rec_cal changes end
NVL(CS.FIRM_QUANTITY,CS.NEW_ORDER_QUANTITY), -- unallocated quantity
null, --bug3263368 ORIG_CUSTOMER_SITE_NAME
null, --bug3263368 ORIG_CUSTOMER_NAME
null, --bug3263368 ORIG_DEMAND_CLASS
null --bug3263368 ORIG_REQUEST_DATE
FROM
( select
S.ORDER_TYPE,
S.TRANSACTION_ID,
S.ORDER_NUMBER,
S.SR_INSTANCE_ID,
C.NEXT_DATE,
S.FIRM_QUANTITY,
S.NEW_ORDER_QUANTITY,
S.DEMAND_CLASS,
s.inventory_item_id,
S.CUSTOMER_ID,
S.SHIP_TO_SITE_ID,
S.ORGANIZATION_ID,
C.CALENDAR_DATE
FROM MSC_CALENDAR_DATES C,
MSC_SUPPLIES S
WHERE S.PLAN_ID = p_plan_id
AND S.SR_INSTANCE_ID = p_instance_id
AND S.INVENTORY_ITEM_ID = p_item_id
AND S.ORGANIZATION_ID = p_org_id
-- Exclude Cancelled Supplies 2460645
AND NVL(S.DISPOSITION_STATUS_TYPE, 1) <> 2 -- Bug 2460645
AND NVL(S.FIRM_QUANTITY,S.NEW_ORDER_QUANTITY) <> 0 -- 1243985
AND C.CALENDAR_CODE = p_cal_code
AND C.EXCEPTION_SET_ID = p_cal_exc_set_id
AND C.SR_INSTANCE_ID = S.SR_INSTANCE_ID
AND C.CALENDAR_DATE BETWEEN TRUNC(NVL(S.FIRM_DATE,S.NEW_SCHEDULE_DATE))
AND TRUNC(NVL(S.LAST_UNIT_COMPLETION_DATE,
NVL(S.FIRM_DATE,S.NEW_SCHEDULE_DATE)))
AND DECODE(TRUNC(S.LAST_UNIT_COMPLETION_DATE), --4135752
NULL, C.NEXT_SEQ_NUM, C.SEQ_NUM) IS NOT NULL
--2859130
--AND C.NEXT_DATE >= DECODE(S.ORDER_TYPE, 27, TRUNC(SYSDATE),
-- 28, TRUNC(SYSDATE),
-- C.NEXT_DATE)
--AND C.NEXT_DATE < NVL(p_itf,
-- C.NEXT_DATE + 1)
AND C.CALENDAR_DATE >= DECODE(S.ORDER_TYPE, 27, TRUNC(SYSDATE),
28, TRUNC(SYSDATE),
C.CALENDAR_DATE)
AND C.CALENDAR_DATE < NVL(p_itf,
C.CALENDAR_DATE + 1))CS,
MSC_ITEM_HIERARCHY_MV MIHM
WHERE
--4365873
CS.INVENTORY_ITEM_ID = MIHM.INVENTORY_ITEM_ID(+)
AND CS.SR_INSTANCE_ID = MIHM.SR_INSTANCE_ID (+)
AND CS.ORGANIZATION_ID = MIHM.ORGANIZATION_ID (+)
AND decode(MIHM.level_id (+),-1,1,2) = decode(G_HIERARCHY_PROFILE,1,1,2)
AND CS.NEXT_DATE >= MIHM.effective_date (+)
AND CS.NEXT_DATE <= MIHM.disable_date (+)
AND MIHM.demand_class (+) = p_demand_class
)
; -- dsting removed order by col25
p_insert_flag IN NUMBER,
x_atp_info OUT NoCopy MRP_ATP_PVT.ATP_Info,
x_atp_period OUT NoCopy MRP_ATP_PUB.ATP_Period_Typ,
x_atp_supply_demand OUT NoCopy MRP_ATP_PUB.ATP_Supply_Demand_Typ,
p_get_mat_in_rec IN MSC_ATP_REQ.get_mat_in_rec,
p_request_item_id IN NUMBER, -- For time_phased_atp
p_atf_date IN DATE) -- For time_phased_atp
IS
l_infinite_time_fence_date DATE;
msc_sch_wb.atp_debug('Item_Alloc_Cum_Atp: ' || 'p_insert_flag =' || p_insert_flag );
SELECT inventory_item_id, uom_code
INTO l_inv_item_id, l_uom_code
FROM msc_system_items
WHERE plan_id = p_plan_id
AND sr_instance_id = p_instance_id
AND organization_id = p_organization_id
AND sr_inventory_item_id = p_inventory_item_id;
msc_sch_wb.atp_debug('Item_Alloc_Cum_Atp: ' || 'Error selecting uom_code for the item');
We don't need to select all demand classes in case this procdure is
called from MSC_AATP_PVT.VIEW_ALLOCATION for view total*/
IF p_identifier <> -1 or (p_identifier = -1 and p_scenario_id <> -1) THEN
IF PG_DEBUG in ('Y', 'C') THEN
msc_sch_wb.atp_debug('Item_Alloc_Cum_Atp: ' || 'before select the high priority demand class');
1. Now we select all the demand classes in l_demand_class_tab irrespective of demand class for which
Inquiry has come.
2. l_allocation_percent_tab stores the allocation_percent for the demand classes.
3. If inquiry is at level 2 or 3 we also populate l_fw_consume_tab which stores the type
of forward consumption. We bulk collect 0 in l_fw_consume_tab to initialise it.
Note:
1. We order by allocation_percent in demand class scenario if we have multiple
demand classes at same priority.
2. We are not doing this for customer class scenario as it may impact performance
negatively due to extra joins.*/
/* time_phased_atp changes begin */
-- bug 1680719
IF l_level_id = -1 THEN
IF PG_DEBUG in ('Y', 'C') THEN
msc_sch_wb.atp_debug('Item_Alloc_Cum_Atp: ' || 'l_level_id = '||l_level_id);
SELECT demand_class, priority, allocation_percent
BULK COLLECT INTO l_demand_class_tab, l_demand_class_priority_tab, l_allocation_percent_tab
FROM msc_item_hierarchy_mv
WHERE inventory_item_id = l_item_to_use /* New allocation logic for time_phased_atp changes*/
AND organization_id = p_organization_id
AND sr_instance_id = p_instance_id
AND p_request_date BETWEEN effective_date AND disable_date
AND level_id = l_level_id
--rajjain added demand_class asc
ORDER BY priority asc, allocation_percent desc, demand_class asc;
SELECT demand_class, priority, allocation_percent
BULK COLLECT INTO l_demand_class_tab, l_demand_class_priority_tab, l_allocation_percent_tab
FROM msc_item_hierarchy_mv
WHERE inventory_item_id = l_item_to_use /* New allocation logic for time_phased_atp changes*/
AND organization_id = p_organization_id
AND sr_instance_id = p_instance_id
AND p_request_date BETWEEN effective_date AND disable_date
AND level_id = l_level_id
ORDER BY priority asc, class asc;
SELECT mv1.demand_class, mv1.priority, mv1.class, mv1.partner_id, 0, mv1.allocation_percent
BULK COLLECT INTO l_demand_class_tab, l_demand_class_priority_tab,
l_class_tab, l_partner_tab, l_fw_consume_tab, l_allocation_percent_tab
FROM msc_item_hierarchy_mv mv1
WHERE mv1.inventory_item_id = l_item_to_use /* New allocation logic for time_phased_atp changes*/
AND mv1.organization_id = p_organization_id
AND mv1.sr_instance_id = p_instance_id
AND p_request_date BETWEEN mv1.effective_date AND mv1.disable_date
AND mv1.level_id = l_level_id
ORDER BY trunc(mv1.priority, -3), mv1.class ,
trunc(mv1.priority, -2), mv1.partner_id;
SELECT mv1.demand_class, mv1.priority, mv1.class, mv1.partner_id, 0, mv1.allocation_percent
BULK COLLECT INTO l_demand_class_tab, l_demand_class_priority_tab,
l_class_tab, l_partner_tab, l_fw_consume_tab, l_allocation_percent_tab
FROM msc_item_hierarchy_mv mv1
WHERE mv1.inventory_item_id = l_item_to_use /* New allocation logic for time_phased_atp changes*/
AND mv1.organization_id = p_organization_id
AND mv1.sr_instance_id = p_instance_id
AND p_request_date BETWEEN mv1.effective_date AND mv1.disable_date
AND mv1.level_id = l_level_id
ORDER BY trunc(mv1.priority, -3), mv1.class ,
trunc(mv1.priority, -2), mv1.partner_id,
mv1.priority, mv1.partner_site_id;
l_demand_class_tab.Delete;
l_demand_class_priority_tab.Delete;
l_allocation_percent_tab.Delete;
IF (NVL(p_insert_flag, 0) = 0 OR l_demand_class <> p_demand_class) THEN
-- we don't want details
IF PG_DEBUG in ('Y', 'C') THEN
msc_sch_wb.atp_debug('Item_Alloc_Cum_Atp: ' ||
'Inside IF (NVL(p_insert_flag, 0) = 0');
'Inside ELSE of IF (NVL(p_insert_flag, 0)=0 OR l_demand_class<>p_demand_class)');
msc_sch_wb.atp_debug('Item_Alloc_Cum_Atp: ' || 'after insert into msc_atp_sd_details_temp');
IF (NVL(p_insert_flag, 0) <>0)
AND (l_demand_class_tab(i) = p_demand_class) THEN
l_temp_atp := l_current_atp;
IF (NVL(p_insert_flag, 0) <>0) AND (l_demand_class_tab(i) = p_demand_class) THEN
/*rajjain begin 12/10/2002
We now do following instead of making call to MSC_SATP_FUNC.Extend_Atp_Supply_Demand
number of times condition l_current_atp.atp_qty(j) < l_temp_atp.atp_qty(j) is true
inside FOR LOOP
1. Before FOR loop we extend l_temp_atp_supply_demand by l_current_atp.atp_qty.COUNT
2. After FOR loop we trim the remaining.*/
-- initialize k
k := l_temp_atp_supply_demand.Level.Count;
END IF; -- IF (NVL(p_insert_flag, 0) <>0) .....
IF NVL(p_insert_flag, 0) <> 0 THEN
-- add one more entry to indicate infinite time fence date and quantity.
x_atp_period.Cumulative_Quantity := x_atp_info.atp_qty;
p_insert_flag IN NUMBER,
p_max_capacity IN NUMBER,
p_batchable_flag IN NUMBER,
p_res_conversion_rate IN NUMBER,
p_res_uom_type IN NUMBER,
x_atp_info OUT NoCopy MRP_ATP_PVT.ATP_Info,
x_atp_period OUT NoCopy MRP_ATP_PUB.ATP_Period_Typ,
x_atp_supply_demand OUT NoCopy MRP_ATP_PUB.ATP_Supply_Demand_Typ)
IS
l_infinite_time_fence_date DATE;
SELECT DECODE(plans.plan_type, 4, 2,
DECODE(daily_material_constraints, 1, 1,
DECODE(daily_resource_constraints, 1, 1,
DECODE(weekly_material_constraints, 1, 1,
DECODE(weekly_resource_constraints, 1, 1,
DECODE(period_material_constraints, 1, 1,
DECODE(period_resource_constraints, 1, 1, 2)
)
)
)
)
)
),
DECODE(MSO_Batch_Flag, 'Y', DECODE(plans.plan_type, 4, 0,2,0, -- filter out MPS plans
DECODE(daily_material_constraints, 1, 1,
DECODE(daily_resource_constraints, 1, 1,
DECODE(weekly_material_constraints, 1, 1,
DECODE(weekly_resource_constraints, 1, 1,
DECODE(period_material_constraints, 1, 1,
DECODE(period_resource_constraints, 1, 1, 2)
)
)
)
)
)
), 0),
trunc(plan_start_date)
INTO l_optimized_plan,l_constraint_plan, l_plan_start_date
FROM msc_designators desig,
msc_plans plans
WHERE plans.plan_id = p_plan_id
AND desig.designator = plans.compile_designator
AND desig.sr_instance_id = plans.sr_instance_id
AND desig.organization_id = plans.organization_id;
msc_sch_wb.atp_debug('Res_Alloc_Cum_Atp: ' || 'before select the high priority demand class');
SELECT demand_class, priority
BULK COLLECT INTO l_demand_class_tab, l_demand_class_priority_tab
FROM msc_resource_hierarchy_mv
WHERE department_id = p_department_id
AND resource_id = p_resource_id
AND organization_id = p_organization_id
AND sr_instance_id = p_instance_id
AND p_request_date BETWEEN effective_date AND disable_date
AND priority <= l_priority -- 1665110, add '='
AND level_id = l_level_id
ORDER BY priority asc, allocation_percent desc;
SELECT demand_class, priority
BULK COLLECT INTO l_demand_class_tab, l_demand_class_priority_tab
FROM msc_resource_hierarchy_mv
WHERE department_id = p_department_id
AND resource_id = p_resource_id
AND organization_id = p_organization_id
AND sr_instance_id = p_instance_id
AND p_request_date BETWEEN effective_date AND disable_date
AND priority <= l_priority -- 1665110, add '='
AND level_id = l_level_id
ORDER BY priority asc, class;
SELECT mv1.demand_class, mv1.priority, mv1.class, mv1.partner_id
BULK COLLECT INTO l_demand_class_tab, l_demand_class_priority_tab,
l_class_tab, l_partner_tab
FROM msc_resource_hierarchy_mv mv1
WHERE mv1.department_id = p_department_id
AND mv1.resource_id = p_resource_id
AND mv1.organization_id = p_organization_id
AND mv1.sr_instance_id = p_instance_id
AND p_request_date BETWEEN mv1.effective_date AND mv1.disable_date
--AND mv1.priority <= l_priority -- 1665110, add '='
AND mv1.level_id = l_level_id
AND trunc(mv1.priority, -3) <= trunc(l_priority, -3)
ORDER BY trunc(mv1.priority, -3), mv1.class ,
trunc(mv1.priority, -2), mv1.partner_id;
SELECT mv1.demand_class, mv1.priority, mv1.class, mv1.partner_id
BULK COLLECT INTO l_demand_class_tab, l_demand_class_priority_tab,
l_class_tab, l_partner_tab
FROM msc_resource_hierarchy_mv mv1
WHERE mv1.department_id = p_department_id
AND mv1.resource_id = p_resource_id
AND mv1.organization_id = p_organization_id
AND mv1.sr_instance_id = p_instance_id
AND p_request_date BETWEEN mv1.effective_date AND mv1.disable_date
--AND mv1.priority <= l_priority -- 1665110, add '='
AND mv1.level_id = l_level_id
AND trunc(mv1.priority, -3) <= trunc(l_priority, -3)
ORDER BY trunc(mv1.priority, -3), mv1.class ,
trunc(mv1.priority, -2), mv1.partner_id,
mv1.priority, mv1.partner_site_id;
IF (NVL(p_insert_flag, 0) = 0 OR l_demand_class <> p_demand_class) THEN
-- we don't want details
IF (l_use_batching = 1) THEN
IF (l_optimized_plan = 1) THEN -- Constrained Plan Bug 2809639
IF PG_DEBUG in ('Y', 'C') THEN
msc_sch_wb.atp_debug('Res_Alloc_Cum_Atp: ' || 'Constrained Plan Batching');
SELECT SD_DATE,
SUM(SD_QTY)
BULK COLLECT INTO
l_current_atp.atp_period,
l_current_atp.atp_qty
FROM (
SELECT -- C.CALENDAR_DATE SD_DATE, -- 2859130
-- Bug 3348095
-- For ATP created records use end_date otherwise start_date
GREATEST(DECODE(REQ.record_source, 2, TRUNC(NVL(REQ.END_DATE, REQ.START_DATE)) ,
TRUNC(REQ.START_DATE)),l_sys_next_date) SD_DATE, --bug3333114
-1*DECODE(REQ.RESOURCE_ID, -1, REQ.LOAD_RATE,
DECODE(REQ.END_DATE, NULL, REQ.RESOURCE_HOURS,
DECODE(REQ.record_source, 2, REQ.RESOURCE_HOURS,
REQ.DAILY_RESOURCE_HOURS))) *
-- For ATP created records use resource_hours
-- End Bug 3348095
---resource batching
DECODE(DR.UOM_CLASS_TYPE, 1, I.UNIT_WEIGHT, 2, UNIT_VOLUME) *
NVL(MUC.CONVERSION_RATE, 1) * NVL(S.NEW_ORDER_QUANTITY, FIRM_QUANTITY) *
/*New*/
DECODE(DECODE(G_HIERARCHY_PROFILE,
--bug 2424357
1, DECODE(S.DEMAND_CLASS, null, null,
DECODE(l_demand_class, '-1',
MSC_AATP_FUNC.Get_RES_Hierarchy_Demand_Class(
null,
null,
p_department_id,
p_resource_id,
p_organization_id,
p_instance_id,
-- 2859130 c.calendar_date,
-- Bug 3348095
-- For ATP created records use end_date
-- otherwise start_date
DECODE(REQ.record_source, 2,
TRUNC(NVL(REQ.END_DATE, REQ.START_DATE)) ,
TRUNC(REQ.START_DATE)),
--trunc(req.start_date),
-- End Bug 3348095
l_level_id,
S.DEMAND_CLASS), S.DEMAND_CLASS)),
2, DECODE(S.CUSTOMER_ID, NULL, TO_CHAR(NULL),
0, TO_CHAR(NULL),
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
S.CUSTOMER_ID,
S.SHIP_TO_SITE_ID,
s.inventory_item_id,
p_organization_id,
p_instance_id,
-- 2859130 c.calendar_date,
-- Bug 3348095
-- For ATP created records use end_date
-- otherwise start_date
DECODE(REQ.record_source, 2,
TRUNC(NVL(REQ.END_DATE, REQ.START_DATE)) ,
TRUNC(REQ.START_DATE)),
--trunc(req.start_date),
-- End Bug 3348095
l_level_id,
NULL))),
l_demand_class, 1,
--bug 4089293: If l_demand_class is not null and demand class is populated
-- on supplies record then 0 should be allocated.
Decode (S.Demand_Class, NULL,
MSC_AATP_FUNC.Get_Res_Demand_Alloc_Percent(
-- 2859130 C.CALENDAR_DATE,
-- Bug 3348095
-- For ATP created records use end_date
-- otherwise start_date
DECODE(REQ.record_source, 2,
TRUNC(NVL(REQ.END_DATE, REQ.START_DATE)) ,
TRUNC(REQ.START_DATE)),
--trunc(req.start_date),
-- End Bug 3348095
REQ.ASSEMBLY_ITEM_ID,
p_organization_id,
p_instance_id,
p_department_id,
p_resource_id,
DECODE(G_HIERARCHY_PROFILE,
--2424357
1, DECODE(S.DEMAND_CLASS, null, null,
DECODE(l_demand_class, -1,
MSC_AATP_FUNC.Get_RES_Hierarchy_Demand_Class(
null,
null,
p_department_id,
p_resource_id,
p_organization_id,
p_instance_id,
-- 2859130 c.calendar_date,
-- Bug 3348095
-- For ATP created records use end_date
-- otherwise start_date
DECODE(REQ.record_source, 2,
TRUNC(NVL(REQ.END_DATE, REQ.START_DATE)) ,
TRUNC(REQ.START_DATE)),
--trunc(req.start_date),
-- End Bug 3348095
l_level_id,
S.DEMAND_CLASS), S.DEMAND_CLASS)),
2, DECODE(S.CUSTOMER_ID, NULL, l_demand_class,
0, l_demand_class,
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
S.CUSTOMER_ID,
S.SHIP_TO_SITE_ID,
l_inv_item_id,
p_organization_id,
p_instance_id,
-- 2859130 c.calendar_date,
-- Bug 3348095
-- For ATP created records use end_date
-- otherwise start_date
DECODE(REQ.record_source, 2,
TRUNC(NVL(REQ.END_DATE, REQ.START_DATE)) ,
TRUNC(REQ.START_DATE)),
--trunc(req.start_date),
-- End Bug 3348095
l_level_id,
NULL))),
l_demand_class), 0)) SD_QTY
/*New*/
FROM MSC_DEPARTMENT_RESOURCES DR,
MSC_SUPPLIES S,
MSC_RESOURCE_REQUIREMENTS REQ,
-- 2859130 MSC_CALENDAR_DATES C,
MSC_SYSTEM_ITEMS I,
MSC_UOM_CONVERSIONS MUC
WHERE DR.PLAN_ID = p_plan_id
AND NVL(DR.OWNING_DEPARTMENT_ID, DR.DEPARTMENT_ID)=p_department_id
AND DR.RESOURCE_ID = p_resource_id
AND DR.SR_INSTANCE_ID = p_instance_id
AND DR.ORGANIZATION_ID = p_organization_id -- for performance
AND REQ.PLAN_ID = DR.PLAN_ID
AND REQ.SR_INSTANCE_ID = DR.SR_INSTANCE_ID
AND REQ.RESOURCE_ID = DR.RESOURCE_ID
AND REQ.DEPARTMENT_ID = DR.DEPARTMENT_ID
AND NVL(REQ.PARENT_ID, 1) = 1 -- Bug 2809639
AND S.PLAN_ID = DR.PLAN_ID
AND S.TRANSACTION_ID = REQ.SUPPLY_ID
AND S.SR_INSTANCE_ID = REQ.SR_INSTANCE_ID --bug3948494
-- Exclude Cancelled Supplies 2460645
AND NVL(S.DISPOSITION_STATUS_TYPE, 1) <> 2 -- Bug 2460645
AND I.SR_INSTANCE_ID = REQ.SR_INSTANCE_Id
AND I.PLAN_ID = S.PLAN_ID
AND I.ORGANIZATION_ID = S.ORGANIZATION_ID
AND I.INVENTORY_ITEM_ID = S.INVENTORY_ITEM_ID
-- Begin CTO Option Dependent Resources ODR
AND ((I.bom_item_type <> 1 and I.bom_item_type <> 2)
-- bom_item_type not model and option_class always committed.
AND (I.atp_flag <> 'N')
-- atp_flag is 'Y' then committed.
OR (REQ.record_source = 2) ) -- this OR may be changed during performance analysis.
-- if record created by ATP then committed.
-- End CTO Option Dependent Resources
AND DECODE(p_res_uom_type, 1, I.WEIGHT_UOM, 2 , I.VOLUME_UOM) = MUC.UOM_CODE (+)
AND MUC.SR_INSTANCE_ID (+)= I.SR_INSTANCE_ID
AND MUC.INVENTORY_ITEM_ID (+)= 0
-- 2859130
--AND C.SR_INSTANCE_ID = DR.SR_INSTANCE_ID
--AND C.CALENDAR_CODE = l_calendar_code
--AND C.EXCEPTION_SET_ID = l_calendar_exception_set_id
--AND C.CALENDAR_DATE = TRUNC(REQ.START_DATE) -- Bug 2809639
--AND C.SEQ_NUM IS NOT NULL
---bug 2341075: get data from plan_satrt date instead of sysdate
--AND C.CALENDAR_DATE >= trunc(sysdate)
AND trunc(REQ.START_DATE) >= l_plan_start_date --4135752
UNION ALL
SELECT trunc(MNRA.SHIFT_DATE) SD_DATE, --4135752
MNRA.CAPACITY_UNITS * ((DECODE(LEAST(MNRA.from_time, MNRA.to_time),
MNRA.to_time,MNRA.to_time + 24*3600,
MNRA.to_time) - MNRA.from_time)/3600) *
NVL((MRHM.allocation_percent/100), 1)
/*
NVL(MSC_AATP_FUNC.Get_DC_Alloc_Percent(
p_instance_id,
null,
p_organization_id,
p_department_id,
p_resource_id,
l_demand_class,
SHIFT_DATE),1) SD_QTY
*/
FROM MSC_NET_RESOURCE_AVAIL MNRA,
msc_resource_hierarchy_mv MRHM
WHERE MNRA.PLAN_ID = p_plan_id
AND NVL(MNRA.PARENT_ID, -2) <> -1
AND MNRA.SR_INSTANCE_ID = p_instance_id
AND MNRA.RESOURCE_ID = p_resource_id
AND MNRA.DEPARTMENT_ID = p_department_id
---bug 2341075; get data from plan_start date
SELECT SD_DATE,
SUM(SD_QTY)
BULK COLLECT INTO
l_current_atp.atp_period,
l_current_atp.atp_qty
FROM (
SELECT GREATEST(C.CALENDAR_DATE,l_sys_next_date) SD_DATE, --bug3333114
-1*DECODE(REQ.RESOURCE_ID, -1, REQ.LOAD_RATE,
DECODE(REQ.END_DATE, NULL, REQ.RESOURCE_HOURS,
-- Bug 3348095
DECODE(REQ.record_source, 2, REQ.RESOURCE_HOURS,
REQ.DAILY_RESOURCE_HOURS))) *
-- For ATP created records use resource_hours
-- End Bug 3348095
---resource batching
DECODE(DR.UOM_CLASS_TYPE, 1, I.UNIT_WEIGHT, 2, UNIT_VOLUME) *
NVL(MUC.CONVERSION_RATE, 1) * NVL(S.NEW_ORDER_QUANTITY, FIRM_QUANTITY) *
/*New*/
DECODE(DECODE(G_HIERARCHY_PROFILE,
--bug 2424357
1, DECODE(S.DEMAND_CLASS, null, null,
DECODE(l_demand_class, '-1',
MSC_AATP_FUNC.Get_RES_Hierarchy_Demand_Class(
null,
null,
p_department_id,
p_resource_id,
p_organization_id,
p_instance_id,
c.calendar_date,
l_level_id,
S.DEMAND_CLASS), S.DEMAND_CLASS)),
2, DECODE(S.CUSTOMER_ID, NULL, TO_CHAR(NULL),
0, TO_CHAR(NULL),
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
S.CUSTOMER_ID,
S.SHIP_TO_SITE_ID,
s.inventory_item_id,
p_organization_id,
p_instance_id,
c.calendar_date,
l_level_id,
NULL))),
l_demand_class, 1,
--bug 4156016: If l_demand_class is not null and demand class is populated
-- on supplies record then 0 should be allocated.
Decode (S.Demand_Class, NULL,
MSC_AATP_FUNC.Get_Res_Demand_Alloc_Percent(C.CALENDAR_DATE,
REQ.ASSEMBLY_ITEM_ID,
p_organization_id,
p_instance_id,
p_department_id,
p_resource_id,
DECODE(G_HIERARCHY_PROFILE,
--2424357
1, DECODE(S.DEMAND_CLASS, null, null,
DECODE(l_demand_class, -1,
MSC_AATP_FUNC.Get_RES_Hierarchy_Demand_Class(
null,
null,
p_department_id,
p_resource_id,
p_organization_id,
p_instance_id,
c.calendar_date,
l_level_id,
S.DEMAND_CLASS), S.DEMAND_CLASS)),
2, DECODE(S.CUSTOMER_ID, NULL, l_demand_class,
0, l_demand_class,
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
S.CUSTOMER_ID,
S.SHIP_TO_SITE_ID,
l_inv_item_id,
p_organization_id,
p_instance_id,
c.calendar_date,
l_level_id,
NULL))),
l_demand_class), 0)) SD_QTY
/*New*/
FROM MSC_DEPARTMENT_RESOURCES DR,
MSC_SUPPLIES S,
MSC_RESOURCE_REQUIREMENTS REQ,
MSC_CALENDAR_DATES C,
MSC_SYSTEM_ITEMS I,
MSC_UOM_CONVERSIONS MUC
WHERE DR.PLAN_ID = p_plan_id
AND NVL(DR.OWNING_DEPARTMENT_ID, DR.DEPARTMENT_ID)=p_department_id
AND DR.RESOURCE_ID = p_resource_id
AND DR.SR_INSTANCE_ID = p_instance_id
AND DR.ORGANIZATION_ID = p_organization_id -- for performance
AND REQ.PLAN_ID = DR.PLAN_ID
AND REQ.SR_INSTANCE_ID = DR.SR_INSTANCE_ID
AND REQ.RESOURCE_ID = DR.RESOURCE_ID
AND REQ.DEPARTMENT_ID = DR.DEPARTMENT_ID
AND NVL(REQ.PARENT_ID, l_optimized_plan) = l_optimized_plan
AND S.PLAN_ID = DR.PLAN_ID
AND S.TRANSACTION_ID = REQ.SUPPLY_ID
AND S.SR_INSTANCE_ID = REQ.SR_INSTANCE_ID --bug3948494
-- Exclude Cancelled Supplies 2460645
AND NVL(S.DISPOSITION_STATUS_TYPE, 1) <> 2 -- Bug 2460645
AND I.SR_INSTANCE_ID = REQ.SR_INSTANCE_Id
AND I.PLAN_ID = S.PLAN_ID
AND I.ORGANIZATION_ID = S.ORGANIZATION_ID
AND I.INVENTORY_ITEM_ID = S.INVENTORY_ITEM_ID
-- Begin CTO Option Dependent Resources ODR
AND ((I.bom_item_type <> 1 and I.bom_item_type <> 2)
-- bom_item_type not model and option_class always committed.
AND (I.atp_flag <> 'N')
-- atp_flag is 'Y' then committed.
OR (REQ.record_source = 2) ) -- this OR may be changed during performance analysis.
-- if record created by ATP then committed.
-- End CTO Option Dependent Resources
AND DECODE(p_res_uom_type, 1, I.WEIGHT_UOM, 2 , I.VOLUME_UOM) = MUC.UOM_CODE (+)
AND MUC.SR_INSTANCE_ID (+)= I.SR_INSTANCE_ID
AND MUC.INVENTORY_ITEM_ID (+)= 0
AND C.SR_INSTANCE_ID = DR.SR_INSTANCE_ID
AND C.CALENDAR_CODE = l_calendar_code
AND C.EXCEPTION_SET_ID = l_calendar_exception_set_id
-- Bug 3348095
-- Ensure that the ATP created resource Reqs
-- do not get double counted.
AND C.CALENDAR_DATE BETWEEN DECODE(REQ.record_source, 2,
TRUNC(NVL(REQ.END_DATE, REQ.START_DATE)), TRUNC(REQ.START_DATE))
AND TRUNC(NVL(REQ.END_DATE, REQ.START_DATE))
-- End Bug 3348095
AND C.SEQ_NUM IS NOT NULL
---bug 2341075: get data from plan_satrt date instead of sysdate
--AND C.CALENDAR_DATE >= trunc(sysdate)
AND C.CALENDAR_DATE >= l_plan_start_date
UNION ALL
SELECT trunc(MNRA.SHIFT_DATE) SD_DATE, --4135752
MNRA.CAPACITY_UNITS * ((DECODE(LEAST(MNRA.from_time, MNRA.to_time),
MNRA.to_time,MNRA.to_time + 24*3600,
MNRA.to_time) - MNRA.from_time)/3600) *
NVL((MRHM.allocation_percent/100), 1)
/*
NVL(MSC_AATP_FUNC.Get_DC_Alloc_Percent(
p_instance_id,
null,
p_organization_id,
p_department_id,
p_resource_id,
l_demand_class,
SHIFT_DATE),1) SD_QTY
*/
FROM MSC_NET_RESOURCE_AVAIL MNRA,
msc_resource_hierarchy_mv MRHM
WHERE MNRA.PLAN_ID = p_plan_id
AND NVL(MNRA.PARENT_ID, -2) <> -1
AND MNRA.SR_INSTANCE_ID = p_instance_id
AND MNRA.RESOURCE_ID = p_resource_id
AND MNRA.DEPARTMENT_ID = p_department_id
---bug 2341075; get data from plan_start date
SELECT SD_DATE,
SUM(SD_QTY)
BULK COLLECT INTO
l_current_atp.atp_period,
l_current_atp.atp_qty
FROM (
SELECT -- C.CALENDAR_DATE SD_DATE, -- 2859130
-- Bug 3348095
-- For ATP created records use end_date otherwise start_date
GREATEST(DECODE(REQ.record_source, 2, TRUNC(NVL(REQ.END_DATE, REQ.START_DATE)) ,
TRUNC(REQ.START_DATE)),l_sys_next_date) SD_DATE, --bug3333114
-1*DECODE(REQ.RESOURCE_ID, -1, REQ.LOAD_RATE,
DECODE(REQ.END_DATE, NULL, REQ.RESOURCE_HOURS,
-- Bug 3348095
DECODE(REQ.record_source, 2, REQ.RESOURCE_HOURS,
REQ.DAILY_RESOURCE_HOURS))) *
-- For ATP created records use resource_hours
-- End Bug 3348095
/*New*/
DECODE(DECODE(G_HIERARCHY_PROFILE,
--2424357
1, DECODE(S.DEMAND_CLASS, null, null,
DECODE(l_demand_class, '-1',
MSC_AATP_FUNC.Get_RES_Hierarchy_Demand_Class(
null,
null,
p_department_id,
p_resource_id,
p_organization_id,
p_instance_id,
-- 2859130 c.calendar_date,
-- Bug 3348095
-- For ATP created records use end_date
-- otherwise start_date
DECODE(REQ.record_source, 2,
TRUNC(NVL(REQ.END_DATE, REQ.START_DATE)) ,
TRUNC(REQ.START_DATE)),
--trunc(req.start_date),
-- End Bug 3348095
l_level_id,
S.DEMAND_CLASS),S.DEMAND_CLASS)),
2, DECODE(S.CUSTOMER_ID, NULL, TO_CHAR(NULL),
0, TO_CHAR(NULL),
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
S.CUSTOMER_ID,
S.SHIP_TO_SITE_ID,
s.inventory_item_id,
p_organization_id,
p_instance_id,
-- 2859130 c.calendar_date,
-- Bug 3348095
-- For ATP created records use end_date
-- otherwise start_date
DECODE(REQ.record_source, 2,
TRUNC(NVL(REQ.END_DATE, REQ.START_DATE)) ,
TRUNC(REQ.START_DATE)),
--trunc(req.start_date),
-- End Bug 3348095
l_level_id,
NULL))),
l_demand_class, 1,
--bug 4156016: If l_demand_class is not null and demand class is populated
-- on supplies record then 0 should be allocated.
Decode (S.Demand_Class, NULL,
MSC_AATP_FUNC.Get_Res_Demand_Alloc_Percent(
-- 2859130 C.CALENDAR_DATE,
-- Bug 3348095
-- For ATP created records use end_date
-- otherwise start_date
DECODE(REQ.record_source, 2,
TRUNC(NVL(REQ.END_DATE, REQ.START_DATE)) ,
TRUNC(REQ.START_DATE)),
--trunc(req.start_date),
-- End Bug 3348095
REQ.ASSEMBLY_ITEM_ID,
p_organization_id,
p_instance_id,
p_department_id,
p_resource_id,
DECODE(G_HIERARCHY_PROFILE,
--2424357
1, DECODE(S.DEMAND_CLASS, null, null,
DECODE(l_demand_class, '-1',
MSC_AATP_FUNC.Get_RES_Hierarchy_Demand_Class(
null,
null,
p_department_id,
p_resource_id,
p_organization_id,
p_instance_id,
-- c.calendar_date,
-- Bug 3348095
-- For ATP created records use end_date
-- otherwise start_date
DECODE(REQ.record_source, 2,
TRUNC(NVL(REQ.END_DATE, REQ.START_DATE)) ,
TRUNC(REQ.START_DATE)),
--trunc(req.start_date),
-- End Bug 3348095
l_level_id,
S.DEMAND_CLASS), S.DEMAND_CLASS)),
2, DECODE(S.CUSTOMER_ID, NULL, l_demand_class,
0, l_demand_class,
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
S.CUSTOMER_ID,
S.SHIP_TO_SITE_ID,
l_inv_item_id,
p_organization_id,
p_instance_id,
-- 2859130 c.calendar_date,
-- Bug 3348095
-- For ATP created records use end_date
-- otherwise start_date
DECODE(REQ.record_source, 2,
TRUNC(NVL(REQ.END_DATE, REQ.START_DATE)) ,
TRUNC(REQ.START_DATE)),
--trunc(req.start_date),
-- End Bug 3348095
l_level_id,
NULL))),
l_demand_class), 0)) SD_QTY
/*New*/
FROM MSC_DEPARTMENT_RESOURCES DR,
MSC_SUPPLIES S,
MSC_SYSTEM_ITEMS I, -- CTO ODR
MSC_RESOURCE_REQUIREMENTS REQ
-- 2859130 MSC_CALENDAR_DATES C
WHERE DR.PLAN_ID = p_plan_id
AND NVL(DR.OWNING_DEPARTMENT_ID, DR.DEPARTMENT_ID)=p_department_id
AND DR.RESOURCE_ID = p_resource_id
AND DR.SR_INSTANCE_ID = p_instance_id
AND DR.ORGANIZATION_ID = p_organization_id -- for performance
AND REQ.PLAN_ID = DR.PLAN_ID
AND REQ.SR_INSTANCE_ID = DR.SR_INSTANCE_ID
AND REQ.RESOURCE_ID = DR.RESOURCE_ID
AND REQ.DEPARTMENT_ID = DR.DEPARTMENT_ID
AND NVL(REQ.PARENT_ID, 1) = 1 -- Bug 2809639
-- CTO Option Dependent Resources ODR
AND I.SR_INSTANCE_ID = REQ.SR_INSTANCE_Id
AND I.PLAN_ID = REQ.PLAN_ID
AND I.ORGANIZATION_ID = REQ.ORGANIZATION_ID
AND I.INVENTORY_ITEM_ID = REQ.ASSEMBLY_ITEM_ID
AND ((I.bom_item_type <> 1 and I.bom_item_type <> 2)
-- bom_item_type not model and option_class always committed.
AND (I.atp_flag <> 'N')
-- atp_flag is 'Y' then committed.
OR (REQ.record_source = 2) ) -- this OR may be changed during performance analysis.
-- if record created by ATP then committed.
-- End CTO Option Dependent Resources
AND S.PLAN_ID = DR.PLAN_ID
AND S.TRANSACTION_ID = REQ.SUPPLY_ID
AND S.SR_INSTANCE_ID = REQ.SR_INSTANCE_ID --bug3948494
-- Exclude Cancelled Supplies 2460645
AND NVL(S.DISPOSITION_STATUS_TYPE, 1) <> 2 -- Bug 2460645
-- 2859130
-- AND C.SR_INSTANCE_ID = DR.SR_INSTANCE_ID
-- AND C.CALENDAR_CODE = l_calendar_code
-- AND C.EXCEPTION_SET_ID = l_calendar_exception_set_id
-- AND C.CALENDAR_DATE = TRUNC(REQ.START_DATE) -- Bug 2809639
-- AND C.SEQ_NUM IS NOT NULL
---bug 2341075
--AND C.CALENDAR_DATE >= trunc(sysdate)
AND trunc(REQ.START_DATE) >= l_plan_start_date --4135752
UNION ALL
SELECT trunc(MNRA.SHIFT_DATE) SD_DATE, --4135752
MNRA.CAPACITY_UNITS * ((DECODE(LEAST(MNRA.from_time, MNRA.to_time),
MNRA.to_time,MNRA.to_time + 24*3600,
MNRA.to_time) - MNRA.from_time)/3600) *
NVL((MRHM.allocation_percent/100), 1)
/*
NVL(MSC_AATP_FUNC.Get_DC_Alloc_Percent(
p_instance_id,
null,
p_organization_id,
p_department_id,
p_resource_id,
l_demand_class,
SHIFT_DATE),1) SD_QTY */
FROM MSC_NET_RESOURCE_AVAIL MNRA,
msc_resource_hierarchy_mv MRHM
WHERE MNRA.PLAN_ID = p_plan_id
AND NVL(MNRA.PARENT_ID, -2) <> -1
AND MNRA.SR_INSTANCE_ID = p_instance_id
AND MNRA.RESOURCE_ID = p_resource_id
AND MNRA.DEPARTMENT_ID = p_department_id
--bug 2341075
--AND SHIFT_DATE >= trunc(sysdate)
--bug 4232627: select only those records which are after plan start date
AND MNRA.SHIFT_DATE >= l_plan_start_date
--bug 4156016
AND MNRA.organization_id = p_organization_id
AND MRHM.department_id (+) = MNRA.department_id
AND MRHM.resource_id (+)= MNRA.resource_id
AND MRHM.organization_id (+) = MNRA.organization_id
AND MRHM.sr_instance_id (+)= MNRA.sr_instance_id
--AND MRHM.level_id (+) = -1 --4365873
AND decode(MRHM.level_id (+),-1,1,2) = decode(G_HIERARCHY_PROFILE,1,1,2)
--bug 4232627:
AND trunc(MNRA.shift_date) >= trunc(GREATEST(l_plan_start_date,MRHM.effective_date (+))) --4135752
AND trunc(MNRA.shift_date) <= trunc(MRHM.disable_date (+)) --4135752
AND MRHM.demand_class (+)= l_demand_class
)
GROUP BY SD_DATE
ORDER BY SD_DATE;--4698199
SELECT SD_DATE,
SUM(SD_QTY)
BULK COLLECT INTO
l_current_atp.atp_period,
l_current_atp.atp_qty
FROM (
SELECT GREATEST(C.CALENDAR_DATE,l_sys_next_date) SD_DATE,--bug3333114
-1*DECODE(REQ.RESOURCE_ID, -1, REQ.LOAD_RATE,
DECODE(REQ.END_DATE, NULL, REQ.RESOURCE_HOURS,
-- Bug 3348095
DECODE(REQ.record_source, 2, REQ.RESOURCE_HOURS,
REQ.DAILY_RESOURCE_HOURS))) *
-- For ATP created records use resource_hours
-- End Bug 3348095
/*New*/
DECODE(DECODE(G_HIERARCHY_PROFILE,
--2424357
1, DECODE(S.DEMAND_CLASS, null, null,
DECODE(l_demand_class, '-1',
MSC_AATP_FUNC.Get_RES_Hierarchy_Demand_Class(
null,
null,
p_department_id,
p_resource_id,
p_organization_id,
p_instance_id,
c.calendar_date,
l_level_id,
S.DEMAND_CLASS),S.DEMAND_CLASS)),
2, DECODE(S.CUSTOMER_ID, NULL, TO_CHAR(NULL),
0, TO_CHAR(NULL),
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
S.CUSTOMER_ID,
S.SHIP_TO_SITE_ID,
s.inventory_item_id,
p_organization_id,
p_instance_id,
c.calendar_date,
l_level_id,
NULL))),
l_demand_class, 1,
--bug 4156016: If l_demand_class is not null and demand class is populated
-- on supplies record then 0 should be allocated.
Decode (S.Demand_Class, NULL,
MSC_AATP_FUNC.Get_Res_Demand_Alloc_Percent(C.CALENDAR_DATE,
REQ.ASSEMBLY_ITEM_ID,
p_organization_id,
p_instance_id,
p_department_id,
p_resource_id,
DECODE(G_HIERARCHY_PROFILE,
--2424357
1, DECODE(S.DEMAND_CLASS, null, null,
DECODE(l_demand_class, '-1',
MSC_AATP_FUNC.Get_RES_Hierarchy_Demand_Class(
null,
null,
p_department_id,
p_resource_id,
p_organization_id,
p_instance_id,
c.calendar_date,
l_level_id,
S.DEMAND_CLASS), S.DEMAND_CLASS)),
2, DECODE(S.CUSTOMER_ID, NULL, l_demand_class,
0, l_demand_class,
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
S.CUSTOMER_ID,
S.SHIP_TO_SITE_ID,
l_inv_item_id,
p_organization_id,
p_instance_id,
c.calendar_date,
l_level_id,
NULL))),
l_demand_class), 0)) SD_QTY
/*New*/
FROM MSC_DEPARTMENT_RESOURCES DR,
MSC_SUPPLIES S,
MSC_SYSTEM_ITEMS I, -- CTO ODR
MSC_RESOURCE_REQUIREMENTS REQ,
MSC_CALENDAR_DATES C
WHERE DR.PLAN_ID = p_plan_id
AND NVL(DR.OWNING_DEPARTMENT_ID, DR.DEPARTMENT_ID)=p_department_id
AND DR.RESOURCE_ID = p_resource_id
AND DR.SR_INSTANCE_ID = p_instance_id
AND DR.ORGANIZATION_ID = p_organization_id -- for performance
AND REQ.PLAN_ID = DR.PLAN_ID
AND REQ.SR_INSTANCE_ID = DR.SR_INSTANCE_ID
AND REQ.RESOURCE_ID = DR.RESOURCE_ID
AND REQ.DEPARTMENT_ID = DR.DEPARTMENT_ID
AND NVL(REQ.PARENT_ID, l_optimized_plan) = l_optimized_plan
-- CTO Option Dependent Resources ODR
AND I.SR_INSTANCE_ID = REQ.SR_INSTANCE_Id
AND I.PLAN_ID = REQ.PLAN_ID
AND I.ORGANIZATION_ID = REQ.ORGANIZATION_ID
AND I.INVENTORY_ITEM_ID = REQ.ASSEMBLY_ITEM_ID
AND ((I.bom_item_type <> 1 and I.bom_item_type <> 2)
-- bom_item_type not model and option_class always committed.
AND (I.atp_flag <> 'N')
-- atp_flag is 'Y' then committed.
OR (REQ.record_source = 2) ) -- this OR may be changed during performance analysis.
-- if record created by ATP then committed.
-- End CTO Option Dependent Resources
AND S.PLAN_ID = DR.PLAN_ID
AND S.TRANSACTION_ID = REQ.SUPPLY_ID
AND S.SR_INSTANCE_ID = REQ.SR_INSTANCE_ID --bug3948494
-- Exclude Cancelled Supplies 2460645
AND NVL(S.DISPOSITION_STATUS_TYPE, 1) <> 2 -- Bug 2460645
AND C.SR_INSTANCE_ID = DR.SR_INSTANCE_ID
AND C.CALENDAR_CODE = l_calendar_code
AND C.EXCEPTION_SET_ID = l_calendar_exception_set_id
-- Bug 3348095
-- Ensure that the ATP created resource Reqs
-- do not get double counted.
AND C.CALENDAR_DATE BETWEEN DECODE(REQ.record_source, 2,
TRUNC(NVL(REQ.END_DATE, REQ.START_DATE)), TRUNC(REQ.START_DATE))
AND TRUNC(NVL(REQ.END_DATE, REQ.START_DATE))
-- End Bug 3348095
AND C.SEQ_NUM IS NOT NULL
---bug 2341075
--AND C.CALENDAR_DATE >= trunc(sysdate)
AND C.CALENDAR_DATE >= l_plan_start_date
UNION ALL
SELECT trunc(MNRA.SHIFT_DATE) SD_DATE, --4135752
MNRA.CAPACITY_UNITS * ((DECODE(LEAST(MNRA.from_time, MNRA.to_time),
MNRA.to_time,MNRA.to_time + 24*3600,
MNRA.to_time) - MNRA.from_time)/3600) *
NVL((MRHM.allocation_percent/100), 1)
/*
NVL(MSC_AATP_FUNC.Get_DC_Alloc_Percent(
p_instance_id,
null,
p_organization_id,
p_department_id,
p_resource_id,
l_demand_class,
SHIFT_DATE),1) SD_QTY
*/
FROM MSC_NET_RESOURCE_AVAIL MNRA,
msc_resource_hierarchy_mv MRHM
WHERE MNRA.PLAN_ID = p_plan_id
AND NVL(MNRA.PARENT_ID, -2) <> -1
AND MNRA.SR_INSTANCE_ID = p_instance_id
AND MNRA.RESOURCE_ID = p_resource_id
AND MNRA.DEPARTMENT_ID = p_department_id
---bug 2341075; get data from plan_start date
INSERT INTO msc_atp_sd_details_temp (
ATP_Level,
Order_line_id,
Scenario_Id,
Inventory_Item_Id,
Request_Item_Id,
Organization_Id,
Department_Id,
Resource_Id,
Supplier_Id,
Supplier_Site_Id,
From_Organization_Id,
From_Location_Id,
To_Organization_Id,
To_Location_Id,
Ship_Method,
UOM_code,
Supply_Demand_Type,
Supply_Demand_Source_Type,
Supply_Demand_Source_Type_Name,
Identifier1,
Identifier2,
Identifier3,
Identifier4,
Supply_Demand_Quantity,
Supply_Demand_Date,
Disposition_Type,
Disposition_Name,
Pegging_Id,
End_Pegging_Id,
creation_date,
created_by,
last_update_date,
last_updated_by,
last_update_login,
Unallocated_Quantity
)
(SELECT
p_level col1,
p_identifier col2,
p_scenario_id col3,
l_null_num col4 ,
l_null_num col5,
p_organization_id col6,
p_department_id col7,
p_resource_id col8,
l_null_num col9,
l_null_num col10,
l_null_num col11,
l_null_num col12,
l_null_num col13,
l_null_num col14,
l_null_char col15,
l_uom_code col16,
1 col17, -- demand
S.ORDER_TYPE col18,
l_null_char col19,
REQ.SR_INSTANCE_ID col20,
l_null_num col21,
REQ.TRANSACTION_ID col22,
l_null_num col23,
-1* DECODE(REQ.RESOURCE_ID, -1, REQ.LOAD_RATE,
DECODE(REQ.END_DATE, NULL, REQ.RESOURCE_HOURS,
-- Bug 3348095
DECODE(REQ.record_source, 2, REQ.RESOURCE_HOURS,
REQ.DAILY_RESOURCE_HOURS))) *
-- For ATP created records use resource_hours
-- End Bug 3348095
---- resource batching
DECODE(DR.UOM_CLASS_TYPE, 1, I.UNIT_WEIGHT, 2, UNIT_VOLUME) *
NVL(MUC.CONVERSION_RATE, 1) * NVL(S.NEW_ORDER_QUANTITY,S.FIRM_QUANTITY) *
/*New*/
DECODE(p_scenario_id, -1, 1,
DECODE(DECODE(G_HIERARCHY_PROFILE,
--2424357
1, DECODE(S.DEMAND_CLASS, null, null,
DECODE(l_demand_class, '-1',
MSC_AATP_FUNC.Get_RES_Hierarchy_Demand_Class(
null,
null,
p_department_id,
p_resource_id,
p_organization_id,
p_instance_id,
-- 2859130 c.calendar_date,
-- Bug 3348095
-- For ATP created records use end_date
-- otherwise start_date
DECODE(REQ.record_source, 2,
TRUNC(NVL(REQ.END_DATE, REQ.START_DATE)) ,
TRUNC(REQ.START_DATE)),
--trunc(req.start_date),
-- End Bug 3348095
l_level_id,
S.DEMAND_CLASS), S.DEMAND_CLASS)),
2, DECODE(S.CUSTOMER_ID, NULL, TO_CHAR(NULL),
0, TO_CHAR(NULL),
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
S.CUSTOMER_ID,
S.SHIP_TO_SITE_ID,
s.inventory_item_id,
p_organization_id,
p_instance_id,
-- 2859130 c.calendar_date,
-- Bug 3348095
-- For ATP created records use end_date
-- otherwise start_date
DECODE(REQ.record_source, 2,
TRUNC(NVL(REQ.END_DATE, REQ.START_DATE)) ,
TRUNC(REQ.START_DATE)),
--trunc(req.start_date),
-- End Bug 3348095
l_level_id,
NULL))),
l_demand_class, 1,
--bug 4156016: If l_demand_class is not null and demand class is populated
-- on supplies record then 0 should be allocated.
Decode (S.Demand_Class, NULL,
MSC_AATP_FUNC.Get_Res_Demand_Alloc_Percent(
-- 2859130 C.CALENDAR_DATE,
-- Bug 3348095
-- For ATP created records use end_date
-- otherwise start_date
DECODE(REQ.record_source, 2,
TRUNC(NVL(REQ.END_DATE, REQ.START_DATE)) ,
TRUNC(REQ.START_DATE)),
--trunc(req.start_date),
-- End Bug 3348095
REQ.ASSEMBLY_ITEM_ID,
p_organization_id,
p_instance_id,
p_department_id,
p_resource_id,
DECODE(G_HIERARCHY_PROFILE,
---2424357
1, DECODE(S.DEMAND_CLASS, null, null,
DECODE(l_demand_class, '-1',
MSC_AATP_FUNC.Get_RES_Hierarchy_Demand_Class(
null,
null,
p_department_id,
p_resource_id,
p_organization_id,
p_instance_id,
-- 2859130 c.calendar_date,
-- Bug 3348095
-- For ATP created records use end_date
-- otherwise start_date
DECODE(REQ.record_source, 2,
TRUNC(NVL(REQ.END_DATE, REQ.START_DATE)) ,
TRUNC(REQ.START_DATE)),
--trunc(req.start_date),
-- End Bug 3348095
l_level_id,
S.DEMAND_CLASS), S.DEMAND_CLASS)),
2, DECODE(S.CUSTOMER_ID, NULL, l_demand_class,
0, l_demand_class,
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
S.CUSTOMER_ID,
S.SHIP_TO_SITE_ID,
l_inv_item_id,
p_organization_id,
p_instance_id,
--2859130 c.calendar_date,
-- Bug 3348095
-- For ATP created records use end_date
-- otherwise start_date
DECODE(REQ.record_source, 2,
TRUNC(NVL(REQ.END_DATE, REQ.START_DATE)) ,
TRUNC(REQ.START_DATE)),
--trunc(req.start_date),
-- End Bug 3348095
l_level_id,
NULL))),
l_demand_class), 0))) col24,
/*New*/
-- 2859130 C.CALENDAR_DATE col25,
-- Bug 3348095
-- For ATP created records use end_date otherwise start_date
GREATEST(DECODE(REQ.record_source, 2,
TRUNC(NVL(REQ.END_DATE, REQ.START_DATE)) , TRUNC(REQ.START_DATE)),l_sys_next_date) col25, --bug3333114
-- End Bug 3348095
-- TRUNC(req.start_date) col25,
l_null_num col26,
-- Bug 2771075. For Planned Orders, we will populate transaction_id
-- in the disposition_name column to be consistent with Planning.
-- S.ORDER_NUMBER col27,
DECODE(S.ORDER_TYPE, 5, to_char(S.TRANSACTION_ID), S.ORDER_NUMBER ) col27,
l_null_num col28,
l_null_num col29,
-- ship_rec_cal changes begin
l_sysdate,
G_USER_ID,
l_sysdate,
G_USER_ID,
G_USER_ID,
-- ship_rec_cal changes end
-- Unallocated_Quantity
-1* DECODE(REQ.RESOURCE_ID, -1, REQ.LOAD_RATE,
DECODE(REQ.END_DATE, NULL, REQ.RESOURCE_HOURS,
-- Bug 3348095
DECODE(REQ.record_source, 2, REQ.RESOURCE_HOURS,
REQ.DAILY_RESOURCE_HOURS))) *
-- For ATP created records use resource_hours
-- End Bug 3348095
---- resource batching
DECODE(DR.UOM_CLASS_TYPE, 1, I.UNIT_WEIGHT, 2, UNIT_VOLUME) *
NVL(MUC.CONVERSION_RATE, 1) * NVL(S.NEW_ORDER_QUANTITY,S.FIRM_QUANTITY)
FROM MSC_DEPARTMENT_RESOURCES DR,
MSC_SUPPLIES S,
MSC_RESOURCE_REQUIREMENTS REQ,
-- 2859130 MSC_CALENDAR_DATES C,
MSC_SYSTEM_ITEMS I,
MSC_UOM_CONVERSIONS MUC
WHERE DR.PLAN_ID = p_plan_id
AND NVL(DR.OWNING_DEPARTMENT_ID, DR.DEPARTMENT_ID)=p_department_id
AND DR.RESOURCE_ID = p_resource_id
AND DR.SR_INSTANCE_ID = p_instance_id
AND DR.ORGANIZATION_ID = p_organization_id -- for performance
AND REQ.PLAN_ID = DR.PLAN_ID
AND REQ.SR_INSTANCE_ID = DR.SR_INSTANCE_ID
AND REQ.RESOURCE_ID = DR.RESOURCE_ID
AND REQ.DEPARTMENT_ID = DR.DEPARTMENT_ID
AND NVL(REQ.PARENT_ID, 1) = 1 -- Bug 2809639
AND I.SR_INSTANCE_ID = REQ.SR_INSTANCE_Id
AND I.PLAN_ID = REQ.PLAN_ID
AND I.ORGANIZATION_ID = REQ.ORGANIZATION_ID
AND I.INVENTORY_ITEM_ID = REQ.ASSEMBLY_ITEM_ID
-- Begin CTO Option Dependent Resources ODR
AND ((I.bom_item_type <> 1 and I.bom_item_type <> 2)
-- bom_item_type not model and option_class always committed.
AND (I.atp_flag <> 'N')
-- atp_flag is 'Y' then committed.
OR (REQ.record_source = 2) ) -- this OR may be changed during performance analysis.
-- if record created by ATP then committed.
-- End CTO Option Dependent Resources
AND DECODE(p_res_uom_type, 1, I.WEIGHT_UOM, 2 , I.VOLUME_UOM) = MUC.UOM_CODE (+)
AND MUC.SR_INSTANCE_ID (+)= I.SR_INSTANCE_ID
AND MUC.INVENTORY_ITEM_ID (+)= 0
AND S.PLAN_ID = DR.PLAN_ID
AND S.TRANSACTION_ID = REQ.SUPPLY_ID
AND S.SR_INSTANCE_ID = REQ.SR_INSTANCE_ID --bug3948494
-- Exclude Cancelled Supplies 2460645
AND NVL(S.DISPOSITION_STATUS_TYPE, 1) <> 2 -- Bug 2460645
-- 2859130
-- AND C.SR_INSTANCE_ID = DR.SR_INSTANCE_ID
-- AND C.CALENDAR_CODE = l_calendar_code
-- AND C.EXCEPTION_SET_ID = l_calendar_exception_set_id
-- AND C.CALENDAR_DATE = TRUNC(REQ.START_DATE) -- Bug 2809639
-- AND C.SEQ_NUM IS NOT NULL
---bug 2341075
--AND C.CALENDAR_DATE >= trunc(sysdate)
-- AND C.CALENDAR_DATE >= l_plan_start_date
AND trunc(req.start_date) >= l_plan_start_date --4135752
UNION ALL
SELECT p_level col1,
p_identifier col2,
p_scenario_id col3,
l_null_num col4 ,
l_null_num col5,
p_organization_id col6,
p_department_id col7,
p_resource_id col8,
l_null_num col9,
l_null_num col10,
l_null_num col11,
l_null_num col12,
l_null_num col13,
l_null_num col14,
l_null_char col15,
l_uom_code col16,
2 col17, -- supply
l_null_num col18,
l_null_char col19,
MNRA.SR_INSTANCE_ID col20,
l_null_num col21,
MNRA.TRANSACTION_ID col22,
l_null_num col23,
MNRA.CAPACITY_UNITS * ((DECODE(LEAST(MNRA.from_time, MNRA.to_time),
MNRA.to_time,to_time + 24*3600,
MNRA.to_time) - MNRA.from_time)/3600) *
DECODE(p_scenario_id, -1, 1, NVL((MRHM.allocation_percent/100), 1)) col24,
--bug 4156016
/* NVL(MSC_AATP_FUNC.Get_DC_Alloc_Percent(
p_instance_id,
null,
p_organization_id,
p_department_id,
p_resource_id,
l_demand_class,
SHIFT_DATE),1)) col24, */
MNRA.SHIFT_DATE col25,
l_null_num col26,
l_null_char col27,
l_null_num col28,
l_null_num col29,
-- ship_rec_cal changes begin
l_sysdate,
G_USER_ID,
l_sysdate,
G_USER_ID,
G_USER_ID,
-- ship_rec_cal changes end
MNRA.CAPACITY_UNITS * p_max_capacity * p_res_conversion_rate * ((DECODE(LEAST(MNRA.from_time, MNRA.to_time),
MNRA.to_time,MNRA.to_time + 24*3600,
MNRA.to_time) - MNRA.from_time)/3600)
FROM MSC_NET_RESOURCE_AVAIL MNRA,
msc_resource_hierarchy_mv MRHM
WHERE MNRA.PLAN_ID = p_plan_id
AND NVL(MNRA.PARENT_ID, -2) <> -1
AND MNRA.SR_INSTANCE_ID = p_instance_id
AND MNRA.RESOURCE_ID = p_resource_id
AND MNRA.DEPARTMENT_ID = p_department_id
--bug 2341075
--AND SHIFT_DATE >= trunc(sysdate)
--bug 4232627: select only those records which are after plan start date
AND MNRA.SHIFT_DATE >= l_plan_start_date
--bug 4156016
AND MNRA.organization_id = p_organization_id
AND MRHM.department_id (+) = MNRA.department_id
AND MRHM.resource_id (+)= MNRA.resource_id
AND MRHM.organization_id (+) = MNRA.organization_id
AND MRHM.sr_instance_id (+)= MNRA.sr_instance_id
--AND MRHM.level_id (+) = -1 --4365873
AND decode(MRHM.level_id (+),-1,1,2) = decode(G_HIERARCHY_PROFILE,1,1,2)
--bug 4232627: select only those records which are after plan start date
AND trunc(MNRA.shift_date) >= trunc(MRHM.effective_date (+))
AND trunc(MNRA.shift_date) <= trunc(MRHM.disable_date (+))
AND MRHM.demand_class (+) = l_demand_class
)
; -- dsting removed order by col25;
INSERT INTO msc_atp_sd_details_temp (
ATP_Level,
Order_line_id,
Scenario_Id,
Inventory_Item_Id,
Request_Item_Id,
Organization_Id,
Department_Id,
Resource_Id,
Supplier_Id,
Supplier_Site_Id,
From_Organization_Id,
From_Location_Id,
To_Organization_Id,
To_Location_Id,
Ship_Method,
UOM_code,
Supply_Demand_Type,
Supply_Demand_Source_Type,
Supply_Demand_Source_Type_Name,
Identifier1,
Identifier2,
Identifier3,
Identifier4,
Supply_Demand_Quantity,
Supply_Demand_Date,
Disposition_Type,
Disposition_Name,
Pegging_Id,
End_Pegging_Id,
creation_date,
created_by,
last_update_date,
last_updated_by,
last_update_login,
Unallocated_Quantity
)
(SELECT
p_level col1,
p_identifier col2,
p_scenario_id col3,
l_null_num col4 ,
l_null_num col5,
p_organization_id col6,
p_department_id col7,
p_resource_id col8,
l_null_num col9,
l_null_num col10,
l_null_num col11,
l_null_num col12,
l_null_num col13,
l_null_num col14,
l_null_char col15,
l_uom_code col16,
1 col17, -- demand
S.ORDER_TYPE col18,
l_null_char col19,
REQ.SR_INSTANCE_ID col20,
l_null_num col21,
REQ.TRANSACTION_ID col22,
l_null_num col23,
-1* DECODE(REQ.RESOURCE_ID, -1, REQ.LOAD_RATE,
DECODE(REQ.END_DATE, NULL, REQ.RESOURCE_HOURS,
-- Bug 3348095
DECODE(REQ.record_source, 2, REQ.RESOURCE_HOURS,
REQ.DAILY_RESOURCE_HOURS))) *
-- For ATP created records use resource_hours
-- End Bug 3348095
---- resource batching
DECODE(DR.UOM_CLASS_TYPE, 1, I.UNIT_WEIGHT, 2, UNIT_VOLUME) *
NVL(MUC.CONVERSION_RATE, 1) * NVL(S.NEW_ORDER_QUANTITY,S.FIRM_QUANTITY) *
/*New*/
DECODE(p_scenario_id, -1, 1,
DECODE(DECODE(G_HIERARCHY_PROFILE,
--2424357
1, DECODE(S.DEMAND_CLASS, null, null,
DECODE(l_demand_class, '-1',
MSC_AATP_FUNC.Get_RES_Hierarchy_Demand_Class(
null,
null,
p_department_id,
p_resource_id,
p_organization_id,
p_instance_id,
c.calendar_date,
l_level_id,
S.DEMAND_CLASS), S.DEMAND_CLASS)),
2, DECODE(S.CUSTOMER_ID, NULL, TO_CHAR(NULL),
0, TO_CHAR(NULL),
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
S.CUSTOMER_ID,
S.SHIP_TO_SITE_ID,
s.inventory_item_id,
p_organization_id,
p_instance_id,
c.calendar_date,
l_level_id,
NULL))),
l_demand_class, 1,
--bug 4156016: If l_demand_class is not null and demand class is populated
-- on supplies record then 0 should be allocated.
Decode (S.Demand_Class, NULL,
MSC_AATP_FUNC.Get_Res_Demand_Alloc_Percent(
C.CALENDAR_DATE,
REQ.ASSEMBLY_ITEM_ID,
p_organization_id,
p_instance_id,
p_department_id,
p_resource_id,
DECODE(G_HIERARCHY_PROFILE,
---2424357
1, DECODE(S.DEMAND_CLASS, null, null,
DECODE(l_demand_class, '-1',
MSC_AATP_FUNC.Get_RES_Hierarchy_Demand_Class(
null,
null,
p_department_id,
p_resource_id,
p_organization_id,
p_instance_id,
c.calendar_date,
l_level_id,
S.DEMAND_CLASS), S.DEMAND_CLASS)),
2, DECODE(S.CUSTOMER_ID, NULL, l_demand_class,
0, l_demand_class,
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
S.CUSTOMER_ID,
S.SHIP_TO_SITE_ID,
l_inv_item_id,
p_organization_id,
p_instance_id,
c.calendar_date,
l_level_id,
NULL))),
l_demand_class), 0))) col24,
/*New*/
GREATEST(C.CALENDAR_DATE,l_sys_next_date) col25, --bug3333114
l_null_num col26,
-- Bug 2771075. For Planned Orders, we will populate transaction_id
-- in the disposition_name column to be consistent with Planning.
-- S.ORDER_NUMBER col27,
DECODE(S.ORDER_TYPE, 5, to_char(S.TRANSACTION_ID), S.ORDER_NUMBER ) col27,
l_null_num col28,
l_null_num col29,
-- ship_rec_cal changes begin
l_sysdate,
G_USER_ID,
l_sysdate,
G_USER_ID,
G_USER_ID,
-- ship_rec_cal changes end
-- Unallocated_Quantity
-1* DECODE(REQ.RESOURCE_ID, -1, REQ.LOAD_RATE,
DECODE(REQ.END_DATE, NULL, REQ.RESOURCE_HOURS,
-- Bug 3348095
DECODE(REQ.record_source, 2, REQ.RESOURCE_HOURS,
REQ.DAILY_RESOURCE_HOURS))) *
-- For ATP created records use resource_hours
-- End Bug 3348095
---- resource batching
DECODE(DR.UOM_CLASS_TYPE, 1, I.UNIT_WEIGHT, 2, UNIT_VOLUME) *
NVL(MUC.CONVERSION_RATE, 1) * NVL(S.NEW_ORDER_QUANTITY,S.FIRM_QUANTITY)
FROM MSC_DEPARTMENT_RESOURCES DR,
MSC_SUPPLIES S,
MSC_RESOURCE_REQUIREMENTS REQ,
MSC_CALENDAR_DATES C,
MSC_SYSTEM_ITEMS I,
MSC_UOM_CONVERSIONS MUC
WHERE DR.PLAN_ID = p_plan_id
AND NVL(DR.OWNING_DEPARTMENT_ID, DR.DEPARTMENT_ID)=p_department_id
AND DR.RESOURCE_ID = p_resource_id
AND DR.SR_INSTANCE_ID = p_instance_id
AND DR.ORGANIZATION_ID = p_organization_id -- for performance
AND REQ.PLAN_ID = DR.PLAN_ID
AND REQ.SR_INSTANCE_ID = DR.SR_INSTANCE_ID
AND REQ.RESOURCE_ID = DR.RESOURCE_ID
AND REQ.DEPARTMENT_ID = DR.DEPARTMENT_ID
AND NVL(REQ.PARENT_ID, l_optimized_plan) = l_optimized_plan
AND I.SR_INSTANCE_ID = REQ.SR_INSTANCE_Id
AND I.PLAN_ID = REQ.PLAN_ID
AND I.ORGANIZATION_ID = REQ.ORGANIZATION_ID
AND I.INVENTORY_ITEM_ID = REQ.ASSEMBLY_ITEM_ID
-- Begin CTO Option Dependent Resources ODR
AND ((I.bom_item_type <> 1 and I.bom_item_type <> 2)
-- bom_item_type not model and option_class always committed.
AND (I.atp_flag <> 'N')
-- atp_flag is 'Y' then committed.
OR (REQ.record_source = 2) ) -- this OR may be changed during performance analysis.
-- if record created by ATP then committed.
-- End CTO Option Dependent Resources
AND DECODE(p_res_uom_type, 1, I.WEIGHT_UOM, 2 , I.VOLUME_UOM) = MUC.UOM_CODE (+)
AND MUC.SR_INSTANCE_ID (+)= I.SR_INSTANCE_ID
AND MUC.INVENTORY_ITEM_ID (+)= 0
AND S.PLAN_ID = DR.PLAN_ID
AND S.TRANSACTION_ID = REQ.SUPPLY_ID
AND S.SR_INSTANCE_ID = REQ.SR_INSTANCE_ID --bug3948494
-- Exclude Cancelled Supplies 2460645
AND NVL(S.DISPOSITION_STATUS_TYPE, 1) <> 2 -- Bug 2460645
AND C.SR_INSTANCE_ID = DR.SR_INSTANCE_ID
AND C.CALENDAR_CODE = l_calendar_code
AND C.EXCEPTION_SET_ID = l_calendar_exception_set_id
-- Bug 3348095
-- Ensure that the ATP created resource Reqs
-- do not get double counted.
AND C.CALENDAR_DATE BETWEEN DECODE(REQ.record_source, 2,
TRUNC(NVL(REQ.END_DATE, REQ.START_DATE)), TRUNC(REQ.START_DATE))
AND TRUNC(NVL(REQ.END_DATE, REQ.START_DATE))
-- End Bug 3348095
AND C.SEQ_NUM IS NOT NULL
---bug 2341075
--AND C.CALENDAR_DATE >= trunc(sysdate)
AND C.CALENDAR_DATE >= l_plan_start_date
UNION ALL
SELECT p_level col1,
p_identifier col2,
p_scenario_id col3,
l_null_num col4 ,
l_null_num col5,
p_organization_id col6,
p_department_id col7,
p_resource_id col8,
l_null_num col9,
l_null_num col10,
l_null_num col11,
l_null_num col12,
l_null_num col13,
l_null_num col14,
l_null_char col15,
l_uom_code col16,
2 col17, -- supply
l_null_num col18,
l_null_char col19,
MNRA.SR_INSTANCE_ID col20,
l_null_num col21,
MNRA.TRANSACTION_ID col22,
l_null_num col23,
MNRA.CAPACITY_UNITS * ((DECODE(LEAST(MNRA.from_time, MNRA.to_time),
MNRA.to_time,to_time + 24*3600,
MNRA.to_time) - MNRA.from_time)/3600) *
DECODE(p_scenario_id, -1, 1, NVL((MRHM.allocation_percent/100), 1)) col24,
--bug 4156016
/* NVL(MSC_AATP_FUNC.Get_DC_Alloc_Percent(
p_instance_id,
null,
p_organization_id,
p_department_id,
p_resource_id,
l_demand_class,
SHIFT_DATE),1)) col24, */
MNRA.SHIFT_DATE col25,
l_null_num col26,
l_null_char col27,
l_null_num col28,
l_null_num col29,
-- ship_rec_cal changes begin
l_sysdate,
G_USER_ID,
l_sysdate,
G_USER_ID,
G_USER_ID,
-- ship_rec_cal changes end
MNRA.CAPACITY_UNITS * p_max_capacity * p_res_conversion_rate * ((DECODE(LEAST(MNRA.from_time, MNRA.to_time),
MNRA.to_time,MNRA.to_time + 24*3600,
MNRA.to_time) - MNRA.from_time)/3600)
FROM MSC_NET_RESOURCE_AVAIL MNRA,
msc_resource_hierarchy_mv MRHM
WHERE MNRA.PLAN_ID = p_plan_id
AND NVL(MNRA.PARENT_ID, -2) <> -1
AND MNRA.SR_INSTANCE_ID = p_instance_id
AND MNRA.RESOURCE_ID = p_resource_id
AND MNRA.DEPARTMENT_ID = p_department_id
--bug 2341075
--AND SHIFT_DATE >= trunc(sysdate)
--bug 4232627: select only those records which are after plan start date
AND MNRA.SHIFT_DATE >= l_plan_start_date
--bug 4156016
AND MNRA.organization_id = p_organization_id
AND MRHM.department_id (+) = MNRA.department_id
AND MRHM.resource_id (+)= MNRA.resource_id
AND MRHM.organization_id (+) = MNRA.organization_id
AND MRHM.sr_instance_id (+)= MNRA.sr_instance_id
--AND MRHM.level_id (+) = -1 --4365873
AND decode(MRHM.level_id (+),-1,1,2) = decode(G_HIERARCHY_PROFILE,1,1,2)
--bug 4232627:
AND trunc(MNRA.shift_date) >= trunc(MRHM.effective_date (+))
AND trunc(MNRA.shift_date) <= trunc(MRHM.disable_date (+))
AND MRHM.demand_class (+) = l_demand_class
)
; -- dsting removed order by col25;
INSERT INTO msc_atp_sd_details_temp (
ATP_Level,
Order_line_id,
Scenario_Id,
Inventory_Item_Id,
Request_Item_Id,
Organization_Id,
Department_Id,
Resource_Id,
Supplier_Id,
Supplier_Site_Id,
From_Organization_Id,
From_Location_Id,
To_Organization_Id,
To_Location_Id,
Ship_Method,
UOM_code,
Supply_Demand_Type,
Supply_Demand_Source_Type,
Supply_Demand_Source_Type_Name,
Identifier1,
Identifier2,
Identifier3,
Identifier4,
Supply_Demand_Quantity,
Supply_Demand_Date,
Disposition_Type,
Disposition_Name,
Pegging_Id,
End_Pegging_Id,
creation_date,
created_by,
last_update_date,
last_updated_by,
last_update_login,
Unallocated_Quantity
)
(SELECT
p_level col1,
p_identifier col2,
p_scenario_id col3,
l_null_num col4 ,
l_null_num col5,
p_organization_id col6,
p_department_id col7,
p_resource_id col8,
l_null_num col9,
l_null_num col10,
l_null_num col11,
l_null_num col12,
l_null_num col13,
l_null_num col14,
l_null_char col15,
l_uom_code col16,
1 col17, -- demand
S.ORDER_TYPE col18,
l_null_char col19,
REQ.SR_INSTANCE_ID col20,
l_null_num col21,
REQ.TRANSACTION_ID col22,
l_null_num col23,
-1* DECODE(REQ.RESOURCE_ID, -1, REQ.LOAD_RATE,
DECODE(REQ.END_DATE, NULL, REQ.RESOURCE_HOURS,
-- Bug 3348095
DECODE(REQ.record_source, 2, REQ.RESOURCE_HOURS,
REQ.DAILY_RESOURCE_HOURS))) *
-- For ATP created records use resource_hours
-- End Bug 3348095
/*New*/
DECODE(p_scenario_id, -1, 1,
DECODE(DECODE(G_HIERARCHY_PROFILE,
--2424357
1, DECODE(S.DEMAND_CLASS, null, null,
DECODE(l_demand_class, '-1',
MSC_AATP_FUNC.Get_RES_Hierarchy_Demand_Class(
null,
null,
p_department_id,
p_resource_id,
p_organization_id,
p_instance_id,
-- 2859130 c.calendar_date,
-- Bug 3348095
-- For ATP created records use end_date
-- otherwise start_date
DECODE(REQ.record_source, 2,
TRUNC(NVL(REQ.END_DATE, REQ.START_DATE)) ,
TRUNC(REQ.START_DATE)),
--trunc(req.start_date),
-- End Bug 3348095
l_level_id,
S.DEMAND_CLASS), S.DEMAND_CLASS)),
2, DECODE(S.CUSTOMER_ID, NULL, TO_CHAR(NULL),
0, TO_CHAR(NULL),
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
S.CUSTOMER_ID,
S.SHIP_TO_SITE_ID,
s.inventory_item_id,
p_organization_id,
p_instance_id,
-- 2859130 c.calendar_date,
-- Bug 3348095
-- For ATP created records use end_date
-- otherwise start_date
DECODE(REQ.record_source, 2,
TRUNC(NVL(REQ.END_DATE, REQ.START_DATE)) ,
TRUNC(REQ.START_DATE)),
--trunc(req.start_date),
-- End Bug 3348095
l_level_id,
NULL))),
l_demand_class, 1,
--bug 4156016: If l_demand_class is not null and demand class is populated
-- on supplies record then 0 should be allocated.
Decode (S.Demand_Class, NULL,
MSC_AATP_FUNC.Get_Res_Demand_Alloc_Percent(
-- 2859130 C.CALENDAR_DATE,
-- Bug 3348095
-- For ATP created records use end_date
-- otherwise start_date
DECODE(REQ.record_source, 2,
TRUNC(NVL(REQ.END_DATE, REQ.START_DATE)) ,
TRUNC(REQ.START_DATE)),
--trunc(req.start_date),
-- End Bug 3348095
REQ.ASSEMBLY_ITEM_ID,
p_organization_id,
p_instance_id,
p_department_id,
p_resource_id,
DECODE(G_HIERARCHY_PROFILE,
--2424357
1, DECODE(S.DEMAND_CLASS, null, null,
DECODE(l_demand_class, '-1',
MSC_AATP_FUNC.Get_RES_Hierarchy_Demand_Class(
null,
null,
p_department_id,
p_resource_id,
p_organization_id,
p_instance_id,
-- 2859130 c.calendar_date,
-- Bug 3348095
-- For ATP created records use end_date
-- otherwise start_date
DECODE(REQ.record_source, 2,
TRUNC(NVL(REQ.END_DATE, REQ.START_DATE)) ,
TRUNC(REQ.START_DATE)),
--trunc(req.start_date),
-- End Bug 3348095
l_level_id,
S.DEMAND_CLASS), S.DEMAND_CLASS)),
2, DECODE(S.CUSTOMER_ID, NULL, l_demand_class,
0, l_demand_class,
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
S.CUSTOMER_ID,
S.SHIP_TO_SITE_ID,
l_inv_item_id,
p_organization_id,
p_instance_id,
--2859130 c.calendar_date,
-- Bug 3348095
-- For ATP created records use end_date
-- otherwise start_date
DECODE(REQ.record_source, 2,
TRUNC(NVL(REQ.END_DATE, REQ.START_DATE)) ,
TRUNC(REQ.START_DATE)),
--trunc(req.start_date),
-- End Bug 3348095
l_level_id,
NULL))),
l_demand_class), 0))) col24,
/*New*/
-- 2859130 C.CALENDAR_DATE col25,
-- Bug 3348095
-- For ATP created records use end_date otherwise start_date
GREATEST(DECODE(REQ.record_source, 2,
TRUNC(NVL(REQ.END_DATE, REQ.START_DATE)) , TRUNC(REQ.START_DATE)),l_sys_next_date) col25, --bug3333114
-- End Bug 3348095
-- TRUNC(req.start_date) col25,
l_null_num col26,
-- Bug 2771075. For Planned Orders, we will populate transaction_id
-- in the disposition_name column to be consistent with Planning.
-- S.ORDER_NUMBER col27,
DECODE(S.ORDER_TYPE, 5, to_char(S.TRANSACTION_ID), S.ORDER_NUMBER) col27,
l_null_num col28,
l_null_num col29,
-- ship_rec_cal changes begin
l_sysdate,
G_USER_ID,
l_sysdate,
G_USER_ID,
G_USER_ID,
-- ship_rec_cal changes end
-- Unallocated_Quantity
-1* DECODE(REQ.RESOURCE_ID, -1, REQ.LOAD_RATE,
DECODE(REQ.END_DATE, NULL, REQ.RESOURCE_HOURS,
-- Bug 3348095
DECODE(REQ.record_source, 2, REQ.RESOURCE_HOURS,
REQ.DAILY_RESOURCE_HOURS)))
-- For ATP created records use resource_hours
-- End Bug 3348095
FROM MSC_DEPARTMENT_RESOURCES DR,
MSC_SUPPLIES S,
MSC_SYSTEM_ITEMS I, -- CTO ODR
MSC_RESOURCE_REQUIREMENTS REQ
-- 2859130 MSC_CALENDAR_DATES C
WHERE DR.PLAN_ID = p_plan_id
AND NVL(DR.OWNING_DEPARTMENT_ID, DR.DEPARTMENT_ID)=p_department_id
AND DR.RESOURCE_ID = p_resource_id
AND DR.SR_INSTANCE_ID = p_instance_id
AND DR.ORGANIZATION_ID = p_organization_id -- for performance
AND REQ.PLAN_ID = DR.PLAN_ID
AND REQ.SR_INSTANCE_ID = DR.SR_INSTANCE_ID
AND REQ.RESOURCE_ID = DR.RESOURCE_ID
AND REQ.DEPARTMENT_ID = DR.DEPARTMENT_ID
AND NVL(REQ.PARENT_ID, 1) = 1 -- parent_id is 1 for constrained plans. Bug 2809639
-- CTO Option Dependent Resources ODR
AND I.SR_INSTANCE_ID = REQ.SR_INSTANCE_Id
AND I.PLAN_ID = REQ.PLAN_ID
AND I.ORGANIZATION_ID = REQ.ORGANIZATION_ID
AND I.INVENTORY_ITEM_ID = REQ.ASSEMBLY_ITEM_ID
AND ((I.bom_item_type <> 1 and I.bom_item_type <> 2)
-- bom_item_type not model and option_class always committed.
AND (I.atp_flag <> 'N')
-- atp_flag is 'Y' then committed.
OR (REQ.record_source = 2) ) -- this OR may be changed during performance analysis.
-- if record created by ATP then committed.
-- End CTO Option Dependent Resources
AND S.PLAN_ID = DR.PLAN_ID
AND S.TRANSACTION_ID = REQ.SUPPLY_ID
AND S.SR_INSTANCE_ID = REQ.SR_INSTANCE_ID --bug3948494
-- Exclude Cancelled Supplies 2460645
AND NVL(S.DISPOSITION_STATUS_TYPE, 1) <> 2 -- Bug 2460645
-- 2859130
-- AND C.SR_INSTANCE_ID = DR.SR_INSTANCE_ID
-- AND C.CALENDAR_CODE = l_calendar_code
-- AND C.EXCEPTION_SET_ID = l_calendar_exception_set_id
-- AND C.CALENDAR_DATE = TRUNC(REQ.START_DATE) -- Bug 2809639
-- AND C.SEQ_NUM IS NOT NULL
---bug 2341075
--AND C.CALENDAR_DATE >= trunc(sysdate)
-- AND C.CALENDAR_DATE >= l_plan_start_date
AND trunc(req.start_date) >= l_plan_start_date --4135752
UNION ALL
SELECT p_level col1,
p_identifier col2,
p_scenario_id col3,
l_null_num col4 ,
l_null_num col5,
p_organization_id col6,
p_department_id col7,
p_resource_id col8,
l_null_num col9,
l_null_num col10,
l_null_num col11,
l_null_num col12,
l_null_num col13,
l_null_num col14,
l_null_char col15,
l_uom_code col16,
2 col17, -- supply
l_null_num col18,
l_null_char col19,
MNRA.SR_INSTANCE_ID col20,
l_null_num col21,
MNRA.TRANSACTION_ID col22,
l_null_num col23,
MNRA.CAPACITY_UNITS * ((DECODE(LEAST(MNRA.from_time, MNRA.to_time),
MNRA.to_time,to_time + 24*3600,
MNRA.to_time) - MNRA.from_time)/3600) *
DECODE(p_scenario_id, -1, 1, NVL((MRHM.allocation_percent/100), 1)) col24,
--bug 4156016
/* NVL(MSC_AATP_FUNC.Get_DC_Alloc_Percent(
p_instance_id,
null,
p_organization_id,
p_department_id,
p_resource_id,
l_demand_class,
SHIFT_DATE),1)) col24, */
MNRA.SHIFT_DATE col25,
l_null_num col26,
l_null_char col27,
l_null_num col28,
l_null_num col29,
-- ship_rec_cal changes begin
l_sysdate,
G_USER_ID,
l_sysdate,
G_USER_ID,
G_USER_ID,
-- ship_rec_cal changes end
-- Unallocated_Quantity
MNRA.CAPACITY_UNITS * ((DECODE(LEAST(MNRA.from_time, MNRA.to_time),
MNRA.to_time,MNRA.to_time + 24*3600,
MNRA.to_time) - MNRA.from_time)/3600)
FROM MSC_NET_RESOURCE_AVAIL MNRA,
msc_resource_hierarchy_mv MRHM
WHERE MNRA.PLAN_ID = p_plan_id
AND NVL(MNRA.PARENT_ID, -2) <> -1
AND MNRA.SR_INSTANCE_ID = p_instance_id
AND MNRA.RESOURCE_ID = p_resource_id
AND MNRA.DEPARTMENT_ID = p_department_id
--bug 2341075
--AND SHIFT_DATE >= trunc(sysdate)
--bug 4232627: select only those records which are after plan start date
AND MNRA.SHIFT_DATE >= l_plan_start_date
--bug 4156016
AND MNRA.organization_id = p_organization_id
AND MRHM.department_id (+) = MNRA.department_id
AND MRHM.resource_id (+)= MNRA.resource_id
AND MRHM.organization_id (+) = MNRA.organization_id
AND MRHM.sr_instance_id (+)= MNRA.sr_instance_id
--AND MRHM.level_id (+) = -1 --4365873
AND decode(MRHM.level_id (+),-1,1,2) = decode(G_HIERARCHY_PROFILE,1,1,2)
--bug 4232627:
AND trunc(MNRA.shift_date) >= trunc(MRHM.effective_date (+))
AND trunc(MNRA.shift_date) <= trunc(MRHM.disable_date (+))
AND MRHM.demand_class (+) = l_demand_class
)
; -- dsting removed order by col25;
INSERT INTO msc_atp_sd_details_temp (
ATP_Level,
Order_line_id,
Scenario_Id,
Inventory_Item_Id,
Request_Item_Id,
Organization_Id,
Department_Id,
Resource_Id,
Supplier_Id,
Supplier_Site_Id,
From_Organization_Id,
From_Location_Id,
To_Organization_Id,
To_Location_Id,
Ship_Method,
UOM_code,
Supply_Demand_Type,
Supply_Demand_Source_Type,
Supply_Demand_Source_Type_Name,
Identifier1,
Identifier2,
Identifier3,
Identifier4,
Supply_Demand_Quantity,
Supply_Demand_Date,
Disposition_Type,
Disposition_Name,
Pegging_Id,
End_Pegging_Id,
creation_date,
created_by,
last_update_date,
last_updated_by,
last_update_login,
Unallocated_Quantity
)
(SELECT
p_level col1,
p_identifier col2,
p_scenario_id col3,
l_null_num col4 ,
l_null_num col5,
p_organization_id col6,
p_department_id col7,
p_resource_id col8,
l_null_num col9,
l_null_num col10,
l_null_num col11,
l_null_num col12,
l_null_num col13,
l_null_num col14,
l_null_char col15,
l_uom_code col16,
1 col17, -- demand
S.ORDER_TYPE col18,
l_null_char col19,
REQ.SR_INSTANCE_ID col20,
l_null_num col21,
REQ.TRANSACTION_ID col22,
l_null_num col23,
-1* DECODE(REQ.RESOURCE_ID, -1, REQ.LOAD_RATE,
DECODE(REQ.END_DATE, NULL, REQ.RESOURCE_HOURS,
-- Bug 3348095
DECODE(REQ.record_source, 2, REQ.RESOURCE_HOURS,
REQ.DAILY_RESOURCE_HOURS))) *
-- For ATP created records use resource_hours
-- End Bug 3348095
/*New*/
DECODE(p_scenario_id, -1, 1,
DECODE(DECODE(G_HIERARCHY_PROFILE,
--2424357
1, DECODE(S.DEMAND_CLASS, null, null,
DECODE(l_demand_class, '-1',
MSC_AATP_FUNC.Get_RES_Hierarchy_Demand_Class(
null,
null,
p_department_id,
p_resource_id,
p_organization_id,
p_instance_id,
c.calendar_date,
l_level_id,
S.DEMAND_CLASS), S.DEMAND_CLASS)),
2, DECODE(S.CUSTOMER_ID, NULL, TO_CHAR(NULL),
0, TO_CHAR(NULL),
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
S.CUSTOMER_ID,
S.SHIP_TO_SITE_ID,
s.inventory_item_id,
p_organization_id,
p_instance_id,
c.calendar_date,
l_level_id,
NULL))),
l_demand_class, 1,
--bug 4156016: If l_demand_class is not null and demand class is populated
-- on supplies record then 0 should be allocated.
Decode (S.Demand_Class, NULL,
MSC_AATP_FUNC.Get_Res_Demand_Alloc_Percent(C.CALENDAR_DATE,
REQ.ASSEMBLY_ITEM_ID,
p_organization_id,
p_instance_id,
p_department_id,
p_resource_id,
DECODE(G_HIERARCHY_PROFILE,
--2424357
1, DECODE(S.DEMAND_CLASS, null, null,
DECODE(l_demand_class, '-1',
MSC_AATP_FUNC.Get_RES_Hierarchy_Demand_Class(
null,
null,
p_department_id,
p_resource_id,
p_organization_id,
p_instance_id,
c.calendar_date,
l_level_id,
S.DEMAND_CLASS), S.DEMAND_CLASS)),
2, DECODE(S.CUSTOMER_ID, NULL, l_demand_class,
0, l_demand_class,
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
S.CUSTOMER_ID,
S.SHIP_TO_SITE_ID,
l_inv_item_id,
p_organization_id,
p_instance_id,
c.calendar_date,
l_level_id,
NULL))),
l_demand_class), 0))) col24,
/*New*/
GREATEST(C.CALENDAR_DATE,l_sys_next_date) col25, --bug3333114
l_null_num col26,
-- Bug 2771075. For Planned Orders, we will populate transaction_id
-- in the disposition_name column to be consistent with Planning.
-- S.ORDER_NUMBER col27,
DECODE(S.ORDER_TYPE, 5, to_char(S.TRANSACTION_ID), S.ORDER_NUMBER) col27,
l_null_num col28,
l_null_num col29,
-- ship_rec_cal changes begin
l_sysdate,
G_USER_ID,
l_sysdate,
G_USER_ID,
G_USER_ID,
-- ship_rec_cal changes end
-- Unallocated_Quantity
-1* DECODE(REQ.RESOURCE_ID, -1, REQ.LOAD_RATE,
DECODE(REQ.END_DATE, NULL, REQ.RESOURCE_HOURS,
-- Bug 3348095
DECODE(REQ.record_source, 2, REQ.RESOURCE_HOURS,
REQ.DAILY_RESOURCE_HOURS)))
-- For ATP created records use resource_hours
-- End Bug 3348095
FROM MSC_DEPARTMENT_RESOURCES DR,
MSC_SUPPLIES S,
MSC_SYSTEM_ITEMS I, -- CTO ODR
MSC_RESOURCE_REQUIREMENTS REQ,
MSC_CALENDAR_DATES C
WHERE DR.PLAN_ID = p_plan_id
AND NVL(DR.OWNING_DEPARTMENT_ID, DR.DEPARTMENT_ID)=p_department_id
AND DR.RESOURCE_ID = p_resource_id
AND DR.SR_INSTANCE_ID = p_instance_id
AND DR.ORGANIZATION_ID = p_organization_id -- for performance
AND REQ.PLAN_ID = DR.PLAN_ID
AND REQ.SR_INSTANCE_ID = DR.SR_INSTANCE_ID
AND REQ.RESOURCE_ID = DR.RESOURCE_ID
AND REQ.DEPARTMENT_ID = DR.DEPARTMENT_ID
AND NVL(REQ.PARENT_ID, l_optimized_plan) = l_optimized_plan
-- CTO Option Dependent Resources ODR
AND I.SR_INSTANCE_ID = REQ.SR_INSTANCE_Id
AND I.PLAN_ID = REQ.PLAN_ID
AND I.ORGANIZATION_ID = REQ.ORGANIZATION_ID
AND I.INVENTORY_ITEM_ID = REQ.ASSEMBLY_ITEM_ID
AND ((I.bom_item_type <> 1 and I.bom_item_type <> 2)
-- bom_item_type not model and option_class always committed.
AND (I.atp_flag <> 'N')
-- atp_flag is 'Y' then committed.
OR (REQ.record_source = 2) ) -- this OR may be changed during performance analysis.
-- if record created by ATP then committed.
-- End CTO Option Dependent Resources
AND S.PLAN_ID = DR.PLAN_ID
AND S.TRANSACTION_ID = REQ.SUPPLY_ID
AND S.SR_INSTANCE_ID = REQ.SR_INSTANCE_ID --bug3948494
-- Exclude Cancelled Supplies 2460645
AND NVL(S.DISPOSITION_STATUS_TYPE, 1) <> 2 -- Bug 2460645
AND C.SR_INSTANCE_ID = DR.SR_INSTANCE_ID
AND C.CALENDAR_CODE = l_calendar_code
AND C.EXCEPTION_SET_ID = l_calendar_exception_set_id
-- Bug 3348095
-- Ensure that the ATP created resource Reqs
-- do not get double counted.
AND C.CALENDAR_DATE BETWEEN DECODE(REQ.record_source, 2,
TRUNC(NVL(REQ.END_DATE, REQ.START_DATE)), TRUNC(REQ.START_DATE))
AND TRUNC(NVL(REQ.END_DATE, REQ.START_DATE))
-- End Bug 3348095
AND C.SEQ_NUM IS NOT NULL
---bug 2341075
--AND C.CALENDAR_DATE >= trunc(sysdate)
AND C.CALENDAR_DATE >= l_plan_start_date
UNION ALL
SELECT p_level col1,
p_identifier col2,
p_scenario_id col3,
l_null_num col4 ,
l_null_num col5,
p_organization_id col6,
p_department_id col7,
p_resource_id col8,
l_null_num col9,
l_null_num col10,
l_null_num col11,
l_null_num col12,
l_null_num col13,
l_null_num col14,
l_null_char col15,
l_uom_code col16,
2 col17, -- supply
l_null_num col18,
l_null_char col19,
MNRA.SR_INSTANCE_ID col20,
l_null_num col21,
MNRA.TRANSACTION_ID col22,
l_null_num col23,
MNRA.CAPACITY_UNITS * ((DECODE(LEAST(MNRA.from_time, MNRA.to_time),
MNRA.to_time,to_time + 24*3600,
MNRA.to_time) - MNRA.from_time)/3600) *
DECODE(p_scenario_id, -1, 1, NVL((MRHM.allocation_percent/100), 1)) col24,
--bug 4156016
/* NVL(MSC_AATP_FUNC.Get_DC_Alloc_Percent(
p_instance_id,
null,
p_organization_id,
p_department_id,
p_resource_id,
l_demand_class,
SHIFT_DATE),1)) col24, */
MNRA.SHIFT_DATE col25,
l_null_num col26,
l_null_char col27,
l_null_num col28,
l_null_num col29,
-- ship_rec_cal changes begin
l_sysdate,
G_USER_ID,
l_sysdate,
G_USER_ID,
G_USER_ID,
-- ship_rec_cal changes end
-- Unallocated_Quantity
MNRA.CAPACITY_UNITS * ((DECODE(LEAST(MNRA.from_time, MNRA.to_time),
MNRA.to_time,MNRA.to_time + 24*3600,
MNRA.to_time) - MNRA.from_time)/3600)
FROM MSC_NET_RESOURCE_AVAIL MNRA,
msc_resource_hierarchy_mv MRHM
WHERE MNRA.PLAN_ID = p_plan_id
AND NVL(MNRA.PARENT_ID, -2) <> -1
AND MNRA.SR_INSTANCE_ID = p_instance_id
AND MNRA.RESOURCE_ID = p_resource_id
AND MNRA.DEPARTMENT_ID = p_department_id
--bug 2341075
--AND SHIFT_DATE >= trunc(sysdate)
--bug 4232627: select only those records which are after plan start date
AND MNRA.SHIFT_DATE >= l_plan_start_date --bug#12872862
--bug 4156016
AND MNRA.organization_id = p_organization_id
AND MRHM.department_id (+) = MNRA.department_id
AND MRHM.resource_id (+)= MNRA.resource_id
AND MRHM.organization_id (+) = MNRA.organization_id
AND MRHM.sr_instance_id (+)= MNRA.sr_instance_id
--AND MRHM.level_id (+) = -1 --4365873
AND decode(MRHM.level_id (+),-1,1,2) = decode(G_HIERARCHY_PROFILE,1,1,2)
--bug 4232627:
AND trunc(MNRA.shift_date) >= trunc(MRHM.effective_date (+))
AND trunc(MNRA.shift_date) <= trunc(MRHM.disable_date (+))
AND MRHM.demand_class (+) = l_demand_class
)
; -- dsting removed order by col25;
msc_sch_wb.atp_debug('Res_Alloc_Cum_Atp: ' || 'after insert into msc_atp_sd_details_temp');
IF (NVL(p_insert_flag, 0) <>0)
AND (l_demand_class_tab(i) = p_demand_class) THEN
l_temp_atp := l_current_atp;
IF (NVL(p_insert_flag, 0) <>0) AND
(l_demand_class_tab(i) = p_demand_class) THEN
FOR j in 1..l_current_atp.atp_qty.COUNT LOOP
IF l_current_atp.atp_qty(j) < l_temp_atp.atp_qty(j) THEN
-- this is the stealing quantity in that period
-- bug 1413459: the stealing quantity should be the current
-- period quantity (after backward consumption, after stealing)
-- minus the period quantity after backward consumption but
-- before the stealing
l_steal_period_quantity := l_current_atp.atp_qty(j) -
l_temp_atp.atp_qty(j);
END IF; -- IF (NVL(p_insert_flag, 0) <>0) .....
IF NVL(p_insert_flag, 0) <> 0 THEN
-- add one more entry to indicate infinite time fence date
-- and quantity.
x_atp_period.Cumulative_Quantity := x_atp_info.atp_qty;
msc_sch_wb.atp_debug('Supplier_Alloc_Cum_Atp: ' || 'before select the high priority demand class');
SELECT demand_class, priority
BULK COLLECT INTO l_demand_class_tab, l_demand_class_priority_tab
FROM msc_item_hierarchy_mv
--WHERE inventory_item_id = p_sup_atp_info_rec.inventory_item_id
WHERE inventory_item_id = l_inv_item_id
AND organization_id = p_sup_atp_info_rec.organization_id -- Ship To org
AND sr_instance_id = l_instance_id
AND p_request_date BETWEEN effective_date AND disable_date
AND priority <= l_priority -- 1665110, add '='
AND level_id = l_level_id
ORDER BY priority asc, allocation_percent desc ;
SELECT demand_class, priority
BULK COLLECT INTO l_demand_class_tab, l_demand_class_priority_tab
FROM msc_item_hierarchy_mv
--WHERE inventory_item_id = p_sup_atp_info_rec.inventory_item_id
WHERE inventory_item_id = l_inv_item_id
AND organization_id = p_sup_atp_info_rec.organization_id
AND sr_instance_id = l_instance_id
AND p_request_date BETWEEN effective_date AND disable_date
AND priority <= l_priority -- 1665110, add '='
AND level_id = l_level_id
ORDER BY priority asc, class;
SELECT mv1.demand_class, mv1.priority, mv1.class, mv1.partner_id
BULK COLLECT INTO l_demand_class_tab, l_demand_class_priority_tab,
l_class_tab, l_partner_tab
FROM msc_item_hierarchy_mv mv1
--WHERE mv1.inventory_item_id = p_sup_atp_info_rec.inventory_item_id
WHERE inventory_item_id = l_inv_item_id
AND mv1.organization_id = p_sup_atp_info_rec.organization_id
AND mv1.sr_instance_id = l_instance_id
AND p_request_date BETWEEN mv1.effective_date AND mv1.disable_date
--AND mv1.priority <= l_priority -- 1665110, add '='
AND mv1.level_id = l_level_id
AND trunc(mv1.priority, -3) <= trunc(l_priority, -3)
ORDER BY trunc(mv1.priority, -3), mv1.class ,
trunc(mv1.priority, -2), mv1.partner_id;
SELECT mv1.demand_class, mv1.priority, mv1.class, mv1.partner_id
BULK COLLECT INTO l_demand_class_tab, l_demand_class_priority_tab,
l_class_tab, l_partner_tab
FROM msc_item_hierarchy_mv mv1
--WHERE mv1.inventory_item_id = p_sup_atp_info_rec.inventory_item_id
WHERE mv1.inventory_item_id = l_inv_item_id
AND mv1.organization_id = p_sup_atp_info_rec.organization_id
AND mv1.sr_instance_id = l_instance_id
AND p_request_date BETWEEN mv1.effective_date AND mv1.disable_date
--AND mv1.priority <= l_priority -- 1665110, add '='
AND mv1.level_id = l_level_id
AND trunc(mv1.priority, -3) <= trunc(l_priority, -3)
ORDER BY trunc(mv1.priority, -3), mv1.class ,
trunc(mv1.priority, -2), mv1.partner_id,
mv1.priority, mv1.partner_site_id;
SELECT uom_code, postprocessing_lead_time
INTO l_uom_code, l_postprocessing_lead_time
FROM msc_system_items
WHERE plan_id = p_sup_atp_info_rec.plan_id
AND sr_instance_id = p_sup_atp_info_rec.instance_id
AND organization_id = p_sup_atp_info_rec.organization_id
--AND inventory_item_id = p_sup_atp_info_rec.inventory_item_id;
SELECT tp.calendar_code
INTO l_calendar_code
FROM msc_trading_partners tp,
msc_plans mp
WHERE mp.plan_id = p_sup_atp_info_rec.plan_id
AND tp.sr_instance_id = mp.sr_instance_id
AND tp.partner_type = 3
AND tp.sr_tp_id = mp.organization_id;
IF (NVL(p_sup_atp_info_rec.insert_flag, 0) = 0 OR l_demand_class <> p_sup_atp_info_rec.demand_class) THEN
IF l_check_cap_model_flag = 1 THEN
-- we don't want details
SELECT trunc(l_date), --4135752
SUM(quantity)
BULK COLLECT INTO
l_current_atp.atp_period,
l_current_atp.atp_qty
FROM (
SELECT GREATEST(cs.calendar_date,l_sys_next_date) l_date, --bug3333114
cs.capacity*(1+NVL(MSC_ATP_FUNC.get_tolerance_percentage(
p_sup_atp_info_rec.instance_id, p_sup_atp_info_rec.plan_id,
l_inv_item_id, p_sup_atp_info_rec.organization_id,
p_sup_atp_info_rec.supplier_id, p_sup_atp_info_rec.supplier_site_id,
cs.seq_num - p_sup_atp_info_rec.sysdate_seq_num),0))*
/*NVL(MSC_AATP_FUNC.Get_DC_Alloc_Percent(l_instance_id,
s.inventory_item_id,
p_sup_atp_info_rec.organization_id,
null,
null,
l_demand_class,
c.calendar_date), 1) quantity*/
NVL(MIHM.allocation_percent/100, 1) quantity --4365873
FROM
(
SELECT
c.calendar_date,
c.seq_num,
s.inventory_item_id,
s.sr_instance_id,
S.ORGANIZATION_ID,
S.capacity
FROM msc_calendar_dates c,
msc_supplier_capacities s
--WHERE s.inventory_item_id = p_sup_atp_info_rec.inventory_item_id
WHERE s.inventory_item_id = l_inv_item_id
AND s.sr_instance_id = p_sup_atp_info_rec.instance_id
AND s.plan_id = p_sup_atp_info_rec.plan_id
AND s.organization_id = p_sup_atp_info_rec.organization_id
AND s.supplier_id = p_sup_atp_info_rec.supplier_id
AND NVL(s.supplier_site_id, -1) = NVL(p_sup_atp_info_rec.supplier_site_id, -1)
AND c.calendar_date BETWEEN trunc(s.from_date)
--AND NVL(s.to_date,l_cutoff_date)
AND trunc(NVL(s.to_date,least(p_sup_atp_info_rec.last_cap_date,l_cutoff_date))) --4055719
AND (c.seq_num IS NOT NULL or p_sup_atp_info_rec.manufacturing_cal_code = '@@@')
AND c.calendar_code = l_calendar_code
AND c.exception_set_id = l_calendar_exception_set_id
AND c.sr_instance_id = l_instance_id
AND c.calendar_date >= NVL(p_sup_atp_info_rec.sup_cap_cum_date, l_plan_start_date))CS,
msc_item_hierarchy_mv mihm
WHERE
--4365873
CS.INVENTORY_ITEM_ID = MIHM.INVENTORY_ITEM_ID(+)
AND CS.SR_INSTANCE_ID = MIHM.SR_INSTANCE_ID (+)
AND CS.ORGANIZATION_ID = MIHM.ORGANIZATION_ID (+)
AND decode(MIHM.level_id (+),-1,1,2) = decode(G_HIERARCHY_PROFILE,1,1,2)
AND CS.calendar_date >= MIHM.effective_date (+)
AND CS.calendar_date <= MIHM.disable_date (+)
AND MIHM.demand_class (+) = l_demand_class
-- Supplier Capacity (SCLT) Accumulation starts from this date.
-- AND c.calendar_date >= l_plan_start_date -- bug 1169467
UNION ALL
SELECT GREATEST(trunc(Decode(p_sup_atp_info_rec.sup_cap_type, --4135752
1, p.new_ship_date,
p.new_dock_date)),l_sys_next_date) l_date, -- For ship_rec_cal --bug3333114
(-1)*(p.new_order_quantity - NVL(p.implement_quantity,0))*
DECODE(DECODE(G_HIERARCHY_PROFILE,
--2424357
1, DECODE(p.DEMAND_CLASS, null, null,
DECODE(l_demand_class, '-1',
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
null,
null,
p.inventory_item_id,
p.organization_id,
p.sr_instance_id,
trunc(Decode(p_sup_atp_info_rec.sup_cap_type,
1, p.new_ship_date,
p.new_dock_date
)), --4135752
l_level_id,
p.DEMAND_CLASS), p.DEMAND_CLASS)),
2, DECODE(p.CUSTOMER_ID, NULL, TO_CHAR(NULL),
0, TO_CHAR(NULL),
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
p.CUSTOMER_ID,
p.SHIP_TO_SITE_ID,
p.inventory_item_id,
p.organization_id,
p.sr_instance_id,
trunc(Decode(p_sup_atp_info_rec.sup_cap_type,
1, p.new_ship_date,
p.new_dock_date
)), --4135752
l_level_id,
NULL))),
l_demand_class, 1,
NULL, NVL(MIHM.allocation_percent/100, --4365873
/*NVL(MSC_AATP_FUNC.Get_DC_Alloc_Percent(p.sr_instance_id,
p.inventory_item_id ,
p.organization_id,
null,
null,
l_demand_class,
trunc(Decode(p_sup_atp_info_rec.sup_cap_type,
1, p.new_ship_date,
p.new_dock_date
))),*/
1), --4135752
DECODE(MIHM.allocation_percent/100,
/*DECODE(MSC_AATP_FUNC.Get_DC_Alloc_Percent(p.sr_instance_id,
p.inventory_item_id,
p.organization_id,
null,
null,
l_demand_class,
trunc(Decode(p_sup_atp_info_rec.sup_cap_type, --4135752
1, p.new_ship_date,
p.new_dock_date
))),*/
NULL, 1,
0)) quantity
-- Supplier Capacity (SCLT) Changes Begin
FROM msc_supplies p,msc_item_hierarchy_mv MIHM
WHERE (p.order_type IN (5, 2)
OR (MSC_ATP_REQ.G_PURCHASE_ORDER_PREFERENCE = trunc(MSC_ATP_REQ.G_PROMISE_DATE) --4135752
AND p.order_type = 1 AND p.promised_date IS NULL))
-- Supplier Capacity (SCLT) Accumulation Ignore Purchase Orders
-- WHERE p.order_type IN (5, 1, 2)
AND p.plan_id = p_sup_atp_info_rec.plan_id
AND p.sr_instance_id = p_sup_atp_info_rec.instance_id
--AND p.inventory_item_id = p_sup_atp_info_rec.inventory_item_id
-- 1214694 AND p.organization_id = p_sup_atp_info_rec.organization_id
AND p.supplier_id = p_sup_atp_info_rec.supplier_id
AND NVL(p.supplier_site_id, -1) = NVL(p_sup_atp_info_rec.supplier_site_id, -1)
-- Exclude Cancelled Supplies 2460645
AND NVL(P.DISPOSITION_STATUS_TYPE, 1) <> 2 -- Bug 2460645
--consider ATP inserted PO only and palling PO will be tied to forecats
AND ((p.inventory_item_id = l_inv_item_id and p.record_source=2) OR
p.inventory_item_id in
(select inventory_item_id from msc_system_items msi
where msi.base_item_id = l_inv_item_id
and msi.plan_id = p_sup_atp_info_rec.plan_id
and msi.organization_id = p_sup_atp_info_rec.organization_id
and msi.base_item_id = l_inv_item_id))
AND trunc(Decode(p_sup_atp_info_rec.sup_cap_type, 1, p.new_ship_date,p.new_dock_date)) --4055719 --4135752
<= trunc(least(p_sup_atp_info_rec.last_cap_date,l_cutoff_date)) --4135752
-- Supplier Capacity (SCLT) Changes End
--4365873
AND p.INVENTORY_ITEM_ID = MIHM.INVENTORY_ITEM_ID(+)
AND p.SR_INSTANCE_ID = MIHM.SR_INSTANCE_ID (+)
AND p.ORGANIZATION_ID = MIHM.ORGANIZATION_ID (+)
AND decode(MIHM.level_id (+),-1,1,2) = decode(G_HIERARCHY_PROFILE,1,1,2)
AND trunc(Decode(p_sup_atp_info_rec.sup_cap_type, 1, p.new_ship_date,p.new_dock_date)) >= MIHM.effective_date (+)
AND trunc(Decode(p_sup_atp_info_rec.sup_cap_type, 1, p.new_ship_date,p.new_dock_date)) <= MIHM.disable_date (+)
AND MIHM.demand_class (+) = l_demand_class
)
GROUP BY l_date
ORDER BY l_DATE;--4698199
SELECT trunc(l_date), --4135752
SUM(quantity)
BULK COLLECT INTO
l_current_atp.atp_period,
l_current_atp.atp_qty
FROM (
SELECT GREATEST(cs.calendar_date,l_sys_next_date) l_date, --bug3333114
cs.capacity*(1+NVL(MSC_ATP_FUNC.get_tolerance_percentage(
p_sup_atp_info_rec.instance_id, p_sup_atp_info_rec.plan_id,
p_sup_atp_info_rec.inventory_item_id, p_sup_atp_info_rec.organization_id,
p_sup_atp_info_rec.supplier_id, p_sup_atp_info_rec.supplier_site_id,
cs.seq_num - p_sup_atp_info_rec.sysdate_seq_num),0))*
/*NVL(MSC_AATP_FUNC.Get_DC_Alloc_Percent(l_instance_id,
s.inventory_item_id,
p_sup_atp_info_rec.organization_id,
null,
null,
l_demand_class,
c.calendar_date), 1) quantity*/
NVL(MIHM.allocation_percent/100, 1) quantity --4365873
FROM
(
SELECT
c.calendar_date,
c.seq_num,
s.inventory_item_id,
s.sr_instance_id,
S.ORGANIZATION_ID,
S.capacity
FROM msc_calendar_dates c,
msc_supplier_capacities s
WHERE s.inventory_item_id = p_sup_atp_info_rec.inventory_item_id
AND s.sr_instance_id = p_sup_atp_info_rec.instance_id
AND s.plan_id = p_sup_atp_info_rec.plan_id
AND s.organization_id = p_sup_atp_info_rec.organization_id
AND s.supplier_id = p_sup_atp_info_rec.supplier_id
AND NVL(s.supplier_site_id, -1) = NVL(p_sup_atp_info_rec.supplier_site_id, -1)
AND c.calendar_date BETWEEN trunc(s.from_date)
--AND NVL(s.to_date,l_cutoff_date)
AND trunc(NVL(s.to_date,least(p_sup_atp_info_rec.last_cap_date,l_cutoff_date))) --4055719
AND (c.seq_num IS NOT NULL or p_sup_atp_info_rec.manufacturing_cal_code = '@@@')
AND c.calendar_code = l_calendar_code
AND c.exception_set_id = l_calendar_exception_set_id
AND c.sr_instance_id = l_instance_id
AND c.calendar_date >= NVL(p_sup_atp_info_rec.sup_cap_cum_date, l_plan_start_date))CS,
msc_item_hierarchy_mv mihm
WHERE
--4365873
CS.INVENTORY_ITEM_ID = MIHM.INVENTORY_ITEM_ID(+)
AND CS.SR_INSTANCE_ID = MIHM.SR_INSTANCE_ID (+)
AND CS.ORGANIZATION_ID = MIHM.ORGANIZATION_ID (+)
AND decode(MIHM.level_id (+),-1,1,2) = decode(G_HIERARCHY_PROFILE,1,1,2)
AND CS.calendar_date >= MIHM.effective_date (+)
AND CS.calendar_date <= MIHM.disable_date (+)
AND MIHM.demand_class (+) = l_demand_class
-- Supplier Capacity (SCLT) Accumulation starts from this date.
-- AND c.calendar_date >= l_plan_start_date -- bug 1169467
UNION ALL
SELECT GREATEST(trunc(Decode(p_sup_atp_info_rec.sup_cap_type, --4135752
1, p.new_ship_date,
p.new_dock_date
)),l_sys_next_date) l_date, --bug3333114
-- ship_rec_cal rearrange signs to get rid of multiply times -1
(NVL(p.implement_quantity,0) - p.new_order_quantity)*
DECODE(DECODE(G_HIERARCHY_PROFILE,
--2424357
1, DECODE(p.DEMAND_CLASS, null, null,
DECODE(l_demand_class, '-1',
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
null,
null,
p.inventory_item_id,
p.organization_id,
p.sr_instance_id,
trunc(Decode(p_sup_atp_info_rec.sup_cap_type, --4135752
1, p.new_ship_date,
p.new_dock_date
)),
l_level_id,
p.DEMAND_CLASS), p.DEMAND_CLASS)),
2, DECODE(p.CUSTOMER_ID, NULL, TO_CHAR(NULL),
0, TO_CHAR(NULL),
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
p.CUSTOMER_ID,
p.SHIP_TO_SITE_ID,
p.inventory_item_id,
p.organization_id,
p.sr_instance_id,
trunc(Decode(p_sup_atp_info_rec.sup_cap_type, --4135752
1, p.new_ship_date,
p.new_dock_date
)),
l_level_id,
NULL))),
l_demand_class, 1,
NULL, NVL(MIHM.allocation_percent/100, --4365874
/*NVL(MSC_AATP_FUNC.Get_DC_Alloc_Percent(p.sr_instance_id,
p.inventory_item_id ,
p.organization_id,
null,
null,
l_demand_class,
trunc(Decode(p_sup_atp_info_rec.sup_cap_type, --4135752
1, p.new_ship_date,
p.new_dock_date
))),*/
1), --4135752
DECODE(MIHM.allocation_percent/100,
/*DECODE(MSC_AATP_FUNC.Get_DC_Alloc_Percent(p.sr_instance_id,
p.inventory_item_id,
p.organization_id,
null,
null,
l_demand_class,
trunc(Decode(p_sup_atp_info_rec.sup_cap_type, --4135752
1, p.new_ship_date,
p.new_dock_date
))), */
NULL, 1,
0)) quantity
-- Supplier Capacity (SCLT) Changes Begin
FROM msc_supplies p,msc_item_hierarchy_mv MIHM
WHERE (p.order_type IN (5, 2)
OR (MSC_ATP_REQ.G_PURCHASE_ORDER_PREFERENCE = MSC_ATP_REQ.G_PROMISE_DATE
AND p.order_type = 1 AND p.promised_date IS NULL))
-- Supplier Capacity (SCLT) Accumulation Ignore Purchase Orders
-- WHERE p.order_type IN (5, 1, 2)
AND p.plan_id = p_sup_atp_info_rec.plan_id
AND p.sr_instance_id = p_sup_atp_info_rec.instance_id
AND p.inventory_item_id = p_sup_atp_info_rec.inventory_item_id
-- 1214694 AND p.organization_id = p_sup_atp_info_rec.organization_id
AND p.supplier_id = p_sup_atp_info_rec.supplier_id
AND NVL(p.supplier_site_id, -1) = NVL(p_sup_atp_info_rec.supplier_site_id, -1)
-- Exclude Cancelled Supplies 2460645
AND NVL(P.DISPOSITION_STATUS_TYPE, 1) <> 2 -- Bug 2460645
AND trunc(Decode(p_sup_atp_info_rec.sup_cap_type, 1, p.new_ship_date,p.new_dock_date)) --4055719 --4135752
<= least(p_sup_atp_info_rec.last_cap_date,l_cutoff_date)
--4365873
AND p.INVENTORY_ITEM_ID = MIHM.INVENTORY_ITEM_ID(+)
AND p.SR_INSTANCE_ID = MIHM.SR_INSTANCE_ID (+)
AND p.ORGANIZATION_ID = MIHM.ORGANIZATION_ID (+)
AND decode(MIHM.level_id (+),-1,1,2) = decode(G_HIERARCHY_PROFILE,1,1,2)
AND trunc(Decode(p_sup_atp_info_rec.sup_cap_type, 1, p.new_ship_date,p.new_dock_date)) >= MIHM.effective_date (+)
AND trunc(Decode(p_sup_atp_info_rec.sup_cap_type, 1, p.new_ship_date,p.new_dock_date)) <= MIHM.disable_date (+)
AND MIHM.demand_class (+) = l_demand_class
)
GROUP BY l_date
ORDER BY l_DATE;--4698199
INSERT INTO msc_atp_sd_details_temp (
ATP_Level,
Order_line_id,
Scenario_Id,
Inventory_Item_Id,
Request_Item_Id,
Organization_Id,
Department_Id,
Resource_Id,
Supplier_Id,
Supplier_Site_Id,
From_Organization_Id,
From_Location_Id,
To_Organization_Id,
To_Location_Id,
Ship_Method,
UOM_code,
Supply_Demand_Type,
Supply_Demand_Source_Type,
Supply_Demand_Source_Type_Name,
Identifier1,
Identifier2,
Identifier3,
Identifier4,
Supply_Demand_Quantity,
Supply_Demand_Date,
Disposition_Type,
Disposition_Name,
Pegging_Id,
End_Pegging_Id,
creation_date,
created_by,
last_update_date,
last_updated_by,
last_update_login,
Unallocated_Quantity
)
(SELECT p_sup_atp_info_rec.level col1,
p_identifier col2,
p_sup_atp_info_rec.scenario_id col3,
l_null_num col4 ,
l_null_num col5,
p_sup_atp_info_rec.organization_id col6,
l_null_num col7,
l_null_num col8,
p_sup_atp_info_rec.supplier_id col9,
p_sup_atp_info_rec.supplier_site_id col10,
l_null_num col11,
l_null_num col12,
l_null_num col13,
l_null_num col14,
l_null_char col15,
l_uom_code col16,
2 col17, -- supply
l_null_num col18,
l_null_char col19,
p_sup_atp_info_rec.instance_id col20,
l_null_num col21,
l_null_num col22,
l_null_num col23,
cs.capacity*(1+NVL(MSC_ATP_FUNC.get_tolerance_percentage(
p_sup_atp_info_rec.instance_id,
p_sup_atp_info_rec.plan_id,
l_inv_item_id,
p_sup_atp_info_rec.organization_id,
p_sup_atp_info_rec.supplier_id,
p_sup_atp_info_rec.supplier_site_id,
cs.seq_num - p_sup_atp_info_rec.sysdate_seq_num),0)) *
NVL(MIHM.allocation_percent/100, --4365873
/*NVL(MSC_AATP_FUNC.Get_DC_Alloc_Percent(
l_instance_id,
s.inventory_item_id,
p_sup_atp_info_rec.organization_id,
null,
null,
l_demand_class,
c.calendar_date),*/
1) col24,
GREATEST(CS.CALENDAR_DATE,l_sys_next_date) col25, --bug3333114
l_null_num col26,
l_null_char col27,
l_null_num col28,
l_null_num col29,
-- ship_rec_cal changes begin
l_sysdate,
G_USER_ID,
l_sysdate,
G_USER_ID,
G_USER_ID,
-- ship_rec_cal changes end
-- Unallocated_Quantity
cs.capacity*(1+NVL(MSC_ATP_FUNC.get_tolerance_percentage(
p_sup_atp_info_rec.instance_id,
p_sup_atp_info_rec.plan_id,
l_inv_item_id,
p_sup_atp_info_rec.organization_id,
p_sup_atp_info_rec.supplier_id,
p_sup_atp_info_rec.supplier_site_id,
cs.seq_num - p_sup_atp_info_rec.sysdate_seq_num),0))
FROM
(
SELECT
s.capacity,
c.calendar_date,
s.inventory_item_id,
s.sr_instance_id,
s.organization_id,
c.seq_num
FROM msc_calendar_dates c,
msc_supplier_capacities s
--WHERE s.inventory_item_id = p_sup_atp_info_rec.inventory_item_id
WHERE s.inventory_item_id = l_inv_item_id
AND s.sr_instance_id = p_sup_atp_info_rec.instance_id
AND s.plan_id = p_sup_atp_info_rec.plan_id
AND s.organization_id = p_sup_atp_info_rec.organization_id
AND s.supplier_id = p_sup_atp_info_rec.supplier_id
AND NVL(s.supplier_site_id, -1) = NVL(p_sup_atp_info_rec.supplier_site_id, -1)
AND c.calendar_date BETWEEN trunc(s.from_date)
--AND NVL(s.to_date,l_cutoff_date)
AND trunc(NVL(s.to_date,least(p_sup_atp_info_rec.last_cap_date,l_cutoff_date))) --4055719
AND (c.seq_num IS NOT NULL or p_sup_atp_info_rec.manufacturing_cal_code = '@@@')
AND c.calendar_code = l_calendar_code
AND c.exception_set_id = l_calendar_exception_set_id
AND c.sr_instance_id = l_instance_id
AND c.calendar_date >= NVL(p_sup_atp_info_rec.sup_cap_cum_date, l_plan_start_date))CS,
msc_item_hierarchy_mv MIHM
WHERE
--4365873
cs.INVENTORY_ITEM_ID = MIHM.INVENTORY_ITEM_ID(+)
AND cs.SR_INSTANCE_ID = MIHM.SR_INSTANCE_ID (+)
AND cs.ORGANIZATION_ID = MIHM.ORGANIZATION_ID (+)
--AND decode(MIHM.level_id,-1,1,2) (+) = (select decode(fnd_profile.value('XXXX'),1,1,2) from dual)
--AND MIHM.level_id(+)=-1
AND decode(MIHM.level_id (+),-1,1,2) = decode(G_HIERARCHY_PROFILE,1,1,2)
AND cs.calendar_date >= MIHM.effective_date (+)
AND cs.calendar_date <= MIHM.disable_date (+)
AND MIHM.demand_class (+) = l_demand_class
-- Supplier Capacity (SCLT) Accumulation starts from this date.
-- AND c.calendar_date >= l_plan_start_date -- bug 1169467
UNION ALL
SELECT p_sup_atp_info_rec.level col1,
p_identifier col2,
p_sup_atp_info_rec.scenario_id col3,
l_null_num col4 ,
l_null_num col5,
p_sup_atp_info_rec.organization_id col6,
l_null_num col7,
l_null_num col8,
p_sup_atp_info_rec.supplier_id col9,
p_sup_atp_info_rec.supplier_site_id col10,
l_null_num col11,
l_null_num col12,
l_null_num col13,
l_null_num col14,
l_null_char col15,
l_uom_code col16,
1 col17, -- demand
p.order_type col18,
l_null_char col19,
p_sup_atp_info_rec.instance_id col20,
l_null_num col21,
p.TRANSACTION_ID col22,
l_null_num col23,
-- ship_rec_cal rearrange signs to get rid of multiply times -1
(NVL(p.implement_quantity,0) - p.new_order_quantity)*
DECODE(DECODE(G_HIERARCHY_PROFILE,
--2424357
1, DECODE(p.DEMAND_CLASS, null, null,
DECODE(l_demand_class, '-1',
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
null,
null,
p.inventory_item_id,
p.organization_id,
p.sr_instance_id,
trunc(Decode(p_sup_atp_info_rec.sup_cap_type, --4135752
1, p.new_ship_date,
p.new_dock_date
)),
l_level_id,
p.DEMAND_CLASS), p.DEMAND_CLASS)),
2, DECODE(p.CUSTOMER_ID, NULL, TO_CHAR(NULL),
0, TO_CHAR(NULL),
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
p.CUSTOMER_ID,
p.SHIP_TO_SITE_ID,
p.inventory_item_id,
p.organization_id,
p.sr_instance_id,
trunc(Decode(p_sup_atp_info_rec.sup_cap_type, --4135752
1, p.new_ship_date,
p.new_dock_date
)),
l_level_id,
NULL))),
l_demand_class, 1,
NULL, NVL(MIHM.allocation_percent/100, --4365873
/*NVL(MSC_AATP_FUNC.Get_DC_Alloc_Percent(p.sr_instance_id,
p.inventory_item_id ,
p.organization_id,
null,
null,
l_demand_class,
trunc(Decode(p_sup_atp_info_rec.sup_cap_type, --4135752
1, p.new_ship_date,
p.new_dock_date
))),*/
1),
DECODE(MIHM.allocation_percent/100,
/*DECODE(MSC_AATP_FUNC.Get_DC_Alloc_Percent(p.sr_instance_id,
p.inventory_item_id,
p.organization_id,
null,
null,
l_demand_class,
trunc(Decode(p_sup_atp_info_rec.sup_cap_type, --4135752
1, p.new_ship_date,
p.new_dock_date
))),*/
NULL, 1,
0)) col24,
GREATEST(trunc(Decode(p_sup_atp_info_rec.sup_cap_type, --4135752
1, p.new_ship_date,
p.new_dock_date
)),l_sys_next_date) col25, --bug3333114
l_null_num col26,
-- Bug 2771075. For Planned Orders, we will populate transaction_id
-- in the disposition_name column to be consistent with Planning.
-- p.order_number col27,
DECODE(p.order_type, 5, to_char(p.transaction_id), p.order_number ) col27,
l_null_num col28,
l_null_num col29,
-- ship_rec_cal changes begin
l_sysdate,
G_USER_ID,
l_sysdate,
G_USER_ID,
G_USER_ID,
-- ship_rec_cal changes end
-- Unallocated_Quantity
-- ship_rec_cal rearrange signs to get rid of multiply times -1
(NVL(p.implement_quantity,0) - p.new_order_quantity)
-- Supplier Capacity (SCLT) Changes Begin
FROM msc_supplies p,msc_item_hierarchy_mv MIHM
WHERE (p.order_type IN (5, 2)
OR (MSC_ATP_REQ.G_PURCHASE_ORDER_PREFERENCE = MSC_ATP_REQ.G_PROMISE_DATE
AND p.order_type = 1 AND p.promised_date IS NULL))
-- Supplier Capacity (SCLT) Accumulation Ignore Purchase Orders
-- WHERE p.order_type IN (5, 1, 2)
AND p.plan_id = p_sup_atp_info_rec.plan_id
AND p.sr_instance_id = p_sup_atp_info_rec.instance_id
--AND p.inventory_item_id = p_sup_atp_info_rec.inventory_item_id
-- 1214694 AND p.organization_id = p_sup_atp_info_rec.organization_id
AND p.supplier_id = p_sup_atp_info_rec.supplier_id
AND NVL(p.supplier_site_id, -1) = NVL(p_sup_atp_info_rec.supplier_site_id, -1)
-- Exclude Cancelled Supplies 2460645
AND NVL(P.DISPOSITION_STATUS_TYPE, 1) <> 2 -- Bug 2460645
--consider ATP inserted POs only. Do not use Planning inserted POs as
-- theu would be tied to forecast
AND ((p.inventory_item_id = l_inv_item_id and p.record_source=2) OR
p.inventory_item_id in
(select inventory_item_id from msc_system_items msi
where msi.base_item_id = l_inv_item_id
and msi.plan_id = p_sup_atp_info_rec.plan_id
and msi.organization_id = p_sup_atp_info_rec.organization_id
and msi.base_item_id = l_inv_item_id))
AND trunc(Decode(p_sup_atp_info_rec.sup_cap_type, 1, p.new_ship_date,p.new_dock_date)) --4055719 --4135752
<= least(p_sup_atp_info_rec.last_cap_date,l_cutoff_date)
--4365873
AND p.INVENTORY_ITEM_ID = MIHM.INVENTORY_ITEM_ID(+)
AND p.SR_INSTANCE_ID = MIHM.SR_INSTANCE_ID (+)
AND p.ORGANIZATION_ID = MIHM.ORGANIZATION_ID (+)
--AND MIHM.level_id (+) = decode(G_HIERARCHY_PROFILE,1,-1 )
AND decode(MIHM.level_id (+),-1,1,2) = decode(G_HIERARCHY_PROFILE,1,1,2)
AND trunc(Decode(p_sup_atp_info_rec.sup_cap_type, 1, p.new_ship_date,p.new_dock_date)) >= MIHM.effective_date (+)
AND trunc(Decode(p_sup_atp_info_rec.sup_cap_type, 1, p.new_ship_date,p.new_dock_date)) <= MIHM.disable_date (+)
AND MIHM.demand_class (+) = l_demand_class
)
; -- dsting removed order by col25;
INSERT INTO msc_atp_sd_details_temp (
ATP_Level,
Order_line_id,
Scenario_Id,
Inventory_Item_Id,
Request_Item_Id,
Organization_Id,
Department_Id,
Resource_Id,
Supplier_Id,
Supplier_Site_Id,
From_Organization_Id,
From_Location_Id,
To_Organization_Id,
To_Location_Id,
Ship_Method,
UOM_code,
Supply_Demand_Type,
Supply_Demand_Source_Type,
Supply_Demand_Source_Type_Name,
Identifier1,
Identifier2,
Identifier3,
Identifier4,
Supply_Demand_Quantity,
Supply_Demand_Date,
Disposition_Type,
Disposition_Name,
Pegging_Id,
End_Pegging_Id,
creation_date,
created_by,
last_update_date,
last_updated_by,
last_update_login,
Unallocated_Quantity
)
(SELECT p_sup_atp_info_rec.level col1,
p_identifier col2,
p_sup_atp_info_rec.scenario_id col3,
l_null_num col4 ,
l_null_num col5,
p_sup_atp_info_rec.organization_id col6,
l_null_num col7,
l_null_num col8,
p_sup_atp_info_rec.supplier_id col9,
p_sup_atp_info_rec.supplier_site_id col10,
l_null_num col11,
l_null_num col12,
l_null_num col13,
l_null_num col14,
l_null_char col15,
l_uom_code col16,
2 col17, -- supply
l_null_num col18,
l_null_char col19,
p_sup_atp_info_rec.instance_id col20,
l_null_num col21,
l_null_num col22,
l_null_num col23,
cs.capacity*(1+NVL(MSC_ATP_FUNC.get_tolerance_percentage(
p_sup_atp_info_rec.instance_id,
p_sup_atp_info_rec.plan_id,
p_sup_atp_info_rec.inventory_item_id,
p_sup_atp_info_rec.organization_id,
p_sup_atp_info_rec.supplier_id,
p_sup_atp_info_rec.supplier_site_id,
cs.seq_num - p_sup_atp_info_rec.sysdate_seq_num),0)) *
NVL(MIHM.allocation_percent/100, --4365873
/*NVL(MSC_AATP_FUNC.Get_DC_Alloc_Percent(
l_instance_id,
cs.inventory_item_id,
p_sup_atp_info_rec.organization_id,
null,
null,
l_demand_class,
c.calendar_date),*/
1) col24,
GREATEST(CS.CALENDAR_DATE,l_sys_next_date) col25, --bug3333114
l_null_num col26,
l_null_char col27,
l_null_num col28,
l_null_num col29,
-- ship_rec_cal changes begin
l_sysdate,
G_USER_ID,
l_sysdate,
G_USER_ID,
G_USER_ID,
-- ship_rec_cal changes end
-- Unallocated_Quantity
cs.capacity*(1+NVL(MSC_ATP_FUNC.get_tolerance_percentage(
p_sup_atp_info_rec.instance_id,
p_sup_atp_info_rec.plan_id,
p_sup_atp_info_rec.inventory_item_id,
p_sup_atp_info_rec.organization_id,
p_sup_atp_info_rec.supplier_id,
p_sup_atp_info_rec.supplier_site_id,
cs.seq_num - p_sup_atp_info_rec.sysdate_seq_num),0))
FROM
(
SELECT
s.capacity,
c.calendar_date,
s.inventory_item_id,
s.sr_instance_id,
s.organization_id,
c.seq_num
FROM msc_calendar_dates c,
msc_supplier_capacities s
WHERE s.inventory_item_id = p_sup_atp_info_rec.inventory_item_id
AND s.sr_instance_id = p_sup_atp_info_rec.instance_id
AND s.plan_id = p_sup_atp_info_rec.plan_id
AND s.organization_id = p_sup_atp_info_rec.organization_id
AND s.supplier_id = p_sup_atp_info_rec.supplier_id
AND NVL(s.supplier_site_id, -1) = NVL(p_sup_atp_info_rec.supplier_site_id, -1)
AND c.calendar_date BETWEEN trunc(s.from_date)
--AND NVL(s.to_date,l_cutoff_date)
AND trunc(NVL(s.to_date,least(p_sup_atp_info_rec.last_cap_date,l_cutoff_date))) --4055719
AND (c.seq_num IS NOT NULL or p_sup_atp_info_rec.manufacturing_cal_code = '@@@')
AND c.calendar_code = l_calendar_code
AND c.exception_set_id = l_calendar_exception_set_id
AND c.sr_instance_id = l_instance_id
AND c.calendar_date >= NVL(p_sup_atp_info_rec.sup_cap_cum_date, l_plan_start_date))CS,
msc_item_hierarchy_mv MIHM
WHERE
--4365873
cs.INVENTORY_ITEM_ID = MIHM.INVENTORY_ITEM_ID(+)
AND cs.SR_INSTANCE_ID = MIHM.SR_INSTANCE_ID (+)
AND cs.ORGANIZATION_ID = MIHM.ORGANIZATION_ID (+)
--AND decode(MIHM.level_id,-1,1,2) (+) = (select decode(fnd_profile.value('XXXX'),1,1,2) from dual)
--AND MIHM.level_id(+)=-1
AND decode(MIHM.level_id (+),-1,1,2) = decode(G_HIERARCHY_PROFILE,1,1,2)
AND cs.calendar_date >= MIHM.effective_date (+)
AND cs.calendar_date <= MIHM.disable_date (+)
AND MIHM.demand_class (+) = l_demand_class
-- Supplier Capacity (SCLT) Accumulation starts from this date.
-- AND c.calendar_date >= l_plan_start_date -- bug 1169467
UNION ALL
SELECT p_sup_atp_info_rec.level col1,
p_identifier col2,
p_sup_atp_info_rec.scenario_id col3,
l_null_num col4 ,
l_null_num col5,
p_sup_atp_info_rec.organization_id col6,
l_null_num col7,
l_null_num col8,
p_sup_atp_info_rec.supplier_id col9,
p_sup_atp_info_rec.supplier_site_id col10,
l_null_num col11,
l_null_num col12,
l_null_num col13,
l_null_num col14,
l_null_char col15,
l_uom_code col16,
1 col17, -- demand
p.order_type col18,
l_null_char col19,
p_sup_atp_info_rec.instance_id col20,
l_null_num col21,
TRANSACTION_ID col22,
l_null_num col23,
-- ship_rec_cal rearrange signs to get rid of multiply times -1
(NVL(p.implement_quantity,0) - p.new_order_quantity)*
DECODE(DECODE(G_HIERARCHY_PROFILE,
--2424357
1, DECODE(p.DEMAND_CLASS, null, null,
DECODE(l_demand_class, '-1',
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
null,
null,
p.inventory_item_id,
p.organization_id,
p.sr_instance_id,
trunc(Decode(p_sup_atp_info_rec.sup_cap_type, --4135752
1, p.new_ship_date,
p.new_dock_date
)),
l_level_id,
p.DEMAND_CLASS), p.DEMAND_CLASS)),
2, DECODE(p.CUSTOMER_ID, NULL, TO_CHAR(NULL),
0, TO_CHAR(NULL),
MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
p.CUSTOMER_ID,
p.SHIP_TO_SITE_ID,
p.inventory_item_id,
p.organization_id,
p.sr_instance_id,
trunc(Decode(p_sup_atp_info_rec.sup_cap_type, --4135752
1, p.new_ship_date,
p.new_dock_date
)),
l_level_id,
NULL))),
l_demand_class, 1,
NULL, NVL(MIHM.allocation_percent/100, --4365873
/*NULL, NVL(MSC_AATP_FUNC.Get_DC_Alloc_Percent(p.sr_instance_id,
p.inventory_item_id ,
p.organization_id,
null,
null,
l_demand_class,
trunc(Decode(p_sup_atp_info_rec.sup_cap_type, --4135752
1, p.new_ship_date,
p.new_dock_date
))),*/
1),
DECODE(MIHM.allocation_percent/100,
/*DECODE(MSC_AATP_FUNC.Get_DC_Alloc_Percent(p.sr_instance_id,
p.inventory_item_id,
p.organization_id,
null,
null,
l_demand_class,
trunc(Decode(p_sup_atp_info_rec.sup_cap_type, --4135752
1, p.new_ship_date,
p.new_dock_date
))),*/
NULL, 1,
0)) col24,
GREATEST(trunc(Decode(p_sup_atp_info_rec.sup_cap_type, --4135752
1, p.new_ship_date,
p.new_dock_date
)),l_sys_next_date) col25, --bug3333114
l_null_num col26,
-- Bug 2771075. For Planned Orders, we will populate transaction_id
-- in the disposition_name column to be consistent with Planning.
-- p.order_number col27,
DECODE(p.order_type, 5, to_char(p.transaction_id), p.order_number ) col27,
l_null_num col28,
l_null_num col29,
-- ship_rec_cal changes begin
l_sysdate,
G_USER_ID,
l_sysdate,
G_USER_ID,
G_USER_ID,
-- ship_rec_cal changes end
-- Unallocated_Quantity
-- ship_rec_cal rearrange signs to get rid of multiply times -1
(NVL(p.implement_quantity,0) - p.new_order_quantity)
-- Supplier Capacity (SCLT) Changes Begin
FROM msc_supplies p ,msc_item_hierarchy_mv MIHM
WHERE (p.order_type IN (5, 2)
OR (MSC_ATP_REQ.G_PURCHASE_ORDER_PREFERENCE = MSC_ATP_REQ.G_PROMISE_DATE
AND p.order_type = 1 AND p.promised_date IS NULL))
-- Supplier Capacity (SCLT) Accumulation Ignore Purchase Orders
-- WHERE p.order_type IN (5, 1, 2)
AND p.plan_id = p_sup_atp_info_rec.plan_id
AND p.sr_instance_id = p_sup_atp_info_rec.instance_id
AND p.inventory_item_id = p_sup_atp_info_rec.inventory_item_id
-- 1214694 AND p.organization_id = p_sup_atp_info_rec.organization_id
AND p.supplier_id = p_sup_atp_info_rec.supplier_id
AND NVL(p.supplier_site_id, -1) = NVL(p_sup_atp_info_rec.supplier_site_id, -1)
-- Exclude Cancelled Supplies 2460645
AND NVL(P.DISPOSITION_STATUS_TYPE, 1) <> 2 -- Bug 2460645
AND trunc(Decode(p_sup_atp_info_rec.sup_cap_type, 1, p.new_ship_date,p.new_dock_date)) --4055719--4135752
<= least(p_sup_atp_info_rec.last_cap_date,l_cutoff_date)
--4365873
AND p.INVENTORY_ITEM_ID = MIHM.INVENTORY_ITEM_ID(+)
AND p.SR_INSTANCE_ID = MIHM.SR_INSTANCE_ID (+)
AND p.ORGANIZATION_ID = MIHM.ORGANIZATION_ID (+)
--AND MIHM.level_id (+) = decode(G_HIERARCHY_PROFILE,1,-1 )
AND decode(MIHM.level_id (+),-1,1,2) = decode(G_HIERARCHY_PROFILE,1,1,2)
AND trunc(Decode(p_sup_atp_info_rec.sup_cap_type, 1, p.new_ship_date,p.new_dock_date)) >= MIHM.effective_date (+)
AND trunc(Decode(p_sup_atp_info_rec.sup_cap_type, 1, p.new_ship_date,p.new_dock_date)) <= MIHM.disable_date (+)
AND MIHM.demand_class (+) = l_demand_class
)
; -- dsting removed order by col25;
msc_sch_wb.atp_debug('Supplier_Alloc_Cum_Atp: ' || 'after insert into msc_atp_sd_details_temp');
IF (NVL(p_sup_atp_info_rec.insert_flag, 0) <>0)
AND (l_demand_class_tab(i) = p_sup_atp_info_rec.demand_class) THEN
l_temp_atp := l_current_atp;
IF (NVL(p_sup_atp_info_rec.insert_flag, 0) <>0) AND
(l_demand_class_tab(i) = p_sup_atp_info_rec.demand_class) THEN
FOR j in 1..l_current_atp.atp_qty.COUNT LOOP
IF l_current_atp.atp_qty(j) < l_temp_atp.atp_qty(j) THEN
-- this is the stealing quantity in that period
-- bug 1413459: the stealing quantity should be the current
-- period quantity (after backward consumption, after stealing)
-- minus the period quantity after backward consumption but
-- before the stealing
l_steal_period_quantity := l_current_atp.atp_qty(j) -
l_temp_atp.atp_qty(j);
END IF; -- IF (NVL(p_sup_atp_info_rec.insert_flag, 0) <>0) ....
IF NVL(p_sup_atp_info_rec.insert_flag, 0) <> 0 THEN
-- add one more entry to indicate infinite time fence date
-- and quantity.
x_atp_period.Cumulative_Quantity := x_atp_info.atp_qty;
SELECT allocation_rule_name, time_phase_id
INTO l_rule_name, l_time_phase
FROM msc_item_hierarchy_mv
WHERE inventory_item_id = p_inv_item_id
AND organization_id = p_org_id
AND sr_instance_id = p_instance_id
AND p_request_date between effective_date and disable_date
AND rownum = 1 ;
SELECT ma.priority, ma.allocation_percent/100, ma.level_id
INTO x_priority, x_alloc_percent, x_level_id
FROM msc_allocations ma
WHERE ma.demand_class = p_demand_class
AND ma.time_phase_id = l_time_phase
AND ma.level_id = -1;
SELECT ma.priority, ma.allocation_percent/100, ma.level_id
INTO x_priority, x_alloc_percent, x_level_id
FROM msc_allocations ma
WHERE ma.demand_class = p_demand_class
AND ma.time_phase_id = l_time_phase
AND ma.level_id <> -1;
SELECT DECODE(count(allocation_percent), 0, NULL, 0)
INTO x_alloc_percent
FROM msc_item_hierarchy_mv
WHERE inventory_item_id = p_inv_item_id
AND organization_id = p_org_id
AND sr_instance_id = p_instance_id
AND p_request_date between effective_date and disable_date
AND NVL(level_id, -1) = -1;
SELECT allocation_rule_name, time_phase_id
INTO l_rule_name, l_time_phase
FROM msc_resource_hierarchy_mv
WHERE department_id = p_dept_id
AND resource_id = p_res_id
AND organization_id = p_org_id
AND sr_instance_id = p_instance_id
AND p_request_date between effective_date and disable_date
AND rownum = 1 ;
SELECT ma.priority, ma.allocation_percent/100, ma.level_id
INTO x_priority, x_alloc_percent, x_level_id
FROM msc_allocations ma
WHERE ma.demand_class = p_demand_class
AND ma.time_phase_id = l_time_phase
AND ma.level_id = -1;
SELECT ma.priority, ma.allocation_percent/100, ma.level_id
INTO x_priority, x_alloc_percent, x_level_id
FROM msc_allocations ma
WHERE ma.demand_class = p_demand_class
AND ma.time_phase_id = l_time_phase
AND ma.level_id <> -1;
SELECT DECODE(count(allocation_percent), 0, NULL, 0)
INTO x_alloc_percent
FROM msc_resource_hierarchy_mv
WHERE department_id = p_dept_id
AND resource_id = p_res_id
AND organization_id = p_org_id
AND sr_instance_id = p_instance_id
AND p_request_date between effective_date and disable_date
AND NVL(level_id, -1) = -1;
SELECT MSC_CALENDAR.NEXT_WORK_DAY(p_organization_id,
p_instance_id, 1, TRUNC(sysdate))
INTO l_request_date
FROM dual;
--for the item. Set insert_flag = 1, for period atp details.
--Pass p_identifier = -1 to identify the call from this procedure,
--so as not to do any demand class consumption/ stealing.
IF p_demand_class IS NULL THEN
-- To get the total ATP, demand class is passed as NULL,
-- Pass p_scenario_id = -1 to identify the call for
-- toatl ATP and demand class to be null
-- Agilent Allocated ATP Based on Planning Details changes Begin
IF ((MSC_ATP_PVT.G_HIERARCHY_PROFILE <> 1) OR
((MSC_ATP_PVT.G_HIERARCHY_PROFILE = 1) AND
(MSC_ATP_PVT.G_ALLOCATION_METHOD <> 1))) THEN
-- Original Code
MSC_AATP_PVT.Item_Alloc_Cum_Atp(
l_plan_id,
0, --p_level(for top level item)
-1, --p_identifier
-1, --p_scenario_id - For total request
p_inventory_item_id,
p_organization_id,
p_instance_id,
p_demand_class,
l_request_date,
1, --p_insert_flag,
l_atp_info,
l_atp_period,
l_atp_supply_demand,
--diag_atp
l_get_mat_in_rec,
p_inventory_item_id, -- time_phased_atp passing p_inventory_item_id for compilation
NULL); -- time_phased_atp passing null for compilation
1, --p_insert_flag,
l_atp_info,
l_atp_period,
l_atp_supply_demand,
--diag_atp
l_get_mat_in_rec,
NULL, -- p_refresh_number - For summary enhancement - Allocation WB will not use summary
NULL, -- time_phased_atp - This procedure is not used
NULL); -- time_phased_atp - This procedure is not used
1, --p_insert_flag,
l_atp_info,
l_atp_period,
l_atp_supply_demand,
l_get_mat_in_rec,
NULL, -- p_refresh_number - For summary enhancement - Allocation WB will not use summary
p_inventory_item_id, -- time_phased_atp - Added for compilation
NULL); -- time_phased_atp - Added for compilation
1, --p_insert_flag,
l_atp_info,
l_atp_period,
l_atp_supply_demand,
--diag_atp
l_get_mat_in_rec,
p_inventory_item_id, -- time_phased_atp passing p_inventory_item_id for compilation
NULL); -- time_phased_atp passing null for compilation
SELECT min(mdr.plan_id) as plan_id
INTO l_plan_id
FROM msc_department_resources mdr,
msc_trading_partners tp,
msc_apps_instances ins,
msc_plans plans,
msc_designators desig
WHERE desig.inventory_atp_flag = 1
AND plans.compile_designator = desig.designator
AND plans.sr_instance_id = desig.sr_instance_id
AND plans.organization_id = desig.organization_id
AND plans.plan_completion_date is not null
AND plans.data_completion_date is not null
AND ins.instance_id = plans.sr_instance_id
AND ins.enable_flag = 1
AND tp.sr_tp_id = plans.organization_id
AND tp.sr_instance_id = plans.sr_instance_id
AND tp.partner_type = 3
AND mdr.plan_id = plans.plan_id
AND mdr.organization_id = p_organization_id
AND mdr.sr_instance_id = p_instance_id
AND mdr.resource_id = p_resource_id
AND mdr.department_id = p_department_id
-- AND mdr.demand_class = p_demand_class
group by mdr.organization_id, mdr.sr_instance_id,
mdr.resource_id, mdr.department_id;--, desig.demand_class;
--for the department/resource. Set insert_flag = 1, for period atp details.
--Pass p_identifier = -1 to identify the call from this procedure,
--so as not to do any demand class consumption/ stealing.
--resource bacting: find out if resource is batchable or not and the max capacity
BEGIN
SELECT batchable_flag, max_capacity, unit_of_measure, uom_class_type
INTO l_batchable_flag, l_max_capacity, l_res_uom, l_res_uom_type
FROM msc_department_resources
WHERE department_id = p_department_id
AND resource_id = p_resource_id
AND organization_id = p_organization_id
AND plan_id = l_plan_id
AND sr_instance_id = p_instance_id ;
SELECT conversion_rate
INTO l_res_conversion_rate
FROM msc_uom_conversions
WHERE inventory_item_id = 0
AND sr_instance_id = p_instance_id
AND UOM_CODE = l_res_uom;
1, --p_insert_flag
---resource batching
l_max_capacity,
l_batchable_flag,
l_res_conversion_rate,
l_res_uom_type,
l_atp_info,
l_atp_period,
l_atp_supply_demand);
1, --p_insert_flag
---resource batching
l_max_capacity,
l_batchable_flag,
l_res_conversion_rate,
l_res_uom_type,
l_atp_info,
l_atp_period,
l_atp_supply_demand);
--Call procedure to insert l_atp_period
--into mrp_atp_details_temp table.
MSC_ATP_UTILS.put_into_temp_table(
NULL, --x_dblink
p_session_id,
l_atp_rec,
l_atp_supply_demand,
l_atp_period,
l_atp_details,
l_mode,
x_return_status,
l_msg_data,
l_msg_count);
msc_sch_wb.atp_debug('View_Allocation: ' || ' Inserted supply demand records ');
msc_sch_wb.atp_debug('View_Allocation: ' || ' Inserted period records ');
l_atp_insert_rec MRP_ATP_PVT.AtpRec;
SELECT mv.priority, mv.level_id, mv.class, mv.partner_id
INTO l_priority, l_level_id, l_class, l_partner_id
FROM msc_item_hierarchy_mv mv
WHERE mv.inventory_item_id = l_item_to_use /* New allocation logic for time_phased_atp changes*/
AND mv.organization_id = p_atp_record.organization_id
AND mv.sr_instance_id = p_atp_record.instance_id
AND p_atp_record.requested_ship_date BETWEEN effective_date
AND disable_date
AND mv.demand_class = p_atp_record.demand_class
AND mv.level_id = -1;
SELECT mv.priority, mv.level_id, mv.class, mv.partner_id
INTO l_priority, l_level_id, l_class, l_partner_id
FROM msc_item_hierarchy_mv mv
WHERE mv.inventory_item_id = l_item_to_use /* New allocation logic for time_phased_atp changes*/
AND mv.organization_id = p_atp_record.organization_id
AND mv.sr_instance_id = p_atp_record.instance_id
AND p_atp_record.requested_ship_date BETWEEN effective_date
AND disable_date
AND mv.demand_class = p_atp_record.demand_class
AND mv.level_id <> -1;
SELECT mv.demand_class, mv.priority, mv.allocation_percent
BULK COLLECT INTO l_demand_class_tab_new, l_dmd_class_priority_tab_new, l_allocation_percent_tab --6359986
FROM msc_item_hierarchy_mv mv
WHERE mv.inventory_item_id = l_item_to_use -- time_phased_atp
AND mv.organization_id = p_atp_record.organization_id
AND mv.sr_instance_id = p_atp_record.instance_id
AND p_atp_record.requested_ship_date BETWEEN effective_date
AND disable_date
AND mv.priority > l_priority
AND mv.level_id = l_level_id
ORDER BY mv.priority asc , mv.allocation_percent desc ;
SELECT mv.demand_class, mv.priority, mv.allocation_percent
BULK COLLECT INTO l_demand_class_tab_new, l_dmd_class_priority_tab_new, l_allocation_percent_tab --6359986
FROM msc_item_hierarchy_mv mv
WHERE mv.inventory_item_id = l_item_to_use -- time_phased_atp
AND mv.organization_id = p_atp_record.organization_id
AND mv.sr_instance_id = p_atp_record.instance_id
AND p_atp_record.requested_ship_date BETWEEN effective_date
AND disable_date
AND mv.priority > l_priority
AND mv.level_id = l_level_id
ORDER BY mv.priority , mv.class ;
SELECT mv1.demand_class, mv1.priority, mv1.allocation_percent
BULK COLLECT INTO l_demand_class_tab_new, l_dmd_class_priority_tab_new,l_allocation_percent_tab --6359986
FROM msc_item_hierarchy_mv mv1
WHERE mv1.inventory_item_id = l_item_to_use -- time_phased_atp
AND mv1.organization_id = p_atp_record.organization_id
AND mv1.sr_instance_id = p_atp_record.instance_id
AND p_atp_record.requested_ship_date BETWEEN mv1.effective_date
AND mv1.disable_date
AND mv1.priority > l_priority
AND mv1.level_id = l_level_id
AND NOT (trunc(mv1.priority, -3) = trunc(l_priority, -3)
AND (mv1.class <> l_class))
-- ORDER BY mv1.priority asc, mv1.allocation_percent desc;
SELECT mv1.demand_class, mv1.priority, mv1.allocation_percent
BULK COLLECT INTO l_demand_class_tab_new, l_dmd_class_priority_tab_new,l_allocation_percent_tab --6359986
FROM msc_item_hierarchy_mv mv1
WHERE mv1.inventory_item_id = l_item_to_use -- time_phased_atp
AND mv1.organization_id = p_atp_record.organization_id
AND mv1.sr_instance_id = p_atp_record.instance_id
AND p_atp_record.requested_ship_date BETWEEN mv1.effective_date
AND mv1.disable_date
AND mv1.priority > l_priority
AND mv1.level_id = l_level_id
AND NOT (trunc(mv1.priority, -3) = trunc(l_priority, -3)
AND (mv1.class <> l_class))
AND NOT (trunc(mv1.priority, -2) = trunc(l_priority, -2)
AND (mv1.class = l_class)
AND (mv1.partner_id <> l_partner_id))
-- ORDER BY mv1.priority asc, mv1.allocation_percent desc;
l_mat_atp_info_rec.insert_flag := p_atp_record.insert_flag;
IF p_atp_record.insert_flag <> 0 THEN
MSC_ATP_DB_UTILS.move_SD_temp_into_mrp_details(l_atp_pegging_id,
MSC_ATP_PVT.G_DEMAND_PEGGING_ID);