[Home] [Help]
PACKAGE BODY: APPS.OKL_ACCT_EVENT_PVT
Source
1 PACKAGE BODY okl_acct_event_pvt AS
2 /* $Header: OKLCAETB.pls 115.9 2002/04/16 16:46:30 pkm ship $ */
3
4 PROCEDURE create_acct_event(
5 p_api_version IN NUMBER
6 ,p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE
7 ,x_return_status OUT NOCOPY VARCHAR2
8 ,x_msg_count OUT NOCOPY NUMBER
9 ,x_msg_data OUT NOCOPY VARCHAR2
10 ,p_aetv_rec IN aetv_rec_type
11 ,p_aehv_tbl IN aehv_tbl_type
12 ,p_aelv_tbl IN aelv_tbl_type
13 ,x_aetv_rec OUT NOCOPY aetv_rec_type
14 ,x_aehv_tbl OUT NOCOPY aehv_tbl_type
15 ,x_aelv_tbl OUT NOCOPY aelv_tbl_type
16 )
17 AS
18 l_return_status VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
19 l_aetv_rec aetv_rec_type;
20 l_aehv_tbl aehv_tbl_type := p_aehv_tbl;
21 l_aelv_tbl aelv_tbl_type := p_aelv_tbl;
22 i NUMBER;
23 j NUMBER;
24
25 BEGIN
26 --Populate the Master
27 create_acct_event(p_api_version,
28 p_init_msg_list,
29 x_return_status,
30 x_msg_count,
31 x_msg_data,
32 p_aetv_rec,
33 x_aetv_rec);
34
35 IF (x_return_status = OKC_API.G_RET_STS_SUCCESS) THEN
36
37 -- Populate the foreign key for the line
38 IF (l_aehv_tbl.COUNT > 0) THEN
39 i := l_aehv_tbl.FIRST;
40 LOOP
41 l_aehv_tbl(i).accounting_event_id := x_aetv_rec.accounting_event_id;
42 EXIT WHEN (i = l_aehv_tbl.LAST);
43 i := l_aehv_tbl.NEXT(i);
44 END LOOP;
45 END IF;
46
47 --Populate the line
48 create_acct_header(
49 p_api_version,
50 p_init_msg_list,
51 x_return_status,
52 x_msg_count,
53 x_msg_data,
54 l_aehv_tbl,
55 x_aehv_tbl);
56
57
58 IF (x_return_status = OKC_API.G_RET_STS_SUCCESS) THEN
59
60 -- Populate the foreign key for the detail
61 IF (l_aehv_tbl.COUNT > 0) THEN
62 i := l_aehv_tbl.FIRST;
63 LOOP
64 j := l_aelv_tbl.FIRST;
65 LOOP
66 IF (i = p_aelv_tbl(j).aeh_tbl_index) THEN
67 l_aelv_tbl(j).ae_header_id := x_aehv_tbl(i).ae_header_id;
68 END IF;
69 EXIT WHEN (j = l_aelv_tbl.LAST);
70 j := l_aelv_tbl.NEXT(j);
71 END LOOP;
72 EXIT WHEN (i = l_aehv_tbl.LAST);
73 i := l_aehv_tbl.NEXT(i);
74 END LOOP;
75 END IF;
76
77 --Populate the detail
78 create_acct_lines(
79 p_api_version,
80 p_init_msg_list,
81 x_return_status,
82 x_msg_count,
83 x_msg_data,
84 l_aelv_tbl,
85 x_aelv_tbl);
86
87 END IF;
88
89 END IF;
90
91
92 EXCEPTION
93 WHEN G_EXCEPTION_HALT_VALIDATION THEN
94 x_return_status := Okc_Api.G_RET_STS_UNEXP_ERROR;
95
96 WHEN OTHERS THEN
97 Okc_Api.set_message(p_app_name => g_app_name,
98 p_msg_name => g_unexpected_error,
99 p_token1 => g_sqlcode_token,
100 p_token1_value => SQLCODE,
101 p_token2 => g_sqlerrm_token,
102 p_token2_value => SQLERRM);
103 x_return_status := Okc_Api.G_RET_STS_UNEXP_ERROR;
104
105 END create_acct_event;
106
107 --Object type procedure for update
108 PROCEDURE update_acct_event(
109 p_api_version IN NUMBER
110 ,p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE
111 ,x_return_status OUT NOCOPY VARCHAR2
112 ,x_msg_count OUT NOCOPY NUMBER
113 ,x_msg_data OUT NOCOPY VARCHAR2
114 ,p_aetv_rec IN aetv_rec_type
115 ,p_aehv_tbl IN aehv_tbl_type
116 ,p_aelv_tbl IN aelv_tbl_type
117 ,x_aetv_rec OUT NOCOPY aetv_rec_type
118 ,x_aehv_tbl OUT NOCOPY aehv_tbl_type
119 ,x_aelv_tbl OUT NOCOPY aelv_tbl_type
120 )
121 AS
122 l_return_status VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
123
124 BEGIN
125 --Update the Master
126 update_acct_event(
127 p_api_version,
128 p_init_msg_list,
129 x_return_status,
130 x_msg_count,
131 x_msg_data,
132 p_aetv_rec,
133 x_aetv_rec);
134
135 IF x_return_status = Okc_Api.G_RET_STS_SUCCESS THEN
136
137 --Update the line
138 update_acct_header(
139 p_api_version,
140 p_init_msg_list,
141 x_return_status,
142 x_msg_count,
143 x_msg_data,
144 p_aehv_tbl,
145 x_aehv_tbl);
146
147 IF (x_return_status = Okc_Api.G_RET_STS_SUCCESS) THEN
148
149 --Update the detail
150 update_acct_lines(
151 p_api_version,
152 p_init_msg_list,
153 x_return_status,
154 x_msg_count,
155 x_msg_data,
156 p_aelv_tbl,
157 x_aelv_tbl);
158 END IF;
159
160 END IF;
161
162 END update_acct_event;
163
164
165 --Object type procedure for validate
166 PROCEDURE validate_acct_event(
167 p_api_version IN NUMBER
168 ,p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE
169 ,x_return_status OUT NOCOPY VARCHAR2
170 ,x_msg_count OUT NOCOPY NUMBER
171 ,x_msg_data OUT NOCOPY VARCHAR2
172 ,p_aetv_rec IN aetv_rec_type
173 ,p_aehv_tbl IN aehv_tbl_type
174 ,p_aelv_tbl IN aelv_tbl_type
175 )
176 AS
177 l_return_status VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
178 l_overall_status VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
179
180 BEGIN
181
182 --Validate the Master
183 validate_acct_event(
184 p_api_version,
185 p_init_msg_list,
186 x_return_status,
187 x_msg_count,
188 x_msg_data,
189 p_aetv_rec);
190
191 IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
192 IF (l_overall_status <> OKC_API.G_RET_STS_UNEXP_ERROR) THEN
193 l_overall_status := x_return_status;
194 END IF;
195 END IF;
196
197
198 --Validate the line
199 validate_acct_header(
200 p_api_version,
201 p_init_msg_list,
202 x_return_status,
203 x_msg_count,
204 x_msg_data,
205 p_aehv_tbl);
206
207 IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
208 IF (l_overall_status <> OKC_API.G_RET_STS_UNEXP_ERROR) THEN
209 l_overall_status := x_return_status;
210 END IF;
211 END IF;
212
213 --Validate the detail
214 validate_acct_lines(
215 p_api_version,
216 p_init_msg_list,
217 x_return_status,
218 x_msg_count,
219 x_msg_data,
220 p_aelv_tbl);
221
222 IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
223 IF (l_overall_status <> OKC_API.G_RET_STS_UNEXP_ERROR) THEN
224 l_overall_status := x_return_status;
225 END IF;
226 END IF;
227
228 x_return_status := l_overall_status;
229
230
231 EXCEPTION
232 WHEN G_EXCEPTION_HALT_VALIDATION THEN
233 x_return_status := Okc_Api.G_RET_STS_UNEXP_ERROR;
234
235 WHEN OTHERS THEN
236 Okc_Api.set_message(p_app_name => g_app_name,
237 p_msg_name => g_unexpected_error,
238 p_token1 => g_sqlcode_token,
239 p_token1_value => SQLCODE,
240 p_token2 => g_sqlerrm_token,
241 p_token2_value => SQLERRM);
242 x_return_status := Okc_Api.G_RET_STS_UNEXP_ERROR;
243
244 END validate_acct_event;
245
246
247 PROCEDURE create_acct_event(
248 p_api_version IN NUMBER,
249 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
250 x_return_status OUT NOCOPY VARCHAR2,
251 x_msg_count OUT NOCOPY NUMBER,
252 x_msg_data OUT NOCOPY VARCHAR2,
253 p_aetv_rec IN aetv_rec_type,
254 x_aetv_rec OUT NOCOPY aetv_rec_type) IS
255 BEGIN
256
257 okl_aet_pvt.insert_row(p_api_version,
258 p_init_msg_list,
259 x_return_status,
260 x_msg_count,
261 x_msg_data,
262 p_aetv_rec,
263 x_aetv_rec);
264
265
266 END create_acct_event;
267
268 PROCEDURE create_acct_event(
269 p_api_version IN NUMBER,
270 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
271 x_return_status OUT NOCOPY VARCHAR2,
272 x_msg_count OUT NOCOPY NUMBER,
273 x_msg_data OUT NOCOPY VARCHAR2,
274 p_aetv_tbl IN aetv_tbl_type,
275 x_aetv_tbl OUT NOCOPY aetv_tbl_type) IS
276
277 i NUMBER := 0;
278 l_overall_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
279
280 BEGIN
281
282 Okc_Api.init_msg_list(p_init_msg_list);
283 -- Make sure PL/SQL table has records in it before passing
284 IF (p_aetv_tbl.COUNT > 0) THEN
285 i := p_aetv_tbl.FIRST;
286 LOOP
287 create_Acct_event(
288 p_api_version => p_api_version,
289 p_init_msg_list => Okc_Api.G_FALSE,
290 x_return_status => x_return_status,
291 x_msg_count => x_msg_count,
292 x_msg_data => x_msg_data,
293 p_aetv_rec => p_aetv_tbl(i),
294 x_aetv_rec => x_aetv_tbl(i));
295
296 IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
297 IF (l_overall_status <> OKC_API.G_RET_STS_UNEXP_ERROR) THEN
298 l_overall_status := x_return_status;
299 END IF;
300 END IF;
301
302 EXIT WHEN (i = p_aetv_tbl.LAST);
303 i := p_aetv_tbl.NEXT(i);
304 END LOOP;
305
306
307 END IF;
308
309 x_return_status := l_overall_status;
310
311 END create_acct_event;
312
313
314
315 PROCEDURE lock_acct_event(
316 p_api_version IN NUMBER,
317 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
318 x_return_status OUT NOCOPY VARCHAR2,
319 x_msg_count OUT NOCOPY NUMBER,
320 x_msg_data OUT NOCOPY VARCHAR2,
321 p_aetv_rec IN aetv_rec_type) IS
322 BEGIN
323 okl_aet_pvt.lock_row(
324 p_api_version,
325 p_init_msg_list,
326 x_return_status,
327 x_msg_count,
328 x_msg_data,
329 p_aetv_rec);
330 END lock_acct_event;
331
332 PROCEDURE lock_acct_event(
333 p_api_version IN NUMBER,
334 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
335 x_return_status OUT NOCOPY VARCHAR2,
336 x_msg_count OUT NOCOPY NUMBER,
337 x_msg_data OUT NOCOPY VARCHAR2,
338 p_aetv_tbl IN aetv_tbl_type) IS
339
340 l_overall_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
341 i NUMBER := 0;
342
343 BEGIN
344
345 Okc_Api.init_msg_list(p_init_msg_list);
346 -- Make sure PL/SQL table has records in it before passing
347 IF (p_aetv_tbl.COUNT > 0) THEN
348 i := p_aetv_tbl.FIRST;
349 LOOP
350
351 lock_acct_event(
352 p_api_version => p_api_version,
353 p_init_msg_list => Okc_Api.G_FALSE,
354 x_return_status => x_return_status,
355 x_msg_count => x_msg_count,
356 x_msg_data => x_msg_data,
357 p_aetv_rec => p_aetv_tbl(i));
358
359 IF (x_return_status <> Okc_Api.G_RET_STS_SUCCESS) THEN
360 IF (l_overall_status <> Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
361 l_overall_status := x_return_status;
362 END IF;
363 END IF;
364
365 EXIT WHEN (i = p_aetv_tbl.LAST);
366 i := p_aetv_tbl.NEXT(i);
367 END LOOP;
368
369 x_return_status := l_overall_status;
370
371 END IF;
372
373 END lock_acct_event;
374
375 PROCEDURE update_acct_event(
376 p_api_version IN NUMBER,
377 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
378 x_return_status OUT NOCOPY VARCHAR2,
379 x_msg_count OUT NOCOPY NUMBER,
380 x_msg_data OUT NOCOPY VARCHAR2,
381 p_aetv_rec IN aetv_rec_type,
382 x_aetv_rec OUT NOCOPY aetv_rec_type) IS
383 BEGIN
384 okl_aet_pvt.update_row(
385 p_api_version,
386 p_init_msg_list,
387 x_return_status,
388 x_msg_count,
389 x_msg_data,
390 p_aetv_rec,
391 x_aetv_rec);
392
393 END update_acct_event;
394
395 PROCEDURE update_acct_event(
396 p_api_version IN NUMBER,
397 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
398 x_return_status OUT NOCOPY VARCHAR2,
399 x_msg_count OUT NOCOPY NUMBER,
400 x_msg_data OUT NOCOPY VARCHAR2,
401 p_aetv_tbl IN aetv_tbl_type,
402 x_aetv_tbl OUT NOCOPY aetv_tbl_type) IS
403 i NUMBER := 0;
404 l_overall_status VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
405
406 BEGIN
407
408 Okc_Api.init_msg_list(p_init_msg_list);
409 -- Make sure PL/SQL table has records in it before passing
410 IF (p_aetv_tbl.COUNT > 0) THEN
411 i := p_aetv_tbl.FIRST;
412 LOOP
413 update_acct_event(
414 p_api_version => p_api_version,
415 p_init_msg_list => Okc_Api.G_FALSE,
416 x_return_status => x_return_status,
417 x_msg_count => x_msg_count,
418 x_msg_data => x_msg_data,
419 p_aetv_rec => p_aetv_tbl(i),
420 x_aetv_rec => x_aetv_tbl(i));
421
422 IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
423 IF (l_overall_status <> OKC_API.G_RET_STS_UNEXP_ERROR) THEN
424 l_overall_status := x_return_status;
425 END IF;
426 END IF;
427
428 EXIT WHEN (i = p_aetv_tbl.LAST);
429 i := p_aetv_tbl.NEXT(i);
430 END LOOP;
431 x_return_status := l_overall_status;
432 END IF;
433
434 END;
435
436
437
438 PROCEDURE delete_acct_event(p_api_version IN NUMBER,
439 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
440 x_return_status OUT NOCOPY VARCHAR2,
441 x_msg_count OUT NOCOPY NUMBER,
442 x_msg_data OUT NOCOPY VARCHAR2,
443 p_aetv_rec IN aetv_rec_type)
444
445 IS
446
447 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
448
449 CURSOR aeh_csr(v_aet_id NUMBER)
450 IS
451 SELECT ae_header_id
452 FROM okl_ae_headers
453 WHERE accounting_event_id = v_aet_id;
454
455 l_aehv_rec aehv_rec_type;
456
457 BEGIN
458
459 x_return_status := OKL_API.G_RET_STS_SUCCESS;
460
461 OPEN aeh_csr(p_aetv_rec.accounting_event_id);
462 FETCH aeh_csr INTO l_aehv_rec.ae_header_id;
463 IF (aeh_csr%FOUND) THEN
464 delete_Acct_header(p_api_version => p_api_version
465 ,p_init_msg_list => p_init_msg_list
466 ,x_return_status => x_return_status
467 ,x_msg_count => x_msg_count
468 ,x_msg_data => x_msg_data
469 ,p_aehv_rec => l_aehv_rec);
470
471 END IF;
472 CLOSE aeh_csr;
473
474 IF (x_return_status = OKC_API.G_RET_STS_SUCCESS) THEN
475
476 OKL_AET_PVT.delete_row(p_api_version => p_api_version,
477 p_init_msg_list => p_init_msg_list,
478 x_return_status => x_return_status,
479 x_msg_count => x_msg_count,
480 x_msg_data => x_msg_data,
481 p_aetv_rec => p_aetv_rec);
482
483 END IF;
484
485
486 EXCEPTION
487 WHEN G_EXCEPTION_HALT_VALIDATION THEN
488 NULL;
489
490 WHEN OTHERS THEN
491 OKC_API.set_message(p_app_name => g_app_name,
492 p_msg_name => g_unexpected_error,
493 p_token1 => g_sqlcode_token,
494 p_token1_value => SQLCODE,
495 p_token2 => g_sqlerrm_token,
496 p_token2_value => SQLERRM);
497 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
498 END delete_acct_event;
499
500
501 PROCEDURE delete_acct_event(
502 p_api_version IN NUMBER,
503 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
504 x_return_status OUT NOCOPY VARCHAR2,
505 x_msg_count OUT NOCOPY NUMBER,
506 x_msg_data OUT NOCOPY VARCHAR2,
507 p_aetv_tbl IN aetv_tbl_type) IS
508 i NUMBER :=0;
509 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
510 l_overall_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
511
512 BEGIN
513 --Initialize the return status
514 x_return_status := OKC_API.G_RET_STS_SUCCESS;
515
516 IF (p_aetv_tbl.COUNT > 0) THEN
517 i := p_aetv_tbl.FIRST;
518 LOOP
519
520 delete_acct_event(
521 p_api_version
522 ,p_init_msg_list
523 ,x_return_status
524 ,x_msg_count
525 ,x_msg_data
526 ,p_aetv_tbl(i));
527
528 IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
529 IF (l_overall_status <> OKC_API.G_RET_STS_UNEXP_ERROR) THEN
530 l_overall_status := x_return_status;
531 END IF;
532 END IF;
533
534 EXIT WHEN (i = p_aetv_tbl.LAST);
535 i := p_aetv_tbl.NEXT(i);
536 END LOOP;
537 END IF;
538
539 x_return_status := l_overall_status;
540
541
542 EXCEPTION
543 WHEN G_EXCEPTION_HALT_VALIDATION THEN
544 NULL;
545
546 WHEN OTHERS THEN
547 OKC_API.set_message(p_app_name => g_app_name,
548 p_msg_name => g_unexpected_error,
549 p_token1 => g_sqlcode_token,
550 p_token1_value => SQLCODE,
551 p_token2 => g_sqlerrm_token,
552 p_token2_value => SQLERRM);
553 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
554 END delete_acct_event;
555
556 PROCEDURE validate_acct_event(
557 p_api_version IN NUMBER,
558 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
559 x_return_status OUT NOCOPY VARCHAR2,
560 x_msg_count OUT NOCOPY NUMBER,
561 x_msg_data OUT NOCOPY VARCHAR2,
562 p_aetv_rec IN aetv_rec_type) IS
563 BEGIN
564 okl_aet_pvt.validate_row(
565 p_api_version,
566 p_init_msg_list,
567 x_return_status,
568 x_msg_count,
569 x_msg_data,
570 p_aetv_rec);
571 END validate_acct_event;
572
573
574 PROCEDURE validate_acct_event(
575 p_api_version IN NUMBER,
576 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
577 x_return_status OUT NOCOPY VARCHAR2,
578 x_msg_count OUT NOCOPY NUMBER,
579 x_msg_data OUT NOCOPY VARCHAR2,
580 p_aetv_tbl IN aetv_tbl_type) IS
581
582 i NUMBER := 0;
583 l_overall_status VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
584
585 BEGIN
586
587 Okc_Api.init_msg_list(p_init_msg_list);
588 -- Make sure PL/SQL table has records in it before passing
589 IF (p_aetv_tbl.COUNT > 0) THEN
590 i := p_aetv_tbl.FIRST;
591 LOOP
592 validate_acct_event(
593 p_api_version => p_api_version,
594 p_init_msg_list => Okc_Api.G_FALSE,
595 x_return_status => x_return_status,
596 x_msg_count => x_msg_count,
597 x_msg_data => x_msg_data,
598 p_aetv_rec => p_aetv_tbl(i));
599
600 IF (x_return_status <> Okc_Api.G_RET_STS_SUCCESS) THEN
601 IF (l_overall_status <> Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
602 l_overall_status := x_return_status;
603 END IF;
604 END IF;
605
606 EXIT WHEN (i = p_aetv_tbl.LAST);
607 i := p_aetv_tbl.NEXT(i);
608 END LOOP;
609 x_return_status := l_overall_status;
610 END IF;
611
612 END validate_acct_event;
613
614 PROCEDURE create_acct_header(
615 p_api_version IN NUMBER,
616 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
617 x_return_status OUT NOCOPY VARCHAR2,
618 x_msg_count OUT NOCOPY NUMBER,
619 x_msg_data OUT NOCOPY VARCHAR2,
620 p_aehv_rec IN aehv_rec_type,
621 x_aehv_rec OUT NOCOPY aehv_rec_type) IS
622
623 BEGIN
624
625 okl_aeh_pvt.insert_row(
626 p_api_version,
627 p_init_msg_list,
628 x_return_status,
629 x_msg_count,
630 x_msg_data,
631 p_aehv_rec,
632 x_aehv_rec);
633
634 IF (x_return_status = OKC_API.G_RET_STS_SUCCESS) THEN
635 NULL;
636 -- Custom code by developer Update_Minor_Version(p_aehv_rec.dnz_chr_id);
637 END IF;
638
639 END create_acct_header;
640
641 PROCEDURE create_acct_header(
642 p_api_version IN NUMBER,
643 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
644 x_return_status OUT NOCOPY VARCHAR2,
645 x_msg_count OUT NOCOPY NUMBER,
646 x_msg_data OUT NOCOPY VARCHAR2,
647 p_aehv_tbl IN aehv_tbl_type,
648 x_aehv_tbl OUT NOCOPY aehv_tbl_type) IS
649 i NUMBER := 0;
650 l_overall_status VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
651 BEGIN
652
653 Okc_Api.init_msg_list(p_init_msg_list);
654 -- Make sure PL/SQL table has records in it before passing
655 IF (p_aehv_tbl.COUNT > 0) THEN
656 i := p_aehv_tbl.FIRST;
657 LOOP
658 create_Acct_header(
659 p_api_version => p_api_version,
660 p_init_msg_list => Okc_Api.G_FALSE,
661 x_return_status => x_return_status,
662 x_msg_count => x_msg_count,
663 x_msg_data => x_msg_data,
664 p_aehv_rec => p_aehv_tbl(i),
665 x_aehv_rec => x_aehv_tbl(i));
666
667 -- store the highest degree of error
668 IF x_return_status <> Okc_Api.G_RET_STS_SUCCESS THEN
669 IF l_overall_status <> Okc_Api.G_RET_STS_UNEXP_ERROR THEN
670 l_overall_status := x_return_status;
671 END IF;
672 END IF;
673
674 EXIT WHEN (i = p_aehv_tbl.LAST);
675 i := p_aehv_tbl.NEXT(i);
676 END LOOP;
677 -- return overall status
678 x_return_status := l_overall_status;
679
680 END IF;
681
682 END create_acct_header;
683
684 PROCEDURE lock_acct_header(
685 p_api_version IN NUMBER,
686 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
687 x_return_status OUT NOCOPY VARCHAR2,
688 x_msg_count OUT NOCOPY NUMBER,
689 x_msg_data OUT NOCOPY VARCHAR2,
690 p_aehv_rec IN aehv_rec_type) IS
691 BEGIN
692 okl_aeh_pvt.lock_row(
693 p_api_version,
694 p_init_msg_list,
695 x_return_status,
696 x_msg_count,
697 x_msg_data,
698 p_aehv_rec);
699 END lock_acct_header;
700
701 PROCEDURE lock_acct_header(
702 p_api_version IN NUMBER,
703 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
704 x_return_status OUT NOCOPY VARCHAR2,
705 x_msg_count OUT NOCOPY NUMBER,
706 x_msg_data OUT NOCOPY VARCHAR2,
707 p_aehv_tbl IN aehv_tbl_type) IS
708
709 i NUMBER := 0;
710 l_overall_status VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
711 BEGIN
712
713 Okc_Api.init_msg_list(p_init_msg_list);
714 -- Make sure PL/SQL table has records in it before passing
715 IF (p_aehv_tbl.COUNT > 0) THEN
716 i := p_aehv_tbl.FIRST;
717 LOOP
718 lock_acct_header(
719 p_api_version => p_api_version,
720 p_init_msg_list => Okc_Api.G_FALSE,
721 x_return_status => x_return_status,
722 x_msg_count => x_msg_count,
723 x_msg_data => x_msg_data,
724 p_aehv_rec => p_aehv_tbl(i));
725
726 -- store the highest degree of error
727 IF x_return_status <> Okc_Api.G_RET_STS_SUCCESS THEN
728 IF l_overall_status <> Okc_Api.G_RET_STS_UNEXP_ERROR THEN
729 l_overall_status := x_return_status;
730 END IF;
731 END IF;
732
733 EXIT WHEN (i = p_aehv_tbl.LAST);
734 i := p_aehv_tbl.NEXT(i);
735 END LOOP;
736 -- return overall status
737 x_return_status := l_overall_status;
738
739 END IF;
740
741 END lock_acct_header;
742
743 PROCEDURE update_acct_header(
744 p_api_version IN NUMBER,
745 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
746 x_return_status OUT NOCOPY VARCHAR2,
747 x_msg_count OUT NOCOPY NUMBER,
748 x_msg_data OUT NOCOPY VARCHAR2,
749 p_aehv_rec IN aehv_rec_type,
750 x_aehv_rec OUT NOCOPY aehv_rec_type) IS
751 BEGIN
752 okl_aeh_pvt.update_row(
753 p_api_version,
754 p_init_msg_list,
755 x_return_status,
756 x_msg_count,
757 x_msg_data,
758 p_aehv_rec,
759 x_aehv_rec);
760
761 IF (x_return_status = OKC_API.G_RET_STS_SUCCESS) THEN
762 NULL;
763 -- Custom code by developer Update_Minor_Version(p_aehv_rec.dnz_chr_id);
764 END IF;
765 END update_acct_header;
766
767
768 PROCEDURE update_acct_header(
769 p_api_version IN NUMBER,
770 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
771 x_return_status OUT NOCOPY VARCHAR2,
772 x_msg_count OUT NOCOPY NUMBER,
773 x_msg_data OUT NOCOPY VARCHAR2,
774 p_aehv_tbl IN aehv_tbl_type,
775 x_aehv_tbl OUT NOCOPY aehv_tbl_type) IS
776
777 i NUMBER := 0;
778 l_overall_status VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
779
780 BEGIN
781
782 Okc_Api.init_msg_list(p_init_msg_list);
783 -- Make sure PL/SQL table has records in it before passing
784 IF (p_aehv_tbl.COUNT > 0) THEN
785 i := p_aehv_tbl.FIRST;
786 LOOP
787 update_Acct_header(
788 p_api_version => p_api_version,
789 p_init_msg_list => Okc_Api.G_FALSE,
790 x_return_status => x_return_status,
791 x_msg_count => x_msg_count,
792 x_msg_data => x_msg_data,
793 p_aehv_rec => p_aehv_tbl(i),
794 x_aehv_rec => x_aehv_tbl(i));
795
796 -- store the highest degree of error
797 IF x_return_status <> Okc_Api.G_RET_STS_SUCCESS THEN
798 IF l_overall_status <> Okc_Api.G_RET_STS_UNEXP_ERROR THEN
799 l_overall_status := x_return_status;
800 END IF;
801 END IF;
802
803 EXIT WHEN (i = p_aehv_tbl.LAST);
804 i := p_aehv_tbl.NEXT(i);
805 END LOOP;
806 -- return overall status
807 x_return_status := l_overall_status;
808
809 END IF;
810
811 END update_acct_header;
812
813
814 PROCEDURE delete_acct_header(p_api_version IN NUMBER,
815 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
816 x_return_status OUT NOCOPY VARCHAR2,
817 x_msg_count OUT NOCOPY NUMBER,
818 x_msg_data OUT NOCOPY VARCHAR2,
819 p_aehv_rec IN aehv_rec_type) IS
820
821 i NUMBER :=0;
822 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
823 l_aelv_tbl OKL_AEL_PVT.AELV_TBL_TYPE;
824
825 CURSOR ael_csr(v_aeh_id NUMBER) IS
826 SELECT ae_line_id
827 FROM OKL_AE_LINES
828 WHERE ae_header_id = v_aeh_id;
829
830 ael_rec ael_csr%ROWTYPE;
831
832 BEGIN
833
834 x_return_status := OKL_API.G_RET_STS_SUCCESS;
835
836 FOR ael_rec IN ael_csr(p_aehv_rec.ae_header_id)
837 LOOP
838
839 i := i + 1;
840 l_aelv_tbl(i).ae_line_id := ael_rec.ae_line_id;
841
842 END LOOP;
843
844 IF (l_aelv_tbl.COUNT > 0) THEN
845
846 delete_acct_lines(p_api_version => p_api_version,
847 p_init_msg_list => p_init_msg_list,
848 x_return_Status => x_return_status,
849 x_msg_count => x_msg_count,
850 x_msg_data => x_msg_data,
851 p_aelv_tbl => l_aelv_tbl);
852
853 END IF;
854
855 IF (x_return_status = OKC_API.G_RET_STS_SUCCESS) THEN
856
857 --Delete the Header
858
859 okl_aeh_pvt.delete_row(p_api_version => p_api_version,
860 p_init_msg_list => p_init_msg_list,
861 x_return_status => x_return_status,
862 x_msg_count => x_msg_count,
863 x_msg_data => x_msg_data,
864 p_aehv_rec => p_aehv_rec);
865
866 END IF;
867
868 EXCEPTION
869 WHEN G_EXCEPTION_HALT_VALIDATION THEN
870 NULL;
871
872 WHEN OTHERS THEN
873 OKC_API.set_message(p_app_name => g_app_name,
874 p_msg_name => g_unexpected_error,
875 p_token1 => g_sqlcode_token,
876 p_token1_value => SQLCODE,
877 p_token2 => g_sqlerrm_token,
878 p_token2_value => SQLERRM);
879 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
880 END delete_acct_header;
881
882 PROCEDURE delete_acct_header(
883 p_api_version IN NUMBER,
884 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
885 x_return_status OUT NOCOPY VARCHAR2,
886 x_msg_count OUT NOCOPY NUMBER,
887 x_msg_data OUT NOCOPY VARCHAR2,
888 p_aehv_tbl IN aehv_tbl_type) IS
889 i NUMBER :=0;
890 l_overall_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
891 BEGIN
892
893 Okc_Api.init_msg_list(p_init_msg_list);
894 -- Make sure PL/SQL table has records in it before passing
895 IF (p_aehv_tbl.COUNT > 0) THEN
896 i := p_aehv_tbl.FIRST;
897 LOOP
898 delete_acct_header(
899 p_api_version => p_api_version,
900 p_init_msg_list => Okc_Api.G_FALSE,
901 x_return_status => x_return_status,
902 x_msg_count => x_msg_count,
903 x_msg_data => x_msg_data,
904 p_aehv_rec => p_aehv_tbl(i));
905
906 -- store the highest degree of error
907 IF x_return_status <> Okc_Api.G_RET_STS_SUCCESS THEN
908 IF l_overall_status <> Okc_Api.G_RET_STS_UNEXP_ERROR THEN
909 l_overall_status := x_return_status;
910 END IF;
911 END IF;
912
913 EXIT WHEN (i = p_aehv_tbl.LAST);
914 i := p_aehv_tbl.NEXT(i);
915 END LOOP;
916 -- return overall status
917 x_return_status := l_overall_status;
918
919 END IF;
920
921 EXCEPTION
922 WHEN G_EXCEPTION_HALT_VALIDATION THEN
923 NULL;
924
925 WHEN OTHERS THEN
926 OKC_API.set_message(p_app_name => g_app_name,
927 p_msg_name => g_unexpected_error,
928 p_token1 => g_sqlcode_token,
929 p_token1_value => SQLCODE,
930 p_token2 => g_sqlerrm_token,
931 p_token2_value => SQLERRM);
932 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
933 END delete_acct_header;
934
935 PROCEDURE validate_acct_header(
936 p_api_version IN NUMBER,
937 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
938 x_return_status OUT NOCOPY VARCHAR2,
939 x_msg_count OUT NOCOPY NUMBER,
940 x_msg_data OUT NOCOPY VARCHAR2,
941 p_aehv_rec IN aehv_rec_type) IS
942 BEGIN
943 okl_aeh_pvt.validate_row(
944 p_api_version,
945 p_init_msg_list,
946 x_return_status,
947 x_msg_count,
948 x_msg_data,
949 p_aehv_rec);
950 END validate_acct_header;
951
952
953 PROCEDURE validate_acct_header(
954 p_api_version IN NUMBER,
955 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
956 x_return_status OUT NOCOPY VARCHAR2,
957 x_msg_count OUT NOCOPY NUMBER,
958 x_msg_data OUT NOCOPY VARCHAR2,
959 p_aehv_tbl IN aehv_tbl_type) IS
960
961 i NUMBER := 0;
962 l_overall_status VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
963
964 BEGIN
965
966 Okc_Api.init_msg_list(p_init_msg_list);
967 -- Make sure PL/SQL table has records in it before passing
968 IF (p_aehv_tbl.COUNT > 0) THEN
969 i := p_aehv_tbl.FIRST;
970 LOOP
971 validate_acct_header(
972 p_api_version => p_api_version,
973 p_init_msg_list => Okc_Api.G_FALSE,
974 x_return_status => x_return_status,
975 x_msg_count => x_msg_count,
976 x_msg_data => x_msg_data,
977 p_aehv_rec => p_aehv_tbl(i));
978
979 -- store the highest degree of error
980 IF x_return_status <> Okc_Api.G_RET_STS_SUCCESS THEN
981 IF l_overall_status <> Okc_Api.G_RET_STS_UNEXP_ERROR THEN
982 l_overall_status := x_return_status;
983 END IF;
984 END IF;
985
986 EXIT WHEN (i = p_aehv_tbl.LAST);
987 i := p_aehv_tbl.NEXT(i);
988 END LOOP;
989 -- return overall status
990 x_return_status := l_overall_status;
991
992 END IF;
993
994 END validate_acct_header;
995
996 PROCEDURE create_acct_lines(
997 p_api_version IN NUMBER,
998 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
999 x_return_status OUT NOCOPY VARCHAR2,
1000 x_msg_count OUT NOCOPY NUMBER,
1001 x_msg_data OUT NOCOPY VARCHAR2,
1002 p_aelv_rec IN aelv_rec_type,
1003 x_aelv_rec OUT NOCOPY aelv_rec_type) IS
1004 BEGIN
1005 okl_ael_pvt.insert_row(
1006 p_api_version,
1007 p_init_msg_list,
1008 x_return_status,
1009 x_msg_count,
1010 x_msg_data,
1011 p_aelv_rec,
1012 x_aelv_rec);
1013
1014 IF (x_return_status = OKC_API.G_RET_STS_SUCCESS) THEN
1015 NULL;
1016 -- Custom code by developer Update_Minor_Version(p_aelv_rec.dnz_chr_id);
1017 END IF;
1018
1019 END create_acct_lines;
1020
1021
1022 PROCEDURE create_acct_lines(
1023 p_api_version IN NUMBER,
1024 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
1025 x_return_status OUT NOCOPY VARCHAR2,
1026 x_msg_count OUT NOCOPY NUMBER,
1027 x_msg_data OUT NOCOPY VARCHAR2,
1028 p_aelv_tbl IN aelv_tbl_type,
1029 x_aelv_tbl OUT NOCOPY aelv_tbl_type) IS
1030
1031 i NUMBER := 0;
1032 l_overall_status VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
1033
1034 BEGIN
1035
1036 Okc_Api.init_msg_list(p_init_msg_list);
1037 -- Make sure PL/SQL table has records in it before passing
1038 IF (p_aelv_tbl.COUNT > 0) THEN
1039 i := p_aelv_tbl.FIRST;
1040 LOOP
1041 create_acct_lines(
1042 p_api_version => p_api_version,
1043 p_init_msg_list => Okc_Api.G_FALSE,
1044 x_return_status => x_return_status,
1045 x_msg_count => x_msg_count,
1046 x_msg_data => x_msg_data,
1047 p_aelv_rec => p_aelv_tbl(i),
1048 x_aelv_rec => x_aelv_tbl(i));
1049
1050 -- store the highest degree of error
1051 IF x_return_status <> Okc_Api.G_RET_STS_SUCCESS THEN
1052 IF l_overall_status <> Okc_Api.G_RET_STS_UNEXP_ERROR THEN
1053 l_overall_status := x_return_status;
1054 END IF;
1055 END IF;
1056
1057 EXIT WHEN (i = p_aelv_tbl.LAST);
1058 i := p_aelv_tbl.NEXT(i);
1059 END LOOP;
1060 -- return overall status
1061 x_return_status := l_overall_status;
1062
1063 END IF;
1064
1065 END create_acct_lines;
1066
1067 PROCEDURE lock_acct_lines(
1068 p_api_version IN NUMBER,
1069 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
1070 x_return_status OUT NOCOPY VARCHAR2,
1071 x_msg_count OUT NOCOPY NUMBER,
1072 x_msg_data OUT NOCOPY VARCHAR2,
1073 p_aelv_rec IN aelv_rec_type) IS
1074 BEGIN
1075 okl_ael_pvt.lock_row(
1076 p_api_version,
1077 p_init_msg_list,
1078 x_return_status,
1079 x_msg_count,
1080 x_msg_data,
1081 p_aelv_rec);
1082 END lock_acct_lines;
1083
1084 PROCEDURE lock_acct_lines(
1085 p_api_version IN NUMBER,
1086 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
1087 x_return_status OUT NOCOPY VARCHAR2,
1088 x_msg_count OUT NOCOPY NUMBER,
1089 x_msg_data OUT NOCOPY VARCHAR2,
1090 p_aelv_tbl IN aelv_tbl_type) IS
1091
1092 i NUMBER := 0;
1093 l_overall_status VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
1094
1095 BEGIN
1096 Okc_Api.init_msg_list(p_init_msg_list);
1097 -- Make sure PL/SQL table has records in it before passing
1098 IF (p_aelv_tbl.COUNT > 0) THEN
1099 i := p_aelv_tbl.FIRST;
1100 LOOP
1101 lock_acct_lines(
1102 p_api_version => p_api_version,
1103 p_init_msg_list => Okc_Api.G_FALSE,
1104 x_return_status => x_return_status,
1105 x_msg_count => x_msg_count,
1106 x_msg_data => x_msg_data,
1107 p_aelv_rec => p_aelv_tbl(i));
1108
1109 -- store the highest degree of error
1110 IF x_return_status <> Okc_Api.G_RET_STS_SUCCESS THEN
1111 IF l_overall_status <> Okc_Api.G_RET_STS_UNEXP_ERROR THEN
1112 l_overall_status := x_return_status;
1113 END IF;
1114 END IF;
1115
1116 EXIT WHEN (i = p_aelv_tbl.LAST);
1117 i := p_aelv_tbl.NEXT(i);
1118 END LOOP;
1119 -- return overall status
1120 x_return_status := l_overall_status;
1121
1122 END IF;
1123
1124 END lock_acct_lines;
1125
1126 PROCEDURE update_acct_lines(
1127 p_api_version IN NUMBER,
1128 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
1129 x_return_status OUT NOCOPY VARCHAR2,
1130 x_msg_count OUT NOCOPY NUMBER,
1131 x_msg_data OUT NOCOPY VARCHAR2,
1132 p_aelv_rec IN aelv_rec_type,
1133 x_aelv_rec OUT NOCOPY aelv_rec_type) IS
1134 BEGIN
1135 okl_ael_pvt.update_row(
1136 p_api_version,
1137 p_init_msg_list,
1138 x_return_status,
1139 x_msg_count,
1140 x_msg_data,
1141 p_aelv_rec,
1142 x_aelv_rec);
1143
1144 IF (x_return_status = OKC_API.G_RET_STS_SUCCESS) THEN
1145 NULL;
1146 -- Custom code by developer Update_Minor_Version(p_aelv_rec.dnz_chr_id);
1147 END IF;
1148 END update_acct_lines;
1149
1150 PROCEDURE update_acct_lines(
1151 p_api_version IN NUMBER,
1152 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
1153 x_return_status OUT NOCOPY VARCHAR2,
1154 x_msg_count OUT NOCOPY NUMBER,
1155 x_msg_data OUT NOCOPY VARCHAR2,
1156 p_aelv_tbl IN aelv_tbl_type,
1157 x_aelv_tbl OUT NOCOPY aelv_tbl_type) IS
1158
1159 i NUMBER := 0;
1160 l_overall_status VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
1161
1162 BEGIN
1163 Okc_Api.init_msg_list(p_init_msg_list);
1164 -- Make sure PL/SQL table has records in it before passing
1165 IF (p_aelv_tbl.COUNT > 0) THEN
1166 i := p_aelv_tbl.FIRST;
1167 LOOP
1168 update_Acct_lines(
1169 p_api_version => p_api_version,
1170 p_init_msg_list => Okc_Api.G_FALSE,
1171 x_return_status => x_return_status,
1172 x_msg_count => x_msg_count,
1173 x_msg_data => x_msg_data,
1174 p_aelv_rec => p_aelv_tbl(i),
1175 x_aelv_rec => x_aelv_tbl(i));
1176
1177 -- store the highest degree of error
1178 IF x_return_status <> Okc_Api.G_RET_STS_SUCCESS THEN
1179 IF l_overall_status <> Okc_Api.G_RET_STS_UNEXP_ERROR THEN
1180 l_overall_status := x_return_status;
1181 END IF;
1182 END IF;
1183
1184 EXIT WHEN (i = p_aelv_tbl.LAST);
1185 i := p_aelv_tbl.NEXT(i);
1186 END LOOP;
1187 -- return overall status
1188 x_return_status := l_overall_status;
1189
1190 END IF;
1191
1192 END update_acct_lines;
1193
1194 --Put custom code for cascade delete by developer
1195 PROCEDURE delete_acct_lines(
1196 p_api_version IN NUMBER,
1197 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
1198 x_return_status OUT NOCOPY VARCHAR2,
1199 x_msg_count OUT NOCOPY NUMBER,
1200 x_msg_data OUT NOCOPY VARCHAR2,
1201 p_aelv_rec IN aelv_rec_type) IS
1202 i NUMBER :=0;
1203 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1204 BEGIN
1205 --Delete the Master
1206 okl_ael_pvt.delete_row(
1207 p_api_version,
1208 p_init_msg_list,
1209 x_return_status,
1210 x_msg_count,
1211 x_msg_data,
1212 p_aelv_rec);
1213
1214 EXCEPTION
1215 WHEN G_EXCEPTION_HALT_VALIDATION THEN
1216 NULL;
1217
1218 WHEN OTHERS THEN
1219 OKC_API.set_message(p_app_name => g_app_name,
1220 p_msg_name => g_unexpected_error,
1221 p_token1 => g_sqlcode_token,
1222 p_token1_value => SQLCODE,
1223 p_token2 => g_sqlerrm_token,
1224 p_token2_value => SQLERRM);
1225 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1226 END delete_acct_lines;
1227
1228 PROCEDURE delete_acct_lines(
1229 p_api_version IN NUMBER,
1230 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
1231 x_return_status OUT NOCOPY VARCHAR2,
1232 x_msg_count OUT NOCOPY NUMBER,
1233 x_msg_data OUT NOCOPY VARCHAR2,
1234 p_aelv_tbl IN aelv_tbl_type) IS
1235
1236 i NUMBER := 0;
1237 l_overall_status VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
1238
1239 BEGIN
1240 Okc_Api.init_msg_list(p_init_msg_list);
1241 -- Make sure PL/SQL table has records in it before passing
1242 IF (p_aelv_tbl.COUNT > 0) THEN
1243 i := p_aelv_tbl.FIRST;
1244 LOOP
1245 delete_Acct_lines(
1246 p_api_version => p_api_version,
1247 p_init_msg_list => Okc_Api.G_FALSE,
1248 x_return_status => x_return_status,
1249 x_msg_count => x_msg_count,
1250 x_msg_data => x_msg_data,
1251 p_aelv_rec => p_aelv_tbl(i));
1252
1253 -- store the highest degree of error
1254
1255 IF x_return_status <> Okc_Api.G_RET_STS_SUCCESS THEN
1256 IF l_overall_status <> Okc_Api.G_RET_STS_UNEXP_ERROR THEN
1257 l_overall_status := x_return_status;
1258 END IF;
1259 END IF;
1260
1261 EXIT WHEN (i = p_aelv_tbl.LAST);
1262 i := p_aelv_tbl.NEXT(i);
1263 END LOOP;
1264 -- return overall status
1265 x_return_status := l_overall_status;
1266
1267 END IF;
1268
1269 EXCEPTION
1270 WHEN G_EXCEPTION_HALT_VALIDATION THEN
1271 NULL;
1272
1273 WHEN OTHERS THEN
1274 OKC_API.set_message(p_app_name => g_app_name,
1275 p_msg_name => g_unexpected_error,
1276 p_token1 => g_sqlcode_token,
1277 p_token1_value => SQLCODE,
1278 p_token2 => g_sqlerrm_token,
1279 p_token2_value => SQLERRM);
1280 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1281 END delete_acct_lines;
1282
1283 PROCEDURE validate_acct_lines(
1284 p_api_version IN NUMBER,
1285 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
1286 x_return_status OUT NOCOPY VARCHAR2,
1287 x_msg_count OUT NOCOPY NUMBER,
1288 x_msg_data OUT NOCOPY VARCHAR2,
1289 p_aelv_rec IN aelv_rec_type) IS
1290 BEGIN
1291 okl_ael_pvt.validate_row(
1292 p_api_version,
1293 p_init_msg_list,
1294 x_return_status,
1295 x_msg_count,
1296 x_msg_data,
1297 p_aelv_rec);
1298 END validate_acct_lines;
1299
1300 PROCEDURE validate_acct_lines(
1301 p_api_version IN NUMBER,
1302 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
1303 x_return_status OUT NOCOPY VARCHAR2,
1304 x_msg_count OUT NOCOPY NUMBER,
1305 x_msg_data OUT NOCOPY VARCHAR2,
1306 p_aelv_tbl IN aelv_tbl_type) IS
1307
1308 i NUMBER := 0;
1309 l_overall_status VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
1310
1311 BEGIN
1312 Okc_Api.init_msg_list(p_init_msg_list);
1313 -- Make sure PL/SQL table has records in it before passing
1314 IF (p_aelv_tbl.COUNT > 0) THEN
1315 i := p_aelv_tbl.FIRST;
1316 LOOP
1317 validate_acct_lines(
1318 p_api_version => p_api_version,
1319 p_init_msg_list => Okc_Api.G_FALSE,
1320 x_return_status => x_return_status,
1321 x_msg_count => x_msg_count,
1322 x_msg_data => x_msg_data,
1323 p_aelv_rec => p_aelv_tbl(i));
1324
1325 -- store the highest degree of error
1326 IF x_return_status <> Okc_Api.G_RET_STS_SUCCESS THEN
1327 IF l_overall_status <> Okc_Api.G_RET_STS_UNEXP_ERROR THEN
1328 l_overall_status := x_return_status;
1329 END IF;
1330 END IF;
1331
1332 EXIT WHEN (i = p_aelv_tbl.LAST);
1333 i := p_aelv_tbl.NEXT(i);
1334 END LOOP;
1335 -- return overall status
1336 x_return_status := l_overall_status;
1337
1338 END IF;
1339
1340
1341 END validate_acct_lines;
1342
1343 END okl_acct_event_pvt;