DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKL_CONTRACT_LINE_ITEM_PUB

Source


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