[Home] [Help]
PACKAGE BODY: APPS.OKS_RENEW_UTIL_PUB
Source
1 PACKAGE BODY OKS_RENEW_UTIL_PUB AS
2 /* $Header: OKSPRUTB.pls 120.5 2005/09/27 15:10:30 anjkumar noship $*/
3 PROCEDURE GET_RENEW_RULES(p_api_version IN NUMBER,
4 p_init_msg_list IN VARCHAR2,
5 x_return_status OUT NOCOPY VARCHAR2,
6 x_msg_count OUT NOCOPY NUMBER,
7 x_msg_data OUT NOCOPY VARCHAR2,
8 p_chr_id IN NUMBER,
9 p_party_id IN NUMBER,
10 p_org_id IN NUMBER,
11 p_date IN DATE DEFAULT SYSDATE,
12 p_rnrl_rec IN rnrl_rec_type,
13 x_rnrl_rec OUT NOCOPY rnrl_rec_type)
14 IS
15 l_api_name CONSTANT VARCHAR2(30) := 'GET_RENEW_RULES';
16 l_api_version CONSTANT NUMBER := 1.0;
17
18 l_mod_name VARCHAR2(256) := lower(G_OKS_APP_NAME) || '.plsql.' || g_pkg_name || '.' || l_api_name;
19 l_error_text VARCHAR2(512);
20
21 BEGIN
22
23 --log key input parameters
24 IF (FND_LOG.level_procedure >= FND_LOG.g_current_runtime_level) THEN
25 FND_LOG.string(FND_LOG.level_procedure, l_mod_name || '.begin', 'p_chr_id=' || p_chr_id||' ,p_party_id='||p_party_id||' ,p_org_id='||p_org_id||' ,p_date='||p_date);
26 END IF;
27
28 --standard api initilization and checks
29 IF NOT FND_API.compatible_api_call (l_api_version, p_api_version, l_api_name, G_PKG_NAME)THEN
30 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
31 END IF;
32 IF FND_API.to_boolean(p_init_msg_list ) THEN
33 FND_MSG_PUB.initialize;
34 END IF;
35 x_return_status := FND_API.G_RET_STS_SUCCESS;
36
37
38 OKS_RENEW_UTIL_PVT.GET_RENEW_RULES(
39 p_api_version => 1,
40 p_init_msg_list => FND_API.G_FALSE,
41 p_chr_id => p_chr_id,
42 p_party_id => p_party_id,
43 p_org_id => p_org_id,
44 p_date => p_date,
45 p_rnrl_rec => p_rnrl_rec,
46 x_rnrl_rec => x_rnrl_rec,
47 x_return_status => x_return_status,
48 x_msg_count => x_msg_count,
49 x_msg_data => x_msg_data );
50
51 IF x_return_status = FND_API.g_ret_sts_unexp_error THEN
52 RAISE FND_API.g_exc_unexpected_error;
53 ELSIF x_return_status = FND_API.g_ret_sts_error THEN
54 RAISE FND_API.g_exc_error;
55 END IF;
56
57 IF (FND_LOG.level_procedure >= FND_LOG.g_current_runtime_level) THEN
58 FND_LOG.string(FND_LOG.level_procedure, l_mod_name || '.end','x_return_status='|| x_return_status);
59 END IF;
60 FND_MSG_PUB.count_and_get(p_count => x_msg_count, p_data => x_msg_data );
61
62 EXCEPTION
63 WHEN FND_API.g_exc_error THEN
64 x_return_status := FND_API.g_ret_sts_error ;
65
66 IF (FND_LOG.level_error >= FND_LOG.g_current_runtime_level) THEN
67 FND_LOG.string(FND_LOG.level_error, l_mod_name || '.end_error', 'x_return_status=' || x_return_status);
68 END IF;
69 FND_MSG_PUB.count_and_get(p_count => x_msg_count, p_data => x_msg_data );
70
71 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
72 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
73
74 IF (FND_LOG.level_unexpected >= FND_LOG.g_current_runtime_level) THEN
75 FND_LOG.string(FND_LOG.level_unexpected, l_mod_name || '.end_unexpected_error', 'x_return_status=' || x_return_status);
76 END IF;
77 FND_MSG_PUB.count_and_get(p_count => x_msg_count, p_data => x_msg_data );
78
79 WHEN OTHERS THEN
80 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
81
82 IF (FND_LOG.level_unexpected >= FND_LOG.g_current_runtime_level) THEN
83 --first log the sqlerrm
84 l_error_text := substr (SQLERRM, 1, 240);
85 FND_LOG.string(FND_LOG.level_unexpected, l_mod_name || '.end_other_error', l_error_text);
86 --then add it to the message api list
87 FND_MSG_PUB.add_exc_msg(g_pkg_name, l_api_name, l_error_text);
88 END IF;
89 FND_MSG_PUB.count_and_get(p_count => x_msg_count, p_data => x_msg_data );
90
91 END GET_RENEW_RULES;
92
93 --===========================================================================
94
95 PROCEDURE UPDATE_RENEWAL_STATUS (p_api_version IN NUMBER,
96 p_init_msg_list IN VARCHAR2,
97 x_return_status OUT NOCOPY VARCHAR2,
98 x_msg_count OUT NOCOPY NUMBER,
99 x_msg_data OUT NOCOPY VARCHAR2,
100 P_CHR_ID IN NUMBER,
101 P_RENEW_STATUS IN VARCHAR2,
102 P_CHR_STATUS IN VARCHAR2)
103 IS
104 l_api_name CONSTANT VARCHAR2(30) := 'OKS_RENEW_UTIL';
105 l_api_version CONSTANT NUMBER := 1.0;
106 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
107
108 BEGIN
109
110 l_return_status := OKC_API.START_ACTIVITY
111 (l_api_name
112 , p_init_msg_list
113 , '_PUB'
114 , x_return_status
115 );
116
117 IF l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR THEN
118 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
119 ELSIF l_return_status = OKC_API.G_RET_STS_ERROR THEN
120 RAISE OKC_API.G_EXCEPTION_ERROR;
121 END IF;
122
123 OKC_UTIL.call_user_hook
124 (
125 x_return_status => x_return_status,
126 p_package_name => g_pkg_name,
127 p_procedure_name => l_api_name,
128 p_before_after => 'B'
129 );
130
131 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
132 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
133 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
134 RAISE OKC_API.G_EXCEPTION_ERROR;
135 END IF;
136
137 OKS_RENEW_UTIL_PVT.UPDATE_RENEWAL_STATUS(
138 x_return_status => x_Return_Status,
139 P_Chr_Id => P_Chr_Id,
140 P_renew_status => P_renew_status,
141 P_Chr_status => P_Chr_status
142 );
143
144 IF x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR THEN
145 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
146 ELSIF x_return_status = OKC_API.G_RET_STS_ERROR THEN
147 RAISE OKC_API.G_EXCEPTION_ERROR;
148 END IF;
149
150 OKC_UTIL.call_user_hook
151 (
152 x_return_status => x_return_status,
153 p_package_name => g_pkg_name,
154 p_procedure_name => l_api_name,
155 p_before_after => 'A'
156 );
157
158 IF x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR THEN
159 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
160 ELSIF x_return_status = OKC_API.G_RET_STS_ERROR THEN
161 RAISE OKC_API.G_EXCEPTION_ERROR;
162 END IF;
163
164 OKC_API.END_ACTIVITY
165 (
166 x_msg_count => x_msg_count,
167 x_msg_data => x_msg_data
168 );
169
170 EXCEPTION
171 WHEN OKC_API.G_EXCEPTION_ERROR THEN
172 x_return_status := OKC_API.HANDLE_EXCEPTIONS
173 (
174 l_api_name,
175 G_PKG_NAME,
176 'OKC_API.G_RET_STS_ERROR',
177 x_msg_count,
178 x_msg_data,
179 '_PUB'
180 );
181
182 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
183 x_return_status := OKC_API.HANDLE_EXCEPTIONS
184 (
185 l_api_name,
186 G_PKG_NAME,
187 'OKC_API.G_RET_STS_UNEXP_ERROR',
188 x_msg_count,
189 x_msg_data,
190 '_PUB'
191 );
192
193 WHEN OTHERS THEN
194 x_return_status := OKC_API.HANDLE_EXCEPTIONS
195 (
196 l_api_name,
197 G_PKG_NAME,
198 'OTHERS',
199 x_msg_count,
200 x_msg_data,
201 '_PUB'
202 );
203
204 END;
205
206 PROCEDURE Can_Update_Contract(p_api_version IN NUMBER,
207 p_init_msg_list IN VARCHAR2,
208 p_chr_id IN NUMBER,
209 x_can_update_yn OUT NOCOPY VARCHAR2,
210 x_can_submit_yn OUT NOCOPY VARCHAR2,
211 x_msg_count OUT NOCOPY NUMBER,
212 x_msg_data OUT NOCOPY VARCHAR2,
213 x_return_status OUT NOCOPY VARCHAR2) IS
214
215 l_api_name CONSTANT VARCHAR2(30) := 'OKS_RENEW_UTIL_PUB';
216 l_api_version CONSTANT NUMBER := 1.0;
217 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
218
219 BEGIN
220
221 l_return_status := OKC_API.START_ACTIVITY
222 (
223 l_api_name
224 , p_init_msg_list
225 , '_PUB'
226 , x_return_status
227 );
228
229 IF l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR THEN
230 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
231 ELSIF l_return_status = OKC_API.G_RET_STS_ERROR THEN
232 RAISE OKC_API.G_EXCEPTION_ERROR;
233 END IF;
234
235
236 OKC_UTIL.call_user_hook
237 (
238 x_return_status => x_return_status,
239 p_package_name => g_pkg_name,
240 p_procedure_name => l_api_name,
241 p_before_after => 'B'
242 );
243
244 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
245 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
246 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
247 RAISE OKC_API.G_EXCEPTION_ERROR;
248 END IF;
249
250 OKS_RENEW_UTIL_PVT.Can_Update_Contract(p_chr_id => p_chr_id,
251 x_can_update_yn => x_can_update_yn,
252 x_can_submit_yn => x_can_submit_yn,
253 x_msg_count => x_msg_count,
254 x_msg_data => x_msg_data,
255 x_return_status => x_return_status);
256
257
258 IF x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR THEN
259 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
260 ELSIF x_return_status = OKC_API.G_RET_STS_ERROR THEN
261 RAISE OKC_API.G_EXCEPTION_ERROR;
262 END IF;
263
264
265 OKC_UTIL.call_user_hook
266 (
267 x_return_status => x_return_status,
268 p_package_name => g_pkg_name,
269 p_procedure_name => l_api_name,
270 p_before_after => 'A'
271 );
272
273 IF x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR THEN
274 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
275 ELSIF x_return_status = OKC_API.G_RET_STS_ERROR THEN
276 RAISE OKC_API.G_EXCEPTION_ERROR;
277 END IF;
278
279 OKC_API.END_ACTIVITY
280 (
281 x_msg_count => x_msg_count,
282 x_msg_data => x_msg_data
283 );
284
285 EXCEPTION
286 WHEN OKC_API.G_EXCEPTION_ERROR THEN
287 x_return_status := OKC_API.HANDLE_EXCEPTIONS
288 (
289 l_api_name,
290 G_PKG_NAME,
291 'OKC_API.G_RET_STS_ERROR',
292 x_msg_count,
293 x_msg_data,
294 '_PUB'
295 );
296
297 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
298 x_return_status := OKC_API.HANDLE_EXCEPTIONS
299 (
300 l_api_name,
301 G_PKG_NAME,
302 'OKC_API.G_RET_STS_UNEXP_ERROR',
303 x_msg_count,
304 x_msg_data,
305 '_PUB'
306 );
307
308 WHEN OTHERS THEN
309 x_return_status := OKC_API.HANDLE_EXCEPTIONS
310 (
311 l_api_name,
312 G_PKG_NAME,
313 'OTHERS',
314 x_msg_count,
315 x_msg_data,
316 '_PUB'
317 );
318
319 END Can_Update_Contract;
320
321
322 PROCEDURE get_payment_terms (
323 p_api_version IN NUMBER,
324 p_init_msg_list IN VARCHAR2,
325 p_chr_id IN NUMBER DEFAULT FND_API.G_MISS_NUM,
326 p_party_id IN NUMBER DEFAULT FND_API.G_MISS_NUM,
327 p_org_id IN NUMBER DEFAULT FND_API.G_MISS_NUM,
328 p_effective_date IN DATE DEFAULT SYSDATE,
329 x_pay_term_id1 OUT NOCOPY VARCHAR2,
330 x_pay_term_id2 OUT NOCOPY VARCHAR2,
331 x_msg_count OUT NOCOPY NUMBER,
332 x_msg_data OUT NOCOPY VARCHAR2,
333 x_return_status OUT NOCOPY VARCHAR2) IS
334
335 l_api_name CONSTANT VARCHAR2(30) := 'OKS_RENEW_UTIL_PUB';
336 l_api_version CONSTANT NUMBER := 1.0;
337 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
338
339 BEGIN
340
341 l_return_status := OKC_API.START_ACTIVITY (l_api_name
342 , p_init_msg_list
343 , '_PUB'
344 , x_return_status
345 );
346
347 IF l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR THEN
348 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
349 ELSIF l_return_status = OKC_API.G_RET_STS_ERROR THEN
350 RAISE OKC_API.G_EXCEPTION_ERROR;
351 END IF;
352
353
354 OKC_UTIL.call_user_hook (x_return_status => x_return_status,
355 p_package_name => g_pkg_name,
356 p_procedure_name => l_api_name,
357 p_before_after => 'B'
358 );
359
360 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
361 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
362 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
363 RAISE OKC_API.G_EXCEPTION_ERROR;
364 END IF;
365
366 OKS_RENEW_UTIL_PVT.get_payment_terms(
367 p_chr_id => p_chr_id,
368 p_party_id => p_party_id,
369 p_org_id => p_org_id,
370 p_effective_date => p_effective_date,
371 x_pay_term_id1 => x_pay_term_id1,
372 x_pay_term_id2 => x_pay_term_id2,
373 x_msg_count => x_msg_count,
374 x_msg_data => x_msg_data,
375 x_return_status => x_return_status
376 );
377
378
379 IF x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR THEN
380 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
381 ELSIF x_return_status = OKC_API.G_RET_STS_ERROR THEN
382 RAISE OKC_API.G_EXCEPTION_ERROR;
383 END IF;
384
385
386 OKC_UTIL.call_user_hook (
387 x_return_status => x_return_status,
388 p_package_name => g_pkg_name,
389 p_procedure_name => l_api_name,
390 p_before_after => 'A'
391 );
392
393 IF x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR THEN
394 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
395 ELSIF x_return_status = OKC_API.G_RET_STS_ERROR THEN
396 RAISE OKC_API.G_EXCEPTION_ERROR;
397 END IF;
398
399 OKC_API.END_ACTIVITY (x_msg_count => x_msg_count,
400 x_msg_data => x_msg_data
401 );
402
403 EXCEPTION
404 WHEN OKC_API.G_EXCEPTION_ERROR THEN
405 x_return_status := OKC_API.HANDLE_EXCEPTIONS (
406 l_api_name,
407 G_PKG_NAME,
408 'OKC_API.G_RET_STS_ERROR',
409 x_msg_count,
410 x_msg_data,
411 '_PUB'
412 );
413
414 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
415 x_return_status := OKC_API.HANDLE_EXCEPTIONS (
416 l_api_name,
417 G_PKG_NAME,
418 'OKC_API.G_RET_STS_UNEXP_ERROR',
419 x_msg_count,
420 x_msg_data,
421 '_PUB'
422 );
423
424 WHEN OTHERS THEN
425 x_return_status := OKC_API.HANDLE_EXCEPTIONS (
426 l_api_name,
427 G_PKG_NAME,
428 'OTHERS',
429 x_msg_count,
430 x_msg_data,
431 '_PUB'
432 );
433
434 END get_payment_terms;
435 -------------------------------------------------------------------------------------
436
437 PROCEDURE get_period_defaults(p_hdr_id IN NUMBER DEFAULT NULL,
438 p_org_id IN VARCHAR2 DEFAULT NULL,
439 x_period_type OUT NOCOPY VARCHAR2,
440 x_period_start OUT NOCOPY VARCHAR2,
441 x_price_uom OUT NOCOPY VARCHAR2,
442 x_return_status OUT NOCOPY VARCHAR2)
443 IS
444
445 l_api_name CONSTANT VARCHAR2(30) := 'OKS_RENEW_UTIL_PUB';
446 l_api_version CONSTANT NUMBER := 1.0;
447
448 BEGIN
449
450 OKS_RENEW_UTIL_PVT.get_period_defaults(p_hdr_id => p_hdr_id,
451 p_org_id => p_org_id,
452 x_period_type => x_period_type,
453 x_period_start => x_period_start,
454 x_price_uom => x_price_uom,
455 x_return_status => x_return_status);
456
457
458 END get_period_defaults;
459
460 /* stripped down version of get_renew_rules, only gets the template set id and template lang */
461 PROCEDURE get_template_set(p_api_version IN NUMBER DEFAULT 1,
462 p_init_msg_list IN VARCHAR2 DEFAULT FND_API.G_FALSE,
463 p_chr_id IN NUMBER,
464 x_template_set_id OUT NOCOPY NUMBER,
465 x_template_lang OUT NOCOPY VARCHAR2,
466 x_return_status OUT NOCOPY VARCHAR2,
467 x_msg_count OUT NOCOPY NUMBER,
468 x_msg_data OUT NOCOPY VARCHAR2)
469 IS
470 l_api_name CONSTANT VARCHAR2(30) := 'GET_TEMPLATE_SET';
471 l_api_version CONSTANT NUMBER := 1.0;
472
473 l_mod_name VARCHAR2(256) := lower(G_OKS_APP_NAME) || '.plsql.' || g_pkg_name || '.' || l_api_name;
474 l_error_text VARCHAR2(512);
475
476 BEGIN
477
478 --log key input parameters
479 IF (FND_LOG.level_procedure >= FND_LOG.g_current_runtime_level) THEN
480 FND_LOG.string(FND_LOG.level_procedure, l_mod_name || '.begin', 'p_chr_id=' || p_chr_id);
481 END IF;
482
483 --standard api initilization and checks
484 IF NOT FND_API.compatible_api_call (l_api_version, p_api_version, l_api_name, G_PKG_NAME)THEN
485 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
486 END IF;
487 IF FND_API.to_boolean(p_init_msg_list ) THEN
488 FND_MSG_PUB.initialize;
489 END IF;
490 x_return_status := FND_API.G_RET_STS_SUCCESS;
491
492 OKS_RENEW_UTIL_PVT.get_template_set(
493 p_api_version => 1,
494 p_init_msg_list => FND_API.G_FALSE,
495 p_chr_id => p_chr_id,
496 x_template_set_id => x_template_set_id,
497 x_template_lang => x_template_lang,
498 x_return_status => x_return_status,
499 x_msg_count => x_msg_count,
500 x_msg_data => x_msg_data);
501
502 IF x_return_status = FND_API.g_ret_sts_unexp_error THEN
503 RAISE FND_API.g_exc_unexpected_error;
504 ELSIF x_return_status = FND_API.g_ret_sts_error THEN
505 RAISE FND_API.g_exc_error;
506 END IF;
507
508 IF (FND_LOG.level_procedure >= FND_LOG.g_current_runtime_level) THEN
509 FND_LOG.string(FND_LOG.level_procedure, l_mod_name || '.end','x_return_status='|| x_return_status);
510 END IF;
511 FND_MSG_PUB.count_and_get(p_count => x_msg_count, p_data => x_msg_data );
512
513 EXCEPTION
514 WHEN FND_API.g_exc_error THEN
515 x_return_status := FND_API.g_ret_sts_error ;
516
517 IF (FND_LOG.level_error >= FND_LOG.g_current_runtime_level) THEN
518 FND_LOG.string(FND_LOG.level_error, l_mod_name || '.end_error', 'x_return_status=' || x_return_status);
519 END IF;
520 FND_MSG_PUB.count_and_get(p_count => x_msg_count, p_data => x_msg_data );
521
522 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
523 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
524
525 IF (FND_LOG.level_unexpected >= FND_LOG.g_current_runtime_level) THEN
526 FND_LOG.string(FND_LOG.level_unexpected, l_mod_name || '.end_unexpected_error', 'x_return_status=' || x_return_status);
527 END IF;
528 FND_MSG_PUB.count_and_get(p_count => x_msg_count, p_data => x_msg_data );
529
530 WHEN OTHERS THEN
531 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
532
533 IF (FND_LOG.level_unexpected >= FND_LOG.g_current_runtime_level) THEN
534 --first log the sqlerrm
535 l_error_text := substr (SQLERRM, 1, 240);
536 FND_LOG.string(FND_LOG.level_unexpected, l_mod_name || '.end_other_error', l_error_text);
537 --then add it to the message api list
538 FND_MSG_PUB.add_exc_msg(g_pkg_name, l_api_name, l_error_text);
539 END IF;
540 FND_MSG_PUB.count_and_get(p_count => x_msg_count, p_data => x_msg_data );
541
542 END get_template_set;
543
544
545 /* utility function to get template set id */
546 FUNCTION get_template_set_id(p_chr_id IN NUMBER
547 ) RETURN NUMBER
548 IS
549 BEGIN
550 RETURN OKS_RENEW_UTIL_PVT.get_template_set_id(p_chr_id => p_chr_id);
551 END get_template_set_id;
552
553 /* utility function to get template set lang */
554 FUNCTION get_template_lang(p_chr_id IN NUMBER
555 ) RETURN VARCHAR2
556 IS
557 BEGIN
558 RETURN OKS_RENEW_UTIL_PVT.get_template_lang(p_chr_id => p_chr_id);
559 END get_template_lang;
560
561 /*
562 Procedure evaluates the renewal rules setup in Contract or GCD to determine
563 the effective renewal type for a contract.
564
565 Parameters
566 p_chr_id : id of the contract whose renewal type needs to be determined, mandatory
567 p_amount : contract amount, optional, if not passed derived from p_chr_id
568 p_currency_code : contract currency, optional, if not passed derived from p_chr_id
569 p_rnrl_rec : record containing the effective renewal rules for the contract,
570 optional, if not populated, derived from p_chr_id
571 x_renewal_type : renewal type as determined
572 x_approval_type : approval type associated with the renewal type
573 x_threshold_used : Y|N indicating if GCD threshold where used to determine the renewal type
574 */
575 PROCEDURE GET_RENEWAL_TYPE
576 (
577 p_api_version IN NUMBER,
578 p_init_msg_list IN VARCHAR2 DEFAULT FND_API.G_FALSE,
579 x_return_status OUT NOCOPY VARCHAR2,
580 x_msg_count OUT NOCOPY NUMBER,
581 x_msg_data OUT NOCOPY VARCHAR2,
582 p_chr_id IN NUMBER,
583 p_amount IN NUMBER DEFAULT NULL,
584 p_currency_code IN VARCHAR2 DEFAULT NULL,
585 p_rnrl_rec IN rnrl_rec_type DEFAULT NULL,
586 x_renewal_type OUT NOCOPY VARCHAR2,
587 x_approval_type OUT NOCOPY VARCHAR2,
588 x_threshold_used OUT NOCOPY VARCHAR2
589 ) IS
590 l_api_name CONSTANT VARCHAR2(30) := 'GET_RENEWAL_TYPE';
591 l_api_version CONSTANT NUMBER := 1.0;
592
593 l_mod_name VARCHAR2(256) := lower(G_OKS_APP_NAME) || '.plsql.' || g_pkg_name || '.' || l_api_name;
594 l_error_text VARCHAR2(512);
595
596 BEGIN
597
598 --log key input parameters
599 IF (FND_LOG.level_procedure >= FND_LOG.g_current_runtime_level) THEN
600 FND_LOG.string(FND_LOG.level_procedure, l_mod_name || '.begin', 'p_chr_id=' || p_chr_id);
601 END IF;
602
603 --standard api initilization and checks
604 IF NOT FND_API.compatible_api_call (l_api_version, p_api_version, l_api_name, G_PKG_NAME)THEN
605 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
606 END IF;
607 IF FND_API.to_boolean(p_init_msg_list ) THEN
608 FND_MSG_PUB.initialize;
609 END IF;
610 x_return_status := FND_API.G_RET_STS_SUCCESS;
611
612 OKS_RENEW_UTIL_PVT.get_renewal_type(
613 p_api_version => 1,
614 p_init_msg_list => FND_API.G_FALSE,
615 x_return_status => x_return_status,
616 x_msg_count => x_msg_count,
617 x_msg_data => x_msg_data,
618 p_chr_id => p_chr_id,
619 p_amount => p_amount,
620 p_currency_code => p_currency_code,
621 p_rnrl_rec => p_rnrl_rec,
622 x_renewal_type => x_renewal_type,
623 x_approval_type => x_approval_type,
624 x_threshold_used => x_threshold_used);
625
626 IF x_return_status = FND_API.g_ret_sts_unexp_error THEN
627 RAISE FND_API.g_exc_unexpected_error;
628 ELSIF x_return_status = FND_API.g_ret_sts_error THEN
629 RAISE FND_API.g_exc_error;
630 END IF;
631
632 IF (FND_LOG.level_procedure >= FND_LOG.g_current_runtime_level) THEN
633 FND_LOG.string(FND_LOG.level_procedure, l_mod_name || '.end','x_return_status='|| x_return_status);
634 END IF;
635 FND_MSG_PUB.count_and_get(p_count => x_msg_count, p_data => x_msg_data );
636
637 EXCEPTION
638 WHEN FND_API.g_exc_error THEN
639 x_return_status := FND_API.g_ret_sts_error ;
640
641 IF (FND_LOG.level_error >= FND_LOG.g_current_runtime_level) THEN
642 FND_LOG.string(FND_LOG.level_error, l_mod_name || '.end_error', 'x_return_status=' || x_return_status);
643 END IF;
644 FND_MSG_PUB.count_and_get(p_count => x_msg_count, p_data => x_msg_data );
645
646 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
647 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
648
649 IF (FND_LOG.level_unexpected >= FND_LOG.g_current_runtime_level) THEN
650 FND_LOG.string(FND_LOG.level_unexpected, l_mod_name || '.end_unexpected_error', 'x_return_status=' || x_return_status);
651 END IF;
652 FND_MSG_PUB.count_and_get(p_count => x_msg_count, p_data => x_msg_data );
653
654 WHEN OTHERS THEN
655 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
656
657 IF (FND_LOG.level_unexpected >= FND_LOG.g_current_runtime_level) THEN
658 --first log the sqlerrm
659 l_error_text := substr (SQLERRM, 1, 240);
660 FND_LOG.string(FND_LOG.level_unexpected, l_mod_name || '.end_other_error', l_error_text);
661 --then add it to the message api list
662 FND_MSG_PUB.add_exc_msg(g_pkg_name, l_api_name, l_error_text);
663 END IF;
664 FND_MSG_PUB.count_and_get(p_count => x_msg_count, p_data => x_msg_data );
665
666 END GET_RENEWAL_TYPE;
667
668 END OKS_RENEW_UTIL_PUB;