[Home] [Help]
PACKAGE BODY: APPS.OKL_ACC_GEN_RULE_PVT
Source
1 PACKAGE BODY okl_acc_gen_rule_pvt AS
2 /* $Header: OKLCAGRB.pls 115.9 2002/05/13 16:01:00 pkm ship $ */
3
4 --Object type procedure for insert
5 PROCEDURE create_acc_gen_rule(
6 p_api_version IN NUMBER
7 ,p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE
8 ,x_return_status OUT NOCOPY VARCHAR2
9 ,x_msg_count OUT NOCOPY NUMBER
10 ,x_msg_data OUT NOCOPY VARCHAR2
11 ,p_agrv_rec IN agrv_rec_type
12 ,p_aulv_tbl IN aulv_tbl_type
13 ,x_agrv_rec OUT NOCOPY agrv_rec_type
14 ,x_aulv_tbl OUT NOCOPY aulv_tbl_type
15 )
16 IS
17 i NUMBER;
18 l_agrv_rec agrv_rec_type;
19 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
20 l_aulv_tbl aulv_tbl_type := p_aulv_tbl;
21
22 BEGIN
23
24 -- Populate Header
25
26 create_acc_gen_rule(
27 p_api_version
28 ,p_init_msg_list
29 ,x_return_status
30 ,x_msg_count
31 ,x_msg_data
32 ,p_agrv_rec
33 ,x_agrv_rec);
34
35 IF (x_return_status = OKC_API.G_RET_STS_SUCCESS) THEN
36
37 -- populate the foreign key for the detail
38 IF (l_aulv_tbl.COUNT > 0) THEN
39 i:= l_aulv_tbl.FIRST;
40 LOOP
41 l_aulv_tbl(i).agr_id := x_agrv_rec.id;
42 EXIT WHEN(i = l_aulv_tbl.LAST);
43 i := l_aulv_tbl.NEXT(i);
44 END LOOP;
45 END IF;
46
47
48 -- populate the detail
49 create_acc_gen_rule_lns(
50 p_api_version
51 ,p_init_msg_list
52 ,x_return_status
53 ,x_msg_count
54 ,x_msg_data
55 ,l_aulv_tbl
56 ,x_aulv_tbl);
57
58 END IF;
59
60
61 EXCEPTION
62 WHEN G_EXCEPTION_HALT_VALIDATION THEN
63 NULL;
64
65 WHEN OTHERS THEN
66 OKC_API.SET_MESSAGE(p_app_name => g_app_name
67 ,p_msg_name => g_unexpected_error
68 ,p_token1 => g_sqlcode_token
69 ,p_token1_value => SQLCODE
70 ,p_token2 => g_sqlerrm_token
71 ,p_token2_value => SQLERRM);
72 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
73 END create_acc_gen_rule;
74
75
76 --Object type procedure for update
77 PROCEDURE update_acc_gen_rule(
78 p_api_version IN NUMBER
79 ,p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE
80 ,x_return_status OUT NOCOPY VARCHAR2
81 ,x_msg_count OUT NOCOPY NUMBER
82 ,x_msg_data OUT NOCOPY VARCHAR2
83 ,p_agrv_rec IN agrv_rec_type
84 ,p_aulv_tbl IN aulv_tbl_type
85 ,x_agrv_rec OUT NOCOPY agrv_rec_type
86 ,x_aulv_tbl OUT NOCOPY aulv_tbl_type
87 )
88 IS
89 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
90 BEGIN
91 -- Update the master
92 update_acc_gen_rule(
93 p_api_version
94 ,p_init_msg_list
95 ,x_return_status
96 ,x_msg_count
97 ,x_msg_data
98 ,p_agrv_rec
99 ,x_agrv_rec);
100
101
102 IF (x_return_status = OKC_API.G_RET_STS_SUCCESS) THEN
103
104 -- Update the detail
105 update_acc_gen_rule_lns(
106 p_api_version
107 ,p_init_msg_list
108 ,x_return_status
109 ,x_msg_count
110 ,x_msg_data
111 ,p_aulv_tbl
112 ,x_aulv_tbl);
113
114 END IF;
115
116 EXCEPTION
117 WHEN G_EXCEPTION_HALT_VALIDATION THEN
118 NULL;
119
120 WHEN OTHERS THEN
121 OKC_API.SET_MESSAGE(p_app_name => g_app_name
122 ,p_msg_name => g_unexpected_error
123 ,p_token1 => g_sqlcode_token
124 ,p_token1_value => SQLCODE
125 ,p_token2 => g_sqlerrm_token
126 ,p_token2_value => SQLERRM);
127 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
128 END update_acc_gen_rule;
129
130
131 --Object type procedure for validate
132 PROCEDURE validate_acc_gen_rule(
133 p_api_version IN NUMBER
134 ,p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE
135 ,x_return_status OUT NOCOPY VARCHAR2
136 ,x_msg_count OUT NOCOPY NUMBER
137 ,x_msg_data OUT NOCOPY VARCHAR2
138 ,p_agrv_rec IN agrv_rec_type
139 ,p_aulv_tbl IN aulv_tbl_type
140 )
141 IS
142 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
143 l_overall_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
144 BEGIN
145
146 -- Validate the master
147 validate_acc_gen_rule(
148 p_api_version
149 ,p_init_msg_list
150 ,x_return_status
151 ,x_msg_count
152 ,x_msg_data
153 ,p_agrv_rec);
154
155 IF x_return_status <> Okc_Api.G_RET_STS_SUCCESS THEN
156 IF l_overall_status <> Okc_Api.G_RET_STS_UNEXP_ERROR THEN
157 l_overall_status := x_return_status;
158 END IF;
159 END IF;
160
161
162 -- Validate the detail
163 validate_acc_gen_rule_lns(
164 p_api_version
165 ,p_init_msg_list
166 ,x_return_status
167 ,x_msg_count
168 ,x_msg_data
169 ,p_aulv_tbl);
170
171 IF x_return_status <> Okc_Api.G_RET_STS_SUCCESS THEN
172 IF l_overall_status <> Okc_Api.G_RET_STS_UNEXP_ERROR THEN
173 l_overall_status := x_return_status;
174 END IF;
175 END IF;
176
177 x_return_Status := l_overall_Status;
178
179
180 EXCEPTION
181 WHEN G_EXCEPTION_HALT_VALIDATION THEN
182 NULL;
183 WHEN OTHERS THEN
184 OKC_API.SET_MESSAGE(p_app_name => g_app_name
185 ,p_msg_name => g_unexpected_error
186 ,p_token1 => g_sqlcode_token
187 ,p_token1_value => SQLCODE
188 ,p_token2 => g_sqlerrm_token
189 ,p_token2_value => SQLERRM);
190 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
191
192
193
194 END validate_acc_gen_rule;
195
196
197 PROCEDURE create_acc_gen_rule(
198 p_api_version IN NUMBER,
199 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
200 x_return_status OUT NOCOPY VARCHAR2,
201 x_msg_count OUT NOCOPY NUMBER,
202 x_msg_data OUT NOCOPY VARCHAR2,
203 p_agrv_rec IN agrv_rec_type,
204 x_agrv_rec OUT NOCOPY agrv_rec_type) IS
205 BEGIN
206 okl_agr_pvt.insert_row(
207 p_api_version,
208 p_init_msg_list,
209 x_return_status,
210 x_msg_count,
211 x_msg_data,
212 p_agrv_rec,
213 x_agrv_rec);
214
215 IF (x_return_status = OKC_API.G_RET_STS_SUCCESS) THEN
216 NULL;
217 -- Custom code by developer Update_Minor_Version(p_agrv_rec.dnz_chr_id);
218 END IF;
219
220 END create_acc_gen_rule;
221
222 PROCEDURE create_acc_gen_rule(
223 p_api_version IN NUMBER,
224 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
225 x_return_status OUT NOCOPY VARCHAR2,
226 x_msg_count OUT NOCOPY NUMBER,
227 x_msg_data OUT NOCOPY VARCHAR2,
228 p_agrv_tbl IN agrv_tbl_type,
229 x_agrv_tbl OUT NOCOPY agrv_tbl_type) IS
230
231 l_overall_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
232 i NUMBER := 0;
233
234 BEGIN
235
236 OKC_API.init_msg_list(p_init_msg_list);
237 -- Make sure PL/SQL table has records in it before passing
238 IF (p_agrv_tbl.COUNT > 0) THEN
239 i := p_agrv_tbl.FIRST;
240 LOOP
241 create_acc_gen_rule(
242 p_api_version => p_api_version,
243 p_init_msg_list => OKC_API.G_FALSE,
244 x_return_status => x_return_status,
245 x_msg_count => x_msg_count,
246 x_msg_data => x_msg_data,
247 p_agrv_rec => p_agrv_tbl(i),
248 x_agrv_rec => x_agrv_tbl(i));
249
250 IF (x_return_status <> Okc_Api.G_RET_STS_SUCCESS) THEN
251 IF (l_overall_status <> Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
252 l_overall_status := x_return_status;
253 END IF;
254 END IF;
255
256 EXIT WHEN (i = p_agrv_tbl.LAST);
257 i := p_agrv_tbl.NEXT(i);
258 END LOOP;
259 END IF;
260
261 x_return_status := l_overall_status;
262
263 END create_acc_gen_rule;
264
265
266 PROCEDURE lock_acc_gen_rule(
267 p_api_version IN NUMBER,
268 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
269 x_return_status OUT NOCOPY VARCHAR2,
270 x_msg_count OUT NOCOPY NUMBER,
271 x_msg_data OUT NOCOPY VARCHAR2,
272 p_agrv_rec IN agrv_rec_type) IS
273 BEGIN
274 okl_agr_pvt.lock_row(
275 p_api_version,
276 p_init_msg_list,
277 x_return_status,
278 x_msg_count,
279 x_msg_data,
280 p_agrv_rec);
281 END lock_acc_gen_rule;
282
283 PROCEDURE lock_acc_gen_rule(
284 p_api_version IN NUMBER,
285 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
286 x_return_status OUT NOCOPY VARCHAR2,
287 x_msg_count OUT NOCOPY NUMBER,
288 x_msg_data OUT NOCOPY VARCHAR2,
289 p_agrv_tbl IN agrv_tbl_type) IS
290
291 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
292 l_overall_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
293 i NUMBER := 0;
294 BEGIN
295 OKC_API.init_msg_list(p_init_msg_list);
296 -- Make sure PL/SQL table has records in it before passing
297 IF (p_agrv_tbl.COUNT > 0) THEN
298 i := p_agrv_tbl.FIRST;
299 LOOP
300 lock_acc_gen_rule(
301 p_api_version => p_api_version,
302 p_init_msg_list => OKC_API.G_FALSE,
303 x_return_status => x_return_status,
304 x_msg_count => x_msg_count,
305 x_msg_data => x_msg_data,
306 p_agrv_rec => p_agrv_tbl(i));
307
308 IF (x_return_status <> Okc_Api.G_RET_STS_SUCCESS) THEN
309 IF (l_overall_status <> Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
310 l_overall_status := x_return_status;
311 END IF;
312 END IF;
313
314 EXIT WHEN (i = p_agrv_tbl.LAST);
315 i := p_agrv_tbl.NEXT(i);
316 END LOOP;
317 END IF;
318 x_return_status := l_overall_status;
319
320 END lock_acc_gen_rule;
321
322 PROCEDURE update_acc_gen_rule(
323 p_api_version IN NUMBER,
324 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
325 x_return_status OUT NOCOPY VARCHAR2,
326 x_msg_count OUT NOCOPY NUMBER,
327 x_msg_data OUT NOCOPY VARCHAR2,
328 p_agrv_rec IN agrv_rec_type,
329 x_agrv_rec OUT NOCOPY agrv_rec_type) IS
330 BEGIN
331 okl_agr_pvt.update_row(
332 p_api_version,
333 p_init_msg_list,
334 x_return_status,
335 x_msg_count,
336 x_msg_data,
337 p_agrv_rec,
338 x_agrv_rec);
339
340 IF (x_return_status = OKC_API.G_RET_STS_SUCCESS) THEN
341 NULL;
342 -- Custom code by developer Update_Minor_Version(p_agrv_rec.dnz_chr_id);
343 END IF;
344 END update_acc_gen_rule;
345
346 PROCEDURE update_acc_gen_rule(
347 p_api_version IN NUMBER,
348 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
349 x_return_status OUT NOCOPY VARCHAR2,
350 x_msg_count OUT NOCOPY NUMBER,
351 x_msg_data OUT NOCOPY VARCHAR2,
352 p_agrv_tbl IN agrv_tbl_type,
353 x_agrv_tbl OUT NOCOPY agrv_tbl_type) IS
354
355 l_overall_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
356 i NUMBER := 0;
357
358 BEGIN
359 OKC_API.init_msg_list(p_init_msg_list);
360 -- Make sure PL/SQL table has records in it before passing
361 IF (p_agrv_tbl.COUNT > 0) THEN
362 i := p_agrv_tbl.FIRST;
363 LOOP
364 update_acc_gen_rule(
365 p_api_version => p_api_version,
366 p_init_msg_list => OKC_API.G_FALSE,
367 x_return_status => x_return_status,
368 x_msg_count => x_msg_count,
369 x_msg_data => x_msg_data,
370 p_agrv_rec => p_agrv_tbl(i),
371 x_agrv_rec => x_agrv_tbl(i));
372
373 IF (x_return_status <> Okc_Api.G_RET_STS_SUCCESS) THEN
374 IF (l_overall_status <> Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
375 l_overall_status := x_return_status;
376 END IF;
377 END IF;
378 EXIT WHEN (i = p_agrv_tbl.LAST);
379 i := p_agrv_tbl.NEXT(i);
380 END LOOP;
381 END IF;
382 x_return_status := l_overall_Status;
383
384 END update_acc_gen_rule;
385
386 --Put custom code for cascade delete by developer
387 PROCEDURE delete_acc_gen_rule(
388 p_api_version IN NUMBER,
389 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
390 x_return_status OUT NOCOPY VARCHAR2,
391 x_msg_count OUT NOCOPY NUMBER,
392 x_msg_data OUT NOCOPY VARCHAR2,
393 p_agrv_rec IN agrv_rec_type) IS
394 i NUMBER :=0;
395 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
396
397 CURSOR rule_line_csr(p_agr_id IN NUMBER)
398 IS
399 SELECT id
400 FROM OKL_ACC_GEN_RUL_LNS
401 WHERE agr_id = p_agr_id;
402
403 l_rule_line_tbl OKL_AUL_PVT.aulv_tbl_type;
404 l_loop_ctr NUMBER := 1;
405
406 BEGIN
407
408 -- delete detail
409 FOR l_rule_line_csr IN rule_line_csr(p_agrv_rec.id)
410 LOOP
411 l_rule_line_tbl(l_loop_ctr).id := l_rule_line_csr.id;
412 l_loop_ctr := l_loop_ctr + 1 ;
413 END LOOP;
414
415 -- delete Lines
416 delete_acc_gen_rule_lns(p_api_version
417 ,p_init_msg_list
418 ,x_return_status
419 ,x_msg_count
420 ,x_msg_data
421 ,l_rule_line_tbl);
422
423 IF (x_return_status = OKC_API.G_RET_STS_SUCCESS) THEN
424
425 okl_agr_pvt.delete_row(
426 p_api_version,
427 p_init_msg_list,
428 x_return_status,
429 x_msg_count,
430 x_msg_data,
431 p_agrv_rec);
432
433
434 END IF;
435
436 EXCEPTION
437 WHEN G_EXCEPTION_HALT_VALIDATION THEN
438 NULL;
439
440 WHEN OTHERS THEN
441 OKC_API.set_message(p_app_name => g_app_name,
442 p_msg_name => g_unexpected_error,
443 p_token1 => g_sqlcode_token,
444 p_token1_value => SQLCODE,
445 p_token2 => g_sqlerrm_token,
446 p_token2_value => SQLERRM);
447 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
448 END delete_acc_gen_rule;
449
450
451 PROCEDURE delete_acc_gen_rule(
452 p_api_version IN NUMBER,
453 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
454 x_return_status OUT NOCOPY VARCHAR2,
455 x_msg_count OUT NOCOPY NUMBER,
456 x_msg_data OUT NOCOPY VARCHAR2,
457 p_agrv_tbl IN agrv_tbl_type) IS
458 i NUMBER :=0;
459 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
460 l_overall_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
461
462 BEGIN
463 --Initialize the return status
464 x_return_status := OKC_API.G_RET_STS_SUCCESS;
465
466 IF (p_agrv_tbl.COUNT > 0) THEN
467 i := p_agrv_tbl.FIRST;
468 LOOP
469 delete_acc_gen_rule(
470 p_api_version
471 ,p_init_msg_list
472 ,x_return_status
473 ,x_msg_count
474 ,x_msg_data
475 ,p_agrv_tbl(i));
476
477 IF (x_return_status <> Okc_Api.G_RET_STS_SUCCESS) THEN
478 IF (l_overall_status <> Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
479 l_overall_status := x_return_status;
480 END IF;
481 END IF;
482
483 EXIT WHEN (i = p_agrv_tbl.LAST);
484 i := p_agrv_tbl.NEXT(i);
485 END LOOP;
486
487 END IF;
488
489 x_return_Status := l_overall_status;
490
491 EXCEPTION
492 WHEN G_EXCEPTION_HALT_VALIDATION THEN
493 NULL;
494
495 WHEN OTHERS THEN
496 OKC_API.set_message(p_app_name => g_app_name,
497 p_msg_name => g_unexpected_error,
498 p_token1 => g_sqlcode_token,
499 p_token1_value => SQLCODE,
500 p_token2 => g_sqlerrm_token,
501 p_token2_value => SQLERRM);
502 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
503 END delete_acc_gen_rule;
504
505 PROCEDURE validate_acc_gen_rule(
506 p_api_version IN NUMBER,
507 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
508 x_return_status OUT NOCOPY VARCHAR2,
509 x_msg_count OUT NOCOPY NUMBER,
510 x_msg_data OUT NOCOPY VARCHAR2,
511 p_agrv_rec IN agrv_rec_type) IS
512 BEGIN
513 okl_agr_pvt.validate_row(
514 p_api_version,
515 p_init_msg_list,
516 x_return_status,
517 x_msg_count,
518 x_msg_data,
519 p_agrv_rec);
520 END validate_acc_gen_rule;
521
522 PROCEDURE validate_acc_gen_rule(
523 p_api_version IN NUMBER,
524 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
525 x_return_status OUT NOCOPY VARCHAR2,
526 x_msg_count OUT NOCOPY NUMBER,
527 x_msg_data OUT NOCOPY VARCHAR2,
528 p_agrv_tbl IN agrv_tbl_type) IS
529
530 l_overall_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
531 i NUMBER := 0;
532
533 BEGIN
534 OKC_API.init_msg_list(p_init_msg_list);
535 -- Make sure PL/SQL table has records in it before passing
536 IF (p_agrv_tbl.COUNT > 0) THEN
537 i := p_agrv_tbl.FIRST;
538 LOOP
539 validate_acc_gen_rule(
540 p_api_version => p_api_version,
541 p_init_msg_list => OKC_API.G_FALSE,
542 x_return_status => x_return_status,
543 x_msg_count => x_msg_count,
544 x_msg_data => x_msg_data,
545 p_agrv_rec => p_agrv_tbl(i));
546
547 IF (x_return_status <> Okc_Api.G_RET_STS_SUCCESS) THEN
548 IF (l_overall_status <> Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
549 l_overall_status := x_return_status;
550 END IF;
551
552 END IF;
553 EXIT WHEN (i = p_agrv_tbl.LAST);
554 i := p_agrv_tbl.NEXT(i);
555 END LOOP;
556 END IF;
557 x_return_status := l_overall_status;
558
559 END validate_acc_gen_rule;
560
561 PROCEDURE create_acc_gen_rule_lns(
562 p_api_version IN NUMBER,
563 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
564 x_return_status OUT NOCOPY VARCHAR2,
565 x_msg_count OUT NOCOPY NUMBER,
566 x_msg_data OUT NOCOPY VARCHAR2,
567 p_aulv_rec IN aulv_rec_type,
568 x_aulv_rec OUT NOCOPY aulv_rec_type) IS
569 BEGIN
570 okl_aul_pvt.insert_row(
571 p_api_version,
572 p_init_msg_list,
573 x_return_status,
574 x_msg_count,
575 x_msg_data,
576 p_aulv_rec,
577 x_aulv_rec);
578
579 IF (x_return_status = OKC_API.G_RET_STS_SUCCESS) THEN
580 NULL;
581 -- Custom code by developer Update_Minor_Version(p_aulv_rec.dnz_chr_id);
582 END IF;
583
584 END create_acc_gen_rule_lns;
585
586 PROCEDURE create_acc_gen_rule_lns(
587 p_api_version IN NUMBER,
588 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
589 x_return_status OUT NOCOPY VARCHAR2,
590 x_msg_count OUT NOCOPY NUMBER,
591 x_msg_data OUT NOCOPY VARCHAR2,
592 p_aulv_tbl IN aulv_tbl_type,
593 x_aulv_tbl OUT NOCOPY aulv_tbl_type) IS
594
595 l_overall_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
596 i NUMBER := 0;
597 BEGIN
598 OKC_API.init_msg_list(p_init_msg_list);
599 -- Make sure PL/SQL table has records in it before passing
600 IF (p_aulv_tbl.COUNT > 0) THEN
601 i := p_aulv_tbl.FIRST;
602 LOOP
603 create_acc_gen_rule_lns(
604 p_api_version => p_api_version,
605 p_init_msg_list => OKC_API.G_FALSE,
606 x_return_status => x_return_status,
607 x_msg_count => x_msg_count,
608 x_msg_data => x_msg_data,
609 p_aulv_rec => p_aulv_tbl(i),
610 x_aulv_rec => x_aulv_tbl(i));
611
612 IF (x_return_status <> Okc_Api.G_RET_STS_SUCCESS) THEN
613 l_overall_status := x_return_status;
614 EXIT;
615 END IF;
616
617 EXIT WHEN (i = p_aulv_tbl.LAST);
618 i := p_aulv_tbl.NEXT(i);
619 END LOOP;
620
621 END IF;
622
623 x_return_status := l_overall_status;
624
625
626 END create_acc_gen_rule_lns;
627
628 PROCEDURE lock_acc_gen_rule_lns(
629 p_api_version IN NUMBER,
630 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
631 x_return_status OUT NOCOPY VARCHAR2,
632 x_msg_count OUT NOCOPY NUMBER,
633 x_msg_data OUT NOCOPY VARCHAR2,
634 p_aulv_rec IN aulv_rec_type) IS
635 BEGIN
636 okl_aul_pvt.lock_row(
637 p_api_version,
638 p_init_msg_list,
639 x_return_status,
640 x_msg_count,
641 x_msg_data,
642 p_aulv_rec);
643 END lock_acc_gen_rule_lns;
644
645 PROCEDURE lock_acc_gen_rule_lns(
646 p_api_version IN NUMBER,
647 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
648 x_return_status OUT NOCOPY VARCHAR2,
649 x_msg_count OUT NOCOPY NUMBER,
650 x_msg_data OUT NOCOPY VARCHAR2,
651 p_aulv_tbl IN aulv_tbl_type) IS
652 l_overall_Status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
653 i NUMBER := 0;
654 BEGIN
655 OKC_API.init_msg_list(p_init_msg_list);
656 -- Make sure PL/SQL table has records in it before passing
657 IF (p_aulv_tbl.COUNT > 0) THEN
658 i := p_aulv_tbl.FIRST;
659 LOOP
660 lock_acc_gen_rule_lns(
661 p_api_version => p_api_version,
662 p_init_msg_list => OKC_API.G_FALSE,
663 x_return_status => x_return_status,
664 x_msg_count => x_msg_count,
665 x_msg_data => x_msg_data,
666 p_aulv_rec => p_aulv_tbl(i));
667
668 IF (x_return_status <> Okc_Api.G_RET_STS_SUCCESS) THEN
669
670 IF (l_overall_status <> Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
671 l_overall_status := x_return_status;
672 END IF;
673
674 END IF;
675 EXIT WHEN (i = p_aulv_tbl.LAST);
676 i := p_aulv_tbl.NEXT(i);
677 END LOOP;
678 END IF;
679 x_return_status := l_overall_Status;
680
681 END lock_acc_gen_rule_lns;
682
683 PROCEDURE update_acc_gen_rule_lns(
684 p_api_version IN NUMBER,
685 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
686 x_return_status OUT NOCOPY VARCHAR2,
687 x_msg_count OUT NOCOPY NUMBER,
688 x_msg_data OUT NOCOPY VARCHAR2,
689 p_aulv_rec IN aulv_rec_type,
690 x_aulv_rec OUT NOCOPY aulv_rec_type) IS
691 BEGIN
692
693
694 okl_aul_pvt.update_row(
695 p_api_version,
696 p_init_msg_list,
697 x_return_status,
698 x_msg_count,
699 x_msg_data,
700 p_aulv_rec,
701 x_aulv_rec);
702
703 -- RAISE_APPLICATION_ERROR (-20001, 'Return Status in acc gen pvtTTTTTTTTTT' || x_return_status);
704
705 IF (x_return_status = OKC_API.G_RET_STS_SUCCESS) THEN
706 NULL;
707 -- Custom code by developer Update_Minor_Version(p_aulv_rec.dnz_chr_id);
708 END IF;
709 END update_acc_gen_rule_lns;
710
711 PROCEDURE update_acc_gen_rule_lns(
712 p_api_version IN NUMBER,
713 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
714 x_return_status OUT NOCOPY VARCHAR2,
715 x_msg_count OUT NOCOPY NUMBER,
716 x_msg_data OUT NOCOPY VARCHAR2,
717 p_aulv_tbl IN aulv_tbl_type,
718 x_aulv_tbl OUT NOCOPY aulv_tbl_type) IS
719
720 l_overall_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
721 i NUMBER := 0;
722 BEGIN
723 OKC_API.init_msg_list(p_init_msg_list);
724 -- Make sure PL/SQL table has records in it before passing
725 IF (p_aulv_tbl.COUNT > 0) THEN
726 i := p_aulv_tbl.FIRST;
727 LOOP
728 update_acc_gen_rule_lns(
729 p_api_version => p_api_version,
730 p_init_msg_list => OKC_API.G_FALSE,
731 x_return_status => x_return_status,
732 x_msg_count => x_msg_count,
733 x_msg_data => x_msg_data,
734 p_aulv_rec => p_aulv_tbl(i),
735 x_aulv_rec => x_aulv_tbl(i));
736
737 IF (x_return_status <> Okc_Api.G_RET_STS_SUCCESS) THEN
738
739 IF (l_overall_status <> Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
740 l_overall_status := x_return_status;
741 END IF;
742
743 END IF;
744
745 EXIT WHEN (i = p_aulv_tbl.LAST);
746 i := p_aulv_tbl.NEXT(i);
747 END LOOP;
748 END IF;
749
750 x_return_status := l_overall_Status;
751
752 END update_acc_gen_rule_lns;
753
754 --Put custom code for cascade delete by developer
755
756 PROCEDURE delete_acc_gen_rule_lns(
757 p_api_version IN NUMBER,
758 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
759 x_return_status OUT NOCOPY VARCHAR2,
760 x_msg_count OUT NOCOPY NUMBER,
761 x_msg_data OUT NOCOPY VARCHAR2,
762 p_aulv_rec IN aulv_rec_type) IS
763 i NUMBER :=0;
764 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
765 BEGIN
766 --Delete the Master
767 okl_aul_pvt.delete_row(
768 p_api_version,
769 p_init_msg_list,
770 x_return_status,
771 x_msg_count,
772 x_msg_data,
773 p_aulv_rec);
774
775
776 EXCEPTION
777 WHEN G_EXCEPTION_HALT_VALIDATION THEN
778 NULL;
779
780 WHEN OTHERS THEN
781 OKC_API.set_message(p_app_name => g_app_name,
782 p_msg_name => g_unexpected_error,
783 p_token1 => g_sqlcode_token,
784 p_token1_value => SQLCODE,
785 p_token2 => g_sqlerrm_token,
786 p_token2_value => SQLERRM);
787 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
788 END delete_acc_gen_rule_lns;
789
790 PROCEDURE delete_acc_gen_rule_lns(
791 p_api_version IN NUMBER,
792 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
793 x_return_status OUT NOCOPY VARCHAR2,
794 x_msg_count OUT NOCOPY NUMBER,
795 x_msg_data OUT NOCOPY VARCHAR2,
796 p_aulv_tbl IN aulv_tbl_type) IS
797 i NUMBER :=0;
798 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
799 l_overall_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
800
801 BEGIN
802 --Initialize the return status
803 x_return_status := OKC_API.G_RET_STS_SUCCESS;
804
805 IF (p_aulv_tbl.COUNT > 0) THEN
806 i := p_aulv_tbl.FIRST;
807 LOOP
808 delete_acc_gen_rule_lns(
809 p_api_version,
810 p_init_msg_list,
811 x_return_status,
812 x_msg_count,
813 x_msg_data,
814 p_aulv_tbl(i));
815
816 IF (x_return_status <> Okc_Api.G_RET_STS_SUCCESS) THEN
817
818 IF (l_overall_status <> Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
819 l_overall_status := x_return_status;
820 END IF;
821
822 END IF;
823
824 EXIT WHEN (i = p_aulv_tbl.LAST);
825 i := p_aulv_tbl.NEXT(i);
826 END LOOP;
827 END IF;
828
829 x_return_status := l_overall_status;
830
831 EXCEPTION
832 WHEN G_EXCEPTION_HALT_VALIDATION THEN
833 NULL;
834
835 WHEN OTHERS THEN
836 OKC_API.set_message(p_app_name => g_app_name,
837 p_msg_name => g_unexpected_error,
838 p_token1 => g_sqlcode_token,
839 p_token1_value => SQLCODE,
840 p_token2 => g_sqlerrm_token,
841 p_token2_value => SQLERRM);
842 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
843 END delete_acc_gen_rule_lns;
844
845 PROCEDURE validate_acc_gen_rule_lns(
846 p_api_version IN NUMBER,
847 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
848 x_return_status OUT NOCOPY VARCHAR2,
849 x_msg_count OUT NOCOPY NUMBER,
850 x_msg_data OUT NOCOPY VARCHAR2,
851 p_aulv_rec IN aulv_rec_type) IS
852 BEGIN
853 okl_aul_pvt.validate_row(
854 p_api_version,
855 p_init_msg_list,
856 x_return_status,
857 x_msg_count,
858 x_msg_data,
859 p_aulv_rec);
860 END validate_acc_gen_rule_lns;
861
862 PROCEDURE validate_acc_gen_rule_lns(
863 p_api_version IN NUMBER,
864 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
865 x_return_status OUT NOCOPY VARCHAR2,
866 x_msg_count OUT NOCOPY NUMBER,
867 x_msg_data OUT NOCOPY VARCHAR2,
868 p_aulv_tbl IN aulv_tbl_type) IS
869
870 l_overall_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
871 i NUMBER := 0;
872 BEGIN
873 OKC_API.init_msg_list(p_init_msg_list);
874 -- Make sure PL/SQL table has records in it before passing
875 IF (p_aulv_tbl.COUNT > 0) THEN
876 i := p_aulv_tbl.FIRST;
877 LOOP
878 validate_acc_gen_rule_lns(
879 p_api_version => p_api_version,
880 p_init_msg_list => OKC_API.G_FALSE,
881 x_return_status => x_return_status,
882 x_msg_count => x_msg_count,
883 x_msg_data => x_msg_data,
884 p_aulv_rec => p_aulv_tbl(i));
885
886 IF (x_return_status <> Okc_Api.G_RET_STS_SUCCESS) THEN
887 IF (l_overall_status <> Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
888 l_overall_status := x_return_status;
889 END IF;
890
891 END IF;
892 EXIT WHEN (i = p_aulv_tbl.LAST);
893 i := p_aulv_tbl.NEXT(i);
894 END LOOP;
895 END IF;
896 x_return_status := l_overall_status;
897
898 END validate_acc_gen_rule_lns;
899
900 END okl_acc_gen_rule_pvt;