DBA Data[Home] [Help]

PACKAGE BODY: APPS.OE_CAT_RESULTS_PUB

Source


1 PACKAGE BODY OE_CAT_RESULTS_PUB AS
2 /* $Header: OEXCATRB.pls 115.3 2000/10/02 13:47:03 pkm ship      $ */
3 
4 G_STATUS VARCHAR2(240);
5 G_AVAILABLE_QUANTITY NUMBER;
6 G_AVAILABLE_DATE DATE;
7 G_FUTURE_QUANTITY NUMBER;
8 G_SERIAL_NUMBER NUMBER;
9 
10 
11 G_PRICING_STATUS VARCHAR2(240) := 'S';
12 G_CUSTOMER_PRICE NUMBER(15,2) := 0;
13 G_LIST_PRICE NUMBER(15,2) := 0;
14 
15 PROCEDURE Check_Availability (
16 p_calling_module IN VARCHAR2,
17 p_inventory_item_id IN NUMBER,
18 p_organization_id IN NUMBER,
19 p_customer_id IN NUMBER,
20 p_customer_site_id IN NUMBER,
21 p_uom IN VARCHAR2,
22 p_pricelist_id IN VARCHAR2,
23 p_input_quantity IN NUMBER ,
24 p_need_by_date IN VARCHAR2,
25 p_vendor_item_number IN VARCHAR2,
26 p_currency_code IN VARCHAR2,
27 x_return_status OUT VARCHAR2,
28 x_pocall_status OUT VARCHAR2,
29 x_available_qty OUT NUMBER,
30 x_available_date OUT DATE,
31 x_customer_price OUT NUMBER,
32 x_list_price OUT NUMBER,
33 x_pricing_status OUT VARCHAR2
34 ) IS
35 
36 BEGIN
37 
38 
39 Get_Availability(p_inventory_item_id, p_input_quantity,p_organization_id,p_customer_id,
40 p_customer_site_id,p_uom,p_need_by_date );
41 
42 if (p_calling_module <> 'EnterOrder') then
43     OE_CATALOG_PRICING_PUB.Get_Pricing(p_inventory_item_id,g_available_quantity,p_uom,p_pricelist_id,p_customer_id,p_currency_code,p_need_by_date, g_pricing_status, g_customer_price, g_list_price);
44 end if;
45 
46 x_return_status := g_status;
47 x_pocall_status := 'S';
48 x_available_qty := G_AVAILABLE_QUANTITY;
49 x_available_date := G_AVAILABLE_DATE;
50 x_customer_price := g_customer_price;
51 x_list_price := g_list_price;
52 x_pricing_status := g_pricing_status;
53 END;
54 
55 
56 PROCEDURE Get_Availability (
57 p_inventory_item_id IN NUMBER ,
58 p_input_quantity IN NUMBER,
59 p_organization_id IN NUMBER,
60 p_customer_id IN NUMBER,
61 p_customer_site_id IN NUMBER,
62 p_uom IN VARCHAR2,
63 p_need_by_date IN VARCHAR2
64 ) IS
65 
66 p_atp_table		MRP_ATP_PUB.ATP_Rec_Typ;
67 p_instance_id	     integer := -1;
68 p_session_id        number := 1;
69 x_atp_table		MRP_ATP_PUB.ATP_Rec_Typ;
70 x_atp_supply_demand	MRP_ATP_PUB.ATP_Supply_Demand_Typ;
71 x_atp_period        MRP_ATP_PUB.ATP_Period_Typ;
72 x_atp_details       MRP_ATP_PUB.ATP_Details_Typ;
73 x_return_status     VARCHAR2(1);
74 x_msg_data          VARCHAR2(200);
75 x_msg_count         NUMBER;
76 i number ;
77 
78 BEGIN
79 
80 p_atp_table.Inventory_Item_Id := MRP_ATP_PUB.number_arr(p_inventory_item_id);
81 p_atp_table.Source_Organization_Id := MRP_ATP_PUB.number_arr(p_organization_id);
82 p_atp_table.Identifier := MRP_ATP_PUB.number_arr(11);
83 p_atp_table.Calling_Module := MRP_ATP_PUB.number_arr(660);
84 p_atp_table.Customer_Id := MRP_ATP_PUB.number_arr(p_customer_id);
85 p_atp_table.Customer_Site_Id := MRP_ATP_PUB.number_arr(p_customer_site_id);
86 p_atp_table.Destination_Time_Zone := MRP_ATP_PUB.char30_arr(null);
87 p_atp_table.Quantity_Ordered := MRP_ATP_PUB.number_arr(p_input_quantity);
88 p_atp_table.Quantity_UOM := MRP_ATP_PUB.char3_arr(p_uom);
89 p_atp_table.Requested_Ship_Date := MRP_ATP_PUB.date_arr(null);
90 p_atp_table.Requested_Arrival_Date := MRP_ATP_PUB.date_arr(to_date(p_need_by_date,'DD-MON-YYYY'));
91 p_atp_table.Latest_Acceptable_Date := MRP_ATP_PUB.date_arr(to_date(p_need_by_date,'DD-MON-YYYY'));
92 p_atp_table.Delivery_Lead_Time := MRP_ATP_PUB.number_arr(null);
93 p_atp_table.Freight_Carrier :=  MRP_ATP_PUB.char30_arr(null);
94 p_atp_table.Ship_Method :=  MRP_ATP_PUB.char30_arr(null);
95 p_atp_table.Demand_Class :=  MRP_ATP_PUB.char30_arr(null);
96 p_atp_table.Ship_Set_Name :=  MRP_ATP_PUB.char30_arr(null);
97 p_atp_table.Arrival_Set_Name :=  MRP_ATP_PUB.char30_arr(null);
98 p_atp_table.Override_Flag :=  MRP_ATP_PUB.char1_arr(null);
99 p_atp_table.Action :=  MRP_ATP_PUB.number_arr(100);
100 p_atp_table.Ship_Date := MRP_ATP_PUB.date_arr(null);
101 p_atp_table.Available_Quantity := MRP_ATP_PUB.number_arr(null);
102 p_atp_table.Requested_Date_Quantity := MRP_ATP_PUB.number_arr(null);
103 p_atp_table.Group_Ship_Date := MRP_ATP_PUB.date_arr(null);
104 p_atp_table.Vendor_Id := MRP_ATP_PUB.number_arr(null);
105 p_atp_table.Vendor_Site_Id := MRP_ATP_PUB.number_arr(null);
106 p_atp_table.Insert_Flag := MRP_ATP_PUB.number_arr(null);
107 p_atp_table.Error_Code := MRP_ATP_PUB.number_arr(null);
108 p_atp_table.Message := MRP_ATP_PUB.char2000_arr(null);
109 
110 -- call atp module
111 MRP_ATP_PUB.Call_ATP(
112 p_session_id,
113 p_atp_table,
114 x_atp_table,
115 x_atp_supply_demand,
116 x_atp_period,
117 x_atp_details,
118 x_return_status,
119 x_msg_data,
120 x_msg_count);
121 
122 IF x_atp_table.Error_Code(1) = 0 OR x_atp_table.Error_Code(1) = 61 THEN
123 
124   g_available_quantity := p_input_quantity;
125   g_available_date := to_date(p_need_by_date,'DD-MON-YYYY');
126   g_status := 'Available';
127 
128 ELSE
129 
130  BEGIN
131    select meaning
132    into g_status
133    from mfg_lookups
134    where lookup_type = 'MTL_DEMAND_INTERFACE_ERRORS' and
135    lookup_code = x_atp_table.Error_Code(1);
136  EXCEPTION
137  when others then
138    g_status := 'Error retreiving Message from Database';
139 
140  END;
141 
142  g_available_quantity := to_char(x_atp_table.Requested_Date_Quantity(1));
143  g_available_date := to_char(x_atp_table.Ship_Date(1));
144  g_future_quantity := p_input_quantity - to_char(x_atp_table.Requested_Date_Quantity(1));
145 END IF;
146 
147 END Get_Availability;
148 
149 
150 END OE_CAT_RESULTS_PUB ;