DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKS_EVTREN_PUB

Source


1 PACKAGE BODY OKS_EVTREN_PUB AS
2 /* $Header: OKSPERWB.pls 120.3 2005/11/23 16:25:20 skekkar noship $*/
3 
4     PROCEDURE renew
5     (
6      p_api_version IN NUMBER,
7      p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
8      p_contract_id IN NUMBER,
9      p_contract_number IN okc_k_headers_v.contract_number%TYPE DEFAULT NULL,
10      p_contract_version IN VARCHAR2 DEFAULT NULL,
11      p_contract_modifier IN okc_k_headers_v.contract_number_modifier%TYPE DEFAULT NULL,
12      p_object_version_number IN NUMBER DEFAULT NULL,
13      p_new_contract_number IN okc_k_headers_v.contract_number%TYPE DEFAULT NULL,
14      p_new_contract_modifier IN okc_k_headers_v.contract_number_modifier%TYPE DEFAULT NULL,
15      p_start_date IN DATE DEFAULT NULL,
16      p_end_date IN DATE DEFAULT NULL,
17      p_orig_start_date IN DATE DEFAULT NULL,
18      p_orig_end_date IN DATE DEFAULT NULL,
19      p_uom_code IN okx_units_of_measure_v.uom_code%TYPE DEFAULT NULL,
20      p_duration IN NUMBER DEFAULT NULL,
21      p_Renewal_Type IN VARCHAR2 DEFAULT NULL,
22      p_Renewal_Pricing_Type IN VARCHAR2 DEFAULT NULL,
23      p_Markup_Percent IN NUMBER DEFAULT NULL,
24      p_Price_List_Id1 IN VARCHAR2 DEFAULT NULL,
25      p_Price_List_Id2 IN VARCHAR2 DEFAULT NULL,
26      p_PDF_ID IN NUMBER DEFAULT NULL,
27      p_QCL_ID IN NUMBER DEFAULT NULL,
28      p_CGP_NEW_ID IN NUMBER DEFAULT NULL,
29      p_CGP_RENEW_ID IN NUMBER DEFAULT NULL,
30      p_PO_REQUIRED_YN IN VARCHAR2 DEFAULT NULL,
31      p_RLE_CODE IN VARCHAR2 DEFAULT NULL,
32      p_Function_Name IN VARCHAR2 DEFAULT NULL,
33      x_msg_count OUT NOCOPY NUMBER,
34      x_msg_data OUT NOCOPY VARCHAR2,
35      x_return_status OUT NOCOPY VARCHAR2
36      )
37     IS
38 
39     l_api_name CONSTANT VARCHAR2(30) := 'renew';
40     l_api_version CONSTANT NUMBER := 1.0;
41     l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
42     l_new_chr_id NUMBER;
43 
44     l_contract_id NUMBER;
45     l_contract_number okc_k_headers_v.contract_number%TYPE;
46     l_contract_version VARCHAR2(9);
47     l_contract_modifier okc_k_headers_v.contract_number_modifier%TYPE;
48     l_object_version_number NUMBER;
49     l_new_contract_number okc_k_headers_v.contract_number%TYPE;
50     l_new_contract_modifier okc_k_headers_v.contract_number_modifier%TYPE;
51     l_start_date DATE;
52     l_end_date DATE;
53     l_orig_start_date DATE;
54     l_orig_end_date DATE;
55     l_uom_code okx_units_of_measure_v.uom_code%TYPE;
56     l_duration NUMBER;
57     l_Renewal_Type VARCHAR2(200);
58     l_Renewal_Pricing_Type VARCHAR2(200);
59     l_Markup_Percent NUMBER;
60     l_Price_List_Id1 VARCHAR2(200);
61     l_Price_List_Id2 VARCHAR2(200);
62     l_PDF_ID NUMBER;
63     l_QCL_ID NUMBER;
64     l_CGP_NEW_ID NUMBER;
65     l_CGP_RENEW_ID NUMBER;
66     l_PO_REQUIRED_YN VARCHAR2(200);
67     l_RLE_CODE VARCHAR2(200);
68     l_Function_Name VARCHAR2(200);
69     l_contract_number_str VARCHAR2(250);
70 
71     CURSOR get_contr(l_chr_id NUMBER) IS
72         SELECT contract_number, contract_number_modifier
73         FROM okc_k_headers_all_b
74         WHERE id = l_chr_id;
75 
76 
77     BEGIN
78 
79         l_return_status := OKC_API.START_ACTIVITY(
80                                                   p_api_name => l_api_name,
81                                                   p_pkg_name => G_PKG_NAME,
82                                                   p_init_msg_list => p_init_msg_list,
83                                                   l_api_version => l_api_version,
84                                                   p_api_version => p_api_version,
85                                                   p_api_type => '_PUB',
86                                                   x_return_status => x_return_status
87                                                   );
88 
89         IF l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR THEN
90             RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
91         ELSIF l_return_status = OKC_API.G_RET_STS_ERROR THEN
92             RAISE OKC_API.G_EXCEPTION_ERROR;
93         END IF;
94 
95 
96         IF p_contract_id = OKC_API.G_MISS_NUM THEN
97             l_contract_id := NULL;
98         ELSE
99             l_contract_id := p_contract_id;
100         END IF;
101         IF p_contract_number = OKC_API.G_MISS_CHAR THEN
102             l_contract_number := NULL;
103         ELSE
104             l_contract_number := p_contract_number;
105         END IF;
106         IF p_contract_version = OKC_API.G_MISS_CHAR THEN
107             l_contract_version := NULL;
108         ELSE
109             l_contract_version := p_contract_version;
110         END IF;
111         IF p_contract_modifier = OKC_API.G_MISS_CHAR THEN
112             l_contract_modifier := NULL;
113         ELSE
114             l_contract_modifier := p_contract_modifier;
115         END IF;
116         IF p_object_version_number = OKC_API.G_MISS_NUM THEN
117             l_object_version_number := NULL;
118         ELSE
119             l_object_version_number := p_object_version_number;
120         END IF;
121         IF p_new_contract_number = OKC_API.G_MISS_CHAR THEN
122             l_new_contract_number := NULL;
123         ELSE
124             l_new_contract_number := p_new_contract_number;
125         END IF;
126         IF p_new_contract_modifier = OKC_API.G_MISS_CHAR THEN
127             l_new_contract_modifier := NULL;
128         ELSE
129             l_new_contract_modifier := p_new_contract_modifier;
130         END IF;
131         IF p_start_date = OKC_API.G_MISS_DATE THEN
132             l_start_date := NULL;
133         ELSE
134             l_start_date := p_start_date;
135         END IF;
136         IF p_end_date = OKC_API.G_MISS_DATE THEN
137             l_end_date := NULL;
138         ELSE
139             l_end_date := p_end_date;
140         END IF;
141         IF p_orig_start_date = OKC_API.G_MISS_DATE THEN
142             l_orig_start_date := NULL;
143         ELSE
144             l_orig_start_date := p_orig_start_date;
145         END IF;
146         IF p_orig_end_date = OKC_API.G_MISS_DATE THEN
147             l_orig_end_date := NULL;
148         ELSE
149             l_orig_end_date := p_orig_end_date;
150         END IF;
151         IF p_uom_code = OKC_API.G_MISS_CHAR THEN
152             l_uom_code := NULL;
153         ELSE
154             l_uom_code := p_uom_code;
155         END IF;
156         IF p_duration = OKC_API.G_MISS_NUM THEN
157             l_duration := NULL;
158         ELSE
159             l_duration := p_duration;
160         END IF;
161 
162         IF p_renewal_type = OKC_API.G_MISS_CHAR THEN
163             l_renewal_type := NULL;
164         ELSE
165             l_renewal_type := p_renewal_type;
166         END IF;
167 
168         IF p_renewal_pricing_type = OKC_API.G_MISS_CHAR THEN
169             l_renewal_pricing_type := NULL;
170         ELSE
171             l_renewal_pricing_type := p_renewal_pricing_type;
172         END IF;
173 
174         IF p_markup_percent = OKC_API.G_MISS_NUM THEN
175             l_markup_percent := NULL;
176         ELSE
177             l_markup_percent := p_markup_percent;
178         END IF;
179         IF p_price_list_id1 = OKC_API.G_MISS_CHAR THEN
180             l_price_list_id1 := NULL;
181         ELSE
182             l_price_list_id1 := p_price_list_id1;
183         END IF;
184         IF p_price_list_id2 = OKC_API.G_MISS_CHAR THEN
185             l_price_list_id2 := NULL;
186         ELSE
187             l_price_list_id2 := p_price_list_id2;
188         END IF;
189         IF p_pdf_id = OKC_API.G_MISS_NUM THEN
190             l_pdf_id := NULL;
191         ELSE
192             l_pdf_id := p_pdf_id;
193         END IF;
194         IF p_qcl_id = OKC_API.G_MISS_NUM THEN
195             l_qcl_id := NULL;
196         ELSE
197             l_qcl_id := p_qcl_id;
198         END IF;
199         IF p_cgp_new_id = OKC_API.G_MISS_NUM THEN
200             l_cgp_new_id := NULL;
201         ELSE
202             l_cgp_new_id := p_cgp_new_id;
203         END IF;
204         IF p_cgp_renew_id = OKC_API.G_MISS_NUM THEN
205             l_cgp_renew_id := NULL;
206         ELSE
207             l_cgp_renew_id := p_cgp_renew_id;
208         END IF;
209         IF p_po_required_yn = OKC_API.G_MISS_CHAR THEN
210             l_po_required_yn := NULL;
211         ELSE
212             l_po_required_yn := p_po_required_yn;
213         END IF;
214         IF p_rle_code = OKC_API.G_MISS_CHAR THEN
215             l_rle_code := NULL;
216         ELSE
217             l_rle_code := p_rle_code;
218         END IF;
219         IF p_function_name = OKC_API.G_MISS_CHAR THEN
220             l_function_name := NULL;
221         ELSE
222             l_function_name := p_function_name;
223         END IF;
224 
225         IF l_contract_number IS NULL THEN
226             OPEN get_contr(l_contract_id);
227             FETCH get_contr INTO l_contract_number, l_contract_modifier;
228             CLOSE get_contr;
229         END IF;
230 /*
231 For R12 moved to the new Rnewals API
232 OKS_RENEW_PVT.Renew
233 (
234 	p_api_version			=> 1.0,
235 	p_init_msg_list			=> OKC_API.G_FALSE,
236 	p_contract_id			=> l_contract_id,
237 	p_contract_number		=> l_contract_number,
238 	p_contract_version		=> l_contract_version,
239 	p_contract_modifier		=> l_contract_modifier,
240 	p_object_version_number	=> l_object_version_number,
241 	p_new_contract_number	=> l_new_contract_number,
242 	p_new_contract_modifier	=> l_new_contract_modifier,
243 	p_start_date			=> l_start_date,
244 	p_end_date			=> l_end_date,
245 	p_orig_start_date		=> l_orig_start_date,
246 	p_orig_end_date		=> l_orig_end_date,
247 	p_uom_code			=> l_uom_code,
248 	p_duration			=> l_duration,
249 	p_Renewal_Type			=> l_renewal_type,
250 	p_Renewal_Pricing_Type	=> l_renewal_pricing_type,
251 	p_Markup_Percent		=> l_markup_percent,
252 	p_Price_List_Id1		=> l_price_list_id1,
253 	p_Price_List_Id2		=> l_price_list_id2,
254 	p_PDF_ID			     => l_pdf_id,
255 	p_QCL_ID			     => l_qcl_id,
256 	p_CGP_NEW_ID			=> l_cgp_new_id,
257 	p_CGP_RENEW_ID			=> l_cgp_renew_id,
258 	p_PO_REQUIRED_YN		=> l_po_required_yn,
259 	p_RLE_CODE			=> l_rle_code,
260 	p_Function_Name		=> l_function_name,
261 	p_renewal_called_from_ui	=> 'N',
262   x_new_chr_id             => l_new_chr_id,
263 	x_msg_count			=> x_msg_count,
264 	x_msg_data			=> x_msg_data,
265 	x_return_status	     => x_return_status
266 );
267 */
268 
269         OKS_RENEW_CONTRACT_PVT.renew_contract(
270                                               p_api_version => 1,
271                                               p_init_msg_list => FND_API.G_FALSE,
272                                               p_commit => FND_API.G_FALSE,
273                                               p_chr_id => l_contract_id,
274                                               p_new_contract_number => l_new_contract_number,
275                                               p_new_contract_modifier => l_new_contract_modifier,
276                                               p_new_start_date => l_start_date,
277                                               p_new_end_date => l_end_date,
278                                               p_new_duration => l_duration,
279                                               p_new_uom_code => l_uom_code,
280                                               p_renewal_called_from_ui => 'N',
281                                               x_chr_id => l_new_chr_id,
282                                               x_msg_count => x_msg_count,
283                                               x_msg_data => x_msg_data,
284                                               x_return_status => x_return_status
285                                               ) ;
286 
287         IF l_contract_modifier IS NOT NULL THEN
288             l_contract_number_str := l_contract_number || '-' || l_contract_modifier;
289         ELSE
290             l_contract_number_str := l_contract_number;
291         END IF;
292 
293         IF x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR THEN
294             RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
295         ELSIF x_return_status = OKC_API.G_RET_STS_ERROR THEN
296             RAISE OKC_API.G_EXCEPTION_ERROR;
297         END IF;
298 
299         x_return_status := 'S';
300 
301         OKC_API.set_message
302         (p_app_name => 'OKS',
303          p_msg_name => 'OKS_AUTO_RENEW_SUCCESS',
304          p_token1 => 'CONTRACTNUMBER',
305          p_token1_value => l_contract_number_str
306          );
307 
308         OKC_API.END_ACTIVITY
309         (
310          x_msg_count => x_msg_count,
311          x_msg_data => x_msg_data
312          );
313 
314     EXCEPTION
315         WHEN OKC_API.G_EXCEPTION_ERROR THEN
316 
317             OKC_API.set_message
318             (p_app_name => 'OKS',
319              p_msg_name => 'OKS_AUTO_RENEW_FAIL',
320              p_token1 => 'CONTRACTNUMBER',
321              p_token1_value => l_contract_number_str
322              );
323 
324             x_return_status := OKC_API.HANDLE_EXCEPTIONS
325             (
326              l_api_name,
327              G_PKG_NAME,
328              'OKC_API.G_RET_STS_ERROR',
329              x_msg_count,
330              x_msg_data,
331              '_PUB'
332              );
333 
334         WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
335 
336             OKC_API.set_message
337             (p_app_name => 'OKS',
338              p_msg_name => 'OKS_AUTO_RENEW_FAIL',
339              p_token1 => 'CONTRACTNUMBER',
340              p_token1_value => l_contract_number_str
341              );
342 
343             x_return_status := OKC_API.HANDLE_EXCEPTIONS
344             (
345              l_api_name,
346              G_PKG_NAME,
347              'OKC_API.G_RET_STS_UNEXP_ERROR',
348              x_msg_count,
349              x_msg_data,
350              '_PUB'
351              );
352 
353         WHEN OTHERS THEN
354 
355             OKC_API.set_message
356             (p_app_name => 'OKS',
357              p_msg_name => 'OKS_AUTO_RENEW_FAIL',
358              p_token1 => 'CONTRACTNUMBER',
359              p_token1_value => l_contract_number_str
360              );
361 
362             x_return_status := OKC_API.HANDLE_EXCEPTIONS
363             (
364              l_api_name,
365              G_PKG_NAME,
366              'OTHERS',
367              x_msg_count,
368              x_msg_data,
369              '_PUB'
370              );
371 
372     END;
373 
374 END OKS_EVTREN_PUB;