DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKL_ACC_GROUP_PVT

Source


1 package body OKL_ACC_GROUP_PVT as
2 /* $Header: OKLCAGCB.pls 115.4 2002/02/18 20:10:22 pkm ship       $ */
3 
4 PROCEDURE create_acc_group(p_api_version                  IN NUMBER
5                           ,p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE
6                           ,x_return_status                OUT NOCOPY VARCHAR2
7                           ,x_msg_count                    OUT NOCOPY NUMBER
8                           ,x_msg_data                     OUT NOCOPY VARCHAR2
9                           ,p_agcv_rec                     IN agcv_rec_type
10                           ,p_agbv_tbl                     IN agbv_tbl_type
11                           ,x_agcv_rec                     OUT NOCOPY agcv_rec_type
12                           ,x_agbv_tbl                     OUT NOCOPY agbv_tbl_type
13     ) IS
14 
15     i                  NUMBER;
16     l_agcv_rec         agcv_rec_type;
17     l_return_status    VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
18     l_agbv_tbl         agbv_tbl_type  := p_agbv_tbl;
19 
20 BEGIN
21 
22   create_acc_ccid(p_api_version        => p_api_version
23                  ,p_init_msg_list      => p_init_msg_list
24                  ,x_return_status      => x_return_status
25                  ,x_msg_count          => x_msg_count
26                  ,x_msg_data           => x_msg_data
27                  ,p_agcv_rec           => p_agcv_rec
28                  ,x_agcv_rec           => x_agcv_rec);
29 
30   IF x_return_status = OKC_API.G_RET_STS_SUCCESS THEN
31          -- populate the foreign key for the detail
32      IF (l_agbv_tbl.COUNT > 0) THEN
33          i:= l_agbv_tbl.FIRST;
34          LOOP
35             l_agbv_tbl(i).acc_group_id := x_agcv_rec.id;
36             EXIT WHEN(i = l_agbv_tbl.LAST);
37             i := l_agbv_tbl.NEXT(i);
38          END LOOP;
39      END IF;
40 
41 
42      -- populate the detail
43      create_acc_bal(p_api_version   => p_api_version
44                    ,p_init_msg_list => p_init_msg_list
45                    ,x_return_status => x_return_status
46                    ,x_msg_count     => x_msg_count
47                    ,x_msg_data      => x_msg_data
48                    ,p_agbv_tbl      => l_agbv_tbl
49                    ,x_agbv_tbl      => x_agbv_tbl);
50      END IF;
51 
52  EXCEPTION
53       WHEN G_EXCEPTION_HALT_VALIDATION THEN
54         NULL;
55 
56       WHEN OTHERS THEN
57         OKC_API.SET_MESSAGE(p_app_name          => g_app_name
58                            ,p_msg_name          => g_unexpected_error
59                            ,p_token1            => g_sqlcode_token
60                            ,p_token1_value      => sqlcode
61                            ,p_token2            => g_sqlerrm_token
62                            ,p_token2_value      => sqlerrm);
63 
64         x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
65 
66 END create_acc_group;
67 
68 PROCEDURE create_acc_ccid(
69      p_api_version             IN  NUMBER
70     ,p_init_msg_list           IN  VARCHAR2 DEFAULT OKC_API.G_FALSE
71     ,x_return_status           OUT NOCOPY VARCHAR2
72     ,x_msg_count               OUT NOCOPY NUMBER
73     ,x_msg_data                OUT NOCOPY VARCHAR2
74     ,p_agcv_rec                IN  agcv_rec_type
75     ,x_agcv_rec                OUT NOCOPY agcv_rec_type) IS
76 
77     l_return_status            VARCHAR2(1)   := OKC_API.G_RET_STS_SUCCESS;
78 
79   BEGIN
80 
81     okl_agc_pvt.insert_row(p_api_version   => p_api_version
82                           ,p_init_msg_list => p_init_msg_list
83                           ,x_return_status => x_return_status
84                           ,x_msg_count     => x_msg_count
85                           ,x_msg_data      => x_msg_data
86                           ,p_agcv_rec      => p_agcv_rec
87                           ,x_agcv_rec      => x_agcv_rec
88                           );
89 
90     IF x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR THEN
91        RAISE G_EXCEPTION_HALT_VALIDATION;
92     ELSE
93       IF x_return_status <> OKC_API.G_RET_STS_SUCCESS THEN
94         l_return_status := x_return_status;
95       END IF;
96     END IF;
97 
98     EXCEPTION
99       WHEN G_EXCEPTION_HALT_VALIDATION THEN
100         NULL;
101 
102       WHEN OTHERS THEN
103         OKC_API.SET_MESSAGE(p_app_name          => g_app_name
104                            ,p_msg_name          => g_unexpected_error
105                            ,p_token1            => g_sqlcode_token
106                            ,p_token1_value      => sqlcode
107                            ,p_token2            => g_sqlerrm_token
108                            ,p_token2_value      => sqlerrm);
109         x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
110 
111 END create_acc_ccid;
112 
113 
114 
115 PROCEDURE create_acc_ccid(p_api_version               IN  NUMBER
116                          ,p_init_msg_list             IN  VARCHAR2 DEFAULT OKC_API.G_FALSE
117                          ,x_return_status             OUT NOCOPY VARCHAR2
118                          ,x_msg_count                 OUT NOCOPY NUMBER
119                          ,x_msg_data                  OUT NOCOPY VARCHAR2
120                          ,p_agcv_tbl                  IN  agcv_tbl_type
121                          ,x_agcv_tbl                  OUT NOCOPY agcv_tbl_type) IS
122 
123  l_return_status              VARCHAR2(1)   := OKC_API.G_RET_STS_SUCCESS;
124  l_overall_status             VARCHAR2(1)   := OKC_API.G_RET_STS_SUCCESS;
125  i                            NUMBER := 0;
126 
127 BEGIN
128 
129     Okc_Api.init_msg_list(p_init_msg_list);
130     -- Make sure PL/SQL table has records in it before passing
131     IF (p_agcv_tbl.COUNT > 0) THEN
132       i := p_agcv_tbl.FIRST;
133       LOOP
134         create_acc_ccid(p_api_version                  => p_api_version,
135                         p_init_msg_list                => Okc_Api.G_FALSE,
136                         x_return_status                => x_return_status,
137                         x_msg_count                    => x_msg_count,
138                         x_msg_data                     => x_msg_data,
139                         p_agcv_rec                     => p_agcv_tbl(i),
140                         x_agcv_rec                     => x_agcv_tbl(i));
141 
142         -- store the highest degree of error
143           IF x_return_status <> Okc_Api.G_RET_STS_SUCCESS THEN
144            IF l_overall_status <> Okc_Api.G_RET_STS_UNEXP_ERROR THEN
145               l_overall_status := x_return_status;
146            END IF;
147           END IF;
148 
149         EXIT WHEN (i = p_agcv_tbl.LAST);
150         i := p_agcv_tbl.NEXT(i);
151       END LOOP;
152 
153     END IF;
154 x_return_status := l_overall_status;
155 
156 
157     EXCEPTION
158       WHEN G_EXCEPTION_HALT_VALIDATION THEN
159         NULL;
160 
161       WHEN OTHERS THEN
162         OKC_API.SET_MESSAGE(p_app_name          => g_app_name
163                            ,p_msg_name          => g_unexpected_error
164                            ,p_token1            => g_sqlcode_token
165                            ,p_token1_value      => sqlcode
166                            ,p_token2            => g_sqlerrm_token
167                            ,p_token2_value      => sqlerrm);
168         x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
169 
170 END create_acc_ccid;
171 
172 
173 PROCEDURE update_acc_group(p_api_version           IN  NUMBER,
174                            p_init_msg_list         IN  VARCHAR2 DEFAULT OKC_API.G_FALSE,
175                            x_return_status         OUT NOCOPY VARCHAR2,
176                            x_msg_count             OUT NOCOPY NUMBER,
177                            x_msg_data              OUT NOCOPY VARCHAR2,
178                            p_agcv_rec              IN  agcv_rec_type,
179                            p_agbv_tbl              IN  agbv_tbl_type,
180                            x_agcv_rec              OUT NOCOPY agcv_rec_type,
181                            x_agbv_tbl              OUT NOCOPY agbv_tbl_type)
182 
183 IS
184 
185   l_return_status         VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
186 
187 BEGIN
188     -- Update the master
189     update_acc_ccid(p_api_version   => p_api_version
190                    ,p_init_msg_list => p_init_msg_list
191                    ,x_return_status => x_return_status
192                    ,x_msg_count     => x_msg_count
193                    ,x_msg_data      => x_msg_data
194                    ,p_agcv_rec      => p_agcv_rec
195                    ,x_agcv_rec      => x_agcv_rec);
196 
197     IF (x_return_status = OKC_API.G_RET_STS_SUCCESS) THEN
198 
199     -- Update the detail
200         update_acc_bal(p_api_version   => p_api_version
201                       ,p_init_msg_list => p_init_msg_list
202                       ,x_return_status => x_return_status
203                       ,x_msg_count     => x_msg_count
204                       ,x_msg_data      => x_msg_data
205                       ,p_agbv_tbl      => p_agbv_tbl
206                       ,x_agbv_tbl      => x_agbv_tbl);
207 
208     END IF;
209 
210 EXCEPTION
211     WHEN G_EXCEPTION_HALT_VALIDATION THEN
212       NULL;
213 
214     WHEN OTHERS THEN
215       OKC_API.SET_MESSAGE(p_app_name          => g_app_name
216                          ,p_msg_name          => g_unexpected_error
217                          ,p_token1            => g_sqlcode_token
218                          ,p_token1_value      => sqlcode
219                          ,p_token2            => g_sqlerrm_token
220                          ,p_token2_value      => sqlerrm);
221     x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
222 
223   END update_acc_group;
224 
225 
226 PROCEDURE validate_acc_group(
227      p_api_version           IN  NUMBER
228     ,p_init_msg_list         IN  VARCHAR2 DEFAULT OKC_API.G_FALSE
229     ,x_return_status         OUT NOCOPY VARCHAR2
230     ,x_msg_count             OUT NOCOPY NUMBER
231     ,x_msg_data              OUT NOCOPY VARCHAR2
232     ,p_agcv_rec              IN  agcv_rec_type
233     ,p_agbv_tbl              IN  agbv_tbl_type) IS
234 
235     l_return_status         VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
236     l_overall_status        VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
237 
238   BEGIN
239 
240     -- Validate the master
241     validate_acc_ccid(p_api_version   => p_api_version
242                      ,p_init_msg_list => p_init_msg_list
243                      ,x_return_status => x_return_status
244                      ,x_msg_count     => x_msg_count
245                      ,x_msg_data      => x_msg_data
246                      ,p_agcv_rec      => p_agcv_rec);
247 
248     IF x_return_status <> Okc_Api.G_RET_STS_SUCCESS THEN
249        IF l_overall_status <> Okc_Api.G_RET_STS_UNEXP_ERROR THEN
250           l_overall_status := x_return_status;
251        END IF;
252     END IF;
253 
254     -- Validate the detail
255     validate_acc_bal(p_api_version   => p_api_version
256                     ,p_init_msg_list => p_init_msg_list
257                     ,x_return_status => x_return_status
258                     ,x_msg_count     => x_msg_count
259                     ,x_msg_data      => x_msg_data
260                     ,p_agbv_tbl      => p_agbv_tbl);
261 
262     IF x_return_status <> Okc_Api.G_RET_STS_SUCCESS THEN
263        IF l_overall_status <> Okc_Api.G_RET_STS_UNEXP_ERROR THEN
264           l_overall_status := x_return_status;
265        END IF;
266     END IF;
267 
268     x_return_status := l_overall_status;
269 
270   EXCEPTION
271     WHEN G_EXCEPTION_HALT_VALIDATION THEN
272       NULL;
273     WHEN OTHERS THEN
274       OKC_API.SET_MESSAGE(p_app_name          => g_app_name
275                          ,p_msg_name          => g_unexpected_error
276                          ,p_token1            => g_sqlcode_token
277                          ,p_token1_value      => sqlcode
278                          ,p_token2            => g_sqlerrm_token
279                          ,p_token2_value      => sqlerrm);
280       x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
281 
282   END validate_acc_group;
283 
284 
285 PROCEDURE lock_acc_ccid(p_api_version           IN  NUMBER
286                        ,p_init_msg_list         IN  VARCHAR2 DEFAULT OKC_API.G_FALSE
287                        ,x_return_status         OUT NOCOPY VARCHAR2
288                        ,x_msg_count             OUT NOCOPY NUMBER
289                        ,x_msg_data              OUT NOCOPY VARCHAR2
290                        ,p_agcv_rec              IN  agcv_rec_type) IS
291 
292     l_return_status          VARCHAR2(1)   := OKC_API.G_RET_STS_SUCCESS;
293 
294   BEGIN
295 
296     okl_agc_pvt.lock_row(p_api_version   => p_api_version
297                         ,p_init_msg_list => p_init_msg_list
298                         ,x_return_status => x_return_status
299                         ,x_msg_count     => x_msg_count
300                         ,x_msg_data      => x_msg_data
301                         ,p_agcv_rec      => p_agcv_rec);
302 
303     IF x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR THEN
304       RAISE G_EXCEPTION_HALT_VALIDATION;
305     ELSE
306       IF x_return_status <> OKC_API.G_RET_STS_SUCCESS THEN
307         l_return_status := x_return_status;
308       END IF;
309     END IF;
310 
311   EXCEPTION
312     WHEN G_EXCEPTION_HALT_VALIDATION THEN
313       NULL;
314     WHEN OTHERS THEN
315       OKC_API.SET_MESSAGE(p_app_name          => g_app_name
316                          ,p_msg_name          => g_unexpected_error
317                          ,p_token1            => g_sqlcode_token
318                          ,p_token1_value      => sqlcode
319                          ,p_token2            => g_sqlerrm_token
320                          ,p_token2_value      => sqlerrm);
321       x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
322   END lock_acc_ccid;
323 
324 
325 PROCEDURE lock_acc_ccid(
326      p_api_version           IN  NUMBER
327     ,p_init_msg_list         IN  VARCHAR2 DEFAULT OKC_API.G_FALSE
328     ,x_return_status         OUT NOCOPY VARCHAR2
329     ,x_msg_count             OUT NOCOPY NUMBER
330     ,x_msg_data              OUT NOCOPY VARCHAR2
331     ,p_agcv_tbl              IN  agcv_tbl_type) IS
332 
333     l_return_status          VARCHAR2(1)   := OKC_API.G_RET_STS_SUCCESS;
334     l_overall_status         VARCHAR2(1)   := OKC_API.G_RET_STS_SUCCESS;
335     i                        NUMBER := 0;
336 
337   BEGIN
338 
339     Okc_Api.init_msg_list(p_init_msg_list);
340     -- Make sure PL/SQL table has records in it before passing
341     IF (p_agcv_tbl.COUNT > 0) THEN
342       i := p_agcv_tbl.FIRST;
343       LOOP
344         lock_acc_ccid(p_api_version                  => p_api_version,
345                       p_init_msg_list                => Okc_Api.G_FALSE,
346                       x_return_status                => x_return_status,
347                       x_msg_count                    => x_msg_count,
348                       x_msg_data                     => x_msg_data,
349                       p_agcv_rec                     => p_agcv_tbl(i));
350 
351         -- store the highest degree of error
352           IF x_return_status <> Okc_Api.G_RET_STS_SUCCESS THEN
353            IF l_overall_status <> Okc_Api.G_RET_STS_UNEXP_ERROR THEN
354               l_overall_status := x_return_status;
355            END IF;
356           END IF;
357 
358         EXIT WHEN (i = p_agcv_tbl.LAST);
359         i := p_agcv_tbl.NEXT(i);
360       END LOOP;
361 
362   END IF;
363 
364      x_return_status := l_overall_status;
365 
366   EXCEPTION
367     WHEN G_EXCEPTION_HALT_VALIDATION THEN
368       NULL;
369     WHEN OTHERS THEN
370       OKC_API.SET_MESSAGE(p_app_name          => g_app_name
371                          ,p_msg_name          => g_unexpected_error
372                          ,p_token1            => g_sqlcode_token
373                          ,p_token1_value      => sqlcode
374                          ,p_token2            => g_sqlerrm_token
375                          ,p_token2_value      => sqlerrm);
376       x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
377 
378   END lock_acc_ccid;
379 
380 
381 PROCEDURE update_acc_ccid(p_api_version                IN  NUMBER
382                          ,p_init_msg_list              IN  VARCHAR2 DEFAULT OKC_API.G_FALSE
383                          ,x_return_status              OUT NOCOPY VARCHAR2
384                          ,x_msg_count                  OUT NOCOPY NUMBER
385                          ,x_msg_data                   OUT NOCOPY VARCHAR2
386                          ,p_agcv_rec                   IN  agcv_rec_type
387                          ,x_agcv_rec                   OUT NOCOPY agcv_rec_type) IS
388 
389     l_return_status               VARCHAR2(1)   := OKC_API.G_RET_STS_SUCCESS;
390 
391   BEGIN
392 
393     okl_agc_pvt.update_row(p_api_version   => p_api_version
394                           ,p_init_msg_list => p_init_msg_list
395                           ,x_return_status => x_return_status
396                           ,x_msg_count     => x_msg_count
397                           ,x_msg_data      => x_msg_data
398                           ,p_agcv_rec      => p_agcv_rec
399                           ,x_agcv_rec      => x_agcv_rec);
400 
401     IF x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR THEN
402       RAISE G_EXCEPTION_HALT_VALIDATION;
403     ELSE
404       IF x_return_status <> OKC_API.G_RET_STS_SUCCESS THEN
405         l_return_status := x_return_status;
406       END IF;
407     END IF;
408   EXCEPTION
409     WHEN G_EXCEPTION_HALT_VALIDATION THEN
410       NULL;
411     WHEN OTHERS THEN
412       OKC_API.SET_MESSAGE(p_app_name          => g_app_name
413                          ,p_msg_name          => g_unexpected_error
414                          ,p_token1            => g_sqlcode_token
415                          ,p_token1_value      => sqlcode
416                          ,p_token2            => g_sqlerrm_token
417                          ,p_token2_value      => sqlerrm);
418       x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
419   END update_acc_ccid;
420 
421 
422 PROCEDURE update_acc_ccid(p_api_version                IN  NUMBER
423                          ,p_init_msg_list              IN  VARCHAR2 DEFAULT OKC_API.G_FALSE
424                          ,x_return_status              OUT NOCOPY VARCHAR2
425                          ,x_msg_count                  OUT NOCOPY NUMBER
426                          ,x_msg_data                   OUT NOCOPY VARCHAR2
427                          ,p_agcv_tbl                   IN  agcv_tbl_type
428                          ,x_agcv_tbl                   OUT NOCOPY agcv_tbl_type) IS
429 
430     l_return_status               VARCHAR2(1)   := OKC_API.G_RET_STS_SUCCESS;
431     l_overall_status              VARCHAR2(1)   := OKC_API.G_RET_STS_SUCCESS;
432     i                             NUMBER := 0;
433 
434   BEGIN
435 
436   Okc_Api.init_msg_list(p_init_msg_list);
437     -- Make sure PL/SQL table has records in it before passing
438     IF (p_agcv_tbl.COUNT > 0) THEN
439       i := p_agcv_tbl.FIRST;
440       LOOP
441         update_acc_ccid(p_api_version                  => p_api_version,
442                         p_init_msg_list                => Okc_Api.G_FALSE,
443                         x_return_status                => x_return_status,
444                         x_msg_count                    => x_msg_count,
445                         x_msg_data                     => x_msg_data,
446                         p_agcv_rec                     => p_agcv_tbl(i),
447                         x_agcv_rec                     => x_agcv_tbl(i));
448 
449         -- store the highest degree of error
450           IF x_return_status <> Okc_Api.G_RET_STS_SUCCESS THEN
451            IF l_overall_status <> Okc_Api.G_RET_STS_UNEXP_ERROR THEN
452               l_overall_status := x_return_status;
453            END IF;
454           END IF;
455 
456         EXIT WHEN (i = p_agcv_tbl.LAST);
457         i := p_agcv_tbl.NEXT(i);
458       END LOOP;
459   END IF;
460 
461     x_return_status := l_overall_status;
462 
463 
464   EXCEPTION
465     WHEN G_EXCEPTION_HALT_VALIDATION THEN
466       NULL;
467     WHEN OTHERS THEN
468       OKC_API.SET_MESSAGE(p_app_name          => g_app_name
469                          ,p_msg_name          => g_unexpected_error
470                          ,p_token1            => g_sqlcode_token
471                          ,p_token1_value      => sqlcode
472                          ,p_token2            => g_sqlerrm_token
473                          ,p_token2_value      => sqlerrm);
474       x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
475   END update_acc_ccid;
476 
477 
478  PROCEDURE delete_acc_ccid(p_api_version           IN  NUMBER
479                           ,p_init_msg_list         IN  VARCHAR2 DEFAULT OKC_API.G_FALSE
480                           ,x_return_status         OUT NOCOPY VARCHAR2
481                           ,x_msg_count             OUT NOCOPY NUMBER
482                           ,x_msg_data              OUT NOCOPY VARCHAR2
483                           ,p_agcv_rec              IN  agcv_rec_type) IS
484 
485     i                        NUMBER :=0;
486     l_return_status          VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
487     l_agbv_tbl               agbv_tbl_type;
488 
489  CURSOR agb_csr IS
490  SELECT agb.id
491  FROM OKL_ACC_GROUP_BAL agb
492  WHERE agb.acc_group_id = p_agcv_rec.id;
493 
494   BEGIN
495     FOR agb_rec IN agb_csr
496     LOOP
497       i := i + 1;
498       l_agbv_tbl(i).id := agb_rec.id;
499     END LOOP;
500 
501 
502     delete_acc_bal( p_api_version   => p_api_version
503                    ,p_init_msg_list => p_init_msg_list
504                    ,x_return_status => x_return_status
505                    ,x_msg_count     => x_msg_count
506                    ,x_msg_data      => x_msg_data
507                    ,p_agbv_tbl      => l_agbv_tbl);
508 
509 
510     IF x_return_status = OKC_API.G_RET_STS_SUCCESS THEN
511       okl_agc_pvt.delete_row(p_api_version   => p_api_version
512                             ,p_init_msg_list => p_init_msg_list
513                             ,x_return_status => x_return_status
514                             ,x_msg_count     => x_msg_count
515                             ,x_msg_data      => x_msg_data
516                             ,p_agcv_rec      => p_agcv_rec);
517 
518     END IF;
519 EXCEPTION
520     WHEN G_EXCEPTION_HALT_VALIDATION THEN
521       NULL;
522     WHEN OTHERS THEN
523       OKC_API.SET_MESSAGE(p_app_name          => g_app_name
524                          ,p_msg_name          => g_unexpected_error
525                          ,p_token1            => g_sqlcode_token
526                          ,p_token1_value      => sqlcode
527                          ,p_token2            => g_sqlerrm_token
528                          ,p_token2_value      => sqlerrm);
529 
530       x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
531 
532   END delete_acc_ccid;
533 
534 
535  PROCEDURE delete_acc_ccid(p_api_version           IN  NUMBER
536                           ,p_init_msg_list         IN  VARCHAR2 DEFAULT OKC_API.G_FALSE
537                           ,x_return_status         OUT NOCOPY VARCHAR2
538                           ,x_msg_count             OUT NOCOPY NUMBER
539                           ,x_msg_data              OUT NOCOPY VARCHAR2
540                           ,p_agcv_tbl              IN  agcv_tbl_type) IS
541 
542     i                        NUMBER :=0;
543     l_return_status          VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
544     l_overall_status         VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
545 
546   BEGIN
547     --Initialize the return status
548     x_return_status := OKC_API.G_RET_STS_SUCCESS;
549     IF (p_agcv_tbl.COUNT > 0) THEN
550       i := p_agcv_tbl.FIRST;
551       LOOP
552         delete_acc_ccid( p_api_version   => p_api_version
553                         ,p_init_msg_list => p_init_msg_list
554                         ,x_return_status => x_return_status
555                         ,x_msg_count     => x_msg_count
556                         ,x_msg_data      => x_msg_data
557                         ,p_agcv_rec      => p_agcv_tbl(i));
558 
559        IF x_return_status <> Okc_Api.G_RET_STS_SUCCESS THEN
560           IF l_overall_status <> Okc_Api.G_RET_STS_UNEXP_ERROR THEN
561               l_overall_status := x_return_status;
562           END IF;
563        END IF;
564 
565          EXIT WHEN (i = p_agcv_tbl.LAST);
566          i := p_agcv_tbl.NEXT(i);
567        END LOOP;
568 
569       END IF;
570 
571       x_return_status := l_overall_status;
572 
573 EXCEPTION
574 
575     WHEN G_EXCEPTION_HALT_VALIDATION THEN
576       NULL;
577     WHEN OTHERS THEN
578       OKC_API.SET_MESSAGE(p_app_name          => g_app_name
579                          ,p_msg_name          => g_unexpected_error
580                          ,p_token1            => g_sqlcode_token
581                          ,p_token1_value      => sqlcode
582                          ,p_token2            => g_sqlerrm_token
583                          ,p_token2_value      => sqlerrm);
584         x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
585 END delete_acc_ccid;
586 
587 
588  PROCEDURE validate_acc_ccid(p_api_version                IN  NUMBER
589                             ,p_init_msg_list              IN  VARCHAR2 DEFAULT OKC_API.G_FALSE
590                             ,x_return_status              OUT NOCOPY VARCHAR2
591                             ,x_msg_count                  OUT NOCOPY NUMBER
592                             ,x_msg_data                   OUT NOCOPY VARCHAR2
593                             ,p_agcv_rec                   IN  agcv_rec_type) IS
594 
595   l_return_status               VARCHAR2(1)   := OKC_API.G_RET_STS_SUCCESS;
596 
597   BEGIN
598 
599     okl_agc_pvt.validate_row(p_api_version   => p_api_version
600                             ,p_init_msg_list => p_init_msg_list
601                             ,x_return_status => x_return_status
602                             ,x_msg_count     => x_msg_count
603                             ,x_msg_data      => x_msg_data
604                             ,p_agcv_rec      => p_agcv_rec);
605 
606     IF x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR THEN
607        RAISE G_EXCEPTION_HALT_VALIDATION;
608     ELSE
609        IF x_return_status <> OKC_API.G_RET_STS_SUCCESS THEN
610           l_return_status := x_return_status;
611        END IF;
612     END IF;
613 
614   EXCEPTION
615     WHEN G_EXCEPTION_HALT_VALIDATION THEN
616       NULL;
617     WHEN OTHERS THEN
618       OKC_API.SET_MESSAGE(p_app_name          => g_app_name
619                          ,p_msg_name          => g_unexpected_error
620                          ,p_token1            => g_sqlcode_token
621                          ,p_token1_value      => sqlcode
622                          ,p_token2            => g_sqlerrm_token
623                          ,p_token2_value      => sqlerrm);
624         x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
625   END validate_acc_ccid;
626 
627 PROCEDURE validate_acc_ccid(p_api_version               IN  NUMBER,
628                             p_init_msg_list             IN  VARCHAR2 DEFAULT OKC_API.G_FALSE,
629                             x_return_status             OUT NOCOPY VARCHAR2,
630                             x_msg_count                 OUT NOCOPY NUMBER,
631                             x_msg_data                  OUT NOCOPY VARCHAR2,
632                             p_agcv_tbl                  IN  agcv_tbl_type)
633 
634  IS
635 
636     l_return_status               VARCHAR2(1)   := OKC_API.G_RET_STS_SUCCESS;
637     l_overall_status              VARCHAR2(1)   := OKC_API.G_RET_STS_SUCCESS;
638       i                           NUMBER := 0;
639 
640   BEGIN
641 
642     Okc_Api.init_msg_list(p_init_msg_list);
643     -- Make sure PL/SQL table has records in it before passing
644     IF (p_agcv_tbl.COUNT > 0) THEN
645       i := p_agcv_tbl.FIRST;
646       LOOP
647         validate_acc_ccid(p_api_version                  => p_api_version,
648                           p_init_msg_list                => Okc_Api.G_FALSE,
649                           x_return_status                => x_return_status,
650                           x_msg_count                    => x_msg_count,
651                           x_msg_data                     => x_msg_data,
652                           p_agcv_rec                     => p_agcv_tbl(i));
653 
654         -- store the highest degree of error
655           IF x_return_status <> Okc_Api.G_RET_STS_SUCCESS THEN
656            IF l_overall_status <> Okc_Api.G_RET_STS_UNEXP_ERROR THEN
657               l_overall_status := x_return_status;
658            END IF;
659           END IF;
660 
661         EXIT WHEN (i = p_agcv_tbl.LAST);
662         i := p_agcv_tbl.NEXT(i);
663       END LOOP;
664 
665     END IF;
666  x_return_status := l_overall_status;
667 
668 
669   EXCEPTION
670     WHEN G_EXCEPTION_HALT_VALIDATION THEN
671       NULL;
672     WHEN OTHERS THEN
673       OKC_API.SET_MESSAGE(p_app_name          => g_app_name
674                          ,p_msg_name          => g_unexpected_error
675                          ,p_token1            => g_sqlcode_token
676                          ,p_token1_value      => sqlcode
677                          ,p_token2            => g_sqlerrm_token
678                          ,p_token2_value      => sqlerrm);
679         x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
680 END validate_acc_ccid;
681 
682 
683 PROCEDURE create_acc_bal(p_api_version                    IN  NUMBER
684                         ,p_init_msg_list                  IN  VARCHAR2 DEFAULT OKC_API.G_FALSE
685                         ,x_return_status                  OUT NOCOPY VARCHAR2
686                         ,x_msg_count                      OUT NOCOPY NUMBER
687                         ,x_msg_data                       OUT NOCOPY VARCHAR2
688                         ,p_agbv_rec                       IN  agbv_rec_type
689                         ,x_agbv_rec                       OUT NOCOPY agbv_rec_type) IS
690 
691     l_return_status                   VARCHAR2(1)   := OKC_API.G_RET_STS_SUCCESS;
692 
693   BEGIN
694 
695     okl_agb_pvt.insert_row(p_api_version   => p_api_version
696                           ,p_init_msg_list => p_init_msg_list
697                           ,x_return_status => x_return_status
698                           ,x_msg_count     => x_msg_count
699                           ,x_msg_data      => x_msg_data
700                           ,p_agbv_rec      => p_agbv_rec
701                           ,x_agbv_rec      => x_agbv_rec);
702 
703       IF x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR THEN
704        RAISE G_EXCEPTION_HALT_VALIDATION;
705       ELSE
706         IF x_return_status <> OKC_API.G_RET_STS_SUCCESS THEN
707           l_return_status := x_return_status;
708            END IF;
709       END IF;
710   EXCEPTION
711     WHEN G_EXCEPTION_HALT_VALIDATION THEN
712       NULL;
713     WHEN OTHERS THEN
714       OKC_API.SET_MESSAGE(p_app_name          => g_app_name
715                          ,p_msg_name          => g_unexpected_error
716                          ,p_token1            => g_sqlcode_token
717                          ,p_token1_value      => sqlcode
718                          ,p_token2            => g_sqlerrm_token
719                          ,p_token2_value      => sqlerrm);
720         x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
721 
722 END create_acc_bal;
723 
724 PROCEDURE create_acc_bal(p_api_version                    IN  NUMBER
725                         ,p_init_msg_list                  IN  VARCHAR2 DEFAULT OKC_API.G_FALSE
726                         ,x_return_status                  OUT NOCOPY VARCHAR2
727                         ,x_msg_count                      OUT NOCOPY NUMBER
728                         ,x_msg_data                       OUT NOCOPY VARCHAR2
729                         ,p_agbv_tbl                       IN  agbv_tbl_type
730                         ,x_agbv_tbl                       OUT NOCOPY agbv_tbl_type) IS
731 
732     l_return_status                   VARCHAR2(1)   := OKC_API.G_RET_STS_SUCCESS;
733     l_overall_status                   VARCHAR2(1)   := OKC_API.G_RET_STS_SUCCESS;
734     i        NUMBER := 0;
735 
736   BEGIN
737 
738   OKC_API.init_msg_list(p_init_msg_list);
739     -- Make sure PL/SQL table has records in it before passing
740     IF (p_agbv_tbl.COUNT > 0) THEN
741       i := p_agbv_tbl.FIRST;
742       LOOP
743         create_acc_bal(p_api_version                  => p_api_version,
744                        p_init_msg_list                => OKC_API.G_FALSE,
745                        x_return_status                => x_return_status,
746                        x_msg_count                    => x_msg_count,
747                        x_msg_data                     => x_msg_data,
748                        p_agbv_rec                     => p_agbv_tbl(i),
749                        x_agbv_rec                     => x_agbv_tbl(i));
750 
751         -- store the highest degree of error
752           IF x_return_status <> OKC_API.G_RET_STS_SUCCESS THEN
753            IF l_overall_status <> OKC_API.G_RET_STS_UNEXP_ERROR THEN
754               l_overall_status := x_return_status;
755            END IF;
756           END IF;
757 
758         EXIT WHEN (i = p_agbv_tbl.LAST);
759         i := p_agbv_tbl.NEXT(i);
760       END LOOP;
761 
762  END IF;
763 
764     x_return_status := l_overall_status;
765 
766   EXCEPTION
767     WHEN G_EXCEPTION_HALT_VALIDATION THEN
768       NULL;
769     WHEN OTHERS THEN
770       OKC_API.SET_MESSAGE(p_app_name          => g_app_name
771                          ,p_msg_name          => g_unexpected_error
772                          ,p_token1            => g_sqlcode_token
773                          ,p_token1_value      => sqlcode
774                          ,p_token2            => g_sqlerrm_token
775                          ,p_token2_value      => sqlerrm);
776         x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
777 
778   END create_acc_bal;
779 
780  PROCEDURE lock_acc_bal(
781      p_api_version                    IN  NUMBER
782     ,p_init_msg_list                  IN  VARCHAR2 DEFAULT OKC_API.G_FALSE
783     ,x_return_status                  OUT NOCOPY VARCHAR2
784     ,x_msg_count                      OUT NOCOPY NUMBER
785     ,x_msg_data                       OUT NOCOPY VARCHAR2
786     ,p_agbv_rec                       IN  agbv_rec_type) IS
787     l_return_status                   VARCHAR2(1)   := OKC_API.G_RET_STS_SUCCESS;
788   BEGIN
789     okl_agb_pvt.lock_row(
790                            p_api_version   => p_api_version
791                           ,p_init_msg_list => p_init_msg_list
792                           ,x_return_status => x_return_status
793                           ,x_msg_count     => x_msg_count
794                           ,x_msg_data      => x_msg_data
795                           ,p_agbv_rec      => p_agbv_rec
796                           );
797       IF x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR THEN
798        RAISE G_EXCEPTION_HALT_VALIDATION;
799       ELSE
800         IF x_return_status <> OKC_API.G_RET_STS_SUCCESS THEN
801           l_return_status := x_return_status;
802            END IF;
803       END IF;
804   EXCEPTION
805     WHEN G_EXCEPTION_HALT_VALIDATION THEN
806       NULL;
807     WHEN OTHERS THEN
808       OKC_API.SET_MESSAGE(p_app_name          => g_app_name
809                          ,p_msg_name          => g_unexpected_error
810                          ,p_token1            => g_sqlcode_token
811                          ,p_token1_value      => sqlcode
812                          ,p_token2            => g_sqlerrm_token
813                          ,p_token2_value      => sqlerrm);
814         x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
815 
816   END lock_acc_bal;
817 
818 PROCEDURE lock_acc_bal(
819      p_api_version                   IN  NUMBER
820     ,p_init_msg_list                 IN  VARCHAR2 DEFAULT OKC_API.G_FALSE
821     ,x_return_status                 OUT NOCOPY VARCHAR2
822     ,x_msg_count                     OUT NOCOPY NUMBER
823     ,x_msg_data                      OUT NOCOPY VARCHAR2
824     ,p_agbv_tbl                      IN  agbv_tbl_type) IS
825     l_return_status                  VARCHAR2(1)   := OKC_API.G_RET_STS_SUCCESS;
826     l_overall_status                 VARCHAR2(1)   := OKC_API.G_RET_STS_SUCCESS;
827     i                  NUMBER := 0;
828 
829   BEGIN
830 
831     OKC_API.init_msg_list(p_init_msg_list);
832     -- Make sure PL/SQL table has records in it before passing
833     IF (p_agbv_tbl.COUNT > 0) THEN
834       i := p_agbv_tbl.FIRST;
835       LOOP
836         lock_acc_bal(
837           p_api_version                  => p_api_version,
838           p_init_msg_list                => OKC_API.G_FALSE,
839           x_return_status                => x_return_status,
840           x_msg_count                    => x_msg_count,
841           x_msg_data                     => x_msg_data,
842           p_agbv_rec                     => p_agbv_tbl(i));
843 
844         -- store the highest degree of error
845           IF x_return_status <> OKC_API.G_RET_STS_SUCCESS THEN
846            IF l_overall_status <> OKC_API.G_RET_STS_UNEXP_ERROR THEN
847               l_overall_status := x_return_status;
848            END IF;
849           END IF;
850 
851         EXIT WHEN (i = p_agbv_tbl.LAST);
852         i := p_agbv_tbl.NEXT(i);
853 
854       END LOOP;
855 
856     END IF;
857   x_return_status := l_overall_status;
858 
859 
860   EXCEPTION
861     WHEN G_EXCEPTION_HALT_VALIDATION THEN
862       NULL;
863     WHEN OTHERS THEN
864       OKC_API.SET_MESSAGE(p_app_name          => g_app_name
865                          ,p_msg_name          => g_unexpected_error
866                          ,p_token1            => g_sqlcode_token
867                          ,p_token1_value      => sqlcode
868                          ,p_token2            => g_sqlerrm_token
869                          ,p_token2_value      => sqlerrm);
870         x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
871   END lock_acc_bal;
872 
873 PROCEDURE update_acc_bal(
874      p_api_version                    IN  NUMBER
875     ,p_init_msg_list                  IN  VARCHAR2 DEFAULT OKC_API.G_FALSE
876     ,x_return_status                  OUT NOCOPY VARCHAR2
877     ,x_msg_count                      OUT NOCOPY NUMBER
878     ,x_msg_data                       OUT NOCOPY VARCHAR2
879     ,p_agbv_rec                       IN  agbv_rec_type
880     ,x_agbv_rec                       OUT NOCOPY agbv_rec_type) IS
881     l_return_status                   VARCHAR2(1)   := OKC_API.G_RET_STS_SUCCESS;
882 
883   BEGIN
884     okl_agb_pvt.update_row(
885                            p_api_version   => p_api_version
886                           ,p_init_msg_list => p_init_msg_list
887                           ,x_return_status => x_return_status
888                           ,x_msg_count     => x_msg_count
889                           ,x_msg_data      => x_msg_data
890                           ,p_agbv_rec      => p_agbv_rec
891                           ,x_agbv_rec      => x_agbv_rec
892                           );
893       IF x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR THEN
894        RAISE G_EXCEPTION_HALT_VALIDATION;
895       ELSE
896         IF x_return_status <> OKC_API.G_RET_STS_SUCCESS THEN
897           l_return_status := x_return_status;
898            END IF;
899       END IF;
900   EXCEPTION
901     WHEN G_EXCEPTION_HALT_VALIDATION THEN
902       NULL;
903     WHEN OTHERS THEN
904       OKC_API.SET_MESSAGE(p_app_name          => g_app_name
905                          ,p_msg_name          => g_unexpected_error
906                          ,p_token1            => g_sqlcode_token
907                          ,p_token1_value      => sqlcode
908                          ,p_token2            => g_sqlerrm_token
909                          ,p_token2_value      => sqlerrm);
910         x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
911   END update_acc_bal;
912 
913 PROCEDURE update_acc_bal(
914      p_api_version                    IN  NUMBER
915     ,p_init_msg_list                  IN  VARCHAR2 DEFAULT OKC_API.G_FALSE
916     ,x_return_status                  OUT NOCOPY VARCHAR2
917     ,x_msg_count                      OUT NOCOPY NUMBER
918     ,x_msg_data                       OUT NOCOPY VARCHAR2
919     ,p_agbv_tbl                       IN  agbv_tbl_type
920     ,x_agbv_tbl                       OUT NOCOPY agbv_tbl_type) IS
921 
922     l_return_status                   VARCHAR2(1)   := OKC_API.G_RET_STS_SUCCESS;
923     l_overall_status                  VARCHAR2(1)   := OKC_API.G_RET_STS_SUCCESS;
924     i                                 NUMBER := 0;
925 
926   BEGIN
927 
928     OKC_API.init_msg_list(p_init_msg_list);
929     -- Make sure PL/SQL table has records in it before passing
930     IF (p_agbv_tbl.COUNT > 0) THEN
931       i := p_agbv_tbl.FIRST;
932       LOOP
933         update_acc_bal(
934           p_api_version                  => p_api_version,
935           p_init_msg_list                => OKC_API.G_FALSE,
936           x_return_status                => x_return_status,
937           x_msg_count                    => x_msg_count,
938           x_msg_data                     => x_msg_data,
939           p_agbv_rec                     => p_agbv_tbl(i),
940           x_agbv_rec                     => x_agbv_tbl(i));
941 
942         -- store the highest degree of error
943           IF x_return_status <> OKC_API.G_RET_STS_SUCCESS THEN
944            IF l_overall_status <> OKC_API.G_RET_STS_UNEXP_ERROR THEN
945               l_overall_status := x_return_status;
946            END IF;
947           END IF;
948 
949         EXIT WHEN (i = p_agbv_tbl.LAST);
950         i := p_agbv_tbl.NEXT(i);
951  END LOOP;
952 
953     END IF;
954 
955     x_return_status := l_overall_status;
956 
957 
958   EXCEPTION
959     WHEN G_EXCEPTION_HALT_VALIDATION THEN
960       NULL;
961     WHEN OTHERS THEN
962       OKC_API.SET_MESSAGE(p_app_name          => g_app_name
963                          ,p_msg_name          => g_unexpected_error
964                          ,p_token1            => g_sqlcode_token
965                          ,p_token1_value      => sqlcode
966                          ,p_token2            => g_sqlerrm_token
967                          ,p_token2_value      => sqlerrm);
968         x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
969   END update_acc_bal;
970 
971  PROCEDURE delete_acc_bal(
972      p_api_version                    IN  NUMBER
973     ,p_init_msg_list                  IN  VARCHAR2 DEFAULT OKC_API.G_FALSE
974     ,x_return_status                  OUT NOCOPY VARCHAR2
975     ,x_msg_count                      OUT NOCOPY NUMBER
976     ,x_msg_data                       OUT NOCOPY VARCHAR2
977     ,p_agbv_rec                       IN  agbv_rec_type) IS
978     i                                 NUMBER :=0;
979     l_return_status                   VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
980   BEGIN
981     okl_agb_pvt.delete_row(
982                            p_api_version   => p_api_version
983                           ,p_init_msg_list => p_init_msg_list
984                           ,x_return_status => x_return_status
985                           ,x_msg_count     => x_msg_count
986                           ,x_msg_data      => x_msg_data
987                           ,p_agbv_rec      => p_agbv_rec);
988       IF x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR THEN
989        RAISE G_EXCEPTION_HALT_VALIDATION;
990       ELSE
991         IF x_return_status <> OKC_API.G_RET_STS_SUCCESS THEN
992           l_return_status := x_return_status;
993            END IF;
994       END IF;
995   EXCEPTION
996     WHEN G_EXCEPTION_HALT_VALIDATION THEN
997       NULL;
998     WHEN OTHERS THEN
999       OKC_API.SET_MESSAGE(p_app_name          => g_app_name
1000                          ,p_msg_name          => g_unexpected_error
1001                          ,p_token1            => g_sqlcode_token
1002                          ,p_token1_value      => sqlcode
1003                          ,p_token2            => g_sqlerrm_token
1004                          ,p_token2_value      => sqlerrm);
1005         x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1006   END delete_acc_bal;
1007 
1008  PROCEDURE delete_acc_bal(
1009      p_api_version                    IN  NUMBER
1010     ,p_init_msg_list                  IN  VARCHAR2 DEFAULT OKC_API.G_FALSE
1011     ,x_return_status                  OUT NOCOPY VARCHAR2
1012     ,x_msg_count                      OUT NOCOPY NUMBER
1013     ,x_msg_data                       OUT NOCOPY VARCHAR2
1014     ,p_agbv_tbl                       IN  agbv_tbl_type) IS
1015 
1016     i                                 NUMBER :=0;
1017     l_return_status                   VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1018     l_overall_status                  VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1019 
1020   BEGIN
1021   --Initialize the return status
1022     x_return_status := OKC_API.G_RET_STS_SUCCESS;
1023     IF (p_agbv_tbl.COUNT > 0) THEN
1024       i := p_agbv_tbl.FIRST;
1025       LOOP
1026         delete_acc_bal(
1027                                   p_api_version   => p_api_version
1028                                  ,p_init_msg_list => p_init_msg_list
1029                                  ,x_return_status => x_return_status
1030                                  ,x_msg_count     => x_msg_count
1031                                  ,x_msg_data      => x_msg_data
1032                                  ,p_agbv_rec      => p_agbv_tbl(i));
1033 
1034          IF x_return_status <> OKC_API.G_RET_STS_SUCCESS THEN
1035             IF l_overall_status <> OKC_API.G_RET_STS_UNEXP_ERROR THEN
1036                l_overall_status := x_return_status;
1037             END IF;
1038          END IF;
1039 
1040          EXIT WHEN (i = p_agbv_tbl.LAST);
1041          i := p_agbv_tbl.NEXT(i);
1042        END LOOP;
1043 
1044      END IF;
1045 
1046      x_return_status := l_overall_status;
1047 EXCEPTION
1048     WHEN G_EXCEPTION_HALT_VALIDATION THEN
1049       NULL;
1050     WHEN OTHERS THEN
1051       OKC_API.SET_MESSAGE(p_app_name          => g_app_name
1052                          ,p_msg_name          => g_unexpected_error
1053                          ,p_token1            => g_sqlcode_token
1054                          ,p_token1_value      => sqlcode
1055                          ,p_token2            => g_sqlerrm_token
1056                          ,p_token2_value      => sqlerrm);
1057         x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1058   END delete_acc_bal;
1059 
1060   PROCEDURE validate_acc_bal(
1061      p_api_version                    IN  NUMBER
1062     ,p_init_msg_list                  IN  VARCHAR2 DEFAULT OKC_API.G_FALSE
1063     ,x_return_status                  OUT NOCOPY VARCHAR2
1064     ,x_msg_count                      OUT NOCOPY NUMBER
1065     ,x_msg_data                       OUT NOCOPY VARCHAR2
1066     ,p_agbv_rec                       IN  agbv_rec_type) IS
1067     l_return_status                   VARCHAR2(1)   := OKC_API.G_RET_STS_SUCCESS;
1068   BEGIN
1069     okl_agb_pvt.validate_row(
1070                              p_api_version   => p_api_version
1071                             ,p_init_msg_list => p_init_msg_list
1072                             ,x_return_status => x_return_status
1073                             ,x_msg_count     => x_msg_count
1074                             ,x_msg_data      => x_msg_data
1075                             ,p_agbv_rec      => p_agbv_rec
1076                             );
1077       IF x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR THEN
1078        RAISE G_EXCEPTION_HALT_VALIDATION;
1079       ELSE
1080         IF x_return_status <> OKC_API.G_RET_STS_SUCCESS THEN
1081           l_return_status := x_return_status;
1082            END IF;
1083       END IF;
1084 EXCEPTION
1085     WHEN G_EXCEPTION_HALT_VALIDATION THEN
1086       NULL;
1087     WHEN OTHERS THEN
1088       OKC_API.SET_MESSAGE(p_app_name          => g_app_name
1089                          ,p_msg_name          => g_unexpected_error
1090                          ,p_token1            => g_sqlcode_token
1091                          ,p_token1_value      => sqlcode
1092                          ,p_token2            => g_sqlerrm_token
1093                          ,p_token2_value      => sqlerrm);
1094         x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1095   END validate_acc_bal;
1096 
1097   PROCEDURE validate_acc_bal(
1098      p_api_version                    IN  NUMBER
1099     ,p_init_msg_list                  IN  VARCHAR2 DEFAULT OKC_API.G_FALSE
1100     ,x_return_status                  OUT NOCOPY VARCHAR2
1101     ,x_msg_count                      OUT NOCOPY NUMBER
1102     ,x_msg_data                       OUT NOCOPY VARCHAR2
1103     ,p_agbv_tbl                       IN  agbv_tbl_type) IS
1104 
1105   l_return_status                   VARCHAR2(1)   := OKC_API.G_RET_STS_SUCCESS;
1106   l_overall_status                  VARCHAR2(1)   := OKC_API.G_RET_STS_SUCCESS;
1107   i                                 NUMBER := 0;
1108 
1109   BEGIN
1110 
1111     OKC_API.init_msg_list(p_init_msg_list);
1112     -- Make sure PL/SQL table has records in it before passing
1113     IF (p_agbv_tbl.COUNT > 0) THEN
1114       i := p_agbv_tbl.FIRST;
1115       LOOP
1116         validate_acc_bal(
1117           p_api_version                  => p_api_version,
1118           p_init_msg_list                => OKC_API.G_FALSE,
1119           x_return_status                => x_return_status,
1120           x_msg_count                    => x_msg_count,
1121           x_msg_data                     => x_msg_data,
1122           p_agbv_rec                     => p_agbv_tbl(i));
1123   -- store the highest degree of error
1124           IF x_return_status <> OKC_API.G_RET_STS_SUCCESS THEN
1125            IF l_overall_status <> OKC_API.G_RET_STS_UNEXP_ERROR THEN
1126               l_overall_status := x_return_status;
1127            END IF;
1128           END IF;
1129 
1130         EXIT WHEN (i = p_agbv_tbl.LAST);
1131         i := p_agbv_tbl.NEXT(i);
1132       END LOOP;
1133 
1134        x_return_status := l_overall_status;
1135 
1136     END IF;
1137 
1138 
1139   EXCEPTION
1140     WHEN G_EXCEPTION_HALT_VALIDATION THEN
1141       NULL;
1142     WHEN OTHERS THEN
1143       OKC_API.SET_MESSAGE(p_app_name          => g_app_name
1144                          ,p_msg_name          => g_unexpected_error
1145                          ,p_token1            => g_sqlcode_token
1146                          ,p_token1_value      => sqlcode
1147                          ,p_token2            => g_sqlerrm_token
1148                          ,p_token2_value      => sqlerrm);
1149         x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1150   END validate_acc_bal;
1151 
1152 END OKL_ACC_GROUP_PVT;