[Home] [Help]
PACKAGE BODY: APPS.ASO_SERVICE_CONTRACTS_INT
Source
1 PACKAGE BODY ASO_service_contracts_INT as
2 /* $Header: asoioksb.pls 120.2 2005/10/21 18:12:48 skulkarn ship $ */
3 -- Start of Comments
4 -- Package name : ASO_service_contracts_INT
5 -- Purpose :
6 -- History :
7 -- 10/18/2002 hyang - 2633507 performance fix
8 -- 10/21/2002 hyang - fix GSSC warning about default parameter values
9 -- NOTE :
10 -- End of Comments
11
12 G_PKG_NAME CONSTANT VARCHAR2(30):= 'ASO_service_contracts_INT';
13 G_FILE_NAME CONSTANT VARCHAR2(12) := 'asoioksb.pls';
14
15 G_USER_ID NUMBER := FND_GLOBAL.USER_ID;
16 G_LOGIN_ID NUMBER := FND_GLOBAL.CONC_LOGIN_ID;
17
18 Procedure Get_service_attributes
19 (
20 P_Api_Version_Number IN Number,
21 P_init_msg_list IN Varchar2 := FND_API.G_FALSE,
22 P_Qte_Line_Rec IN ASO_QUOTE_PUB.Qte_Line_Rec_Type,
23 P_Qte_Line_Dtl_tbl IN ASO_QUOTE_PUB.Qte_Line_Dtl_tbl_Type,
24 X_msg_Count OUT NOCOPY /* file.sql.39 change */ Number,
25 X_msg_Data OUT NOCOPY /* file.sql.39 change */ Varchar2,
26 X_Return_Status OUT NOCOPY /* file.sql.39 change */ Varchar2
27 )
28 IS
29
30 /* 2633507 - hyang: using cursor variable and base table */
31 CURSOR C_item1(inv1 NUMBER, lc_organization_id NUMBER) IS
32 select SERVICEABLE_PRODUCT_FLAG
33 from MTL_SYSTEM_ITEMS_B
34 where inventory_item_id = inv1
35 and organization_id = lc_organization_id;
36 CURSOR C_qln(c_qln_id NUMBER) IS
37 SELECT b.inventory_item_id,b.organization_id,a.cust_account_id
38 FROM aso_quote_headers_all a,aso_quote_lines_all b
39 WHERE b.quote_line_id = c_qln_id and
40 a.quote_header_id=b.quote_header_id;
41 CURSOR C_get_cust IS
42 SELECT cust_account_id
43 FROM aso_quote_headers_all
44 WHERE quote_header_id= P_Qte_Line_Rec.quote_header_id;
45 /*
46 CURSOR C_cs_item(cs_prd_id NUMBER) IS
47 SELECT a.inventory_item_id
48 FROM
49 CS_CUSTOMER_PRODUCTS_All a, mtl_system_items_kfv b
50 WHERE a.inventory_item_id = b.inventory_item_id
51 AND a.customer_product_id = cs_prd_id
52 AND b.organization_id = ( SELECT cs_std.get_item_valdn_orgzn_id FROM DUAL ) ;
53 */
54
55 CURSOR C_cs_item(p_instance_id NUMBER, cs_org_id NUMBER) IS
56 SELECT a.inventory_item_id
57 FROM
58 csi_item_instances a, mtl_system_items_b b
59 WHERE a.inventory_item_id = b.inventory_item_id
60 AND a.instance_id = p_instance_id
61 AND b.organization_id = cs_org_id ;
62
63 CURSOR C_ord_item(ord_line_id NUMBER) IS
64 SELECT inventory_item_id
65 FROM oe_order_lines_All
66 WHERE line_id=ord_line_id;
67 CURSOR C_cust_id (Quote_hd_id NUMBER)IS
68 SELECT cust_account_id
69 FROM aso_quote_headers_all
70 WHERE quote_header_id= Quote_hd_id;
71 l_api_version_number NUMBER := 1.0;
72 l_api_name VARCHAR2(50) := 'Get_service_attributes';
73 l_inventory_item_id NUMBER ;
74 l_organization_id NUMBER;
75 l_cust_account_id NUMBER;
76 l_serviceable_flag VARCHAR2(1);
77 l_check_service_rec ASO_SERVICE_CONTRACTS_INT.CHECK_SERVICE_REC_TYPE;
78 l_Available_YN VARCHAR2(1);
79 l_cs_org_id number;
80 BEGIN
81 -- Standard Start of API savepoint
82 SAVEPOINT GET_SERVICE_ATTRIBUTES_PVT;
83
84 aso_debug_pub.g_debug_flag := nvl(fnd_profile.value('ASO_ENABLE_DEBUG'),'N');
85
86 -- Standard call to check for call compatibility.
87 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
88 p_api_version_number,
89 l_api_name,
90 G_PKG_NAME)
91 THEN
92 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
93 END IF;
94
95
96 -- Initialize message list if p_init_msg_list is set to TRUE.
97 IF FND_API.to_Boolean( p_init_msg_list )
98 THEN
99 FND_MSG_PUB.initialize;
100 END IF;
101
102 -- Debug Message
103
104 -- Initialize API return status to SUCCESS
105 x_return_status := FND_API.G_RET_STS_SUCCESS;
106
107 --
108 -- API body
109 --
110
111 -- ******************************************************************
112 -- Validate Environment
113 -- ******************************************************************
114 IF FND_GLOBAL.User_Id IS NULL
115 THEN
116 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
117 THEN
118 FND_MESSAGE.Set_Name(' + appShortName +', 'UT_CANNOT_GET_PROFILE_VALUE');
119 FND_MESSAGE.Set_Token('PROFILE', 'USER_ID', FALSE);
120 FND_MSG_PUB.ADD;
121 END IF;
122 RAISE FND_API.G_EXC_ERROR;
123 END IF;
124 OPEN C_cust_id(P_Qte_Line_rec.quote_header_id);
125 FETCH C_cust_id INTO l_cust_account_id;
126
127 IF aso_debug_pub.g_debug_flag = 'Y' THEN
128 aso_debug_pub.add('Get Service Attr: cust Acct id'||l_cust_account_id);
129 END IF;
130
131 IF C_cust_id%NOTFOUND THEN
132 l_cust_account_id := NULL;
133 END IF;
134 CLOSE C_cust_id;
135
136 FOR i in 1..P_Qte_Line_Dtl_tbl.count LOOP
137 IF P_Qte_Line_Dtl_tbl(i).SERVICE_REF_TYPE_CODE = 'QUOTE' THEN
138 OPEN C_qln( P_Qte_Line_Dtl_tbl(i).service_ref_line_id);
139 FETCH C_qln INTO l_inventory_item_id,l_organization_id,l_cust_account_id;
140
141 IF aso_debug_pub.g_debug_flag = 'Y' THEN
142
143 aso_debug_pub.add('Get Service Attr:ref code QUOTE inv id '||l_inventory_item_id, 1, 'Y');
144 aso_debug_pub.add('Get Service Attr:ref code QUOTE orgnization id '||l_organization_id , 1, 'Y');
145 aso_debug_pub.add('Get Service Attr:ref code QUOTE cust id '||l_cust_account_id, 1, 'Y');
146
147 END IF;
148
149 IF C_qln%NOTFOUND THEN
150 CLOSE C_qln;
151 x_return_status := FND_API.G_RET_STS_ERROR;
152 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
153 FND_MESSAGE.Set_Name('ASO', 'ASO_API_MISSING_INFO');
154 FND_MESSAGE.Set_Token('COLUMN','SERVICE_REF_LINE_ID', FALSE);
155 FND_MSG_PUB.Add;
156 END IF;
157 raise FND_API.G_EXC_ERROR;
158 ELSE
159 CLOSE C_qln;
160 OPEN C_item1( l_inventory_item_id,l_organization_id);
161 FETCH C_item1 INTO l_serviceable_flag;
162
163 IF aso_debug_pub.g_debug_flag = 'Y' THEN
164 aso_debug_pub.add('Get Service Attr:ref code QUOTE serviceable flag '||l_serviceable_flag, 1, 'Y');
165 END IF;
166
167 IF C_item1%NOTFOUND OR l_serviceable_flag <> 'Y' THEN
168 CLOSE C_item1;
169 x_return_status := FND_API.G_RET_STS_ERROR;
170 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
171 FND_MESSAGE.Set_Name('ASO', 'ASO_API_MISSING_SRV_INFO1');
172 --FND_MESSAGE.Set_Token('COLUMN','SERVICE_REF_LINE_ID', FALSE);
173 FND_MSG_PUB.Add;
174 END IF;
175 raise FND_API.G_EXC_ERROR;
176
177 END IF;
178 CLOSE C_item1;
179
180 IF aso_debug_pub.g_debug_flag = 'Y' THEN
181
182 aso_debug_pub.add('Get Service Attr:product_item_id '||l_inventory_item_id, 1, 'Y');
183 aso_debug_pub.add('Get Service Attr:service_item_id '||P_Qte_Line_rec.inventory_item_id, 1, 'Y');
184 aso_debug_pub.add('Get Service Attr:customer_id '||l_cust_account_id, 1, 'Y');
185
186 END IF;
187
188 l_check_service_rec.product_item_id := l_inventory_item_id;
189 l_check_service_rec.service_item_id := P_Qte_Line_rec.inventory_item_id;
190 l_check_service_rec.customer_id := l_cust_account_id;
191
192 IF aso_debug_pub.g_debug_flag = 'Y' THEN
193 aso_debug_pub.add('Get Service Attr:ref code QUOTE before Is Service '||l_serviceable_flag, 1, 'Y');
194 END IF;
195
196 ASO_SERVICE_CONTRACTS_INT.Is_Service_Available(
197 P_Api_Version_Number => P_Api_Version_Number ,
198 P_init_msg_list => p_init_msg_list,
199 X_msg_Count => X_msg_count ,
200 X_msg_Data => X_msg_data ,
201 X_Return_Status => X_return_status ,
202 p_check_service_rec => l_check_service_rec,
203 X_Available_YN => l_Available_YN
204 );
205
206 IF aso_debug_pub.g_debug_flag = 'Y' THEN
207 aso_debug_pub.add('Get Service Attr:ref code QUOTE after Is Service '||l_Available_YN);
208 END IF;
209
210 IF l_Available_YN = 'N' THEN
211 x_return_status := FND_API.G_RET_STS_ERROR;
212 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
213 FND_MESSAGE.Set_Name('ASO', 'ASO_API_MISSING_SRV_INFO2');
214 --FND_MESSAGE.Set_Token('COLUMN','SERVICE_REF_LINE_ID', FALSE);
215 FND_MSG_PUB.Add;
216 END IF;
217 raise FND_API.G_EXC_ERROR;
218 END IF;
219 END IF;
220 ELSIF P_Qte_Line_Dtl_tbl(i).SERVICE_REF_TYPE_CODE = 'CUSTOMER_PRODUCT' THEN
221
222 IF aso_debug_pub.g_debug_flag = 'Y' THEN
223
224 aso_debug_pub.add('Get Service Attr:SERVICE_REF_TYPE_CODE CUSTOMER_PRODUCT');
225 aso_debug_pub.add('Get Service Attr: CUSTOMER_PRODUCT inv id'||P_Qte_Line_rec.inventory_item_id);
226 aso_debug_pub.add('Get Service Attr: CUSTOMER_PRODUCT organization id'||P_Qte_Line_rec.organization_id);
227 aso_debug_pub.add('Get Service Attr: CUSTOMER_PRODUCT service ref line id'||P_Qte_Line_Dtl_tbl(i).SERVICE_REF_LINE_ID, 1, 'Y');
228
229 END IF;
230
231 l_cs_org_id := cs_std.get_item_valdn_orgzn_id;
232
233 OPEN C_cs_item( P_Qte_Line_Dtl_tbl(i).SERVICE_REF_LINE_ID, l_cs_org_id);
234 FETCH C_cs_item INTO l_inventory_item_id;
235 IF C_cs_item%NOTFOUND THEN
236 CLOSE C_cs_item;
237 x_return_status := FND_API.G_RET_STS_ERROR;
238 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
239 FND_MESSAGE.Set_Name('ASO', 'ASO_API_MISSING_SRV_INFO3');
240 --FND_MESSAGE.Set_Token('COLUMN','INSTALLBASE', FALSE);
241 FND_MSG_PUB.Add;
242 END IF;
243 raise FND_API.G_EXC_ERROR;
244 END IF;
245 CLOSE C_cs_item;
246 l_check_service_rec.product_item_id := l_inventory_item_id;
247 l_check_service_rec.service_item_id := P_Qte_Line_rec.inventory_item_id;
248 l_check_service_rec.customer_id := l_cust_account_id;
249 ASO_SERVICE_CONTRACTS_INT.Is_Service_Available(
250 P_Api_Version_Number => 1.0 ,
251 P_init_msg_list => p_init_msg_list,
252 X_msg_Count => X_msg_count ,
253 X_msg_Data => X_msg_data ,
254 X_Return_Status => X_return_status ,
255 p_check_service_rec => l_check_service_rec,
256 X_Available_YN => l_Available_YN
257 );
258 IF l_Available_YN = 'N' THEN
259 x_return_status := FND_API.G_RET_STS_ERROR;
260 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
261 FND_MESSAGE.Set_Name('ASO', 'ASO_API_MISSING_SRV_INFO2');
262 --FND_MESSAGE.Set_Token('COLUMN','SERVICE_REF_LINE_ID', FALSE);
263 FND_MSG_PUB.Add;
264 END IF;
265 raise FND_API.G_EXC_ERROR;
266 END IF;
267 -- END IF;
268 ELSIF P_Qte_Line_Dtl_tbl(i).SERVICE_REF_TYPE_CODE = 'ORDER' THEN
269
270 IF aso_debug_pub.g_debug_flag = 'Y' THEN
271
272 aso_debug_pub.add('Get Service Attr:SERVICE_REF_TYPE_CODE ORDER', 1, 'Y');
273 aso_debug_pub.add('Get Service Attr: ORDER inv id'||P_Qte_Line_rec.inventory_item_id, 1, 'Y');
274 aso_debug_pub.add('Get Service Attr: ORDER organization id'||P_Qte_Line_rec.organization_id, 1, 'Y');
275 aso_debug_pub.add('Get Service Attr: ORDER service ref line id'||P_Qte_Line_Dtl_tbl(i).SERVICE_REF_LINE_ID, 1, 'Y');
276
277 END IF;
278
279
280 OPEN C_ord_item( P_Qte_Line_Dtl_tbl(i).SERVICE_REF_LINE_ID);
281 FETCH C_ord_item INTO l_inventory_item_id;
282 IF C_ord_item%NOTFOUND THEN
283 CLOSE C_ord_item;
284 x_return_status := FND_API.G_RET_STS_ERROR;
285 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
286 FND_MESSAGE.Set_Name('ASO', 'ASO_API_MISSING_SRV_INFO3');
287 --FND_MESSAGE.Set_Token('COLUMN','ORDER_LINE_ID', FALSE);
288 FND_MSG_PUB.Add;
289 END IF;
290 raise FND_API.G_EXC_ERROR;
291 END IF;
292 CLOSE C_ord_item;
293 l_check_service_rec.product_item_id := l_inventory_item_id;
294 l_check_service_rec.service_item_id := P_Qte_Line_rec.inventory_item_id;
295 l_check_service_rec.customer_id := l_cust_account_id;
296 ASO_SERVICE_CONTRACTS_INT.Is_Service_Available(
297 P_Api_Version_Number => 1.0 ,
298 P_init_msg_list => p_init_msg_list,
299 X_msg_Count => X_msg_count ,
300 X_msg_Data => X_msg_data ,
301 X_Return_Status => X_return_status ,
302 p_check_service_rec => l_check_service_rec,
303 X_Available_YN => l_Available_YN
304 );
305 IF l_Available_YN = 'N' THEN
306 x_return_status := FND_API.G_RET_STS_ERROR;
307 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
308 FND_MESSAGE.Set_Name('ASO', 'ASO_API_MISSING_SRV_INFO2');
309 --FND_MESSAGE.Set_Token('COLUMN','SERVICE_REF_LINE_ID', FALSE);
310 FND_MSG_PUB.Add;
311 END IF;
312 raise FND_API.G_EXC_ERROR;
313 END IF;
314 --END IF;
315 END IF;-- If Service_ref_type_code
316
317 END LOOP;
318
319
320
321
322
323 -- Check return status from the above procedure call
324 IF x_return_status = FND_API.G_RET_STS_ERROR then
325 raise FND_API.G_EXC_ERROR;
326 elsif x_return_status = FND_API.G_RET_STS_UNEXP_ERROR then
327 raise FND_API.G_EXC_UNEXPECTED_ERROR;
328 END IF;
329
330 --
331 -- End of API body.
332 --
333
334 /* -- Standard check for p_commit
335 IF FND_API.to_Boolean( p_commit )
336 THEN
337 COMMIT WORK;
338 END IF;
339 */
340
341
342
343 -- Standard call to get message count and if count is 1, get message info.
344 FND_MSG_PUB.Count_And_Get
345 ( p_count => x_msg_count,
346 p_data => x_msg_data
347 );
348
349 EXCEPTION
350 WHEN FND_API.G_EXC_ERROR THEN
351 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
352 P_API_NAME => L_API_NAME
353 ,P_PKG_NAME => G_PKG_NAME
354 ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
355 ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
356 ,P_SQLCODE => SQLCODE
357 ,P_SQLERRM => SQLERRM
358 ,X_MSG_COUNT => X_MSG_COUNT
359 ,X_MSG_DATA => X_MSG_DATA
360 ,X_RETURN_STATUS => X_RETURN_STATUS);
361
362 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
363 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
364 P_API_NAME => L_API_NAME
365 ,P_PKG_NAME => G_PKG_NAME
366 ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR
367 ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
368 ,P_SQLCODE => SQLCODE
369 ,P_SQLERRM => SQLERRM
370 ,X_MSG_COUNT => X_MSG_COUNT
371 ,X_MSG_DATA => X_MSG_DATA
372 ,X_RETURN_STATUS => X_RETURN_STATUS);
373
374 WHEN OTHERS THEN
375 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
376 P_API_NAME => L_API_NAME
377 ,P_PKG_NAME => G_PKG_NAME
378 ,P_EXCEPTION_LEVEL => ASO_UTILITY_PVT.G_EXC_OTHERS
379 ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
380 ,P_SQLCODE => SQLCODE
381 ,P_SQLERRM => SQLERRM
382 ,X_MSG_COUNT => X_MSG_COUNT
383 ,X_MSG_DATA => X_MSG_DATA
384 ,X_RETURN_STATUS => X_RETURN_STATUS);
385 END Get_service_attributes;
386
387
388
389
390
391 Procedure Get_Duration
392 (
393 P_Api_Version_Number IN Number,
394 P_init_msg_list IN Varchar2 := FND_API.G_FALSE,
395 X_msg_Count OUT NOCOPY /* file.sql.39 change */ Number,
396 X_msg_Data OUT NOCOPY /* file.sql.39 change */ Varchar2,
397 X_Return_Status OUT NOCOPY /* file.sql.39 change */ Varchar2,
398 P_customer_id IN Number,
399 P_system_id IN Number,
400 P_Service_Duration IN Number,
401 P_service_period IN Varchar2,
402 P_coterm_checked_yn IN Varchar2 := FND_API.G_FALSE,
403 P_start_date IN Date,
404 P_end_date IN Date,
405 X_service_duration OUT NOCOPY /* file.sql.39 change */ Number,
406 X_service_period OUT NOCOPY /* file.sql.39 change */ Varchar2,
407 X_new_end_date OUT NOCOPY /* file.sql.39 change */ Date
408 )
409 IS
410 l_api_version_number NUMBER := 1.0;
411 l_api_name VARCHAR2(50) := 'Get_Duration';
412
413
414 BEGIN
415 -- Standard Start of API savepoint
416 SAVEPOINT GET_DURATION_PUB;
417
418 aso_debug_pub.g_debug_flag := nvl(fnd_profile.value('ASO_ENABLE_DEBUG'),'N');
419
420 -- Standard call to check for call compatibility.
421 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
422 p_api_version_number,
423 l_api_name,
424 G_PKG_NAME)
425 THEN
426 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
427 END IF;
428
429
430 -- Initialize message list if p_init_msg_list is set to TRUE.
431 IF FND_API.to_Boolean( p_init_msg_list )
432 THEN
433 FND_MSG_PUB.initialize;
434 END IF;
435
436
437 -- Initialize API return status to SUCCESS
438 x_return_status := FND_API.G_RET_STS_SUCCESS;
439
440 --
441 -- API body
442 --
443
444 -- ******************************************************************
445 -- Validate Environment
446 -- ******************************************************************
447 IF FND_GLOBAL.User_Id IS NULL
448 THEN
449 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
450 THEN
451 FND_MESSAGE.Set_Name(' + appShortName +', 'UT_CANNOT_GET_PROFILE_VALUE');
452 FND_MESSAGE.Set_Token('PROFILE', 'USER_ID', FALSE);
453 FND_MSG_PUB.ADD;
454 END IF;
455 RAISE FND_API.G_EXC_ERROR;
456 END IF;
457
458 IF aso_debug_pub.g_debug_flag = 'Y' THEN
459
460 aso_utility_pvt.print_login_info();
461 aso_debug_pub.add('ASO_service_contracts_INT.Get_Duration: Before call OKS_OMINT_PUB.Get Duration.',1,'Y');
462 aso_debug_pub.add('Get Duration: p_customer_id: '||p_customer_id, 1, 'Y');
463 aso_debug_pub.add('Get Duration: p_system_id: '||p_system_id, 1, 'Y');
464 aso_debug_pub.add('Get Duration: p_service_duration: '||p_service_duration, 1, 'Y');
465 aso_debug_pub.add('Get Duration: p_service_period: '||p_service_period, 1, 'Y');
466 aso_debug_pub.add('Get Duration: p_coterm_checked_yn: '||p_coterm_checked_yn, 1, 'Y');
467 aso_debug_pub.add('Get Duration: p_start_date: '||p_start_date, 1, 'Y');
468 aso_debug_pub.add('Get Duration: p_end_date: '||p_end_date, 1, 'Y');
469
470 END IF;
471
472
473 OKS_OMINT_PUB.Get_Duration(
474 P_Api_Version => 1.0 ,
475 P_init_msg_list => P_init_msg_list,
476 X_msg_Count => X_msg_count ,
477 X_msg_Data => X_msg_data ,
478 X_Return_Status => X_return_status ,
479 P_customer_id => p_customer_id ,
480 P_system_id => p_system_id ,
481 P_Service_Duration => p_service_duration ,
482 P_service_period => p_service_period ,
483 P_coterm_checked_yn => p_coterm_checked_yn,
484 P_start_date => p_start_date ,
485 P_end_date => p_end_date ,
486 X_service_duration => x_service_duration ,
487 X_service_period => x_service_period ,
488 X_new_end_date => x_new_end_date) ;
489
490
491 IF aso_debug_pub.g_debug_flag = 'Y' THEN
492
493 aso_debug_pub.add('Get Duration: After Call to OKS_OMINT_PUB.Get_Duration: X_return_status: '||X_return_status, 1, 'Y');
494 aso_debug_pub.add('Get Duration: x_service_duration: '||x_service_duration, 1, 'Y');
495 aso_debug_pub.add('Get Duration: x_service_period: '||x_service_period, 1, 'Y');
496 aso_debug_pub.add('Get Duration: x_new_end_date: '||x_new_end_date, 1, 'Y');
497 aso_utility_pvt.print_login_info();
498
499 END IF;
500
501
502 -- Check return status from the above procedure call
503 IF x_return_status = FND_API.G_RET_STS_ERROR then
504 raise FND_API.G_EXC_ERROR;
505 elsif x_return_status = FND_API.G_RET_STS_UNEXP_ERROR then
506 raise FND_API.G_EXC_UNEXPECTED_ERROR;
507 END IF;
508
509 --
510 -- End of API body.
511 --
512
513 /* -- Standard check for p_commit
514 IF FND_API.to_Boolean( p_commit )
515 THEN
516 COMMIT WORK;
517 END IF;
518 */
519
520
521
522 -- Standard call to get message count and if count is 1, get message info.
523 FND_MSG_PUB.Count_And_Get
524 ( p_count => x_msg_count,
525 p_data => x_msg_data
526 );
527
528 EXCEPTION
529 WHEN FND_API.G_EXC_ERROR THEN
530 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
531 P_API_NAME => L_API_NAME
532 ,P_PKG_NAME => G_PKG_NAME
533 ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
534 ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PUB
535 ,X_MSG_COUNT => X_MSG_COUNT
536 ,X_MSG_DATA => X_MSG_DATA
537 ,X_RETURN_STATUS => X_RETURN_STATUS);
538
539 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
540 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
541 P_API_NAME => L_API_NAME
542 ,P_PKG_NAME => G_PKG_NAME
543 ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR
544 ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PUB
545 ,X_MSG_COUNT => X_MSG_COUNT
546 ,X_MSG_DATA => X_MSG_DATA
547 ,X_RETURN_STATUS => X_RETURN_STATUS);
548
549 WHEN OTHERS THEN
550 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
551 P_API_NAME => L_API_NAME
552 ,P_PKG_NAME => G_PKG_NAME
553 ,P_EXCEPTION_LEVEL => ASO_UTILITY_PVT.G_EXC_OTHERS
554 ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PUB
555 ,X_MSG_COUNT => X_MSG_COUNT
556 ,X_MSG_DATA => X_MSG_DATA
557 ,X_RETURN_STATUS => X_RETURN_STATUS);
558 END Get_Duration;
559
560
561
562
563 Procedure Is_Service_Available
564 (
565 P_Api_Version_Number IN Number,
566 P_init_msg_list IN Varchar2 := FND_API.G_FALSE,
567 X_msg_Count OUT NOCOPY /* file.sql.39 change */ Number,
568 X_msg_Data OUT NOCOPY /* file.sql.39 change */ Varchar2,
569 X_Return_Status OUT NOCOPY /* file.sql.39 change */ Varchar2,
570 p_check_service_rec IN CHECK_SERVICE_REC_TYPE,
571 X_Available_YN OUT NOCOPY /* file.sql.39 change */ Varchar2
572 )
573 IS
574 l_api_version_number NUMBER := 1.0;
575 l_api_name VARCHAR2(50) := 'Is_Service_Available';
576
577 l_check_service_rec OKS_OMINT_PUB.CHECK_SERVICE_REC_TYPE;
578 BEGIN
579 -- Standard Start of API savepoint
580 SAVEPOINT IS_SERVICE_AVAILABLE_PUB;
581
582 aso_debug_pub.g_debug_flag := nvl(fnd_profile.value('ASO_ENABLE_DEBUG'),'N');
583
584 -- Standard call to check for call compatibility.
585 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
586 p_api_version_number,
587 l_api_name,
588 G_PKG_NAME)
589 THEN
590 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
591 END IF;
592
593
594 -- Initialize message list if p_init_msg_list is set to TRUE.
595 IF FND_API.to_Boolean( p_init_msg_list )
596 THEN
597 FND_MSG_PUB.initialize;
598 END IF;
599
600
601 -- Initialize API return status to SUCCESS
602 x_return_status := FND_API.G_RET_STS_SUCCESS;
603
604 --
605 -- API body
606 --
607
608 -- ******************************************************************
609 -- Validate Environment
610 -- ******************************************************************
611 IF FND_GLOBAL.User_Id IS NULL
612 THEN
613 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
614 THEN
615 FND_MESSAGE.Set_Name(' + appShortName +', 'UT_CANNOT_GET_PROFILE_VALUE');
616 FND_MESSAGE.Set_Token('PROFILE', 'USER_ID', FALSE);
617 FND_MSG_PUB.ADD;
618 END IF;
619 RAISE FND_API.G_EXC_ERROR;
620 END IF;
621
622 IF aso_debug_pub.g_debug_flag = 'Y' THEN
623
624 aso_debug_pub.add('ASO_SER_INT:IS_service_available: p_check_service_rec.product_item_id '|| p_check_service_rec.product_item_id, 1, 'N');
625 aso_debug_pub.add('ASO_SER_INT:IS_service_available: p_check_service_rec.customer_id '|| p_check_service_rec.customer_id, 1, 'N');
626 aso_debug_pub.add('ASO_SER_INT:IS_service_available: p_check_service_rec.request_date '|| p_check_service_rec.request_date, 1, 'N');
627 aso_debug_pub.add('ASO_SER_INT:IS_service_available: p_check_service_rec.service_item_id '|| p_check_service_rec.service_item_id, 1, 'N');
628 aso_debug_pub.add('ASO_SER_INT:IS_service_available: p_check_service_rec.product_revision '|| p_check_service_rec.product_revision, 1, 'N');
629
630 END IF;
631
632
633 -- map quote rec to oks record type
634 IF p_check_service_rec.product_item_id = FND_API.G_MISS_NUM THEN
635 l_check_service_rec.product_item_id := NULL;
636 ELSE
637 l_check_service_rec.product_item_id := p_check_service_rec.product_item_id;
638 END IF;
639 IF p_check_service_rec.customer_id = FND_API.G_MISS_NUM THEN
640 l_check_service_rec.customer_id := NULL;
641 ELSE
642 l_check_service_rec.customer_id := p_check_service_rec.customer_id;
643 END IF;
644 IF p_check_service_rec.service_item_id = FND_API.G_MISS_NUM THEN
645 l_check_service_rec.service_item_id := NULL;
646 ELSE
647 l_check_service_rec.service_item_id := p_check_service_rec.service_item_id;
648 END IF;
649 IF p_check_service_rec.product_revision = FND_API.G_MISS_CHAR THEN
650 l_check_service_rec.product_revision := NULL;
651 ELSE
652 l_check_service_rec.product_revision := p_check_service_rec.product_revision;
653 END IF;
654 IF p_check_service_rec.request_date = FND_API.G_MISS_DATE THEN
655 l_check_service_rec.request_date := NULL;
656 ELSE
657 l_check_service_rec.request_date := p_check_service_rec.request_date;
658 END IF;
659
660 /*
661 l_check_service_rec.product_item_id := p_check_service_rec.product_item_id;
662 l_check_service_rec.service_item_id := p_check_service_rec.service_item_id;
663 l_check_service_rec.customer_id := p_check_service_rec.customer_id;
664 l_check_service_rec.product_revision:=p_check_service_rec.product_revision;
665 l_check_service_rec.request_date := p_check_service_rec.request_date;
666 */
667
668 IF aso_debug_pub.g_debug_flag = 'Y' THEN
669 aso_debug_pub.add('Before Calling OKS_OMINT_PUB.Is_Service_Available ',1,'Y');
670 aso_utility_pvt.print_login_info();
671 END IF;
672
673 OKS_OMINT_PUB.Is_Service_Available(
674 P_Api_Version => 1.0 ,
675 P_init_msg_list => p_init_msg_list,
676 X_msg_Count => X_msg_count ,
677 X_msg_Data => X_msg_data ,
678 X_Return_Status => X_return_status ,
679 p_check_service_rec => l_check_service_rec,
680 X_Available_YN => X_Available_YN );
681
682 IF aso_debug_pub.g_debug_flag = 'Y' THEN
683 aso_debug_pub.add('After Calling OKS_OMINT_PUB.Is_Service_Available ',1,'Y');
684 aso_utility_pvt.print_login_info();
685 END IF;
686
687
688 -- Check return status from the above procedure call
689 IF x_return_status = FND_API.G_RET_STS_ERROR then
690 raise FND_API.G_EXC_ERROR;
691 elsif x_return_status = FND_API.G_RET_STS_UNEXP_ERROR then
692 raise FND_API.G_EXC_UNEXPECTED_ERROR;
693 END IF;
694
695 --
696 -- End of API body.
697 --
698
699 /* -- Standard check for p_commit
700 IF FND_API.to_Boolean( p_commit )
701 THEN
702 COMMIT WORK;
703 END IF;
704 */
705
706
707 -- Standard call to get message count and if count is 1, get message info.
708 FND_MSG_PUB.Count_And_Get
709 ( p_count => x_msg_count,
710 p_data => x_msg_data
711 );
712
713 EXCEPTION
714 WHEN FND_API.G_EXC_ERROR THEN
715 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
716 P_API_NAME => L_API_NAME
717 ,P_PKG_NAME => G_PKG_NAME
718 ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
719 ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PUB
720 ,X_MSG_COUNT => X_MSG_COUNT
721 ,X_MSG_DATA => X_MSG_DATA
722 ,X_RETURN_STATUS => X_RETURN_STATUS);
723
724 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
725 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
726 P_API_NAME => L_API_NAME
727 ,P_PKG_NAME => G_PKG_NAME
728 ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR
729 ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PUB
730 ,X_MSG_COUNT => X_MSG_COUNT
731 ,X_MSG_DATA => X_MSG_DATA
732 ,X_RETURN_STATUS => X_RETURN_STATUS);
733
734 WHEN OTHERS THEN
735 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
736 P_API_NAME => L_API_NAME
737 ,P_PKG_NAME => G_PKG_NAME
738 ,P_EXCEPTION_LEVEL => ASO_UTILITY_PVT.G_EXC_OTHERS
739 ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PUB
740 ,X_MSG_COUNT => X_MSG_COUNT
741 ,X_MSG_DATA => X_MSG_DATA
742 ,X_RETURN_STATUS => X_RETURN_STATUS);
743
744 END Is_Service_Available;
745
746
747 PROCEDURE Available_Services(
748 P_Api_Version_number IN Number,
749 P_init_msg_list IN Varchar2 := FND_API.G_FALSE,
750 X_msg_Count OUT NOCOPY /* file.sql.39 change */ Number,
751 X_msg_Data OUT NOCOPY /* file.sql.39 change */ Varchar2,
752 X_Return_Status OUT NOCOPY /* file.sql.39 change */ Varchar2,
753 p_avail_service_rec IN AVAIL_SERVICE_REC_TYPE,
754 X_Orderable_Service_tbl OUT NOCOPY /* file.sql.39 change */ order_service_tbl_type
755 )
756 IS
757 l_api_version_number NUMBER := 1.0;
758 l_api_name VARCHAR2(50) := 'Available_Services';
759
760 l_avail_service_rec OKS_OMINT_PUB.AVAIL_SERVICE_REC_TYPE;
761 l_Orderable_Service_tbl OKS_OMINT_PUB.order_service_tbl_type;
762
763
764 BEGIN
765 -- Standard Start of API savepoint
766 SAVEPOINT AVAILABLE_SERVICES_PUB;
767
768 aso_debug_pub.g_debug_flag := nvl(fnd_profile.value('ASO_ENABLE_DEBUG'),'N');
769
770 -- Standard call to check for call compatibility.
771 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
772 p_api_version_number,
773 l_api_name,
774 G_PKG_NAME)
775 THEN
776 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
777 END IF;
778
779
780 -- Initialize message list if p_init_msg_list is set to TRUE.
781 IF FND_API.to_Boolean( p_init_msg_list )
782 THEN
783 FND_MSG_PUB.initialize;
784 END IF;
785
786
787 -- Initialize API return status to SUCCESS
788 x_return_status := FND_API.G_RET_STS_SUCCESS;
789
790 --
791 -- API body
792 --
793
794 -- ******************************************************************
795 -- Validate Environment
796 -- ******************************************************************
797 IF FND_GLOBAL.User_Id IS NULL
798 THEN
799 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
800 THEN
801 FND_MESSAGE.Set_Name(' + appShortName +', 'UT_CANNOT_GET_PROFILE_VALUE');
802 FND_MESSAGE.Set_Token('PROFILE', 'USER_ID', FALSE);
803 FND_MSG_PUB.ADD;
804 END IF;
805 RAISE FND_API.G_EXC_ERROR;
806 END IF;
807
808 -- map service rec type
809 IF aso_debug_pub.g_debug_flag = 'Y' THEN
810
811 aso_debug_pub.add('ASO_SER_INT:available_service: p_avail_service_rec.PRODUCT_ITEM_ID '|| p_avail_service_rec.PRODUCT_ITEM_ID, 1, 'N');
812 aso_debug_pub.add('ASO_SER_INT:available_service: p_avail_service_rec.CUSTOMER_ID '|| p_avail_service_rec.CUSTOMER_ID, 1, 'N');
813 aso_debug_pub.add('ASO_SER_INT:available_service: p_avail_service_rec.PRODUCT_REVISION '|| p_avail_service_rec.PRODUCT_REVISION, 1, 'N');
814 aso_debug_pub.add('ASO_SER_INT:available_service: p_avail_service_rec.REQUEST_DATE '|| p_avail_service_rec.REQUEST_DATE, 1, 'N');
815
816 END IF;
817
818 IF p_avail_service_rec.PRODUCT_ITEM_ID = FND_API.G_MISS_NUM THEN
819 l_avail_service_rec.PRODUCT_ITEM_ID := NULL;
820 ELSE
821 l_avail_service_rec.PRODUCT_ITEM_ID := p_avail_service_rec.PRODUCT_ITEM_ID;
822 END IF;
823 IF p_avail_service_rec.CUSTOMER_ID = FND_API.G_MISS_NUM THEN
824 l_avail_service_rec.CUSTOMER_ID := NULL;
825 ELSE
826 l_avail_service_rec.CUSTOMER_ID := p_avail_service_rec.CUSTOMER_ID;
827 END IF;
828 IF p_avail_service_rec.PRODUCT_REVISION = FND_API.G_MISS_CHAR THEN
829 l_avail_service_rec.PRODUCT_REVISION := NULL;
830 ELSE
831 l_avail_service_rec.PRODUCT_REVISION := p_avail_service_rec.PRODUCT_REVISION;
832 END IF;
833 IF p_avail_service_rec.request_date = FND_API.G_MISS_DATE THEN
834 l_avail_service_rec.request_date := NULL;
835 ELSE
836 l_avail_service_rec.request_date := p_avail_service_rec.request_date;
837 END IF;
838 /*
839 l_avail_service_rec.PRODUCT_ITEM_ID := p_avail_service_rec.PRODUCT_ITEM_ID;
840 l_avail_service_rec.CUSTOMER_ID := p_avail_service_rec.CUSTOMER_ID ;
841 l_avail_service_rec.PRODUCT_REVISION := p_avail_service_rec.PRODUCT_REVISION;
842 l_avail_service_rec.REQUEST_DATE := p_avail_service_rec.REQUEST_DATE;
843 */
844
845 IF aso_debug_pub.g_debug_flag = 'Y' THEN
846 aso_debug_pub.add('Before Calling OKS_OMINT_PUB.Available_Services ',1,'Y');
847 aso_utility_pvt.print_login_info();
848 END IF;
849
850 OKS_OMINT_PUB.Available_Services(
851 P_Api_Version => 1.0 ,
852 P_init_msg_list => p_init_msg_list,
853 X_msg_Count => X_msg_count ,
854 X_msg_Data => X_msg_data ,
855 X_Return_Status => X_return_status ,
856 p_avail_service_rec => l_avail_service_rec,
857 X_Orderable_Service_tbl => l_Orderable_Service_tbl
858 );
859
860 IF aso_debug_pub.g_debug_flag = 'Y' THEN
861 aso_debug_pub.add('ASO_SER_INT:After Call to OKS available_service: x_return_status '|| X_return_status, 1, 'Y');
862 aso_utility_pvt.print_login_info();
863 END IF;
864
865 IF x_return_status = FND_API.G_RET_STS_SUCCESS THEN
866 FOR i in 1..l_Orderable_Service_tbl.count LOOP
867 x_orderable_service_tbl(i).service_item_id := l_Orderable_Service_tbl(i).service_item_id;
868 END LOOP;
869 END IF;
870
871
872 -- Check return status from the above procedure call
873 IF x_return_status = FND_API.G_RET_STS_ERROR then
874 raise FND_API.G_EXC_ERROR;
875 elsif x_return_status = FND_API.G_RET_STS_UNEXP_ERROR then
876 raise FND_API.G_EXC_UNEXPECTED_ERROR;
877 END IF;
878
879 --
880 -- End of API body.
881 --
882
883 /* -- Standard check for p_commit
884 IF FND_API.to_Boolean( p_commit )
885 THEN
886 COMMIT WORK;
887 END IF;
888 */
889
890
891
892 -- Standard call to get message count and if count is 1, get message info.
893 FND_MSG_PUB.Count_And_Get
894 ( p_count => x_msg_count,
895 p_data => x_msg_data
896 );
897
898 EXCEPTION
899 WHEN FND_API.G_EXC_ERROR THEN
900 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
901 P_API_NAME => L_API_NAME
902 ,P_PKG_NAME => G_PKG_NAME
903 ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
904 ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PUB
905 ,X_MSG_COUNT => X_MSG_COUNT
906 ,X_MSG_DATA => X_MSG_DATA
907 ,X_RETURN_STATUS => X_RETURN_STATUS);
908
909 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
910 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
911 P_API_NAME => L_API_NAME
912 ,P_PKG_NAME => G_PKG_NAME
913 ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR
914 ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PUB
915 ,X_MSG_COUNT => X_MSG_COUNT
916 ,X_MSG_DATA => X_MSG_DATA
917 ,X_RETURN_STATUS => X_RETURN_STATUS);
918
919 WHEN OTHERS THEN
920 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
921 P_API_NAME => L_API_NAME
922 ,P_PKG_NAME => G_PKG_NAME
923 ,P_EXCEPTION_LEVEL => ASO_UTILITY_PVT.G_EXC_OTHERS
924 ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PUB
925 ,X_MSG_COUNT => X_MSG_COUNT
926 ,X_MSG_DATA => X_MSG_DATA
927 ,X_RETURN_STATUS => X_RETURN_STATUS);
928
929 END Available_Services;
930
931
932 Procedure Get_Warranty (
933 P_Api_Version_Number IN Number,
934 P_init_msg_list IN Varchar2 := FND_API.G_FALSE,
935 X_msg_Count OUT NOCOPY /* file.sql.39 change */ Number,
936 X_msg_Data OUT NOCOPY /* file.sql.39 change */ Varchar2,
937 P_Org_id IN Number,
938 P_Organization_id IN NUMBER := null,
939 P_product_item_id IN Number,
940 x_return_status OUT NOCOPY /* file.sql.39 change */ Varchar2,
941 X_Warranty_tbl OUT NOCOPY /* file.sql.39 change */ War_tbl_type )
942 IS
943
944 CURSOR C_warranty(item_id NUMBER) IS
945 SELECT description, concatenated_segments
946 -- SELECT description, segment1
947 -- FROM aso_i_items_v
948 FROM mtl_system_items_vl
949 WHERE inventory_item_id = item_id
950 AND organization_id = p_organization_id;
951 /* AND bom_item_type in (1,4)
952 AND inventory_item_status_code = 'Active'
953 AND customer_order_enabled_flag = 'Y'; */
954
955 l_api_version_number NUMBER := 1.0;
956 l_api_name VARCHAR2(50) := 'Get_Warranty';
957
958 l_warranty_tbl OKS_EXTWAR_UTIL_PUB.War_tbl;
959 l_description VARCHAR2(240);
960 l_concatenated_segments VARCHAR2(2000);
961
962 BEGIN
963 -- Standard Start of API savepoint
964 SAVEPOINT GET_WARRANTY_PUB;
965
966 aso_debug_pub.g_debug_flag := nvl(fnd_profile.value('ASO_ENABLE_DEBUG'),'N');
967
968 -- Standard call to check for call compatibility.
969 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
970 p_api_version_number,
971 l_api_name,
972 G_PKG_NAME)
973 THEN
974 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
975 END IF;
976
977
978 -- Initialize message list if p_init_msg_list is set to TRUE.
979 IF FND_API.to_Boolean( p_init_msg_list )
980 THEN
981 FND_MSG_PUB.initialize;
982 END IF;
983
984
985 -- Initialize API return status to SUCCESS
986 x_return_status := FND_API.G_RET_STS_SUCCESS;
987
988 --
989 -- API body
990 --
991
992 -- ******************************************************************
993 -- Validate Environment
994 -- ******************************************************************
995 IF FND_GLOBAL.User_Id IS NULL
996 THEN
997 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
998 THEN
999 FND_MESSAGE.Set_Name(' + appShortName +', 'UT_CANNOT_GET_PROFILE_VALUE');
1000 FND_MESSAGE.Set_Token('PROFILE', 'USER_ID', FALSE);
1001 FND_MSG_PUB.ADD;
1002 END IF;
1003 RAISE FND_API.G_EXC_ERROR;
1004 END IF;
1005
1006 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1007 aso_debug_pub.add('Before Call to OKS_EXTWAR_UTIL_PUB.Get_Warranty_info', 1, 'Y');
1008 aso_utility_pvt.print_login_info();
1009 END IF;
1010
1011 OKS_EXTWAR_UTIL_PUB.Get_Warranty_info(
1012 P_Api_Version => 1.0 ,
1013 P_init_msg_list => FND_API.G_FALSE,
1014 P_Org_id => P_Org_id ,
1015 P_prod_item_id => P_product_item_id ,
1016 X_Return_Status => X_return_status ,
1017 X_msg_Count => X_msg_count ,
1018 X_msg_Data => X_msg_data ,
1019 X_Warranty_tbl => l_Warranty_tbl );
1020 -- map the output
1021
1022 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1023 aso_debug_pub.add('After Call to OKS_EXTWAR_UTIL_PUB.Get_Warranty_info', 1, 'Y');
1024 aso_utility_pvt.print_login_info();
1025 END IF;
1026
1027
1028 For i in 1..l_warranty_tbl.count LOOP
1029 IF p_organization_id is not null THEN
1030 OPEN C_warranty(l_Warranty_tbl(i).Service_item_id);
1031 FETCH C_warranty INTO l_description,
1032 l_concatenated_segments;
1033 IF (C_warranty%FOUND) THEN
1034 CLOSE C_warranty;
1035 X_Warranty_tbl(i).Service_item_id := l_Warranty_tbl(i).Service_item_id;
1036 X_Warranty_tbl(i).Duration_Quantity:= l_Warranty_tbl(i).Duration_Quantity;
1037 X_Warranty_tbl(i).Duration_Period := l_Warranty_tbl(i).Duration_Period;
1038 X_Warranty_tbl(i).Coverage_Schedule_id
1039 := l_Warranty_tbl(i).Coverage_Schedule_id ;
1040 X_Warranty_tbl(i).Warranty_Start_Date
1041 := l_Warranty_tbl(i).Warranty_Start_Date;
1042 X_Warranty_tbl(i).Warranty_End_Date := l_Warranty_tbl(i).Warranty_End_Date;
1043 X_Warranty_tbl(i).service_description := l_description;
1044 X_Warranty_tbl(i).service_name := l_concatenated_segments;
1045 ELSE
1046 -- raise FND_API.G_EXC_ERROR;
1047 CLOSE C_warranty;
1048 END IF;
1049 END IF;
1050 END LOOP;
1051
1052
1053 -- Check return status from the above procedure call
1054 IF x_return_status = FND_API.G_RET_STS_ERROR then
1055 raise FND_API.G_EXC_ERROR;
1056 elsif x_return_status = FND_API.G_RET_STS_UNEXP_ERROR then
1057 raise FND_API.G_EXC_UNEXPECTED_ERROR;
1058 END IF;
1059
1060 --
1061 -- End of API body.
1062 --
1063
1064
1065 -- Standard call to get message count and if count is 1, get message info.
1066 FND_MSG_PUB.Count_And_Get
1067 ( p_count => x_msg_count,
1068 p_data => x_msg_data
1069 );
1070
1071 EXCEPTION
1072 WHEN FND_API.G_EXC_ERROR THEN
1073 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
1074 P_API_NAME => L_API_NAME
1075 ,P_PKG_NAME => G_PKG_NAME
1076 ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
1077 ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PUB
1078 ,X_MSG_COUNT => X_MSG_COUNT
1079 ,X_MSG_DATA => X_MSG_DATA
1080 ,X_RETURN_STATUS => X_RETURN_STATUS);
1081
1082 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1083 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
1084 P_API_NAME => L_API_NAME
1085 ,P_PKG_NAME => G_PKG_NAME
1086 ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR
1087 ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PUB
1088 ,X_MSG_COUNT => X_MSG_COUNT
1089 ,X_MSG_DATA => X_MSG_DATA
1090 ,X_RETURN_STATUS => X_RETURN_STATUS);
1091
1092 WHEN OTHERS THEN
1093 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
1094 P_API_NAME => L_API_NAME
1095 ,P_PKG_NAME => G_PKG_NAME
1096 ,P_EXCEPTION_LEVEL => ASO_UTILITY_PVT.G_EXC_OTHERS
1097 ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PUB
1098 ,X_MSG_COUNT => X_MSG_COUNT
1099 ,X_MSG_DATA => X_MSG_DATA
1100 ,X_RETURN_STATUS => X_RETURN_STATUS);
1101
1102 END Get_Warranty;
1103
1104
1105 End ASO_service_contracts_INT;