DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKL_SUPP_INVOICE_DTLS_PVT

Source


1 package body OKL_SUPP_INVOICE_DTLS_PVT as
2 /* $Header: OKLCSIDB.pls 120.3 2005/10/30 04:04:21 appldev noship $ */
3 
4    /*
5     * sjalasut: aug 18, 04 added constants used in raising business event. BEGIN
6     */
7    G_WF_EVT_ASSET_SUP_INV_CRTD CONSTANT VARCHAR2(65)   := 'oracle.apps.okl.la.lease_contract.asset_supplier_invoice_created';
8    G_WF_EVT_ASSET_SUP_INV_UPTD CONSTANT VARCHAR2(65)   := 'oracle.apps.okl.la.lease_contract.asset_supplier_invoice_updated';
9    G_WF_ITM_CONTRACT_ID CONSTANT VARCHAR2(30)        := 'CONTRACT_ID';
10    G_WF_ITM_ASSET_ID CONSTANT VARCHAR2(30)           := 'ASSET_ID';
11    G_WF_ITM_PARTY_ID CONSTANT VARCHAR2(15)           := 'PARTY_ID';
12    G_WF_ITM_CONTRACT_PROCESS CONSTANT VARCHAR2(30)   := 'CONTRACT_PROCESS';
13    /*
14     * sjalasut: aug 18, 04 added constants used in raising business event. END
15     */
16    -------------------------------------------------------------------------------
17    -- PROCEDURE raise_business_event
18    -------------------------------------------------------------------------------
19    -- Start of comments
20    --
21    -- Procedure Name  : raise_business_event
22    -- Description     : This procedure is a wrapper that raises a business event
23    --                 : when ever supplier invoice is created or updated.
24    -- Business Rules  :
25    -- Parameters      : p_chr_id,p_asset_id,p_vendor_id,p_event_name along with other api params
26    -- Version         : 1.0
27    -- History         : 30-AUG-2004 SJALASUT created
28    -- End of comments
29 
30    PROCEDURE raise_business_event(p_api_version IN NUMBER,
31                                   p_init_msg_list IN VARCHAR2,
32                                   p_chr_id IN okc_k_headers_b.id%TYPE,
33                                   p_asset_id IN okc_k_lines_b.id%TYPE,
34                                   p_vendor_id IN po_vendors.vendor_id%TYPE,
35                                   p_event_name IN VARCHAR2,
36                                   x_return_status OUT NOCOPY VARCHAR2,
37                                   x_msg_count OUT NOCOPY NUMBER,
38                                   x_msg_data OUT NOCOPY VARCHAR2
39                                   ) IS
40      l_parameter_list wf_parameter_list_t;
41      l_contract_process VARCHAR2(20);
42    BEGIN
43      x_return_status := OKL_API.G_RET_STS_SUCCESS;
44 
45      -- wrapper API to get contract process. this API determines in which status the
46      -- contract in question is.
47      l_contract_process := okl_lla_util_pvt.get_contract_process(p_chr_id => p_chr_id);
48      wf_event.AddParameterToList(G_WF_ITM_CONTRACT_ID, p_chr_id, l_parameter_list);
49      wf_event.AddParameterToList(G_WF_ITM_ASSET_ID, p_asset_id, l_parameter_list);
50      wf_event.AddParameterToList(G_WF_ITM_PARTY_ID, p_vendor_id, l_parameter_list);
51      wf_event.AddParameterToList(G_WF_ITM_CONTRACT_PROCESS, l_contract_process, l_parameter_list);
52 
53      OKL_WF_PVT.raise_event(p_api_version    => p_api_version,
54                             p_init_msg_list  => p_init_msg_list,
55                             x_return_status  => x_return_status,
56                             x_msg_count      => x_msg_count,
57                             x_msg_data       => x_msg_data,
58                             p_event_name     => p_event_name,
59                             p_parameters     => l_parameter_list);
60    EXCEPTION
61      WHEN OTHERS THEN
62      x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
63      RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
64    END raise_business_event;
65 
66    /*
67     * sjalasut: aug 18, 04 added procedure to call private wrapper that raises the business event. END
68     */
69 
70 
71    PROCEDURE Create_sup_inv_dtls(
72      p_api_version                  IN NUMBER,
73      p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
74      x_return_status                OUT NOCOPY VARCHAR2,
75      x_msg_count                    OUT NOCOPY NUMBER,
76      x_msg_data                     OUT NOCOPY VARCHAR2,
77      p_sidv_rec                     IN sidv_rec_type,
78      x_sidv_rec                     OUT NOCOPY sidv_rec_type)
79      IS
80      l_api_name          CONSTANT VARCHAR2(30) := 'CREATE_SUP_INV_DTLS';
81      l_return_status              VARCHAR2(1)  := OKC_API.G_RET_STS_SUCCESS;
82      /*
83       * sjalasut aug 18, 04: added cursor to derive the dnz_chr_id from the dnz_cle_id
84       * to pass the parameters to the business event. BEGIN
85       */
86      CURSOR get_chr_id (p_cle_id okc_k_lines_b.id%TYPE) IS
87      SELECT dnz_chr_id, cle_id
88        FROM okc_k_lines_b
89       WHERE id = p_cle_id;
90 
91      --vthiruva Fix Bug#4047076 27-Dec-04
92      --Added cursor to fetch the vendor id to pass to business events
93      CURSOR get_vendor_id(p_chr_id okc_k_headers_b.id%TYPE,
94                           p_cle_id okc_k_lines_b.id%TYPE) IS
95      SELECT object1_id1 vendor_id
96        FROM okc_k_party_roles_b
97       WHERE dnz_chr_id = p_chr_id
98         AND cle_id = p_cle_id
99 	AND rle_code = 'OKL_VENDOR';
100 
101      l_chr_id okc_k_headers_b.id%TYPE;
102      l_cle_id okc_k_lines_b.id%TYPE;
103      l_vendor_id po_vendors.vendor_id%TYPE;
104      /*
105       * sjalasut aug 18, 04: added cursor to derive the dnz_chr_id from the dnz_cle_id
106       * to pass the parameters to the business event. END
107       */
108 
109    BEGIN
110      -- Call start_activity to create savepoint, check compatibility
111      -- and initialize message list
112      l_return_status := OKC_API.START_ACTIVITY (l_api_name
113                                                 ,p_init_msg_list
114                                                 ,'_PVT'
115                                                 ,x_return_status);
116      -- Check if activity started successfully
117      IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
118         RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
119      ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
120         RAISE OKC_API.G_EXCEPTION_ERROR;
121      END IF;
122      -- evaluate conditions, build outcomes for true conditions and
123      -- put them on outcome queue
124      OKL_SID_PVT.insert_row(p_api_version,
125                             p_init_msg_list,
126                             x_return_status,
127                             x_msg_count,
128                             x_msg_data,
129                             p_sidv_rec,
130                             x_sidv_rec);
131      /*
132       * sjalasut: aug 18, 04 added code to enable business event. BEGIN
133       * raise the event only when the contract in context is a LEASE contract
134       */
135      OPEN get_chr_id(p_sidv_rec.cle_id);
136      FETCH get_chr_id INTO l_chr_id,l_cle_id;
137      CLOSE get_chr_id;
138 
139      --vthiruva Fix Bug#4047076..27-Dec-04
140      --added code to fetch vendor id
141      OPEN get_vendor_id(l_chr_id,p_sidv_rec.cle_id);
142      FETCH get_vendor_id INTO l_vendor_id;
143      CLOSE get_vendor_id;
144 
145      IF(OKL_LLA_UTIL_PVT.is_lease_contract(l_chr_id)= OKL_API.G_TRUE)THEN
146        raise_business_event(p_api_version         => p_api_version,
147                             p_init_msg_list       => p_init_msg_list,
148                             p_chr_id              => l_chr_id,
149                             p_asset_id            => l_cle_id,
150                             p_vendor_id           => l_vendor_id,
151                             p_event_name          => G_WF_EVT_ASSET_SUP_INV_CRTD,
152                             x_return_status       => x_return_status,
153                             x_msg_count           => x_msg_count,
154                             x_msg_data            => x_msg_data
155                            );
156        IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
157           RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
158        ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
159           RAISE OKL_API.G_EXCEPTION_ERROR;
160        END IF;
161      END IF;
162      /*
163       * sjalasut: aug 18, 04 added code to enable business event. END
164       */
165 
166      OKC_API.END_ACTIVITY (x_msg_count
167                            ,x_msg_data );
168    EXCEPTION
169      WHEN OKC_API.G_EXCEPTION_ERROR THEN
170      x_return_status := OKC_API.HANDLE_EXCEPTIONS
171 					 (l_api_name,
172 					 G_PKG_NAME,
173 					 'OKC_API.G_RET_STS_ERROR',
174 					 x_msg_count,
175 					 x_msg_data,
176 					 '_PVT');
177      WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
178      x_return_status :=OKC_API.HANDLE_EXCEPTIONS
179 	                                (l_api_name,
180 					G_PKG_NAME,
181 					'OKC_API.G_RET_STS_UNEXP_ERROR',
182 					x_msg_count,
183 					x_msg_data,
184 					'_PVT');
185      WHEN OTHERS THEN x_return_status :=OKC_API.HANDLE_EXCEPTIONS
186 	                                 (l_api_name,
187 	                                  G_PKG_NAME,
188 					  'OTHERS',
189 					  x_msg_count,
190 					  x_msg_data,
191 					  '_PVT');
192    END Create_sup_inv_dtls;
193 
194     PROCEDURE Create_sup_inv_dtls(
195     p_api_version                  IN NUMBER,
196     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
197     x_return_status                OUT NOCOPY VARCHAR2,
198     x_msg_count                    OUT NOCOPY NUMBER,
199     x_msg_data                     OUT NOCOPY VARCHAR2,
200     p_sidv_tbl                     IN sidv_tbl_type,
201     x_sidv_tbl                     OUT NOCOPY sidv_tbl_type)
202     IS
203     l_api_name          CONSTANT VARCHAR2(30) := 'CREATE_SUP_INV_DTLS';
204     l_return_status              VARCHAR2(1)  := OKC_API.G_RET_STS_SUCCESS;
205     BEGIN
206     -- Call start_activity to create savepoint, check compatibility
207     -- and initialize message list
208     l_return_status := OKC_API.START_ACTIVITY (l_api_name
209 	                                       ,p_init_msg_list
210                                                ,'_PVT'
211                                                , x_return_status);
212     -- Check if activity started successfully
213     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
214        RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
215     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
216        RAISE OKC_API.G_EXCEPTION_ERROR;
217     END IF;
218     -- evaluate conditions, build outcomes for true conditions and
219     -- put them on outcome queue
220     OKL_SID_PVT.insert_row(p_api_version,
221                            p_init_msg_list,
222                            x_return_status,
223                            x_msg_count,
224                            x_msg_data,
225                            p_sidv_tbl,
226                            x_sidv_tbl);
227     OKC_API.END_ACTIVITY (x_msg_count
228                           ,x_msg_data );
229 
230     EXCEPTION
231 	     WHEN OKC_API.G_EXCEPTION_ERROR THEN
232 			    x_return_status := OKC_API.HANDLE_EXCEPTIONS
233 						 (l_api_name,
234 						 G_PKG_NAME,
235 						 'OKC_API.G_RET_STS_ERROR',
236 						 x_msg_count,
237 						 x_msg_data,
238 						 '_PVT');
239              WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
240 			    x_return_status :=OKC_API.HANDLE_EXCEPTIONS
241 						(l_api_name,
242 						G_PKG_NAME,
243 						'OKC_API.G_RET_STS_UNEXP_ERROR',
244 						x_msg_count,
245 						x_msg_data,
246 						'_PVT');
247              WHEN OTHERS THEN x_return_status :=OKC_API.HANDLE_EXCEPTIONS
248 	                                          ( l_api_name,
249 						  G_PKG_NAME,
250 						  'OTHERS',
251 						  x_msg_count,
252 						  x_msg_data,
253 						  '_PVT');
254     END Create_sup_inv_dtls;
255 
256    PROCEDURE lock_sup_inv_dtls(
257      p_api_version                  IN NUMBER,
258      p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
259      x_return_status                OUT NOCOPY VARCHAR2,
260      x_msg_count                    OUT NOCOPY NUMBER,
261      x_msg_data                     OUT NOCOPY VARCHAR2,
262      p_sidv_rec                     IN sidv_rec_type)
263      IS
264      l_api_name          CONSTANT VARCHAR2(30) := 'LOCK_SUP_INV_DTLS';
265      l_return_status              VARCHAR2(1)  := OKC_API.G_RET_STS_SUCCESS;
266    BEGIN
267      -- Call start_activity to create savepoint, check compatibility
268      -- and initialize message list
269      l_return_status := OKC_API.START_ACTIVITY (l_api_name
270                                                 ,p_init_msg_list
271                                                 ,'_PVT'
272                                                 ,x_return_status);
273      -- Check if activity started successfully
274      IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
275         RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
276      ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
277         RAISE OKC_API.G_EXCEPTION_ERROR;
278      END IF;
279      -- evaluate conditions, build outcomes for true conditions and
280      -- put them on outcome queue
281      OKL_SID_PVT.lock_row(p_api_version,
282                             p_init_msg_list,
283                             x_return_status,
284                             x_msg_count,
285                             x_msg_data,
286                             p_sidv_rec);
287      OKC_API.END_ACTIVITY (x_msg_count
288                            ,x_msg_data );
289    EXCEPTION
290      WHEN OKC_API.G_EXCEPTION_ERROR THEN
291      x_return_status := OKC_API.HANDLE_EXCEPTIONS
292 					 (l_api_name,
293 					 G_PKG_NAME,
294 					 'OKC_API.G_RET_STS_ERROR',
295 					 x_msg_count,
296 					 x_msg_data,
297 					 '_PVT');
298      WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
299      x_return_status :=OKC_API.HANDLE_EXCEPTIONS
300 	                                (l_api_name,
301 					G_PKG_NAME,
302 					'OKC_API.G_RET_STS_UNEXP_ERROR',
303 					x_msg_count,
304 					x_msg_data,
305 					'_PVT');
306      WHEN OTHERS THEN x_return_status :=OKC_API.HANDLE_EXCEPTIONS
307 	                                 (l_api_name,
308 	                                  G_PKG_NAME,
309 					  'OTHERS',
310 					  x_msg_count,
311 					  x_msg_data,
312 					  '_PVT');
313    END lock_sup_inv_dtls;
314 
315    PROCEDURE lock_sup_inv_dtls(
316      p_api_version                  IN NUMBER,
317      p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
318      x_return_status                OUT NOCOPY VARCHAR2,
319      x_msg_count                    OUT NOCOPY NUMBER,
320      x_msg_data                     OUT NOCOPY VARCHAR2,
321      p_sidv_tbl                     IN sidv_tbl_type)
322      IS
323      l_api_name          CONSTANT VARCHAR2(30) := 'LOCK_SUP_INV_DTLS';
324      l_return_status              VARCHAR2(1)  := OKC_API.G_RET_STS_SUCCESS;
325    BEGIN
326      -- Call start_activity to create savepoint, check compatibility
327      -- and initialize message list
328      l_return_status := OKC_API.START_ACTIVITY (l_api_name
329                                                 ,p_init_msg_list
330                                                 ,'_PVT'
331                                                 ,x_return_status);
332      -- Check if activity started successfully
333      IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
334         RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
335      ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
336         RAISE OKC_API.G_EXCEPTION_ERROR;
337      END IF;
338      -- evaluate conditions, build outcomes for true conditions and
339      -- put them on outcome queue
340      OKL_SID_PVT.lock_row(p_api_version,
341                             p_init_msg_list,
342                             x_return_status,
343                             x_msg_count,
344                             x_msg_data,
345                             p_sidv_tbl);
346      OKC_API.END_ACTIVITY (x_msg_count
347                            ,x_msg_data );
348    EXCEPTION
349      WHEN OKC_API.G_EXCEPTION_ERROR THEN
350      x_return_status := OKC_API.HANDLE_EXCEPTIONS
351 					 (l_api_name,
352 					 G_PKG_NAME,
353 					 'OKC_API.G_RET_STS_ERROR',
354 					 x_msg_count,
355 					 x_msg_data,
356 					 '_PVT');
357      WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
358      x_return_status :=OKC_API.HANDLE_EXCEPTIONS
359 	                                (l_api_name,
360 					G_PKG_NAME,
361 					'OKC_API.G_RET_STS_UNEXP_ERROR',
362 					x_msg_count,
363 					x_msg_data,
364 					'_PVT');
365      WHEN OTHERS THEN x_return_status :=OKC_API.HANDLE_EXCEPTIONS
366 	                                 (l_api_name,
367 	                                  G_PKG_NAME,
368 					  'OTHERS',
369 					  x_msg_count,
370 					  x_msg_data,
371 					  '_PVT');
372    END lock_sup_inv_dtls;
373 
374    PROCEDURE update_sup_inv_dtls(
375      p_api_version                  IN NUMBER,
376      p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
377      x_return_status                OUT NOCOPY VARCHAR2,
378      x_msg_count                    OUT NOCOPY NUMBER,
379      x_msg_data                     OUT NOCOPY VARCHAR2,
380      p_sidv_rec                     IN sidv_rec_type,
381      x_sidv_rec                     OUT NOCOPY sidv_rec_type)
382      IS
383      l_api_name          CONSTANT VARCHAR2(30) := 'UPDATE_SUP_INV_DTLS';
384      l_return_status              VARCHAR2(1)  := OKC_API.G_RET_STS_SUCCESS;
385      /*
386       * sjalasut aug 18, 04: added cursor to derive the dnz_chr_id from the dnz_cle_id
387       * to pass the parameters to the business event. BEGIN
388       */
389      CURSOR get_chr_id (p_cle_id okc_k_lines_b.id%TYPE) IS
390      SELECT a.dnz_chr_id, a.cle_id, b.cle_id
391        FROM okc_k_lines_b a,
392             okl_supp_invoice_dtls b
393       WHERE a.id = b.cle_id
394         AND b.id = p_cle_id;
395 
396      --vthiruva Fix Bug#4047076..27-Dec-04
397      --Added cursor to fetch the vendor id to pass to business events
398      CURSOR get_vendor_id(p_chr_id okc_k_headers_b.id%TYPE,
399                           p_cle_id okc_k_lines_b.id%TYPE) IS
400      SELECT object1_id1 vendor_id
401        FROM okc_k_party_roles_b
402       WHERE dnz_chr_id = p_chr_id
403         AND cle_id = p_cle_id
404 	AND rle_code = 'OKL_VENDOR';
405 
406      l_chr_id okc_k_headers_b.id%TYPE;
407      l_cle_id okc_k_lines_b.id%TYPE;
408      l_supp_inv_ln_id okc_k_lines_b.id%TYPE;
409      l_vendor_id po_vendors.vendor_id%TYPE;
410      /*
411       * sjalasut aug 18, 04: added cursor to derive the dnz_chr_id from the dnz_cle_id
412       * to pass the parameters to the business event. END
413       */
414 
415    BEGIN
416      -- Call start_activity to create savepoint, check compatibility
417      -- and initialize message list
418      l_return_status := OKC_API.START_ACTIVITY (l_api_name
419                                                 ,p_init_msg_list
420                                                 ,'_PVT'
421                                                 ,x_return_status);
422      -- Check if activity started successfully
423      IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
424         RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
425      ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
426         RAISE OKC_API.G_EXCEPTION_ERROR;
427      END IF;
428      -- evaluate conditions, build outcomes for true conditions and
429      -- put them on outcome queue
430      OKL_SID_PVT.update_row(p_api_version,
431                             p_init_msg_list,
432                             x_return_status,
433                             x_msg_count,
434                             x_msg_data,
435                             p_sidv_rec,
436                             x_sidv_rec);
437      /*
438       * sjalasut: aug 18, 04 added code to enable business event. BEGIN
439       * raise the event only is the contract in context is a LEASE contract
440       */
441      OPEN get_chr_id(p_sidv_rec.id);
442      FETCH get_chr_id INTO l_chr_id,l_cle_id,l_supp_inv_ln_id;
443      CLOSE get_chr_id;
444 
445      --vthiruva Fix Bug#4047076..27-Dec-04
446      --added code to fetch vendor id
447      OPEN get_vendor_id(l_chr_id,l_supp_inv_ln_id);
448      FETCH get_vendor_id INTO l_vendor_id;
449      CLOSE get_vendor_id;
450 
451      IF(OKL_LLA_UTIL_PVT.is_lease_contract(l_chr_id)= OKL_API.G_TRUE)THEN
452        raise_business_event(p_api_version         => p_api_version,
453                             p_init_msg_list       => p_init_msg_list,
454                             p_chr_id              => l_chr_id,
455                             p_asset_id            => l_cle_id,
456                             p_vendor_id           => l_vendor_id,
457                             p_event_name          => G_WF_EVT_ASSET_SUP_INV_UPTD,
458                             x_return_status       => x_return_status,
459                             x_msg_count           => x_msg_count,
460                             x_msg_data            => x_msg_data
461                            );
462        IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
463           RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
464        ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
465           RAISE OKL_API.G_EXCEPTION_ERROR;
466        END IF;
467      END IF;
468      /*
469       * sjalasut: aug 18, 04 added code to enable business event. END
470       */
471 
472      OKC_API.END_ACTIVITY (x_msg_count
473                            ,x_msg_data );
474    EXCEPTION
475      WHEN OKC_API.G_EXCEPTION_ERROR THEN
476      x_return_status := OKC_API.HANDLE_EXCEPTIONS
477 					 (l_api_name,
478 					 G_PKG_NAME,
479 					 'OKC_API.G_RET_STS_ERROR',
480 					 x_msg_count,
481 					 x_msg_data,
482 					 '_PVT');
483      WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
484      x_return_status :=OKC_API.HANDLE_EXCEPTIONS
485 	                                (l_api_name,
486 					G_PKG_NAME,
487 					'OKC_API.G_RET_STS_UNEXP_ERROR',
488 					x_msg_count,
489 					x_msg_data,
490 					'_PVT');
491      WHEN OTHERS THEN x_return_status :=OKC_API.HANDLE_EXCEPTIONS
492 	                                 (l_api_name,
493 	                                  G_PKG_NAME,
494 					  'OTHERS',
495 					  x_msg_count,
496 					  x_msg_data,
497 					  '_PVT');
498    END update_sup_inv_dtls;
499 
500    PROCEDURE update_sup_inv_dtls(
501      p_api_version                  IN NUMBER,
502      p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
503      x_return_status                OUT NOCOPY VARCHAR2,
504      x_msg_count                    OUT NOCOPY NUMBER,
505      x_msg_data                     OUT NOCOPY VARCHAR2,
506      p_sidv_tbl                     IN sidv_tbl_type,
507      x_sidv_tbl                     OUT NOCOPY sidv_tbl_type)
508      IS
509      l_api_name          CONSTANT VARCHAR2(30) := 'UPDATE_SUP_INV_DTLS';
510      l_return_status              VARCHAR2(1)  := OKC_API.G_RET_STS_SUCCESS;
511 
512    BEGIN
513      -- Call start_activity to create savepoint, check compatibility
514      -- and initialize message list
515      l_return_status := OKC_API.START_ACTIVITY (l_api_name
516                                                 ,p_init_msg_list
517                                                 ,'_PVT'
518                                                 ,x_return_status);
519      -- Check if activity started successfully
520      IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
521         RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
522      ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
523         RAISE OKC_API.G_EXCEPTION_ERROR;
524      END IF;
525      -- evaluate conditions, build outcomes for true conditions and
526      -- put them on outcome queue
527      OKL_SID_PVT.update_row(p_api_version,
528                             p_init_msg_list,
529                             x_return_status,
530                             x_msg_count,
531                             x_msg_data,
532                             p_sidv_tbl,
533                             x_sidv_tbl);
534      OKC_API.END_ACTIVITY (x_msg_count
535                            ,x_msg_data );
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 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
554 	                                 (l_api_name,
555 	                                  G_PKG_NAME,
556 					  'OTHERS',
557 					  x_msg_count,
558 					  x_msg_data,
559 					  '_PVT');
560    END update_sup_inv_dtls;
561 
562    PROCEDURE delete_sup_inv_dtls(
563      p_api_version                  IN NUMBER,
564      p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
565      x_return_status                OUT NOCOPY VARCHAR2,
566      x_msg_count                    OUT NOCOPY NUMBER,
567      x_msg_data                     OUT NOCOPY VARCHAR2,
568      p_sidv_rec                     IN sidv_rec_type)
569      IS
570      l_api_name          CONSTANT VARCHAR2(30) := 'DELETE_SUP_INV_DTLS';
571      l_return_status              VARCHAR2(1)  := OKC_API.G_RET_STS_SUCCESS;
572    BEGIN
573      -- Call start_activity to create savepoint, check compatibility
574      -- and initialize message list
575      l_return_status := OKC_API.START_ACTIVITY (l_api_name
576                                                 ,p_init_msg_list
577                                                 ,'_PVT'
578                                                 ,x_return_status);
579      -- Check if activity started successfully
580      IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
581         RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
582      ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
583         RAISE OKC_API.G_EXCEPTION_ERROR;
584      END IF;
585      -- evaluate conditions, build outcomes for true conditions and
586      -- put them on outcome queue
587      OKL_SID_PVT.delete_row(p_api_version,
588                             p_init_msg_list,
589                             x_return_status,
590                             x_msg_count,
591                             x_msg_data,
592                             p_sidv_rec);
593      OKC_API.END_ACTIVITY (x_msg_count
594                            ,x_msg_data );
595    EXCEPTION
596      WHEN OKC_API.G_EXCEPTION_ERROR THEN
597      x_return_status := OKC_API.HANDLE_EXCEPTIONS
598 					 (l_api_name,
599 					 G_PKG_NAME,
600 					 'OKC_API.G_RET_STS_ERROR',
601 					 x_msg_count,
602 					 x_msg_data,
603 					 '_PVT');
604      WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
605      x_return_status :=OKC_API.HANDLE_EXCEPTIONS
606 	                                (l_api_name,
607 					G_PKG_NAME,
608 					'OKC_API.G_RET_STS_UNEXP_ERROR',
609 					x_msg_count,
610 					x_msg_data,
611 					'_PVT');
612      WHEN OTHERS THEN x_return_status :=OKC_API.HANDLE_EXCEPTIONS
613 	                                 (l_api_name,
614 	                                  G_PKG_NAME,
615 					  'OTHERS',
616 					  x_msg_count,
617 					  x_msg_data,
618 					  '_PVT');
619    END delete_sup_inv_dtls;
620 
621    PROCEDURE delete_sup_inv_dtls(
622      p_api_version                  IN NUMBER,
623      p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
624      x_return_status                OUT NOCOPY VARCHAR2,
625      x_msg_count                    OUT NOCOPY NUMBER,
626      x_msg_data                     OUT NOCOPY VARCHAR2,
627      p_sidv_tbl                     IN sidv_tbl_type)
628      IS
629      l_api_name          CONSTANT VARCHAR2(30) := 'DELETE_SUP_INV_DTLS';
630      l_return_status              VARCHAR2(1)  := OKC_API.G_RET_STS_SUCCESS;
631    BEGIN
632      -- Call start_activity to create savepoint, check compatibility
633      -- and initialize message list
634      l_return_status := OKC_API.START_ACTIVITY (l_api_name
635                                                 ,p_init_msg_list
636                                                 ,'_PVT'
637                                                 ,x_return_status);
638      -- Check if activity started successfully
639      IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
640         RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
641      ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
642         RAISE OKC_API.G_EXCEPTION_ERROR;
643      END IF;
644      -- evaluate conditions, build outcomes for true conditions and
645      -- put them on outcome queue
646      OKL_SID_PVT.delete_row(p_api_version,
647                             p_init_msg_list,
648                             x_return_status,
649                             x_msg_count,
650                             x_msg_data,
651                             p_sidv_tbl);
652      OKC_API.END_ACTIVITY (x_msg_count
653                            ,x_msg_data );
654    EXCEPTION
655      WHEN OKC_API.G_EXCEPTION_ERROR THEN
656      x_return_status := OKC_API.HANDLE_EXCEPTIONS
657 					 (l_api_name,
658 					 G_PKG_NAME,
659 					 'OKC_API.G_RET_STS_ERROR',
660 					 x_msg_count,
661 					 x_msg_data,
662 					 '_PVT');
663      WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
664      x_return_status :=OKC_API.HANDLE_EXCEPTIONS
665 	                                (l_api_name,
666 					G_PKG_NAME,
667 					'OKC_API.G_RET_STS_UNEXP_ERROR',
668 					x_msg_count,
669 					x_msg_data,
670 					'_PVT');
671      WHEN OTHERS THEN x_return_status :=OKC_API.HANDLE_EXCEPTIONS
672 	                                 (l_api_name,
673 	                                  G_PKG_NAME,
674 					  'OTHERS',
675 					  x_msg_count,
676 					  x_msg_data,
677 					  '_PVT');
678    END delete_sup_inv_dtls;
679 
680    PROCEDURE validate_sup_inv_dtls(
681      p_api_version                  IN NUMBER,
682      p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
683      x_return_status                OUT NOCOPY VARCHAR2,
684      x_msg_count                    OUT NOCOPY NUMBER,
685      x_msg_data                     OUT NOCOPY VARCHAR2,
686      p_sidv_rec                     IN sidv_rec_type)
687      IS
688      l_api_name          CONSTANT VARCHAR2(30) := 'VALIDATE_SUP_INV_DTLS';
689      l_return_status              VARCHAR2(1)  := OKC_API.G_RET_STS_SUCCESS;
690    BEGIN
691      -- Call start_activity to create savepoint, check compatibility
692      -- and initialize message list
693      l_return_status := OKC_API.START_ACTIVITY (l_api_name
694                                                 ,p_init_msg_list
695                                                 ,'_PVT'
696                                                 ,x_return_status);
697      -- Check if activity started successfully
698      IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
699         RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
700      ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
701         RAISE OKC_API.G_EXCEPTION_ERROR;
702      END IF;
703      -- evaluate conditions, build outcomes for true conditions and
704      -- put them on outcome queue
705      OKL_SID_PVT.validate_row(p_api_version,
706                             p_init_msg_list,
707                             x_return_status,
708                             x_msg_count,
709                             x_msg_data,
710                             p_sidv_rec);
711      OKC_API.END_ACTIVITY (x_msg_count
712                            ,x_msg_data );
713    EXCEPTION
714      WHEN OKC_API.G_EXCEPTION_ERROR THEN
715      x_return_status := OKC_API.HANDLE_EXCEPTIONS
716 					 (l_api_name,
717 					 G_PKG_NAME,
718 					 'OKC_API.G_RET_STS_ERROR',
719 					 x_msg_count,
720 					 x_msg_data,
721 					 '_PVT');
722      WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
723      x_return_status :=OKC_API.HANDLE_EXCEPTIONS
724 	                                (l_api_name,
725 					G_PKG_NAME,
726 					'OKC_API.G_RET_STS_UNEXP_ERROR',
727 					x_msg_count,
728 					x_msg_data,
729 					'_PVT');
730      WHEN OTHERS THEN x_return_status :=OKC_API.HANDLE_EXCEPTIONS
731 	                                 (l_api_name,
732 	                                  G_PKG_NAME,
733 					  'OTHERS',
734 					  x_msg_count,
735 					  x_msg_data,
736 					  '_PVT');
737    END validate_sup_inv_dtls;
738 
739    PROCEDURE validate_sup_inv_dtls(
740      p_api_version                  IN NUMBER,
741      p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
742      x_return_status                OUT NOCOPY VARCHAR2,
743      x_msg_count                    OUT NOCOPY NUMBER,
744      x_msg_data                     OUT NOCOPY VARCHAR2,
745      p_sidv_tbl                     IN sidv_tbl_type)
746      IS
747      l_api_name          CONSTANT VARCHAR2(30) := 'VALIDATE_SUP_INV_DTLS';
748      l_return_status              VARCHAR2(1)  := OKC_API.G_RET_STS_SUCCESS;
749    BEGIN
750      -- Call start_activity to create savepoint, check compatibility
751      -- and initialize message list
752      l_return_status := OKC_API.START_ACTIVITY (l_api_name
753                                                 ,p_init_msg_list
754                                                 ,'_PVT'
755                                                 ,x_return_status);
756      -- Check if activity started successfully
757      IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
758         RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
759      ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
760         RAISE OKC_API.G_EXCEPTION_ERROR;
761      END IF;
762      -- evaluate conditions, build outcomes for true conditions and
763      -- put them on outcome queue
764      OKL_SID_PVT.validate_row(p_api_version,
765                             p_init_msg_list,
766                             x_return_status,
767                             x_msg_count,
768                             x_msg_data,
769                             p_sidv_tbl);
770      OKC_API.END_ACTIVITY (x_msg_count
771                            ,x_msg_data );
772    EXCEPTION
773      WHEN OKC_API.G_EXCEPTION_ERROR THEN
774      x_return_status := OKC_API.HANDLE_EXCEPTIONS
775 					 (l_api_name,
776 					 G_PKG_NAME,
777 					 'OKC_API.G_RET_STS_ERROR',
778 					 x_msg_count,
779 					 x_msg_data,
780 					 '_PVT');
781      WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
782      x_return_status :=OKC_API.HANDLE_EXCEPTIONS
783 	                                (l_api_name,
784 					G_PKG_NAME,
785 					'OKC_API.G_RET_STS_UNEXP_ERROR',
786 					x_msg_count,
787 					x_msg_data,
788 					'_PVT');
789      WHEN OTHERS THEN x_return_status :=OKC_API.HANDLE_EXCEPTIONS
790 	                                 (l_api_name,
791 	                                  G_PKG_NAME,
792 					  'OTHERS',
793 					  x_msg_count,
794 					  x_msg_data,
795 					  '_PVT');
796    END validate_sup_inv_dtls;
797 
798 END OKL_SUPP_INVOICE_DTLS_PVT;