DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKL_SUBSIDY_RFND_DTLS_PVT

Source


1 PACKAGE BODY OKL_SUBSIDY_RFND_DTLS_PVT AS
2 /* $Header: OKLRSRFB.pls 120.4 2006/02/22 17:37:28 rpillay noship $ */
3 
4    PROCEDURE validate_refund_record(
5      x_return_status                OUT NOCOPY VARCHAR2,
6      p_srfvv_rec                    IN srfvv_rec_type
7      ) IS
8      l_api_name          CONSTANT VARCHAR2(30) := 'VALIDATE_REFUND_RECORD';
9      l_return_status     VARCHAR2(1)  := OKC_API.G_RET_STS_SUCCESS;
10 
11      --cursor to find if vendor id is the subsidy provider party
12      cursor l_cplb_csr(p_vendor_id in number,
13                        p_cpl_id    in number) is
14      select 'Y'
15      from   okc_k_party_roles_b cplb
16      where  id   = p_cpl_id
17      and    object1_id1 = to_char(p_vendor_id);
18 
19      l_exists varchar2(1) default 'N';
20 
21    BEGIN
22 
23      x_return_status := l_return_status;
24      If( p_srfvv_rec.pay_site_id IS NULL) Then
25        OKL_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'Pay Site');
26        x_return_status := OKL_API.G_RET_STS_ERROR;
27        RAISE G_EXCEPTION_HALT_VALIDATION;
28      End If;
29 /*     If( p_srfvv_rec.payment_term_id IS NULL) Then
30        OKL_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'Payment Term');
31        x_return_status := OKL_API.G_RET_STS_ERROR;
32        RAISE G_EXCEPTION_HALT_VALIDATION;
33      End If;
34      If (p_srfvv_rec.payment_method_code IS NULL) Then
35        OKL_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'Payment Method');
36        x_return_status := OKL_API.G_RET_STS_ERROR;
37        RAISE G_EXCEPTION_HALT_VALIDATION;
38      End If;
39 */
40      --validate vendor id
41      l_exists := 'N';
42      open l_cplb_csr(p_vendor_id => p_srfvv_rec.vendor_id,
43                      p_cpl_id    => p_srfvv_rec.cpl_id);
44      fetch l_cplb_csr into l_exists;
45      if l_cplb_csr%NOTFOUND then
46          Null;
47      end if;
48      close l_cplb_csr;
49      If l_exists = 'N' then
50          OKL_API.set_message(G_APP_NAME, G_INVALID_VALUE,G_COL_NAME_TOKEN,'Vendor_Id');
51          x_return_status := OKL_API.G_RET_STS_ERROR;
52          RAISE G_EXCEPTION_HALT_VALIDATION;
53      End If;
54      --end validate vendor id
55 
56    EXCEPTION
57     WHEN G_EXCEPTION_HALT_VALIDATION THEN
58       null;
59     WHEN OTHERS THEN
60       OKL_API.SET_MESSAGE( p_app_name     => G_APP_NAME
61                           ,p_msg_name     => G_UNEXPECTED_ERROR
62                           ,p_token1       => G_SQLCODE_TOKEN
63                           ,p_token1_value => SQLCODE
64                           ,p_token2       => G_SQLERRM_TOKEN
65                           ,p_token2_value => SQLERRM);
66       x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
67    END validate_refund_record;
68 
69    PROCEDURE create_refund_dtls(
70      p_api_version                  IN NUMBER,
71      p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
72      x_return_status                OUT NOCOPY VARCHAR2,
73      x_msg_count                    OUT NOCOPY NUMBER,
74      x_msg_data                     OUT NOCOPY VARCHAR2,
75      p_srfvv_rec                    IN srfvv_rec_type,
76      x_srfvv_rec                    OUT NOCOPY srfvv_rec_type
77      ) IS
78      l_api_name          CONSTANT VARCHAR2(30) := 'CREATE_SUBSIDY_REFUND';
79      l_return_status     VARCHAR2(1)  := OKC_API.G_RET_STS_SUCCESS;
80 
81      --Bug# 4959361
82      CURSOR l_cpl_csr(p_cpl_id IN NUMBER) IS
83      SELECT cle_id
84      FROM okc_k_party_roles_b cpl
85      WHERE cpl.id = p_cpl_id;
86 
87      l_cpl_rec l_cpl_csr%ROWTYPE;
88      --Bug# 4959361
89 
90    BEGIN
91      x_return_status := l_return_status;
92      -- Call start_activity to create savepoint, check compatibility
93      -- and initialize message list
94      l_return_status := OKC_API.START_ACTIVITY (l_api_name
95                                                 ,p_init_msg_list
96                                                 ,'_PVT'
97                                                 ,x_return_status);
98      -- Check if activity started successfully
99      IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
100         RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
101      ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
102         RAISE OKC_API.G_EXCEPTION_ERROR;
103      END IF;
104 
105      --Bug# 4959361
106      OPEN l_cpl_csr(p_cpl_id => p_srfvv_rec.cpl_id);
107      FETCH l_cpl_csr INTO l_cpl_rec;
108      CLOSE l_cpl_csr;
109 
110      IF l_cpl_rec.cle_id IS NOT NULL THEN
111        OKL_LLA_UTIL_PVT.check_line_update_allowed
112          (p_api_version     => p_api_version,
113           p_init_msg_list   => p_init_msg_list,
114           x_return_status   => x_return_status,
115           x_msg_count       => x_msg_count,
116           x_msg_data        => x_msg_data,
117           p_cle_id          => l_cpl_rec.cle_id);
118 
119        IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
120          RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
121        ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
122          RAISE OKL_API.G_EXCEPTION_ERROR;
123        END IF;
124      END IF;
125      --Bug# 4959361
126 
127      OKL_PYD_PVT.insert_row(p_api_version,
128                             p_init_msg_list,
129                             x_return_status,
130                             x_msg_count,
131                             x_msg_data,
132                             p_srfvv_rec,
133                             x_srfvv_rec);
134 
135      If x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR Then
136 	  raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
137      Elsif x_return_status = OKL_API.G_RET_STS_ERROR Then
138 	  raise OKL_API.G_EXCEPTION_ERROR;
139      End If;
140 
141      validate_refund_record(x_return_status, x_srfvv_rec);
142      IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
143        l_return_status := x_return_status;
144        RAISE OKC_API.G_EXCEPTION_ERROR;
145      END IF;
146 
147      x_return_status := l_return_status;
148      OKC_API.END_ACTIVITY (x_msg_count
149                            ,x_msg_data );
150 
151    EXCEPTION
152      WHEN OKC_API.G_EXCEPTION_ERROR THEN
153      x_return_status := OKC_API.HANDLE_EXCEPTIONS
154               (l_api_name,
155               G_PKG_NAME,
156               'OKC_API.G_RET_STS_ERROR',
157               x_msg_count,
158               x_msg_data,
159               '_PVT');
160      WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
161      x_return_status :=OKC_API.HANDLE_EXCEPTIONS
162              (l_api_name,
163              G_PKG_NAME,
164              'OKC_API.G_RET_STS_UNEXP_ERROR',
165              x_msg_count,
166              x_msg_data,
167              '_PVT');
168      WHEN OTHERS THEN
169      x_return_status :=OKC_API.HANDLE_EXCEPTIONS
170              (l_api_name,
171              G_PKG_NAME,
172              'OTHERS',
173              x_msg_count,
174              x_msg_data,
175              '_PVT');
176    END create_refund_dtls;
177 
178    PROCEDURE create_refund_dtls(
179      p_api_version                  IN NUMBER,
180      p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
181      x_return_status                OUT NOCOPY VARCHAR2,
182      x_msg_count                    OUT NOCOPY NUMBER,
183      x_msg_data                     OUT NOCOPY VARCHAR2,
184      p_srfvv_tbl                    IN srfvv_tbl_type,
185      x_srfvv_tbl                    OUT NOCOPY srfvv_tbl_type
186      ) IS
187      l_api_name          CONSTANT VARCHAR2(30) := 'CREATE_SUBSIDY_REFUND';
188      l_return_status     VARCHAR2(1)  := OKC_API.G_RET_STS_SUCCESS;
189      l_overall_status     VARCHAR2(1)   := OKL_API.G_RET_STS_SUCCESS;
190      i                    NUMBER;
191    BEGIN
192 
193      If p_srfvv_tbl.COUNT > 0 Then
194        i := p_srfvv_tbl.FIRST;
195        LOOP
196          -- call procedure in complex API for a record
197          create_refund_dtls(p_api_version,
198                             p_init_msg_list,
199                             x_return_status,
200                             x_msg_count,
201                             x_msg_data,
202                             p_srfvv_tbl(i),
203                             x_srfvv_tbl(i));
204          If x_return_status <> OKL_API.G_RET_STS_SUCCESS Then
205            If l_overall_status <> OKL_API.G_RET_STS_UNEXP_ERROR Then
206              l_overall_status := x_return_status;
207            End If;
208          End If;
209 
210        EXIT WHEN (i = p_srfvv_tbl.LAST);
211        i := p_srfvv_tbl.NEXT(i);
212        END LOOP;
213 
214        -- return overall status
215        x_return_status := l_overall_status;
216      End If;
217 
218     If x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR Then
219 	  raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
220     Elsif x_return_status = OKL_API.G_RET_STS_ERROR Then
221 	  raise OKL_API.G_EXCEPTION_ERROR;
222     End If;
223 
224    EXCEPTION
225      WHEN OKC_API.G_EXCEPTION_ERROR THEN
226      x_return_status := OKC_API.HANDLE_EXCEPTIONS
227               (l_api_name,
228               G_PKG_NAME,
229               'OKC_API.G_RET_STS_ERROR',
230               x_msg_count,
231               x_msg_data,
232               '_PVT');
233      WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
234      x_return_status :=OKC_API.HANDLE_EXCEPTIONS
235              (l_api_name,
236              G_PKG_NAME,
237              'OKC_API.G_RET_STS_UNEXP_ERROR',
238              x_msg_count,
239              x_msg_data,
240              '_PVT');
241      WHEN OTHERS THEN
242      x_return_status :=OKC_API.HANDLE_EXCEPTIONS
243              (l_api_name,
244              G_PKG_NAME,
245              'OTHERS',
246              x_msg_count,
247              x_msg_data,
248              '_PVT');
249    END create_refund_dtls;
250 
251    PROCEDURE lock_refund_dtls(
252      p_api_version                  IN NUMBER,
253      p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
254      x_return_status                OUT NOCOPY VARCHAR2,
255      x_msg_count                    OUT NOCOPY NUMBER,
256      x_msg_data                     OUT NOCOPY VARCHAR2,
257      p_srfvv_rec                    IN srfvv_rec_type
258      ) IS
259      l_api_name          CONSTANT VARCHAR2(30) := 'LOCK_SUBSIDY_REFUND';
260      l_return_status     VARCHAR2(1)  := OKC_API.G_RET_STS_SUCCESS;
261    BEGIN
262      x_return_status := l_return_status;
263      -- Call start_activity to create savepoint, check compatibility
264      -- and initialize message list
265      l_return_status := OKC_API.START_ACTIVITY (l_api_name
266                                                 ,p_init_msg_list
267                                                 ,'_PVT'
268                                                 ,x_return_status);
269      -- Check if activity started successfully
270      IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
271         RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
272      ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
273         RAISE OKC_API.G_EXCEPTION_ERROR;
274      END IF;
275 
276      OKL_PYD_PVT.lock_row(p_api_version,
277                             p_init_msg_list,
278                             x_return_status,
279                             x_msg_count,
280                             x_msg_data,
281                             p_srfvv_rec);
282 
283      If x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR Then
284 	  raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
285      Elsif x_return_status = OKL_API.G_RET_STS_ERROR Then
286 	  raise OKL_API.G_EXCEPTION_ERROR;
287      End If;
288 
289      OKC_API.END_ACTIVITY (x_msg_count
290                            ,x_msg_data );
291 
292    EXCEPTION
293      WHEN OKC_API.G_EXCEPTION_ERROR THEN
294      x_return_status := OKC_API.HANDLE_EXCEPTIONS
295               (l_api_name,
296               G_PKG_NAME,
297               'OKC_API.G_RET_STS_ERROR',
298               x_msg_count,
299               x_msg_data,
300               '_PVT');
301      WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
302      x_return_status :=OKC_API.HANDLE_EXCEPTIONS
303              (l_api_name,
304              G_PKG_NAME,
305              'OKC_API.G_RET_STS_UNEXP_ERROR',
306              x_msg_count,
307              x_msg_data,
308              '_PVT');
309      WHEN OTHERS THEN
310      x_return_status :=OKC_API.HANDLE_EXCEPTIONS
311              (l_api_name,
312              G_PKG_NAME,
313              'OTHERS',
314              x_msg_count,
315              x_msg_data,
316              '_PVT');
317    END lock_refund_dtls;
318 
319    PROCEDURE lock_refund_dtls(
320      p_api_version                  IN NUMBER,
321      p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
322      x_return_status                OUT NOCOPY VARCHAR2,
323      x_msg_count                    OUT NOCOPY NUMBER,
324      x_msg_data                     OUT NOCOPY VARCHAR2,
325      p_srfvv_tbl                    IN srfvv_tbl_type
326      ) IS
327      l_api_name          CONSTANT VARCHAR2(30) := 'LOCK_SUBSIDY_REFUND';
328      l_return_status     VARCHAR2(1)  := OKC_API.G_RET_STS_SUCCESS;
329      l_overall_status     VARCHAR2(1)   := OKL_API.G_RET_STS_SUCCESS;
330      i                    NUMBER;
331    BEGIN
332 
333      If p_srfvv_tbl.COUNT > 0 Then
334        i := p_srfvv_tbl.FIRST;
335        LOOP
336          -- call procedure in complex API for a record
337          lock_refund_dtls(p_api_version,
338                             p_init_msg_list,
339                             x_return_status,
340                             x_msg_count,
341                             x_msg_data,
342                             p_srfvv_tbl(i));
343          If x_return_status <> OKL_API.G_RET_STS_SUCCESS Then
344            If l_overall_status <> OKL_API.G_RET_STS_UNEXP_ERROR Then
345              l_overall_status := x_return_status;
346            End If;
347          End If;
348 
349        EXIT WHEN (i = p_srfvv_tbl.LAST);
350        i := p_srfvv_tbl.NEXT(i);
351        END LOOP;
352 
353        -- return overall status
354        x_return_status := l_overall_status;
355      End If;
356 
357     If x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR Then
358 	  raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
359     Elsif x_return_status = OKL_API.G_RET_STS_ERROR Then
360 	  raise OKL_API.G_EXCEPTION_ERROR;
361     End If;
362 
363    EXCEPTION
364      WHEN OKC_API.G_EXCEPTION_ERROR THEN
365      x_return_status := OKC_API.HANDLE_EXCEPTIONS
366               (l_api_name,
367               G_PKG_NAME,
368               'OKC_API.G_RET_STS_ERROR',
369               x_msg_count,
370               x_msg_data,
371               '_PVT');
372      WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
373      x_return_status :=OKC_API.HANDLE_EXCEPTIONS
374              (l_api_name,
375              G_PKG_NAME,
376              'OKC_API.G_RET_STS_UNEXP_ERROR',
377              x_msg_count,
378              x_msg_data,
379              '_PVT');
380      WHEN OTHERS THEN
381      x_return_status :=OKC_API.HANDLE_EXCEPTIONS
382              (l_api_name,
383              G_PKG_NAME,
384              'OTHERS',
385              x_msg_count,
386              x_msg_data,
387              '_PVT');
388    END lock_refund_dtls;
389 
390    PROCEDURE delete_refund_dtls(
391      p_api_version                  IN NUMBER,
392      p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
393      x_return_status                OUT NOCOPY VARCHAR2,
394      x_msg_count                    OUT NOCOPY NUMBER,
395      x_msg_data                     OUT NOCOPY VARCHAR2,
396      p_srfvv_rec                    IN srfvv_rec_type
397      ) IS
398      l_api_name          CONSTANT VARCHAR2(30) := 'DELETE_SUBSIDY_REFUND';
399      l_return_status     VARCHAR2(1)  := OKC_API.G_RET_STS_SUCCESS;
400 
401      --Bug# 4959361
402      CURSOR l_cpl_csr(p_pyd_id IN NUMBER) IS
403      SELECT cpl.cle_id
404      FROM  okc_k_party_roles_b cpl,
405            okl_party_payment_dtls pyd
406      WHERE pyd.id = p_pyd_id
407      AND   cpl.id = pyd.cpl_id;
408 
409      l_cpl_rec l_cpl_csr%ROWTYPE;
410      --Bug# 4959361
411 
412    BEGIN
413      x_return_status := l_return_status;
414      -- Call start_activity to create savepoint, check compatibility
415      -- and initialize message list
416      l_return_status := OKC_API.START_ACTIVITY (l_api_name
417                                                 ,p_init_msg_list
418                                                 ,'_PVT'
419                                                 ,x_return_status);
420      -- Check if activity started successfully
421      IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
422         RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
423      ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
424         RAISE OKC_API.G_EXCEPTION_ERROR;
425      END IF;
426 
427      --Bug# 4959361
428      OPEN l_cpl_csr(p_pyd_id => p_srfvv_rec.id);
429      FETCH l_cpl_csr INTO l_cpl_rec;
430      CLOSE l_cpl_csr;
431 
432      IF l_cpl_rec.cle_id IS NOT NULL THEN
433        OKL_LLA_UTIL_PVT.check_line_update_allowed
434          (p_api_version     => p_api_version,
435           p_init_msg_list   => p_init_msg_list,
436           x_return_status   => x_return_status,
437           x_msg_count       => x_msg_count,
438           x_msg_data        => x_msg_data,
439           p_cle_id          => l_cpl_rec.cle_id);
440 
441        IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
442          RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
443        ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
444          RAISE OKL_API.G_EXCEPTION_ERROR;
445        END IF;
446      END IF;
447      --Bug# 4959361
448 
449      OKL_PYD_PVT.delete_row(p_api_version,
450                             p_init_msg_list,
451                             x_return_status,
452                             x_msg_count,
453                             x_msg_data,
454                             p_srfvv_rec);
455 
456      If x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR Then
457 	  raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
458      Elsif x_return_status = OKL_API.G_RET_STS_ERROR Then
459 	  raise OKL_API.G_EXCEPTION_ERROR;
460      End If;
461 
462      OKC_API.END_ACTIVITY (x_msg_count
463                            ,x_msg_data );
464 
465    EXCEPTION
466      WHEN OKC_API.G_EXCEPTION_ERROR THEN
467      x_return_status := OKC_API.HANDLE_EXCEPTIONS
468               (l_api_name,
469               G_PKG_NAME,
470               'OKC_API.G_RET_STS_ERROR',
471               x_msg_count,
472               x_msg_data,
473               '_PVT');
474      WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
475      x_return_status :=OKC_API.HANDLE_EXCEPTIONS
476              (l_api_name,
477              G_PKG_NAME,
478              'OKC_API.G_RET_STS_UNEXP_ERROR',
479              x_msg_count,
480              x_msg_data,
481              '_PVT');
482      WHEN OTHERS THEN
483      x_return_status :=OKC_API.HANDLE_EXCEPTIONS
484              (l_api_name,
485              G_PKG_NAME,
486              'OTHERS',
487              x_msg_count,
488              x_msg_data,
489              '_PVT');
490    END delete_refund_dtls;
491 
492    PROCEDURE delete_refund_dtls(
493      p_api_version                  IN NUMBER,
494      p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
495      x_return_status                OUT NOCOPY VARCHAR2,
496      x_msg_count                    OUT NOCOPY NUMBER,
497      x_msg_data                     OUT NOCOPY VARCHAR2,
498      p_srfvv_tbl                    IN srfvv_tbl_type
499      ) IS
500      l_api_name          CONSTANT VARCHAR2(30) := 'DELETE_SUBSIDY_REFUND';
501      l_return_status     VARCHAR2(1)  := OKC_API.G_RET_STS_SUCCESS;
502      l_overall_status     VARCHAR2(1)   := OKL_API.G_RET_STS_SUCCESS;
503      i                    NUMBER;
504    BEGIN
505 
506      If p_srfvv_tbl.COUNT > 0 Then
507        i := p_srfvv_tbl.FIRST;
508        LOOP
509          -- call procedure in complex API for a record
510          delete_refund_dtls(p_api_version,
511                             p_init_msg_list,
512                             x_return_status,
513                             x_msg_count,
514                             x_msg_data,
515                             p_srfvv_tbl(i));
516          If x_return_status <> OKL_API.G_RET_STS_SUCCESS Then
517            If l_overall_status <> OKL_API.G_RET_STS_UNEXP_ERROR Then
518              l_overall_status := x_return_status;
519            End If;
520          End If;
521 
522        EXIT WHEN (i = p_srfvv_tbl.LAST);
523        i := p_srfvv_tbl.NEXT(i);
524        END LOOP;
525 
526        -- return overall status
527        x_return_status := l_overall_status;
528      End If;
529 
530     If x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR Then
531 	  raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
532     Elsif x_return_status = OKL_API.G_RET_STS_ERROR Then
533 	  raise OKL_API.G_EXCEPTION_ERROR;
534     End If;
535 
536    EXCEPTION
537      WHEN OKC_API.G_EXCEPTION_ERROR THEN
538      x_return_status := OKC_API.HANDLE_EXCEPTIONS
539               (l_api_name,
540               G_PKG_NAME,
541               'OKC_API.G_RET_STS_ERROR',
542               x_msg_count,
543               x_msg_data,
544               '_PVT');
545      WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
546      x_return_status :=OKC_API.HANDLE_EXCEPTIONS
547              (l_api_name,
548              G_PKG_NAME,
549              'OKC_API.G_RET_STS_UNEXP_ERROR',
550              x_msg_count,
551              x_msg_data,
552              '_PVT');
553      WHEN OTHERS THEN
554      x_return_status :=OKC_API.HANDLE_EXCEPTIONS
555              (l_api_name,
556              G_PKG_NAME,
557              'OTHERS',
558              x_msg_count,
559              x_msg_data,
560              '_PVT');
561    END delete_refund_dtls;
562 
563    PROCEDURE update_refund_dtls(
564      p_api_version                  IN NUMBER,
565      p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
566      x_return_status                OUT NOCOPY VARCHAR2,
567      x_msg_count                    OUT NOCOPY NUMBER,
568      x_msg_data                     OUT NOCOPY VARCHAR2,
569      p_srfvv_rec                    IN srfvv_rec_type,
570      x_srfvv_rec                    OUT NOCOPY srfvv_rec_type
571      ) IS
572      l_api_name          CONSTANT VARCHAR2(30) := 'UPDATE_SUBSIDY_REFUND';
573      l_return_status     VARCHAR2(1)  := OKC_API.G_RET_STS_SUCCESS;
574 
575      --Bug# 4959361
576      CURSOR l_cpl_csr(p_cpl_id IN NUMBER) IS
577      SELECT cle_id
578      FROM okc_k_party_roles_b cpl
579      WHERE cpl.id = p_cpl_id;
580 
581      l_cpl_rec l_cpl_csr%ROWTYPE;
582      --Bug# 4959361
583 
584    BEGIN
585      x_return_status := l_return_status;
586      -- Call start_activity to create savepoint, check compatibility
587      -- and initialize message list
588      l_return_status := OKC_API.START_ACTIVITY (l_api_name
589                                                 ,p_init_msg_list
590                                                 ,'_PVT'
591                                                 ,x_return_status);
592      -- Check if activity started successfully
593      IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
594         RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
595      ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
596         RAISE OKC_API.G_EXCEPTION_ERROR;
597      END IF;
598 
599      --Bug# 4959361
600      OPEN l_cpl_csr(p_cpl_id => p_srfvv_rec.cpl_id);
601      FETCH l_cpl_csr INTO l_cpl_rec;
602      CLOSE l_cpl_csr;
603 
604      IF l_cpl_rec.cle_id IS NOT NULL THEN
605        OKL_LLA_UTIL_PVT.check_line_update_allowed
606          (p_api_version     => p_api_version,
607           p_init_msg_list   => p_init_msg_list,
608           x_return_status   => x_return_status,
609           x_msg_count       => x_msg_count,
610           x_msg_data        => x_msg_data,
611           p_cle_id          => l_cpl_rec.cle_id);
612 
613        IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
614          RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
615        ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
616          RAISE OKL_API.G_EXCEPTION_ERROR;
617        END IF;
618      END IF;
619      --Bug# 4959361
620 
621      OKL_PYD_PVT.update_row(p_api_version,
622                             p_init_msg_list,
623                             x_return_status,
624                             x_msg_count,
625                             x_msg_data,
626                             p_srfvv_rec,
627                             x_srfvv_rec);
628 
629      If x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR Then
630 	  raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
631      Elsif x_return_status = OKL_API.G_RET_STS_ERROR Then
632 	  raise OKL_API.G_EXCEPTION_ERROR;
633      End If;
634 
635      validate_refund_record(x_return_status, x_srfvv_rec);
636      IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
637        l_return_status := x_return_status;
638        RAISE OKC_API.G_EXCEPTION_ERROR;
639      END IF;
640 
641      OKC_API.END_ACTIVITY (x_msg_count
642                            ,x_msg_data );
643 
644    EXCEPTION
645      WHEN OKC_API.G_EXCEPTION_ERROR THEN
646      x_return_status := OKC_API.HANDLE_EXCEPTIONS
647               (l_api_name,
648               G_PKG_NAME,
649               'OKC_API.G_RET_STS_ERROR',
650               x_msg_count,
651               x_msg_data,
652               '_PVT');
653      WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
654      x_return_status :=OKC_API.HANDLE_EXCEPTIONS
655              (l_api_name,
656              G_PKG_NAME,
657              'OKC_API.G_RET_STS_UNEXP_ERROR',
658              x_msg_count,
659              x_msg_data,
660              '_PVT');
661      WHEN OTHERS THEN
662      x_return_status :=OKC_API.HANDLE_EXCEPTIONS
663              (l_api_name,
664              G_PKG_NAME,
665              'OTHERS',
666              x_msg_count,
667              x_msg_data,
668              '_PVT');
669    END update_refund_dtls;
670 
671    PROCEDURE update_refund_dtls(
672      p_api_version                  IN NUMBER,
673      p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
674      x_return_status                OUT NOCOPY VARCHAR2,
675      x_msg_count                    OUT NOCOPY NUMBER,
676      x_msg_data                     OUT NOCOPY VARCHAR2,
677      p_srfvv_tbl                    IN srfvv_tbl_type,
678      x_srfvv_tbl                    OUT NOCOPY srfvv_tbl_type
679      ) IS
680      l_api_name          CONSTANT VARCHAR2(30) := 'UPDATE_SUBSIDY_REFUND';
681      l_return_status     VARCHAR2(1)  := OKC_API.G_RET_STS_SUCCESS;
682      l_overall_status     VARCHAR2(1)   := OKL_API.G_RET_STS_SUCCESS;
683      i                    NUMBER;
684 
685    BEGIN
686 
687      If p_srfvv_tbl.COUNT > 0 Then
688        i := p_srfvv_tbl.FIRST;
689        LOOP
690          -- call procedure in complex API for a record
691          update_refund_dtls(p_api_version,
692                             p_init_msg_list,
693                             x_return_status,
694                             x_msg_count,
695                             x_msg_data,
696                             p_srfvv_tbl(i),
697                             x_srfvv_tbl(i));
698          If x_return_status <> OKL_API.G_RET_STS_SUCCESS Then
699            If l_overall_status <> OKL_API.G_RET_STS_UNEXP_ERROR Then
700              l_overall_status := x_return_status;
701            End If;
702          End If;
703 
704        EXIT WHEN (i = p_srfvv_tbl.LAST);
705        i := p_srfvv_tbl.NEXT(i);
706        END LOOP;
707 
708        -- return overall status
709        x_return_status := l_overall_status;
710      End If;
711 
712      If x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR Then
713 	  raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
714      Elsif x_return_status = OKL_API.G_RET_STS_ERROR Then
715 	  raise OKL_API.G_EXCEPTION_ERROR;
716      End If;
717 
718    EXCEPTION
719      WHEN OKC_API.G_EXCEPTION_ERROR THEN
720      x_return_status := OKC_API.HANDLE_EXCEPTIONS
721               (l_api_name,
722               G_PKG_NAME,
723               'OKC_API.G_RET_STS_ERROR',
724               x_msg_count,
725               x_msg_data,
726               '_PVT');
727      WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
728      x_return_status :=OKC_API.HANDLE_EXCEPTIONS
729              (l_api_name,
730              G_PKG_NAME,
731              'OKC_API.G_RET_STS_UNEXP_ERROR',
732              x_msg_count,
733              x_msg_data,
734              '_PVT');
735      WHEN OTHERS THEN
736      x_return_status :=OKC_API.HANDLE_EXCEPTIONS
737              (l_api_name,
738              G_PKG_NAME,
739              'OTHERS',
740              x_msg_count,
741              x_msg_data,
742              '_PVT');
743    END update_refund_dtls;
744 
745    PROCEDURE validate_refund_dtls(
746      p_api_version                  IN NUMBER,
747      p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
748      x_return_status                OUT NOCOPY VARCHAR2,
749      x_msg_count                    OUT NOCOPY NUMBER,
750      x_msg_data                     OUT NOCOPY VARCHAR2,
751      p_srfvv_rec                    IN srfvv_rec_type
752      ) IS
753      l_api_name          CONSTANT VARCHAR2(30) := 'VALIDATE_SUBSIDY_REFUND';
754      l_return_status     VARCHAR2(1)  := OKC_API.G_RET_STS_SUCCESS;
755    BEGIN
756      x_return_status := l_return_status;
757      -- Call start_activity to create savepoint, check compatibility
758      -- and initialize message list
759      l_return_status := OKC_API.START_ACTIVITY (l_api_name
760                                                 ,p_init_msg_list
761                                                 ,'_PVT'
762                                                 ,x_return_status);
763      -- Check if activity started successfully
764      IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
765         RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
766      ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
767         RAISE OKC_API.G_EXCEPTION_ERROR;
768      END IF;
769 
770      OKL_PYD_PVT.validate_row(p_api_version,
771                             p_init_msg_list,
772                             x_return_status,
773                             x_msg_count,
774                             x_msg_data,
775                             p_srfvv_rec);
776 
777      If x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR Then
778 	  raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
779      Elsif x_return_status = OKL_API.G_RET_STS_ERROR Then
780 	  raise OKL_API.G_EXCEPTION_ERROR;
781      End If;
782 
783      OKC_API.END_ACTIVITY (x_msg_count
784                            ,x_msg_data );
785 
786    EXCEPTION
787      WHEN OKC_API.G_EXCEPTION_ERROR THEN
788      x_return_status := OKC_API.HANDLE_EXCEPTIONS
789               (l_api_name,
790               G_PKG_NAME,
791               'OKC_API.G_RET_STS_ERROR',
792               x_msg_count,
793               x_msg_data,
794               '_PVT');
795      WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
796      x_return_status :=OKC_API.HANDLE_EXCEPTIONS
797              (l_api_name,
798              G_PKG_NAME,
799              'OKC_API.G_RET_STS_UNEXP_ERROR',
800              x_msg_count,
801              x_msg_data,
802              '_PVT');
803      WHEN OTHERS THEN
804      x_return_status :=OKC_API.HANDLE_EXCEPTIONS
805              (l_api_name,
806              G_PKG_NAME,
807              'OTHERS',
808              x_msg_count,
809              x_msg_data,
810              '_PVT');
811    END validate_refund_dtls;
812 
813    PROCEDURE validate_refund_dtls(
814      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_srfvv_tbl                    IN srfvv_tbl_type
820      ) IS
821      l_api_name          CONSTANT VARCHAR2(30) := 'VALIDATE_SUBSIDY_REFUND';
822      l_return_status     VARCHAR2(1)  := OKC_API.G_RET_STS_SUCCESS;
823      l_overall_status     VARCHAR2(1)   := OKL_API.G_RET_STS_SUCCESS;
824      i                    NUMBER;
825    BEGIN
826 
827      If p_srfvv_tbl.COUNT > 0 Then
828        i := p_srfvv_tbl.FIRST;
829        LOOP
830          -- call procedure in complex API for a record
831          validate_refund_dtls(p_api_version,
832                             p_init_msg_list,
833                             x_return_status,
834                             x_msg_count,
835                             x_msg_data,
836                             p_srfvv_tbl(i));
837          If x_return_status <> OKL_API.G_RET_STS_SUCCESS Then
838            If l_overall_status <> OKL_API.G_RET_STS_UNEXP_ERROR Then
839              l_overall_status := x_return_status;
840            End If;
841          End If;
842 
843        EXIT WHEN (i = p_srfvv_tbl.LAST);
844        i := p_srfvv_tbl.NEXT(i);
845        END LOOP;
846 
847        -- return overall status
848        x_return_status := l_overall_status;
849      End If;
850 
851     If x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR Then
852 	  raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
853     Elsif x_return_status = OKL_API.G_RET_STS_ERROR Then
854 	  raise OKL_API.G_EXCEPTION_ERROR;
855     End If;
856 
857    EXCEPTION
858      WHEN OKC_API.G_EXCEPTION_ERROR THEN
859      x_return_status := OKC_API.HANDLE_EXCEPTIONS
860               (l_api_name,
861               G_PKG_NAME,
862               'OKC_API.G_RET_STS_ERROR',
863               x_msg_count,
864               x_msg_data,
865               '_PVT');
866      WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
867      x_return_status :=OKC_API.HANDLE_EXCEPTIONS
868              (l_api_name,
869              G_PKG_NAME,
870              'OKC_API.G_RET_STS_UNEXP_ERROR',
871              x_msg_count,
872              x_msg_data,
873              '_PVT');
874      WHEN OTHERS THEN
875      x_return_status :=OKC_API.HANDLE_EXCEPTIONS
876              (l_api_name,
877              G_PKG_NAME,
878              'OTHERS',
879              x_msg_count,
880              x_msg_data,
881              '_PVT');
882    END validate_refund_dtls;
883 
884 END OKL_SUBSIDY_RFND_DTLS_PVT;