DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKC_DELETE_CONTRACT_PVT

Source


1 package body OKC_DELETE_CONTRACT_PVT as
2 /* $Header: OKCRDELB.pls 120.2 2006/06/06 20:56:49 dneetha noship $ */
3 
4 	l_debug VARCHAR2(1) := NVL(FND_PROFILE.VALUE('AFLOG_ENABLED'),'N');
5 
6      l_api_version		NUMBER := 1;
7      l_init_msg_list     VARCHAR2(1) := 'T';
8      l_msg_count         NUMBER;
9      l_msg_data		VARCHAR2(2000);
10 	l_return_status	VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
11 
12 -- Start of comments
13 -- BUG#4122038 HKAMDAR 10-FEB-2005 Part 1
14 -- Procedure Name  : is_rule_allowed
15 -- Description     : Checks if rules are allowed for contracts class,
16 -- Business Rules  :
17 -- Version         : 1.0
18 -- End of comments
19 
20 Procedure is_rule_allowed(p_id number,
21                           x_return       out NOCOPY varchar2) IS
22 
23 CURSOR  cur_k_appl_id is
24 SELECT  application_id
25 FROM    okc_k_headers_b
26 WHERE   id = p_id;
27 
28 k_appl_id number;
29 
30 BEGIN
31 
32 	OPEN cur_k_appl_id;
33 	FETCH cur_k_appl_id INTO k_appl_id;
34 	CLOSE cur_k_appl_id;
35 
36  --For OKS no rule/rule group allowed
37      If k_appl_id =515 Then
38         x_return :='N';
39      Else
40         x_return := 'Y';
41      End If;
42 
43 END Is_rule_allowed;
44 -- BUG#4122038 End Part 1
45 
46 --Function DELETE_ARTICLE_TRANS
47 
48 --FUNCTION DELETE_ARTICLE_TRANS( p_chr_id number) Return varchar2 IS
49 --
50 --  l_atnv_tbl_in	okc_k_article_pub.atnv_tbl_type;
51 --
52 --  CURSOR l_atn_csr (p_id  IN NUMBER) IS
53 --    SELECT ID
54 --     FROM OKC_ARTICLE_TRANS_V
55 --     WHERE dnz_chr_id = p_id;
56 --Begin
57 --   l_return_status := OKC_API.G_RET_STS_SUCCESS;
58 --
59 --   FOR rec IN l_atn_csr(p_chr_id)
60 --   LOOP
61 --	  l_atnv_tbl_in(1).ID := rec.id;
62 --	  okc_k_article_pub.delete_article_translation(
63 --			p_api_version     => l_api_version,
64 --			p_init_msg_list   => l_init_msg_list,
65 --			x_return_status   => l_return_status,
66 --			x_msg_count       => l_msg_count,
67 --			x_msg_data        => l_msg_data,
68 --			p_atnv_tbl        => l_atnv_tbl_in);
69 --
70 --	     If (l_return_status <> 'S') Then
71 --             OKC_API.SET_MESSAGE(p_app_name     => G_APP_NAME,
72 --                                 p_msg_name     => G_CANNOT_DELETE,
73 --                                 p_token1       => G_TABLE_NAME_TOKEN,
74 --                                 p_token1_value => 'Article Translations',
75 --                                 p_token2       => G_SQLCODE_TOKEN,
76 --                                 p_token2_value => sqlcode,
77 --                                 p_token3       => G_SQLERRM_TOKEN,
78 --                                 p_token3_value => sqlerrm);
79 --	   Exit;
80 --	End If;
81 --   END LOOP;
82 --   return l_return_status;
83 --  EXCEPTION
84 --       -- other appropriate handlers
85 --       When others then
86 --       -- store SQL error message on message stack
87 --             OKC_API.SET_MESSAGE(p_app_name     => G_APP_NAME,
88 --                                 p_msg_name     => G_UNEXPECTED_ERROR,
89 --                                 p_token1       => G_SQLCODE_TOKEN,
90 --                                 p_token1_value => sqlcode,
91 --                                 p_token2       => G_SQLERRM_TOKEN,
92 --                                 p_token2_value => sqlerrm);
93 --
94 --       -- notify  UNEXPECTED error
95 --             l_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
96 --             return l_return_status;
97 --END DELETE_ARTICLE_TRANS;
98 
99 --Function DELETE_CONDITION_HEADERS
100 
101 FUNCTION DELETE_CONDITION_HEADERS( p_chr_id number) Return varchar2 IS
102 
103   l_cnhv_tbl_in	OKC_CONDITIONS_PUB.cnhv_tbl_type;
104 
105   CURSOR l_cnhv_csr (p_id  IN NUMBER) IS
106     SELECT ID
107      FROM OKC_CONDITION_HEADERS_V
108      WHERE dnz_chr_id = p_id;
109 
110 Begin
111    l_return_status := OKC_API.G_RET_STS_SUCCESS;
112 
113    FOR rec IN l_cnhv_csr(p_chr_id)
114    LOOP
115 		l_cnhv_tbl_in(1).ID := rec.id;
116 
117 		OKC_CONDITIONS_PUB.DELETE_COND_HDRS(
118 			p_api_version     => l_api_version,
119 			p_init_msg_list   => l_init_msg_list,
120 			x_return_status   => l_return_status,
121 			x_msg_count       => l_msg_count,
122 			x_msg_data        => l_msg_data,
123 			p_cnhv_tbl        => l_cnhv_tbl_in);
124 
125 	     If (l_return_status <> 'S') Then
126              OKC_API.SET_MESSAGE(p_app_name     => G_APP_NAME,
127                                  p_msg_name     => G_CANNOT_DELETE,
128                                  p_token1       => G_TABLE_NAME_TOKEN,
129                                  p_token1_value => 'Condition Headers',
130                                  p_token2       => G_SQLCODE_TOKEN,
131                                  p_token2_value => sqlcode,
132                                  p_token3       => G_SQLERRM_TOKEN,
133                                  p_token3_value => sqlerrm);
134 		   Exit;
135 		End If;
136    END LOOP;
137    return l_return_status;
138   EXCEPTION
139        -- other appropriate handlers
140        When others then
141        -- store SQL error message on message stack
142              OKC_API.SET_MESSAGE(p_app_name     => G_APP_NAME,
143                                  p_msg_name     => G_UNEXPECTED_ERROR,
144                                  p_token1       => G_SQLCODE_TOKEN,
145                                  p_token1_value => sqlcode,
146                                  p_token2       => G_SQLERRM_TOKEN,
147                                  p_token2_value => sqlerrm);
148 
149        -- notify  UNEXPECTED error
150              l_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
151              return l_return_status;
152 END DELETE_CONDITION_HEADERS;
153 
154 --Function DELETE_CONDITION_LINES
155 
156 FUNCTION DELETE_CONDITION_LINES( p_chr_id number) Return varchar2 IS
157 
158   l_cnlv_tbl_in	OKC_CONDITIONS_PUB.cnlv_tbl_type;
159 
160   CURSOR l_cnlb_csr (p_id  IN NUMBER) IS
161     SELECT ID
162      FROM OKC_CONDITION_LINES_V
163      WHERE dnz_chr_id= p_id;
164 
165 Begin
166    l_return_status := OKC_API.G_RET_STS_SUCCESS;
167 
168    FOR rec IN l_cnlb_csr(p_chr_id)
169    LOOP
170 		l_cnlv_tbl_in(1).ID := rec.id;
171 
172 		OKC_CONDITIONS_PUB.DELETE_COND_LINES(
173 			p_api_version     => l_api_version,
174 			p_init_msg_list   => l_init_msg_list,
175 			x_return_status   => l_return_status,
176 			x_msg_count       => l_msg_count,
177 			x_msg_data        => l_msg_data,
178 			p_cnlv_tbl        => l_cnlv_tbl_in);
179 
180 	     If (l_return_status <> 'S') Then
181              OKC_API.SET_MESSAGE(p_app_name     => G_APP_NAME,
182                                  p_msg_name     => G_CANNOT_DELETE,
183                                  p_token1       => G_TABLE_NAME_TOKEN,
184                                  p_token1_value => 'Condition Lines',
185                                  p_token2       => G_SQLCODE_TOKEN,
186                                  p_token2_value => sqlcode,
187                                  p_token3       => G_SQLERRM_TOKEN,
188                                  p_token3_value => sqlerrm);
189 		   Exit;
190 		End If;
191    END LOOP;
192    return l_return_status;
193   EXCEPTION
194        -- other appropriate handlers
195        When others then
196        -- store SQL error message on message stack
197              OKC_API.SET_MESSAGE(p_app_name     => G_APP_NAME,
198                                  p_msg_name     => G_UNEXPECTED_ERROR,
199                                  p_token1       => G_SQLCODE_TOKEN,
200                                  p_token1_value => sqlcode,
201                                  p_token2       => G_SQLERRM_TOKEN,
202                                  p_token2_value => sqlerrm);
203 
204        -- notify  UNEXPECTED error
205              l_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
206              return l_return_status;
207 END DELETE_CONDITION_LINES;
208 
209 ----
210 
211 FUNCTION DELETE_PRICE_ADJUSTMENTS( p_chr_id number) Return varchar2 IS
212 
213   l_patv_tbl_in OKC_PRICE_ADJUSTMENT_PVT.patv_tbl_type;
214 
215   CURSOR l_patb_csr (p_id  IN NUMBER) IS
216     SELECT ID,cle_id
217      FROM OKC_PRICE_ADJUSTMENTS_V
218      WHERE chr_id= p_id;
219 
220 Begin
221    l_return_status := OKC_API.G_RET_STS_SUCCESS;
222 
223    FOR rec IN l_patb_csr(p_chr_id)
224    LOOP
225                 l_patv_tbl_in(1).ID := rec.id;
226 			 l_patv_tbl_in(1).chr_id := p_chr_id;
227 			 If rec.cle_id is not null then
228 			   l_patv_tbl_in(1).cle_id := rec.cle_id;
229 			 End If;
230 
231                 OKC_PRICE_ADJUSTMENT_PUB.delete_price_adjustment(
232                         p_api_version     => l_api_version,
233                         p_init_msg_list   => l_init_msg_list,
234                         x_return_status   => l_return_status,
235                         x_msg_count       => l_msg_count,
236                         x_msg_data        => l_msg_data,
237                         p_patv_tbl        => l_patv_tbl_in);
238 
239              If (l_return_status <> 'S') Then
240              OKC_API.SET_MESSAGE(p_app_name     => G_APP_NAME,
241                                  p_msg_name     => G_CANNOT_DELETE,
242                                  p_token1       => G_TABLE_NAME_TOKEN,
243                                  p_token1_value => 'Condition Lines',
244                                  p_token2       => G_SQLCODE_TOKEN,
245                                  p_token2_value => sqlcode,
246                                  p_token3       => G_SQLERRM_TOKEN,
247                                  p_token3_value => sqlerrm);
248                    Exit;
249                 End If;
250    END LOOP;
251    return l_return_status;
252    EXCEPTION
253        -- other appropriate handlers
254        When others then
255        -- store SQL error message on message stack
256              OKC_API.SET_MESSAGE(p_app_name     => G_APP_NAME,
257                                  p_msg_name     => G_UNEXPECTED_ERROR,
258                                  p_token1       => G_SQLCODE_TOKEN,
259                                  p_token1_value => sqlcode,
260                                  p_token2       => G_SQLERRM_TOKEN,
261                                  p_token2_value => sqlerrm);
262 
263        -- notify  UNEXPECTED error
264              l_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
265              return l_return_status;
266 END DELETE_PRICE_ADJUSTMENTS;
267 
268 ----
269 /*******
270 ---Following code is commented out for Bug.1850500
271 ---Alternate code is added in OKCCPATB.pls .
272 
273     FUNCTION DELETE_PRICE_ADJ_ASSOCS( p_chr_id number) Return varchar2 IS
274 
275   l_pacv_tbl_in OKC_PRICE_ADJUSTMENT_PVT.pacv_tbl_type;
276 
277   CURSOR l_pacb_csr (p_id  IN NUMBER) IS
278     SELECT ID
279      FROM OKC_PRICE_ADJ_ASSOCS_V
280      WHERE  pat_id_from IN
281         ( SELECT pat_id
282           FROM OKC_PRICE_ADJUSTMENTS
283           WHERE chr_id = p_id
284              );
285 
286 
287 Begin
288    l_return_status := OKC_API.G_RET_STS_SUCCESS;
289 
290    FOR rec IN l_pacb_csr(p_chr_id)
291    LOOP
292                 l_pacv_tbl_in(1).ID := rec.id;
293 
294                 OKC_PRICE_ADJUSTMENT_PUB.delete_price_adj_assoc(
295                         p_api_version     => l_api_version,
296                         p_init_msg_list   => l_init_msg_list,
297                         x_return_status   => l_return_status,
298                         x_msg_count       => l_msg_count,
299                         x_msg_data        => l_msg_data,
300                         p_pacv_tbl        => l_pacv_tbl_in);
301 
302              If (l_return_status <> 'S') Then
303              OKC_API.SET_MESSAGE(p_app_name     => G_APP_NAME,
304                                  p_msg_name     => G_CANNOT_DELETE,
305                                  p_token1       => G_TABLE_NAME_TOKEN,
306                                  p_token1_value => 'Condition Lines',
307                                  p_token2       => G_SQLCODE_TOKEN,
308                                  p_token2_value => sqlcode,
309                                  p_token3       => G_SQLERRM_TOKEN,
310                                  p_token3_value => sqlerrm);
311                    Exit;
312                 End If;
313    END LOOP;
314    return l_return_status;
315    EXCEPTION
316        -- other appropriate handlers
317     When others then
318        -- store SQL error message on message stack
319              OKC_API.SET_MESSAGE(p_app_name     => G_APP_NAME,
320                                  p_msg_name     => G_UNEXPECTED_ERROR,
321                                  p_token1       => G_SQLCODE_TOKEN,
322                                  p_token1_value => sqlcode,
323                                  p_token2       => G_SQLERRM_TOKEN,
324                                  p_token2_value => sqlerrm);
325 
326        -- notify  UNEXPECTED error
327              l_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
328              return l_return_status;
329 END DELETE_PRICE_ADJ_ASSOCS;
330 
331 ------
332  FUNCTION DELETE_PRICE_ADJ_ATTRIBS( p_chr_id number) Return varchar2 IS
333 
334   l_paav_tbl_in OKC_PRICE_ADJUSTMENT_PVT.paav_tbl_type;
335 
336   CURSOR l_paab_csr (p_id  IN NUMBER) IS
337     SELECT ID
338      FROM OKC_PRICE_ADJ_ATTRIBS_V
339      WHERE  pat_id IN
340         ( SELECT id
341           FROM OKC_PRICE_ADJUSTMENTS
342           WHERE chr_id = p_id
343              );
344 
345 Begin
346    l_return_status := OKC_API.G_RET_STS_SUCCESS;
347 
348    FOR rec IN l_paab_csr(p_chr_id)
349    LOOP
350                 l_paav_tbl_in(1).ID := rec.id;
351 
352                 OKC_PRICE_ADJUSTMENT_PUB.delete_price_adj_attrib(
353                         p_api_version     => l_api_version,
354                         p_init_msg_list   => l_init_msg_list,
355                         x_return_status   => l_return_status,
356                         x_msg_count       => l_msg_count,
357                         x_msg_data        => l_msg_data,
358                         p_paav_tbl        => l_paav_tbl_in);
359 
360              If (l_return_status <> 'S') Then
361              OKC_API.SET_MESSAGE(p_app_name     => G_APP_NAME,
362                                  p_msg_name     => G_CANNOT_DELETE,
363                                  p_token1       => G_TABLE_NAME_TOKEN,
364                                  p_token1_value => 'Condition Lines',
365                                  p_token2       => G_SQLCODE_TOKEN,
366                                  p_token2_value => sqlcode,
367                                  p_token3       => G_SQLERRM_TOKEN,
368                                  p_token3_value => sqlerrm);
369                    Exit;
370                 End If;
371    END LOOP;
372    return l_return_status;
373    EXCEPTION
374        -- other appropriate handlers
375       When others then
376        -- store SQL error message on message stack
377              OKC_API.SET_MESSAGE(p_app_name     => G_APP_NAME,
378                                  p_msg_name     => G_UNEXPECTED_ERROR,
379                                  p_token1       => G_SQLCODE_TOKEN,
380                                  p_token1_value => sqlcode,
381                                  p_token2       => G_SQLERRM_TOKEN,
382                                  p_token2_value => sqlerrm);
383 
384        -- notify  UNEXPECTED error
385              l_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
386              return l_return_status;
387 END DELETE_PRICE_ADJ_ATTRIBS;
388 
389 ---This code is commented out for Bug.1850500
390 ---Alternate code is added in OKCCPATB.pls.
391 */
392 ---------
393         FUNCTION DELETE_PRICE_ATT_VALUES( p_chr_id number) Return varchar2 IS
394 
395   l_pavv_tbl_in OKC_PRICE_ADJUSTMENT_PVT.pavv_tbl_type;
396 
397   CURSOR l_pavb_csr (p_id  IN NUMBER) IS
398     SELECT ID
399      FROM OKC_PRICE_ATT_VALUES_V
400      WHERE chr_id= p_id;
401 
402 Begin
403    l_return_status := OKC_API.G_RET_STS_SUCCESS;
404 
405    FOR rec IN l_pavb_csr(p_chr_id)
406    LOOP
407                 l_pavv_tbl_in(1).ID := rec.id;
408 
409                 OKC_PRICE_ADJUSTMENT_PUB.delete_price_att_value(
410                         p_api_version     => l_api_version,
411                         p_init_msg_list   => l_init_msg_list,
412                         x_return_status   => l_return_status,
413                         x_msg_count       => l_msg_count,
414                         x_msg_data        => l_msg_data,
415                         p_pavv_tbl        => l_pavv_tbl_in);
416 
417              If (l_return_status <> 'S') Then
418              OKC_API.SET_MESSAGE(p_app_name     => G_APP_NAME,
419                                  p_msg_name     => G_CANNOT_DELETE,
420                                  p_token1       => G_TABLE_NAME_TOKEN,
421                                  p_token1_value => 'Condition Lines',
422                                  p_token2       => G_SQLCODE_TOKEN,
423                                  p_token2_value => sqlcode,
424                                  p_token3       => G_SQLERRM_TOKEN,
425                                  p_token3_value => sqlerrm);
426                    Exit;
427                 End If;
428    END LOOP;
429    return l_return_status;
430    EXCEPTION
431        -- other appropriate handlers
432      When others then
433        -- store SQL error message on message stack
434              OKC_API.SET_MESSAGE(p_app_name     => G_APP_NAME,
435                                  p_msg_name     => G_UNEXPECTED_ERROR,
436                                  p_token1       => G_SQLCODE_TOKEN,
437                                  p_token1_value => sqlcode,
438                                  p_token2       => G_SQLERRM_TOKEN,
439                                  p_token2_value => sqlerrm);
440 
441        -- notify  UNEXPECTED error
442              l_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
443              return l_return_status;
444 END DELETE_PRICE_ATT_VALUES;
445 
446 
447 
448 -------------
449 ------------
450 -----------
451 ---------
452 
453 --Function DELETE_CONTACTS
454 
455 FUNCTION DELETE_CONTACTS( p_chr_id number) Return varchar2 IS
456 
457   l_ctcv_tbl_in	OKC_CONTRACT_PARTY_PUB.ctcv_tbl_type;
458 
459   CURSOR l_ctc_csr (p_id  IN NUMBER) IS
460     SELECT ID
461      FROM OKC_CONTACTS_V
462      WHERE dnz_chr_id = p_id;
463 
464 Begin
465    l_return_status := OKC_API.G_RET_STS_SUCCESS;
466 
467    FOR rec IN l_ctc_csr(p_chr_id)
468    LOOP
469 
470 	 l_ctcv_tbl_in(1).ID := rec.id;
471 
472 	 OKC_CONTRACT_PARTY_PUB.Delete_Contact(
473 			p_api_version     => l_api_version,
474 			p_init_msg_list   => l_init_msg_list,
475 			x_return_status   => l_return_status,
476 			x_msg_count       => l_msg_count,
477 			x_msg_data        => l_msg_data,
478 			p_ctcv_tbl        => l_ctcv_tbl_in);
479 
480 	     If (l_return_status <> 'S') Then
481              OKC_API.SET_MESSAGE(p_app_name     => G_APP_NAME,
482                                  p_msg_name     => G_CANNOT_DELETE,
483                                  p_token1       => G_TABLE_NAME_TOKEN,
484                                  p_token1_value => 'Contacts',
485                                  p_token2       => G_SQLCODE_TOKEN,
486                                  p_token2_value => sqlcode,
487                                  p_token3       => G_SQLERRM_TOKEN,
488                                  p_token3_value => sqlerrm);
489 		   Exit;
490 		End If;
491    END LOOP;
492    return l_return_status;
493   EXCEPTION
494        -- other appropriate handlers
495        When others then
496        -- store SQL error message on message stack
497              OKC_API.SET_MESSAGE(p_app_name     => G_APP_NAME,
498                                  p_msg_name     => G_UNEXPECTED_ERROR,
499                                  p_token1       => G_SQLCODE_TOKEN,
500                                  p_token1_value => sqlcode,
501                                  p_token2       => G_SQLERRM_TOKEN,
502                                  p_token2_value => sqlerrm);
503 
504        -- notify  UNEXPECTED error
505              l_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
506              return l_return_status;
507 END DELETE_CONTACTS;
508 
509 /*
510 --------------This has taken care from Delete_Rule API-----------------------
511 
512 --Function DELETE_COVER_TIMES
513 
514 FUNCTION DELETE_COVER_TIMES( p_chr_id number ) Return varchar2 IS
515 
516   l_ctiv_tbl_in	OKC_RULE_PUB.ctiv_tbl_type;
517 
518   CURSOR l_ctiv_csr (p_id  IN NUMBER) IS
519     SELECT RUL_ID, TVE_ID
520      FROM OKC_COVER_TIMES_V
521      WHERE dnz_chr_id = p_id;
522 
523 Begin
524 
525    l_return_status := OKC_API.G_RET_STS_SUCCESS;
526 
527    FOR rec IN l_ctiv_csr(p_chr_id)
528    LOOP
529 	 l_ctiv_tbl_in(1).RUL_ID := rec.rul_id;
530 	 l_ctiv_tbl_in(1).TVE_ID := rec.tve_id;
531 
532 	 OKC_RULE_PUB.delete_cover_time(
533 			p_api_version     => l_api_version,
534 			p_init_msg_list   => l_init_msg_list,
535 			x_return_status   => l_return_status,
536 			x_msg_count       => l_msg_count,
537 			x_msg_data        => l_msg_data,
538 			p_ctiv_tbl        => l_ctiv_tbl_in);
539 
540 	     If (l_return_status <> 'S') Then
541              OKC_API.SET_MESSAGE(p_app_name     => G_APP_NAME,
542                                  p_msg_name     => G_CANNOT_DELETE,
543                                  p_token1       => G_TABLE_NAME_TOKEN,
544                                  p_token1_value => 'Cover Times',
545                                  p_token2       => G_SQLCODE_TOKEN,
546                                  p_token2_value => sqlcode,
547                                  p_token3       => G_SQLERRM_TOKEN,
548                                  p_token3_value => sqlerrm);
549 		   Exit;
550 		End If;
551    END LOOP;
552    return l_return_status;
553   EXCEPTION
554        -- other appropriate handlers
555        When others then
556        -- store SQL error message on message stack
557              OKC_API.SET_MESSAGE(p_app_name     => G_APP_NAME,
558                                  p_msg_name     => G_UNEXPECTED_ERROR,
559                                  p_token1       => G_SQLCODE_TOKEN,
560                                  p_token1_value => sqlcode,
561                                  p_token2       => G_SQLERRM_TOKEN,
562                                  p_token2_value => sqlerrm);
563 
564        -- notify  UNEXPECTED error
565              l_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
566              return l_return_status;
567 END DELETE_COVER_TIMES;
568 */
569 
570 --Function DELETE_FUNCTION_EXPR_PARAMS
571 
572 FUNCTION DELETE_FUNCTION_EXPR_PARAMS( p_chr_id number) Return varchar2 IS
573 
574   l_fepv_tbl_in	OKC_CONDITIONS_PUB.fepv_tbl_type;
575 
576   CURSOR l_fepv_csr (p_id  IN NUMBER) IS
577     SELECT ID
578      FROM OKC_FUNCTION_EXPR_PARAMS_V
579      WHERE dnz_chr_id = p_id;
580 
581 Begin
582    l_return_status := OKC_API.G_RET_STS_SUCCESS;
583 
584    FOR rec IN l_fepv_csr(p_chr_id)
585    LOOP
586 
587 	 l_fepv_tbl_in(1).ID := rec.id;
588 
589 	 OKC_CONDITIONS_PUB.DELETE_FUNC_EXPRS(
590 			p_api_version     => l_api_version,
591 			p_init_msg_list   => l_init_msg_list,
592 			x_return_status   => l_return_status,
593 			x_msg_count       => l_msg_count,
594 			x_msg_data        => l_msg_data,
595 			p_fepv_tbl        => l_fepv_tbl_in);
596 
597 	     If (l_return_status <> 'S') Then
598              OKC_API.SET_MESSAGE(p_app_name     => G_APP_NAME,
599                                  p_msg_name     => G_CANNOT_DELETE,
600                                  p_token1       => G_TABLE_NAME_TOKEN,
601                                  p_token1_value => 'Function Exp. Parameters',
602                                  p_token2       => G_SQLCODE_TOKEN,
603                                  p_token2_value => sqlcode,
604                                  p_token3       => G_SQLERRM_TOKEN,
605                                  p_token3_value => sqlerrm);
606 		   Exit;
607 		End If;
608    END LOOP;
609    return l_return_status;
610   EXCEPTION
611        -- other appropriate handlers
612        When others then
613        -- store SQL error message on message stack
614              OKC_API.SET_MESSAGE(p_app_name     => G_APP_NAME,
615                                  p_msg_name     => G_UNEXPECTED_ERROR,
616                                  p_token1       => G_SQLCODE_TOKEN,
617                                  p_token1_value => sqlcode,
618                                  p_token2       => G_SQLERRM_TOKEN,
619                                  p_token2_value => sqlerrm);
620 
621        -- notify  UNEXPECTED error
622              l_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
623              return l_return_status;
624 END DELETE_FUNCTION_EXPR_PARAMS;
625 
626 
627 --Function DELETE_GOVERNANCES
628 
629 FUNCTION DELETE_GOVERNANCES( p_chr_id number) Return varchar2 IS
630 
631   l_gvev_tbl_in	okc_contract_pub.gvev_tbl_type;
632 
633   CURSOR l_gvev_csr (p_id  IN NUMBER) IS
634     SELECT ID
635      FROM OKC_GOVERNANCES_V
636      WHERE dnz_chr_id = p_id;
637 
638 Begin
639 
640    l_return_status := OKC_API.G_RET_STS_SUCCESS;
641 
642    FOR rec IN l_gvev_csr(p_chr_id)
643    LOOP
644 
645   	 l_gvev_tbl_in(1).ID := rec.id;
646 
647   	 okc_contract_pub.delete_governance (
648   		p_api_version		=> l_api_version,
649   		p_init_msg_list	=> l_init_msg_list,
650   		x_return_status	=> l_return_status,
651   		x_msg_count		=> l_msg_count,
652   		x_msg_data		=> l_msg_data,
653   		p_gvev_tbl		=> l_gvev_tbl_in
654   		);
655 
656 	     If (l_return_status <> 'S') Then
657              OKC_API.SET_MESSAGE(p_app_name     => G_APP_NAME,
658                                  p_msg_name     => G_CANNOT_DELETE,
659                                  p_token1       => G_TABLE_NAME_TOKEN,
660                                  p_token1_value => 'Governances',
661                                  p_token2       => G_SQLCODE_TOKEN,
662                                  p_token2_value => sqlcode,
663                                  p_token3       => G_SQLERRM_TOKEN,
664                                  p_token3_value => sqlerrm);
665 		   Exit;
666 		End If;
667    END LOOP;
668    return l_return_status;
669   EXCEPTION
670        -- other appropriate handlers
671        When others then
672        -- store SQL error message on message stack
673              OKC_API.SET_MESSAGE(p_app_name     => G_APP_NAME,
674                                  p_msg_name     => G_UNEXPECTED_ERROR,
675                                  p_token1       => G_SQLCODE_TOKEN,
676                                  p_token1_value => sqlcode,
677                                  p_token2       => G_SQLERRM_TOKEN,
678                                  p_token2_value => sqlerrm);
679 
680        -- notify  UNEXPECTED error
681              l_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
682              return l_return_status;
683 END DELETE_GOVERNANCES;
684 
685 --Function DELETE_K_ACCESSES
686 
687 FUNCTION DELETE_K_ACCESSES( p_chr_id number) Return varchar2 IS
688 
689   l_cacv_tbl_in	okc_contract_pub.cacv_tbl_type;
690 
691   CURSOR l_cacv_csr (p_id  IN NUMBER) IS
692     SELECT ID
693      FROM OKC_K_ACCESSES_V
694      WHERE chr_id = p_id;
695 
696 Begin
697 
698    l_return_status := OKC_API.G_RET_STS_SUCCESS;
699 
700    FOR rec IN l_cacv_csr(p_chr_id)
701    LOOP
702   	 l_cacv_tbl_in(1).ID := rec.id;
703 
704   	 OKC_CONTRACT_PUB.Delete_Contract_Access (
705   		p_api_version		=> l_api_version,
706   		p_init_msg_list	=> l_init_msg_list,
707   		x_return_status	=> l_return_status,
708   		x_msg_count		=> l_msg_count,
709   		x_msg_data		=> l_msg_data,
710   		p_cacv_tbl		=> l_cacv_tbl_in
711   		);
712 
713 	     If (l_return_status <> 'S') Then
714              OKC_API.SET_MESSAGE(p_app_name     => G_APP_NAME,
715                                  p_msg_name     => G_CANNOT_DELETE,
716                                  p_token1       => G_TABLE_NAME_TOKEN,
717                                  p_token1_value => 'Contract Accesses',
718                                  p_token2       => G_SQLCODE_TOKEN,
719                                  p_token2_value => sqlcode,
720                                  p_token3       => G_SQLERRM_TOKEN,
721                                  p_token3_value => sqlerrm);
722 		   Exit;
723 		End If;
724    END LOOP;
725    return l_return_status;
726   EXCEPTION
727        -- other appropriate handlers
728        When others then
729        -- store SQL error message on message stack
730              OKC_API.SET_MESSAGE(p_app_name     => G_APP_NAME,
731                                  p_msg_name     => G_UNEXPECTED_ERROR,
732                                  p_token1       => G_SQLCODE_TOKEN,
733                                  p_token1_value => sqlcode,
734                                  p_token2       => G_SQLERRM_TOKEN,
735                                  p_token2_value => sqlerrm);
736 
737        -- notify  UNEXPECTED error
738              l_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
739              return l_return_status;
740 END DELETE_K_ACCESSES;
741 
742 --Function DELETE_K_ARTICLES
743 
744 --FUNCTION DELETE_K_ARTICLES( p_chr_id number) Return varchar2 IS
745 --
746 --  l_catv_tbl_in	okc_k_article_pub.catv_tbl_type;
747 --  CURSOR l_catv_csr (p_id  IN NUMBER) IS
748 --    SELECT ID
749 --     FROM OKC_K_ARTICLES_V
750 --     WHERE dnz_chr_id = p_id;
751 --
752 --Begin
753 --
754 --   l_return_status := OKC_API.G_RET_STS_SUCCESS;
755 --
756 --   FOR rec IN l_catv_csr(p_chr_id)
757 --   LOOP
758 --  	 l_catv_tbl_in(1).ID := rec.id;
759 --
760 --  	 okc_k_article_pub.delete_k_article (
761 --  		p_api_version		=> l_api_version,
762 --  		p_init_msg_list	=> l_init_msg_list,
763 --  		x_return_status	=> l_return_status,
764 --  		x_msg_count		=> l_msg_count,
765 --  		x_msg_data		=> l_msg_data,
766 --  		p_catv_tbl		=> l_catv_tbl_in
767 --  		);
768 --
769 --	     If (l_return_status <> 'S') Then
770 --             OKC_API.SET_MESSAGE(p_app_name     => G_APP_NAME,
771 --                                 p_msg_name     => G_CANNOT_DELETE,
772 --                                 p_token1       => G_TABLE_NAME_TOKEN,
773 --                                 p_token1_value => 'Contract Articles',
774 --                                 p_token2       => G_SQLCODE_TOKEN,
775 --                                 p_token2_value => sqlcode,
776 --                                 p_token3       => G_SQLERRM_TOKEN,
777 --                                 p_token3_value => sqlerrm);
778 --		   Exit;
779 --		End If;
780 --   END LOOP;
781 --   return l_return_status;
782 --  EXCEPTION
783 --       -- other appropriate handlers
784 --       When others then
785 --       -- store SQL error message on message stack
786 --             OKC_API.SET_MESSAGE(p_app_name     => G_APP_NAME,
787 --                                 p_msg_name     => G_UNEXPECTED_ERROR,
788 --                                 p_token1       => G_SQLCODE_TOKEN,
789 --                                 p_token1_value => sqlcode,
790 --                                 p_token2       => G_SQLERRM_TOKEN,
791 --                                 p_token2_value => sqlerrm);
792 --
793 --       -- notify  UNEXPECTED error
794 --             l_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
795 --             return l_return_status;
796 --END DELETE_K_ARTICLES;
797 
798 --Function DELETE_K_GRPINGS
799 
800 FUNCTION DELETE_K_GRPINGS(p_chr_id number ) Return varchar2 IS
801 
802   l_cgcv_tbl_in	OKC_CONTRACT_GROUP_PUB.cgcv_tbl_type;
803 
804   CURSOR l_cgcv_csr (p_id  IN NUMBER) IS
805     SELECT ID
806      FROM OKC_K_GRPINGS_V
807      WHERE INCLUDED_CHR_ID = p_id;
808 Begin
809    l_return_status := OKC_API.G_RET_STS_SUCCESS;
810 
811    FOR rec IN l_cgcv_csr(p_chr_id)
812    LOOP
813   	 l_cgcv_tbl_in(1).ID := rec.id;
814 
815   	 OKC_CONTRACT_GROUP_PUB.Delete_Contract_Grpngs (
816   		p_api_version		=> l_api_version,
817   		p_init_msg_list	=> l_init_msg_list,
818   		x_return_status	=> l_return_status,
819   		x_msg_count		=> l_msg_count,
820   		x_msg_data		=> l_msg_data,
821   		p_cgcv_tbl		=> l_cgcv_tbl_in
822   		);
823 
824 	     If (l_return_status <> 'S') Then
825              OKC_API.SET_MESSAGE(p_app_name     => G_APP_NAME,
826                                  p_msg_name     => G_CANNOT_DELETE,
827                                  p_token1       => G_TABLE_NAME_TOKEN,
828                                  p_token1_value => 'Contract Grouping',
829                                  p_token2       => G_SQLCODE_TOKEN,
830                                  p_token2_value => sqlcode,
831                                  p_token3       => G_SQLERRM_TOKEN,
832                                  p_token3_value => sqlerrm);
833 		   Exit;
834 		End If;
835    END LOOP;
836    return l_return_status;
837   EXCEPTION
838        -- other appropriate handlers
839        When others then
840        -- store SQL error message on message stack
841              OKC_API.SET_MESSAGE(p_app_name     => G_APP_NAME,
842                                  p_msg_name     => G_UNEXPECTED_ERROR,
843                                  p_token1       => G_SQLCODE_TOKEN,
844                                  p_token1_value => sqlcode,
845                                  p_token2       => G_SQLERRM_TOKEN,
846                                  p_token2_value => sqlerrm);
847 
848        -- notify  UNEXPECTED error
849              l_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
850              return l_return_status;
851 END DELETE_K_GRPINGS;
852 
853 --Function DELETE_K_HEADERS
854 
855 FUNCTION DELETE_K_HEADERS( p_chr_id number ) Return varchar2 IS
856 
857   l_chrv_rec	OKC_CONTRACT_PUB.chrv_rec_type;
858   l_clean_relink_flag VARCHAR2(10) := 'CLEAN';
859 Begin
860 
861    l_return_status := OKC_API.G_RET_STS_SUCCESS;
862 
863   	 l_chrv_rec.ID := p_chr_id;
864 
865 	-- clean renewal links
866 	OKC_CONTRACT_PVT.CLEAN_REN_LINKS(
867 	    p_api_version        => l_api_version,
868 	    p_init_msg_list      => l_init_msg_list,
869 	    x_return_status      => l_return_status,
870 	    x_msg_count		=> l_msg_count,
871 	    x_msg_data	     	=> l_msg_data,
872 	    p_target_chr_id      => p_chr_id,
873 	    clean_relink_flag    => l_clean_relink_flag);
874 
875 	     If (l_return_status <> 'S') Then
876              OKC_API.SET_MESSAGE(p_app_name     => G_APP_NAME,
877                                  p_msg_name     => G_CANNOT_DELETE,
878                                  p_token1       => G_TABLE_NAME_TOKEN,
879                                  p_token1_value => 'Contract Header',
880                                  p_token2       => G_SQLCODE_TOKEN,
881                                  p_token2_value => sqlcode,
882                                  p_token3       => G_SQLERRM_TOKEN,
883                                  p_token3_value => sqlerrm);
884   	     End If;
885 
886          -- clean history table
887          OKC_K_HISTORY_PUB.DELETE_ALL_ROWS (
888   		p_api_version		=> l_api_version,
889   		p_init_msg_list		=> l_init_msg_list,
890   		x_return_status		=> l_return_status,
891   		x_msg_count		=> l_msg_count,
892   		x_msg_data		=> l_msg_data,
893   		p_chr_id		=> p_chr_id
894   		);
895 
896            If (l_return_status <> 'S') Then
897              OKC_API.SET_MESSAGE(p_app_name     => G_APP_NAME,
898                                  p_msg_name     => G_CANNOT_DELETE,
899                                  p_token1       => G_TABLE_NAME_TOKEN,
900                                  p_token1_value => 'Contract Header',
901                                  p_token2       => G_SQLCODE_TOKEN,
902                                  p_token2_value => sqlcode,
903                                  p_token3       => G_SQLERRM_TOKEN,
904                                  p_token3_value => sqlerrm);
905            End If;
906 
907   	 OKC_CONTRACT_PUB.Delete_Contract_Header (
908   		p_api_version		=> l_api_version,
909   		p_init_msg_list		=> l_init_msg_list,
910   		x_return_status		=> l_return_status,
911   		x_msg_count		=> l_msg_count,
912   		x_msg_data		=> l_msg_data,
913   		p_chrv_rec		=> l_chrv_rec
914   		);
915 
916 	     If (l_return_status <> 'S') Then
917              OKC_API.SET_MESSAGE(p_app_name     => G_APP_NAME,
918                                  p_msg_name     => G_CANNOT_DELETE,
919                                  p_token1       => G_TABLE_NAME_TOKEN,
920                                  p_token1_value => 'Contract Header',
921                                  p_token2       => G_SQLCODE_TOKEN,
922                                  p_token2_value => sqlcode,
923                                  p_token3       => G_SQLERRM_TOKEN,
924                                  p_token3_value => sqlerrm);
925 		End If;
926    return l_return_status;
927   EXCEPTION
928        -- other appropriate handlers
929        When others then
930        -- store SQL error message on message stack
931              OKC_API.SET_MESSAGE(p_app_name     => G_APP_NAME,
932                                  p_msg_name     => G_UNEXPECTED_ERROR,
933                                  p_token1       => G_SQLCODE_TOKEN,
934                                  p_token1_value => sqlcode,
935                                  p_token2       => G_SQLERRM_TOKEN,
936                                  p_token2_value => sqlerrm);
937 
938        -- notify  UNEXPECTED error
939              l_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
940              return l_return_status;
941 END DELETE_K_HEADERS;
942 
943 --Function DELETE_K_ITEMS
944 
945 FUNCTION DELETE_K_ITEMS( p_chr_id number) Return varchar2 IS
946 
947   l_cimv_tbl_in	OKC_CONTRACT_ITEM_PUB.cimv_tbl_type;
948 
949   CURSOR l_cimv_csr (p_id  IN NUMBER) IS
950     SELECT ID
951      FROM OKC_K_ITEMS_V
952      WHERE dnz_chr_id = p_id;
953 
954 Begin
955 
956    l_return_status := OKC_API.G_RET_STS_SUCCESS;
957 
958    FOR rec IN l_cimv_csr(p_chr_id)
959    LOOP
960   	 l_cimv_tbl_in(1).ID := rec.id;
961 
962   	 OKC_CONTRACT_ITEM_PUB.Delete_Contract_Item (
963   		p_api_version		=> l_api_version,
964   		p_init_msg_list	=> l_init_msg_list,
965   		x_return_status	=> l_return_status,
966   		x_msg_count		=> l_msg_count,
967   		x_msg_data		=> l_msg_data,
968   		p_cimv_tbl		=> l_cimv_tbl_in
969   		);
970 
971 	     If (l_return_status <> 'S') Then
972              OKC_API.SET_MESSAGE(p_app_name     => G_APP_NAME,
973                                  p_msg_name     => G_CANNOT_DELETE,
974                                  p_token1       => G_TABLE_NAME_TOKEN,
975                                  p_token1_value => 'Contract Items',
976                                  p_token2       => G_SQLCODE_TOKEN,
977                                  p_token2_value => sqlcode,
978                                  p_token3       => G_SQLERRM_TOKEN,
979                                  p_token3_value => sqlerrm);
980 		   Exit;
981 		End If;
982    END LOOP;
983    return l_return_status;
984   EXCEPTION
985        -- other appropriate handlers
986        When others then
987        -- store SQL error message on message stack
988              OKC_API.SET_MESSAGE(p_app_name     => G_APP_NAME,
989                                  p_msg_name     => G_UNEXPECTED_ERROR,
990                                  p_token1       => G_SQLCODE_TOKEN,
991                                  p_token1_value => sqlcode,
992                                  p_token2       => G_SQLERRM_TOKEN,
993                                  p_token2_value => sqlerrm);
994 
995        -- notify  UNEXPECTED error
996              l_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
997              return l_return_status;
998 END DELETE_K_ITEMS;
999 
1000 --Function DELETE_K_LINES
1001 
1002 FUNCTION DELETE_K_LINES( p_chr_id number) Return varchar2 IS
1003 
1004   l_clev_tbl_in	OKC_CONTRACT_PUB.clev_tbl_type;
1005   l_cle_id		NUMBER;
1006   l_not_found		BOOLEAN;
1007 
1008   CURSOR l_clev_csr (p_id  IN NUMBER) IS
1009     SELECT ID
1010      FROM OKC_K_LINES_V
1011      WHERE dnz_chr_id = p_id;
1012 
1013 
1014 begin
1015 
1016    l_return_status := OKC_API.G_RET_STS_SUCCESS;
1017    --Fix for Bug 5282502
1018 	delete from okc_ancestrys
1019       where cle_id in (
1020       select Ks.cle_id
1021       from okc_ancestrys KS, okc_k_lines_b Kl
1022       where kl.id = ks.cle_id
1023       And Kl.dnz_chr_id = p_chr_id);
1024 
1025 
1026 	For rec in l_clev_csr(p_chr_id)
1027 	Loop
1028 		l_clev_tbl_in(1).ID := rec.id;
1029 
1030             OKC_CONTRACT_PUB.Delete_Contract_Line(
1031 	       p_api_version		=> l_api_version,
1032 	       p_init_msg_list	=> l_init_msg_list,
1033              x_return_status 	=> l_return_status,
1034              x_msg_count     	=> l_msg_count,
1035              x_msg_data      	=> l_msg_data,
1036              p_clev_tbl		=> l_clev_tbl_in);
1037 
1038 	     If (l_return_status <> 'S') Then
1039              OKC_API.SET_MESSAGE(p_app_name     => G_APP_NAME,
1040                                  p_msg_name     => G_CANNOT_DELETE,
1041                                  p_token1       => G_TABLE_NAME_TOKEN,
1042                                  p_token1_value => 'Contract Lines',
1043                                  p_token2       => G_SQLCODE_TOKEN,
1044                                  p_token2_value => sqlcode,
1045                                  p_token3       => G_SQLERRM_TOKEN,
1046                                  p_token3_value => sqlerrm);
1047 		   Exit;
1048 		End If;
1049 	End Loop;
1050 
1051    return l_return_status;
1052   EXCEPTION
1053        -- other appropriate handlers
1054        When others then
1055        -- store SQL error message on message stack
1056              OKC_API.SET_MESSAGE(p_app_name     => G_APP_NAME,
1057                                  p_msg_name     => G_UNEXPECTED_ERROR,
1058                                  p_token1       => G_SQLCODE_TOKEN,
1059                                  p_token1_value => sqlcode,
1060                                  p_token2       => G_SQLERRM_TOKEN,
1061                                  p_token2_value => sqlerrm);
1062 
1063        -- notify  UNEXPECTED error
1064              l_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1065              return l_return_status;
1066 END DELETE_K_LINES;
1067 
1068 --Function DELETE_K_PARTY_ROLES
1069 
1070 FUNCTION DELETE_K_PARTY_ROLES( p_chr_id number) Return varchar2 IS
1071 
1072   l_cplv_tbl_in	OKC_CONTRACT_PARTY_PUB.cplv_tbl_type;
1073 
1074   CURSOR l_cplv_csr (p_id  IN NUMBER) IS
1075     SELECT ID
1076      FROM OKC_K_PARTY_ROLES_V
1077      WHERE dnz_chr_id = p_id;
1078 
1079 Begin
1080 
1081    l_return_status := OKC_API.G_RET_STS_SUCCESS;
1082 
1083    FOR rec IN l_cplv_csr(p_chr_id)
1084    LOOP
1085   	 l_cplv_tbl_in(1).ID := rec.id;
1086 
1087   	 OKC_CONTRACT_PARTY_PUB.DELETE_K_PARTY_ROLE (
1088   		p_api_version		=> l_api_version,
1089   		p_init_msg_list	=> l_init_msg_list,
1090   		x_return_status	=> l_return_status,
1091   		x_msg_count		=> l_msg_count,
1092   		x_msg_data		=> l_msg_data,
1093   		p_cplv_tbl		=> l_cplv_tbl_in
1094   		);
1095 
1096 	     If (l_return_status <> 'S') Then
1097              OKC_API.SET_MESSAGE(p_app_name     => G_APP_NAME,
1098                                  p_msg_name     => G_CANNOT_DELETE,
1099                                  p_token1       => G_TABLE_NAME_TOKEN,
1100                                  p_token1_value => 'Contract Party Roles',
1101                                  p_token2       => G_SQLCODE_TOKEN,
1102                                  p_token2_value => sqlcode,
1103                                  p_token3       => G_SQLERRM_TOKEN,
1104                                  p_token3_value => sqlerrm);
1105 		   Exit;
1106 		End If;
1107    END LOOP;
1108    return l_return_status;
1109   EXCEPTION
1110        -- other appropriate handlers
1111        When others then
1112        -- store SQL error message on message stack
1113              OKC_API.SET_MESSAGE(p_app_name     => G_APP_NAME,
1114                                  p_msg_name     => G_UNEXPECTED_ERROR,
1115                                  p_token1       => G_SQLCODE_TOKEN,
1116                                  p_token1_value => sqlcode,
1117                                  p_token2       => G_SQLERRM_TOKEN,
1118                                  p_token2_value => sqlerrm);
1119 
1120        -- notify  UNEXPECTED error
1121              l_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1122              return l_return_status;
1123 END DELETE_K_PARTY_ROLES;
1124 
1125 
1126 --Function DELETE_K_PROCESSES
1127 
1128 FUNCTION DELETE_K_PROCESSES( p_chr_id number) Return varchar2 IS
1129 
1130   l_cpsv_tbl_in	OKC_CONTRACT_PUB.cpsv_tbl_type;
1131 
1132   CURSOR l_cpsv_csr (p_id  IN NUMBER) IS
1133     SELECT ID
1134      FROM OKC_K_PROCESSES_V
1135      WHERE chr_id = p_id;
1136 
1137 Begin
1138 
1139    l_return_status := OKC_API.G_RET_STS_SUCCESS;
1140 
1141    FOR rec IN l_cpsv_csr(p_chr_id)
1142    LOOP
1143   	 l_cpsv_tbl_in(1).ID := rec.id;
1144 
1145   	 OKC_CONTRACT_PUB.Delete_Contract_Process (
1146   		p_api_version		=> l_api_version,
1147   		p_init_msg_list	=> l_init_msg_list,
1148   		x_return_status	=> l_return_status,
1149   		x_msg_count		=> l_msg_count,
1150   		x_msg_data		=> l_msg_data,
1151   		p_cpsv_tbl		=> l_cpsv_tbl_in
1152   		);
1153 
1154 	     If (l_return_status <> 'S') Then
1155              OKC_API.SET_MESSAGE(p_app_name     => G_APP_NAME,
1156                                  p_msg_name     => G_CANNOT_DELETE,
1157                                  p_token1       => G_TABLE_NAME_TOKEN,
1158                                  p_token1_value => 'Contract Processes',
1159                                  p_token2       => G_SQLCODE_TOKEN,
1160                                  p_token2_value => sqlcode,
1161                                  p_token3       => G_SQLERRM_TOKEN,
1162                                  p_token3_value => sqlerrm);
1163 		   Exit;
1164 		End If;
1165    END LOOP;
1166    return l_return_status;
1167   EXCEPTION
1168        -- other appropriate handlers
1169        When others then
1170        -- store SQL error message on message stack
1171              OKC_API.SET_MESSAGE(p_app_name     => G_APP_NAME,
1172                                  p_msg_name     => G_UNEXPECTED_ERROR,
1173                                  p_token1       => G_SQLCODE_TOKEN,
1174                                  p_token1_value => sqlcode,
1175                                  p_token2       => G_SQLERRM_TOKEN,
1176                                  p_token2_value => sqlerrm);
1177 
1178        -- notify  UNEXPECTED error
1179              l_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1180              return l_return_status;
1181 END DELETE_K_PROCESSES;
1182 
1183 
1184 --Function DELETE_OUTCOME_ARGUMENTS
1185 
1186 FUNCTION DELETE_OUTCOME_ARGUMENTS( p_chr_id number) Return varchar2 IS
1187 
1188   l_oatv_tbl_in	OKC_OUTCOME_PUB.oatv_tbl_type;
1189 
1190   CURSOR l_oatv_csr (p_id  IN NUMBER) IS
1191     SELECT ID
1192      FROM OKC_OUTCOME_ARGUMENTS_V
1193      WHERE dnz_chr_id = p_id;
1194 
1195 Begin
1196 
1197    l_return_status := OKC_API.G_RET_STS_SUCCESS;
1198 
1199    FOR rec IN l_oatv_csr(p_chr_id)
1200    LOOP
1201   	 l_oatv_tbl_in(1).ID := rec.id;
1202 
1203   	 OKC_OUTCOME_PUB.delete_out_arg (
1204   		p_api_version		=> l_api_version,
1205   		p_init_msg_list	=> l_init_msg_list,
1206   		x_return_status	=> l_return_status,
1207   		x_msg_count		=> l_msg_count,
1208   		x_msg_data		=> l_msg_data,
1209   		p_oatv_tbl		=> l_oatv_tbl_in
1210   		);
1211 
1212 	     If (l_return_status <> 'S') Then
1213              OKC_API.SET_MESSAGE(p_app_name     => G_APP_NAME,
1214                                  p_msg_name     => G_CANNOT_DELETE,
1215                                  p_token1       => G_TABLE_NAME_TOKEN,
1216                                  p_token1_value => 'Outcome Arguments',
1217                                  p_token2       => G_SQLCODE_TOKEN,
1218                                  p_token2_value => sqlcode,
1219                                  p_token3       => G_SQLERRM_TOKEN,
1220                                  p_token3_value => sqlerrm);
1221 		   Exit;
1222 		End If;
1223    END LOOP;
1224    return l_return_status;
1225   EXCEPTION
1226        -- other appropriate handlers
1227        When others then
1228        -- store SQL error message on message stack
1229              OKC_API.SET_MESSAGE(p_app_name     => G_APP_NAME,
1230                                  p_msg_name     => G_UNEXPECTED_ERROR,
1231                                  p_token1       => G_SQLCODE_TOKEN,
1232                                  p_token1_value => sqlcode,
1233                                  p_token2       => G_SQLERRM_TOKEN,
1234                                  p_token2_value => sqlerrm);
1235 
1236        -- notify  UNEXPECTED error
1237              l_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1238              return l_return_status;
1239 END DELETE_OUTCOME_ARGUMENTS;
1240 
1241 --Function DELETE_OUTCOMES
1242 
1243 FUNCTION DELETE_OUTCOMES( p_chr_id number) Return varchar2 IS
1244 
1245   l_ocev_tbl_in	OKC_OUTCOME_PUB.ocev_tbl_type;
1246 
1247   CURSOR l_ocev_csr (p_id  IN NUMBER) IS
1248     SELECT ID
1249      FROM OKC_OUTCOMES_V
1250      WHERE dnz_chr_id = p_id;
1251 
1252 Begin
1253 
1254    l_return_status := OKC_API.G_RET_STS_SUCCESS;
1255 
1256    FOR rec IN l_ocev_csr(p_chr_id)
1257    LOOP
1258   	 l_ocev_tbl_in(1).ID := rec.id;
1259 
1260   	 OKC_OUTCOME_PUB.delete_outcome (
1261   		p_api_version		=> l_api_version,
1262   		p_init_msg_list	=> l_init_msg_list,
1263   		x_return_status	=> l_return_status,
1264   		x_msg_count		=> l_msg_count,
1265   		x_msg_data		=> l_msg_data,
1266   		p_ocev_tbl		=> l_ocev_tbl_in
1267   		);
1268 
1269 	     If (l_return_status <> 'S') Then
1270              OKC_API.SET_MESSAGE(p_app_name     => G_APP_NAME,
1271                                  p_msg_name     => G_CANNOT_DELETE,
1272                                  p_token1       => G_TABLE_NAME_TOKEN,
1273                                  p_token1_value => 'Outcomes',
1274                                  p_token2       => G_SQLCODE_TOKEN,
1275                                  p_token2_value => sqlcode,
1276                                  p_token3       => G_SQLERRM_TOKEN,
1277                                  p_token3_value => sqlerrm);
1278 		   Exit;
1279 		End If;
1280    END LOOP;
1281    return l_return_status;
1282   EXCEPTION
1283        -- other appropriate handlers
1284        When others then
1285        -- store SQL error message on message stack
1286              OKC_API.SET_MESSAGE(p_app_name     => G_APP_NAME,
1287                                  p_msg_name     => G_UNEXPECTED_ERROR,
1288                                  p_token1       => G_SQLCODE_TOKEN,
1289                                  p_token1_value => sqlcode,
1290                                  p_token2       => G_SQLERRM_TOKEN,
1291                                  p_token2_value => sqlerrm);
1292 
1293        -- notify  UNEXPECTED error
1294              l_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1295              return l_return_status;
1296 END DELETE_OUTCOMES;
1297 
1298 /*
1299 --------------This has taken care from Delete_Rule API-----------------------
1300 
1301 --Function DELETE_REACT_INTERVALS
1302 
1303 FUNCTION DELETE_REACT_INTERVALS( p_chr_id number) Return varchar2 IS
1304 
1305   l_rilv_tbl_in	OKC_RULE_PUB.rilv_tbl_type;
1306 
1307   CURSOR l_rilv_csr (p_id  IN NUMBER) IS
1308     SELECT TVE_ID, RUL_ID
1309      FROM OKC_REACT_INTERVALS_V
1310      WHERE dnz_chr_id = p_id;
1311 
1312 Begin
1313 
1314    l_return_status := OKC_API.G_RET_STS_SUCCESS;
1315 
1316    FOR rec IN l_rilv_csr(p_chr_id)
1317    LOOP
1318   	 l_rilv_tbl_in(1).TVE_ID := rec.TVE_ID;
1319   	 l_rilv_tbl_in(1).RUL_ID := rec.RUL_ID;
1320 
1321   	 OKC_RULE_PUB.delete_react_interval (
1322   		p_api_version		=> l_api_version,
1323   		p_init_msg_list	=> l_init_msg_list,
1324   		x_return_status	=> l_return_status,
1325   		x_msg_count		=> l_msg_count,
1326   		x_msg_data		=> l_msg_data,
1327   		p_rilv_tbl		=> l_rilv_tbl_in
1328   		);
1329 
1330 	     If (l_return_status <> 'S') Then
1331              OKC_API.SET_MESSAGE(p_app_name     => G_APP_NAME,
1332                                  p_msg_name     => G_CANNOT_DELETE,
1333                                  p_token1       => G_TABLE_NAME_TOKEN,
1334                                  p_token1_value => 'Reaction Intervals',
1335                                  p_token2       => G_SQLCODE_TOKEN,
1336                                  p_token2_value => sqlcode,
1337                                  p_token3       => G_SQLERRM_TOKEN,
1338                                  p_token3_value => sqlerrm);
1339 		   Exit;
1340 		End If;
1341    END LOOP;
1342    return l_return_status;
1343   EXCEPTION
1344        -- other appropriate handlers
1345        When others then
1346        -- store SQL error message on message stack
1347              OKC_API.SET_MESSAGE(p_app_name     => G_APP_NAME,
1348                                  p_msg_name     => G_UNEXPECTED_ERROR,
1349                                  p_token1       => G_SQLCODE_TOKEN,
1350                                  p_token1_value => sqlcode,
1351                                  p_token2       => G_SQLERRM_TOKEN,
1352                                  p_token2_value => sqlerrm);
1353 
1354        -- notify  UNEXPECTED error
1355              l_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1356              return l_return_status;
1357 END DELETE_REACT_INTERVALS;
1358 */
1359 
1360 --Function DELETE_RG_PARTY_ROLES
1361 
1362 FUNCTION DELETE_RG_PARTY_ROLES( p_chr_id number) Return varchar2 IS
1363 
1364   l_rmpv_tbl_in	OKC_RULE_PUB.rmpv_tbl_type;
1365 
1366   CURSOR l_rmpv_csr (p_id  IN NUMBER) IS
1367     SELECT ID
1368      FROM OKC_RG_PARTY_ROLES_V
1369      WHERE dnz_chr_id = p_id;
1370 
1371 Begin
1372 
1373    l_return_status := OKC_API.G_RET_STS_SUCCESS;
1374 
1375    FOR rec IN l_rmpv_csr(p_chr_id)
1376    LOOP
1377   	 l_rmpv_tbl_in(1).ID := rec.id;
1378 
1379   	 OKC_RULE_PUB.delete_rg_mode_pty_role (
1380   		p_api_version		=> l_api_version,
1381   		p_init_msg_list	=> l_init_msg_list,
1382   		x_return_status	=> l_return_status,
1383   		x_msg_count		=> l_msg_count,
1384   		x_msg_data		=> l_msg_data,
1385   		p_rmpv_tbl		=> l_rmpv_tbl_in
1386   		);
1387 
1388 	     If (l_return_status <> 'S') Then
1389              OKC_API.SET_MESSAGE(p_app_name     => G_APP_NAME,
1390                                  p_msg_name     => G_CANNOT_DELETE,
1391                                  p_token1       => G_TABLE_NAME_TOKEN,
1392                                  p_token1_value => 'Rule Group Party Roles',
1393                                  p_token2       => G_SQLCODE_TOKEN,
1394                                  p_token2_value => sqlcode,
1395                                  p_token3       => G_SQLERRM_TOKEN,
1396                                  p_token3_value => sqlerrm);
1397 		   Exit;
1398 		End If;
1399    END LOOP;
1400    return l_return_status;
1401   EXCEPTION
1402        -- other appropriate handlers
1403        When others then
1404        -- store SQL error message on message stack
1405              OKC_API.SET_MESSAGE(p_app_name     => G_APP_NAME,
1406                                  p_msg_name     => G_UNEXPECTED_ERROR,
1407                                  p_token1       => G_SQLCODE_TOKEN,
1408                                  p_token1_value => sqlcode,
1409                                  p_token2       => G_SQLERRM_TOKEN,
1410                                  p_token2_value => sqlerrm);
1411 
1412        -- notify  UNEXPECTED error
1413              l_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1414              return l_return_status;
1415 END DELETE_RG_PARTY_ROLES;
1416 
1417 --Function DELETE_RULE_GROUPS
1418 
1419 FUNCTION DELETE_RULE_GROUPS( p_chr_id number) Return varchar2 IS
1420 
1421   l_rgpv_tbl_in	OKC_RULE_PUB.rgpv_tbl_type;
1422 
1423   CURSOR l_rgpv_csr (p_id  IN NUMBER) IS
1424     SELECT ID
1425      FROM OKC_RULE_GROUPS_V
1426      WHERE dnz_chr_id = p_id;
1427 
1428 Begin
1429 
1430    l_return_status := OKC_API.G_RET_STS_SUCCESS;
1431 
1432    FOR rec IN l_rgpv_csr(p_chr_id)
1433    LOOP
1434   	 l_rgpv_tbl_in(1).ID := rec.id;
1435 
1436   	 OKC_RULE_PUB.delete_rule_group (
1437   		p_api_version		=> l_api_version,
1438   		p_init_msg_list	=> l_init_msg_list,
1439   		x_return_status	=> l_return_status,
1440   		x_msg_count		=> l_msg_count,
1441   		x_msg_data		=> l_msg_data,
1442   		p_rgpv_tbl		=> l_rgpv_tbl_in
1443   		);
1444 
1445 	     If (l_return_status <> 'S') Then
1446              OKC_API.SET_MESSAGE(p_app_name     => G_APP_NAME,
1447                                  p_msg_name     => G_CANNOT_DELETE,
1448                                  p_token1       => G_TABLE_NAME_TOKEN,
1449                                  p_token1_value => 'Rule Groups',
1450                                  p_token2       => G_SQLCODE_TOKEN,
1451                                  p_token2_value => sqlcode,
1452                                  p_token3       => G_SQLERRM_TOKEN,
1453                                  p_token3_value => sqlerrm);
1454 		   Exit;
1455 		End If;
1456    END LOOP;
1457    return l_return_status;
1458   EXCEPTION
1459        -- other appropriate handlers
1460        When others then
1461        -- store SQL error message on message stack
1462              OKC_API.SET_MESSAGE(p_app_name     => G_APP_NAME,
1463                                  p_msg_name     => G_UNEXPECTED_ERROR,
1464                                  p_token1       => G_SQLCODE_TOKEN,
1465                                  p_token1_value => sqlcode,
1466                                  p_token2       => G_SQLERRM_TOKEN,
1467                                  p_token2_value => sqlerrm);
1468 
1469        -- notify  UNEXPECTED error
1470              l_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1471              return l_return_status;
1472 END DELETE_RULE_GROUPS;
1473 
1474 --Function DELETE_RULES
1475 
1476 FUNCTION DELETE_RULES( p_chr_id number) Return varchar2 IS
1477 
1478   l_rulv_tbl_in	OKC_RULE_PUB.rulv_tbl_type;
1479 
1480   CURSOR l_rulv_csr (p_id  IN NUMBER) IS
1481     SELECT ID
1482      FROM OKC_RULES_V
1483      WHERE dnz_chr_id = p_id;
1484 
1485 Begin
1486 
1487    l_return_status := OKC_API.G_RET_STS_SUCCESS;
1488 
1489    FOR rec IN l_rulv_csr(p_chr_id)
1490    LOOP
1491   	 l_rulv_tbl_in(1).ID := rec.id;
1492 
1493   	 OKC_RULE_PUB.Delete_Rule (
1494   		p_api_version		=> l_api_version,
1495   		p_init_msg_list	=> l_init_msg_list,
1496   		x_return_status	=> l_return_status,
1497   		x_msg_count		=> l_msg_count,
1498   		x_msg_data		=> l_msg_data,
1499   		p_rulv_tbl		=> l_rulv_tbl_in
1500   		);
1501 
1502 	     If (l_return_status <> 'S') Then
1503              OKC_API.SET_MESSAGE(p_app_name     => G_APP_NAME,
1504                                  p_msg_name     => G_CANNOT_DELETE,
1505                                  p_token1       => G_TABLE_NAME_TOKEN,
1506                                  p_token1_value => 'Rules',
1507                                  p_token2       => G_SQLCODE_TOKEN,
1508                                  p_token2_value => sqlcode,
1509                                  p_token3       => G_SQLERRM_TOKEN,
1510                                  p_token3_value => sqlerrm);
1511 		   Exit;
1512 		End If;
1513    END LOOP;
1514    return l_return_status;
1515   EXCEPTION
1516        -- other appropriate handlers
1517        When others then
1518        -- store SQL error message on message stack
1519              OKC_API.SET_MESSAGE(p_app_name     => G_APP_NAME,
1520                                  p_msg_name     => G_UNEXPECTED_ERROR,
1521                                  p_token1       => G_SQLCODE_TOKEN,
1522                                  p_token1_value => sqlcode,
1523                                  p_token2       => G_SQLERRM_TOKEN,
1524                                  p_token2_value => sqlerrm);
1525 
1526        -- notify  UNEXPECTED error
1527              l_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1528              return l_return_status;
1529 END DELETE_RULES;
1530 
1531 /*
1532 --------------This has taken care from Delete_Rule API-----------------------
1533 
1534 --Function DELETE_TIMEVALUES
1535 
1536 FUNCTION DELETE_TIMEVALUES( p_chr_id number) Return varchar2 IS
1537 
1538   l_tavv_tbl_in	OKC_TIME_PUB.tavv_tbl_type;
1539 
1540   CURSOR l_tavv_csr (p_id  IN NUMBER) IS
1541     SELECT ID
1542      FROM OKC_TIMEVALUES_V
1543      WHERE dnz_chr_id = p_id;
1544 
1545 Begin
1546 
1547    l_return_status := OKC_API.G_RET_STS_SUCCESS;
1548 
1549    FOR rec IN l_tavv_csr(p_chr_id)
1550    LOOP
1551   	 l_tavv_tbl_in(1).ID := rec.id;
1552 
1553   	 OKC_TIME_PUB.DELETE_TPA_VALUE (
1554   		p_api_version		=> l_api_version,
1555   		p_init_msg_list	=> l_init_msg_list,
1556   		x_return_status	=> l_return_status,
1557   		x_msg_count		=> l_msg_count,
1558   		x_msg_data		=> l_msg_data,
1559   		p_tavv_tbl		=> l_tavv_tbl_in
1560   		);
1561 
1562 	     If (l_return_status <> 'S') Then
1563              OKC_API.SET_MESSAGE(p_app_name     => G_APP_NAME,
1564                                  p_msg_name     => G_CANNOT_DELETE,
1565                                  p_token1       => G_TABLE_NAME_TOKEN,
1566                                  p_token1_value => 'Timevalues',
1567                                  p_token2       => G_SQLCODE_TOKEN,
1568                                  p_token2_value => sqlcode,
1569                                  p_token3       => G_SQLERRM_TOKEN,
1570                                  p_token3_value => sqlerrm);
1571 		   Exit;
1572 		End If;
1573    END LOOP;
1574    return l_return_status;
1575   EXCEPTION
1576        -- other appropriate handlers
1577        When others then
1578        -- store SQL error message on message stack
1579              OKC_API.SET_MESSAGE(p_app_name     => G_APP_NAME,
1580                                  p_msg_name     => G_UNEXPECTED_ERROR,
1581                                  p_token1       => G_SQLCODE_TOKEN,
1582                                  p_token1_value => sqlcode,
1583                                  p_token2       => G_SQLERRM_TOKEN,
1584                                  p_token2_value => sqlerrm);
1585 
1586        -- notify  UNEXPECTED error
1587              l_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1588              return l_return_status;
1589 END DELETE_TIMEVALUES;
1590 */
1591 
1592 --Public procedure to delete various components of a contract
1593 PROCEDURE delete_contract(
1594     p_api_version        IN NUMBER,
1595     p_init_msg_list      IN VARCHAR2 ,
1596     x_return_status      OUT NOCOPY VARCHAR2,
1597     x_msg_count          OUT NOCOPY NUMBER,
1598     x_msg_data           OUT NOCOPY VARCHAR2,
1599     p_chrv_rec			IN OKC_CONTRACT_PUB.chrv_rec_type) IS
1600 
1601     l_api_name VARCHAR2(30) := 'V_Delete_Contract';
1602     l_delete_allowed  VARCHAR2(1);
1603     DELETE_NOT_ALLOWED  Exception;
1604     l_doc_type                     VARCHAR2(30);
1605     l_doc_id                       NUMBER;
1606 
1607 -- BUG#4122038 HKAMDAR 10-FEB-2005 Part 2
1608     lx_return_status     VARCHAR2(1) ;
1609 -- BUG#4122038 HKAMDAR End Part 2
1610 
1611 BEGIN
1612 
1613     l_return_status := OKC_API.START_ACTIVITY(l_api_name,
1614                                               G_PKG_NAME,
1615                                               p_init_msg_list,
1616                                               l_api_version,
1617                                               p_api_version,
1618                                               '_PVT',
1619                                               x_return_status);
1620     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1621       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1622     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1623       RAISE OKC_API.G_EXCEPTION_ERROR;
1624     END IF;
1625     l_delete_allowed := OKC_ASSENT_PUB.HEADER_OPERATION_ALLOWED(p_header_id   => p_chrv_rec.id,
1626                                                                 p_opn_code    => 'DELETE');
1627 
1628     If l_delete_allowed <> 'T' Then
1629 
1630       Raise DELETE_NOT_ALLOWED;
1631     End If;
1632 
1633     --delete Contacts
1634     l_return_status := Delete_contacts(p_chrv_rec.ID);
1635     --- If any errors happen abort API
1636     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1637       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1638     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1639       RAISE OKC_API.G_EXCEPTION_ERROR;
1640     END IF;
1641 
1642     --delete price att values
1643     l_return_status := Delete_Price_Att_Values(p_chrv_rec.ID);
1644     --- If any errors happen abort API
1645     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1646       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1647     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1648       RAISE OKC_API.G_EXCEPTION_ERROR;
1649     END IF;
1650 
1651 /****For Bug.1850500.*********************************************
1652 --delete price adjustment attributes
1653     l_return_status := Delete_Price_Adj_Attribs(p_chrv_rec.ID);
1654     --- If any errors happen abort API
1655     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1656       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1657     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1658       RAISE OKC_API.G_EXCEPTION_ERROR;
1659     END IF;
1660 *****************************************************************/
1661 /****For Bug.1850500.*********************************************
1662 --delete price adjustment associations
1663     l_return_status := Delete_Price_Adj_Assocs(p_chrv_rec.ID);
1664     --- If any errors happen abort API
1665     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1666       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1667     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1668       RAISE OKC_API.G_EXCEPTION_ERROR;
1669     END IF;
1670 *****************************************************************/
1671 
1672 /****For Bug.1850500.*********************************************
1673 --delete Price adjustments
1674     l_return_status := Delete_Price_Adjustments(p_chrv_rec.ID);
1675     --- If any errors happen abort API
1676     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1677       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1678     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1679       RAISE OKC_API.G_EXCEPTION_ERROR;
1680     END IF;
1681 *****************************************************************/
1682     --delete contract party roles
1683     l_return_status := Delete_k_party_roles(p_chrv_rec.ID);
1684 
1685     --- If any errors happen abort API
1686     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1687       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1688     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1689       RAISE OKC_API.G_EXCEPTION_ERROR;
1690     END IF;
1691 
1692     --delete cover times
1693     --Cover times are deleted when rules/rule-groups deleted
1694 
1695     --delete react intervals
1696     --React Intervals are deleted when rules/rule-groups deleted
1697 
1698     --delete outcome arguments
1699     l_return_status := Delete_outcome_arguments(p_chrv_rec.ID);
1700     --- If any errors happen abort API
1701     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1702       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1703     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1704       RAISE OKC_API.G_EXCEPTION_ERROR;
1705     END IF;
1706 
1707     --delete outcomes
1708     l_return_status := Delete_outcomes(p_chrv_rec.ID);
1709     --- If any errors happen abort API
1710     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1711       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1712     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1713       RAISE OKC_API.G_EXCEPTION_ERROR;
1714     END IF;
1715 /*
1716 --    --delete Article trans
1717 --    l_return_status := Delete_article_trans(p_chrv_rec.ID);
1718 --
1719 --    --- If any errors happen abort API
1720 --    IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1721 --      RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1722 --    ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1723 --      RAISE OKC_API.G_EXCEPTION_ERROR;
1724 --    END IF;
1725 */
1726 
1727 -- BUG#4122038 HKAMDAR 10-FEB-2005 Part 3
1728    --/Rules Migration/
1729     Is_rule_allowed(p_chrv_rec.ID,
1730                     lx_return_status);
1731 
1732     IF lx_return_status = 'Y' Then
1733 -- End BUG#4122038 Part 3
1734     --delete Rules
1735        l_return_status := Delete_rules(p_chrv_rec.ID);
1736 
1737        --- If any errors happen abort API
1738        IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1739           RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1740        ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1741           RAISE OKC_API.G_EXCEPTION_ERROR;
1742        END IF;
1743 
1744        --delete RuleGroup party roles
1745        l_return_status := Delete_rg_party_roles(p_chrv_rec.ID);
1746 
1747        --- If any errors happen abort API
1748        IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1749           RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1750        ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1751           RAISE OKC_API.G_EXCEPTION_ERROR;
1752        END IF;
1753 
1754 /*
1755 --    --delete contract articles
1756 --    l_return_status := Delete_k_articles(p_chrv_rec.ID);
1757 --
1758 --    --- If any errors happen abort API
1759 --    IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1760 --      RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1761 --    ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1762 --      RAISE OKC_API.G_EXCEPTION_ERROR;
1763 --    END IF;
1764 */
1765        --delete Rule Groups
1766        l_return_status := Delete_rule_groups(p_chrv_rec.ID);
1767 
1768        -- If any errors happen abort API
1769        IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1770           RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1771        ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1772           RAISE OKC_API.G_EXCEPTION_ERROR;
1773        END IF;
1774 
1775     END IF;  -- BUG#4122038 HKAMDAR 10-FEB-2005 Part 4
1776 
1777     --delete contract accesses
1778     l_return_status := Delete_k_accesses(p_chrv_rec.ID);
1779 
1780     --- If any errors happen abort API
1781     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1782       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1783     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1784       RAISE OKC_API.G_EXCEPTION_ERROR;
1785     END IF;
1786 
1787     --delete contract processes
1788     l_return_status := Delete_k_processes(p_chrv_rec.ID);
1789     --- If any errors happen abort API
1790     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1791       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1792     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1793       RAISE OKC_API.G_EXCEPTION_ERROR;
1794     END IF;
1795 
1796     --delete function_expr_params
1797     l_return_status := Delete_function_expr_params(p_chrv_rec.ID);
1798     --- If any errors happen abort API
1799     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1800       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1801     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1802       RAISE OKC_API.G_EXCEPTION_ERROR;
1803     END IF;
1804 
1805     --delete condition lines
1806     l_return_status := Delete_condition_lines(p_chrv_rec.ID);
1807     --- If any errors happen abort API
1808     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1809       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1810     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1811       RAISE OKC_API.G_EXCEPTION_ERROR;
1812     END IF;
1813 
1814     --delete condition headers
1815     l_return_status := Delete_condition_headers(p_chrv_rec.ID);
1816     --- If any errors happen abort API
1817     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1818       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1819     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1820       RAISE OKC_API.G_EXCEPTION_ERROR;
1821     END IF;
1822 
1823     --delete governances
1824     l_return_status := Delete_governances(p_chrv_rec.ID);
1825     --- If any errors happen abort API
1826     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1827       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1828     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1829       RAISE OKC_API.G_EXCEPTION_ERROR;
1830     END IF;
1831 
1832     --delete contract items
1833     l_return_status := Delete_k_items(p_chrv_rec.ID);
1834     --- If any errors happen abort API
1835     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1836       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1837     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1838       RAISE OKC_API.G_EXCEPTION_ERROR;
1839     END IF;
1840 
1841     --delete contract lines
1842     l_return_status := Delete_k_lines(p_chrv_rec.ID);
1843     --- If any errors happen abort API
1844     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1845       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1846     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1847       RAISE OKC_API.G_EXCEPTION_ERROR;
1848     END IF;
1849 
1850     --delete contract groupings
1851     l_return_status := Delete_k_Grpings(p_chrv_rec.ID);
1852     --- If any errors happen abort API
1853     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1854       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1855     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1856       RAISE OKC_API.G_EXCEPTION_ERROR;
1857     END IF;
1858 
1859          okc_terms_util_grp.get_contract_document_type_id(
1860                                            p_api_version   => 1,
1861                                            p_init_msg_list => FND_API.G_FALSE,
1862                                            x_return_status => l_return_status,
1863                                            x_msg_data      => x_msg_data,
1864                                            x_msg_count     => x_msg_count,
1865                                            p_chr_id        => p_chrv_rec.ID,
1866                                            x_doc_type      => l_doc_type,
1867                                            x_doc_id        => l_doc_id);
1868 
1869          IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1870               RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1871          ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1872               RAISE OKC_API.G_EXCEPTION_ERROR;
1873          END IF;
1874 
1875    --Delete VERSION TERMS and Condition and Deliverables
1876 
1877     OKC_TERMS_UTIL_GRP.delete_doc(
1878                              p_api_version      => 1,
1879                              p_init_msg_list    => FND_API.G_FALSE,
1880                              p_commit           => FND_API.G_FALSE,
1881 
1882                              x_return_status    => l_return_status,
1883                              x_msg_data         => x_msg_data,
1884                              x_msg_count        => x_msg_count,
1885                              p_validate_commit  => FND_API.G_FALSE,
1886                              p_validation_string => NULL,
1887 
1888                              p_doc_type         => l_doc_type,
1889                              p_doc_id           => l_doc_id);
1890 
1891     --- If any errors happen abort API
1892 
1893     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1894      	 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1895     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1896       	RAISE OKC_API.G_EXCEPTION_ERROR;
1897     END IF;
1898 
1899     --delete contract header
1900     l_return_status := Delete_k_headers(p_chrv_rec.ID);
1901     --- If any errors happen abort API
1902     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1903       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1904     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1905       RAISE OKC_API.G_EXCEPTION_ERROR;
1906     END IF;
1907 
1908 ---------
1909 
1910     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
1911     x_return_status := l_return_status;
1912     COMMIT WORK;
1913   EXCEPTION
1914     WHEN DELETE_NOT_ALLOWED Then
1915     OKC_API.SET_MESSAGE(p_app_name     => G_APP_NAME,
1916                         p_msg_name     => 'OKC_NO_DELETE_WRONG_STATUS');
1917     x_return_status := OKC_API.G_RET_STS_ERROR;
1918 
1919     WHEN OKC_API.G_EXCEPTION_ERROR THEN
1920       x_return_status := OKC_API.HANDLE_EXCEPTIONS
1921       (
1922         l_api_name,
1923         G_PKG_NAME,
1924         'OKC_API.G_RET_STS_ERROR',
1925         x_msg_count,
1926         x_msg_data,
1927         '_PVT'
1928       );
1929     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1930       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
1931       (
1932         l_api_name,
1933         G_PKG_NAME,
1934         'OKC_API.G_RET_STS_UNEXP_ERROR',
1935         x_msg_count,
1936         x_msg_data,
1937         '_PVT'
1938       );
1939     WHEN OTHERS THEN
1940       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
1941       (
1942         l_api_name,
1943         G_PKG_NAME,
1944         'OTHERS',
1945         x_msg_count,
1946         x_msg_data,
1947         '_PVT'
1948       );
1949 
1950 END Delete_Contract;
1951 
1952 END OKC_DELETE_CONTRACT_PVT;