[Home] [Help]
PACKAGE BODY: APPS.OKL_CONTRACT_PROD_OPTNS_PUB
Source
1 package body OKL_CONTRACT_PROD_OPTNS_PUB as
2 /* $Header: OKLPCSPB.pls 115.6 2004/04/13 10:42:51 rnaik noship $ */
3
4 -- Start of comments
5 -- Procedure Name : CREATE_CONTRACT_OPTION
6 -- Description : creates contract option
7 -- Business Rules :
8 -- Parameters :
9 -- Version : 1.0
10 -- End of comments
11 PROCEDURE create_contract_option(p_api_version IN NUMBER,
12 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
13 x_return_status OUT NOCOPY VARCHAR2,
14 x_msg_count OUT NOCOPY NUMBER,
15 x_msg_data OUT NOCOPY VARCHAR2,
16 p_cspv_rec IN cspv_rec_type,
17 x_cspv_rec OUT NOCOPY cspv_rec_type) IS
18
19 l_cspv_rec cspv_rec_type;
20 l_return_status VARCHAR2(3) := FND_API.G_RET_STS_SUCCESS;
21 l_api_name CONSTANT VARCHAR2(30) := 'CREATE_CONTRACT_OPTION';
22 l_api_version CONSTANT NUMBER := 1;
23 BEGIN
24 savepoint create_contract_option_pub;
25 -- Standard call to check for call compatibility.
26 IF NOT (FND_API.Compatible_API_Call (l_api_version,
27 p_api_version,
28 l_api_name,
29 G_PKG_NAME)) THEN
30 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
31 END IF;
32 -- Initialize message list if p_init_msg_list is set to TRUE.
33 IF (FND_API.to_Boolean( p_init_msg_list )) THEN
34 FND_MSG_PUB.initialize;
35 END IF;
36 l_cspv_rec := p_cspv_rec;
37 g_cspv_rec := l_cspv_rec;
38 -- Customer pre processing section
39 -- Verticle industry pre- processing section
40 -- Business API call section
41 l_cspv_rec.id := p_cspv_rec.id;
42 l_cspv_rec.object_version_number := p_cspv_rec.object_version_number;
43 OKL_CONTRACT_PROD_OPTNS_PVT.Create_contract_option(p_api_version => p_api_version,
44 p_init_msg_list => p_init_msg_list,
45 x_return_status => l_return_status,
46 x_msg_count => x_msg_count,
47 x_msg_data => x_msg_data,
48 p_cspv_rec => l_cspv_rec,
49 x_cspv_rec => x_cspv_rec);
50 IF (l_return_status = FND_API.G_RET_STS_ERROR ) THEN
51 RAISE FND_API.G_EXC_ERROR;
52 ELSIF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
53 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
54 END IF;
55 l_cspv_rec := x_cspv_rec;
56 g_cspv_rec := l_cspv_rec;
57 -- Verticle industry post- processing section
58 -- Customer post processing section
59 x_return_status := FND_API.G_RET_STS_SUCCESS;
60 EXCEPTION
61 When FND_API.G_EXC_ERROR then
62 ROLLBACK TO create_contract_option_pub;
63 x_return_status := FND_API.G_RET_STS_ERROR;
64 FND_MSG_PUB.count_and_get (p_count => x_msg_count,
65 p_data => x_msg_data);
66 When FND_API.G_EXC_UNEXPECTED_ERROR then
67 ROLLBACK TO create_contract_option_pub;
68 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
69 FND_MSG_PUB.count_and_get (p_count => x_msg_count,
70 p_data => x_msg_data);
71 When OTHERS then
72 ROLLBACK TO create_contract_option_pub;
73 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
74 FND_MSG_PUB.ADD_EXC_MSG( G_PKG_NAME, 'create_contract_option_pub');
75 FND_MSG_PUB.count_and_get (p_encoded => FND_API.G_FALSE,
76 p_count => x_msg_count,
77 p_data => x_msg_data);
78 END create_contract_option;
79
80 -- Start of comments
81 --
82 -- Procedure Name : CREATE_CONTRACT_OPTION
83 -- Description : creates contract option
84 -- Business Rules :
85 -- Parameters :
86 -- Version : 1.0
87 -- End of comments
88
89 PROCEDURE create_contract_option(
90 p_api_version IN NUMBER,
91 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
92 x_return_status OUT NOCOPY VARCHAR2,
93 x_msg_count OUT NOCOPY NUMBER,
94 x_msg_data OUT NOCOPY VARCHAR2,
95 p_cspv_tbl IN cspv_tbl_type,
96 x_cspv_tbl OUT NOCOPY cspv_tbl_type) IS
97 i NUMBER := 0;
98 l_return_status VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
99 BEGIN
100 x_return_status := FND_API.G_RET_STS_SUCCESS;
101 IF p_cspv_tbl.COUNT > 0 THEN
102 i := p_cspv_tbl.FIRST;
103 LOOP
104 create_contract_option(p_api_version => p_api_version,
105 p_init_msg_list => p_init_msg_list,
106 x_return_status => l_return_status,
107 x_msg_count => x_msg_count,
108 x_msg_data => x_msg_data,
109 p_cspv_rec => p_cspv_tbl(i),
110 x_cspv_rec => x_cspv_tbl(i));
111 IF (l_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
112 IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
113 x_return_status := l_return_status;
114 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
115 ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
116 x_return_status := l_return_status;
117 RAISE FND_API.G_EXC_ERROR;
118 ELSE
119 x_return_status := l_return_status;
120 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
121 END IF;
122 END IF;
123 EXIT WHEN (i = p_cspv_tbl.LAST);
124 i := p_cspv_tbl.NEXT(i);
125 END LOOP;
126 END IF;
127 EXCEPTION
128 WHEN FND_API.G_EXC_ERROR THEN
129 ROLLBACK TO create_contract_option_pub;
130 x_return_status := FND_API.G_RET_STS_ERROR;
131 FND_MSG_PUB.count_and_get (p_count => x_msg_count,
132 p_data => x_msg_data);
133 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
134 ROLLBACK TO create_contract_option_pub;
135 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
136 FND_MSG_PUB.count_and_get (p_count => x_msg_count,
137 p_data => x_msg_data);
138 WHEN OTHERS then
139 ROLLBACK TO create_contract_option_pub;
140 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
141 FND_MSG_PUB.ADD_EXC_MSG(G_PKG_NAME, 'create_contract_option_pub');
142 FND_MSG_PUB.count_and_get (p_encoded => FND_API.G_FALSE,
143 p_count => x_msg_count,
144 p_data => x_msg_data);
145 END create_contract_option;
146
147 -- Start of comments
148 --
149 -- Procedure Name : UPDATE_CONTRACT_OPTION
150 -- Description : updates contract option
151 -- Business Rules :
152 -- Parameters :
153 -- Version : 1.0
154 -- End of comments
155 PROCEDURE update_contract_option(p_api_version IN NUMBER,
156 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
157 x_return_status OUT NOCOPY VARCHAR2,
158 x_msg_count OUT NOCOPY NUMBER,
159 x_msg_data OUT NOCOPY VARCHAR2,
160 p_cspv_rec IN cspv_rec_type,
161 x_cspv_rec OUT NOCOPY cspv_rec_type) IS
162
163 l_cspv_rec cspv_rec_type;
164 l_return_status VARCHAR2(3) := FND_API.G_RET_STS_SUCCESS;
165 l_api_name CONSTANT VARCHAR2(30) := 'UPDATE_CONTRACT_OPTION';
166 l_api_version CONSTANT NUMBER := 1;
167 BEGIN
168 savepoint update_contract_option_pub;
169 -- Standard call to check for call compatibility.
170 IF NOT (FND_API.Compatible_API_Call (l_api_version,
171 p_api_version,
172 l_api_name,
173 G_PKG_NAME)) THEN
174 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
175 END IF;
176 -- Initialize message list if p_init_msg_list is set to TRUE.
177 IF (FND_API.to_Boolean( p_init_msg_list )) THEN
178 FND_MSG_PUB.initialize;
179 END IF;
180 l_cspv_rec := p_cspv_rec;
181 g_cspv_rec := l_cspv_rec;
182 -- Customer pre processing section
183 -- Verticle industry pre- processing section
184 -- Business API call section
185 l_cspv_rec.id := p_cspv_rec.id;
186 l_cspv_rec.object_version_number := p_cspv_rec.object_version_number;
187 OKL_CONTRACT_PROD_OPTNS_PVT.update_contract_option(p_api_version => p_api_version,
188 p_init_msg_list => p_init_msg_list,
189 x_return_status => l_return_status,
190 x_msg_count => x_msg_count,
191 x_msg_data => x_msg_data,
192 p_cspv_rec => l_cspv_rec,
193 x_cspv_rec => x_cspv_rec);
194 IF (l_return_status = FND_API.G_RET_STS_ERROR ) THEN
195 RAISE FND_API.G_EXC_ERROR;
196 ELSIF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
197 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
198 END IF;
199 l_cspv_rec := x_cspv_rec;
200 g_cspv_rec := l_cspv_rec;
201 -- Verticle industry post- processing section
202 -- Customer post processing section
203 x_return_status := FND_API.G_RET_STS_SUCCESS;
204 EXCEPTION
205 When FND_API.G_EXC_ERROR then
206 ROLLBACK TO update_contract_option_pub;
207 x_return_status := FND_API.G_RET_STS_ERROR;
208 FND_MSG_PUB.count_and_get (p_count => x_msg_count,
209 p_data => x_msg_data);
210 When FND_API.G_EXC_UNEXPECTED_ERROR then
211 ROLLBACK TO update_contract_option_pub;
212 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
213 FND_MSG_PUB.count_and_get (p_count => x_msg_count,
214 p_data => x_msg_data);
215 When OTHERS then
216 ROLLBACK TO update_contract_option_pub;
217 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
218 FND_MSG_PUB.ADD_EXC_MSG( G_PKG_NAME, 'update_contract_option_pub');
219 FND_MSG_PUB.count_and_get (p_encoded => FND_API.G_FALSE,
220 p_count => x_msg_count,
221 p_data => x_msg_data);
222 END update_contract_option;
223
224 -- Start of comments
225 --
226 -- Procedure Name : UPDATE_CONTRACT_OPTION
227 -- Description : updates contract option
228 -- Business Rules :
229 -- Parameters :
230 -- Version : 1.0
231 -- End of comments
232
233 PROCEDURE update_contract_option(
234 p_api_version IN NUMBER,
235 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
236 x_return_status OUT NOCOPY VARCHAR2,
237 x_msg_count OUT NOCOPY NUMBER,
238 x_msg_data OUT NOCOPY VARCHAR2,
239 p_cspv_tbl IN cspv_tbl_type,
240 x_cspv_tbl OUT NOCOPY cspv_tbl_type) IS
241 i NUMBER := 0;
242 l_return_status VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
243 BEGIN
244 x_return_status := FND_API.G_RET_STS_SUCCESS;
245 IF p_cspv_tbl.COUNT > 0 THEN
246 i := p_cspv_tbl.FIRST;
247 LOOP
248 update_contract_option(p_api_version => p_api_version,
249 p_init_msg_list => p_init_msg_list,
250 x_return_status => l_return_status,
251 x_msg_count => x_msg_count,
252 x_msg_data => x_msg_data,
253 p_cspv_rec => p_cspv_tbl(i),
254 x_cspv_rec => x_cspv_tbl(i));
255 IF (l_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
256 IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
257 x_return_status := l_return_status;
258 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
259 ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
260 x_return_status := l_return_status;
261 RAISE FND_API.G_EXC_ERROR;
262 ELSE
263 x_return_status := l_return_status;
264 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
265 END IF;
266 END IF;
267 EXIT WHEN (i = p_cspv_tbl.LAST);
268 i := p_cspv_tbl.NEXT(i);
269 END LOOP;
270 END IF;
271 EXCEPTION
272 WHEN FND_API.G_EXC_ERROR THEN
273 ROLLBACK TO update_contract_option_pub;
274 x_return_status := FND_API.G_RET_STS_ERROR;
275 FND_MSG_PUB.count_and_get (p_count => x_msg_count,
276 p_data => x_msg_data);
277 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
278 ROLLBACK TO update_contract_option_pub;
279 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
280 FND_MSG_PUB.count_and_get (p_count => x_msg_count,
281 p_data => x_msg_data);
282 WHEN OTHERS then
283 ROLLBACK TO update_contract_option_pub;
284 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
285 FND_MSG_PUB.ADD_EXC_MSG(G_PKG_NAME, 'update_contract_option_pub');
286 FND_MSG_PUB.count_and_get (p_encoded => FND_API.G_FALSE,
287 p_count => x_msg_count,
288 p_data => x_msg_data);
289 END update_contract_option;
290
291 -- Start of comments
292 --
293 -- Procedure Name : DELETE_CONTRACT_OPTION
294 -- Description : deletes contract option
295 -- Business Rules :
296 -- Parameters :
297 -- Version : 1.0
298 -- End of comments
299 PROCEDURE delete_contract_option(p_api_version IN NUMBER,
300 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
301 x_return_status OUT NOCOPY VARCHAR2,
302 x_msg_count OUT NOCOPY NUMBER,
303 x_msg_data OUT NOCOPY VARCHAR2,
304 p_cspv_rec IN cspv_rec_type) IS
305
306 l_cspv_rec cspv_rec_type;
307 l_return_status VARCHAR2(3) := FND_API.G_RET_STS_SUCCESS;
308 l_api_name CONSTANT VARCHAR2(30) := 'DELETE_CONTRACT_OPTION';
309 l_api_version CONSTANT NUMBER := 1;
310 BEGIN
311 savepoint delete_contract_option_pub;
312 -- Standard call to check for call compatibility.
313 IF NOT (FND_API.Compatible_API_Call (l_api_version,
314 p_api_version,
315 l_api_name,
316 G_PKG_NAME)) THEN
317 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
318 END IF;
319 -- Initialize message list if p_init_msg_list is set to TRUE.
320 IF (FND_API.to_Boolean( p_init_msg_list )) THEN
321 FND_MSG_PUB.initialize;
322 END IF;
323 l_cspv_rec := p_cspv_rec;
324 g_cspv_rec := l_cspv_rec;
325 -- Customer pre processing section
326 -- Verticle industry pre- processing section
327 -- Business API call section
328 l_cspv_rec.id := p_cspv_rec.id;
329 l_cspv_rec.object_version_number := p_cspv_rec.object_version_number;
330 OKL_CONTRACT_PROD_OPTNS_PVT.delete_contract_option(p_api_version => p_api_version,
331 p_init_msg_list => p_init_msg_list,
332 x_return_status => l_return_status,
333 x_msg_count => x_msg_count,
334 x_msg_data => x_msg_data,
335 p_cspv_rec => l_cspv_rec);
336 IF (l_return_status = FND_API.G_RET_STS_ERROR ) THEN
337 RAISE FND_API.G_EXC_ERROR;
338 ELSIF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
339 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
340 END IF;
341 g_cspv_rec := l_cspv_rec;
342 -- Verticle industry post- processing section
343 -- Customer post processing section
344 x_return_status := FND_API.G_RET_STS_SUCCESS;
345 EXCEPTION
346 When FND_API.G_EXC_ERROR then
347 ROLLBACK TO delete_contract_option_pub;
348 x_return_status := FND_API.G_RET_STS_ERROR;
349 FND_MSG_PUB.count_and_get (p_count => x_msg_count,
350 p_data => x_msg_data);
351 When FND_API.G_EXC_UNEXPECTED_ERROR then
352 ROLLBACK TO delete_contract_option_pub;
353 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
354 FND_MSG_PUB.count_and_get (p_count => x_msg_count,
355 p_data => x_msg_data);
356 When OTHERS then
357 ROLLBACK TO delete_contract_option_pub;
358 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
359 FND_MSG_PUB.ADD_EXC_MSG( G_PKG_NAME, 'delete_contract_option_pub');
360 FND_MSG_PUB.count_and_get (p_encoded => FND_API.G_FALSE,
361 p_count => x_msg_count,
362 p_data => x_msg_data);
363 END delete_contract_option;
364
365 -- Start of comments
366 --
367 -- Procedure Name : DELETE_CONTRACT_OPTION
368 -- Description : deletes contract option
369 -- Business Rules :
370 -- Parameters :
371 -- Version : 1.0
372 -- End of comments
373
374 PROCEDURE delete_contract_option(
375 p_api_version IN NUMBER,
376 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
377 x_return_status OUT NOCOPY VARCHAR2,
378 x_msg_count OUT NOCOPY NUMBER,
379 x_msg_data OUT NOCOPY VARCHAR2,
380 p_cspv_tbl IN cspv_tbl_type) IS
381 i NUMBER := 0;
382 l_return_status VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
383 BEGIN
384 x_return_status := FND_API.G_RET_STS_SUCCESS;
385 IF p_cspv_tbl.COUNT > 0 THEN
386 i := p_cspv_tbl.FIRST;
387 LOOP
388 delete_contract_option(p_api_version => p_api_version,
389 p_init_msg_list => p_init_msg_list,
390 x_return_status => l_return_status,
391 x_msg_count => x_msg_count,
392 x_msg_data => x_msg_data,
393 p_cspv_rec => p_cspv_tbl(i));
394 IF (l_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
395 IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
396 x_return_status := l_return_status;
397 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
398 ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
399 x_return_status := l_return_status;
400 RAISE FND_API.G_EXC_ERROR;
401 ELSE
402 x_return_status := l_return_status;
403 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
404 END IF;
405 END IF;
406 EXIT WHEN (i = p_cspv_tbl.LAST);
407 i := p_cspv_tbl.NEXT(i);
408 END LOOP;
409 END IF;
410 EXCEPTION
411 WHEN FND_API.G_EXC_ERROR THEN
412 ROLLBACK TO delete_contract_option_pub;
413 x_return_status := FND_API.G_RET_STS_ERROR;
414 FND_MSG_PUB.count_and_get (p_count => x_msg_count,
415 p_data => x_msg_data);
416 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
417 ROLLBACK TO delete_contract_option_pub;
418 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
419 FND_MSG_PUB.count_and_get (p_count => x_msg_count,
420 p_data => x_msg_data);
421 WHEN OTHERS then
422 ROLLBACK TO delete_contract_option_pub;
423 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
424 FND_MSG_PUB.ADD_EXC_MSG(G_PKG_NAME, 'delete_contract_option_pub');
425 FND_MSG_PUB.count_and_get (p_encoded => FND_API.G_FALSE,
426 p_count => x_msg_count,
427 p_data => x_msg_data);
428 END delete_contract_option;
429
430
431 -- Start of comments
432 --
433 -- Procedure Name : VALIDATE_CONTRACT_OPTION
434 -- Description : validates contract option
435 -- Business Rules :
436 -- Parameters :
437 -- Version : 1.0
438 -- End of comments
439 PROCEDURE validate_contract_option(p_api_version IN NUMBER,
440 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
441 x_return_status OUT NOCOPY VARCHAR2,
442 x_msg_count OUT NOCOPY NUMBER,
443 x_msg_data OUT NOCOPY VARCHAR2,
444 p_cspv_rec IN cspv_rec_type) IS
445
446 l_cspv_rec cspv_rec_type;
447 l_return_status VARCHAR2(3) := FND_API.G_RET_STS_SUCCESS;
448 l_api_name CONSTANT VARCHAR2(30) := 'VALIDATE_CONTRACT_OPTION';
449 l_api_version CONSTANT NUMBER := 1;
450 BEGIN
451 savepoint validate_contract_option_pub;
452 -- Standard call to check for call compatibility.
453 IF NOT (FND_API.Compatible_API_Call (l_api_version,
454 p_api_version,
455 l_api_name,
456 G_PKG_NAME)) THEN
457 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
458 END IF;
459 -- Initialize message list if p_init_msg_list is set to TRUE.
460 IF (FND_API.to_Boolean( p_init_msg_list )) THEN
461 FND_MSG_PUB.initialize;
462 END IF;
463 l_cspv_rec := p_cspv_rec;
464 g_cspv_rec := l_cspv_rec;
465 -- Customer pre processing section
466 -- Verticle industry pre- processing section
467 -- Business API call section
468 l_cspv_rec.id := p_cspv_rec.id;
469 l_cspv_rec.object_version_number := p_cspv_rec.object_version_number;
470 OKL_CONTRACT_PROD_OPTNS_PVT.validate_contract_option(p_api_version => p_api_version,
471 p_init_msg_list => p_init_msg_list,
472 x_return_status => l_return_status,
473 x_msg_count => x_msg_count,
474 x_msg_data => x_msg_data,
475 p_cspv_rec => l_cspv_rec);
476 IF (l_return_status = FND_API.G_RET_STS_ERROR ) THEN
477 RAISE FND_API.G_EXC_ERROR;
478 ELSIF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
479 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
480 END IF;
481 g_cspv_rec := l_cspv_rec;
482 -- Verticle industry post- processing section
483 -- Customer post processing section
484 x_return_status := FND_API.G_RET_STS_SUCCESS;
485 EXCEPTION
486 When FND_API.G_EXC_ERROR then
487 ROLLBACK TO validate_contract_option_pub;
488 x_return_status := FND_API.G_RET_STS_ERROR;
489 FND_MSG_PUB.count_and_get (p_count => x_msg_count,
490 p_data => x_msg_data);
491 When FND_API.G_EXC_UNEXPECTED_ERROR then
492 ROLLBACK TO validate_contract_option_pub;
493 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
494 FND_MSG_PUB.count_and_get (p_count => x_msg_count,
495 p_data => x_msg_data);
496 When OTHERS then
497 ROLLBACK TO validate_contract_option_pub;
498 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
499 FND_MSG_PUB.ADD_EXC_MSG( G_PKG_NAME, 'validate_contract_option_pub');
500 FND_MSG_PUB.count_and_get (p_encoded => FND_API.G_FALSE,
501 p_count => x_msg_count,
502 p_data => x_msg_data);
503 END validate_contract_option;
504
505 -- Start of comments
506 --
507 -- Procedure Name : VALIDATE_CONTRACT_OPTION
508 -- Description : validates contract option
509 -- Business Rules :
510 -- Parameters :
511 -- Version : 1.0
512 -- End of comments
513
514 PROCEDURE validate_contract_option(
515 p_api_version IN NUMBER,
516 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
517 x_return_status OUT NOCOPY VARCHAR2,
518 x_msg_count OUT NOCOPY NUMBER,
519 x_msg_data OUT NOCOPY VARCHAR2,
520 p_cspv_tbl IN cspv_tbl_type) IS
521 i NUMBER := 0;
522 l_return_status VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
523 BEGIN
524 x_return_status := FND_API.G_RET_STS_SUCCESS;
525 IF p_cspv_tbl.COUNT > 0 THEN
526 i := p_cspv_tbl.FIRST;
527 LOOP
528 validate_contract_option(p_api_version => p_api_version,
529 p_init_msg_list => p_init_msg_list,
530 x_return_status => l_return_status,
531 x_msg_count => x_msg_count,
532 x_msg_data => x_msg_data,
533 p_cspv_rec => p_cspv_tbl(i));
534 IF (l_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
535 IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
536 x_return_status := l_return_status;
537 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
538 ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
539 x_return_status := l_return_status;
540 RAISE FND_API.G_EXC_ERROR;
541 ELSE
542 x_return_status := l_return_status;
543 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
544 END IF;
545 END IF;
546 EXIT WHEN (i = p_cspv_tbl.LAST);
547 i := p_cspv_tbl.NEXT(i);
548 END LOOP;
549 END IF;
550 EXCEPTION
551 WHEN FND_API.G_EXC_ERROR THEN
552 ROLLBACK TO validate_contract_option_pub;
553 x_return_status := FND_API.G_RET_STS_ERROR;
554 FND_MSG_PUB.count_and_get (p_count => x_msg_count,
555 p_data => x_msg_data);
556 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
557 ROLLBACK TO validate_contract_option_pub;
558 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
559 FND_MSG_PUB.count_and_get (p_count => x_msg_count,
560 p_data => x_msg_data);
561 WHEN OTHERS then
562 ROLLBACK TO validate_contract_option_pub;
563 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
564 FND_MSG_PUB.ADD_EXC_MSG(G_PKG_NAME, 'validate_contract_option_pub');
565 FND_MSG_PUB.count_and_get (p_encoded => FND_API.G_FALSE,
566 p_count => x_msg_count,
567 p_data => x_msg_data);
568 END validate_contract_option;
569
570
571 -- Start of comments
572 --
573 -- Procedure Name : LOCK_CONTRACT_OPTION
574 -- Description : locks contract option
575 -- Business Rules :
576 -- Parameters :
577 -- Version : 1.0
578 -- End of comments
579 PROCEDURE lock_contract_option(p_api_version IN NUMBER,
580 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
581 x_return_status OUT NOCOPY VARCHAR2,
582 x_msg_count OUT NOCOPY NUMBER,
583 x_msg_data OUT NOCOPY VARCHAR2,
584 p_cspv_rec IN cspv_rec_type) IS
585
586 l_cspv_rec cspv_rec_type;
587 l_return_status VARCHAR2(3) := FND_API.G_RET_STS_SUCCESS;
588 l_api_name CONSTANT VARCHAR2(30) := 'LOCK_CONTRACT_OPTION';
589 l_api_version CONSTANT NUMBER := 1;
590 BEGIN
591 savepoint lock_contract_option_pub;
592 -- Standard call to check for call compatibility.
593 IF NOT (FND_API.Compatible_API_Call (l_api_version,
594 p_api_version,
595 l_api_name,
596 G_PKG_NAME)) THEN
597 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
598 END IF;
599 -- Initialize message list if p_init_msg_list is set to TRUE.
600 IF (FND_API.to_Boolean( p_init_msg_list )) THEN
601 FND_MSG_PUB.initialize;
602 END IF;
603 l_cspv_rec := p_cspv_rec;
604 -- Business API call section
605 l_cspv_rec.id := p_cspv_rec.id;
606 l_cspv_rec.object_version_number := p_cspv_rec.object_version_number;
607 OKL_CONTRACT_PROD_OPTNS_PVT.lock_contract_option(p_api_version => p_api_version,
608 p_init_msg_list => p_init_msg_list,
609 x_return_status => l_return_status,
610 x_msg_count => x_msg_count,
611 x_msg_data => x_msg_data,
612 p_cspv_rec => l_cspv_rec);
613 IF (l_return_status = FND_API.G_RET_STS_ERROR ) THEN
614 RAISE FND_API.G_EXC_ERROR;
615 ELSIF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
616 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
617 END IF;
618 g_cspv_rec := l_cspv_rec;
619 x_return_status := FND_API.G_RET_STS_SUCCESS;
620 EXCEPTION
621 When FND_API.G_EXC_ERROR then
622 ROLLBACK TO lock_contract_option_pub;
623 x_return_status := FND_API.G_RET_STS_ERROR;
624 FND_MSG_PUB.count_and_get (p_count => x_msg_count,
625 p_data => x_msg_data);
626 When FND_API.G_EXC_UNEXPECTED_ERROR then
627 ROLLBACK TO lock_contract_option_pub;
628 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
629 FND_MSG_PUB.count_and_get (p_count => x_msg_count,
630 p_data => x_msg_data);
631 When OTHERS then
632 ROLLBACK TO lock_contract_option_pub;
633 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
634 FND_MSG_PUB.ADD_EXC_MSG( G_PKG_NAME, 'lock_contract_option_pub');
635 FND_MSG_PUB.count_and_get (p_encoded => FND_API.G_FALSE,
636 p_count => x_msg_count,
637 p_data => x_msg_data);
638 END lock_contract_option;
639
640 -- Start of comments
641 --
642 -- Procedure Name : LOCK_CONTRACT_OPTION
643 -- Description : locks contract option
644 -- Business Rules :
645 -- Parameters :
646 -- Version : 1.0
647 -- End of comments
648
649 PROCEDURE lock_contract_option(
650 p_api_version IN NUMBER,
651 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
652 x_return_status OUT NOCOPY VARCHAR2,
653 x_msg_count OUT NOCOPY NUMBER,
654 x_msg_data OUT NOCOPY VARCHAR2,
655 p_cspv_tbl IN cspv_tbl_type) IS
656 i NUMBER := 0;
657 l_return_status VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
658 BEGIN
659 x_return_status := FND_API.G_RET_STS_SUCCESS;
660 IF p_cspv_tbl.COUNT > 0 THEN
661 i := p_cspv_tbl.FIRST;
662 LOOP
663 lock_contract_option(p_api_version => p_api_version,
664 p_init_msg_list => p_init_msg_list,
665 x_return_status => l_return_status,
666 x_msg_count => x_msg_count,
667 x_msg_data => x_msg_data,
668 p_cspv_rec => p_cspv_tbl(i));
669 IF (l_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
670 IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
671 x_return_status := l_return_status;
672 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
673 ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
674 x_return_status := l_return_status;
675 RAISE FND_API.G_EXC_ERROR;
676 ELSE
677 x_return_status := l_return_status;
678 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
679 END IF;
680 END IF;
681 EXIT WHEN (i = p_cspv_tbl.LAST);
682 i := p_cspv_tbl.NEXT(i);
683 END LOOP;
684 END IF;
685 EXCEPTION
686 WHEN FND_API.G_EXC_ERROR THEN
687 ROLLBACK TO lock_contract_option_pub;
688 x_return_status := FND_API.G_RET_STS_ERROR;
689 FND_MSG_PUB.count_and_get (p_count => x_msg_count,
690 p_data => x_msg_data);
691 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
692 ROLLBACK TO lock_contract_option_pub;
693 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
694 FND_MSG_PUB.count_and_get (p_count => x_msg_count,
695 p_data => x_msg_data);
696 WHEN OTHERS then
697 ROLLBACK TO lock_contract_option_pub;
698 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
699 FND_MSG_PUB.ADD_EXC_MSG(G_PKG_NAME, 'lock_contract_option_pub');
700 FND_MSG_PUB.count_and_get (p_encoded => FND_API.G_FALSE,
701 p_count => x_msg_count,
702 p_data => x_msg_data);
703 END lock_contract_option;
704 END OKL_CONTRACT_PROD_OPTNS_PUB;