DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKL_DEAL_CREAT_PVT

Source


1 PACKAGE BODY Okl_Deal_Creat_Pvt AS
2 /* $Header: OKLRDCRB.pls 120.16.12020000.2 2013/03/07 05:15:53 racheruv ship $ */
3 
4     G_MODULE VARCHAR2(255) := 'okl.authoring.okl_deal_creat_pvt';
5     G_DEBUG_ENABLED CONSTANT VARCHAR2(40) := OKL_DEBUG_PUB.CHECK_LOG_ENABLED;
6     G_IS_DEBUG_STATEMENT_ON BOOLEAN;
7    G_API_TYPE	VARCHAR2(3) := 'PVT';
8 
9    G_RLE_CODE  VARCHAR2(10) := 'LESSEE';
10    G_STS_CODE  VARCHAR2(10) := 'NEW';
11    G_LEASE_VENDOR  VARCHAR2(10) := 'OKL_VENDOR';
12    G_VENDOR_BILL_RGD_CODE  VARCHAR2(10) := 'LAVENB';
13    G_UNEXPECTED_ERROR CONSTANT	VARCHAR2(200) := 'OKC_CONTRACTS_UNEXPECTED_ERROR';
14    G_SQLERRM_TOKEN	 CONSTANT	VARCHAR2(200) := 'ERROR_MESSAGE';
15    G_SQLCODE_TOKEN	 CONSTANT	VARCHAR2(200) := 'ERROR_CODE';
16 
17    SUBTYPE rgpv_rec_type IS OKL_OKC_MIGRATION_PVT.rgpv_rec_type;
18    SUBTYPE rulv_rec_type IS Okl_Rule_Pub.rulv_rec_type;
19    SUBTYPE rulv_tbl_type IS Okl_Rule_Pub.rulv_tbl_type;
20    SUBTYPE chrv_rec_type IS OKL_OKC_MIGRATION_PVT.chrv_rec_type;
21    SUBTYPE khrv_rec_type IS OKL_CONTRACT_PUB.khrv_rec_type;
22 
23    /*
24    -- mvasudev, 08/17/2004
25    -- Added Constants to enable Business Event
26    */
27    G_WF_EVT_KHR_CREATED CONSTANT VARCHAR2(41) := 'oracle.apps.okl.la.lease_contract.created';
28    G_WF_EVT_KHR_UPDATED CONSTANT VARCHAR2(41) := 'oracle.apps.okl.la.lease_contract.updated';
29 
30    G_WF_ITM_CONTRACT_ID CONSTANT VARCHAR2(11) := 'CONTRACT_ID';
31 
32 
33   FUNCTION GET_AK_PROMPT(p_ak_region	IN VARCHAR2, p_ak_attribute	IN VARCHAR2)
34   RETURN VARCHAR2 IS
35 
36   	CURSOR ak_prompt_csr(p_ak_region VARCHAR2, p_ak_attribute VARCHAR2) IS
37 	--start modified abhsaxen for performance SQLID 20562566
38 	    select a.attribute_label_long
39 	 from ak_region_items ri, ak_regions r, ak_attributes_vl a
40 	 where ri.region_code = r.region_code
41 	 and ri.region_application_id = r.region_application_id
42 	 and ri.attribute_code = a.attribute_code
43 	 and ri.attribute_application_id = a.attribute_application_id
44 	 and ri.region_code  =  p_ak_region
45 	 and ri.attribute_code = p_ak_attribute
46 	--end modified abhsaxen for performance SQLID 20562566
47 	;
48 
49   	l_ak_prompt AK_ATTRIBUTES_VL.attribute_label_long%TYPE;
50   BEGIN
51   	OPEN ak_prompt_csr(p_ak_region, p_ak_attribute);
52   	FETCH ak_prompt_csr INTO l_ak_prompt;
53   	CLOSE ak_prompt_csr;
54   	RETURN(l_ak_prompt);
55   END;
56 
57   ---------------------------------------------------------------------------
58   -- FUNCTION get_rec for: OKC_K_HEADERS_V
59   ---------------------------------------------------------------------------
60   FUNCTION get_rec (
61     p_chrv_rec                     IN chrv_rec_type,
62     x_no_data_found                OUT NOCOPY BOOLEAN
63   ) RETURN chrv_rec_type IS
64     CURSOR okc_chrv_pk_csr (p_id                 IN NUMBER) IS
65     SELECT
66             ID,
67             OBJECT_VERSION_NUMBER,
68             SFWT_FLAG,
69             CHR_ID_RESPONSE,
70             CHR_ID_AWARD,
71             INV_ORGANIZATION_ID,
72             STS_CODE,
73             QCL_ID,
74             SCS_CODE,
75             CONTRACT_NUMBER,
76             CURRENCY_CODE,
77             CONTRACT_NUMBER_MODIFIER,
78             ARCHIVED_YN,
79             DELETED_YN,
80             CUST_PO_NUMBER_REQ_YN,
81             PRE_PAY_REQ_YN,
82             CUST_PO_NUMBER,
83             SHORT_DESCRIPTION,
84             COMMENTS,
85             DESCRIPTION,
86             DPAS_RATING,
87             COGNOMEN,
88             TEMPLATE_YN,
89             TEMPLATE_USED,
90             DATE_APPROVED,
91             DATETIME_CANCELLED,
92             AUTO_RENEW_DAYS,
93             DATE_ISSUED,
94             DATETIME_RESPONDED,
95             NON_RESPONSE_REASON,
96             NON_RESPONSE_EXPLAIN,
97             RFP_TYPE,
98             CHR_TYPE,
99             KEEP_ON_MAIL_LIST,
100             SET_ASIDE_REASON,
101             SET_ASIDE_PERCENT,
102             RESPONSE_COPIES_REQ,
103             DATE_CLOSE_PROJECTED,
104             DATETIME_PROPOSED,
105             DATE_SIGNED,
106             DATE_TERMINATED,
107             DATE_RENEWED,
108             TRN_CODE,
109             START_DATE,
110             END_DATE,
111             AUTHORING_ORG_ID,
112             BUY_OR_SELL,
113             ISSUE_OR_RECEIVE,
114 	    ESTIMATED_AMOUNT,
115             ESTIMATED_AMOUNT_RENEWED,
116             CURRENCY_CODE_RENEWED,
117 	    UPG_ORIG_SYSTEM_REF,
118 	    UPG_ORIG_SYSTEM_REF_ID,
119 	    APPLICATION_ID,
120             ORIG_SYSTEM_SOURCE_CODE,
121             ORIG_SYSTEM_ID1,
122             ORIG_SYSTEM_REFERENCE1,
123             PROGRAM_ID,
124             REQUEST_ID,
125             PROGRAM_UPDATE_DATE,
126             PROGRAM_APPLICATION_ID,
127             PRICE_LIST_ID,
128             PRICING_DATE,
129             SIGN_BY_DATE,
130             TOTAL_LINE_LIST_PRICE,
131             USER_ESTIMATED_AMOUNT,
132             ATTRIBUTE_CATEGORY,
133             ATTRIBUTE1,
134             ATTRIBUTE2,
135             ATTRIBUTE3,
136             ATTRIBUTE4,
137             ATTRIBUTE5,
138             ATTRIBUTE6,
139             ATTRIBUTE7,
140             ATTRIBUTE8,
141             ATTRIBUTE9,
142             ATTRIBUTE10,
143             ATTRIBUTE11,
144             ATTRIBUTE12,
145             ATTRIBUTE13,
146             ATTRIBUTE14,
147             ATTRIBUTE15,
148             CREATED_BY,
149             CREATION_DATE,
150             LAST_UPDATED_BY,
151             LAST_UPDATE_DATE,
152             LAST_UPDATE_LOGIN
153       FROM Okc_K_Headers_V
154      WHERE okc_k_headers_v.id   = p_id;
155     l_okc_chrv_pk                  okc_chrv_pk_csr%ROWTYPE;
156     l_chrv_rec                     chrv_rec_type;
157   BEGIN
158 
159     x_no_data_found := TRUE;
160     -- Get current database values
161     OPEN okc_chrv_pk_csr (p_chrv_rec.id);
162     FETCH okc_chrv_pk_csr INTO
163               l_chrv_rec.ID,
164               l_chrv_rec.OBJECT_VERSION_NUMBER,
165               l_chrv_rec.SFWT_FLAG,
166               l_chrv_rec.CHR_ID_RESPONSE,
167               l_chrv_rec.CHR_ID_AWARD,
168               l_chrv_rec.INV_ORGANIZATION_ID,
169               l_chrv_rec.STS_CODE,
170               l_chrv_rec.QCL_ID,
171               l_chrv_rec.SCS_CODE,
172               l_chrv_rec.CONTRACT_NUMBER,
173               l_chrv_rec.CURRENCY_CODE,
174               l_chrv_rec.CONTRACT_NUMBER_MODIFIER,
175               l_chrv_rec.ARCHIVED_YN,
176               l_chrv_rec.DELETED_YN,
177               l_chrv_rec.CUST_PO_NUMBER_REQ_YN,
178               l_chrv_rec.PRE_PAY_REQ_YN,
179               l_chrv_rec.CUST_PO_NUMBER,
180               l_chrv_rec.SHORT_DESCRIPTION,
181               l_chrv_rec.COMMENTS,
182               l_chrv_rec.DESCRIPTION,
183               l_chrv_rec.DPAS_RATING,
184               l_chrv_rec.COGNOMEN,
185               l_chrv_rec.TEMPLATE_YN,
186               l_chrv_rec.TEMPLATE_USED,
187               l_chrv_rec.DATE_APPROVED,
188               l_chrv_rec.DATETIME_CANCELLED,
189               l_chrv_rec.AUTO_RENEW_DAYS,
190               l_chrv_rec.DATE_ISSUED,
191               l_chrv_rec.DATETIME_RESPONDED,
192               l_chrv_rec.NON_RESPONSE_REASON,
193               l_chrv_rec.NON_RESPONSE_EXPLAIN,
194               l_chrv_rec.RFP_TYPE,
195               l_chrv_rec.CHR_TYPE,
196               l_chrv_rec.KEEP_ON_MAIL_LIST,
197               l_chrv_rec.SET_ASIDE_REASON,
198               l_chrv_rec.SET_ASIDE_PERCENT,
199               l_chrv_rec.RESPONSE_COPIES_REQ,
200               l_chrv_rec.DATE_CLOSE_PROJECTED,
201               l_chrv_rec.DATETIME_PROPOSED,
202               l_chrv_rec.DATE_SIGNED,
203               l_chrv_rec.DATE_TERMINATED,
204               l_chrv_rec.DATE_RENEWED,
205               l_chrv_rec.TRN_CODE,
206               l_chrv_rec.START_DATE,
207               l_chrv_rec.END_DATE,
208               l_chrv_rec.AUTHORING_ORG_ID,
209               l_chrv_rec.BUY_OR_SELL,
210               l_chrv_rec.ISSUE_OR_RECEIVE,
211 	      l_chrv_rec.ESTIMATED_AMOUNT,
212               l_chrv_rec.ESTIMATED_AMOUNT_RENEWED,
213               l_chrv_rec.CURRENCY_CODE_RENEWED,
214 	      l_chrv_rec.UPG_ORIG_SYSTEM_REF,
215 	      l_chrv_rec.UPG_ORIG_SYSTEM_REF_ID,
216 	      l_chrv_rec.APPLICATION_ID,
217               l_chrv_rec.ORIG_SYSTEM_SOURCE_CODE,
218               l_chrv_rec.ORIG_SYSTEM_ID1,
219               l_chrv_rec.ORIG_SYSTEM_REFERENCE1,
220               l_chrv_rec.program_id,
221               l_chrv_rec.request_id,
222               l_chrv_rec.program_update_date,
223               l_chrv_rec.program_application_id,
224               l_chrv_rec.price_list_id,
225               l_chrv_rec.pricing_date,
226               l_chrv_rec.sign_by_date,
227               l_chrv_rec.total_line_list_price,
228               l_chrv_rec.USER_ESTIMATED_AMOUNT,
229               l_chrv_rec.ATTRIBUTE_CATEGORY,
230               l_chrv_rec.ATTRIBUTE1,
231               l_chrv_rec.ATTRIBUTE2,
232               l_chrv_rec.ATTRIBUTE3,
233               l_chrv_rec.ATTRIBUTE4,
234               l_chrv_rec.ATTRIBUTE5,
235               l_chrv_rec.ATTRIBUTE6,
236               l_chrv_rec.ATTRIBUTE7,
237               l_chrv_rec.ATTRIBUTE8,
238               l_chrv_rec.ATTRIBUTE9,
239               l_chrv_rec.ATTRIBUTE10,
240               l_chrv_rec.ATTRIBUTE11,
241               l_chrv_rec.ATTRIBUTE12,
242               l_chrv_rec.ATTRIBUTE13,
243               l_chrv_rec.ATTRIBUTE14,
244               l_chrv_rec.ATTRIBUTE15,
245               l_chrv_rec.CREATED_BY,
246               l_chrv_rec.CREATION_DATE,
247               l_chrv_rec.LAST_UPDATED_BY,
248               l_chrv_rec.LAST_UPDATE_DATE,
249               l_chrv_rec.LAST_UPDATE_LOGIN;
250     x_no_data_found := okc_chrv_pk_csr%NOTFOUND;
251     CLOSE okc_chrv_pk_csr;
252     RETURN(l_chrv_rec);
253 
254   END get_rec;
255 
256   FUNCTION get_rec (
257     p_chrv_rec                     IN chrv_rec_type
258   ) RETURN chrv_rec_type IS
259     l_row_notfound                 BOOLEAN := TRUE;
260   BEGIN
261 
262     RETURN(get_rec(p_chrv_rec, l_row_notfound));
263 
264   END get_rec;
265  ---------------------------------------------------------------------------
266   -- FUNCTION get_rec for: OKL_K_HEADERS_V
267   ---------------------------------------------------------------------------
268   FUNCTION get_rec (
269     p_khrv_rec                     IN khrv_rec_type,
270     x_no_data_found                OUT NOCOPY BOOLEAN
271   ) RETURN khrv_rec_type IS
272     CURSOR okl_k_headers_v_pk_csr (p_id                 IN NUMBER) IS
273       SELECT
274 	ID,
275         OBJECT_VERSION_NUMBER,
276         ISG_ID,
277         KHR_ID,
278         PDT_ID,
279         AMD_CODE,
280         DATE_FIRST_ACTIVITY,
281         GENERATE_ACCRUAL_YN,
282         GENERATE_ACCRUAL_OVERRIDE_YN,
283         DATE_REFINANCED,
284         CREDIT_ACT_YN,
285         TERM_DURATION,
286         CONVERTED_ACCOUNT_YN,
287         DATE_CONVERSION_EFFECTIVE,
288         SYNDICATABLE_YN,
289         SALESTYPE_YN,
290         DATE_DEAL_TRANSFERRED,
291         DATETIME_PROPOSAL_EFFECTIVE,
292         DATETIME_PROPOSAL_INEFFECTIVE,
293         DATE_PROPOSAL_ACCEPTED,
294         ATTRIBUTE_CATEGORY,
295         ATTRIBUTE1,
296         ATTRIBUTE2,
297         ATTRIBUTE3,
298         ATTRIBUTE4,
299         ATTRIBUTE5,
300         ATTRIBUTE6,
301         ATTRIBUTE7,
302         ATTRIBUTE8,
303         ATTRIBUTE9,
304         ATTRIBUTE10,
305         ATTRIBUTE11,
306         ATTRIBUTE12,
307         ATTRIBUTE13,
308         ATTRIBUTE14,
309         ATTRIBUTE15,
310         CREATED_BY,
311         CREATION_DATE,
312         LAST_UPDATED_BY,
313         LAST_UPDATE_DATE,
314         LAST_UPDATE_LOGIN,
315         PRE_TAX_YIELD,
316         AFTER_TAX_YIELD,
317         IMPLICIT_INTEREST_RATE,
318         IMPLICIT_NON_IDC_INTEREST_RATE,
319         TARGET_PRE_TAX_YIELD,
320         TARGET_AFTER_TAX_YIELD,
321         TARGET_IMPLICIT_INTEREST_RATE,
322         TARGET_IMPLICIT_NONIDC_INTRATE,
323         DATE_LAST_INTERIM_INTEREST_CAL,
324         DEAL_TYPE,
325         PRE_TAX_IRR,
326         AFTER_TAX_IRR,
327         EXPECTED_DELIVERY_DATE,
328         ACCEPTED_DATE,
329         PREFUNDING_ELIGIBLE_YN,
330         REVOLVING_CREDIT_YN,
331         CURRENCY_CONVERSION_RATE,
332         CURRENCY_CONVERSION_DATE,
333         CURRENCY_CONVERSION_TYPE,
334         ASSIGNABLE_YN
335       FROM OKL_K_HEADERS_V
336       WHERE OKL_K_HEADERS_V.id     = p_id;
337       l_okl_k_headers_v_pk             okl_k_headers_v_pk_csr%ROWTYPE;
338       l_khrv_rec                      khrv_rec_type;
339   BEGIN
340 
341     x_no_data_found := TRUE;
342     -- Get current database values
343     OPEN okl_k_headers_v_pk_csr (p_khrv_rec.id);
344     FETCH okl_k_headers_v_pk_csr INTO
345        l_khrv_rec.ID,
346         l_khrv_rec.OBJECT_VERSION_NUMBER,
347         l_khrv_rec.ISG_ID,
348         l_khrv_rec.KHR_ID,
349         l_khrv_rec.PDT_ID,
350         l_khrv_rec.AMD_CODE,
351         l_khrv_rec.DATE_FIRST_ACTIVITY,
352         l_khrv_rec.GENERATE_ACCRUAL_YN,
353         l_khrv_rec.GENERATE_ACCRUAL_OVERRIDE_YN,
354         l_khrv_rec.DATE_REFINANCED,
355         l_khrv_rec.CREDIT_ACT_YN,
356         l_khrv_rec.TERM_DURATION,
357         l_khrv_rec.CONVERTED_ACCOUNT_YN,
358         l_khrv_rec.DATE_CONVERSION_EFFECTIVE,
359         l_khrv_rec.SYNDICATABLE_YN,
360         l_khrv_rec.SALESTYPE_YN,
361         l_khrv_rec.DATE_DEAL_TRANSFERRED,
362         l_khrv_rec.DATETIME_PROPOSAL_EFFECTIVE,
363         l_khrv_rec.DATETIME_PROPOSAL_INEFFECTIVE,
364         l_khrv_rec.DATE_PROPOSAL_ACCEPTED,
365         l_khrv_rec.ATTRIBUTE_CATEGORY,
366         l_khrv_rec.ATTRIBUTE1,
367         l_khrv_rec.ATTRIBUTE2,
368         l_khrv_rec.ATTRIBUTE3,
369         l_khrv_rec.ATTRIBUTE4,
370         l_khrv_rec.ATTRIBUTE5,
371         l_khrv_rec.ATTRIBUTE6,
372         l_khrv_rec.ATTRIBUTE7,
373         l_khrv_rec.ATTRIBUTE8,
374         l_khrv_rec.ATTRIBUTE9,
375         l_khrv_rec.ATTRIBUTE10,
376         l_khrv_rec.ATTRIBUTE11,
377         l_khrv_rec.ATTRIBUTE12,
378         l_khrv_rec.ATTRIBUTE13,
379         l_khrv_rec.ATTRIBUTE14,
380         l_khrv_rec.ATTRIBUTE15,
381         l_khrv_rec.CREATED_BY,
382         l_khrv_rec.CREATION_DATE,
383         l_khrv_rec.LAST_UPDATED_BY,
384         l_khrv_rec.LAST_UPDATE_DATE,
385         l_khrv_rec.LAST_UPDATE_LOGIN,
386         l_khrv_rec.PRE_TAX_YIELD,
387         l_khrv_rec.AFTER_TAX_YIELD,
388         l_khrv_rec.IMPLICIT_INTEREST_RATE,
389         l_khrv_rec.IMPLICIT_NON_IDC_INTEREST_RATE,
390         l_khrv_rec.TARGET_PRE_TAX_YIELD,
391         l_khrv_rec.TARGET_AFTER_TAX_YIELD,
392         l_khrv_rec.TARGET_IMPLICIT_INTEREST_RATE,
393         l_khrv_rec.TARGET_IMPLICIT_NONIDC_INTRATE,
394         l_khrv_rec.DATE_LAST_INTERIM_INTEREST_CAL,
395         l_khrv_rec.DEAL_TYPE,
396         l_khrv_rec.PRE_TAX_IRR,
397         l_khrv_rec.AFTER_TAX_IRR,
398         l_khrv_rec.EXPECTED_DELIVERY_DATE,
399         l_khrv_rec.ACCEPTED_DATE,
400         l_khrv_rec.PREFUNDING_ELIGIBLE_YN,
401         l_khrv_rec.REVOLVING_CREDIT_YN,
402         l_khrv_rec.CURRENCY_CONVERSION_RATE,
403         l_khrv_rec.CURRENCY_CONVERSION_DATE,
404 	l_khrv_rec.CURRENCY_CONVERSION_TYPE,
405 	l_khrv_rec.ASSIGNABLE_YN
406         ;
407     x_no_data_found := okl_k_headers_v_pk_csr%NOTFOUND;
408     CLOSE okl_k_headers_v_pk_csr;
409     RETURN(l_khrv_rec);
410   END get_rec;
411 
412   FUNCTION get_rec (
413     p_khrv_rec                     IN khrv_rec_type
414   ) RETURN khrv_rec_type IS
415     l_row_notfound                 BOOLEAN := TRUE;
416   BEGIN
417     RETURN(get_rec(p_khrv_rec, l_row_notfound));
418   END get_rec;
419 
420 -- Start of comments
421 --
422 -- Procedure Name  : create_from_template
423 -- Description     : creates a deal from a template
424 -- Business Rules  :
425 -- Parameters      :
426 -- Version         : 1.0
427 -- End of comments
428   PROCEDURE create_from_template(
429     p_api_version                  IN NUMBER,
430     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
431     x_return_status                OUT NOCOPY VARCHAR2,
432     x_msg_count                    OUT NOCOPY NUMBER,
433     x_msg_data                     OUT NOCOPY VARCHAR2,
434     p_contract_number              IN  VARCHAR2,
435     p_source_chr_id                IN  NUMBER,
436     x_chr_id                       OUT NOCOPY  NUMBER) AS
437 
438     l_end_date           OKL_K_HEADERS_FULL_V.END_DATE%TYPE DEFAULT NULL;
439     l_start_date         OKL_K_HEADERS_FULL_V.START_DATE%TYPE DEFAULT NULL;
440     l_term_duration      OKL_K_HEADERS_FULL_V.TERM_DURATION%TYPE DEFAULT NULL;
441 
442     lp_chrv_rec OKL_OKC_MIGRATION_PVT.chrv_rec_type;
443     lx_chrv_rec OKL_OKC_MIGRATION_PVT.chrv_rec_type;
444     lp_khrv_rec OKL_CONTRACT_PUB.khrv_rec_type;
445     lx_khrv_rec OKL_CONTRACT_PUB.khrv_rec_type;
446 
447     CURSOR get_k_start_date_and_term_csr(l_chr_id NUMBER) IS
448     -- START: cklee/mvasudev,6/2/2005, Bug#4392051/okl.h 4437938
449 	--SELECT ADD_MONTHS(start_date,term_duration)-1
450 	SELECT chr.start_date, khr.term_duration
451 	FROM okl_k_headers khr,
452          okc_k_headers_b chr
453     WHERE khr.id = chr.id
454 	AND chr.id = l_chr_id;
455     -- START: cklee/mvasudev,6/2/2005, Bug#4392051/okl.h 4437938
456 	--WHERE id = l_chr_id;
457 
458     --Bug 4654486
459     l_scs_code                     VARCHAR2(30);
460 
461     Cursor l_scs_csr  is
462     Select scs_code
463     From   okc_k_headers_b
464     where  id = p_source_chr_id;
465     --Bug 4654486 : end
466 
467   BEGIN
468 
469   --Bug 4654486
470    --Call the old api in case of MASTER_LEASE agreement
471     OPEN l_scs_csr;
472     FETCH l_scs_csr into l_scs_code;
473     CLOSE l_scs_csr;
474 
475     IF (l_scs_code  IS NOT NULL) AND (l_scs_code  = 'MASTER_LEASE')  Then
476        OKL_COPY_CONTRACT_PUB.copy_lease_contract(
477           p_api_version              => p_api_version,
478           p_init_msg_list            => p_init_msg_list,
479           x_return_status            => x_return_status,
480           x_msg_count                => x_msg_count,
481           x_msg_data                 => x_msg_data,
482           p_chr_id                   => p_source_chr_id,
483           p_contract_number          => p_contract_number,
484           p_contract_number_modifier => null,
485           p_renew_ref_yn             => OKC_API.G_FALSE,
486           p_trans_type               => 'CFA',
487           x_chr_id                   => x_chr_id);
488     ELSE
489       OKL_COPY_CONTRACT_PUB.copy_lease_contract_new(
490       p_api_version              => p_api_version,
491       p_init_msg_list            => p_init_msg_list,
492       x_return_status            => x_return_status,
493       x_msg_count                => x_msg_count,
494       x_msg_data                 => x_msg_data,
495       p_chr_id                   => p_source_chr_id,
496       p_contract_number          => p_contract_number,
497       p_contract_number_modifier => NULL,
498       p_renew_ref_yn             => OKC_API.G_FALSE,
499       p_trans_type               => 'CFA',
500       x_chr_id                   => x_chr_id);
501     END IF;
502 
503 	  -- START: cklee/mvasudev,6/2/2005, Bug#4392051/okl.h 4437938
504 	  /*
505       OPEN get_k_start_date_and_term_csr(x_chr_id);
506       FETCH get_k_start_date_and_term_csr INTO l_end_date;
507       CLOSE get_k_start_date_and_term_csr;
508 	  */
509 	  FOR get_k_start_date_and_term_rec IN get_k_start_date_and_term_csr(x_chr_id)
510 	  LOOP
511 	    l_end_date := OKL_LLA_UTIL_PVT.calculate_end_date(get_k_start_date_and_term_rec.start_date,get_k_start_date_and_term_rec.term_duration);
512 	  END LOOP;
513 	  -- END: cklee/mvasudev,6/2/2005, Bug#4392051/okl.h 4437938
514 
515       lp_chrv_rec.id := x_chr_id;
516       lp_khrv_rec.id := x_chr_id;
517       lp_khrv_rec.template_type_code := OKL_TEMP_TYPE_CONTRACT;
518       lp_chrv_rec.end_date := l_end_date;
519 
520 
521       IF l_end_date IS NOT NULL THEN
522       	      OKL_CONTRACT_PUB.update_contract_header(
523 	         p_api_version    => p_api_version,
524 	         p_init_msg_list  => p_init_msg_list,
525 	         x_return_status  => x_return_status,
526 	         x_msg_count      => x_msg_count,
527 	         x_msg_data       => x_msg_data,
528 	         p_chrv_rec       => lp_chrv_rec,
529 	         p_khrv_rec       => lp_khrv_rec,
530 	         x_chrv_rec       => lx_chrv_rec,
531 	         x_khrv_rec       => lx_khrv_rec);
532       END IF;
533 
534   END;
535 
536 
537 -- Start of comments
538 --
539 -- Procedure Name  : create_from_contract
540 -- Description     : creates a deal from a template
541 -- Business Rules  : I might need to provide yes to p_renew_ref_yn. Then I need to provide Class Operation ID
542 --                   somewhere inside that package
543 -- Parameters      :
544 -- Version         : 1.0
545 -- End of comments
546   PROCEDURE create_from_contract(
547     p_api_version                  IN NUMBER,
548     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
549     x_return_status                OUT NOCOPY VARCHAR2,
550     x_msg_count                    OUT NOCOPY NUMBER,
551     x_msg_data                     OUT NOCOPY VARCHAR2,
552     p_contract_number              IN  VARCHAR2,
553     p_source_chr_id                IN  NUMBER,
554     x_chr_id                       OUT NOCOPY NUMBER) AS
555 
556     --Bug 4654486
557     l_scs_code                     VARCHAR2(30);
558 
559     Cursor l_scs_csr  is
560     Select scs_code
561     From   okc_k_headers_b
562     where  id = p_source_chr_id;
563     --Bug 4654486 : end
564 
565   BEGIN
566 
567   --Bug 4654486
568    --Call the old api in case of MASTER_LEASE agreement
569     OPEN l_scs_csr;
570     FETCH l_scs_csr into l_scs_code;
571     CLOSE l_scs_csr;
572 
573     IF (l_scs_code  IS NOT NULL) AND (l_scs_code  = 'MASTER_LEASE')  Then
574        OKL_COPY_CONTRACT_PUB.copy_lease_contract(
575           p_api_version              => p_api_version,
576           p_init_msg_list            => p_init_msg_list,
577           x_return_status            => x_return_status,
578           x_msg_count                => x_msg_count,
579           x_msg_data                 => x_msg_data,
580           p_chr_id                   => p_source_chr_id,
581           p_contract_number          => p_contract_number,
582           p_contract_number_modifier => null,
583           p_renew_ref_yn             => OKC_API.G_FALSE,
584           p_trans_type               => 'CFA',
585           x_chr_id                   => x_chr_id);
586     ELSE
587       OKL_COPY_CONTRACT_PUB.copy_lease_contract_new(
588       p_api_version              => p_api_version,
589       p_init_msg_list            => p_init_msg_list,
590       x_return_status            => x_return_status,
591       x_msg_count                => x_msg_count,
592       x_msg_data                 => x_msg_data,
593       p_chr_id                   => p_source_chr_id,
594       p_contract_number          => p_contract_number,
595       p_contract_number_modifier => NULL,
596       p_renew_ref_yn             => OKC_API.G_FALSE,
597       p_trans_type               => 'CFA',
598       x_chr_id                   => x_chr_id);
599     END IF;
600 
601     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
602        RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
603     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
604        RAISE OKC_API.G_EXCEPTION_ERROR;
605     END IF;
606 
607   END;
608 
609 
610 ------------------------------------------------------------------------------
611 -- PROCEDURE get_sll_rules
612 --
613 --  This procedure retrieves all SLL related to given SLH rule under LALEVL Category
614 --
615 -- Calls:
616 -- Called By:
617 ------------------------------------------------------------------------------
618    PROCEDURE get_sll_rules(
619                            x_return_status  OUT NOCOPY VARCHAR2,
620                            x_msg_count      OUT NOCOPY NUMBER,
621                            x_msg_data       OUT NOCOPY VARCHAR2,
622                            p_rgpv_rec       IN  rgpv_rec_type,
623                            p_rdf_code       IN  VARCHAR2,
624                            p_slh_id         IN  NUMBER,
625                            x_rulv_tbl       OUT NOCOPY rulv_tbl_type,
626                            x_rule_count     OUT NOCOPY NUMBER
627                           ) IS
628     CURSOR okc_rulv_csr (p_rgp_id IN NUMBER,
629                          p_rdf_code IN VARCHAR2,
630                          p_slh_id   IN NUMBER) IS
631     SELECT
632             ID,
633             OBJECT_VERSION_NUMBER,
634             SFWT_FLAG,
635             OBJECT1_ID1,
636             OBJECT2_ID1,
637             OBJECT3_ID1,
638             OBJECT1_ID2,
639             OBJECT2_ID2,
640             OBJECT3_ID2,
641             JTOT_OBJECT1_CODE,
642             JTOT_OBJECT2_CODE,
643             JTOT_OBJECT3_CODE,
644             DNZ_CHR_ID,
645             RGP_ID,
646             PRIORITY,
647             STD_TEMPLATE_YN,
648             COMMENTS,
649             WARN_YN,
650             ATTRIBUTE_CATEGORY,
651             ATTRIBUTE1,
652             ATTRIBUTE2,
653             ATTRIBUTE3,
654             ATTRIBUTE4,
655             ATTRIBUTE5,
656             ATTRIBUTE6,
657             ATTRIBUTE7,
658             ATTRIBUTE8,
659             ATTRIBUTE9,
660             ATTRIBUTE10,
661             ATTRIBUTE11,
662             ATTRIBUTE12,
663             ATTRIBUTE13,
664             ATTRIBUTE14,
665             ATTRIBUTE15,
666             CREATED_BY,
667             CREATION_DATE,
668             LAST_UPDATED_BY,
669             LAST_UPDATE_DATE,
670             LAST_UPDATE_LOGIN,
671             --TEXT,
672             RULE_INFORMATION_CATEGORY,
673             RULE_INFORMATION1,
674             RULE_INFORMATION2,
675             RULE_INFORMATION3,
676             RULE_INFORMATION4,
677             RULE_INFORMATION5,
678             RULE_INFORMATION6,
679             RULE_INFORMATION7,
680             RULE_INFORMATION8,
681             RULE_INFORMATION9,
682             RULE_INFORMATION10,
683             RULE_INFORMATION11,
684             RULE_INFORMATION12,
685             RULE_INFORMATION13,
686             RULE_INFORMATION14,
687             RULE_INFORMATION15,
688             TEMPLATE_YN,
689             ans_set_jtot_object_code,
690             ans_set_jtot_object_id1,
691             ans_set_jtot_object_id2,
692             DISPLAY_SEQUENCE
693      FROM Okc_Rules_V
694      WHERE okc_rules_v.rgp_id      = p_rgp_id
695      AND   okc_rules_v.object2_id1 = p_slh_id
696      AND   RULE_INFORMATION_CATEGORY = DECODE(p_rdf_code,NULL,RULE_INFORMATION_CATEGORY,p_rdf_code);
697 
698      l_rulv_rec                  rulv_rec_type;
699      i                           NUMBER DEFAULT 0;
700      l_proc_name                 VARCHAR2(35) := 'GET_SLL_RULES';
701   BEGIN
702 
703     -- Get current database values
704     OPEN okc_rulv_csr (p_rgpv_rec.id,
705                        p_rdf_code,
706                        p_slh_id);
707     LOOP
708     FETCH okc_rulv_csr INTO
709               l_rulv_rec.ID,
710               l_rulv_rec.OBJECT_VERSION_NUMBER,
711               l_rulv_rec.SFWT_FLAG,
712               l_rulv_rec.OBJECT1_ID1,
713               l_rulv_rec.OBJECT2_ID1,
714               l_rulv_rec.OBJECT3_ID1,
715               l_rulv_rec.OBJECT1_ID2,
716               l_rulv_rec.OBJECT2_ID2,
717               l_rulv_rec.OBJECT3_ID2,
718               l_rulv_rec.JTOT_OBJECT1_CODE,
719               l_rulv_rec.JTOT_OBJECT2_CODE,
720               l_rulv_rec.JTOT_OBJECT3_CODE,
721               l_rulv_rec.DNZ_CHR_ID,
722               l_rulv_rec.RGP_ID,
723               l_rulv_rec.PRIORITY,
724               l_rulv_rec.STD_TEMPLATE_YN,
725               l_rulv_rec.COMMENTS,
726               l_rulv_rec.WARN_YN,
727               l_rulv_rec.ATTRIBUTE_CATEGORY,
728               l_rulv_rec.ATTRIBUTE1,
729               l_rulv_rec.ATTRIBUTE2,
730               l_rulv_rec.ATTRIBUTE3,
731               l_rulv_rec.ATTRIBUTE4,
732               l_rulv_rec.ATTRIBUTE5,
733               l_rulv_rec.ATTRIBUTE6,
734               l_rulv_rec.ATTRIBUTE7,
735               l_rulv_rec.ATTRIBUTE8,
736               l_rulv_rec.ATTRIBUTE9,
737               l_rulv_rec.ATTRIBUTE10,
738               l_rulv_rec.ATTRIBUTE11,
739               l_rulv_rec.ATTRIBUTE12,
740               l_rulv_rec.ATTRIBUTE13,
741               l_rulv_rec.ATTRIBUTE14,
742               l_rulv_rec.ATTRIBUTE15,
743               l_rulv_rec.CREATED_BY,
744               l_rulv_rec.CREATION_DATE,
745               l_rulv_rec.LAST_UPDATED_BY,
746               l_rulv_rec.LAST_UPDATE_DATE,
747               l_rulv_rec.LAST_UPDATE_LOGIN,
748               --l_rulv_rec.TEXT,
749               l_rulv_rec.RULE_INFORMATION_CATEGORY,
750               l_rulv_rec.RULE_INFORMATION1,
751               l_rulv_rec.RULE_INFORMATION2,
752               l_rulv_rec.RULE_INFORMATION3,
753               l_rulv_rec.RULE_INFORMATION4,
754               l_rulv_rec.RULE_INFORMATION5,
755               l_rulv_rec.RULE_INFORMATION6,
756               l_rulv_rec.RULE_INFORMATION7,
757               l_rulv_rec.RULE_INFORMATION8,
758               l_rulv_rec.RULE_INFORMATION9,
759               l_rulv_rec.RULE_INFORMATION10,
760               l_rulv_rec.RULE_INFORMATION11,
761               l_rulv_rec.RULE_INFORMATION12,
762               l_rulv_rec.RULE_INFORMATION13,
763               l_rulv_rec.RULE_INFORMATION14,
764               l_rulv_rec.RULE_INFORMATION15,
765               l_rulv_rec.TEMPLATE_YN,
766               l_rulv_rec.ans_set_jtot_object_code,
767               l_rulv_rec.ans_set_jtot_object_id1,
768               l_rulv_rec.ans_set_jtot_object_id2,
769               l_rulv_rec.DISPLAY_SEQUENCE ;
770     EXIT WHEN okc_rulv_csr%NOTFOUND;
771       i := okc_rulv_csr%RowCount;
772       x_rulv_tbl(i) := l_rulv_rec;
773     END LOOP;
774     CLOSE okc_rulv_csr;
775     x_rule_count := i;
776 
777     RETURN;
778 
779    END get_sll_rules;
780 
781 ------------------------------------------------------------------------------
782 -- PROCEDURE sync_slh_sll
783 --
784 --  This procedure synchronizes SLH and SLL Rules
785 --
786 -- Calls:
787 -- Called By:
788 ------------------------------------------------------------------------------
789 
790   PROCEDURE sync_slh_sll(
791                          x_return_status OUT NOCOPY VARCHAR2,
792                          x_msg_count     OUT NOCOPY NUMBER,
793                          x_msg_data      OUT NOCOPY VARCHAR2,
794                          p_new_chr_id    IN  OKC_K_HEADERS_V.ID%TYPE,
795                          p_old_rgp_id    IN  NUMBER,
796                          p_new_rgp_id    IN  NUMBER
797                         ) IS
798 
799   l_proc_name   VARCHAR2(35)    := 'SYNC_SLH_SLL';
800   sync_failed   EXCEPTION;
801 
802   x_new_rgpv_rec      rgpv_rec_type;
803   x_new_slh_rulv_rec  rulv_rec_type;
804 
805   x_slh_rulv_tbl      rulv_tbl_type;
806   x_slh_rule_count    NUMBER;
807 
808   x_sll_rulv_tbl      rulv_tbl_type;
809   x_sll_rule_count    NUMBER;
810 
811   x_rulv_rec          rulv_rec_type;
812 
813   l_old_rgpv_rec      rgpv_rec_type;
814   l_slh_rulv_rec      rulv_rec_type;
815   l_sll_rulv_rec      rulv_rec_type;
816 
817   l_rebook_rgp_id NUMBER;
818   l_orig_rgp_id   NUMBER;
819 
820   l_rulv_tbl      rulv_tbl_type;
821   i               NUMBER := 0;
822 
823   CURSOR orig_cle_csr(p_cle_id OKC_K_LINES_V.ID%TYPE) IS
824   SELECT orig_system_id1
825   FROM   okc_k_lines_v
826   WHERE  id = p_cle_id;
827 
828   CURSOR del_rgp_csr(p_chr_id OKC_K_HEADERS_V.ID%TYPE,
829                      p_rgp_id NUMBER) IS
830   SELECT id
831   FROM   okc_rule_groups_v
832   WHERE  dnz_chr_id = p_chr_id
833   AND    id         = p_rgp_id
834   AND    rgd_code   = 'LALEVL';
835 
836   CURSOR rule_csr(p_rgp_id NUMBER) IS
837   SELECT id
838   FROM   okc_rules_v
839   WHERE  rgp_id = p_rgp_id
840   AND    rule_information_category IN ('LASLH','LASLL');
841 
842   BEGIN
843     x_return_status := Okc_Api.G_RET_STS_SUCCESS;
844 
845       -- Delete SLH, SLL from Original Contract
846       i := 1;
847 
848       FOR del_rgp_rec IN del_rgp_csr(p_new_chr_id,
849                                      p_new_rgp_id)
850       LOOP
851          FOR rule_rec IN rule_csr(del_rgp_rec.id)
852          LOOP
853             l_rulv_tbl(i).id := rule_rec.id;
854             i := i+ 1;
855          END LOOP;
856       END LOOP;
857 
858       Okl_Rule_Pub.delete_rule(
859                                p_api_version    => 1.0,
860                                p_init_msg_list  => Okc_Api.G_FALSE,
861                                x_return_status  => x_return_status,
862                                x_msg_count      => x_msg_count,
863                                x_msg_data       => x_msg_data,
864                                p_rulv_tbl       => l_rulv_tbl
865                               );
866       IF (x_return_status <> Okc_Api.G_RET_STS_SUCCESS) THEN
867         RAISE sync_failed;
868       END IF;
869 
870       l_old_rgpv_rec.id := p_old_rgp_id;
871       --
872       -- Get SLH Rule from OLD Contract
873       --
874       Okl_Rule_Apis_Pvt.Get_Contract_Rules(
875                                            p_api_version    => 1.0,
876                                            p_init_msg_list  => Okl_Api.G_FALSE,
877                                            p_rgpv_rec       => l_old_rgpv_rec,
878                                            p_rdf_code       => 'LASLH',
879                                            x_return_status  => x_return_status,
880                                            x_msg_count      => x_msg_count,
881                                            x_msg_data       => x_msg_data,
882                                            x_rulv_tbl       => x_slh_rulv_tbl,
883                                            x_rule_count     => x_slh_rule_count
884                                           );
885       IF (x_return_status <> Okc_Api.G_RET_STS_SUCCESS) THEN
886          RAISE sync_failed;
887       END IF;
888 
889       --x_slh_rulv_tbl_out := x_slh_rulv_tbl;
890       --x_slh_count        := x_slh_rule_count;
891 
892       --
893       -- create SLH Rule from OLD Contract
894       --
895       FOR i IN 1..x_slh_rule_count
896       LOOP
897          l_slh_rulv_rec            := x_slh_rulv_tbl(i);
898          l_slh_rulv_rec.rgp_id     := p_new_rgp_id;
899          l_slh_rulv_rec.dnz_chr_id := p_new_chr_id;
900 
901          Okl_Rule_Pub.create_rule(
902                                   p_api_version     => 1.0,
903                                   p_init_msg_list   => Okc_Api.G_FALSE,
904                                   x_return_status   => x_return_status,
905                                   x_msg_count       => x_msg_count,
906                                   x_msg_data        => x_msg_data,
907                                   p_rulv_rec        => l_slh_rulv_rec,
908                                   x_rulv_rec        => x_new_slh_rulv_rec
909                                  );
910          IF (x_return_status <> Okc_Api.G_RET_STS_SUCCESS) THEN
911              x_return_status := Okc_Api.G_RET_STS_ERROR;
912              RAISE sync_failed;
913          END IF;
914 
915          --
916          -- Get SLL Rules from Header for a SLH
917          --
918          get_sll_rules(
919                        x_return_status  => x_return_status,
920                        x_msg_count      => x_msg_count,
921                        x_msg_data       => x_msg_data,
922                        p_rgpv_rec       => l_old_rgpv_rec,
923                        p_rdf_code       => 'LASLL',
924                        p_slh_id         => x_slh_rulv_tbl(i).id,
925                        x_rulv_tbl       => x_sll_rulv_tbl,
926                        x_rule_count     => x_sll_rule_count
927                       );
928          IF (x_return_status <> Okc_Api.G_RET_STS_SUCCESS) THEN
929             RAISE sync_failed;
930          END IF;
931 
932          --x_sll_rulv_tbl_out := x_sll_rulv_tbl;
933          --x_sll_count        := x_sll_rule_count;
934 
935          -- Create a SLL rule under SLH created above
936          FOR i IN 1..x_sll_rule_count
937          LOOP
938 
939             l_sll_rulv_rec             := x_sll_rulv_tbl(i);
940             l_sll_rulv_rec.rgp_id      := p_new_rgp_id;
941             l_sll_rulv_rec.object2_id1 := x_new_slh_rulv_rec.id;
942             l_sll_rulv_rec.dnz_chr_id  := p_new_chr_id;
943 
944             Okl_Rule_Pub.create_rule(
945                                      p_api_version     => 1.0,
946                                      p_init_msg_list   => Okc_Api.G_FALSE,
947                                      x_return_status   => x_return_status,
948                                      x_msg_count       => x_msg_count,
949                                      x_msg_data        => x_msg_data,
950                                      p_rulv_rec        => l_sll_rulv_rec,
951                                      x_rulv_rec        => x_rulv_rec
952                                     );
953                IF (x_return_status <> Okc_Api.G_RET_STS_SUCCESS) THEN
954                    x_return_status := Okc_Api.G_RET_STS_ERROR;
955                    RAISE sync_failed;
956                END IF;
957          END LOOP; -- SLL
958 
959       END LOOP; -- SLH
960 
961   EXCEPTION
962     WHEN sync_failed THEN
963        x_return_status := Okc_Api.G_RET_STS_ERROR;
964   END sync_slh_sll;
965 
966 -- Start Bug 2376998
967 ------------------------------------------------------------------------------
968 -- PROCEDURE link_slh_sll
969 --
970 --  This procedure links SLH and SLL by calling sync_slh_sll at LINE level
971 --
972 -- Calls:
973 -- Called By:
974 ------------------------------------------------------------------------------
975 
976   PROCEDURE link_slh_sll(
977                          x_return_status OUT NOCOPY VARCHAR2,
978                          x_msg_count     OUT NOCOPY NUMBER,
979                          x_msg_data      OUT NOCOPY VARCHAR2,
980                          p_old_chr_id    IN  OKC_K_HEADERS_V.ID%TYPE,
981                          p_new_cle_id    IN  OKC_K_LINES_V.ID%TYPE,
982                          p_new_chr_id    IN  OKC_K_HEADERS_V.ID%TYPE
983                         ) IS
984 
985  link_failed EXCEPTION;
986 
987  CURSOR lalevl_csr (p_chr_id OKC_K_HEADERS_V.ID%TYPE,
988                     p_cle_id OKC_K_LINES_V.ID%TYPE) IS
989  SELECT id,
990         cle_id
991  FROM   okc_rule_groups_v
992  WHERE  dnz_chr_id = p_chr_id
993  AND    cle_id     = p_cle_id
994  AND    rgd_code   = 'LALEVL';
995 
996  CURSOR old_lalevl_csr (p_chr_id OKC_K_HEADERS_V.ID%TYPE,
997                         p_cle_id OKC_K_LINES_V.ID%TYPE) IS
998  SELECT id
999  FROM   okc_rule_groups_v
1000  WHERE  dnz_chr_id = p_chr_id
1001  AND    rgd_code   = 'LALEVL'
1002  AND    (cle_id    = p_cle_id
1003          OR ( cle_id IS NULL
1004               AND
1005               p_cle_id IS NULL));
1006 
1007  CURSOR old_line_csr (p_cle_id OKC_K_LINES_V.ID%TYPE) IS
1008  SELECT orig_system_id1
1009  FROM   OKC_K_LINES_V
1010  WHERE  id = p_cle_id;
1011 
1012  l_old_lalevl_id NUMBER;
1013  l_new_lalevl_id NUMBER;
1014  l_old_cle_id    OKC_K_LINES_V.ID%TYPE;
1015  l_new_cle_id    OKC_K_LINES_V.ID%TYPE;
1016 
1017  BEGIN
1018 
1019    -- get into the loop if lalevl entries found for the new contract
1020    FOR new_lalevl_rec IN lalevl_csr(p_new_chr_id,
1021                                     p_new_cle_id)
1022    LOOP
1023       l_new_lalevl_id := new_lalevl_rec.id;
1024       l_new_cle_id    := new_lalevl_rec.cle_id; -- new lalevl cle id in the rule group
1025 
1026       l_old_cle_id    := NULL;
1027       IF (l_new_cle_id IS NOT NULL) THEN
1028          OPEN old_line_csr (l_new_cle_id);  --get the old cle id
1029          FETCH old_line_csr INTO l_old_cle_id;
1030          CLOSE old_line_csr;
1031       END IF;
1032 
1033       OPEN old_lalevl_csr(p_old_chr_id,
1034                           l_old_cle_id);
1035       FETCH old_lalevl_csr INTO l_old_lalevl_id; -- get the old lalevl rue group id
1036       CLOSE old_lalevl_csr;
1037 
1038       sync_slh_sll(
1039                    x_return_status => x_return_status,
1040                    x_msg_count     => x_msg_count,
1041                    x_msg_data      => x_msg_data,
1042                    p_new_chr_id    => p_new_chr_id,
1043                    p_old_rgp_id    => l_old_lalevl_id,
1044                    p_new_rgp_id    => l_new_lalevl_id
1045                   );
1046       IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1047          RAISE Okl_Api.G_EXCEPTION_ERROR;
1048       END IF;
1049    END LOOP;
1050 
1051  EXCEPTION
1052    WHEN link_failed THEN
1053       x_return_status := OKC_API.G_RET_STS_ERROR;
1054  END link_slh_sll;
1055 
1056   PROCEDURE link_slh_sll(
1057                          x_return_status OUT NOCOPY VARCHAR2,
1058                          x_msg_count     OUT NOCOPY NUMBER,
1059                          x_msg_data      OUT NOCOPY VARCHAR2,
1060                          p_old_chr_id    IN OKC_K_HEADERS_V.ID%TYPE,
1061                          p_new_chr_id    IN OKC_K_HEADERS_V.ID%TYPE
1062                         ) IS
1063 
1064  link_failed EXCEPTION;
1065 
1066  CURSOR lalevl_csr (p_chr_id OKC_K_HEADERS_V.ID%TYPE) IS
1067  SELECT id,
1068         cle_id
1069  FROM   okc_rule_groups_v
1070  WHERE  dnz_chr_id = p_chr_id
1071  AND    cle_id     IS NULL       -- Bug 2376998
1072  AND    rgd_code   = 'LALEVL';
1073 
1074  CURSOR old_lalevl_csr (p_chr_id OKC_K_HEADERS_V.ID%TYPE,
1075                         p_cle_id OKC_K_LINES_V.ID%TYPE) IS
1076  SELECT id
1077  FROM   okc_rule_groups_v
1078  WHERE  dnz_chr_id = p_chr_id
1079  AND    rgd_code   = 'LALEVL'
1080  AND    (cle_id    = p_cle_id
1081          OR ( cle_id IS NULL
1082               AND
1083               p_cle_id IS NULL));
1084 
1085  CURSOR old_line_csr (p_cle_id OKC_K_LINES_V.ID%TYPE) IS
1086  SELECT orig_system_id1
1087  FROM   OKC_K_LINES_V
1088  WHERE  id = p_cle_id;
1089 
1090  l_old_lalevl_id NUMBER;
1091  l_new_lalevl_id NUMBER;
1092  l_old_cle_id    OKC_K_LINES_V.ID%TYPE;
1093  l_new_cle_id    OKC_K_LINES_V.ID%TYPE;
1094 
1095  BEGIN
1096 
1097    FOR new_lalevl_rec IN lalevl_csr(p_new_chr_id)
1098    LOOP
1099       l_new_lalevl_id := new_lalevl_rec.id;
1100       l_new_cle_id    := new_lalevl_rec.cle_id;
1101 
1102       l_old_cle_id    := NULL;
1103       IF (l_new_cle_id IS NOT NULL) THEN
1104          OPEN old_line_csr (l_new_cle_id);
1105          FETCH old_line_csr INTO l_old_cle_id;
1106          CLOSE old_line_csr;
1107       END IF;
1108 
1109       OPEN old_lalevl_csr(p_old_chr_id,
1110                           l_old_cle_id);
1111       FETCH old_lalevl_csr INTO l_old_lalevl_id;
1112       CLOSE old_lalevl_csr;
1113 
1114       sync_slh_sll(
1115                    x_return_status => x_return_status,
1116                    x_msg_count     => x_msg_count,
1117                    x_msg_data      => x_msg_data,
1118                    p_new_chr_id    => p_new_chr_id,
1119                    p_old_rgp_id    => l_old_lalevl_id,
1120                    p_new_rgp_id    => l_new_lalevl_id
1121                   );
1122       IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1123          RAISE OKL_API.G_EXCEPTION_ERROR;
1124       END IF;
1125    END LOOP;
1126 
1127  EXCEPTION
1128    WHEN link_failed THEN
1129       x_return_status := OKC_API.G_RET_STS_ERROR;
1130  END link_slh_sll;
1131 
1132 
1133   PROCEDURE copy_contract(
1134     p_api_version                  IN NUMBER,
1135     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
1136     x_return_status                OUT NOCOPY VARCHAR2,
1137     x_msg_count                    OUT NOCOPY NUMBER,
1138     x_msg_data                     OUT NOCOPY VARCHAR2,
1139     p_contract_number              IN  VARCHAR2,
1140     p_source_chr_id                IN  NUMBER,
1141     x_chr_id                       OUT NOCOPY NUMBER) AS
1142 
1143     lp_chrv_rec OKL_OKC_MIGRATION_PVT.chrv_rec_type;
1144     lx_chrv_rec OKL_OKC_MIGRATION_PVT.chrv_rec_type;
1145     lp_khrv_rec OKL_CONTRACT_PUB.khrv_rec_type;
1146     lx_khrv_rec OKL_CONTRACT_PUB.khrv_rec_type;
1147 
1148     lp_cplv_rec OKC_CONTRACT_PARTY_PUB.cplv_rec_type;
1149     lx_cplv_rec OKC_CONTRACT_PARTY_PUB.cplv_rec_type;
1150 
1151     CURSOR get_curr_csr(p_id IN NUMBER) IS
1152     SELECT id,currency_code,currency_conversion_type,currency_conversion_date,currency_conversion_rate, cust_acct_id, khr_id
1153     FROM   okl_k_headers_full_v
1154     WHERE  scs_code = 'QUOTE'
1155     AND    id = p_id;
1156 
1157     CURSOR c_rgpv IS
1158     SELECT rgp.id
1159     FROM okc_rule_groups_b rgp, okc_subclass_rg_defs rg_defs
1160     WHERE rgp.dnz_chr_id = p_source_chr_id
1161     AND rgp.rgd_code = rg_defs.rgd_code
1162     AND rg_defs.scs_code = 'LEASE'
1163     AND  rgp.cle_id IS NULL
1164     AND  rgp.rgd_code NOT IN ('LATOWN','CURRENCY');
1165 
1166     CURSOR c_governances IS
1167     SELECT gvr.chr_id_referred
1168     FROM okc_governances gvr,
1169          okc_k_headers_b CHR,
1170          okc_k_headers_b mla
1171 	WHERE gvr.dnz_chr_id = p_source_chr_id
1172     AND gvr.chr_id = p_source_chr_id
1173     AND gvr.cle_id IS NULL
1174     AND CHR.id = gvr.dnz_chr_id
1175     AND mla.id = gvr.chr_id_referred
1176     AND mla.scs_code = 'MASTER_LEASE';
1177 
1178     CURSOR c_catv IS
1179     SELECT id
1180     FROM okc_k_articles_b
1181     WHERE dnz_chr_id = p_source_chr_id
1182     AND cle_id IS NULL;
1183 
1184     CURSOR c_cplv IS
1185     SELECT cpl.id
1186     FROM okc_k_party_roles_b cpl, okc_subclass_roles ROLES
1187     WHERE dnz_chr_id = p_source_chr_id
1188     AND cpl.rle_code = ROLES.rle_code
1189     AND ROLES.scs_code = 'LEASE'
1190     AND cpl.cle_id IS NULL;
1191 
1192 
1193         CURSOR c_lines IS
1194         SELECT cle.id
1195         FROM   okc_k_lines_b cle,
1196                okc_line_styles_b lse,
1197                okc_subclass_top_line stl
1198         WHERE  chr_id = p_source_chr_id
1199         AND    cle.lse_id= lse.id
1200         AND    stl.scs_code = 'LEASE'
1201         AND    lse.id = stl.lse_id
1202         AND    lse.lse_type = 'TLS'
1203         AND    lse.lse_parent_id IS NULL;
1204 
1205         CURSOR new_c_lines(p_dest_chr_id NUMBER) IS
1206         SELECT cle.id
1207         FROM   okc_k_lines_b cle,
1208                okc_line_styles_b lse,
1209                okc_subclass_top_line stl
1210         WHERE  chr_id = p_dest_chr_id
1211         AND    cle.lse_id= lse.id
1212         AND    stl.scs_code = 'LEASE'
1213         AND    lse.id = stl.lse_id
1214         AND    lse.lse_type = 'TLS'
1215         AND    lse.lse_parent_id IS NULL;
1216 
1217     l_cust_acct_id   okc_k_headers_b.cust_acct_id%type;
1218     l_khr_id         okl_k_headers.khr_id%type;
1219 
1220     l_chr_id			NUMBER;
1221     l_rgp_id			NUMBER;
1222     l_cpl_id			NUMBER;
1223     l_cle_id			NUMBER;
1224     l_cle_id_out		NUMBER;
1225     l_api_version	CONSTANT NUMBER	  := 1.0;
1226     l_api_name	VARCHAR2(30) := 'CREATE_NEW_DEAL';
1227 
1228     i				NUMBER;
1229     j				NUMBER := 0;
1230     l_mla_gvr_chr_id_referred NUMBER := NULL;
1231 
1232     l_line_tab okl_copy_asset_pub.klev_tbl_type;
1233     x_cle_id_tbl okl_copy_asset_pub.klev_tbl_type;
1234 
1235     l_currency_code okc_k_headers_b.currency_code%TYPE := NULL;
1236     l_currency_conversion_type okl_k_headers.currency_conversion_type%TYPE := NULL;
1237     l_currency_conversion_date okl_k_headers.currency_conversion_date%TYPE := NULL;
1238     l_currency_conversion_rate okl_k_headers.currency_conversion_rate%TYPE := NULL;
1239 
1240     lp_mla_gvev_rec OKL_OKC_MIGRATION_PVT.gvev_rec_type;
1241     lx_mla_gvev_rec OKL_OKC_MIGRATION_PVT.gvev_rec_type;
1242 
1243   BEGIN
1244 
1245   --  read hdr info from the quote contract and create a lease contract
1246   --  use get_rec to read the info
1247 
1248       x_return_status := OKC_API.START_ACTIVITY(
1249   			p_api_name      => l_api_name,
1250   			p_pkg_name      => g_pkg_name,
1251   			p_init_msg_list => p_init_msg_list,
1252   			l_api_version   => l_api_version,
1253   			p_api_version   => p_api_version,
1254   			p_api_type      => g_api_type,
1255   			x_return_status => x_return_status);
1256 
1257       -- check if activity started successfully
1258       IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1259          RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1260       ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
1261          RAISE OKC_API.G_EXCEPTION_ERROR;
1262       END IF;
1263 
1264       lp_chrv_rec.id := NULL;
1265       l_cust_acct_id := NULL;
1266       l_khr_id := NULL;
1267       OPEN get_curr_csr(p_source_chr_id);
1268       FETCH get_curr_csr INTO lp_chrv_rec.id,l_currency_code,l_currency_conversion_type,l_currency_conversion_date,l_currency_conversion_rate, l_cust_acct_id,l_khr_id;
1269       CLOSE get_curr_csr;
1270 
1271       IF lp_chrv_rec.id IS NULL THEN
1272 	OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'quote_chr_id_not_found');
1273 	x_return_status := OKC_API.g_ret_sts_error;
1274 	RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1275       END IF;
1276 
1277 
1278       lp_khrv_rec.id := lp_chrv_rec.id;
1279       lp_chrv_rec.id := lp_chrv_rec.id;
1280 
1281       lp_chrv_rec := get_rec(lp_chrv_rec);
1282       lp_khrv_rec := get_rec(lp_khrv_rec);
1283 
1284       lp_chrv_rec.id := NULL;
1285       lp_chrv_rec.scs_code := 'LEASE';
1286       lp_khrv_rec.id := NULL;
1287 
1288       lp_chrv_rec.sfwt_flag := 'N';
1289       lp_chrv_rec.object_version_number := 1.0;
1290       lp_chrv_rec.sts_code := G_STS_CODE; -- 'ENTERED';
1291       lp_chrv_rec.scs_code := 'LEASE';
1292       lp_chrv_rec.contract_number := p_contract_number;
1293       lp_chrv_rec.authoring_org_id := OKL_CONTEXT.GET_OKC_ORG_ID;
1294       lp_chrv_rec.inv_organization_id := OKL_CONTEXT.get_okc_organization_id;
1295 --      lp_chrv_rec.currency_code := OKC_CURRENCY_API.GET_OU_CURRENCY(OKL_CONTEXT.GET_OKC_ORG_ID);
1296 
1297       lp_chrv_rec.cust_acct_id := l_cust_acct_id;
1298       lp_chrv_rec.currency_code := l_currency_code;
1299 
1300       lp_khrv_rec.currency_conversion_type := l_currency_conversion_type;
1301       lp_khrv_rec.currency_conversion_date := l_currency_conversion_date;
1302       lp_khrv_rec.currency_conversion_rate := l_currency_conversion_rate;
1303       lp_khrv_rec.khr_id := l_khr_id;
1304 
1305       lp_chrv_rec.currency_code_renewed := NULL;
1306       lp_chrv_rec.template_yn := 'N';
1307       lp_chrv_rec.chr_type := 'CYA';
1308       lp_chrv_rec.archived_yn := 'N';
1309       lp_chrv_rec.deleted_yn := 'N';
1310       lp_chrv_rec.buy_or_sell := 'S';
1311       lp_chrv_rec.issue_or_receive := 'I';
1312       lp_chrv_rec.orig_system_source_code := 'OKL_QUOTE';
1313       lp_chrv_rec.orig_system_id1 := p_source_chr_id;
1314 
1315       lp_khrv_rec.object_version_number := 1.0;
1316       lp_khrv_rec.generate_accrual_yn := 'Y';
1317       lp_khrv_rec.generate_accrual_override_yn := 'N';
1318   /*
1319       OKL_CONTRACT_PUB.validate_contract_header(
1320         p_api_version    => p_api_version,
1321         p_init_msg_list  => p_init_msg_list,
1322         x_return_status  => x_return_status,
1323         x_msg_count      => x_msg_count,
1324         x_msg_data       => x_msg_data,
1325         p_chrv_rec       => lp_chrv_rec,
1326         p_khrv_rec       => lp_khrv_rec);
1327 
1328       If (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) then
1329          raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1330       Elsif (x_return_status = OKC_API.G_RET_STS_ERROR) then
1331          raise OKC_API.G_EXCEPTION_ERROR;
1332       End If;
1333   */
1334       OKL_CONTRACT_PUB.create_contract_header(
1335         p_api_version    => p_api_version,
1336         p_init_msg_list  => p_init_msg_list,
1337         x_return_status  => x_return_status,
1338         x_msg_count      => x_msg_count,
1339         x_msg_data       => x_msg_data,
1340         p_chrv_rec       => lp_chrv_rec,
1341         p_khrv_rec       => lp_khrv_rec,
1342         x_chrv_rec       => lx_chrv_rec,
1343         x_khrv_rec       => lx_khrv_rec);
1344 
1345       IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1346          RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1347       ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
1348          RAISE OKC_API.G_EXCEPTION_ERROR;
1349       END IF;
1350 
1351       x_chr_id := lx_chrv_rec.id;
1352       l_chr_id := x_chr_id;
1353 
1354 -- copy master lease
1355     OPEN c_governances;
1356     FETCH c_governances INTO l_mla_gvr_chr_id_referred;
1357     CLOSE c_governances;
1358 
1359   IF( l_mla_gvr_chr_id_referred IS NOT NULL) THEN
1360 
1361     lp_mla_gvev_rec.id := NULL;
1362     lp_mla_gvev_rec.dnz_chr_id := l_chr_id;
1363     lp_mla_gvev_rec.chr_id := l_chr_id;
1364     lp_mla_gvev_rec.chr_id_referred := l_mla_gvr_chr_id_referred;
1365     lp_mla_gvev_rec.copied_only_yn := 'N';
1366 
1367     OKL_OKC_MIGRATION_PVT.create_governance(
1368         p_api_version    => p_api_version,
1369         p_init_msg_list  => p_init_msg_list,
1370         x_return_status  => x_return_status,
1371         x_msg_count      => x_msg_count,
1372         x_msg_data       => x_msg_data,
1373         p_gvev_rec       => lp_mla_gvev_rec,
1374         x_gvev_rec       => lx_mla_gvev_rec);
1375 
1376       IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1377          RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1378       ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
1379          RAISE OKC_API.G_EXCEPTION_ERROR;
1380       END IF;
1381 
1382    END IF;
1383 
1384 -- parties
1385       FOR l_c_cplv IN c_cplv LOOP
1386             -- l_old_return_status := x_return_status;
1387 
1388         OKL_COPY_CONTRACT_PUB.copy_party_roles(
1389  	        p_api_version    => p_api_version,
1390 	        p_init_msg_list  => p_init_msg_list,
1391 	        x_return_status  => x_return_status,
1392 	        x_msg_count      => x_msg_count,
1393 	        x_msg_data       => x_msg_data,
1394 	        p_cpl_id         => l_c_cplv.id,
1395 	        p_cle_id         => NULL,
1396 	        p_chr_id         => l_chr_id,
1397 	        P_rle_code       => NULL,
1398 	        x_cpl_id	 => l_cpl_id);
1399 
1400 	IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1401          RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1402         ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
1403          RAISE OKC_API.G_EXCEPTION_ERROR;
1404         END IF;
1405 
1406       END LOOP;
1407 
1408 
1409 -- rules
1410 
1411     FOR l_c_rgpv IN c_rgpv LOOP
1412 
1413       -- l_old_return_status := l_return_status;
1414 
1415       OKL_COPY_CONTRACT_PUB.copy_rules (
1416 	   p_api_version	=> p_api_version,
1417            p_init_msg_list	=> p_init_msg_list,
1418            x_return_status 	=> x_return_status,
1419            x_msg_count     	=> x_msg_count,
1420            x_msg_data      	=> x_msg_data,
1421            p_rgp_id	      	=> l_c_rgpv.id,
1422            p_cle_id		=> NULL,
1423            p_chr_id	        => l_chr_id, -- the new generated contract header id
1424 	   p_to_template_yn     => 'N',
1425            x_rgp_id		=> l_rgp_id);
1426 
1427 	IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1428          RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1429         ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
1430          RAISE OKC_API.G_EXCEPTION_ERROR;
1431         END IF;
1432 
1433     END LOOP;
1434 
1435 -- lines
1436 
1437    OPEN c_lines;
1438     LOOP
1439      FETCH c_lines INTO l_cle_id;
1440      EXIT WHEN c_lines%NOTFOUND;
1441      i := c_lines%RowCount;
1442      l_line_tab(i).id := l_cle_id;
1443      j := j + 1;
1444     END LOOP;
1445    CLOSE c_lines;
1446 
1447    IF( j > 0) THEN
1448 
1449       OKL_COPY_ASSET_PUB.copy_all_lines(
1450                p_api_version	     => p_api_version,
1451                p_init_msg_list	     => p_init_msg_list,
1452                x_return_status 	     => x_return_status,
1453                x_msg_count     	     => x_msg_count,
1454                x_msg_data      	     => x_msg_data,
1455                p_from_cle_id_tbl     => l_line_tab,
1456      	       p_to_cle_id 	     => NULL,
1457                p_to_chr_id 	     => l_chr_id,
1458        	       p_to_template_yn      => 'N',
1459                p_copy_reference      => 'COPY',
1460                p_copy_line_party_yn  => 'Y',
1461                p_renew_ref_yn        => 'N',
1462                p_trans_type          => 'CFA',
1463                x_cle_id_tbl	     => x_cle_id_tbl);
1464 
1465       IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1466          RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1467       ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
1468          RAISE OKC_API.G_EXCEPTION_ERROR;
1469       END IF;
1470 
1471    END IF;
1472 
1473    --
1474    -- Special Process for LALEVL (SLH, SLL) rules
1475    --
1476     l_cle_id := NULL;
1477     OPEN new_c_lines(l_chr_id);
1478      LOOP
1479       FETCH new_c_lines INTO l_cle_id;
1480       EXIT WHEN new_c_lines%NOTFOUND;
1481 
1482         link_slh_sll(
1483                      x_return_status => x_return_status,
1484                      x_msg_count     => x_msg_count,
1485                      x_msg_data      => x_msg_data,
1486                      p_old_chr_id    => p_source_chr_id,
1487                      p_new_cle_id    => l_cle_id,
1488                      p_new_chr_id    => l_chr_id
1489                     );
1490 
1491          IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1492             RAISE OKL_API.G_EXCEPTION_ERROR;
1493          END IF;
1494 
1495      END LOOP;
1496    CLOSE new_c_lines;
1497 
1498    --
1499    -- Special Process for LALEVL (SLH, SLL) rules
1500    --
1501 
1502    link_slh_sll(
1503                 x_return_status => x_return_status,
1504                 x_msg_count     => x_msg_count,
1505                 x_msg_data      => x_msg_data,
1506                 p_old_chr_id    => p_source_chr_id,
1507                 p_new_chr_id    => l_chr_id
1508                );
1509 
1510     IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1511        RAISE OKC_API.G_EXCEPTION_ERROR;
1512     END IF;
1513 
1514 
1515     x_return_status := OKC_API.G_RET_STS_SUCCESS;
1516 
1517   OKC_API.END_ACTIVITY(x_msg_count	=> x_msg_count,     x_msg_data	=> x_msg_data);
1518 
1519   EXCEPTION
1520     WHEN OKC_API.G_EXCEPTION_ERROR THEN
1521       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
1522 			p_api_name  => l_api_name,
1523 			p_pkg_name  => g_pkg_name,
1524 			p_exc_name  => 'OKC_API.G_RET_STS_ERROR',
1525 			x_msg_count => x_msg_count,
1526 			x_msg_data  => x_msg_data,
1527 			p_api_type  => g_api_type);
1528 
1529     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1530       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
1531 			p_api_name  => l_api_name,
1532 			p_pkg_name  => g_pkg_name,
1533 			p_exc_name  => 'OKC_API.G_RET_STS_UNEXP_ERROR',
1534 			x_msg_count => x_msg_count,
1535 			x_msg_data  => x_msg_data,
1536 			p_api_type  => g_api_type);
1537 
1538     WHEN OTHERS THEN
1539       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
1540 			p_api_name  => l_api_name,
1541 			p_pkg_name  => g_pkg_name,
1542 			p_exc_name  => 'OTHERS',
1543 			x_msg_count => x_msg_count,
1544 			x_msg_data  => x_msg_data,
1545 			p_api_type  => g_api_type);
1546   END;
1547 
1548 -- Start of comments
1549 --
1550 -- Procedure Name  : create_from_contract
1551 -- Description     : creates a deal from a template
1552 -- Business Rules  : I might need to provide yes to p_renew_ref_yn. Then I need to provide Class Operation ID
1553 --                   somewhere inside that package
1554 -- Parameters      :
1555 -- Version         : 1.0
1556 -- End of comments
1557   PROCEDURE create_from_quote(
1558     p_api_version                  IN NUMBER,
1559     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
1560     x_return_status                OUT NOCOPY VARCHAR2,
1561     x_msg_count                    OUT NOCOPY NUMBER,
1562     x_msg_data                     OUT NOCOPY VARCHAR2,
1563     p_contract_number              IN  VARCHAR2,
1564     p_source_chr_id                IN  NUMBER,
1565     x_chr_id                       OUT NOCOPY NUMBER) AS
1566 
1567     lp_chrv_rec OKL_OKC_MIGRATION_PVT.chrv_rec_type;
1568     lx_chrv_rec OKL_OKC_MIGRATION_PVT.chrv_rec_type;
1569     lp_khrv_rec OKL_CONTRACT_PUB.khrv_rec_type;
1570     lx_khrv_rec OKL_CONTRACT_PUB.khrv_rec_type;
1571 
1572   BEGIN
1573 /*
1574    OKL_QUOTE_TO_CONTRACT_PVT.create_contract(
1575       p_api_version              => p_api_version,
1576       p_init_msg_list            => p_init_msg_list,
1577       x_return_status            => x_return_status,
1578       x_msg_count                => x_msg_count,
1579       x_msg_data                 => x_msg_data,
1580       p_contract_number          => p_contract_number,
1581       p_parent_object_code       => p_source_object_code,
1582       p_parent_object_id         => p_source_chr_id,
1583       x_chr_id                   => x_chr_id);
1584 
1585     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1586        RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1587     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
1588        RAISE OKC_API.G_EXCEPTION_ERROR;
1589     END IF;
1590 */
1591     x_chr_id := x_chr_id;
1592 
1593   END;
1594 
1595 -- Start of comments
1596 --
1597 -- Procedure Name  : create_from_contract
1598 -- Description     : creates a deal from a template
1599 -- Business Rules  : I might need to provide yes to p_renew_ref_yn.
1600 --                   Then I need to provide Class Operation ID
1601 --                   somewhere inside that package
1602 -- Parameters      :
1603 -- Version         : 1.0
1604 -- End of comments
1605   PROCEDURE create_from_quote(
1606     p_api_version                  IN NUMBER,
1607     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
1608     x_return_status                OUT NOCOPY VARCHAR2,
1609     x_msg_count                    OUT NOCOPY NUMBER,
1610     x_msg_data                     OUT NOCOPY VARCHAR2,
1611     p_contract_number              IN  VARCHAR2,
1612     p_source_object_code           IN VARCHAR2,
1613     p_source_chr_id                IN  NUMBER,
1614     x_chr_id                       OUT NOCOPY NUMBER) AS
1615 
1616     lp_chrv_rec OKL_OKC_MIGRATION_PVT.chrv_rec_type;
1617     lx_chrv_rec OKL_OKC_MIGRATION_PVT.chrv_rec_type;
1618     lp_khrv_rec OKL_CONTRACT_PUB.khrv_rec_type;
1619     lx_khrv_rec OKL_CONTRACT_PUB.khrv_rec_type;
1620 
1621     p_chr_id NUMBER;
1622     x_contract_number   VARCHAR2(120);
1623 
1624   BEGIN
1625 
1626    OKL_QUOTE_TO_CONTRACT_PVT.create_contract(
1627       p_api_version              => p_api_version,
1628       p_init_msg_list            => p_init_msg_list,
1629       x_return_status            => x_return_status,
1630       x_msg_count                => x_msg_count,
1631       x_msg_data                 => x_msg_data,
1632       p_contract_number          => p_contract_number,
1633       p_parent_object_code       => p_source_object_code,
1634       p_parent_object_id         => p_source_chr_id,
1635       x_chr_id                   => x_chr_id,
1636       x_contract_number          => x_contract_number
1637       );
1638 
1639     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1640        RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1641     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
1642        RAISE OKC_API.G_EXCEPTION_ERROR;
1643     END IF;
1644 
1645     x_chr_id := x_chr_id;
1646 
1647   END;
1648 
1649 -- Start of comments
1650 --
1651 -- Procedure Name  : create_new_deal
1652 -- Description     : creates a deal with no source
1653 -- Business Rules  :
1654 -- Parameters      :
1655 -- Version         : 1.0
1656 -- End of comments
1657   PROCEDURE create_new_deal(
1658     p_api_version                  IN NUMBER,
1659     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
1660     x_return_status                OUT NOCOPY VARCHAR2,
1661     x_msg_count                    OUT NOCOPY NUMBER,
1662     x_msg_data                     OUT NOCOPY VARCHAR2,
1663     p_contract_number              IN  VARCHAR2,
1664     p_scs_code                     IN  VARCHAR2,
1665     p_customer_id1                 IN  VARCHAR2,
1666     p_customer_id2                 IN  VARCHAR2,
1667     p_customer_code                IN  VARCHAR2,
1668     x_chr_id                       OUT NOCOPY NUMBER,
1669     --Added by dpsingh for LE Uptake
1670     p_legal_entity_id              IN  NUMBER) AS
1671 
1672     lp_chrv_rec OKL_OKC_MIGRATION_PVT.chrv_rec_type;
1673     lx_chrv_rec OKL_OKC_MIGRATION_PVT.chrv_rec_type;
1674     lp_khrv_rec OKL_CONTRACT_PUB.khrv_rec_type;
1675     lx_khrv_rec OKL_CONTRACT_PUB.khrv_rec_type;
1676 
1677     --Bug# 4558486
1678     lp_cplv_rec OKC_CONTRACT_PARTY_PUB.cplv_rec_type;
1679     lx_cplv_rec OKC_CONTRACT_PARTY_PUB.cplv_rec_type;
1680 
1681     lp_cplv_rec1 OKL_OKC_MIGRATION_PVT.cplv_rec_type;
1682     lx_cplv_rec1 OKL_OKC_MIGRATION_PVT.cplv_rec_type;
1683 
1684     l_api_version	CONSTANT NUMBER	  := 1.0;
1685     l_api_name	VARCHAR2(30) := 'CREATE_NEW_DEAL';
1686 
1687     CURSOR role_csr(p_rle_code VARCHAR2)  IS
1688     SELECT  access_level
1689     FROM    OKC_ROLE_SOURCES
1690     WHERE rle_code = p_rle_code
1691     AND     buy_or_sell = 'S';
1692 
1693     l_access_level OKC_ROLE_SOURCES.access_level%TYPE;
1694 
1695     --Bug# 4558486
1696     lp_kplv_rec      okl_k_party_roles_pvt.kplv_rec_type;
1697     lx_kplv_rec      okl_k_party_roles_pvt.kplv_rec_type;
1698 
1699   BEGIN
1700     x_return_status := OKC_API.START_ACTIVITY(
1701 			p_api_name      => l_api_name,
1702 			p_pkg_name      => g_pkg_name,
1703 			p_init_msg_list => p_init_msg_list,
1704 			l_api_version   => l_api_version,
1705 			p_api_version   => p_api_version,
1706 			p_api_type      => g_api_type,
1707 			x_return_status => x_return_status);
1708 
1709     -- check if activity started successfully
1710     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1711        RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1712     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
1713        RAISE OKC_API.G_EXCEPTION_ERROR;
1714     END IF;
1715 
1716     lp_chrv_rec.sfwt_flag := 'N';
1717     lp_chrv_rec.object_version_number := 1.0;
1718     lp_chrv_rec.sts_code := G_STS_CODE; -- 'ENTERED';
1719     lp_chrv_rec.scs_code := p_scs_code;
1720     lp_chrv_rec.contract_number := p_contract_number;
1721     lp_chrv_rec.authoring_org_id := OKL_CONTEXT.GET_OKC_ORG_ID;
1722     lp_chrv_rec.inv_organization_id := OKL_CONTEXT.get_okc_organization_id;
1723     lp_chrv_rec.currency_code := OKC_CURRENCY_API.GET_OU_CURRENCY(OKL_CONTEXT.GET_OKC_ORG_ID);
1724     lp_chrv_rec.currency_code_renewed := NULL;
1725     lp_chrv_rec.template_yn := 'N';
1726     lp_chrv_rec.chr_type := 'CYA';
1727     lp_chrv_rec.archived_yn := 'N';
1728     lp_chrv_rec.deleted_yn := 'N';
1729     lp_chrv_rec.buy_or_sell := 'S';
1730     lp_chrv_rec.issue_or_receive := 'I';
1731 
1732     lp_khrv_rec.object_version_number := 1.0;
1733 --    lp_khrv_rec.khr_id := 1;
1734     lp_khrv_rec.generate_accrual_yn := 'Y';
1735     lp_khrv_rec.generate_accrual_override_yn := 'N';
1736     --Added by dpsingh for LE Uptake
1737     lp_khrv_rec.legal_entity_id := p_legal_entity_id;
1738     OKL_CONTRACT_PUB.validate_contract_header(
1739       p_api_version    => p_api_version,
1740       p_init_msg_list  => p_init_msg_list,
1741       x_return_status  => x_return_status,
1742       x_msg_count      => x_msg_count,
1743       x_msg_data       => x_msg_data,
1744       p_chrv_rec       => lp_chrv_rec,
1745       p_khrv_rec       => lp_khrv_rec);
1746 
1747     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1748        RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1749     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
1750        RAISE OKC_API.G_EXCEPTION_ERROR;
1751     END IF;
1752 
1753     OKL_CONTRACT_PUB.create_contract_header(
1754       p_api_version    => p_api_version,
1755       p_init_msg_list  => p_init_msg_list,
1756       x_return_status  => x_return_status,
1757       x_msg_count      => x_msg_count,
1758       x_msg_data       => x_msg_data,
1759       p_chrv_rec       => lp_chrv_rec,
1760       p_khrv_rec       => lp_khrv_rec,
1761       x_chrv_rec       => lx_chrv_rec,
1762       x_khrv_rec       => lx_khrv_rec);
1763 
1764     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1765        RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1766     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
1767        RAISE OKC_API.G_EXCEPTION_ERROR;
1768     END IF;
1769 
1770     x_chr_id := lx_chrv_rec.id;
1771 
1772     -- now we attach the party to the header
1773     lp_cplv_rec.object_version_number := 1.0;
1774     lp_cplv_rec.sfwt_flag := OKC_API.G_FALSE;
1775     lp_cplv_rec.dnz_chr_id := x_chr_id;
1776     lp_cplv_rec.chr_id := x_chr_id;
1777     lp_cplv_rec.cle_id := NULL;
1778     lp_cplv_rec.object1_id1 := p_customer_id1;
1779     lp_cplv_rec.object1_id2 := p_customer_id2;
1780     lp_cplv_rec.jtot_object1_code := p_customer_code;
1781     lp_cplv_rec.rle_code := G_RLE_CODE;
1782 
1783     IF(lp_cplv_rec.object1_id1 IS NOT NULL AND lp_cplv_rec.object1_id2 IS NOT NULL) THEN
1784 
1785     OKC_CONTRACT_PARTY_PUB.validate_k_party_role(
1786       p_api_version    => p_api_version,
1787       p_init_msg_list  => p_init_msg_list,
1788       x_return_status  => x_return_status,
1789       x_msg_count      => x_msg_count,
1790       x_msg_data       => x_msg_data,
1791       p_cplv_rec       => lp_cplv_rec);
1792 
1793     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1794        RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1795     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
1796        RAISE OKC_API.G_EXCEPTION_ERROR;
1797     END IF;
1798 
1799 ----- Changes by Kanti
1800 ----- Validate the JTOT Object code, ID1 and ID2
1801 
1802      OPEN role_csr(lp_cplv_rec.rle_code);
1803      FETCH role_csr INTO l_access_level;
1804      CLOSE role_csr;
1805 
1806      IF (l_access_level = 'S') THEN
1807 
1808          okl_la_validation_util_pvt.VALIDATE_ROLE_JTOT (p_api_version    => p_api_version,
1809                                                           p_init_msg_list  => OKC_API.G_FALSE,
1810                                                           x_return_status  => x_return_status,
1811                                                           x_msg_count	   => x_msg_count,
1812                                                           x_msg_data	   => x_msg_data,
1813                                                           p_object_name    => lp_cplv_rec.jtot_object1_code,
1814                                                           p_id1            => lp_cplv_rec.object1_id1,
1815                                                           p_id2            => lp_cplv_rec.object1_id2);
1816          IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1817               RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1818          ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
1819               RAISE OKC_API.G_EXCEPTION_ERROR;
1820          END IF;
1821 
1822      END IF;
1823 
1824 ----  Changes End
1825 
1826     --Bug# 4558486: Changed call to okl_k_party_roles_pvt api
1827     --              to create records in tables
1828     --              okc_k_party_roles_b and okl_k_party_roles
1829     /*
1830     OKC_CONTRACT_PARTY_PUB.create_k_party_role(
1831       p_api_version    => p_api_version,
1832       p_init_msg_list  => p_init_msg_list,
1833       x_return_status  => x_return_status,
1834       x_msg_count      => x_msg_count,
1835       x_msg_data       => x_msg_data,
1836       p_cplv_rec       => lp_cplv_rec,
1837       x_cplv_rec       => lx_cplv_rec);
1838     */
1839 
1840     lp_cplv_rec1.object_version_number := lp_cplv_rec.object_version_number;
1841     lp_cplv_rec1.sfwt_flag := lp_cplv_rec.sfwt_flag;
1842     lp_cplv_rec1.dnz_chr_id := lp_cplv_rec.dnz_chr_id;
1843     lp_cplv_rec1.chr_id := lp_cplv_rec.chr_id;
1844     lp_cplv_rec1.cle_id := lp_cplv_rec.cle_id;
1845     lp_cplv_rec1.object1_id1 := lp_cplv_rec.object1_id1;
1846     lp_cplv_rec1.object1_id2 := lp_cplv_rec.object1_id2;
1847     lp_cplv_rec1.jtot_object1_code :=lp_cplv_rec.jtot_object1_code;
1848     lp_cplv_rec1.rle_code := lp_cplv_rec.rle_code;
1849 
1850     okl_k_party_roles_pvt.create_k_party_role(
1851       p_api_version      => p_api_version,
1852       p_init_msg_list    => p_init_msg_list,
1853       x_return_status    => x_return_status,
1854       x_msg_count        => x_msg_count,
1855       x_msg_data         => x_msg_data,
1856       p_cplv_rec         => lp_cplv_rec1,
1857       x_cplv_rec         => lx_cplv_rec1,
1858       p_kplv_rec         => lp_kplv_rec,
1859       x_kplv_rec         => lx_kplv_rec);
1860 
1861     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1862        RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1863     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
1864        RAISE OKC_API.G_EXCEPTION_ERROR;
1865     END IF;
1866     END IF;
1867 
1868     OKC_API.END_ACTIVITY(x_msg_count => x_msg_count, x_msg_data => x_msg_data);
1869 
1870   EXCEPTION
1871     WHEN OKC_API.G_EXCEPTION_ERROR THEN
1872       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
1873 			p_api_name  => l_api_name,
1874 			p_pkg_name  => g_pkg_name,
1875 			p_exc_name  => 'OKC_API.G_RET_STS_ERROR',
1876 			x_msg_count => x_msg_count,
1877 			x_msg_data  => x_msg_data,
1878 			p_api_type  => g_api_type);
1879 
1880     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1881       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
1882 			p_api_name  => l_api_name,
1883 			p_pkg_name  => g_pkg_name,
1884 			p_exc_name  => 'OKC_API.G_RET_STS_UNEXP_ERROR',
1885 			x_msg_count => x_msg_count,
1886 			x_msg_data  => x_msg_data,
1887 			p_api_type  => g_api_type);
1888 
1889     WHEN OTHERS THEN
1890       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
1891 			p_api_name  => l_api_name,
1892 			p_pkg_name  => g_pkg_name,
1893 			p_exc_name  => 'OTHERS',
1894 			x_msg_count => x_msg_count,
1895 			x_msg_data  => x_msg_data,
1896 			p_api_type  => g_api_type);
1897   END;
1898 
1899 -- Start of comments
1900 --
1901 -- Procedure Name  : create_new_deal
1902 -- Description     : creates a deal with no source
1903 -- Business Rules  :
1904 -- Parameters      :
1905 -- Version         : 1.0
1906 -- End of comments
1907   PROCEDURE create_new_deal(
1908     p_api_version                  IN NUMBER,
1909     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
1910     x_return_status                OUT NOCOPY VARCHAR2,
1911     x_msg_count                    OUT NOCOPY NUMBER,
1912     x_msg_data                     OUT NOCOPY VARCHAR2,
1913     p_contract_number              IN  VARCHAR2,
1914     p_scs_code                     IN  VARCHAR2,
1915     p_customer_id1                 IN OUT NOCOPY  VARCHAR2,
1916     p_customer_id2                 IN OUT NOCOPY VARCHAR2,
1917     p_customer_code                IN  VARCHAR2,
1918     p_customer_name                IN  VARCHAR2,
1919     x_chr_id                       OUT NOCOPY NUMBER,
1920     --Added by dpsingh for LE Uptake
1921     p_legal_entity_id              IN  NUMBER) AS
1922 
1923     lp_chrv_rec OKL_OKC_MIGRATION_PVT.chrv_rec_type;
1924     lx_chrv_rec OKL_OKC_MIGRATION_PVT.chrv_rec_type;
1925     lp_khrv_rec OKL_CONTRACT_PUB.khrv_rec_type;
1926     lx_khrv_rec OKL_CONTRACT_PUB.khrv_rec_type;
1927 
1928     --Bug# 4558486
1929     lp_cplv_rec OKL_OKC_MIGRATION_PVT.cplv_rec_type;
1930     lx_cplv_rec OKL_OKC_MIGRATION_PVT.cplv_rec_type;
1931 
1932     l_api_version	CONSTANT NUMBER	  := 1.0;
1933     l_api_name	VARCHAR2(30) := 'CREATE_NEW_DEAL';
1934 
1935     row_count         NUMBER DEFAULT 0;
1936 
1937     CURSOR check_party_csr(p_chr_id NUMBER) IS
1938 	--start modified abhsaxen for performance SQLID 20562707
1939 	SELECT COUNT(1)
1940 	    FROM okc_k_party_roles_B
1941 	    WHERE dnz_chr_id = p_chr_id
1942 	    AND chr_id = p_chr_id
1943 	    AND rle_code = G_RLE_CODE
1944 	    AND object1_id1 = p_customer_id1
1945 	    AND object1_id2 = p_customer_id2
1946 	--end modified abhsaxen for performance SQLID 20562707
1947 	;
1948     CURSOR role_csr(p_rle_code VARCHAR2)  IS
1949     SELECT  access_level
1950     FROM    OKC_ROLE_SOURCES
1951     WHERE rle_code = p_rle_code
1952     AND     buy_or_sell = 'S';
1953 
1954     l_access_level OKC_ROLE_SOURCES.access_level%TYPE;
1955 
1956     --Bug# 4558486
1957     lp_kplv_rec      okl_k_party_roles_pvt.kplv_rec_type;
1958     lx_kplv_rec      okl_k_party_roles_pvt.kplv_rec_type;
1959 
1960   BEGIN
1961     x_return_status := OKC_API.START_ACTIVITY(
1962 			p_api_name      => l_api_name,
1963 			p_pkg_name      => g_pkg_name,
1964 			p_init_msg_list => p_init_msg_list,
1965 			l_api_version   => l_api_version,
1966 			p_api_version   => p_api_version,
1967 			p_api_type      => g_api_type,
1968 			x_return_status => x_return_status);
1969 
1970     -- check if activity started successfully
1971     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1972        RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1973     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
1974        RAISE OKC_API.G_EXCEPTION_ERROR;
1975     END IF;
1976 
1977     lp_chrv_rec.sfwt_flag := 'N';
1978     lp_chrv_rec.object_version_number := 1.0;
1979     lp_chrv_rec.sts_code := G_STS_CODE; -- 'ENTERED';
1980     lp_chrv_rec.scs_code := p_scs_code;
1981     lp_chrv_rec.contract_number := p_contract_number;
1982     lp_chrv_rec.authoring_org_id := OKL_CONTEXT.GET_OKC_ORG_ID;
1983     lp_chrv_rec.inv_organization_id := OKL_CONTEXT.get_okc_organization_id;
1984     lp_chrv_rec.currency_code := OKC_CURRENCY_API.GET_OU_CURRENCY(OKL_CONTEXT.GET_OKC_ORG_ID);
1985     lp_chrv_rec.currency_code_renewed := NULL;
1986     lp_chrv_rec.template_yn := 'N';
1987     lp_chrv_rec.chr_type := 'CYA';
1988     lp_chrv_rec.archived_yn := 'N';
1989     lp_chrv_rec.deleted_yn := 'N';
1990     lp_chrv_rec.buy_or_sell := 'S';
1991     lp_chrv_rec.issue_or_receive := 'I';
1992 
1993     lp_khrv_rec.object_version_number := 1.0;
1994 --    lp_khrv_rec.khr_id := 1;
1995     lp_khrv_rec.generate_accrual_yn := 'Y';
1996     lp_khrv_rec.generate_accrual_override_yn := 'N';
1997     --Added by dpsingh for LE Uptake
1998     lp_khrv_rec.legal_entity_id := p_legal_entity_id;
1999     OKL_CONTRACT_PUB.validate_contract_header(
2000       p_api_version    => p_api_version,
2001       p_init_msg_list  => p_init_msg_list,
2002       x_return_status  => x_return_status,
2003       x_msg_count      => x_msg_count,
2004       x_msg_data       => x_msg_data,
2005       p_chrv_rec       => lp_chrv_rec,
2006       p_khrv_rec       => lp_khrv_rec);
2007 
2008     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2009        RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2010     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
2011        RAISE OKC_API.G_EXCEPTION_ERROR;
2012     END IF;
2013 
2014     OKL_CONTRACT_PUB.create_contract_header(
2015       p_api_version    => p_api_version,
2016       p_init_msg_list  => p_init_msg_list,
2017       x_return_status  => x_return_status,
2018       x_msg_count      => x_msg_count,
2019       x_msg_data       => x_msg_data,
2020       p_chrv_rec       => lp_chrv_rec,
2021       p_khrv_rec       => lp_khrv_rec,
2022       x_chrv_rec       => lx_chrv_rec,
2023       x_khrv_rec       => lx_khrv_rec);
2024 
2025     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2026        RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2027     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
2028        RAISE OKC_API.G_EXCEPTION_ERROR;
2029     END IF;
2030 
2031     x_chr_id := lx_chrv_rec.id;
2032 
2033     -- now we attach the party to the header
2034     lp_cplv_rec.object_version_number := 1.0;
2035     lp_cplv_rec.sfwt_flag := OKC_API.G_FALSE;
2036     lp_cplv_rec.dnz_chr_id := x_chr_id;
2037     lp_cplv_rec.chr_id := x_chr_id;
2038     lp_cplv_rec.cle_id := NULL;
2039     lp_cplv_rec.object1_id1 := p_customer_id1;
2040     lp_cplv_rec.object1_id2 := p_customer_id2;
2041     lp_cplv_rec.jtot_object1_code := p_customer_code;
2042     lp_cplv_rec.rle_code := G_RLE_CODE;
2043 
2044     OPEN check_party_csr(x_chr_id);
2045     FETCH check_party_csr INTO row_count;
2046     CLOSE check_party_csr;
2047     IF row_count = 1 THEN
2048       x_return_status := OKC_API.g_ret_sts_error;
2049       OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'Party_already_exists');
2050       RAISE OKC_API.G_EXCEPTION_ERROR;
2051     END IF;
2052 
2053 /*
2054     okl_la_validation_util_pvt.Validate_Party (
2055       p_api_version    => p_api_version,
2056       p_init_msg_list  => p_init_msg_list,
2057       x_return_status  => x_return_status,
2058       x_msg_count      => x_msg_count,
2059       x_msg_data       => x_msg_data,
2060       p_chr_id         => x_chr_id,
2061       p_cle_id         => null,
2062       p_cpl_id         => null,
2063       p_lty_code       => null,
2064       p_rle_code       => G_RLE_CODE,
2065       p_id1            => p_customer_id1,
2066       p_id2            => p_customer_id2,
2067       p_name           => p_customer_name,
2068       p_object_code    => lp_cplv_rec.jtot_object1_code);
2069 
2070     If (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) then
2071        raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2072     Elsif (x_return_status = OKC_API.G_RET_STS_ERROR) then
2073        raise OKC_API.G_EXCEPTION_ERROR;
2074     End If;
2075 */
2076 
2077 
2078 ----- Changes by Kanti
2079 ----- Validate the JTOT Object code, ID1 and ID2
2080 
2081      OPEN role_csr(lp_cplv_rec.rle_code);
2082      FETCH role_csr INTO l_access_level;
2083      CLOSE role_csr;
2084 
2085      IF (l_access_level = 'S') THEN
2086 
2087        okl_la_validation_util_pvt.VALIDATE_ROLE_JTOT (p_api_version    => p_api_version,
2088                                                           p_init_msg_list  => OKC_API.G_FALSE,
2089                                                           x_return_status  => x_return_status,
2090                                                           x_msg_count	   => x_msg_count,
2091                                                           x_msg_data	   => x_msg_data,
2092                                                           p_object_name    => lp_cplv_rec.jtot_object1_code,
2093                                                           p_id1            => lp_cplv_rec.object1_id1,
2094                                                           p_id2            => lp_cplv_rec.object1_id2);
2095 	    IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2096               RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2097             ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
2098               RAISE OKC_API.G_EXCEPTION_ERROR;
2099             END IF;
2100 
2101       END IF;
2102 
2103 ----  Changes End
2104 
2105     --Bug# 4558486: Changed call to okl_k_party_roles_pvt api
2106     --              to create records in tables
2107     --              okc_k_party_roles_b and okl_k_party_roles
2108     /*
2109     OKC_CONTRACT_PARTY_PUB.create_k_party_role(
2110       p_api_version    => p_api_version,
2111       p_init_msg_list  => p_init_msg_list,
2112       x_return_status  => x_return_status,
2113       x_msg_count      => x_msg_count,
2114       x_msg_data       => x_msg_data,
2115       p_cplv_rec       => lp_cplv_rec,
2116       x_cplv_rec       => lx_cplv_rec);
2117     */
2118 
2119     okl_k_party_roles_pvt.create_k_party_role(
2120       p_api_version      => p_api_version,
2121       p_init_msg_list    => p_init_msg_list,
2122       x_return_status    => x_return_status,
2123       x_msg_count        => x_msg_count,
2124       x_msg_data         => x_msg_data,
2125       p_cplv_rec         => lp_cplv_rec,
2126       x_cplv_rec         => lx_cplv_rec,
2127       p_kplv_rec         => lp_kplv_rec,
2128       x_kplv_rec         => lx_kplv_rec);
2129 
2130     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2131        RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2132     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
2133        RAISE OKC_API.G_EXCEPTION_ERROR;
2134     END IF;
2135 
2136     OKC_API.END_ACTIVITY(x_msg_count => x_msg_count, x_msg_data => x_msg_data);
2137 
2138   EXCEPTION
2139     WHEN OKC_API.G_EXCEPTION_ERROR THEN
2140       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
2141 			p_api_name  => l_api_name,
2142 			p_pkg_name  => g_pkg_name,
2143 			p_exc_name  => 'OKC_API.G_RET_STS_ERROR',
2144 			x_msg_count => x_msg_count,
2145 			x_msg_data  => x_msg_data,
2146 			p_api_type  => g_api_type);
2147 
2148     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2149       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
2150 			p_api_name  => l_api_name,
2151 			p_pkg_name  => g_pkg_name,
2152 			p_exc_name  => 'OKC_API.G_RET_STS_UNEXP_ERROR',
2153 			x_msg_count => x_msg_count,
2154 			x_msg_data  => x_msg_data,
2155 			p_api_type  => g_api_type);
2156 
2157     WHEN OTHERS THEN
2158       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
2159 			p_api_name  => l_api_name,
2160 			p_pkg_name  => g_pkg_name,
2161 			p_exc_name  => 'OTHERS',
2162 			x_msg_count => x_msg_count,
2163 			x_msg_data  => x_msg_data,
2164 			p_api_type  => g_api_type);
2165   END;
2166 
2167 
2168 -- Start of comments
2169 --
2170 -- Procedure Name  : create_new_deal
2171 -- Description     : creates a deal with no source
2172 -- Business Rules  :
2173 -- Parameters      :
2174 -- Version         : 1.0
2175 -- End of comments
2176   PROCEDURE create_new_deal(
2177     p_api_version                  IN  NUMBER,
2178     p_init_msg_list                IN  VARCHAR2 DEFAULT OKC_API.G_FALSE,
2179     x_return_status                OUT NOCOPY VARCHAR2,
2180     x_msg_count                    OUT NOCOPY NUMBER,
2181     x_msg_data                     OUT NOCOPY VARCHAR2,
2182     p_contract_number              IN  VARCHAR2,
2183     p_scs_code                     IN  VARCHAR2,
2184     p_customer_id1                 IN  OUT NOCOPY  VARCHAR2,
2185     p_customer_id2                 IN  OUT NOCOPY VARCHAR2,
2186     p_customer_code                IN  VARCHAR2,
2187     p_customer_name                IN  VARCHAR2,
2188     p_template_yn                  IN  VARCHAR2,
2189     p_template_type                IN  VARCHAR2,
2190     p_effective_from               IN  DATE,
2191     p_program_name                 IN  VARCHAR2,
2192     p_program_id                   IN  NUMBER,
2193     x_chr_id                       OUT NOCOPY NUMBER,
2194     --Added by dpsingh for LE Uptake
2195     p_legal_entity_id              IN  NUMBER) AS
2196 
2197     -- 5116278
2198     SUBTYPE l_cplv_tbl_type is OKL_OKC_MIGRATION_PVT.cplv_tbl_type;
2199     SUBTYPE l_kplv_tbl_type is okl_kpl_pvt.kplv_tbl_type;
2200 
2201     lp_chrv_rec OKL_OKC_MIGRATION_PVT.chrv_rec_type;
2202     lx_chrv_rec OKL_OKC_MIGRATION_PVT.chrv_rec_type;
2203     lp_khrv_rec OKL_CONTRACT_PUB.khrv_rec_type;
2204     lx_khrv_rec OKL_CONTRACT_PUB.khrv_rec_type;
2205 
2206     --Bug# 4558486
2207     lp_cplv_rec OKL_OKC_MIGRATION_PVT.cplv_rec_type;
2208     lx_cplv_rec OKL_OKC_MIGRATION_PVT.cplv_rec_type;
2209 
2210     -- 5116278
2211     l_cplv_tbl l_cplv_tbl_type;
2212     l_kplv_tbl l_kplv_tbl_type;
2213     lx_cplv_tbl l_cplv_tbl_type;
2214     lx_kplv_tbl l_kplv_tbl_type;
2215 
2216     l_api_version	CONSTANT NUMBER	  := 1.0;
2217     l_api_name	VARCHAR2(30) := 'CREATE_NEW_DEAL';
2218 
2219     row_count         NUMBER DEFAULT 0;
2220 
2221     CURSOR check_party_csr(p_chr_id NUMBER) IS
2222 	--start modified abhsaxen for performance SQLID 20562694
2223 	SELECT COUNT(1)
2224 	    FROM okc_k_party_roles_B
2225 	    WHERE dnz_chr_id = p_chr_id
2226 	    AND chr_id = p_chr_id
2227 	    AND rle_code = G_RLE_CODE
2228 	    AND object1_id1 = p_customer_id1
2229 	    AND object1_id2 = p_customer_id2
2230 	--end modified abhsaxen for performance SQLID 20562694
2231 	;
2232 
2233     CURSOR role_csr(p_rle_code VARCHAR2)  IS
2234     SELECT  access_level
2235     FROM    OKC_ROLE_SOURCES
2236     WHERE rle_code = p_rle_code
2237     AND     buy_or_sell = 'S';
2238 
2239     l_access_level OKC_ROLE_SOURCES.access_level%TYPE;
2240 
2241     --Bug# 4558486
2242     lp_kplv_rec      okl_k_party_roles_pvt.kplv_rec_type;
2243     lx_kplv_rec      okl_k_party_roles_pvt.kplv_rec_type;
2244 
2245     --Bug#5116278    start
2246     l_vp_cpl_id okc_k_party_roles_v.id%TYPE := NULL;
2247     x_cpl_id   okc_k_party_roles_v.id%TYPE := NULL;
2248     l_chr_id   okc_k_headers_b.id%type := NULL;
2249 
2250     --Bug# 12780638: Removed cust_acct_id and bill_to_site_use_id
2251     --               from this cursor as we are not copying
2252     --               vendor billing details from VPA to contract
2253     CURSOR c_vp_cpl_csr(p_source_id NUMBER) IS
2254      SELECT id, object_version_number, sfwt_flag,
2255             cpl_id, chr_id, cle_id,
2256             rle_code, dnz_chr_id, object1_id1,
2257             object1_id2, jtot_object1_code, cognomen,
2258             code, facility, minority_group_lookup_code,
2259             small_business_flag, women_owned_flag, alias,
2260             attribute_category, attribute1, attribute2,
2261             attribute3, attribute4, attribute5,
2262             attribute6, attribute7, attribute8,
2263             attribute9, attribute10, attribute11,
2264             attribute12, attribute13, attribute14,
2265             attribute15, created_by, creation_date,
2266             last_updated_by, last_update_date, last_update_login,
2267             NULL cust_acct_id, NULL bill_to_site_use_id
2268      FROM okc_k_party_roles_v cplv
2269      WHERE cplv.rle_code = G_LEASE_VENDOR
2270      AND cplv.chr_id = p_source_id; -- vendor program id
2271 
2272     --Bug#5116278  end
2273 
2274 
2275   BEGIN
2276     x_return_status := OKC_API.START_ACTIVITY(
2277 			p_api_name      => l_api_name,
2278 			p_pkg_name      => g_pkg_name,
2279 			p_init_msg_list => p_init_msg_list,
2280 			l_api_version   => l_api_version,
2281 			p_api_version   => p_api_version,
2282 			p_api_type      => g_api_type,
2283 			x_return_status => x_return_status);
2284 
2285     -- check if activity started successfully
2286     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2287        RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2288     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
2289        RAISE OKC_API.G_EXCEPTION_ERROR;
2290     END IF;
2291 
2292     lp_chrv_rec.sfwt_flag := 'N';
2293     lp_chrv_rec.object_version_number := 1.0;
2294     lp_chrv_rec.sts_code := G_STS_CODE; -- 'ENTERED';
2295     lp_chrv_rec.scs_code := p_scs_code;
2296     lp_chrv_rec.contract_number := p_contract_number;
2297     lp_chrv_rec.authoring_org_id := OKL_CONTEXT.GET_OKC_ORG_ID;
2298     lp_chrv_rec.inv_organization_id := OKL_CONTEXT.get_okc_organization_id;
2299 
2300 --    lp_chrv_rec.currency_code := OKC_CURRENCY_API.GET_OU_CURRENCY(OKL_CONTEXT.GET_OKC_ORG_ID);
2301     lp_chrv_rec.currency_code := OKL_ACCOUNTING_UTIL.get_func_curr_code;
2302 
2303     lp_chrv_rec.currency_code_renewed := NULL;
2304     lp_chrv_rec.template_yn := 'N';
2305     lp_chrv_rec.chr_type := 'CYA';
2306     lp_chrv_rec.archived_yn := 'N';
2307     lp_chrv_rec.deleted_yn := 'N';
2308     lp_chrv_rec.buy_or_sell := 'S';
2309     lp_chrv_rec.issue_or_receive := 'I';
2310     lp_chrv_rec.start_date := p_effective_from;
2311 /*
2312     IF ( p_template_yn = 'Y' ) THEN
2313       lp_chrv_rec.template_yn := 'Y';
2314     END IF;
2315 */
2316     lp_khrv_rec.object_version_number := 1.0;
2317 
2318     IF ( p_program_name IS NOT NULL ) THEN
2319       lp_khrv_rec.khr_id := p_program_id;
2320     END IF;
2321 
2322     IF ( p_template_type IS NOT NULL ) THEN
2323       lp_khrv_rec.template_type_code := p_template_type;
2324       lp_chrv_rec.template_yn := 'Y';
2325     END IF;
2326     --Added by dpsingh for LE Uptake
2327     lp_khrv_rec.legal_entity_id := p_legal_entity_id;
2328     OKL_CONTRACT_PUB.create_contract_header(
2329       p_api_version    => p_api_version,
2330       p_init_msg_list  => p_init_msg_list,
2331       x_return_status  => x_return_status,
2332       x_msg_count      => x_msg_count,
2333       x_msg_data       => x_msg_data,
2334       p_chrv_rec       => lp_chrv_rec,
2335       p_khrv_rec       => lp_khrv_rec,
2336       x_chrv_rec       => lx_chrv_rec,
2337       x_khrv_rec       => lx_khrv_rec);
2338 
2339     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2340        RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2341     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
2342        RAISE OKC_API.G_EXCEPTION_ERROR;
2343     END IF;
2344 
2345     x_chr_id := lx_chrv_rec.id;
2346 
2347     --Bug#5116278  start
2348     IF ( p_program_name IS NOT NULL ) THEN
2349 
2350        -- copy vp party lease vendor to lease contract
2351        l_vp_cpl_id := NULL;
2352 
2353        OPEN c_vp_cpl_csr(p_program_id);
2354        FETCH c_vp_cpl_csr BULK COLLECT INTO l_cplv_tbl;
2355        CLOSE c_vp_cpl_csr;
2356 
2357        IF( l_cplv_tbl.COUNT > 0 ) THEN
2358 
2359         FOR i IN l_cplv_tbl.FIRST..l_cplv_tbl.LAST
2360         LOOP
2361           l_cplv_tbl(i).ID := null;
2362           IF (l_cplv_tbl(i).CHR_ID IS NOT NULL) THEN
2363             l_cplv_tbl(i).CHR_ID := x_chr_id;
2364           END IF;
2365           IF (l_cplv_tbl(i).DNZ_CHR_ID IS NOT NULL) THEN
2366             l_cplv_tbl(i).DNZ_CHR_ID := x_chr_id;
2367           END IF;
2368           l_kplv_tbl(i).attribute_category := null;
2369         END LOOP;
2370 
2371   	IF okl_context.get_okc_org_id  IS NULL THEN
2372    	  l_chr_id := x_chr_id;
2373 	  okl_context.set_okc_org_context(p_chr_id => l_chr_id );
2374         END IF;
2375 
2376         /*OKL_COPY_CONTRACT_PUB.copy_party_roles(
2377                   p_api_version	=> p_api_version,
2378                   p_init_msg_list	=> p_init_msg_list,
2379                   x_return_status 	=> x_return_status,
2380                   x_msg_count     	=> x_msg_count,
2381                   x_msg_data      	=> x_msg_data,
2382      	          p_cpl_id              => l_vp_cpl_id,
2383      	          p_cle_id              => NULL,
2384      	          p_chr_id              => x_chr_id,
2385      	          p_rle_code            => G_LEASE_VENDOR,
2386      	          x_cpl_id		=> x_cpl_id
2387      	   );*/
2388          IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
2389                     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_cplv_tbl.count= ' || l_cplv_tbl.count);
2390          END IF;
2391          okl_k_party_roles_pvt.create_k_party_role(
2392            p_api_version      => p_api_version,
2393            p_init_msg_list    => p_init_msg_list,
2394            x_return_status    => x_return_status,
2395            x_msg_count        => x_msg_count,
2396            x_msg_data         => x_msg_data,
2397            p_cplv_tbl         => l_cplv_tbl,
2398            x_cplv_tbl         => lx_cplv_tbl,
2399            p_kplv_tbl         => l_kplv_tbl,
2400            x_kplv_tbl         => lx_kplv_tbl);
2401 
2402            IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2403             RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2404            ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
2405                     RAISE OKC_API.G_EXCEPTION_ERROR;
2406            END IF;
2407 
2408        END IF;
2409 
2410     END IF;
2411     --Bug#5116278  end
2412 
2413     IF ( p_customer_name IS NOT NULL ) THEN
2414 
2415     -- now we attach the party to the header
2416     lp_cplv_rec.object_version_number := 1.0;
2417     lp_cplv_rec.sfwt_flag := OKC_API.G_FALSE;
2418     lp_cplv_rec.dnz_chr_id := x_chr_id;
2419     lp_cplv_rec.chr_id := x_chr_id;
2420     lp_cplv_rec.cle_id := NULL;
2421     lp_cplv_rec.object1_id1 := p_customer_id1;
2422     lp_cplv_rec.object1_id2 := p_customer_id2;
2423     lp_cplv_rec.jtot_object1_code := p_customer_code;
2424     lp_cplv_rec.rle_code := G_RLE_CODE;
2425 
2426     OPEN check_party_csr(x_chr_id);
2427     FETCH check_party_csr INTO row_count;
2428     CLOSE check_party_csr;
2429     IF row_count = 1 THEN
2430       x_return_status := OKC_API.g_ret_sts_error;
2431       OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'Party_already_exists');
2432       RAISE OKC_API.G_EXCEPTION_ERROR;
2433     END IF;
2434 
2435 
2436 ----- Changes by Kanti
2437 ----- Validate the JTOT Object code, ID1 and ID2
2438 
2439      OPEN role_csr(lp_cplv_rec.rle_code);
2440      FETCH role_csr INTO l_access_level;
2441      CLOSE role_csr;
2442 
2443      IF (l_access_level = 'S') THEN
2444 
2445          okl_la_validation_util_pvt.VALIDATE_ROLE_JTOT (p_api_version    => p_api_version,
2446                                                           p_init_msg_list  => OKC_API.G_FALSE,
2447                                                           x_return_status  => x_return_status,
2448                                                           x_msg_count	   => x_msg_count,
2449                                                           x_msg_data	   => x_msg_data,
2450                                                           p_object_name    => lp_cplv_rec.jtot_object1_code,
2451                                                           p_id1            => lp_cplv_rec.object1_id1,
2452                                                           p_id2            => lp_cplv_rec.object1_id2);
2453 	    IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2454               RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2455             ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
2456               RAISE OKC_API.G_EXCEPTION_ERROR;
2457             END IF;
2458 
2459       END IF;
2460 
2461 ----  Changes End
2462 
2463     --Bug# 4558486: Changed call to okl_k_party_roles_pvt api
2464     --              to create records in tables
2465     --              okc_k_party_roles_b and okl_k_party_roles
2466     /*
2467     OKC_CONTRACT_PARTY_PUB.create_k_party_role(
2468       p_api_version    => p_api_version,
2469       p_init_msg_list  => p_init_msg_list,
2470       x_return_status  => x_return_status,
2471       x_msg_count      => x_msg_count,
2472       x_msg_data       => x_msg_data,
2473       p_cplv_rec       => lp_cplv_rec,
2474       x_cplv_rec       => lx_cplv_rec);
2475     */
2476 
2477     okl_k_party_roles_pvt.create_k_party_role(
2478       p_api_version      => p_api_version,
2479       p_init_msg_list    => p_init_msg_list,
2480       x_return_status    => x_return_status,
2481       x_msg_count        => x_msg_count,
2482       x_msg_data         => x_msg_data,
2483       p_cplv_rec         => lp_cplv_rec,
2484       x_cplv_rec         => lx_cplv_rec,
2485       p_kplv_rec         => lp_kplv_rec,
2486       x_kplv_rec         => lx_kplv_rec);
2487 
2488     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2489        RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2490     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
2491        RAISE OKC_API.G_EXCEPTION_ERROR;
2492     END IF;
2493 
2494     END IF;
2495 
2496 
2497     OKC_API.END_ACTIVITY(x_msg_count => x_msg_count, x_msg_data => x_msg_data);
2498 
2499   EXCEPTION
2500     WHEN OKC_API.G_EXCEPTION_ERROR THEN
2501       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
2502 			p_api_name  => l_api_name,
2503 			p_pkg_name  => g_pkg_name,
2504 			p_exc_name  => 'OKC_API.G_RET_STS_ERROR',
2505 			x_msg_count => x_msg_count,
2506 			x_msg_data  => x_msg_data,
2507 			p_api_type  => g_api_type);
2508 
2509     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2510       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
2511 			p_api_name  => l_api_name,
2512 			p_pkg_name  => g_pkg_name,
2513 			p_exc_name  => 'OKC_API.G_RET_STS_UNEXP_ERROR',
2514 			x_msg_count => x_msg_count,
2515 			x_msg_data  => x_msg_data,
2516 			p_api_type  => g_api_type);
2517 
2518     WHEN OTHERS THEN
2519       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
2520 			p_api_name  => l_api_name,
2521 			p_pkg_name  => g_pkg_name,
2522 			p_exc_name  => 'OTHERS',
2523 			x_msg_count => x_msg_count,
2524 			x_msg_data  => x_msg_data,
2525 			p_api_type  => g_api_type);
2526   END;
2527 
2528   PROCEDURE delete_rules(
2529     p_api_version                  IN NUMBER,
2530     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
2531     x_return_status                OUT NOCOPY VARCHAR2,
2532     x_msg_count                    OUT NOCOPY NUMBER,
2533     x_msg_data                     OUT NOCOPY VARCHAR2,
2534     p_old_khr_id                   IN  NUMBER, -- prev vp id
2535     p_source_id                    IN  NUMBER, -- vp id
2536     p_dest_id                      IN  NUMBER, -- k id
2537     p_org_id                       IN  NUMBER,
2538     p_organization_id              IN  NUMBER) IS
2539 
2540     l_api_name	VARCHAR2(30) := 'DELETE_RULES';
2541     l_api_version	CONSTANT NUMBER	  := 1.0;
2542 
2543     lp_rgpv_rec Okl_Rule_Pub.rgpv_rec_type;
2544 
2545     lp_cplv_rec OKL_OKC_MIGRATION_PVT.cplv_rec_type;
2546     lp_rmpv_rec OKL_OKC_MIGRATION_PVT.rmpv_rec_type;
2547 
2548     l_rgpr_id NUMBER := NULL;
2549     l_vp_tmpl_id  NUMBER;
2550     l_k_cpl_id okc_k_party_roles_v.id%TYPE := NULL;
2551     l_k_object1_id1 okc_k_party_roles_v.object1_id1%TYPE := NULL;
2552 
2553 --Cursor to get vp template
2554     CURSOR vp_tmpl_csr(p_vp_id IN NUMBER) IS
2555     SELECT id
2556     FROM   okl_k_headers_full_v
2557     WHERE  scs_code = 'PROGRAM'
2558     AND    sts_code IN ('ACTIVE','PASSED')
2559     AND    khr_id = p_vp_id
2560     AND    NVL(template_yn,'N') = 'Y';
2561 
2562  -- returns rgp id thet exist in lease as well as vp
2563     CURSOR c_prev_src_crs(p_vp_tmpl_id IN NUMBER) IS
2564          SELECT rglease.id, rglease.rgd_code
2565          FROM  okc_rule_groups_v rglease
2566          WHERE dnz_chr_id = p_dest_id
2567          AND chr_id = p_dest_id
2568          AND EXISTS(
2569                SELECT '1'
2570                FROM   okc_rule_groups_v rg,
2571                       okc_k_headers_v hdr
2572                WHERE  rg.chr_id = p_vp_tmpl_id
2573                AND    hdr.id = rg.chr_id
2574                AND    hdr.id = rg.dnz_chr_id
2575                AND    rg.cle_id IS NULL
2576                AND    rg.rgd_code = rglease.rgd_code
2577 	       );
2578 
2579 -- gets the party lease vendor that exists in vp
2580 --start modifying abhsaxen Cursor not in use
2581 --   CURSOR c_prev_cpl_csr IS
2582 --end  modifying abhsaxen Cursor not in use
2583 
2584 --start modifying abhsaxen Cursor not in use
2585 
2586 --   CURSOR c_rg_party_csr(p_cpl_id IN NUMBER, p_object1_id1 IN okc_k_party_roles_v.object1_id1%TYPE) IS
2587 --end modifying abhsaxen Cursor not in use
2588   BEGIN
2589 
2590     OKC_CONTEXT.SET_OKC_ORG_CONTEXT(
2591 		p_org_id =>  p_org_id,
2592 		p_organization_id	=> p_organization_id);
2593 
2594     x_return_status := OKC_API.START_ACTIVITY(
2595 			p_api_name      => l_api_name,
2596 			p_pkg_name      => g_pkg_name,
2597 			p_init_msg_list => p_init_msg_list,
2598 			l_api_version   => l_api_version,
2599 			p_api_version   => p_api_version,
2600 			p_api_type      => g_api_type,
2601 			x_return_status => x_return_status);
2602 
2603     -- check if activity started successfully
2604     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2605        RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2606     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
2607        RAISE OKC_API.G_EXCEPTION_ERROR;
2608     END IF;
2609 
2610     OPEN vp_tmpl_csr(p_vp_id => p_old_khr_id);
2611     FETCH vp_tmpl_csr INTO l_vp_tmpl_id;
2612 
2613       IF vp_tmpl_csr%NOTFOUND THEN
2614          NULL;
2615       ELSE
2616 
2617         -- copy vp rules to lease contract
2618         FOR l_c_prev_src_crs IN c_prev_src_crs(p_vp_tmpl_id => l_vp_tmpl_id) LOOP
2619 
2620           lp_rgpv_rec.id := l_c_prev_src_crs.id;
2621 
2622           IF(l_c_prev_src_crs.rgd_code IS NOT NULL AND l_c_prev_src_crs.rgd_code <> G_VENDOR_BILL_RGD_CODE) THEN
2623 
2624             OKL_RULE_PUB.delete_rule_group(
2625              p_api_version	=> p_api_version,
2626              p_init_msg_list	=> p_init_msg_list,
2627              x_return_status 	=> x_return_status,
2628              x_msg_count     	=> x_msg_count,
2629              x_msg_data      	=> x_msg_data,
2630              p_rgpv_rec         => lp_rgpv_rec
2631              );
2632 
2633 	    IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2634 	       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2635 	    ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
2636 	       RAISE OKC_API.G_EXCEPTION_ERROR;
2637 	    END IF;
2638 
2639          END IF;
2640 
2641         END LOOP;
2642 
2643      END IF;
2644 
2645    CLOSE vp_tmpl_csr;
2646 
2647   OKC_API.END_ACTIVITY(x_msg_count => x_msg_count, x_msg_data => x_msg_data);
2648 
2649   EXCEPTION
2650     WHEN OKC_API.G_EXCEPTION_ERROR THEN
2651       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
2652 			p_api_name  => l_api_name,
2653 			p_pkg_name  => g_pkg_name,
2654 			p_exc_name  => 'OKC_API.G_RET_STS_ERROR',
2655 			x_msg_count => x_msg_count,
2656 			x_msg_data  => x_msg_data,
2657 			p_api_type  => g_api_type);
2658 
2659     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2660       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
2661 			p_api_name  => l_api_name,
2662 			p_pkg_name  => g_pkg_name,
2663 			p_exc_name  => 'OKC_API.G_RET_STS_UNEXP_ERROR',
2664 			x_msg_count => x_msg_count,
2665 			x_msg_data  => x_msg_data,
2666 			p_api_type  => g_api_type);
2667 
2668     WHEN OTHERS THEN
2669       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
2670 			p_api_name  => l_api_name,
2671 			p_pkg_name  => g_pkg_name,
2672 			p_exc_name  => 'OTHERS',
2673 			x_msg_count => x_msg_count,
2674 			x_msg_data  => x_msg_data,
2675 			p_api_type  => g_api_type);
2676   END;
2677 
2678 
2679   PROCEDURE copy_rules(
2680     p_api_version                  IN NUMBER,
2681     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
2682     x_return_status                OUT NOCOPY VARCHAR2,
2683     x_msg_count                    OUT NOCOPY NUMBER,
2684     x_msg_data                     OUT NOCOPY VARCHAR2,
2685     p_source_id                    IN  NUMBER, -- vp id
2686     p_dest_id                      IN  NUMBER, -- k id
2687     p_org_id                       IN  NUMBER,
2688     p_organization_id              IN  NUMBER) IS
2689 
2690     l_api_name	VARCHAR2(30) := 'COPY_RULES';
2691     l_api_version	CONSTANT NUMBER	  := 1.0;
2692 
2693     l_rgp_id 		okc_rule_groups_v.id%TYPE;
2694     l_cle_id		okc_rule_groups_v.cle_id%TYPE DEFAULT NULL;
2695     l_chr_id		okc_rule_groups_v.chr_id%TYPE := p_dest_id;
2696     l_to_template_yn	VARCHAR2(5) :='N';
2697     x_rgp_id		okc_rule_groups_v.id%TYPE;
2698 
2699     l_func_curr_code     	okc_k_headers_b.currency_code%TYPE := NULL;
2700     l_k_curr_code        	okc_k_headers_b.currency_code%TYPE := NULL;
2701     l_start_date                okc_k_headers_b.start_date%TYPE;
2702     l_rule_amt                  NUMBER;
2703     x_contract_currency	        okl_k_headers_full_v.currency_code%TYPE := NULL;
2704     x_currency_conversion_type	okl_k_headers_full_v.currency_conversion_type%TYPE := NULL;
2705     x_currency_conversion_rate	okl_k_headers_full_v.currency_conversion_rate%TYPE := NULL;
2706     x_currency_conversion_date	okl_k_headers_full_v.currency_conversion_date%TYPE := NULL;
2707     x_converted_amount 		NUMBER := NULL;
2708 
2709     l_rgd_code                  okc_rule_groups_b.rgd_code%TYPE := NULL;
2710     l_rule_info_cat             okc_rules_b.rule_information_category%TYPE := NULL;
2711     l_rule_id                   NUMBER := NULL;
2712     l_rule_segment              VARCHAR2(250) := NULL;
2713 
2714     l_no_data_found BOOLEAN := TRUE;
2715 
2716     l_vp_tmpl_id  NUMBER;
2717 
2718   --Cursor to get vp template
2719     CURSOR vp_tmpl_csr(p_vp_id IN NUMBER) IS
2720     SELECT id
2721     FROM   okl_k_headers_full_v
2722     WHERE  scs_code = 'PROGRAM'
2723     AND    sts_code IN ('ACTIVE','PASSED')
2724     AND    khr_id = p_vp_id
2725     AND    NVL(template_yn,'N') = 'Y';
2726 
2727     -- returns vendor program rgd codes which are qualified for lease
2728     CURSOR c_src_crs(p_vp_tmpl_id IN NUMBER) IS
2729         SELECT rg.id
2730         FROM   okc_rule_groups_v rg,
2731                okc_k_headers_v hdr
2732         WHERE  rg.chr_id = p_vp_tmpl_id
2733         AND    hdr.id = rg.chr_id
2734         AND    hdr.id = rg.dnz_chr_id
2735         AND    rg.cle_id IS NULL
2736         AND  EXISTS
2737              (SELECT '1'
2738               FROM   okc_subclass_rg_defs rgdfs
2739               WHERE  rgdfs.rgd_code = rg.rgd_code
2740               AND    rgdfs.scs_code = 'LEASE')
2741         AND NOT EXISTS
2742            (SELECT '1'
2743             FROM  okc_rule_groups_v rglease
2744             WHERE dnz_chr_id =p_dest_id
2745             AND chr_id = p_dest_id
2746         AND rglease.rgd_code = rg.rgd_code);
2747 
2748      CURSOR c_rule_amt_crs(p_rule_code IN VARCHAR2, p_rule_group_code IN VARCHAR2) IS
2749 	--Start modified abhsaxen for performance SQLID 20562750
2750 	SELECT fus.application_column_name
2751 		FROM   FND_DESCR_FLEX_COLUMN_USAGES fus,
2752 		       fnd_flex_value_sets ffv,
2753 		       okc_rg_def_rules    defrul,
2754 		       fnd_lookup_values   flup,
2755 		       okc_rule_defs_v     rulup
2756 		WHERE  fus.DESCRIPTIVE_FLEX_CONTEXT_CODE  = defrul.rdf_code
2757 		AND    fus.application_id = 540
2758 		AND    ffv.flex_value_set_id = fus.flex_value_set_id
2759 		AND    flup.lookup_code         = defrul.rgd_code
2760 		AND    flup.lookup_type         = 'OKC_RULE_GROUP_DEF'
2761 		AND    rulup.rule_code          = defrul.rdf_code
2762 		AND    defrul.rdf_code          = p_rule_code
2763 		AND    defrul.rgd_code          = p_rule_group_code
2764 		AND    flex_value_set_name = 'OKC_AMOUNT'
2765 	--end modified abhsaxen for performance SQLID 20562750
2766 	;
2767      CURSOR c_rule_csr (p_rgp_id IN NUMBER) IS
2768 	--Start modified abhsaxen for performance SQLID 20562755
2769 	select rgp.rgd_code,rul.rule_information_category,rul.id
2770 	 from okc_rule_groups_b rgp, okc_rules_b rul
2771 	 where rgp.id = rul.rgp_id
2772 	 and rul.dnz_chr_id = p_dest_id
2773 	 and rgp.id = p_rgp_id
2774 	 and exists (
2775 	  select 1
2776 	  from   FND_DESCR_FLEX_COLUMN_USAGES fus,
2777 	      fnd_flex_value_sets ffv,
2778 	      okc_rg_def_rules    defrul,
2779 	      fnd_lookup_values   flup,
2780 	      okc_rule_defs_b     rulup
2781 	  where  fus.descriptive_flex_context_code  = defrul.rdf_code
2782 		  and    fus.application_id = 540
2783 	  and    ffv.flex_value_set_id(+) =  fus.flex_value_set_id
2784 	  and    flup.lookup_code         =  defrul.rgd_code
2785 	  and    flup.lookup_type         =  'OKC_RULE_GROUP_DEF'
2786 	  and    rulup.rule_code          =  defrul.rdf_code
2787 	  and    flex_value_set_name      =  'OKC_AMOUNT'
2788 	  and    defrul.rdf_code          =  rul.rule_information_category -- rule
2789 	  and    defrul.rgd_code          =  rgp.rgd_code -- rule group
2790 	  );
2791 	--end modified abhsaxen for performance SQLID 20562755
2792 
2793     CURSOR c_k_curr_csr IS
2794      SELECT currency_code, start_date
2795      FROM okc_k_headers_b
2796      WHERE id = p_dest_id;
2797 
2798     CURSOR c_rule_segmnts_csr(p_rule_id IN NUMBER) IS
2799      SELECT RULE_INFORMATION1,RULE_INFORMATION2,RULE_INFORMATION3,RULE_INFORMATION4,RULE_INFORMATION5,
2800             RULE_INFORMATION6,RULE_INFORMATION7,RULE_INFORMATION8,RULE_INFORMATION9,RULE_INFORMATION10,
2801             RULE_INFORMATION11,RULE_INFORMATION12,RULE_INFORMATION13,RULE_INFORMATION14,RULE_INFORMATION15
2802      FROM okc_rules_v
2803      WHERE id = p_rule_id
2804      AND   dnz_chr_id = p_dest_id;
2805 
2806     rul_seg_rec c_rule_segmnts_csr%ROWTYPE;
2807 
2808     lp_rulv_rec Okl_Rule_Pub.rulv_rec_type;
2809     lx_rulv_rec Okl_Rule_Pub.rulv_rec_type;
2810     lp_rmpv_rec OKL_OKC_MIGRATION_PVT.rmpv_rec_type;
2811     lx_rmpv_rec OKL_OKC_MIGRATION_PVT.rmpv_rec_type;
2812 
2813     l_vp_cpl_id okc_k_party_roles_v.id%TYPE := NULL;
2814     x_cpl_id   okc_k_party_roles_v.id%TYPE := NULL;
2815 
2816     l_cpl_id  okc_k_party_roles_v.id%TYPE := NULL;
2817     l_rrd_id  NUMBER := NULL;
2818     l_vndr_blng_rgp_id NUMBER := NULL;
2819 --start modifying abhsaxen Cursor not in use
2820 --   CURSOR c_lse_vndr_csr IS
2821 --end modifying abhsaxen Cursor not in use
2822 
2823    CURSOR c_rrdid_csr IS
2824     SELECT   rgrdfs.id
2825     FROM     okc_k_headers_b CHR,
2826              okc_subclass_roles sre,
2827              okc_role_sources rse,
2828              okc_subclass_rg_defs rgdfs,
2829              okc_rg_role_defs rgrdfs
2830     WHERE    CHR.id =  p_dest_id
2831     AND      sre.scs_code = CHR.scs_code
2832     AND      sre.rle_code = rse.rle_code
2833     AND      rse.rle_code = G_LEASE_VENDOR
2834     AND      rse.buy_or_sell = CHR.buy_or_sell
2835     AND      rgdfs.scs_code = CHR.scs_code
2836     AND      rgdfs.rgd_code = G_VENDOR_BILL_RGD_CODE
2837     AND      rgrdfs.srd_id = rgdfs.id
2838     AND      rgrdfs.sre_id = sre.id;
2839 
2840    CURSOR c_vndr_blng_id_csr IS
2841     SELECT rgpv.id
2842     FROM okc_rule_groups_v rgpv
2843     WHERE rgpv.rgd_code = G_VENDOR_BILL_RGD_CODE
2844     AND rgpv.dnz_chr_id   = p_source_id;
2845 
2846    CURSOR c_vp_cpl_csr IS
2847 --Start modified abhsaxen for performance SQLID 20562566
2848 select cplv.id
2849     from okc_k_party_roles_b cplv
2850     where cplv.rle_code = g_lease_vendor
2851     and cplv.chr_id = p_source_id
2852     and cplv.dnz_chr_id = cplv.chr_id
2853     and not exists (select 1
2854                     from okc_k_party_roles_b s_cpl
2855                     where s_cpl.chr_id = p_dest_id
2856                     and s_cpl.dnz_chr_id = s_cpl.chr_id
2857                     and s_cpl.rle_code = g_lease_vendor
2858                     and cplv.object1_id1 = s_cpl.object1_id1
2859                     );
2860 --end modified abhsaxen for performance SQLID 20562566
2861 
2862     BEGIN
2863 
2864     OKC_CONTEXT.SET_OKC_ORG_CONTEXT(
2865 		p_org_id =>  p_org_id,
2866 		p_organization_id	=> p_organization_id);
2867 
2868     x_return_status := OKC_API.START_ACTIVITY(
2869 			p_api_name      => l_api_name,
2870 			p_pkg_name      => g_pkg_name,
2871 			p_init_msg_list => p_init_msg_list,
2872 			l_api_version   => l_api_version,
2873 			p_api_version   => p_api_version,
2874 			p_api_type      => g_api_type,
2875 			x_return_status => x_return_status);
2876 
2877 
2878     -- check if activity started successfully
2879     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2880        RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2881     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
2882        RAISE OKC_API.G_EXCEPTION_ERROR;
2883     END IF;
2884 
2885          -- copy vp party lease vendor to lease contract
2886          l_vp_cpl_id := NULL;
2887 
2888          OPEN c_vp_cpl_csr;
2889          FETCH c_vp_cpl_csr INTO l_vp_cpl_id;
2890          CLOSE c_vp_cpl_csr;
2891 
2892          IF( l_vp_cpl_id IS NOT NULL) THEN
2893 
2894            OKL_COPY_CONTRACT_PUB.copy_party_roles(
2895               p_api_version	=> p_api_version,
2896               p_init_msg_list	=> p_init_msg_list,
2897               x_return_status 	=> x_return_status,
2898               x_msg_count     	=> x_msg_count,
2899               x_msg_data      	=> x_msg_data,
2900  	      p_cpl_id          => l_vp_cpl_id,
2901  	      p_cle_id          => NULL,
2902  	      p_chr_id          => l_chr_id,
2903  	      P_rle_code        => G_LEASE_VENDOR,
2904  	      x_cpl_id		=> x_cpl_id
2905  	     );
2906 
2907            IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2908  	       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2909            ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
2910                 RAISE OKC_API.G_EXCEPTION_ERROR;
2911            END IF;
2912 
2913            l_vndr_blng_rgp_id := NULL;
2914            OPEN c_vndr_blng_id_csr;
2915            FETCH c_vndr_blng_id_csr INTO l_vndr_blng_rgp_id;
2916            CLOSE c_vndr_blng_id_csr;
2917 
2918            IF( l_vndr_blng_rgp_id IS NOT NULL AND x_cpl_id IS NOT NULL) THEN
2919 
2920             OKL_COPY_CONTRACT_PUB.copy_rules(
2921              p_api_version	=> p_api_version,
2922              p_init_msg_list	=> p_init_msg_list,
2923              x_return_status 	=> x_return_status,
2924              x_msg_count     	=> x_msg_count,
2925              x_msg_data      	=> x_msg_data,
2926              p_rgp_id		=> l_vndr_blng_rgp_id,
2927              p_cle_id		=> NULL,
2928              p_chr_id		=> l_chr_id,
2929              p_to_template_yn   => l_to_template_yn,
2930              x_rgp_id		=> x_rgp_id);
2931 
2932 	    IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2933 	       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2934 	    ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
2935 	       RAISE OKC_API.G_EXCEPTION_ERROR;
2936 	    END IF;
2937 
2938            END IF;
2939 
2940 
2941            IF( x_rgp_id IS NOT NULL AND x_cpl_id IS NOT NULL) THEN
2942 
2943              l_rrd_id := NULL;
2944              OPEN c_rrdid_csr;
2945              FETCH c_rrdid_csr INTO l_rrd_id;
2946              CLOSE c_rrdid_csr;
2947 
2948              lp_rmpv_rec.rgp_id := x_rgp_id;
2949              lp_rmpv_rec.cpl_id := x_cpl_id;
2950              lp_rmpv_rec.dnz_chr_id := l_chr_id;
2951              lp_rmpv_rec.rrd_id := l_rrd_id;
2952 
2953              OKL_RULE_PUB.create_rg_mode_pty_role(
2954 	          p_api_version    => p_api_version,
2955 	          p_init_msg_list  => p_init_msg_list,
2956 	          x_return_status  => x_return_status,
2957 	          x_msg_count      => x_msg_count,
2958 	          x_msg_data       => x_msg_data,
2959 	          p_rmpv_rec       => lp_rmpv_rec,
2960 	          x_rmpv_rec       => lx_rmpv_rec
2961 	          );
2962 
2963 	     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2964 	           RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2965 	     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
2966 	           RAISE OKC_API.G_EXCEPTION_ERROR;
2967 	     END IF;
2968 
2969            END IF;
2970 
2971         END IF;
2972 
2973 
2974     OPEN vp_tmpl_csr(p_vp_id => p_source_id);
2975       FETCH vp_tmpl_csr INTO l_vp_tmpl_id;
2976       IF vp_tmpl_csr%NOTFOUND THEN
2977          NULL;
2978       ELSE
2979 
2980         -- copy vp rules to lease contract
2981         FOR l_c_src_crs IN c_src_crs(p_vp_tmpl_id => l_vp_tmpl_id) LOOP
2982 
2983         l_rgp_id := l_c_src_crs.id; -- gets vendor program rgd code
2984 
2985         OKL_COPY_CONTRACT_PUB.copy_rules(
2986              p_api_version	=> p_api_version,
2987              p_init_msg_list	=> p_init_msg_list,
2988              x_return_status 	=> x_return_status,
2989              x_msg_count     	=> x_msg_count,
2990              x_msg_data      	=> x_msg_data,
2991              p_rgp_id		=> l_rgp_id,
2992              p_cle_id		=> l_cle_id,
2993              p_chr_id		=> l_chr_id,
2994              p_to_template_yn   => l_to_template_yn,
2995              x_rgp_id		=> x_rgp_id);
2996 
2997 	    IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2998 	       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2999 	    ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
3000 	       RAISE OKC_API.G_EXCEPTION_ERROR;
3001 	    END IF;
3002 
3003 
3004 -- start of currency conversion for program rules
3005 
3006 IF ( x_rgp_id IS NOT NULL) THEN
3007 
3008   l_func_curr_code := NULL;
3009   -- if functional currency code is not equal to contract currency code
3010   l_func_curr_code := OKL_ACCOUNTING_UTIL.get_func_curr_code;
3011 
3012   l_k_curr_code := NULL;
3013   l_start_date := NULL;
3014 
3015   OPEN c_k_curr_csr;
3016   FETCH c_k_curr_csr INTO l_k_curr_code, l_start_date;
3017   CLOSE c_k_curr_csr;
3018 
3019   IF(l_func_curr_code IS NOT NULL AND l_k_curr_code IS NOT NULL AND l_func_curr_code <> l_k_curr_code) THEN
3020 
3021 
3022      FOR l_c_rule_csr IN c_rule_csr(p_rgp_id => x_rgp_id) LOOP -- get all the rules
3023 
3024           l_rgd_code          := l_c_rule_csr.rgd_code;
3025           l_rule_info_cat     := l_c_rule_csr.rule_information_category;
3026           l_rule_id           := l_c_rule_csr.id;
3027 
3028            OPEN c_rule_segmnts_csr (l_rule_id);
3029            FETCH c_rule_segmnts_csr INTO rul_seg_rec;
3030            CLOSE c_rule_segmnts_csr;
3031 
3032            l_rule_segment := NULL;
3033            l_rule_amt := NULL;
3034 
3035            lp_rulv_rec.RULE_INFORMATION1 := rul_seg_rec.RULE_INFORMATION1;
3036            lp_rulv_rec.RULE_INFORMATION2 := rul_seg_rec.RULE_INFORMATION2;
3037            lp_rulv_rec.RULE_INFORMATION3 := rul_seg_rec.RULE_INFORMATION3;
3038            lp_rulv_rec.RULE_INFORMATION4 := rul_seg_rec.RULE_INFORMATION4;
3039            lp_rulv_rec.RULE_INFORMATION5 := rul_seg_rec.RULE_INFORMATION5;
3040            lp_rulv_rec.RULE_INFORMATION6 := rul_seg_rec.RULE_INFORMATION6;
3041            lp_rulv_rec.RULE_INFORMATION7 := rul_seg_rec.RULE_INFORMATION7;
3042            lp_rulv_rec.RULE_INFORMATION8 := rul_seg_rec.RULE_INFORMATION8;
3043            lp_rulv_rec.RULE_INFORMATION9 := rul_seg_rec.RULE_INFORMATION9;
3044            lp_rulv_rec.RULE_INFORMATION10 := rul_seg_rec.RULE_INFORMATION10;
3045            lp_rulv_rec.RULE_INFORMATION11 := rul_seg_rec.RULE_INFORMATION11;
3046            lp_rulv_rec.RULE_INFORMATION12 := rul_seg_rec.RULE_INFORMATION12;
3047            lp_rulv_rec.RULE_INFORMATION13 := rul_seg_rec.RULE_INFORMATION13;
3048            lp_rulv_rec.RULE_INFORMATION14 := rul_seg_rec.RULE_INFORMATION14;
3049            lp_rulv_rec.RULE_INFORMATION15 := rul_seg_rec.RULE_INFORMATION15;
3050 
3051            FOR l_c_rule_amt_crs IN c_rule_amt_crs(p_rule_code => l_rule_info_cat, p_rule_group_code => l_rgd_code) LOOP -- get all the rule amount segments
3052 
3053              l_rule_segment := l_c_rule_amt_crs.application_column_name;
3054              IF(l_rule_segment IS NOT NULL) THEN
3055 
3056                IF (l_rule_segment = 'RULE_INFORMATION1') THEN
3057                 l_rule_amt := rul_seg_rec.RULE_INFORMATION1;
3058                ELSIF (l_rule_segment = 'RULE_INFORMATION2') THEN
3059                 l_rule_amt := rul_seg_rec.RULE_INFORMATION2;
3060                ELSIF (l_rule_segment = 'RULE_INFORMATION3') THEN
3061                 l_rule_amt := rul_seg_rec.RULE_INFORMATION3;
3062                ELSIF (l_rule_segment = 'RULE_INFORMATION4') THEN
3063                 l_rule_amt := rul_seg_rec.RULE_INFORMATION4;
3064                ELSIF (l_rule_segment = 'RULE_INFORMATION5') THEN
3065                 l_rule_amt := rul_seg_rec.RULE_INFORMATION5;
3066                ELSIF (l_rule_segment = 'RULE_INFORMATION6') THEN
3067                 l_rule_amt := rul_seg_rec.RULE_INFORMATION6;
3068                ELSIF (l_rule_segment = 'RULE_INFORMATION7') THEN
3069                 l_rule_amt := rul_seg_rec.RULE_INFORMATION7;
3070                ELSIF (l_rule_segment = 'RULE_INFORMATION8') THEN
3071                 l_rule_amt := rul_seg_rec.RULE_INFORMATION8;
3072                ELSIF (l_rule_segment = 'RULE_INFORMATION9') THEN
3073                 l_rule_amt := rul_seg_rec.RULE_INFORMATION9;
3074                ELSIF (l_rule_segment = 'RULE_INFORMATION10') THEN
3075                 l_rule_amt := rul_seg_rec.RULE_INFORMATION10;
3076                ELSIF (l_rule_segment = 'RULE_INFORMATION11') THEN
3077                 l_rule_amt := rul_seg_rec.RULE_INFORMATION11;
3078                ELSIF (l_rule_segment = 'RULE_INFORMATION12') THEN
3079                 l_rule_amt := rul_seg_rec.RULE_INFORMATION12;
3080                ELSIF (l_rule_segment = 'RULE_INFORMATION13') THEN
3081                 l_rule_amt := rul_seg_rec.RULE_INFORMATION13;
3082                ELSIF (l_rule_segment = 'RULE_INFORMATION14') THEN
3083                 l_rule_amt := rul_seg_rec.RULE_INFORMATION14;
3084                ELSIF (l_rule_segment = 'RULE_INFORMATION15') THEN
3085                 l_rule_amt := rul_seg_rec.RULE_INFORMATION15;
3086                END IF;
3087 
3088              END IF;
3089 
3090                IF (l_rule_amt IS NOT NULL) THEN
3091                 -- do currency conversion for DFF amount columns
3092                 OKL_ACCOUNTING_UTIL.convert_to_contract_currency (
3093    	  		p_khr_id  		  	=> l_chr_id,
3094 	 		p_from_currency   		=> l_func_curr_code,
3095 	 		p_transaction_date 		=> l_start_date,
3096 	 		p_amount 			=> l_rule_amt,
3097 	 		x_contract_currency		=> x_contract_currency,
3098 	 		x_currency_conversion_type	=> x_currency_conversion_type,
3099 	 		x_currency_conversion_rate	=> x_currency_conversion_rate,
3100 	 		x_currency_conversion_date	=> x_currency_conversion_date,
3101 	 		x_converted_amount 		=> x_converted_amount);
3102 
3103 
3104 		       IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3105 		          RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3106 		       ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
3107 		          RAISE OKC_API.G_EXCEPTION_ERROR;
3108 		       END IF;
3109 
3110                      IF(l_rule_id IS NOT NULL AND x_converted_amount IS NOT NULL) THEN
3111 
3112                        x_converted_amount := OKL_ACCOUNTING_UTIL.cross_currency_round_amount
3113                                 (
3114                        		p_amount =>  x_converted_amount,
3115                        		p_currency_code => l_k_curr_code
3116                        		);
3117 
3118                        lp_rulv_rec.id := l_rule_id;
3119 	               IF (l_rule_segment = 'RULE_INFORMATION1') THEN
3120                                lp_rulv_rec.RULE_INFORMATION1 := TO_CHAR(x_converted_amount);
3121 	               ELSIF (l_rule_segment = 'RULE_INFORMATION2') THEN
3122 	                       lp_rulv_rec.RULE_INFORMATION2 := TO_CHAR(x_converted_amount);
3123 	               ELSIF (l_rule_segment = 'RULE_INFORMATION3') THEN
3124 	                       lp_rulv_rec.RULE_INFORMATION3 := TO_CHAR(x_converted_amount);
3125 	               ELSIF (l_rule_segment = 'RULE_INFORMATION4') THEN
3126 	                       lp_rulv_rec.RULE_INFORMATION4 := TO_CHAR(x_converted_amount);
3127 	               ELSIF (l_rule_segment = 'RULE_INFORMATION5') THEN
3128 	                       lp_rulv_rec.RULE_INFORMATION5 := TO_CHAR(x_converted_amount);
3129 	               ELSIF (l_rule_segment = 'RULE_INFORMATION6') THEN
3130 	                       lp_rulv_rec.RULE_INFORMATION6 := TO_CHAR(x_converted_amount);
3131 	               ELSIF (l_rule_segment = 'RULE_INFORMATION7') THEN
3132 	                       lp_rulv_rec.RULE_INFORMATION7 := TO_CHAR(x_converted_amount);
3133 	               ELSIF (l_rule_segment = 'RULE_INFORMATION8') THEN
3134 	                       lp_rulv_rec.RULE_INFORMATION8:= TO_CHAR(x_converted_amount);
3135 	               ELSIF (l_rule_segment = 'RULE_INFORMATION9') THEN
3136 	                       lp_rulv_rec.RULE_INFORMATION9 := TO_CHAR(x_converted_amount);
3137 	               ELSIF (l_rule_segment = 'RULE_INFORMATION10') THEN
3138 	                       lp_rulv_rec.RULE_INFORMATION10 := TO_CHAR(x_converted_amount);
3139 	               ELSIF (l_rule_segment = 'RULE_INFORMATION11') THEN
3140 	                       lp_rulv_rec.RULE_INFORMATION11 := TO_CHAR(x_converted_amount);
3141 	               ELSIF (l_rule_segment = 'RULE_INFORMATION12') THEN
3142 	                       lp_rulv_rec.RULE_INFORMATION12 := TO_CHAR(x_converted_amount);
3143 	               ELSIF (l_rule_segment = 'RULE_INFORMATION13') THEN
3144 	                       lp_rulv_rec.RULE_INFORMATION13 := TO_CHAR(x_converted_amount);
3145 	               ELSIF (l_rule_segment = 'RULE_INFORMATION14') THEN
3146 	                       lp_rulv_rec.RULE_INFORMATION14 := TO_CHAR(x_converted_amount);
3147 	               ELSIF (l_rule_segment = 'RULE_INFORMATION15') THEN
3148 	                       lp_rulv_rec.RULE_INFORMATION15 := TO_CHAR(x_converted_amount);
3149 	               END IF;
3150 
3151 	 	       l_rule_segment := NULL;
3152 	 	       l_rule_amt := NULL;
3153 
3154                      END IF;
3155                END IF;
3156 
3157  	   END LOOP;
3158 
3159            IF(l_rule_id IS NOT NULL AND x_converted_amount IS NOT NULL) THEN
3160 
3161                OKL_RULE_PUB.update_rule(
3162 		         p_api_version    => p_api_version,
3163 		         p_init_msg_list  => p_init_msg_list,
3164 		         x_return_status  => x_return_status,
3165 		         x_msg_count      => x_msg_count,
3166 		         x_msg_data       => x_msg_data,
3167 		         p_rulv_rec       => lp_rulv_rec,
3168 		         x_rulv_rec       => lx_rulv_rec);
3169 
3170                 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3171   		          RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3172                 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
3173 		          RAISE OKC_API.G_EXCEPTION_ERROR;
3174                 END IF;
3175 
3176             END IF;
3177 
3178             l_rgd_code := NULL;
3179             l_rule_info_cat := NULL;
3180             l_rule_id := NULL;
3181             rul_seg_rec := NULL;
3182             x_converted_amount := NULL;
3183 
3184       END LOOP;
3185 
3186   END IF;
3187 
3188  END IF;
3189 
3190 -- end of currency conversion for program rules
3191 
3192  END LOOP;
3193 
3194  END IF;
3195 
3196  CLOSE vp_tmpl_csr;
3197 
3198  OKC_API.END_ACTIVITY(x_msg_count => x_msg_count, x_msg_data => x_msg_data);
3199 
3200   EXCEPTION
3201     WHEN OKC_API.G_EXCEPTION_ERROR THEN
3202       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
3203 			p_api_name  => l_api_name,
3204 			p_pkg_name  => g_pkg_name,
3205 			p_exc_name  => 'OKC_API.G_RET_STS_ERROR',
3206 			x_msg_count => x_msg_count,
3207 			x_msg_data  => x_msg_data,
3208 			p_api_type  => g_api_type);
3209 
3210     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3211       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
3212 			p_api_name  => l_api_name,
3213 			p_pkg_name  => g_pkg_name,
3214 			p_exc_name  => 'OKC_API.G_RET_STS_UNEXP_ERROR',
3215 			x_msg_count => x_msg_count,
3216 			x_msg_data  => x_msg_data,
3217 			p_api_type  => g_api_type);
3218 
3219     WHEN OTHERS THEN
3220       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
3221 			p_api_name  => l_api_name,
3222 			p_pkg_name  => g_pkg_name,
3223 			p_exc_name  => 'OTHERS',
3224 			x_msg_count => x_msg_count,
3225 			x_msg_data  => x_msg_data,
3226 			p_api_type  => g_api_type);
3227   END;
3228 
3229   PROCEDURE copy_rules(
3230     p_api_version                  IN NUMBER,
3231     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
3232     x_return_status                OUT NOCOPY VARCHAR2,
3233     x_msg_count                    OUT NOCOPY NUMBER,
3234     x_msg_data                     OUT NOCOPY VARCHAR2,
3235     p_old_khr_id                   IN  NUMBER, -- prev k khr id
3236     p_prog_override_yn             IN  VARCHAR2, -- program yn
3237     p_source_id                    IN  NUMBER, -- vp id
3238     p_dest_id                      IN  NUMBER, -- k id
3239     p_org_id                       IN  NUMBER,
3240     p_organization_id              IN  NUMBER) IS
3241 
3242     l_api_name	VARCHAR2(30) := 'COPY_RULES';
3243     l_api_version	CONSTANT NUMBER	  := 1.0;
3244 
3245     BEGIN
3246 
3247     OKC_CONTEXT.SET_OKC_ORG_CONTEXT(p_org_id =>  p_org_id,  p_organization_id => p_organization_id);
3248 
3249     x_return_status := OKC_API.START_ACTIVITY(
3250 			p_api_name      => l_api_name,
3251 			p_pkg_name      => g_pkg_name,
3252 			p_init_msg_list => p_init_msg_list,
3253 			l_api_version   => l_api_version,
3254 			p_api_version   => p_api_version,
3255 			p_api_type      => g_api_type,
3256 			x_return_status => x_return_status);
3257 
3258     -- check if activity started successfully
3259     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3260        RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3261     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
3262        RAISE OKC_API.G_EXCEPTION_ERROR;
3263     END IF;
3264 
3265 
3266     IF( (p_old_khr_id IS NOT NULL AND p_source_id IS NOT NULL AND p_old_khr_id <> p_source_id
3267     	  			AND p_prog_override_yn IS NOT NULL AND p_prog_override_yn = 'Y' )
3268       OR (p_old_khr_id IS NOT NULL AND p_source_id IS NULL
3269       				AND p_prog_override_yn IS NOT NULL AND p_prog_override_yn = 'Y' )
3270 
3271       ) THEN
3272 
3273           -- delete all the rules of the old_khr_id'S program template rules
3274            delete_rules(
3275 	        p_api_version       => p_api_version,
3276 	        p_init_msg_list     => p_init_msg_list,
3277 	        x_return_status     => x_return_status,
3278 	        x_msg_count         => x_msg_count,
3279 	        x_msg_data          => x_msg_data,
3280 	        p_old_khr_id        => p_old_khr_id,
3281 	        p_source_id         => p_source_id,
3282 	        p_dest_id           => p_dest_id,
3283 	        p_org_id            => okl_context.get_okc_org_id,
3284 	        p_organization_id   => okl_context.get_okc_organization_id
3285 	        );
3286 
3287            IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3288 	         RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3289            ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
3290 	         RAISE OKC_API.G_EXCEPTION_ERROR;
3291            END IF;
3292 
3293     END IF;
3294 
3295 
3296     IF( p_source_id IS NOT NULL AND p_old_khr_id IS NULL ) THEN
3297 
3298            copy_rules(
3299 	        p_api_version       => p_api_version,
3300 	        p_init_msg_list     => p_init_msg_list,
3301 	        x_return_status     => x_return_status,
3302 	        x_msg_count         => x_msg_count,
3303 	        x_msg_data          => x_msg_data,
3304                 p_source_id         => p_source_id, -- vp id
3305                 p_dest_id           => p_dest_id, -- k id
3306 	        p_org_id            => okl_context.get_okc_org_id,
3307 	        p_organization_id   => okl_context.get_okc_organization_id
3308 	        );
3309 
3310 	    IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3311 	       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3312 	    ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
3313 	       RAISE OKC_API.G_EXCEPTION_ERROR;
3314 	    END IF;
3315 
3316     ELSIF( p_source_id IS NOT NULL AND p_old_khr_id IS NOT NULL AND p_prog_override_yn IS NOT NULL AND p_prog_override_yn = 'Y' ) THEN
3317 
3318            copy_rules(
3319 	        p_api_version       => p_api_version,
3320 	        p_init_msg_list     => p_init_msg_list,
3321 	        x_return_status     => x_return_status,
3322 	        x_msg_count         => x_msg_count,
3323 	        x_msg_data          => x_msg_data,
3324                 p_source_id         => p_source_id, -- vp id
3325                 p_dest_id           => p_dest_id, -- k id
3326 	        p_org_id            => okl_context.get_okc_org_id,
3327 	        p_organization_id   => okl_context.get_okc_organization_id
3328 	        );
3329 
3330 	    IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3331 	       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3332 	    ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
3333 	       RAISE OKC_API.G_EXCEPTION_ERROR;
3334 	    END IF;
3335 
3336     END IF;
3337 
3338   OKC_API.END_ACTIVITY(x_msg_count => x_msg_count, x_msg_data => x_msg_data);
3339 
3340   EXCEPTION
3341     WHEN OKC_API.G_EXCEPTION_ERROR THEN
3342       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
3343 			p_api_name  => l_api_name,
3344 			p_pkg_name  => g_pkg_name,
3345 			p_exc_name  => 'OKC_API.G_RET_STS_ERROR',
3346 			x_msg_count => x_msg_count,
3347 			x_msg_data  => x_msg_data,
3348 			p_api_type  => g_api_type);
3349 
3350     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3351       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
3352 			p_api_name  => l_api_name,
3353 			p_pkg_name  => g_pkg_name,
3354 			p_exc_name  => 'OKC_API.G_RET_STS_UNEXP_ERROR',
3355 			x_msg_count => x_msg_count,
3356 			x_msg_data  => x_msg_data,
3357 			p_api_type  => g_api_type);
3358 
3359     WHEN OTHERS THEN
3360       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
3361 			p_api_name  => l_api_name,
3362 			p_pkg_name  => g_pkg_name,
3363 			p_exc_name  => 'OTHERS',
3364 			x_msg_count => x_msg_count,
3365 			x_msg_data  => x_msg_data,
3366 			p_api_type  => g_api_type);
3367   END;
3368 
3369 -- Start of comments
3370 --
3371 -- Procedure Name  : create_deal
3372 -- Description     : creates a deal based on the information that comes
3373 --	             from the deal creation screen
3374 -- Business Rules  :
3375 -- Parameters      :
3376 -- Version         : 1.0
3377 -- End of comments
3378   PROCEDURE create_deal(
3379     p_api_version                  IN NUMBER,
3380     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
3381     x_return_status                OUT NOCOPY VARCHAR2,
3382     x_msg_count                    OUT NOCOPY NUMBER,
3383     x_msg_data                     OUT NOCOPY VARCHAR2,
3384     p_contract_number              IN  VARCHAR2,
3385     p_scs_code                     IN  VARCHAR2,
3386     p_customer_id1                 IN  VARCHAR2,
3387     p_customer_id2                 IN  VARCHAR2,
3388     p_customer_code                IN  VARCHAR2,
3389     p_org_id                       IN  NUMBER,
3390     p_organization_id              IN  NUMBER,
3391     p_source_chr_id                IN  NUMBER,
3392     x_chr_id                       OUT NOCOPY NUMBER,
3393     --Added by dpsingh for LE Uptake
3394     p_legal_entity_id              IN  NUMBER) AS
3395 
3396     l_api_name	VARCHAR2(30) := 'CREATE_DEAL';
3397     l_api_version	CONSTANT NUMBER	  := 1.0;
3398 
3399     CURSOR l_source_crs IS
3400       SELECT template_yn, chr_type
3401       FROM   okc_k_headers_b
3402       WHERE  id = p_source_chr_id;
3403 
3404     l_template_yn OKC_K_HEADERS_B.TEMPLATE_YN%TYPE;
3405     l_chr_type    OKC_K_HEADERS_B.CHR_TYPE%TYPE;
3406   BEGIN
3407 
3408     OKC_CONTEXT.SET_OKC_ORG_CONTEXT(
3409 		p_org_id =>  p_org_id,
3410 		p_organization_id	=> p_organization_id);
3411 
3412     x_return_status := OKC_API.START_ACTIVITY(
3413 			p_api_name      => l_api_name,
3414 			p_pkg_name      => g_pkg_name,
3415 			p_init_msg_list => p_init_msg_list,
3416 			l_api_version   => l_api_version,
3417 			p_api_version   => p_api_version,
3418 			p_api_type      => g_api_type,
3419 			x_return_status => x_return_status);
3420 
3421     -- check if activity started successfully
3422     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3423        RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3424     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
3425        RAISE OKC_API.G_EXCEPTION_ERROR;
3426     END IF;
3427 
3428     IF (p_source_chr_id IS NULL) OR (p_source_chr_id = OKC_API.G_MISS_NUM) THEN
3429       create_new_deal(
3430          p_api_version     => l_api_version,
3431          p_init_msg_list   => p_init_msg_list,
3432          x_return_status   => x_return_status,
3433          x_msg_count       => x_msg_count,
3434          x_msg_data        => x_msg_data,
3435          p_contract_number => p_contract_number,
3436          p_scs_code        => p_scs_code,
3437          p_customer_id1    => p_customer_id1,
3438          p_customer_id2    => p_customer_id2,
3439          p_customer_code   => p_customer_code,
3440          x_chr_id          => x_chr_id,
3441     --Added by dpsingh for LE Uptake
3442          p_legal_entity_id => p_legal_entity_id);
3443     ELSE
3444     -- need to figure out what kind of source do we have
3445 	OPEN l_source_crs;
3446         FETCH l_source_crs INTO l_template_yn, l_chr_type;
3447         CLOSE l_source_crs;
3448 
3449         -- copy from template
3450         IF (l_template_yn = 'Y') THEN
3451           create_from_template(
3452             p_api_version     => l_api_version,
3453             p_init_msg_list   => p_init_msg_list,
3454             x_return_status   => x_return_status,
3455             x_msg_count       => x_msg_count,
3456             x_msg_data        => x_msg_data,
3457             p_contract_number => p_contract_number,
3458             p_source_chr_id   => p_source_chr_id,
3459             x_chr_id          => x_chr_id);
3460         ELSE
3461           create_from_contract(
3462             p_api_version     => l_api_version,
3463             p_init_msg_list   => p_init_msg_list,
3464             x_return_status   => x_return_status,
3465             x_msg_count       => x_msg_count,
3466             x_msg_data        => x_msg_data,
3467             p_contract_number => p_contract_number,
3468             p_source_chr_id   => p_source_chr_id,
3469             x_chr_id          => x_chr_id);
3470         END IF;
3471     END IF;
3472 
3473     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3474        RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3475     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
3476        RAISE OKC_API.G_EXCEPTION_ERROR;
3477     END IF;
3478 
3479     OKC_API.END_ACTIVITY(x_msg_count	=> x_msg_count,
3480 			 x_msg_data	=> x_msg_data);
3481   EXCEPTION
3482     WHEN OKC_API.G_EXCEPTION_ERROR THEN
3483       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
3484 			p_api_name  => l_api_name,
3485 			p_pkg_name  => g_pkg_name,
3486 			p_exc_name  => 'OKC_API.G_RET_STS_ERROR',
3487 			x_msg_count => x_msg_count,
3488 			x_msg_data  => x_msg_data,
3489 			p_api_type  => g_api_type);
3490 
3491     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3492       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
3493 			p_api_name  => l_api_name,
3494 			p_pkg_name  => g_pkg_name,
3495 			p_exc_name  => 'OKC_API.G_RET_STS_UNEXP_ERROR',
3496 			x_msg_count => x_msg_count,
3497 			x_msg_data  => x_msg_data,
3498 			p_api_type  => g_api_type);
3499 
3500     WHEN OTHERS THEN
3501       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
3502 			p_api_name  => l_api_name,
3503 			p_pkg_name  => g_pkg_name,
3504 			p_exc_name  => 'OTHERS',
3505 			x_msg_count => x_msg_count,
3506 			x_msg_data  => x_msg_data,
3507 			p_api_type  => g_api_type);
3508   END;
3509 
3510 /* Bug# 3948361 - Re-lease contract functionality is moved to Revisions page
3511 -- Start of comments
3512 --
3513 -- Procedure Name  : create_from_release
3514 -- Description     : creates a deal from release
3515 -- Business Rules  :
3516 -- Parameters      :
3517 -- Version         : 1.0
3518 -- End of comments
3519   PROCEDURE create_from_release (
3520     p_api_version                  IN NUMBER,
3521     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
3522     x_return_status                OUT NOCOPY VARCHAR2,
3523     x_msg_count                    OUT NOCOPY NUMBER,
3524     x_msg_data                     OUT NOCOPY VARCHAR2,
3525     p_contract_number              IN  VARCHAR2,
3526     p_source_chr_id                IN  NUMBER,
3527     x_chr_id                       OUT NOCOPY NUMBER) AS
3528 
3529     x_new_chrv_rec OKL_OKC_MIGRATION_PVT.chrv_rec_type;
3530     x_new_khrv_rec OKL_CONTRACT_PUB.khrv_rec_type;
3531     l_old_contract_number  OKC_K_HEADERS_V.CONTRACT_NUMBER%TYPE;
3532     l_new_contract_number  OKC_K_HEADERS_V.CONTRACT_NUMBER%TYPE;
3533     l_value VARCHAR2(1) := OKL_API.G_FALSE;
3534 
3535     CURSOR l_source_k_num_crs IS
3536       SELECT contract_number
3537       FROM   okc_k_headers_b
3538       WHERE  id = p_source_chr_id;
3539 
3540     l_inv_agmt_chr_id_tbl_type Okl_Securitization_Pvt.inv_agmt_chr_id_tbl_type;
3541 
3542     l_api_name	VARCHAR2(30) := 'CREATE_DEAL';
3543     l_api_version	CONSTANT NUMBER	  := 1.0;
3544 
3545   BEGIN
3546 
3547     x_return_status := OKC_API.START_ACTIVITY(
3548 			p_api_name      => l_api_name,
3549 			p_pkg_name      => g_pkg_name,
3550 			p_init_msg_list => p_init_msg_list,
3551 			l_api_version   => l_api_version,
3552 			p_api_version   => p_api_version,
3553 			p_api_type      => g_api_type,
3554 			x_return_status => x_return_status);
3555 
3556     -- check if activity started successfully
3557     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3558        RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3559     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
3560        RAISE OKC_API.G_EXCEPTION_ERROR;
3561     END IF;
3562 
3563    okl_securitization_pvt.check_khr_securitized(
3564       p_api_version                  => p_api_version,
3565       p_init_msg_list                => p_init_msg_list,
3566       x_return_status                => x_return_status,
3567       x_msg_count                    => x_msg_count,
3568       x_msg_data                     => x_msg_data,
3569       p_khr_id                       => p_source_chr_id, --source_contract_id
3570       p_effective_date               => SYSDATE,    -- sysdate
3571       x_value                        => l_value, -- varchar2(1)
3572       x_inv_agmt_chr_id_tbl          => l_inv_agmt_chr_id_tbl_type    --okl_securitization_pvt.inv_agmt_chr_id_tbl_type
3573    );
3574 
3575 
3576     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3577        RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3578     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
3579        RAISE OKC_API.G_EXCEPTION_ERROR;
3580     END IF;
3581 
3582    IF(l_value = OKL_API.G_TRUE) THEN
3583             OKC_API.SET_MESSAGE(     p_app_name => g_app_name
3584           			   , p_msg_name => 'OKL_LLA_CONTRACT_SECU_ERROR'
3585           			   );
3586             RAISE OKC_API.G_EXCEPTION_ERROR;
3587    END IF;
3588 
3589    l_new_contract_number := p_contract_number;
3590 
3591    OPEN  l_source_k_num_crs;
3592    FETCH l_source_k_num_crs INTO l_old_contract_number;
3593    CLOSE l_source_k_num_crs;
3594 
3595    okl_release_pvt.create_release_contract(
3596       p_api_version          => p_api_version,
3597       p_init_msg_list        => p_init_msg_list,
3598       x_return_status        => x_return_status,
3599       x_msg_count            => x_msg_count,
3600       x_msg_data             => x_msg_data,
3601       p_old_contract_number  => l_old_contract_number,
3602       p_new_contract_number  => l_new_contract_number,
3603       x_new_chrv_rec         => x_new_chrv_rec,
3604       x_new_khrv_rec         => x_new_khrv_rec);
3605 
3606       x_chr_id := x_new_chrv_rec.id;
3607 
3608     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3609        RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3610     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
3611        RAISE OKC_API.G_EXCEPTION_ERROR;
3612     END IF;
3613 
3614     OKC_API.END_ACTIVITY(x_msg_count	=> x_msg_count,
3615 			 x_msg_data	=> x_msg_data);
3616   EXCEPTION
3617     WHEN OKC_API.G_EXCEPTION_ERROR THEN
3618       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
3619 			p_api_name  => l_api_name,
3620 			p_pkg_name  => g_pkg_name,
3621 			p_exc_name  => 'OKC_API.G_RET_STS_ERROR',
3622 			x_msg_count => x_msg_count,
3623 			x_msg_data  => x_msg_data,
3624 			p_api_type  => g_api_type);
3625 
3626     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3627       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
3628 			p_api_name  => l_api_name,
3629 			p_pkg_name  => g_pkg_name,
3630 			p_exc_name  => 'OKC_API.G_RET_STS_UNEXP_ERROR',
3631 			x_msg_count => x_msg_count,
3632 			x_msg_data  => x_msg_data,
3633 			p_api_type  => g_api_type);
3634 
3635     WHEN OTHERS THEN
3636       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
3637 			p_api_name  => l_api_name,
3638 			p_pkg_name  => g_pkg_name,
3639 			p_exc_name  => 'OTHERS',
3640 			x_msg_count => x_msg_count,
3641 			x_msg_data  => x_msg_data,
3642 			p_api_type  => g_api_type);
3643 
3644   END;
3645 */
3646 
3647 -- Start of comments
3648 --
3649 -- Procedure Name  : create_deal
3650 -- Description     : creates a deal based on the information that comes
3651 --	             from the deal creation screen
3652 -- Business Rules  :
3653 -- Parameters      :
3654 -- Version         : 1.0
3655 -- End of comments
3656   PROCEDURE create_deal(
3657     p_api_version                  IN NUMBER,
3658     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
3659     x_return_status                OUT NOCOPY VARCHAR2,
3660     x_msg_count                    OUT NOCOPY NUMBER,
3661     x_msg_data                     OUT NOCOPY VARCHAR2,
3662     p_source_code                  IN  VARCHAR2,
3663     p_contract_number              IN  VARCHAR2,
3664     p_scs_code                     IN  VARCHAR2,
3665     p_customer_id1                 IN  VARCHAR2,
3666     p_customer_id2                 IN  VARCHAR2,
3667     p_customer_code                IN  VARCHAR2,
3668     p_org_id                       IN  NUMBER,
3669     p_organization_id              IN  NUMBER,
3670     p_source_chr_id                IN  NUMBER,
3671     x_chr_id                       OUT NOCOPY NUMBER,
3672     --Added by dpsingh for LE Uptake
3673     p_legal_entity_id              IN  NUMBER) AS
3674 
3675     l_api_name	        VARCHAR2(30) := 'CREATE_DEAL';
3676     l_api_version	CONSTANT NUMBER	  := 1.0;
3677 
3678     CURSOR l_source_crs IS
3679       SELECT template_yn, chr_type
3680       FROM   okc_k_headers_b
3681       WHERE  id = p_source_chr_id;
3682 
3683     CURSOR l_source_k_num_crs IS
3684       SELECT contract_number
3685       FROM   okc_k_headers_b
3686       WHERE  id = p_source_chr_id;
3687 
3688     l_template_yn        OKC_K_HEADERS_B.TEMPLATE_YN%TYPE;
3689     l_chr_type           OKC_K_HEADERS_B.CHR_TYPE%TYPE;
3690     l_contract_number    OKC_K_HEADERS_B.CHR_TYPE%TYPE;
3691 
3692   BEGIN
3693 
3694     OKC_CONTEXT.SET_OKC_ORG_CONTEXT(
3695 		p_org_id =>  p_org_id,
3696 		p_organization_id	=> p_organization_id);
3697 
3698     x_return_status := OKC_API.START_ACTIVITY(
3699 			p_api_name      => l_api_name,
3700 			p_pkg_name      => g_pkg_name,
3701 			p_init_msg_list => p_init_msg_list,
3702 			l_api_version   => l_api_version,
3703 			p_api_version   => p_api_version,
3704 			p_api_type      => g_api_type,
3705 			x_return_status => x_return_status);
3706 
3707     -- check if activity started successfully
3708     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3709        RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3710     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
3711        RAISE OKC_API.G_EXCEPTION_ERROR;
3712     END IF;
3713 
3714     IF (p_source_chr_id IS NULL) OR (p_source_chr_id = OKC_API.G_MISS_NUM) THEN
3715       create_new_deal(
3716          p_api_version     => l_api_version,
3717          p_init_msg_list   => p_init_msg_list,
3718          x_return_status   => x_return_status,
3719          x_msg_count       => x_msg_count,
3720          x_msg_data        => x_msg_data,
3721          p_contract_number => p_contract_number,
3722          p_scs_code        => p_scs_code,
3723          p_customer_id1    => p_customer_id1,
3724          p_customer_id2    => p_customer_id2,
3725          p_customer_code   => p_customer_code,
3726          x_chr_id          => x_chr_id,
3727     --Added by dpsingh for LE Uptake
3728          p_legal_entity_id => p_legal_entity_id);
3729     ELSE
3730     -- need to figure out what kind of source do we have
3731 	OPEN l_source_crs;
3732         FETCH l_source_crs INTO l_template_yn, l_chr_type;
3733         CLOSE l_source_crs;
3734 
3735         -- copy from template
3736         IF (upper(p_source_code) = 'TEMPLATE') THEN
3737 
3738           create_from_template(
3739             p_api_version     => l_api_version,
3740             p_init_msg_list   => p_init_msg_list,
3741             x_return_status   => x_return_status,
3742             x_msg_count       => x_msg_count,
3743             x_msg_data        => x_msg_data,
3744             p_contract_number => p_contract_number,
3745             p_source_chr_id   => p_source_chr_id,
3746             x_chr_id          => x_chr_id);
3747 
3748         /* Bug# 3948361 - Re-lease contract functionality is moved to Revisions page
3749         ELSIF (p_source_code = 'Re-Lease') THEN
3750 
3751           create_from_release(
3752             p_api_version     => l_api_version,
3753             p_init_msg_list   => p_init_msg_list,
3754             x_return_status   => x_return_status,
3755             x_msg_count       => x_msg_count,
3756             x_msg_data        => x_msg_data,
3757             p_contract_number => p_contract_number,
3758             p_source_chr_id   => p_source_chr_id,
3759             x_chr_id          => x_chr_id);
3760         */
3761 
3762         ELSIF (upper(p_source_code) = 'COPY' ) THEN
3763 
3764           create_from_contract(
3765             p_api_version     => l_api_version,
3766             p_init_msg_list   => p_init_msg_list,
3767             x_return_status   => x_return_status,
3768             x_msg_count       => x_msg_count,
3769             x_msg_data        => x_msg_data,
3770             p_contract_number => p_contract_number,
3771             p_source_chr_id   => p_source_chr_id,
3772             x_chr_id          => x_chr_id);
3773 
3774         ELSIF (upper(p_source_code) = 'QUOTE') THEN
3775 
3776           create_from_quote(
3777             p_api_version     => l_api_version,
3778             p_init_msg_list   => p_init_msg_list,
3779             x_return_status   => x_return_status,
3780             x_msg_count       => x_msg_count,
3781             x_msg_data        => x_msg_data,
3782             p_contract_number => p_contract_number,
3783             p_source_chr_id   => p_source_chr_id,
3784             x_chr_id          => x_chr_id);
3785 
3786         END IF;
3787     END IF;
3788 
3789     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3790        RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3791     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
3792        RAISE OKC_API.G_EXCEPTION_ERROR;
3793     END IF;
3794 
3795     OKC_API.END_ACTIVITY(x_msg_count	=> x_msg_count,
3796 			 x_msg_data	=> x_msg_data);
3797   EXCEPTION
3798     WHEN OKC_API.G_EXCEPTION_ERROR THEN
3799       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
3800 			p_api_name  => l_api_name,
3801 			p_pkg_name  => g_pkg_name,
3802 			p_exc_name  => 'OKC_API.G_RET_STS_ERROR',
3803 			x_msg_count => x_msg_count,
3804 			x_msg_data  => x_msg_data,
3805 			p_api_type  => g_api_type);
3806 
3807     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3808       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
3809 			p_api_name  => l_api_name,
3810 			p_pkg_name  => g_pkg_name,
3811 			p_exc_name  => 'OKC_API.G_RET_STS_UNEXP_ERROR',
3812 			x_msg_count => x_msg_count,
3813 			x_msg_data  => x_msg_data,
3814 			p_api_type  => g_api_type);
3815 
3816     WHEN OTHERS THEN
3817       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
3818 			p_api_name  => l_api_name,
3819 			p_pkg_name  => g_pkg_name,
3820 			p_exc_name  => 'OTHERS',
3821 			x_msg_count => x_msg_count,
3822 			x_msg_data  => x_msg_data,
3823 			p_api_type  => g_api_type);
3824   END;
3825 
3826 -- Start of comments
3827 --
3828 -- Procedure Name  : create_deal
3829 -- Description     : creates a deal based on the information that comes
3830 --	             from the deal creation screen
3831 -- Business Rules  :
3832 -- Parameters      :
3833 -- Version         : 1.0
3834 -- End of comments
3835   PROCEDURE create_deal(
3836     p_api_version                  IN NUMBER,
3837     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
3838     x_return_status                OUT NOCOPY VARCHAR2,
3839     x_msg_count                    OUT NOCOPY NUMBER,
3840     x_msg_data                     OUT NOCOPY VARCHAR2,
3841     p_source_code                  IN  VARCHAR2,
3842     p_contract_number              IN  VARCHAR2,
3843     p_scs_code                     IN  VARCHAR2,
3844     p_customer_id1                 IN OUT NOCOPY  VARCHAR2,
3845     p_customer_id2                 IN OUT NOCOPY  VARCHAR2,
3846     p_customer_code                IN  VARCHAR2,
3847     p_customer_name                IN  VARCHAR2,
3848     p_org_id                       IN  NUMBER,
3849     p_organization_id              IN  NUMBER,
3850     p_source_chr_id                IN OUT NOCOPY  NUMBER,
3851     p_source_contract_number       IN  VARCHAR2,
3852     x_chr_id                       OUT NOCOPY NUMBER,
3853     --Added by dpsingh for LE Uptake
3854     p_legal_entity_id              IN  NUMBER) AS
3855 
3856     l_api_name	        VARCHAR2(30) := 'CREATE_DEAL';
3857     l_api_version	CONSTANT NUMBER	  := 1.0;
3858 
3859     CURSOR l_source_crs IS
3860       SELECT template_yn, chr_type
3861       FROM   okc_k_headers_b
3862       WHERE  id = p_source_chr_id;
3863 
3864     CURSOR l_source_k_num_crs IS
3865       SELECT contract_number
3866       FROM   okc_k_headers_b
3867       WHERE  id = p_source_chr_id;
3868 
3869     CURSOR l_source_chr_id_crs(p_scs_code VARCHAR2, p_temp_yn VARCHAR2, p_object1_id1 VARCHAR2, p_object1_id2 VARCHAR2, p_customer_code VARCHAR2) IS
3870        SELECT CHR.id
3871        FROM okc_k_headers_b CHR
3872        , okc_k_party_roles_b prl
3873        WHERE prl.dnz_chr_id = CHR.id
3874        AND prl.chr_id = CHR.id
3875        AND CHR.scs_code = p_scs_code
3876        AND CHR.chr_type = 'CYA'
3877        AND CHR.template_yn = p_temp_yn
3878        AND prl.rle_code = G_RLE_CODE
3879        AND prl.object1_id1 = p_object1_id1
3880        AND prl.object1_id2 = p_object1_id2
3881        AND prl.jtot_object1_code = p_customer_code
3882        AND CHR.contract_number = p_source_contract_number;
3883 
3884     l_template_yn        OKC_K_HEADERS_B.TEMPLATE_YN%TYPE;
3885     l_chr_type           OKC_K_HEADERS_B.CHR_TYPE%TYPE;
3886     l_contract_number    OKC_K_HEADERS_B.CHR_TYPE%TYPE;
3887     l_object_code     VARCHAR2(30) DEFAULT NULL;
3888 
3889     l_ak_prompt  AK_ATTRIBUTES_VL.attribute_label_long%TYPE;
3890 
3891   BEGIN
3892 
3893     OKC_CONTEXT.SET_OKC_ORG_CONTEXT(
3894 		p_org_id =>  p_org_id,
3895 		p_organization_id	=> p_organization_id);
3896 
3897     x_return_status := OKC_API.START_ACTIVITY(
3898 			p_api_name      => l_api_name,
3899 			p_pkg_name      => g_pkg_name,
3900 			p_init_msg_list => p_init_msg_list,
3901 			l_api_version   => l_api_version,
3902 			p_api_version   => p_api_version,
3903 			p_api_type      => g_api_type,
3904 			x_return_status => x_return_status);
3905 
3906     -- check if activity started successfully
3907     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3908        RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3909     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
3910        RAISE OKC_API.G_EXCEPTION_ERROR;
3911     END IF;
3912 
3913     IF(p_contract_number IS NULL) THEN
3914 	 x_return_status := OKC_API.g_ret_sts_error;
3915 	 IF p_scs_code = 'LEASE' THEN
3916          	l_ak_prompt := GET_AK_PROMPT('OKL_LA_DEAL_CREAT', 'OKL_CONTRACT_NUMBER');
3917          ELSIF p_scs_code = 'MASTER_LEASE' THEN
3918          	l_ak_prompt := GET_AK_PROMPT('OKL_LA_DEAL_CREAT', 'OKL_LA_AGREEMENT_NUMBER');
3919          END IF;
3920 
3921          OKC_API.SET_MESSAGE(      p_app_name => g_app_name
3922 				, p_msg_name => 'OKL_REQUIRED_VALUE'
3923 				, p_token1 => 'COL_NAME'
3924 				, p_token1_value => l_ak_prompt
3925 			   );
3926 	 RAISE OKC_API.G_EXCEPTION_ERROR;
3927     END IF;
3928 
3929     IF(p_customer_name IS NULL) THEN
3930 	 x_return_status := OKC_API.g_ret_sts_error;
3931          l_ak_prompt := GET_AK_PROMPT('OKL_LA_DEAL_CREAT', 'OKL_CUSTOMER_NAME');
3932          OKC_API.SET_MESSAGE(      p_app_name => g_app_name
3933 				, p_msg_name => 'OKL_REQUIRED_VALUE'
3934 				, p_token1 => 'COL_NAME'
3935 				, p_token1_value => l_ak_prompt
3936 			   );
3937 	 RAISE OKC_API.G_EXCEPTION_ERROR;
3938     END IF;
3939 
3940     IF(upper(p_source_code) <> 'NEW' AND p_source_contract_number IS NULL) THEN
3941 	 x_return_status := OKC_API.g_ret_sts_error;
3942          l_ak_prompt := GET_AK_PROMPT('OKL_LA_DEAL_CREAT', 'OKL_CONTRACT_SOURCE');
3943          OKC_API.SET_MESSAGE(      p_app_name => g_app_name
3944 				, p_msg_name => 'OKL_REQUIRED_VALUE'
3945 				, p_token1 => 'COL_NAME'
3946 				, p_token1_value => l_ak_prompt
3947 			   );
3948 	 RAISE OKC_API.G_EXCEPTION_ERROR;
3949     END IF;
3950 
3951     okl_la_validation_util_pvt.Get_Party_Jtot_data (
3952       p_api_version    => p_api_version,
3953       p_init_msg_list  => p_init_msg_list,
3954       x_return_status  => x_return_status,
3955       x_msg_count      => x_msg_count,
3956       x_msg_data       => x_msg_data,
3957       p_scs_code       => p_scs_code,
3958       p_buy_or_sell    => 'S',
3959       p_rle_code       => G_RLE_CODE,
3960       p_id1            => p_customer_id1,
3961       p_id2            => p_customer_id2,
3962       p_name           => p_customer_name,
3963       p_object_code    => l_object_code,
3964       p_ak_region      => 'OKL_LA_DEAL_CREAT',
3965       p_ak_attribute   => 'OKL_CUSTOMER_NAME'
3966       );
3967 
3968     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3969        RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3970     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
3971        RAISE OKC_API.G_EXCEPTION_ERROR;
3972     END IF;
3973 
3974     IF(upper(p_source_code) <> 'NEW' AND p_source_contract_number IS NOT NULL) THEN
3975 
3976      IF (upper(p_source_code) = 'TEMPLATE') THEN
3977        OPEN l_source_chr_id_crs(p_scs_code,'Y',p_customer_id1,p_customer_id2,l_object_code);
3978        FETCH l_source_chr_id_crs INTO p_source_chr_id;
3979        CLOSE l_source_chr_id_crs;
3980      ELSIF (upper(p_source_code) = 'QUOTE') THEN
3981        OPEN l_source_chr_id_crs('QUOTE','N',p_customer_id1,p_customer_id2,l_object_code);
3982        FETCH l_source_chr_id_crs INTO p_source_chr_id;
3983        CLOSE l_source_chr_id_crs;
3984      ELSE
3985        OPEN l_source_chr_id_crs(p_scs_code,'N',p_customer_id1,p_customer_id2,l_object_code);
3986        FETCH l_source_chr_id_crs INTO p_source_chr_id;
3987        CLOSE l_source_chr_id_crs;
3988      END IF;
3989 
3990      IF(p_source_chr_id IS NULL) THEN
3991    	 x_return_status := OKC_API.g_ret_sts_error;
3992          l_ak_prompt := GET_AK_PROMPT('OKL_LA_DEAL_CREAT', 'OKL_CONTRACT_SOURCE');
3993          OKC_API.SET_MESSAGE(      p_app_name => g_app_name
3994  				, p_msg_name => 'OKL_LLA_INVALID_LOV_VALUE'
3995  				, p_token1 => 'COL_NAME'
3996  				, p_token1_value => l_ak_prompt
3997  			   );
3998  	 RAISE OKC_API.G_EXCEPTION_ERROR;
3999      END IF;
4000 
4001     END IF;
4002 
4003     IF (upper(p_source_code) = 'NEW') THEN
4004 
4005         create_new_deal(
4006          p_api_version     => l_api_version,
4007          p_init_msg_list   => p_init_msg_list,
4008          x_return_status   => x_return_status,
4009          x_msg_count       => x_msg_count,
4010          x_msg_data        => x_msg_data,
4011          p_contract_number => p_contract_number,
4012          p_scs_code        => p_scs_code,
4013          p_customer_id1    => p_customer_id1,
4014          p_customer_id2    => p_customer_id2,
4015          p_customer_code   => l_object_code,
4016          p_customer_name   => p_customer_name,
4017          x_chr_id          => x_chr_id,
4018     --Added by dpsingh for LE Uptake
4019          p_legal_entity_id => p_legal_entity_id);
4020 
4021         -- copy from template
4022     ELSIF (upper(p_source_code) = 'TEMPLATE') THEN
4023 
4024           create_from_template(
4025             p_api_version     => l_api_version,
4026             p_init_msg_list   => p_init_msg_list,
4027             x_return_status   => x_return_status,
4028             x_msg_count       => x_msg_count,
4029             x_msg_data        => x_msg_data,
4030             p_contract_number => p_contract_number,
4031             p_source_chr_id   => p_source_chr_id,
4032             x_chr_id          => x_chr_id);
4033 
4034     /* Bug# 3948361 - Re-lease contract functionality is moved to Revisions page
4035     ELSIF (p_source_code = 'Re-Lease') THEN
4036 
4037           create_from_release(
4038             p_api_version     => l_api_version,
4039             p_init_msg_list   => p_init_msg_list,
4040             x_return_status   => x_return_status,
4041             x_msg_count       => x_msg_count,
4042             x_msg_data        => x_msg_data,
4043             p_contract_number => p_contract_number,
4044             p_source_chr_id   => p_source_chr_id,
4045             x_chr_id          => x_chr_id);
4046     */
4047 
4048     ELSIF (upper(p_source_code) = 'COPY' ) THEN
4049 
4050           create_from_contract(
4051             p_api_version     => l_api_version,
4052             p_init_msg_list   => p_init_msg_list,
4053             x_return_status   => x_return_status,
4054             x_msg_count       => x_msg_count,
4055             x_msg_data        => x_msg_data,
4056             p_contract_number => p_contract_number,
4057             p_source_chr_id   => p_source_chr_id,
4058             x_chr_id          => x_chr_id);
4059 
4060     ELSIF (upper(p_source_code) = 'QUOTE') THEN
4061 
4062           create_from_quote(
4063             p_api_version     => l_api_version,
4064             p_init_msg_list   => p_init_msg_list,
4065             x_return_status   => x_return_status,
4066             x_msg_count       => x_msg_count,
4067             x_msg_data        => x_msg_data,
4068             p_contract_number => p_contract_number,
4069             p_source_chr_id   => p_source_chr_id,
4070             x_chr_id          => x_chr_id);
4071 
4072     END IF;
4073 
4074     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
4075        RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
4076     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
4077        RAISE OKC_API.G_EXCEPTION_ERROR;
4078     END IF;
4079 
4080     OKC_API.END_ACTIVITY(x_msg_count	=> x_msg_count,
4081 			 x_msg_data	=> x_msg_data);
4082   EXCEPTION
4083     WHEN OKC_API.G_EXCEPTION_ERROR THEN
4084       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
4085 			p_api_name  => l_api_name,
4086 			p_pkg_name  => g_pkg_name,
4087 			p_exc_name  => 'OKC_API.G_RET_STS_ERROR',
4088 			x_msg_count => x_msg_count,
4089 			x_msg_data  => x_msg_data,
4090 			p_api_type  => g_api_type);
4091 
4092     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
4093       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
4094 			p_api_name  => l_api_name,
4095 			p_pkg_name  => g_pkg_name,
4096 			p_exc_name  => 'OKC_API.G_RET_STS_UNEXP_ERROR',
4097 			x_msg_count => x_msg_count,
4098 			x_msg_data  => x_msg_data,
4099 			p_api_type  => g_api_type);
4100 
4101     WHEN OTHERS THEN
4102       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
4103 			p_api_name  => l_api_name,
4104 			p_pkg_name  => g_pkg_name,
4105 			p_exc_name  => 'OTHERS',
4106 			x_msg_count => x_msg_count,
4107 			x_msg_data  => x_msg_data,
4108 			p_api_type  => g_api_type);
4109   END;
4110 
4111 -- Start of comments
4112 --
4113 -- Procedure Name  : create_deal
4114 -- Description     : creates a deal based on the information that comes
4115 --	             from the deal creation screen
4116 -- Business Rules  :
4117 -- Parameters      :
4118 -- Version         : 1.0
4119 -- End of comments
4120   PROCEDURE create_deal(
4121     p_api_version                  IN NUMBER,
4122     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
4123     x_return_status                OUT NOCOPY VARCHAR2,
4124     x_msg_count                    OUT NOCOPY NUMBER,
4125     x_msg_data                     OUT NOCOPY VARCHAR2,
4126     p_source_code                  IN  VARCHAR2,
4127     p_template_yn                  IN  VARCHAR2,
4128     p_contract_number              IN  VARCHAR2,
4129     p_scs_code                     IN  VARCHAR2,
4130     p_customer_id1                 IN OUT NOCOPY  VARCHAR2,
4131     p_customer_id2                 IN OUT NOCOPY  VARCHAR2,
4132     p_customer_code                IN  VARCHAR2,
4133     p_customer_name                IN  VARCHAR2,
4134     p_org_id                       IN  NUMBER,
4135     p_organization_id              IN  NUMBER,
4136     p_source_chr_id                IN OUT NOCOPY  NUMBER,
4137     p_source_contract_number       IN  VARCHAR2,
4138     x_chr_id                       OUT NOCOPY NUMBER,
4139     --Added by dpsingh for LE Uptake
4140     p_legal_entity_id              IN  NUMBER) AS
4141 
4142     l_api_name	        VARCHAR2(30) := 'CREATE_DEAL';
4143     l_api_version	CONSTANT NUMBER	  := 1.0;
4144 
4145     CURSOR l_source_crs IS
4146       SELECT template_yn, chr_type
4147       FROM   okc_k_headers_b
4148       WHERE  id = p_source_chr_id;
4149 
4150     CURSOR l_source_k_num_crs IS
4151       SELECT contract_number
4152       FROM   okc_k_headers_b
4153       WHERE  id = p_source_chr_id;
4154 
4155     CURSOR l_source_chr_id_crs(p_scs_code VARCHAR2, p_temp_yn VARCHAR2, p_object1_id1 VARCHAR2, p_object1_id2 VARCHAR2, p_customer_code VARCHAR2) IS
4156        SELECT CHR.id
4157        FROM okc_k_headers_b CHR
4158        , okc_k_party_roles_b prl
4159        WHERE prl.dnz_chr_id = CHR.id
4160        AND prl.chr_id = CHR.id
4161        AND CHR.scs_code = p_scs_code
4162        AND CHR.chr_type = 'CYA'
4163        AND CHR.template_yn = p_temp_yn
4164        AND prl.rle_code = G_RLE_CODE
4165        AND prl.object1_id1 = p_object1_id1
4166        AND prl.object1_id2 = p_object1_id2
4167        AND prl.jtot_object1_code = p_customer_code
4168        AND CHR.contract_number = p_source_contract_number;
4169 
4170     CURSOR l_src_chr_id_crs(p_scs_code VARCHAR2, p_temp_yn VARCHAR2) IS
4171        SELECT CHR.id
4172        FROM okc_k_headers_b CHR
4173        WHERE CHR.scs_code = p_scs_code
4174        AND CHR.chr_type = 'CYA'
4175        AND CHR.template_yn = p_temp_yn
4176        AND CHR.contract_number = p_source_contract_number;
4177 
4178     l_template_yn        OKC_K_HEADERS_B.TEMPLATE_YN%TYPE;
4179     l_chr_type           OKC_K_HEADERS_B.CHR_TYPE%TYPE;
4180     l_contract_number    OKC_K_HEADERS_B.CHR_TYPE%TYPE;
4181     l_object_code        VARCHAR2(30) DEFAULT NULL;
4182     l_chr_id             OKC_K_HEADERS_B.ID%TYPE;
4183 
4184     l_ak_prompt  AK_ATTRIBUTES_VL.attribute_label_long%TYPE;
4185 
4186     lp_chrv_rec OKL_OKC_MIGRATION_PVT.chrv_rec_type;
4187     lx_chrv_rec OKL_OKC_MIGRATION_PVT.chrv_rec_type;
4188     lp_khrv_rec OKL_CONTRACT_PUB.khrv_rec_type;
4189     lx_khrv_rec OKL_CONTRACT_PUB.khrv_rec_type;
4190 
4191     /*
4192     -- mvasudev, 08/17/2004
4193     -- Added PROCEDURE to enable Business Event
4194     */
4195 	PROCEDURE raise_business_event(
4196     	p_chr_id IN NUMBER
4197 	   ,x_return_status OUT NOCOPY VARCHAR2
4198     )
4199 	IS
4200 	  l_check VARCHAR2(1);
4201       l_parameter_list           wf_parameter_list_t;
4202 	BEGIN
4203 
4204     x_return_status := Okc_Api.G_RET_STS_SUCCESS;
4205 	  -- Raise the event if it is a new Contract
4206 	  --l_check := Okl_Lla_Util_Pvt.check_new_contract(p_chr_id);
4207       --IF (l_check= OKL_API.G_TRUE) THEN
4208 	  IF (upper(p_source_code) = 'NEW') THEN
4209   		 wf_event.AddParameterToList(G_WF_ITM_CONTRACT_ID,p_chr_id,l_parameter_list);
4210 
4211          OKL_WF_PVT.raise_event (p_api_version    => p_api_version,
4212                                  p_init_msg_list  => p_init_msg_list,
4213 								 x_return_status  => x_return_status,
4214 								 x_msg_count      => x_msg_count,
4215 								 x_msg_data       => x_msg_data,
4216 								 p_event_name     => G_WF_EVT_KHR_CREATED,
4217 								 p_parameters     => l_parameter_list);
4218 
4219 	  END IF;
4220 
4221      EXCEPTION
4222      WHEN OTHERS THEN
4223        x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
4224        RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4225      END raise_business_event;
4226 
4227 
4228     /*
4229     -- mvasudev, 08/17/2004
4230     -- END, PROCEDURE to enable Business Event
4231     */
4232 
4233 
4234   BEGIN
4235 
4236     OKC_CONTEXT.SET_OKC_ORG_CONTEXT(
4237 		p_org_id =>  p_org_id,
4238 		p_organization_id	=> p_organization_id);
4239 
4240     x_return_status := OKC_API.START_ACTIVITY(
4241 			p_api_name      => l_api_name,
4242 			p_pkg_name      => g_pkg_name,
4243 			p_init_msg_list => p_init_msg_list,
4244 			l_api_version   => l_api_version,
4245 			p_api_version   => p_api_version,
4246 			p_api_type      => g_api_type,
4247 			x_return_status => x_return_status);
4248 
4249     -- check if activity started successfully
4250     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
4251        RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
4252     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
4253        RAISE OKC_API.G_EXCEPTION_ERROR;
4254     END IF;
4255 /*
4256     If(p_contract_number is null) Then
4257 	 x_return_status := OKC_API.g_ret_sts_error;
4258 	 If p_scs_code = 'LEASE' Then
4259          	l_ak_prompt := GET_AK_PROMPT('OKL_LA_DEAL_CREAT', 'OKL_CONTRACT_NUMBER');
4260          elsIf p_scs_code = 'MASTER_LEASE' Then
4261          	l_ak_prompt := GET_AK_PROMPT('OKL_LA_DEAL_CREAT', 'OKL_LA_AGREEMENT_NUMBER');
4262          End If;
4263 
4264          OKC_API.SET_MESSAGE(      p_app_name => g_app_name
4265 				, p_msg_name => 'OKL_REQUIRED_VALUE'
4266 				, p_token1 => 'COL_NAME'
4267 				, p_token1_value => l_ak_prompt
4268 			   );
4269 	 raise OKC_API.G_EXCEPTION_ERROR;
4270     End If;
4271 */
4272 
4273     IF(p_customer_name IS NULL) THEN
4274      IF p_scs_code = 'MASTER_LEASE' THEN
4275 	 x_return_status := OKC_API.g_ret_sts_error;
4276          l_ak_prompt := GET_AK_PROMPT('OKL_LA_DEAL_CREAT', 'OKL_CUSTOMER_NAME');
4277          OKC_API.SET_MESSAGE(      p_app_name => g_app_name
4278 				, p_msg_name => 'OKL_REQUIRED_VALUE'
4279 				, p_token1 => 'COL_NAME'
4280 				, p_token1_value => l_ak_prompt
4281 			   );
4282 	 RAISE OKC_API.G_EXCEPTION_ERROR;
4283      END IF;
4284     END IF;
4285 
4286     IF(upper(p_source_code) <> 'NEW' AND p_source_contract_number IS NULL) THEN
4287 	 x_return_status := OKC_API.g_ret_sts_error;
4288          l_ak_prompt := GET_AK_PROMPT('OKL_LA_DEAL_CREAT', 'OKL_CONTRACT_SOURCE');
4289          OKC_API.SET_MESSAGE(      p_app_name => g_app_name
4290 				, p_msg_name => 'OKL_REQUIRED_VALUE'
4291 				, p_token1 => 'COL_NAME'
4292 				, p_token1_value => l_ak_prompt
4293 			   );
4294 	 RAISE OKC_API.G_EXCEPTION_ERROR;
4295     END IF;
4296 
4297    IF(p_customer_name IS NOT NULL) THEN
4298 
4299     okl_la_validation_util_pvt.Get_Party_Jtot_data (
4300       p_api_version    => p_api_version,
4301       p_init_msg_list  => p_init_msg_list,
4302       x_return_status  => x_return_status,
4303       x_msg_count      => x_msg_count,
4304       x_msg_data       => x_msg_data,
4305       p_scs_code       => p_scs_code,
4306       p_buy_or_sell    => 'S',
4307       p_rle_code       => G_RLE_CODE,
4308       p_id1            => p_customer_id1,
4309       p_id2            => p_customer_id2,
4310       p_name           => p_customer_name,
4311       p_object_code    => l_object_code,
4312       p_ak_region      => 'OKL_LA_DEAL_CREAT',
4313       p_ak_attribute   => 'OKL_CUSTOMER_NAME'
4314       );
4315 
4316     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
4317        RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
4318     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
4319        RAISE OKC_API.G_EXCEPTION_ERROR;
4320     END IF;
4321 
4322    END IF;
4323 
4324     IF(upper(p_source_code) <> 'NEW' AND p_source_contract_number IS NOT NULL) THEN
4325 
4326     IF(p_customer_name IS NULL) THEN
4327 
4328       IF (upper(p_source_code) = 'TEMPLATE') THEN
4329        OPEN l_src_chr_id_crs(p_scs_code,'Y');
4330        FETCH l_src_chr_id_crs INTO p_source_chr_id;
4331        CLOSE l_src_chr_id_crs;
4332       ELSIF (upper(p_source_code) = 'QUOTE') THEN
4333        OPEN l_src_chr_id_crs('QUOTE','N');
4334        FETCH l_src_chr_id_crs INTO p_source_chr_id;
4335        CLOSE l_src_chr_id_crs;
4336       ELSE
4337        OPEN l_src_chr_id_crs(p_scs_code,'N');
4338        FETCH l_src_chr_id_crs INTO p_source_chr_id;
4339        CLOSE l_src_chr_id_crs;
4340      END IF;
4341 
4342     ELSE
4343 
4344       IF (upper(p_source_code) = 'TEMPLATE') THEN
4345        OPEN l_source_chr_id_crs(p_scs_code,'Y',p_customer_id1,p_customer_id2,l_object_code);
4346        FETCH l_source_chr_id_crs INTO p_source_chr_id;
4347        CLOSE l_source_chr_id_crs;
4348       ELSIF (upper(p_source_code) = 'QUOTE') THEN
4349        OPEN l_source_chr_id_crs('QUOTE','N',p_customer_id1,p_customer_id2,l_object_code);
4350        FETCH l_source_chr_id_crs INTO p_source_chr_id;
4351        CLOSE l_source_chr_id_crs;
4352       ELSE
4353        OPEN l_source_chr_id_crs(p_scs_code,'N',p_customer_id1,p_customer_id2,l_object_code);
4354        FETCH l_source_chr_id_crs INTO p_source_chr_id;
4355        CLOSE l_source_chr_id_crs;
4356      END IF;
4357 
4358     END IF;
4359 
4360      IF(p_source_chr_id IS NULL) THEN
4361    	 x_return_status := OKC_API.g_ret_sts_error;
4362          l_ak_prompt := GET_AK_PROMPT('OKL_LA_DEAL_CREAT', 'OKL_CONTRACT_SOURCE');
4363          OKC_API.SET_MESSAGE(      p_app_name => g_app_name
4364  				, p_msg_name => 'OKL_LLA_INVALID_LOV_VALUE'
4365  				, p_token1 => 'COL_NAME'
4366  				, p_token1_value => l_ak_prompt
4367  			   );
4368  	 RAISE OKC_API.G_EXCEPTION_ERROR;
4369      END IF;
4370 
4371     END IF;
4372 
4373     IF (upper(p_source_code) = 'NEW') THEN
4374 /*
4375         create_new_deal(
4376          p_api_version     => l_api_version,
4377          p_init_msg_list   => p_init_msg_list,
4378          x_return_status   => x_return_status,
4379          x_msg_count       => x_msg_count,
4380          x_msg_data        => x_msg_data,
4381          p_contract_number => p_contract_number,
4382          p_scs_code        => p_scs_code,
4383          p_customer_id1    => p_customer_id1,
4384          p_customer_id2    => p_customer_id2,
4385          p_customer_code   => l_object_code,
4386          p_customer_name   => p_customer_name,
4387          p_template_yn     => p_template_yn,
4388          x_chr_id          => x_chr_id);
4389 
4390        IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
4391           RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
4392        ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
4393           RAISE OKC_API.G_EXCEPTION_ERROR;
4394        END IF;
4395 */
4396        l_chr_id := x_chr_id;
4397 
4398        IF okl_context.get_okc_org_id  IS NULL THEN
4399 		okl_context.set_okc_org_context(p_chr_id => l_chr_id );
4400        END IF;
4401 
4402        -- bug 4227922  property tax options defaulting onto contract
4403        IF ( p_scs_code = 'LEASE') THEN
4404 
4405        OKL_LA_PROPERTY_TAX_PVT.create_est_prop_tax_rules(
4406          p_api_version     => l_api_version,
4407          p_init_msg_list   => p_init_msg_list,
4408          x_return_status   => x_return_status,
4409          x_msg_count       => x_msg_count,
4410          x_msg_data        => x_msg_data,
4411          p_chr_id          => l_chr_id);
4412 
4413        IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
4414           RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
4415        ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
4416           RAISE OKC_API.G_EXCEPTION_ERROR;
4417        END IF;
4418 
4419        END IF;
4420 
4421         -- copy from template
4422     ELSIF (upper(p_source_code) = 'TEMPLATE') THEN
4423 
4424           create_from_template(
4425             p_api_version     => l_api_version,
4426             p_init_msg_list   => p_init_msg_list,
4427             x_return_status   => x_return_status,
4428             x_msg_count       => x_msg_count,
4429             x_msg_data        => x_msg_data,
4430             p_contract_number => p_contract_number,
4431             p_source_chr_id   => p_source_chr_id,
4432             x_chr_id          => x_chr_id);
4433 
4434     /* Bug# 3948361 - Re-lease contract functionality is moved to Revisions page
4435     ELSIF (p_source_code = 'Re-Lease') THEN
4436 
4437           create_from_release(
4438             p_api_version     => l_api_version,
4439             p_init_msg_list   => p_init_msg_list,
4440             x_return_status   => x_return_status,
4441             x_msg_count       => x_msg_count,
4442             x_msg_data        => x_msg_data,
4443             p_contract_number => p_contract_number,
4444             p_source_chr_id   => p_source_chr_id,
4445             x_chr_id          => x_chr_id);
4446     */
4447 
4448     ELSIF (upper(p_source_code) = 'COPY' ) THEN
4449 
4450           create_from_contract(
4451             p_api_version     => l_api_version,
4452             p_init_msg_list   => p_init_msg_list,
4453             x_return_status   => x_return_status,
4454             x_msg_count       => x_msg_count,
4455             x_msg_data        => x_msg_data,
4456             p_contract_number => p_contract_number,
4457             p_source_chr_id   => p_source_chr_id,
4458             x_chr_id          => x_chr_id);
4459 
4460     ELSIF (upper(p_source_code) = 'QUOTE') THEN
4461 
4462           create_from_quote(
4463             p_api_version     => l_api_version,
4464             p_init_msg_list   => p_init_msg_list,
4465             x_return_status   => x_return_status,
4466             x_msg_count       => x_msg_count,
4467             x_msg_data        => x_msg_data,
4468             p_contract_number => p_contract_number,
4469             p_source_chr_id   => p_source_chr_id,
4470             x_chr_id          => x_chr_id);
4471 
4472     END IF;
4473 
4474     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
4475        RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
4476     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
4477        RAISE OKC_API.G_EXCEPTION_ERROR;
4478     END IF;
4479 
4480 
4481 -- update contract header for template_yn
4482    IF ( p_template_yn = 'Y' AND ( upper(p_source_code) = 'QUOTE' OR upper(p_source_code) = 'COPY' OR upper(p_source_code) = 'RE-LEASE'
4483       OR upper(p_source_code) = 'TEMPLATE' )) THEN
4484 
4485     lp_chrv_rec.id := x_chr_id;
4486     lp_khrv_rec.id := x_chr_id;
4487     lp_chrv_rec.template_yn := 'Y';
4488 
4489     OKL_CONTRACT_PUB.update_contract_header(
4490       p_api_version    => p_api_version,
4491       p_init_msg_list  => p_init_msg_list,
4492       x_return_status  => x_return_status,
4493       x_msg_count      => x_msg_count,
4494       x_msg_data       => x_msg_data,
4495       p_chrv_rec       => lp_chrv_rec,
4496       p_khrv_rec       => lp_khrv_rec,
4497       x_chrv_rec       => lx_chrv_rec,
4498       x_khrv_rec       => lx_khrv_rec);
4499 
4500     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
4501        RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
4502     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
4503        RAISE OKC_API.G_EXCEPTION_ERROR;
4504     END IF;
4505 
4506    END IF;
4507 
4508    /*
4509    -- mvasudev, 08/17/2004
4510    -- Code change to enable Business Event
4511    */
4512 	raise_business_event(p_chr_id        => x_chr_id
4513 	                    ,x_return_status => x_return_status);
4514     IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4515        RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4516     ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
4517        RAISE OKL_API.G_EXCEPTION_ERROR;
4518     END IF;
4519 
4520    /*
4521    -- mvasudev, 08/17/2004
4522    -- END, Code change to enable Business Event
4523    */
4524 
4525    OKC_API.END_ACTIVITY(x_msg_count	=> x_msg_count,
4526 			 x_msg_data	=> x_msg_data);
4527   EXCEPTION
4528     WHEN OKC_API.G_EXCEPTION_ERROR THEN
4529       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
4530 			p_api_name  => l_api_name,
4531 			p_pkg_name  => g_pkg_name,
4532 			p_exc_name  => 'OKC_API.G_RET_STS_ERROR',
4533 			x_msg_count => x_msg_count,
4534 			x_msg_data  => x_msg_data,
4535 			p_api_type  => g_api_type);
4536 
4537     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
4538       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
4539 			p_api_name  => l_api_name,
4540 			p_pkg_name  => g_pkg_name,
4541 			p_exc_name  => 'OKC_API.G_RET_STS_UNEXP_ERROR',
4542 			x_msg_count => x_msg_count,
4543 			x_msg_data  => x_msg_data,
4544 			p_api_type  => g_api_type);
4545 
4546     WHEN OTHERS THEN
4547       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
4548 			p_api_name  => l_api_name,
4549 			p_pkg_name  => g_pkg_name,
4550 			p_exc_name  => 'OTHERS',
4551 			x_msg_count => x_msg_count,
4552 			x_msg_data  => x_msg_data,
4553 			p_api_type  => g_api_type);
4554   END;
4555 
4556 
4557 
4558 -- Start of comments
4559 --
4560 -- Procedure Name  : create_deal
4561 -- Description     : creates a deal based on the information that comes
4562 --	             from the deal creation screen
4563 -- Business Rules  :
4564 -- Parameters      :
4565 -- Version         : 1.0
4566 -- End of comments
4567   PROCEDURE create_deal(
4568     p_api_version                  IN NUMBER,
4569     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
4570     x_return_status                OUT NOCOPY VARCHAR2,
4571     x_msg_count                    OUT NOCOPY NUMBER,
4572     x_msg_data                     OUT NOCOPY VARCHAR2,
4573     p_source_code                  IN  VARCHAR2,
4574     p_template_type                IN  VARCHAR2,
4575     p_contract_number              IN  VARCHAR2,
4576     p_scs_code                     IN  VARCHAR2,
4577     p_customer_id1                 IN OUT NOCOPY  VARCHAR2,
4578     p_customer_id2                 IN OUT NOCOPY  VARCHAR2,
4579     p_customer_code                IN  VARCHAR2,
4580     p_customer_name                IN  VARCHAR2,
4581     p_effective_from               IN  DATE,
4582     p_program_name                 IN  VARCHAR2,
4583     p_program_id                   IN  NUMBER,
4584     p_org_id                       IN  NUMBER,
4585     p_organization_id              IN  NUMBER,
4586     p_source_chr_id                IN OUT NOCOPY  NUMBER,
4587     p_source_contract_number       IN  VARCHAR2,
4588     x_chr_id                       OUT NOCOPY NUMBER,
4589     --Added by dpsingh for LE Uptake
4590     p_legal_entity_id              IN  NUMBER) AS
4591 
4592     l_api_name	        VARCHAR2(30) := 'CREATE_DEAL';
4593     l_api_version	CONSTANT NUMBER	  := 1.0;
4594     l_program_id	NUMBER;
4595 
4596     CURSOR l_source_crs IS
4597       SELECT template_yn, chr_type
4598       FROM   okc_k_headers_b
4599       WHERE  id = p_source_chr_id;
4600 
4601     CURSOR l_source_k_num_crs IS
4602       SELECT contract_number
4603       FROM   okc_k_headers_b
4604       WHERE  id = p_source_chr_id;
4605 
4606     -- cursor when only customer is selected
4607     CURSOR l_source_chr_id_crs(p_scs_code VARCHAR2, p_temp_yn VARCHAR2, p_object1_id1 VARCHAR2, p_object1_id2 VARCHAR2, p_customer_code VARCHAR2) IS
4608        SELECT CHR.id
4609        FROM okc_k_headers_b CHR
4610        , okc_k_party_roles_b prl
4611        WHERE prl.dnz_chr_id = CHR.id
4612        AND prl.chr_id = CHR.id
4613        AND CHR.scs_code = p_scs_code
4614        AND CHR.chr_type = 'CYA'
4615        AND NVL(chr.template_yn,'N') = p_temp_yn
4616        AND prl.rle_code = G_RLE_CODE
4617        AND prl.object1_id1 = p_object1_id1
4618        AND prl.object1_id2 = p_object1_id2
4619        AND prl.jtot_object1_code = p_customer_code
4620        AND CHR.contract_number = p_source_contract_number;
4621 
4622     -- cursor when only customer is selected
4623 
4624     CURSOR l_leaseAppTmpl1_crs(p_object1_id1 VARCHAR2, p_object1_id2 VARCHAR2, p_customer_code VARCHAR2) IS
4625        SELECT CHR.id
4626        FROM okl_k_headers_full_v CHR
4627           , okc_k_party_roles_b prl
4628        WHERE prl.dnz_chr_id = CHR.id
4629        AND prl.chr_id = CHR.id
4630        AND CHR.scs_code = 'LEASE'
4631        AND CHR.chr_type = 'CYA'
4632        AND NVL(chr.template_yn,'N') = 'Y'
4633        AND prl.rle_code = G_RLE_CODE
4634        AND prl.object1_id1 = p_object1_id1
4635        AND prl.object1_id2 = p_object1_id2
4636        AND prl.jtot_object1_code = p_customer_code
4637        AND NVL(CHR.TEMPLATE_TYPE_CODE,'XXX') = 'LEASEAPP'
4638        AND CHR.contract_number = p_source_contract_number;
4639 
4640     -- cursor when only customer and program is selected
4641     CURSOR l_source_chr_prog_id_crs(p_scs_code VARCHAR2, p_temp_yn VARCHAR2, p_object1_id1 VARCHAR2, p_object1_id2 VARCHAR2, p_customer_code VARCHAR2, l_prog_id NUMBER) IS
4642        SELECT CHR.id
4643        FROM okc_k_headers_b CHR,
4644             okl_k_headers khr
4645           , okc_k_party_roles_b prl
4646        WHERE chr.id = khr.id
4647        AND prl.dnz_chr_id = CHR.id
4648        AND prl.chr_id = CHR.id
4649        AND CHR.scs_code = p_scs_code
4650        AND CHR.chr_type = 'CYA'
4651        AND NVL(CHR.template_yn,'N') = p_temp_yn
4652        AND prl.rle_code = G_RLE_CODE
4653        AND prl.object1_id1 = p_object1_id1
4654        AND prl.object1_id2 = p_object1_id2
4655        AND prl.jtot_object1_code = p_customer_code
4656        AND CHR.contract_number = p_source_contract_number
4657        AND exists( select 1 from okl_vp_associations vpaso
4658                    where vpaso.chr_id = l_prog_id);
4659 
4660     -- cursor when only customer and program is selected
4661     CURSOR l_leaseAppTmpl2_crs(p_object1_id1 VARCHAR2, p_object1_id2 VARCHAR2, p_customer_code VARCHAR2, l_prog_id NUMBER) IS
4662        SELECT CHR.id
4663        FROM okc_k_headers_b CHR,
4664             okl_k_headers khr
4665           , okc_k_party_roles_b prl
4666        WHERE chr.id = khr.id
4667        AND prl.dnz_chr_id = CHR.id
4668        AND prl.chr_id = CHR.id
4669        AND CHR.scs_code = 'LEASE'
4670        AND CHR.chr_type = 'CYA'
4671        AND NVL(CHR.template_yn,'N') = 'Y'
4672        AND prl.rle_code = G_RLE_CODE
4673        AND prl.object1_id1 = p_object1_id1
4674        AND prl.object1_id2 = p_object1_id2
4675        AND prl.jtot_object1_code = p_customer_code
4676        AND CHR.contract_number = p_source_contract_number
4677        AND NVL(KHR.TEMPLATE_TYPE_CODE,'XXX') = 'LEASEAPP'
4678        AND khr_id = l_prog_id;
4679 
4680     -- cursor when only program is selected
4681     CURSOR l_source_prog_crs(p_scs_code VARCHAR2, p_temp_yn VARCHAR2, l_prog_id NUMBER) IS
4682        SELECT CHR.id
4683        FROM okc_k_headers_b CHR,
4684             okl_k_headers khr
4685        WHERE chr.id = khr.id
4686        AND CHR.scs_code = p_scs_code
4687        AND CHR.chr_type = 'CYA'
4688        AND NVL(CHR.template_yn,'N') = p_temp_yn
4689        AND CHR.contract_number = p_source_contract_number
4690        AND exists( select 1 from okl_vp_associations vpaso
4691                    where vpaso.chr_id = l_prog_id);
4692 
4693     -- cursor when only program is selected
4694     CURSOR l_leaseAppTmpl3_crs(l_prog_id NUMBER) IS
4695        SELECT CHR.id
4696        FROM okc_k_headers_b CHR,
4697             okl_k_headers khr
4698        WHERE chr.id = khr.id
4699        AND CHR.scs_code = 'LEASE'
4700        AND CHR.chr_type = 'CYA'
4701        AND NVL(CHR.template_yn,'N') = 'Y'
4702        AND CHR.contract_number = p_source_contract_number
4703        AND NVL(KHR.TEMPLATE_TYPE_CODE,'XXX') = 'LEASEAPP'
4704        AND khr_id = l_prog_id;
4705 
4706     CURSOR l_src_chr_id_crs(p_scs_code VARCHAR2, p_temp_yn VARCHAR2) IS
4707        SELECT CHR.id
4708        FROM okc_k_headers_b CHR
4709        WHERE CHR.scs_code = p_scs_code
4710        AND CHR.chr_type = 'CYA'
4711        AND CHR.template_yn = p_temp_yn
4712        AND CHR.contract_number = p_source_contract_number;
4713 
4714     CURSOR l_leaseAppTmpl_crs IS
4715        SELECT CHR.id
4716        FROM okl_k_headers_full_v CHR
4717        WHERE CHR.scs_code = 'LEASE'
4718        AND CHR.chr_type = 'CYA'
4719        AND nvl(CHR.template_yn,'N') = 'Y'
4720        AND NVL(CHR.TEMPLATE_TYPE_CODE,'XXX') = 'LEASEAPP'
4721        AND CHR.contract_number = p_source_contract_number;
4722 
4723     CURSOR l_program_csr IS
4724        SELECT chr.id
4725        FROM okl_k_headers_full_v chr
4726        WHERE chr.scs_code = 'PROGRAM'
4727        AND nvl(chr.template_yn, 'N') = 'N'
4728        AND chr.sts_code = 'ACTIVE'
4729        AND chr.authoring_org_id = p_org_id
4730        AND NVL(chr.start_date,p_effective_from) <= p_effective_from
4731        AND NVL(chr.end_date,p_effective_from) >= p_effective_from
4732        AND chr.contract_number = p_program_name;
4733 
4734     CURSOR l_progAgrmntTemp_crs(p_prog_id NUMBER) IS
4735        SELECT CHR.id
4736        FROM okl_k_headers_full_v CHR
4737        WHERE CHR.scs_code = p_scs_code
4738        AND CHR.chr_type = 'CYA'
4739        AND nvl(chr.template_yn,'N') = 'Y'
4740        AND NVL(chr.template_type_code,'XXX') = OKL_TEMP_TYPE_PROGRAM
4741        AND CHR.contract_number = p_source_contract_number;
4742        /*
4743        AND exists( select 1
4744                    from okl_vp_associations vpaso
4745                    where vpaso.chr_id = p_prog_id
4746                    and vpaso.assoc_object_type_code = 'LC_TEMPLATE'
4747                    and NVL(vpaso.start_date,p_effective_from) <= p_effective_from
4748                    and NVL(vpaso.end_date,p_effective_from) >= p_effective_from);
4749                    */
4750 
4751     CURSOR l_progAgrmntTemp1_crs IS
4752        SELECT CHR.id
4753        FROM okl_k_headers_full_v CHR
4754        WHERE CHR.scs_code = p_scs_code
4755        AND CHR.chr_type = 'CYA'
4756        AND nvl(chr.template_yn,'N') = 'Y'
4757        AND NVL(chr.template_type_code,'XXX') = OKL_TEMP_TYPE_PROGRAM
4758        AND CHR.contract_number = p_source_contract_number;
4759 
4760     CURSOR l_quote_crs(p_auth_org_id NUMBER, p_inv_org_id NUMBER, p_quote_number VARCHAR2) IS
4761 	SELECT
4762 	 LSQ.ID QUOTE_ID
4763 --	 ,LSQ.REFERENCE_NUMBER QUOTE_NUMBER
4764 --	,LSQT.SHORT_DESCRIPTION QUOTE_DESCRIPTION
4765 	FROM
4766 	 OKL_LEASE_QUOTES_B LSQ
4767 	,OKL_LEASE_QUOTES_TL LSQT
4768 	,OKL_LEASE_OPPORTUNITIES_B LOP
4769 	WHERE  LOP.ORG_ID = p_auth_org_id
4770 	AND LOP.INV_ORG_ID = p_inv_org_id
4771 	AND LSQ.PARENT_OBJECT_CODE = 'LEASEOPP'
4772 	AND LOP.ID = LSQ.PARENT_OBJECT_ID
4773 	AND LSQ.ID = LSQT.ID
4774 	AND LSQT.LANGUAGE = USERENV('LANG')
4775 	AND LSQ.STATUS = 'CT-ACCEPTED'
4776 	AND LSQ.REFERENCE_NUMBER = p_quote_number
4777 	AND NOT EXISTS (SELECT 1
4778 	                FROM OKL_LEASE_APPLICATIONS_B
4779 	                WHERE LEASE_OPPORTUNITY_ID = LOP.ID
4780 	                AND APPLICATION_STATUS <> 'WITHDRAWN')
4781 	AND NOT EXISTS (SELECT 1
4782 	                FROM OKC_K_HEADERS_B
4783 	                WHERE ORIG_SYSTEM_SOURCE_CODE = 'OKL_QUOTE'
4784 	                AND ORIG_SYSTEM_ID1 = LSQ.ID
4785 	                AND STS_CODE <> 'ABANDONED');
4786 
4787 
4788     CURSOR l_leaseapp_crs(p_auth_org_id NUMBER, p_inv_org_id NUMBER, p_leaseapp_number VARCHAR2) IS
4789 	SELECT
4790 	 LAP.ID LEASEAPP_ID
4791 	--,LAP.REFERENCE_NUMBER LEASEAPP_NUMBER
4792 	--,LAPT.SHORT_DESCRIPTION LEASEAPP_DESCRIPTION
4793 	FROM
4794 	 OKL_LEASE_APPLICATIONS_B LAP
4795 	,OKL_LEASE_APPLICATIONS_TL LAPT
4796 	WHERE
4797 	    LAP.ORG_ID = p_auth_org_id
4798 	AND LAP.INV_ORG_ID = p_inv_org_id
4799 	AND LAP.ID = LAPT.ID
4800 	AND LAPT.LANGUAGE = USERENV('LANG')
4801 	AND LAP.APPLICATION_STATUS = 'CR-APPROVED'
4802 	AND LAP.REFERENCE_NUMBER = p_leaseapp_number
4803 	AND NOT EXISTS (SELECT 1
4804 	                FROM OKC_K_HEADERS_B
4805 	                WHERE ORIG_SYSTEM_SOURCE_CODE = 'OKL_LEASE_APP'
4806 	                AND ORIG_SYSTEM_ID1 = LAP.ID
4807 	                AND STS_CODE <> 'ABANDONED')
4808 	AND NOT EXISTS (SELECT 1
4809 			FROM OKL_LEASE_APPLICATIONS_B
4810 			WHERE PARENT_LEASEAPP_ID = LAP.ID
4811 			AND APPLICATION_STATUS NOT IN ('WITHDRAWN' , 'CR-REJECTED'));
4812 
4813     l_template_type      OKL_K_HEADERS.TEMPLATE_TYPE_CODE%TYPE;
4814     l_template_yn        OKC_K_HEADERS_B.TEMPLATE_YN%TYPE;
4815     l_chr_type           OKC_K_HEADERS_B.CHR_TYPE%TYPE;
4816     l_contract_number    OKC_K_HEADERS_B.CHR_TYPE%TYPE;
4817     l_object_code        VARCHAR2(30) DEFAULT NULL;
4818     l_chr_id             OKC_K_HEADERS_B.ID%TYPE;
4819 
4820     l_ak_prompt  AK_ATTRIBUTES_VL.attribute_label_long%TYPE;
4821 
4822     lp_chrv_rec OKL_OKC_MIGRATION_PVT.chrv_rec_type;
4823     lx_chrv_rec OKL_OKC_MIGRATION_PVT.chrv_rec_type;
4824     lp_khrv_rec OKL_CONTRACT_PUB.khrv_rec_type;
4825     lx_khrv_rec OKL_CONTRACT_PUB.khrv_rec_type;
4826     p_kpl_rec   OKL_DEAL_CREAT_PVT.party_rec_type;
4827     x_kpl_rec   OKL_DEAL_CREAT_PVT.party_rec_type;
4828     lp_org_id NUMBER;
4829 
4830     CURSOR c_tax_schedule_yn IS
4831     SELECT tax_schedule_yn
4832     FROM   okl_system_params;
4833 
4834     CURSOR c_rule_group(p_chr_id NUMBER, p_rgd_code VARCHAR2) IS
4835     SELECT id,rgd_code
4836     FROM okc_rule_groups_b
4837     WHERE dnz_chr_id = p_chr_id
4838     AND   rgd_code = p_rgd_code;
4839 
4840     CURSOR c_orig_system_source(p_chr_id NUMBER) IS
4841     SELECT orig_system_source_code
4842     FROM   okc_k_headers_all_b
4843     WHERE  id = p_chr_id;
4844 
4845     --Added by bkatraga for bug 9343568
4846     CURSOR c_check_rule(p_chr_id NUMBER, p_rgd_code VARCHAR2, p_rule_cat VARCHAR2) IS
4847     SELECT count(1)
4848       FROM okc_rules_b rul,
4849            okc_rule_groups_b rgp
4850      WHERE rgp.chr_id = p_chr_id
4851        AND rgp.rgd_code = p_rgd_code
4852        AND rul.rgp_id = rgp.id
4853        AND rul.RULE_INFORMATION_CATEGORY = p_rule_cat;
4854 
4855     l_rule_count  NUMBER;
4856     --end bkatraga
4857 
4858     l_tax_schedule_yn VARCHAR2(1);
4859     lp_lahdtx_rgpv_rec OKL_OKC_MIGRATION_PVT.rgpv_rec_type;
4860     lx_lahdtx_rgpv_rec OKL_OKC_MIGRATION_PVT.rgpv_rec_type;
4861     lp_lahdtx_rulv_rec Okl_Rule_Pub.rulv_rec_type;
4862     lx_lahdtx_rulv_rec Okl_Rule_Pub.rulv_rec_type;
4863     l_rgp_id                  NUMBER;
4864     l_rgd_code                VARCHAR2(30);
4865     l_orig_system_source_code VARCHAR2(30);
4866 
4867     /*
4868     -- mvasudev, 08/17/2004
4869     -- Added PROCEDURE to enable Business Event
4870     */
4871 	PROCEDURE raise_business_event(
4872     	p_chr_id IN NUMBER
4873 	   ,x_return_status OUT NOCOPY VARCHAR2
4874     )
4875 	IS
4876 	  l_check VARCHAR2(1);
4877       l_parameter_list           wf_parameter_list_t;
4878 	BEGIN
4879 
4880     x_return_status := Okc_Api.G_RET_STS_SUCCESS;
4881 	  -- Raise the event if it is a new Contract
4882 	  --l_check := Okl_Lla_Util_Pvt.check_new_contract(p_chr_id);
4883       --IF (l_check= OKL_API.G_TRUE) THEN
4884 	  IF (upper(p_source_code) = 'NEW') THEN
4885   		 wf_event.AddParameterToList(G_WF_ITM_CONTRACT_ID,p_chr_id,l_parameter_list);
4886 
4887          OKL_WF_PVT.raise_event (p_api_version    => p_api_version,
4888                                  p_init_msg_list  => p_init_msg_list,
4889 								 x_return_status  => x_return_status,
4890 								 x_msg_count      => x_msg_count,
4891 								 x_msg_data       => x_msg_data,
4892 								 p_event_name     => G_WF_EVT_KHR_CREATED,
4893 								 p_parameters     => l_parameter_list);
4894 
4895 	  END IF;
4896 
4897      EXCEPTION
4898      WHEN OTHERS THEN
4899        x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
4900        RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4901      END raise_business_event;
4902 
4903 
4904     /*
4905     -- mvasudev, 08/17/2004
4906     -- END, PROCEDURE to enable Business Event
4907     */
4908 
4909 
4910   BEGIN
4911 
4912   lp_org_id := p_org_id;
4913 
4914     OKC_CONTEXT.SET_OKC_ORG_CONTEXT(
4915 		p_org_id =>  lp_org_id,
4916 		p_organization_id	=> p_organization_id);
4917 
4918     x_return_status := OKC_API.START_ACTIVITY(
4919 			p_api_name      => l_api_name,
4920 			p_pkg_name      => g_pkg_name,
4921 			p_init_msg_list => p_init_msg_list,
4922 			l_api_version   => l_api_version,
4923 			p_api_version   => p_api_version,
4924 			p_api_type      => g_api_type,
4925 			x_return_status => x_return_status);
4926 
4927     -- check if activity started successfully
4928     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
4929        RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
4930     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
4931        RAISE OKC_API.G_EXCEPTION_ERROR;
4932     END IF;
4933 
4934     IF(p_customer_name IS NULL) THEN
4935      IF p_scs_code = 'MASTER_LEASE' THEN
4936 	 x_return_status := OKC_API.g_ret_sts_error;
4937          l_ak_prompt := GET_AK_PROMPT('OKL_LA_DEAL_CREAT', 'OKL_CUSTOMER_NAME');
4938          OKC_API.SET_MESSAGE(      p_app_name => g_app_name
4939 				, p_msg_name => 'OKL_REQUIRED_VALUE'
4940 				, p_token1 => 'COL_NAME'
4941 				, p_token1_value => l_ak_prompt
4942 			   );
4943 	 RAISE OKC_API.G_EXCEPTION_ERROR;
4944      END IF;
4945     END IF;
4946 
4947     IF(p_program_name IS NOT NULL AND p_scs_code <> 'MASTER_LEASE' ) THEN
4948          l_program_id := null;
4949          open l_program_csr;
4950          fetch l_program_csr into l_program_id;
4951          close l_program_csr;
4952 
4953          IF( l_program_id IS NULL ) THEN
4954 
4955 	   x_return_status := OKC_API.g_ret_sts_error;
4956            l_ak_prompt := GET_AK_PROMPT('OKL_LA_DEAL_CREAT', 'OKL_PROGRAM');
4957            OKC_API.SET_MESSAGE(   p_app_name => g_app_name
4958 				, p_msg_name => 'OKL_LLA_INVALID_LOV_VALUE'
4959 				, p_token1 => 'COL_NAME'
4960 				, p_token1_value => l_ak_prompt
4961 			   );
4962 	   RAISE OKC_API.G_EXCEPTION_ERROR;
4963 
4964 	 END IF;
4965     END IF;
4966 
4967     IF(upper(p_source_code) <> 'NEW' AND p_source_contract_number IS NULL) THEN
4968 	 x_return_status := OKC_API.g_ret_sts_error;
4969          l_ak_prompt := GET_AK_PROMPT('OKL_LA_DEAL_CREAT', 'OKL_CONTRACT_SOURCE');
4970          OKC_API.SET_MESSAGE(     p_app_name => g_app_name
4971 				, p_msg_name => 'OKL_REQUIRED_VALUE'
4972 				, p_token1 => 'COL_NAME'
4973 				, p_token1_value => l_ak_prompt
4974 			   );
4975 	 RAISE OKC_API.G_EXCEPTION_ERROR;
4976     END IF;
4977 
4978    IF(p_customer_name IS NOT NULL) THEN
4979 
4980     okl_la_validation_util_pvt.Get_Party_Jtot_data (
4981       p_api_version    => p_api_version,
4982       p_init_msg_list  => p_init_msg_list,
4983       x_return_status  => x_return_status,
4984       x_msg_count      => x_msg_count,
4985       x_msg_data       => x_msg_data,
4986       p_scs_code       => p_scs_code,
4987       p_buy_or_sell    => 'S',
4988       p_rle_code       => G_RLE_CODE,
4989       p_id1            => p_customer_id1,
4990       p_id2            => p_customer_id2,
4991       p_name           => p_customer_name,
4992       p_object_code    => l_object_code,
4993       p_ak_region      => 'OKL_LA_DEAL_CREAT',
4994       p_ak_attribute   => 'OKL_CUSTOMER_NAME'
4995       );
4996 
4997     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
4998        RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
4999     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
5000        RAISE OKC_API.G_EXCEPTION_ERROR;
5001     END IF;
5002 
5003    END IF;
5004 
5005    IF(upper(p_source_code) <> 'NEW' AND p_source_contract_number IS NOT NULL) THEN
5006 
5007     IF(p_customer_name IS NULL AND p_program_name IS NULL) THEN
5008 
5009       IF (upper(p_source_code) = 'TEMPLATE') THEN
5010        OPEN l_src_chr_id_crs(p_scs_code,'Y');
5011        FETCH l_src_chr_id_crs INTO p_source_chr_id;
5012        CLOSE l_src_chr_id_crs;
5013       ELSIF (upper(p_source_code) = 'QUOTE') THEN
5014        OPEN l_quote_crs(lp_org_id, p_organization_id, p_source_contract_number);
5015        FETCH l_quote_crs INTO p_source_chr_id;
5016        CLOSE l_quote_crs;
5017       ELSIF (upper(p_source_code) = 'LEASEAPP') THEN
5018        OPEN l_leaseapp_crs(lp_org_id, p_organization_id, p_source_contract_number);
5019        FETCH l_leaseapp_crs INTO p_source_chr_id;
5020        CLOSE l_leaseapp_crs;
5021       ELSIF (upper(p_source_code) = 'PROGAGRMNTTEMP') THEN
5022        OPEN  l_progAgrmntTemp1_crs;
5023        FETCH l_progAgrmntTemp1_crs INTO p_source_chr_id;
5024        CLOSE l_progAgrmntTemp1_crs;
5025       ELSIF (upper(p_source_code) = 'LEASEAPPTEMP') THEN
5026        OPEN l_leaseAppTmpl_crs;
5027        FETCH l_leaseAppTmpl_crs INTO p_source_chr_id;
5028        CLOSE l_leaseAppTmpl_crs;
5029       ELSE
5030        OPEN l_src_chr_id_crs(p_scs_code,'N');
5031        FETCH l_src_chr_id_crs INTO p_source_chr_id;
5032        CLOSE l_src_chr_id_crs;
5033       END IF;
5034 
5035     ELSIF( p_customer_name IS NOT NULL AND p_program_name IS NULL) THEN
5036 
5037       IF (upper(p_source_code) = 'TEMPLATE') THEN
5038        OPEN l_source_chr_id_crs(p_scs_code,'Y',p_customer_id1,p_customer_id2,l_object_code);
5039        FETCH l_source_chr_id_crs INTO p_source_chr_id;
5040        CLOSE l_source_chr_id_crs;
5041       ELSIF (upper(p_source_code) = 'QUOTE') THEN
5042        OPEN l_quote_crs(lp_org_id, p_organization_id, p_source_contract_number);
5043        FETCH l_quote_crs INTO p_source_chr_id;
5044        CLOSE l_quote_crs;
5045       ELSIF (upper(p_source_code) = 'LEASEAPP') THEN
5046        OPEN l_leaseapp_crs(lp_org_id, p_organization_id, p_source_contract_number);
5047        FETCH l_leaseapp_crs INTO p_source_chr_id;
5048        CLOSE l_leaseapp_crs;
5049       ELSIF (upper(p_source_code) = 'PROGAGRMNTTEMP') THEN
5050        OPEN  l_progAgrmntTemp1_crs;
5051        FETCH l_progAgrmntTemp1_crs INTO p_source_chr_id;
5052        CLOSE l_progAgrmntTemp1_crs;
5053       ELSIF (upper(p_source_code) = 'LEASEAPPTEMP') THEN
5054        OPEN l_leaseAppTmpl1_crs(p_customer_id1,p_customer_id2,l_object_code);
5055        FETCH l_leaseAppTmpl1_crs INTO p_source_chr_id;
5056        CLOSE l_leaseAppTmpl1_crs;
5057       ELSE
5058        OPEN l_source_chr_id_crs(p_scs_code,'N',p_customer_id1,p_customer_id2,l_object_code);
5059        FETCH l_source_chr_id_crs INTO p_source_chr_id;
5060        CLOSE l_source_chr_id_crs;
5061       END IF;
5062 
5063     ELSIF( p_customer_name IS NOT NULL AND p_program_name IS NOT NULL) THEN
5064 
5065       IF (upper(p_source_code) = 'TEMPLATE') THEN
5066        OPEN l_source_chr_prog_id_crs(p_scs_code,'Y',p_customer_id1,p_customer_id2,l_object_code, l_program_id);
5067        FETCH l_source_chr_prog_id_crs INTO p_source_chr_id;
5068        CLOSE l_source_chr_prog_id_crs;
5069       ELSIF (upper(p_source_code) = 'QUOTE') THEN
5070        OPEN l_quote_crs(lp_org_id, p_organization_id, p_source_contract_number);
5071        FETCH l_quote_crs INTO p_source_chr_id;
5072        CLOSE l_quote_crs;
5073       ELSIF (upper(p_source_code) = 'LEASEAPP') THEN
5074        OPEN l_leaseapp_crs(lp_org_id, p_organization_id, p_source_contract_number);
5075        FETCH l_leaseapp_crs INTO p_source_chr_id;
5076        CLOSE l_leaseapp_crs;
5077       ELSIF (upper(p_source_code) = 'PROGAGRMNTTEMP') THEN
5078        OPEN  l_progAgrmntTemp_crs(l_program_id);
5079        FETCH l_progAgrmntTemp_crs INTO p_source_chr_id;
5080        CLOSE l_progAgrmntTemp_crs;
5081       ELSIF (upper(p_source_code) = 'LEASEAPPTEMP') THEN
5082        OPEN l_leaseAppTmpl2_crs(p_customer_id1,p_customer_id2,l_object_code, l_program_id);
5083        FETCH l_leaseAppTmpl2_crs INTO p_source_chr_id;
5084        CLOSE l_leaseAppTmpl2_crs;
5085       ELSE
5086        OPEN l_source_chr_prog_id_crs(p_scs_code,'N',p_customer_id1,p_customer_id2,l_object_code, l_program_id);
5087        FETCH l_source_chr_prog_id_crs INTO p_source_chr_id;
5088        CLOSE l_source_chr_prog_id_crs;
5089       END IF;
5090 
5091     ELSIF( p_customer_name IS NULL AND p_program_name IS NOT NULL) THEN
5092 
5093       IF (upper(p_source_code) = 'TEMPLATE') THEN
5094        OPEN l_source_prog_crs(p_scs_code,'Y',l_program_id);
5095        FETCH l_source_prog_crs INTO p_source_chr_id;
5096        CLOSE l_source_prog_crs;
5097       ELSIF (upper(p_source_code) = 'QUOTE') THEN
5098        OPEN l_quote_crs(lp_org_id, p_organization_id, p_source_contract_number);
5099        FETCH l_quote_crs INTO p_source_chr_id;
5100        CLOSE l_quote_crs;
5101       ELSIF (upper(p_source_code) = 'LEASEAPP') THEN
5102        OPEN l_leaseapp_crs(lp_org_id, p_organization_id, p_source_contract_number);
5103        FETCH l_leaseapp_crs INTO p_source_chr_id;
5104        CLOSE l_leaseapp_crs;
5105       ELSIF (upper(p_source_code) = 'PROGAGRMNTTEMP') THEN
5106        OPEN  l_progAgrmntTemp_crs(l_program_id);
5107        FETCH l_progAgrmntTemp_crs INTO p_source_chr_id;
5108        CLOSE l_progAgrmntTemp_crs;
5109       ELSIF (upper(p_source_code) = 'LEASEAPPTEMP') THEN
5110        OPEN l_leaseAppTmpl3_crs(l_program_id);
5111        FETCH l_leaseAppTmpl3_crs INTO p_source_chr_id;
5112        CLOSE l_leaseAppTmpl3_crs;
5113       ELSE
5114        OPEN l_source_prog_crs(p_scs_code,'N',l_program_id);
5115        FETCH l_source_prog_crs INTO p_source_chr_id;
5116        CLOSE l_source_prog_crs;
5117       END IF;
5118 
5119     END IF;
5120 
5121     IF(p_source_chr_id IS NULL) THEN
5122    	 x_return_status := OKC_API.g_ret_sts_error;
5123          l_ak_prompt := GET_AK_PROMPT('OKL_LA_DEAL_CREAT', 'OKL_CONTRACT_SOURCE');
5124          OKC_API.SET_MESSAGE(     p_app_name => g_app_name
5125  				, p_msg_name => 'OKL_LLA_INVALID_LOV_VALUE'
5126  				, p_token1 => 'COL_NAME'
5127  				, p_token1_value => l_ak_prompt
5128  			   );
5129  	 RAISE OKC_API.G_EXCEPTION_ERROR;
5130     END IF;
5131 
5132     END IF;
5133 
5134     IF (upper(p_source_code) = 'NEW') THEN
5135 
5136         create_new_deal(
5137          p_api_version     => l_api_version,
5138          p_init_msg_list   => p_init_msg_list,
5139          x_return_status   => x_return_status,
5140          x_msg_count       => x_msg_count,
5141          x_msg_data        => x_msg_data,
5142          p_contract_number => p_contract_number,
5143          p_scs_code        => p_scs_code,
5144          p_customer_id1    => p_customer_id1,
5145          p_customer_id2    => p_customer_id2,
5146          p_customer_code   => l_object_code,
5147          p_customer_name   => p_customer_name,
5148          p_template_yn     => l_template_yn,
5149          p_template_type   => p_template_type,
5150          p_effective_from  => p_effective_from,
5151          p_program_name    => p_program_name,
5152          p_program_id      => p_program_id,
5153          x_chr_id          => x_chr_id,
5154     --Added by dpsingh for LE Uptake
5155          p_legal_entity_id => p_legal_entity_id);
5156 
5157        IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
5158           RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
5159        ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
5160           RAISE OKC_API.G_EXCEPTION_ERROR;
5161        END IF;
5162 
5163        l_chr_id := x_chr_id;
5164 
5165        IF okl_context.get_okc_org_id  IS NULL THEN
5166 		okl_context.set_okc_org_context(p_chr_id => l_chr_id );
5167        END IF;
5168 
5169     IF (p_scs_code = 'LEASE') THEN
5170        p_kpl_rec.object1_id1       := lp_org_id;
5171        p_kpl_rec.object1_id2       := '#';
5172        p_kpl_rec.jtot_object1_code := 'OKX_OPERUNIT';
5173        p_kpl_rec.rle_code          := 'LESSOR';
5174        p_kpl_rec.dnz_chr_id        := l_chr_id;
5175        p_kpl_rec.chr_id            := l_chr_id;
5176 
5177        OKL_DEAL_CREAT_PVT.create_party(
5178          p_api_version     => l_api_version,
5179          p_init_msg_list   => p_init_msg_list,
5180          x_return_status   => x_return_status,
5181          x_msg_count       => x_msg_count,
5182          x_msg_data        => x_msg_data,
5183          p_kpl_rec         => p_kpl_rec,
5184          x_kpl_rec         => x_kpl_rec);
5185 
5186        IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
5187           RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
5188        ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
5189           RAISE OKC_API.G_EXCEPTION_ERROR;
5190        END IF;
5191 
5192     END IF;
5193        -- bug 4227922  property tax options defaulting onto contract
5194        IF ( p_scs_code = 'LEASE') THEN
5195 
5196        OKL_LA_PROPERTY_TAX_PVT.create_est_prop_tax_rules(
5197          p_api_version     => l_api_version,
5198          p_init_msg_list   => p_init_msg_list,
5199          x_return_status   => x_return_status,
5200          x_msg_count       => x_msg_count,
5201          x_msg_data        => x_msg_data,
5202          p_chr_id          => l_chr_id);
5203 
5204        IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
5205           RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
5206        ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
5207           RAISE OKC_API.G_EXCEPTION_ERROR;
5208        END IF;
5209 
5210        END IF;
5211 
5212         -- copy from template
5213     ELSIF (upper(p_source_code) = 'TEMPLATE') THEN
5214 
5215           create_from_template(
5216             p_api_version     => l_api_version,
5217             p_init_msg_list   => p_init_msg_list,
5218             x_return_status   => x_return_status,
5219             x_msg_count       => x_msg_count,
5220             x_msg_data        => x_msg_data,
5221             p_contract_number => p_contract_number,
5222             p_source_chr_id   => p_source_chr_id,
5223             x_chr_id          => x_chr_id);
5224 
5225     /* Bug# 3948361 - Re-lease contract functionality is moved to Revisions page
5226     ELSIF (p_source_code = 'Re-Lease') THEN
5227 
5228           create_from_release(
5229             p_api_version     => l_api_version,
5230             p_init_msg_list   => p_init_msg_list,
5231             x_return_status   => x_return_status,
5232             x_msg_count       => x_msg_count,
5233             x_msg_data        => x_msg_data,
5234             p_contract_number => p_contract_number,
5235             p_source_chr_id   => p_source_chr_id,
5236             x_chr_id          => x_chr_id);
5237     */
5238 
5239     ELSIF (upper(p_source_code) = 'COPY' ) THEN
5240 
5241           create_from_contract(
5242             p_api_version     => l_api_version,
5243             p_init_msg_list   => p_init_msg_list,
5244             x_return_status   => x_return_status,
5245             x_msg_count       => x_msg_count,
5246             x_msg_data        => x_msg_data,
5247             p_contract_number => p_contract_number,
5248             p_source_chr_id   => p_source_chr_id,
5249             x_chr_id          => x_chr_id);
5250 
5251     ELSIF (upper(p_source_code) = 'PROGAGRMNTTEMP' ) THEN
5252 
5253           create_from_contract(
5254             p_api_version     => l_api_version,
5255             p_init_msg_list   => p_init_msg_list,
5256             x_return_status   => x_return_status,
5257             x_msg_count       => x_msg_count,
5258             x_msg_data        => x_msg_data,
5259             p_contract_number => p_contract_number,
5260             p_source_chr_id   => p_source_chr_id,
5261             x_chr_id          => x_chr_id);
5262 
5263     ELSIF (upper(p_source_code) = 'LEASEAPPTEMP' ) THEN
5264 
5265           create_from_contract(
5266             p_api_version     => l_api_version,
5267             p_init_msg_list   => p_init_msg_list,
5268             x_return_status   => x_return_status,
5269             x_msg_count       => x_msg_count,
5270             x_msg_data        => x_msg_data,
5271             p_contract_number => p_contract_number,
5272             p_source_chr_id   => p_source_chr_id,
5273             x_chr_id          => x_chr_id);
5274 
5275     ELSIF (upper(p_source_code) = 'QUOTE' ) THEN
5276     -- LEASEOPP
5277           create_from_quote(
5278             p_api_version        => l_api_version,
5279             p_init_msg_list      => p_init_msg_list,
5280             x_return_status      => x_return_status,
5281             x_msg_count          => x_msg_count,
5282             x_msg_data           => x_msg_data,
5283             p_contract_number    => p_contract_number,
5284             p_source_object_code => 'LEASEOPP',
5285             p_source_chr_id      => p_source_chr_id,
5286             x_chr_id             => x_chr_id);
5287 
5288     ELSIF (upper(p_source_code) = 'LEASEAPP' ) THEN
5289     -- LEASEAPP
5290           create_from_quote(
5291             p_api_version        => l_api_version,
5292             p_init_msg_list      => p_init_msg_list,
5293             x_return_status      => x_return_status,
5294             x_msg_count          => x_msg_count,
5295             x_msg_data           => x_msg_data,
5296             p_contract_number    => p_contract_number,
5297             p_source_object_code => 'LEASEAPP',
5298             p_source_chr_id      => p_source_chr_id,
5299             x_chr_id             => x_chr_id);
5300 
5301     END IF;
5302 
5303     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
5304        RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
5305     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
5306        RAISE OKC_API.G_EXCEPTION_ERROR;
5307     END IF;
5308 
5309    -- update contract header for template_yn
5310    IF ( p_template_type IS NOT NULL AND ( upper(p_source_code) = 'QUOTE' OR upper(p_source_code) = 'COPY'
5311         OR upper(p_source_code) = 'RE-LEASE' OR upper(p_source_code) = 'TEMPLATE' OR upper(p_source_code) = 'PROGAGRMNTTEMP')) THEN
5312 
5313     lp_chrv_rec.id := x_chr_id;
5314     lp_khrv_rec.id := x_chr_id;
5315 
5316     IF(p_template_type = OKL_TEMP_TYPE_PROGRAM) THEN
5317       lp_khrv_rec.template_type_code := OKL_TEMP_TYPE_PROGRAM;
5318       lp_chrv_rec.template_yn := 'Y';
5319     ELSIF(p_template_type = OKL_TEMP_TYPE_CONTRACT) THEN
5320       lp_khrv_rec.template_type_code := OKL_TEMP_TYPE_CONTRACT;
5321       lp_chrv_rec.template_yn := 'Y';
5322     ELSIF(p_template_type = OKL_TEMP_TYPE_LEASEAPP) THEN
5323       lp_khrv_rec.template_type_code := OKL_TEMP_TYPE_LEASEAPP;
5324       lp_chrv_rec.template_yn := 'Y';
5325     ELSE
5326       lp_khrv_rec.template_type_code := NULL;
5327     END IF;
5328 
5329     IF(p_effective_from IS NOT NULL) THEN
5330 
5331       lp_chrv_rec.start_date := p_effective_from;
5332 
5333     END IF;
5334 
5335     IF(l_program_id IS NOT NULL) THEN
5336 
5337       lp_khrv_rec.khr_id := l_program_id;
5338 
5339     END IF;
5340 
5341     OKL_CONTRACT_PUB.update_contract_header(
5342       p_api_version    => p_api_version,
5343       p_init_msg_list  => p_init_msg_list,
5344       x_return_status  => x_return_status,
5345       x_msg_count      => x_msg_count,
5346       x_msg_data       => x_msg_data,
5347       p_chrv_rec       => lp_chrv_rec,
5348       p_khrv_rec       => lp_khrv_rec,
5349       x_chrv_rec       => lx_chrv_rec,
5350       x_khrv_rec       => lx_khrv_rec);
5351 
5352     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
5353        RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
5354     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
5355        RAISE OKC_API.G_EXCEPTION_ERROR;
5356     END IF;
5357 
5358    ELSIF ( p_template_type IS NULL AND ( upper(p_source_code) = 'QUOTE' OR upper(p_source_code) = 'COPY'
5359            OR upper(p_source_code) = 'RE-LEASE' OR upper(p_source_code) = 'TEMPLATE' OR upper(p_source_code) = 'PROGAGRMNTTEMP'
5360            OR upper(p_source_code) = 'LEASEAPPTEMP')) THEN
5361 
5362     lp_chrv_rec.id := x_chr_id;
5363     lp_khrv_rec.id := x_chr_id;
5364     lp_chrv_rec.template_yn := 'N';
5365     lp_khrv_rec.template_type_code := NULL;
5366 
5367     IF(p_effective_from IS NOT NULL) THEN
5368 
5369       lp_chrv_rec.start_date := p_effective_from;
5370 
5371     END IF;
5372 
5373     IF(l_program_id IS NOT NULL) THEN
5374 
5375       lp_khrv_rec.khr_id := l_program_id;
5376 
5377     END IF;
5378 
5379     OKL_CONTRACT_PUB.update_contract_header(
5380       p_api_version    => p_api_version,
5381       p_init_msg_list  => p_init_msg_list,
5382       x_return_status  => x_return_status,
5383       x_msg_count      => x_msg_count,
5384       x_msg_data       => x_msg_data,
5385       p_chrv_rec       => lp_chrv_rec,
5386       p_khrv_rec       => lp_khrv_rec,
5387       x_chrv_rec       => lx_chrv_rec,
5388       x_khrv_rec       => lx_khrv_rec);
5389 
5390     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
5391        RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
5392     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
5393        RAISE OKC_API.G_EXCEPTION_ERROR;
5394     END IF;
5395 
5396    END IF;
5397 
5398    OPEN c_orig_system_source(x_chr_id);
5399    FETCH c_orig_system_source INTO l_orig_system_source_code;
5400    CLOSE c_orig_system_source;
5401 
5402    IF NVL(l_orig_system_source_code,'XXXX') <> 'OKL_IMPORT' THEN
5403      OPEN c_tax_schedule_yn;
5404      FETCH c_tax_schedule_yn INTO l_tax_schedule_yn;
5405      CLOSE c_tax_schedule_yn;
5406 
5407      OPEN c_rule_group(x_chr_id,'LAHDTX');
5408      FETCH c_rule_group INTO l_rgp_id,l_rgd_code;
5409      CLOSE c_rule_group;
5410 
5411      IF (NVL(l_rgd_code,'XXXXXX') <> 'LAHDTX') THEN
5412        -- Create rule group LAHDTX
5413        lp_lahdtx_rgpv_rec.id := NULL;
5414        lp_lahdtx_rgpv_rec.rgd_code := 'LAHDTX';
5415        lp_lahdtx_rgpv_rec.dnz_chr_id := x_chr_id;
5416        lp_lahdtx_rgpv_rec.chr_id := x_chr_id;
5417        lp_lahdtx_rgpv_rec.rgp_type := 'KRG';
5418 
5419        OKL_RULE_PUB.create_rule_group(
5420            p_api_version    => p_api_version,
5421            p_init_msg_list  => p_init_msg_list,
5422            x_return_status  => x_return_status,
5423            x_msg_count      => x_msg_count,
5424            x_msg_data       => x_msg_data,
5425            p_rgpv_rec       => lp_lahdtx_rgpv_rec,
5426            x_rgpv_rec       => lx_lahdtx_rgpv_rec);
5427 
5428        IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
5429           RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
5430        ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
5431           RAISE OKC_API.G_EXCEPTION_ERROR;
5432        END IF;
5433 
5434        l_rgp_id := lx_lahdtx_rgpv_rec.id;
5435      END IF;
5436 
5437      --Added by bkatraga for bug 9343568
5438      OPEN c_check_rule(x_chr_id,'LAHDTX','LASTPR');
5439      FETCH c_check_rule INTO l_rule_count;
5440      CLOSE c_check_rule;
5441 
5442      IF(l_rule_count = 0) THEN
5443      --end bkatraga
5444       -- Create rule LASTPR
5445       lp_lahdtx_rulv_rec.id := NULL;
5446       lp_lahdtx_rulv_rec.rgp_id := l_rgp_id;
5447       lp_lahdtx_rulv_rec.rule_information_category := 'LASTPR';
5448       lp_lahdtx_rulv_rec.dnz_chr_id := x_chr_id;
5449       lp_lahdtx_rulv_rec.rule_information5 := l_tax_schedule_yn;
5450       lp_lahdtx_rulv_rec.WARN_YN := 'N';
5451       lp_lahdtx_rulv_rec.STD_TEMPLATE_YN := 'N';
5452 
5453       OKL_RULE_PUB.create_rule(
5454           p_api_version    => p_api_version,
5455           p_init_msg_list  => p_init_msg_list,
5456           x_return_status  => x_return_status,
5457           x_msg_count      => x_msg_count,
5458           x_msg_data       => x_msg_data,
5459           p_rulv_rec       => lp_lahdtx_rulv_rec,
5460           x_rulv_rec       => lx_lahdtx_rulv_rec);
5461 
5462       IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
5463          RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
5464       ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
5465          RAISE OKC_API.G_EXCEPTION_ERROR;
5466       END IF;
5467      END IF; --Added by bkatraga for bug 9343568
5468    END IF;
5469 
5470    /*
5471    -- mvasudev, 08/17/2004
5472    -- Code change to enable Business Event
5473    */
5474 	raise_business_event(p_chr_id        => x_chr_id
5475 	                    ,x_return_status => x_return_status);
5476     IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
5477        RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5478     ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
5479        RAISE OKL_API.G_EXCEPTION_ERROR;
5480     END IF;
5481 
5482    /*
5483    -- mvasudev, 08/17/2004
5484    -- END, Code change to enable Business Event
5485    */
5486 
5487    OKC_API.END_ACTIVITY(x_msg_count	=> x_msg_count,
5488 			 x_msg_data	=> x_msg_data);
5489   EXCEPTION
5490     WHEN OKC_API.G_EXCEPTION_ERROR THEN
5491       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
5492 			p_api_name  => l_api_name,
5493 			p_pkg_name  => g_pkg_name,
5494 			p_exc_name  => 'OKC_API.G_RET_STS_ERROR',
5495 			x_msg_count => x_msg_count,
5496 			x_msg_data  => x_msg_data,
5497 			p_api_type  => g_api_type);
5498 
5499     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
5500       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
5501 			p_api_name  => l_api_name,
5502 			p_pkg_name  => g_pkg_name,
5503 			p_exc_name  => 'OKC_API.G_RET_STS_UNEXP_ERROR',
5504 			x_msg_count => x_msg_count,
5505 			x_msg_data  => x_msg_data,
5506 			p_api_type  => g_api_type);
5507 
5508     WHEN OTHERS THEN
5509       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
5510 			p_api_name  => l_api_name,
5511 			p_pkg_name  => g_pkg_name,
5512 			p_exc_name  => 'OTHERS',
5513 			x_msg_count => x_msg_count,
5514 			x_msg_data  => x_msg_data,
5515 			p_api_type  => g_api_type);
5516   END;
5517 
5518 
5519 -- Start of comments
5520 --
5521 -- Procedure Name  : validate_deal
5522 -- Description     : creates a deal based on the information that comes
5523 --	             from the deal creation screen
5524 -- Business Rules  :
5525 -- Parameters      :
5526 -- Version         : 1.0
5527 -- End of comments
5528   PROCEDURE validate_deal(
5529     p_api_version                  IN NUMBER,
5530     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
5531     x_return_status                OUT NOCOPY VARCHAR2,
5532     x_msg_count                    OUT NOCOPY NUMBER,
5533     x_msg_data                     OUT NOCOPY VARCHAR2,
5534     p_customer_id1                 IN OUT NOCOPY VARCHAR2,
5535     p_customer_id2                 IN OUT NOCOPY  VARCHAR2,
5536     p_customer_code                IN OUT NOCOPY VARCHAR2,
5537     p_customer_name                IN  VARCHAR2,
5538     p_customer_acc_id1             IN OUT NOCOPY VARCHAR2,
5539     p_customer_acc_id2             IN OUT NOCOPY VARCHAR2,
5540     p_customer_acc_code            IN OUT NOCOPY VARCHAR2,
5541     p_customer_acc_name            IN  VARCHAR2,
5542     p_product_name                 IN  VARCHAR2,
5543     p_product_id                   IN OUT NOCOPY VARCHAR2,
5544     p_contact_id1                  IN OUT NOCOPY VARCHAR2,
5545     p_contact_id2                  IN OUT NOCOPY VARCHAR2,
5546     p_contact_code                 IN OUT NOCOPY VARCHAR2,
5547     p_contact_name                 IN  VARCHAR2,
5548     p_mla_no                       IN  VARCHAR2,
5549     p_mla_id                       IN OUT NOCOPY VARCHAR2,
5550     p_chrv_rec       		   IN  chrv_rec_type,
5551     p_khrv_rec                     IN  khrv_rec_type,
5552     x_chrv_rec                     OUT NOCOPY chrv_rec_type,
5553     x_khrv_rec                     OUT NOCOPY  khrv_rec_type
5554     ) AS
5555 
5556     l_api_name	        VARCHAR2(30) := 'validate_deal';
5557     l_api_version	CONSTANT NUMBER	  := 1.0;
5558 
5559     l_template_yn        OKC_K_HEADERS_B.TEMPLATE_YN%TYPE;
5560     l_chr_type           OKC_K_HEADERS_B.CHR_TYPE%TYPE;
5561     l_contract_number    OKC_K_HEADERS_B.CHR_TYPE%TYPE;
5562     l_object_code     VARCHAR2(30) DEFAULT NULL;
5563 
5564     l_ak_prompt  AK_ATTRIBUTES_VL.attribute_label_long%TYPE;
5565     l_chr_id	NUMBER;
5566 
5567     CURSOR l_chk_cust_acc_csr(p_cust_acc_id1 VARCHAR2, p_name VARCHAR2) IS
5568     SELECT COUNT(1)
5569     FROM okx_customer_accounts_v ca, okx_parties_v P
5570     WHERE P.id1 = ca.party_id
5571     AND ca.description = p_cust_acc_id1
5572     AND P.name = p_name;
5573 
5574     CURSOR l_product_csr IS
5575     SELECT id
5576     FROM OKL_PRODUCTS_V
5577     WHERE name = p_product_name;
5578 
5579     row_cnt  NUMBER;
5580 
5581   BEGIN
5582 
5583   IF okl_context.get_okc_org_id  IS NULL THEN
5584 	l_chr_id := p_chrv_rec.id;
5585 	okl_context.set_okc_org_context(p_chr_id => l_chr_id );
5586   END IF;
5587 
5588     x_return_status := OKC_API.START_ACTIVITY(
5589 			p_api_name      => l_api_name,
5590 			p_pkg_name      => g_pkg_name,
5591 			p_init_msg_list => p_init_msg_list,
5592 			l_api_version   => l_api_version,
5593 			p_api_version   => p_api_version,
5594 			p_api_type      => g_api_type,
5595 			x_return_status => x_return_status);
5596 
5597     -- check if activity started successfully
5598     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
5599        RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
5600     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
5601        RAISE OKC_API.G_EXCEPTION_ERROR;
5602     END IF;
5603 
5604 -- contract number validation
5605 
5606    IF(p_chrv_rec.contract_number IS NULL) THEN
5607 	 x_return_status := OKC_API.g_ret_sts_error;
5608          l_ak_prompt := GET_AK_PROMPT('OKL_LA_DEAL_CREAT', 'OKL_CONTRACT_NUMBER');
5609          OKC_API.SET_MESSAGE(      p_app_name => g_app_name
5610 				, p_msg_name => 'OKL_REQUIRED_VALUE'
5611 				, p_token1 => 'COL_NAME'
5612 				, p_token1_value => l_ak_prompt
5613 			   );
5614 	 RAISE OKC_API.G_EXCEPTION_ERROR;
5615     END IF;
5616 
5617 -- customer validation
5618 
5619    IF(p_customer_name IS NULL) THEN
5620 	 x_return_status := OKC_API.g_ret_sts_error;
5621          l_ak_prompt := GET_AK_PROMPT('OKL_LA_DEAL_CREAT', 'OKL_CUSTOMER_NAME');
5622          OKC_API.SET_MESSAGE(      p_app_name => g_app_name
5623 				, p_msg_name => 'OKL_REQUIRED_VALUE'
5624 				, p_token1 => 'COL_NAME'
5625 				, p_token1_value => l_ak_prompt
5626 			   );
5627 	 RAISE OKC_API.G_EXCEPTION_ERROR;
5628     END IF;
5629 
5630     okl_la_validation_util_pvt.Get_Party_Jtot_data (
5631       p_api_version    => p_api_version,
5632       p_init_msg_list  => p_init_msg_list,
5633       x_return_status  => x_return_status,
5634       x_msg_count      => x_msg_count,
5635       x_msg_data       => x_msg_data,
5636       p_scs_code       => p_chrv_rec.scs_code,
5637       p_buy_or_sell    => 'S',
5638       p_rle_code       => G_RLE_CODE,
5639       p_id1            => p_customer_id1,
5640       p_id2            => p_customer_id2,
5641       p_name           => p_customer_name,
5642       p_object_code    => p_customer_code,
5643       p_ak_region      => 'OKL_LA_DEAL_CREAT',
5644       p_ak_attribute   => 'OKL_CUSTOMER_NAME'
5645       );
5646 
5647     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
5648        RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
5649     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
5650        RAISE OKC_API.G_EXCEPTION_ERROR;
5651     END IF;
5652 
5653 -- customer account validation
5654 
5655    IF(p_customer_acc_name IS NULL) THEN
5656 	 x_return_status := OKC_API.g_ret_sts_error;
5657          l_ak_prompt := GET_AK_PROMPT('OKL_CONTRACT_DTLS', 'OKL_KDTLS_CUSTOMER_ACCOUNT_N');
5658          OKC_API.SET_MESSAGE(      p_app_name => g_app_name
5659 				, p_msg_name => 'OKL_REQUIRED_VALUE'
5660 				, p_token1 => 'COL_NAME'
5661 				, p_token1_value => l_ak_prompt
5662 			   );
5663 	 RAISE OKC_API.G_EXCEPTION_ERROR;
5664     END IF;
5665 
5666     okl_la_validation_util_pvt.Validate_Rule (
5667       p_api_version    => p_api_version,
5668       p_init_msg_list  => p_init_msg_list,
5669       x_return_status  => x_return_status,
5670       x_msg_count      => x_msg_count,
5671       x_msg_data       => x_msg_data,
5672       p_chr_id         => p_chrv_rec.id,
5673       p_rgd_code       => 'LACAN',
5674       p_rdf_code       => 'CAN',
5675       p_id1            => p_customer_acc_id1,
5676       p_id2            => p_customer_acc_id2,
5677       p_name           => p_customer_acc_name,
5678       p_object_code    => p_customer_acc_code,
5679       p_ak_region      => 'OKL_CONTRACT_DTLS',
5680       p_ak_attribute   => 'OKL_KDTLS_CUSTOMER_ACCOUNT_N'
5681       );
5682 
5683     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
5684        RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
5685     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
5686        RAISE OKC_API.G_EXCEPTION_ERROR;
5687     END IF;
5688 
5689     OPEN l_chk_cust_acc_csr(p_customer_acc_name,p_customer_name);
5690     FETCH l_chk_cust_acc_csr INTO row_cnt;
5691     CLOSE l_chk_cust_acc_csr;
5692 
5693     IF row_cnt = 0 THEN
5694 	 x_return_status := OKC_API.g_ret_sts_error;
5695          l_ak_prompt := GET_AK_PROMPT('OKL_CONTRACT_DTLS', 'OKL_KDTLS_CUSTOMER_ACCOUNT_N');
5696          OKC_API.SET_MESSAGE(      p_app_name => g_app_name
5697 				, p_msg_name => 'OKL_LLA_INVALID_LOV_VALUE'
5698 				, p_token1 => 'COL_NAME'
5699 				, p_token1_value => l_ak_prompt
5700 			   );
5701 	 RAISE OKC_API.G_EXCEPTION_ERROR;
5702     END IF;
5703 
5704 -- product validation
5705 
5706     IF(p_product_name IS NULL) THEN
5707 	 x_return_status := OKC_API.g_ret_sts_error;
5708          l_ak_prompt := GET_AK_PROMPT('OKL_CONTRACT_DTLS', 'OKL_KDTLS_PRODUCT');
5709          OKC_API.SET_MESSAGE(      p_app_name => g_app_name
5710 				, p_msg_name => 'OKL_REQUIRED_VALUE'
5711 				, p_token1 => 'COL_NAME'
5712 				, p_token1_value => l_ak_prompt
5713 			   );
5714 	 RAISE OKC_API.G_EXCEPTION_ERROR;
5715     END IF;
5716 
5717     OPEN l_product_csr;
5718     FETCH l_product_csr INTO p_product_id;
5719     CLOSE l_product_csr;
5720 
5721     IF p_product_id IS NULL THEN
5722 	 x_return_status := OKC_API.g_ret_sts_error;
5723          l_ak_prompt := GET_AK_PROMPT('OKL_CONTRACT_DTLS', 'OKL_KDTLS_PRODUCT');
5724          OKC_API.SET_MESSAGE(     p_app_name => g_app_name
5725 				, p_msg_name => 'OKL_LLA_INVALID_LOV_VALUE'
5726 				, p_token1 => 'COL_NAME'
5727 				, p_token1_value => l_ak_prompt
5728 			   );
5729 	 RAISE OKC_API.G_EXCEPTION_ERROR;
5730     END IF;
5731 
5732 -- contact validation
5733 
5734    IF(p_contact_name IS NOT NULL) THEN
5735 
5736      okl_la_validation_util_pvt.Validate_Contact (
5737        p_api_version    => p_api_version,
5738        p_init_msg_list  => p_init_msg_list,
5739        x_return_status  => x_return_status,
5740        x_msg_count      => x_msg_count,
5741        x_msg_data       => x_msg_data,
5742        p_chr_id         => p_chrv_rec.id,
5743        p_rle_code       => 'LESSOR',
5744        p_cro_code       => 'SALESPERSON',
5745        p_id1            => p_contact_id1,
5746        p_id2            => p_contact_id2,
5747        p_name           => p_contact_name,
5748        p_object_code    => p_contact_code,
5749        p_ak_region      => 'OKL_CONTRACT_DTLS',
5750        p_ak_attribute   => 'OKL_KDTLS_SALES_REPRESENTATIVE'
5751        );
5752 
5753      IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
5754         RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
5755      ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
5756         RAISE OKC_API.G_EXCEPTION_ERROR;
5757      END IF;
5758 
5759    END IF;
5760 
5761    OKC_API.END_ACTIVITY(x_msg_count	=> x_msg_count,
5762 			 x_msg_data	=> x_msg_data);
5763   EXCEPTION
5764     WHEN OKC_API.G_EXCEPTION_ERROR THEN
5765       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
5766 			p_api_name  => l_api_name,
5767 			p_pkg_name  => g_pkg_name,
5768 			p_exc_name  => 'OKC_API.G_RET_STS_ERROR',
5769 			x_msg_count => x_msg_count,
5770 			x_msg_data  => x_msg_data,
5771 			p_api_type  => g_api_type);
5772 
5773     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
5774       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
5775 			p_api_name  => l_api_name,
5776 			p_pkg_name  => g_pkg_name,
5777 			p_exc_name  => 'OKC_API.G_RET_STS_UNEXP_ERROR',
5778 			x_msg_count => x_msg_count,
5779 			x_msg_data  => x_msg_data,
5780 			p_api_type  => g_api_type);
5781 
5782     WHEN OTHERS THEN
5783       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
5784 			p_api_name  => l_api_name,
5785 			p_pkg_name  => g_pkg_name,
5786 			p_exc_name  => 'OTHERS',
5787 			x_msg_count => x_msg_count,
5788 			x_msg_data  => x_msg_data,
5789 			p_api_type  => g_api_type);
5790   END;
5791 
5792 
5793 -- Start of comments
5794 --
5795 -- Procedure Name  : update_release_contract
5796 -- Description     : update release contract for
5797 --                   PRODUCT_CHANGE/CUSTOMER_CHANGE
5798 --
5799 -- Business Rules  :
5800 -- Parameters      :
5801 -- Version         : 1.0
5802 -- End of comments
5803   PROCEDURE update_release_contract(
5804     p_api_version                  IN NUMBER,
5805     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
5806     x_return_status                OUT NOCOPY VARCHAR2,
5807     x_msg_count                    OUT NOCOPY NUMBER,
5808     x_msg_data                     OUT NOCOPY VARCHAR2,
5809     p_chr_id                       IN  NUMBER,
5810     p_contract_number              IN  VARCHAR2,
5811     p_chr_description              IN  VARCHAR2,
5812     p_cust_id                      IN  NUMBER,
5813     p_customer_name                IN  VARCHAR2,
5814     p_customer_id1                 IN  VARCHAR2,
5815     p_customer_acc_name            IN  VARCHAR2,
5816     p_customer_acct_id1            IN  VARCHAR2,
5817     p_product_name                 IN  VARCHAR2,
5818     p_mla_id                       IN  NUMBER,
5819     p_mla_no                       IN  VARCHAR2,
5820     p_gvr_id_mla                   IN  NUMBER,
5821     p_cl_id                        IN  NUMBER,
5822     p_cl_no                        IN  VARCHAR2,
5823     p_gvr_id_cl                    IN  NUMBER,
5824     p_deal_type                    IN  VARCHAR2,
5825     p_program_no                   IN  VARCHAR2,
5826     p_program_id                   IN  NUMBER,
5827     p_program_yn                   IN  VARCHAR2,
5828     p_bill_to_site_use_id          IN  NUMBER,  -- Bug 6493413
5829     p_durv_rec                     IN  deal_rec_type  --Added by bkatraga for bug 9392566
5830     ) AS
5831 
5832     l_api_name	        VARCHAR2(30) := 'update_release_contract';
5833     l_api_version	CONSTANT NUMBER	  := 1.0;
5834 
5835     l_template_yn        OKC_K_HEADERS_B.TEMPLATE_YN%TYPE;
5836     l_chr_type           OKC_K_HEADERS_B.CHR_TYPE%TYPE;
5837     l_contract_number    OKC_K_HEADERS_B.CHR_TYPE%TYPE;
5838     l_object_code     VARCHAR2(30) DEFAULT NULL;
5839 
5840     l_ak_prompt  AK_ATTRIBUTES_VL.attribute_label_long%TYPE;
5841     l_chr_id	NUMBER;
5842 
5843     cursor l_get_cust_id_csr(p_name VARCHAR2) is
5844     select OKX_PARTY.ID1, OKX_PARTY.ID2
5845     from OKX_PARTIES_V OKX_PARTY
5846     where OKX_PARTY.name = p_name
5847     and okx_party.id1 = p_customer_id1;
5848 
5849     l_cust_id1 OKX_PARTIES_V.ID1%type := null;
5850     l_cust_id2 OKX_PARTIES_V.ID2%type := null;
5851 
5852     cursor l_get_cust_acc_csr(p_cust_acc_desc VARCHAR2, p_name VARCHAR2) is
5853     select ca.id1
5854     from okx_customer_accounts_v ca,
5855          okx_parties_v p
5856     where p.id1 = ca.party_id
5857     and ca.description = p_cust_acc_desc
5858     and p.name = p_name;
5859 
5860     l_cust_acct_id okx_customer_accounts_v.id1%type := null;
5861 
5862     CURSOR l_product_csr IS
5863     SELECT id
5864     FROM OKL_PRODUCTS_V
5865     WHERE name = p_product_name;
5866 
5867     l_product_id OKL_PRODUCTS_V.id%type := null;
5868 
5869     row_cnt  NUMBER;
5870 
5871     Cursor l_rbr_csr IS
5872     SELECT rbr_code
5873     FROM okl_trx_contracts
5874     WHERE khr_id_new = p_chr_id
5875     --rkuttiya added for 12.1.1 Multi  GAAP Project
5876     AND representation_type = 'PRIMARY';
5877    --
5878 
5879     l_rbr_code okl_trx_contracts.rbr_code%type := null;
5880 
5881     cursor l_mla_csr is
5882     select id
5883     from OKL_k_headers_full_V
5884     where contract_number = p_mla_no
5885     and   scs_code = 'MASTER_LEASE'
5886     and STS_CODE = 'ACTIVE'
5887     and TEMPLATE_YN = 'N'
5888     and BUY_OR_SELL = 'S';
5889 
5890     l_mla_id number;
5891 
5892     cursor l_credit_line_csr is
5893     select cl.id
5894     from okl_k_hdr_crdtln_uv cl
5895     where  cl.contract_number = p_cl_no
5896     and exists ( select 1
5897                  from okc_k_headers_b chr
5898                  where chr.currency_code = cl.currency_code
5899                  and cl.end_date >= chr.start_date
5900                  and cl.cust_name  = p_customer_name
5901                  and cl.cust_acc_number = p_customer_acc_name);
5902 
5903     l_cl_id NUMBER;
5904 
5905     cursor l_program_csr is
5906     select id
5907     from OKL_k_headers_full_V prg_hdr
5908     where contract_number = p_program_no
5909     and scs_code = 'PROGRAM'
5910     and nvl(TEMPLATE_YN, 'N') = 'N'
5911     and sts_code = 'ACTIVE'
5912     and exists (select 1
5913                 from okc_k_headers_b
5914                 where id = p_chr_id
5915                 and authoring_org_id = prg_hdr.authoring_org_id);
5916 
5917     l_program_id number;
5918 
5919     old_khr_id  NUMBER;
5920 
5921     CURSOR c_vp_exsts_csr IS
5922     SELECT khr_id
5923     FROM okl_k_headers_full_v
5924     WHERE id = p_chr_id;
5925 
5926     CURSOR c_context_csr IS
5927     SELECT authoring_org_id, inv_organization_id
5928     FROM okl_k_headers_full_V
5929     WHERE id = p_chr_id;
5930 
5931     l_auth_org_id okc_k_headers_b.authoring_org_id%type;
5932     l_inv_org_id okc_k_headers_b.inv_organization_id%type;
5933 
5934     lp_chrv_rec OKL_OKC_MIGRATION_PVT.chrv_rec_type;
5935     lx_chrv_rec OKL_OKC_MIGRATION_PVT.chrv_rec_type;
5936 
5937     lp_khrv_rec OKL_CONTRACT_PUB.khrv_rec_type;
5938     lx_khrv_rec OKL_CONTRACT_PUB.khrv_rec_type;
5939 
5940     lp_lessee_cplv_rec OKL_OKC_MIGRATION_PVT.cplv_rec_type;
5941     lx_lessee_cplv_rec OKL_OKC_MIGRATION_PVT.cplv_rec_type;
5942 
5943     lp_pdtv_rec OKL_SETUPPRODUCTS_PUB.pdtv_rec_type;
5944     lp_pdt_param_rec OKL_SETUPPRODUCTS_PUB.pdt_parameters_rec_type;
5945     lx_pdtv_rec OKL_SETUPPRODUCTS_PUB.pdtv_rec_type;
5946     lx_pdt_param_rec OKL_SETUPPRODUCTS_PUB.pdt_parameters_rec_type;
5947 
5948     lp_mla_gvev_rec OKL_OKC_MIGRATION_PVT.gvev_rec_type;
5949     lx_mla_gvev_rec OKL_OKC_MIGRATION_PVT.gvev_rec_type;
5950 
5951     lp_cl_gvev_rec OKL_OKC_MIGRATION_PVT.gvev_rec_type;
5952     lx_cl_gvev_rec OKL_OKC_MIGRATION_PVT.gvev_rec_type;
5953 
5954     X_NO_DATA_FOUND BOOLEAN := TRUE;
5955 
5956     --Bug# 4558486
5957     lp_kplv_rec      okl_k_party_roles_pvt.kplv_rec_type;
5958     lx_kplv_rec      okl_k_party_roles_pvt.kplv_rec_type;
5959 
5960   BEGIN
5961 
5962   IF okl_context.get_okc_org_id  IS NULL THEN
5963 	l_chr_id := p_chr_id;
5964 	okl_context.set_okc_org_context(p_chr_id => l_chr_id );
5965   END IF;
5966 
5967     x_return_status := OKC_API.START_ACTIVITY(
5968 			p_api_name      => l_api_name,
5969 			p_pkg_name      => g_pkg_name,
5970 			p_init_msg_list => p_init_msg_list,
5971 			l_api_version   => l_api_version,
5972 			p_api_version   => p_api_version,
5973 			p_api_type      => g_api_type,
5974 			x_return_status => x_return_status);
5975 
5976     -- check if activity started successfully
5977     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
5978        RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
5979     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
5980        RAISE OKC_API.G_EXCEPTION_ERROR;
5981     END IF;
5982 
5983     l_rbr_code := null;
5984     open l_rbr_csr;
5985     fetch l_rbr_csr into l_rbr_code;
5986     close l_rbr_csr;
5987 
5988    If(l_rbr_code is not null and l_rbr_code = 'PRODUCT_CHANGE') Then
5989 
5990     -- product validation
5991     IF(p_product_name IS NULL) THEN
5992 	 x_return_status := OKC_API.g_ret_sts_error;
5993          l_ak_prompt := GET_AK_PROMPT('OKL_CONTRACT_DTLS', 'OKL_KDTLS_PRODUCT');
5994          OKC_API.SET_MESSAGE(      p_app_name => g_app_name
5995 				, p_msg_name => 'OKL_REQUIRED_VALUE'
5996 				, p_token1 => 'COL_NAME'
5997 				, p_token1_value => l_ak_prompt
5998 			   );
5999 	 RAISE OKC_API.G_EXCEPTION_ERROR;
6000     END IF;
6001 
6002     l_product_id := null;
6003     OPEN l_product_csr;
6004     FETCH l_product_csr INTO l_product_id;
6005     CLOSE l_product_csr;
6006 
6007     IF l_product_id IS NULL THEN
6008 	 x_return_status := OKC_API.g_ret_sts_error;
6009          l_ak_prompt := GET_AK_PROMPT('OKL_CONTRACT_DTLS', 'OKL_KDTLS_PRODUCT');
6010          OKC_API.SET_MESSAGE(     p_app_name => g_app_name
6011 				, p_msg_name => 'OKL_LLA_INVALID_LOV_VALUE'
6012 				, p_token1 => 'COL_NAME'
6013 				, p_token1_value => l_ak_prompt
6014 			   );
6015 	 RAISE OKC_API.G_EXCEPTION_ERROR;
6016     END IF;
6017 
6018   END IF;
6019 
6020   If(l_rbr_code is not null and l_rbr_code = 'CUSTOMER_CHANGE') Then
6021 
6022      -- customer validation
6023      IF(p_customer_name IS NULL) THEN
6024       x_return_status := OKC_API.g_ret_sts_error;
6025       l_ak_prompt := GET_AK_PROMPT('OKL_LA_DEAL_CREAT', 'OKL_CUSTOMER_NAME');
6026       OKC_API.SET_MESSAGE(      p_app_name => g_app_name
6027 				, p_msg_name => 'OKL_REQUIRED_VALUE'
6028 				, p_token1 => 'COL_NAME'
6029 				, p_token1_value => l_ak_prompt
6030 			   );
6031       RAISE OKC_API.G_EXCEPTION_ERROR;
6032      END IF;
6033 
6034     -- customer account validation
6035     IF(p_customer_acc_name IS NULL) THEN
6036 	 x_return_status := OKC_API.g_ret_sts_error;
6037          l_ak_prompt := GET_AK_PROMPT('OKL_CONTRACT_DTLS', 'OKL_KDTLS_CUSTOMER_ACCOUNT_N');
6038          OKC_API.SET_MESSAGE(      p_app_name => g_app_name
6039 				, p_msg_name => 'OKL_REQUIRED_VALUE'
6040 				, p_token1 => 'COL_NAME'
6041 				, p_token1_value => l_ak_prompt
6042 			   );
6043 	 RAISE OKC_API.G_EXCEPTION_ERROR;
6044     END IF;
6045 
6046     -- gboomina Bug 6493413 - Start
6047     -- Bill To Address validation
6048     IF ( p_bill_to_site_use_id IS NULL) THEN
6049     	 x_return_status := OKC_API.g_ret_sts_error;
6050       l_ak_prompt := GET_AK_PROMPT('OKL_LA_LAVENB', 'OKL_LA_BILLTO');
6051       OKC_API.SET_MESSAGE( p_app_name => g_app_name
6052 				                     , p_msg_name => 'OKL_REQUIRED_VALUE'
6053                      				, p_token1 => 'COL_NAME'
6054                       			, p_token1_value => l_ak_prompt
6055                    			   );
6056      	RAISE OKC_API.G_EXCEPTION_ERROR;
6057     END IF;
6058     -- gboomina Bug 6493413 - End
6059 
6060     l_cust_id1 := null;
6061     l_cust_id2 := null;
6062     Open l_get_cust_id_csr(p_customer_name);
6063     Fetch l_get_cust_id_csr into l_cust_id1,l_cust_id2;
6064     Close l_get_cust_id_csr;
6065 
6066     If l_cust_id1 is null Then
6067      x_return_status := OKC_API.g_ret_sts_error;
6068      l_ak_prompt := GET_AK_PROMPT('OKL_LA_DEAL_CREAT', 'OKL_CUSTOMER_NAME');
6069      OKC_API.SET_MESSAGE(      p_app_name => g_app_name
6070                 , p_msg_name => 'OKL_LLA_INVALID_LOV_VALUE'
6071                 , p_token1 => 'COL_NAME'
6072                 , p_token1_value => l_ak_prompt
6073                );
6074      raise OKC_API.G_EXCEPTION_ERROR;
6075     End If;
6076 
6077     l_cust_acct_id := null;
6078     Open l_get_cust_acc_csr(p_customer_acc_name, p_customer_name);
6079     Fetch l_get_cust_acc_csr into l_cust_acct_id;
6080     Close l_get_cust_acc_csr;
6081 
6082     If l_cust_acct_id is null Then
6083      x_return_status := OKC_API.g_ret_sts_error;
6084          l_ak_prompt := GET_AK_PROMPT('OKL_CONTRACT_DTLS', 'OKL_KDTLS_CUSTOMER_ACCOUNT_N');
6085          OKC_API.SET_MESSAGE(      p_app_name => g_app_name
6086                 , p_msg_name => 'OKL_LLA_INVALID_LOV_VALUE'
6087                 , p_token1 => 'COL_NAME'
6088                 , p_token1_value => l_ak_prompt
6089                );
6090      raise OKC_API.G_EXCEPTION_ERROR;
6091     End If;
6092 
6093     -- mla validation
6094     If(p_mla_no is not null) Then
6095 
6096      l_mla_id := null;
6097      open l_mla_csr;
6098      fetch l_mla_csr into l_mla_id;
6099      close l_mla_csr;
6100 
6101      If l_mla_id is null Then
6102          x_return_status := OKC_API.g_ret_sts_error;
6103          l_ak_prompt := GET_AK_PROMPT('OKL_CONTRACT_DTLS', 'OKL_KDTLS_MASTER_LEASE_NUMBER');
6104          OKC_API.SET_MESSAGE(     p_app_name => g_app_name
6105                 , p_msg_name => 'OKL_LLA_INVALID_LOV_VALUE'
6106                 , p_token1 => 'COL_NAME'
6107                 , p_token1_value => l_ak_prompt
6108                );
6109          raise OKC_API.G_EXCEPTION_ERROR;
6110      End If;
6111 
6112     End If;
6113 
6114    End If; -- end of customer change if
6115 
6116    If(l_rbr_code is not null and (l_rbr_code = 'CUSTOMER_CHANGE'  or  l_rbr_code = 'PRODUCT_CHANGE')) Then
6117 
6118     -- creditline validation
6119     If(p_cl_no is not null) Then
6120 
6121       l_cl_id := null;
6122 
6123       open l_credit_line_csr;
6124       fetch l_credit_line_csr into l_cl_id;
6125       close l_credit_line_csr;
6126 
6127       If l_cl_id is null Then
6128          x_return_status := OKC_API.g_ret_sts_error;
6129          l_ak_prompt := GET_AK_PROMPT('OKL_CONTRACT_DTLS', 'OKL_KDTLS_CREDIT_CONTRACT');
6130          OKC_API.SET_MESSAGE(     p_app_name => g_app_name
6131                                 , p_msg_name => 'OKL_LLA_INVALID_LOV_VALUE'
6132                                 , p_token1 => 'COL_NAME'
6133                                 , p_token1_value => l_ak_prompt
6134 
6135                            );
6136          raise OKC_API.G_EXCEPTION_ERROR;
6137       End If;
6138 
6139     End If;
6140 
6141     -- validation for creditline contract
6142     okl_la_validation_util_pvt.validate_creditline(
6143        p_api_version    => p_api_version,
6144        p_init_msg_list  => p_init_msg_list,
6145        x_return_status  => x_return_status,
6146        x_msg_count      => x_msg_count,
6147        x_msg_data       => x_msg_data,
6148        p_chr_id         => p_chr_id,
6149        p_deal_type      => p_deal_type,
6150        p_mla_no         => p_mla_no,
6151        p_cl_no          => p_cl_no
6152        );
6153 
6154      IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
6155         RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
6156      ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
6157         RAISE OKC_API.G_EXCEPTION_ERROR;
6158      END IF;
6159 
6160     -- program validation
6161     If(p_program_no is not null) Then
6162 
6163       l_program_id := null;
6164       open l_program_csr;
6165       fetch l_program_csr into l_program_id;
6166       close l_program_csr;
6167 
6168       If l_program_id is null Then
6169 
6170          x_return_status := OKC_API.g_ret_sts_error;
6171          l_ak_prompt := GET_AK_PROMPT('OKL_CONTRACT_DTLS', 'OKL_KDTLS_PROGRAM');
6172          OKC_API.SET_MESSAGE(     p_app_name => g_app_name
6173                 , p_msg_name => 'OKL_LLA_INVALID_LOV_VALUE'
6174                 , p_token1 => 'COL_NAME'
6175                 , p_token1_value => l_ak_prompt
6176                );
6177          raise OKC_API.G_EXCEPTION_ERROR;
6178 
6179       End If;
6180 
6181     End If;
6182 
6183 End If;
6184 
6185 
6186   If(l_rbr_code is not null and (l_rbr_code = 'CUSTOMER_CHANGE'  or  l_rbr_code = 'PRODUCT_CHANGE')) Then
6187 
6188     -- product changes
6189     lp_pdtv_rec.id := l_product_id;
6190     OKL_SETUPPRODUCTS_PUB.Getpdt_parameters
6191           (p_api_version   => p_api_version,
6192            p_init_msg_list => p_init_msg_list,
6193            x_return_status => x_return_status,
6194       	   x_no_data_found => x_no_data_found,
6195            x_msg_count     => x_msg_count,
6196            x_msg_data      => x_msg_data,
6197       	   p_pdtv_rec      => lp_pdtv_rec,
6198       	   p_product_date  => NULL,
6199       	   p_pdt_parameter_rec => lx_pdt_param_rec);
6200 
6201     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
6202          RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
6203     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
6204          RAISE OKC_API.G_EXCEPTION_ERROR;
6205     END IF;
6206 
6207     lp_chrv_rec.id := p_chr_id;
6208     lp_chrv_rec.contract_number := p_contract_number;
6209     lp_chrv_rec.short_description := p_chr_description;
6210     lp_chrv_rec.description :=  p_chr_description;
6211 
6212     If(l_rbr_code is not null and l_rbr_code = 'CUSTOMER_CHANGE') Then
6213 
6214      lp_chrv_rec.cust_acct_id := l_cust_acct_id;
6215     -- gboomina Bug 6493413 - Start
6216     -- populating Bill to Site Use Id as Bill To Address is updatable during
6217     -- Release Customer Change
6218      lp_chrv_rec.bill_to_site_use_id := p_bill_to_site_use_id;
6219     -- gboomina Bug 6493413 - End
6220 
6221     End IF;
6222 
6223     If(l_rbr_code is not null and l_rbr_code = 'PRODUCT_CHANGE') Then
6224 
6225      lp_khrv_rec.deal_type :=  lx_pdt_param_rec.Deal_Type;
6226 
6227     End IF;
6228 
6229     lp_khrv_rec.id := p_chr_id;
6230     lp_khrv_rec.khr_id := l_program_id;
6231 
6232     --Added by bkatraga for bug 9392566
6233     lp_khrv_rec.attribute_category := p_durv_rec.attribute_category;
6234     lp_khrv_rec.attribute1 := p_durv_rec.attribute1;
6235     lp_khrv_rec.attribute2 := p_durv_rec.attribute2;
6236     lp_khrv_rec.attribute3 := p_durv_rec.attribute3;
6237     lp_khrv_rec.attribute4 := p_durv_rec.attribute4;
6238     lp_khrv_rec.attribute5 := p_durv_rec.attribute5;
6239     lp_khrv_rec.attribute6 := p_durv_rec.attribute6;
6240     lp_khrv_rec.attribute7 := p_durv_rec.attribute7;
6241     lp_khrv_rec.attribute8 := p_durv_rec.attribute8;
6242     lp_khrv_rec.attribute9 := p_durv_rec.attribute9;
6243     lp_khrv_rec.attribute10 := p_durv_rec.attribute10;
6244     lp_khrv_rec.attribute11 := p_durv_rec.attribute11;
6245     lp_khrv_rec.attribute12 := p_durv_rec.attribute12;
6246     lp_khrv_rec.attribute13 := p_durv_rec.attribute13;
6247     lp_khrv_rec.attribute14 := p_durv_rec.attribute14;
6248     lp_khrv_rec.attribute15 := p_durv_rec.attribute15;
6249     --end bkatraga
6250 
6251     OKL_CONTRACT_PUB.update_contract_header(
6252         p_api_version    	=> p_api_version,
6253         p_init_msg_list  	=> p_init_msg_list,
6254         x_return_status  	=> x_return_status,
6255         x_msg_count      	=> x_msg_count,
6256         x_msg_data       	=> x_msg_data,
6257         p_restricted_update     => 'F',
6258         p_chrv_rec       	=> lp_chrv_rec,
6259         p_khrv_rec       	=> lp_khrv_rec,
6260         x_chrv_rec       	=> lx_chrv_rec,
6261         x_khrv_rec       	=> lx_khrv_rec);
6262 
6263       IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
6264          RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
6265       ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
6266          RAISE OKC_API.G_EXCEPTION_ERROR;
6267       END IF;
6268 
6269   END IF;
6270 
6271   If(l_rbr_code is not null and l_rbr_code = 'CUSTOMER_CHANGE' ) Then
6272 
6273         lp_lessee_cplv_rec.id := p_cust_id;
6274         lp_lessee_cplv_rec.dnz_chr_id := p_chr_id;
6275         lp_lessee_cplv_rec.chr_id := p_chr_id;
6276         lp_lessee_cplv_rec.object1_id1 := l_cust_id1;
6277         lp_lessee_cplv_rec.object1_id2 := l_cust_id2;
6278         lp_lessee_cplv_rec.rle_code := 'LESSEE';
6279         lp_lessee_cplv_rec.jtot_object1_code := 'OKX_PARTY';
6280 
6281       --Bug# 4558486: Changed call to okl_k_party_roles_pvt api
6282       --              to update records in tables
6283       --              okc_k_party_roles_b and okl_k_party_roles
6284       /*
6285       OKL_OKC_MIGRATION_PVT.update_k_party_role(
6286              p_api_version    => p_api_version,
6287             p_init_msg_list  => p_init_msg_list,
6288             x_return_status  => x_return_status,
6289             x_msg_count      => x_msg_count,
6290             x_msg_data       => x_msg_data,
6291             p_cplv_rec       => lp_lessee_cplv_rec,
6292             x_cplv_rec       => lx_lessee_cplv_rec);
6293       */
6294 
6295       lp_kplv_rec.id := lp_lessee_cplv_rec.id;
6296       okl_k_party_roles_pvt.update_k_party_role(
6297         p_api_version      => p_api_version,
6298         p_init_msg_list    => p_init_msg_list,
6299         x_return_status    => x_return_status,
6300         x_msg_count        => x_msg_count,
6301         x_msg_data         => x_msg_data,
6302         p_cplv_rec         => lp_lessee_cplv_rec,
6303         x_cplv_rec         => lx_lessee_cplv_rec,
6304         p_kplv_rec         => lp_kplv_rec,
6305         x_kplv_rec         => lx_kplv_rec);
6306 
6307       IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
6308          RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
6309       ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
6310          RAISE OKC_API.G_EXCEPTION_ERROR;
6311       END IF;
6312 
6313    -- mla
6314    IF (p_gvr_id_mla IS NULL AND p_mla_no IS NOT NULL ) THEN
6315 
6316     lp_mla_gvev_rec.id := NULL;
6317     lp_mla_gvev_rec.dnz_chr_id := p_chr_id;
6318     lp_mla_gvev_rec.chr_id := p_chr_id;
6319     lp_mla_gvev_rec.chr_id_referred := l_mla_id;
6320     lp_mla_gvev_rec.copied_only_yn := 'N';
6321 
6322     OKL_OKC_MIGRATION_PVT.create_governance(
6323         p_api_version    => p_api_version,
6324         p_init_msg_list  => p_init_msg_list,
6325         x_return_status  => x_return_status,
6326         x_msg_count      => x_msg_count,
6327         x_msg_data       => x_msg_data,
6328         p_gvev_rec       => lp_mla_gvev_rec,
6329         x_gvev_rec       => lx_mla_gvev_rec);
6330 
6331       IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
6332          RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
6333       ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
6334          RAISE OKC_API.G_EXCEPTION_ERROR;
6335       END IF;
6336 
6337    ELSIF (p_gvr_id_mla IS NOT NULL AND p_mla_no IS NOT NULL ) THEN
6338 
6339     lp_mla_gvev_rec.id := p_gvr_id_mla;
6340     lp_mla_gvev_rec.dnz_chr_id := p_chr_id;
6341     lp_mla_gvev_rec.chr_id := p_chr_id;
6342     lp_mla_gvev_rec.chr_id_referred := l_mla_id;
6343     lp_mla_gvev_rec.copied_only_yn := 'N';
6344 
6345     OKL_OKC_MIGRATION_PVT.update_governance(
6346         p_api_version    => p_api_version,
6347         p_init_msg_list  => p_init_msg_list,
6348         x_return_status  => x_return_status,
6349         x_msg_count      => x_msg_count,
6350         x_msg_data       => x_msg_data,
6351         p_gvev_rec       => lp_mla_gvev_rec,
6352         x_gvev_rec       => lx_mla_gvev_rec);
6353 
6354       IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
6355          RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
6356       ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
6357          RAISE OKC_API.G_EXCEPTION_ERROR;
6358       END IF;
6359 
6360 
6361    ELSIF (p_gvr_id_mla IS NOT NULL AND p_mla_no IS NULL ) THEN
6362 
6363      lp_mla_gvev_rec.id := p_gvr_id_mla;
6364 
6365      OKL_OKC_MIGRATION_PVT.delete_governance(
6366         p_api_version    => p_api_version,
6367         p_init_msg_list  => p_init_msg_list,
6368         x_return_status  => x_return_status,
6369         x_msg_count      => x_msg_count,
6370         x_msg_data       => x_msg_data,
6371         p_gvev_rec       => lp_mla_gvev_rec);
6372 
6373       IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
6374          RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
6375       ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
6376          RAISE OKC_API.G_EXCEPTION_ERROR;
6377       END IF;
6378 
6379     END IF;
6380 
6381   END IF;
6382 
6383   If(l_rbr_code is not null and (l_rbr_code = 'CUSTOMER_CHANGE'  or  l_rbr_code = 'PRODUCT_CHANGE')) Then
6384 
6385    -- creditline
6386    IF (p_gvr_id_cl IS NULL AND p_cl_no IS NOT NULL ) THEN
6387 
6388     lp_cl_gvev_rec.id := NULL;
6389     lp_cl_gvev_rec.dnz_chr_id := p_chr_id;
6390     lp_cl_gvev_rec.chr_id := p_chr_id;
6391     lp_cl_gvev_rec.chr_id_referred := l_cl_id;
6392     lp_cl_gvev_rec.copied_only_yn := 'N';
6393 
6394     OKL_OKC_MIGRATION_PVT.create_governance(
6395         p_api_version    => p_api_version,
6396         p_init_msg_list  => p_init_msg_list,
6397         x_return_status  => x_return_status,
6398         x_msg_count      => x_msg_count,
6399         x_msg_data       => x_msg_data,
6400         p_gvev_rec       => lp_cl_gvev_rec,
6401         x_gvev_rec       => lx_cl_gvev_rec);
6402 
6403       IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
6404          RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
6405       ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
6406          RAISE OKC_API.G_EXCEPTION_ERROR;
6407       END IF;
6408 
6409    ELSIF (p_gvr_id_cl IS NOT NULL AND p_cl_no IS NOT NULL ) THEN
6410 
6411     lp_cl_gvev_rec.id := p_gvr_id_cl;
6412     lp_cl_gvev_rec.dnz_chr_id := p_chr_id;
6413     lp_cl_gvev_rec.chr_id := p_chr_id;
6414     lp_cl_gvev_rec.chr_id_referred := l_cl_id;
6415     lp_cl_gvev_rec.copied_only_yn := 'N';
6416 
6417     OKL_OKC_MIGRATION_PVT.update_governance(
6418         p_api_version    => p_api_version,
6419         p_init_msg_list  => p_init_msg_list,
6420         x_return_status  => x_return_status,
6421         x_msg_count      => x_msg_count,
6422         x_msg_data       => x_msg_data,
6423         p_gvev_rec       => lp_cl_gvev_rec,
6424         x_gvev_rec       => lx_cl_gvev_rec);
6425 
6426       IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
6427          RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
6428       ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
6429          RAISE OKC_API.G_EXCEPTION_ERROR;
6430       END IF;
6431 
6432    ELSIF (p_gvr_id_cl IS NOT NULL AND p_cl_no IS NULL ) THEN
6433 
6434     lp_cl_gvev_rec.id := p_gvr_id_cl;
6435 
6436     OKL_OKC_MIGRATION_PVT.delete_governance(
6437         p_api_version    => p_api_version,
6438         p_init_msg_list  => p_init_msg_list,
6439         x_return_status  => x_return_status,
6440         x_msg_count      => x_msg_count,
6441         x_msg_data       => x_msg_data,
6442         p_gvev_rec       => lp_cl_gvev_rec);
6443 
6444       IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
6445          RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
6446       ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
6447          RAISE OKC_API.G_EXCEPTION_ERROR;
6448       END IF;
6449 
6450    END IF;
6451 
6452     IF (p_program_no IS NULL) THEN
6453      l_program_id := null;
6454     END IF;
6455 
6456     old_khr_id := NULL;
6457     OPEN c_vp_exsts_csr;
6458     FETCH c_vp_exsts_csr INTO old_khr_id;
6459     CLOSE c_vp_exsts_csr;
6460 
6461     l_auth_org_id := null;
6462     l_inv_org_id := null;
6463 
6464     OPEN c_context_csr;
6465     FETCH c_context_csr INTO l_auth_org_id, l_inv_org_id;
6466     CLOSE c_context_csr;
6467 
6468     IF (p_program_no IS NOT NULL OR old_khr_id IS NOT NULL) THEN
6469 
6470        copy_rules
6471        (
6472         p_api_version       => p_api_version,
6473         p_init_msg_list     => p_init_msg_list,
6474         x_return_status     => x_return_status,
6475         x_msg_count         => x_msg_count,
6476         x_msg_data          => x_msg_data,
6477         p_old_khr_id        => old_khr_id,
6478         p_prog_override_yn  => p_program_yn, -- program flag yn
6479         p_source_id         => l_program_id,
6480         p_dest_id           => p_chr_id,
6481         p_org_id            => l_auth_org_id,
6482         p_organization_id   => l_inv_org_id
6483        );
6484 
6485       IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
6486          RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
6487       ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
6488          RAISE OKC_API.G_EXCEPTION_ERROR;
6489       END IF;
6490 
6491     END IF;
6492 
6493   END IF;
6494 
6495    If(l_rbr_code is not null and l_rbr_code = 'PRODUCT_CHANGE') Then
6496 
6497     -- product validation
6498     IF(p_product_name IS NULL) THEN
6499 	 x_return_status := OKC_API.g_ret_sts_error;
6500          l_ak_prompt := GET_AK_PROMPT('OKL_CONTRACT_DTLS', 'OKL_KDTLS_PRODUCT');
6501          OKC_API.SET_MESSAGE(      p_app_name => g_app_name
6502 				, p_msg_name => 'OKL_REQUIRED_VALUE'
6503 				, p_token1 => 'COL_NAME'
6504 				, p_token1_value => l_ak_prompt
6505 			   );
6506 	 RAISE OKC_API.G_EXCEPTION_ERROR;
6507     END IF;
6508 
6509     l_product_id := null;
6510     OPEN l_product_csr;
6511     FETCH l_product_csr INTO l_product_id;
6512     CLOSE l_product_csr;
6513 
6514     IF l_product_id IS NULL THEN
6515 	 x_return_status := OKC_API.g_ret_sts_error;
6516          l_ak_prompt := GET_AK_PROMPT('OKL_CONTRACT_DTLS', 'OKL_KDTLS_PRODUCT');
6517          OKC_API.SET_MESSAGE(     p_app_name => g_app_name
6518 				, p_msg_name => 'OKL_LLA_INVALID_LOV_VALUE'
6519 				, p_token1 => 'COL_NAME'
6520 				, p_token1_value => l_ak_prompt
6521 			   );
6522 	 RAISE OKC_API.G_EXCEPTION_ERROR;
6523     END IF;
6524 
6525     -- product changes
6526     lp_pdtv_rec.id := l_product_id;
6527     OKL_SETUPPRODUCTS_PUB.Getpdt_parameters
6528           (p_api_version   => p_api_version,
6529            p_init_msg_list => p_init_msg_list,
6530            x_return_status => x_return_status,
6531       	   x_no_data_found => x_no_data_found,
6532            x_msg_count     => x_msg_count,
6533            x_msg_data      => x_msg_data,
6534       	   p_pdtv_rec      => lp_pdtv_rec,
6535       	   p_product_date  => NULL,
6536       	   p_pdt_parameter_rec => lx_pdt_param_rec);
6537 
6538     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
6539          RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
6540     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
6541          RAISE OKC_API.G_EXCEPTION_ERROR;
6542     END IF;
6543 
6544     lp_chrv_rec.id := p_chr_id;
6545     lp_khrv_rec.id := p_chr_id;
6546     lp_khrv_rec.deal_type :=  lx_pdt_param_rec.Deal_Type;
6547     lp_khrv_rec.pdt_id := l_product_id;
6548 
6549     OKL_CONTRACT_PUB.update_contract_header(
6550         p_api_version    	=> p_api_version,
6551         p_init_msg_list  	=> p_init_msg_list,
6552         x_return_status  	=> x_return_status,
6553         x_msg_count      	=> x_msg_count,
6554         x_msg_data       	=> x_msg_data,
6555         p_restricted_update     => 'F',
6556         p_chrv_rec       	=> lp_chrv_rec,
6557         p_khrv_rec       	=> lp_khrv_rec,
6558         x_chrv_rec       	=> lx_chrv_rec,
6559         x_khrv_rec       	=> lx_khrv_rec);
6560 
6561       IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
6562          RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
6563       ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
6564          RAISE OKC_API.G_EXCEPTION_ERROR;
6565       END IF;
6566 
6567    End if; -- end of rbr code block
6568 
6569    OKC_API.END_ACTIVITY(x_msg_count	=> x_msg_count, x_msg_data	=> x_msg_data);
6570 
6571   EXCEPTION
6572     WHEN OKC_API.G_EXCEPTION_ERROR THEN
6573       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
6574 			p_api_name  => l_api_name,
6575 			p_pkg_name  => g_pkg_name,
6576 			p_exc_name  => 'OKC_API.G_RET_STS_ERROR',
6577 			x_msg_count => x_msg_count,
6578 			x_msg_data  => x_msg_data,
6579 			p_api_type  => g_api_type);
6580 
6581     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
6582       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
6583 			p_api_name  => l_api_name,
6584 			p_pkg_name  => g_pkg_name,
6585 			p_exc_name  => 'OKC_API.G_RET_STS_UNEXP_ERROR',
6586 			x_msg_count => x_msg_count,
6587 			x_msg_data  => x_msg_data,
6588 			p_api_type  => g_api_type);
6589 
6590     WHEN OTHERS THEN
6591       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
6592 			p_api_name  => l_api_name,
6593 			p_pkg_name  => g_pkg_name,
6594 			p_exc_name  => 'OTHERS',
6595 			x_msg_count => x_msg_count,
6596 			x_msg_data  => x_msg_data,
6597 			p_api_type  => g_api_type);
6598   END;
6599 
6600 
6601   PROCEDURE update_deal(
6602       p_api_version                  IN NUMBER,
6603       p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
6604       x_return_status                OUT NOCOPY VARCHAR2,
6605       x_msg_count                    OUT NOCOPY NUMBER,
6606       x_msg_data                     OUT NOCOPY VARCHAR2,
6607       p_durv_rec                     IN  deal_rec_type,
6608       x_durv_rec                     OUT NOCOPY deal_rec_type
6609     ) AS
6610 
6611     l_api_name	       VARCHAR2(30) := 'update_deal';
6612     l_api_version      CONSTANT NUMBER	  := 1.0;
6613 
6614     l_template_yn      OKC_K_HEADERS_B.TEMPLATE_YN%TYPE;
6615     l_chr_type         OKC_K_HEADERS_B.CHR_TYPE%TYPE;
6616     l_contract_number  OKC_K_HEADERS_B.CHR_TYPE%TYPE;
6617     l_object_code      VARCHAR2(30) DEFAULT NULL;
6618     l_temp_yn          OKC_K_HEADERS_B.TEMPLATE_YN%TYPE := p_durv_rec.chr_template_yn;
6619 
6620     l_ak_prompt        AK_ATTRIBUTES_VL.attribute_label_long%TYPE;
6621     l_chr_id	       NUMBER;
6622     row_cnt  NUMBER;
6623     l_rgp_id NUMBER := NULL;
6624     l_rul_id NUMBER := NULL;
6625 
6626     CURSOR l_qcl_csr IS
6627     SELECT qcl.id
6628     FROM  OKC_QA_CHECK_LISTS_TL qcl,
6629           OKC_QA_CHECK_LISTS_B qclv
6630     WHERE qclv.Id = qcl.id
6631     AND UPPER(qcl.name) = 'OKL LA QA CHECK LIST'
6632     AND qcl.LANGUAGE = USERENV('LANG');
6633 
6634 	-- START: cklee/mvasudev,6/2/2005, Bug#4392051/okl.h 4437938
6635 	/*
6636     CURSOR l_end_date_csr IS
6637     SELECT ADD_MONTHS(p_durv_rec.chr_start_date,p_durv_rec.khr_term_duration)-1
6638 	FROM dual;
6639 	*/
6640 	-- END: cklee/mvasudev,6/2/2005, Bug#4392051/okl.h 4437938
6641 
6642     CURSOR l_vers_version_csr IS
6643     SELECT vers.major_version||'.'||vers.minor_version
6644     FROM okc_k_vers_numbers_v vers
6645     WHERE vers.chr_id = p_durv_rec.chr_id;
6646 
6647     lp_chrv_rec OKL_OKC_MIGRATION_PVT.chrv_rec_type;
6648     lx_chrv_rec OKL_OKC_MIGRATION_PVT.chrv_rec_type;
6649 
6650     lp_khrv_rec OKL_CONTRACT_PUB.khrv_rec_type;
6651     lx_khrv_rec OKL_CONTRACT_PUB.khrv_rec_type;
6652 
6653     lp_lessee_cplv_rec OKL_OKC_MIGRATION_PVT.cplv_rec_type;
6654     lx_lessee_cplv_rec OKL_OKC_MIGRATION_PVT.cplv_rec_type;
6655 
6656     lp_lessor_cplv_rec OKL_OKC_MIGRATION_PVT.cplv_rec_type;
6657     lx_lessor_cplv_rec OKL_OKC_MIGRATION_PVT.cplv_rec_type;
6658     lp_ctcv_rec OKL_OKC_MIGRATION_PVT.ctcv_rec_type;
6659     lx_ctcv_rec OKL_OKC_MIGRATION_PVT.ctcv_rec_type;
6660 
6661     lp_mla_gvev_rec OKL_OKC_MIGRATION_PVT.gvev_rec_type;
6662     lx_mla_gvev_rec OKL_OKC_MIGRATION_PVT.gvev_rec_type;
6663 
6664     lp_cl_gvev_rec OKL_OKC_MIGRATION_PVT.gvev_rec_type;
6665     lx_cl_gvev_rec OKL_OKC_MIGRATION_PVT.gvev_rec_type;
6666 
6667     lp_larles_rgpv_rec OKL_OKC_MIGRATION_PVT.rgpv_rec_type;
6668     lx_larles_rgpv_rec OKL_OKC_MIGRATION_PVT.rgpv_rec_type;
6669     lp_larles_rulv_rec Okl_Rule_Pub.rulv_rec_type;
6670     lx_larles_rulv_rec Okl_Rule_Pub.rulv_rec_type;
6671 
6672     lp_LAREBL_rgpv_rec OKL_OKC_MIGRATION_PVT.rgpv_rec_type;
6673     lx_LAREBL_rgpv_rec OKL_OKC_MIGRATION_PVT.rgpv_rec_type;
6674     lp_LAREBL_rulv_rec Okl_Rule_Pub.rulv_rec_type;
6675     lx_LAREBL_rulv_rec Okl_Rule_Pub.rulv_rec_type;
6676 
6677     lp_LATOWN_rgpv_rec OKL_OKC_MIGRATION_PVT.rgpv_rec_type;
6678     lx_LATOWN_rgpv_rec OKL_OKC_MIGRATION_PVT.rgpv_rec_type;
6679     lp_LATOWN_rulv_rec Okl_Rule_Pub.rulv_rec_type;
6680     lx_LATOWN_rulv_rec Okl_Rule_Pub.rulv_rec_type;
6681 
6682     lp_LANNTF_rgpv_rec OKL_OKC_MIGRATION_PVT.rgpv_rec_type;
6683     lx_LANNTF_rgpv_rec OKL_OKC_MIGRATION_PVT.rgpv_rec_type;
6684     lp_LANNTF_rulv_rec Okl_Rule_Pub.rulv_rec_type;
6685     lx_LANNTF_rulv_rec Okl_Rule_Pub.rulv_rec_type;
6686 
6687     lp_LACPLN_rgpv_rec OKL_OKC_MIGRATION_PVT.rgpv_rec_type;
6688     lx_LACPLN_rgpv_rec OKL_OKC_MIGRATION_PVT.rgpv_rec_type;
6689     lp_LACPLN_rulv_rec Okl_Rule_Pub.rulv_rec_type;
6690     lx_LACPLN_rulv_rec Okl_Rule_Pub.rulv_rec_type;
6691 
6692     lp_LAPACT_rgpv_rec OKL_OKC_MIGRATION_PVT.rgpv_rec_type;
6693     lx_LAPACT_rgpv_rec OKL_OKC_MIGRATION_PVT.rgpv_rec_type;
6694     lp_LAPACT_rulv_rec Okl_Rule_Pub.rulv_rec_type;
6695     lx_LAPACT_rulv_rec Okl_Rule_Pub.rulv_rec_type;
6696 
6697     lp_pdtv_rec OKL_SETUPPRODUCTS_PUB.pdtv_rec_type;
6698     lp_pdt_param_rec OKL_SETUPPRODUCTS_PUB.pdt_parameters_rec_type;
6699     lx_pdtv_rec OKL_SETUPPRODUCTS_PUB.pdtv_rec_type;
6700     lx_pdt_param_rec OKL_SETUPPRODUCTS_PUB.pdt_parameters_rec_type;
6701 
6702     lp_clev_rec    okl_okc_migration_pvt.clev_rec_type;
6703     lp_klev_rec    okl_kle_pvt.klev_rec_type;
6704     lx_clev_rec    okl_okc_migration_pvt.clev_rec_type;
6705     lx_klev_rec    okl_kle_pvt.klev_rec_type;
6706 
6707     --Bug# 4558486
6708     lp_kplv_rec      okl_k_party_roles_pvt.kplv_rec_type;
6709     lx_kplv_rec      okl_k_party_roles_pvt.kplv_rec_type;
6710 
6711     X_NO_DATA_FOUND BOOLEAN := TRUE;
6712 
6713     old_khr_id  NUMBER;
6714 
6715     CURSOR c_vp_exsts_csr IS
6716       SELECT khr_id
6717       FROM okl_k_headers_full_v
6718       WHERE id = p_durv_rec.chr_id;
6719 
6720     l_fin_ast VARCHAR2(1) := 'N';
6721     l_lrls_yn VARCHAR2(1) := 'X';
6722 
6723     CURSOR chk_fin_ast_csr IS
6724     SELECT 'Y'
6725     FROM okc_k_headers_b CHR
6726     WHERE EXISTS (SELECT 1
6727               FROM okc_line_styles_b lse,
6728 	               okc_k_lines_b cle,
6729 	               okl_k_lines kle
6730               WHERE cle.dnz_chr_id = CHR.id
6731               AND cle.lse_id = lse.id
6732               AND cle.id = kle.id
6733               -- START: cklee/mvasudev,10/14/2005,bug#4300891 - (okl.g Bug#4307723)
6734               AND cle.sts_code <> 'ABANDONED'
6735               -- END: cklee/mvasudev,10/14/2005,bug#4300891 - (okl.g Bug#4307723)
6736               AND lse.lty_code = 'FREE_FORM1')
6737     AND CHR.id =  p_durv_rec.chr_id;
6738 
6739     CURSOR get_larles_csr IS
6740     SELECT rul.rule_information1
6741     FROM okc_rule_groups_b rgp,
6742          okc_rules_b rul
6743     WHERE rgp.id = rul.rgp_id
6744     AND rgp.rgd_code = 'LARLES'
6745     AND rul.rule_information_category = 'LARLES'
6746     AND rgp.dnz_chr_id = p_durv_rec.chr_id
6747     AND rgp.chr_id = p_durv_rec.chr_id
6748     AND rul.dnz_chr_id = p_durv_rec.chr_id;
6749 
6750     l_fin_ast_id NUMBER  := NULL;
6751     l_lacpln_yn VARCHAR2(1) := 'X';
6752 
6753     CURSOR get_fin_ast_csr IS
6754     SELECT cle.id
6755     FROM okc_line_styles_b lse,
6756     okc_k_lines_b cle,
6757     okl_k_lines kle
6758     WHERE cle.dnz_chr_id = p_durv_rec.chr_id
6759     AND cle.lse_id = lse.id
6760     AND cle.id = kle.id
6761     AND lse.lty_code = 'FREE_FORM1';
6762 
6763     CURSOR get_lacpln_csr IS
6764     SELECT rul.rule_information1
6765     FROM okc_rules_b rul,
6766          okc_rule_groups_b rgp
6767     WHERE rgp.id = rul.rgp_id
6768     AND rul.rule_information_category = 'LACPLN'
6769     AND rgp.RGD_CODE = 'LACPLN'
6770     AND rul.dnz_chr_id = rgp.dnz_chr_id
6771     AND rgp.dnz_chr_id = p_durv_rec.chr_id
6772     AND rgp.chr_id = p_durv_rec.chr_id;
6773 
6774     CURSOR is_re_lease_csr IS
6775     select chr.orig_system_source_code
6776     from okc_k_headers_b chr
6777     where chr.id = p_durv_rec.chr_id;
6778 
6779     l_orig_sys_src_code okc_k_headers_b.orig_system_source_code%type := null;
6780 
6781     --Bug# 4619575
6782     CURSOR l_ptmpl_csr (p_chr_id IN NUMBER) IS
6783     SELECT chrb.template_yn,
6784            khr.template_type_code
6785     FROM   okc_k_headers_b chrb,
6786            okl_k_headers khr
6787     WHERE   chrb.id = khr.id
6788     AND chrb.id = p_chr_id;
6789 
6790     CURSOR l_pqcl_csr IS
6791     SELECT qcl.id
6792     FROM  OKC_QA_CHECK_LISTS_TL qcl,
6793           OKC_QA_CHECK_LISTS_B qclv
6794     WHERE qclv.Id = qcl.id
6795     AND UPPER(qcl.name) = 'OKL KT for PA QA Checklist'
6796     AND qcl.LANGUAGE = 'US';
6797 
6798     CURSOR l_laqcl_csr IS
6799     SELECT qcl.id
6800     FROM  OKC_QA_CHECK_LISTS_TL qcl,
6801           OKC_QA_CHECK_LISTS_B qclv
6802     WHERE qclv.Id = qcl.id
6803     AND UPPER(qcl.name) = 'OKL KT FOR LA QA CHECKLIST'
6804     AND qcl.LANGUAGE = 'US';
6805 
6806     CURSOR c_lessor(p_chr_id NUMBER) IS
6807     SELECT id
6808     FROM okc_k_party_roles_b
6809     WHERE dnz_chr_id = p_chr_id
6810     AND rle_code ='LESSOR';
6811 
6812     l_template_type_code okl_k_headers.template_type_code%type;
6813     l_ptemplate_yn okc_k_headers_b.template_yn%type;
6814 
6815     CURSOR c_orig_pdt_csr(p_chr_id IN NUMBER) IS
6816     SELECT pdt_id
6817     FROM okl_k_headers
6818     WHERE id = p_chr_id;
6819 
6820     l_orig_pdt_rec c_orig_pdt_csr%ROWTYPE;
6821 
6822     CURSOR c_rates_csr(p_chr_id IN NUMBER,
6823                        p_parameter_type_code IN VARCHAR2) IS
6824     SELECT rate.effective_from_date
6825     FROM   okl_k_rate_params rate
6826     WHERE  rate.khr_id = p_chr_id
6827     AND    rate.parameter_type_code = p_parameter_type_code;
6828 
6829     l_count        NUMBER;
6830     l_krpdel_tbl   OKL_K_RATE_PARAMS_PVT.krpdel_tbl_type;
6831 
6832     -- ER# 9115610 - Start
6833 	CURSOR c_chk_pdt_effective(cp_pdt_id OKL_PRODUCTS.ID%TYPE, cp_effective_date okl_k_headers_full_v.start_date%type) IS
6834 	SELECT 'Y' FROM
6835 	   OKL_PRODUCTS
6836 	  WHERE ID = cp_pdt_id
6837 	    AND cp_effective_date BETWEEN FROM_DATE AND NVL(TO_DATE,cp_effective_date);
6838 
6839 	l_chk_pdt VARCHAR(1) DEFAULT NULL;
6840     -- ER# 9115610 - End
6841 
6842     /*
6843     -- mvasudev, 08/18/2004
6844     -- Added PROCEDURE to enable Business Event
6845     */
6846     PROCEDURE raise_business_event(
6847         p_chr_id IN NUMBER
6848        ,x_return_status OUT NOCOPY VARCHAR2
6849        )
6850     IS
6851       l_check VARCHAR2(1);
6852          l_parameter_list           wf_parameter_list_t;
6853     BEGIN
6854 
6855       x_return_status := Okc_Api.G_RET_STS_SUCCESS;
6856       -- Raise the event if it is a new Contract
6857 	     l_check := Okl_Lla_Util_Pvt.check_new_contract(p_chr_id);
6858       IF (l_check= OKL_API.G_TRUE) THEN
6859   		    wf_event.AddParameterToList(G_WF_ITM_CONTRACT_ID,p_chr_id,l_parameter_list);
6860          OKL_WF_PVT.raise_event (p_api_version    => p_api_version,
6861                                  p_init_msg_list  => p_init_msg_list,
6862                                  x_return_status  => x_return_status,
6863                                  x_msg_count      => x_msg_count,
6864                                  x_msg_data       => x_msg_data,
6865                                  p_event_name     => G_WF_EVT_KHR_UPDATED,
6866                                  p_parameters     => l_parameter_list);
6867 
6868 	     END IF;
6869 
6870     EXCEPTION
6871     WHEN OTHERS THEN
6872       x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
6873       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6874     END raise_business_event;
6875 
6876     /*
6877     -- mvasudev, 08/17/2004
6878     -- END, PROCEDURE to enable Business Event
6879     */
6880 
6881 
6882   BEGIN
6883 
6884     IF okl_context.get_okc_org_id  IS NULL THEN
6885 	     l_chr_id := p_durv_rec.chr_id;
6886 	     okl_context.set_okc_org_context(p_chr_id => l_chr_id );
6887     END IF;
6888 
6889     x_return_status := OKC_API.START_ACTIVITY(p_api_name      => l_api_name,
6890                                               p_pkg_name      => g_pkg_name,
6891                                               p_init_msg_list => p_init_msg_list,
6892                                               l_api_version   => l_api_version,
6893                                               p_api_version   => p_api_version,
6894                                               p_api_type      => g_api_type,
6895                                               x_return_status => x_return_status);
6896 
6897     -- check if activity started successfully
6898     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
6899       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
6900     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
6901       RAISE OKC_API.G_EXCEPTION_ERROR;
6902     END IF;
6903 
6904     -- sjalasut, initialize chr_id so that the Entity Object in the java layer can populate
6905     -- the if back in the VO
6906     x_durv_rec.chr_id := p_durv_rec.chr_id;
6907 
6908     -- ER# 9115610 - Start
6909 	OPEN c_chk_pdt_effective(p_durv_rec.khr_pdt_id, p_durv_rec.chr_start_date);
6910 	  FETCH c_chk_pdt_effective INTO l_chk_pdt;
6911 	CLOSE c_chk_pdt_effective;
6912 
6913 	IF l_chk_pdt IS NULL THEN
6914        OKL_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'OKL_INACTIVE_PDT');
6915 	   RAISE OKC_API.G_EXCEPTION_ERROR;
6916 	END IF;
6917     -- ER# 9115610 - End
6918 
6919     l_orig_sys_src_code := null;
6920     Open is_re_lease_csr;
6921     Fetch is_re_lease_csr into l_orig_sys_src_code;
6922     Close is_re_lease_csr;
6923 
6924     If(l_orig_sys_src_code is not null and l_orig_sys_src_code = 'OKL_RELEASE') Then
6925 
6926       lp_chrv_rec.contract_number :=  p_durv_rec.chr_contract_number;
6927       lp_chrv_rec.description :=  p_durv_rec.chr_description;
6928       update_release_contract(p_api_version    	=> p_api_version,
6929         p_init_msg_list  	=> p_init_msg_list,
6930         x_return_status  	=> x_return_status,
6931         x_msg_count      	=> x_msg_count,
6932         x_msg_data       	=> x_msg_data,
6933         p_chr_id	        => p_durv_rec.chr_id,
6934         p_contract_number       => p_durv_rec.chr_contract_number,
6935         p_chr_description       => p_durv_rec.chr_description,
6936         p_cust_id	        => p_durv_rec.cust_id,
6937         p_customer_name         => p_durv_rec.cust_name,
6938         p_customer_id1          => p_durv_rec.cust_object1_id1,
6939         p_customer_acc_name     => p_durv_rec.customer_account,
6940         p_customer_acct_id1     => p_durv_rec.chr_cust_acct_id,
6941         p_product_name          => p_durv_rec.product_name,
6942         p_mla_id                => p_durv_rec.mla_gvr_chr_id_referred,
6943         p_mla_no                => p_durv_rec.mla_contract_number,
6944         p_gvr_id_mla            => p_durv_rec.mla_gvr_id,
6945         p_cl_id                 => p_durv_rec.cl_gvr_chr_id_referred,
6946         p_cl_no                 => p_durv_rec.cl_contract_number,
6947         p_gvr_id_cl             => p_durv_rec.cl_gvr_id,
6948         p_deal_type             => p_durv_rec.khr_deal_type,
6949         p_program_no            => p_durv_rec.program_contract_number,
6950         p_program_id            => p_durv_rec.khr_khr_id,
6951         p_program_yn            => p_durv_rec.khr_generate_accrual_yn,
6952         p_bill_to_site_use_id   => p_durv_rec.labill_labacc_billto, -- Bug 6493413
6953         p_durv_rec              => p_durv_rec  --Added by bkatraga for bug 9392566
6954         );
6955       IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
6956         RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
6957       ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
6958         RAISE OKC_API.G_EXCEPTION_ERROR;
6959       END IF;
6960     Else
6961 
6962       -- not a release contract, continue with the process
6963 
6964       x_durv_rec.cust_object1_id1         :=  p_durv_rec.cust_object1_id1;
6965       x_durv_rec.cust_object1_id2         :=  p_durv_rec.cust_object1_id2 ;
6966       x_durv_rec.cust_jtot_object1_code   :=  p_durv_rec.cust_jtot_object1_code ;
6967       x_durv_rec.chr_cust_acct_id         :=  p_durv_rec.chr_cust_acct_id;
6968       x_durv_rec.contact_object1_id1      :=  p_durv_rec.contact_object1_id1;
6969       x_durv_rec.contact_object1_id2      :=  p_durv_rec.contact_object1_id2;
6970       x_durv_rec.contact_jtot_object1_code:=  p_durv_rec.contact_jtot_object1_code;
6971       x_durv_rec.mla_gvr_chr_id_referred  :=  p_durv_rec.mla_gvr_chr_id_referred;
6972       x_durv_rec.khr_khr_id               :=  p_durv_rec.khr_khr_id;
6973       x_durv_rec.chr_currency_code        :=  p_durv_rec.chr_currency_code;
6974       x_durv_rec.cl_gvr_chr_id_referred   :=  p_durv_rec.cl_gvr_chr_id_referred;
6975       x_durv_rec.khr_pdt_id               :=  p_durv_rec.khr_pdt_id;
6976       x_durv_rec.product_description      :=  p_durv_rec.product_description;
6977       x_durv_rec.chr_TEMPLATE_YN      :=  p_durv_rec.chr_template_yn;
6978 
6979       okl_la_validation_util_pvt.validate_deal(
6980         p_api_version    	=> p_api_version,
6981         p_init_msg_list  	=> p_init_msg_list,
6982         x_return_status  	=> x_return_status,
6983         x_msg_count      	=> x_msg_count,
6984         x_msg_data       	=> x_msg_data,
6985         p_chr_id	        => p_durv_rec.chr_id,
6986         p_scs_code		=> 'LEASE',
6987         p_contract_number	=> p_durv_rec.chr_contract_number ,
6988         p_customer_id1          => x_durv_rec.cust_object1_id1,
6989         p_customer_id2          => x_durv_rec.cust_object1_id2,
6990         p_customer_code         => x_durv_rec.cust_jtot_object1_code,
6991         p_customer_name         => p_durv_rec.cust_name,
6992         p_chr_cust_acct_id      => x_durv_rec.chr_cust_acct_id,
6993         p_customer_acc_name     => p_durv_rec.customer_account,
6994         p_product_name          => p_durv_rec.product_name,
6995         p_product_id            => x_durv_rec.khr_pdt_id,
6996         p_product_desc          => x_durv_rec.product_description,
6997         p_contact_id1           => x_durv_rec.contact_object1_id1,
6998         p_contact_id2           => x_durv_rec.contact_object1_id2,
6999         p_contact_code          => x_durv_rec.contact_jtot_object1_code,
7000         p_contact_name          => p_durv_rec.contact_name,
7001         p_mla_no                => p_durv_rec.mla_contract_number,
7002         p_mla_id                => x_durv_rec.mla_gvr_chr_id_referred,
7003         p_program_no            => p_durv_rec.program_contract_number,
7004         p_program_id            => x_durv_rec.khr_khr_id,
7005         p_credit_line_no        => p_durv_rec.cl_contract_number,
7006         p_credit_line_id        => x_durv_rec.cl_gvr_chr_id_referred,
7007         p_currency_name         => p_durv_rec.currency_name,
7008         p_currency_code         => x_durv_rec.chr_currency_code,
7009         p_start_date            => p_durv_rec.chr_start_date,
7010         p_deal_type             => p_durv_rec.khr_deal_type
7011         );
7012 
7013       IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
7014          RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
7015       ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
7016          RAISE OKC_API.G_EXCEPTION_ERROR;
7017       END IF;
7018 
7019       -- product changes
7020       lp_pdtv_rec.id := x_durv_rec.khr_pdt_id;
7021       OKL_SETUPPRODUCTS_PUB.Getpdt_parameters(
7022            p_api_version   => p_api_version,
7023            p_init_msg_list => p_init_msg_list,
7024            x_return_status => x_return_status,
7025       	    x_no_data_found => x_no_data_found,
7026            x_msg_count     => x_msg_count,
7027            x_msg_data      => x_msg_data,
7028       	    p_pdtv_rec      => lp_pdtv_rec,
7029       	    p_product_date  => NULL,
7030       	    p_pdt_parameter_rec => lx_pdt_param_rec);
7031 
7032 
7033       IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
7034         RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
7035       ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
7036         RAISE OKC_API.G_EXCEPTION_ERROR;
7037       END IF;
7038 
7039       x_durv_rec.khr_deal_type := lx_pdt_param_rec.Deal_Type;
7040       x_durv_rec.r_latown_rule_information1 := lx_pdt_param_rec.tax_owner;
7041 
7042       -- validation for creditline contract
7043       okl_la_validation_util_pvt.validate_creditline(
7044         p_api_version    => p_api_version,
7045         p_init_msg_list  => p_init_msg_list,
7046         x_return_status  => x_return_status,
7047         x_msg_count      => x_msg_count,
7048         x_msg_data       => x_msg_data,
7049         p_chr_id         => p_durv_rec.chr_id,
7050         p_deal_type      => x_durv_rec.khr_deal_type,
7051         p_mla_no         => p_durv_rec.mla_contract_number,
7052         p_cl_no          => p_durv_rec.cl_contract_number
7053         );
7054 
7055      IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
7056        RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
7057      ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
7058        RAISE OKC_API.G_EXCEPTION_ERROR;
7059      END IF;
7060 
7061      -- update contract header
7062      lp_chrv_rec.id := p_durv_rec.chr_id;
7063      lp_khrv_rec.id := p_durv_rec.chr_id;
7064      lp_chrv_rec.contract_number :=  p_durv_rec.chr_contract_number;
7065      lp_chrv_rec.description :=  p_durv_rec.chr_description;
7066      lp_chrv_rec.short_description :=  p_durv_rec.chr_description;
7067      lp_chrv_rec.sts_code :=  p_durv_rec.chr_sts_code;
7068      lp_chrv_rec.start_date :=  p_durv_rec.chr_start_date;
7069      lp_chrv_rec.end_date :=  p_durv_rec.chr_end_date;
7070      lp_khrv_rec.term_duration :=  p_durv_rec.khr_term_duration;
7071      lp_chrv_rec.CUST_PO_NUMBER :=  p_durv_rec.chr_CUST_PO_NUMBER;
7072      lp_chrv_rec.INV_ORGANIZATION_ID :=  p_durv_rec.chr_INV_ORGANIZATION_ID;
7073      lp_chrv_rec.AUTHORING_ORG_ID :=  p_durv_rec.chr_AUTHORING_ORG_ID;
7074      lp_khrv_rec.GENERATE_ACCRUAL_YN :=  p_durv_rec.khr_GENERATE_ACCRUAL_YN;
7075      lp_khrv_rec.SYNDICATABLE_YN :=  p_durv_rec.khr_SYNDICATABLE_YN;
7076      lp_khrv_rec.PREFUNDING_ELIGIBLE_YN :=  p_durv_rec.khr_PREFUNDING_ELIGIBLE_YN;
7077      lp_khrv_rec.REVOLVING_CREDIT_YN :=  p_durv_rec.khr_REVOLVING_CREDIT_YN;
7078      lp_khrv_rec.CONVERTED_ACCOUNT_YN :=  p_durv_rec.khr_CONVERTED_ACCOUNT_YN;
7079      lp_khrv_rec.CREDIT_ACT_YN :=  p_durv_rec.khr_CREDIT_ACT_YN;
7080      lp_chrv_rec.TEMPLATE_YN :=  p_durv_rec.chr_TEMPLATE_YN;
7081      lp_chrv_rec.DATE_SIGNED :=  p_durv_rec.chr_DATE_SIGNED;
7082      lp_khrv_rec.DATE_DEAL_TRANSFERRED :=  p_durv_rec.khr_DATE_DEAL_TRANSFERRED;
7083      lp_khrv_rec.ACCEPTED_DATE :=  p_durv_rec.khr_ACCEPTED_DATE;
7084      lp_khrv_rec.EXPECTED_DELIVERY_DATE :=  p_durv_rec.khr_EXPECTED_DELIVERY_DATE;
7085      lp_khrv_rec.AMD_CODE :=  p_durv_rec.khr_AMD_CODE;
7086      -- lp_khrv_rec.DEAL_TYPE :=  p_durv_rec.khr_DEAL_TYPE;
7087      lp_khrv_rec.DEAL_TYPE :=  lx_pdt_param_rec.Deal_Type;
7088      lp_chrv_rec.currency_code :=  x_durv_rec.chr_currency_code;
7089      lp_khrv_rec.currency_conversion_type :=  p_durv_rec.khr_currency_conv_type;
7090      lp_khrv_rec.currency_conversion_rate :=  p_durv_rec.khr_currency_conv_rate;
7091      lp_khrv_rec.currency_conversion_date :=  p_durv_rec.khr_currency_conv_date;
7092      lp_khrv_rec.assignable_yn :=  p_durv_rec.khr_assignable_yn;
7093      lp_chrv_rec.cust_acct_id := x_durv_rec.chr_cust_acct_id;
7094      -- Added by dpsingh for LE Uptake
7095      lp_khrv_rec.legal_entity_id :=p_durv_rec.legal_entity_id;
7096      IF (p_durv_rec.khr_assignable_yn <> 'Y') THEN
7097       lp_khrv_rec.assignable_yn := 'N';
7098      END IF;
7099 
7100      -- Added for Bill-To site
7101      lp_chrv_rec.bill_to_site_use_id := p_durv_rec.labill_labacc_billto;
7102 
7103      -- sjalasut, added code below to populate the attribute columns for lp_khrv_rec
7104      -- changes made as part of Authoring OA Migration. START changes
7105      lp_khrv_rec.attribute_category := p_durv_rec.attribute_category;
7106      lp_khrv_rec.attribute1 := p_durv_rec.attribute1;
7107      lp_khrv_rec.attribute2 := p_durv_rec.attribute2;
7108      lp_khrv_rec.attribute3 := p_durv_rec.attribute3;
7109      lp_khrv_rec.attribute4 := p_durv_rec.attribute4;
7110      lp_khrv_rec.attribute5 := p_durv_rec.attribute5;
7111      lp_khrv_rec.attribute6 := p_durv_rec.attribute6;
7112      lp_khrv_rec.attribute7 := p_durv_rec.attribute7;
7113      lp_khrv_rec.attribute8 := p_durv_rec.attribute8;
7114      lp_khrv_rec.attribute9 := p_durv_rec.attribute9;
7115      lp_khrv_rec.attribute10 := p_durv_rec.attribute10;
7116      lp_khrv_rec.attribute11 := p_durv_rec.attribute11;
7117      lp_khrv_rec.attribute12 := p_durv_rec.attribute12;
7118      lp_khrv_rec.attribute13 := p_durv_rec.attribute13;
7119      lp_khrv_rec.attribute14 := p_durv_rec.attribute14;
7120      lp_khrv_rec.attribute15 := p_durv_rec.attribute15;
7121      -- sjalasut, added code above to populate the attribute columns for lp_khrv_rec
7122      -- changes made as part of Authoring OA Migration. END  changes
7123 
7124      l_template_yn := 'N';
7125      l_template_type_code := 'XXX';
7126      OPEN l_ptmpl_csr(p_chr_id => l_chr_id);
7127      FETCH l_ptmpl_csr INTO l_template_yn, l_template_type_code;
7128      CLOSE l_ptmpl_csr;
7129 
7130      --Bug# 4619575
7131      IF(l_ptemplate_yn = 'Y' AND l_template_type_code = 'PROGRAM') THEN
7132       OPEN  l_pqcl_csr;
7133       FETCH l_pqcl_csr INTO lp_chrv_rec.qcl_id;
7134       CLOSE l_pqcl_csr;
7135      --Bug# 4619575
7136      ELSIF(l_ptemplate_yn = 'Y' AND l_template_type_code = 'LEASEAPP') THEN
7137       OPEN  l_laqcl_csr;
7138       FETCH l_laqcl_csr INTO lp_chrv_rec.qcl_id;
7139       CLOSE l_laqcl_csr;
7140      ELSE
7141       OPEN  l_qcl_csr;
7142       FETCH l_qcl_csr INTO lp_chrv_rec.qcl_id;
7143       CLOSE l_qcl_csr;
7144      END IF;
7145 
7146     -- START: cklee/mvasudev,6/2/2005, Bug#4392051/okl.h 4437938
7147    /*
7148     OPEN  l_end_date_csr;
7149     FETCH l_end_date_csr INTO lp_chrv_rec.end_date;
7150     CLOSE l_end_date_csr;
7151    */
7152 	   lp_chrv_rec.end_date := OKL_LLA_UTIL_PVT.calculate_end_date(p_durv_rec.chr_start_date,p_durv_rec.khr_term_duration);
7153     -- END: cklee/mvasudev,6/2/2005, Bug#4392051/okl.h 4437938
7154 
7155     x_durv_rec.chr_end_date := lp_chrv_rec.end_date;
7156 
7157    /*
7158     If (lp_chrv_rec.TEMPLATE_YN is not null and lp_chrv_rec.TEMPLATE_YN = 'Y') then
7159       lp_chrv_rec.end_date := null;
7160       x_durv_rec.chr_end_date := null;
7161     End If;
7162    */
7163 
7164     IF (p_durv_rec.product_name IS NULL) THEN
7165      lp_khrv_rec.pdt_id :=  NULL;
7166      x_durv_rec.khr_pdt_id := NULL;
7167     ELSE
7168      lp_khrv_rec.pdt_id :=  x_durv_rec.khr_pdt_id;
7169     END IF;
7170 
7171     IF (p_durv_rec.program_contract_number IS NULL) THEN
7172      lp_khrv_rec.khr_id :=  NULL;
7173      x_durv_rec.khr_khr_id := NULL;
7174     END IF;
7175 
7176      old_khr_id := NULL;
7177      OPEN c_vp_exsts_csr;
7178      FETCH c_vp_exsts_csr INTO old_khr_id;
7179      CLOSE c_vp_exsts_csr;
7180 
7181      lp_khrv_rec.khr_id :=  x_durv_rec.khr_khr_id;
7182 
7183    IF( p_durv_rec.cust_id IS NOT NULL AND p_durv_rec.cust_name IS NULL AND l_temp_yn IS NOT NULL AND l_temp_yn = 'Y' ) THEN
7184     lp_chrv_rec.cust_acct_id := NULL;
7185    END IF;
7186 
7187    --Bug# 7440232 start
7188    OPEN c_orig_pdt_csr(p_chr_id => lp_chrv_rec.id);
7189    FETCH c_orig_pdt_csr INTO l_orig_pdt_rec;
7190    CLOSE c_orig_pdt_csr;
7191 
7192    IF (NVL(l_orig_pdt_rec.pdt_id, OKL_API.G_MISS_NUM) <>
7193        NVL(lp_khrv_rec.pdt_id, OKL_API.G_MISS_NUM)) THEN
7194 
7195      l_count := 0;
7196      FOR l_rates_rec IN c_rates_csr(lp_chrv_rec.id, 'ACTUAL') LOOP
7197         l_count := l_count + 1;
7198         l_krpdel_tbl(l_count).khr_id := lp_chrv_rec.id;
7199         l_krpdel_tbl(l_count).effective_from_date := l_rates_rec.effective_from_date;
7200         l_krpdel_tbl(l_count).rate_type := 'INTEREST_RATE_PARAMS';
7201      END LOOP;
7202 
7203      IF l_count > 0 THEN
7204         OKL_K_RATE_PARAMS_PVT.delete_k_rate_params(
7205           p_api_version    => p_api_version,
7206           p_init_msg_list  => p_init_msg_list,
7207           x_return_status  => x_return_status,
7208           x_msg_count  	   => x_msg_count,
7209           x_msg_data       => x_msg_data,
7210           p_krpdel_tbl     => l_krpdel_tbl);
7211 
7212         IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7213            RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7214         ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
7215            RAISE OKL_API.G_EXCEPTION_ERROR;
7216         END IF;
7217 
7218      END IF;
7219    END IF;
7220    --Bug# 7440232  end
7221 
7222     OKL_CONTRACT_PUB.update_contract_header(
7223         p_api_version    	=> p_api_version,
7224         p_init_msg_list  	=> p_init_msg_list,
7225         x_return_status  	=> x_return_status,
7226         x_msg_count      	=> x_msg_count,
7227         x_msg_data       	=> x_msg_data,
7228         p_restricted_update     => 'F',
7229         p_chrv_rec       	=> lp_chrv_rec,
7230         p_khrv_rec       	=> lp_khrv_rec,
7231         x_chrv_rec       	=> lx_chrv_rec,
7232         x_khrv_rec       	=> lx_khrv_rec);
7233 
7234       IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
7235          RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
7236       ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
7237          RAISE OKC_API.G_EXCEPTION_ERROR;
7238       END IF;
7239    /*
7240     open  l_vers_version_csr;
7241     fetch l_vers_version_csr into x_durv_rec.vers_version;
7242     close l_vers_version_csr;
7243    */
7244 -- lessee
7245 
7246     IF (p_durv_rec.cust_id IS NULL AND p_durv_rec.cust_name IS NOT NULL ) THEN
7247 
7248     lp_lessee_cplv_rec.id := NULL;
7249     lp_lessee_cplv_rec.dnz_chr_id := p_durv_rec.chr_id;
7250     lp_lessee_cplv_rec.chr_id := p_durv_rec.chr_id;
7251     lp_lessee_cplv_rec.object1_id1 := x_durv_rec.cust_object1_id1;
7252     lp_lessee_cplv_rec.object1_id2 := x_durv_rec.cust_object1_id2;
7253     lp_lessee_cplv_rec.rle_code := 'LESSEE';
7254     lp_lessee_cplv_rec.jtot_object1_code := p_durv_rec.cust_jtot_object1_code;
7255 
7256 
7257     --Bug# 4558486: Changed call to okl_k_party_roles_pvt api
7258     --              to create records in tables
7259     --              okc_k_party_roles_b and okl_k_party_roles
7260     /*
7261     OKL_OKC_MIGRATION_PVT.create_k_party_role(
7262         p_api_version    => p_api_version,
7263         p_init_msg_list  => p_init_msg_list,
7264         x_return_status  => x_return_status,
7265         x_msg_count      => x_msg_count,
7266         x_msg_data       => x_msg_data,
7267         p_cplv_rec       => lp_lessee_cplv_rec,
7268         x_cplv_rec       => lx_lessee_cplv_rec);
7269     */
7270 
7271     okl_k_party_roles_pvt.create_k_party_role(
7272       p_api_version      => p_api_version,
7273       p_init_msg_list    => p_init_msg_list,
7274       x_return_status    => x_return_status,
7275       x_msg_count        => x_msg_count,
7276       x_msg_data         => x_msg_data,
7277       p_cplv_rec         => lp_lessee_cplv_rec,
7278       x_cplv_rec         => lx_lessee_cplv_rec,
7279       p_kplv_rec         => lp_kplv_rec,
7280       x_kplv_rec         => lx_kplv_rec);
7281 
7282       IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
7283          RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
7284       ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
7285          RAISE OKC_API.G_EXCEPTION_ERROR;
7286       END IF;
7287 
7288       x_durv_rec.cust_id := lx_lessee_cplv_rec.id;
7289 
7290    ELSIF (p_durv_rec.cust_id IS NOT NULL AND p_durv_rec.cust_name IS NOT NULL ) THEN
7291 
7292     lp_lessee_cplv_rec.id := p_durv_rec.cust_id;
7293     lp_lessee_cplv_rec.dnz_chr_id := p_durv_rec.chr_id;
7294     lp_lessee_cplv_rec.chr_id := p_durv_rec.chr_id;
7295     lp_lessee_cplv_rec.object1_id1 := x_durv_rec.cust_object1_id1;
7296     lp_lessee_cplv_rec.object1_id2 := x_durv_rec.cust_object1_id2;
7297     lp_lessee_cplv_rec.rle_code := 'LESSEE';
7298     lp_lessee_cplv_rec.jtot_object1_code := p_durv_rec.cust_jtot_object1_code;
7299 
7300     --Bug# 4558486: Changed call to okl_k_party_roles_pvt api
7301     --              to update records in tables
7302     --              okc_k_party_roles_b and okl_k_party_roles
7303     /*
7304     OKL_OKC_MIGRATION_PVT.update_k_party_role(
7305         p_api_version    => p_api_version,
7306         p_init_msg_list  => p_init_msg_list,
7307         x_return_status  => x_return_status,
7308         x_msg_count      => x_msg_count,
7309         x_msg_data       => x_msg_data,
7310         p_cplv_rec       => lp_lessee_cplv_rec,
7311         x_cplv_rec       => lx_lessee_cplv_rec);
7312     */
7313 
7314     lp_kplv_rec.id := lp_lessee_cplv_rec.id;
7315     okl_k_party_roles_pvt.update_k_party_role(
7316       p_api_version      => p_api_version,
7317       p_init_msg_list    => p_init_msg_list,
7318       x_return_status    => x_return_status,
7319       x_msg_count        => x_msg_count,
7320       x_msg_data         => x_msg_data,
7321       p_cplv_rec         => lp_lessee_cplv_rec,
7322       x_cplv_rec         => lx_lessee_cplv_rec,
7323       p_kplv_rec         => lp_kplv_rec,
7324       x_kplv_rec         => lx_kplv_rec);
7325 
7326       IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
7327          RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
7328       ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
7329          RAISE OKC_API.G_EXCEPTION_ERROR;
7330       END IF;
7331 
7332    ELSIF( p_durv_rec.cust_id IS NOT NULL AND p_durv_rec.cust_name IS NULL ) THEN
7333 
7334     IF( l_temp_yn = 'Y' ) THEN
7335 
7336 	lp_lessee_cplv_rec.id := p_durv_rec.cust_id;
7337         lp_lessee_cplv_rec.dnz_chr_id := p_durv_rec.chr_id;
7338         lp_lessee_cplv_rec.chr_id := p_durv_rec.chr_id;
7339 
7340         --Bug# 4558486: Changed call to okl_k_party_roles_pvt api
7341         --              to delete records in tables
7342         --              okc_k_party_roles_b and okl_k_party_roles
7343         /*
7344         OKL_OKC_MIGRATION_PVT.delete_k_party_role(
7345            p_api_version    => p_api_version,
7346            p_init_msg_list  => p_init_msg_list,
7347            x_return_status  => x_return_status,
7348            x_msg_count      => x_msg_count,
7349            x_msg_data       => x_msg_data,
7350            p_cplv_rec       => lp_lessee_cplv_rec);
7351         */
7352 
7353         lp_kplv_rec.id := lp_lessee_cplv_rec.id;
7354         OKL_K_PARTY_ROLES_PVT.delete_k_party_role(
7355           p_api_version   => p_api_version,
7356           p_init_msg_list => p_init_msg_list,
7357           x_return_status => x_return_status,
7358           x_msg_count     => x_msg_count,
7359           x_msg_data      => x_msg_data,
7360           p_cplv_rec      => lp_lessee_cplv_rec,
7361           p_kplv_rec      => lp_kplv_rec);
7362 
7363         IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
7364            RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
7365         ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
7366            RAISE OKC_API.G_EXCEPTION_ERROR;
7367         END IF;
7368 
7369        l_rgp_id := NULL;
7370        l_rul_id := NULL;
7371 
7372      END IF;
7373 
7374    END IF;
7375 
7376 -- contact
7377    IF (p_durv_rec.contact_id IS NULL AND p_durv_rec.contact_name IS NOT NULL ) THEN
7378 
7379     lp_ctcv_rec.id := NULL;
7380     OPEN c_lessor(p_durv_rec.chr_id);
7381     FETCH c_lessor INTO lp_ctcv_rec.cpl_id;
7382     CLOSE c_lessor;
7383     --lp_ctcv_rec.cpl_id := p_durv_rec.lessor_id;
7384     lp_ctcv_rec.dnz_chr_id := p_durv_rec.chr_id;
7385     lp_ctcv_rec.object1_id1 := x_durv_rec.contact_object1_id1;
7386     lp_ctcv_rec.object1_id2 := x_durv_rec.contact_object1_id2;
7387     lp_ctcv_rec.jtot_object1_code := p_durv_rec.contact_jtot_object1_code;
7388     lp_ctcv_rec.cro_code := 'SALESPERSON';
7389 
7390     OKL_OKC_MIGRATION_PVT.create_contact(
7391         p_api_version    => p_api_version,
7392         p_init_msg_list  => p_init_msg_list,
7393         x_return_status  => x_return_status,
7394         x_msg_count      => x_msg_count,
7395         x_msg_data       => x_msg_data,
7396         p_ctcv_rec       => lp_ctcv_rec,
7397         x_ctcv_rec       => lx_ctcv_rec);
7398 
7399       IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
7400          RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
7401       ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
7402          RAISE OKC_API.G_EXCEPTION_ERROR;
7403       END IF;
7404 
7405       x_durv_rec.contact_id := lx_ctcv_rec.id;
7406 
7407    ELSIF (p_durv_rec.contact_id IS NOT NULL AND p_durv_rec.contact_name IS NOT NULL ) THEN
7408 
7409     lp_ctcv_rec.id := p_durv_rec.contact_id;
7410     lp_ctcv_rec.cpl_id := lx_lessor_cplv_rec.id;
7411     lp_ctcv_rec.dnz_chr_id := p_durv_rec.chr_id;
7412     lp_ctcv_rec.object1_id1 := x_durv_rec.contact_object1_id1;
7413     lp_ctcv_rec.object1_id2 := x_durv_rec.contact_object1_id2;
7414     lp_ctcv_rec.jtot_object1_code := p_durv_rec.contact_jtot_object1_code;
7415     lp_ctcv_rec.cro_code := 'SALESPERSON';
7416 
7417     OKL_OKC_MIGRATION_PVT.update_contact(
7418         p_api_version    => p_api_version,
7419         p_init_msg_list  => p_init_msg_list,
7420         x_return_status  => x_return_status,
7421         x_msg_count      => x_msg_count,
7422         x_msg_data       => x_msg_data,
7423         p_ctcv_rec       => lp_ctcv_rec,
7424         x_ctcv_rec       => lx_ctcv_rec);
7425 
7426       IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
7427          RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
7428       ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
7429          RAISE OKC_API.G_EXCEPTION_ERROR;
7430       END IF;
7431 
7432    ELSIF (p_durv_rec.contact_id IS NOT NULL AND p_durv_rec.contact_name IS NULL ) THEN
7433 
7434     lp_ctcv_rec.id := p_durv_rec.contact_id;
7435     lp_ctcv_rec.cpl_id := lx_lessor_cplv_rec.id;
7436     lp_ctcv_rec.dnz_chr_id := p_durv_rec.chr_id;
7437     lp_ctcv_rec.object1_id1 := x_durv_rec.contact_object1_id1;
7438     lp_ctcv_rec.object1_id2 := x_durv_rec.contact_object1_id2;
7439     lp_ctcv_rec.jtot_object1_code := p_durv_rec.contact_jtot_object1_code;
7440     lp_ctcv_rec.cro_code := 'SALESPERSON';
7441 
7442     OKL_OKC_MIGRATION_PVT.delete_contact(
7443         p_api_version    => p_api_version,
7444         p_init_msg_list  => p_init_msg_list,
7445         x_return_status  => x_return_status,
7446         x_msg_count      => x_msg_count,
7447         x_msg_data       => x_msg_data,
7448         p_ctcv_rec       => lp_ctcv_rec);
7449 
7450       IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
7451          RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
7452       ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
7453          RAISE OKC_API.G_EXCEPTION_ERROR;
7454       END IF;
7455 
7456      x_durv_rec.contact_id := NULL;
7457 
7458    END IF;
7459 
7460 -- mla
7461    IF (p_durv_rec.mla_gvr_id IS NULL AND p_durv_rec.mla_contract_number IS NOT NULL ) THEN
7462 
7463     lp_mla_gvev_rec.id := NULL;
7464     lp_mla_gvev_rec.dnz_chr_id := p_durv_rec.chr_id;
7465     lp_mla_gvev_rec.chr_id := p_durv_rec.chr_id;
7466     lp_mla_gvev_rec.chr_id_referred := x_durv_rec.mla_gvr_chr_id_referred;
7467     lp_mla_gvev_rec.copied_only_yn := 'N';
7468 
7469     OKL_OKC_MIGRATION_PVT.create_governance(
7470         p_api_version    => p_api_version,
7471         p_init_msg_list  => p_init_msg_list,
7472         x_return_status  => x_return_status,
7473         x_msg_count      => x_msg_count,
7474         x_msg_data       => x_msg_data,
7475         p_gvev_rec       => lp_mla_gvev_rec,
7476         x_gvev_rec       => lx_mla_gvev_rec);
7477 
7478       IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
7479          RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
7480       ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
7481          RAISE OKC_API.G_EXCEPTION_ERROR;
7482       END IF;
7483 
7484       x_durv_rec.mla_gvr_id := lx_mla_gvev_rec.id;
7485 
7486    ELSIF (p_durv_rec.mla_gvr_id IS NOT NULL AND p_durv_rec.mla_contract_number IS NOT NULL ) THEN
7487 
7488     lp_mla_gvev_rec.id := p_durv_rec.mla_gvr_id;
7489     lp_mla_gvev_rec.dnz_chr_id := p_durv_rec.chr_id;
7490     lp_mla_gvev_rec.chr_id := p_durv_rec.chr_id;
7491     lp_mla_gvev_rec.chr_id_referred := x_durv_rec.mla_gvr_chr_id_referred;
7492     lp_mla_gvev_rec.copied_only_yn := 'N';
7493 
7494     OKL_OKC_MIGRATION_PVT.update_governance(
7495         p_api_version    => p_api_version,
7496         p_init_msg_list  => p_init_msg_list,
7497         x_return_status  => x_return_status,
7498         x_msg_count      => x_msg_count,
7499         x_msg_data       => x_msg_data,
7500         p_gvev_rec       => lp_mla_gvev_rec,
7501         x_gvev_rec       => lx_mla_gvev_rec);
7502 
7503       IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
7504          RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
7505       ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
7506          RAISE OKC_API.G_EXCEPTION_ERROR;
7507       END IF;
7508 
7509    ELSIF (p_durv_rec.mla_gvr_id IS NOT NULL AND p_durv_rec.mla_contract_number IS NULL ) THEN
7510 
7511     lp_mla_gvev_rec.id := p_durv_rec.mla_gvr_id;
7512     lp_mla_gvev_rec.dnz_chr_id := p_durv_rec.chr_id;
7513     lp_mla_gvev_rec.chr_id := p_durv_rec.chr_id;
7514     lp_mla_gvev_rec.chr_id_referred := x_durv_rec.mla_gvr_chr_id_referred;
7515     lp_mla_gvev_rec.copied_only_yn := 'N';
7516 
7517     OKL_OKC_MIGRATION_PVT.delete_governance(
7518         p_api_version    => p_api_version,
7519         p_init_msg_list  => p_init_msg_list,
7520         x_return_status  => x_return_status,
7521         x_msg_count      => x_msg_count,
7522         x_msg_data       => x_msg_data,
7523         p_gvev_rec       => lp_mla_gvev_rec);
7524 
7525       IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
7526          RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
7527       ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
7528          RAISE OKC_API.G_EXCEPTION_ERROR;
7529       END IF;
7530 
7531       x_durv_rec.mla_gvr_id := NULL;
7532 
7533    END IF;
7534 
7535 -- creditline
7536    IF (p_durv_rec.cl_gvr_id IS NULL AND p_durv_rec.cl_contract_number IS NOT NULL ) THEN
7537 
7538     lp_cl_gvev_rec.id := NULL;
7539     lp_cl_gvev_rec.dnz_chr_id := p_durv_rec.chr_id;
7540     lp_cl_gvev_rec.chr_id := p_durv_rec.chr_id;
7541     lp_cl_gvev_rec.chr_id_referred := x_durv_rec.cl_gvr_chr_id_referred;
7542     lp_cl_gvev_rec.copied_only_yn := 'N';
7543 
7544     OKL_OKC_MIGRATION_PVT.create_governance(
7545         p_api_version    => p_api_version,
7546         p_init_msg_list  => p_init_msg_list,
7547         x_return_status  => x_return_status,
7548         x_msg_count      => x_msg_count,
7549         x_msg_data       => x_msg_data,
7550         p_gvev_rec       => lp_cl_gvev_rec,
7551         x_gvev_rec       => lx_cl_gvev_rec);
7552 
7553       IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
7554          RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
7555       ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
7556          RAISE OKC_API.G_EXCEPTION_ERROR;
7557       END IF;
7558 
7559       x_durv_rec.cl_gvr_id := lx_cl_gvev_rec.id;
7560 
7561    ELSIF (p_durv_rec.cl_gvr_id IS NOT NULL AND p_durv_rec.cl_contract_number IS NOT NULL ) THEN
7562 
7563     lp_cl_gvev_rec.id := p_durv_rec.cl_gvr_id;
7564     lp_cl_gvev_rec.dnz_chr_id := p_durv_rec.chr_id;
7565     lp_cl_gvev_rec.chr_id := p_durv_rec.chr_id;
7566     lp_cl_gvev_rec.chr_id_referred := x_durv_rec.cl_gvr_chr_id_referred;
7567     lp_cl_gvev_rec.copied_only_yn := 'N';
7568 
7569     OKL_OKC_MIGRATION_PVT.update_governance(
7570         p_api_version    => p_api_version,
7571         p_init_msg_list  => p_init_msg_list,
7572         x_return_status  => x_return_status,
7573         x_msg_count      => x_msg_count,
7574         x_msg_data       => x_msg_data,
7575         p_gvev_rec       => lp_cl_gvev_rec,
7576         x_gvev_rec       => lx_cl_gvev_rec);
7577 
7578       IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
7579          RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
7580       ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
7581          RAISE OKC_API.G_EXCEPTION_ERROR;
7582       END IF;
7583 
7584    ELSIF (p_durv_rec.cl_gvr_id IS NOT NULL AND p_durv_rec.cl_contract_number IS NULL ) THEN
7585 
7586     lp_cl_gvev_rec.id := p_durv_rec.cl_gvr_id;
7587     lp_cl_gvev_rec.dnz_chr_id := p_durv_rec.chr_id;
7588     lp_cl_gvev_rec.chr_id := p_durv_rec.chr_id;
7589     lp_cl_gvev_rec.chr_id_referred := x_durv_rec.cl_gvr_chr_id_referred;
7590     lp_cl_gvev_rec.copied_only_yn := 'N';
7591 
7592     OKL_OKC_MIGRATION_PVT.delete_governance(
7593         p_api_version    => p_api_version,
7594         p_init_msg_list  => p_init_msg_list,
7595         x_return_status  => x_return_status,
7596         x_msg_count      => x_msg_count,
7597         x_msg_data       => x_msg_data,
7598         p_gvev_rec       => lp_cl_gvev_rec);
7599 
7600       IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
7601          RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
7602       ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
7603          RAISE OKC_API.G_EXCEPTION_ERROR;
7604       END IF;
7605 
7606       x_durv_rec.cl_gvr_id := NULL;
7607 
7608    END IF;
7609 
7610  -- rule group larles
7611    IF (p_durv_rec.rg_larles_id IS NULL) THEN
7612 
7613     lp_larles_rgpv_rec.id := NULL;
7614     lp_larles_rgpv_rec.rgd_code := 'LARLES';
7615     lp_larles_rgpv_rec.dnz_chr_id := p_durv_rec.chr_id;
7616     lp_larles_rgpv_rec.chr_id := p_durv_rec.chr_id;
7617     lp_larles_rgpv_rec.rgp_type := 'KRG';
7618 
7619     OKL_RULE_PUB.create_rule_group(
7620         p_api_version    => p_api_version,
7621         p_init_msg_list  => p_init_msg_list,
7622         x_return_status  => x_return_status,
7623         x_msg_count      => x_msg_count,
7624         x_msg_data       => x_msg_data,
7625         p_rgpv_rec       => lp_larles_rgpv_rec,
7626         x_rgpv_rec       => lx_larles_rgpv_rec);
7627 
7628       IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
7629          RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
7630       ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
7631          RAISE OKC_API.G_EXCEPTION_ERROR;
7632       END IF;
7633 
7634       x_durv_rec.rg_larles_id := lx_larles_rgpv_rec.id;
7635 
7636    ELSIF (p_durv_rec.rg_larles_id IS NOT NULL ) THEN
7637 
7638     lp_larles_rgpv_rec.id := p_durv_rec.rg_larles_id;
7639     lp_larles_rgpv_rec.rgd_code := 'LARLES';
7640     lp_larles_rgpv_rec.dnz_chr_id := p_durv_rec.chr_id;
7641     lp_larles_rgpv_rec.chr_id := p_durv_rec.chr_id;
7642     lp_larles_rgpv_rec.rgp_type := 'KRG';
7643 
7644     OKL_RULE_PUB.update_rule_group(
7645         p_api_version    => p_api_version,
7646         p_init_msg_list  => p_init_msg_list,
7647         x_return_status  => x_return_status,
7648         x_msg_count      => x_msg_count,
7649         x_msg_data       => x_msg_data,
7650         p_rgpv_rec       => lp_larles_rgpv_rec,
7651         x_rgpv_rec       => lx_larles_rgpv_rec);
7652 
7653       IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
7654          RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
7655       ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
7656          RAISE OKC_API.G_EXCEPTION_ERROR;
7657       END IF;
7658 
7659    END IF;
7660 
7661 -- rule larles
7662    IF (p_durv_rec.r_larles_id IS NULL ) THEN
7663 
7664     lp_larles_rulv_rec.id := NULL;
7665     lp_larles_rulv_rec.rgp_id := lx_larles_rgpv_rec.id;
7666     lp_larles_rulv_rec.rule_information_category := 'LARLES';
7667     lp_larles_rulv_rec.dnz_chr_id := p_durv_rec.chr_id;
7668     lp_larles_rulv_rec.rule_information1 := p_durv_rec.r_larles_rule_information1;
7669     lp_larles_rulv_rec.WARN_YN := 'N';
7670     lp_larles_rulv_rec.STD_TEMPLATE_YN := 'N';
7671 
7672     OKL_RULE_PUB.create_rule(
7673         p_api_version    => p_api_version,
7674         p_init_msg_list  => p_init_msg_list,
7675         x_return_status  => x_return_status,
7676         x_msg_count      => x_msg_count,
7677         x_msg_data       => x_msg_data,
7678         p_rulv_rec       => lp_larles_rulv_rec,
7679         x_rulv_rec       => lx_larles_rulv_rec);
7680 
7681       IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
7682          RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
7683       ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
7684          RAISE OKC_API.G_EXCEPTION_ERROR;
7685       END IF;
7686 
7687       x_durv_rec.r_larles_id := lx_larles_rulv_rec.id;
7688 
7689   ELSIF (p_durv_rec.r_larles_id IS NOT NULL ) THEN
7690 
7691     l_fin_ast := 'N';
7692     OPEN chk_fin_ast_csr;
7693     FETCH chk_fin_ast_csr INTO l_fin_ast;
7694     CLOSE chk_fin_ast_csr;
7695 
7696     l_lrls_yn := 'X';
7697     OPEN get_larles_csr;
7698     FETCH get_larles_csr INTO l_lrls_yn;
7699     CLOSE get_larles_csr;
7700 
7701     --Bug# 15992711: Comment the validation at contract header level
7702     --               on the re-leased asset flag.
7703     --               whether an asset is a release or new asset is determined by
7704     --               the the re_lease_yn flag on okl_k_lines
7705     /*
7706     IF( (l_fin_ast = 'Y') AND (NOT(p_durv_rec.r_larles_rule_information1 = l_lrls_yn))) THEN
7707 
7708          x_return_status := OKC_API.g_ret_sts_error;
7709          OKC_API.SET_MESSAGE(      p_app_name => g_app_name
7710                 , p_msg_name => 'OKL_LLA_RELSE_AST'
7711                );
7712          RAISE OKC_API.G_EXCEPTION_ERROR;
7713 
7714     END IF;
7715     */
7716     --Bug# 15992711 , End
7717 
7718     lp_larles_rulv_rec.id := p_durv_rec.r_larles_id;
7719     lp_larles_rulv_rec.rgp_id := lx_larles_rgpv_rec.id;
7720     lp_larles_rulv_rec.rule_information_category := 'LARLES';
7721     lp_larles_rulv_rec.dnz_chr_id := p_durv_rec.chr_id;
7722     lp_larles_rulv_rec.rule_information1 := p_durv_rec.r_larles_rule_information1;
7723     lp_larles_rulv_rec.WARN_YN := 'N';
7724     lp_larles_rulv_rec.STD_TEMPLATE_YN := 'N';
7725 
7726     OKL_RULE_PUB.update_rule(
7727         p_api_version    => p_api_version,
7728         p_init_msg_list  => p_init_msg_list,
7729         x_return_status  => x_return_status,
7730         x_msg_count      => x_msg_count,
7731         x_msg_data       => x_msg_data,
7732         p_rulv_rec       => lp_larles_rulv_rec,
7733         x_rulv_rec       => lx_larles_rulv_rec);
7734 
7735     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
7736          RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
7737       ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
7738          RAISE OKC_API.G_EXCEPTION_ERROR;
7739       END IF;
7740 
7741    END IF;
7742 
7743 -- rule group LAREBL
7744    IF (p_durv_rec.rg_LAREBL_id IS NULL) THEN
7745 
7746     lp_larebl_rgpv_rec.id := NULL;
7747     lp_larebl_rgpv_rec.rgd_code := 'LAREBL';
7748     lp_larebl_rgpv_rec.dnz_chr_id := p_durv_rec.chr_id;
7749     lp_larebl_rgpv_rec.chr_id := p_durv_rec.chr_id;
7750     lp_larebl_rgpv_rec.rgp_type := 'KRG';
7751 
7752     OKL_RULE_PUB.create_rule_group(
7753         p_api_version    => p_api_version,
7754         p_init_msg_list  => p_init_msg_list,
7755         x_return_status  => x_return_status,
7756         x_msg_count      => x_msg_count,
7757         x_msg_data       => x_msg_data,
7758         p_rgpv_rec       => lp_larebl_rgpv_rec,
7759         x_rgpv_rec       => lx_larebl_rgpv_rec);
7760 
7761       IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
7762          RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
7763       ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
7764          RAISE OKC_API.G_EXCEPTION_ERROR;
7765       END IF;
7766 
7767       x_durv_rec.rg_larebl_id := lx_larebl_rgpv_rec.id;
7768 
7769    ELSIF (p_durv_rec.rg_larebl_id IS NOT NULL ) THEN
7770 
7771     lp_larebl_rgpv_rec.id := p_durv_rec.rg_larebl_id;
7772     lp_larebl_rgpv_rec.rgd_code := 'LAREBL';
7773     lp_larebl_rgpv_rec.dnz_chr_id := p_durv_rec.chr_id;
7774     lp_larebl_rgpv_rec.chr_id := p_durv_rec.chr_id;
7775     lp_larebl_rgpv_rec.rgp_type := 'KRG';
7776 
7777     OKL_RULE_PUB.update_rule_group(
7778         p_api_version    => p_api_version,
7779         p_init_msg_list  => p_init_msg_list,
7780         x_return_status  => x_return_status,
7781         x_msg_count      => x_msg_count,
7782         x_msg_data       => x_msg_data,
7783         p_rgpv_rec       => lp_larebl_rgpv_rec,
7784         x_rgpv_rec       => lx_larebl_rgpv_rec);
7785 
7786       IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
7787          RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
7788       ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
7789          RAISE OKC_API.G_EXCEPTION_ERROR;
7790       END IF;
7791 
7792    END IF;
7793 
7794 -- rule larebl
7795    IF (p_durv_rec.r_larebl_id IS NULL) THEN
7796 
7797     lp_larebl_rulv_rec.id := NULL;
7798     lp_larebl_rulv_rec.rgp_id := lx_larebl_rgpv_rec.id;
7799     lp_larebl_rulv_rec.rule_information_category := 'LAREBL';
7800     lp_larebl_rulv_rec.dnz_chr_id := p_durv_rec.chr_id;
7801     lp_larebl_rulv_rec.rule_information1 := p_durv_rec.r_larebl_rule_information1;
7802     lp_larebl_rulv_rec.WARN_YN := 'N';
7803     lp_larebl_rulv_rec.STD_TEMPLATE_YN := 'N';
7804 
7805     OKL_RULE_PUB.create_rule(
7806         p_api_version    => p_api_version,
7807         p_init_msg_list  => p_init_msg_list,
7808         x_return_status  => x_return_status,
7809         x_msg_count      => x_msg_count,
7810         x_msg_data       => x_msg_data,
7811         p_rulv_rec       => lp_larebl_rulv_rec,
7812         x_rulv_rec       => lx_larebl_rulv_rec);
7813 
7814       IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
7815          RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
7816       ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
7817          RAISE OKC_API.G_EXCEPTION_ERROR;
7818       END IF;
7819 
7820       x_durv_rec.r_larebl_id := lx_larebl_rulv_rec.id;
7821 
7822    ELSIF (p_durv_rec.r_larebl_id IS NOT NULL ) THEN
7823 
7824     lp_larebl_rulv_rec.id := p_durv_rec.r_larebl_id;
7825     lp_larebl_rulv_rec.rgp_id := lx_larebl_rgpv_rec.id;
7826     lp_larebl_rulv_rec.rule_information_category := 'LAREBL';
7827     lp_larebl_rulv_rec.dnz_chr_id := p_durv_rec.chr_id;
7828     lp_larebl_rulv_rec.rule_information1 := p_durv_rec.r_larebl_rule_information1;
7829     lp_larebl_rulv_rec.WARN_YN := 'N';
7830     lp_larebl_rulv_rec.STD_TEMPLATE_YN := 'N';
7831 
7832     OKL_RULE_PUB.update_rule(
7833         p_api_version    => p_api_version,
7834         p_init_msg_list  => p_init_msg_list,
7835         x_return_status  => x_return_status,
7836         x_msg_count      => x_msg_count,
7837         x_msg_data       => x_msg_data,
7838         p_rulv_rec       => lp_larebl_rulv_rec,
7839         x_rulv_rec       => lx_larebl_rulv_rec);
7840 
7841       IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
7842          RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
7843       ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
7844          RAISE OKC_API.G_EXCEPTION_ERROR;
7845       END IF;
7846    ELSIF (p_durv_rec.r_larebl_id IS NOT NULL AND p_durv_rec.r_larebl_rule_information1 IS NULL) THEN
7847 
7848     lp_larebl_rulv_rec.id := p_durv_rec.r_larebl_id;
7849     lp_larebl_rulv_rec.rgp_id := lx_larebl_rgpv_rec.id;
7850     lp_larebl_rulv_rec.rule_information_category := 'LAREBL';
7851     lp_larebl_rulv_rec.dnz_chr_id := p_durv_rec.chr_id;
7852     lp_larebl_rulv_rec.rule_information1 := p_durv_rec.r_larebl_rule_information1;
7853     lp_larebl_rulv_rec.WARN_YN := 'N';
7854     lp_larebl_rulv_rec.STD_TEMPLATE_YN := 'N';
7855 
7856     OKL_RULE_PUB.delete_rule(
7857         p_api_version    => p_api_version,
7858         p_init_msg_list  => p_init_msg_list,
7859         x_return_status  => x_return_status,
7860         x_msg_count      => x_msg_count,
7861         x_msg_data       => x_msg_data,
7862         p_rulv_rec       => lp_larebl_rulv_rec);
7863 
7864       IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
7865          RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
7866       ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
7867          RAISE OKC_API.G_EXCEPTION_ERROR;
7868       END IF;
7869 
7870     x_durv_rec.r_larebl_id := NULL;
7871 
7872    END IF;
7873 
7874  -- rule group lanntf
7875     IF (p_durv_rec.rg_lanntf_id IS NULL) THEN
7876 
7877      lp_lanntf_rgpv_rec.id := NULL;
7878      lp_lanntf_rgpv_rec.rgd_code := 'LANNTF';
7879      lp_lanntf_rgpv_rec.dnz_chr_id := p_durv_rec.chr_id;
7880      lp_lanntf_rgpv_rec.chr_id := p_durv_rec.chr_id;
7881      lp_lanntf_rgpv_rec.rgp_type := 'KRG';
7882 
7883      OKL_RULE_PUB.create_rule_group(
7884          p_api_version    => p_api_version,
7885          p_init_msg_list  => p_init_msg_list,
7886          x_return_status  => x_return_status,
7887          x_msg_count      => x_msg_count,
7888          x_msg_data       => x_msg_data,
7889          p_rgpv_rec       => lp_lanntf_rgpv_rec,
7890          x_rgpv_rec       => lx_lanntf_rgpv_rec);
7891 
7892        IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
7893           RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
7894        ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
7895           RAISE OKC_API.G_EXCEPTION_ERROR;
7896        END IF;
7897 
7898         x_durv_rec.rg_lanntf_id := lx_lanntf_rgpv_rec.id;
7899 
7900     ELSIF (p_durv_rec.rg_lanntf_id IS NOT NULL ) THEN
7901 
7902      lp_lanntf_rgpv_rec.id := p_durv_rec.rg_lanntf_id;
7903      lp_lanntf_rgpv_rec.rgd_code := 'LANNTF';
7904      lp_lanntf_rgpv_rec.dnz_chr_id := p_durv_rec.chr_id;
7905      lp_lanntf_rgpv_rec.chr_id := p_durv_rec.chr_id;
7906      lp_lanntf_rgpv_rec.rgp_type := 'KRG';
7907 
7908      OKL_RULE_PUB.update_rule_group(
7909          p_api_version    => p_api_version,
7910          p_init_msg_list  => p_init_msg_list,
7911          x_return_status  => x_return_status,
7912          x_msg_count      => x_msg_count,
7913          x_msg_data       => x_msg_data,
7914          p_rgpv_rec       => lp_lanntf_rgpv_rec,
7915          x_rgpv_rec       => lx_lanntf_rgpv_rec);
7916 
7917        IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
7918           RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
7919        ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
7920           RAISE OKC_API.G_EXCEPTION_ERROR;
7921        END IF;
7922 
7923     END IF;
7924 
7925  -- rule lanntf
7926     IF (p_durv_rec.r_lanntf_id IS NULL) THEN
7927 
7928      lp_lanntf_rulv_rec.id := NULL;
7929      lp_lanntf_rulv_rec.rgp_id := lx_lanntf_rgpv_rec.id;
7930      lp_lanntf_rulv_rec.rule_information_category := 'LANNTF';
7931      lp_lanntf_rulv_rec.dnz_chr_id := p_durv_rec.chr_id;
7932      lp_lanntf_rulv_rec.rule_information1 := p_durv_rec.r_lanntf_rule_information1;
7933      lp_lanntf_rulv_rec.WARN_YN := 'N';
7934      lp_lanntf_rulv_rec.STD_TEMPLATE_YN := 'N';
7935 
7936      OKL_RULE_PUB.create_rule(
7937          p_api_version    => p_api_version,
7938          p_init_msg_list  => p_init_msg_list,
7939          x_return_status  => x_return_status,
7940          x_msg_count      => x_msg_count,
7941          x_msg_data       => x_msg_data,
7942          p_rulv_rec       => lp_lanntf_rulv_rec,
7943          x_rulv_rec       => lx_lanntf_rulv_rec);
7944 
7945        IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
7946           RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
7947        ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
7948           RAISE OKC_API.G_EXCEPTION_ERROR;
7949        END IF;
7950 
7951        x_durv_rec.r_lanntf_id := lx_lanntf_rulv_rec.id;
7952 
7953     ELSIF (p_durv_rec.r_lanntf_id IS NOT NULL ) THEN
7954 
7955      lp_lanntf_rulv_rec.id := p_durv_rec.r_lanntf_id;
7956      lp_lanntf_rulv_rec.rgp_id := lx_lanntf_rgpv_rec.id;
7957      lp_lanntf_rulv_rec.rule_information_category := 'LANNTF';
7958      lp_lanntf_rulv_rec.dnz_chr_id := p_durv_rec.chr_id;
7959      lp_lanntf_rulv_rec.rule_information1 := p_durv_rec.r_lanntf_rule_information1;
7960      lp_lanntf_rulv_rec.WARN_YN := 'N';
7961      lp_lanntf_rulv_rec.STD_TEMPLATE_YN := 'N';
7962 
7963      OKL_RULE_PUB.update_rule(
7964          p_api_version    => p_api_version,
7965          p_init_msg_list  => p_init_msg_list,
7966          x_return_status  => x_return_status,
7967          x_msg_count      => x_msg_count,
7968          x_msg_data       => x_msg_data,
7969          p_rulv_rec       => lp_lanntf_rulv_rec,
7970          x_rulv_rec       => lx_lanntf_rulv_rec);
7971 
7972        IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
7973           RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
7974        ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
7975           RAISE OKC_API.G_EXCEPTION_ERROR;
7976        END IF;
7977 
7978     END IF;
7979 
7980   -- rule group lacpln
7981     IF (p_durv_rec.rg_lacpln_id IS NULL) THEN
7982 
7983      lp_lacpln_rgpv_rec.id := NULL;
7984      lp_lacpln_rgpv_rec.rgd_code := 'LACPLN';
7985      lp_lacpln_rgpv_rec.dnz_chr_id := p_durv_rec.chr_id;
7986      lp_lacpln_rgpv_rec.chr_id := p_durv_rec.chr_id;
7987      lp_lacpln_rgpv_rec.rgp_type := 'KRG';
7988 
7989      OKL_RULE_PUB.create_rule_group(
7990          p_api_version    => p_api_version,
7991          p_init_msg_list  => p_init_msg_list,
7992          x_return_status  => x_return_status,
7993          x_msg_count      => x_msg_count,
7994          x_msg_data       => x_msg_data,
7995          p_rgpv_rec       => lp_lacpln_rgpv_rec,
7996          x_rgpv_rec       => lx_lacpln_rgpv_rec);
7997 
7998        IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
7999           RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
8000        ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
8001           RAISE OKC_API.G_EXCEPTION_ERROR;
8002        END IF;
8003 
8004        x_durv_rec.rg_lacpln_id := lx_lacpln_rgpv_rec.id;
8005 
8006     ELSIF (p_durv_rec.rg_lacpln_id IS NOT NULL ) THEN
8007 
8008      lp_lacpln_rgpv_rec.id := p_durv_rec.rg_lacpln_id;
8009      lp_lacpln_rgpv_rec.rgd_code := 'LACPLN';
8010      lp_lacpln_rgpv_rec.dnz_chr_id := p_durv_rec.chr_id;
8011      lp_lacpln_rgpv_rec.chr_id := p_durv_rec.chr_id;
8012      lp_lacpln_rgpv_rec.rgp_type := 'KRG';
8013 
8014      OKL_RULE_PUB.update_rule_group(
8015          p_api_version    => p_api_version,
8016          p_init_msg_list  => p_init_msg_list,
8017          x_return_status  => x_return_status,
8018          x_msg_count      => x_msg_count,
8019          x_msg_data       => x_msg_data,
8020          p_rgpv_rec       => lp_lacpln_rgpv_rec,
8021          x_rgpv_rec       => lx_lacpln_rgpv_rec);
8022 
8023        IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
8024           RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
8025        ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
8026           RAISE OKC_API.G_EXCEPTION_ERROR;
8027        END IF;
8028 
8029     END IF;
8030 
8031  -- rule lacpln
8032     IF (p_durv_rec.r_lacpln_id IS NULL) THEN
8033 
8034      lp_lacpln_rulv_rec.id := NULL;
8035      lp_lacpln_rulv_rec.rgp_id := lx_lacpln_rgpv_rec.id;
8036      lp_lacpln_rulv_rec.rule_information_category := 'LACPLN';
8037      lp_lacpln_rulv_rec.dnz_chr_id := p_durv_rec.chr_id;
8038      lp_lacpln_rulv_rec.rule_information1 := p_durv_rec.r_lacpln_rule_information1;
8039      lp_lacpln_rulv_rec.WARN_YN := 'N';
8040      lp_lacpln_rulv_rec.STD_TEMPLATE_YN := 'N';
8041 
8042      OKL_RULE_PUB.create_rule(
8043          p_api_version    => p_api_version,
8044          p_init_msg_list  => p_init_msg_list,
8045          x_return_status  => x_return_status,
8046          x_msg_count      => x_msg_count,
8047          x_msg_data       => x_msg_data,
8048          p_rulv_rec       => lp_lacpln_rulv_rec,
8049          x_rulv_rec       => lx_lacpln_rulv_rec);
8050 
8051        IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
8052           RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
8053        ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
8054           RAISE OKC_API.G_EXCEPTION_ERROR;
8055        END IF;
8056 
8057        x_durv_rec.r_lacpln_id := lx_lacpln_rulv_rec.id;
8058 
8059     ELSIF (p_durv_rec.r_lacpln_id IS NOT NULL ) THEN
8060 
8061     l_lacpln_yn := 'X';
8062 
8063     OPEN get_lacpln_csr;
8064     FETCH get_lacpln_csr INTO l_lacpln_yn;
8065     CLOSE get_lacpln_csr;
8066 
8067     IF( l_lacpln_yn = 'Y' AND  NVL(p_durv_rec.r_lacpln_rule_information1,'N') = 'N') THEN
8068 
8069 	l_fin_ast_id := NULL;
8070         -- update capitalized interest to null
8071 	FOR l_get_fin_ast_csr IN get_fin_ast_csr LOOP
8072 
8073 	  -- l_fin_ast_id := l_get_fin_ast_csr.id;
8074 	  lp_klev_rec.id := l_get_fin_ast_csr.id;
8075 	  lp_clev_rec.id := l_get_fin_ast_csr.id;
8076           lp_klev_rec.capitalized_interest := NULL;
8077 
8078           OKL_CONTRACT_PUB.update_contract_line(
8079             p_api_version    => p_api_version,
8080             p_init_msg_list  => p_init_msg_list,
8081             x_return_status  => x_return_status,
8082             x_msg_count      => x_msg_count,
8083             x_msg_data       => x_msg_data,
8084 	    p_clev_rec       => lp_clev_rec,
8085 	    p_klev_rec       => lp_klev_rec,
8086 	    p_edit_mode      => 'N',
8087 	    x_clev_rec       => lx_clev_rec,
8088 	    x_klev_rec       => lx_klev_rec);
8089 
8090           IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
8091              RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
8092           ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
8093              RAISE OKC_API.G_EXCEPTION_ERROR;
8094           END IF;
8095 
8096  	END LOOP;
8097 
8098      END IF;
8099 
8100      lp_lacpln_rulv_rec.id := p_durv_rec.r_lacpln_id;
8101      lp_lacpln_rulv_rec.rgp_id := lx_lacpln_rgpv_rec.id;
8102      lp_lacpln_rulv_rec.rule_information_category := 'LACPLN';
8103      lp_lacpln_rulv_rec.dnz_chr_id := p_durv_rec.chr_id;
8104      lp_lacpln_rulv_rec.rule_information1 := p_durv_rec.r_lacpln_rule_information1;
8105      lp_lacpln_rulv_rec.WARN_YN := 'N';
8106      lp_lacpln_rulv_rec.STD_TEMPLATE_YN := 'N';
8107 
8108      OKL_RULE_PUB.update_rule(
8109          p_api_version    => p_api_version,
8110          p_init_msg_list  => p_init_msg_list,
8111          x_return_status  => x_return_status,
8112          x_msg_count      => x_msg_count,
8113          x_msg_data       => x_msg_data,
8114          p_rulv_rec       => lp_lacpln_rulv_rec,
8115          x_rulv_rec       => lx_lacpln_rulv_rec);
8116 
8117        IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
8118           RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
8119        ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
8120           RAISE OKC_API.G_EXCEPTION_ERROR;
8121        END IF;
8122 
8123     END IF;
8124 
8125 
8126  -- rule group lapact
8127     IF (p_durv_rec.rg_lapact_id IS NULL) THEN
8128 
8129      lp_lapact_rgpv_rec.id := NULL;
8130      lp_lapact_rgpv_rec.rgd_code := 'LAPACT';
8131      lp_lapact_rgpv_rec.dnz_chr_id := p_durv_rec.chr_id;
8132      lp_lapact_rgpv_rec.chr_id := p_durv_rec.chr_id;
8133      lp_lapact_rgpv_rec.rgp_type := 'KRG';
8134 
8135      OKL_RULE_PUB.create_rule_group(
8136          p_api_version    => p_api_version,
8137          p_init_msg_list  => p_init_msg_list,
8138          x_return_status  => x_return_status,
8139          x_msg_count      => x_msg_count,
8140          x_msg_data       => x_msg_data,
8141          p_rgpv_rec       => lp_lapact_rgpv_rec,
8142          x_rgpv_rec       => lx_lapact_rgpv_rec);
8143 
8144        IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
8145           RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
8146        ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
8147           RAISE OKC_API.G_EXCEPTION_ERROR;
8148        END IF;
8149 
8150        x_durv_rec.rg_lapact_id := lx_lapact_rgpv_rec.id;
8151 
8152     ELSIF (p_durv_rec.rg_lapact_id IS NOT NULL ) THEN
8153 
8154      lp_lapact_rgpv_rec.id := p_durv_rec.rg_lapact_id;
8155      lp_lapact_rgpv_rec.rgd_code := 'LAPACT';
8156      lp_lapact_rgpv_rec.dnz_chr_id := p_durv_rec.chr_id;
8157      lp_lapact_rgpv_rec.chr_id := p_durv_rec.chr_id;
8158      lp_lapact_rgpv_rec.rgp_type := 'KRG';
8159 
8160      OKL_RULE_PUB.update_rule_group(
8161          p_api_version    => p_api_version,
8162          p_init_msg_list  => p_init_msg_list,
8163          x_return_status  => x_return_status,
8164          x_msg_count      => x_msg_count,
8165          x_msg_data       => x_msg_data,
8166          p_rgpv_rec       => lp_lapact_rgpv_rec,
8167          x_rgpv_rec       => lx_lapact_rgpv_rec);
8168 
8169        IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
8170           RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
8171        ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
8172           RAISE OKC_API.G_EXCEPTION_ERROR;
8173        END IF;
8174 
8175     END IF;
8176 
8177  -- rule lapact
8178     IF (p_durv_rec.r_lapact_id IS NULL) THEN
8179 
8180      lp_lapact_rulv_rec.id := NULL;
8181      lp_lapact_rulv_rec.rgp_id := lx_lapact_rgpv_rec.id;
8182      lp_lapact_rulv_rec.rule_information_category := 'LAPACT';
8183      lp_lapact_rulv_rec.dnz_chr_id := p_durv_rec.chr_id;
8184      lp_lapact_rulv_rec.rule_information1 := p_durv_rec.r_lapact_rule_information1;
8185      lp_lapact_rulv_rec.WARN_YN := 'N';
8186      lp_lapact_rulv_rec.STD_TEMPLATE_YN := 'N';
8187 
8188      OKL_RULE_PUB.create_rule(
8189          p_api_version    => p_api_version,
8190          p_init_msg_list  => p_init_msg_list,
8191          x_return_status  => x_return_status,
8192          x_msg_count      => x_msg_count,
8193          x_msg_data       => x_msg_data,
8194          p_rulv_rec       => lp_lapact_rulv_rec,
8195          x_rulv_rec       => lx_lapact_rulv_rec);
8196 
8197        IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
8198           RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
8199        ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
8200           RAISE OKC_API.G_EXCEPTION_ERROR;
8201        END IF;
8202 
8203        x_durv_rec.r_lapact_id := lx_lapact_rulv_rec.id;
8204 
8205     ELSIF (p_durv_rec.r_lapact_id IS NOT NULL ) THEN
8206 
8207      lp_lapact_rulv_rec.id := p_durv_rec.r_lapact_id;
8208      lp_lapact_rulv_rec.rgp_id := lx_lapact_rgpv_rec.id;
8209      lp_lapact_rulv_rec.rule_information_category := 'LAPACT';
8210      lp_lapact_rulv_rec.dnz_chr_id := p_durv_rec.chr_id;
8211      lp_lapact_rulv_rec.rule_information1 := p_durv_rec.r_lapact_rule_information1;
8212      lp_lapact_rulv_rec.WARN_YN := 'N';
8213      lp_lapact_rulv_rec.STD_TEMPLATE_YN := 'N';
8214 
8215      OKL_RULE_PUB.update_rule(
8216          p_api_version    => p_api_version,
8217          p_init_msg_list  => p_init_msg_list,
8218          x_return_status  => x_return_status,
8219          x_msg_count      => x_msg_count,
8220          x_msg_data       => x_msg_data,
8221          p_rulv_rec       => lp_lapact_rulv_rec,
8222          x_rulv_rec       => lx_lapact_rulv_rec);
8223 
8224        IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
8225           RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
8226        ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
8227           RAISE OKC_API.G_EXCEPTION_ERROR;
8228        END IF;
8229 
8230     END IF;
8231 
8232   IF okl_context.get_okc_org_id  IS NULL THEN
8233 	l_chr_id := p_durv_rec.chr_id;
8234 	okl_context.set_okc_org_context(p_chr_id => l_chr_id );
8235   END IF;
8236 
8237   IF (p_durv_rec.program_contract_number IS NOT NULL OR old_khr_id IS NOT NULL) THEN
8238 
8239        copy_rules(
8240         p_api_version       => p_api_version,
8241         p_init_msg_list     => p_init_msg_list,
8242         x_return_status     => x_return_status,
8243         x_msg_count         => x_msg_count,
8244         x_msg_data          => x_msg_data,
8245         p_old_khr_id        => old_khr_id,
8246         p_prog_override_yn  => p_durv_rec.khr_generate_accrual_yn, -- program flag yn
8247         p_source_id         => x_durv_rec.khr_khr_id, -- program id
8248         p_dest_id           => p_durv_rec.chr_id,
8249         p_org_id            => okl_context.get_okc_org_id,
8250         p_organization_id   => okl_context.get_okc_organization_id
8251         );
8252 
8253       IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
8254          RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
8255       ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
8256          RAISE OKC_API.G_EXCEPTION_ERROR;
8257       END IF;
8258 
8259    END IF;
8260 
8261  End if; --close of release if block
8262    /*
8263    -- mvasudev, 08/17/2004
8264    -- Code change to enable Business Event
8265    */
8266 	raise_business_event(p_chr_id        => p_durv_rec.chr_id
8267 	                    ,x_return_status => x_return_status);
8268     IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
8269        RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8270     ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
8271        RAISE OKL_API.G_EXCEPTION_ERROR;
8272     END IF;
8273 
8274    /*
8275    -- mvasudev, 08/17/2004
8276    -- END, Code change to enable Business Event
8277    */
8278 
8279 
8280   OKC_API.END_ACTIVITY(x_msg_count	=> x_msg_count,	 x_msg_data	=> x_msg_data);
8281 
8282   EXCEPTION
8283     WHEN OKC_API.G_EXCEPTION_ERROR THEN
8284       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
8285 			p_api_name  => l_api_name,
8286 			p_pkg_name  => g_pkg_name,
8287 			p_exc_name  => 'OKC_API.G_RET_STS_ERROR',
8288 			x_msg_count => x_msg_count,
8289 			x_msg_data  => x_msg_data,
8290 			p_api_type  => g_api_type);
8291 
8292     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
8293       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
8294 			p_api_name  => l_api_name,
8295 			p_pkg_name  => g_pkg_name,
8296 			p_exc_name  => 'OKC_API.G_RET_STS_UNEXP_ERROR',
8297 			x_msg_count => x_msg_count,
8298 			x_msg_data  => x_msg_data,
8299 			p_api_type  => g_api_type);
8300 
8301     WHEN OTHERS THEN
8302       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
8303 			p_api_name  => l_api_name,
8304 			p_pkg_name  => g_pkg_name,
8305 			p_exc_name  => 'OTHERS',
8306 			x_msg_count => x_msg_count,
8307 			x_msg_data  => x_msg_data,
8308 			p_api_type  => g_api_type);
8309   END;
8310 
8311 PROCEDURE load_deal(
8312       p_api_version                  IN NUMBER,
8313       p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
8314       x_return_status                OUT NOCOPY VARCHAR2,
8315       x_msg_count                    OUT NOCOPY NUMBER,
8316       x_msg_data                     OUT NOCOPY VARCHAR2,
8317       p_durv_rec                     IN  deal_rec_type,
8318       x_durv_rec                     OUT NOCOPY  deal_rec_type
8319     ) AS
8320 
8321     l_api_name	       VARCHAR2(30) := 'load_deal';
8322     l_api_version      CONSTANT NUMBER	  := 1.0;
8323 
8324     l_template_yn      OKC_K_HEADERS_B.TEMPLATE_YN%TYPE;
8325     l_chr_type         OKC_K_HEADERS_B.CHR_TYPE%TYPE;
8326     l_contract_number  OKC_K_HEADERS_B.CHR_TYPE%TYPE;
8327     l_object_code      VARCHAR2(30) DEFAULT NULL;
8328 
8329     l_ak_prompt        AK_ATTRIBUTES_VL.attribute_label_long%TYPE;
8330     l_chr_id	       NUMBER;
8331     row_cnt  NUMBER;
8332 
8333     CURSOR l_load_hdr_csr IS
8334     SELECT id,
8335         contract_number,
8336         description,
8337         sts_code,
8338         start_date,
8339         end_date,
8340         term_duration,
8341         cust_po_number,
8342         inv_organization_id,
8343         authoring_org_id,
8344         generate_accrual_yn,
8345         syndicatable_yn,
8346         prefunding_eligible_yn,
8347         revolving_credit_yn,
8348         converted_account_yn,
8349         credit_act_yn,
8350         template_yn,
8351         date_signed,
8352         date_deal_transferred,
8353         accepted_date,
8354         expected_delivery_date,
8355         amd_code,
8356         deal_type,
8357 --        orig_system_reference1,
8358 --        orig_system_source_code,
8359 --        orig_system_id1,
8360         currency_code,
8361         pdt_id,
8362         khr_id
8363     FROM okl_k_headers_full_v
8364     WHERE id = p_durv_rec.chr_id;
8365 
8366 
8367     CURSOR l_vers_version_csr IS
8368     SELECT vers.major_version||'.'||vers.minor_version
8369     FROM okc_k_vers_numbers_v vers
8370     WHERE vers.chr_id = p_durv_rec.chr_id;
8371 
8372     CURSOR l_gvr_csr(p_scs_code VARCHAR2) IS
8373     SELECT mla.contract_number, gvr.chr_id_referred, gvr.id
8374     FROM  okl_k_headers_full_v mla, okc_governances_v gvr
8375     WHERE mla.id = gvr.chr_id_referred
8376     AND mla.scs_code = p_scs_code -- mla or cl
8377     AND gvr.chr_id = p_durv_rec.chr_id
8378     AND gvr.dnz_chr_id = p_durv_rec.chr_id;
8379 
8380     CURSOR l_dff_rule_csr(p_rgd_code VARCHAR2, p_rule_information_category VARCHAR2) IS
8381     SELECT rgp.id, rul.id, rul.rule_information1
8382     FROM  okc_rule_groups_v rgp, okc_rules_v rul
8383     WHERE rgp.id = rul.rgp_id
8384     AND rgp.rgd_code = p_rgd_code
8385     AND rul.rule_information_category = p_rule_information_category
8386     AND rul.dnz_chr_id = p_durv_rec.chr_id
8387     AND rgp.dnz_chr_id = p_durv_rec.chr_id
8388     AND rgp.chr_id = p_durv_rec.chr_id;
8389 
8390     CURSOR l_party_csr(p_rle_code VARCHAR2) IS
8391 	--Start modified abhsaxen for performance SQLID 20563248
8392 	SELECT cpl.id,cpl.object1_id1,cpl.object1_id2,cpl.jtot_object1_code
8393 	    FROM okc_k_party_roles_B cpl
8394 	    WHERE cpl.rle_code = p_rle_code
8395 	    AND cpl.chr_id = p_durv_rec.chr_id
8396 	    AND cpl.dnz_chr_id = p_durv_rec.chr_id
8397 	--end modified abhsaxen for performance SQLID 20563248
8398 	;
8399     CURSOR l_customer_account_csr IS
8400     SELECT rgp.id, rul.id, rul.object1_id1,rul.object1_id2,rul.jtot_object1_code
8401     FROM  okc_rule_groups_v rgp, okc_rules_v rul
8402     WHERE rgp.id = rul.rgp_id
8403     AND rgp.rgd_code = 'LACAN'
8404     AND rul.rule_information_category = 'CAN'
8405     AND rul.dnz_chr_id = p_durv_rec.chr_id
8406     AND rgp.dnz_chr_id = p_durv_rec.chr_id
8407     AND rgp.chr_id = p_durv_rec.chr_id;
8408 
8409     CURSOR l_legal_address_csr(p_cust_id1 VARCHAR2) IS
8410     SELECT cust_site.description
8411     FROM okx_cust_site_uses_v cust_site
8412     WHERE cust_site.party_id = p_cust_id1
8413     AND cust_site.site_use_code = 'LEGAL'
8414     and cust_site.status='A' -- Bug 10373290
8415     and cust_site.b_status='A';
8416 
8417     CURSOR l_product_csr(product_id  NUMBER) IS
8418     SELECT id,name,description
8419     FROM okl_products_v
8420     WHERE id = product_id;
8421 
8422     CURSOR l_currency_csr(p_currency_code  VARCHAR2) IS
8423     SELECT currency_code, name
8424     FROM fnd_currencies_vl
8425     WHERE currency_code = p_currency_code;
8426 
8427     CURSOR l_program_csr(program_id  NUMBER) IS
8428     SELECT id,contract_number
8429     FROM okl_k_headers_full_v
8430     WHERE id = program_id;
8431 
8432     CURSOR l_contact_csr IS
8433 	--Start modified abhsaxen for performance SQLID 20563327
8434 	select ctc.id,ctc.object1_id1,ctc.object1_id2,ctc.jtot_object1_code
8435 	    from okc_k_party_roles_b cpl, okc_contacts ctc
8436 	    where cpl.id = ctc.cpl_id
8437 	    and cpl.rle_code = 'LESSOR'
8438 	    and ctc.cro_code = 'SALESPERSON'
8439 	    and cpl.chr_id = p_durv_rec.chr_id
8440 	    and cpl.dnz_chr_id = p_durv_rec.chr_id
8441 	    and ctc.dnz_chr_id = p_durv_rec.chr_id
8442 	--end modified abhsaxen for performance SQLID 20563327
8443 	;
8444 
8445     CURSOR l_sts_code_csr IS
8446     SELECT CHR.sts_code
8447     FROM OKC_STATUSES_B sts,okc_k_headers_v CHR
8448     WHERE STS.CODE = CHR.STS_CODE
8449     AND CHR.id = p_durv_rec.chr_id;
8450 
8451 
8452   BEGIN
8453 
8454   IF okl_context.get_okc_org_id  IS NULL THEN
8455 	   l_chr_id := p_durv_rec.chr_id;
8456    	okl_context.set_okc_org_context(p_chr_id => l_chr_id );
8457   END IF;
8458 
8459     x_return_status := OKC_API.START_ACTIVITY(
8460 			p_api_name      => l_api_name,
8461 			p_pkg_name      => g_pkg_name,
8462 			p_init_msg_list => p_init_msg_list,
8463 			l_api_version   => l_api_version,
8464 			p_api_version   => p_api_version,
8465 			p_api_type      => g_api_type,
8466 			x_return_status => x_return_status);
8467 
8468     -- check if activity started successfully
8469     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
8470        RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
8471     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
8472        RAISE OKC_API.G_EXCEPTION_ERROR;
8473     END IF;
8474 /*
8475     open l_load_hdr_csr;
8476     fetch l_load_hdr_csr into   x_durv_rec.chr_id,
8477  		   	        x_durv_rec.chr_contract_number,
8478     				x_durv_rec.chr_description,
8479     				x_durv_rec.chr_sts_code,
8480     				x_durv_rec.chr_start_date,
8481     				x_durv_rec.chr_end_date,
8482     				x_durv_rec.khr_term_duration,
8483     				x_durv_rec.chr_cust_po_number,
8484     				x_durv_rec.chr_inv_organization_id,
8485     				x_durv_rec.chr_authoring_org_id,
8486     				x_durv_rec.khr_generate_accrual_yn,
8487     				x_durv_rec.khr_syndicatable_yn,
8488     				x_durv_rec.khr_prefunding_eligible_yn,
8489     				x_durv_rec.khr_revolving_credit_yn,
8490     				x_durv_rec.khr_converted_account_yn,
8491     				x_durv_rec.khr_credit_act_yn,
8492     				x_durv_rec.chr_template_yn,
8493     				x_durv_rec.chr_date_signed,
8494     				x_durv_rec.khr_date_deal_transferred,
8495     				x_durv_rec.khr_accepted_date,
8496     				x_durv_rec.khr_expected_delivery_date,
8497     				x_durv_rec.khr_amd_code,
8498     				x_durv_rec.khr_deal_type,
8499 --    				x_durv_rec.chr_orig_system_reference1,
8500 --    				x_durv_rec.chr_orig_system_source_code,
8501 --    				x_durv_rec.chr_orig_system_id1,
8502     				x_durv_rec.chr_currency_code,
8503     				x_durv_rec.khr_pdt_id,
8504     				x_durv_rec.khr_khr_id;
8505     close  l_load_hdr_csr;
8506 
8507     open l_vers_version_csr;
8508     fetch l_vers_version_csr into x_durv_rec.vers_version;
8509     close l_vers_version_csr;
8510 
8511     open l_gvr_csr('MASTER_LEASE');
8512     fetch l_gvr_csr into x_durv_rec.mla_contract_number, x_durv_rec.mla_gvr_chr_id_referred, x_durv_rec.mla_gvr_id;
8513     close l_gvr_csr;
8514 
8515     open l_gvr_csr('CREDITLINE_CONTRACT');
8516     fetch l_gvr_csr into x_durv_rec.cl_contract_number, x_durv_rec.cl_gvr_chr_id_referred, x_durv_rec.cl_gvr_id;
8517     close l_gvr_csr;
8518 
8519     open l_dff_rule_csr('LARLES','LARLES');
8520     fetch l_dff_rule_csr into x_durv_rec.rg_larles_id,x_durv_rec.r_larles_id,x_durv_rec.r_larles_rule_information1;
8521     close l_dff_rule_csr;
8522 
8523     open l_dff_rule_csr('LANNTF','LANNTF');
8524     fetch l_dff_rule_csr into x_durv_rec.rg_lanntf_id,x_durv_rec.r_lanntf_id,x_durv_rec.r_lanntf_rule_information1;
8525     close l_dff_rule_csr;
8526 
8527     open l_dff_rule_csr('LATOWN','LATOWN');
8528     fetch l_dff_rule_csr into x_durv_rec.rg_latown_id,x_durv_rec.r_latown_id,x_durv_rec.r_latown_rule_information1;
8529     close l_dff_rule_csr;
8530 
8531     open l_dff_rule_csr('LAPACT','LAPACT');
8532     fetch l_dff_rule_csr into x_durv_rec.rg_lapact_id,x_durv_rec.r_lapact_id,x_durv_rec.r_lapact_rule_information1;
8533     close l_dff_rule_csr;
8534 
8535     open l_dff_rule_csr('LAREBL','LAREBL');
8536     fetch l_dff_rule_csr into x_durv_rec.rg_larebl_id,x_durv_rec.r_larebl_id,x_durv_rec.r_larebl_rule_information1;
8537     close l_dff_rule_csr;
8538 
8539     open l_dff_rule_csr('LACPLN','LACPLN');
8540     fetch l_dff_rule_csr into x_durv_rec.rg_lacpln_id,x_durv_rec.r_lacpln_id,x_durv_rec.r_lacpln_rule_information1;
8541     close l_dff_rule_csr;
8542 
8543     open l_party_csr('LESSEE');
8544     fetch l_party_csr into x_durv_rec.cust_id,x_durv_rec.cust_object1_id1,x_durv_rec.cust_object1_id2,x_durv_rec.cust_jtot_object1_code;
8545     close l_party_csr;
8546 
8547     open l_party_csr('LESSOR');
8548     fetch l_party_csr into x_durv_rec.lessor_id,x_durv_rec.lessor_object1_id1,x_durv_rec.lessor_object1_id2,x_durv_rec.lessor_jtot_object1_code;
8549     close l_party_csr;
8550 
8551     open l_customer_account_csr;
8552     fetch l_customer_account_csr into x_durv_rec.rg_lacan_id,x_durv_rec.r_can_id,x_durv_rec.r_can_object1_id1,x_durv_rec.r_can_object1_id2,x_durv_rec.r_can_jtot_object1_code;
8553     close l_customer_account_csr;
8554 
8555     open l_legal_address_csr(x_durv_rec.cust_object1_id1);
8556     fetch l_legal_address_csr into x_durv_rec.cust_site_description;
8557     close l_legal_address_csr;
8558 
8559     open l_product_csr(x_durv_rec.khr_pdt_id);
8560     fetch l_product_csr into x_durv_rec.khr_pdt_id,x_durv_rec.product_name,x_durv_rec.product_description;
8561     close l_product_csr;
8562 
8563     open l_currency_csr(x_durv_rec.chr_currency_code);
8564     fetch l_currency_csr into x_durv_rec.chr_currency_code, x_durv_rec.currency_name;
8565     close l_currency_csr;
8566 
8567     open l_program_csr(x_durv_rec.khr_khr_id);
8568     fetch l_program_csr into x_durv_rec.khr_khr_id,x_durv_rec.program_contract_number;
8569     close l_program_csr;
8570 
8571     open l_contact_csr;
8572     fetch l_contact_csr into x_durv_rec.contact_id,x_durv_rec.contact_object1_id1,x_durv_rec.contact_object1_id2,x_durv_rec.contact_jtot_object1_code;
8573     close l_contact_csr;
8574 */
8575 /*
8576     open l_set_of_books_csr;
8577     fetch l_set_of_books_csr into x_durv_rec.books_short_name,x_durv_rec.oper_units_name;
8578     close l_set_of_books_csr;
8579 */
8580 /*
8581     open l_sts_code_csr;
8582     fetch l_sts_code_csr into x_durv_rec.chr_sts_code;
8583     close l_sts_code_csr;
8584     */
8585   OKC_API.END_ACTIVITY(x_msg_count	=> x_msg_count,	 x_msg_data	=> x_msg_data);
8586 
8587   EXCEPTION
8588     WHEN OKC_API.G_EXCEPTION_ERROR THEN
8589       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
8590 			p_api_name  => l_api_name,
8591 			p_pkg_name  => g_pkg_name,
8592 			p_exc_name  => 'OKC_API.G_RET_STS_ERROR',
8593 			x_msg_count => x_msg_count,
8594 			x_msg_data  => x_msg_data,
8595 			p_api_type  => g_api_type);
8596 
8597     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
8598       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
8599 			p_api_name  => l_api_name,
8600 			p_pkg_name  => g_pkg_name,
8601 			p_exc_name  => 'OKC_API.G_RET_STS_UNEXP_ERROR',
8602 			x_msg_count => x_msg_count,
8603 			x_msg_data  => x_msg_data,
8604 			p_api_type  => g_api_type);
8605 
8606     WHEN OTHERS THEN
8607       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
8608 			p_api_name  => l_api_name,
8609 			p_pkg_name  => g_pkg_name,
8610 			p_exc_name  => 'OTHERS',
8611 			x_msg_count => x_msg_count,
8612 			x_msg_data  => x_msg_data,
8613 			p_api_type  => g_api_type);
8614   END;
8615 
8616 
8617 Procedure confirm_cancel_contract
8618                   (p_api_version          IN  NUMBER,
8619                    p_init_msg_list        IN  VARCHAR2 DEFAULT OKL_API.G_FALSE,
8620                    x_return_status        OUT NOCOPY VARCHAR2,
8621                    x_msg_count            OUT NOCOPY NUMBER,
8622                    x_msg_data             OUT NOCOPY VARCHAR2,
8623                    p_contract_id          IN  NUMBER,
8624                    p_contract_number      IN VARCHAR2) AS
8625 
8626 l_return_status        VARCHAR2(1)  default OKL_API.G_RET_STS_SUCCESS;
8627 l_api_name             CONSTANT varchar2(30) := 'confirm_cancel_contract';
8628 l_api_version          CONSTANT NUMBER := 1.0;
8629 
8630 Begin
8631      x_return_status := OKL_API.G_RET_STS_SUCCESS;
8632     -- Call start_activity to create savepoint, check compatibility
8633     -- and initialize message list
8634     x_return_status := OKL_API.START_ACTIVITY (
8635                                l_api_name
8636                                ,p_init_msg_list
8637                                ,'_PVT'
8638                                ,x_return_status);
8639     -- Check if activity started successfully
8640     IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
8641        RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8642     ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
8643        RAISE OKL_API.G_EXCEPTION_ERROR;
8644     END IF;
8645 
8646     okl_maintain_contract_pvt.confirm_cancel_contract(
8647       p_api_version    => p_api_version,
8648       p_init_msg_list  => p_init_msg_list,
8649       x_return_status  => x_return_status,
8650       x_msg_count      => x_msg_count,
8651       x_msg_data       => x_msg_data,
8652       p_contract_id    => p_contract_id,
8653       p_new_contract_number => p_contract_number);
8654 
8655     IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
8656        RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8657     ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
8658        RAISE OKL_API.G_EXCEPTION_ERROR;
8659     END IF;
8660 
8661     OKL_API.END_ACTIVITY (x_msg_count,x_msg_data );
8662 
8663     EXCEPTION
8664     WHEN OKL_API.G_EXCEPTION_ERROR THEN
8665     x_return_status := OKL_API.HANDLE_EXCEPTIONS(
8666                                l_api_name,
8667                                G_PKG_NAME,
8668                                'OKL_API.G_RET_STS_ERROR',
8669                                x_msg_count,
8670                                x_msg_data,
8671                                '_PVT');
8672     WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
8673     x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
8674                               l_api_name,
8675                               G_PKG_NAME,
8676                               'OKL_API.G_RET_STS_UNEXP_ERROR',
8677                               x_msg_count,
8678                               x_msg_data,
8679                               '_PVT');
8680     WHEN OTHERS THEN
8681     x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
8682                               l_api_name,
8683                               G_PKG_NAME,
8684                               'OTHERS',
8685                               x_msg_count,
8686                               x_msg_data,
8687                               '_PVT');
8688 
8689 end;
8690 
8691 Procedure copy_lease_contract
8692                   (p_api_version          IN  NUMBER,
8693                    p_init_msg_list        IN  VARCHAR2 DEFAULT OKL_API.G_FALSE,
8694                    x_return_status        OUT NOCOPY VARCHAR2,
8695                    x_msg_count            OUT NOCOPY NUMBER,
8696                    x_msg_data             OUT NOCOPY VARCHAR2,
8697                    p_contract_number      IN  VARCHAR2,
8698                    p_source_chr_id        IN  NUMBER,
8699                    x_chr_id               OUT NOCOPY NUMBER) AS
8700 
8701 l_return_status        VARCHAR2(1)  default OKL_API.G_RET_STS_SUCCESS;
8702 l_api_name             CONSTANT varchar2(30) := 'copy_lease_contract';
8703 l_api_version          CONSTANT NUMBER := 1.0;
8704 --Added by jjuneja
8705 l_template_yn  okc_k_headers_b.TEMPLATE_YN%TYPE;
8706 CURSOR c1(p_chr_id NUMBER) IS
8707   SELECT * FROM okc_k_headers_b
8708   WHERE id=p_chr_id;
8709   --End of addition by jjuneja
8710 
8711 Begin
8712     x_return_status := OKL_API.G_RET_STS_SUCCESS;
8713     -- Call start_activity to create savepoint, check compatibility
8714     -- and initialize message list
8715     x_return_status := OKL_API.START_ACTIVITY (
8716                                l_api_name
8717                                ,p_init_msg_list
8718                                ,'_PVT'
8719                                ,x_return_status);
8720     -- Check if activity started successfully
8721     IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
8722        RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8723     ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
8724        RAISE OKL_API.G_EXCEPTION_ERROR;
8725     END IF;
8726 
8727     --Added by jjuneja
8728     --Code to fetch the value of template_yn using the p_source_chr_id
8729      FOR c1rec IN c1(p_source_chr_id)
8730      LOOP
8731      l_template_yn := c1rec.TEMPLATE_YN;
8732      END LOOP;
8733      --End of addition by jjuneja
8734 
8735     OKL_COPY_CONTRACT_PUB.copy_lease_contract_new(
8736       p_api_version              => p_api_version,
8737       p_init_msg_list            => p_init_msg_list,
8738       x_return_status            => x_return_status,
8739       x_msg_count                => x_msg_count,
8740       x_msg_data                 => x_msg_data,
8741       p_chr_id                   => p_source_chr_id,
8742       p_contract_number          => p_contract_number,
8743       p_contract_number_modifier => NULL,
8744       p_renew_ref_yn             => OKL_API.G_FALSE,
8745       p_trans_type               => 'CFA',
8746       x_chr_id                   => x_chr_id,
8747       p_to_template_yn           =>l_template_yn);--added by jjuneja
8748 
8749     IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
8750        RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8751     ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
8752        RAISE OKL_API.G_EXCEPTION_ERROR;
8753     END IF;
8754 
8755     OKL_API.END_ACTIVITY (x_msg_count,x_msg_data );
8756 
8757     EXCEPTION
8758     WHEN OKL_API.G_EXCEPTION_ERROR THEN
8759     x_return_status := OKL_API.HANDLE_EXCEPTIONS(
8760                                l_api_name,
8761                                G_PKG_NAME,
8762                                'OKL_API.G_RET_STS_ERROR',
8763                                x_msg_count,
8764                                x_msg_data,
8765                                '_PVT');
8766     WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
8767     x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
8768                               l_api_name,
8769                               G_PKG_NAME,
8770                               'OKL_API.G_RET_STS_UNEXP_ERROR',
8771                               x_msg_count,
8772                               x_msg_data,
8773                               '_PVT');
8774     WHEN OTHERS THEN
8775     x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
8776                               l_api_name,
8777                               G_PKG_NAME,
8778                               'OTHERS',
8779                               x_msg_count,
8780                               x_msg_data,
8781                               '_PVT');
8782 
8783 end;
8784 
8785 PROCEDURE create_party(
8786       p_api_version                  IN NUMBER,
8787       p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
8788       x_return_status                OUT NOCOPY VARCHAR2,
8789       x_msg_count                    OUT NOCOPY NUMBER,
8790       x_msg_data                     OUT NOCOPY VARCHAR2,
8791       p_kpl_rec                 IN  party_rec_type,
8792       x_kpl_rec                 OUT NOCOPY party_rec_type
8793       ) AS
8794 
8795 l_return_status        VARCHAR2(1)  default OKL_API.G_RET_STS_SUCCESS;
8796 l_api_name             CONSTANT varchar2(30) := 'create_party';
8797 l_api_version          CONSTANT NUMBER := 1.0;
8798 
8799 lp_cplv_rec OKL_OKC_MIGRATION_PVT.cplv_rec_type;
8800 lx_cplv_rec OKL_OKC_MIGRATION_PVT.cplv_rec_type;
8801 lp_kplv_rec okl_k_party_roles_pvt.kplv_rec_type;
8802 lx_kplv_rec okl_k_party_roles_pvt.kplv_rec_type;
8803 
8804 Begin
8805      x_return_status := OKL_API.G_RET_STS_SUCCESS;
8806     -- Call start_activity to create savepoint, check compatibility
8807     -- and initialize message list
8808     x_return_status := OKL_API.START_ACTIVITY (
8809                                l_api_name
8810                                ,p_init_msg_list
8811                                ,'_PVT'
8812                                ,x_return_status);
8813     -- Check if activity started successfully
8814     IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
8815        RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8816     ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
8817        RAISE OKL_API.G_EXCEPTION_ERROR;
8818     END IF;
8819 
8820     lp_cplv_rec.id := p_kpl_rec.id;
8821     lp_cplv_rec.object1_id1 := p_kpl_rec.object1_id1;
8822     lp_cplv_rec.object1_id2 := p_kpl_rec.object1_id2;
8823     lp_cplv_rec.jtot_object1_code := p_kpl_rec.jtot_object1_code;
8824     lp_cplv_rec.rle_code := p_kpl_rec.rle_code;
8825     lp_cplv_rec.dnz_chr_id := p_kpl_rec.dnz_chr_id;
8826     lp_cplv_rec.chr_id := p_kpl_rec.chr_id;
8827     lp_cplv_rec.cognomen:= p_kpl_rec.cognomen;
8828     lp_cplv_rec.alias:= p_kpl_rec.alias;
8829     lp_kplv_rec.attribute_category := p_kpl_rec.attribute_category;
8830     lp_kplv_rec.attribute1 := p_kpl_rec.attribute1;
8831     lp_kplv_rec.attribute2 := p_kpl_rec.attribute2;
8832     lp_kplv_rec.attribute3 := p_kpl_rec.attribute3;
8833     lp_kplv_rec.attribute4 := p_kpl_rec.attribute4;
8834     lp_kplv_rec.attribute5 := p_kpl_rec.attribute5;
8835     lp_kplv_rec.attribute6 := p_kpl_rec.attribute6;
8836     lp_kplv_rec.attribute7 := p_kpl_rec.attribute7;
8837     lp_kplv_rec.attribute8 := p_kpl_rec.attribute8;
8838     lp_kplv_rec.attribute9 := p_kpl_rec.attribute9;
8839     lp_kplv_rec.attribute10 := p_kpl_rec.attribute10;
8840     lp_kplv_rec.attribute11 := p_kpl_rec.attribute11;
8841     lp_kplv_rec.attribute12 := p_kpl_rec.attribute12;
8842     lp_kplv_rec.attribute13 := p_kpl_rec.attribute13;
8843     lp_kplv_rec.attribute14 := p_kpl_rec.attribute14;
8844     lp_kplv_rec.attribute15 := p_kpl_rec.attribute15;
8845 
8846     IF(p_kpl_rec.rle_code IS NOT NULL AND
8847     	NOT (p_kpl_rec.rle_code = 'LESSEE' OR p_kpl_rec.rle_code = 'LESSOR')) THEN
8848      lp_kplv_rec.validate_dff_yn := 'Y';
8849     END IF;
8850 
8851     okl_k_party_roles_pvt.create_k_party_role(
8852       p_api_version      => p_api_version,
8853       p_init_msg_list    => p_init_msg_list,
8854       x_return_status    => x_return_status,
8855       x_msg_count        => x_msg_count,
8856       x_msg_data         => x_msg_data,
8857       p_cplv_rec         => lp_cplv_rec,
8858       x_cplv_rec         => lx_cplv_rec,
8859       p_kplv_rec         => lp_kplv_rec,
8860       x_kplv_rec         => lx_kplv_rec);
8861 
8862     x_kpl_rec.id := lx_cplv_rec.id;
8863 
8864     IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
8865        RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8866     ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
8867        RAISE OKL_API.G_EXCEPTION_ERROR;
8868     END IF;
8869 
8870     OKL_API.END_ACTIVITY (x_msg_count,x_msg_data );
8871 
8872     EXCEPTION
8873     WHEN OKL_API.G_EXCEPTION_ERROR THEN
8874     x_return_status := OKL_API.HANDLE_EXCEPTIONS(
8875                                l_api_name,
8876                                G_PKG_NAME,
8877                                'OKL_API.G_RET_STS_ERROR',
8878                                x_msg_count,
8879                                x_msg_data,
8880                                '_PVT');
8881     WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
8882     x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
8883                               l_api_name,
8884                               G_PKG_NAME,
8885                               'OKL_API.G_RET_STS_UNEXP_ERROR',
8886                               x_msg_count,
8887                               x_msg_data,
8888                               '_PVT');
8889     WHEN OTHERS THEN
8890     x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
8891                               l_api_name,
8892                               G_PKG_NAME,
8893                               'OTHERS',
8894                               x_msg_count,
8895                               x_msg_data,
8896                               '_PVT');
8897 
8898 end;
8899 
8900 PROCEDURE update_party(
8901       p_api_version                  IN NUMBER,
8902       p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
8903       x_return_status                OUT NOCOPY VARCHAR2,
8904       x_msg_count                    OUT NOCOPY NUMBER,
8905       x_msg_data                     OUT NOCOPY VARCHAR2,
8906       p_kpl_rec                 IN  party_rec_type,
8907       x_kpl_rec                 OUT NOCOPY party_rec_type
8908       ) AS
8909 
8910 l_return_status        VARCHAR2(1)  default OKL_API.G_RET_STS_SUCCESS;
8911 l_api_name             CONSTANT varchar2(30) := 'update_party';
8912 l_api_version          CONSTANT NUMBER := 1.0;
8913 
8914 lp_cplv_rec OKL_OKC_MIGRATION_PVT.cplv_rec_type;
8915 lx_cplv_rec OKL_OKC_MIGRATION_PVT.cplv_rec_type;
8916 lp_kplv_rec okl_k_party_roles_pvt.kplv_rec_type;
8917 lx_kplv_rec okl_k_party_roles_pvt.kplv_rec_type;
8918 
8919 Begin
8920      x_return_status := OKL_API.G_RET_STS_SUCCESS;
8921     -- Call start_activity to create savepoint, check compatibility
8922     -- and initialize message list
8923     x_return_status := OKL_API.START_ACTIVITY (
8924                                l_api_name
8925                                ,p_init_msg_list
8926                                ,'_PVT'
8927                                ,x_return_status);
8928     -- Check if activity started successfully
8929     IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
8930        RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8931     ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
8932        RAISE OKL_API.G_EXCEPTION_ERROR;
8933     END IF;
8934 
8935     lp_cplv_rec.id := p_kpl_rec.id;
8936     lp_cplv_rec.object1_id1 := p_kpl_rec.object1_id1;
8937     lp_cplv_rec.object1_id2 := p_kpl_rec.object1_id2;
8938     lp_cplv_rec.rle_code := p_kpl_rec.rle_code;
8939     lp_cplv_rec.dnz_chr_id := p_kpl_rec.dnz_chr_id;
8940     lp_cplv_rec.chr_id := p_kpl_rec.chr_id;
8941     lp_cplv_rec.cognomen:= p_kpl_rec.cognomen;
8942     lp_cplv_rec.alias:= p_kpl_rec.alias;
8943     lp_kplv_rec.attribute_category := p_kpl_rec.attribute_category;
8944     lp_kplv_rec.attribute1 := p_kpl_rec.attribute1;
8945     lp_kplv_rec.attribute2 := p_kpl_rec.attribute2;
8946     lp_kplv_rec.attribute3 := p_kpl_rec.attribute3;
8947     lp_kplv_rec.attribute4 := p_kpl_rec.attribute4;
8948     lp_kplv_rec.attribute5 := p_kpl_rec.attribute5;
8949     lp_kplv_rec.attribute6 := p_kpl_rec.attribute6;
8950     lp_kplv_rec.attribute7 := p_kpl_rec.attribute7;
8951     lp_kplv_rec.attribute8 := p_kpl_rec.attribute8;
8952     lp_kplv_rec.attribute9 := p_kpl_rec.attribute9;
8953     lp_kplv_rec.attribute10 := p_kpl_rec.attribute10;
8954     lp_kplv_rec.attribute11 := p_kpl_rec.attribute11;
8955     lp_kplv_rec.attribute12 := p_kpl_rec.attribute12;
8956     lp_kplv_rec.attribute13 := p_kpl_rec.attribute13;
8957     lp_kplv_rec.attribute14 := p_kpl_rec.attribute14;
8958     lp_kplv_rec.attribute15 := p_kpl_rec.attribute15;
8959     lp_kplv_rec.validate_dff_yn := 'Y';
8960 
8961     okl_k_party_roles_pvt.update_k_party_role(
8962       p_api_version      => p_api_version,
8963       p_init_msg_list    => p_init_msg_list,
8964       x_return_status    => x_return_status,
8965       x_msg_count        => x_msg_count,
8966       x_msg_data         => x_msg_data,
8967       p_cplv_rec         => lp_cplv_rec,
8968       x_cplv_rec         => lx_cplv_rec,
8969       p_kplv_rec         => lp_kplv_rec,
8970       x_kplv_rec         => lx_kplv_rec);
8971 
8972 
8973     x_kpl_rec.id := lx_cplv_rec.id;
8974 
8975     IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
8976        RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8977     ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
8978        RAISE OKL_API.G_EXCEPTION_ERROR;
8979     END IF;
8980 
8981     OKL_API.END_ACTIVITY (x_msg_count,x_msg_data );
8982 
8983     EXCEPTION
8984     WHEN OKL_API.G_EXCEPTION_ERROR THEN
8985     x_return_status := OKL_API.HANDLE_EXCEPTIONS(
8986                                l_api_name,
8987                                G_PKG_NAME,
8988                                'OKL_API.G_RET_STS_ERROR',
8989                                x_msg_count,
8990                                x_msg_data,
8991                                '_PVT');
8992     WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
8993     x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
8994                               l_api_name,
8995                               G_PKG_NAME,
8996                               'OKL_API.G_RET_STS_UNEXP_ERROR',
8997                               x_msg_count,
8998                               x_msg_data,
8999                               '_PVT');
9000     WHEN OTHERS THEN
9001     x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
9002                               l_api_name,
9003                               G_PKG_NAME,
9004                               'OTHERS',
9005                               x_msg_count,
9006                               x_msg_data,
9007                               '_PVT');
9008 
9009 end;
9010 
9011 
9012   PROCEDURE load_deal(
9013     p_api_version                IN  NUMBER,
9014     p_init_msg_list              IN  VARCHAR2 DEFAULT OKL_API.G_FALSE,
9015     x_return_status              OUT NOCOPY VARCHAR2,
9016     x_msg_count                  OUT NOCOPY NUMBER,
9017     x_msg_data                   OUT NOCOPY VARCHAR2,
9018     p_chr_id                     IN  NUMBER,
9019     x_deal_values_rec            OUT NOCOPY deal_values_rec
9020   ) IS
9021 
9022   l_return_status        VARCHAR2(1) default OKL_API.G_RET_STS_SUCCESS;
9023   l_api_name             CONSTANT VARCHAR2(30) := 'load_deal';
9024   l_api_version          CONSTANT NUMBER := 1.0;
9025 
9026   CURSOR c_hdr_full_uv(p_chr_id OKC_K_HEADERS_ALL_B.ID%TYPE) IS
9027   SELECT *
9028   FROM okl_k_hdrs_full_uv
9029   WHERE chr_id = p_chr_id;
9030 
9031   l_hdr_uv_rec c_hdr_full_uv%ROWTYPE;
9032 
9033   CURSOR c_hdr_full_v(p_chr_id OKC_K_HEADERS_ALL_B.ID%TYPE) IS
9034   SELECT *
9035   FROM okl_k_headers_full_v
9036   WHERE id = p_chr_id;
9037 
9038   l_hdr_rec c_hdr_full_v%ROWTYPE;
9039 
9040   CURSOR c_okc_hdr(p_chr_id OKC_K_HEADERS_ALL_B.ID%TYPE) IS
9041   SELECT contract_number
9042   FROM okc_k_headers_all_b
9043   WHERE id = p_chr_id;
9044 
9045   --Bug# 12425605
9046   CURSOR c_bill_to_site(p_site_use_id NUMBER) IS
9047   SELECT SUBSTR(description,1,2000) description
9048   FROM okl_la_bill_to_uv
9049   WHERE id1 = p_site_use_id;
9050 
9051   CURSOR c_gvr_data(p_scs_code   VARCHAR2,
9052                     p_chr_id     NUMBER,
9053                     p_dnz_chr_id NUMBER) IS
9054   SELECT mla.contract_number,gvr.chr_id_referred,gvr.id
9055   FROM  okl_k_headers_full_v mla,
9056         okc_governances_v gvr
9057   WHERE mla.id = gvr.chr_id_referred
9058   AND   mla.scs_code = p_scs_code
9059   AND   gvr.dnz_chr_id = p_dnz_chr_id
9060   AND   gvr.chr_id = p_chr_id;
9061 
9062   CURSOR c_ledger(p_chr_id NUMBER, p_organization_id NUMBER) IS
9063 --  start:|   21-Nov-2008 cklee Bug 7569200 -- Fixed display LEDGER NAME issue         |
9064 --  SELECT bks.ledger_id,bks.short_name,ou.name
9065   SELECT bks.ledger_id,bks.name,ou.name
9066 --  end:|   21-Nov-2008 cklee Bug 7569200 -- Fixed display LEDGER NAME issue         |
9067 
9068   FROM gl_ledgers_public_v bks,
9069        hr_operating_units ou,
9070        okc_k_headers_b chr
9071   WHERE bks.ledger_id = ou.set_of_books_id
9072   AND ou.organization_id = chr.authoring_org_id
9073   AND chr.authoring_org_id = p_organization_id
9074   AND chr.id = p_chr_id;
9075 
9076 --start|   27-Jun-2008 cklee Bug 6957971                                            |
9077 /*cklee 06/27/08
9078   CURSOR c_legal_address(p_party_id NUMBER) IS
9079   SELECT cust_site.description
9080   FROM okx_cust_site_uses_v cust_site
9081   WHERE cust_site.party_id = p_party_id
9082   AND cust_site.site_use_code = 'LEGAL';
9083 */
9084 -- Each account may have one primary legal address (purpose = Legal)
9085 -- So when there have multiple accounts for the customer, we need
9086 -- to add additional cust_account_id as a key to retrieve specific
9087 -- legal address for the account
9088   --Bug# 12425605
9089   CURSOR c_legal_address(p_party_id NUMBER, cp_cust_acct_id NUMBER) IS
9090   SELECT SUBSTR(cust_site.description,1,2000) description
9091   FROM okx_cust_site_uses_v cust_site
9092   WHERE cust_site.party_id = p_party_id
9093   AND cust_site.cust_account_id = cp_cust_acct_id
9094   AND cust_site.site_use_code = 'LEGAL'
9095    and cust_site.status='A' -- Bug 10373290
9096     and cust_site.b_status='A';
9097 --end|   27-Jun-2008 cklee Bug 6957971                                            |
9098 
9099   CURSOR c_le_name(cp_legal_entity_id NUMBER) IS
9100   SELECT name
9101   FROM xle_entity_profiles
9102   WHERE legal_entity_id = cp_legal_entity_id;
9103 
9104   CURSOR c_quote_name(p_chr_orig_system_id1 NUMBER) IS
9105   SELECT lsq.reference_number
9106   FROM okl_lease_quotes_b lsq
9107   WHERE LSQ.parent_object_id = p_chr_orig_system_id1
9108   AND lsq.status = 'CT-ACCEPTED';
9109 
9110   CURSOR c_program_template_name(p_orig_system_id1 NUMBER, p_khr_khr_id NUMBER) IS
9111   SELECT chr.contract_number
9112   FROM okl_k_headers_full_v chr
9113   WHERE chr.id = p_orig_system_id1
9114   AND chr.template_type_code = 'PROGRAM'
9115   AND NVL(chr.template_yn,'N') = 'Y'
9116   AND EXISTS(SELECT 1
9117              FROM okl_vp_associations vpaso
9118 	     WHERE vpaso.chr_id =  p_khr_khr_id
9119 	     AND vpaso.assoc_object_id = p_orig_system_id1
9120 	     AND vpaso.assoc_object_type_code = 'LC_TEMPLATE');
9121 
9122   CURSOR c_orig_lease_application(p_orig_syststem_id1 NUMBER) IS
9123   SELECT LAP.reference_number
9124   FROM OKL_LEASE_APPLICATIONS_B LAP,
9125        OKL_LEASE_APPLICATIONS_TL LAPT
9126   WHERE LAP.id = LAPT.id
9127   AND LAPT.LANGUAGE = USERENV('LANG')
9128   AND lap.id = p_orig_syststem_id1;
9129 
9130   CURSOR c_cust_name(cp_party_id NUMBER) IS
9131   SELECT hp.party_name
9132   FROM hz_parties hp
9133   WHERE hp.party_id = cp_party_id;
9134 
9135   CURSOR c_cust_acct_num_csr(cp_cust_acct_id NUMBER)IS
9136   SELECT account_number
9137     FROM hz_Cust_Accounts
9138    WHERE cust_account_id = cp_cust_acct_id;
9139 
9140   CURSOR c_salesrep(p_salesrep_id NUMBER) IS
9141   SELECT name
9142   FROM okx_salesreps_v
9143   WHERE id1 = p_salesrep_id;
9144 
9145   CURSOR c_prompt_name IS
9146   SELECT rdef.rule_code,col.form_left_prompt
9147   FROM  fnd_descr_flex_col_usage_vl col,
9148         okc_rule_defs_v  rdef
9149   WHERE col.application_id = rdef.application_id
9150   AND   col.descriptive_flexfield_name=rdef.descriptive_flexfield_name
9151   AND   col.descriptive_flex_context_code=rdef.rule_code
9152   AND   rdef.rule_code  in ('LACPLN','LANNTF','LAREBL','LARLES','LATOWN','LAPACT');
9153 
9154   BEGIN
9155     x_return_status := OKL_API.G_RET_STS_SUCCESS;
9156     -- Call start_activity to create savepoint, check compatibility
9157     -- and initialize message list
9158     x_return_status := OKL_API.START_ACTIVITY (
9159                                l_api_name
9160                                ,p_init_msg_list
9161                                ,'_PVT'
9162                                ,x_return_status);
9163     -- Check if activity started successfully
9164     IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
9165        RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9166     ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
9167        RAISE OKL_API.G_EXCEPTION_ERROR;
9168     END IF;
9169 
9170   OPEN c_hdr_full_uv(p_chr_id);
9171   FETCH c_hdr_full_uv INTO l_hdr_uv_rec;
9172 
9173   OPEN c_hdr_full_v(p_chr_id);
9174   FETCH c_hdr_full_v INTO l_hdr_rec;
9175 
9176   X_DEAL_VALUES_REC.ACCEPTANCE_METHOD_MEANING     :=  OKL_LLA_UTIL_PVT.GET_LOOKUP_MEANING('OKL_ACCEPTANCE_METHOD',L_HDR_UV_REC.KHR_AMD_CODE);
9177   X_DEAL_VALUES_REC.ASSIGNABLE_MEANING            :=  OKL_LLA_UTIL_PVT.GET_LOOKUP_MEANING('OKL_YES_NO',l_HDR_UV_REC.KHR_ASSIGNABLE_YN);
9178   X_DEAL_VALUES_REC.BILL_TO_SITE_USE_ID           :=  L_HDR_REC.BILL_TO_SITE_USE_ID;
9179 
9180   OPEN c_bill_to_site(l_HDR_REC.BILL_TO_SITE_USE_ID);
9181   FETCH c_bill_to_site INTO X_DEAL_VALUES_REC.BILL_TO_ADDRESS_DESC;
9182   CLOSE c_bill_to_site;
9183 
9184   X_DEAL_VALUES_REC.BOOK_CLASS_MEANING           :=  OKL_LLA_UTIL_PVT.GET_LOOKUP_MEANING('OKL_BOOK_CLASS',L_HDR_UV_REC.KHR_DEAL_TYPE);
9185   X_DEAL_VALUES_REC.CAP_INTERIM_INTERST_MEANING  :=  OKL_LLA_UTIL_PVT.GET_LOOKUP_MEANING('OKL_YES_NO',l_HDR_UV_REC.R_LACPLN_RULE_INFORMATION1);
9186   X_DEAL_VALUES_REC.CAP_INTERIM_INT_RGD_CODE     :=  'LACPLN';
9187   X_DEAL_VALUES_REC.CAP_INTERIM_INT_RGP_ID       :=  L_HDR_UV_REC.RG_LACPLN_ID;
9188   X_DEAL_VALUES_REC.CAP_INTERIM_INT_RUL_ID       :=  L_HDR_UV_REC.R_LACPLN_ID;
9189   X_DEAL_VALUES_REC.CAP_INTERIM_INT_RUL_INF1     :=  L_HDR_UV_REC.R_LACPLN_RULE_INFORMATION1;
9190   X_DEAL_VALUES_REC.CAP_INTERIM_INT_RUL_INF_CAT  :=  'LACPLN';
9191   X_DEAL_VALUES_REC.CONSUMER_CREDIT_ACT_MEANING  :=  OKL_LLA_UTIL_PVT.GET_LOOKUP_MEANING('OKL_YES_NO',L_HDR_UV_REC.KHR_CREDIT_ACT_YN);
9192   X_DEAL_VALUES_REC.CONVERTED_ACCT_MEANING       :=  OKL_LLA_UTIL_PVT.GET_LOOKUP_MEANING('OKL_YES_NO',L_HDR_UV_REC.KHR_CONVERTED_ACCOUNT_YN);
9193 
9194   OPEN c_gvr_data('CREDITLINE_CONTRACT',L_HDR_UV_REC.CHR_ID,L_HDR_UV_REC.CHR_ID);
9195   FETCH c_gvr_data INTO X_DEAL_VALUES_REC.CREDIT_LINE_CONTRACT_NUMBER,X_DEAL_VALUES_REC.CREDIT_LINE_CHR_ID,X_DEAL_VALUES_REC.CREDIT_GVR_ID;
9196   CLOSE c_gvr_data;
9197 
9198   X_DEAL_VALUES_REC.CURRENCY_CONV_TYPE_MEANING    :=  OKL_LLA_UTIL_PVT.GET_LOOKUP_MEANING('OKL_CONVERSION_TYPE_CODE',L_HDR_UV_REC.KHR_CURRENCY_CONVERSION_TYPE);
9199 
9200   -- splitting the customer name and customer account number cursors to support
9201   -- ui query to show customer name without customer account.
9202   OPEN c_cust_name(L_HDR_UV_REC.CUST_OBJECT1_ID1);
9203   FETCH c_cust_name INTO X_DEAL_VALUES_REC.CUSTOMER_NAME;
9204   CLOSE c_cust_name;
9205 
9206   OPEN c_cust_acct_num_csr(L_HDR_UV_REC.CHR_CUST_ACCT_ID);
9207   FETCH c_cust_acct_num_csr INTO X_DEAL_VALUES_REC.CUSTOMER_ACCOUNT;
9208   CLOSE c_cust_acct_num_csr;
9209 
9210   X_DEAL_VALUES_REC.CUSTOMER_CPL_ID              :=  L_HDR_UV_REC.CUST_ID;
9211   IF(L_HDR_UV_REC.CUST_JTOT_OBJECT1_CODE IS NULL)THEN
9212     X_DEAL_VALUES_REC.CUSTOMER_JTOT_OBJECT1_CODE   := 'OKX_PARTY';
9213   ELSE
9214     X_DEAL_VALUES_REC.CUSTOMER_JTOT_OBJECT1_CODE   :=  L_HDR_UV_REC.CUST_JTOT_OBJECT1_CODE;
9215   END IF;
9216 
9217   X_DEAL_VALUES_REC.CUSTOMER_OBJECT1_ID1         :=  L_HDR_UV_REC.CUST_OBJECT1_ID1;
9218   X_DEAL_VALUES_REC.CUSTOMER_OBJECT1_ID2         :=  L_HDR_UV_REC.CUST_OBJECT1_ID2;
9219   X_DEAL_VALUES_REC.CUST_ACCT_ID                 :=  L_HDR_UV_REC.CHR_CUST_ACCT_ID;
9220   X_DEAL_VALUES_REC.CUST_PO_NUMBER               :=  L_HDR_UV_REC.CHR_CUST_PO_NUMBER;
9221   X_DEAL_VALUES_REC.DEAL_TYPE                    :=  L_HDR_UV_REC.KHR_DEAL_TYPE;
9222 
9223   X_DEAL_VALUES_REC.DESCRIPTION                  :=  L_HDR_UV_REC.CHR_DESCRIPTION;
9224   X_DEAL_VALUES_REC.ELIG_FOR_PREFUNDING_MEANING  :=  OKL_LLA_UTIL_PVT.GET_LOOKUP_MEANING('OKL_YES_NO',L_HDR_UV_REC.KHR_PREFUNDING_ELIGIBLE_YN);
9225   X_DEAL_VALUES_REC.ID                           :=  L_HDR_UV_REC.CHR_ID;
9226   X_DEAL_VALUES_REC.INTEREST_CALC_MEANING         :=  L_HDR_UV_REC.INTEREST_CALCULATION_MEANING;
9227 
9228   OPEN c_ledger(l_hdr_rec.id,l_hdr_rec.authoring_org_id);
9229   FETCH c_ledger INTO X_DEAL_VALUES_REC.LEDGER_ID, X_DEAL_VALUES_REC.LEDGER_NAME, X_DEAL_VALUES_REC.OPERATING_UNIT_NAME;
9230   CLOSE c_ledger;
9231 
9232   IF (l_HDR_UV_REC.CHR_ORIG_SYSTEM_SOURCE_CODE = 'OKL_IMPORT') THEN
9233       X_DEAL_VALUES_REC.LEGACY_NUMBER             :=  L_HDR_UV_REC.CHR_ORIG_SYSTEM_REFERENCE1;
9234   END IF;
9235 
9236 --start|   27-Jun-2008 cklee Bug 6957971                                            |
9237   OPEN c_legal_address(l_HDR_UV_REC.cust_object1_id1,
9238                        L_HDR_UV_REC.CHR_CUST_ACCT_ID); -- cklee 06/27/08
9239   FETCH c_legal_address INTO X_DEAL_VALUES_REC.LEGAL_ADDRESS;
9240   CLOSE c_legal_address;
9241 --end|   27-Jun-2008 cklee Bug 6957971                                            |
9242 
9243 
9244   X_DEAL_VALUES_REC.LEGAL_ADDRESS_ID              :=  NULL;
9245 
9246   OPEN c_le_name(l_hdr_rec.legal_entity_id);
9247   FETCH c_le_name INTO X_DEAL_VALUES_REC.LEGAL_ENTITY_NAME;
9248   CLOSE c_le_name;
9249 
9250   X_DEAL_VALUES_REC.LESSOR_INSURED_MEANING        :=  NULL;
9251   X_DEAL_VALUES_REC.LESSOR_PAYEE_MEANING          :=  NULL;
9252   X_DEAL_VALUES_REC.LESSOR_SERV_ORG_CODE          :=  NULL;
9253 
9254   OPEN c_gvr_data('MASTER_LEASE',l_HDR_UV_REC.CHR_ID,l_HDR_UV_REC.CHR_ID);
9255   FETCH c_gvr_data INTO X_DEAL_VALUES_REC.MLA_CONTRACT_NUMBER,X_DEAL_VALUES_REC.MLA_CHR_ID,X_DEAL_VALUES_REC.MLA_GVR_ID;
9256   CLOSE c_gvr_data;
9257 
9258   X_DEAL_VALUES_REC.NNTF_RGD_CODE               :=  'LANNTF';
9259   X_DEAL_VALUES_REC.NNTF_RGP_ID                 :=  L_HDR_UV_REC.RG_LANNTF_ID;
9260   X_DEAL_VALUES_REC.NNTF_RUL_ID                 :=  L_HDR_UV_REC.R_LANNTF_ID;
9261   X_DEAL_VALUES_REC.NNTF_RUL_INF1               :=  L_HDR_UV_REC.R_LANNTF_RULE_INFORMATION1;
9262   X_DEAL_VALUES_REC.NNTF_RUL_INF_CAT            :=  'LANNTF';
9263   X_DEAL_VALUES_REC.NON_NOTIFICATION_MEANING    :=  OKL_LLA_UTIL_PVT.GET_LOOKUP_MEANING('OKL_YES_NO',L_HDR_UV_REC.R_LANNTF_RULE_INFORMATION1);
9264 
9265   FOR c_prompt_rec in c_prompt_name
9266   LOOP
9267     IF (c_prompt_rec.rule_code = 'LACPLN') THEN
9268         X_DEAL_VALUES_REC.COL_LACPLN_FORM_LEFT_PROMPT :=  C_PROMPT_REC.FORM_LEFT_PROMPT;
9269     ELSIF (c_prompt_rec.rule_code = 'LANNTF') THEN
9270         X_DEAL_VALUES_REC.COL_LANNTF_FORM_LEFT_PROMPT :=  C_PROMPT_REC.FORM_LEFT_PROMPT;
9271     ELSIF (c_prompt_rec.rule_code = 'LAREBL') THEN
9272         X_DEAL_VALUES_REC.COL_LAREBL_FORM_LEFT_PROMPT :=  C_PROMPT_REC.FORM_LEFT_PROMPT;
9273     ELSIF (c_prompt_rec.rule_code = 'LARLES') THEN
9274         X_DEAL_VALUES_REC.COL_LARLES_FORM_LEFT_PROMPT :=  C_PROMPT_REC.FORM_LEFT_PROMPT;
9275     ELSIF (c_prompt_rec.rule_code = 'LATOWN') THEN
9276         X_DEAL_VALUES_REC.COL_LATOWN_FORM_LEFT_PROMPT :=  C_PROMPT_REC.FORM_LEFT_PROMPT;
9277     ELSIF (c_prompt_rec.rule_code = 'LAPACT') THEN
9278         X_DEAL_VALUES_REC.COL_LAPACT_FORM_LEFT_PROMPT :=  C_PROMPT_REC.FORM_LEFT_PROMPT;
9279     END IF;
9280   END LOOP;
9281 
9282   IF (l_HDR_UV_REC.CHR_ORIG_SYSTEM_SOURCE_CODE = 'OKL_QUOTE') THEN
9283      X_DEAL_VALUES_REC.ORIGINATION_QUOTE_ID       :=  L_HDR_UV_REC.CHR_ORIG_SYSTEM_ID1;
9284      OPEN c_quote_name(l_HDR_UV_REC.CHR_ORIG_SYSTEM_ID1);
9285      FETCH c_quote_name INTO X_DEAL_VALUES_REC.ORIGINATION_QUOTE_NAME;
9286      CLOSE c_quote_name;
9287   END IF;
9288 
9289   X_DEAL_VALUES_REC.ORIG_SYSTEM_ID1               :=  L_HDR_UV_REC.CHR_ORIG_SYSTEM_ID1;
9290   X_DEAL_VALUES_REC.ORIG_SYSTEM_REFERENCE1        :=  L_HDR_UV_REC.CHR_ORIG_SYSTEM_REFERENCE1;
9291   X_DEAL_VALUES_REC.ORIG_SYSTEM_SOURCE_CODE       :=  L_HDR_UV_REC.CHR_ORIG_SYSTEM_SOURCE_CODE;
9292 
9293   IF (l_HDR_UV_REC.CHR_ORIG_SYSTEM_SOURCE_CODE = 'OKL_LEASE_APP') THEN
9294       OPEN c_orig_lease_application(L_HDR_UV_REC.CHR_ORIG_SYSTEM_ID1);
9295       FETCH c_orig_lease_application INTO X_DEAL_VALUES_REC.ORIGINATION_LEASE_APPLICATION;
9296       X_DEAL_VALUES_REC.LEASE_APPLICATION_ID   := L_HDR_UV_REC.CHR_ORIG_SYSTEM_ID1;
9297       X_DEAL_VALUES_REC.LEASE_APPLICATION_NAME := X_DEAL_VALUES_REC.ORIGINATION_LEASE_APPLICATION;
9298       CLOSE c_orig_lease_application;
9299   END IF;
9300 
9301   X_DEAL_VALUES_REC.PRIVATE_ACT_BOND_MEANING    :=  OKL_LLA_UTIL_PVT.GET_LOOKUP_MEANING('OKL_YES_NO',L_HDR_UV_REC.R_LAPACT_RULE_INFORMATION1);
9302   X_DEAL_VALUES_REC.PRODUCT_DESCRIPTION         :=  L_HDR_UV_REC.PRODUCT_DESCRIPTION;
9303   X_DEAL_VALUES_REC.PRODUCT_NAME                :=  L_HDR_UV_REC.PRODUCT_NAME;
9304 
9305   IF ((L_HDR_UV_REC.CHR_ORIG_SYSTEM_SOURCE_CODE = 'OKC_HDR') AND (L_HDR_UV_REC.KHR_KHR_ID IS NOT NULL))THEN
9306      X_DEAL_VALUES_REC.PROGRAM_TEMPLATE_CHR_ID    :=  L_HDR_UV_REC.CHR_ORIG_SYSTEM_ID1;
9307      OPEN c_program_template_name(l_HDR_UV_REC.CHR_ORIG_SYSTEM_ID1,l_HDR_UV_REC.KHR_KHR_ID);
9308      FETCH c_program_template_name INTO X_DEAL_VALUES_REC.PROGRAM_TEMPLATE_NAME;
9309      CLOSE c_program_template_name;
9310   END IF;
9311 
9312   X_DEAL_VALUES_REC.PRV_ACT_BOND_RGD_CODE         :=  'LAPACT';
9313   X_DEAL_VALUES_REC.PRV_ACT_BOND_RGP_ID           :=  L_HDR_UV_REC.RG_LAPACT_ID;
9314   X_DEAL_VALUES_REC.PRV_ACT_BOND_RUL_ID           :=  L_HDR_UV_REC.R_LAPACT_ID;
9315   X_DEAL_VALUES_REC.PRV_ACT_BOND_RUL_INF1         :=  L_HDR_UV_REC.R_LAPACT_RULE_INFORMATION1;
9316   X_DEAL_VALUES_REC.PRV_ACT_BOND_RUL_INF_CAT      :=  'LAPACT';
9317 
9318   X_DEAL_VALUES_REC.REBOOK_LIMIT_DATE             :=  TO_CHAR(TO_DATE(L_HDR_UV_REC.R_LAREBL_RULE_INFORMATION1,'YYYY/MM/DD'));
9319   X_DEAL_VALUES_REC.REBOOK_LIMIT_DATE_RGD_CODE    :=  'LAREBL';
9320   X_DEAL_VALUES_REC.REBOOK_LIMIT_DATE_RGP_ID      :=  L_HDR_UV_REC.RG_LAREBL_ID;
9321   X_DEAL_VALUES_REC.REBOOK_LIMIT_DATE_RUL_ID      :=  L_HDR_UV_REC.R_LAREBL_ID;
9322   X_DEAL_VALUES_REC.REBOOK_LIMIT_RUL_INF1         :=  L_HDR_UV_REC.R_LAREBL_RULE_INFORMATION1;
9323   X_DEAL_VALUES_REC.REBOOK_LIMIT_RUL_INF_CAT      :=  'LAREBL';
9324 
9325   IF (L_HDR_UV_REC.CHR_ORIG_SYSTEM_SOURCE_CODE = 'OKL_RELEASE') THEN
9326      X_DEAL_VALUES_REC.REPLACES_CHR_ID            :=  L_HDR_UV_REC.CHR_ORIG_SYSTEM_ID1;
9327      OPEN c_okc_hdr(l_HDR_UV_REC.CHR_ORIG_SYSTEM_ID1);
9328      FETCH c_okc_hdr INTO X_DEAL_VALUES_REC.REPLACES_CONTRACT_NUMBER;
9329      CLOSE c_okc_hdr;
9330   END IF;
9331 
9332   X_DEAL_VALUES_REC.REP_CONTACT_ID                :=  L_HDR_UV_REC.CONTACT_ID;
9333   X_DEAL_VALUES_REC.REP_CONTACT_JTOT_OBJECT1_CODE :=  L_HDR_UV_REC.CONTACT_JTOT_OBJECT1_CODE;
9334   X_DEAL_VALUES_REC.REP_CONTACT_OBJECT1_ID1       :=  L_HDR_UV_REC.CONTACT_OBJECT1_ID1;
9335 
9336   IF (L_HDR_UV_REC.CONTACT_OBJECT1_ID2 <> '#') THEN
9337       X_DEAL_VALUES_REC.REP_CONTACT_OBJECT1_ID2   :=  L_HDR_UV_REC.CONTACT_OBJECT1_ID2;
9338   END IF;
9339 
9340   X_DEAL_VALUES_REC.REVENUE_RECOGNITION_MEANING   :=  L_HDR_UV_REC.REVENUE_RECOGNITION_MEANING;
9341   X_DEAL_VALUES_REC.REVOLVING_CREDIT_YN           :=  L_HDR_UV_REC.KHR_REVOLVING_CREDIT_YN;
9342 
9343   X_DEAL_VALUES_REC.RLES_RGD_CODE                 :=  'LARLES';
9344   X_DEAL_VALUES_REC.RLES_RGP_ID                   :=  L_HDR_UV_REC.RG_LARLES_ID;
9345   X_DEAL_VALUES_REC.RLES_RUL_ID                   :=  L_HDR_UV_REC.R_LARLES_ID;
9346   X_DEAL_VALUES_REC.RLES_RUL_INF1                 :=  L_HDR_UV_REC.R_LARLES_RULE_INFORMATION1;
9347   X_DEAL_VALUES_REC.RLES_RUL_INF_CAT              :=  'LARLES';
9348   X_DEAL_VALUES_REC.RELEASED_ASSET_MEANING        :=  OKL_LLA_UTIL_PVT.GET_LOOKUP_MEANING('OKL_YES_NO',L_HDR_UV_REC.R_LARLES_RULE_INFORMATION1);
9349 
9350   OPEN c_salesrep(L_HDR_UV_REC.contact_object1_id1);
9351   FETCH c_salesrep INTO X_DEAL_VALUES_REC.SALES_REPRESENTATIVE_NAME;
9352   CLOSE c_salesrep;
9353 
9354   X_DEAL_VALUES_REC.SCS_CODE_MEANING            :=  NULL;
9355   X_DEAL_VALUES_REC.SPLIT_FROM_CHR_ID           :=  NULL;
9356   X_DEAL_VALUES_REC.SPLIT_FROM_CONTRACT_NUMBER  :=  NULL;
9357   X_DEAL_VALUES_REC.STS_CODE_MEANING            :=  L_HDR_UV_REC.CHR_STS_MEANING;
9358 
9359   X_DEAL_VALUES_REC.TAX_OWNER_CODE            :=  L_HDR_UV_REC.R_LATOWN_RULE_INFORMATION1;
9360   X_DEAL_VALUES_REC.TAX_OWNER_MEANING         :=  OKL_LLA_UTIL_PVT.GET_LOOKUP_MEANING('OKL_TAX_OWNER',l_HDR_UV_REC.R_LATOWN_RULE_INFORMATION1);
9361   X_DEAL_VALUES_REC.TAX_OWNER_RGD_CODE        :=  'LATOWN';
9362   X_DEAL_VALUES_REC.TAX_OWNER_RGP_ID          :=  L_HDR_UV_REC.RG_LATOWN_ID;
9363   X_DEAL_VALUES_REC.TAX_OWNER_RUL_ID          :=  L_HDR_UV_REC.R_LATOWN_ID;
9364   X_DEAL_VALUES_REC.TAX_OWNER_RUL_INF1        :=  L_HDR_UV_REC.R_LATOWN_RULE_INFORMATION1;
9365   X_DEAL_VALUES_REC.TAX_OWNER_RUL_INF_CAT     :=  'LATOWN';
9366 
9367   X_DEAL_VALUES_REC.UPG_ORIG_SYSTEM_REF       :=  NULL;
9368   X_DEAL_VALUES_REC.UPG_ORIG_SYSTEM_REF_ID    :=  NULL;
9369   X_DEAL_VALUES_REC.VPA_CONTRACT_NUMBER       :=  L_HDR_UV_REC.PROGRAM_CONTRACT_NUMBER;
9370   X_DEAL_VALUES_REC.VPA_KHR_ID                :=  L_HDR_UV_REC.KHR_KHR_ID;
9371   X_DEAL_VALUES_REC.VERS_VERSION              :=  L_HDR_UV_REC.VERS_VERSION;
9372 
9373   -- sjalasut, added product subclass code which will serve as a criteria to the Product List of values page
9374   X_DEAL_VALUES_REC.PRODUCT_SUBCLASS_CODE     := 'LEASE';
9375 
9376   --Bug# 8370699
9377   X_DEAL_VALUES_REC.LAST_ACTIVATION_DATE      := OKL_LLA_UTIL_PVT.GET_LAST_ACTIVATION_DATE(p_chr_id => p_chr_id);
9378 
9379   CLOSE c_hdr_full_v;
9380   CLOSE c_hdr_full_uv;
9381 
9382     IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
9383        RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9384     ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
9385        RAISE OKL_API.G_EXCEPTION_ERROR;
9386     END IF;
9387 
9388     OKL_API.END_ACTIVITY (x_msg_count,x_msg_data );
9389 
9390     EXCEPTION
9391     WHEN OKL_API.G_EXCEPTION_ERROR THEN
9392     x_return_status := OKL_API.HANDLE_EXCEPTIONS(
9393                                l_api_name,
9394                                G_PKG_NAME,
9395                                'OKL_API.G_RET_STS_ERROR',
9396                                x_msg_count,
9397                                x_msg_data,
9398                                '_PVT');
9399     WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
9400     x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
9401                               l_api_name,
9402                               G_PKG_NAME,
9403                               'OKL_API.G_RET_STS_UNEXP_ERROR',
9404                               x_msg_count,
9405                               x_msg_data,
9406                               '_PVT');
9407     WHEN OTHERS THEN
9408     x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
9409                               l_api_name,
9410                               G_PKG_NAME,
9411                               'OTHERS',
9412                               x_msg_count,
9413                               x_msg_data,
9414                               '_PVT');
9415   END load_deal;
9416 
9417   -- Start of comments
9418   -- API name       : load_booking_summary
9419   -- Pre-reqs       : None
9420   -- Function       : This procedure loads booking summary record
9421   -- Parameters     :
9422   -- IN             : p_api_version - Standard input parameter
9423   --                  p_init_msg_list - Standard input parameter
9424   --                  p_chr_id  - Contract ID
9425   -- Version        : 1.0
9426   -- History        : asahoo created.
9427   -- End of comments
9428 
9429   PROCEDURE load_booking_summary(
9430       p_api_version                IN  NUMBER,
9431       p_init_msg_list              IN  VARCHAR2 DEFAULT OKL_API.G_FALSE,
9432       x_return_status              OUT NOCOPY VARCHAR2,
9433       x_msg_count                  OUT NOCOPY NUMBER,
9434       x_msg_data                   OUT NOCOPY VARCHAR2,
9435       p_chr_id                     IN  NUMBER,
9436       x_booking_summary_rec        OUT NOCOPY booking_summary_rec) IS
9437 
9438   l_return_status        VARCHAR2(1) default OKL_API.G_RET_STS_SUCCESS;
9439   l_api_name             CONSTANT VARCHAR2(30) := 'load_booking_summary';
9440   l_api_version          CONSTANT NUMBER := 1.0;
9441 
9442   CURSOR c_khr_currency(p_chr_id IN NUMBER) IS
9443   SELECT CURRENCY_CODE
9444   FROM   OKC_K_HEADERS_B
9445   WHERE  ID = p_chr_id;
9446 
9447   CURSOR c_residual_amt(p_chr_id NUMBER) IS
9448   SELECT SUM(kle.residual_value) total_residual_amount
9449   FROM okl_k_lines kle,
9450        okc_k_lines_b cleb
9451   WHERE cleb.dnz_chr_id = p_chr_id
9452   AND   cleb.chr_id = p_chr_id
9453   AND   kle.id = cleb.id;
9454 
9455   CURSOR c_eot(p_chr_id NUMBER) IS
9456   SELECT rul.rule_information1 eot_option_code,
9457          rul.rule_information2 eot_option_amount
9458   FROM   okc_rule_groups_b rgp,
9459          okc_rules_b rul
9460   WHERE  rgp.dnz_chr_id = p_chr_id
9461   AND    rgp.rgd_code = 'AMTFOC'
9462   AND    rgp.dnz_chr_id = rgp.dnz_chr_id
9463   AND    rul.rgp_id = rgp.id
9464   AND    rul.rule_information_category = 'AMBPOC';
9465 
9466   CURSOR c_upfront_tax(p_chr_id NUMBER) IS
9467   SELECT SUM(NVL(total_tax,0))
9468   FROM okl_tax_sources txs
9469   WHERE txs.khr_id = p_chr_id
9470   AND txs.tax_line_status_code = 'ACTIVE'
9471   AND txs.tax_call_type_code = 'UPFRONT_TAX';
9472 
9473   CURSOR c_rvi_premium(p_chr_id NUMBER) IS
9474   SELECT kle.amount rvi_premium
9475   FROM   okc_k_lines_b cleb,
9476          okl_k_lines kle,
9477          okc_line_styles_b lseb
9478   WHERE cleb.dnz_chr_id = p_chr_id
9479   AND   cleb.chr_id = p_chr_id
9480   AND   kle.id = cleb.id
9481   AND   cleb.lse_id = lseb.id
9482   AND   lseb.lty_code = 'FEE'
9483   AND   kle.fee_purpose_code = 'RVI';
9484 
9485   l_eot_option_code       okc_rules_b.rule_information1%TYPE;
9486   l_currency_code         okc_k_headers_b.currency_code%TYPE;
9487   l_total_financed_amount NUMBER;
9488   l_total_funded          NUMBER;
9489   l_total_subsidies       NUMBER;
9490   l_eot_amount            NUMBER;
9491   l_upfront_sales_tax     NUMBER;
9492   l_rvi_premium           NUMBER;
9493   l_residual_amount       NUMBER;
9494 
9495   BEGIN
9496     IF( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
9497           FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, 'OKL_DEAL_CREAT_PVT.load_booking_summary.', 'Begin(+)');
9498      END IF;
9499 
9500     x_return_status := OKL_API.G_RET_STS_SUCCESS;
9501     -- Call start_activity to create savepoint, check compatibility
9502     -- and initialize message list
9503     x_return_status := OKL_API.START_ACTIVITY (
9504                                l_api_name
9505                                ,p_init_msg_list
9506                                ,'_PVT'
9507                                ,x_return_status);
9508     -- Check if activity started successfully
9509     IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
9510        RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9511     ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
9512        RAISE OKL_API.G_EXCEPTION_ERROR;
9513     END IF;
9514 
9515     IF( FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
9516             FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, 'OKL_DEAL_CREAT_PVT.load_booking_summary.',
9517                    'p_chr_id :'||p_chr_id);
9518     END IF;
9519 
9520     x_booking_summary_rec.dnz_chr_id := p_chr_id;
9521 
9522     OPEN c_khr_currency(p_chr_id => p_chr_id);
9523     FETCH c_khr_currency INTO l_currency_code;
9524     CLOSE c_khr_currency;
9525 
9526     OKL_EXECUTE_FORMULA_PUB.execute(
9527                                    p_api_version          => p_api_version,
9528                                    p_init_msg_list        => p_init_msg_list,
9529                                    x_return_status        => x_return_status,
9530                                    x_msg_count            => x_msg_count,
9531                                    x_msg_data             => x_msg_data,
9532                                    p_formula_name         => 'CONTRACT_FINANCED_AMOUNT_BKG',
9533                                    p_contract_id          => p_chr_id,
9534                                    p_line_id              => NULL,
9535                                    x_value                => l_total_financed_amount);
9536 
9537     IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
9538        RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9539     ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
9540        RAISE OKL_API.G_EXCEPTION_ERROR;
9541     END IF;
9542 
9543     -- Format the financed amt
9544     x_booking_summary_rec.total_financed_amount := OKL_ACCOUNTING_UTIL.format_amount(
9545                                                             l_total_financed_amount,
9546                                                             l_currency_code);
9547 
9548     OKL_EXECUTE_FORMULA_PUB.execute(
9549                                    p_api_version          => p_api_version,
9550                                    p_init_msg_list        => p_init_msg_list,
9551                                    x_return_status        => x_return_status,
9552                                    x_msg_count            => x_msg_count,
9553                                    x_msg_data             => x_msg_data,
9554                                    p_formula_name         => 'CONTRACT_TOT_FNDED',
9555                                    p_contract_id          => p_chr_id,
9556                                    p_line_id              => NULL,
9557                                    x_value                => l_total_funded);
9558 
9559     IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
9560        RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9561     ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
9562        RAISE OKL_API.G_EXCEPTION_ERROR;
9563     END IF;
9564 
9565     -- Format the funded amt
9566     x_booking_summary_rec.total_funded := OKL_ACCOUNTING_UTIL.format_amount(
9567                                                             l_total_funded,
9568                                                             l_currency_code);
9569 
9570     OPEN c_residual_amt(p_chr_id => p_chr_id);
9571     FETCH c_residual_amt INTO l_residual_amount;
9572     CLOSE c_residual_amt;
9573     -- Format the residual amt
9574     x_booking_summary_rec.total_residual_amount := OKL_ACCOUNTING_UTIL.format_amount(
9575                                                             l_residual_amount,
9576                                                             l_currency_code);
9577 
9578     OKL_SUBSIDY_PROCESS_PVT.get_contract_subsidy_amount(
9579                                    p_api_version       => p_api_version,
9580                                    p_init_msg_list     => p_init_msg_list,
9581                                    x_return_status     => x_return_status,
9582                                    x_msg_count         => x_msg_count,
9583                                    x_msg_data          => x_msg_data,
9584                                    p_chr_id            => p_chr_id,
9585                                    p_accounting_method => NULL,
9586                                    x_subsidy_amount    => l_total_subsidies);
9587 
9588     IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
9589        RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9590     ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
9591        RAISE OKL_API.G_EXCEPTION_ERROR;
9592     END IF;
9593 
9594     -- Format the subsidy amt
9595     x_booking_summary_rec.total_subsidies := OKL_ACCOUNTING_UTIL.format_amount(
9596                                                             l_total_subsidies,
9597                                                             l_currency_code);
9598 
9599     OPEN c_eot(p_chr_id => p_chr_id);
9600     FETCH c_eot INTO l_eot_option_code,l_eot_amount;
9601     CLOSE c_eot;
9602     -- Format the end of term amt
9603     x_booking_summary_rec.eot_amount := OKL_ACCOUNTING_UTIL.format_amount(
9604                                                             l_eot_amount,
9605                                                             l_currency_code);
9606 
9607     x_booking_summary_rec.eot_option := OKL_LLA_UTIL_PVT.GET_LOOKUP_MEANING('OKL_QUOTE_RULE_OPTION_TYPE',l_eot_option_code);
9608 
9609     OPEN c_upfront_tax(p_chr_id => p_chr_id);
9610     FETCH c_upfront_tax INTO l_upfront_sales_tax;
9611     CLOSE c_upfront_tax;
9612     -- Format the upfront tax amt
9613     x_booking_summary_rec.total_upfront_sales_tax := OKL_ACCOUNTING_UTIL.format_amount(
9614                                                             l_upfront_sales_tax,
9615                                                             l_currency_code);
9616 
9617     OPEN c_rvi_premium(p_chr_id => p_chr_id);
9618     FETCH c_rvi_premium INTO l_rvi_premium;
9619     CLOSE c_rvi_premium;
9620     -- Format the rvi premium amt
9621     x_booking_summary_rec.rvi_premium := OKL_ACCOUNTING_UTIL.format_amount(
9622                                                             l_rvi_premium,
9623                                                             l_currency_code);
9624 
9625     OKL_API.END_ACTIVITY (x_msg_count,x_msg_data );
9626 
9627     IF( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
9628           FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, 'OKL_DEAL_CREAT_PVT.load_booking_summary.', 'End(-)');
9629      END IF;
9630 
9631     EXCEPTION
9632     WHEN OKL_API.G_EXCEPTION_ERROR THEN
9633          IF c_khr_currency%ISOPEN THEN
9634             CLOSE c_khr_currency;
9635          END IF;
9636          IF c_residual_amt%ISOPEN THEN
9637             CLOSE c_residual_amt;
9638          END IF;
9639          IF c_eot%ISOPEN THEN
9640             CLOSE c_eot;
9641          END IF;
9642          IF c_upfront_tax%ISOPEN THEN
9643             CLOSE c_upfront_tax;
9644          END IF;
9645          IF c_rvi_premium%ISOPEN THEN
9646             CLOSE c_rvi_premium;
9647          END IF;
9648          x_return_status := OKL_API.HANDLE_EXCEPTIONS(
9649                                     l_api_name,
9650                                     G_PKG_NAME,
9651                                     'OKL_API.G_RET_STS_ERROR',
9652                                     x_msg_count,
9653                                     x_msg_data,
9654                                     '_PVT');
9655          IF( FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
9656               FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, 'OKL_DEAL_CREAT_PVT.load_booking_summary.', 'EXP - ERROR');
9657          END IF;
9658     WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
9659          IF c_khr_currency%ISOPEN THEN
9660             CLOSE c_khr_currency;
9661          END IF;
9662          IF c_residual_amt%ISOPEN THEN
9663             CLOSE c_residual_amt;
9664          END IF;
9665          IF c_eot%ISOPEN THEN
9666             CLOSE c_eot;
9667          END IF;
9668          IF c_upfront_tax%ISOPEN THEN
9669             CLOSE c_upfront_tax;
9670          END IF;
9671          IF c_rvi_premium%ISOPEN THEN
9672             CLOSE c_rvi_premium;
9673          END IF;
9674          x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
9675                                    l_api_name,
9676                                    G_PKG_NAME,
9677                                    'OKL_API.G_RET_STS_UNEXP_ERROR',
9678                                    x_msg_count,
9679                                    x_msg_data,
9680                                    '_PVT');
9681          IF( FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
9682               FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, 'OKL_DEAL_CREAT_PVT.load_booking_summary.', 'EXP - UNEXCP ERROR');
9683          END IF;
9684     WHEN OTHERS THEN
9685          IF c_khr_currency%ISOPEN THEN
9686             CLOSE c_khr_currency;
9687          END IF;
9688          IF c_residual_amt%ISOPEN THEN
9689             CLOSE c_residual_amt;
9690          END IF;
9691          IF c_eot%ISOPEN THEN
9692             CLOSE c_eot;
9693          END IF;
9694          IF c_upfront_tax%ISOPEN THEN
9695             CLOSE c_upfront_tax;
9696          END IF;
9697          IF c_rvi_premium%ISOPEN THEN
9698             CLOSE c_rvi_premium;
9699          END IF;
9700          x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
9701                                    l_api_name,
9702                                    G_PKG_NAME,
9703                                    'OTHERS',
9704                                    x_msg_count,
9705                                    x_msg_data,
9706                                    '_PVT');
9707          IF( FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
9708               FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, 'OKL_DEAL_CREAT_PVT.load_booking_summary.', 'EXP - OTHERS');
9709          END IF;
9710        END load_booking_summary;
9711 
9712 END Okl_Deal_Creat_Pvt;