[Home] [Help]
PACKAGE BODY: APPS.AS_FOUNDATION_PUB
Source
1 PACKAGE BODY AS_FOUNDATION_PUB as
2 /* $Header: asxpfoub.pls 120.1 2005/06/05 22:52:17 appldev $ */
3 --
4 -- NAME
5 -- AS_FOUNDATION_PUB
6 --
7 -- HISTORY
8 -- 8/06/98 ALHUNG CREATED
9 -- Sept 1, 98 cklee Added new function Get_Constant
10 -- 06/22/99 awu Added get_messages and get_periodNames
11 -- 6/29/2000 Srikanth deleted get_messages as it was implemented in as_utility_pub
12
13 G_PKG_NAME CONSTANT VARCHAR2(30):='AS_FOUNDATION_PUB';
14 G_FILE_NAME CONSTANT VARCHAR2(12):='asxpfoub.pls';
15 --G_USER_ID NUMBER := FND_GLOBAL.User_Id;
16
17
18 PROCEDURE Get_inventory_items( p_api_version_number IN NUMBER,
19 p_init_msg_list IN VARCHAR2
20 := FND_API.G_FALSE,
21 p_identity_salesforce_id IN NUMBER,
22 p_inventory_item_rec IN AS_FOUNDATION_PUB.Inventory_Item_REC_TYPE,
23 x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
24 x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER,
25 x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
26 x_inventory_item_tbl OUT NOCOPY /* file.sql.39 change */ AS_FOUNDATION_PUB.inventory_item_TBL_TYPE) IS
27
28
29
30
31 -- Local API Variables
32 l_api_name CONSTANT VARCHAR2(30) := 'Get_inventory_items';
33 l_api_version_number CONSTANT NUMBER := 2.0;
34
35 -- Local Identity Variables
36
37 l_identity_sales_member_rec AS_SALES_MEMBER_PUB.Sales_member_rec_Type;
38
39 -- Locat tmp Variables
40 l_inventory_item_rec AS_FOUNDATION_PUB.inventory_item_Rec_Type;
41
42 -- Local record index
43 l_cur_index Number := 0;
44
45 -- Local return statuses
46 l_return_status Varchar2(1);
47
48 BEGIN
49 -- Standard call to check for call compatibility.
50 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
51 p_api_version_number,
52 l_api_name,
53 G_PKG_NAME)
54 THEN
55 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
56 END IF;
57
58
59 -- Initialize message list if p_init_msg_list is set to TRUE.
60 IF FND_API.to_Boolean( p_init_msg_list ) THEN
61 FND_MSG_PUB.initialize;
62 END IF;
63
64 -- Debug Message
65 -- IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW)
66 --THEN
67 --dbms_output.put_line('AS_FOUNDATION_PUB.Get_inventory_items: Start');
68 --END IF;
69
70 -- Initialize API return status to success
71 x_return_status := FND_API.G_RET_STS_SUCCESS;
72
73
74 -- API BODY
75
76 AS_FOUNDATION_PVT.Get_inventory_items( p_api_version_number => 2.0,
77 p_init_msg_list => FND_API.G_FALSE,
78 p_identity_salesforce_id => p_identity_salesforce_id,
79 p_inventory_item_rec => p_inventory_item_rec,
80 x_return_status => l_return_status,
81 x_msg_count => x_msg_count,
82 x_msg_data => x_msg_data,
83 x_inventory_item_tbl => x_inventory_item_tbl);
84
85
86 IF (l_return_status <> FND_API.G_RET_STS_SUCCESS) Then
87 RAISE FND_API.G_EXC_ERROR;
88 End if;
89
90 -- API Ending
91
92 x_return_status := FND_API.G_RET_STS_SUCCESS;
93
94 -- Success Message
95 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_SUCCESS)
96 THEN
97 FND_MESSAGE.Set_Name('AS', 'API_SUCCESS');
98 FND_MESSAGE.Set_Token('ROW', 'AS_Foundation', TRUE);
99 FND_MSG_PUB.Add;
100 END IF;
101
102
103 -- Debug Message
104 --IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW)
105 --THEN
106 --dbms_output.put_line('AS_FOUNDATION_PUB.Get_inventory_items: End');
107 --END IF;
108
109 -- Standard call to get message count and if count is 1, get message info.
110 FND_MSG_PUB.Count_And_Get
111 ( p_count => x_msg_count,
112 p_data => x_msg_data
113 );
114
115
116 EXCEPTION
117
118 WHEN FND_API.G_EXC_ERROR THEN
119
120 x_return_status := FND_API.G_RET_STS_ERROR ;
121
122 FND_MSG_PUB.Count_And_Get
123 ( p_count => x_msg_count,
124 p_data => x_msg_data
125 );
126
127
128 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
129
130 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
131
132 FND_MSG_PUB.Count_And_Get
133 ( p_count => x_msg_count,
134 p_data => x_msg_data
135 );
136
137
138 WHEN OTHERS THEN
139
140
141 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
142
143 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR )
144 THEN
145 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
146 END IF;
147
148 FND_MSG_PUB.Count_And_Get
149 ( p_count => x_msg_count,
150 p_data => x_msg_data
151 );
152
153
154 End Get_inventory_items;
155
156 --
157 -- NAME
158 -- Get_FND_API_Constant
159 --
160 -- PURPOSE
161 -- This function will return constant according to the passed in constant name.
162 -- This is a problem referencing constants from forms. We have to create server-
163 -- side function that return these values.
164 --
165 -- NOTES
166 --
167 FUNCTION Get_Constant(Constant_Name varchar2)
168 return varchar2
169 IS
170 BEGIN
171
172 if upper(Constant_Name) = 'FND_API.G_TRUE' then
173 return FND_API.G_TRUE;
174 elsif upper(Constant_Name) = 'FND_API.G_VALID_LEVEL_FULL' then
175 return FND_API.G_VALID_LEVEL_FULL;
176 elsif upper(Constant_Name) = 'FND_API.G_VALID_LEVEL_NONE' then
177 return FND_API.G_VALID_LEVEL_NONE;
178 -- elsif upper(Constant_Name) = 'CS_INTERACTION_GRP.G_VALID_LEVEL_INT' then
179 -- return CS_INTERACTION_GRP.G_VALID_LEVEL_INT; -- Commented OUT NOCOPY /* file.sql.39 change */ by Twzhou on March 07, 2000
180 else
181 return null;
182 end if;
183
184 EXCEPTION
185 When OTHERS then
186 NULL;
187 END;
188
189 PROCEDURE Calculate_Amount( p_api_version_number IN NUMBER,
190 p_init_msg_list IN VARCHAR2 DEFAULT FND_API.G_FALSE,
191 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
192 p_identity_salesforce_id IN NUMBER,
193 p_inventory_item_rec IN AS_FOUNDATION_PUB.Inventory_Item_REC_TYPE
194 DEFAULT AS_FOUNDATION_PUB.G_MISS_INVENTORY_ITEM_REC,
195 p_secondary_interest_code_id IN NUMBER DEFAULT FND_API.G_MISS_NUM,
196 p_currency_code IN VARCHAR2,
197 p_volume IN NUMBER,
198 x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
199 x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER,
200 x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
201 x_amount OUT NOCOPY /* file.sql.39 change */ NUMBER) IS
202
203 -- Local API Variables
204 l_api_name CONSTANT VARCHAR2(30) := 'Calculate_Amount';
205 l_api_version_number CONSTANT NUMBER := 2.0;
206
207 l_inv_item_tbl AS_FOUNDATION_PUB.Inventory_Item_tbl_type;
208 l_price_list_id NUMBER;
209 l_price NUMBER;
210 l_amount NUMBER;
211 BEGIN
212 -- Standard call to check for call compatibility.
213 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
214 p_api_version_number,
215 l_api_name,
216 G_PKG_NAME) THEN
217 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
218 END IF;
219
220 -- Initialize message list if p_init_msg_list is set to TRUE.
221 IF FND_API.to_Boolean( p_init_msg_list ) THEN
222 FND_MSG_PUB.initialize;
223 END IF;
224
225 -- Debug Message
226 --IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW) THEN
227 --dbms_output.put_line('AS_Foundation_PUB.Calculate_Amount: Start');
228 --END IF;
229
230 -- Initialize API return status to success
231 x_return_status := FND_API.G_RET_STS_SUCCESS;
232 -- Fix bug 858155 initialize the l_price to NULL instead of 0
233 l_price := NULL;
234 IF (p_inventory_item_rec.inventory_item_id IS NOT NULL) AND
235 (p_inventory_item_rec.inventory_item_id <> FND_API.G_MISS_NUM) THEN
236 AS_FOUNDATION_PUB.Get_Inventory_items(
237 p_api_version_number => 2.0,
238 p_init_msg_list => FND_API.G_TRUE,
239 p_identity_salesforce_id => NULL,
240 p_inventory_item_rec => p_inventory_item_rec,
241 x_return_status => x_return_status,
242 x_msg_count => x_msg_count,
243 x_msg_data => x_msg_data,
244 x_inventory_item_tbl => l_inv_item_tbl);
245 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
246 --IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW) THEN
247 --dbms_output.put_line('AS_FOUNDATION_PUB - Item : Not Found');
248 --END IF;
249 raise FND_API.G_EXC_ERROR;
250 END IF;
251 IF (p_inventory_item_rec.Primary_UOM_Code IS NOT NULL) THEN
252 l_inv_item_tbl(1).Primary_UOM_Code := p_inventory_item_rec.Primary_UOM_Code;
253 END IF;
254 -- Debug Message
255 -- IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW) THEN
256 --dbms_output.put_line('AS_Foundation_PVT - UOM:' || p_inventory_item_rec.Primary_Uom_Code);
257 --END IF;
258 AS_FOUNDATION_PVT.Get_Price_Info(p_api_version_number => 2.0,
259 p_init_msg_list => FND_API.G_FALSE,
260 p_inventory_item_rec => l_inv_item_tbl(1),
261 p_secondary_interest_code_id => NULL,
262 p_currency_code => p_currency_code,
263 x_return_status => x_return_status,
264 x_msg_count => x_msg_count,
265 x_msg_data => x_msg_data,
266 x_price_list_id => l_price_list_id,
267 x_price => l_price);
268 Elsif (p_secondary_interest_code_id IS NOT NULL) AND
269 (p_secondary_interest_code_id <> FND_API.G_MISS_NUM) THEN
270 AS_FOUNDATION_PVT.Get_Price_Info(p_api_version_number => 2.0,
271 p_init_msg_list => FND_API.G_FALSE,
272 p_inventory_item_rec => NULL,
273 p_secondary_interest_code_id => p_secondary_interest_code_id,
274 p_currency_code => p_currency_code,
275 x_return_status => x_return_status,
276 x_msg_count => x_msg_count,
277 x_msg_data => x_msg_data,
278 x_price_list_id => l_price_list_id,
279 x_price => l_price);
280 END IF;
281 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
282 -- IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW) THEN
283 --dbms_output.put_line('AS_FOUNDATION_PUB - Price : Not Found');
284 --END IF;
285 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
286 FND_MESSAGE.Set_Name('AS', 'API_MISSING_ID');
287 FND_MESSAGE.Set_Token('COLUMN','Price', FALSE);
288 FND_MSG_PUB.ADD;
289 END IF;
290 raise FND_API.G_EXC_ERROR;
291 END IF;
292 -- Fix bug 858155
293 IF l_price IS NULL THEN
294 l_amount := NULL;
295 ELSE
296 l_amount := p_volume * l_price;
297 END IF;
298 -- IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW) THEN
299 --dbms_output.put_line('AS_Foundation_PUB - Amount: ' || to_char(l_amount));
300 --END IF;
301 x_amount := l_amount;
302 -- Success Message
303 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_SUCCESS) THEN
304 FND_MESSAGE.Set_Name('AS', 'API_SUCCESS');
305 FND_MESSAGE.Set_Token('ROW', 'AS_Foundation', TRUE);
306 FND_MSG_PUB.Add;
307 END IF;
308
309 -- Debug Message
310 -- IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW) THEN
311 --dbms_output.put_line('AS_Foundation_PUB.Calculate_Amount: End');
312 --END IF;
313
314 -- Standard call to get message count and if count is 1, get message info.
315 FND_MSG_PUB.Count_And_Get
316 ( p_count => x_msg_count,
317 p_data => x_msg_data
318 );
319
320 EXCEPTION
321 WHEN FND_API.G_EXC_ERROR THEN
322 x_return_status := FND_API.G_RET_STS_ERROR ;
323 FND_MSG_PUB.Count_And_Get
324 ( p_count => x_msg_count,
325 p_data => x_msg_data
326 );
327 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
328 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
329 FND_MSG_PUB.Count_And_Get
330 ( p_count => x_msg_count,
331 p_data => x_msg_data
332 );
333 WHEN NO_DATA_FOUND THEN
334 x_return_status := FND_API.G_RET_STS_ERROR ;
338 --END IF;
335 -- IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW)
336 --THEN
337 --dbms_output.put_line('AS_Foundation_PUB. - Cannot Find Price List Id');
339 FND_MSG_PUB.Count_And_Get
340 ( p_count => x_msg_count,
341 p_data => x_msg_data
342 );
343 WHEN OTHERS THEN
344 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
345 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR )
346 THEN
347 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
348 END IF;
349 FND_MSG_PUB.Count_And_Get
350 ( p_count => x_msg_count,
351 p_data => x_msg_data
352 );
353 END Calculate_Amount;
354
355 PROCEDURE Get_PeriodNames
356 ( p_api_version_number IN NUMBER,
357 p_init_msg_list IN VARCHAR2
358 := FND_API.G_FALSE,
359 p_period_rec IN UTIL_PERIOD_REC_TYPE,
360 x_period_tbl OUT NOCOPY /* file.sql.39 change */ UTIL_PERIOD_TBL_TYPE,
361 x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
362 x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER,
363 x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
364 ) IS
365 l_api_name CONSTANT VARCHAR2(30) := 'Get_PeriodNames';
366 l_api_version_number CONSTANT NUMBER := 2.0;
367 l_period_rec_in AS_FOUNDATION_PVT.UTIL_PERIOD_REC_TYPE;
368 l_period_tbl AS_FOUNDATION_PVT.UTIL_PERIOD_TBL_TYPE;
369
370 begin
371 -- Standard call to check for call compatibility.
372 IF NOT FND_API.Compatible_API_Call (l_api_version_number,
373 p_api_version_number,
374 l_api_name,
375 G_PKG_NAME)
376 THEN
377 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
378 THEN
379 FND_MESSAGE.Set_Name('AS', 'API_UNEXP_ERROR_IN_PROCESSING');
380 FND_MESSAGE.Set_Token('ROW', 'AS_ACCESSES', TRUE);
381 FND_MSG_PUB.ADD;
382 END IF;
383 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
384 END IF;
385
386 -- Initialize message list if p_init_msg_list is set to TRUE.
387 IF FND_API.to_Boolean( p_init_msg_list )
388 THEN
389 FND_MSG_PUB.initialize;
390 END IF;
391
392 -- Initialize API return status to success
393 --
394 x_return_status := FND_API.G_RET_STS_SUCCESS;
395
396 --
397 -- API body
398 --
399
400 -- Validate Environment
401
402 IF FND_GLOBAL.User_Id IS NULL
403 THEN
404 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
405 THEN
406 FND_MESSAGE.Set_Name('AS', 'UT_CANNOT_GET_PROFILE_VALUE');
407 FND_MESSAGE.Set_Token('PROFILE', 'USER_ID', FALSE);
408 FND_MSG_PUB.ADD;
409 END IF;
410 END IF;
411
412 l_period_rec_in.period_name := p_period_rec.period_name;
413 l_period_rec_in.start_date := p_period_rec.start_date;
414 l_period_rec_in.end_date := p_period_rec.end_date;
415
416 as_foundation_pvt.Get_PeriodNames
417 ( p_api_version_number => l_api_version_number,
418 p_init_msg_list => FND_API.G_FALSE,
419 p_validation_level => FND_API.G_VALID_LEVEL_FULL,
420 p_period_rec => l_period_rec_in,
421 x_period_tbl => l_period_tbl,
422 x_return_status => x_return_status,
423 x_msg_count => x_msg_count,
424 x_msg_data => x_msg_data);
425
426
427 EXCEPTION
428
429 WHEN FND_API.G_EXC_ERROR THEN
430
431 x_return_status := FND_API.G_RET_STS_ERROR ;
432
433 FND_MSG_PUB.Count_And_Get
434 ( p_count => x_msg_count,
435 p_data => x_msg_data
436 );
437
438
439 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
440
441 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
442
443 FND_MSG_PUB.Count_And_Get
444 ( p_count => x_msg_count,
445 p_data => x_msg_data
446 );
447
448
449 WHEN OTHERS THEN
450
451
452 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
453
454 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR )
455 THEN
456 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
457 END IF;
458
459 FND_MSG_PUB.Count_And_Get
460 ( p_count => x_msg_count,
461 p_data => x_msg_data
462 );
463
464 end get_periodNames;
465
466
467 END AS_FOUNDATION_PUB;