DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKL_INVOICE_MSSGS_PUB

Source


1 PACKAGE BODY OKL_INVOICE_MSSGS_PUB AS
2 /* $Header: OKLPIMSB.pls 120.4 2008/02/04 13:16:48 nikshah noship $ */
3 
4 PROCEDURE insert_invoice_mssgs(
5      p_api_version           IN  NUMBER
6     ,p_init_msg_list         IN  VARCHAR2 DEFAULT FND_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_imsv_rec              IN  imsv_rec_type
11     ,x_imsv_rec              OUT  NOCOPY imsv_rec_type) IS
12 
13 
14 l_api_version NUMBER ;
15 l_init_msg_list VARCHAR2(1) ;
16 l_return_status VARCHAR2(1);
17 l_msg_count NUMBER ;
18 l_msg_data VARCHAR2(2000);
19 lp_imsv_rec  imsv_rec_type;
20 lx_imsv_rec  imsv_rec_type;
21 
22 --nikshah bug 6747706 start
23 l_org_id     NUMBER := NULL;
24 
25 CURSOR c_get_org_id IS
26 SELECT MO_GLOBAL.GET_CURRENT_ORG_ID org_id
27 FROM   dual;
28 --nikshah bug 6747706 end
29 
30 BEGIN
31 
32 SAVEPOINT invoice_mssgs_insert;
33 
34 
35 l_api_version := p_api_version ;
36 l_init_msg_list := p_init_msg_list ;
37 l_return_status := x_return_status ;
38 l_msg_count := x_msg_count ;
39 l_msg_data := x_msg_data ;
40 lp_imsv_rec :=  p_imsv_rec;
41 lx_imsv_rec :=  x_imsv_rec;
42 
43 --nikshah bug 6747706 start
44 -- lp_imsv_rec.org_id := OKL_CONTEXT.get_okc_organization_id;
45 OPEN c_get_org_id;
46 FETCH c_get_org_id INTO l_org_id;
47 CLOSE c_get_org_id;
48 
49 lp_imsv_rec.org_id := l_org_id;
50 --nikshah bug 6747706 end
51 
52 
53 
54 
55 
56 
57 okl_ims_pvt.insert_row(
58                           l_api_version
59                          ,l_init_msg_list
60                          ,l_return_status
61                          ,l_msg_count
62                          ,l_msg_data
63                          ,lp_imsv_rec
64                          ,lx_imsv_rec);
65 
66 IF ( l_return_status = FND_API.G_RET_STS_ERROR )  THEN
67 	RAISE FND_API.G_EXC_ERROR;
68 ELSIF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
69 	RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
70 END IF;
71 
72 --Copy value of OUT variable in the IN record type
73 lp_imsv_rec := lx_imsv_rec;
74 
75 
76 
77 
78 
79 --Assign value to OUT variables
80 x_imsv_rec  := lx_imsv_rec;
81 x_return_status := l_return_status ;
82 x_msg_count := l_msg_count ;
83 x_msg_data := l_msg_data ;
84 
85 EXCEPTION
86 
87     WHEN FND_API.G_EXC_ERROR THEN
88       ROLLBACK TO invoice_mssgs_insert;
89       x_return_status := FND_API.G_RET_STS_ERROR;
90       x_msg_count := l_msg_count ;
91       x_msg_data := l_msg_data ;
92       FND_MSG_PUB.count_and_get(
93              p_count   => x_msg_count
94             ,p_data    => x_msg_data);
95     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
96       ROLLBACK TO invoice_mssgs_insert;
97       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
98       x_msg_count := l_msg_count ;
99       x_msg_data := l_msg_data ;
100       FND_MSG_PUB.count_and_get(
101              p_count   => x_msg_count
102             ,p_data    => x_msg_data);
103     WHEN OTHERS THEN
104       ROLLBACK TO invoice_mssgs_insert;
105       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
106       x_msg_count := l_msg_count ;
107       x_msg_data := l_msg_data ;
108       FND_MSG_PUB.ADD_EXC_MSG('OKL_INVOICE_MSSGS_PUB','insert_invoice_mssgs');
109       FND_MSG_PUB.count_and_get(
110              p_count   => x_msg_count
111             ,p_data    => x_msg_data);
112 END insert_invoice_mssgs;
113 
114 PROCEDURE insert_invoice_mssgs(
115      p_api_version           IN  NUMBER
116     ,p_init_msg_list         IN  VARCHAR2 DEFAULT FND_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_imsv_tbl              IN  imsv_tbl_type
121     ,x_imsv_tbl              OUT  NOCOPY imsv_tbl_type) IS
122 
123 l_api_version NUMBER;
124 l_init_msg_list VARCHAR2(1) ;
125 l_msg_data VARCHAR2(2000);
126 l_msg_count NUMBER ;
127 l_return_status VARCHAR2(1);
128 lp_imsv_tbl  imsv_tbl_type;
129 lx_imsv_tbl  imsv_tbl_type;
130 
131 --nikshah bug 6747706 start
132 l_org_id     NUMBER := NULL;
133 
134 CURSOR c_get_org_id IS
135 SELECT MO_GLOBAL.GET_CURRENT_ORG_ID org_id
136 FROM   dual;
137 --nikshah bug 6747706 end
138 
139 BEGIN
140 
141 SAVEPOINT invoice_mssgs_insert;
142 
143 
144 l_api_version := p_api_version ;
145 l_init_msg_list := p_init_msg_list ;
146 l_return_status := x_return_status ;
147 l_msg_count := x_msg_count ;
148 l_msg_data := x_msg_data ;
149 lp_imsv_tbl :=  p_imsv_tbl;
150 lx_imsv_tbl :=  x_imsv_tbl;
151 
152 --NIKSHAH bug 6747706 start
153 OPEN c_get_org_id;
154 FETCH c_get_org_id INTO l_org_id;
155 CLOSE c_get_org_id;
156 --NIKSHAH bug 6747706 end
157 
158 for i in 1..lp_imsv_tbl.count
159 LOOP
160 --lp_imsv_tbl(i).org_id := OKL_CONTEXT.get_okc_org_id;   --dkagrawa changed for MOAC
161 lp_imsv_tbl(i).org_id := l_org_id; -- nikshah bug 6747706 added
162 END LOOP;
163 
164 
165 
166 
167 okl_ims_pvt.insert_row(
168                           l_api_version
169                          ,l_init_msg_list
170                          ,l_return_status
171                          ,l_msg_count
172                          ,l_msg_data
173                          ,lp_imsv_tbl
174                          ,lx_imsv_tbl);
175 
176 IF ( l_return_status = FND_API.G_RET_STS_ERROR )  THEN
177 	RAISE FND_API.G_EXC_ERROR;
178 ELSIF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
179 	RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
180 END IF;
181 
182 --Copy value of OUT variable in the IN record type
183 lp_imsv_tbl := lx_imsv_tbl;
184 
185 
186 
187 --Assign value to OUT variables
188 x_imsv_tbl  := lx_imsv_tbl;
189 x_return_status := l_return_status ;
190 x_msg_count := l_msg_count ;
191 x_msg_data := l_msg_data ;
192 
193 
194 EXCEPTION
195 
196     WHEN FND_API.G_EXC_ERROR THEN
197       ROLLBACK TO invoice_mssgs_insert;
198       x_return_status := FND_API.G_RET_STS_ERROR;
199       x_msg_count := l_msg_count ;
200       x_msg_data := l_msg_data ;
201       FND_MSG_PUB.count_and_get(
202              p_count   => x_msg_count
203             ,p_data    => x_msg_data);
204     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
205       ROLLBACK TO invoice_mssgs_insert;
206       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
207       x_msg_count := l_msg_count ;
208       x_msg_data := l_msg_data ;
209       FND_MSG_PUB.count_and_get(
210              p_count   => x_msg_count
211             ,p_data    => x_msg_data);
212     WHEN OTHERS THEN
213       ROLLBACK TO invoice_mssgs_insert;
214       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
215       x_msg_count := l_msg_count ;
216       x_msg_data := l_msg_data ;
217       FND_MSG_PUB.ADD_EXC_MSG('OKL_INVOICE_MSSGS_PUB','insert_invoice_mssgs');
218       FND_MSG_PUB.count_and_get(
219              p_count   => x_msg_count
220             ,p_data    => x_msg_data);
221 END insert_invoice_mssgs;
222 
223 PROCEDURE lock_invoice_mssgs(
224      p_api_version           IN NUMBER
225     ,p_init_msg_list         IN VARCHAR2 DEFAULT FND_API.G_FALSE
226     ,x_return_status         OUT NOCOPY VARCHAR2
227     ,x_msg_count             OUT NOCOPY NUMBER
228     ,x_msg_data              OUT NOCOPY VARCHAR2
229     ,p_imsv_rec              IN imsv_rec_type) IS
230 
231 BEGIN
232     okl_ims_pvt.lock_row(
233 		    p_api_version,
234 		    p_init_msg_list,
235 		    x_return_status,
236 		    x_msg_count,
237 		    x_msg_data,
238 		    p_imsv_rec);
239 
240 IF ( x_return_status = FND_API.G_RET_STS_ERROR )  THEN
241 	RAISE FND_API.G_EXC_ERROR;
242 ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
243 	RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
244 END IF;
245 
246 
247 EXCEPTION
248 
249     WHEN FND_API.G_EXC_ERROR THEN
250       FND_MSG_PUB.count_and_get(
251              p_count   => x_msg_count
252             ,p_data    => x_msg_data);
253     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
254       FND_MSG_PUB.count_and_get(
255              p_count   => x_msg_count
256             ,p_data    => x_msg_data);
257     WHEN OTHERS THEN
258       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
259       FND_MSG_PUB.ADD_EXC_MSG('OKL_INVOICE_MSSGS_PUB','lock_invoice_mssgs');
260       FND_MSG_PUB.count_and_get(
261              p_count   => x_msg_count
262             ,p_data    => x_msg_data);
263 END lock_invoice_mssgs;
264 
265 PROCEDURE lock_invoice_mssgs(
266      p_api_version           IN  NUMBER
267     ,p_init_msg_list         IN  VARCHAR2 DEFAULT FND_API.G_FALSE
268     ,x_return_status         OUT  NOCOPY VARCHAR2
269     ,x_msg_count             OUT  NOCOPY NUMBER
270     ,x_msg_data              OUT  NOCOPY VARCHAR2
271     ,p_imsv_tbl              IN  imsv_tbl_type) IS
272 
273 BEGIN
274     okl_ims_pvt.lock_row(
275 		    p_api_version,
276 		    p_init_msg_list,
277 		    x_return_status,
278 		    x_msg_count,
279 		    x_msg_data,
280 		    p_imsv_tbl);
281 
282 IF ( x_return_status = FND_API.G_RET_STS_ERROR )  THEN
283 	RAISE FND_API.G_EXC_ERROR;
284 ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
285 	RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
286 END IF;
287 
288 
289 EXCEPTION
290 
291     WHEN FND_API.G_EXC_ERROR THEN
292       FND_MSG_PUB.count_and_get(
293              p_count   => x_msg_count
294             ,p_data    => x_msg_data);
295     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
296       FND_MSG_PUB.count_and_get(
297              p_count   => x_msg_count
298             ,p_data    => x_msg_data);
299     WHEN OTHERS THEN
300       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
301       FND_MSG_PUB.ADD_EXC_MSG('OKL_INVOICE_MSSGS_PUB','lock_invoice_mssgs');
302       FND_MSG_PUB.count_and_get(
303              p_count   => x_msg_count
304             ,p_data    => x_msg_data);
305 END lock_invoice_mssgs;
306 
307 PROCEDURE update_invoice_mssgs(
308      p_api_version           IN  NUMBER
309     ,p_init_msg_list         IN  VARCHAR2 DEFAULT FND_API.G_FALSE
310     ,x_return_status         OUT  NOCOPY VARCHAR2
311     ,x_msg_count             OUT  NOCOPY NUMBER
312     ,x_msg_data              OUT  NOCOPY VARCHAR2
313     ,p_imsv_rec              IN  imsv_rec_type
314     ,x_imsv_rec              OUT  NOCOPY imsv_rec_type) IS
315 
316 l_api_version NUMBER ;
317 l_init_msg_list VARCHAR2(1) ;
318 l_return_status VARCHAR2(1);
319 l_msg_count NUMBER ;
320 l_msg_data VARCHAR2(2000);
321 lp_imsv_rec  imsv_rec_type;
322 lx_imsv_rec  imsv_rec_type;
323 
324 BEGIN
325 
326 SAVEPOINT invoice_mssgs_update;
327 
328 
329 l_api_version := p_api_version ;
330 l_init_msg_list := p_init_msg_list ;
331 l_return_status := x_return_status ;
332 l_msg_count := x_msg_count ;
333 l_msg_data := x_msg_data ;
334 lp_imsv_rec :=  p_imsv_rec;
335 lx_imsv_rec :=  x_imsv_rec;
336 
337 
338 
339 
340 
341     okl_ims_pvt.update_row(
342                               l_api_version
343                              ,l_init_msg_list
344                              ,l_return_status
345                              ,l_msg_count
346                              ,l_msg_data
347                              ,lp_imsv_rec
348                              ,lx_imsv_rec);
349 
350 IF ( l_return_status = FND_API.G_RET_STS_ERROR )  THEN
351 	RAISE FND_API.G_EXC_ERROR;
352 ELSIF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
353 	RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
354 END IF;
355 
356 --Copy value of OUT variable in the IN record type
357 lp_imsv_rec := lx_imsv_rec;
358 
359 
360 
361 
362 --Assign value to OUT variables
363 x_imsv_rec  := lx_imsv_rec;
364 x_return_status := l_return_status ;
365 x_msg_count := l_msg_count ;
366 x_msg_data := l_msg_data ;
367 
368 
369 EXCEPTION
370 
371     WHEN FND_API.G_EXC_ERROR THEN
372       ROLLBACK TO invoice_mssgs_update;
373       x_return_status := FND_API.G_RET_STS_ERROR;
374       x_msg_count := l_msg_count ;
375       x_msg_data := l_msg_data ;
376       FND_MSG_PUB.count_and_get(
377              p_count   => x_msg_count
378             ,p_data    => x_msg_data);
379     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
380       ROLLBACK TO invoice_mssgs_update;
381       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
382       x_msg_count := l_msg_count ;
383       x_msg_data := l_msg_data ;
384       FND_MSG_PUB.count_and_get(
385              p_count   => x_msg_count
386             ,p_data    => x_msg_data);
387     WHEN OTHERS THEN
388       ROLLBACK TO invoice_mssgs_update;
389       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
390       x_msg_count := l_msg_count ;
391       x_msg_data := l_msg_data ;
392       FND_MSG_PUB.ADD_EXC_MSG('OKL_INVOICE_MSSGS_PUB','update_invoice_mssgs');
393       FND_MSG_PUB.count_and_get(
394              p_count   => x_msg_count
395             ,p_data    => x_msg_data);
396 END update_invoice_mssgs;
397 
398 PROCEDURE update_invoice_mssgs(
399      p_api_version           IN  NUMBER
400     ,p_init_msg_list         IN  VARCHAR2 DEFAULT FND_API.G_FALSE
401     ,x_return_status         OUT  NOCOPY VARCHAR2
402     ,x_msg_count             OUT  NOCOPY NUMBER
403     ,x_msg_data              OUT  NOCOPY VARCHAR2
404     ,p_imsv_tbl              IN  imsv_tbl_type
405     ,x_imsv_tbl              OUT  NOCOPY imsv_tbl_type) IS
406 
407 l_api_version NUMBER;
408 l_init_msg_list VARCHAR2(200);
409 l_msg_data VARCHAR2(100);
410 l_msg_count NUMBER ;
411 l_return_status VARCHAR2(1);
412 lp_imsv_tbl  imsv_tbl_type;
413 lx_imsv_tbl  imsv_tbl_type;
414 
415 BEGIN
416 
417 SAVEPOINT invoice_mssgs_update;
418 
419 
420 lp_imsv_tbl :=  p_imsv_tbl;
421 lx_imsv_tbl :=  x_imsv_tbl;
422 l_api_version := p_api_version ;
423 l_init_msg_list := p_init_msg_list ;
424 l_msg_data := x_msg_data ;
425 l_msg_count := x_msg_count ;
426 
427 
428 
429 
430 
431     okl_ims_pvt.update_row(
432                               l_api_version
433                              ,l_init_msg_list
434                              ,l_return_status
435                              ,l_msg_count
436                              ,l_msg_data
437                              ,lp_imsv_tbl
438                              ,lx_imsv_tbl);
439 
440 IF ( l_return_status = FND_API.G_RET_STS_ERROR )  THEN
441 	RAISE FND_API.G_EXC_ERROR;
442 ELSIF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
443 	RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
444 END IF;
445 
446 --Copy value of OUT variable in the IN record type
447 lp_imsv_tbl := lx_imsv_tbl;
448 
449 
450 
451 --Assign value to OUT variables
452 x_imsv_tbl  := lx_imsv_tbl;
453 x_return_status := l_return_status ;
454 x_msg_count := l_msg_count ;
455 x_msg_data := l_msg_data ;
456 
457 
458 EXCEPTION
459 
460     WHEN FND_API.G_EXC_ERROR THEN
461       ROLLBACK TO invoice_mssgs_update;
462       x_return_status := FND_API.G_RET_STS_ERROR;
463       x_msg_count := l_msg_count ;
464       x_msg_data := l_msg_data ;
465       FND_MSG_PUB.count_and_get(
466              p_count   => x_msg_count
467             ,p_data    => x_msg_data);
468     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
469       ROLLBACK TO invoice_mssgs_update;
470       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
471       x_msg_count := l_msg_count ;
472       x_msg_data := l_msg_data ;
473       FND_MSG_PUB.count_and_get(
474              p_count   => x_msg_count
475             ,p_data    => x_msg_data);
476     WHEN OTHERS THEN
477       ROLLBACK TO invoice_mssgs_update;
478       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
479       x_msg_count := l_msg_count ;
480       x_msg_data := l_msg_data ;
481       FND_MSG_PUB.ADD_EXC_MSG('OKL_INVOICE_MSSGS_PUB','update_invoice_mssgs');
482       FND_MSG_PUB.count_and_get(
483              p_count   => x_msg_count
484             ,p_data    => x_msg_data);
485 END update_invoice_mssgs;
486 
487 --Put custom code for cascade delete by developer
488 PROCEDURE delete_invoice_mssgs(
489      p_api_version           IN  NUMBER
490     ,p_init_msg_list         IN  VARCHAR2 DEFAULT FND_API.G_FALSE
491     ,x_return_status         OUT  NOCOPY VARCHAR2
492     ,x_msg_count             OUT  NOCOPY NUMBER
493     ,x_msg_data              OUT  NOCOPY VARCHAR2
494     ,p_imsv_rec              IN imsv_rec_type) IS
495 
496 i	                    NUMBER :=0;
497 l_return_status 	    VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
498 l_api_version NUMBER ;
499 l_init_msg_list    VARCHAR2(1) ;
500 l_msg_data VARCHAR2(2000);
501 l_msg_count NUMBER ;
502 lp_imsv_rec  imsv_rec_type;
503 lx_imsv_rec  imsv_rec_type;
504 
505 BEGIN
506 
507 SAVEPOINT invoice_mssgs_delete_rec;
508 
509 
510 l_api_version := p_api_version ;
511 l_init_msg_list := p_init_msg_list ;
512 l_msg_data :=  x_msg_data;
513 l_msg_count := x_msg_count ;
514 lp_imsv_rec :=  p_imsv_rec;
515 lx_imsv_rec :=  p_imsv_rec;
516 
517 
518 
519 
520 --Delete the Master
521 okl_ims_pvt.delete_row(
522                           l_api_version
523                          ,l_init_msg_list
524                          ,l_return_status
525                          ,l_msg_count
526                          ,l_msg_data
527                          ,lp_imsv_rec);
528 
529 IF ( l_return_status = FND_API.G_RET_STS_ERROR )  THEN
530 	RAISE FND_API.G_EXC_ERROR;
531 ELSIF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
532 	RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
533 END IF;
534 
535 
536 
537 
538 
539 --Assign value to OUT variables
540 x_msg_count := l_msg_count ;
541 x_msg_data := l_msg_data ;
542 x_return_status := l_return_status ;
543 
544 EXCEPTION
545 
546     WHEN FND_API.G_EXC_ERROR THEN
547       ROLLBACK TO invoice_mssgs_delete_rec;
548       x_return_status := FND_API.G_RET_STS_ERROR;
549       x_msg_count := l_msg_count ;
550       x_msg_data := l_msg_data ;
551       FND_MSG_PUB.count_and_get(
552              p_count   => x_msg_count
553             ,p_data    => x_msg_data);
554     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
555       ROLLBACK TO invoice_mssgs_delete_rec;
556       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
557       x_msg_count := l_msg_count ;
558       x_msg_data := l_msg_data ;
559       FND_MSG_PUB.count_and_get(
560              p_count   => x_msg_count
561             ,p_data    => x_msg_data);
562     WHEN OTHERS THEN
563       ROLLBACK TO invoice_mssgs_delete_rec;
564       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
565       x_msg_count := l_msg_count ;
566       x_msg_data := l_msg_data ;
567       FND_MSG_PUB.ADD_EXC_MSG('OKL_INVOICE_MSSGS_PUB','delete_invoice_mssgs');
568       FND_MSG_PUB.count_and_get(
569              p_count   => x_msg_count
570             ,p_data    => x_msg_data);
571 END delete_invoice_mssgs;
572 
573 PROCEDURE delete_invoice_mssgs(
574      p_api_version        IN NUMBER
575     ,p_init_msg_list      IN VARCHAR2 DEFAULT FND_API.G_FALSE
576     ,x_return_status      OUT NOCOPY VARCHAR2
577     ,x_msg_count          OUT NOCOPY NUMBER
578     ,x_msg_data           OUT NOCOPY VARCHAR2
579     ,p_imsv_tbl           IN imsv_tbl_type) IS
580 
581 i NUMBER := 0;
582 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
583 l_api_version NUMBER := p_api_version ;
584 l_init_msg_list VARCHAR2(1) := p_init_msg_list  ;
585 l_msg_data VARCHAR2(2000);
586 l_msg_count NUMBER ;
587 lp_imsv_tbl  imsv_tbl_type;
588 lx_imsv_tbl  imsv_tbl_type;
589 
590 BEGIN
591 
592 SAVEPOINT invoice_mssgs_delete_tbl;
593 
594 
595 l_api_version := p_api_version ;
596 l_init_msg_list := p_init_msg_list ;
597 l_msg_data :=  x_msg_data;
598 l_msg_count := x_msg_count ;
599 lp_imsv_tbl :=  p_imsv_tbl;
600 lx_imsv_tbl :=  p_imsv_tbl;
601 
602 
603 
604 
605 BEGIN
606       --Initialize the return status
607       l_return_status := OKC_API.G_RET_STS_SUCCESS;
608 
609       IF (lp_imsv_tbl.COUNT > 0) THEN
610        	  i := p_imsv_tbl.FIRST;
611        LOOP
612           delete_invoice_mssgs(
613                                l_api_version
614                               ,l_init_msg_list
615                               ,l_return_status
616                               ,l_msg_count
617                               ,l_msg_data
618                               ,lp_imsv_tbl(i));
619           EXIT WHEN (i = lp_imsv_tbl.LAST);
620           i := p_imsv_tbl.NEXT(i);
621        END LOOP;
622       END IF;
623 IF ( l_return_status = FND_API.G_RET_STS_ERROR )  THEN
624 	RAISE FND_API.G_EXC_ERROR;
625 ELSIF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
626 	RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
627 END IF;
628 
629 END;
630 
631 
632 
633 
634 
635 --Assign value to OUT variables
636 x_msg_count := l_msg_count ;
637 x_msg_data := l_msg_data ;
638 
639 x_return_status := l_return_status ;
640 
641 EXCEPTION
642 
643     WHEN FND_API.G_EXC_ERROR THEN
644       ROLLBACK TO invoice_mssgs_delete_tbl;
645       x_return_status := FND_API.G_RET_STS_ERROR;
646       x_msg_count := l_msg_count ;
647       x_msg_data := l_msg_data ;
648       FND_MSG_PUB.count_and_get(
649              p_count   => x_msg_count
650             ,p_data    => x_msg_data);
651     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
652       ROLLBACK TO invoice_mssgs_delete_tbl;
653       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
654       x_msg_count := l_msg_count ;
655       x_msg_data := l_msg_data ;
656       FND_MSG_PUB.count_and_get(
657              p_count   => x_msg_count
658             ,p_data    => x_msg_data);
659     WHEN OTHERS THEN
660       ROLLBACK TO invoice_mssgs_delete_tbl;
661       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
662       x_msg_count := l_msg_count ;
663       x_msg_data := l_msg_data ;
664       FND_MSG_PUB.ADD_EXC_MSG('OKL_INVOICE_MSSGS_PUB','delete_invoice_mssgs');
665       FND_MSG_PUB.count_and_get(
666              p_count   => x_msg_count
667             ,p_data    => x_msg_data);
668 END delete_invoice_mssgs;
669 
670 PROCEDURE validate_invoice_mssgs(
671      p_api_version      IN  NUMBER
672     ,p_init_msg_list    IN  VARCHAR2 DEFAULT FND_API.G_FALSE
673     ,x_return_status    OUT  NOCOPY VARCHAR2
674     ,x_msg_count        OUT  NOCOPY NUMBER
675     ,x_msg_data         OUT  NOCOPY VARCHAR2
676     ,p_imsv_rec         IN  imsv_rec_type) IS
677 
678 l_api_version NUMBER ;
679 l_init_msg_list    VARCHAR2(1) ;
680 l_msg_data VARCHAR2(2000);
681 l_msg_count NUMBER ;
682 lp_imsv_rec  imsv_rec_type;
683 lx_imsv_rec  imsv_rec_type;
684 l_return_status VARCHAR2(1);
685 
686 BEGIN
687 
688 SAVEPOINT invoice_mssgs_validate;
689 
690 
691 l_api_version := p_api_version ;
692 l_init_msg_list := p_init_msg_list ;
693 l_msg_data :=  x_msg_data;
694 l_msg_count := x_msg_count ;
695 lp_imsv_rec :=  p_imsv_rec;
696 lx_imsv_rec :=  p_imsv_rec;
697 
698 
699 
700 
701 okl_ims_pvt.validate_row(
702                             l_api_version
703                            ,l_init_msg_list
704                            ,l_return_status
705                            ,l_msg_count
706                            ,l_msg_data
707                            ,lp_imsv_rec);
708 
709 IF ( l_return_status = FND_API.G_RET_STS_ERROR )  THEN
710 	RAISE FND_API.G_EXC_ERROR;
711 ELSIF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
712 	RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
713 END IF;
714 
715 --Copy value of OUT variable in the IN record type
716 lp_imsv_rec := lx_imsv_rec;
717 
718 
719 
720 
721 
722 
723 
724 
725 --Assign value to OUT variables
726 x_msg_count := l_msg_count ;
727 x_msg_data := l_msg_data ;
728 
729 x_return_status := l_return_status ;
730 
731 EXCEPTION
732 
733     WHEN FND_API.G_EXC_ERROR THEN
734       ROLLBACK TO invoice_mssgs_validate;
735       x_return_status := FND_API.G_RET_STS_ERROR;
736       x_msg_count := l_msg_count ;
737       x_msg_data := l_msg_data ;
738       FND_MSG_PUB.count_and_get(
739              p_count   => x_msg_count
740             ,p_data    => x_msg_data);
741     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
742       ROLLBACK TO invoice_mssgs_validate;
743       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
744       x_msg_count := l_msg_count ;
745       x_msg_data := l_msg_data ;
746       FND_MSG_PUB.count_and_get(
747              p_count   => x_msg_count
748             ,p_data    => x_msg_data);
749     WHEN OTHERS THEN
750       ROLLBACK TO invoice_mssgs_validate;
751       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
752       x_msg_count := l_msg_count ;
753       x_msg_data := l_msg_data ;
754       FND_MSG_PUB.ADD_EXC_MSG('OKL_INVOICE_MSSGS_PUB','validate_invoice_mssgs');
755       FND_MSG_PUB.count_and_get(
756              p_count   => x_msg_count
757             ,p_data    => x_msg_data);
758 END validate_invoice_mssgs;
759 
760 PROCEDURE validate_invoice_mssgs(
761     p_api_version       IN  NUMBER,
762     p_init_msg_list     IN  VARCHAR2 DEFAULT FND_API.G_FALSE,
763     x_return_status     OUT  NOCOPY VARCHAR2,
764     x_msg_count         OUT  NOCOPY NUMBER,
765     x_msg_data          OUT  NOCOPY VARCHAR2,
766     p_imsv_tbl          IN  imsv_tbl_type) IS
767 l_api_version NUMBER ;
768 l_init_msg_list    VARCHAR2(1) ;
769 l_msg_data VARCHAR2(2000);
770 l_msg_count NUMBER ;
771 lp_imsv_tbl  imsv_tbl_type;
772 lx_imsv_tbl  imsv_tbl_type;
773 l_return_status VARCHAR2(1);
774 
775 BEGIN
776 
777 SAVEPOINT invoice_mssgs_validate;
778 
779 
780 l_api_version := p_api_version ;
781 l_init_msg_list := p_init_msg_list ;
782 l_msg_data :=  x_msg_data;
783 l_msg_count := x_msg_count ;
784 lp_imsv_tbl :=  p_imsv_tbl;
785 lx_imsv_tbl :=  p_imsv_tbl;
786 
787 
788 
789 okl_ims_pvt.validate_row(
790                             p_api_version
791                            ,p_init_msg_list
792                            ,x_return_status
793                            ,x_msg_count
794                            ,x_msg_data
795                            ,lp_imsv_tbl);
796 
797 IF ( l_return_status = FND_API.G_RET_STS_ERROR )  THEN
798 	RAISE FND_API.G_EXC_ERROR;
799 ELSIF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
800 	RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
801 END IF;
802 
803 --Copy value of OUT variable in the IN record type
804 lp_imsv_tbl := lx_imsv_tbl;
805 
806 
807 
808 
809 
810 --Assign value to OUT variables
811 x_msg_count := l_msg_count ;
812 x_msg_data := l_msg_data ;
813 
814 x_return_status := l_return_status ;
815 
816 EXCEPTION
817 
818     WHEN FND_API.G_EXC_ERROR THEN
819       ROLLBACK TO invoice_mssgs_validate;
820       x_return_status := FND_API.G_RET_STS_ERROR;
821       x_msg_count := l_msg_count ;
822       x_msg_data := l_msg_data ;
823       FND_MSG_PUB.count_and_get(
824              p_count   => x_msg_count
825             ,p_data    => x_msg_data);
826     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
827       ROLLBACK TO invoice_mssgs_validate;
828       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
829       x_msg_count := l_msg_count ;
830       x_msg_data := l_msg_data ;
831       FND_MSG_PUB.count_and_get(
832              p_count   => x_msg_count
833             ,p_data    => x_msg_data);
834     WHEN OTHERS THEN
835       ROLLBACK TO invoice_mssgs_validate;
836       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
837       x_msg_count := l_msg_count ;
838       x_msg_data := l_msg_data ;
839       FND_MSG_PUB.ADD_EXC_MSG('OKL_INVOICE_MSSGS_PUB','validate_invoice_mssgs');
840       FND_MSG_PUB.count_and_get(
841              p_count   => x_msg_count
842             ,p_data    => x_msg_data);
843 END validate_invoice_mssgs;
844 
845 END OKL_INVOICE_MSSGS_PUB;