DBA Data[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;