DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKL_VP_PARTY_PAYMENT_PVT

Source


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