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