[Home] [Help]
PACKAGE BODY: APPS.OKL_SYS_ACCT_OPTS_PUB
Source
1 PACKAGE BODY OKL_SYS_ACCT_OPTS_PUB AS
2 /* $Header: OKLPSAOB.pls 120.3 2007/04/26 09:13:05 rgooty ship $ */
3
4 PROCEDURE add_language IS
5 BEGIN
6 -- okl_sao_pvt.add_language;
7 NULL;
8 END add_language;
9
10
11 PROCEDURE insert_sys_acct_opts(
12 p_api_version IN NUMBER
13 ,p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE
14 ,x_return_status OUT NOCOPY VARCHAR2
15 ,x_msg_count OUT NOCOPY NUMBER
16 ,x_msg_data OUT NOCOPY VARCHAR2
17 ,p_saov_rec IN saov_rec_type
18 ,x_saov_rec OUT NOCOPY saov_rec_type
19 ) IS
20 l_saov_rec saov_rec_type;
21 l_data VARCHAR2(100);
22 l_api_name CONSTANT VARCHAR2(30) := 'insert_sys_acct_opts';
23 l_count NUMBER ;
24 l_return_status VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
25 BEGIN
26 x_return_status := FND_API.G_RET_STS_SUCCESS;
27 SAVEPOINT insert_sys_acct_opts;
28 l_saov_rec := p_saov_rec;
29
30 -- Bug 6014587: Start
31 -- When user tries to setup the Account Derivation Option as AMB,
32 -- the following code make sure that there is no value stored in
33 -- the Accounting Line Rounding Difference attribute
34 IF l_saov_rec.account_derivation = 'AMB'
35 THEN
36 l_saov_rec.ael_apply_rounding_difference := NULL;
37 END IF;
38 -- Bug 6014587: End
39
40 okl_sao_pvt.insert_row(
41 p_api_version => p_api_version
42 ,p_init_msg_list => p_init_msg_list
43 ,x_return_status => l_return_status
44 ,x_msg_count => x_msg_count
45 ,x_msg_data => x_msg_data
46 ,p_saov_rec => l_saov_rec
47 ,x_saov_rec => x_saov_rec
48 );
49
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
56 /* re-assign local record structure using output record from pvt api */
57 l_saov_rec := x_saov_rec;
58
59
60
61
62 EXCEPTION
63 WHEN FND_API.G_EXC_ERROR THEN
64 ROLLBACK TO insert_sys_acct_opts;
65 x_return_status := FND_API.G_RET_STS_ERROR;
66
67 FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE
68 ,p_count => x_msg_count
69 ,p_data => x_msg_data);
70
71 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
72 ROLLBACK TO insert_sys_acct_opts;
73 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
74 FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE
75 ,p_count => x_msg_count
76 ,p_data => x_msg_data);
77
78 WHEN OTHERS THEN
79 FND_MSG_PUB.ADD_EXC_MSG('OKL_SYS_ACCT_OPTS_PUB','insert_sys_acct_opts');
80 -- store SQL error message on message stack for caller
81 FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE
82 ,p_count => x_msg_count
83 ,p_data => x_msg_data);
84 -- notify caller of an UNEXPECTED error
85 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
86 END insert_sys_acct_opts;
87
88
89 PROCEDURE insert_sys_acct_opts(
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_saov_tbl IN saov_tbl_type
96 ,x_saov_tbl OUT NOCOPY saov_tbl_type
97 ) IS
98 l_saov_tbl saov_tbl_type;
99 l_data VARCHAR2(100);
100 l_count NUMBER ;
101 l_api_name CONSTANT VARCHAR2(30) := 'insert_sys_acct_opts';
102 l_return_status VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
103 l_overall_status VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
104 i NUMBER;
105
106 BEGIN
107 x_return_status := FND_API.G_RET_STS_SUCCESS;
108 SAVEPOINT insert_sys_acct_opts;
109 l_saov_tbl := p_saov_tbl;
110
111
112
113 IF (p_saov_tbl.COUNT > 0) THEN
114 i := p_saov_tbl.FIRST;
115
116 LOOP
117 insert_sys_acct_opts (
118 p_api_version => p_api_version
119 ,p_init_msg_list => p_init_msg_list
120 ,x_return_status => x_return_status
121 ,x_msg_count => x_msg_count
122 ,x_msg_data => x_msg_data
123 ,p_saov_rec => p_saov_tbl(i)
124 ,x_saov_rec => x_saov_tbl(i)
125 );
126
127 -- store the highest degree of error
128 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
129 IF l_overall_status <> FND_API.G_RET_STS_UNEXP_ERROR THEN
130 l_overall_status := x_return_status;
131 END IF;
132 END IF;
133 EXIT WHEN (i = p_saov_tbl.LAST);
134
135 i := p_saov_tbl.NEXT(i);
136
137 END LOOP;
138
139 -- return overall status
140 x_return_status := l_overall_status;
141 END IF;
142
143 l_return_status := x_return_status;
144
145 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
146 RAISE FND_API.G_EXC_ERROR;
147 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
148 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
149 END IF;
150
151 /* re-assign local table structure using output table from pvt api */
152 l_saov_tbl := x_saov_tbl;
153
154
155
156 EXCEPTION
157 WHEN FND_API.G_EXC_ERROR THEN
158 ROLLBACK TO insert_sys_acct_opts;
159 x_return_status := FND_API.G_RET_STS_ERROR;
160
161 FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE
162 ,p_count => x_msg_count
163 ,p_data => x_msg_data);
164
165 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
166 ROLLBACK TO insert_sys_acct_opts;
167 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
168 FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE
169 ,p_count => x_msg_count
170 ,p_data => x_msg_data);
171
172 WHEN OTHERS THEN
173 FND_MSG_PUB.ADD_EXC_MSG('OKL_SYS_ACCT_OPTS_PUB','insert_sys_acct_opts');
174 -- store SQL error message on message stack for caller
175 FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE
176 ,p_count => x_msg_count
177 ,p_data => x_msg_data);
178 -- notify caller of an UNEXPECTED error
179 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
180 END insert_sys_acct_opts;
181
182 PROCEDURE lock_sys_acct_opts(
183 p_api_version IN NUMBER
184 ,p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE
185 ,x_return_status OUT NOCOPY VARCHAR2
186 ,x_msg_count OUT NOCOPY NUMBER
187 ,x_msg_data OUT NOCOPY VARCHAR2
188 ,p_saov_rec IN saov_rec_type
189 ) IS
190
191 l_saov_rec saov_rec_type;
192 l_return_status VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
193
194 BEGIN
195 x_return_status := FND_API.G_RET_STS_SUCCESS;
196 SAVEPOINT lock_sys_acct_opts;
197 l_saov_rec := p_saov_rec;
198
199 okl_sao_pvt.lock_row(
200 p_api_version => p_api_version
201 ,p_init_msg_list => p_init_msg_list
202 ,x_return_status => l_return_status
203 ,x_msg_count => x_msg_count
204 ,x_msg_data => x_msg_data
205 ,p_saov_rec => l_saov_rec
206 );
207
208 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
209 RAISE FND_API.G_EXC_ERROR;
210 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
211 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
212 END IF;
213
214 EXCEPTION
215 WHEN FND_API.G_EXC_ERROR THEN
216 ROLLBACK TO lock_sys_acct_opts;
217 x_return_status := FND_API.G_RET_STS_ERROR;
218
219 FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE
220 ,p_count => x_msg_count
221 ,p_data => x_msg_data);
222
223 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
224 ROLLBACK TO lock_sys_acct_opts;
225 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
226 FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE
227 ,p_count => x_msg_count
228 ,p_data => x_msg_data);
229
230 WHEN OTHERS THEN
231 FND_MSG_PUB.ADD_EXC_MSG('OKL_SYS_ACCT_OPTS_PUB','lock_sys_acct_opts');
232 -- store SQL error message on message stack for caller
233 FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE
234 ,p_count => x_msg_count
235 ,p_data => x_msg_data);
236 -- notify caller of an UNEXPECTED error
237 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
238 END lock_sys_acct_opts;
239
240 PROCEDURE lock_sys_acct_opts(
241 p_api_version IN NUMBER
242 ,p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE
243 ,x_return_status OUT NOCOPY VARCHAR2
244 ,x_msg_count OUT NOCOPY NUMBER
245 ,x_msg_data OUT NOCOPY VARCHAR2
246 ,p_saov_tbl IN saov_tbl_type
247 ) IS
248
249 l_return_status VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
250 l_overall_status VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
251 i NUMBER;
252
253 BEGIN
254 x_return_status := FND_API.G_RET_STS_SUCCESS;
255 SAVEPOINT lock_sys_acct_opts;
256
257 IF (p_saov_tbl.COUNT > 0) THEN
258 i := p_saov_tbl.FIRST;
259
260 LOOP
261 lock_sys_acct_opts (
262 p_api_version => p_api_version
263 ,p_init_msg_list => p_init_msg_list
264 ,x_return_status => x_return_status
265 ,x_msg_count => x_msg_count
266 ,x_msg_data => x_msg_data
267 ,p_saov_rec => p_saov_tbl(i)
268 );
269
270 -- store the highest degree of error
271 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
272 IF l_overall_status <> FND_API.G_RET_STS_UNEXP_ERROR THEN
273 l_overall_status := x_return_status;
274 END IF;
275 END IF;
276 EXIT WHEN (i = p_saov_tbl.LAST);
277
278 i := p_saov_tbl.NEXT(i);
279
280 END LOOP;
281
282 -- return overall status
283 x_return_status := l_overall_status;
284 END IF;
285
286 l_return_status := x_return_status;
287
288 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
289 RAISE FND_API.G_EXC_ERROR;
290 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
291 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
292 END IF;
293
294 EXCEPTION
295 WHEN FND_API.G_EXC_ERROR THEN
296 ROLLBACK TO lock_sys_acct_opts;
297 x_return_status := FND_API.G_RET_STS_ERROR;
298
299 FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE
300 ,p_count => x_msg_count
301 ,p_data => x_msg_data);
302
303 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
304 ROLLBACK TO lock_sys_acct_opts;
305 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
306 FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE
307 ,p_count => x_msg_count
308 ,p_data => x_msg_data);
309
310 WHEN OTHERS THEN
311 FND_MSG_PUB.ADD_EXC_MSG('OKL_SYS_ACCT_OPTS_PUB','lock_sys_acct_opts');
312 -- store SQL error message on message stack for caller
313 FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE
314 ,p_count => x_msg_count
315 ,p_data => x_msg_data);
316 -- notify caller of an UNEXPECTED error
317 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
318 END lock_sys_acct_opts;
319
320 PROCEDURE update_sys_acct_opts(
321 p_api_version IN NUMBER
322 ,p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE
323 ,x_return_status OUT NOCOPY VARCHAR2
324 ,x_msg_count OUT NOCOPY NUMBER
325 ,x_msg_data OUT NOCOPY VARCHAR2
326 ,p_saov_rec IN saov_rec_type
327 ,x_saov_rec OUT NOCOPY saov_rec_type
328 ) IS
329 l_saov_rec saov_rec_type;
330 l_data VARCHAR2(100);
331 l_count NUMBER ;
332 l_api_name CONSTANT VARCHAR2(30) := 'update_sys_acct_opts';
333 l_return_status VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
334 BEGIN
335 x_return_status := FND_API.G_RET_STS_SUCCESS;
336 SAVEPOINT update_sys_acct_opts;
337 l_saov_rec := p_saov_rec;
338
339
340
341 okl_sao_pvt.update_row(
342 p_api_version => p_api_version
343 ,p_init_msg_list => p_init_msg_list
344 ,x_return_status => l_return_status
345 ,x_msg_count => x_msg_count
346 ,x_msg_data => x_msg_data
347 ,p_saov_rec => l_saov_rec
348 ,x_saov_rec => x_saov_rec
349 );
350
351 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
352 RAISE FND_API.G_EXC_ERROR;
353 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
354 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
355 END IF;
356
357 /* re-assign local record structure using output record from pvt api */
358 l_saov_rec := x_saov_rec;
359
360
361
362 EXCEPTION
363 WHEN FND_API.G_EXC_ERROR THEN
364 ROLLBACK TO update_sys_acct_opts;
365 x_return_status := FND_API.G_RET_STS_ERROR;
366
367 FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE
368 ,p_count => x_msg_count
369 ,p_data => x_msg_data);
370
371 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
372 ROLLBACK TO update_sys_acct_opts;
373 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
374 FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE
375 ,p_count => x_msg_count
376 ,p_data => x_msg_data);
377
378 WHEN OTHERS THEN
379 FND_MSG_PUB.ADD_EXC_MSG('OKL_SYS_ACCT_OPTS_PUB','update_sys_acct_opts');
380 -- store SQL error message on message stack for caller
381 FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE
382 ,p_count => x_msg_count
383 ,p_data => x_msg_data);
384 -- notify caller of an UNEXPECTED error
385 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
386 END update_sys_acct_opts;
387
388
389 PROCEDURE update_sys_acct_opts(
390 p_api_version IN NUMBER
391 ,p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE
392 ,x_return_status OUT NOCOPY VARCHAR2
393 ,x_msg_count OUT NOCOPY NUMBER
394 ,x_msg_data OUT NOCOPY VARCHAR2
395 ,p_saov_tbl IN saov_tbl_type
396 ,x_saov_tbl OUT NOCOPY saov_tbl_type
397 ) IS
398 l_saov_tbl saov_tbl_type;
399 l_data VARCHAR2(100);
400 l_count NUMBER;
401 l_api_name CONSTANT VARCHAR2(30) := 'update_sys_acct_opts';
402 l_return_status VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
403 l_overall_status VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
404 i NUMBER;
405
406 BEGIN
407 x_return_status := FND_API.G_RET_STS_SUCCESS;
408 SAVEPOINT update_sys_acct_opts;
409 l_saov_tbl := p_saov_tbl;
410
411
412
413 IF (p_saov_tbl.COUNT > 0) THEN
414 i := p_saov_tbl.FIRST;
415
416 LOOP
417 update_sys_acct_opts (
418 p_api_version => p_api_version
419 ,p_init_msg_list => p_init_msg_list
420 ,x_return_status => x_return_status
421 ,x_msg_count => x_msg_count
422 ,x_msg_data => x_msg_data
423 ,p_saov_rec => p_saov_tbl(i)
424 ,x_saov_rec => x_saov_tbl(i)
425 );
426
427 -- store the highest degree of error
428 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
429 IF l_overall_status <> FND_API.G_RET_STS_UNEXP_ERROR THEN
430 l_overall_status := x_return_status;
431 END IF;
432 END IF;
433 EXIT WHEN (i = p_saov_tbl.LAST);
434
435 i := p_saov_tbl.NEXT(i);
436
437 END LOOP;
438
439 -- return overall status
440 x_return_status := l_overall_status;
441 END IF;
442
443 l_return_status := x_return_status;
444
445 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
446 RAISE FND_API.G_EXC_ERROR;
447 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
448 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
449 END IF;
450
451 /* re-assign local table structure using output table from pvt api */
452 l_saov_tbl := x_saov_tbl;
453
454
455
456 EXCEPTION
457 WHEN FND_API.G_EXC_ERROR THEN
458 ROLLBACK TO update_sys_acct_opts;
459 x_return_status := FND_API.G_RET_STS_ERROR;
460
461 FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE
462 ,p_count => x_msg_count
463 ,p_data => x_msg_data);
464
465 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
466 ROLLBACK TO update_sys_acct_opts;
467 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
468 FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE
469 ,p_count => x_msg_count
470 ,p_data => x_msg_data);
471
472 WHEN OTHERS THEN
473 FND_MSG_PUB.ADD_EXC_MSG('OKL_SYS_ACCT_OPTS_PUB','update_sys_acct_opts');
474 -- store SQL error message on message stack for caller
475 FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE
476 ,p_count => x_msg_count
477 ,p_data => x_msg_data);
478 -- notify caller of an UNEXPECTED error
479 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
480 END update_sys_acct_opts;
481
482 PROCEDURE delete_sys_acct_opts(
483 p_api_version IN NUMBER
484 ,p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE
485 ,x_return_status OUT NOCOPY VARCHAR2
486 ,x_msg_count OUT NOCOPY NUMBER
487 ,x_msg_data OUT NOCOPY VARCHAR2
488 ,p_saov_rec IN saov_rec_type
489 ) IS
490 l_saov_rec saov_rec_type;
491 l_data VARCHAR2(100);
492 l_count NUMBER ;
493 l_api_name CONSTANT VARCHAR2(30) := 'delete_sys_acct_opts';
494 l_return_status VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
495 BEGIN
496 x_return_status := FND_API.G_RET_STS_SUCCESS;
497 SAVEPOINT delete_sys_acct_opts;
498 l_saov_rec := p_saov_rec;
499
500
501
502 okl_sao_pvt.delete_row(
503 p_api_version => p_api_version
504 ,p_init_msg_list => p_init_msg_list
505 ,x_return_status => l_return_status
506 ,x_msg_count => x_msg_count
507 ,x_msg_data => x_msg_data
508 ,p_saov_rec => l_saov_rec
509 );
510
511 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
512 RAISE FND_API.G_EXC_ERROR;
513 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
514 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
515 END IF;
516
517
518
519 EXCEPTION
520 WHEN FND_API.G_EXC_ERROR THEN
521 ROLLBACK TO delete_sys_acct_opts;
522 x_return_status := FND_API.G_RET_STS_ERROR;
523
524 FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE
525 ,p_count => x_msg_count
526 ,p_data => x_msg_data);
527
528 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
529 ROLLBACK TO delete_sys_acct_opts;
530 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
531 FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE
532 ,p_count => x_msg_count
533 ,p_data => x_msg_data);
534
535 WHEN OTHERS THEN
536 FND_MSG_PUB.ADD_EXC_MSG('OKL_SYS_ACCT_OPTS_PUB','delete_sys_acct_opts');
537 -- store SQL error message on message stack for caller
538 FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE
539 ,p_count => x_msg_count
540 ,p_data => x_msg_data);
541 -- notify caller of an UNEXPECTED error
542 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
543 END delete_sys_acct_opts;
544
545
546 PROCEDURE delete_sys_acct_opts(
547 p_api_version IN NUMBER
548 ,p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE
549 ,x_return_status OUT NOCOPY VARCHAR2
550 ,x_msg_count OUT NOCOPY NUMBER
551 ,x_msg_data OUT NOCOPY VARCHAR2
552 ,p_saov_tbl IN saov_tbl_type
553 ) IS
554 l_saov_tbl saov_tbl_type;
555 l_data VARCHAR2(100);
556 l_count NUMBER ;
557 l_api_name CONSTANT VARCHAR2(30) := 'delete_sys_acct_opts';
558 l_return_status VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
559 l_overall_status VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
560 i NUMBER;
561
562 BEGIN
563 x_return_status := FND_API.G_RET_STS_SUCCESS;
564 SAVEPOINT delete_sys_acct_opts;
565 l_saov_tbl := p_saov_tbl;
566
567
568
569 IF (p_saov_tbl.COUNT > 0) THEN
570 i := p_saov_tbl.FIRST;
571
572 LOOP
573 delete_sys_acct_opts (
574 p_api_version => p_api_version
575 ,p_init_msg_list => p_init_msg_list
576 ,x_return_status => x_return_status
577 ,x_msg_count => x_msg_count
578 ,x_msg_data => x_msg_data
579 ,p_saov_rec => p_saov_tbl(i)
580 );
581
582 -- store the highest degree of error
583 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
584 IF l_overall_status <> FND_API.G_RET_STS_UNEXP_ERROR THEN
585 l_overall_status := x_return_status;
586 END IF;
587 END IF;
588 EXIT WHEN (i = p_saov_tbl.LAST);
589
590 i := p_saov_tbl.NEXT(i);
591
592 END LOOP;
593
594 -- return overall status
595 x_return_status := l_overall_status;
596 END IF;
597
598 l_return_status := x_return_status;
599
600 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
601 RAISE FND_API.G_EXC_ERROR;
602 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
603 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
604 END IF;
605
606
607
608 EXCEPTION
609 WHEN FND_API.G_EXC_ERROR THEN
610 ROLLBACK TO delete_sys_acct_opts;
611 x_return_status := FND_API.G_RET_STS_ERROR;
612
613 FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE
614 ,p_count => x_msg_count
615 ,p_data => x_msg_data);
616
617 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
618 ROLLBACK TO delete_sys_acct_opts;
619 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
620 FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE
621 ,p_count => x_msg_count
622 ,p_data => x_msg_data);
623
624 WHEN OTHERS THEN
625 FND_MSG_PUB.ADD_EXC_MSG('OKL_SYS_ACCT_OPTS_PUB','delete_sys_acct_opts');
626 -- store SQL error message on message stack for caller
627 FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE
628 ,p_count => x_msg_count
629 ,p_data => x_msg_data);
630 -- notify caller of an UNEXPECTED error
631 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
632 END delete_sys_acct_opts;
633
634 PROCEDURE validate_sys_acct_opts(
635 p_api_version IN NUMBER
636 ,p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE
637 ,x_return_status OUT NOCOPY VARCHAR2
638 ,x_msg_count OUT NOCOPY NUMBER
639 ,x_msg_data OUT NOCOPY VARCHAR2
640 ,p_saov_rec IN saov_rec_type
641 ) IS
642 l_saov_rec saov_rec_type;
643 l_data VARCHAR2(100);
644 l_count NUMBER;
645 l_api_name CONSTANT VARCHAR2(30) := 'validate_sys_acct_opts';
646 l_return_status VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
647 BEGIN
648 x_return_status := FND_API.G_RET_STS_SUCCESS;
649 SAVEPOINT validate_sys_acct_opts;
650 l_saov_rec := p_saov_rec;
651
652
653
654 okl_sao_pvt.validate_row(
655 p_api_version => p_api_version
656 ,p_init_msg_list => p_init_msg_list
657 ,x_return_status => l_return_status
658 ,x_msg_count => x_msg_count
659 ,x_msg_data => x_msg_data
660 ,p_saov_rec => l_saov_rec
661 );
662
663 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
664 RAISE FND_API.G_EXC_ERROR;
665 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
666 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
667 END IF;
668
669
670
671 EXCEPTION
672 WHEN FND_API.G_EXC_ERROR THEN
673 ROLLBACK TO validate_sys_acct_opts;
674 x_return_status := FND_API.G_RET_STS_ERROR;
675
676 FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE
677 ,p_count => x_msg_count
678 ,p_data => x_msg_data);
679
680 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
681 ROLLBACK TO validate_sys_acct_opts;
682 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
683 FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE
684 ,p_count => x_msg_count
685 ,p_data => x_msg_data);
686
687 WHEN OTHERS THEN
688 FND_MSG_PUB.ADD_EXC_MSG('OKL_SYS_ACCT_OPTS_PUB','validate_sys_acct_opts');
689 -- store SQL error message on message stack for caller
690 FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE
691 ,p_count => x_msg_count
692 ,p_data => x_msg_data);
693 -- notify caller of an UNEXPECTED error
694 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
695 END validate_sys_acct_opts;
696
697
698 PROCEDURE validate_sys_acct_opts(
699 p_api_version IN NUMBER
700 ,p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE
701 ,x_return_status OUT NOCOPY VARCHAR2
702 ,x_msg_count OUT NOCOPY NUMBER
703 ,x_msg_data OUT NOCOPY VARCHAR2
704 ,p_saov_tbl IN saov_tbl_type
705 ) IS
706 l_saov_tbl saov_tbl_type;
707 l_data VARCHAR2(100);
708 l_count NUMBER;
709 l_api_name CONSTANT VARCHAR2(30) := 'validate_sys_acct_opts';
710 l_return_status VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
711 l_overall_status VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
712 i NUMBER;
713
714 BEGIN
715 x_return_status := FND_API.G_RET_STS_SUCCESS;
716 SAVEPOINT validate_sys_acct_opts;
717 l_saov_tbl := p_saov_tbl;
718
719
720
721 IF (p_saov_tbl.COUNT > 0) THEN
722 i := p_saov_tbl.FIRST;
723
724 LOOP
725 validate_sys_acct_opts (
726 p_api_version => p_api_version
727 ,p_init_msg_list => p_init_msg_list
728 ,x_return_status => x_return_status
729 ,x_msg_count => x_msg_count
730 ,x_msg_data => x_msg_data
731 ,p_saov_rec => p_saov_tbl(i)
732 );
733
734 -- store the highest degree of error
735 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
736 IF l_overall_status <> FND_API.G_RET_STS_UNEXP_ERROR THEN
737 l_overall_status := x_return_status;
738 END IF;
739 END IF;
740 EXIT WHEN (i = p_saov_tbl.LAST);
741
742 i := p_saov_tbl.NEXT(i);
743
744 END LOOP;
745
746 -- return overall status
747 x_return_status := l_overall_status;
748 END IF;
749
750 l_return_status := x_return_status;
751
752 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
753 RAISE FND_API.G_EXC_ERROR;
754 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
755 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
756 END IF;
757
758
759
760
761 EXCEPTION
762 WHEN FND_API.G_EXC_ERROR THEN
763 ROLLBACK TO validate_sys_acct_opts;
764 x_return_status := FND_API.G_RET_STS_ERROR;
765
766 FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE
767 ,p_count => x_msg_count
768 ,p_data => x_msg_data);
769
770 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
771 ROLLBACK TO validate_sys_acct_opts;
772 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
773 FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE
774 ,p_count => x_msg_count
775 ,p_data => x_msg_data);
776
777 WHEN OTHERS THEN
778 FND_MSG_PUB.ADD_EXC_MSG('OKL_SYS_ACCT_OPTS_PUB','validate_sys_acct_opts');
779 -- store SQL error message on message stack for caller
780 FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE
781 ,p_count => x_msg_count
782 ,p_data => x_msg_data);
783 -- notify caller of an UNEXPECTED error
784 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
785 END validate_sys_acct_opts;
786
787
788 END OKL_SYS_ACCT_OPTS_PUB;