[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;