DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKL_CONTRACT_TOP_LINE_PUB

Source


1 PACKAGE BODY okl_contract_top_line_pub as
2   /* $Header: OKLPKTLB.pls 115.5 2003/01/07 19:36:54 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_link_serv(
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_chr_id			   IN  NUMBER,
22     p_contract_number              IN  VARCHAR2,
23     p_item_name                    IN  VARCHAR2,
24     p_supplier_name                IN  VARCHAR2,
25     x_cle_id			   OUT NOCOPY NUMBER
26 ) IS
27 
28     l_api_name		CONSTANT VARCHAR2(30) := 'create_contract_link_serv';
29     l_api_version	CONSTANT NUMBER	  := 1.0;
30     l_return_status	VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
31 
32   BEGIN
33     -- call START_ACTIVITY to create savepoint, check compatibility
34     -- and initialize message list
35     l_return_status := OKC_API.START_ACTIVITY(
36 			p_api_name      => l_api_name,
37 			p_pkg_name      => g_pkg_name,
38 			p_init_msg_list => p_init_msg_list,
39 			l_api_version   => l_api_version,
40 			p_api_version   => p_api_version,
41 			p_api_type      => g_api_type,
42 			x_return_status => x_return_status);
43 
44     -- check if activity started successfully
45     If (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) then
46        raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
47     Elsif (l_return_status = OKC_API.G_RET_STS_ERROR) then
48        raise OKC_API.G_EXCEPTION_ERROR;
49     End If;
50 
51     okl_contract_top_line_pvt.create_contract_link_serv (
52             p_api_version    		=> p_api_version,
53             p_init_msg_list  		=> p_init_msg_list,
54             x_return_status  		=> x_return_status,
55             x_msg_count      		=> x_msg_count,
56             x_msg_data       		=> x_msg_data,
57             p_chr_id			=> p_chr_id,
58 	    p_contract_number           => p_contract_number,
59 	    p_item_name                 => p_item_name,
60 	    p_supplier_name             => p_supplier_name,
61 	    x_cle_id			=> x_cle_id);
62 
63      if(x_return_status = FND_API.G_RET_STS_ERROR )  then
64 	RAISE OKC_API.G_EXCEPTION_ERROR;
65      elsif (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) then
66 	RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
67      end if;
68 
69     OKC_API.END_ACTIVITY(x_msg_count	=> x_msg_count,
70 			x_msg_data	=> x_msg_data);
71   EXCEPTION
72     when OKC_API.G_EXCEPTION_ERROR then
73       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
74 			p_api_name  => l_api_name,
75 			p_pkg_name  => g_pkg_name,
76 			p_exc_name  => 'OKC_API.G_RET_STS_ERROR',
77 			x_msg_count => x_msg_count,
78 			x_msg_data  => x_msg_data,
79 			p_api_type  => g_api_type);
80 
81     when OKC_API.G_EXCEPTION_UNEXPECTED_ERROR then
82       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
83 			p_api_name  => l_api_name,
84 			p_pkg_name  => g_pkg_name,
85 			p_exc_name  => 'OKC_API.G_RET_STS_UNEXP_ERROR',
86 			x_msg_count => x_msg_count,
87 			x_msg_data  => x_msg_data,
88 			p_api_type  => g_api_type);
89 
90     when OTHERS then
91       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
92 			p_api_name  => l_api_name,
93 			p_pkg_name  => g_pkg_name,
94 			p_exc_name  => 'OTHERS',
95 			x_msg_count => x_msg_count,
96 			x_msg_data  => x_msg_data,
97 			p_api_type  => g_api_type);
98   END create_contract_link_serv;
99 
100   PROCEDURE update_contract_link_serv(
101     p_api_version                  IN NUMBER,
102     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
103     x_return_status                OUT NOCOPY VARCHAR2,
104     x_msg_count                    OUT NOCOPY NUMBER,
105     x_msg_data                     OUT NOCOPY VARCHAR2,
106     p_chr_id			   IN  NUMBER,
107     p_cle_id			   IN  NUMBER,
108     p_contract_number              IN  VARCHAR2,
109     p_item_name                    IN  VARCHAR2,
110     p_supplier_name                IN  VARCHAR2,
111     x_cle_id			   OUT NOCOPY NUMBER
112 ) IS
113 
114     l_api_name		CONSTANT VARCHAR2(30) := 'update_contract_link_serv';
115     l_api_version	CONSTANT NUMBER	  := 1.0;
116     l_return_status	VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
117 
118   BEGIN
119     -- call START_ACTIVITY to create savepoint, check compatibility
120     -- and initialize message list
121     l_return_status := OKC_API.START_ACTIVITY(
122 			p_api_name      => l_api_name,
123 			p_pkg_name      => g_pkg_name,
124 			p_init_msg_list => p_init_msg_list,
125 			l_api_version   => l_api_version,
126 			p_api_version   => p_api_version,
127 			p_api_type      => g_api_type,
128 			x_return_status => x_return_status);
129 
130     -- check if activity started successfully
131     If (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) then
132        raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
133     Elsif (l_return_status = OKC_API.G_RET_STS_ERROR) then
134        raise OKC_API.G_EXCEPTION_ERROR;
135     End If;
136 
137     okl_contract_top_line_pvt.update_contract_link_serv (
138             p_api_version    		=> p_api_version,
139             p_init_msg_list  		=> p_init_msg_list,
140             x_return_status  		=> x_return_status,
141             x_msg_count      		=> x_msg_count,
142             x_msg_data       		=> x_msg_data,
143             p_chr_id			=> p_chr_id,
144             p_cle_id			=> p_cle_id,
145 	    p_contract_number           => p_contract_number,
146 	    p_item_name                 => p_item_name,
147 	    p_supplier_name             => p_supplier_name,
148 	    x_cle_id			=> x_cle_id);
149 
150      if(x_return_status = FND_API.G_RET_STS_ERROR )  then
151 	RAISE OKC_API.G_EXCEPTION_ERROR;
152      elsif (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) then
153 	RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
154      end if;
155 
156     OKC_API.END_ACTIVITY(x_msg_count	=> x_msg_count,
157 			x_msg_data	=> x_msg_data);
158   EXCEPTION
159     when OKC_API.G_EXCEPTION_ERROR then
160       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
161 			p_api_name  => l_api_name,
162 			p_pkg_name  => g_pkg_name,
163 			p_exc_name  => 'OKC_API.G_RET_STS_ERROR',
164 			x_msg_count => x_msg_count,
165 			x_msg_data  => x_msg_data,
166 			p_api_type  => g_api_type);
167 
168     when OKC_API.G_EXCEPTION_UNEXPECTED_ERROR then
169       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
170 			p_api_name  => l_api_name,
171 			p_pkg_name  => g_pkg_name,
172 			p_exc_name  => 'OKC_API.G_RET_STS_UNEXP_ERROR',
173 			x_msg_count => x_msg_count,
174 			x_msg_data  => x_msg_data,
175 			p_api_type  => g_api_type);
176 
177     when OTHERS then
178       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
179 			p_api_name  => l_api_name,
180 			p_pkg_name  => g_pkg_name,
181 			p_exc_name  => 'OTHERS',
182 			x_msg_count => x_msg_count,
183 			x_msg_data  => x_msg_data,
184 			p_api_type  => g_api_type);
185   END update_contract_link_serv;
186 
187   PROCEDURE create_contract_top_line(
188     p_api_version                  IN NUMBER,
189     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
190     x_return_status                OUT NOCOPY VARCHAR2,
191     x_msg_count                    OUT NOCOPY NUMBER,
192     x_msg_data                     OUT NOCOPY VARCHAR2,
193     p_clev_rec                     IN  clev_rec_type,
194     p_klev_rec                     IN  klev_rec_type,
195     p_cimv_rec                     IN  cimv_rec_type,
196     p_cplv_rec                     IN  cplv_rec_type,
197     x_clev_rec                     OUT NOCOPY clev_rec_type,
198     x_klev_rec                     OUT NOCOPY klev_rec_type,
199     x_cimv_rec                     OUT NOCOPY cimv_rec_type,
200     x_cplv_rec                     OUT NOCOPY cplv_rec_type) IS
201 
202     l_clev_rec clev_rec_type := p_clev_rec;
203     l_klev_rec klev_rec_type := p_klev_rec;
204     l_cimv_rec cimv_rec_type := p_cimv_rec;
205     l_cplv_rec cplv_rec_type := p_cplv_rec;
206 
207     l_api_name		CONSTANT VARCHAR2(30) := 'create_contract_top_line';
208     l_api_version	CONSTANT NUMBER	  := 1.0;
209     l_return_status	VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
210   BEGIN
211 
212     -- call START_ACTIVITY to create savepoint, check compatibility
213     -- and initialize message list
214     l_return_status := OKC_API.START_ACTIVITY(
215 			p_api_name      => l_api_name,
216 			p_pkg_name      => g_pkg_name,
217 			p_init_msg_list => p_init_msg_list,
218 			l_api_version   => l_api_version,
219 			p_api_version   => p_api_version,
220 			p_api_type      => g_api_type,
221 			x_return_status => x_return_status);
222 
223     -- check if activity started successfully
224     If (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) then
225        raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
226     Elsif (l_return_status = OKC_API.G_RET_STS_ERROR) then
227        raise OKC_API.G_EXCEPTION_ERROR;
228     End If;
229 
230     OKL_CONTRACT_TOP_LINE_pvt.create_contract_top_line(
231       p_api_version   => p_api_version,
232       p_init_msg_list => p_init_msg_list,
233       x_return_status => x_return_status,
234       x_msg_count     => x_msg_count,
235       x_msg_data      => x_msg_data,
236       p_clev_rec        => l_clev_rec,
237       p_klev_rec	=> l_klev_rec,
238       p_cimv_rec	=> l_cimv_rec,
239       p_cplv_rec	=> l_cplv_rec,
240       x_clev_rec	=> x_clev_rec,
241       x_klev_rec	=> x_klev_rec,
242       x_cimv_rec	=> x_cimv_rec,
243       x_cplv_rec	=> x_cplv_rec
244 	);
245 
246      IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
247        raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
248      ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
249        raise OKC_API.G_EXCEPTION_ERROR;
250      END IF;
251 
252     OKC_API.END_ACTIVITY(x_msg_count	=> x_msg_count,
253 			x_msg_data	=> x_msg_data);
254   EXCEPTION
255     when OKC_API.G_EXCEPTION_ERROR then
256       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
257 			p_api_name  => l_api_name,
258 			p_pkg_name  => g_pkg_name,
259 			p_exc_name  => 'OKC_API.G_RET_STS_ERROR',
260 			x_msg_count => x_msg_count,
261 			x_msg_data  => x_msg_data,
262 			p_api_type  => g_api_type);
263 
264     when OKC_API.G_EXCEPTION_UNEXPECTED_ERROR then
265       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
266 			p_api_name  => l_api_name,
267 			p_pkg_name  => g_pkg_name,
268 			p_exc_name  => 'OKC_API.G_RET_STS_UNEXP_ERROR',
269 			x_msg_count => x_msg_count,
270 			x_msg_data  => x_msg_data,
271 			p_api_type  => g_api_type);
272 
273     when OTHERS then
274       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
275 			p_api_name  => l_api_name,
276 			p_pkg_name  => g_pkg_name,
277 			p_exc_name  => 'OTHERS',
278 			x_msg_count => x_msg_count,
279 			x_msg_data  => x_msg_data,
280 			p_api_type  => g_api_type);
281   END create_contract_top_line;
282 
283 -- Start of comments
284 --
285 -- Procedure Name  : create_contract_top_line
286 -- Description     : creates contract line for shadowed contract
287 -- Business Rules  :
288 -- Parameters      :
289 -- Version         : 1.0
290 -- End of comments
291   PROCEDURE create_contract_top_line(
292     p_api_version                  IN NUMBER,
293     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
294     x_return_status                OUT NOCOPY VARCHAR2,
295     x_msg_count                    OUT NOCOPY NUMBER,
296     x_msg_data                     OUT NOCOPY VARCHAR2,
297     p_clev_tbl                     IN  clev_tbl_type,
298     p_klev_tbl                     IN  klev_tbl_type,
299     p_cimv_tbl                     IN  cimv_tbl_type,
300     p_cplv_tbl                     IN  cplv_tbl_type,
301     x_clev_tbl                     OUT NOCOPY clev_tbl_type,
302     x_klev_tbl                     OUT NOCOPY klev_tbl_type,
303     x_cimv_tbl                     OUT NOCOPY cimv_tbl_type,
304     x_cplv_tbl                     OUT NOCOPY cplv_tbl_type) IS
305 
306     l_api_name		CONSTANT VARCHAR2(30) := 'CREATE_contract_top_line';
307     l_api_version	CONSTANT NUMBER	  := 1.0;
308     l_return_status	VARCHAR2(1)		  := OKC_API.G_RET_STS_SUCCESS;
309     l_overall_status 	VARCHAR2(1)		  := OKC_API.G_RET_STS_SUCCESS;
310     i			NUMBER;
311     l_klev_tbl   	klev_tbl_type := p_klev_tbl;
312     l_cimv_tbl   	cimv_tbl_type := p_cimv_tbl;
313     l_cplv_tbl   	cplv_tbl_type := p_cplv_tbl;
314   BEGIN
315 
316     -- call START_ACTIVITY to create savepoint, check compatibility
317     -- and initialize message list
318     l_return_status := OKC_API.START_ACTIVITY(
319 			p_api_name      => l_api_name,
320 			p_pkg_name      => g_pkg_name,
321 			p_init_msg_list => p_init_msg_list,
322 			l_api_version   => l_api_version,
323 			p_api_version   => p_api_version,
324 			p_api_type      => g_api_type,
325 			x_return_status => x_return_status);
326 
327     -- check if activity started successfully
328     If (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) then
329        raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
330     Elsif (l_return_status = OKC_API.G_RET_STS_ERROR) then
331        raise OKC_API.G_EXCEPTION_ERROR;
332     End If;
333 
334 
335     If (p_clev_tbl.COUNT > 0) Then
336 	   i := p_clev_tbl.FIRST;
337 	   LOOP
338 		-- call procedure in complex API for a record
339 		create_contract_top_line(
340 			p_api_version		=> p_api_version,
341 			p_init_msg_list		=> p_init_msg_list,
342 			x_return_status 	=> x_return_status,
343 			x_msg_count     	=> x_msg_count,
344 			x_msg_data      	=> x_msg_data,
345 			p_clev_rec		=> p_clev_tbl(i),
346       			p_klev_rec		=> l_klev_tbl(i),
347       			p_cimv_rec		=> l_cimv_tbl(i),
348       			p_cplv_rec		=> l_cplv_tbl(i),
349 			x_clev_rec		=> x_clev_tbl(i),
350       			x_klev_rec		=> x_klev_tbl(i),
351       			x_cimv_rec		=> x_cimv_tbl(i),
352       			x_cplv_rec		=> x_cplv_tbl(i));
353 
354       If x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR Then
355   	  raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
356       Elsif x_return_status = OKC_API.G_RET_STS_ERROR Then
357   	  raise OKC_API.G_EXCEPTION_ERROR;
358       End If;
359 
360         EXIT WHEN (i = p_clev_tbl.LAST);
361 		i := p_clev_tbl.NEXT(i);
362 	   END LOOP;
363 
364     End If;
365 
366     If x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR Then
367 	  raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
368     Elsif x_return_status = OKC_API.G_RET_STS_ERROR Then
369 	  raise OKC_API.G_EXCEPTION_ERROR;
370     End If;
371 
372     OKC_API.END_ACTIVITY(	x_msg_count	=> x_msg_count,
373 				x_msg_data	=> x_msg_data);
374 
375   EXCEPTION
376     when OKC_API.G_EXCEPTION_ERROR then
377       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
378 			p_api_name  => l_api_name,
379 			p_pkg_name  => g_pkg_name,
380 			p_exc_name  => 'OKC_API.G_RET_STS_ERROR',
381 			x_msg_count => x_msg_count,
382 			x_msg_data  => x_msg_data,
383 			p_api_type  => g_api_type);
384 
385     when OKC_API.G_EXCEPTION_UNEXPECTED_ERROR then
386       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
387 			p_api_name  => l_api_name,
388 			p_pkg_name  => g_pkg_name,
389 			p_exc_name  => 'OKC_API.G_RET_STS_UNEXP_ERROR',
390 			x_msg_count => x_msg_count,
391 			x_msg_data  => x_msg_data,
392 			p_api_type  => g_api_type);
393 
394     when OTHERS then
395       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
396 			p_api_name  => l_api_name,
397 			p_pkg_name  => g_pkg_name,
398 			p_exc_name  => 'OTHERS',
399 			x_msg_count => x_msg_count,
400 			x_msg_data  => x_msg_data,
401 			p_api_type  => g_api_type);
402 
403   END create_contract_top_line;
404 
405 
406 -- Start of comments
407 --
408 -- Procedure Name  : update_contract_top_line
409 -- Description     : updates contract line for shadowed contract
410 -- Business Rules  :
411 -- Parameters      :
412 -- Version         : 1.0
413 -- End of comments
414   PROCEDURE update_contract_top_line(
415     p_api_version                  IN NUMBER,
416     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
417     x_return_status                OUT NOCOPY VARCHAR2,
418     x_msg_count                    OUT NOCOPY NUMBER,
419     x_msg_data                     OUT NOCOPY VARCHAR2,
420     p_clev_rec                     IN  clev_rec_type,
421     p_klev_rec                     IN  klev_rec_type,
422     p_cimv_rec                     IN  cimv_rec_type,
423     p_cplv_rec                     IN  cplv_rec_type,
424     x_clev_rec                     OUT NOCOPY clev_rec_type,
425     x_klev_rec                     OUT NOCOPY klev_rec_type,
426     x_cimv_rec                     OUT NOCOPY cimv_rec_type,
427     x_cplv_rec                     OUT NOCOPY cplv_rec_type) IS
428 
429     l_clev_rec clev_rec_type := p_clev_rec;
430     l_klev_rec klev_rec_type := p_klev_rec;
431     l_cimv_rec cimv_rec_type := p_cimv_rec;
432     l_cplv_rec cplv_rec_type := p_cplv_rec;
433 
434     l_api_name		CONSTANT VARCHAR2(30) 	:= 'UPDATE_contract_top_line';
435     l_api_version	CONSTANT NUMBER	  	:= 1.0;
436     l_return_status	VARCHAR2(1)		:= OKC_API.G_RET_STS_SUCCESS;
437 
438   BEGIN
439 
440     -- call START_ACTIVITY to create savepoint, check compatibility
441     -- and initialize message list
442     l_return_status := OKC_API.START_ACTIVITY(
443 			p_api_name      => l_api_name,
444 			p_pkg_name      => g_pkg_name,
445 			p_init_msg_list => p_init_msg_list,
446 			l_api_version   => l_api_version,
447 			p_api_version   => p_api_version,
448 			p_api_type      => g_api_type,
449 			x_return_status => x_return_status);
450 
451     -- check if activity started successfully
452     If (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) then
453        raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
454     Elsif (l_return_status = OKC_API.G_RET_STS_ERROR) then
455        raise OKC_API.G_EXCEPTION_ERROR;
456     End If;
457 
458     OKL_CONTRACT_TOP_LINE_pvt.update_contract_top_line(
459       p_api_version   => p_api_version,
460       p_init_msg_list => p_init_msg_list,
461       x_return_status => x_return_status,
462       x_msg_count     => x_msg_count,
463       x_msg_data      => x_msg_data,
464       p_clev_rec	=> l_clev_rec,
465       p_klev_rec	=> l_klev_rec,
466       p_cimv_rec	=> l_cimv_rec,
467       p_cplv_rec	=> l_cplv_rec,
468       x_clev_rec	=> x_clev_rec,
469       x_klev_rec	=> x_klev_rec,
470       x_cimv_rec	=> x_cimv_rec,
471       x_cplv_rec	=> x_cplv_rec
472       );
473 
474      IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
475        raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
476      ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
477        raise OKC_API.G_EXCEPTION_ERROR;
478      END IF;
479 
480        OKC_API.END_ACTIVITY(x_msg_count	=> x_msg_count,
481 				x_msg_data		=> x_msg_data);
482 
483   EXCEPTION
484     when OKC_API.G_EXCEPTION_ERROR then
485       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
486 			p_api_name  => l_api_name,
487 			p_pkg_name  => g_pkg_name,
488 			p_exc_name  => 'OKC_API.G_RET_STS_ERROR',
489 			x_msg_count => x_msg_count,
490 			x_msg_data  => x_msg_data,
491 			p_api_type  => g_api_type);
492 
493     when OKC_API.G_EXCEPTION_UNEXPECTED_ERROR then
494       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
495 			p_api_name  => l_api_name,
496 			p_pkg_name  => g_pkg_name,
497 			p_exc_name  => 'OKC_API.G_RET_STS_UNEXP_ERROR',
498 			x_msg_count => x_msg_count,
499 			x_msg_data  => x_msg_data,
500 			p_api_type  => g_api_type);
501 
502     when OTHERS then
503       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
504 			p_api_name  => l_api_name,
505 			p_pkg_name  => g_pkg_name,
506 			p_exc_name  => 'OTHERS',
507 			x_msg_count => x_msg_count,
508 			x_msg_data  => x_msg_data,
509 			p_api_type  => g_api_type);
510   END update_contract_top_line;
511 
512 
513 -- Start of comments
514 --
515 -- Procedure Name  : update_contract_top_line
516 -- Description     : updates contract line for shadowed contract
517 -- Business Rules  :
518 -- Parameters      :
519 -- Version         : 1.0
520 -- End of comments
521   PROCEDURE update_contract_top_line(
522     p_api_version                  IN NUMBER,
523     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
524     x_return_status                OUT NOCOPY VARCHAR2,
525     x_msg_count                    OUT NOCOPY NUMBER,
526     x_msg_data                     OUT NOCOPY VARCHAR2,
527     p_clev_tbl                     IN  clev_tbl_type,
528     p_klev_tbl                     IN  klev_tbl_type,
529     p_cimv_tbl                     IN  cimv_tbl_type,
530     p_cplv_tbl                     IN  cplv_tbl_type,
531     x_clev_tbl                     OUT NOCOPY clev_tbl_type,
532     x_klev_tbl                     OUT NOCOPY klev_tbl_type,
533     x_cimv_tbl                     OUT NOCOPY cimv_tbl_type,
534     x_cplv_tbl                     OUT NOCOPY cplv_tbl_type) IS
535 
536     l_api_name		CONSTANT VARCHAR2(30) := 'UPDATE_contract_top_line';
537     l_api_version	CONSTANT NUMBER	:= 1.0;
538     l_return_status	VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
539     l_overall_status 	VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
540     i			NUMBER;
541     l_klev_tbl   	klev_tbl_type := p_klev_tbl;
542     l_cimv_tbl   	cimv_tbl_type := p_cimv_tbl;
543     l_cplv_tbl   	cplv_tbl_type := p_cplv_tbl;
544   BEGIN
545 /*
546     -- call START_ACTIVITY to create savepoint, check compatibility
547     -- and initialize message list
548     l_return_status := OKC_API.START_ACTIVITY(
549 			p_api_name      => l_api_name,
550 			p_pkg_name      => g_pkg_name,
551 			p_init_msg_list => p_init_msg_list,
552 			l_api_version   => l_api_version,
553 			p_api_version   => p_api_version,
554 			p_api_type      => g_api_type,
555 			x_return_status => x_return_status);
556 
557     -- check if activity started successfully
558     If (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) then
559        raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
560     Elsif (l_return_status = OKC_API.G_RET_STS_ERROR) then
561        raise OKC_API.G_EXCEPTION_ERROR;
562     End If;
563 */
564 
565     If (p_clev_tbl.COUNT > 0) Then
566 	   i := p_clev_tbl.FIRST;
567 	   LOOP
568 		-- call procedure in complex API for a record
569 		update_contract_top_line(
570 			p_api_version		=> p_api_version,
571 			p_init_msg_list		=> p_init_msg_list,
572 			x_return_status 	=> x_return_status,
573 			x_msg_count     	=> x_msg_count,
574 			x_msg_data      	=> x_msg_data,
575 			p_clev_rec		=> p_clev_tbl(i),
576       			p_klev_rec		=> l_klev_tbl(i),
577       			p_cimv_rec		=> l_cimv_tbl(i),
578       			p_cplv_rec		=> l_cplv_tbl(i),
579 			x_clev_rec		=> x_clev_tbl(i),
580       			x_klev_rec		=> x_klev_tbl(i),
581       			x_cimv_rec		=> x_cimv_tbl(i),
582       			x_cplv_rec		=> x_cplv_tbl(i));
583 
584       If x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR Then
585   	  raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
586       Elsif x_return_status = OKC_API.G_RET_STS_ERROR Then
587   	  raise OKC_API.G_EXCEPTION_ERROR;
588       End If;
589 
590         EXIT WHEN (i = p_clev_tbl.LAST);
591 		i := p_clev_tbl.NEXT(i);
592 	   END LOOP;
593 
594     End If;
595 
596     If x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR Then
597 	  raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
598     Elsif x_return_status = OKC_API.G_RET_STS_ERROR Then
599 	  raise OKC_API.G_EXCEPTION_ERROR;
600     End If;
601 /*
602     OKC_API.END_ACTIVITY(	x_msg_count	=> x_msg_count,
603 				x_msg_data	=> x_msg_data);
604 */
605   EXCEPTION
606     when OKC_API.G_EXCEPTION_ERROR then
607       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
608 			p_api_name  => l_api_name,
609 			p_pkg_name  => g_pkg_name,
610 			p_exc_name  => 'OKC_API.G_RET_STS_ERROR',
611 			x_msg_count => x_msg_count,
612 			x_msg_data  => x_msg_data,
613 			p_api_type  => g_api_type);
614 
615     when OKC_API.G_EXCEPTION_UNEXPECTED_ERROR then
616       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
617 			p_api_name  => l_api_name,
618 			p_pkg_name  => g_pkg_name,
619 			p_exc_name  => 'OKC_API.G_RET_STS_UNEXP_ERROR',
620 			x_msg_count => x_msg_count,
621 			x_msg_data  => x_msg_data,
622 			p_api_type  => g_api_type);
623 
624     when OTHERS then
625       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
626 			p_api_name  => l_api_name,
627 			p_pkg_name  => g_pkg_name,
628 			p_exc_name  => 'OTHERS',
629 			x_msg_count => x_msg_count,
630 			x_msg_data  => x_msg_data,
631 			p_api_type  => g_api_type);
632 
633   END update_contract_top_line;
634 
635 
636   PROCEDURE delete_contract_line(
637             p_api_version    IN  NUMBER,
638             p_init_msg_list  IN  VARCHAR2 DEFAULT OKC_API.G_FALSE,
639             x_return_status  OUT NOCOPY VARCHAR2,
640             x_msg_count      OUT NOCOPY NUMBER,
641             x_msg_data       OUT NOCOPY VARCHAR2,
642             p_chr_id	     IN  number,
643             p_cle_id         IN  number) IS
644 
645     l_api_name		CONSTANT VARCHAR2(30)     := 'DELETE_contract_line';
646     l_api_version	CONSTANT NUMBER	  	  := 1.0;
647     l_return_status	VARCHAR2(1)		  := OKC_API.G_RET_STS_SUCCESS;
648 
649   BEGIN
650 
651     -- call START_ACTIVITY to create savepoint, check compatibility
652     -- and initialize message list
653     l_return_status := OKC_API.START_ACTIVITY(
654 			p_api_name      => l_api_name,
655 			p_pkg_name      => g_pkg_name,
656 			p_init_msg_list => p_init_msg_list,
657 			l_api_version   => l_api_version,
658 			p_api_version   => p_api_version,
659 			p_api_type      => g_api_type,
660 			x_return_status => x_return_status);
661 
662     -- check if activity started successfully
663     If (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) then
664        raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
665     Elsif (l_return_status = OKC_API.G_RET_STS_ERROR) then
666        raise OKC_API.G_EXCEPTION_ERROR;
667     End If;
668 
669     OKL_CONTRACT_TOP_LINE_pvt.delete_contract_line(
670       				p_api_version   => p_api_version,
671       				p_init_msg_list => p_init_msg_list,
672       				x_return_status => x_return_status,
673       				x_msg_count     => x_msg_count,
674       				x_msg_data      => x_msg_data,
675       				p_chr_id        => p_chr_id,
676     				p_cle_id        => p_cle_id);
677 
678      IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
679        raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
680      ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
681        raise OKC_API.G_EXCEPTION_ERROR;
682      END IF;
683 
684     OKC_API.END_ACTIVITY(x_msg_count	=> x_msg_count,
685 			x_msg_data	=> x_msg_data);
686   EXCEPTION
687     when OKC_API.G_EXCEPTION_ERROR then
688       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
689 			p_api_name  => l_api_name,
690 			p_pkg_name  => g_pkg_name,
691 			p_exc_name  => 'OKC_API.G_RET_STS_ERROR',
692 			x_msg_count => x_msg_count,
693 			x_msg_data  => x_msg_data,
694 			p_api_type  => g_api_type);
695 
696     when OKC_API.G_EXCEPTION_UNEXPECTED_ERROR then
697       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
698 			p_api_name  => l_api_name,
699 			p_pkg_name  => g_pkg_name,
700 			p_exc_name  => 'OKC_API.G_RET_STS_UNEXP_ERROR',
701 			x_msg_count => x_msg_count,
702 			x_msg_data  => x_msg_data,
703 			p_api_type  => g_api_type);
704 
705     when OTHERS then
706       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
707 			p_api_name  => l_api_name,
708 			p_pkg_name  => g_pkg_name,
709 			p_exc_name  => 'OTHERS',
710 			x_msg_count => x_msg_count,
711 			x_msg_data  => x_msg_data,
712 			p_api_type  => g_api_type);
713   END delete_contract_line;
714 
715 
716 PROCEDURE delete_contract_top_line(
717     p_api_version                  IN NUMBER,
718     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
719     x_return_status                OUT NOCOPY VARCHAR2,
720     x_msg_count                    OUT NOCOPY NUMBER,
721     x_msg_data                     OUT NOCOPY VARCHAR2,
722     p_clev_rec                     IN  clev_rec_type,
723     p_klev_rec                     IN  klev_rec_type,
724     p_cimv_rec                     IN  cimv_rec_type,
725     p_cplv_rec                     IN  cplv_rec_type) IS
726 
727     l_clev_rec clev_rec_type := p_clev_rec;
728     l_klev_rec klev_rec_type := p_klev_rec;
729     l_cimv_rec cimv_rec_type := p_cimv_rec;
730     l_cplv_rec cplv_rec_type := p_cplv_rec;
731 
732     l_api_name		CONSTANT VARCHAR2(30)     := 'DELETE_contract_top_line';
733     l_api_version	CONSTANT NUMBER	  	  := 1.0;
734     l_return_status	VARCHAR2(1)		  := OKC_API.G_RET_STS_SUCCESS;
735   BEGIN
736 
737     -- call START_ACTIVITY to create savepoint, check compatibility
738     -- and initialize message list
739     l_return_status := OKC_API.START_ACTIVITY(
740 			p_api_name      => l_api_name,
741 			p_pkg_name      => g_pkg_name,
742 			p_init_msg_list => p_init_msg_list,
743 			l_api_version   => l_api_version,
744 			p_api_version   => p_api_version,
745 			p_api_type      => g_api_type,
746 			x_return_status => x_return_status);
747 
748     -- check if activity started successfully
749     If (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) then
750        raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
751     Elsif (l_return_status = OKC_API.G_RET_STS_ERROR) then
752        raise OKC_API.G_EXCEPTION_ERROR;
753     End If;
754 
755 
756     OKL_CONTRACT_TOP_LINE_pvt.delete_contract_top_line(
757       				p_api_version   => p_api_version,
758       				p_init_msg_list => p_init_msg_list,
759       				x_return_status => x_return_status,
760       				x_msg_count     => x_msg_count,
761       				x_msg_data      => x_msg_data,
762       				p_clev_rec      => l_clev_rec,
763       				p_klev_rec      => l_klev_rec,
764       				p_cimv_rec      => l_cimv_rec,
765       				p_cplv_rec      => l_cplv_rec
766       				);
767 
768      IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
769        raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
770      ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
771        raise OKC_API.G_EXCEPTION_ERROR;
772      END IF;
773 
774 
775     OKC_API.END_ACTIVITY(x_msg_count	=> x_msg_count,
776 			x_msg_data	=> x_msg_data);
777   EXCEPTION
778     when OKC_API.G_EXCEPTION_ERROR then
779       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
780 			p_api_name  => l_api_name,
781 			p_pkg_name  => g_pkg_name,
782 			p_exc_name  => 'OKC_API.G_RET_STS_ERROR',
783 			x_msg_count => x_msg_count,
784 			x_msg_data  => x_msg_data,
785 			p_api_type  => g_api_type);
786 
787     when OKC_API.G_EXCEPTION_UNEXPECTED_ERROR then
788       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
789 			p_api_name  => l_api_name,
790 			p_pkg_name  => g_pkg_name,
791 			p_exc_name  => 'OKC_API.G_RET_STS_UNEXP_ERROR',
792 			x_msg_count => x_msg_count,
793 			x_msg_data  => x_msg_data,
794 			p_api_type  => g_api_type);
795 
796     when OTHERS then
797       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
798 			p_api_name  => l_api_name,
799 			p_pkg_name  => g_pkg_name,
800 			p_exc_name  => 'OTHERS',
801 			x_msg_count => x_msg_count,
802 			x_msg_data  => x_msg_data,
803 			p_api_type  => g_api_type);
804   END delete_contract_top_line;
805 
806   -- Start of comments
807   --
808   -- Procedure Name  : delete_contract_top_line
809   -- Description     : deletes contract line for shadowed contract
810   -- Business Rules  : line can be deleted only if there is no sublines attached
811   -- Parameters      :
812   -- Version         : 1.0
813   -- End of comments
814     PROCEDURE delete_contract_top_line(
815       p_api_version                  IN NUMBER,
816       p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
817       x_return_status                OUT NOCOPY VARCHAR2,
818       x_msg_count                    OUT NOCOPY NUMBER,
819       x_msg_data                     OUT NOCOPY VARCHAR2,
820       p_clev_tbl                     IN  clev_tbl_type,
821       p_klev_tbl                     IN  klev_tbl_type,
822       p_cimv_tbl                     IN  cimv_tbl_type,
823       p_cplv_tbl                     IN  cplv_tbl_type
824       ) IS
825 
826       l_api_name		CONSTANT VARCHAR2(30) := 'DELETE_contract_top_line';
827       l_api_version		CONSTANT NUMBER	:= 1.0;
828       l_return_status		VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
829       l_overall_status 		VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
830       i				NUMBER;
831       l_klev_tbl   		klev_tbl_type := p_klev_tbl;
832       l_cimv_tbl   		cimv_tbl_type := p_cimv_tbl;
833       l_cplv_tbl   		cplv_tbl_type := p_cplv_tbl;
834     BEGIN
835   /*
836       -- call START_ACTIVITY to create savepoint, check compatibility
837       -- and initialize message list
838       l_return_status := OKC_API.START_ACTIVITY(
839   			p_api_name      => l_api_name,
840   			p_pkg_name      => g_pkg_name,
841   			p_init_msg_list => p_init_msg_list,
842   			l_api_version   => l_api_version,
843   			p_api_version   => p_api_version,
844   			p_api_type      => g_api_type,
845   			x_return_status => x_return_status);
846 
847       -- check if activity started successfully
848       If (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) then
849          raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
850       Elsif (l_return_status = OKC_API.G_RET_STS_ERROR) then
851          raise OKC_API.G_EXCEPTION_ERROR;
852       End If;
853   */
854       If (p_clev_tbl.COUNT > 0) Then
855   	   i := p_clev_tbl.FIRST;
856   	   LOOP
857   		-- call procedure in complex API for a record
858   		delete_contract_top_line(
859   			p_api_version		=> p_api_version,
860   			p_init_msg_list		=> p_init_msg_list,
861   			x_return_status 	=> x_return_status,
862   			x_msg_count     	=> x_msg_count,
863   			x_msg_data      	=> x_msg_data,
864   			p_clev_rec		=> p_clev_tbl(i),
865         		p_klev_rec		=> l_klev_tbl(i),
866         		p_cimv_rec		=> l_cimv_tbl(i),
867         		p_cplv_rec		=> l_cplv_tbl(i));
868 
869       If x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR Then
870   	  raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
871       Elsif x_return_status = OKC_API.G_RET_STS_ERROR Then
872   	  raise OKC_API.G_EXCEPTION_ERROR;
873       End If;
874 
875           EXIT WHEN (i = p_clev_tbl.LAST);
876   		i := p_clev_tbl.NEXT(i);
877   	   END LOOP;
878 
879       End If;
880 
881       If x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR Then
882   	  raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
883       Elsif x_return_status = OKC_API.G_RET_STS_ERROR Then
884   	  raise OKC_API.G_EXCEPTION_ERROR;
885       End If;
886   /*
887       OKC_API.END_ACTIVITY(	x_msg_count	=> x_msg_count,
888   				x_msg_data	=> x_msg_data);
889   */
890     EXCEPTION
891       when OKC_API.G_EXCEPTION_ERROR then
892         x_return_status := OKC_API.HANDLE_EXCEPTIONS(
893   			p_api_name  => l_api_name,
894   			p_pkg_name  => g_pkg_name,
895   			p_exc_name  => 'OKC_API.G_RET_STS_ERROR',
896   			x_msg_count => x_msg_count,
897   			x_msg_data  => x_msg_data,
898   			p_api_type  => g_api_type);
899 
900       when OKC_API.G_EXCEPTION_UNEXPECTED_ERROR then
901         x_return_status := OKC_API.HANDLE_EXCEPTIONS(
902   			p_api_name  => l_api_name,
903   			p_pkg_name  => g_pkg_name,
904   			p_exc_name  => 'OKC_API.G_RET_STS_UNEXP_ERROR',
905   			x_msg_count => x_msg_count,
906   			x_msg_data  => x_msg_data,
907   			p_api_type  => g_api_type);
908 
909       when OTHERS then
910         x_return_status := OKC_API.HANDLE_EXCEPTIONS(
911   			p_api_name  => l_api_name,
912   			p_pkg_name  => g_pkg_name,
913   			p_exc_name  => 'OTHERS',
914   			x_msg_count => x_msg_count,
915   			x_msg_data  => x_msg_data,
916   			p_api_type  => g_api_type);
917 
918     END delete_contract_top_line;
919 
920   PROCEDURE validate_fee_expense_rule(
921                                      p_api_version         IN  NUMBER,
922                                      p_init_msg_list       IN  VARCHAR2 DEFAULT OKL_API.G_FALSE,
923                                      x_return_status       OUT NOCOPY VARCHAR2,
924                                      x_msg_count           OUT NOCOPY NUMBER,
925                                      x_msg_data            OUT NOCOPY VARCHAR2,
926                                      p_chr_id              IN  OKC_K_HEADERS_V.ID%TYPE,
927                                      p_line_id             IN  OKC_K_LINES_V.ID%TYPE,
928                                      p_no_of_period        IN  NUMBER,
929                                      p_frequency           IN  VARCHAR2,
930                                      p_amount_per_period   IN  NUMBER
931                                     ) IS
932 
933   l_api_name		 CONSTANT VARCHAR2(30)     := 'VALIDATE_FEE_EXPENSE_RULE';
934   l_api_version	CONSTANT NUMBER	  	           := 1.0;
935   l_return_status        VARCHAR2(1)               := OKL_API.G_RET_STS_SUCCESS;
936   BEGIN
937 
938     -- call START_ACTIVITY to create savepoint, check compatibility
939     -- and initialize message list
940     l_return_status := OKC_API.START_ACTIVITY(
941 			p_api_name      => l_api_name,
942 			p_pkg_name      => g_pkg_name,
943 			p_init_msg_list => p_init_msg_list,
944 			l_api_version   => l_api_version,
945 			p_api_version   => p_api_version,
946 			p_api_type      => g_api_type,
947 			x_return_status => x_return_status);
948 
949     -- check if activity started successfully
950     If (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) then
951        raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
952     Elsif (l_return_status = OKC_API.G_RET_STS_ERROR) then
953        raise OKC_API.G_EXCEPTION_ERROR;
954     End If;
955 
956     OKL_CONTRACT_TOP_LINE_pvt.validate_fee_expense_rule(
957                                      p_api_version         => p_api_version,
958                                      p_init_msg_list       => p_init_msg_list,
959                                      x_return_status       => x_return_status,
960                                      x_msg_count           => x_msg_count,
961                                      x_msg_data            => x_msg_data,
962                                      p_chr_id              => p_chr_id,
963                                      p_line_id             => p_line_id,
964                                      p_no_of_period        => p_no_of_period,
965                                      p_frequency           => p_frequency,
966                                      p_amount_per_period   => p_amount_per_period
967                                     );
968 
969     If (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) then
970        raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
971     Elsif (l_return_status = OKC_API.G_RET_STS_ERROR) then
972        raise OKC_API.G_EXCEPTION_ERROR;
973     End If;
974 
975     OKC_API.END_ACTIVITY(x_msg_count	=> x_msg_count,
976 			x_msg_data	=> x_msg_data);
977   EXCEPTION
978     when OKC_API.G_EXCEPTION_ERROR then
979       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
980 			p_api_name  => l_api_name,
981 			p_pkg_name  => g_pkg_name,
982 			p_exc_name  => 'OKC_API.G_RET_STS_ERROR',
983 			x_msg_count => x_msg_count,
984 			x_msg_data  => x_msg_data,
985 			p_api_type  => g_api_type);
986 
987     when OKC_API.G_EXCEPTION_UNEXPECTED_ERROR then
988       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
989 			p_api_name  => l_api_name,
990 			p_pkg_name  => g_pkg_name,
991 			p_exc_name  => 'OKC_API.G_RET_STS_UNEXP_ERROR',
992 			x_msg_count => x_msg_count,
993 			x_msg_data  => x_msg_data,
994 			p_api_type  => g_api_type);
995 
996     when OTHERS then
997       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
998 			p_api_name  => l_api_name,
999 			p_pkg_name  => g_pkg_name,
1000 			p_exc_name  => 'OTHERS',
1001 			x_msg_count => x_msg_count,
1002 			x_msg_data  => x_msg_data,
1003 			p_api_type  => g_api_type);
1004 
1005   END validate_fee_expense_rule;
1006 
1007   PROCEDURE validate_passthru_rule(
1008                                    p_api_version         IN  NUMBER,
1009                                    p_init_msg_list       IN  VARCHAR2 DEFAULT OKL_API.G_FALSE,
1010                                    x_return_status       OUT NOCOPY VARCHAR2,
1011                                    x_msg_count           OUT NOCOPY NUMBER,
1012                                    x_msg_data            OUT NOCOPY VARCHAR2,
1013                                    p_line_id             IN  OKC_K_LINES_V.ID%TYPE,
1014                                    p_vendor_id           IN  NUMBER,
1015                                    p_payment_term        IN  VARCHAR2,
1016                                    p_payment_term_id     IN  NUMBER,
1017                                    p_pay_to_site         IN  VARCHAR2,
1018                                    p_pay_to_site_id      IN  NUMBER,
1019                                    p_payment_method_code IN  VARCHAR2,
1020                                    x_payment_term_id1    OUT NOCOPY VARCHAR2,
1021                                    x_pay_site_id1        OUT NOCOPY VARCHAR2,
1022                                    x_payment_method_id1  OUT NOCOPY VARCHAR2
1023                                   ) IS
1024 
1025   l_api_name		 CONSTANT VARCHAR2(30)     := 'VALIDATE_passthru_rule';
1026   l_api_version	CONSTANT NUMBER	  	           := 1.0;
1027   l_return_status        VARCHAR2(1)               := OKL_API.G_RET_STS_SUCCESS;
1028   BEGIN
1029 
1030     -- call START_ACTIVITY to create savepoint, check compatibility
1031     -- and initialize message list
1032     l_return_status := OKC_API.START_ACTIVITY(
1033 			p_api_name      => l_api_name,
1034 			p_pkg_name      => g_pkg_name,
1035 			p_init_msg_list => p_init_msg_list,
1036 			l_api_version   => l_api_version,
1037 			p_api_version   => p_api_version,
1038 			p_api_type      => g_api_type,
1039 			x_return_status => x_return_status);
1040 
1041     -- check if activity started successfully
1042     If (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) then
1043        raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1044     Elsif (l_return_status = OKC_API.G_RET_STS_ERROR) then
1045        raise OKC_API.G_EXCEPTION_ERROR;
1046     End If;
1047 
1048     OKL_CONTRACT_TOP_LINE_pvt.validate_passthru_rule(
1049                                                      p_api_version         => p_api_version,
1050                                                      p_init_msg_list       => p_init_msg_list,
1051                                                      x_return_status       => x_return_status,
1052                                                      x_msg_count           => x_msg_count,
1053                                                      x_msg_data            => x_msg_data,
1054                                                      p_line_id             => p_line_id,
1055                                                      p_vendor_id           => p_vendor_id,
1056                                                      p_payment_term        => p_payment_term,
1057                                                      p_payment_term_id     => p_payment_term_id,
1058                                                      p_pay_to_site         => p_pay_to_site,
1059                                                      p_pay_to_site_id      => p_pay_to_site_id,
1060                                                      p_payment_method_code => p_payment_method_code,
1061                                                      x_payment_term_id1    => x_payment_term_id1,
1062                                                      x_pay_site_id1        => x_pay_site_id1,
1063                                                      x_payment_method_id1  => x_payment_method_id1
1064                                                     );
1065 
1066     If (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) then
1067        raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1068     Elsif (l_return_status = OKC_API.G_RET_STS_ERROR) then
1069        raise OKC_API.G_EXCEPTION_ERROR;
1070     End If;
1071 
1072     OKC_API.END_ACTIVITY(x_msg_count	=> x_msg_count,
1073 			x_msg_data	=> x_msg_data);
1074   EXCEPTION
1075     when OKC_API.G_EXCEPTION_ERROR then
1076       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
1077 			p_api_name  => l_api_name,
1078 			p_pkg_name  => g_pkg_name,
1079 			p_exc_name  => 'OKC_API.G_RET_STS_ERROR',
1080 			x_msg_count => x_msg_count,
1081 			x_msg_data  => x_msg_data,
1082 			p_api_type  => g_api_type);
1083 
1084     when OKC_API.G_EXCEPTION_UNEXPECTED_ERROR then
1085       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
1086 			p_api_name  => l_api_name,
1087 			p_pkg_name  => g_pkg_name,
1088 			p_exc_name  => 'OKC_API.G_RET_STS_UNEXP_ERROR',
1089 			x_msg_count => x_msg_count,
1090 			x_msg_data  => x_msg_data,
1091 			p_api_type  => g_api_type);
1092 
1093     when OTHERS then
1094       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
1095 			p_api_name  => l_api_name,
1096 			p_pkg_name  => g_pkg_name,
1097 			p_exc_name  => 'OTHERS',
1098 			x_msg_count => x_msg_count,
1099 			x_msg_data  => x_msg_data,
1100 			p_api_type  => g_api_type);
1101 
1102   END validate_passthru_rule;
1103 END OKL_CONTRACT_TOP_LINE_PUB;