DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKL_ACCT_EVENT_PVT

Source


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