DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKL_FUNDING_PUB

Source


1 PACKAGE BODY OKL_FUNDING_PUB AS
2 /* $Header: OKLPFUNB.pls 120.4 2007/11/20 08:23:33 dcshanmu noship $ */
3 ----------------------------------------------------------------------------
4 -- Global Message Constants
5 ----------------------------------------------------------------------------
6 -- see FND_NEW_MESSAGES for full message text
7 G_NOT_FOUND                  CONSTANT VARCHAR2(30) := 'OKC_NOT_FOUND';  -- message_name
8 G_NOT_FOUND_V1               CONSTANT VARCHAR2(30) := 'VALUE1';         -- token 1
9 G_NOT_FOUND_V2               CONSTANT VARCHAR2(30) := 'VALUE2';         -- token 2
10 
11 G_NOT_UNIQUE                 CONSTANT VARCHAR2(30) := 'OKL_UNIQUE';  -- never mind the blockhead that created the name
12 
13 G_UNEXPECTED_ERROR           CONSTANT VARCHAR2(30) := 'OKL_UNEXPECTED_ERROR';
14 G_SQLERRM_TOKEN              CONSTANT VARCHAR2(30) := 'OKL_SQLERRM';
15 G_SQLCODE_TOKEN              CONSTANT VARCHAR2(30) := 'OKL_SQLCODE';
16 
17 G_NO_INIT_MSG                CONSTANT VARCHAR2(1)  := OKL_API.G_FALSE;
18 G_VIEW                       CONSTANT VARCHAR2(30) := 'OKL_TRX_AP_INVOICES_V';
19 
20 G_FND_APP                    CONSTANT VARCHAR2(30) := OKL_API.G_FND_APP;
21 G_FORM_UNABLE_TO_RESERVE_REC CONSTANT VARCHAR2(30) := OKL_API.G_FORM_UNABLE_TO_RESERVE_REC;
22 G_FORM_RECORD_DELETED        CONSTANT VARCHAR2(30) := OKL_API.G_FORM_RECORD_DELETED;
23 G_FORM_RECORD_CHANGED        CONSTANT VARCHAR2(30) := OKL_API.G_FORM_RECORD_CHANGED;
24 G_RECORD_LOGICALLY_DELETED	 CONSTANT VARCHAR2(30) := OKL_API.G_RECORD_LOGICALLY_DELETED;
25 G_REQUIRED_VALUE             CONSTANT VARCHAR2(30) := OKL_API.G_REQUIRED_VALUE;
26 G_INVALID_VALUE              CONSTANT VARCHAR2(30) := OKL_API.G_INVALID_VALUE;
27 G_COL_NAME_TOKEN             CONSTANT VARCHAR2(30) := OKL_API.G_COL_NAME_TOKEN;
28 G_PARENT_TABLE_TOKEN         CONSTANT VARCHAR2(30) := OKL_API.G_PARENT_TABLE_TOKEN;
29 G_CHILD_TABLE_TOKEN          CONSTANT VARCHAR2(30) := OKL_API.G_CHILD_TABLE_TOKEN;
30 G_NO_PARENT_RECORD           CONSTANT VARCHAR2(30) :='OKL_NO_PARENT_RECORD';
31 G_NOT_SAME                   CONSTANT VARCHAR2(30) :='OKL_CANNOT_BE_SAME';
32 
33 G_PREFUNDING_TYPE            CONSTANT VARCHAR2(30) :='PREFUNDING';
34 G_ASSET_TYPE                 CONSTANT VARCHAR2(30) :='ASSET';
35 G_INVOICE_TYPE               CONSTANT VARCHAR2(30) :='INVOICE';
36 G_FUNDING_TRX_TYPE           CONSTANT VARCHAR2(30) :='FUNDING';
37 ----------------------------------------------------------------------------
38 -- Private Global variables
39 ----------------------------------------------------------------------------
40 
41 ----------------------------------------------------------------------------
42 ----------------------------------------------------------------------------
43 -- Public Procedures and Functions
44 ----------------------------------------------------------------------------
45 ----------------------------------------------------------------------------
46 PROCEDURE create_funding_header(
47   p_api_version                  IN NUMBER
48  ,p_init_msg_list                IN VARCHAR2 DEFAULT OKL_API.G_FALSE
49  ,x_return_status                OUT NOCOPY VARCHAR2
50  ,x_msg_count                    OUT NOCOPY NUMBER
51  ,x_msg_data                     OUT NOCOPY VARCHAR2
52  ,p_tapv_rec                     IN tapv_rec_type
53  ,x_tapv_rec                     OUT NOCOPY tapv_rec_type
54 )
55 IS
56   l_api_name        CONSTANT VARCHAR2(30) := 'CREATE_FUNDING_HEADER';
57   l_api_version     CONSTANT NUMBER       := 1.0;
58   l_tapv_rec                 tapv_rec_type := p_tapv_rec;
59   i                          NUMBER;
60     l_dummy VARCHAR2(1) := OKL_API.G_TRUE;
61 
62 BEGIN
63   -- Set API savepoint
64   SAVEPOINT CREATE_FUNDING_HEADER_PUB;
65 
66   -- Check for call compatibility
67   IF (NOT FND_API.Compatible_API_Call (l_api_version,
68                                 	   p_api_version,
69                                 	   l_api_name,
70                                 	   G_PKG_NAME ))
71   THEN
72     RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
73   END IF;
74 
75   -- Initialize message list if requested
76   IF (FND_API.to_Boolean(p_init_msg_list)) THEN
77       FND_MSG_PUB.initialize;
78 	END IF;
79 
80   -- Initialize API status to success
81   x_return_status := OKL_API.G_RET_STS_SUCCESS;
82 
83 /*
84 
85 */
86 
87 /*** Begin API body ****************************************************/
88 
89     OKL_FUNDING_PVT.create_funding_header(
90       p_api_version   => p_api_version,
91       p_init_msg_list => p_init_msg_list,
92       x_return_status => x_return_status,
93       x_msg_count     => x_msg_count,
94       x_msg_data      => x_msg_data,
95       p_tapv_rec      => l_tapv_rec,
96       x_tapv_rec      => x_tapv_rec);
97 
98     IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
99       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
100     ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
101       RAISE OKL_API.G_EXCEPTION_ERROR;
102     END IF;
103 
104 
105 /*** End API body ******************************************************/
106 
107 /*
108 
109 */
110   -- Get message count and if count is 1, get message info
111 	FND_MSG_PUB.Count_And_Get
112     (p_count          =>      x_msg_count,
113      p_data           =>      x_msg_data);
114 
115 EXCEPTION
116   WHEN OKL_API.G_EXCEPTION_ERROR THEN
117     ROLLBACK TO CREATE_FUNDING_HEADER_PUB;
118     x_return_status := OKL_API.G_RET_STS_ERROR;
119     FND_MSG_PUB.Count_And_Get
120       (p_count         =>      x_msg_count,
121        p_data          =>      x_msg_data);
122 
123   WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
124     ROLLBACK TO CREATE_FUNDING_HEADER_PUB;
125     x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
126     FND_MSG_PUB.Count_And_Get
127       (p_count         =>      x_msg_count,
128        p_data          =>      x_msg_data);
129 
130   WHEN OTHERS THEN
131 	ROLLBACK TO CREATE_FUNDING_HEADER_PUB;
132       x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR ;
133       OKL_API.Set_Message(p_app_name      => G_APP_NAME,
134                           p_msg_name      => G_UNEXPECTED_ERROR,
135                           p_token1        => G_SQLCODE_TOKEN,
136                           p_token1_value  => SQLCODE,
137                           p_token2        => G_SQLERRM_TOKEN,
138                           p_token2_value  => SQLERRM);
139       FND_MSG_PUB.Count_And_Get
140         (p_count         =>      x_msg_count,
141          p_data          =>      x_msg_data);
142 
143   END create_funding_header;
144 ----------------------------------------------------------------------------
145 
146 PROCEDURE update_funding_header(
147   p_api_version                  IN NUMBER
148  ,p_init_msg_list                IN VARCHAR2 DEFAULT OKL_API.G_FALSE
149  ,x_return_status                OUT NOCOPY VARCHAR2
150  ,x_msg_count                    OUT NOCOPY NUMBER
151  ,x_msg_data                     OUT NOCOPY VARCHAR2
152  ,p_tapv_rec                     IN tapv_rec_type
153  ,x_tapv_rec                     OUT NOCOPY tapv_rec_type
154 )
155 IS
156   l_api_name        CONSTANT VARCHAR2(30) := 'UPDATE_FUNDING_HEADER';
157   l_api_version     CONSTANT NUMBER       := 1.0;
158   l_tapv_rec                 tapv_rec_type := p_tapv_rec;
159   i                          NUMBER;
160     l_dummy VARCHAR2(1) := OKL_API.G_TRUE;
161 
162 BEGIN
163   -- Set API savepoint
164   SAVEPOINT UPDATE_FUNDING_HEADER_PUB;
165 
166   -- Check for call compatibility
167   IF (NOT FND_API.Compatible_API_Call (l_api_version,
168                                 	   p_api_version,
169                                 	   l_api_name,
170                                 	   G_PKG_NAME ))
171   THEN
172     RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
173   END IF;
174 
175   -- Initialize message list if requested
176   IF (FND_API.to_Boolean(p_init_msg_list)) THEN
177       FND_MSG_PUB.initialize;
178 	END IF;
179 
180   -- Initialize API status to success
181   x_return_status := OKL_API.G_RET_STS_SUCCESS;
182 
183 /*
184 
185 */
186 
187 /*** Begin API body ****************************************************/
188 
189     OKL_FUNDING_PVT.update_funding_header(
190       p_api_version   => p_api_version,
191       p_init_msg_list => p_init_msg_list,
192       x_return_status => x_return_status,
193       x_msg_count     => x_msg_count,
194       x_msg_data      => x_msg_data,
195       p_tapv_rec      => l_tapv_rec,
196       x_tapv_rec      => x_tapv_rec);
197 
198     IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
199       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
200     ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
201       RAISE OKL_API.G_EXCEPTION_ERROR;
202     END IF;
203 
204 
205 /*** End API body ******************************************************/
206 
207 /*
208 
209 */
210   -- Get message count and if count is 1, get message info
211 	FND_MSG_PUB.Count_And_Get
212     (p_count          =>      x_msg_count,
213      p_data           =>      x_msg_data);
214 
215 EXCEPTION
216   WHEN OKL_API.G_EXCEPTION_ERROR THEN
217     ROLLBACK TO UPDATE_FUNDING_HEADER_PUB;
218     x_return_status := OKL_API.G_RET_STS_ERROR;
219     FND_MSG_PUB.Count_And_Get
220       (p_count         =>      x_msg_count,
221        p_data          =>      x_msg_data);
222 
223   WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
224     ROLLBACK TO UPDATE_FUNDING_HEADER_PUB;
225     x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
226     FND_MSG_PUB.Count_And_Get
227       (p_count         =>      x_msg_count,
228        p_data          =>      x_msg_data);
229 
230   WHEN OTHERS THEN
231 	ROLLBACK TO UPDATE_FUNDING_HEADER_PUB;
232       x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR ;
233       OKL_API.Set_Message(p_app_name      => G_APP_NAME,
234                           p_msg_name      => G_UNEXPECTED_ERROR,
235                           p_token1        => G_SQLCODE_TOKEN,
236                           p_token1_value  => SQLCODE,
237                           p_token2        => G_SQLERRM_TOKEN,
238                           p_token2_value  => SQLERRM);
239       FND_MSG_PUB.Count_And_Get
240         (p_count         =>      x_msg_count,
241          p_data          =>      x_msg_data);
242 
243   END update_funding_header;
244 
245 ----------------------------------------------------------------------------
246 
247 PROCEDURE delete_funding_header(
248   p_api_version                  IN NUMBER
249   ,p_init_msg_list                IN VARCHAR2 DEFAULT OKL_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_tapv_rec                     IN tapv_rec_type
254 )
255 IS
256   l_api_name        CONSTANT VARCHAR2(30) := 'DELETE_FUNDING_HEADER';
257   l_api_version     CONSTANT NUMBER       := 1.0;
258 
259 BEGIN
260   -- Set API savepoint
261   SAVEPOINT DELETE_FUNDING_HEADER_PUB;
262 
263   -- Check for call compatibility
264   IF (NOT FND_API.Compatible_API_Call (l_api_version,
265                                        p_api_version,
266                                        l_api_name,
267                                        G_PKG_NAME ))
268   THEN
269     RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
270   END IF;
271 
272   -- Initialize message list if requested
273   IF (FND_API.to_Boolean(p_init_msg_list)) THEN
274       FND_MSG_PUB.initialize;
275 	END IF;
276 
277   -- Initialize API status to success
278   x_return_status := OKL_API.G_RET_STS_SUCCESS;
279 
280 /*
281 
282 */
283 
284 /*** Begin API body ****************************************************/
285 
286 --    OKL_TAP_PVT.delete_row(
287       OKL_TRX_AP_INVOICES_PUB.DELETE_TRX_AP_INVOICES(
288       p_api_version   => p_api_version,
289       p_init_msg_list => p_init_msg_list,
290       x_return_status => x_return_status,
291       x_msg_count     => x_msg_count,
292       x_msg_data      => x_msg_data,
293       p_tapv_rec      => p_tapv_rec);
294 
295     IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
296       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
297     ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
298       RAISE OKL_API.G_EXCEPTION_ERROR;
299     END IF;
300 
301 /*** End API body ******************************************************/
302 
303 /*
304 
305 */
306   -- Get message count and if count is 1, get message info
307 	FND_MSG_PUB.Count_And_Get
308     (p_count          =>      x_msg_count,
309      p_data           =>      x_msg_data);
310 
311 EXCEPTION
312   WHEN OKL_API.G_EXCEPTION_ERROR THEN
313     ROLLBACK TO DELETE_FUNDING_HEADER_PUB;
314     x_return_status := OKL_API.G_RET_STS_ERROR;
315     FND_MSG_PUB.Count_And_Get
316       (p_count         =>      x_msg_count,
317        p_data          =>      x_msg_data);
318 
319   WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
320     ROLLBACK TO DELETE_FUNDING_HEADER_PUB;
321     x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
322     FND_MSG_PUB.Count_And_Get
323       (p_count         =>      x_msg_count,
324        p_data          =>      x_msg_data);
325 
326   WHEN OTHERS THEN
327     ROLLBACK TO DELETE_FUNDING_HEADER_PUB;
328     x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR ;
329     OKL_API.Set_Message(p_app_name      => G_APP_NAME,
330                         p_msg_name      => G_UNEXPECTED_ERROR,
331                         p_token1        => G_SQLCODE_TOKEN,
332                         p_token1_value  => SQLCODE,
333                         p_token2        => G_SQLERRM_TOKEN,
334                         p_token2_value  => SQLERRM);
335     FND_MSG_PUB.Count_And_Get
336       (p_count         =>      x_msg_count,
337        p_data          =>      x_msg_data);
338 
339 END delete_funding_header;
340 ----------------------------------------------------------------------------
341 
342 PROCEDURE create_funding_lines(
343   p_api_version                  IN NUMBER
344  ,p_init_msg_list                IN VARCHAR2 DEFAULT OKL_API.G_FALSE
345  ,x_return_status                OUT NOCOPY VARCHAR2
346  ,x_msg_count                    OUT NOCOPY NUMBER
347  ,x_msg_data                     OUT NOCOPY VARCHAR2
348  ,p_tplv_tbl                     IN tplv_tbl_type
349  ,x_tplv_tbl                     OUT NOCOPY tplv_tbl_type
350 )
351 IS
352   l_api_name        CONSTANT VARCHAR2(30) := 'CREATE_FUNDING_LINES';
353   l_api_version     CONSTANT NUMBER       := 1.0;
354   l_tplv_tbl                 tplv_tbl_type := p_tplv_tbl;
355   i                          NUMBER;
356   l_dummy VARCHAR2(1) := OKL_API.G_TRUE;
357 
358 BEGIN
359   -- Set API savepoint
360   SAVEPOINT CREATE_FUNDING_LINES_PUB;
361 
362   -- Check for call compatibility
363   IF (NOT FND_API.Compatible_API_Call (l_api_version,
364                                 	   p_api_version,
365                                 	   l_api_name,
366                                 	   G_PKG_NAME ))
367   THEN
368     RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
369   END IF;
370 
371   -- Initialize message list if requested
372   IF (FND_API.to_Boolean(p_init_msg_list)) THEN
373       FND_MSG_PUB.initialize;
374 	END IF;
375 
376   -- Initialize API status to success
377   x_return_status := OKL_API.G_RET_STS_SUCCESS;
378 
379 /*
380 
381 */
382 
383 /*** Begin API body ****************************************************/
384 
385     OKL_FUNDING_PVT.create_funding_lines(
386       p_api_version   => p_api_version,
387       p_init_msg_list => p_init_msg_list,
388       x_return_status => x_return_status,
389       x_msg_count     => x_msg_count,
390       x_msg_data      => x_msg_data,
391       p_tplv_tbl      => l_tplv_tbl,
392       x_tplv_tbl      => x_tplv_tbl);
393 
394     IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
395       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
396     ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
397       RAISE OKL_API.G_EXCEPTION_ERROR;
398     END IF;
399 
400 
401 /*** End API body ******************************************************/
402 
403 /*
404 
405 */
406   -- Get message count and if count is 1, get message info
407 	FND_MSG_PUB.Count_And_Get
408     (p_count          =>      x_msg_count,
409      p_data           =>      x_msg_data);
410 
411 EXCEPTION
412   WHEN OKL_API.G_EXCEPTION_ERROR THEN
413     ROLLBACK TO CREATE_FUNDING_LINES_PUB;
414     x_return_status := OKL_API.G_RET_STS_ERROR;
415     FND_MSG_PUB.Count_And_Get
416       (p_count         =>      x_msg_count,
417        p_data          =>      x_msg_data);
418 
419   WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
420     ROLLBACK TO CREATE_FUNDING_LINES_PUB;
421     x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
422     FND_MSG_PUB.Count_And_Get
423       (p_count         =>      x_msg_count,
424        p_data          =>      x_msg_data);
425 
426   WHEN OTHERS THEN
427 	ROLLBACK TO CREATE_FUNDING_LINES_PUB;
428       x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR ;
429       OKL_API.Set_Message(p_app_name      => G_APP_NAME,
430                           p_msg_name      => G_UNEXPECTED_ERROR,
431                           p_token1        => G_SQLCODE_TOKEN,
432                           p_token1_value  => SQLCODE,
433                           p_token2        => G_SQLERRM_TOKEN,
434                           p_token2_value  => SQLERRM);
435       FND_MSG_PUB.Count_And_Get
436         (p_count         =>      x_msg_count,
437          p_data          =>      x_msg_data);
438 
439   END create_funding_lines;
440 
441 ----------------------------------------------------------------------------
442 
443 ----------------------------------------------------------------------------
444 -- dcshanmu - Added - Qucik Fund performance fix - start
445 ----------------------------------------------------------------------------
446 
447 PROCEDURE create_funding_lines(
448   p_api_version                  IN NUMBER
449  ,p_init_msg_list                IN VARCHAR2 DEFAULT OKL_API.G_FALSE
450  ,x_return_status                OUT NOCOPY VARCHAR2
451  ,x_msg_count                    OUT NOCOPY NUMBER
452  ,x_msg_data                     OUT NOCOPY VARCHAR2
453  ,p_hdr_id				IN NUMBER
454  ,p_khr_id				IN NUMBER
455  ,p_vendor_site_id		IN NUMBER
456  ,x_tplv_tbl                     OUT NOCOPY tplv_tbl_type
457 )
458 IS
459   l_api_name        CONSTANT VARCHAR2(30) := 'CREATE_FUNDING_LINES';
460   l_api_version     CONSTANT NUMBER       := 1.0;
461   l_dummy VARCHAR2(1) := OKL_API.G_TRUE;
462 
463 BEGIN
464   -- Set API savepoint
465   SAVEPOINT CREATE_FUNDING_LINES_PUB;
466 
467   -- Check for call compatibility
468   IF (NOT FND_API.Compatible_API_Call (l_api_version,
469                                 	   p_api_version,
470                                 	   l_api_name,
471                                 	   G_PKG_NAME ))
472   THEN
473     RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
474   END IF;
475 
476   -- Initialize message list if requested
477   IF (FND_API.to_Boolean(p_init_msg_list)) THEN
478       FND_MSG_PUB.initialize;
479 	END IF;
480 
481   -- Initialize API status to success
482   x_return_status := OKL_API.G_RET_STS_SUCCESS;
483 
484 /*
485 
486 */
487 
488 /*** Begin API body ****************************************************/
489 
490     OKL_FUNDING_PVT.create_funding_lines(
491       p_api_version   => p_api_version,
492       p_init_msg_list => p_init_msg_list,
493       x_return_status => x_return_status,
494       x_msg_count     => x_msg_count,
495       x_msg_data      => x_msg_data,
496       p_hdr_id	=>	p_hdr_id,
497       p_khr_id      => p_khr_id,
498       p_vendor_site_id	=> p_vendor_site_id,
499       x_tplv_tbl      => x_tplv_tbl);
500 
501     IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
502       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
503     ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
504       RAISE OKL_API.G_EXCEPTION_ERROR;
505     END IF;
506 
507 
508 /*** End API body ******************************************************/
509 
510 /*
511 
512 */
513   -- Get message count and if count is 1, get message info
514 	FND_MSG_PUB.Count_And_Get
515     (p_count          =>      x_msg_count,
516      p_data           =>      x_msg_data);
517 
518 EXCEPTION
519   WHEN OKL_API.G_EXCEPTION_ERROR THEN
520     ROLLBACK TO CREATE_FUNDING_LINES_PUB;
521     x_return_status := OKL_API.G_RET_STS_ERROR;
522     FND_MSG_PUB.Count_And_Get
523       (p_count         =>      x_msg_count,
524        p_data          =>      x_msg_data);
525 
526   WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
527     ROLLBACK TO CREATE_FUNDING_LINES_PUB;
528     x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
529     FND_MSG_PUB.Count_And_Get
530       (p_count         =>      x_msg_count,
531        p_data          =>      x_msg_data);
532 
533   WHEN OTHERS THEN
534 	ROLLBACK TO CREATE_FUNDING_LINES_PUB;
535       x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR ;
536       OKL_API.Set_Message(p_app_name      => G_APP_NAME,
537                           p_msg_name      => G_UNEXPECTED_ERROR,
538                           p_token1        => G_SQLCODE_TOKEN,
539                           p_token1_value  => SQLCODE,
540                           p_token2        => G_SQLERRM_TOKEN,
541                           p_token2_value  => SQLERRM);
542       FND_MSG_PUB.Count_And_Get
543         (p_count         =>      x_msg_count,
544          p_data          =>      x_msg_data);
545 
546   END create_funding_lines;
547 
548 ----------------------------------------------------------------------------
549 -- dcshanmu - Added - Qucik Fund performance fix - end
550 ----------------------------------------------------------------------------
551 
552 
553 PROCEDURE update_funding_lines(
554   p_api_version                  IN NUMBER
555  ,p_init_msg_list                IN VARCHAR2 DEFAULT OKL_API.G_FALSE
556  ,x_return_status                OUT NOCOPY VARCHAR2
557  ,x_msg_count                    OUT NOCOPY NUMBER
558  ,x_msg_data                     OUT NOCOPY VARCHAR2
559  ,p_tplv_tbl                     IN tplv_tbl_type
560  ,x_tplv_tbl                     OUT NOCOPY tplv_tbl_type
561 )
562 IS
563   l_api_name        CONSTANT VARCHAR2(30) := 'UPDATE_FUNDING_LINES';
564   l_api_version     CONSTANT NUMBER       := 1.0;
565   l_tplv_tbl                 tplv_tbl_type := p_tplv_tbl;
566   i                          NUMBER;
567   l_dummy VARCHAR2(1) := OKL_API.G_TRUE;
568 
569 BEGIN
570   -- Set API savepoint
571   SAVEPOINT UPDATE_FUNDING_LINES_PUB;
572 
573   -- Check for call compatibility
574   IF (NOT FND_API.Compatible_API_Call (l_api_version,
575                                        p_api_version,
576                                 	   l_api_name,
577                                 	   G_PKG_NAME ))
578   THEN
579     RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
580   END IF;
581 
582   -- Initialize message list if requested
583   IF (FND_API.to_Boolean(p_init_msg_list)) THEN
584       FND_MSG_PUB.initialize;
585 	END IF;
586 
587   -- Initialize API status to success
588   x_return_status := OKL_API.G_RET_STS_SUCCESS;
589 
590 /*
591 
592 */
593 
594 /*** Begin API body ****************************************************/
595 
596     OKL_FUNDING_PVT.update_funding_lines(
597       p_api_version   => p_api_version,
598       p_init_msg_list => p_init_msg_list,
599       x_return_status => x_return_status,
600       x_msg_count     => x_msg_count,
601       x_msg_data      => x_msg_data,
602       p_tplv_tbl      => l_tplv_tbl,
603       x_tplv_tbl      => x_tplv_tbl);
604 
605     IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
606       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
607     ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
608       RAISE OKL_API.G_EXCEPTION_ERROR;
609     END IF;
610 
611 
612 /*** End API body ******************************************************/
613 
614 /*
615 
616 */
617   -- Get message count and if count is 1, get message info
618 	FND_MSG_PUB.Count_And_Get
619     (p_count          =>      x_msg_count,
620      p_data           =>      x_msg_data);
621 
622 EXCEPTION
623   WHEN OKL_API.G_EXCEPTION_ERROR THEN
624     ROLLBACK TO UPDATE_FUNDING_LINES_PUB;
625     x_return_status := OKL_API.G_RET_STS_ERROR;
626     FND_MSG_PUB.Count_And_Get
627       (p_count         =>      x_msg_count,
628        p_data          =>      x_msg_data);
629 
630   WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
631     ROLLBACK TO UPDATE_FUNDING_LINES_PUB;
632     x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
633     FND_MSG_PUB.Count_And_Get
634       (p_count         =>      x_msg_count,
635        p_data          =>      x_msg_data);
636 
637   WHEN OTHERS THEN
638     ROLLBACK TO UPDATE_FUNDING_LINES_PUB;
639     x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR ;
640     OKL_API.Set_Message(p_app_name      => G_APP_NAME,
641                         p_msg_name      => G_UNEXPECTED_ERROR,
642                         p_token1        => G_SQLCODE_TOKEN,
643                         p_token1_value  => SQLCODE,
644                         p_token2        => G_SQLERRM_TOKEN,
645                         p_token2_value  => SQLERRM);
646     FND_MSG_PUB.Count_And_Get
647       (p_count         =>      x_msg_count,
648        p_data          =>      x_msg_data);
649 
650 END update_funding_lines;
651 ----------------------------------------------------------------------------
652 
653 PROCEDURE delete_funding_lines(
654   p_api_version                  IN NUMBER
655   ,p_init_msg_list                IN VARCHAR2 DEFAULT OKL_API.G_FALSE
656   ,x_return_status                OUT NOCOPY VARCHAR2
657   ,x_msg_count                    OUT NOCOPY NUMBER
658   ,x_msg_data                     OUT NOCOPY VARCHAR2
659   ,p_tplv_tbl                     IN tplv_tbl_type
660 )
661 IS
662   l_api_name        CONSTANT VARCHAR2(30) := 'DELETE_FUNDING_LINES';
663   l_api_version     CONSTANT NUMBER       := 1.0;
664   l_id                     OKL_TRX_AP_INVOICES_B.ID%TYPE;
665   l_tplv_tbl        tplv_tbl_type := p_tplv_tbl;
666 
667     CURSOR c (p_line_id NUMBER)
668     IS
669       SELECT l.tap_id
670         FROM OKL_TXL_AP_INV_LNS_B l
671        WHERE l.id = p_line_id
672     ;
673 
674 BEGIN
675   -- Set API savepoint
676   SAVEPOINT DELETE_FUNDING_LINES_PUB;
677 
678   -- Check for call compatibility
679   IF (NOT FND_API.Compatible_API_Call (l_api_version,
680                                        p_api_version,
681                                        l_api_name,
682                                        G_PKG_NAME ))
683   THEN
684     RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
685   END IF;
686 
687   -- Initialize message list if requested
688   IF (FND_API.to_Boolean(p_init_msg_list)) THEN
689       FND_MSG_PUB.initialize;
690 	END IF;
691 
692   -- Initialize API status to success
693   x_return_status := OKL_API.G_RET_STS_SUCCESS;
694 
695 /*
696 
697 */
698 
699 /*** Begin API body ****************************************************/
700 
701     OPEN c (p_tplv_tbl(p_tplv_tbl.FIRST).id);
702     FETCH c INTO l_id;
703     CLOSE c;
704 
705     l_tplv_tbl(p_tplv_tbl.FIRST).tap_id := l_id;
706 
707 --    OKL_TPL_PVT.delete_row(
708     OKL_TXL_AP_INV_LNS_PUB.DELETE_TXL_AP_INV_LNS(
709       p_api_version   => p_api_version,
710       p_init_msg_list => p_init_msg_list,
711       x_return_status => x_return_status,
712       x_msg_count     => x_msg_count,
713       x_msg_data      => x_msg_data,
714       p_tplv_tbl      => p_tplv_tbl);
715 
716     IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
717       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
718     ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
719       RAISE OKL_API.G_EXCEPTION_ERROR;
720     END IF;
721 
722 -- sync funding header amount
723     OKL_FUNDING_PVT.SYNC_HEADER_AMOUNT(
724       p_api_version   => p_api_version,
725       p_init_msg_list => p_init_msg_list,
726       x_return_status => x_return_status,
727       x_msg_count     => x_msg_count,
728       x_msg_data      => x_msg_data,
729       p_tplv_tbl      => l_tplv_tbl);
730 
731     IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
732       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
733     ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
734       RAISE OKL_API.G_EXCEPTION_ERROR;
735     END IF;
736 
737 
738 /*** End API body ******************************************************/
739 
740 /*
741 
742 */
743   -- Get message count and if count is 1, get message info
744 	FND_MSG_PUB.Count_And_Get
745     (p_count          =>      x_msg_count,
746      p_data           =>      x_msg_data);
747 
748 EXCEPTION
749   WHEN OKL_API.G_EXCEPTION_ERROR THEN
750     ROLLBACK TO DELETE_FUNDING_LINES_PUB;
751     x_return_status := OKL_API.G_RET_STS_ERROR;
752     FND_MSG_PUB.Count_And_Get
753       (p_count         =>      x_msg_count,
754        p_data          =>      x_msg_data);
755 
756   WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
757     ROLLBACK TO DELETE_FUNDING_LINES_PUB;
758     x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
759     FND_MSG_PUB.Count_And_Get
760       (p_count         =>      x_msg_count,
761        p_data          =>      x_msg_data);
762 
763   WHEN OTHERS THEN
764     ROLLBACK TO DELETE_FUNDING_LINES_PUB;
765     x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR ;
766     OKL_API.Set_Message(p_app_name      => G_APP_NAME,
767                         p_msg_name      => G_UNEXPECTED_ERROR,
768                         p_token1        => G_SQLCODE_TOKEN,
769                         p_token1_value  => SQLCODE,
770                         p_token2        => G_SQLERRM_TOKEN,
771                         p_token2_value  => SQLERRM);
772     FND_MSG_PUB.Count_And_Get
773       (p_count         =>      x_msg_count,
774        p_data          =>      x_msg_data);
775 
776 END delete_funding_lines;
777 ----------------------------------------------------------------------------
778 PROCEDURE create_funding_assets(
779   p_api_version                  IN NUMBER
780  ,p_init_msg_list                IN VARCHAR2 DEFAULT OKL_API.G_FALSE
781  ,x_return_status                OUT NOCOPY VARCHAR2
782  ,x_msg_count                    OUT NOCOPY NUMBER
783  ,x_msg_data                     OUT NOCOPY VARCHAR2
784  ,p_fund_id                      IN NUMBER
785 )
786 IS
787   l_api_name        CONSTANT VARCHAR2(30) := 'CREATE_FUNDING_ASSETS';
788   l_api_version     CONSTANT NUMBER       := 1.0;
789   i                          NUMBER;
790   l_dummy VARCHAR2(1) := OKL_API.G_TRUE;
791 
792 BEGIN
793   -- Set API savepoint
794   SAVEPOINT CREATE_FUNDING_ASSETS_PUB;
795 
796   -- Check for call compatibility
797   IF (NOT FND_API.Compatible_API_Call (l_api_version,
798                                 	   p_api_version,
799                                 	   l_api_name,
800                                 	   G_PKG_NAME ))
801   THEN
802     RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
803   END IF;
804 
805   -- Initialize message list if requested
806   IF (FND_API.to_Boolean(p_init_msg_list)) THEN
807       FND_MSG_PUB.initialize;
808 	END IF;
809 
810   -- Initialize API status to success
811   x_return_status := OKL_API.G_RET_STS_SUCCESS;
812 
813 /*** Begin API body ****************************************************/
814 
815     OKL_FUNDING_PVT.create_funding_assets(
816       p_api_version   => p_api_version,
817       p_init_msg_list => p_init_msg_list,
818       x_return_status => x_return_status,
819       x_msg_count     => x_msg_count,
820       x_msg_data      => x_msg_data,
821       p_fund_id       => p_fund_id);
822 
823     IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
824       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
825     ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
826       RAISE OKL_API.G_EXCEPTION_ERROR;
827     END IF;
828 
829 
830 /*** End API body ******************************************************/
831 
832   -- Get message count and if count is 1, get message info
833 	FND_MSG_PUB.Count_And_Get
834     (p_count          =>      x_msg_count,
835      p_data           =>      x_msg_data);
836 
837 EXCEPTION
838   WHEN OKL_API.G_EXCEPTION_ERROR THEN
839     ROLLBACK TO CREATE_FUNDING_ASSETS_PUB;
840     x_return_status := OKL_API.G_RET_STS_ERROR;
841     FND_MSG_PUB.Count_And_Get
842       (p_count         =>      x_msg_count,
843        p_data          =>      x_msg_data);
844 
845   WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
846     ROLLBACK TO CREATE_FUNDING_ASSETS_PUB;
847     x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
848     FND_MSG_PUB.Count_And_Get
849       (p_count         =>      x_msg_count,
850        p_data          =>      x_msg_data);
851 
852   WHEN OTHERS THEN
853 	ROLLBACK TO CREATE_FUNDING_ASSETS_PUB;
854       x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR ;
855       OKL_API.Set_Message(p_app_name      => G_APP_NAME,
856                           p_msg_name      => G_UNEXPECTED_ERROR,
857                           p_token1        => G_SQLCODE_TOKEN,
858                           p_token1_value  => SQLCODE,
859                           p_token2        => G_SQLERRM_TOKEN,
860                           p_token2_value  => SQLERRM);
861       FND_MSG_PUB.Count_And_Get
862         (p_count         =>      x_msg_count,
863          p_data          =>      x_msg_data);
864 
865   END create_funding_assets;
866 
867 ----------------------------------------------------------------------------
868 
869 END OKL_FUNDING_PUB;