DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKL_K_PARTY_ROLES_PVT

Source


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