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