[Home] [Help]
PACKAGE BODY: APPS.OKL_DEAL_CREAT_PVT
Source
1 PACKAGE BODY Okl_Deal_Creat_Pvt AS
2 /* $Header: OKLRDCRB.pls 120.5.12010000.5 2008/11/21 21:04:24 cklee 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 CURSOR c_vp_cpl_csr(p_source_id NUMBER) IS
2251 SELECT id, object_version_number, sfwt_flag,
2252 cpl_id, chr_id, cle_id,
2253 rle_code, dnz_chr_id, object1_id1,
2254 object1_id2, jtot_object1_code, cognomen,
2255 code, facility, minority_group_lookup_code,
2256 small_business_flag, women_owned_flag, alias,
2257 attribute_category, attribute1, attribute2,
2258 attribute3, attribute4, attribute5,
2259 attribute6, attribute7, attribute8,
2260 attribute9, attribute10, attribute11,
2261 attribute12, attribute13, attribute14,
2262 attribute15, created_by, creation_date,
2263 last_updated_by, last_update_date, last_update_login,
2264 cust_acct_id, bill_to_site_use_id
2265 FROM okc_k_party_roles_v cplv
2266 WHERE cplv.rle_code = G_LEASE_VENDOR
2267 AND cplv.chr_id = p_source_id; -- vendor program id
2268
2269 --Bug#5116278 end
2270
2271
2272 BEGIN
2273 x_return_status := OKC_API.START_ACTIVITY(
2274 p_api_name => l_api_name,
2275 p_pkg_name => g_pkg_name,
2276 p_init_msg_list => p_init_msg_list,
2277 l_api_version => l_api_version,
2278 p_api_version => p_api_version,
2279 p_api_type => g_api_type,
2280 x_return_status => x_return_status);
2281
2282 -- check if activity started successfully
2283 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2284 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2285 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
2286 RAISE OKC_API.G_EXCEPTION_ERROR;
2287 END IF;
2288
2289 lp_chrv_rec.sfwt_flag := 'N';
2290 lp_chrv_rec.object_version_number := 1.0;
2291 lp_chrv_rec.sts_code := G_STS_CODE; -- 'ENTERED';
2292 lp_chrv_rec.scs_code := p_scs_code;
2293 lp_chrv_rec.contract_number := p_contract_number;
2294 lp_chrv_rec.authoring_org_id := OKL_CONTEXT.GET_OKC_ORG_ID;
2295 lp_chrv_rec.inv_organization_id := OKL_CONTEXT.get_okc_organization_id;
2296
2297 -- lp_chrv_rec.currency_code := OKC_CURRENCY_API.GET_OU_CURRENCY(OKL_CONTEXT.GET_OKC_ORG_ID);
2298 lp_chrv_rec.currency_code := OKL_ACCOUNTING_UTIL.get_func_curr_code;
2299
2300 lp_chrv_rec.currency_code_renewed := NULL;
2301 lp_chrv_rec.template_yn := 'N';
2302 lp_chrv_rec.chr_type := 'CYA';
2303 lp_chrv_rec.archived_yn := 'N';
2304 lp_chrv_rec.deleted_yn := 'N';
2305 lp_chrv_rec.buy_or_sell := 'S';
2306 lp_chrv_rec.issue_or_receive := 'I';
2307 lp_chrv_rec.start_date := p_effective_from;
2308 /*
2309 IF ( p_template_yn = 'Y' ) THEN
2310 lp_chrv_rec.template_yn := 'Y';
2311 END IF;
2312 */
2313 lp_khrv_rec.object_version_number := 1.0;
2314
2315 IF ( p_program_name IS NOT NULL ) THEN
2316 lp_khrv_rec.khr_id := p_program_id;
2317 END IF;
2318
2319 IF ( p_template_type IS NOT NULL ) THEN
2320 lp_khrv_rec.template_type_code := p_template_type;
2321 lp_chrv_rec.template_yn := 'Y';
2322 END IF;
2323 --Added by dpsingh for LE Uptake
2324 lp_khrv_rec.legal_entity_id := p_legal_entity_id;
2325 OKL_CONTRACT_PUB.create_contract_header(
2326 p_api_version => p_api_version,
2327 p_init_msg_list => p_init_msg_list,
2328 x_return_status => x_return_status,
2329 x_msg_count => x_msg_count,
2330 x_msg_data => x_msg_data,
2331 p_chrv_rec => lp_chrv_rec,
2332 p_khrv_rec => lp_khrv_rec,
2333 x_chrv_rec => lx_chrv_rec,
2334 x_khrv_rec => lx_khrv_rec);
2335
2336 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2337 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2338 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
2339 RAISE OKC_API.G_EXCEPTION_ERROR;
2340 END IF;
2341
2342 x_chr_id := lx_chrv_rec.id;
2343
2344 --Bug#5116278 start
2345 IF ( p_program_name IS NOT NULL ) THEN
2346
2347 -- copy vp party lease vendor to lease contract
2348 l_vp_cpl_id := NULL;
2349
2350 OPEN c_vp_cpl_csr(p_program_id);
2351 FETCH c_vp_cpl_csr BULK COLLECT INTO l_cplv_tbl;
2352 CLOSE c_vp_cpl_csr;
2353
2354 IF( l_cplv_tbl.COUNT > 0 ) THEN
2355
2356 FOR i IN l_cplv_tbl.FIRST..l_cplv_tbl.LAST
2357 LOOP
2358 l_cplv_tbl(i).ID := null;
2359 IF (l_cplv_tbl(i).CHR_ID IS NOT NULL) THEN
2360 l_cplv_tbl(i).CHR_ID := x_chr_id;
2361 END IF;
2362 IF (l_cplv_tbl(i).DNZ_CHR_ID IS NOT NULL) THEN
2363 l_cplv_tbl(i).DNZ_CHR_ID := x_chr_id;
2364 END IF;
2365 l_kplv_tbl(i).attribute_category := null;
2366 END LOOP;
2367
2368 IF okl_context.get_okc_org_id IS NULL THEN
2369 l_chr_id := x_chr_id;
2370 okl_context.set_okc_org_context(p_chr_id => l_chr_id );
2371 END IF;
2372
2373 /*OKL_COPY_CONTRACT_PUB.copy_party_roles(
2374 p_api_version => p_api_version,
2375 p_init_msg_list => p_init_msg_list,
2376 x_return_status => x_return_status,
2377 x_msg_count => x_msg_count,
2378 x_msg_data => x_msg_data,
2379 p_cpl_id => l_vp_cpl_id,
2380 p_cle_id => NULL,
2381 p_chr_id => x_chr_id,
2382 p_rle_code => G_LEASE_VENDOR,
2383 x_cpl_id => x_cpl_id
2384 );*/
2385 IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
2386 OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'l_cplv_tbl.count= ' || l_cplv_tbl.count);
2387 END IF;
2388 okl_k_party_roles_pvt.create_k_party_role(
2389 p_api_version => p_api_version,
2390 p_init_msg_list => p_init_msg_list,
2391 x_return_status => x_return_status,
2392 x_msg_count => x_msg_count,
2393 x_msg_data => x_msg_data,
2394 p_cplv_tbl => l_cplv_tbl,
2395 x_cplv_tbl => lx_cplv_tbl,
2396 p_kplv_tbl => l_kplv_tbl,
2397 x_kplv_tbl => lx_kplv_tbl);
2398
2399 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2400 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2401 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
2402 RAISE OKC_API.G_EXCEPTION_ERROR;
2403 END IF;
2404
2405 END IF;
2406
2407 END IF;
2408 --Bug#5116278 end
2409
2410 IF ( p_customer_name IS NOT NULL ) THEN
2411
2412 -- now we attach the party to the header
2413 lp_cplv_rec.object_version_number := 1.0;
2414 lp_cplv_rec.sfwt_flag := OKC_API.G_FALSE;
2415 lp_cplv_rec.dnz_chr_id := x_chr_id;
2416 lp_cplv_rec.chr_id := x_chr_id;
2417 lp_cplv_rec.cle_id := NULL;
2418 lp_cplv_rec.object1_id1 := p_customer_id1;
2419 lp_cplv_rec.object1_id2 := p_customer_id2;
2420 lp_cplv_rec.jtot_object1_code := p_customer_code;
2421 lp_cplv_rec.rle_code := G_RLE_CODE;
2422
2423 OPEN check_party_csr(x_chr_id);
2424 FETCH check_party_csr INTO row_count;
2425 CLOSE check_party_csr;
2426 IF row_count = 1 THEN
2427 x_return_status := OKC_API.g_ret_sts_error;
2428 OKC_API.SET_MESSAGE(p_app_name => g_app_name, p_msg_name => 'Party_already_exists');
2429 RAISE OKC_API.G_EXCEPTION_ERROR;
2430 END IF;
2431
2432
2433 ----- Changes by Kanti
2434 ----- Validate the JTOT Object code, ID1 and ID2
2435
2436 OPEN role_csr(lp_cplv_rec.rle_code);
2437 FETCH role_csr INTO l_access_level;
2438 CLOSE role_csr;
2439
2440 IF (l_access_level = 'S') THEN
2441
2442 okl_la_validation_util_pvt.VALIDATE_ROLE_JTOT (p_api_version => p_api_version,
2443 p_init_msg_list => OKC_API.G_FALSE,
2444 x_return_status => x_return_status,
2445 x_msg_count => x_msg_count,
2446 x_msg_data => x_msg_data,
2447 p_object_name => lp_cplv_rec.jtot_object1_code,
2448 p_id1 => lp_cplv_rec.object1_id1,
2449 p_id2 => lp_cplv_rec.object1_id2);
2450 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2451 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2452 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
2453 RAISE OKC_API.G_EXCEPTION_ERROR;
2454 END IF;
2455
2456 END IF;
2457
2458 ---- Changes End
2459
2460 --Bug# 4558486: Changed call to okl_k_party_roles_pvt api
2461 -- to create records in tables
2462 -- okc_k_party_roles_b and okl_k_party_roles
2463 /*
2464 OKC_CONTRACT_PARTY_PUB.create_k_party_role(
2465 p_api_version => p_api_version,
2466 p_init_msg_list => p_init_msg_list,
2467 x_return_status => x_return_status,
2468 x_msg_count => x_msg_count,
2469 x_msg_data => x_msg_data,
2470 p_cplv_rec => lp_cplv_rec,
2471 x_cplv_rec => lx_cplv_rec);
2472 */
2473
2474 okl_k_party_roles_pvt.create_k_party_role(
2475 p_api_version => p_api_version,
2476 p_init_msg_list => p_init_msg_list,
2477 x_return_status => x_return_status,
2478 x_msg_count => x_msg_count,
2479 x_msg_data => x_msg_data,
2480 p_cplv_rec => lp_cplv_rec,
2481 x_cplv_rec => lx_cplv_rec,
2482 p_kplv_rec => lp_kplv_rec,
2483 x_kplv_rec => lx_kplv_rec);
2484
2485 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2486 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2487 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
2488 RAISE OKC_API.G_EXCEPTION_ERROR;
2489 END IF;
2490
2491 END IF;
2492
2493
2494 OKC_API.END_ACTIVITY(x_msg_count => x_msg_count, x_msg_data => x_msg_data);
2495
2496 EXCEPTION
2497 WHEN OKC_API.G_EXCEPTION_ERROR THEN
2498 x_return_status := OKC_API.HANDLE_EXCEPTIONS(
2499 p_api_name => l_api_name,
2500 p_pkg_name => g_pkg_name,
2501 p_exc_name => 'OKC_API.G_RET_STS_ERROR',
2502 x_msg_count => x_msg_count,
2503 x_msg_data => x_msg_data,
2504 p_api_type => g_api_type);
2505
2506 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2507 x_return_status := OKC_API.HANDLE_EXCEPTIONS(
2508 p_api_name => l_api_name,
2509 p_pkg_name => g_pkg_name,
2510 p_exc_name => 'OKC_API.G_RET_STS_UNEXP_ERROR',
2511 x_msg_count => x_msg_count,
2512 x_msg_data => x_msg_data,
2513 p_api_type => g_api_type);
2514
2515 WHEN OTHERS THEN
2516 x_return_status := OKC_API.HANDLE_EXCEPTIONS(
2517 p_api_name => l_api_name,
2518 p_pkg_name => g_pkg_name,
2519 p_exc_name => 'OTHERS',
2520 x_msg_count => x_msg_count,
2521 x_msg_data => x_msg_data,
2522 p_api_type => g_api_type);
2523 END;
2524
2525 PROCEDURE delete_rules(
2526 p_api_version IN NUMBER,
2527 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
2528 x_return_status OUT NOCOPY VARCHAR2,
2529 x_msg_count OUT NOCOPY NUMBER,
2530 x_msg_data OUT NOCOPY VARCHAR2,
2531 p_old_khr_id IN NUMBER, -- prev vp id
2532 p_source_id IN NUMBER, -- vp id
2533 p_dest_id IN NUMBER, -- k id
2534 p_org_id IN NUMBER,
2535 p_organization_id IN NUMBER) IS
2536
2537 l_api_name VARCHAR2(30) := 'DELETE_RULES';
2538 l_api_version CONSTANT NUMBER := 1.0;
2539
2540 lp_rgpv_rec Okl_Rule_Pub.rgpv_rec_type;
2541
2542 lp_cplv_rec OKL_OKC_MIGRATION_PVT.cplv_rec_type;
2543 lp_rmpv_rec OKL_OKC_MIGRATION_PVT.rmpv_rec_type;
2544
2545 l_rgpr_id NUMBER := NULL;
2546 l_vp_tmpl_id NUMBER;
2547 l_k_cpl_id okc_k_party_roles_v.id%TYPE := NULL;
2548 l_k_object1_id1 okc_k_party_roles_v.object1_id1%TYPE := NULL;
2549
2550 --Cursor to get vp template
2551 CURSOR vp_tmpl_csr(p_vp_id IN NUMBER) IS
2552 SELECT id
2553 FROM okl_k_headers_full_v
2554 WHERE scs_code = 'PROGRAM'
2555 AND sts_code IN ('ACTIVE','PASSED')
2556 AND khr_id = p_vp_id
2557 AND NVL(template_yn,'N') = 'Y';
2558
2559 -- returns rgp id thet exist in lease as well as vp
2560 CURSOR c_prev_src_crs(p_vp_tmpl_id IN NUMBER) IS
2561 SELECT rglease.id, rglease.rgd_code
2562 FROM okc_rule_groups_v rglease
2563 WHERE dnz_chr_id = p_dest_id
2564 AND chr_id = p_dest_id
2565 AND EXISTS(
2566 SELECT '1'
2567 FROM okc_rule_groups_v rg,
2568 okc_k_headers_v hdr
2569 WHERE rg.chr_id = p_vp_tmpl_id
2570 AND hdr.id = rg.chr_id
2571 AND hdr.id = rg.dnz_chr_id
2572 AND rg.cle_id IS NULL
2573 AND rg.rgd_code = rglease.rgd_code
2574 );
2575
2576 -- gets the party lease vendor that exists in vp
2577 --start modifying abhsaxen Cursor not in use
2578 -- CURSOR c_prev_cpl_csr IS
2579 --end modifying abhsaxen Cursor not in use
2580
2581 --start modifying abhsaxen Cursor not in use
2582
2583 -- CURSOR c_rg_party_csr(p_cpl_id IN NUMBER, p_object1_id1 IN okc_k_party_roles_v.object1_id1%TYPE) IS
2584 --end modifying abhsaxen Cursor not in use
2585 BEGIN
2586
2587 OKC_CONTEXT.SET_OKC_ORG_CONTEXT(
2588 p_org_id => p_org_id,
2589 p_organization_id => p_organization_id);
2590
2591 x_return_status := OKC_API.START_ACTIVITY(
2592 p_api_name => l_api_name,
2593 p_pkg_name => g_pkg_name,
2594 p_init_msg_list => p_init_msg_list,
2595 l_api_version => l_api_version,
2596 p_api_version => p_api_version,
2597 p_api_type => g_api_type,
2598 x_return_status => x_return_status);
2599
2600 -- check if activity started successfully
2601 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2602 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2603 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
2604 RAISE OKC_API.G_EXCEPTION_ERROR;
2605 END IF;
2606
2607 OPEN vp_tmpl_csr(p_vp_id => p_old_khr_id);
2608 FETCH vp_tmpl_csr INTO l_vp_tmpl_id;
2609
2610 IF vp_tmpl_csr%NOTFOUND THEN
2611 NULL;
2612 ELSE
2613
2614 -- copy vp rules to lease contract
2615 FOR l_c_prev_src_crs IN c_prev_src_crs(p_vp_tmpl_id => l_vp_tmpl_id) LOOP
2616
2617 lp_rgpv_rec.id := l_c_prev_src_crs.id;
2618
2619 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
2620
2621 OKL_RULE_PUB.delete_rule_group(
2622 p_api_version => p_api_version,
2623 p_init_msg_list => p_init_msg_list,
2624 x_return_status => x_return_status,
2625 x_msg_count => x_msg_count,
2626 x_msg_data => x_msg_data,
2627 p_rgpv_rec => lp_rgpv_rec
2628 );
2629
2630 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2631 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2632 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
2633 RAISE OKC_API.G_EXCEPTION_ERROR;
2634 END IF;
2635
2636 END IF;
2637
2638 END LOOP;
2639
2640 END IF;
2641
2642 CLOSE vp_tmpl_csr;
2643
2644 OKC_API.END_ACTIVITY(x_msg_count => x_msg_count, x_msg_data => x_msg_data);
2645
2646 EXCEPTION
2647 WHEN OKC_API.G_EXCEPTION_ERROR THEN
2648 x_return_status := OKC_API.HANDLE_EXCEPTIONS(
2649 p_api_name => l_api_name,
2650 p_pkg_name => g_pkg_name,
2651 p_exc_name => 'OKC_API.G_RET_STS_ERROR',
2652 x_msg_count => x_msg_count,
2653 x_msg_data => x_msg_data,
2654 p_api_type => g_api_type);
2655
2656 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2657 x_return_status := OKC_API.HANDLE_EXCEPTIONS(
2658 p_api_name => l_api_name,
2659 p_pkg_name => g_pkg_name,
2660 p_exc_name => 'OKC_API.G_RET_STS_UNEXP_ERROR',
2661 x_msg_count => x_msg_count,
2662 x_msg_data => x_msg_data,
2663 p_api_type => g_api_type);
2664
2665 WHEN OTHERS THEN
2666 x_return_status := OKC_API.HANDLE_EXCEPTIONS(
2667 p_api_name => l_api_name,
2668 p_pkg_name => g_pkg_name,
2669 p_exc_name => 'OTHERS',
2670 x_msg_count => x_msg_count,
2671 x_msg_data => x_msg_data,
2672 p_api_type => g_api_type);
2673 END;
2674
2675
2676 PROCEDURE copy_rules(
2677 p_api_version IN NUMBER,
2678 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
2679 x_return_status OUT NOCOPY VARCHAR2,
2680 x_msg_count OUT NOCOPY NUMBER,
2681 x_msg_data OUT NOCOPY VARCHAR2,
2682 p_source_id IN NUMBER, -- vp id
2683 p_dest_id IN NUMBER, -- k id
2684 p_org_id IN NUMBER,
2685 p_organization_id IN NUMBER) IS
2686
2687 l_api_name VARCHAR2(30) := 'COPY_RULES';
2688 l_api_version CONSTANT NUMBER := 1.0;
2689
2690 l_rgp_id okc_rule_groups_v.id%TYPE;
2691 l_cle_id okc_rule_groups_v.cle_id%TYPE DEFAULT NULL;
2692 l_chr_id okc_rule_groups_v.chr_id%TYPE := p_dest_id;
2693 l_to_template_yn VARCHAR2(5) :='N';
2694 x_rgp_id okc_rule_groups_v.id%TYPE;
2695
2696 l_func_curr_code okc_k_headers_b.currency_code%TYPE := NULL;
2697 l_k_curr_code okc_k_headers_b.currency_code%TYPE := NULL;
2698 l_start_date okc_k_headers_b.start_date%TYPE;
2699 l_rule_amt NUMBER;
2700 x_contract_currency okl_k_headers_full_v.currency_code%TYPE := NULL;
2701 x_currency_conversion_type okl_k_headers_full_v.currency_conversion_type%TYPE := NULL;
2702 x_currency_conversion_rate okl_k_headers_full_v.currency_conversion_rate%TYPE := NULL;
2703 x_currency_conversion_date okl_k_headers_full_v.currency_conversion_date%TYPE := NULL;
2704 x_converted_amount NUMBER := NULL;
2705
2706 l_rgd_code okc_rule_groups_b.rgd_code%TYPE := NULL;
2707 l_rule_info_cat okc_rules_b.rule_information_category%TYPE := NULL;
2708 l_rule_id NUMBER := NULL;
2709 l_rule_segment VARCHAR2(250) := NULL;
2710
2711 l_no_data_found BOOLEAN := TRUE;
2712
2713 l_vp_tmpl_id NUMBER;
2714
2715 --Cursor to get vp template
2716 CURSOR vp_tmpl_csr(p_vp_id IN NUMBER) IS
2717 SELECT id
2718 FROM okl_k_headers_full_v
2719 WHERE scs_code = 'PROGRAM'
2720 AND sts_code IN ('ACTIVE','PASSED')
2721 AND khr_id = p_vp_id
2722 AND NVL(template_yn,'N') = 'Y';
2723
2724 -- returns vendor program rgd codes which are qualified for lease
2725 CURSOR c_src_crs(p_vp_tmpl_id IN NUMBER) IS
2726 SELECT rg.id
2727 FROM okc_rule_groups_v rg,
2728 okc_k_headers_v hdr
2729 WHERE rg.chr_id = p_vp_tmpl_id
2730 AND hdr.id = rg.chr_id
2731 AND hdr.id = rg.dnz_chr_id
2732 AND rg.cle_id IS NULL
2733 AND EXISTS
2734 (SELECT '1'
2735 FROM okc_subclass_rg_defs rgdfs
2736 WHERE rgdfs.rgd_code = rg.rgd_code
2737 AND rgdfs.scs_code = 'LEASE')
2738 AND NOT EXISTS
2739 (SELECT '1'
2740 FROM okc_rule_groups_v rglease
2741 WHERE dnz_chr_id =p_dest_id
2742 AND chr_id = p_dest_id
2743 AND rglease.rgd_code = rg.rgd_code);
2744
2745 CURSOR c_rule_amt_crs(p_rule_code IN VARCHAR2, p_rule_group_code IN VARCHAR2) IS
2746 --Start modified abhsaxen for performance SQLID 20562750
2747 SELECT fus.application_column_name
2748 FROM FND_DESCR_FLEX_COLUMN_USAGES fus,
2749 fnd_flex_value_sets ffv,
2750 okc_rg_def_rules defrul,
2751 fnd_lookup_values flup,
2752 okc_rule_defs_v rulup
2753 WHERE fus.DESCRIPTIVE_FLEX_CONTEXT_CODE = defrul.rdf_code
2754 AND fus.application_id = 540
2755 AND ffv.flex_value_set_id = fus.flex_value_set_id
2756 AND flup.lookup_code = defrul.rgd_code
2757 AND flup.lookup_type = 'OKC_RULE_GROUP_DEF'
2758 AND rulup.rule_code = defrul.rdf_code
2759 AND defrul.rdf_code = p_rule_code
2760 AND defrul.rgd_code = p_rule_group_code
2761 AND flex_value_set_name = 'OKC_AMOUNT'
2762 --end modified abhsaxen for performance SQLID 20562750
2763 ;
2764 CURSOR c_rule_csr (p_rgp_id IN NUMBER) IS
2765 --Start modified abhsaxen for performance SQLID 20562755
2766 select rgp.rgd_code,rul.rule_information_category,rul.id
2767 from okc_rule_groups_b rgp, okc_rules_b rul
2768 where rgp.id = rul.rgp_id
2769 and rul.dnz_chr_id = p_dest_id
2770 and rgp.id = p_rgp_id
2771 and exists (
2772 select 1
2773 from FND_DESCR_FLEX_COLUMN_USAGES fus,
2774 fnd_flex_value_sets ffv,
2775 okc_rg_def_rules defrul,
2776 fnd_lookup_values flup,
2777 okc_rule_defs_b rulup
2778 where fus.descriptive_flex_context_code = defrul.rdf_code
2779 and fus.application_id = 540
2780 and ffv.flex_value_set_id(+) = fus.flex_value_set_id
2781 and flup.lookup_code = defrul.rgd_code
2782 and flup.lookup_type = 'OKC_RULE_GROUP_DEF'
2783 and rulup.rule_code = defrul.rdf_code
2784 and flex_value_set_name = 'OKC_AMOUNT'
2785 and defrul.rdf_code = rul.rule_information_category -- rule
2786 and defrul.rgd_code = rgp.rgd_code -- rule group
2787 );
2788 --end modified abhsaxen for performance SQLID 20562755
2789
2790 CURSOR c_k_curr_csr IS
2791 SELECT currency_code, start_date
2792 FROM okc_k_headers_b
2793 WHERE id = p_dest_id;
2794
2795 CURSOR c_rule_segmnts_csr(p_rule_id IN NUMBER) IS
2796 SELECT RULE_INFORMATION1,RULE_INFORMATION2,RULE_INFORMATION3,RULE_INFORMATION4,RULE_INFORMATION5,
2797 RULE_INFORMATION6,RULE_INFORMATION7,RULE_INFORMATION8,RULE_INFORMATION9,RULE_INFORMATION10,
2798 RULE_INFORMATION11,RULE_INFORMATION12,RULE_INFORMATION13,RULE_INFORMATION14,RULE_INFORMATION15
2799 FROM okc_rules_v
2800 WHERE id = p_rule_id
2801 AND dnz_chr_id = p_dest_id;
2802
2803 rul_seg_rec c_rule_segmnts_csr%ROWTYPE;
2804
2805 lp_rulv_rec Okl_Rule_Pub.rulv_rec_type;
2806 lx_rulv_rec Okl_Rule_Pub.rulv_rec_type;
2807 lp_rmpv_rec OKL_OKC_MIGRATION_PVT.rmpv_rec_type;
2808 lx_rmpv_rec OKL_OKC_MIGRATION_PVT.rmpv_rec_type;
2809
2810 l_vp_cpl_id okc_k_party_roles_v.id%TYPE := NULL;
2811 x_cpl_id okc_k_party_roles_v.id%TYPE := NULL;
2812
2813 l_cpl_id okc_k_party_roles_v.id%TYPE := NULL;
2814 l_rrd_id NUMBER := NULL;
2815 l_vndr_blng_rgp_id NUMBER := NULL;
2816 --start modifying abhsaxen Cursor not in use
2817 -- CURSOR c_lse_vndr_csr IS
2818 --end modifying abhsaxen Cursor not in use
2819
2820 CURSOR c_rrdid_csr IS
2821 SELECT rgrdfs.id
2822 FROM okc_k_headers_b CHR,
2823 okc_subclass_roles sre,
2824 okc_role_sources rse,
2825 okc_subclass_rg_defs rgdfs,
2826 okc_rg_role_defs rgrdfs
2827 WHERE CHR.id = p_dest_id
2828 AND sre.scs_code = CHR.scs_code
2829 AND sre.rle_code = rse.rle_code
2830 AND rse.rle_code = G_LEASE_VENDOR
2831 AND rse.buy_or_sell = CHR.buy_or_sell
2832 AND rgdfs.scs_code = CHR.scs_code
2833 AND rgdfs.rgd_code = G_VENDOR_BILL_RGD_CODE
2834 AND rgrdfs.srd_id = rgdfs.id
2835 AND rgrdfs.sre_id = sre.id;
2836
2837 CURSOR c_vndr_blng_id_csr IS
2838 SELECT rgpv.id
2839 FROM okc_rule_groups_v rgpv
2840 WHERE rgpv.rgd_code = G_VENDOR_BILL_RGD_CODE
2841 AND rgpv.dnz_chr_id = p_source_id;
2842
2843 CURSOR c_vp_cpl_csr IS
2844 --Start modified abhsaxen for performance SQLID 20562566
2845 select cplv.id
2846 from okc_k_party_roles_b cplv
2847 where cplv.rle_code = g_lease_vendor
2848 and cplv.chr_id = p_source_id
2849 and cplv.dnz_chr_id = cplv.chr_id
2850 and not exists (select 1
2851 from okc_k_party_roles_b s_cpl
2852 where s_cpl.chr_id = p_dest_id
2853 and s_cpl.dnz_chr_id = s_cpl.chr_id
2854 and s_cpl.rle_code = g_lease_vendor
2855 and cplv.object1_id1 = s_cpl.object1_id1
2856 );
2857 --end modified abhsaxen for performance SQLID 20562566
2858
2859 BEGIN
2860
2861 OKC_CONTEXT.SET_OKC_ORG_CONTEXT(
2862 p_org_id => p_org_id,
2863 p_organization_id => p_organization_id);
2864
2865 x_return_status := OKC_API.START_ACTIVITY(
2866 p_api_name => l_api_name,
2867 p_pkg_name => g_pkg_name,
2868 p_init_msg_list => p_init_msg_list,
2869 l_api_version => l_api_version,
2870 p_api_version => p_api_version,
2871 p_api_type => g_api_type,
2872 x_return_status => x_return_status);
2873
2874
2875 -- check if activity started successfully
2876 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2877 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2878 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
2879 RAISE OKC_API.G_EXCEPTION_ERROR;
2880 END IF;
2881
2882 -- copy vp party lease vendor to lease contract
2883 l_vp_cpl_id := NULL;
2884
2885 OPEN c_vp_cpl_csr;
2886 FETCH c_vp_cpl_csr INTO l_vp_cpl_id;
2887 CLOSE c_vp_cpl_csr;
2888
2889 IF( l_vp_cpl_id IS NOT NULL) THEN
2890
2891 OKL_COPY_CONTRACT_PUB.copy_party_roles(
2892 p_api_version => p_api_version,
2893 p_init_msg_list => p_init_msg_list,
2894 x_return_status => x_return_status,
2895 x_msg_count => x_msg_count,
2896 x_msg_data => x_msg_data,
2897 p_cpl_id => l_vp_cpl_id,
2898 p_cle_id => NULL,
2899 p_chr_id => l_chr_id,
2900 P_rle_code => G_LEASE_VENDOR,
2901 x_cpl_id => x_cpl_id
2902 );
2903
2904 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2905 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2906 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
2907 RAISE OKC_API.G_EXCEPTION_ERROR;
2908 END IF;
2909
2910 l_vndr_blng_rgp_id := NULL;
2911 OPEN c_vndr_blng_id_csr;
2912 FETCH c_vndr_blng_id_csr INTO l_vndr_blng_rgp_id;
2913 CLOSE c_vndr_blng_id_csr;
2914
2915 IF( l_vndr_blng_rgp_id IS NOT NULL AND x_cpl_id IS NOT NULL) THEN
2916
2917 OKL_COPY_CONTRACT_PUB.copy_rules(
2918 p_api_version => p_api_version,
2919 p_init_msg_list => p_init_msg_list,
2920 x_return_status => x_return_status,
2921 x_msg_count => x_msg_count,
2922 x_msg_data => x_msg_data,
2923 p_rgp_id => l_vndr_blng_rgp_id,
2924 p_cle_id => NULL,
2925 p_chr_id => l_chr_id,
2926 p_to_template_yn => l_to_template_yn,
2927 x_rgp_id => x_rgp_id);
2928
2929 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2930 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2931 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
2932 RAISE OKC_API.G_EXCEPTION_ERROR;
2933 END IF;
2934
2935 END IF;
2936
2937
2938 IF( x_rgp_id IS NOT NULL AND x_cpl_id IS NOT NULL) THEN
2939
2940 l_rrd_id := NULL;
2941 OPEN c_rrdid_csr;
2942 FETCH c_rrdid_csr INTO l_rrd_id;
2943 CLOSE c_rrdid_csr;
2944
2945 lp_rmpv_rec.rgp_id := x_rgp_id;
2946 lp_rmpv_rec.cpl_id := x_cpl_id;
2947 lp_rmpv_rec.dnz_chr_id := l_chr_id;
2948 lp_rmpv_rec.rrd_id := l_rrd_id;
2949
2950 OKL_RULE_PUB.create_rg_mode_pty_role(
2951 p_api_version => p_api_version,
2952 p_init_msg_list => p_init_msg_list,
2953 x_return_status => x_return_status,
2954 x_msg_count => x_msg_count,
2955 x_msg_data => x_msg_data,
2956 p_rmpv_rec => lp_rmpv_rec,
2957 x_rmpv_rec => lx_rmpv_rec
2958 );
2959
2960 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2961 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2962 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
2963 RAISE OKC_API.G_EXCEPTION_ERROR;
2964 END IF;
2965
2966 END IF;
2967
2968 END IF;
2969
2970
2971 OPEN vp_tmpl_csr(p_vp_id => p_source_id);
2972 FETCH vp_tmpl_csr INTO l_vp_tmpl_id;
2973 IF vp_tmpl_csr%NOTFOUND THEN
2974 NULL;
2975 ELSE
2976
2977 -- copy vp rules to lease contract
2978 FOR l_c_src_crs IN c_src_crs(p_vp_tmpl_id => l_vp_tmpl_id) LOOP
2979
2980 l_rgp_id := l_c_src_crs.id; -- gets vendor program rgd code
2981
2982 OKL_COPY_CONTRACT_PUB.copy_rules(
2983 p_api_version => p_api_version,
2984 p_init_msg_list => p_init_msg_list,
2985 x_return_status => x_return_status,
2986 x_msg_count => x_msg_count,
2987 x_msg_data => x_msg_data,
2988 p_rgp_id => l_rgp_id,
2989 p_cle_id => l_cle_id,
2990 p_chr_id => l_chr_id,
2991 p_to_template_yn => l_to_template_yn,
2992 x_rgp_id => x_rgp_id);
2993
2994 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2995 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2996 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
2997 RAISE OKC_API.G_EXCEPTION_ERROR;
2998 END IF;
2999
3000
3001 -- start of currency conversion for program rules
3002
3003 IF ( x_rgp_id IS NOT NULL) THEN
3004
3005 l_func_curr_code := NULL;
3006 -- if functional currency code is not equal to contract currency code
3007 l_func_curr_code := OKL_ACCOUNTING_UTIL.get_func_curr_code;
3008
3009 l_k_curr_code := NULL;
3010 l_start_date := NULL;
3011
3012 OPEN c_k_curr_csr;
3013 FETCH c_k_curr_csr INTO l_k_curr_code, l_start_date;
3014 CLOSE c_k_curr_csr;
3015
3016 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
3017
3018
3019 FOR l_c_rule_csr IN c_rule_csr(p_rgp_id => x_rgp_id) LOOP -- get all the rules
3020
3021 l_rgd_code := l_c_rule_csr.rgd_code;
3022 l_rule_info_cat := l_c_rule_csr.rule_information_category;
3023 l_rule_id := l_c_rule_csr.id;
3024
3025 OPEN c_rule_segmnts_csr (l_rule_id);
3026 FETCH c_rule_segmnts_csr INTO rul_seg_rec;
3027 CLOSE c_rule_segmnts_csr;
3028
3029 l_rule_segment := NULL;
3030 l_rule_amt := NULL;
3031
3032 lp_rulv_rec.RULE_INFORMATION1 := rul_seg_rec.RULE_INFORMATION1;
3033 lp_rulv_rec.RULE_INFORMATION2 := rul_seg_rec.RULE_INFORMATION2;
3034 lp_rulv_rec.RULE_INFORMATION3 := rul_seg_rec.RULE_INFORMATION3;
3035 lp_rulv_rec.RULE_INFORMATION4 := rul_seg_rec.RULE_INFORMATION4;
3036 lp_rulv_rec.RULE_INFORMATION5 := rul_seg_rec.RULE_INFORMATION5;
3037 lp_rulv_rec.RULE_INFORMATION6 := rul_seg_rec.RULE_INFORMATION6;
3038 lp_rulv_rec.RULE_INFORMATION7 := rul_seg_rec.RULE_INFORMATION7;
3039 lp_rulv_rec.RULE_INFORMATION8 := rul_seg_rec.RULE_INFORMATION8;
3040 lp_rulv_rec.RULE_INFORMATION9 := rul_seg_rec.RULE_INFORMATION9;
3041 lp_rulv_rec.RULE_INFORMATION10 := rul_seg_rec.RULE_INFORMATION10;
3042 lp_rulv_rec.RULE_INFORMATION11 := rul_seg_rec.RULE_INFORMATION11;
3043 lp_rulv_rec.RULE_INFORMATION12 := rul_seg_rec.RULE_INFORMATION12;
3044 lp_rulv_rec.RULE_INFORMATION13 := rul_seg_rec.RULE_INFORMATION13;
3045 lp_rulv_rec.RULE_INFORMATION14 := rul_seg_rec.RULE_INFORMATION14;
3046 lp_rulv_rec.RULE_INFORMATION15 := rul_seg_rec.RULE_INFORMATION15;
3047
3048 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
3049
3050 l_rule_segment := l_c_rule_amt_crs.application_column_name;
3051 IF(l_rule_segment IS NOT NULL) THEN
3052
3053 IF (l_rule_segment = 'RULE_INFORMATION1') THEN
3054 l_rule_amt := rul_seg_rec.RULE_INFORMATION1;
3055 ELSIF (l_rule_segment = 'RULE_INFORMATION2') THEN
3056 l_rule_amt := rul_seg_rec.RULE_INFORMATION2;
3057 ELSIF (l_rule_segment = 'RULE_INFORMATION3') THEN
3058 l_rule_amt := rul_seg_rec.RULE_INFORMATION3;
3059 ELSIF (l_rule_segment = 'RULE_INFORMATION4') THEN
3060 l_rule_amt := rul_seg_rec.RULE_INFORMATION4;
3061 ELSIF (l_rule_segment = 'RULE_INFORMATION5') THEN
3062 l_rule_amt := rul_seg_rec.RULE_INFORMATION5;
3063 ELSIF (l_rule_segment = 'RULE_INFORMATION6') THEN
3064 l_rule_amt := rul_seg_rec.RULE_INFORMATION6;
3065 ELSIF (l_rule_segment = 'RULE_INFORMATION7') THEN
3066 l_rule_amt := rul_seg_rec.RULE_INFORMATION7;
3067 ELSIF (l_rule_segment = 'RULE_INFORMATION8') THEN
3068 l_rule_amt := rul_seg_rec.RULE_INFORMATION8;
3069 ELSIF (l_rule_segment = 'RULE_INFORMATION9') THEN
3070 l_rule_amt := rul_seg_rec.RULE_INFORMATION9;
3071 ELSIF (l_rule_segment = 'RULE_INFORMATION10') THEN
3072 l_rule_amt := rul_seg_rec.RULE_INFORMATION10;
3073 ELSIF (l_rule_segment = 'RULE_INFORMATION11') THEN
3074 l_rule_amt := rul_seg_rec.RULE_INFORMATION11;
3075 ELSIF (l_rule_segment = 'RULE_INFORMATION12') THEN
3076 l_rule_amt := rul_seg_rec.RULE_INFORMATION12;
3077 ELSIF (l_rule_segment = 'RULE_INFORMATION13') THEN
3078 l_rule_amt := rul_seg_rec.RULE_INFORMATION13;
3079 ELSIF (l_rule_segment = 'RULE_INFORMATION14') THEN
3080 l_rule_amt := rul_seg_rec.RULE_INFORMATION14;
3081 ELSIF (l_rule_segment = 'RULE_INFORMATION15') THEN
3082 l_rule_amt := rul_seg_rec.RULE_INFORMATION15;
3083 END IF;
3084
3085 END IF;
3086
3087 IF (l_rule_amt IS NOT NULL) THEN
3088 -- do currency conversion for DFF amount columns
3089 OKL_ACCOUNTING_UTIL.convert_to_contract_currency (
3090 p_khr_id => l_chr_id,
3091 p_from_currency => l_func_curr_code,
3092 p_transaction_date => l_start_date,
3093 p_amount => l_rule_amt,
3094 x_contract_currency => x_contract_currency,
3095 x_currency_conversion_type => x_currency_conversion_type,
3096 x_currency_conversion_rate => x_currency_conversion_rate,
3097 x_currency_conversion_date => x_currency_conversion_date,
3098 x_converted_amount => x_converted_amount);
3099
3100
3101 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3102 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3103 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
3104 RAISE OKC_API.G_EXCEPTION_ERROR;
3105 END IF;
3106
3107 IF(l_rule_id IS NOT NULL AND x_converted_amount IS NOT NULL) THEN
3108
3109 x_converted_amount := OKL_ACCOUNTING_UTIL.cross_currency_round_amount
3110 (
3111 p_amount => x_converted_amount,
3112 p_currency_code => l_k_curr_code
3113 );
3114
3115 lp_rulv_rec.id := l_rule_id;
3116 IF (l_rule_segment = 'RULE_INFORMATION1') THEN
3117 lp_rulv_rec.RULE_INFORMATION1 := TO_CHAR(x_converted_amount);
3118 ELSIF (l_rule_segment = 'RULE_INFORMATION2') THEN
3119 lp_rulv_rec.RULE_INFORMATION2 := TO_CHAR(x_converted_amount);
3120 ELSIF (l_rule_segment = 'RULE_INFORMATION3') THEN
3121 lp_rulv_rec.RULE_INFORMATION3 := TO_CHAR(x_converted_amount);
3122 ELSIF (l_rule_segment = 'RULE_INFORMATION4') THEN
3123 lp_rulv_rec.RULE_INFORMATION4 := TO_CHAR(x_converted_amount);
3124 ELSIF (l_rule_segment = 'RULE_INFORMATION5') THEN
3125 lp_rulv_rec.RULE_INFORMATION5 := TO_CHAR(x_converted_amount);
3126 ELSIF (l_rule_segment = 'RULE_INFORMATION6') THEN
3127 lp_rulv_rec.RULE_INFORMATION6 := TO_CHAR(x_converted_amount);
3128 ELSIF (l_rule_segment = 'RULE_INFORMATION7') THEN
3129 lp_rulv_rec.RULE_INFORMATION7 := TO_CHAR(x_converted_amount);
3130 ELSIF (l_rule_segment = 'RULE_INFORMATION8') THEN
3131 lp_rulv_rec.RULE_INFORMATION8:= TO_CHAR(x_converted_amount);
3132 ELSIF (l_rule_segment = 'RULE_INFORMATION9') THEN
3133 lp_rulv_rec.RULE_INFORMATION9 := TO_CHAR(x_converted_amount);
3134 ELSIF (l_rule_segment = 'RULE_INFORMATION10') THEN
3135 lp_rulv_rec.RULE_INFORMATION10 := TO_CHAR(x_converted_amount);
3136 ELSIF (l_rule_segment = 'RULE_INFORMATION11') THEN
3137 lp_rulv_rec.RULE_INFORMATION11 := TO_CHAR(x_converted_amount);
3138 ELSIF (l_rule_segment = 'RULE_INFORMATION12') THEN
3139 lp_rulv_rec.RULE_INFORMATION12 := TO_CHAR(x_converted_amount);
3140 ELSIF (l_rule_segment = 'RULE_INFORMATION13') THEN
3141 lp_rulv_rec.RULE_INFORMATION13 := TO_CHAR(x_converted_amount);
3142 ELSIF (l_rule_segment = 'RULE_INFORMATION14') THEN
3143 lp_rulv_rec.RULE_INFORMATION14 := TO_CHAR(x_converted_amount);
3144 ELSIF (l_rule_segment = 'RULE_INFORMATION15') THEN
3145 lp_rulv_rec.RULE_INFORMATION15 := TO_CHAR(x_converted_amount);
3146 END IF;
3147
3148 l_rule_segment := NULL;
3149 l_rule_amt := NULL;
3150
3151 END IF;
3152 END IF;
3153
3154 END LOOP;
3155
3156 IF(l_rule_id IS NOT NULL AND x_converted_amount IS NOT NULL) THEN
3157
3158 OKL_RULE_PUB.update_rule(
3159 p_api_version => p_api_version,
3160 p_init_msg_list => p_init_msg_list,
3161 x_return_status => x_return_status,
3162 x_msg_count => x_msg_count,
3163 x_msg_data => x_msg_data,
3164 p_rulv_rec => lp_rulv_rec,
3165 x_rulv_rec => lx_rulv_rec);
3166
3167 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3168 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3169 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
3170 RAISE OKC_API.G_EXCEPTION_ERROR;
3171 END IF;
3172
3173 END IF;
3174
3175 l_rgd_code := NULL;
3176 l_rule_info_cat := NULL;
3177 l_rule_id := NULL;
3178 rul_seg_rec := NULL;
3179 x_converted_amount := NULL;
3180
3181 END LOOP;
3182
3183 END IF;
3184
3185 END IF;
3186
3187 -- end of currency conversion for program rules
3188
3189 END LOOP;
3190
3191 END IF;
3192
3193 CLOSE vp_tmpl_csr;
3194
3195 OKC_API.END_ACTIVITY(x_msg_count => x_msg_count, x_msg_data => x_msg_data);
3196
3197 EXCEPTION
3198 WHEN OKC_API.G_EXCEPTION_ERROR THEN
3199 x_return_status := OKC_API.HANDLE_EXCEPTIONS(
3200 p_api_name => l_api_name,
3201 p_pkg_name => g_pkg_name,
3202 p_exc_name => 'OKC_API.G_RET_STS_ERROR',
3203 x_msg_count => x_msg_count,
3204 x_msg_data => x_msg_data,
3205 p_api_type => g_api_type);
3206
3207 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3208 x_return_status := OKC_API.HANDLE_EXCEPTIONS(
3209 p_api_name => l_api_name,
3210 p_pkg_name => g_pkg_name,
3211 p_exc_name => 'OKC_API.G_RET_STS_UNEXP_ERROR',
3212 x_msg_count => x_msg_count,
3213 x_msg_data => x_msg_data,
3214 p_api_type => g_api_type);
3215
3216 WHEN OTHERS THEN
3217 x_return_status := OKC_API.HANDLE_EXCEPTIONS(
3218 p_api_name => l_api_name,
3219 p_pkg_name => g_pkg_name,
3220 p_exc_name => 'OTHERS',
3221 x_msg_count => x_msg_count,
3222 x_msg_data => x_msg_data,
3223 p_api_type => g_api_type);
3224 END;
3225
3226 PROCEDURE copy_rules(
3227 p_api_version IN NUMBER,
3228 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
3229 x_return_status OUT NOCOPY VARCHAR2,
3230 x_msg_count OUT NOCOPY NUMBER,
3231 x_msg_data OUT NOCOPY VARCHAR2,
3232 p_old_khr_id IN NUMBER, -- prev k khr id
3233 p_prog_override_yn IN VARCHAR2, -- program yn
3234 p_source_id IN NUMBER, -- vp id
3235 p_dest_id IN NUMBER, -- k id
3236 p_org_id IN NUMBER,
3237 p_organization_id IN NUMBER) IS
3238
3239 l_api_name VARCHAR2(30) := 'COPY_RULES';
3240 l_api_version CONSTANT NUMBER := 1.0;
3241
3242 BEGIN
3243
3244 OKC_CONTEXT.SET_OKC_ORG_CONTEXT(p_org_id => p_org_id, p_organization_id => p_organization_id);
3245
3246 x_return_status := OKC_API.START_ACTIVITY(
3247 p_api_name => l_api_name,
3248 p_pkg_name => g_pkg_name,
3249 p_init_msg_list => p_init_msg_list,
3250 l_api_version => l_api_version,
3251 p_api_version => p_api_version,
3252 p_api_type => g_api_type,
3253 x_return_status => x_return_status);
3254
3255 -- check if activity started successfully
3256 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3257 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3258 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
3259 RAISE OKC_API.G_EXCEPTION_ERROR;
3260 END IF;
3261
3262
3263 IF( (p_old_khr_id IS NOT NULL AND p_source_id IS NOT NULL AND p_old_khr_id <> p_source_id
3264 AND p_prog_override_yn IS NOT NULL AND p_prog_override_yn = 'Y' )
3265 OR (p_old_khr_id IS NOT NULL AND p_source_id IS NULL
3266 AND p_prog_override_yn IS NOT NULL AND p_prog_override_yn = 'Y' )
3267
3268 ) THEN
3269
3270 -- delete all the rules of the old_khr_id'S program template rules
3271 delete_rules(
3272 p_api_version => p_api_version,
3273 p_init_msg_list => p_init_msg_list,
3274 x_return_status => x_return_status,
3275 x_msg_count => x_msg_count,
3276 x_msg_data => x_msg_data,
3277 p_old_khr_id => p_old_khr_id,
3278 p_source_id => p_source_id,
3279 p_dest_id => p_dest_id,
3280 p_org_id => okl_context.get_okc_org_id,
3281 p_organization_id => okl_context.get_okc_organization_id
3282 );
3283
3284 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3285 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3286 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
3287 RAISE OKC_API.G_EXCEPTION_ERROR;
3288 END IF;
3289
3290 END IF;
3291
3292
3293 IF( p_source_id IS NOT NULL AND p_old_khr_id IS NULL ) THEN
3294
3295 copy_rules(
3296 p_api_version => p_api_version,
3297 p_init_msg_list => p_init_msg_list,
3298 x_return_status => x_return_status,
3299 x_msg_count => x_msg_count,
3300 x_msg_data => x_msg_data,
3301 p_source_id => p_source_id, -- vp id
3302 p_dest_id => p_dest_id, -- k id
3303 p_org_id => okl_context.get_okc_org_id,
3304 p_organization_id => okl_context.get_okc_organization_id
3305 );
3306
3307 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3308 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3309 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
3310 RAISE OKC_API.G_EXCEPTION_ERROR;
3311 END IF;
3312
3313 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
3314
3315 copy_rules(
3316 p_api_version => p_api_version,
3317 p_init_msg_list => p_init_msg_list,
3318 x_return_status => x_return_status,
3319 x_msg_count => x_msg_count,
3320 x_msg_data => x_msg_data,
3321 p_source_id => p_source_id, -- vp id
3322 p_dest_id => p_dest_id, -- k id
3323 p_org_id => okl_context.get_okc_org_id,
3324 p_organization_id => okl_context.get_okc_organization_id
3325 );
3326
3327 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3328 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3329 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
3330 RAISE OKC_API.G_EXCEPTION_ERROR;
3331 END IF;
3332
3333 END IF;
3334
3335 OKC_API.END_ACTIVITY(x_msg_count => x_msg_count, x_msg_data => x_msg_data);
3336
3337 EXCEPTION
3338 WHEN OKC_API.G_EXCEPTION_ERROR THEN
3339 x_return_status := OKC_API.HANDLE_EXCEPTIONS(
3340 p_api_name => l_api_name,
3341 p_pkg_name => g_pkg_name,
3342 p_exc_name => 'OKC_API.G_RET_STS_ERROR',
3343 x_msg_count => x_msg_count,
3344 x_msg_data => x_msg_data,
3345 p_api_type => g_api_type);
3346
3347 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3348 x_return_status := OKC_API.HANDLE_EXCEPTIONS(
3349 p_api_name => l_api_name,
3350 p_pkg_name => g_pkg_name,
3351 p_exc_name => 'OKC_API.G_RET_STS_UNEXP_ERROR',
3352 x_msg_count => x_msg_count,
3353 x_msg_data => x_msg_data,
3354 p_api_type => g_api_type);
3355
3356 WHEN OTHERS THEN
3357 x_return_status := OKC_API.HANDLE_EXCEPTIONS(
3358 p_api_name => l_api_name,
3359 p_pkg_name => g_pkg_name,
3360 p_exc_name => 'OTHERS',
3361 x_msg_count => x_msg_count,
3362 x_msg_data => x_msg_data,
3363 p_api_type => g_api_type);
3364 END;
3365
3366 -- Start of comments
3367 --
3368 -- Procedure Name : create_deal
3369 -- Description : creates a deal based on the information that comes
3370 -- from the deal creation screen
3371 -- Business Rules :
3372 -- Parameters :
3373 -- Version : 1.0
3374 -- End of comments
3375 PROCEDURE create_deal(
3376 p_api_version IN NUMBER,
3377 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
3378 x_return_status OUT NOCOPY VARCHAR2,
3379 x_msg_count OUT NOCOPY NUMBER,
3380 x_msg_data OUT NOCOPY VARCHAR2,
3381 p_contract_number IN VARCHAR2,
3382 p_scs_code IN VARCHAR2,
3383 p_customer_id1 IN VARCHAR2,
3384 p_customer_id2 IN VARCHAR2,
3385 p_customer_code IN VARCHAR2,
3386 p_org_id IN NUMBER,
3387 p_organization_id IN NUMBER,
3388 p_source_chr_id IN NUMBER,
3389 x_chr_id OUT NOCOPY NUMBER,
3390 --Added by dpsingh for LE Uptake
3391 p_legal_entity_id IN NUMBER) AS
3392
3393 l_api_name VARCHAR2(30) := 'CREATE_DEAL';
3394 l_api_version CONSTANT NUMBER := 1.0;
3395
3396 CURSOR l_source_crs IS
3397 SELECT template_yn, chr_type
3398 FROM okc_k_headers_b
3399 WHERE id = p_source_chr_id;
3400
3401 l_template_yn OKC_K_HEADERS_B.TEMPLATE_YN%TYPE;
3402 l_chr_type OKC_K_HEADERS_B.CHR_TYPE%TYPE;
3403 BEGIN
3404
3405 OKC_CONTEXT.SET_OKC_ORG_CONTEXT(
3406 p_org_id => p_org_id,
3407 p_organization_id => p_organization_id);
3408
3409 x_return_status := OKC_API.START_ACTIVITY(
3410 p_api_name => l_api_name,
3411 p_pkg_name => g_pkg_name,
3412 p_init_msg_list => p_init_msg_list,
3413 l_api_version => l_api_version,
3414 p_api_version => p_api_version,
3415 p_api_type => g_api_type,
3416 x_return_status => x_return_status);
3417
3418 -- check if activity started successfully
3419 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3420 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3421 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
3422 RAISE OKC_API.G_EXCEPTION_ERROR;
3423 END IF;
3424
3425 IF (p_source_chr_id IS NULL) OR (p_source_chr_id = OKC_API.G_MISS_NUM) THEN
3426 create_new_deal(
3427 p_api_version => l_api_version,
3428 p_init_msg_list => p_init_msg_list,
3429 x_return_status => x_return_status,
3430 x_msg_count => x_msg_count,
3431 x_msg_data => x_msg_data,
3432 p_contract_number => p_contract_number,
3433 p_scs_code => p_scs_code,
3434 p_customer_id1 => p_customer_id1,
3435 p_customer_id2 => p_customer_id2,
3436 p_customer_code => p_customer_code,
3437 x_chr_id => x_chr_id,
3438 --Added by dpsingh for LE Uptake
3439 p_legal_entity_id => p_legal_entity_id);
3440 ELSE
3441 -- need to figure out what kind of source do we have
3442 OPEN l_source_crs;
3443 FETCH l_source_crs INTO l_template_yn, l_chr_type;
3444 CLOSE l_source_crs;
3445
3446 -- copy from template
3447 IF (l_template_yn = 'Y') THEN
3448 create_from_template(
3449 p_api_version => l_api_version,
3450 p_init_msg_list => p_init_msg_list,
3451 x_return_status => x_return_status,
3452 x_msg_count => x_msg_count,
3453 x_msg_data => x_msg_data,
3454 p_contract_number => p_contract_number,
3455 p_source_chr_id => p_source_chr_id,
3456 x_chr_id => x_chr_id);
3457 ELSE
3458 create_from_contract(
3459 p_api_version => l_api_version,
3460 p_init_msg_list => p_init_msg_list,
3461 x_return_status => x_return_status,
3462 x_msg_count => x_msg_count,
3463 x_msg_data => x_msg_data,
3464 p_contract_number => p_contract_number,
3465 p_source_chr_id => p_source_chr_id,
3466 x_chr_id => x_chr_id);
3467 END IF;
3468 END IF;
3469
3470 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3471 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3472 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
3473 RAISE OKC_API.G_EXCEPTION_ERROR;
3474 END IF;
3475
3476 OKC_API.END_ACTIVITY(x_msg_count => x_msg_count,
3477 x_msg_data => x_msg_data);
3478 EXCEPTION
3479 WHEN OKC_API.G_EXCEPTION_ERROR THEN
3480 x_return_status := OKC_API.HANDLE_EXCEPTIONS(
3481 p_api_name => l_api_name,
3482 p_pkg_name => g_pkg_name,
3483 p_exc_name => 'OKC_API.G_RET_STS_ERROR',
3484 x_msg_count => x_msg_count,
3485 x_msg_data => x_msg_data,
3486 p_api_type => g_api_type);
3487
3488 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3489 x_return_status := OKC_API.HANDLE_EXCEPTIONS(
3490 p_api_name => l_api_name,
3491 p_pkg_name => g_pkg_name,
3492 p_exc_name => 'OKC_API.G_RET_STS_UNEXP_ERROR',
3493 x_msg_count => x_msg_count,
3494 x_msg_data => x_msg_data,
3495 p_api_type => g_api_type);
3496
3497 WHEN OTHERS THEN
3498 x_return_status := OKC_API.HANDLE_EXCEPTIONS(
3499 p_api_name => l_api_name,
3500 p_pkg_name => g_pkg_name,
3501 p_exc_name => 'OTHERS',
3502 x_msg_count => x_msg_count,
3503 x_msg_data => x_msg_data,
3504 p_api_type => g_api_type);
3505 END;
3506
3507 /* Bug# 3948361 - Re-lease contract functionality is moved to Revisions page
3508 -- Start of comments
3509 --
3510 -- Procedure Name : create_from_release
3511 -- Description : creates a deal from release
3512 -- Business Rules :
3513 -- Parameters :
3514 -- Version : 1.0
3515 -- End of comments
3516 PROCEDURE create_from_release (
3517 p_api_version IN NUMBER,
3518 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
3519 x_return_status OUT NOCOPY VARCHAR2,
3520 x_msg_count OUT NOCOPY NUMBER,
3521 x_msg_data OUT NOCOPY VARCHAR2,
3522 p_contract_number IN VARCHAR2,
3523 p_source_chr_id IN NUMBER,
3524 x_chr_id OUT NOCOPY NUMBER) AS
3525
3526 x_new_chrv_rec OKL_OKC_MIGRATION_PVT.chrv_rec_type;
3527 x_new_khrv_rec OKL_CONTRACT_PUB.khrv_rec_type;
3528 l_old_contract_number OKC_K_HEADERS_V.CONTRACT_NUMBER%TYPE;
3529 l_new_contract_number OKC_K_HEADERS_V.CONTRACT_NUMBER%TYPE;
3530 l_value VARCHAR2(1) := OKL_API.G_FALSE;
3531
3532 CURSOR l_source_k_num_crs IS
3533 SELECT contract_number
3534 FROM okc_k_headers_b
3535 WHERE id = p_source_chr_id;
3536
3537 l_inv_agmt_chr_id_tbl_type Okl_Securitization_Pvt.inv_agmt_chr_id_tbl_type;
3538
3539 l_api_name VARCHAR2(30) := 'CREATE_DEAL';
3540 l_api_version CONSTANT NUMBER := 1.0;
3541
3542 BEGIN
3543
3544 x_return_status := OKC_API.START_ACTIVITY(
3545 p_api_name => l_api_name,
3546 p_pkg_name => g_pkg_name,
3547 p_init_msg_list => p_init_msg_list,
3548 l_api_version => l_api_version,
3549 p_api_version => p_api_version,
3550 p_api_type => g_api_type,
3551 x_return_status => x_return_status);
3552
3553 -- check if activity started successfully
3554 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3555 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3556 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
3557 RAISE OKC_API.G_EXCEPTION_ERROR;
3558 END IF;
3559
3560 okl_securitization_pvt.check_khr_securitized(
3561 p_api_version => p_api_version,
3562 p_init_msg_list => p_init_msg_list,
3563 x_return_status => x_return_status,
3564 x_msg_count => x_msg_count,
3565 x_msg_data => x_msg_data,
3566 p_khr_id => p_source_chr_id, --source_contract_id
3567 p_effective_date => SYSDATE, -- sysdate
3568 x_value => l_value, -- varchar2(1)
3569 x_inv_agmt_chr_id_tbl => l_inv_agmt_chr_id_tbl_type --okl_securitization_pvt.inv_agmt_chr_id_tbl_type
3570 );
3571
3572
3573 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3574 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3575 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
3576 RAISE OKC_API.G_EXCEPTION_ERROR;
3577 END IF;
3578
3579 IF(l_value = OKL_API.G_TRUE) THEN
3580 OKC_API.SET_MESSAGE( p_app_name => g_app_name
3581 , p_msg_name => 'OKL_LLA_CONTRACT_SECU_ERROR'
3582 );
3583 RAISE OKC_API.G_EXCEPTION_ERROR;
3584 END IF;
3585
3586 l_new_contract_number := p_contract_number;
3587
3588 OPEN l_source_k_num_crs;
3589 FETCH l_source_k_num_crs INTO l_old_contract_number;
3590 CLOSE l_source_k_num_crs;
3591
3592 okl_release_pvt.create_release_contract(
3593 p_api_version => p_api_version,
3594 p_init_msg_list => p_init_msg_list,
3595 x_return_status => x_return_status,
3596 x_msg_count => x_msg_count,
3597 x_msg_data => x_msg_data,
3598 p_old_contract_number => l_old_contract_number,
3599 p_new_contract_number => l_new_contract_number,
3600 x_new_chrv_rec => x_new_chrv_rec,
3601 x_new_khrv_rec => x_new_khrv_rec);
3602
3603 x_chr_id := x_new_chrv_rec.id;
3604
3605 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3606 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3607 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
3608 RAISE OKC_API.G_EXCEPTION_ERROR;
3609 END IF;
3610
3611 OKC_API.END_ACTIVITY(x_msg_count => x_msg_count,
3612 x_msg_data => x_msg_data);
3613 EXCEPTION
3614 WHEN OKC_API.G_EXCEPTION_ERROR THEN
3615 x_return_status := OKC_API.HANDLE_EXCEPTIONS(
3616 p_api_name => l_api_name,
3617 p_pkg_name => g_pkg_name,
3618 p_exc_name => 'OKC_API.G_RET_STS_ERROR',
3619 x_msg_count => x_msg_count,
3620 x_msg_data => x_msg_data,
3621 p_api_type => g_api_type);
3622
3623 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3624 x_return_status := OKC_API.HANDLE_EXCEPTIONS(
3625 p_api_name => l_api_name,
3626 p_pkg_name => g_pkg_name,
3627 p_exc_name => 'OKC_API.G_RET_STS_UNEXP_ERROR',
3628 x_msg_count => x_msg_count,
3629 x_msg_data => x_msg_data,
3630 p_api_type => g_api_type);
3631
3632 WHEN OTHERS THEN
3633 x_return_status := OKC_API.HANDLE_EXCEPTIONS(
3634 p_api_name => l_api_name,
3635 p_pkg_name => g_pkg_name,
3636 p_exc_name => 'OTHERS',
3637 x_msg_count => x_msg_count,
3638 x_msg_data => x_msg_data,
3639 p_api_type => g_api_type);
3640
3641 END;
3642 */
3643
3644 -- Start of comments
3645 --
3646 -- Procedure Name : create_deal
3647 -- Description : creates a deal based on the information that comes
3648 -- from the deal creation screen
3649 -- Business Rules :
3650 -- Parameters :
3651 -- Version : 1.0
3652 -- End of comments
3653 PROCEDURE create_deal(
3654 p_api_version IN NUMBER,
3655 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
3656 x_return_status OUT NOCOPY VARCHAR2,
3657 x_msg_count OUT NOCOPY NUMBER,
3658 x_msg_data OUT NOCOPY VARCHAR2,
3659 p_source_code IN VARCHAR2,
3660 p_contract_number IN VARCHAR2,
3661 p_scs_code IN VARCHAR2,
3662 p_customer_id1 IN VARCHAR2,
3663 p_customer_id2 IN VARCHAR2,
3664 p_customer_code IN VARCHAR2,
3665 p_org_id IN NUMBER,
3666 p_organization_id IN NUMBER,
3667 p_source_chr_id IN NUMBER,
3668 x_chr_id OUT NOCOPY NUMBER,
3669 --Added by dpsingh for LE Uptake
3670 p_legal_entity_id IN NUMBER) AS
3671
3672 l_api_name VARCHAR2(30) := 'CREATE_DEAL';
3673 l_api_version CONSTANT NUMBER := 1.0;
3674
3675 CURSOR l_source_crs IS
3676 SELECT template_yn, chr_type
3677 FROM okc_k_headers_b
3678 WHERE id = p_source_chr_id;
3679
3680 CURSOR l_source_k_num_crs IS
3681 SELECT contract_number
3682 FROM okc_k_headers_b
3683 WHERE id = p_source_chr_id;
3684
3685 l_template_yn OKC_K_HEADERS_B.TEMPLATE_YN%TYPE;
3686 l_chr_type OKC_K_HEADERS_B.CHR_TYPE%TYPE;
3687 l_contract_number OKC_K_HEADERS_B.CHR_TYPE%TYPE;
3688
3689 BEGIN
3690
3691 OKC_CONTEXT.SET_OKC_ORG_CONTEXT(
3692 p_org_id => p_org_id,
3693 p_organization_id => p_organization_id);
3694
3695 x_return_status := OKC_API.START_ACTIVITY(
3696 p_api_name => l_api_name,
3697 p_pkg_name => g_pkg_name,
3698 p_init_msg_list => p_init_msg_list,
3699 l_api_version => l_api_version,
3700 p_api_version => p_api_version,
3701 p_api_type => g_api_type,
3702 x_return_status => x_return_status);
3703
3704 -- check if activity started successfully
3705 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3706 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3707 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
3708 RAISE OKC_API.G_EXCEPTION_ERROR;
3709 END IF;
3710
3711 IF (p_source_chr_id IS NULL) OR (p_source_chr_id = OKC_API.G_MISS_NUM) THEN
3712 create_new_deal(
3713 p_api_version => l_api_version,
3714 p_init_msg_list => p_init_msg_list,
3715 x_return_status => x_return_status,
3716 x_msg_count => x_msg_count,
3717 x_msg_data => x_msg_data,
3718 p_contract_number => p_contract_number,
3719 p_scs_code => p_scs_code,
3720 p_customer_id1 => p_customer_id1,
3721 p_customer_id2 => p_customer_id2,
3722 p_customer_code => p_customer_code,
3723 x_chr_id => x_chr_id,
3724 --Added by dpsingh for LE Uptake
3725 p_legal_entity_id => p_legal_entity_id);
3726 ELSE
3727 -- need to figure out what kind of source do we have
3728 OPEN l_source_crs;
3729 FETCH l_source_crs INTO l_template_yn, l_chr_type;
3730 CLOSE l_source_crs;
3731
3732 -- copy from template
3733 IF (upper(p_source_code) = 'TEMPLATE') THEN
3734
3735 create_from_template(
3736 p_api_version => l_api_version,
3737 p_init_msg_list => p_init_msg_list,
3738 x_return_status => x_return_status,
3739 x_msg_count => x_msg_count,
3740 x_msg_data => x_msg_data,
3741 p_contract_number => p_contract_number,
3742 p_source_chr_id => p_source_chr_id,
3743 x_chr_id => x_chr_id);
3744
3745 /* Bug# 3948361 - Re-lease contract functionality is moved to Revisions page
3746 ELSIF (p_source_code = 'Re-Lease') THEN
3747
3748 create_from_release(
3749 p_api_version => l_api_version,
3750 p_init_msg_list => p_init_msg_list,
3751 x_return_status => x_return_status,
3752 x_msg_count => x_msg_count,
3753 x_msg_data => x_msg_data,
3754 p_contract_number => p_contract_number,
3755 p_source_chr_id => p_source_chr_id,
3756 x_chr_id => x_chr_id);
3757 */
3758
3759 ELSIF (upper(p_source_code) = 'COPY' ) THEN
3760
3761 create_from_contract(
3762 p_api_version => l_api_version,
3763 p_init_msg_list => p_init_msg_list,
3764 x_return_status => x_return_status,
3765 x_msg_count => x_msg_count,
3766 x_msg_data => x_msg_data,
3767 p_contract_number => p_contract_number,
3768 p_source_chr_id => p_source_chr_id,
3769 x_chr_id => x_chr_id);
3770
3771 ELSIF (upper(p_source_code) = 'QUOTE') THEN
3772
3773 create_from_quote(
3774 p_api_version => l_api_version,
3775 p_init_msg_list => p_init_msg_list,
3776 x_return_status => x_return_status,
3777 x_msg_count => x_msg_count,
3778 x_msg_data => x_msg_data,
3779 p_contract_number => p_contract_number,
3780 p_source_chr_id => p_source_chr_id,
3781 x_chr_id => x_chr_id);
3782
3783 END IF;
3784 END IF;
3785
3786 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3787 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3788 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
3789 RAISE OKC_API.G_EXCEPTION_ERROR;
3790 END IF;
3791
3792 OKC_API.END_ACTIVITY(x_msg_count => x_msg_count,
3793 x_msg_data => x_msg_data);
3794 EXCEPTION
3795 WHEN OKC_API.G_EXCEPTION_ERROR THEN
3796 x_return_status := OKC_API.HANDLE_EXCEPTIONS(
3797 p_api_name => l_api_name,
3798 p_pkg_name => g_pkg_name,
3799 p_exc_name => 'OKC_API.G_RET_STS_ERROR',
3800 x_msg_count => x_msg_count,
3801 x_msg_data => x_msg_data,
3802 p_api_type => g_api_type);
3803
3804 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3805 x_return_status := OKC_API.HANDLE_EXCEPTIONS(
3806 p_api_name => l_api_name,
3807 p_pkg_name => g_pkg_name,
3808 p_exc_name => 'OKC_API.G_RET_STS_UNEXP_ERROR',
3809 x_msg_count => x_msg_count,
3810 x_msg_data => x_msg_data,
3811 p_api_type => g_api_type);
3812
3813 WHEN OTHERS THEN
3814 x_return_status := OKC_API.HANDLE_EXCEPTIONS(
3815 p_api_name => l_api_name,
3816 p_pkg_name => g_pkg_name,
3817 p_exc_name => 'OTHERS',
3818 x_msg_count => x_msg_count,
3819 x_msg_data => x_msg_data,
3820 p_api_type => g_api_type);
3821 END;
3822
3823 -- Start of comments
3824 --
3825 -- Procedure Name : create_deal
3826 -- Description : creates a deal based on the information that comes
3827 -- from the deal creation screen
3828 -- Business Rules :
3829 -- Parameters :
3830 -- Version : 1.0
3831 -- End of comments
3832 PROCEDURE create_deal(
3833 p_api_version IN NUMBER,
3834 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
3835 x_return_status OUT NOCOPY VARCHAR2,
3836 x_msg_count OUT NOCOPY NUMBER,
3837 x_msg_data OUT NOCOPY VARCHAR2,
3838 p_source_code IN VARCHAR2,
3839 p_contract_number IN VARCHAR2,
3840 p_scs_code IN VARCHAR2,
3841 p_customer_id1 IN OUT NOCOPY VARCHAR2,
3842 p_customer_id2 IN OUT NOCOPY VARCHAR2,
3843 p_customer_code IN VARCHAR2,
3844 p_customer_name IN VARCHAR2,
3845 p_org_id IN NUMBER,
3846 p_organization_id IN NUMBER,
3847 p_source_chr_id IN OUT NOCOPY NUMBER,
3848 p_source_contract_number IN VARCHAR2,
3849 x_chr_id OUT NOCOPY NUMBER,
3850 --Added by dpsingh for LE Uptake
3851 p_legal_entity_id IN NUMBER) AS
3852
3853 l_api_name VARCHAR2(30) := 'CREATE_DEAL';
3854 l_api_version CONSTANT NUMBER := 1.0;
3855
3856 CURSOR l_source_crs IS
3857 SELECT template_yn, chr_type
3858 FROM okc_k_headers_b
3859 WHERE id = p_source_chr_id;
3860
3861 CURSOR l_source_k_num_crs IS
3862 SELECT contract_number
3863 FROM okc_k_headers_b
3864 WHERE id = p_source_chr_id;
3865
3866 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
3867 SELECT CHR.id
3868 FROM okc_k_headers_b CHR
3869 , okc_k_party_roles_b prl
3870 WHERE prl.dnz_chr_id = CHR.id
3871 AND prl.chr_id = CHR.id
3872 AND CHR.scs_code = p_scs_code
3873 AND CHR.chr_type = 'CYA'
3874 AND CHR.template_yn = p_temp_yn
3875 AND prl.rle_code = G_RLE_CODE
3876 AND prl.object1_id1 = p_object1_id1
3877 AND prl.object1_id2 = p_object1_id2
3878 AND prl.jtot_object1_code = p_customer_code
3879 AND CHR.contract_number = p_source_contract_number;
3880
3881 l_template_yn OKC_K_HEADERS_B.TEMPLATE_YN%TYPE;
3882 l_chr_type OKC_K_HEADERS_B.CHR_TYPE%TYPE;
3883 l_contract_number OKC_K_HEADERS_B.CHR_TYPE%TYPE;
3884 l_object_code VARCHAR2(30) DEFAULT NULL;
3885
3886 l_ak_prompt AK_ATTRIBUTES_VL.attribute_label_long%TYPE;
3887
3888 BEGIN
3889
3890 OKC_CONTEXT.SET_OKC_ORG_CONTEXT(
3891 p_org_id => p_org_id,
3892 p_organization_id => p_organization_id);
3893
3894 x_return_status := OKC_API.START_ACTIVITY(
3895 p_api_name => l_api_name,
3896 p_pkg_name => g_pkg_name,
3897 p_init_msg_list => p_init_msg_list,
3898 l_api_version => l_api_version,
3899 p_api_version => p_api_version,
3900 p_api_type => g_api_type,
3901 x_return_status => x_return_status);
3902
3903 -- check if activity started successfully
3904 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3905 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3906 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
3907 RAISE OKC_API.G_EXCEPTION_ERROR;
3908 END IF;
3909
3910 IF(p_contract_number IS NULL) THEN
3911 x_return_status := OKC_API.g_ret_sts_error;
3912 IF p_scs_code = 'LEASE' THEN
3913 l_ak_prompt := GET_AK_PROMPT('OKL_LA_DEAL_CREAT', 'OKL_CONTRACT_NUMBER');
3914 ELSIF p_scs_code = 'MASTER_LEASE' THEN
3915 l_ak_prompt := GET_AK_PROMPT('OKL_LA_DEAL_CREAT', 'OKL_LA_AGREEMENT_NUMBER');
3916 END IF;
3917
3918 OKC_API.SET_MESSAGE( p_app_name => g_app_name
3919 , p_msg_name => 'OKL_REQUIRED_VALUE'
3920 , p_token1 => 'COL_NAME'
3921 , p_token1_value => l_ak_prompt
3922 );
3923 RAISE OKC_API.G_EXCEPTION_ERROR;
3924 END IF;
3925
3926 IF(p_customer_name IS NULL) THEN
3927 x_return_status := OKC_API.g_ret_sts_error;
3928 l_ak_prompt := GET_AK_PROMPT('OKL_LA_DEAL_CREAT', 'OKL_CUSTOMER_NAME');
3929 OKC_API.SET_MESSAGE( p_app_name => g_app_name
3930 , p_msg_name => 'OKL_REQUIRED_VALUE'
3931 , p_token1 => 'COL_NAME'
3932 , p_token1_value => l_ak_prompt
3933 );
3934 RAISE OKC_API.G_EXCEPTION_ERROR;
3935 END IF;
3936
3937 IF(upper(p_source_code) <> 'NEW' AND p_source_contract_number IS NULL) THEN
3938 x_return_status := OKC_API.g_ret_sts_error;
3939 l_ak_prompt := GET_AK_PROMPT('OKL_LA_DEAL_CREAT', 'OKL_CONTRACT_SOURCE');
3940 OKC_API.SET_MESSAGE( p_app_name => g_app_name
3941 , p_msg_name => 'OKL_REQUIRED_VALUE'
3942 , p_token1 => 'COL_NAME'
3943 , p_token1_value => l_ak_prompt
3944 );
3945 RAISE OKC_API.G_EXCEPTION_ERROR;
3946 END IF;
3947
3948 okl_la_validation_util_pvt.Get_Party_Jtot_data (
3949 p_api_version => p_api_version,
3950 p_init_msg_list => p_init_msg_list,
3951 x_return_status => x_return_status,
3952 x_msg_count => x_msg_count,
3953 x_msg_data => x_msg_data,
3954 p_scs_code => p_scs_code,
3955 p_buy_or_sell => 'S',
3956 p_rle_code => G_RLE_CODE,
3957 p_id1 => p_customer_id1,
3958 p_id2 => p_customer_id2,
3959 p_name => p_customer_name,
3960 p_object_code => l_object_code,
3961 p_ak_region => 'OKL_LA_DEAL_CREAT',
3962 p_ak_attribute => 'OKL_CUSTOMER_NAME'
3963 );
3964
3965 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3966 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3967 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
3968 RAISE OKC_API.G_EXCEPTION_ERROR;
3969 END IF;
3970
3971 IF(upper(p_source_code) <> 'NEW' AND p_source_contract_number IS NOT NULL) THEN
3972
3973 IF (upper(p_source_code) = 'TEMPLATE') THEN
3974 OPEN l_source_chr_id_crs(p_scs_code,'Y',p_customer_id1,p_customer_id2,l_object_code);
3975 FETCH l_source_chr_id_crs INTO p_source_chr_id;
3976 CLOSE l_source_chr_id_crs;
3977 ELSIF (upper(p_source_code) = 'QUOTE') THEN
3978 OPEN l_source_chr_id_crs('QUOTE','N',p_customer_id1,p_customer_id2,l_object_code);
3979 FETCH l_source_chr_id_crs INTO p_source_chr_id;
3980 CLOSE l_source_chr_id_crs;
3981 ELSE
3982 OPEN l_source_chr_id_crs(p_scs_code,'N',p_customer_id1,p_customer_id2,l_object_code);
3983 FETCH l_source_chr_id_crs INTO p_source_chr_id;
3984 CLOSE l_source_chr_id_crs;
3985 END IF;
3986
3987 IF(p_source_chr_id IS NULL) THEN
3988 x_return_status := OKC_API.g_ret_sts_error;
3989 l_ak_prompt := GET_AK_PROMPT('OKL_LA_DEAL_CREAT', 'OKL_CONTRACT_SOURCE');
3990 OKC_API.SET_MESSAGE( p_app_name => g_app_name
3991 , p_msg_name => 'OKL_LLA_INVALID_LOV_VALUE'
3992 , p_token1 => 'COL_NAME'
3993 , p_token1_value => l_ak_prompt
3994 );
3995 RAISE OKC_API.G_EXCEPTION_ERROR;
3996 END IF;
3997
3998 END IF;
3999
4000 IF (upper(p_source_code) = 'NEW') THEN
4001
4002 create_new_deal(
4003 p_api_version => l_api_version,
4004 p_init_msg_list => p_init_msg_list,
4005 x_return_status => x_return_status,
4006 x_msg_count => x_msg_count,
4007 x_msg_data => x_msg_data,
4008 p_contract_number => p_contract_number,
4009 p_scs_code => p_scs_code,
4010 p_customer_id1 => p_customer_id1,
4011 p_customer_id2 => p_customer_id2,
4012 p_customer_code => l_object_code,
4013 p_customer_name => p_customer_name,
4014 x_chr_id => x_chr_id,
4015 --Added by dpsingh for LE Uptake
4016 p_legal_entity_id => p_legal_entity_id);
4017
4018 -- copy from template
4019 ELSIF (upper(p_source_code) = 'TEMPLATE') THEN
4020
4021 create_from_template(
4022 p_api_version => l_api_version,
4023 p_init_msg_list => p_init_msg_list,
4024 x_return_status => x_return_status,
4025 x_msg_count => x_msg_count,
4026 x_msg_data => x_msg_data,
4027 p_contract_number => p_contract_number,
4028 p_source_chr_id => p_source_chr_id,
4029 x_chr_id => x_chr_id);
4030
4031 /* Bug# 3948361 - Re-lease contract functionality is moved to Revisions page
4032 ELSIF (p_source_code = 'Re-Lease') THEN
4033
4034 create_from_release(
4035 p_api_version => l_api_version,
4036 p_init_msg_list => p_init_msg_list,
4037 x_return_status => x_return_status,
4038 x_msg_count => x_msg_count,
4039 x_msg_data => x_msg_data,
4040 p_contract_number => p_contract_number,
4041 p_source_chr_id => p_source_chr_id,
4042 x_chr_id => x_chr_id);
4043 */
4044
4045 ELSIF (upper(p_source_code) = 'COPY' ) THEN
4046
4047 create_from_contract(
4048 p_api_version => l_api_version,
4049 p_init_msg_list => p_init_msg_list,
4050 x_return_status => x_return_status,
4051 x_msg_count => x_msg_count,
4052 x_msg_data => x_msg_data,
4053 p_contract_number => p_contract_number,
4054 p_source_chr_id => p_source_chr_id,
4055 x_chr_id => x_chr_id);
4056
4057 ELSIF (upper(p_source_code) = 'QUOTE') THEN
4058
4059 create_from_quote(
4060 p_api_version => l_api_version,
4061 p_init_msg_list => p_init_msg_list,
4062 x_return_status => x_return_status,
4063 x_msg_count => x_msg_count,
4064 x_msg_data => x_msg_data,
4065 p_contract_number => p_contract_number,
4066 p_source_chr_id => p_source_chr_id,
4067 x_chr_id => x_chr_id);
4068
4069 END IF;
4070
4071 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
4072 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
4073 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
4074 RAISE OKC_API.G_EXCEPTION_ERROR;
4075 END IF;
4076
4077 OKC_API.END_ACTIVITY(x_msg_count => x_msg_count,
4078 x_msg_data => x_msg_data);
4079 EXCEPTION
4080 WHEN OKC_API.G_EXCEPTION_ERROR THEN
4081 x_return_status := OKC_API.HANDLE_EXCEPTIONS(
4082 p_api_name => l_api_name,
4083 p_pkg_name => g_pkg_name,
4084 p_exc_name => 'OKC_API.G_RET_STS_ERROR',
4085 x_msg_count => x_msg_count,
4086 x_msg_data => x_msg_data,
4087 p_api_type => g_api_type);
4088
4089 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
4090 x_return_status := OKC_API.HANDLE_EXCEPTIONS(
4091 p_api_name => l_api_name,
4092 p_pkg_name => g_pkg_name,
4093 p_exc_name => 'OKC_API.G_RET_STS_UNEXP_ERROR',
4094 x_msg_count => x_msg_count,
4095 x_msg_data => x_msg_data,
4096 p_api_type => g_api_type);
4097
4098 WHEN OTHERS THEN
4099 x_return_status := OKC_API.HANDLE_EXCEPTIONS(
4100 p_api_name => l_api_name,
4101 p_pkg_name => g_pkg_name,
4102 p_exc_name => 'OTHERS',
4103 x_msg_count => x_msg_count,
4104 x_msg_data => x_msg_data,
4105 p_api_type => g_api_type);
4106 END;
4107
4108 -- Start of comments
4109 --
4110 -- Procedure Name : create_deal
4111 -- Description : creates a deal based on the information that comes
4112 -- from the deal creation screen
4113 -- Business Rules :
4114 -- Parameters :
4115 -- Version : 1.0
4116 -- End of comments
4117 PROCEDURE create_deal(
4118 p_api_version IN NUMBER,
4119 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
4120 x_return_status OUT NOCOPY VARCHAR2,
4121 x_msg_count OUT NOCOPY NUMBER,
4122 x_msg_data OUT NOCOPY VARCHAR2,
4123 p_source_code IN VARCHAR2,
4124 p_template_yn IN VARCHAR2,
4125 p_contract_number IN VARCHAR2,
4126 p_scs_code IN VARCHAR2,
4127 p_customer_id1 IN OUT NOCOPY VARCHAR2,
4128 p_customer_id2 IN OUT NOCOPY VARCHAR2,
4129 p_customer_code IN VARCHAR2,
4130 p_customer_name IN VARCHAR2,
4131 p_org_id IN NUMBER,
4132 p_organization_id IN NUMBER,
4133 p_source_chr_id IN OUT NOCOPY NUMBER,
4134 p_source_contract_number IN VARCHAR2,
4135 x_chr_id OUT NOCOPY NUMBER,
4136 --Added by dpsingh for LE Uptake
4137 p_legal_entity_id IN NUMBER) AS
4138
4139 l_api_name VARCHAR2(30) := 'CREATE_DEAL';
4140 l_api_version CONSTANT NUMBER := 1.0;
4141
4142 CURSOR l_source_crs IS
4143 SELECT template_yn, chr_type
4144 FROM okc_k_headers_b
4145 WHERE id = p_source_chr_id;
4146
4147 CURSOR l_source_k_num_crs IS
4148 SELECT contract_number
4149 FROM okc_k_headers_b
4150 WHERE id = p_source_chr_id;
4151
4152 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
4153 SELECT CHR.id
4154 FROM okc_k_headers_b CHR
4155 , okc_k_party_roles_b prl
4156 WHERE prl.dnz_chr_id = CHR.id
4157 AND prl.chr_id = CHR.id
4158 AND CHR.scs_code = p_scs_code
4159 AND CHR.chr_type = 'CYA'
4160 AND CHR.template_yn = p_temp_yn
4161 AND prl.rle_code = G_RLE_CODE
4162 AND prl.object1_id1 = p_object1_id1
4163 AND prl.object1_id2 = p_object1_id2
4164 AND prl.jtot_object1_code = p_customer_code
4165 AND CHR.contract_number = p_source_contract_number;
4166
4167 CURSOR l_src_chr_id_crs(p_scs_code VARCHAR2, p_temp_yn VARCHAR2) IS
4168 SELECT CHR.id
4169 FROM okc_k_headers_b CHR
4170 WHERE CHR.scs_code = p_scs_code
4171 AND CHR.chr_type = 'CYA'
4172 AND CHR.template_yn = p_temp_yn
4173 AND CHR.contract_number = p_source_contract_number;
4174
4175 l_template_yn OKC_K_HEADERS_B.TEMPLATE_YN%TYPE;
4176 l_chr_type OKC_K_HEADERS_B.CHR_TYPE%TYPE;
4177 l_contract_number OKC_K_HEADERS_B.CHR_TYPE%TYPE;
4178 l_object_code VARCHAR2(30) DEFAULT NULL;
4179 l_chr_id OKC_K_HEADERS_B.ID%TYPE;
4180
4181 l_ak_prompt AK_ATTRIBUTES_VL.attribute_label_long%TYPE;
4182
4183 lp_chrv_rec OKL_OKC_MIGRATION_PVT.chrv_rec_type;
4184 lx_chrv_rec OKL_OKC_MIGRATION_PVT.chrv_rec_type;
4185 lp_khrv_rec OKL_CONTRACT_PUB.khrv_rec_type;
4186 lx_khrv_rec OKL_CONTRACT_PUB.khrv_rec_type;
4187
4188 /*
4189 -- mvasudev, 08/17/2004
4190 -- Added PROCEDURE to enable Business Event
4191 */
4192 PROCEDURE raise_business_event(
4193 p_chr_id IN NUMBER
4194 ,x_return_status OUT NOCOPY VARCHAR2
4195 )
4196 IS
4197 l_check VARCHAR2(1);
4198 l_parameter_list wf_parameter_list_t;
4199 BEGIN
4200
4201 x_return_status := Okc_Api.G_RET_STS_SUCCESS;
4202 -- Raise the event if it is a new Contract
4203 --l_check := Okl_Lla_Util_Pvt.check_new_contract(p_chr_id);
4204 --IF (l_check= OKL_API.G_TRUE) THEN
4205 IF (upper(p_source_code) = 'NEW') THEN
4206 wf_event.AddParameterToList(G_WF_ITM_CONTRACT_ID,p_chr_id,l_parameter_list);
4207
4208 OKL_WF_PVT.raise_event (p_api_version => p_api_version,
4209 p_init_msg_list => p_init_msg_list,
4210 x_return_status => x_return_status,
4211 x_msg_count => x_msg_count,
4212 x_msg_data => x_msg_data,
4213 p_event_name => G_WF_EVT_KHR_CREATED,
4214 p_parameters => l_parameter_list);
4215
4216 END IF;
4217
4218 EXCEPTION
4219 WHEN OTHERS THEN
4220 x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
4221 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4222 END raise_business_event;
4223
4224
4225 /*
4226 -- mvasudev, 08/17/2004
4227 -- END, PROCEDURE to enable Business Event
4228 */
4229
4230
4231 BEGIN
4232
4233 OKC_CONTEXT.SET_OKC_ORG_CONTEXT(
4234 p_org_id => p_org_id,
4235 p_organization_id => p_organization_id);
4236
4237 x_return_status := OKC_API.START_ACTIVITY(
4238 p_api_name => l_api_name,
4239 p_pkg_name => g_pkg_name,
4240 p_init_msg_list => p_init_msg_list,
4241 l_api_version => l_api_version,
4242 p_api_version => p_api_version,
4243 p_api_type => g_api_type,
4244 x_return_status => x_return_status);
4245
4246 -- check if activity started successfully
4247 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
4248 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
4249 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
4250 RAISE OKC_API.G_EXCEPTION_ERROR;
4251 END IF;
4252 /*
4253 If(p_contract_number is null) Then
4254 x_return_status := OKC_API.g_ret_sts_error;
4255 If p_scs_code = 'LEASE' Then
4256 l_ak_prompt := GET_AK_PROMPT('OKL_LA_DEAL_CREAT', 'OKL_CONTRACT_NUMBER');
4257 elsIf p_scs_code = 'MASTER_LEASE' Then
4258 l_ak_prompt := GET_AK_PROMPT('OKL_LA_DEAL_CREAT', 'OKL_LA_AGREEMENT_NUMBER');
4259 End If;
4260
4261 OKC_API.SET_MESSAGE( p_app_name => g_app_name
4262 , p_msg_name => 'OKL_REQUIRED_VALUE'
4263 , p_token1 => 'COL_NAME'
4264 , p_token1_value => l_ak_prompt
4265 );
4266 raise OKC_API.G_EXCEPTION_ERROR;
4267 End If;
4268 */
4269
4270 IF(p_customer_name IS NULL) THEN
4271 IF p_scs_code = 'MASTER_LEASE' THEN
4272 x_return_status := OKC_API.g_ret_sts_error;
4273 l_ak_prompt := GET_AK_PROMPT('OKL_LA_DEAL_CREAT', 'OKL_CUSTOMER_NAME');
4274 OKC_API.SET_MESSAGE( p_app_name => g_app_name
4275 , p_msg_name => 'OKL_REQUIRED_VALUE'
4276 , p_token1 => 'COL_NAME'
4277 , p_token1_value => l_ak_prompt
4278 );
4279 RAISE OKC_API.G_EXCEPTION_ERROR;
4280 END IF;
4281 END IF;
4282
4283 IF(upper(p_source_code) <> 'NEW' AND p_source_contract_number IS NULL) THEN
4284 x_return_status := OKC_API.g_ret_sts_error;
4285 l_ak_prompt := GET_AK_PROMPT('OKL_LA_DEAL_CREAT', 'OKL_CONTRACT_SOURCE');
4286 OKC_API.SET_MESSAGE( p_app_name => g_app_name
4287 , p_msg_name => 'OKL_REQUIRED_VALUE'
4288 , p_token1 => 'COL_NAME'
4289 , p_token1_value => l_ak_prompt
4290 );
4291 RAISE OKC_API.G_EXCEPTION_ERROR;
4292 END IF;
4293
4294 IF(p_customer_name IS NOT NULL) THEN
4295
4296 okl_la_validation_util_pvt.Get_Party_Jtot_data (
4297 p_api_version => p_api_version,
4298 p_init_msg_list => p_init_msg_list,
4299 x_return_status => x_return_status,
4300 x_msg_count => x_msg_count,
4301 x_msg_data => x_msg_data,
4302 p_scs_code => p_scs_code,
4303 p_buy_or_sell => 'S',
4304 p_rle_code => G_RLE_CODE,
4305 p_id1 => p_customer_id1,
4306 p_id2 => p_customer_id2,
4307 p_name => p_customer_name,
4308 p_object_code => l_object_code,
4309 p_ak_region => 'OKL_LA_DEAL_CREAT',
4310 p_ak_attribute => 'OKL_CUSTOMER_NAME'
4311 );
4312
4313 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
4314 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
4315 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
4316 RAISE OKC_API.G_EXCEPTION_ERROR;
4317 END IF;
4318
4319 END IF;
4320
4321 IF(upper(p_source_code) <> 'NEW' AND p_source_contract_number IS NOT NULL) THEN
4322
4323 IF(p_customer_name IS NULL) THEN
4324
4325 IF (upper(p_source_code) = 'TEMPLATE') THEN
4326 OPEN l_src_chr_id_crs(p_scs_code,'Y');
4327 FETCH l_src_chr_id_crs INTO p_source_chr_id;
4328 CLOSE l_src_chr_id_crs;
4329 ELSIF (upper(p_source_code) = 'QUOTE') THEN
4330 OPEN l_src_chr_id_crs('QUOTE','N');
4331 FETCH l_src_chr_id_crs INTO p_source_chr_id;
4332 CLOSE l_src_chr_id_crs;
4333 ELSE
4334 OPEN l_src_chr_id_crs(p_scs_code,'N');
4335 FETCH l_src_chr_id_crs INTO p_source_chr_id;
4336 CLOSE l_src_chr_id_crs;
4337 END IF;
4338
4339 ELSE
4340
4341 IF (upper(p_source_code) = 'TEMPLATE') THEN
4342 OPEN l_source_chr_id_crs(p_scs_code,'Y',p_customer_id1,p_customer_id2,l_object_code);
4343 FETCH l_source_chr_id_crs INTO p_source_chr_id;
4344 CLOSE l_source_chr_id_crs;
4345 ELSIF (upper(p_source_code) = 'QUOTE') THEN
4346 OPEN l_source_chr_id_crs('QUOTE','N',p_customer_id1,p_customer_id2,l_object_code);
4347 FETCH l_source_chr_id_crs INTO p_source_chr_id;
4348 CLOSE l_source_chr_id_crs;
4349 ELSE
4350 OPEN l_source_chr_id_crs(p_scs_code,'N',p_customer_id1,p_customer_id2,l_object_code);
4351 FETCH l_source_chr_id_crs INTO p_source_chr_id;
4352 CLOSE l_source_chr_id_crs;
4353 END IF;
4354
4355 END IF;
4356
4357 IF(p_source_chr_id IS NULL) THEN
4358 x_return_status := OKC_API.g_ret_sts_error;
4359 l_ak_prompt := GET_AK_PROMPT('OKL_LA_DEAL_CREAT', 'OKL_CONTRACT_SOURCE');
4360 OKC_API.SET_MESSAGE( p_app_name => g_app_name
4361 , p_msg_name => 'OKL_LLA_INVALID_LOV_VALUE'
4362 , p_token1 => 'COL_NAME'
4363 , p_token1_value => l_ak_prompt
4364 );
4365 RAISE OKC_API.G_EXCEPTION_ERROR;
4366 END IF;
4367
4368 END IF;
4369
4370 IF (upper(p_source_code) = 'NEW') THEN
4371 /*
4372 create_new_deal(
4373 p_api_version => l_api_version,
4374 p_init_msg_list => p_init_msg_list,
4375 x_return_status => x_return_status,
4376 x_msg_count => x_msg_count,
4377 x_msg_data => x_msg_data,
4378 p_contract_number => p_contract_number,
4379 p_scs_code => p_scs_code,
4380 p_customer_id1 => p_customer_id1,
4381 p_customer_id2 => p_customer_id2,
4382 p_customer_code => l_object_code,
4383 p_customer_name => p_customer_name,
4384 p_template_yn => p_template_yn,
4385 x_chr_id => x_chr_id);
4386
4387 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
4388 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
4389 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
4390 RAISE OKC_API.G_EXCEPTION_ERROR;
4391 END IF;
4392 */
4393 l_chr_id := x_chr_id;
4394
4395 IF okl_context.get_okc_org_id IS NULL THEN
4396 okl_context.set_okc_org_context(p_chr_id => l_chr_id );
4397 END IF;
4398
4399 -- bug 4227922 property tax options defaulting onto contract
4400 IF ( p_scs_code = 'LEASE') THEN
4401
4402 OKL_LA_PROPERTY_TAX_PVT.create_est_prop_tax_rules(
4403 p_api_version => l_api_version,
4404 p_init_msg_list => p_init_msg_list,
4405 x_return_status => x_return_status,
4406 x_msg_count => x_msg_count,
4407 x_msg_data => x_msg_data,
4408 p_chr_id => l_chr_id);
4409
4410 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
4411 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
4412 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
4413 RAISE OKC_API.G_EXCEPTION_ERROR;
4414 END IF;
4415
4416 END IF;
4417
4418 -- copy from template
4419 ELSIF (upper(p_source_code) = 'TEMPLATE') THEN
4420
4421 create_from_template(
4422 p_api_version => l_api_version,
4423 p_init_msg_list => p_init_msg_list,
4424 x_return_status => x_return_status,
4425 x_msg_count => x_msg_count,
4426 x_msg_data => x_msg_data,
4427 p_contract_number => p_contract_number,
4428 p_source_chr_id => p_source_chr_id,
4429 x_chr_id => x_chr_id);
4430
4431 /* Bug# 3948361 - Re-lease contract functionality is moved to Revisions page
4432 ELSIF (p_source_code = 'Re-Lease') THEN
4433
4434 create_from_release(
4435 p_api_version => l_api_version,
4436 p_init_msg_list => p_init_msg_list,
4437 x_return_status => x_return_status,
4438 x_msg_count => x_msg_count,
4439 x_msg_data => x_msg_data,
4440 p_contract_number => p_contract_number,
4441 p_source_chr_id => p_source_chr_id,
4442 x_chr_id => x_chr_id);
4443 */
4444
4445 ELSIF (upper(p_source_code) = 'COPY' ) THEN
4446
4447 create_from_contract(
4448 p_api_version => l_api_version,
4449 p_init_msg_list => p_init_msg_list,
4450 x_return_status => x_return_status,
4451 x_msg_count => x_msg_count,
4452 x_msg_data => x_msg_data,
4453 p_contract_number => p_contract_number,
4454 p_source_chr_id => p_source_chr_id,
4455 x_chr_id => x_chr_id);
4456
4457 ELSIF (upper(p_source_code) = 'QUOTE') THEN
4458
4459 create_from_quote(
4460 p_api_version => l_api_version,
4461 p_init_msg_list => p_init_msg_list,
4462 x_return_status => x_return_status,
4463 x_msg_count => x_msg_count,
4464 x_msg_data => x_msg_data,
4465 p_contract_number => p_contract_number,
4466 p_source_chr_id => p_source_chr_id,
4467 x_chr_id => x_chr_id);
4468
4469 END IF;
4470
4471 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
4472 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
4473 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
4474 RAISE OKC_API.G_EXCEPTION_ERROR;
4475 END IF;
4476
4477
4478 -- update contract header for template_yn
4479 IF ( p_template_yn = 'Y' AND ( upper(p_source_code) = 'QUOTE' OR upper(p_source_code) = 'COPY' OR upper(p_source_code) = 'RE-LEASE'
4480 OR upper(p_source_code) = 'TEMPLATE' )) THEN
4481
4482 lp_chrv_rec.id := x_chr_id;
4483 lp_khrv_rec.id := x_chr_id;
4484 lp_chrv_rec.template_yn := 'Y';
4485
4486 OKL_CONTRACT_PUB.update_contract_header(
4487 p_api_version => p_api_version,
4488 p_init_msg_list => p_init_msg_list,
4489 x_return_status => x_return_status,
4490 x_msg_count => x_msg_count,
4491 x_msg_data => x_msg_data,
4492 p_chrv_rec => lp_chrv_rec,
4493 p_khrv_rec => lp_khrv_rec,
4494 x_chrv_rec => lx_chrv_rec,
4495 x_khrv_rec => lx_khrv_rec);
4496
4497 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
4498 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
4499 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
4500 RAISE OKC_API.G_EXCEPTION_ERROR;
4501 END IF;
4502
4503 END IF;
4504
4505 /*
4506 -- mvasudev, 08/17/2004
4507 -- Code change to enable Business Event
4508 */
4509 raise_business_event(p_chr_id => x_chr_id
4510 ,x_return_status => x_return_status);
4511 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4512 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4513 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
4514 RAISE OKL_API.G_EXCEPTION_ERROR;
4515 END IF;
4516
4517 /*
4518 -- mvasudev, 08/17/2004
4519 -- END, Code change to enable Business Event
4520 */
4521
4522 OKC_API.END_ACTIVITY(x_msg_count => x_msg_count,
4523 x_msg_data => x_msg_data);
4524 EXCEPTION
4525 WHEN OKC_API.G_EXCEPTION_ERROR THEN
4526 x_return_status := OKC_API.HANDLE_EXCEPTIONS(
4527 p_api_name => l_api_name,
4528 p_pkg_name => g_pkg_name,
4529 p_exc_name => 'OKC_API.G_RET_STS_ERROR',
4530 x_msg_count => x_msg_count,
4531 x_msg_data => x_msg_data,
4532 p_api_type => g_api_type);
4533
4534 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
4535 x_return_status := OKC_API.HANDLE_EXCEPTIONS(
4536 p_api_name => l_api_name,
4537 p_pkg_name => g_pkg_name,
4538 p_exc_name => 'OKC_API.G_RET_STS_UNEXP_ERROR',
4539 x_msg_count => x_msg_count,
4540 x_msg_data => x_msg_data,
4541 p_api_type => g_api_type);
4542
4543 WHEN OTHERS THEN
4544 x_return_status := OKC_API.HANDLE_EXCEPTIONS(
4545 p_api_name => l_api_name,
4546 p_pkg_name => g_pkg_name,
4547 p_exc_name => 'OTHERS',
4548 x_msg_count => x_msg_count,
4549 x_msg_data => x_msg_data,
4550 p_api_type => g_api_type);
4551 END;
4552
4553
4554
4555 -- Start of comments
4556 --
4557 -- Procedure Name : create_deal
4558 -- Description : creates a deal based on the information that comes
4559 -- from the deal creation screen
4560 -- Business Rules :
4561 -- Parameters :
4562 -- Version : 1.0
4563 -- End of comments
4564 PROCEDURE create_deal(
4565 p_api_version IN NUMBER,
4566 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
4567 x_return_status OUT NOCOPY VARCHAR2,
4568 x_msg_count OUT NOCOPY NUMBER,
4569 x_msg_data OUT NOCOPY VARCHAR2,
4570 p_source_code IN VARCHAR2,
4571 p_template_type IN VARCHAR2,
4572 p_contract_number IN VARCHAR2,
4573 p_scs_code IN VARCHAR2,
4574 p_customer_id1 IN OUT NOCOPY VARCHAR2,
4575 p_customer_id2 IN OUT NOCOPY VARCHAR2,
4576 p_customer_code IN VARCHAR2,
4577 p_customer_name IN VARCHAR2,
4578 p_effective_from IN DATE,
4579 p_program_name IN VARCHAR2,
4580 p_program_id IN NUMBER,
4581 p_org_id IN NUMBER,
4582 p_organization_id IN NUMBER,
4583 p_source_chr_id IN OUT NOCOPY NUMBER,
4584 p_source_contract_number IN VARCHAR2,
4585 x_chr_id OUT NOCOPY NUMBER,
4586 --Added by dpsingh for LE Uptake
4587 p_legal_entity_id IN NUMBER) AS
4588
4589 l_api_name VARCHAR2(30) := 'CREATE_DEAL';
4590 l_api_version CONSTANT NUMBER := 1.0;
4591 l_program_id NUMBER;
4592
4593 CURSOR l_source_crs IS
4594 SELECT template_yn, chr_type
4595 FROM okc_k_headers_b
4596 WHERE id = p_source_chr_id;
4597
4598 CURSOR l_source_k_num_crs IS
4599 SELECT contract_number
4600 FROM okc_k_headers_b
4601 WHERE id = p_source_chr_id;
4602
4603 -- cursor when only customer is selected
4604 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
4605 SELECT CHR.id
4606 FROM okc_k_headers_b CHR
4607 , okc_k_party_roles_b prl
4608 WHERE prl.dnz_chr_id = CHR.id
4609 AND prl.chr_id = CHR.id
4610 AND CHR.scs_code = p_scs_code
4611 AND CHR.chr_type = 'CYA'
4612 AND NVL(chr.template_yn,'N') = p_temp_yn
4613 AND prl.rle_code = G_RLE_CODE
4614 AND prl.object1_id1 = p_object1_id1
4615 AND prl.object1_id2 = p_object1_id2
4616 AND prl.jtot_object1_code = p_customer_code
4617 AND CHR.contract_number = p_source_contract_number;
4618
4619 -- cursor when only customer is selected
4620
4621 CURSOR l_leaseAppTmpl1_crs(p_object1_id1 VARCHAR2, p_object1_id2 VARCHAR2, p_customer_code VARCHAR2) IS
4622 SELECT CHR.id
4623 FROM okl_k_headers_full_v CHR
4624 , okc_k_party_roles_b prl
4625 WHERE prl.dnz_chr_id = CHR.id
4626 AND prl.chr_id = CHR.id
4627 AND CHR.scs_code = 'LEASE'
4628 AND CHR.chr_type = 'CYA'
4629 AND NVL(chr.template_yn,'N') = 'Y'
4630 AND prl.rle_code = G_RLE_CODE
4631 AND prl.object1_id1 = p_object1_id1
4632 AND prl.object1_id2 = p_object1_id2
4633 AND prl.jtot_object1_code = p_customer_code
4634 AND NVL(CHR.TEMPLATE_TYPE_CODE,'XXX') = 'LEASEAPP'
4635 AND CHR.contract_number = p_source_contract_number;
4636
4637 -- cursor when only customer and program is selected
4638 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
4639 SELECT CHR.id
4640 FROM okc_k_headers_b CHR,
4641 okl_k_headers khr
4642 , okc_k_party_roles_b prl
4643 WHERE chr.id = khr.id
4644 AND prl.dnz_chr_id = CHR.id
4645 AND prl.chr_id = CHR.id
4646 AND CHR.scs_code = p_scs_code
4647 AND CHR.chr_type = 'CYA'
4648 AND NVL(CHR.template_yn,'N') = p_temp_yn
4649 AND prl.rle_code = G_RLE_CODE
4650 AND prl.object1_id1 = p_object1_id1
4651 AND prl.object1_id2 = p_object1_id2
4652 AND prl.jtot_object1_code = p_customer_code
4653 AND CHR.contract_number = p_source_contract_number
4654 AND exists( select 1 from okl_vp_associations vpaso
4655 where vpaso.chr_id = l_prog_id);
4656
4657 -- cursor when only customer and program is selected
4658 CURSOR l_leaseAppTmpl2_crs(p_object1_id1 VARCHAR2, p_object1_id2 VARCHAR2, p_customer_code VARCHAR2, l_prog_id NUMBER) IS
4659 SELECT CHR.id
4660 FROM okc_k_headers_b CHR,
4661 okl_k_headers khr
4662 , okc_k_party_roles_b prl
4663 WHERE chr.id = khr.id
4664 AND prl.dnz_chr_id = CHR.id
4665 AND prl.chr_id = CHR.id
4666 AND CHR.scs_code = 'LEASE'
4667 AND CHR.chr_type = 'CYA'
4668 AND NVL(CHR.template_yn,'N') = 'Y'
4669 AND prl.rle_code = G_RLE_CODE
4670 AND prl.object1_id1 = p_object1_id1
4671 AND prl.object1_id2 = p_object1_id2
4672 AND prl.jtot_object1_code = p_customer_code
4673 AND CHR.contract_number = p_source_contract_number
4674 AND NVL(KHR.TEMPLATE_TYPE_CODE,'XXX') = 'LEASEAPP'
4675 AND khr_id = l_prog_id;
4676
4677 -- cursor when only program is selected
4678 CURSOR l_source_prog_crs(p_scs_code VARCHAR2, p_temp_yn VARCHAR2, l_prog_id NUMBER) IS
4679 SELECT CHR.id
4680 FROM okc_k_headers_b CHR,
4681 okl_k_headers khr
4682 WHERE chr.id = khr.id
4683 AND CHR.scs_code = p_scs_code
4684 AND CHR.chr_type = 'CYA'
4685 AND NVL(CHR.template_yn,'N') = p_temp_yn
4686 AND CHR.contract_number = p_source_contract_number
4687 AND exists( select 1 from okl_vp_associations vpaso
4688 where vpaso.chr_id = l_prog_id);
4689
4690 -- cursor when only program is selected
4691 CURSOR l_leaseAppTmpl3_crs(l_prog_id NUMBER) IS
4692 SELECT CHR.id
4693 FROM okc_k_headers_b CHR,
4694 okl_k_headers khr
4695 WHERE chr.id = khr.id
4696 AND CHR.scs_code = 'LEASE'
4697 AND CHR.chr_type = 'CYA'
4698 AND NVL(CHR.template_yn,'N') = 'Y'
4699 AND CHR.contract_number = p_source_contract_number
4700 AND NVL(KHR.TEMPLATE_TYPE_CODE,'XXX') = 'LEASEAPP'
4701 AND khr_id = l_prog_id;
4702
4703 CURSOR l_src_chr_id_crs(p_scs_code VARCHAR2, p_temp_yn VARCHAR2) IS
4704 SELECT CHR.id
4705 FROM okc_k_headers_b CHR
4706 WHERE CHR.scs_code = p_scs_code
4707 AND CHR.chr_type = 'CYA'
4708 AND CHR.template_yn = p_temp_yn
4709 AND CHR.contract_number = p_source_contract_number;
4710
4711 CURSOR l_leaseAppTmpl_crs IS
4712 SELECT CHR.id
4713 FROM okl_k_headers_full_v CHR
4714 WHERE CHR.scs_code = 'LEASE'
4715 AND CHR.chr_type = 'CYA'
4716 AND nvl(CHR.template_yn,'N') = 'Y'
4717 AND NVL(CHR.TEMPLATE_TYPE_CODE,'XXX') = 'LEASEAPP'
4718 AND CHR.contract_number = p_source_contract_number;
4719
4720 CURSOR l_program_csr IS
4721 SELECT chr.id
4722 FROM okl_k_headers_full_v chr
4723 WHERE chr.scs_code = 'PROGRAM'
4724 AND nvl(chr.template_yn, 'N') = 'N'
4725 AND chr.sts_code = 'ACTIVE'
4726 AND chr.authoring_org_id = p_org_id
4727 AND NVL(chr.start_date,p_effective_from) <= p_effective_from
4728 AND NVL(chr.end_date,p_effective_from) >= p_effective_from
4729 AND chr.contract_number = p_program_name;
4730
4731 CURSOR l_progAgrmntTemp_crs(p_prog_id NUMBER) IS
4732 SELECT CHR.id
4733 FROM okl_k_headers_full_v CHR
4734 WHERE CHR.scs_code = p_scs_code
4735 AND CHR.chr_type = 'CYA'
4736 AND nvl(chr.template_yn,'N') = 'Y'
4737 AND NVL(chr.template_type_code,'XXX') = OKL_TEMP_TYPE_PROGRAM
4738 AND CHR.contract_number = p_source_contract_number;
4739 /*
4740 AND exists( select 1
4741 from okl_vp_associations vpaso
4742 where vpaso.chr_id = p_prog_id
4743 and vpaso.assoc_object_type_code = 'LC_TEMPLATE'
4744 and NVL(vpaso.start_date,p_effective_from) <= p_effective_from
4745 and NVL(vpaso.end_date,p_effective_from) >= p_effective_from);
4746 */
4747
4748 CURSOR l_progAgrmntTemp1_crs IS
4749 SELECT CHR.id
4750 FROM okl_k_headers_full_v CHR
4751 WHERE CHR.scs_code = p_scs_code
4752 AND CHR.chr_type = 'CYA'
4753 AND nvl(chr.template_yn,'N') = 'Y'
4754 AND NVL(chr.template_type_code,'XXX') = OKL_TEMP_TYPE_PROGRAM
4755 AND CHR.contract_number = p_source_contract_number;
4756
4757 CURSOR l_quote_crs(p_auth_org_id NUMBER, p_inv_org_id NUMBER, p_quote_number VARCHAR2) IS
4758 SELECT
4759 LSQ.ID QUOTE_ID
4760 -- ,LSQ.REFERENCE_NUMBER QUOTE_NUMBER
4761 -- ,LSQT.SHORT_DESCRIPTION QUOTE_DESCRIPTION
4762 FROM
4763 OKL_LEASE_QUOTES_B LSQ
4764 ,OKL_LEASE_QUOTES_TL LSQT
4765 ,OKL_LEASE_OPPORTUNITIES_B LOP
4766 WHERE LOP.ORG_ID = p_auth_org_id
4767 AND LOP.INV_ORG_ID = p_inv_org_id
4768 AND LSQ.PARENT_OBJECT_CODE = 'LEASEOPP'
4769 AND LOP.ID = LSQ.PARENT_OBJECT_ID
4770 AND LSQ.ID = LSQT.ID
4771 AND LSQT.LANGUAGE = USERENV('LANG')
4772 AND LSQ.STATUS = 'CT-ACCEPTED'
4773 AND LSQ.REFERENCE_NUMBER = p_quote_number
4774 AND NOT EXISTS (SELECT 1
4775 FROM OKL_LEASE_APPLICATIONS_B
4776 WHERE LEASE_OPPORTUNITY_ID = LOP.ID
4777 AND APPLICATION_STATUS <> 'WITHDRAWN')
4778 AND NOT EXISTS (SELECT 1
4779 FROM OKC_K_HEADERS_B
4780 WHERE ORIG_SYSTEM_SOURCE_CODE = 'OKL_QUOTE'
4781 AND ORIG_SYSTEM_ID1 = LSQ.ID
4782 AND STS_CODE <> 'ABANDONED');
4783
4784
4785 CURSOR l_leaseapp_crs(p_auth_org_id NUMBER, p_inv_org_id NUMBER, p_leaseapp_number VARCHAR2) IS
4786 SELECT
4787 LAP.ID LEASEAPP_ID
4788 --,LAP.REFERENCE_NUMBER LEASEAPP_NUMBER
4789 --,LAPT.SHORT_DESCRIPTION LEASEAPP_DESCRIPTION
4790 FROM
4791 OKL_LEASE_APPLICATIONS_B LAP
4792 ,OKL_LEASE_APPLICATIONS_TL LAPT
4793 WHERE
4794 LAP.ORG_ID = p_auth_org_id
4795 AND LAP.INV_ORG_ID = p_inv_org_id
4796 AND LAP.ID = LAPT.ID
4797 AND LAPT.LANGUAGE = USERENV('LANG')
4798 AND LAP.APPLICATION_STATUS = 'CR-APPROVED'
4799 AND LAP.REFERENCE_NUMBER = p_leaseapp_number
4800 AND NOT EXISTS (SELECT 1
4801 FROM OKC_K_HEADERS_B
4802 WHERE ORIG_SYSTEM_SOURCE_CODE = 'OKL_LEASE_APP'
4803 AND ORIG_SYSTEM_ID1 = LAP.ID
4804 AND STS_CODE <> 'ABANDONED')
4805 AND NOT EXISTS (SELECT 1
4806 FROM OKL_LEASE_APPLICATIONS_B
4807 WHERE PARENT_LEASEAPP_ID = LAP.ID
4808 AND APPLICATION_STATUS NOT IN ('WITHDRAWN' , 'CR-REJECTED'));
4809
4810 l_template_type OKL_K_HEADERS.TEMPLATE_TYPE_CODE%TYPE;
4811 l_template_yn OKC_K_HEADERS_B.TEMPLATE_YN%TYPE;
4812 l_chr_type OKC_K_HEADERS_B.CHR_TYPE%TYPE;
4813 l_contract_number OKC_K_HEADERS_B.CHR_TYPE%TYPE;
4814 l_object_code VARCHAR2(30) DEFAULT NULL;
4815 l_chr_id OKC_K_HEADERS_B.ID%TYPE;
4816
4817 l_ak_prompt AK_ATTRIBUTES_VL.attribute_label_long%TYPE;
4818
4819 lp_chrv_rec OKL_OKC_MIGRATION_PVT.chrv_rec_type;
4820 lx_chrv_rec OKL_OKC_MIGRATION_PVT.chrv_rec_type;
4821 lp_khrv_rec OKL_CONTRACT_PUB.khrv_rec_type;
4822 lx_khrv_rec OKL_CONTRACT_PUB.khrv_rec_type;
4823 p_kpl_rec OKL_DEAL_CREAT_PVT.party_rec_type;
4824 x_kpl_rec OKL_DEAL_CREAT_PVT.party_rec_type;
4825 lp_org_id NUMBER;
4826
4827 CURSOR c_tax_schedule_yn IS
4828 SELECT tax_schedule_yn
4829 FROM okl_system_params;
4830
4831 CURSOR c_rule_group(p_chr_id NUMBER, p_rgd_code VARCHAR2) IS
4832 SELECT id,rgd_code
4833 FROM okc_rule_groups_b
4834 WHERE dnz_chr_id = p_chr_id
4835 AND rgd_code = p_rgd_code;
4836
4837 CURSOR c_orig_system_source(p_chr_id NUMBER) IS
4838 SELECT orig_system_source_code
4839 FROM okc_k_headers_all_b
4840 WHERE id = p_chr_id;
4841
4842 l_tax_schedule_yn VARCHAR2(1);
4843 lp_lahdtx_rgpv_rec OKL_OKC_MIGRATION_PVT.rgpv_rec_type;
4844 lx_lahdtx_rgpv_rec OKL_OKC_MIGRATION_PVT.rgpv_rec_type;
4845 lp_lahdtx_rulv_rec Okl_Rule_Pub.rulv_rec_type;
4846 lx_lahdtx_rulv_rec Okl_Rule_Pub.rulv_rec_type;
4847 l_rgp_id NUMBER;
4848 l_rgd_code VARCHAR2(30);
4849 l_orig_system_source_code VARCHAR2(30);
4850
4851 /*
4852 -- mvasudev, 08/17/2004
4853 -- Added PROCEDURE to enable Business Event
4854 */
4855 PROCEDURE raise_business_event(
4856 p_chr_id IN NUMBER
4857 ,x_return_status OUT NOCOPY VARCHAR2
4858 )
4859 IS
4860 l_check VARCHAR2(1);
4861 l_parameter_list wf_parameter_list_t;
4862 BEGIN
4863
4864 x_return_status := Okc_Api.G_RET_STS_SUCCESS;
4865 -- Raise the event if it is a new Contract
4866 --l_check := Okl_Lla_Util_Pvt.check_new_contract(p_chr_id);
4867 --IF (l_check= OKL_API.G_TRUE) THEN
4868 IF (upper(p_source_code) = 'NEW') THEN
4869 wf_event.AddParameterToList(G_WF_ITM_CONTRACT_ID,p_chr_id,l_parameter_list);
4870
4871 OKL_WF_PVT.raise_event (p_api_version => p_api_version,
4872 p_init_msg_list => p_init_msg_list,
4873 x_return_status => x_return_status,
4874 x_msg_count => x_msg_count,
4875 x_msg_data => x_msg_data,
4876 p_event_name => G_WF_EVT_KHR_CREATED,
4877 p_parameters => l_parameter_list);
4878
4879 END IF;
4880
4881 EXCEPTION
4882 WHEN OTHERS THEN
4883 x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
4884 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4885 END raise_business_event;
4886
4887
4888 /*
4889 -- mvasudev, 08/17/2004
4890 -- END, PROCEDURE to enable Business Event
4891 */
4892
4893
4894 BEGIN
4895
4896 lp_org_id := p_org_id;
4897
4898 OKC_CONTEXT.SET_OKC_ORG_CONTEXT(
4899 p_org_id => lp_org_id,
4900 p_organization_id => p_organization_id);
4901
4902 x_return_status := OKC_API.START_ACTIVITY(
4903 p_api_name => l_api_name,
4904 p_pkg_name => g_pkg_name,
4905 p_init_msg_list => p_init_msg_list,
4906 l_api_version => l_api_version,
4907 p_api_version => p_api_version,
4908 p_api_type => g_api_type,
4909 x_return_status => x_return_status);
4910
4911 -- check if activity started successfully
4912 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
4913 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
4914 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
4915 RAISE OKC_API.G_EXCEPTION_ERROR;
4916 END IF;
4917
4918 IF(p_customer_name IS NULL) THEN
4919 IF p_scs_code = 'MASTER_LEASE' THEN
4920 x_return_status := OKC_API.g_ret_sts_error;
4921 l_ak_prompt := GET_AK_PROMPT('OKL_LA_DEAL_CREAT', 'OKL_CUSTOMER_NAME');
4922 OKC_API.SET_MESSAGE( p_app_name => g_app_name
4923 , p_msg_name => 'OKL_REQUIRED_VALUE'
4924 , p_token1 => 'COL_NAME'
4925 , p_token1_value => l_ak_prompt
4926 );
4927 RAISE OKC_API.G_EXCEPTION_ERROR;
4928 END IF;
4929 END IF;
4930
4931 IF(p_program_name IS NOT NULL AND p_scs_code <> 'MASTER_LEASE' ) THEN
4932 l_program_id := null;
4933 open l_program_csr;
4934 fetch l_program_csr into l_program_id;
4935 close l_program_csr;
4936
4937 IF( l_program_id IS NULL ) THEN
4938
4939 x_return_status := OKC_API.g_ret_sts_error;
4940 l_ak_prompt := GET_AK_PROMPT('OKL_LA_DEAL_CREAT', 'OKL_PROGRAM');
4941 OKC_API.SET_MESSAGE( p_app_name => g_app_name
4942 , p_msg_name => 'OKL_LLA_INVALID_LOV_VALUE'
4943 , p_token1 => 'COL_NAME'
4944 , p_token1_value => l_ak_prompt
4945 );
4946 RAISE OKC_API.G_EXCEPTION_ERROR;
4947
4948 END IF;
4949 END IF;
4950
4951 IF(upper(p_source_code) <> 'NEW' AND p_source_contract_number IS NULL) THEN
4952 x_return_status := OKC_API.g_ret_sts_error;
4953 l_ak_prompt := GET_AK_PROMPT('OKL_LA_DEAL_CREAT', 'OKL_CONTRACT_SOURCE');
4954 OKC_API.SET_MESSAGE( p_app_name => g_app_name
4955 , p_msg_name => 'OKL_REQUIRED_VALUE'
4956 , p_token1 => 'COL_NAME'
4957 , p_token1_value => l_ak_prompt
4958 );
4959 RAISE OKC_API.G_EXCEPTION_ERROR;
4960 END IF;
4961
4962 IF(p_customer_name IS NOT NULL) THEN
4963
4964 okl_la_validation_util_pvt.Get_Party_Jtot_data (
4965 p_api_version => p_api_version,
4966 p_init_msg_list => p_init_msg_list,
4967 x_return_status => x_return_status,
4968 x_msg_count => x_msg_count,
4969 x_msg_data => x_msg_data,
4970 p_scs_code => p_scs_code,
4971 p_buy_or_sell => 'S',
4972 p_rle_code => G_RLE_CODE,
4973 p_id1 => p_customer_id1,
4974 p_id2 => p_customer_id2,
4975 p_name => p_customer_name,
4976 p_object_code => l_object_code,
4977 p_ak_region => 'OKL_LA_DEAL_CREAT',
4978 p_ak_attribute => 'OKL_CUSTOMER_NAME'
4979 );
4980
4981 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
4982 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
4983 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
4984 RAISE OKC_API.G_EXCEPTION_ERROR;
4985 END IF;
4986
4987 END IF;
4988
4989 IF(upper(p_source_code) <> 'NEW' AND p_source_contract_number IS NOT NULL) THEN
4990
4991 IF(p_customer_name IS NULL AND p_program_name IS NULL) THEN
4992
4993 IF (upper(p_source_code) = 'TEMPLATE') THEN
4994 OPEN l_src_chr_id_crs(p_scs_code,'Y');
4995 FETCH l_src_chr_id_crs INTO p_source_chr_id;
4996 CLOSE l_src_chr_id_crs;
4997 ELSIF (upper(p_source_code) = 'QUOTE') THEN
4998 OPEN l_quote_crs(lp_org_id, p_organization_id, p_source_contract_number);
4999 FETCH l_quote_crs INTO p_source_chr_id;
5000 CLOSE l_quote_crs;
5001 ELSIF (upper(p_source_code) = 'LEASEAPP') THEN
5002 OPEN l_leaseapp_crs(lp_org_id, p_organization_id, p_source_contract_number);
5003 FETCH l_leaseapp_crs INTO p_source_chr_id;
5004 CLOSE l_leaseapp_crs;
5005 ELSIF (upper(p_source_code) = 'PROGAGRMNTTEMP') THEN
5006 OPEN l_progAgrmntTemp1_crs;
5007 FETCH l_progAgrmntTemp1_crs INTO p_source_chr_id;
5008 CLOSE l_progAgrmntTemp1_crs;
5009 ELSIF (upper(p_source_code) = 'LEASEAPPTEMP') THEN
5010 OPEN l_leaseAppTmpl_crs;
5011 FETCH l_leaseAppTmpl_crs INTO p_source_chr_id;
5012 CLOSE l_leaseAppTmpl_crs;
5013 ELSE
5014 OPEN l_src_chr_id_crs(p_scs_code,'N');
5015 FETCH l_src_chr_id_crs INTO p_source_chr_id;
5016 CLOSE l_src_chr_id_crs;
5017 END IF;
5018
5019 ELSIF( p_customer_name IS NOT NULL AND p_program_name IS NULL) THEN
5020
5021 IF (upper(p_source_code) = 'TEMPLATE') THEN
5022 OPEN l_source_chr_id_crs(p_scs_code,'Y',p_customer_id1,p_customer_id2,l_object_code);
5023 FETCH l_source_chr_id_crs INTO p_source_chr_id;
5024 CLOSE l_source_chr_id_crs;
5025 ELSIF (upper(p_source_code) = 'QUOTE') THEN
5026 OPEN l_quote_crs(lp_org_id, p_organization_id, p_source_contract_number);
5027 FETCH l_quote_crs INTO p_source_chr_id;
5028 CLOSE l_quote_crs;
5029 ELSIF (upper(p_source_code) = 'LEASEAPP') THEN
5030 OPEN l_leaseapp_crs(lp_org_id, p_organization_id, p_source_contract_number);
5031 FETCH l_leaseapp_crs INTO p_source_chr_id;
5032 CLOSE l_leaseapp_crs;
5033 ELSIF (upper(p_source_code) = 'PROGAGRMNTTEMP') THEN
5034 OPEN l_progAgrmntTemp1_crs;
5035 FETCH l_progAgrmntTemp1_crs INTO p_source_chr_id;
5036 CLOSE l_progAgrmntTemp1_crs;
5037 ELSIF (upper(p_source_code) = 'LEASEAPPTEMP') THEN
5038 OPEN l_leaseAppTmpl1_crs(p_customer_id1,p_customer_id2,l_object_code);
5039 FETCH l_leaseAppTmpl1_crs INTO p_source_chr_id;
5040 CLOSE l_leaseAppTmpl1_crs;
5041 ELSE
5042 OPEN l_source_chr_id_crs(p_scs_code,'N',p_customer_id1,p_customer_id2,l_object_code);
5043 FETCH l_source_chr_id_crs INTO p_source_chr_id;
5044 CLOSE l_source_chr_id_crs;
5045 END IF;
5046
5047 ELSIF( p_customer_name IS NOT NULL AND p_program_name IS NOT NULL) THEN
5048
5049 IF (upper(p_source_code) = 'TEMPLATE') THEN
5050 OPEN l_source_chr_prog_id_crs(p_scs_code,'Y',p_customer_id1,p_customer_id2,l_object_code, l_program_id);
5051 FETCH l_source_chr_prog_id_crs INTO p_source_chr_id;
5052 CLOSE l_source_chr_prog_id_crs;
5053 ELSIF (upper(p_source_code) = 'QUOTE') THEN
5054 OPEN l_quote_crs(lp_org_id, p_organization_id, p_source_contract_number);
5055 FETCH l_quote_crs INTO p_source_chr_id;
5056 CLOSE l_quote_crs;
5057 ELSIF (upper(p_source_code) = 'LEASEAPP') THEN
5058 OPEN l_leaseapp_crs(lp_org_id, p_organization_id, p_source_contract_number);
5059 FETCH l_leaseapp_crs INTO p_source_chr_id;
5060 CLOSE l_leaseapp_crs;
5061 ELSIF (upper(p_source_code) = 'PROGAGRMNTTEMP') THEN
5062 OPEN l_progAgrmntTemp_crs(l_program_id);
5063 FETCH l_progAgrmntTemp_crs INTO p_source_chr_id;
5064 CLOSE l_progAgrmntTemp_crs;
5065 ELSIF (upper(p_source_code) = 'LEASEAPPTEMP') THEN
5066 OPEN l_leaseAppTmpl2_crs(p_customer_id1,p_customer_id2,l_object_code, l_program_id);
5067 FETCH l_leaseAppTmpl2_crs INTO p_source_chr_id;
5068 CLOSE l_leaseAppTmpl2_crs;
5069 ELSE
5070 OPEN l_source_chr_prog_id_crs(p_scs_code,'N',p_customer_id1,p_customer_id2,l_object_code, l_program_id);
5071 FETCH l_source_chr_prog_id_crs INTO p_source_chr_id;
5072 CLOSE l_source_chr_prog_id_crs;
5073 END IF;
5074
5075 ELSIF( p_customer_name IS NULL AND p_program_name IS NOT NULL) THEN
5076
5077 IF (upper(p_source_code) = 'TEMPLATE') THEN
5078 OPEN l_source_prog_crs(p_scs_code,'Y',l_program_id);
5079 FETCH l_source_prog_crs INTO p_source_chr_id;
5080 CLOSE l_source_prog_crs;
5081 ELSIF (upper(p_source_code) = 'QUOTE') THEN
5082 OPEN l_quote_crs(lp_org_id, p_organization_id, p_source_contract_number);
5083 FETCH l_quote_crs INTO p_source_chr_id;
5084 CLOSE l_quote_crs;
5085 ELSIF (upper(p_source_code) = 'LEASEAPP') THEN
5086 OPEN l_leaseapp_crs(lp_org_id, p_organization_id, p_source_contract_number);
5087 FETCH l_leaseapp_crs INTO p_source_chr_id;
5088 CLOSE l_leaseapp_crs;
5089 ELSIF (upper(p_source_code) = 'PROGAGRMNTTEMP') THEN
5090 OPEN l_progAgrmntTemp_crs(l_program_id);
5091 FETCH l_progAgrmntTemp_crs INTO p_source_chr_id;
5092 CLOSE l_progAgrmntTemp_crs;
5093 ELSIF (upper(p_source_code) = 'LEASEAPPTEMP') THEN
5094 OPEN l_leaseAppTmpl3_crs(l_program_id);
5095 FETCH l_leaseAppTmpl3_crs INTO p_source_chr_id;
5096 CLOSE l_leaseAppTmpl3_crs;
5097 ELSE
5098 OPEN l_source_prog_crs(p_scs_code,'N',l_program_id);
5099 FETCH l_source_prog_crs INTO p_source_chr_id;
5100 CLOSE l_source_prog_crs;
5101 END IF;
5102
5103 END IF;
5104
5105 IF(p_source_chr_id IS NULL) THEN
5106 x_return_status := OKC_API.g_ret_sts_error;
5107 l_ak_prompt := GET_AK_PROMPT('OKL_LA_DEAL_CREAT', 'OKL_CONTRACT_SOURCE');
5108 OKC_API.SET_MESSAGE( p_app_name => g_app_name
5109 , p_msg_name => 'OKL_LLA_INVALID_LOV_VALUE'
5110 , p_token1 => 'COL_NAME'
5111 , p_token1_value => l_ak_prompt
5112 );
5113 RAISE OKC_API.G_EXCEPTION_ERROR;
5114 END IF;
5115
5116 END IF;
5117
5118 IF (upper(p_source_code) = 'NEW') THEN
5119
5120 create_new_deal(
5121 p_api_version => l_api_version,
5122 p_init_msg_list => p_init_msg_list,
5123 x_return_status => x_return_status,
5124 x_msg_count => x_msg_count,
5125 x_msg_data => x_msg_data,
5126 p_contract_number => p_contract_number,
5127 p_scs_code => p_scs_code,
5128 p_customer_id1 => p_customer_id1,
5129 p_customer_id2 => p_customer_id2,
5130 p_customer_code => l_object_code,
5131 p_customer_name => p_customer_name,
5132 p_template_yn => l_template_yn,
5133 p_template_type => p_template_type,
5134 p_effective_from => p_effective_from,
5135 p_program_name => p_program_name,
5136 p_program_id => p_program_id,
5137 x_chr_id => x_chr_id,
5138 --Added by dpsingh for LE Uptake
5139 p_legal_entity_id => p_legal_entity_id);
5140
5141 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
5142 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
5143 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
5144 RAISE OKC_API.G_EXCEPTION_ERROR;
5145 END IF;
5146
5147 l_chr_id := x_chr_id;
5148
5149 IF okl_context.get_okc_org_id IS NULL THEN
5150 okl_context.set_okc_org_context(p_chr_id => l_chr_id );
5151 END IF;
5152
5153 IF (p_scs_code = 'LEASE') THEN
5154 p_kpl_rec.object1_id1 := lp_org_id;
5155 p_kpl_rec.object1_id2 := '#';
5156 p_kpl_rec.jtot_object1_code := 'OKX_OPERUNIT';
5157 p_kpl_rec.rle_code := 'LESSOR';
5158 p_kpl_rec.dnz_chr_id := l_chr_id;
5159 p_kpl_rec.chr_id := l_chr_id;
5160
5161 OKL_DEAL_CREAT_PVT.create_party(
5162 p_api_version => l_api_version,
5163 p_init_msg_list => p_init_msg_list,
5164 x_return_status => x_return_status,
5165 x_msg_count => x_msg_count,
5166 x_msg_data => x_msg_data,
5167 p_kpl_rec => p_kpl_rec,
5168 x_kpl_rec => x_kpl_rec);
5169
5170 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
5171 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
5172 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
5173 RAISE OKC_API.G_EXCEPTION_ERROR;
5174 END IF;
5175
5176 END IF;
5177 -- bug 4227922 property tax options defaulting onto contract
5178 IF ( p_scs_code = 'LEASE') THEN
5179
5180 OKL_LA_PROPERTY_TAX_PVT.create_est_prop_tax_rules(
5181 p_api_version => l_api_version,
5182 p_init_msg_list => p_init_msg_list,
5183 x_return_status => x_return_status,
5184 x_msg_count => x_msg_count,
5185 x_msg_data => x_msg_data,
5186 p_chr_id => l_chr_id);
5187
5188 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
5189 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
5190 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
5191 RAISE OKC_API.G_EXCEPTION_ERROR;
5192 END IF;
5193
5194 END IF;
5195
5196 -- copy from template
5197 ELSIF (upper(p_source_code) = 'TEMPLATE') THEN
5198
5199 create_from_template(
5200 p_api_version => l_api_version,
5201 p_init_msg_list => p_init_msg_list,
5202 x_return_status => x_return_status,
5203 x_msg_count => x_msg_count,
5204 x_msg_data => x_msg_data,
5205 p_contract_number => p_contract_number,
5206 p_source_chr_id => p_source_chr_id,
5207 x_chr_id => x_chr_id);
5208
5209 /* Bug# 3948361 - Re-lease contract functionality is moved to Revisions page
5210 ELSIF (p_source_code = 'Re-Lease') THEN
5211
5212 create_from_release(
5213 p_api_version => l_api_version,
5214 p_init_msg_list => p_init_msg_list,
5215 x_return_status => x_return_status,
5216 x_msg_count => x_msg_count,
5217 x_msg_data => x_msg_data,
5218 p_contract_number => p_contract_number,
5219 p_source_chr_id => p_source_chr_id,
5220 x_chr_id => x_chr_id);
5221 */
5222
5223 ELSIF (upper(p_source_code) = 'COPY' ) THEN
5224
5225 create_from_contract(
5226 p_api_version => l_api_version,
5227 p_init_msg_list => p_init_msg_list,
5228 x_return_status => x_return_status,
5229 x_msg_count => x_msg_count,
5230 x_msg_data => x_msg_data,
5231 p_contract_number => p_contract_number,
5232 p_source_chr_id => p_source_chr_id,
5233 x_chr_id => x_chr_id);
5234
5235 ELSIF (upper(p_source_code) = 'PROGAGRMNTTEMP' ) THEN
5236
5237 create_from_contract(
5238 p_api_version => l_api_version,
5239 p_init_msg_list => p_init_msg_list,
5240 x_return_status => x_return_status,
5241 x_msg_count => x_msg_count,
5242 x_msg_data => x_msg_data,
5243 p_contract_number => p_contract_number,
5244 p_source_chr_id => p_source_chr_id,
5245 x_chr_id => x_chr_id);
5246
5247 ELSIF (upper(p_source_code) = 'LEASEAPPTEMP' ) THEN
5248
5249 create_from_contract(
5250 p_api_version => l_api_version,
5251 p_init_msg_list => p_init_msg_list,
5252 x_return_status => x_return_status,
5253 x_msg_count => x_msg_count,
5254 x_msg_data => x_msg_data,
5255 p_contract_number => p_contract_number,
5256 p_source_chr_id => p_source_chr_id,
5257 x_chr_id => x_chr_id);
5258
5259 ELSIF (upper(p_source_code) = 'QUOTE' ) THEN
5260 -- LEASEOPP
5261 create_from_quote(
5262 p_api_version => l_api_version,
5263 p_init_msg_list => p_init_msg_list,
5264 x_return_status => x_return_status,
5265 x_msg_count => x_msg_count,
5266 x_msg_data => x_msg_data,
5267 p_contract_number => p_contract_number,
5268 p_source_object_code => 'LEASEOPP',
5269 p_source_chr_id => p_source_chr_id,
5270 x_chr_id => x_chr_id);
5271
5272 ELSIF (upper(p_source_code) = 'LEASEAPP' ) THEN
5273 -- LEASEAPP
5274 create_from_quote(
5275 p_api_version => l_api_version,
5276 p_init_msg_list => p_init_msg_list,
5277 x_return_status => x_return_status,
5278 x_msg_count => x_msg_count,
5279 x_msg_data => x_msg_data,
5280 p_contract_number => p_contract_number,
5281 p_source_object_code => 'LEASEAPP',
5282 p_source_chr_id => p_source_chr_id,
5283 x_chr_id => x_chr_id);
5284
5285 END IF;
5286
5287 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
5288 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
5289 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
5290 RAISE OKC_API.G_EXCEPTION_ERROR;
5291 END IF;
5292
5293 -- update contract header for template_yn
5294 IF ( p_template_type IS NOT NULL AND ( upper(p_source_code) = 'QUOTE' OR upper(p_source_code) = 'COPY'
5295 OR upper(p_source_code) = 'RE-LEASE' OR upper(p_source_code) = 'TEMPLATE' OR upper(p_source_code) = 'PROGAGRMNTTEMP')) THEN
5296
5297 lp_chrv_rec.id := x_chr_id;
5298 lp_khrv_rec.id := x_chr_id;
5299
5300 IF(p_template_type = OKL_TEMP_TYPE_PROGRAM) THEN
5301 lp_khrv_rec.template_type_code := OKL_TEMP_TYPE_PROGRAM;
5302 lp_chrv_rec.template_yn := 'Y';
5303 ELSIF(p_template_type = OKL_TEMP_TYPE_CONTRACT) THEN
5304 lp_khrv_rec.template_type_code := OKL_TEMP_TYPE_CONTRACT;
5305 lp_chrv_rec.template_yn := 'Y';
5306 ELSIF(p_template_type = OKL_TEMP_TYPE_LEASEAPP) THEN
5307 lp_khrv_rec.template_type_code := OKL_TEMP_TYPE_LEASEAPP;
5308 lp_chrv_rec.template_yn := 'Y';
5309 ELSE
5310 lp_khrv_rec.template_type_code := NULL;
5311 END IF;
5312
5313 IF(p_effective_from IS NOT NULL) THEN
5314
5315 lp_chrv_rec.start_date := p_effective_from;
5316
5317 END IF;
5318
5319 IF(l_program_id IS NOT NULL) THEN
5320
5321 lp_khrv_rec.khr_id := l_program_id;
5322
5323 END IF;
5324
5325 OKL_CONTRACT_PUB.update_contract_header(
5326 p_api_version => p_api_version,
5327 p_init_msg_list => p_init_msg_list,
5328 x_return_status => x_return_status,
5329 x_msg_count => x_msg_count,
5330 x_msg_data => x_msg_data,
5331 p_chrv_rec => lp_chrv_rec,
5332 p_khrv_rec => lp_khrv_rec,
5333 x_chrv_rec => lx_chrv_rec,
5334 x_khrv_rec => lx_khrv_rec);
5335
5336 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
5337 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
5338 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
5339 RAISE OKC_API.G_EXCEPTION_ERROR;
5340 END IF;
5341
5342 ELSIF ( p_template_type IS NULL AND ( upper(p_source_code) = 'QUOTE' OR upper(p_source_code) = 'COPY'
5343 OR upper(p_source_code) = 'RE-LEASE' OR upper(p_source_code) = 'TEMPLATE' OR upper(p_source_code) = 'PROGAGRMNTTEMP'
5344 OR upper(p_source_code) = 'LEASEAPPTEMP')) THEN
5345
5346 lp_chrv_rec.id := x_chr_id;
5347 lp_khrv_rec.id := x_chr_id;
5348 lp_chrv_rec.template_yn := 'N';
5349 lp_khrv_rec.template_type_code := NULL;
5350
5351 IF(p_effective_from IS NOT NULL) THEN
5352
5353 lp_chrv_rec.start_date := p_effective_from;
5354
5355 END IF;
5356
5357 IF(l_program_id IS NOT NULL) THEN
5358
5359 lp_khrv_rec.khr_id := l_program_id;
5360
5361 END IF;
5362
5363 OKL_CONTRACT_PUB.update_contract_header(
5364 p_api_version => p_api_version,
5365 p_init_msg_list => p_init_msg_list,
5366 x_return_status => x_return_status,
5367 x_msg_count => x_msg_count,
5368 x_msg_data => x_msg_data,
5369 p_chrv_rec => lp_chrv_rec,
5370 p_khrv_rec => lp_khrv_rec,
5371 x_chrv_rec => lx_chrv_rec,
5372 x_khrv_rec => lx_khrv_rec);
5373
5374 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
5375 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
5376 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
5377 RAISE OKC_API.G_EXCEPTION_ERROR;
5378 END IF;
5379
5380 END IF;
5381
5382 OPEN c_orig_system_source(x_chr_id);
5383 FETCH c_orig_system_source INTO l_orig_system_source_code;
5384 CLOSE c_orig_system_source;
5385
5386 IF NVL(l_orig_system_source_code,'XXXX') <> 'OKL_IMPORT' THEN
5387 OPEN c_tax_schedule_yn;
5388 FETCH c_tax_schedule_yn INTO l_tax_schedule_yn;
5389 CLOSE c_tax_schedule_yn;
5390
5391 OPEN c_rule_group(x_chr_id,'LAHDTX');
5392 FETCH c_rule_group INTO l_rgp_id,l_rgd_code;
5393 CLOSE c_rule_group;
5394
5395 IF (NVL(l_rgd_code,'XXXXXX') <> 'LAHDTX') THEN
5396 -- Create rule group LAHDTX
5397 lp_lahdtx_rgpv_rec.id := NULL;
5398 lp_lahdtx_rgpv_rec.rgd_code := 'LAHDTX';
5399 lp_lahdtx_rgpv_rec.dnz_chr_id := x_chr_id;
5400 lp_lahdtx_rgpv_rec.chr_id := x_chr_id;
5401 lp_lahdtx_rgpv_rec.rgp_type := 'KRG';
5402
5403 OKL_RULE_PUB.create_rule_group(
5404 p_api_version => p_api_version,
5405 p_init_msg_list => p_init_msg_list,
5406 x_return_status => x_return_status,
5407 x_msg_count => x_msg_count,
5408 x_msg_data => x_msg_data,
5409 p_rgpv_rec => lp_lahdtx_rgpv_rec,
5410 x_rgpv_rec => lx_lahdtx_rgpv_rec);
5411
5412 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
5413 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
5414 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
5415 RAISE OKC_API.G_EXCEPTION_ERROR;
5416 END IF;
5417
5418 l_rgp_id := lx_lahdtx_rgpv_rec.id;
5419 END IF;
5420 -- Create rule LASTPR
5421 lp_lahdtx_rulv_rec.id := NULL;
5422 lp_lahdtx_rulv_rec.rgp_id := l_rgp_id;
5423 lp_lahdtx_rulv_rec.rule_information_category := 'LASTPR';
5424 lp_lahdtx_rulv_rec.dnz_chr_id := x_chr_id;
5425 lp_lahdtx_rulv_rec.rule_information5 := l_tax_schedule_yn;
5426 lp_lahdtx_rulv_rec.WARN_YN := 'N';
5427 lp_lahdtx_rulv_rec.STD_TEMPLATE_YN := 'N';
5428
5429 OKL_RULE_PUB.create_rule(
5430 p_api_version => p_api_version,
5431 p_init_msg_list => p_init_msg_list,
5432 x_return_status => x_return_status,
5433 x_msg_count => x_msg_count,
5434 x_msg_data => x_msg_data,
5435 p_rulv_rec => lp_lahdtx_rulv_rec,
5436 x_rulv_rec => lx_lahdtx_rulv_rec);
5437
5438 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
5439 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
5440 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
5441 RAISE OKC_API.G_EXCEPTION_ERROR;
5442 END IF;
5443 END IF;
5444
5445 /*
5446 -- mvasudev, 08/17/2004
5447 -- Code change to enable Business Event
5448 */
5449 raise_business_event(p_chr_id => x_chr_id
5450 ,x_return_status => x_return_status);
5451 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
5452 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5453 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
5454 RAISE OKL_API.G_EXCEPTION_ERROR;
5455 END IF;
5456
5457 /*
5458 -- mvasudev, 08/17/2004
5459 -- END, Code change to enable Business Event
5460 */
5461
5462 OKC_API.END_ACTIVITY(x_msg_count => x_msg_count,
5463 x_msg_data => x_msg_data);
5464 EXCEPTION
5465 WHEN OKC_API.G_EXCEPTION_ERROR THEN
5466 x_return_status := OKC_API.HANDLE_EXCEPTIONS(
5467 p_api_name => l_api_name,
5468 p_pkg_name => g_pkg_name,
5469 p_exc_name => 'OKC_API.G_RET_STS_ERROR',
5470 x_msg_count => x_msg_count,
5471 x_msg_data => x_msg_data,
5472 p_api_type => g_api_type);
5473
5474 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
5475 x_return_status := OKC_API.HANDLE_EXCEPTIONS(
5476 p_api_name => l_api_name,
5477 p_pkg_name => g_pkg_name,
5478 p_exc_name => 'OKC_API.G_RET_STS_UNEXP_ERROR',
5479 x_msg_count => x_msg_count,
5480 x_msg_data => x_msg_data,
5481 p_api_type => g_api_type);
5482
5483 WHEN OTHERS THEN
5484 x_return_status := OKC_API.HANDLE_EXCEPTIONS(
5485 p_api_name => l_api_name,
5486 p_pkg_name => g_pkg_name,
5487 p_exc_name => 'OTHERS',
5488 x_msg_count => x_msg_count,
5489 x_msg_data => x_msg_data,
5490 p_api_type => g_api_type);
5491 END;
5492
5493
5494 -- Start of comments
5495 --
5496 -- Procedure Name : validate_deal
5497 -- Description : creates a deal based on the information that comes
5498 -- from the deal creation screen
5499 -- Business Rules :
5500 -- Parameters :
5501 -- Version : 1.0
5502 -- End of comments
5503 PROCEDURE validate_deal(
5504 p_api_version IN NUMBER,
5505 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
5506 x_return_status OUT NOCOPY VARCHAR2,
5507 x_msg_count OUT NOCOPY NUMBER,
5508 x_msg_data OUT NOCOPY VARCHAR2,
5509 p_customer_id1 IN OUT NOCOPY VARCHAR2,
5510 p_customer_id2 IN OUT NOCOPY VARCHAR2,
5511 p_customer_code IN OUT NOCOPY VARCHAR2,
5512 p_customer_name IN VARCHAR2,
5513 p_customer_acc_id1 IN OUT NOCOPY VARCHAR2,
5514 p_customer_acc_id2 IN OUT NOCOPY VARCHAR2,
5515 p_customer_acc_code IN OUT NOCOPY VARCHAR2,
5516 p_customer_acc_name IN VARCHAR2,
5517 p_product_name IN VARCHAR2,
5518 p_product_id IN OUT NOCOPY VARCHAR2,
5519 p_contact_id1 IN OUT NOCOPY VARCHAR2,
5520 p_contact_id2 IN OUT NOCOPY VARCHAR2,
5521 p_contact_code IN OUT NOCOPY VARCHAR2,
5522 p_contact_name IN VARCHAR2,
5523 p_mla_no IN VARCHAR2,
5524 p_mla_id IN OUT NOCOPY VARCHAR2,
5525 p_chrv_rec IN chrv_rec_type,
5526 p_khrv_rec IN khrv_rec_type,
5527 x_chrv_rec OUT NOCOPY chrv_rec_type,
5528 x_khrv_rec OUT NOCOPY khrv_rec_type
5529 ) AS
5530
5531 l_api_name VARCHAR2(30) := 'validate_deal';
5532 l_api_version CONSTANT NUMBER := 1.0;
5533
5534 l_template_yn OKC_K_HEADERS_B.TEMPLATE_YN%TYPE;
5535 l_chr_type OKC_K_HEADERS_B.CHR_TYPE%TYPE;
5536 l_contract_number OKC_K_HEADERS_B.CHR_TYPE%TYPE;
5537 l_object_code VARCHAR2(30) DEFAULT NULL;
5538
5539 l_ak_prompt AK_ATTRIBUTES_VL.attribute_label_long%TYPE;
5540 l_chr_id NUMBER;
5541
5542 CURSOR l_chk_cust_acc_csr(p_cust_acc_id1 VARCHAR2, p_name VARCHAR2) IS
5543 SELECT COUNT(1)
5544 FROM okx_customer_accounts_v ca, okx_parties_v P
5545 WHERE P.id1 = ca.party_id
5546 AND ca.description = p_cust_acc_id1
5547 AND P.name = p_name;
5548
5549 CURSOR l_product_csr IS
5550 SELECT id
5551 FROM OKL_PRODUCTS_V
5552 WHERE name = p_product_name;
5553
5554 row_cnt NUMBER;
5555
5556 BEGIN
5557
5558 IF okl_context.get_okc_org_id IS NULL THEN
5559 l_chr_id := p_chrv_rec.id;
5560 okl_context.set_okc_org_context(p_chr_id => l_chr_id );
5561 END IF;
5562
5563 x_return_status := OKC_API.START_ACTIVITY(
5564 p_api_name => l_api_name,
5565 p_pkg_name => g_pkg_name,
5566 p_init_msg_list => p_init_msg_list,
5567 l_api_version => l_api_version,
5568 p_api_version => p_api_version,
5569 p_api_type => g_api_type,
5570 x_return_status => x_return_status);
5571
5572 -- check if activity started successfully
5573 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
5574 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
5575 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
5576 RAISE OKC_API.G_EXCEPTION_ERROR;
5577 END IF;
5578
5579 -- contract number validation
5580
5581 IF(p_chrv_rec.contract_number IS NULL) THEN
5582 x_return_status := OKC_API.g_ret_sts_error;
5583 l_ak_prompt := GET_AK_PROMPT('OKL_LA_DEAL_CREAT', 'OKL_CONTRACT_NUMBER');
5584 OKC_API.SET_MESSAGE( p_app_name => g_app_name
5585 , p_msg_name => 'OKL_REQUIRED_VALUE'
5586 , p_token1 => 'COL_NAME'
5587 , p_token1_value => l_ak_prompt
5588 );
5589 RAISE OKC_API.G_EXCEPTION_ERROR;
5590 END IF;
5591
5592 -- customer validation
5593
5594 IF(p_customer_name IS NULL) THEN
5595 x_return_status := OKC_API.g_ret_sts_error;
5596 l_ak_prompt := GET_AK_PROMPT('OKL_LA_DEAL_CREAT', 'OKL_CUSTOMER_NAME');
5597 OKC_API.SET_MESSAGE( p_app_name => g_app_name
5598 , p_msg_name => 'OKL_REQUIRED_VALUE'
5599 , p_token1 => 'COL_NAME'
5600 , p_token1_value => l_ak_prompt
5601 );
5602 RAISE OKC_API.G_EXCEPTION_ERROR;
5603 END IF;
5604
5605 okl_la_validation_util_pvt.Get_Party_Jtot_data (
5606 p_api_version => p_api_version,
5607 p_init_msg_list => p_init_msg_list,
5608 x_return_status => x_return_status,
5609 x_msg_count => x_msg_count,
5610 x_msg_data => x_msg_data,
5611 p_scs_code => p_chrv_rec.scs_code,
5612 p_buy_or_sell => 'S',
5613 p_rle_code => G_RLE_CODE,
5614 p_id1 => p_customer_id1,
5615 p_id2 => p_customer_id2,
5616 p_name => p_customer_name,
5617 p_object_code => p_customer_code,
5618 p_ak_region => 'OKL_LA_DEAL_CREAT',
5619 p_ak_attribute => 'OKL_CUSTOMER_NAME'
5620 );
5621
5622 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
5623 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
5624 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
5625 RAISE OKC_API.G_EXCEPTION_ERROR;
5626 END IF;
5627
5628 -- customer account validation
5629
5630 IF(p_customer_acc_name IS NULL) THEN
5631 x_return_status := OKC_API.g_ret_sts_error;
5632 l_ak_prompt := GET_AK_PROMPT('OKL_CONTRACT_DTLS', 'OKL_KDTLS_CUSTOMER_ACCOUNT_N');
5633 OKC_API.SET_MESSAGE( p_app_name => g_app_name
5634 , p_msg_name => 'OKL_REQUIRED_VALUE'
5635 , p_token1 => 'COL_NAME'
5636 , p_token1_value => l_ak_prompt
5637 );
5638 RAISE OKC_API.G_EXCEPTION_ERROR;
5639 END IF;
5640
5641 okl_la_validation_util_pvt.Validate_Rule (
5642 p_api_version => p_api_version,
5643 p_init_msg_list => p_init_msg_list,
5644 x_return_status => x_return_status,
5645 x_msg_count => x_msg_count,
5646 x_msg_data => x_msg_data,
5647 p_chr_id => p_chrv_rec.id,
5648 p_rgd_code => 'LACAN',
5649 p_rdf_code => 'CAN',
5650 p_id1 => p_customer_acc_id1,
5651 p_id2 => p_customer_acc_id2,
5652 p_name => p_customer_acc_name,
5653 p_object_code => p_customer_acc_code,
5654 p_ak_region => 'OKL_CONTRACT_DTLS',
5655 p_ak_attribute => 'OKL_KDTLS_CUSTOMER_ACCOUNT_N'
5656 );
5657
5658 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
5659 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
5660 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
5661 RAISE OKC_API.G_EXCEPTION_ERROR;
5662 END IF;
5663
5664 OPEN l_chk_cust_acc_csr(p_customer_acc_name,p_customer_name);
5665 FETCH l_chk_cust_acc_csr INTO row_cnt;
5666 CLOSE l_chk_cust_acc_csr;
5667
5668 IF row_cnt = 0 THEN
5669 x_return_status := OKC_API.g_ret_sts_error;
5670 l_ak_prompt := GET_AK_PROMPT('OKL_CONTRACT_DTLS', 'OKL_KDTLS_CUSTOMER_ACCOUNT_N');
5671 OKC_API.SET_MESSAGE( p_app_name => g_app_name
5672 , p_msg_name => 'OKL_LLA_INVALID_LOV_VALUE'
5673 , p_token1 => 'COL_NAME'
5674 , p_token1_value => l_ak_prompt
5675 );
5676 RAISE OKC_API.G_EXCEPTION_ERROR;
5677 END IF;
5678
5679 -- product validation
5680
5681 IF(p_product_name IS NULL) THEN
5682 x_return_status := OKC_API.g_ret_sts_error;
5683 l_ak_prompt := GET_AK_PROMPT('OKL_CONTRACT_DTLS', 'OKL_KDTLS_PRODUCT');
5684 OKC_API.SET_MESSAGE( p_app_name => g_app_name
5685 , p_msg_name => 'OKL_REQUIRED_VALUE'
5686 , p_token1 => 'COL_NAME'
5687 , p_token1_value => l_ak_prompt
5688 );
5689 RAISE OKC_API.G_EXCEPTION_ERROR;
5690 END IF;
5691
5692 OPEN l_product_csr;
5693 FETCH l_product_csr INTO p_product_id;
5694 CLOSE l_product_csr;
5695
5696 IF p_product_id IS NULL THEN
5697 x_return_status := OKC_API.g_ret_sts_error;
5698 l_ak_prompt := GET_AK_PROMPT('OKL_CONTRACT_DTLS', 'OKL_KDTLS_PRODUCT');
5699 OKC_API.SET_MESSAGE( p_app_name => g_app_name
5700 , p_msg_name => 'OKL_LLA_INVALID_LOV_VALUE'
5701 , p_token1 => 'COL_NAME'
5702 , p_token1_value => l_ak_prompt
5703 );
5704 RAISE OKC_API.G_EXCEPTION_ERROR;
5705 END IF;
5706
5707 -- contact validation
5708
5709 IF(p_contact_name IS NOT NULL) THEN
5710
5711 okl_la_validation_util_pvt.Validate_Contact (
5712 p_api_version => p_api_version,
5713 p_init_msg_list => p_init_msg_list,
5714 x_return_status => x_return_status,
5715 x_msg_count => x_msg_count,
5716 x_msg_data => x_msg_data,
5717 p_chr_id => p_chrv_rec.id,
5718 p_rle_code => 'LESSOR',
5719 p_cro_code => 'SALESPERSON',
5720 p_id1 => p_contact_id1,
5721 p_id2 => p_contact_id2,
5722 p_name => p_contact_name,
5723 p_object_code => p_contact_code,
5724 p_ak_region => 'OKL_CONTRACT_DTLS',
5725 p_ak_attribute => 'OKL_KDTLS_SALES_REPRESENTATIVE'
5726 );
5727
5728 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
5729 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
5730 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
5731 RAISE OKC_API.G_EXCEPTION_ERROR;
5732 END IF;
5733
5734 END IF;
5735
5736 OKC_API.END_ACTIVITY(x_msg_count => x_msg_count,
5737 x_msg_data => x_msg_data);
5738 EXCEPTION
5739 WHEN OKC_API.G_EXCEPTION_ERROR THEN
5740 x_return_status := OKC_API.HANDLE_EXCEPTIONS(
5741 p_api_name => l_api_name,
5742 p_pkg_name => g_pkg_name,
5743 p_exc_name => 'OKC_API.G_RET_STS_ERROR',
5744 x_msg_count => x_msg_count,
5745 x_msg_data => x_msg_data,
5746 p_api_type => g_api_type);
5747
5748 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
5749 x_return_status := OKC_API.HANDLE_EXCEPTIONS(
5750 p_api_name => l_api_name,
5751 p_pkg_name => g_pkg_name,
5752 p_exc_name => 'OKC_API.G_RET_STS_UNEXP_ERROR',
5753 x_msg_count => x_msg_count,
5754 x_msg_data => x_msg_data,
5755 p_api_type => g_api_type);
5756
5757 WHEN OTHERS THEN
5758 x_return_status := OKC_API.HANDLE_EXCEPTIONS(
5759 p_api_name => l_api_name,
5760 p_pkg_name => g_pkg_name,
5761 p_exc_name => 'OTHERS',
5762 x_msg_count => x_msg_count,
5763 x_msg_data => x_msg_data,
5764 p_api_type => g_api_type);
5765 END;
5766
5767
5768 -- Start of comments
5769 --
5770 -- Procedure Name : update_release_contract
5771 -- Description : update release contract for
5772 -- PRODUCT_CHANGE/CUSTOMER_CHANGE
5773 --
5774 -- Business Rules :
5775 -- Parameters :
5776 -- Version : 1.0
5777 -- End of comments
5778 PROCEDURE update_release_contract(
5779 p_api_version IN NUMBER,
5780 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
5781 x_return_status OUT NOCOPY VARCHAR2,
5782 x_msg_count OUT NOCOPY NUMBER,
5783 x_msg_data OUT NOCOPY VARCHAR2,
5784 p_chr_id IN NUMBER,
5785 p_contract_number IN VARCHAR2,
5786 p_chr_description IN VARCHAR2,
5787 p_cust_id IN NUMBER,
5788 p_customer_name IN VARCHAR2,
5789 p_customer_id1 IN VARCHAR2,
5790 p_customer_acc_name IN VARCHAR2,
5791 p_customer_acct_id1 IN VARCHAR2,
5792 p_product_name IN VARCHAR2,
5793 p_mla_id IN NUMBER,
5794 p_mla_no IN VARCHAR2,
5795 p_gvr_id_mla IN NUMBER,
5796 p_cl_id IN NUMBER,
5797 p_cl_no IN VARCHAR2,
5798 p_gvr_id_cl IN NUMBER,
5799 p_deal_type IN VARCHAR2,
5800 p_program_no IN VARCHAR2,
5801 p_program_id IN NUMBER,
5802 p_program_yn IN VARCHAR2,
5803 p_bill_to_site_use_id IN NUMBER -- Bug 6493413
5804 ) AS
5805
5806 l_api_name VARCHAR2(30) := 'update_release_contract';
5807 l_api_version CONSTANT NUMBER := 1.0;
5808
5809 l_template_yn OKC_K_HEADERS_B.TEMPLATE_YN%TYPE;
5810 l_chr_type OKC_K_HEADERS_B.CHR_TYPE%TYPE;
5811 l_contract_number OKC_K_HEADERS_B.CHR_TYPE%TYPE;
5812 l_object_code VARCHAR2(30) DEFAULT NULL;
5813
5814 l_ak_prompt AK_ATTRIBUTES_VL.attribute_label_long%TYPE;
5815 l_chr_id NUMBER;
5816
5817 cursor l_get_cust_id_csr(p_name VARCHAR2) is
5818 select OKX_PARTY.ID1, OKX_PARTY.ID2
5819 from OKX_PARTIES_V OKX_PARTY
5820 where OKX_PARTY.name = p_name
5821 and okx_party.id1 = p_customer_id1;
5822
5823 l_cust_id1 OKX_PARTIES_V.ID1%type := null;
5824 l_cust_id2 OKX_PARTIES_V.ID2%type := null;
5825
5826 cursor l_get_cust_acc_csr(p_cust_acc_desc VARCHAR2, p_name VARCHAR2) is
5827 select ca.id1
5828 from okx_customer_accounts_v ca,
5829 okx_parties_v p
5830 where p.id1 = ca.party_id
5831 and ca.description = p_cust_acc_desc
5832 and p.name = p_name;
5833
5834 l_cust_acct_id okx_customer_accounts_v.id1%type := null;
5835
5836 CURSOR l_product_csr IS
5837 SELECT id
5838 FROM OKL_PRODUCTS_V
5839 WHERE name = p_product_name;
5840
5841 l_product_id OKL_PRODUCTS_V.id%type := null;
5842
5843 row_cnt NUMBER;
5844
5845 Cursor l_rbr_csr IS
5846 SELECT rbr_code
5847 FROM okl_trx_contracts
5848 WHERE khr_id_new = p_chr_id
5849 --rkuttiya added for 12.1.1 Multi GAAP Project
5850 AND representation_type = 'PRIMARY';
5851 --
5852
5853 l_rbr_code okl_trx_contracts.rbr_code%type := null;
5854
5855 cursor l_mla_csr is
5856 select id
5857 from OKL_k_headers_full_V
5858 where contract_number = p_mla_no
5859 and scs_code = 'MASTER_LEASE'
5860 and STS_CODE = 'ACTIVE'
5861 and TEMPLATE_YN = 'N'
5862 and BUY_OR_SELL = 'S';
5863
5864 l_mla_id number;
5865
5866 cursor l_credit_line_csr is
5867 select cl.id
5868 from okl_k_hdr_crdtln_uv cl
5869 where cl.contract_number = p_cl_no
5870 and exists ( select 1
5871 from okc_k_headers_b chr
5872 where chr.currency_code = cl.currency_code
5873 and cl.end_date >= chr.start_date
5874 and cl.cust_name = p_customer_name
5875 and cl.cust_acc_number = p_customer_acc_name);
5876
5877 l_cl_id NUMBER;
5878
5879 cursor l_program_csr is
5880 select id
5881 from OKL_k_headers_full_V prg_hdr
5882 where contract_number = p_program_no
5883 and scs_code = 'PROGRAM'
5884 and nvl(TEMPLATE_YN, 'N') = 'N'
5885 and sts_code = 'ACTIVE'
5886 and exists (select 1
5887 from okc_k_headers_b
5888 where id = p_chr_id
5889 and authoring_org_id = prg_hdr.authoring_org_id);
5890
5891 l_program_id number;
5892
5893 old_khr_id NUMBER;
5894
5895 CURSOR c_vp_exsts_csr IS
5896 SELECT khr_id
5897 FROM okl_k_headers_full_v
5898 WHERE id = p_chr_id;
5899
5900 CURSOR c_context_csr IS
5901 SELECT authoring_org_id, inv_organization_id
5902 FROM okl_k_headers_full_V
5903 WHERE id = p_chr_id;
5904
5905 l_auth_org_id okc_k_headers_b.authoring_org_id%type;
5906 l_inv_org_id okc_k_headers_b.inv_organization_id%type;
5907
5908 lp_chrv_rec OKL_OKC_MIGRATION_PVT.chrv_rec_type;
5909 lx_chrv_rec OKL_OKC_MIGRATION_PVT.chrv_rec_type;
5910
5911 lp_khrv_rec OKL_CONTRACT_PUB.khrv_rec_type;
5912 lx_khrv_rec OKL_CONTRACT_PUB.khrv_rec_type;
5913
5914 lp_lessee_cplv_rec OKL_OKC_MIGRATION_PVT.cplv_rec_type;
5915 lx_lessee_cplv_rec OKL_OKC_MIGRATION_PVT.cplv_rec_type;
5916
5917 lp_pdtv_rec OKL_SETUPPRODUCTS_PUB.pdtv_rec_type;
5918 lp_pdt_param_rec OKL_SETUPPRODUCTS_PUB.pdt_parameters_rec_type;
5919 lx_pdtv_rec OKL_SETUPPRODUCTS_PUB.pdtv_rec_type;
5920 lx_pdt_param_rec OKL_SETUPPRODUCTS_PUB.pdt_parameters_rec_type;
5921
5922 lp_mla_gvev_rec OKL_OKC_MIGRATION_PVT.gvev_rec_type;
5923 lx_mla_gvev_rec OKL_OKC_MIGRATION_PVT.gvev_rec_type;
5924
5925 lp_cl_gvev_rec OKL_OKC_MIGRATION_PVT.gvev_rec_type;
5926 lx_cl_gvev_rec OKL_OKC_MIGRATION_PVT.gvev_rec_type;
5927
5928 X_NO_DATA_FOUND BOOLEAN := TRUE;
5929
5930 --Bug# 4558486
5931 lp_kplv_rec okl_k_party_roles_pvt.kplv_rec_type;
5932 lx_kplv_rec okl_k_party_roles_pvt.kplv_rec_type;
5933
5934 BEGIN
5935
5936 IF okl_context.get_okc_org_id IS NULL THEN
5937 l_chr_id := p_chr_id;
5938 okl_context.set_okc_org_context(p_chr_id => l_chr_id );
5939 END IF;
5940
5941 x_return_status := OKC_API.START_ACTIVITY(
5942 p_api_name => l_api_name,
5943 p_pkg_name => g_pkg_name,
5944 p_init_msg_list => p_init_msg_list,
5945 l_api_version => l_api_version,
5946 p_api_version => p_api_version,
5947 p_api_type => g_api_type,
5948 x_return_status => x_return_status);
5949
5950 -- check if activity started successfully
5951 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
5952 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
5953 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
5954 RAISE OKC_API.G_EXCEPTION_ERROR;
5955 END IF;
5956
5957 l_rbr_code := null;
5958 open l_rbr_csr;
5959 fetch l_rbr_csr into l_rbr_code;
5960 close l_rbr_csr;
5961
5962 If(l_rbr_code is not null and l_rbr_code = 'PRODUCT_CHANGE') Then
5963
5964 -- product validation
5965 IF(p_product_name IS NULL) THEN
5966 x_return_status := OKC_API.g_ret_sts_error;
5967 l_ak_prompt := GET_AK_PROMPT('OKL_CONTRACT_DTLS', 'OKL_KDTLS_PRODUCT');
5968 OKC_API.SET_MESSAGE( p_app_name => g_app_name
5969 , p_msg_name => 'OKL_REQUIRED_VALUE'
5970 , p_token1 => 'COL_NAME'
5971 , p_token1_value => l_ak_prompt
5972 );
5973 RAISE OKC_API.G_EXCEPTION_ERROR;
5974 END IF;
5975
5976 l_product_id := null;
5977 OPEN l_product_csr;
5978 FETCH l_product_csr INTO l_product_id;
5979 CLOSE l_product_csr;
5980
5981 IF l_product_id IS NULL THEN
5982 x_return_status := OKC_API.g_ret_sts_error;
5983 l_ak_prompt := GET_AK_PROMPT('OKL_CONTRACT_DTLS', 'OKL_KDTLS_PRODUCT');
5984 OKC_API.SET_MESSAGE( p_app_name => g_app_name
5985 , p_msg_name => 'OKL_LLA_INVALID_LOV_VALUE'
5986 , p_token1 => 'COL_NAME'
5987 , p_token1_value => l_ak_prompt
5988 );
5989 RAISE OKC_API.G_EXCEPTION_ERROR;
5990 END IF;
5991
5992 END IF;
5993
5994 If(l_rbr_code is not null and l_rbr_code = 'CUSTOMER_CHANGE') Then
5995
5996 -- customer validation
5997 IF(p_customer_name IS NULL) THEN
5998 x_return_status := OKC_API.g_ret_sts_error;
5999 l_ak_prompt := GET_AK_PROMPT('OKL_LA_DEAL_CREAT', 'OKL_CUSTOMER_NAME');
6000 OKC_API.SET_MESSAGE( p_app_name => g_app_name
6001 , p_msg_name => 'OKL_REQUIRED_VALUE'
6002 , p_token1 => 'COL_NAME'
6003 , p_token1_value => l_ak_prompt
6004 );
6005 RAISE OKC_API.G_EXCEPTION_ERROR;
6006 END IF;
6007
6008 -- customer account validation
6009 IF(p_customer_acc_name IS NULL) THEN
6010 x_return_status := OKC_API.g_ret_sts_error;
6011 l_ak_prompt := GET_AK_PROMPT('OKL_CONTRACT_DTLS', 'OKL_KDTLS_CUSTOMER_ACCOUNT_N');
6012 OKC_API.SET_MESSAGE( p_app_name => g_app_name
6013 , p_msg_name => 'OKL_REQUIRED_VALUE'
6014 , p_token1 => 'COL_NAME'
6015 , p_token1_value => l_ak_prompt
6016 );
6017 RAISE OKC_API.G_EXCEPTION_ERROR;
6018 END IF;
6019
6020 -- gboomina Bug 6493413 - Start
6021 -- Bill To Address validation
6022 IF ( p_bill_to_site_use_id IS NULL) THEN
6023 x_return_status := OKC_API.g_ret_sts_error;
6024 l_ak_prompt := GET_AK_PROMPT('OKL_LA_LAVENB', 'OKL_LA_BILLTO');
6025 OKC_API.SET_MESSAGE( p_app_name => g_app_name
6026 , p_msg_name => 'OKL_REQUIRED_VALUE'
6027 , p_token1 => 'COL_NAME'
6028 , p_token1_value => l_ak_prompt
6029 );
6030 RAISE OKC_API.G_EXCEPTION_ERROR;
6031 END IF;
6032 -- gboomina Bug 6493413 - End
6033
6034 l_cust_id1 := null;
6035 l_cust_id2 := null;
6036 Open l_get_cust_id_csr(p_customer_name);
6037 Fetch l_get_cust_id_csr into l_cust_id1,l_cust_id2;
6038 Close l_get_cust_id_csr;
6039
6040 If l_cust_id1 is null Then
6041 x_return_status := OKC_API.g_ret_sts_error;
6042 l_ak_prompt := GET_AK_PROMPT('OKL_LA_DEAL_CREAT', 'OKL_CUSTOMER_NAME');
6043 OKC_API.SET_MESSAGE( p_app_name => g_app_name
6044 , p_msg_name => 'OKL_LLA_INVALID_LOV_VALUE'
6045 , p_token1 => 'COL_NAME'
6046 , p_token1_value => l_ak_prompt
6047 );
6048 raise OKC_API.G_EXCEPTION_ERROR;
6049 End If;
6050
6051 l_cust_acct_id := null;
6052 Open l_get_cust_acc_csr(p_customer_acc_name, p_customer_name);
6053 Fetch l_get_cust_acc_csr into l_cust_acct_id;
6054 Close l_get_cust_acc_csr;
6055
6056 If l_cust_acct_id is null Then
6057 x_return_status := OKC_API.g_ret_sts_error;
6058 l_ak_prompt := GET_AK_PROMPT('OKL_CONTRACT_DTLS', 'OKL_KDTLS_CUSTOMER_ACCOUNT_N');
6059 OKC_API.SET_MESSAGE( p_app_name => g_app_name
6060 , p_msg_name => 'OKL_LLA_INVALID_LOV_VALUE'
6061 , p_token1 => 'COL_NAME'
6062 , p_token1_value => l_ak_prompt
6063 );
6064 raise OKC_API.G_EXCEPTION_ERROR;
6065 End If;
6066
6067 -- mla validation
6068 If(p_mla_no is not null) Then
6069
6070 l_mla_id := null;
6071 open l_mla_csr;
6072 fetch l_mla_csr into l_mla_id;
6073 close l_mla_csr;
6074
6075 If l_mla_id is null Then
6076 x_return_status := OKC_API.g_ret_sts_error;
6077 l_ak_prompt := GET_AK_PROMPT('OKL_CONTRACT_DTLS', 'OKL_KDTLS_MASTER_LEASE_NUMBER');
6078 OKC_API.SET_MESSAGE( p_app_name => g_app_name
6079 , p_msg_name => 'OKL_LLA_INVALID_LOV_VALUE'
6080 , p_token1 => 'COL_NAME'
6081 , p_token1_value => l_ak_prompt
6082 );
6083 raise OKC_API.G_EXCEPTION_ERROR;
6084 End If;
6085
6086 End If;
6087
6088 End If; -- end of customer change if
6089
6090 If(l_rbr_code is not null and (l_rbr_code = 'CUSTOMER_CHANGE' or l_rbr_code = 'PRODUCT_CHANGE')) Then
6091
6092 -- creditline validation
6093 If(p_cl_no is not null) Then
6094
6095 l_cl_id := null;
6096
6097 open l_credit_line_csr;
6098 fetch l_credit_line_csr into l_cl_id;
6099 close l_credit_line_csr;
6100
6101 If l_cl_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_CREDIT_CONTRACT');
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 );
6110 raise OKC_API.G_EXCEPTION_ERROR;
6111 End If;
6112
6113 End If;
6114
6115 -- validation for creditline contract
6116 okl_la_validation_util_pvt.validate_creditline(
6117 p_api_version => p_api_version,
6118 p_init_msg_list => p_init_msg_list,
6119 x_return_status => x_return_status,
6120 x_msg_count => x_msg_count,
6121 x_msg_data => x_msg_data,
6122 p_chr_id => p_chr_id,
6123 p_deal_type => p_deal_type,
6124 p_mla_no => p_mla_no,
6125 p_cl_no => p_cl_no
6126 );
6127
6128 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
6129 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
6130 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
6131 RAISE OKC_API.G_EXCEPTION_ERROR;
6132 END IF;
6133
6134 -- program validation
6135 If(p_program_no is not null) Then
6136
6137 l_program_id := null;
6138 open l_program_csr;
6139 fetch l_program_csr into l_program_id;
6140 close l_program_csr;
6141
6142 If l_program_id is null Then
6143
6144 x_return_status := OKC_API.g_ret_sts_error;
6145 l_ak_prompt := GET_AK_PROMPT('OKL_CONTRACT_DTLS', 'OKL_KDTLS_PROGRAM');
6146 OKC_API.SET_MESSAGE( p_app_name => g_app_name
6147 , p_msg_name => 'OKL_LLA_INVALID_LOV_VALUE'
6148 , p_token1 => 'COL_NAME'
6149 , p_token1_value => l_ak_prompt
6150 );
6151 raise OKC_API.G_EXCEPTION_ERROR;
6152
6153 End If;
6154
6155 End If;
6156
6157 End If;
6158
6159
6160 If(l_rbr_code is not null and (l_rbr_code = 'CUSTOMER_CHANGE' or l_rbr_code = 'PRODUCT_CHANGE')) Then
6161
6162 -- product changes
6163 lp_pdtv_rec.id := l_product_id;
6164 OKL_SETUPPRODUCTS_PUB.Getpdt_parameters
6165 (p_api_version => p_api_version,
6166 p_init_msg_list => p_init_msg_list,
6167 x_return_status => x_return_status,
6168 x_no_data_found => x_no_data_found,
6169 x_msg_count => x_msg_count,
6170 x_msg_data => x_msg_data,
6171 p_pdtv_rec => lp_pdtv_rec,
6172 p_product_date => NULL,
6173 p_pdt_parameter_rec => lx_pdt_param_rec);
6174
6175 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
6176 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
6177 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
6178 RAISE OKC_API.G_EXCEPTION_ERROR;
6179 END IF;
6180
6181 lp_chrv_rec.id := p_chr_id;
6182 lp_chrv_rec.contract_number := p_contract_number;
6183 lp_chrv_rec.short_description := p_chr_description;
6184 lp_chrv_rec.description := p_chr_description;
6185
6186 If(l_rbr_code is not null and l_rbr_code = 'CUSTOMER_CHANGE') Then
6187
6188 lp_chrv_rec.cust_acct_id := l_cust_acct_id;
6189 -- gboomina Bug 6493413 - Start
6190 -- populating Bill to Site Use Id as Bill To Address is updatable during
6191 -- Release Customer Change
6192 lp_chrv_rec.bill_to_site_use_id := p_bill_to_site_use_id;
6193 -- gboomina Bug 6493413 - End
6194
6195 End IF;
6196
6197 If(l_rbr_code is not null and l_rbr_code = 'PRODUCT_CHANGE') Then
6198
6199 lp_khrv_rec.deal_type := lx_pdt_param_rec.Deal_Type;
6200
6201 End IF;
6202
6203 lp_khrv_rec.id := p_chr_id;
6204 lp_khrv_rec.khr_id := l_program_id;
6205
6206 OKL_CONTRACT_PUB.update_contract_header(
6207 p_api_version => p_api_version,
6208 p_init_msg_list => p_init_msg_list,
6209 x_return_status => x_return_status,
6210 x_msg_count => x_msg_count,
6211 x_msg_data => x_msg_data,
6212 p_restricted_update => 'F',
6213 p_chrv_rec => lp_chrv_rec,
6214 p_khrv_rec => lp_khrv_rec,
6215 x_chrv_rec => lx_chrv_rec,
6216 x_khrv_rec => lx_khrv_rec);
6217
6218 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
6219 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
6220 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
6221 RAISE OKC_API.G_EXCEPTION_ERROR;
6222 END IF;
6223
6224 END IF;
6225
6226 If(l_rbr_code is not null and l_rbr_code = 'CUSTOMER_CHANGE' ) Then
6227
6228 lp_lessee_cplv_rec.id := p_cust_id;
6229 lp_lessee_cplv_rec.dnz_chr_id := p_chr_id;
6230 lp_lessee_cplv_rec.chr_id := p_chr_id;
6231 lp_lessee_cplv_rec.object1_id1 := l_cust_id1;
6232 lp_lessee_cplv_rec.object1_id2 := l_cust_id2;
6233 lp_lessee_cplv_rec.rle_code := 'LESSEE';
6234 lp_lessee_cplv_rec.jtot_object1_code := 'OKX_PARTY';
6235
6236 --Bug# 4558486: Changed call to okl_k_party_roles_pvt api
6237 -- to update records in tables
6238 -- okc_k_party_roles_b and okl_k_party_roles
6239 /*
6240 OKL_OKC_MIGRATION_PVT.update_k_party_role(
6241 p_api_version => p_api_version,
6242 p_init_msg_list => p_init_msg_list,
6243 x_return_status => x_return_status,
6244 x_msg_count => x_msg_count,
6245 x_msg_data => x_msg_data,
6246 p_cplv_rec => lp_lessee_cplv_rec,
6247 x_cplv_rec => lx_lessee_cplv_rec);
6248 */
6249
6250 lp_kplv_rec.id := lp_lessee_cplv_rec.id;
6251 okl_k_party_roles_pvt.update_k_party_role(
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_cplv_rec => lp_lessee_cplv_rec,
6258 x_cplv_rec => lx_lessee_cplv_rec,
6259 p_kplv_rec => lp_kplv_rec,
6260 x_kplv_rec => lx_kplv_rec);
6261
6262 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
6263 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
6264 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
6265 RAISE OKC_API.G_EXCEPTION_ERROR;
6266 END IF;
6267
6268 -- mla
6269 IF (p_gvr_id_mla IS NULL AND p_mla_no IS NOT NULL ) THEN
6270
6271 lp_mla_gvev_rec.id := NULL;
6272 lp_mla_gvev_rec.dnz_chr_id := p_chr_id;
6273 lp_mla_gvev_rec.chr_id := p_chr_id;
6274 lp_mla_gvev_rec.chr_id_referred := l_mla_id;
6275 lp_mla_gvev_rec.copied_only_yn := 'N';
6276
6277 OKL_OKC_MIGRATION_PVT.create_governance(
6278 p_api_version => p_api_version,
6279 p_init_msg_list => p_init_msg_list,
6280 x_return_status => x_return_status,
6281 x_msg_count => x_msg_count,
6282 x_msg_data => x_msg_data,
6283 p_gvev_rec => lp_mla_gvev_rec,
6284 x_gvev_rec => lx_mla_gvev_rec);
6285
6286 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
6287 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
6288 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
6289 RAISE OKC_API.G_EXCEPTION_ERROR;
6290 END IF;
6291
6292 ELSIF (p_gvr_id_mla IS NOT NULL AND p_mla_no IS NOT NULL ) THEN
6293
6294 lp_mla_gvev_rec.id := p_gvr_id_mla;
6295 lp_mla_gvev_rec.dnz_chr_id := p_chr_id;
6296 lp_mla_gvev_rec.chr_id := p_chr_id;
6297 lp_mla_gvev_rec.chr_id_referred := l_mla_id;
6298 lp_mla_gvev_rec.copied_only_yn := 'N';
6299
6300 OKL_OKC_MIGRATION_PVT.update_governance(
6301 p_api_version => p_api_version,
6302 p_init_msg_list => p_init_msg_list,
6303 x_return_status => x_return_status,
6304 x_msg_count => x_msg_count,
6305 x_msg_data => x_msg_data,
6306 p_gvev_rec => lp_mla_gvev_rec,
6307 x_gvev_rec => lx_mla_gvev_rec);
6308
6309 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
6310 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
6311 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
6312 RAISE OKC_API.G_EXCEPTION_ERROR;
6313 END IF;
6314
6315
6316 ELSIF (p_gvr_id_mla IS NOT NULL AND p_mla_no IS NULL ) THEN
6317
6318 lp_mla_gvev_rec.id := p_gvr_id_mla;
6319
6320 OKL_OKC_MIGRATION_PVT.delete_governance(
6321 p_api_version => p_api_version,
6322 p_init_msg_list => p_init_msg_list,
6323 x_return_status => x_return_status,
6324 x_msg_count => x_msg_count,
6325 x_msg_data => x_msg_data,
6326 p_gvev_rec => lp_mla_gvev_rec);
6327
6328 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
6329 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
6330 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
6331 RAISE OKC_API.G_EXCEPTION_ERROR;
6332 END IF;
6333
6334 END IF;
6335
6336 END IF;
6337
6338 If(l_rbr_code is not null and (l_rbr_code = 'CUSTOMER_CHANGE' or l_rbr_code = 'PRODUCT_CHANGE')) Then
6339
6340 -- creditline
6341 IF (p_gvr_id_cl IS NULL AND p_cl_no IS NOT NULL ) THEN
6342
6343 lp_cl_gvev_rec.id := NULL;
6344 lp_cl_gvev_rec.dnz_chr_id := p_chr_id;
6345 lp_cl_gvev_rec.chr_id := p_chr_id;
6346 lp_cl_gvev_rec.chr_id_referred := l_cl_id;
6347 lp_cl_gvev_rec.copied_only_yn := 'N';
6348
6349 OKL_OKC_MIGRATION_PVT.create_governance(
6350 p_api_version => p_api_version,
6351 p_init_msg_list => p_init_msg_list,
6352 x_return_status => x_return_status,
6353 x_msg_count => x_msg_count,
6354 x_msg_data => x_msg_data,
6355 p_gvev_rec => lp_cl_gvev_rec,
6356 x_gvev_rec => lx_cl_gvev_rec);
6357
6358 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
6359 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
6360 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
6361 RAISE OKC_API.G_EXCEPTION_ERROR;
6362 END IF;
6363
6364 ELSIF (p_gvr_id_cl IS NOT NULL AND p_cl_no IS NOT NULL ) THEN
6365
6366 lp_cl_gvev_rec.id := p_gvr_id_cl;
6367 lp_cl_gvev_rec.dnz_chr_id := p_chr_id;
6368 lp_cl_gvev_rec.chr_id := p_chr_id;
6369 lp_cl_gvev_rec.chr_id_referred := l_cl_id;
6370 lp_cl_gvev_rec.copied_only_yn := 'N';
6371
6372 OKL_OKC_MIGRATION_PVT.update_governance(
6373 p_api_version => p_api_version,
6374 p_init_msg_list => p_init_msg_list,
6375 x_return_status => x_return_status,
6376 x_msg_count => x_msg_count,
6377 x_msg_data => x_msg_data,
6378 p_gvev_rec => lp_cl_gvev_rec,
6379 x_gvev_rec => lx_cl_gvev_rec);
6380
6381 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
6382 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
6383 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
6384 RAISE OKC_API.G_EXCEPTION_ERROR;
6385 END IF;
6386
6387 ELSIF (p_gvr_id_cl IS NOT NULL AND p_cl_no IS NULL ) THEN
6388
6389 lp_cl_gvev_rec.id := p_gvr_id_cl;
6390
6391 OKL_OKC_MIGRATION_PVT.delete_governance(
6392 p_api_version => p_api_version,
6393 p_init_msg_list => p_init_msg_list,
6394 x_return_status => x_return_status,
6395 x_msg_count => x_msg_count,
6396 x_msg_data => x_msg_data,
6397 p_gvev_rec => lp_cl_gvev_rec);
6398
6399 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
6400 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
6401 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
6402 RAISE OKC_API.G_EXCEPTION_ERROR;
6403 END IF;
6404
6405 END IF;
6406
6407 IF (p_program_no IS NULL) THEN
6408 l_program_id := null;
6409 END IF;
6410
6411 old_khr_id := NULL;
6412 OPEN c_vp_exsts_csr;
6413 FETCH c_vp_exsts_csr INTO old_khr_id;
6414 CLOSE c_vp_exsts_csr;
6415
6416 l_auth_org_id := null;
6417 l_inv_org_id := null;
6418
6419 OPEN c_context_csr;
6420 FETCH c_context_csr INTO l_auth_org_id, l_inv_org_id;
6421 CLOSE c_context_csr;
6422
6423 IF (p_program_no IS NOT NULL OR old_khr_id IS NOT NULL) THEN
6424
6425 copy_rules
6426 (
6427 p_api_version => p_api_version,
6428 p_init_msg_list => p_init_msg_list,
6429 x_return_status => x_return_status,
6430 x_msg_count => x_msg_count,
6431 x_msg_data => x_msg_data,
6432 p_old_khr_id => old_khr_id,
6433 p_prog_override_yn => p_program_yn, -- program flag yn
6434 p_source_id => l_program_id,
6435 p_dest_id => p_chr_id,
6436 p_org_id => l_auth_org_id,
6437 p_organization_id => l_inv_org_id
6438 );
6439
6440 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
6441 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
6442 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
6443 RAISE OKC_API.G_EXCEPTION_ERROR;
6444 END IF;
6445
6446 END IF;
6447
6448 END IF;
6449
6450 If(l_rbr_code is not null and l_rbr_code = 'PRODUCT_CHANGE') Then
6451
6452 -- product validation
6453 IF(p_product_name IS NULL) THEN
6454 x_return_status := OKC_API.g_ret_sts_error;
6455 l_ak_prompt := GET_AK_PROMPT('OKL_CONTRACT_DTLS', 'OKL_KDTLS_PRODUCT');
6456 OKC_API.SET_MESSAGE( p_app_name => g_app_name
6457 , p_msg_name => 'OKL_REQUIRED_VALUE'
6458 , p_token1 => 'COL_NAME'
6459 , p_token1_value => l_ak_prompt
6460 );
6461 RAISE OKC_API.G_EXCEPTION_ERROR;
6462 END IF;
6463
6464 l_product_id := null;
6465 OPEN l_product_csr;
6466 FETCH l_product_csr INTO l_product_id;
6467 CLOSE l_product_csr;
6468
6469 IF l_product_id IS NULL THEN
6470 x_return_status := OKC_API.g_ret_sts_error;
6471 l_ak_prompt := GET_AK_PROMPT('OKL_CONTRACT_DTLS', 'OKL_KDTLS_PRODUCT');
6472 OKC_API.SET_MESSAGE( p_app_name => g_app_name
6473 , p_msg_name => 'OKL_LLA_INVALID_LOV_VALUE'
6474 , p_token1 => 'COL_NAME'
6475 , p_token1_value => l_ak_prompt
6476 );
6477 RAISE OKC_API.G_EXCEPTION_ERROR;
6478 END IF;
6479
6480 -- product changes
6481 lp_pdtv_rec.id := l_product_id;
6482 OKL_SETUPPRODUCTS_PUB.Getpdt_parameters
6483 (p_api_version => p_api_version,
6484 p_init_msg_list => p_init_msg_list,
6485 x_return_status => x_return_status,
6486 x_no_data_found => x_no_data_found,
6487 x_msg_count => x_msg_count,
6488 x_msg_data => x_msg_data,
6489 p_pdtv_rec => lp_pdtv_rec,
6490 p_product_date => NULL,
6491 p_pdt_parameter_rec => lx_pdt_param_rec);
6492
6493 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
6494 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
6495 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
6496 RAISE OKC_API.G_EXCEPTION_ERROR;
6497 END IF;
6498
6499 lp_chrv_rec.id := p_chr_id;
6500 lp_khrv_rec.id := p_chr_id;
6501 lp_khrv_rec.deal_type := lx_pdt_param_rec.Deal_Type;
6502 lp_khrv_rec.pdt_id := l_product_id;
6503
6504 OKL_CONTRACT_PUB.update_contract_header(
6505 p_api_version => p_api_version,
6506 p_init_msg_list => p_init_msg_list,
6507 x_return_status => x_return_status,
6508 x_msg_count => x_msg_count,
6509 x_msg_data => x_msg_data,
6510 p_restricted_update => 'F',
6511 p_chrv_rec => lp_chrv_rec,
6512 p_khrv_rec => lp_khrv_rec,
6513 x_chrv_rec => lx_chrv_rec,
6514 x_khrv_rec => lx_khrv_rec);
6515
6516 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
6517 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
6518 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
6519 RAISE OKC_API.G_EXCEPTION_ERROR;
6520 END IF;
6521
6522 End if; -- end of rbr code block
6523
6524 OKC_API.END_ACTIVITY(x_msg_count => x_msg_count, x_msg_data => x_msg_data);
6525
6526 EXCEPTION
6527 WHEN OKC_API.G_EXCEPTION_ERROR THEN
6528 x_return_status := OKC_API.HANDLE_EXCEPTIONS(
6529 p_api_name => l_api_name,
6530 p_pkg_name => g_pkg_name,
6531 p_exc_name => 'OKC_API.G_RET_STS_ERROR',
6532 x_msg_count => x_msg_count,
6533 x_msg_data => x_msg_data,
6534 p_api_type => g_api_type);
6535
6536 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
6537 x_return_status := OKC_API.HANDLE_EXCEPTIONS(
6538 p_api_name => l_api_name,
6539 p_pkg_name => g_pkg_name,
6540 p_exc_name => 'OKC_API.G_RET_STS_UNEXP_ERROR',
6541 x_msg_count => x_msg_count,
6542 x_msg_data => x_msg_data,
6543 p_api_type => g_api_type);
6544
6545 WHEN OTHERS THEN
6546 x_return_status := OKC_API.HANDLE_EXCEPTIONS(
6547 p_api_name => l_api_name,
6548 p_pkg_name => g_pkg_name,
6549 p_exc_name => 'OTHERS',
6550 x_msg_count => x_msg_count,
6551 x_msg_data => x_msg_data,
6552 p_api_type => g_api_type);
6553 END;
6554
6555
6556 PROCEDURE update_deal(
6557 p_api_version IN NUMBER,
6558 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
6559 x_return_status OUT NOCOPY VARCHAR2,
6560 x_msg_count OUT NOCOPY NUMBER,
6561 x_msg_data OUT NOCOPY VARCHAR2,
6562 p_durv_rec IN deal_rec_type,
6563 x_durv_rec OUT NOCOPY deal_rec_type
6564 ) AS
6565
6566 l_api_name VARCHAR2(30) := 'update_deal';
6567 l_api_version CONSTANT NUMBER := 1.0;
6568
6569 l_template_yn OKC_K_HEADERS_B.TEMPLATE_YN%TYPE;
6570 l_chr_type OKC_K_HEADERS_B.CHR_TYPE%TYPE;
6571 l_contract_number OKC_K_HEADERS_B.CHR_TYPE%TYPE;
6572 l_object_code VARCHAR2(30) DEFAULT NULL;
6573 l_temp_yn OKC_K_HEADERS_B.TEMPLATE_YN%TYPE := p_durv_rec.chr_template_yn;
6574
6575 l_ak_prompt AK_ATTRIBUTES_VL.attribute_label_long%TYPE;
6576 l_chr_id NUMBER;
6577 row_cnt NUMBER;
6578 l_rgp_id NUMBER := NULL;
6579 l_rul_id NUMBER := NULL;
6580
6581 CURSOR l_qcl_csr IS
6582 SELECT qcl.id
6583 FROM OKC_QA_CHECK_LISTS_TL qcl,
6584 OKC_QA_CHECK_LISTS_B qclv
6585 WHERE qclv.Id = qcl.id
6586 AND UPPER(qcl.name) = 'OKL LA QA CHECK LIST'
6587 AND qcl.LANGUAGE = USERENV('LANG');
6588
6589 -- START: cklee/mvasudev,6/2/2005, Bug#4392051/okl.h 4437938
6590 /*
6591 CURSOR l_end_date_csr IS
6592 SELECT ADD_MONTHS(p_durv_rec.chr_start_date,p_durv_rec.khr_term_duration)-1
6593 FROM dual;
6594 */
6595 -- END: cklee/mvasudev,6/2/2005, Bug#4392051/okl.h 4437938
6596
6597 CURSOR l_vers_version_csr IS
6598 SELECT vers.major_version||'.'||vers.minor_version
6599 FROM okc_k_vers_numbers_v vers
6600 WHERE vers.chr_id = p_durv_rec.chr_id;
6601
6602 lp_chrv_rec OKL_OKC_MIGRATION_PVT.chrv_rec_type;
6603 lx_chrv_rec OKL_OKC_MIGRATION_PVT.chrv_rec_type;
6604
6605 lp_khrv_rec OKL_CONTRACT_PUB.khrv_rec_type;
6606 lx_khrv_rec OKL_CONTRACT_PUB.khrv_rec_type;
6607
6608 lp_lessee_cplv_rec OKL_OKC_MIGRATION_PVT.cplv_rec_type;
6609 lx_lessee_cplv_rec OKL_OKC_MIGRATION_PVT.cplv_rec_type;
6610
6611 lp_lessor_cplv_rec OKL_OKC_MIGRATION_PVT.cplv_rec_type;
6612 lx_lessor_cplv_rec OKL_OKC_MIGRATION_PVT.cplv_rec_type;
6613 lp_ctcv_rec OKL_OKC_MIGRATION_PVT.ctcv_rec_type;
6614 lx_ctcv_rec OKL_OKC_MIGRATION_PVT.ctcv_rec_type;
6615
6616 lp_mla_gvev_rec OKL_OKC_MIGRATION_PVT.gvev_rec_type;
6617 lx_mla_gvev_rec OKL_OKC_MIGRATION_PVT.gvev_rec_type;
6618
6619 lp_cl_gvev_rec OKL_OKC_MIGRATION_PVT.gvev_rec_type;
6620 lx_cl_gvev_rec OKL_OKC_MIGRATION_PVT.gvev_rec_type;
6621
6622 lp_larles_rgpv_rec OKL_OKC_MIGRATION_PVT.rgpv_rec_type;
6623 lx_larles_rgpv_rec OKL_OKC_MIGRATION_PVT.rgpv_rec_type;
6624 lp_larles_rulv_rec Okl_Rule_Pub.rulv_rec_type;
6625 lx_larles_rulv_rec Okl_Rule_Pub.rulv_rec_type;
6626
6627 lp_LAREBL_rgpv_rec OKL_OKC_MIGRATION_PVT.rgpv_rec_type;
6628 lx_LAREBL_rgpv_rec OKL_OKC_MIGRATION_PVT.rgpv_rec_type;
6629 lp_LAREBL_rulv_rec Okl_Rule_Pub.rulv_rec_type;
6630 lx_LAREBL_rulv_rec Okl_Rule_Pub.rulv_rec_type;
6631
6632 lp_LATOWN_rgpv_rec OKL_OKC_MIGRATION_PVT.rgpv_rec_type;
6633 lx_LATOWN_rgpv_rec OKL_OKC_MIGRATION_PVT.rgpv_rec_type;
6634 lp_LATOWN_rulv_rec Okl_Rule_Pub.rulv_rec_type;
6635 lx_LATOWN_rulv_rec Okl_Rule_Pub.rulv_rec_type;
6636
6637 lp_LANNTF_rgpv_rec OKL_OKC_MIGRATION_PVT.rgpv_rec_type;
6638 lx_LANNTF_rgpv_rec OKL_OKC_MIGRATION_PVT.rgpv_rec_type;
6639 lp_LANNTF_rulv_rec Okl_Rule_Pub.rulv_rec_type;
6640 lx_LANNTF_rulv_rec Okl_Rule_Pub.rulv_rec_type;
6641
6642 lp_LACPLN_rgpv_rec OKL_OKC_MIGRATION_PVT.rgpv_rec_type;
6643 lx_LACPLN_rgpv_rec OKL_OKC_MIGRATION_PVT.rgpv_rec_type;
6644 lp_LACPLN_rulv_rec Okl_Rule_Pub.rulv_rec_type;
6645 lx_LACPLN_rulv_rec Okl_Rule_Pub.rulv_rec_type;
6646
6647 lp_LAPACT_rgpv_rec OKL_OKC_MIGRATION_PVT.rgpv_rec_type;
6648 lx_LAPACT_rgpv_rec OKL_OKC_MIGRATION_PVT.rgpv_rec_type;
6649 lp_LAPACT_rulv_rec Okl_Rule_Pub.rulv_rec_type;
6650 lx_LAPACT_rulv_rec Okl_Rule_Pub.rulv_rec_type;
6651
6652 lp_pdtv_rec OKL_SETUPPRODUCTS_PUB.pdtv_rec_type;
6653 lp_pdt_param_rec OKL_SETUPPRODUCTS_PUB.pdt_parameters_rec_type;
6654 lx_pdtv_rec OKL_SETUPPRODUCTS_PUB.pdtv_rec_type;
6655 lx_pdt_param_rec OKL_SETUPPRODUCTS_PUB.pdt_parameters_rec_type;
6656
6657 lp_clev_rec okl_okc_migration_pvt.clev_rec_type;
6658 lp_klev_rec okl_kle_pvt.klev_rec_type;
6659 lx_clev_rec okl_okc_migration_pvt.clev_rec_type;
6660 lx_klev_rec okl_kle_pvt.klev_rec_type;
6661
6662 --Bug# 4558486
6663 lp_kplv_rec okl_k_party_roles_pvt.kplv_rec_type;
6664 lx_kplv_rec okl_k_party_roles_pvt.kplv_rec_type;
6665
6666 X_NO_DATA_FOUND BOOLEAN := TRUE;
6667
6668 old_khr_id NUMBER;
6669
6670 CURSOR c_vp_exsts_csr IS
6671 SELECT khr_id
6672 FROM okl_k_headers_full_v
6673 WHERE id = p_durv_rec.chr_id;
6674
6675 l_fin_ast VARCHAR2(1) := 'N';
6676 l_lrls_yn VARCHAR2(1) := 'X';
6677
6678 CURSOR chk_fin_ast_csr IS
6679 SELECT 'Y'
6680 FROM okc_k_headers_b CHR
6681 WHERE EXISTS (SELECT 1
6682 FROM okc_line_styles_b lse,
6683 okc_k_lines_b cle,
6684 okl_k_lines kle
6685 WHERE cle.dnz_chr_id = CHR.id
6686 AND cle.lse_id = lse.id
6687 AND cle.id = kle.id
6688 -- START: cklee/mvasudev,10/14/2005,bug#4300891 - (okl.g Bug#4307723)
6689 AND cle.sts_code <> 'ABANDONED'
6690 -- END: cklee/mvasudev,10/14/2005,bug#4300891 - (okl.g Bug#4307723)
6691 AND lse.lty_code = 'FREE_FORM1')
6692 AND CHR.id = p_durv_rec.chr_id;
6693
6694 CURSOR get_larles_csr IS
6695 SELECT rul.rule_information1
6696 FROM okc_rule_groups_b rgp,
6697 okc_rules_b rul
6698 WHERE rgp.id = rul.rgp_id
6699 AND rgp.rgd_code = 'LARLES'
6700 AND rul.rule_information_category = 'LARLES'
6701 AND rgp.dnz_chr_id = p_durv_rec.chr_id
6702 AND rgp.chr_id = p_durv_rec.chr_id
6703 AND rul.dnz_chr_id = p_durv_rec.chr_id;
6704
6705 l_fin_ast_id NUMBER := NULL;
6706 l_lacpln_yn VARCHAR2(1) := 'X';
6707
6708 CURSOR get_fin_ast_csr IS
6709 SELECT cle.id
6710 FROM okc_line_styles_b lse,
6711 okc_k_lines_b cle,
6712 okl_k_lines kle
6713 WHERE cle.dnz_chr_id = p_durv_rec.chr_id
6714 AND cle.lse_id = lse.id
6715 AND cle.id = kle.id
6716 AND lse.lty_code = 'FREE_FORM1';
6717
6718 CURSOR get_lacpln_csr IS
6719 SELECT rul.rule_information1
6720 FROM okc_rules_b rul,
6721 okc_rule_groups_b rgp
6722 WHERE rgp.id = rul.rgp_id
6723 AND rul.rule_information_category = 'LACPLN'
6724 AND rgp.RGD_CODE = 'LACPLN'
6725 AND rul.dnz_chr_id = rgp.dnz_chr_id
6726 AND rgp.dnz_chr_id = p_durv_rec.chr_id
6727 AND rgp.chr_id = p_durv_rec.chr_id;
6728
6729 CURSOR is_re_lease_csr IS
6730 select chr.orig_system_source_code
6731 from okc_k_headers_b chr
6732 where chr.id = p_durv_rec.chr_id;
6733
6734 l_orig_sys_src_code okc_k_headers_b.orig_system_source_code%type := null;
6735
6736 --Bug# 4619575
6737 CURSOR l_ptmpl_csr (p_chr_id IN NUMBER) IS
6738 SELECT chrb.template_yn,
6739 khr.template_type_code
6740 FROM okc_k_headers_b chrb,
6741 okl_k_headers khr
6742 WHERE chrb.id = khr.id
6743 AND chrb.id = p_chr_id;
6744
6745 CURSOR l_pqcl_csr IS
6746 SELECT qcl.id
6747 FROM OKC_QA_CHECK_LISTS_TL qcl,
6748 OKC_QA_CHECK_LISTS_B qclv
6749 WHERE qclv.Id = qcl.id
6750 AND UPPER(qcl.name) = 'OKL KT for PA QA Checklist'
6751 AND qcl.LANGUAGE = 'US';
6752
6753 CURSOR l_laqcl_csr IS
6754 SELECT qcl.id
6755 FROM OKC_QA_CHECK_LISTS_TL qcl,
6756 OKC_QA_CHECK_LISTS_B qclv
6757 WHERE qclv.Id = qcl.id
6758 AND UPPER(qcl.name) = 'OKL KT FOR LA QA CHECKLIST'
6759 AND qcl.LANGUAGE = 'US';
6760
6761 CURSOR c_lessor(p_chr_id NUMBER) IS
6762 SELECT id
6763 FROM okc_k_party_roles_b
6764 WHERE dnz_chr_id = p_chr_id
6765 AND rle_code ='LESSOR';
6766
6767 l_template_type_code okl_k_headers.template_type_code%type;
6768 l_ptemplate_yn okc_k_headers_b.template_yn%type;
6769
6770 CURSOR c_orig_pdt_csr(p_chr_id IN NUMBER) IS
6771 SELECT pdt_id
6772 FROM okl_k_headers
6773 WHERE id = p_chr_id;
6774
6775 l_orig_pdt_rec c_orig_pdt_csr%ROWTYPE;
6776
6777 CURSOR c_rates_csr(p_chr_id IN NUMBER,
6778 p_parameter_type_code IN VARCHAR2) IS
6779 SELECT rate.effective_from_date
6780 FROM okl_k_rate_params rate
6781 WHERE rate.khr_id = p_chr_id
6782 AND rate.parameter_type_code = p_parameter_type_code;
6783
6784 l_count NUMBER;
6785 l_krpdel_tbl OKL_K_RATE_PARAMS_PVT.krpdel_tbl_type;
6786
6787 /*
6788 -- mvasudev, 08/18/2004
6789 -- Added PROCEDURE to enable Business Event
6790 */
6791 PROCEDURE raise_business_event(
6792 p_chr_id IN NUMBER
6793 ,x_return_status OUT NOCOPY VARCHAR2
6794 )
6795 IS
6796 l_check VARCHAR2(1);
6797 l_parameter_list wf_parameter_list_t;
6798 BEGIN
6799
6800 x_return_status := Okc_Api.G_RET_STS_SUCCESS;
6801 -- Raise the event if it is a new Contract
6802 l_check := Okl_Lla_Util_Pvt.check_new_contract(p_chr_id);
6803 IF (l_check= OKL_API.G_TRUE) THEN
6804 wf_event.AddParameterToList(G_WF_ITM_CONTRACT_ID,p_chr_id,l_parameter_list);
6805 OKL_WF_PVT.raise_event (p_api_version => p_api_version,
6806 p_init_msg_list => p_init_msg_list,
6807 x_return_status => x_return_status,
6808 x_msg_count => x_msg_count,
6809 x_msg_data => x_msg_data,
6810 p_event_name => G_WF_EVT_KHR_UPDATED,
6811 p_parameters => l_parameter_list);
6812
6813 END IF;
6814
6815 EXCEPTION
6816 WHEN OTHERS THEN
6817 x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
6818 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6819 END raise_business_event;
6820
6821 /*
6822 -- mvasudev, 08/17/2004
6823 -- END, PROCEDURE to enable Business Event
6824 */
6825
6826
6827 BEGIN
6828
6829 IF okl_context.get_okc_org_id IS NULL THEN
6830 l_chr_id := p_durv_rec.chr_id;
6831 okl_context.set_okc_org_context(p_chr_id => l_chr_id );
6832 END IF;
6833
6834 x_return_status := OKC_API.START_ACTIVITY(p_api_name => l_api_name,
6835 p_pkg_name => g_pkg_name,
6836 p_init_msg_list => p_init_msg_list,
6837 l_api_version => l_api_version,
6838 p_api_version => p_api_version,
6839 p_api_type => g_api_type,
6840 x_return_status => x_return_status);
6841
6842 -- check if activity started successfully
6843 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
6844 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
6845 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
6846 RAISE OKC_API.G_EXCEPTION_ERROR;
6847 END IF;
6848
6849 -- sjalasut, initialize chr_id so that the Entity Object in the java layer can populate
6850 -- the if back in the VO
6851 x_durv_rec.chr_id := p_durv_rec.chr_id;
6852
6853 l_orig_sys_src_code := null;
6854 Open is_re_lease_csr;
6855 Fetch is_re_lease_csr into l_orig_sys_src_code;
6856 Close is_re_lease_csr;
6857
6858 If(l_orig_sys_src_code is not null and l_orig_sys_src_code = 'OKL_RELEASE') Then
6859
6860 lp_chrv_rec.contract_number := p_durv_rec.chr_contract_number;
6861 lp_chrv_rec.description := p_durv_rec.chr_description;
6862 update_release_contract(p_api_version => p_api_version,
6863 p_init_msg_list => p_init_msg_list,
6864 x_return_status => x_return_status,
6865 x_msg_count => x_msg_count,
6866 x_msg_data => x_msg_data,
6867 p_chr_id => p_durv_rec.chr_id,
6868 p_contract_number => p_durv_rec.chr_contract_number,
6869 p_chr_description => p_durv_rec.chr_description,
6870 p_cust_id => p_durv_rec.cust_id,
6871 p_customer_name => p_durv_rec.cust_name,
6872 p_customer_id1 => p_durv_rec.cust_object1_id1,
6873 p_customer_acc_name => p_durv_rec.customer_account,
6874 p_customer_acct_id1 => p_durv_rec.chr_cust_acct_id,
6875 p_product_name => p_durv_rec.product_name,
6876 p_mla_id => p_durv_rec.mla_gvr_chr_id_referred,
6877 p_mla_no => p_durv_rec.mla_contract_number,
6878 p_gvr_id_mla => p_durv_rec.mla_gvr_id,
6879 p_cl_id => p_durv_rec.cl_gvr_chr_id_referred,
6880 p_cl_no => p_durv_rec.cl_contract_number,
6881 p_gvr_id_cl => p_durv_rec.cl_gvr_id,
6882 p_deal_type => p_durv_rec.khr_deal_type,
6883 p_program_no => p_durv_rec.program_contract_number,
6884 p_program_id => p_durv_rec.khr_khr_id,
6885 p_program_yn => p_durv_rec.khr_generate_accrual_yn,
6886 p_bill_to_site_use_id => p_durv_rec.labill_labacc_billto -- Bug 6493413
6887 );
6888 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
6889 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
6890 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
6891 RAISE OKC_API.G_EXCEPTION_ERROR;
6892 END IF;
6893 Else
6894
6895 -- not a release contract, continue with the process
6896
6897 x_durv_rec.cust_object1_id1 := p_durv_rec.cust_object1_id1;
6898 x_durv_rec.cust_object1_id2 := p_durv_rec.cust_object1_id2 ;
6899 x_durv_rec.cust_jtot_object1_code := p_durv_rec.cust_jtot_object1_code ;
6900 x_durv_rec.chr_cust_acct_id := p_durv_rec.chr_cust_acct_id;
6901 x_durv_rec.contact_object1_id1 := p_durv_rec.contact_object1_id1;
6902 x_durv_rec.contact_object1_id2 := p_durv_rec.contact_object1_id2;
6903 x_durv_rec.contact_jtot_object1_code:= p_durv_rec.contact_jtot_object1_code;
6904 x_durv_rec.mla_gvr_chr_id_referred := p_durv_rec.mla_gvr_chr_id_referred;
6905 x_durv_rec.khr_khr_id := p_durv_rec.khr_khr_id;
6906 x_durv_rec.chr_currency_code := p_durv_rec.chr_currency_code;
6907 x_durv_rec.cl_gvr_chr_id_referred := p_durv_rec.cl_gvr_chr_id_referred;
6908 x_durv_rec.khr_pdt_id := p_durv_rec.khr_pdt_id;
6909 x_durv_rec.product_description := p_durv_rec.product_description;
6910 x_durv_rec.chr_TEMPLATE_YN := p_durv_rec.chr_template_yn;
6911
6912 okl_la_validation_util_pvt.validate_deal(
6913 p_api_version => p_api_version,
6914 p_init_msg_list => p_init_msg_list,
6915 x_return_status => x_return_status,
6916 x_msg_count => x_msg_count,
6917 x_msg_data => x_msg_data,
6918 p_chr_id => p_durv_rec.chr_id,
6919 p_scs_code => 'LEASE',
6920 p_contract_number => p_durv_rec.chr_contract_number ,
6921 p_customer_id1 => x_durv_rec.cust_object1_id1,
6922 p_customer_id2 => x_durv_rec.cust_object1_id2,
6923 p_customer_code => x_durv_rec.cust_jtot_object1_code,
6924 p_customer_name => p_durv_rec.cust_name,
6925 p_chr_cust_acct_id => x_durv_rec.chr_cust_acct_id,
6926 p_customer_acc_name => p_durv_rec.customer_account,
6927 p_product_name => p_durv_rec.product_name,
6928 p_product_id => x_durv_rec.khr_pdt_id,
6929 p_product_desc => x_durv_rec.product_description,
6930 p_contact_id1 => x_durv_rec.contact_object1_id1,
6931 p_contact_id2 => x_durv_rec.contact_object1_id2,
6932 p_contact_code => x_durv_rec.contact_jtot_object1_code,
6933 p_contact_name => p_durv_rec.contact_name,
6934 p_mla_no => p_durv_rec.mla_contract_number,
6935 p_mla_id => x_durv_rec.mla_gvr_chr_id_referred,
6936 p_program_no => p_durv_rec.program_contract_number,
6937 p_program_id => x_durv_rec.khr_khr_id,
6938 p_credit_line_no => p_durv_rec.cl_contract_number,
6939 p_credit_line_id => x_durv_rec.cl_gvr_chr_id_referred,
6940 p_currency_name => p_durv_rec.currency_name,
6941 p_currency_code => x_durv_rec.chr_currency_code,
6942 p_start_date => p_durv_rec.chr_start_date,
6943 p_deal_type => p_durv_rec.khr_deal_type
6944 );
6945
6946 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
6947 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
6948 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
6949 RAISE OKC_API.G_EXCEPTION_ERROR;
6950 END IF;
6951
6952 -- product changes
6953 lp_pdtv_rec.id := x_durv_rec.khr_pdt_id;
6954 OKL_SETUPPRODUCTS_PUB.Getpdt_parameters(
6955 p_api_version => p_api_version,
6956 p_init_msg_list => p_init_msg_list,
6957 x_return_status => x_return_status,
6958 x_no_data_found => x_no_data_found,
6959 x_msg_count => x_msg_count,
6960 x_msg_data => x_msg_data,
6961 p_pdtv_rec => lp_pdtv_rec,
6962 p_product_date => NULL,
6963 p_pdt_parameter_rec => lx_pdt_param_rec);
6964
6965
6966 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
6967 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
6968 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
6969 RAISE OKC_API.G_EXCEPTION_ERROR;
6970 END IF;
6971
6972 x_durv_rec.khr_deal_type := lx_pdt_param_rec.Deal_Type;
6973 x_durv_rec.r_latown_rule_information1 := lx_pdt_param_rec.tax_owner;
6974
6975 -- validation for creditline contract
6976 okl_la_validation_util_pvt.validate_creditline(
6977 p_api_version => p_api_version,
6978 p_init_msg_list => p_init_msg_list,
6979 x_return_status => x_return_status,
6980 x_msg_count => x_msg_count,
6981 x_msg_data => x_msg_data,
6982 p_chr_id => p_durv_rec.chr_id,
6983 p_deal_type => x_durv_rec.khr_deal_type,
6984 p_mla_no => p_durv_rec.mla_contract_number,
6985 p_cl_no => p_durv_rec.cl_contract_number
6986 );
6987
6988 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
6989 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
6990 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
6991 RAISE OKC_API.G_EXCEPTION_ERROR;
6992 END IF;
6993
6994 -- update contract header
6995 lp_chrv_rec.id := p_durv_rec.chr_id;
6996 lp_khrv_rec.id := p_durv_rec.chr_id;
6997 lp_chrv_rec.contract_number := p_durv_rec.chr_contract_number;
6998 lp_chrv_rec.description := p_durv_rec.chr_description;
6999 lp_chrv_rec.short_description := p_durv_rec.chr_description;
7000 lp_chrv_rec.sts_code := p_durv_rec.chr_sts_code;
7001 lp_chrv_rec.start_date := p_durv_rec.chr_start_date;
7002 lp_chrv_rec.end_date := p_durv_rec.chr_end_date;
7003 lp_khrv_rec.term_duration := p_durv_rec.khr_term_duration;
7004 lp_chrv_rec.CUST_PO_NUMBER := p_durv_rec.chr_CUST_PO_NUMBER;
7005 lp_chrv_rec.INV_ORGANIZATION_ID := p_durv_rec.chr_INV_ORGANIZATION_ID;
7006 lp_chrv_rec.AUTHORING_ORG_ID := p_durv_rec.chr_AUTHORING_ORG_ID;
7007 lp_khrv_rec.GENERATE_ACCRUAL_YN := p_durv_rec.khr_GENERATE_ACCRUAL_YN;
7008 lp_khrv_rec.SYNDICATABLE_YN := p_durv_rec.khr_SYNDICATABLE_YN;
7009 lp_khrv_rec.PREFUNDING_ELIGIBLE_YN := p_durv_rec.khr_PREFUNDING_ELIGIBLE_YN;
7010 lp_khrv_rec.REVOLVING_CREDIT_YN := p_durv_rec.khr_REVOLVING_CREDIT_YN;
7011 lp_khrv_rec.CONVERTED_ACCOUNT_YN := p_durv_rec.khr_CONVERTED_ACCOUNT_YN;
7012 lp_khrv_rec.CREDIT_ACT_YN := p_durv_rec.khr_CREDIT_ACT_YN;
7013 lp_chrv_rec.TEMPLATE_YN := p_durv_rec.chr_TEMPLATE_YN;
7014 lp_chrv_rec.DATE_SIGNED := p_durv_rec.chr_DATE_SIGNED;
7015 lp_khrv_rec.DATE_DEAL_TRANSFERRED := p_durv_rec.khr_DATE_DEAL_TRANSFERRED;
7016 lp_khrv_rec.ACCEPTED_DATE := p_durv_rec.khr_ACCEPTED_DATE;
7017 lp_khrv_rec.EXPECTED_DELIVERY_DATE := p_durv_rec.khr_EXPECTED_DELIVERY_DATE;
7018 lp_khrv_rec.AMD_CODE := p_durv_rec.khr_AMD_CODE;
7019 -- lp_khrv_rec.DEAL_TYPE := p_durv_rec.khr_DEAL_TYPE;
7020 lp_khrv_rec.DEAL_TYPE := lx_pdt_param_rec.Deal_Type;
7021 lp_chrv_rec.currency_code := x_durv_rec.chr_currency_code;
7022 lp_khrv_rec.currency_conversion_type := p_durv_rec.khr_currency_conv_type;
7023 lp_khrv_rec.currency_conversion_rate := p_durv_rec.khr_currency_conv_rate;
7024 lp_khrv_rec.currency_conversion_date := p_durv_rec.khr_currency_conv_date;
7025 lp_khrv_rec.assignable_yn := p_durv_rec.khr_assignable_yn;
7026 lp_chrv_rec.cust_acct_id := x_durv_rec.chr_cust_acct_id;
7027 -- Added by dpsingh for LE Uptake
7028 lp_khrv_rec.legal_entity_id :=p_durv_rec.legal_entity_id;
7029 IF (p_durv_rec.khr_assignable_yn <> 'Y') THEN
7030 lp_khrv_rec.assignable_yn := 'N';
7031 END IF;
7032
7033 -- Added for Bill-To site
7034 lp_chrv_rec.bill_to_site_use_id := p_durv_rec.labill_labacc_billto;
7035
7036 -- sjalasut, added code below to populate the attribute columns for lp_khrv_rec
7037 -- changes made as part of Authoring OA Migration. START changes
7038 lp_khrv_rec.attribute_category := p_durv_rec.attribute_category;
7039 lp_khrv_rec.attribute1 := p_durv_rec.attribute1;
7040 lp_khrv_rec.attribute2 := p_durv_rec.attribute2;
7041 lp_khrv_rec.attribute3 := p_durv_rec.attribute3;
7042 lp_khrv_rec.attribute4 := p_durv_rec.attribute4;
7043 lp_khrv_rec.attribute5 := p_durv_rec.attribute5;
7044 lp_khrv_rec.attribute6 := p_durv_rec.attribute6;
7045 lp_khrv_rec.attribute7 := p_durv_rec.attribute7;
7046 lp_khrv_rec.attribute8 := p_durv_rec.attribute8;
7047 lp_khrv_rec.attribute9 := p_durv_rec.attribute9;
7048 lp_khrv_rec.attribute10 := p_durv_rec.attribute10;
7049 lp_khrv_rec.attribute11 := p_durv_rec.attribute11;
7050 lp_khrv_rec.attribute12 := p_durv_rec.attribute12;
7051 lp_khrv_rec.attribute13 := p_durv_rec.attribute13;
7052 lp_khrv_rec.attribute14 := p_durv_rec.attribute14;
7053 lp_khrv_rec.attribute15 := p_durv_rec.attribute15;
7054 -- sjalasut, added code above to populate the attribute columns for lp_khrv_rec
7055 -- changes made as part of Authoring OA Migration. END changes
7056
7057 l_template_yn := 'N';
7058 l_template_type_code := 'XXX';
7059 OPEN l_ptmpl_csr(p_chr_id => l_chr_id);
7060 FETCH l_ptmpl_csr INTO l_template_yn, l_template_type_code;
7061 CLOSE l_ptmpl_csr;
7062
7063 --Bug# 4619575
7064 IF(l_ptemplate_yn = 'Y' AND l_template_type_code = 'PROGRAM') THEN
7065 OPEN l_pqcl_csr;
7066 FETCH l_pqcl_csr INTO lp_chrv_rec.qcl_id;
7067 CLOSE l_pqcl_csr;
7068 --Bug# 4619575
7069 ELSIF(l_ptemplate_yn = 'Y' AND l_template_type_code = 'LEASEAPP') THEN
7070 OPEN l_laqcl_csr;
7071 FETCH l_laqcl_csr INTO lp_chrv_rec.qcl_id;
7072 CLOSE l_laqcl_csr;
7073 ELSE
7074 OPEN l_qcl_csr;
7075 FETCH l_qcl_csr INTO lp_chrv_rec.qcl_id;
7076 CLOSE l_qcl_csr;
7077 END IF;
7078
7079 -- START: cklee/mvasudev,6/2/2005, Bug#4392051/okl.h 4437938
7080 /*
7081 OPEN l_end_date_csr;
7082 FETCH l_end_date_csr INTO lp_chrv_rec.end_date;
7083 CLOSE l_end_date_csr;
7084 */
7085 lp_chrv_rec.end_date := OKL_LLA_UTIL_PVT.calculate_end_date(p_durv_rec.chr_start_date,p_durv_rec.khr_term_duration);
7086 -- END: cklee/mvasudev,6/2/2005, Bug#4392051/okl.h 4437938
7087
7088 x_durv_rec.chr_end_date := lp_chrv_rec.end_date;
7089
7090 /*
7091 If (lp_chrv_rec.TEMPLATE_YN is not null and lp_chrv_rec.TEMPLATE_YN = 'Y') then
7092 lp_chrv_rec.end_date := null;
7093 x_durv_rec.chr_end_date := null;
7094 End If;
7095 */
7096
7097 IF (p_durv_rec.product_name IS NULL) THEN
7098 lp_khrv_rec.pdt_id := NULL;
7099 x_durv_rec.khr_pdt_id := NULL;
7100 ELSE
7101 lp_khrv_rec.pdt_id := x_durv_rec.khr_pdt_id;
7102 END IF;
7103
7104 IF (p_durv_rec.program_contract_number IS NULL) THEN
7105 lp_khrv_rec.khr_id := NULL;
7106 x_durv_rec.khr_khr_id := NULL;
7107 END IF;
7108
7109 old_khr_id := NULL;
7110 OPEN c_vp_exsts_csr;
7111 FETCH c_vp_exsts_csr INTO old_khr_id;
7112 CLOSE c_vp_exsts_csr;
7113
7114 lp_khrv_rec.khr_id := x_durv_rec.khr_khr_id;
7115
7116 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
7117 lp_chrv_rec.cust_acct_id := NULL;
7118 END IF;
7119
7120 --Bug# 7440232 start
7121 OPEN c_orig_pdt_csr(p_chr_id => lp_chrv_rec.id);
7122 FETCH c_orig_pdt_csr INTO l_orig_pdt_rec;
7123 CLOSE c_orig_pdt_csr;
7124
7125 IF (NVL(l_orig_pdt_rec.pdt_id, OKL_API.G_MISS_NUM) <>
7126 NVL(lp_khrv_rec.pdt_id, OKL_API.G_MISS_NUM)) THEN
7127
7128 l_count := 0;
7129 FOR l_rates_rec IN c_rates_csr(lp_chrv_rec.id, 'ACTUAL') LOOP
7130 l_count := l_count + 1;
7131 l_krpdel_tbl(l_count).khr_id := lp_chrv_rec.id;
7132 l_krpdel_tbl(l_count).effective_from_date := l_rates_rec.effective_from_date;
7133 l_krpdel_tbl(l_count).rate_type := 'INTEREST_RATE_PARAMS';
7134 END LOOP;
7135
7136 IF l_count > 0 THEN
7137 OKL_K_RATE_PARAMS_PVT.delete_k_rate_params(
7138 p_api_version => p_api_version,
7139 p_init_msg_list => p_init_msg_list,
7140 x_return_status => x_return_status,
7141 x_msg_count => x_msg_count,
7142 x_msg_data => x_msg_data,
7143 p_krpdel_tbl => l_krpdel_tbl);
7144
7145 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7146 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7147 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
7148 RAISE OKL_API.G_EXCEPTION_ERROR;
7149 END IF;
7150
7151 END IF;
7152 END IF;
7153 --Bug# 7440232 end
7154
7155 OKL_CONTRACT_PUB.update_contract_header(
7156 p_api_version => p_api_version,
7157 p_init_msg_list => p_init_msg_list,
7158 x_return_status => x_return_status,
7159 x_msg_count => x_msg_count,
7160 x_msg_data => x_msg_data,
7161 p_restricted_update => 'F',
7162 p_chrv_rec => lp_chrv_rec,
7163 p_khrv_rec => lp_khrv_rec,
7164 x_chrv_rec => lx_chrv_rec,
7165 x_khrv_rec => lx_khrv_rec);
7166
7167 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
7168 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
7169 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
7170 RAISE OKC_API.G_EXCEPTION_ERROR;
7171 END IF;
7172 /*
7173 open l_vers_version_csr;
7174 fetch l_vers_version_csr into x_durv_rec.vers_version;
7175 close l_vers_version_csr;
7176 */
7177 -- lessee
7178
7179 IF (p_durv_rec.cust_id IS NULL AND p_durv_rec.cust_name IS NOT NULL ) THEN
7180
7181 lp_lessee_cplv_rec.id := NULL;
7182 lp_lessee_cplv_rec.dnz_chr_id := p_durv_rec.chr_id;
7183 lp_lessee_cplv_rec.chr_id := p_durv_rec.chr_id;
7184 lp_lessee_cplv_rec.object1_id1 := x_durv_rec.cust_object1_id1;
7185 lp_lessee_cplv_rec.object1_id2 := x_durv_rec.cust_object1_id2;
7186 lp_lessee_cplv_rec.rle_code := 'LESSEE';
7187 lp_lessee_cplv_rec.jtot_object1_code := p_durv_rec.cust_jtot_object1_code;
7188
7189
7190 --Bug# 4558486: Changed call to okl_k_party_roles_pvt api
7191 -- to create records in tables
7192 -- okc_k_party_roles_b and okl_k_party_roles
7193 /*
7194 OKL_OKC_MIGRATION_PVT.create_k_party_role(
7195 p_api_version => p_api_version,
7196 p_init_msg_list => p_init_msg_list,
7197 x_return_status => x_return_status,
7198 x_msg_count => x_msg_count,
7199 x_msg_data => x_msg_data,
7200 p_cplv_rec => lp_lessee_cplv_rec,
7201 x_cplv_rec => lx_lessee_cplv_rec);
7202 */
7203
7204 okl_k_party_roles_pvt.create_k_party_role(
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_cplv_rec => lp_lessee_cplv_rec,
7211 x_cplv_rec => lx_lessee_cplv_rec,
7212 p_kplv_rec => lp_kplv_rec,
7213 x_kplv_rec => lx_kplv_rec);
7214
7215 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
7216 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
7217 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
7218 RAISE OKC_API.G_EXCEPTION_ERROR;
7219 END IF;
7220
7221 x_durv_rec.cust_id := lx_lessee_cplv_rec.id;
7222
7223 ELSIF (p_durv_rec.cust_id IS NOT NULL AND p_durv_rec.cust_name IS NOT NULL ) THEN
7224
7225 lp_lessee_cplv_rec.id := p_durv_rec.cust_id;
7226 lp_lessee_cplv_rec.dnz_chr_id := p_durv_rec.chr_id;
7227 lp_lessee_cplv_rec.chr_id := p_durv_rec.chr_id;
7228 lp_lessee_cplv_rec.object1_id1 := x_durv_rec.cust_object1_id1;
7229 lp_lessee_cplv_rec.object1_id2 := x_durv_rec.cust_object1_id2;
7230 lp_lessee_cplv_rec.rle_code := 'LESSEE';
7231 lp_lessee_cplv_rec.jtot_object1_code := p_durv_rec.cust_jtot_object1_code;
7232
7233 --Bug# 4558486: Changed call to okl_k_party_roles_pvt api
7234 -- to update records in tables
7235 -- okc_k_party_roles_b and okl_k_party_roles
7236 /*
7237 OKL_OKC_MIGRATION_PVT.update_k_party_role(
7238 p_api_version => p_api_version,
7239 p_init_msg_list => p_init_msg_list,
7240 x_return_status => x_return_status,
7241 x_msg_count => x_msg_count,
7242 x_msg_data => x_msg_data,
7243 p_cplv_rec => lp_lessee_cplv_rec,
7244 x_cplv_rec => lx_lessee_cplv_rec);
7245 */
7246
7247 lp_kplv_rec.id := lp_lessee_cplv_rec.id;
7248 okl_k_party_roles_pvt.update_k_party_role(
7249 p_api_version => p_api_version,
7250 p_init_msg_list => p_init_msg_list,
7251 x_return_status => x_return_status,
7252 x_msg_count => x_msg_count,
7253 x_msg_data => x_msg_data,
7254 p_cplv_rec => lp_lessee_cplv_rec,
7255 x_cplv_rec => lx_lessee_cplv_rec,
7256 p_kplv_rec => lp_kplv_rec,
7257 x_kplv_rec => lx_kplv_rec);
7258
7259 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
7260 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
7261 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
7262 RAISE OKC_API.G_EXCEPTION_ERROR;
7263 END IF;
7264
7265 ELSIF( p_durv_rec.cust_id IS NOT NULL AND p_durv_rec.cust_name IS NULL ) THEN
7266
7267 IF( l_temp_yn = 'Y' ) THEN
7268
7269 lp_lessee_cplv_rec.id := p_durv_rec.cust_id;
7270 lp_lessee_cplv_rec.dnz_chr_id := p_durv_rec.chr_id;
7271 lp_lessee_cplv_rec.chr_id := p_durv_rec.chr_id;
7272
7273 --Bug# 4558486: Changed call to okl_k_party_roles_pvt api
7274 -- to delete records in tables
7275 -- okc_k_party_roles_b and okl_k_party_roles
7276 /*
7277 OKL_OKC_MIGRATION_PVT.delete_k_party_role(
7278 p_api_version => p_api_version,
7279 p_init_msg_list => p_init_msg_list,
7280 x_return_status => x_return_status,
7281 x_msg_count => x_msg_count,
7282 x_msg_data => x_msg_data,
7283 p_cplv_rec => lp_lessee_cplv_rec);
7284 */
7285
7286 lp_kplv_rec.id := lp_lessee_cplv_rec.id;
7287 OKL_K_PARTY_ROLES_PVT.delete_k_party_role(
7288 p_api_version => p_api_version,
7289 p_init_msg_list => p_init_msg_list,
7290 x_return_status => x_return_status,
7291 x_msg_count => x_msg_count,
7292 x_msg_data => x_msg_data,
7293 p_cplv_rec => lp_lessee_cplv_rec,
7294 p_kplv_rec => lp_kplv_rec);
7295
7296 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
7297 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
7298 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
7299 RAISE OKC_API.G_EXCEPTION_ERROR;
7300 END IF;
7301
7302 l_rgp_id := NULL;
7303 l_rul_id := NULL;
7304
7305 END IF;
7306
7307 END IF;
7308
7309 -- contact
7310 IF (p_durv_rec.contact_id IS NULL AND p_durv_rec.contact_name IS NOT NULL ) THEN
7311
7312 lp_ctcv_rec.id := NULL;
7313 OPEN c_lessor(p_durv_rec.chr_id);
7314 FETCH c_lessor INTO lp_ctcv_rec.cpl_id;
7315 CLOSE c_lessor;
7316 --lp_ctcv_rec.cpl_id := p_durv_rec.lessor_id;
7317 lp_ctcv_rec.dnz_chr_id := p_durv_rec.chr_id;
7318 lp_ctcv_rec.object1_id1 := x_durv_rec.contact_object1_id1;
7319 lp_ctcv_rec.object1_id2 := x_durv_rec.contact_object1_id2;
7320 lp_ctcv_rec.jtot_object1_code := p_durv_rec.contact_jtot_object1_code;
7321 lp_ctcv_rec.cro_code := 'SALESPERSON';
7322
7323 OKL_OKC_MIGRATION_PVT.create_contact(
7324 p_api_version => p_api_version,
7325 p_init_msg_list => p_init_msg_list,
7326 x_return_status => x_return_status,
7327 x_msg_count => x_msg_count,
7328 x_msg_data => x_msg_data,
7329 p_ctcv_rec => lp_ctcv_rec,
7330 x_ctcv_rec => lx_ctcv_rec);
7331
7332 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
7333 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
7334 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
7335 RAISE OKC_API.G_EXCEPTION_ERROR;
7336 END IF;
7337
7338 x_durv_rec.contact_id := lx_ctcv_rec.id;
7339
7340 ELSIF (p_durv_rec.contact_id IS NOT NULL AND p_durv_rec.contact_name IS NOT NULL ) THEN
7341
7342 lp_ctcv_rec.id := p_durv_rec.contact_id;
7343 lp_ctcv_rec.cpl_id := lx_lessor_cplv_rec.id;
7344 lp_ctcv_rec.dnz_chr_id := p_durv_rec.chr_id;
7345 lp_ctcv_rec.object1_id1 := x_durv_rec.contact_object1_id1;
7346 lp_ctcv_rec.object1_id2 := x_durv_rec.contact_object1_id2;
7347 lp_ctcv_rec.jtot_object1_code := p_durv_rec.contact_jtot_object1_code;
7348 lp_ctcv_rec.cro_code := 'SALESPERSON';
7349
7350 OKL_OKC_MIGRATION_PVT.update_contact(
7351 p_api_version => p_api_version,
7352 p_init_msg_list => p_init_msg_list,
7353 x_return_status => x_return_status,
7354 x_msg_count => x_msg_count,
7355 x_msg_data => x_msg_data,
7356 p_ctcv_rec => lp_ctcv_rec,
7357 x_ctcv_rec => lx_ctcv_rec);
7358
7359 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
7360 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
7361 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
7362 RAISE OKC_API.G_EXCEPTION_ERROR;
7363 END IF;
7364
7365 ELSIF (p_durv_rec.contact_id IS NOT NULL AND p_durv_rec.contact_name IS NULL ) THEN
7366
7367 lp_ctcv_rec.id := p_durv_rec.contact_id;
7368 lp_ctcv_rec.cpl_id := lx_lessor_cplv_rec.id;
7369 lp_ctcv_rec.dnz_chr_id := p_durv_rec.chr_id;
7370 lp_ctcv_rec.object1_id1 := x_durv_rec.contact_object1_id1;
7371 lp_ctcv_rec.object1_id2 := x_durv_rec.contact_object1_id2;
7372 lp_ctcv_rec.jtot_object1_code := p_durv_rec.contact_jtot_object1_code;
7373 lp_ctcv_rec.cro_code := 'SALESPERSON';
7374
7375 OKL_OKC_MIGRATION_PVT.delete_contact(
7376 p_api_version => p_api_version,
7377 p_init_msg_list => p_init_msg_list,
7378 x_return_status => x_return_status,
7379 x_msg_count => x_msg_count,
7380 x_msg_data => x_msg_data,
7381 p_ctcv_rec => lp_ctcv_rec);
7382
7383 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
7384 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
7385 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
7386 RAISE OKC_API.G_EXCEPTION_ERROR;
7387 END IF;
7388
7389 x_durv_rec.contact_id := NULL;
7390
7391 END IF;
7392
7393 -- mla
7394 IF (p_durv_rec.mla_gvr_id IS NULL AND p_durv_rec.mla_contract_number IS NOT NULL ) THEN
7395
7396 lp_mla_gvev_rec.id := NULL;
7397 lp_mla_gvev_rec.dnz_chr_id := p_durv_rec.chr_id;
7398 lp_mla_gvev_rec.chr_id := p_durv_rec.chr_id;
7399 lp_mla_gvev_rec.chr_id_referred := x_durv_rec.mla_gvr_chr_id_referred;
7400 lp_mla_gvev_rec.copied_only_yn := 'N';
7401
7402 OKL_OKC_MIGRATION_PVT.create_governance(
7403 p_api_version => p_api_version,
7404 p_init_msg_list => p_init_msg_list,
7405 x_return_status => x_return_status,
7406 x_msg_count => x_msg_count,
7407 x_msg_data => x_msg_data,
7408 p_gvev_rec => lp_mla_gvev_rec,
7409 x_gvev_rec => lx_mla_gvev_rec);
7410
7411 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
7412 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
7413 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
7414 RAISE OKC_API.G_EXCEPTION_ERROR;
7415 END IF;
7416
7417 x_durv_rec.mla_gvr_id := lx_mla_gvev_rec.id;
7418
7419 ELSIF (p_durv_rec.mla_gvr_id IS NOT NULL AND p_durv_rec.mla_contract_number IS NOT NULL ) THEN
7420
7421 lp_mla_gvev_rec.id := p_durv_rec.mla_gvr_id;
7422 lp_mla_gvev_rec.dnz_chr_id := p_durv_rec.chr_id;
7423 lp_mla_gvev_rec.chr_id := p_durv_rec.chr_id;
7424 lp_mla_gvev_rec.chr_id_referred := x_durv_rec.mla_gvr_chr_id_referred;
7425 lp_mla_gvev_rec.copied_only_yn := 'N';
7426
7427 OKL_OKC_MIGRATION_PVT.update_governance(
7428 p_api_version => p_api_version,
7429 p_init_msg_list => p_init_msg_list,
7430 x_return_status => x_return_status,
7431 x_msg_count => x_msg_count,
7432 x_msg_data => x_msg_data,
7433 p_gvev_rec => lp_mla_gvev_rec,
7434 x_gvev_rec => lx_mla_gvev_rec);
7435
7436 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
7437 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
7438 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
7439 RAISE OKC_API.G_EXCEPTION_ERROR;
7440 END IF;
7441
7442 ELSIF (p_durv_rec.mla_gvr_id IS NOT NULL AND p_durv_rec.mla_contract_number IS NULL ) THEN
7443
7444 lp_mla_gvev_rec.id := p_durv_rec.mla_gvr_id;
7445 lp_mla_gvev_rec.dnz_chr_id := p_durv_rec.chr_id;
7446 lp_mla_gvev_rec.chr_id := p_durv_rec.chr_id;
7447 lp_mla_gvev_rec.chr_id_referred := x_durv_rec.mla_gvr_chr_id_referred;
7448 lp_mla_gvev_rec.copied_only_yn := 'N';
7449
7450 OKL_OKC_MIGRATION_PVT.delete_governance(
7451 p_api_version => p_api_version,
7452 p_init_msg_list => p_init_msg_list,
7453 x_return_status => x_return_status,
7454 x_msg_count => x_msg_count,
7455 x_msg_data => x_msg_data,
7456 p_gvev_rec => lp_mla_gvev_rec);
7457
7458 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
7459 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
7460 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
7461 RAISE OKC_API.G_EXCEPTION_ERROR;
7462 END IF;
7463
7464 x_durv_rec.mla_gvr_id := NULL;
7465
7466 END IF;
7467
7468 -- creditline
7469 IF (p_durv_rec.cl_gvr_id IS NULL AND p_durv_rec.cl_contract_number IS NOT NULL ) THEN
7470
7471 lp_cl_gvev_rec.id := NULL;
7472 lp_cl_gvev_rec.dnz_chr_id := p_durv_rec.chr_id;
7473 lp_cl_gvev_rec.chr_id := p_durv_rec.chr_id;
7474 lp_cl_gvev_rec.chr_id_referred := x_durv_rec.cl_gvr_chr_id_referred;
7475 lp_cl_gvev_rec.copied_only_yn := 'N';
7476
7477 OKL_OKC_MIGRATION_PVT.create_governance(
7478 p_api_version => p_api_version,
7479 p_init_msg_list => p_init_msg_list,
7480 x_return_status => x_return_status,
7481 x_msg_count => x_msg_count,
7482 x_msg_data => x_msg_data,
7483 p_gvev_rec => lp_cl_gvev_rec,
7484 x_gvev_rec => lx_cl_gvev_rec);
7485
7486 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
7487 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
7488 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
7489 RAISE OKC_API.G_EXCEPTION_ERROR;
7490 END IF;
7491
7492 x_durv_rec.cl_gvr_id := lx_cl_gvev_rec.id;
7493
7494 ELSIF (p_durv_rec.cl_gvr_id IS NOT NULL AND p_durv_rec.cl_contract_number IS NOT NULL ) THEN
7495
7496 lp_cl_gvev_rec.id := p_durv_rec.cl_gvr_id;
7497 lp_cl_gvev_rec.dnz_chr_id := p_durv_rec.chr_id;
7498 lp_cl_gvev_rec.chr_id := p_durv_rec.chr_id;
7499 lp_cl_gvev_rec.chr_id_referred := x_durv_rec.cl_gvr_chr_id_referred;
7500 lp_cl_gvev_rec.copied_only_yn := 'N';
7501
7502 OKL_OKC_MIGRATION_PVT.update_governance(
7503 p_api_version => p_api_version,
7504 p_init_msg_list => p_init_msg_list,
7505 x_return_status => x_return_status,
7506 x_msg_count => x_msg_count,
7507 x_msg_data => x_msg_data,
7508 p_gvev_rec => lp_cl_gvev_rec,
7509 x_gvev_rec => lx_cl_gvev_rec);
7510
7511 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
7512 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
7513 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
7514 RAISE OKC_API.G_EXCEPTION_ERROR;
7515 END IF;
7516
7517 ELSIF (p_durv_rec.cl_gvr_id IS NOT NULL AND p_durv_rec.cl_contract_number IS NULL ) THEN
7518
7519 lp_cl_gvev_rec.id := p_durv_rec.cl_gvr_id;
7520 lp_cl_gvev_rec.dnz_chr_id := p_durv_rec.chr_id;
7521 lp_cl_gvev_rec.chr_id := p_durv_rec.chr_id;
7522 lp_cl_gvev_rec.chr_id_referred := x_durv_rec.cl_gvr_chr_id_referred;
7523 lp_cl_gvev_rec.copied_only_yn := 'N';
7524
7525 OKL_OKC_MIGRATION_PVT.delete_governance(
7526 p_api_version => p_api_version,
7527 p_init_msg_list => p_init_msg_list,
7528 x_return_status => x_return_status,
7529 x_msg_count => x_msg_count,
7530 x_msg_data => x_msg_data,
7531 p_gvev_rec => lp_cl_gvev_rec);
7532
7533 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
7534 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
7535 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
7536 RAISE OKC_API.G_EXCEPTION_ERROR;
7537 END IF;
7538
7539 x_durv_rec.cl_gvr_id := NULL;
7540
7541 END IF;
7542
7543 -- rule group larles
7544 IF (p_durv_rec.rg_larles_id IS NULL) THEN
7545
7546 lp_larles_rgpv_rec.id := NULL;
7547 lp_larles_rgpv_rec.rgd_code := 'LARLES';
7548 lp_larles_rgpv_rec.dnz_chr_id := p_durv_rec.chr_id;
7549 lp_larles_rgpv_rec.chr_id := p_durv_rec.chr_id;
7550 lp_larles_rgpv_rec.rgp_type := 'KRG';
7551
7552 OKL_RULE_PUB.create_rule_group(
7553 p_api_version => p_api_version,
7554 p_init_msg_list => p_init_msg_list,
7555 x_return_status => x_return_status,
7556 x_msg_count => x_msg_count,
7557 x_msg_data => x_msg_data,
7558 p_rgpv_rec => lp_larles_rgpv_rec,
7559 x_rgpv_rec => lx_larles_rgpv_rec);
7560
7561 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
7562 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
7563 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
7564 RAISE OKC_API.G_EXCEPTION_ERROR;
7565 END IF;
7566
7567 x_durv_rec.rg_larles_id := lx_larles_rgpv_rec.id;
7568
7569 ELSIF (p_durv_rec.rg_larles_id IS NOT NULL ) THEN
7570
7571 lp_larles_rgpv_rec.id := p_durv_rec.rg_larles_id;
7572 lp_larles_rgpv_rec.rgd_code := 'LARLES';
7573 lp_larles_rgpv_rec.dnz_chr_id := p_durv_rec.chr_id;
7574 lp_larles_rgpv_rec.chr_id := p_durv_rec.chr_id;
7575 lp_larles_rgpv_rec.rgp_type := 'KRG';
7576
7577 OKL_RULE_PUB.update_rule_group(
7578 p_api_version => p_api_version,
7579 p_init_msg_list => p_init_msg_list,
7580 x_return_status => x_return_status,
7581 x_msg_count => x_msg_count,
7582 x_msg_data => x_msg_data,
7583 p_rgpv_rec => lp_larles_rgpv_rec,
7584 x_rgpv_rec => lx_larles_rgpv_rec);
7585
7586 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
7587 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
7588 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
7589 RAISE OKC_API.G_EXCEPTION_ERROR;
7590 END IF;
7591
7592 END IF;
7593
7594 -- rule larles
7595 IF (p_durv_rec.r_larles_id IS NULL ) THEN
7596
7597 lp_larles_rulv_rec.id := NULL;
7598 lp_larles_rulv_rec.rgp_id := lx_larles_rgpv_rec.id;
7599 lp_larles_rulv_rec.rule_information_category := 'LARLES';
7600 lp_larles_rulv_rec.dnz_chr_id := p_durv_rec.chr_id;
7601 lp_larles_rulv_rec.rule_information1 := p_durv_rec.r_larles_rule_information1;
7602 lp_larles_rulv_rec.WARN_YN := 'N';
7603 lp_larles_rulv_rec.STD_TEMPLATE_YN := 'N';
7604
7605 OKL_RULE_PUB.create_rule(
7606 p_api_version => p_api_version,
7607 p_init_msg_list => p_init_msg_list,
7608 x_return_status => x_return_status,
7609 x_msg_count => x_msg_count,
7610 x_msg_data => x_msg_data,
7611 p_rulv_rec => lp_larles_rulv_rec,
7612 x_rulv_rec => lx_larles_rulv_rec);
7613
7614 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
7615 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
7616 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
7617 RAISE OKC_API.G_EXCEPTION_ERROR;
7618 END IF;
7619
7620 x_durv_rec.r_larles_id := lx_larles_rulv_rec.id;
7621
7622 ELSIF (p_durv_rec.r_larles_id IS NOT NULL ) THEN
7623
7624 l_fin_ast := 'N';
7625 OPEN chk_fin_ast_csr;
7626 FETCH chk_fin_ast_csr INTO l_fin_ast;
7627 CLOSE chk_fin_ast_csr;
7628
7629 l_lrls_yn := 'X';
7630 OPEN get_larles_csr;
7631 FETCH get_larles_csr INTO l_lrls_yn;
7632 CLOSE get_larles_csr;
7633
7634 IF( (l_fin_ast = 'Y') AND (NOT(p_durv_rec.r_larles_rule_information1 = l_lrls_yn))) THEN
7635
7636 x_return_status := OKC_API.g_ret_sts_error;
7637 OKC_API.SET_MESSAGE( p_app_name => g_app_name
7638 , p_msg_name => 'OKL_LLA_RELSE_AST'
7639 );
7640 RAISE OKC_API.G_EXCEPTION_ERROR;
7641
7642 END IF;
7643
7644 lp_larles_rulv_rec.id := p_durv_rec.r_larles_id;
7645 lp_larles_rulv_rec.rgp_id := lx_larles_rgpv_rec.id;
7646 lp_larles_rulv_rec.rule_information_category := 'LARLES';
7647 lp_larles_rulv_rec.dnz_chr_id := p_durv_rec.chr_id;
7648 lp_larles_rulv_rec.rule_information1 := p_durv_rec.r_larles_rule_information1;
7649 lp_larles_rulv_rec.WARN_YN := 'N';
7650 lp_larles_rulv_rec.STD_TEMPLATE_YN := 'N';
7651
7652 OKL_RULE_PUB.update_rule(
7653 p_api_version => p_api_version,
7654 p_init_msg_list => p_init_msg_list,
7655 x_return_status => x_return_status,
7656 x_msg_count => x_msg_count,
7657 x_msg_data => x_msg_data,
7658 p_rulv_rec => lp_larles_rulv_rec,
7659 x_rulv_rec => lx_larles_rulv_rec);
7660
7661 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
7662 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
7663 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
7664 RAISE OKC_API.G_EXCEPTION_ERROR;
7665 END IF;
7666
7667 END IF;
7668
7669 -- rule group LAREBL
7670 IF (p_durv_rec.rg_LAREBL_id IS NULL) THEN
7671
7672 lp_larebl_rgpv_rec.id := NULL;
7673 lp_larebl_rgpv_rec.rgd_code := 'LAREBL';
7674 lp_larebl_rgpv_rec.dnz_chr_id := p_durv_rec.chr_id;
7675 lp_larebl_rgpv_rec.chr_id := p_durv_rec.chr_id;
7676 lp_larebl_rgpv_rec.rgp_type := 'KRG';
7677
7678 OKL_RULE_PUB.create_rule_group(
7679 p_api_version => p_api_version,
7680 p_init_msg_list => p_init_msg_list,
7681 x_return_status => x_return_status,
7682 x_msg_count => x_msg_count,
7683 x_msg_data => x_msg_data,
7684 p_rgpv_rec => lp_larebl_rgpv_rec,
7685 x_rgpv_rec => lx_larebl_rgpv_rec);
7686
7687 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
7688 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
7689 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
7690 RAISE OKC_API.G_EXCEPTION_ERROR;
7691 END IF;
7692
7693 x_durv_rec.rg_larebl_id := lx_larebl_rgpv_rec.id;
7694
7695 ELSIF (p_durv_rec.rg_larebl_id IS NOT NULL ) THEN
7696
7697 lp_larebl_rgpv_rec.id := p_durv_rec.rg_larebl_id;
7698 lp_larebl_rgpv_rec.rgd_code := 'LAREBL';
7699 lp_larebl_rgpv_rec.dnz_chr_id := p_durv_rec.chr_id;
7700 lp_larebl_rgpv_rec.chr_id := p_durv_rec.chr_id;
7701 lp_larebl_rgpv_rec.rgp_type := 'KRG';
7702
7703 OKL_RULE_PUB.update_rule_group(
7704 p_api_version => p_api_version,
7705 p_init_msg_list => p_init_msg_list,
7706 x_return_status => x_return_status,
7707 x_msg_count => x_msg_count,
7708 x_msg_data => x_msg_data,
7709 p_rgpv_rec => lp_larebl_rgpv_rec,
7710 x_rgpv_rec => lx_larebl_rgpv_rec);
7711
7712 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
7713 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
7714 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
7715 RAISE OKC_API.G_EXCEPTION_ERROR;
7716 END IF;
7717
7718 END IF;
7719
7720 -- rule larebl
7721 IF (p_durv_rec.r_larebl_id IS NULL) THEN
7722
7723 lp_larebl_rulv_rec.id := NULL;
7724 lp_larebl_rulv_rec.rgp_id := lx_larebl_rgpv_rec.id;
7725 lp_larebl_rulv_rec.rule_information_category := 'LAREBL';
7726 lp_larebl_rulv_rec.dnz_chr_id := p_durv_rec.chr_id;
7727 lp_larebl_rulv_rec.rule_information1 := p_durv_rec.r_larebl_rule_information1;
7728 lp_larebl_rulv_rec.WARN_YN := 'N';
7729 lp_larebl_rulv_rec.STD_TEMPLATE_YN := 'N';
7730
7731 OKL_RULE_PUB.create_rule(
7732 p_api_version => p_api_version,
7733 p_init_msg_list => p_init_msg_list,
7734 x_return_status => x_return_status,
7735 x_msg_count => x_msg_count,
7736 x_msg_data => x_msg_data,
7737 p_rulv_rec => lp_larebl_rulv_rec,
7738 x_rulv_rec => lx_larebl_rulv_rec);
7739
7740 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
7741 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
7742 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
7743 RAISE OKC_API.G_EXCEPTION_ERROR;
7744 END IF;
7745
7746 x_durv_rec.r_larebl_id := lx_larebl_rulv_rec.id;
7747
7748 ELSIF (p_durv_rec.r_larebl_id IS NOT NULL ) THEN
7749
7750 lp_larebl_rulv_rec.id := p_durv_rec.r_larebl_id;
7751 lp_larebl_rulv_rec.rgp_id := lx_larebl_rgpv_rec.id;
7752 lp_larebl_rulv_rec.rule_information_category := 'LAREBL';
7753 lp_larebl_rulv_rec.dnz_chr_id := p_durv_rec.chr_id;
7754 lp_larebl_rulv_rec.rule_information1 := p_durv_rec.r_larebl_rule_information1;
7755 lp_larebl_rulv_rec.WARN_YN := 'N';
7756 lp_larebl_rulv_rec.STD_TEMPLATE_YN := 'N';
7757
7758 OKL_RULE_PUB.update_rule(
7759 p_api_version => p_api_version,
7760 p_init_msg_list => p_init_msg_list,
7761 x_return_status => x_return_status,
7762 x_msg_count => x_msg_count,
7763 x_msg_data => x_msg_data,
7764 p_rulv_rec => lp_larebl_rulv_rec,
7765 x_rulv_rec => lx_larebl_rulv_rec);
7766
7767 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
7768 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
7769 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
7770 RAISE OKC_API.G_EXCEPTION_ERROR;
7771 END IF;
7772 ELSIF (p_durv_rec.r_larebl_id IS NOT NULL AND p_durv_rec.r_larebl_rule_information1 IS NULL) THEN
7773
7774 lp_larebl_rulv_rec.id := p_durv_rec.r_larebl_id;
7775 lp_larebl_rulv_rec.rgp_id := lx_larebl_rgpv_rec.id;
7776 lp_larebl_rulv_rec.rule_information_category := 'LAREBL';
7777 lp_larebl_rulv_rec.dnz_chr_id := p_durv_rec.chr_id;
7778 lp_larebl_rulv_rec.rule_information1 := p_durv_rec.r_larebl_rule_information1;
7779 lp_larebl_rulv_rec.WARN_YN := 'N';
7780 lp_larebl_rulv_rec.STD_TEMPLATE_YN := 'N';
7781
7782 OKL_RULE_PUB.delete_rule(
7783 p_api_version => p_api_version,
7784 p_init_msg_list => p_init_msg_list,
7785 x_return_status => x_return_status,
7786 x_msg_count => x_msg_count,
7787 x_msg_data => x_msg_data,
7788 p_rulv_rec => lp_larebl_rulv_rec);
7789
7790 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
7791 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
7792 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
7793 RAISE OKC_API.G_EXCEPTION_ERROR;
7794 END IF;
7795
7796 x_durv_rec.r_larebl_id := NULL;
7797
7798 END IF;
7799
7800 -- rule group lanntf
7801 IF (p_durv_rec.rg_lanntf_id IS NULL) THEN
7802
7803 lp_lanntf_rgpv_rec.id := NULL;
7804 lp_lanntf_rgpv_rec.rgd_code := 'LANNTF';
7805 lp_lanntf_rgpv_rec.dnz_chr_id := p_durv_rec.chr_id;
7806 lp_lanntf_rgpv_rec.chr_id := p_durv_rec.chr_id;
7807 lp_lanntf_rgpv_rec.rgp_type := 'KRG';
7808
7809 OKL_RULE_PUB.create_rule_group(
7810 p_api_version => p_api_version,
7811 p_init_msg_list => p_init_msg_list,
7812 x_return_status => x_return_status,
7813 x_msg_count => x_msg_count,
7814 x_msg_data => x_msg_data,
7815 p_rgpv_rec => lp_lanntf_rgpv_rec,
7816 x_rgpv_rec => lx_lanntf_rgpv_rec);
7817
7818 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
7819 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
7820 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
7821 RAISE OKC_API.G_EXCEPTION_ERROR;
7822 END IF;
7823
7824 x_durv_rec.rg_lanntf_id := lx_lanntf_rgpv_rec.id;
7825
7826 ELSIF (p_durv_rec.rg_lanntf_id IS NOT NULL ) THEN
7827
7828 lp_lanntf_rgpv_rec.id := p_durv_rec.rg_lanntf_id;
7829 lp_lanntf_rgpv_rec.rgd_code := 'LANNTF';
7830 lp_lanntf_rgpv_rec.dnz_chr_id := p_durv_rec.chr_id;
7831 lp_lanntf_rgpv_rec.chr_id := p_durv_rec.chr_id;
7832 lp_lanntf_rgpv_rec.rgp_type := 'KRG';
7833
7834 OKL_RULE_PUB.update_rule_group(
7835 p_api_version => p_api_version,
7836 p_init_msg_list => p_init_msg_list,
7837 x_return_status => x_return_status,
7838 x_msg_count => x_msg_count,
7839 x_msg_data => x_msg_data,
7840 p_rgpv_rec => lp_lanntf_rgpv_rec,
7841 x_rgpv_rec => lx_lanntf_rgpv_rec);
7842
7843 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
7844 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
7845 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
7846 RAISE OKC_API.G_EXCEPTION_ERROR;
7847 END IF;
7848
7849 END IF;
7850
7851 -- rule lanntf
7852 IF (p_durv_rec.r_lanntf_id IS NULL) THEN
7853
7854 lp_lanntf_rulv_rec.id := NULL;
7855 lp_lanntf_rulv_rec.rgp_id := lx_lanntf_rgpv_rec.id;
7856 lp_lanntf_rulv_rec.rule_information_category := 'LANNTF';
7857 lp_lanntf_rulv_rec.dnz_chr_id := p_durv_rec.chr_id;
7858 lp_lanntf_rulv_rec.rule_information1 := p_durv_rec.r_lanntf_rule_information1;
7859 lp_lanntf_rulv_rec.WARN_YN := 'N';
7860 lp_lanntf_rulv_rec.STD_TEMPLATE_YN := 'N';
7861
7862 OKL_RULE_PUB.create_rule(
7863 p_api_version => p_api_version,
7864 p_init_msg_list => p_init_msg_list,
7865 x_return_status => x_return_status,
7866 x_msg_count => x_msg_count,
7867 x_msg_data => x_msg_data,
7868 p_rulv_rec => lp_lanntf_rulv_rec,
7869 x_rulv_rec => lx_lanntf_rulv_rec);
7870
7871 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
7872 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
7873 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
7874 RAISE OKC_API.G_EXCEPTION_ERROR;
7875 END IF;
7876
7877 x_durv_rec.r_lanntf_id := lx_lanntf_rulv_rec.id;
7878
7879 ELSIF (p_durv_rec.r_lanntf_id IS NOT NULL ) THEN
7880
7881 lp_lanntf_rulv_rec.id := p_durv_rec.r_lanntf_id;
7882 lp_lanntf_rulv_rec.rgp_id := lx_lanntf_rgpv_rec.id;
7883 lp_lanntf_rulv_rec.rule_information_category := 'LANNTF';
7884 lp_lanntf_rulv_rec.dnz_chr_id := p_durv_rec.chr_id;
7885 lp_lanntf_rulv_rec.rule_information1 := p_durv_rec.r_lanntf_rule_information1;
7886 lp_lanntf_rulv_rec.WARN_YN := 'N';
7887 lp_lanntf_rulv_rec.STD_TEMPLATE_YN := 'N';
7888
7889 OKL_RULE_PUB.update_rule(
7890 p_api_version => p_api_version,
7891 p_init_msg_list => p_init_msg_list,
7892 x_return_status => x_return_status,
7893 x_msg_count => x_msg_count,
7894 x_msg_data => x_msg_data,
7895 p_rulv_rec => lp_lanntf_rulv_rec,
7896 x_rulv_rec => lx_lanntf_rulv_rec);
7897
7898 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
7899 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
7900 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
7901 RAISE OKC_API.G_EXCEPTION_ERROR;
7902 END IF;
7903
7904 END IF;
7905
7906 -- rule group lacpln
7907 IF (p_durv_rec.rg_lacpln_id IS NULL) THEN
7908
7909 lp_lacpln_rgpv_rec.id := NULL;
7910 lp_lacpln_rgpv_rec.rgd_code := 'LACPLN';
7911 lp_lacpln_rgpv_rec.dnz_chr_id := p_durv_rec.chr_id;
7912 lp_lacpln_rgpv_rec.chr_id := p_durv_rec.chr_id;
7913 lp_lacpln_rgpv_rec.rgp_type := 'KRG';
7914
7915 OKL_RULE_PUB.create_rule_group(
7916 p_api_version => p_api_version,
7917 p_init_msg_list => p_init_msg_list,
7918 x_return_status => x_return_status,
7919 x_msg_count => x_msg_count,
7920 x_msg_data => x_msg_data,
7921 p_rgpv_rec => lp_lacpln_rgpv_rec,
7922 x_rgpv_rec => lx_lacpln_rgpv_rec);
7923
7924 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
7925 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
7926 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
7927 RAISE OKC_API.G_EXCEPTION_ERROR;
7928 END IF;
7929
7930 x_durv_rec.rg_lacpln_id := lx_lacpln_rgpv_rec.id;
7931
7932 ELSIF (p_durv_rec.rg_lacpln_id IS NOT NULL ) THEN
7933
7934 lp_lacpln_rgpv_rec.id := p_durv_rec.rg_lacpln_id;
7935 lp_lacpln_rgpv_rec.rgd_code := 'LACPLN';
7936 lp_lacpln_rgpv_rec.dnz_chr_id := p_durv_rec.chr_id;
7937 lp_lacpln_rgpv_rec.chr_id := p_durv_rec.chr_id;
7938 lp_lacpln_rgpv_rec.rgp_type := 'KRG';
7939
7940 OKL_RULE_PUB.update_rule_group(
7941 p_api_version => p_api_version,
7942 p_init_msg_list => p_init_msg_list,
7943 x_return_status => x_return_status,
7944 x_msg_count => x_msg_count,
7945 x_msg_data => x_msg_data,
7946 p_rgpv_rec => lp_lacpln_rgpv_rec,
7947 x_rgpv_rec => lx_lacpln_rgpv_rec);
7948
7949 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
7950 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
7951 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
7952 RAISE OKC_API.G_EXCEPTION_ERROR;
7953 END IF;
7954
7955 END IF;
7956
7957 -- rule lacpln
7958 IF (p_durv_rec.r_lacpln_id IS NULL) THEN
7959
7960 lp_lacpln_rulv_rec.id := NULL;
7961 lp_lacpln_rulv_rec.rgp_id := lx_lacpln_rgpv_rec.id;
7962 lp_lacpln_rulv_rec.rule_information_category := 'LACPLN';
7963 lp_lacpln_rulv_rec.dnz_chr_id := p_durv_rec.chr_id;
7964 lp_lacpln_rulv_rec.rule_information1 := p_durv_rec.r_lacpln_rule_information1;
7965 lp_lacpln_rulv_rec.WARN_YN := 'N';
7966 lp_lacpln_rulv_rec.STD_TEMPLATE_YN := 'N';
7967
7968 OKL_RULE_PUB.create_rule(
7969 p_api_version => p_api_version,
7970 p_init_msg_list => p_init_msg_list,
7971 x_return_status => x_return_status,
7972 x_msg_count => x_msg_count,
7973 x_msg_data => x_msg_data,
7974 p_rulv_rec => lp_lacpln_rulv_rec,
7975 x_rulv_rec => lx_lacpln_rulv_rec);
7976
7977 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
7978 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
7979 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
7980 RAISE OKC_API.G_EXCEPTION_ERROR;
7981 END IF;
7982
7983 x_durv_rec.r_lacpln_id := lx_lacpln_rulv_rec.id;
7984
7985 ELSIF (p_durv_rec.r_lacpln_id IS NOT NULL ) THEN
7986
7987 l_lacpln_yn := 'X';
7988
7989 OPEN get_lacpln_csr;
7990 FETCH get_lacpln_csr INTO l_lacpln_yn;
7991 CLOSE get_lacpln_csr;
7992
7993 IF( l_lacpln_yn = 'Y' AND NVL(p_durv_rec.r_lacpln_rule_information1,'N') = 'N') THEN
7994
7995 l_fin_ast_id := NULL;
7996 -- update capitalized interest to null
7997 FOR l_get_fin_ast_csr IN get_fin_ast_csr LOOP
7998
7999 -- l_fin_ast_id := l_get_fin_ast_csr.id;
8000 lp_klev_rec.id := l_get_fin_ast_csr.id;
8001 lp_clev_rec.id := l_get_fin_ast_csr.id;
8002 lp_klev_rec.capitalized_interest := NULL;
8003
8004 OKL_CONTRACT_PUB.update_contract_line(
8005 p_api_version => p_api_version,
8006 p_init_msg_list => p_init_msg_list,
8007 x_return_status => x_return_status,
8008 x_msg_count => x_msg_count,
8009 x_msg_data => x_msg_data,
8010 p_clev_rec => lp_clev_rec,
8011 p_klev_rec => lp_klev_rec,
8012 p_edit_mode => 'N',
8013 x_clev_rec => lx_clev_rec,
8014 x_klev_rec => lx_klev_rec);
8015
8016 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
8017 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
8018 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
8019 RAISE OKC_API.G_EXCEPTION_ERROR;
8020 END IF;
8021
8022 END LOOP;
8023
8024 END IF;
8025
8026 lp_lacpln_rulv_rec.id := p_durv_rec.r_lacpln_id;
8027 lp_lacpln_rulv_rec.rgp_id := lx_lacpln_rgpv_rec.id;
8028 lp_lacpln_rulv_rec.rule_information_category := 'LACPLN';
8029 lp_lacpln_rulv_rec.dnz_chr_id := p_durv_rec.chr_id;
8030 lp_lacpln_rulv_rec.rule_information1 := p_durv_rec.r_lacpln_rule_information1;
8031 lp_lacpln_rulv_rec.WARN_YN := 'N';
8032 lp_lacpln_rulv_rec.STD_TEMPLATE_YN := 'N';
8033
8034 OKL_RULE_PUB.update_rule(
8035 p_api_version => p_api_version,
8036 p_init_msg_list => p_init_msg_list,
8037 x_return_status => x_return_status,
8038 x_msg_count => x_msg_count,
8039 x_msg_data => x_msg_data,
8040 p_rulv_rec => lp_lacpln_rulv_rec,
8041 x_rulv_rec => lx_lacpln_rulv_rec);
8042
8043 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
8044 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
8045 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
8046 RAISE OKC_API.G_EXCEPTION_ERROR;
8047 END IF;
8048
8049 END IF;
8050
8051
8052 -- rule group lapact
8053 IF (p_durv_rec.rg_lapact_id IS NULL) THEN
8054
8055 lp_lapact_rgpv_rec.id := NULL;
8056 lp_lapact_rgpv_rec.rgd_code := 'LAPACT';
8057 lp_lapact_rgpv_rec.dnz_chr_id := p_durv_rec.chr_id;
8058 lp_lapact_rgpv_rec.chr_id := p_durv_rec.chr_id;
8059 lp_lapact_rgpv_rec.rgp_type := 'KRG';
8060
8061 OKL_RULE_PUB.create_rule_group(
8062 p_api_version => p_api_version,
8063 p_init_msg_list => p_init_msg_list,
8064 x_return_status => x_return_status,
8065 x_msg_count => x_msg_count,
8066 x_msg_data => x_msg_data,
8067 p_rgpv_rec => lp_lapact_rgpv_rec,
8068 x_rgpv_rec => lx_lapact_rgpv_rec);
8069
8070 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
8071 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
8072 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
8073 RAISE OKC_API.G_EXCEPTION_ERROR;
8074 END IF;
8075
8076 x_durv_rec.rg_lapact_id := lx_lapact_rgpv_rec.id;
8077
8078 ELSIF (p_durv_rec.rg_lapact_id IS NOT NULL ) THEN
8079
8080 lp_lapact_rgpv_rec.id := p_durv_rec.rg_lapact_id;
8081 lp_lapact_rgpv_rec.rgd_code := 'LAPACT';
8082 lp_lapact_rgpv_rec.dnz_chr_id := p_durv_rec.chr_id;
8083 lp_lapact_rgpv_rec.chr_id := p_durv_rec.chr_id;
8084 lp_lapact_rgpv_rec.rgp_type := 'KRG';
8085
8086 OKL_RULE_PUB.update_rule_group(
8087 p_api_version => p_api_version,
8088 p_init_msg_list => p_init_msg_list,
8089 x_return_status => x_return_status,
8090 x_msg_count => x_msg_count,
8091 x_msg_data => x_msg_data,
8092 p_rgpv_rec => lp_lapact_rgpv_rec,
8093 x_rgpv_rec => lx_lapact_rgpv_rec);
8094
8095 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
8096 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
8097 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
8098 RAISE OKC_API.G_EXCEPTION_ERROR;
8099 END IF;
8100
8101 END IF;
8102
8103 -- rule lapact
8104 IF (p_durv_rec.r_lapact_id IS NULL) THEN
8105
8106 lp_lapact_rulv_rec.id := NULL;
8107 lp_lapact_rulv_rec.rgp_id := lx_lapact_rgpv_rec.id;
8108 lp_lapact_rulv_rec.rule_information_category := 'LAPACT';
8109 lp_lapact_rulv_rec.dnz_chr_id := p_durv_rec.chr_id;
8110 lp_lapact_rulv_rec.rule_information1 := p_durv_rec.r_lapact_rule_information1;
8111 lp_lapact_rulv_rec.WARN_YN := 'N';
8112 lp_lapact_rulv_rec.STD_TEMPLATE_YN := 'N';
8113
8114 OKL_RULE_PUB.create_rule(
8115 p_api_version => p_api_version,
8116 p_init_msg_list => p_init_msg_list,
8117 x_return_status => x_return_status,
8118 x_msg_count => x_msg_count,
8119 x_msg_data => x_msg_data,
8120 p_rulv_rec => lp_lapact_rulv_rec,
8121 x_rulv_rec => lx_lapact_rulv_rec);
8122
8123 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
8124 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
8125 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
8126 RAISE OKC_API.G_EXCEPTION_ERROR;
8127 END IF;
8128
8129 x_durv_rec.r_lapact_id := lx_lapact_rulv_rec.id;
8130
8131 ELSIF (p_durv_rec.r_lapact_id IS NOT NULL ) THEN
8132
8133 lp_lapact_rulv_rec.id := p_durv_rec.r_lapact_id;
8134 lp_lapact_rulv_rec.rgp_id := lx_lapact_rgpv_rec.id;
8135 lp_lapact_rulv_rec.rule_information_category := 'LAPACT';
8136 lp_lapact_rulv_rec.dnz_chr_id := p_durv_rec.chr_id;
8137 lp_lapact_rulv_rec.rule_information1 := p_durv_rec.r_lapact_rule_information1;
8138 lp_lapact_rulv_rec.WARN_YN := 'N';
8139 lp_lapact_rulv_rec.STD_TEMPLATE_YN := 'N';
8140
8141 OKL_RULE_PUB.update_rule(
8142 p_api_version => p_api_version,
8143 p_init_msg_list => p_init_msg_list,
8144 x_return_status => x_return_status,
8145 x_msg_count => x_msg_count,
8146 x_msg_data => x_msg_data,
8147 p_rulv_rec => lp_lapact_rulv_rec,
8148 x_rulv_rec => lx_lapact_rulv_rec);
8149
8150 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
8151 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
8152 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
8153 RAISE OKC_API.G_EXCEPTION_ERROR;
8154 END IF;
8155
8156 END IF;
8157
8158 IF okl_context.get_okc_org_id IS NULL THEN
8159 l_chr_id := p_durv_rec.chr_id;
8160 okl_context.set_okc_org_context(p_chr_id => l_chr_id );
8161 END IF;
8162
8163 IF (p_durv_rec.program_contract_number IS NOT NULL OR old_khr_id IS NOT NULL) THEN
8164
8165 copy_rules(
8166 p_api_version => p_api_version,
8167 p_init_msg_list => p_init_msg_list,
8168 x_return_status => x_return_status,
8169 x_msg_count => x_msg_count,
8170 x_msg_data => x_msg_data,
8171 p_old_khr_id => old_khr_id,
8172 p_prog_override_yn => p_durv_rec.khr_generate_accrual_yn, -- program flag yn
8173 p_source_id => x_durv_rec.khr_khr_id, -- program id
8174 p_dest_id => p_durv_rec.chr_id,
8175 p_org_id => okl_context.get_okc_org_id,
8176 p_organization_id => okl_context.get_okc_organization_id
8177 );
8178
8179 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
8180 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
8181 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
8182 RAISE OKC_API.G_EXCEPTION_ERROR;
8183 END IF;
8184
8185 END IF;
8186
8187 End if; --close of release if block
8188 /*
8189 -- mvasudev, 08/17/2004
8190 -- Code change to enable Business Event
8191 */
8192 raise_business_event(p_chr_id => p_durv_rec.chr_id
8193 ,x_return_status => x_return_status);
8194 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
8195 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8196 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
8197 RAISE OKL_API.G_EXCEPTION_ERROR;
8198 END IF;
8199
8200 /*
8201 -- mvasudev, 08/17/2004
8202 -- END, Code change to enable Business Event
8203 */
8204
8205
8206 OKC_API.END_ACTIVITY(x_msg_count => x_msg_count, x_msg_data => x_msg_data);
8207
8208 EXCEPTION
8209 WHEN OKC_API.G_EXCEPTION_ERROR THEN
8210 x_return_status := OKC_API.HANDLE_EXCEPTIONS(
8211 p_api_name => l_api_name,
8212 p_pkg_name => g_pkg_name,
8213 p_exc_name => 'OKC_API.G_RET_STS_ERROR',
8214 x_msg_count => x_msg_count,
8215 x_msg_data => x_msg_data,
8216 p_api_type => g_api_type);
8217
8218 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
8219 x_return_status := OKC_API.HANDLE_EXCEPTIONS(
8220 p_api_name => l_api_name,
8221 p_pkg_name => g_pkg_name,
8222 p_exc_name => 'OKC_API.G_RET_STS_UNEXP_ERROR',
8223 x_msg_count => x_msg_count,
8224 x_msg_data => x_msg_data,
8225 p_api_type => g_api_type);
8226
8227 WHEN OTHERS THEN
8228 x_return_status := OKC_API.HANDLE_EXCEPTIONS(
8229 p_api_name => l_api_name,
8230 p_pkg_name => g_pkg_name,
8231 p_exc_name => 'OTHERS',
8232 x_msg_count => x_msg_count,
8233 x_msg_data => x_msg_data,
8234 p_api_type => g_api_type);
8235 END;
8236
8237 PROCEDURE load_deal(
8238 p_api_version IN NUMBER,
8239 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
8240 x_return_status OUT NOCOPY VARCHAR2,
8241 x_msg_count OUT NOCOPY NUMBER,
8242 x_msg_data OUT NOCOPY VARCHAR2,
8243 p_durv_rec IN deal_rec_type,
8244 x_durv_rec OUT NOCOPY deal_rec_type
8245 ) AS
8246
8247 l_api_name VARCHAR2(30) := 'load_deal';
8248 l_api_version CONSTANT NUMBER := 1.0;
8249
8250 l_template_yn OKC_K_HEADERS_B.TEMPLATE_YN%TYPE;
8251 l_chr_type OKC_K_HEADERS_B.CHR_TYPE%TYPE;
8252 l_contract_number OKC_K_HEADERS_B.CHR_TYPE%TYPE;
8253 l_object_code VARCHAR2(30) DEFAULT NULL;
8254
8255 l_ak_prompt AK_ATTRIBUTES_VL.attribute_label_long%TYPE;
8256 l_chr_id NUMBER;
8257 row_cnt NUMBER;
8258
8259 CURSOR l_load_hdr_csr IS
8260 SELECT id,
8261 contract_number,
8262 description,
8263 sts_code,
8264 start_date,
8265 end_date,
8266 term_duration,
8267 cust_po_number,
8268 inv_organization_id,
8269 authoring_org_id,
8270 generate_accrual_yn,
8271 syndicatable_yn,
8272 prefunding_eligible_yn,
8273 revolving_credit_yn,
8274 converted_account_yn,
8275 credit_act_yn,
8276 template_yn,
8277 date_signed,
8278 date_deal_transferred,
8279 accepted_date,
8280 expected_delivery_date,
8281 amd_code,
8282 deal_type,
8283 -- orig_system_reference1,
8284 -- orig_system_source_code,
8285 -- orig_system_id1,
8286 currency_code,
8287 pdt_id,
8288 khr_id
8289 FROM okl_k_headers_full_v
8290 WHERE id = p_durv_rec.chr_id;
8291
8292
8293 CURSOR l_vers_version_csr IS
8294 SELECT vers.major_version||'.'||vers.minor_version
8295 FROM okc_k_vers_numbers_v vers
8296 WHERE vers.chr_id = p_durv_rec.chr_id;
8297
8298 CURSOR l_gvr_csr(p_scs_code VARCHAR2) IS
8299 SELECT mla.contract_number, gvr.chr_id_referred, gvr.id
8300 FROM okl_k_headers_full_v mla, okc_governances_v gvr
8301 WHERE mla.id = gvr.chr_id_referred
8302 AND mla.scs_code = p_scs_code -- mla or cl
8303 AND gvr.chr_id = p_durv_rec.chr_id
8304 AND gvr.dnz_chr_id = p_durv_rec.chr_id;
8305
8306 CURSOR l_dff_rule_csr(p_rgd_code VARCHAR2, p_rule_information_category VARCHAR2) IS
8307 SELECT rgp.id, rul.id, rul.rule_information1
8308 FROM okc_rule_groups_v rgp, okc_rules_v rul
8309 WHERE rgp.id = rul.rgp_id
8310 AND rgp.rgd_code = p_rgd_code
8311 AND rul.rule_information_category = p_rule_information_category
8312 AND rul.dnz_chr_id = p_durv_rec.chr_id
8313 AND rgp.dnz_chr_id = p_durv_rec.chr_id
8314 AND rgp.chr_id = p_durv_rec.chr_id;
8315
8316 CURSOR l_party_csr(p_rle_code VARCHAR2) IS
8317 --Start modified abhsaxen for performance SQLID 20563248
8318 SELECT cpl.id,cpl.object1_id1,cpl.object1_id2,cpl.jtot_object1_code
8319 FROM okc_k_party_roles_B cpl
8320 WHERE cpl.rle_code = p_rle_code
8321 AND cpl.chr_id = p_durv_rec.chr_id
8322 AND cpl.dnz_chr_id = p_durv_rec.chr_id
8323 --end modified abhsaxen for performance SQLID 20563248
8324 ;
8325 CURSOR l_customer_account_csr IS
8326 SELECT rgp.id, rul.id, rul.object1_id1,rul.object1_id2,rul.jtot_object1_code
8327 FROM okc_rule_groups_v rgp, okc_rules_v rul
8328 WHERE rgp.id = rul.rgp_id
8329 AND rgp.rgd_code = 'LACAN'
8330 AND rul.rule_information_category = 'CAN'
8331 AND rul.dnz_chr_id = p_durv_rec.chr_id
8332 AND rgp.dnz_chr_id = p_durv_rec.chr_id
8333 AND rgp.chr_id = p_durv_rec.chr_id;
8334
8335 CURSOR l_legal_address_csr(p_cust_id1 VARCHAR2) IS
8336 SELECT cust_site.description
8337 FROM okx_cust_site_uses_v cust_site
8338 WHERE cust_site.party_id = p_cust_id1
8339 AND cust_site.site_use_code = 'LEGAL';
8340
8341 CURSOR l_product_csr(product_id NUMBER) IS
8342 SELECT id,name,description
8343 FROM okl_products_v
8344 WHERE id = product_id;
8345
8346 CURSOR l_currency_csr(p_currency_code VARCHAR2) IS
8347 SELECT currency_code, name
8348 FROM fnd_currencies_vl
8349 WHERE currency_code = p_currency_code;
8350
8351 CURSOR l_program_csr(program_id NUMBER) IS
8352 SELECT id,contract_number
8353 FROM okl_k_headers_full_v
8354 WHERE id = program_id;
8355
8356 CURSOR l_contact_csr IS
8357 --Start modified abhsaxen for performance SQLID 20563327
8358 select ctc.id,ctc.object1_id1,ctc.object1_id2,ctc.jtot_object1_code
8359 from okc_k_party_roles_b cpl, okc_contacts ctc
8360 where cpl.id = ctc.cpl_id
8361 and cpl.rle_code = 'LESSOR'
8362 and ctc.cro_code = 'SALESPERSON'
8363 and cpl.chr_id = p_durv_rec.chr_id
8364 and cpl.dnz_chr_id = p_durv_rec.chr_id
8365 and ctc.dnz_chr_id = p_durv_rec.chr_id
8366 --end modified abhsaxen for performance SQLID 20563327
8367 ;
8368
8369 CURSOR l_sts_code_csr IS
8370 SELECT CHR.sts_code
8371 FROM OKC_STATUSES_B sts,okc_k_headers_v CHR
8372 WHERE STS.CODE = CHR.STS_CODE
8373 AND CHR.id = p_durv_rec.chr_id;
8374
8375
8376 BEGIN
8377
8378 IF okl_context.get_okc_org_id IS NULL THEN
8379 l_chr_id := p_durv_rec.chr_id;
8380 okl_context.set_okc_org_context(p_chr_id => l_chr_id );
8381 END IF;
8382
8383 x_return_status := OKC_API.START_ACTIVITY(
8384 p_api_name => l_api_name,
8385 p_pkg_name => g_pkg_name,
8386 p_init_msg_list => p_init_msg_list,
8387 l_api_version => l_api_version,
8388 p_api_version => p_api_version,
8389 p_api_type => g_api_type,
8390 x_return_status => x_return_status);
8391
8392 -- check if activity started successfully
8393 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
8394 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
8395 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
8396 RAISE OKC_API.G_EXCEPTION_ERROR;
8397 END IF;
8398 /*
8399 open l_load_hdr_csr;
8400 fetch l_load_hdr_csr into x_durv_rec.chr_id,
8401 x_durv_rec.chr_contract_number,
8402 x_durv_rec.chr_description,
8403 x_durv_rec.chr_sts_code,
8404 x_durv_rec.chr_start_date,
8405 x_durv_rec.chr_end_date,
8406 x_durv_rec.khr_term_duration,
8407 x_durv_rec.chr_cust_po_number,
8408 x_durv_rec.chr_inv_organization_id,
8409 x_durv_rec.chr_authoring_org_id,
8410 x_durv_rec.khr_generate_accrual_yn,
8411 x_durv_rec.khr_syndicatable_yn,
8412 x_durv_rec.khr_prefunding_eligible_yn,
8413 x_durv_rec.khr_revolving_credit_yn,
8414 x_durv_rec.khr_converted_account_yn,
8415 x_durv_rec.khr_credit_act_yn,
8416 x_durv_rec.chr_template_yn,
8417 x_durv_rec.chr_date_signed,
8418 x_durv_rec.khr_date_deal_transferred,
8419 x_durv_rec.khr_accepted_date,
8420 x_durv_rec.khr_expected_delivery_date,
8421 x_durv_rec.khr_amd_code,
8422 x_durv_rec.khr_deal_type,
8423 -- x_durv_rec.chr_orig_system_reference1,
8424 -- x_durv_rec.chr_orig_system_source_code,
8425 -- x_durv_rec.chr_orig_system_id1,
8426 x_durv_rec.chr_currency_code,
8427 x_durv_rec.khr_pdt_id,
8428 x_durv_rec.khr_khr_id;
8429 close l_load_hdr_csr;
8430
8431 open l_vers_version_csr;
8432 fetch l_vers_version_csr into x_durv_rec.vers_version;
8433 close l_vers_version_csr;
8434
8435 open l_gvr_csr('MASTER_LEASE');
8436 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;
8437 close l_gvr_csr;
8438
8439 open l_gvr_csr('CREDITLINE_CONTRACT');
8440 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;
8441 close l_gvr_csr;
8442
8443 open l_dff_rule_csr('LARLES','LARLES');
8444 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;
8445 close l_dff_rule_csr;
8446
8447 open l_dff_rule_csr('LANNTF','LANNTF');
8448 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;
8449 close l_dff_rule_csr;
8450
8451 open l_dff_rule_csr('LATOWN','LATOWN');
8452 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;
8453 close l_dff_rule_csr;
8454
8455 open l_dff_rule_csr('LAPACT','LAPACT');
8456 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;
8457 close l_dff_rule_csr;
8458
8459 open l_dff_rule_csr('LAREBL','LAREBL');
8460 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;
8461 close l_dff_rule_csr;
8462
8463 open l_dff_rule_csr('LACPLN','LACPLN');
8464 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;
8465 close l_dff_rule_csr;
8466
8467 open l_party_csr('LESSEE');
8468 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;
8469 close l_party_csr;
8470
8471 open l_party_csr('LESSOR');
8472 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;
8473 close l_party_csr;
8474
8475 open l_customer_account_csr;
8476 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;
8477 close l_customer_account_csr;
8478
8479 open l_legal_address_csr(x_durv_rec.cust_object1_id1);
8480 fetch l_legal_address_csr into x_durv_rec.cust_site_description;
8481 close l_legal_address_csr;
8482
8483 open l_product_csr(x_durv_rec.khr_pdt_id);
8484 fetch l_product_csr into x_durv_rec.khr_pdt_id,x_durv_rec.product_name,x_durv_rec.product_description;
8485 close l_product_csr;
8486
8487 open l_currency_csr(x_durv_rec.chr_currency_code);
8488 fetch l_currency_csr into x_durv_rec.chr_currency_code, x_durv_rec.currency_name;
8489 close l_currency_csr;
8490
8491 open l_program_csr(x_durv_rec.khr_khr_id);
8492 fetch l_program_csr into x_durv_rec.khr_khr_id,x_durv_rec.program_contract_number;
8493 close l_program_csr;
8494
8495 open l_contact_csr;
8496 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;
8497 close l_contact_csr;
8498 */
8499 /*
8500 open l_set_of_books_csr;
8501 fetch l_set_of_books_csr into x_durv_rec.books_short_name,x_durv_rec.oper_units_name;
8502 close l_set_of_books_csr;
8503 */
8504 /*
8505 open l_sts_code_csr;
8506 fetch l_sts_code_csr into x_durv_rec.chr_sts_code;
8507 close l_sts_code_csr;
8508 */
8509 OKC_API.END_ACTIVITY(x_msg_count => x_msg_count, x_msg_data => x_msg_data);
8510
8511 EXCEPTION
8512 WHEN OKC_API.G_EXCEPTION_ERROR THEN
8513 x_return_status := OKC_API.HANDLE_EXCEPTIONS(
8514 p_api_name => l_api_name,
8515 p_pkg_name => g_pkg_name,
8516 p_exc_name => 'OKC_API.G_RET_STS_ERROR',
8517 x_msg_count => x_msg_count,
8518 x_msg_data => x_msg_data,
8519 p_api_type => g_api_type);
8520
8521 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
8522 x_return_status := OKC_API.HANDLE_EXCEPTIONS(
8523 p_api_name => l_api_name,
8524 p_pkg_name => g_pkg_name,
8525 p_exc_name => 'OKC_API.G_RET_STS_UNEXP_ERROR',
8526 x_msg_count => x_msg_count,
8527 x_msg_data => x_msg_data,
8528 p_api_type => g_api_type);
8529
8530 WHEN OTHERS THEN
8531 x_return_status := OKC_API.HANDLE_EXCEPTIONS(
8532 p_api_name => l_api_name,
8533 p_pkg_name => g_pkg_name,
8534 p_exc_name => 'OTHERS',
8535 x_msg_count => x_msg_count,
8536 x_msg_data => x_msg_data,
8537 p_api_type => g_api_type);
8538 END;
8539
8540
8541 Procedure confirm_cancel_contract
8542 (p_api_version IN NUMBER,
8543 p_init_msg_list IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
8544 x_return_status OUT NOCOPY VARCHAR2,
8545 x_msg_count OUT NOCOPY NUMBER,
8546 x_msg_data OUT NOCOPY VARCHAR2,
8547 p_contract_id IN NUMBER,
8548 p_contract_number IN VARCHAR2) AS
8549
8550 l_return_status VARCHAR2(1) default OKL_API.G_RET_STS_SUCCESS;
8551 l_api_name CONSTANT varchar2(30) := 'confirm_cancel_contract';
8552 l_api_version CONSTANT NUMBER := 1.0;
8553
8554 Begin
8555 x_return_status := OKL_API.G_RET_STS_SUCCESS;
8556 -- Call start_activity to create savepoint, check compatibility
8557 -- and initialize message list
8558 x_return_status := OKL_API.START_ACTIVITY (
8559 l_api_name
8560 ,p_init_msg_list
8561 ,'_PVT'
8562 ,x_return_status);
8563 -- Check if activity started successfully
8564 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
8565 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8566 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
8567 RAISE OKL_API.G_EXCEPTION_ERROR;
8568 END IF;
8569
8570 okl_maintain_contract_pvt.confirm_cancel_contract(
8571 p_api_version => p_api_version,
8572 p_init_msg_list => p_init_msg_list,
8573 x_return_status => x_return_status,
8574 x_msg_count => x_msg_count,
8575 x_msg_data => x_msg_data,
8576 p_contract_id => p_contract_id,
8577 p_new_contract_number => p_contract_number);
8578
8579 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
8580 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8581 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
8582 RAISE OKL_API.G_EXCEPTION_ERROR;
8583 END IF;
8584
8585 OKL_API.END_ACTIVITY (x_msg_count,x_msg_data );
8586
8587 EXCEPTION
8588 WHEN OKL_API.G_EXCEPTION_ERROR THEN
8589 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
8590 l_api_name,
8591 G_PKG_NAME,
8592 'OKL_API.G_RET_STS_ERROR',
8593 x_msg_count,
8594 x_msg_data,
8595 '_PVT');
8596 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
8597 x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
8598 l_api_name,
8599 G_PKG_NAME,
8600 'OKL_API.G_RET_STS_UNEXP_ERROR',
8601 x_msg_count,
8602 x_msg_data,
8603 '_PVT');
8604 WHEN OTHERS THEN
8605 x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
8606 l_api_name,
8607 G_PKG_NAME,
8608 'OTHERS',
8609 x_msg_count,
8610 x_msg_data,
8611 '_PVT');
8612
8613 end;
8614
8615 Procedure copy_lease_contract
8616 (p_api_version IN NUMBER,
8617 p_init_msg_list IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
8618 x_return_status OUT NOCOPY VARCHAR2,
8619 x_msg_count OUT NOCOPY NUMBER,
8620 x_msg_data OUT NOCOPY VARCHAR2,
8621 p_contract_number IN VARCHAR2,
8622 p_source_chr_id IN NUMBER,
8623 x_chr_id OUT NOCOPY NUMBER) AS
8624
8625 l_return_status VARCHAR2(1) default OKL_API.G_RET_STS_SUCCESS;
8626 l_api_name CONSTANT varchar2(30) := 'copy_lease_contract';
8627 l_api_version CONSTANT NUMBER := 1.0;
8628
8629 Begin
8630 x_return_status := OKL_API.G_RET_STS_SUCCESS;
8631 -- Call start_activity to create savepoint, check compatibility
8632 -- and initialize message list
8633 x_return_status := OKL_API.START_ACTIVITY (
8634 l_api_name
8635 ,p_init_msg_list
8636 ,'_PVT'
8637 ,x_return_status);
8638 -- Check if activity started successfully
8639 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
8640 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8641 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
8642 RAISE OKL_API.G_EXCEPTION_ERROR;
8643 END IF;
8644
8645 OKL_COPY_CONTRACT_PUB.copy_lease_contract_new(
8646 p_api_version => p_api_version,
8647 p_init_msg_list => p_init_msg_list,
8648 x_return_status => x_return_status,
8649 x_msg_count => x_msg_count,
8650 x_msg_data => x_msg_data,
8651 p_chr_id => p_source_chr_id,
8652 p_contract_number => p_contract_number,
8653 p_contract_number_modifier => NULL,
8654 p_renew_ref_yn => OKL_API.G_FALSE,
8655 p_trans_type => 'CFA',
8656 x_chr_id => x_chr_id);
8657
8658 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
8659 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8660 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
8661 RAISE OKL_API.G_EXCEPTION_ERROR;
8662 END IF;
8663
8664 OKL_API.END_ACTIVITY (x_msg_count,x_msg_data );
8665
8666 EXCEPTION
8667 WHEN OKL_API.G_EXCEPTION_ERROR THEN
8668 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
8669 l_api_name,
8670 G_PKG_NAME,
8671 'OKL_API.G_RET_STS_ERROR',
8672 x_msg_count,
8673 x_msg_data,
8674 '_PVT');
8675 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
8676 x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
8677 l_api_name,
8678 G_PKG_NAME,
8679 'OKL_API.G_RET_STS_UNEXP_ERROR',
8680 x_msg_count,
8681 x_msg_data,
8682 '_PVT');
8683 WHEN OTHERS THEN
8684 x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
8685 l_api_name,
8686 G_PKG_NAME,
8687 'OTHERS',
8688 x_msg_count,
8689 x_msg_data,
8690 '_PVT');
8691
8692 end;
8693
8694 PROCEDURE create_party(
8695 p_api_version IN NUMBER,
8696 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
8697 x_return_status OUT NOCOPY VARCHAR2,
8698 x_msg_count OUT NOCOPY NUMBER,
8699 x_msg_data OUT NOCOPY VARCHAR2,
8700 p_kpl_rec IN party_rec_type,
8701 x_kpl_rec OUT NOCOPY party_rec_type
8702 ) AS
8703
8704 l_return_status VARCHAR2(1) default OKL_API.G_RET_STS_SUCCESS;
8705 l_api_name CONSTANT varchar2(30) := 'create_party';
8706 l_api_version CONSTANT NUMBER := 1.0;
8707
8708 lp_cplv_rec OKL_OKC_MIGRATION_PVT.cplv_rec_type;
8709 lx_cplv_rec OKL_OKC_MIGRATION_PVT.cplv_rec_type;
8710 lp_kplv_rec okl_k_party_roles_pvt.kplv_rec_type;
8711 lx_kplv_rec okl_k_party_roles_pvt.kplv_rec_type;
8712
8713 Begin
8714 x_return_status := OKL_API.G_RET_STS_SUCCESS;
8715 -- Call start_activity to create savepoint, check compatibility
8716 -- and initialize message list
8717 x_return_status := OKL_API.START_ACTIVITY (
8718 l_api_name
8719 ,p_init_msg_list
8720 ,'_PVT'
8721 ,x_return_status);
8722 -- Check if activity started successfully
8723 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
8724 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8725 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
8726 RAISE OKL_API.G_EXCEPTION_ERROR;
8727 END IF;
8728
8729 lp_cplv_rec.id := p_kpl_rec.id;
8730 lp_cplv_rec.object1_id1 := p_kpl_rec.object1_id1;
8731 lp_cplv_rec.object1_id2 := p_kpl_rec.object1_id2;
8732 lp_cplv_rec.jtot_object1_code := p_kpl_rec.jtot_object1_code;
8733 lp_cplv_rec.rle_code := p_kpl_rec.rle_code;
8734 lp_cplv_rec.dnz_chr_id := p_kpl_rec.dnz_chr_id;
8735 lp_cplv_rec.chr_id := p_kpl_rec.chr_id;
8736 lp_cplv_rec.cognomen:= p_kpl_rec.cognomen;
8737 lp_cplv_rec.alias:= p_kpl_rec.alias;
8738 lp_kplv_rec.attribute_category := p_kpl_rec.attribute_category;
8739 lp_kplv_rec.attribute1 := p_kpl_rec.attribute1;
8740 lp_kplv_rec.attribute2 := p_kpl_rec.attribute2;
8741 lp_kplv_rec.attribute3 := p_kpl_rec.attribute3;
8742 lp_kplv_rec.attribute4 := p_kpl_rec.attribute4;
8743 lp_kplv_rec.attribute5 := p_kpl_rec.attribute5;
8744 lp_kplv_rec.attribute6 := p_kpl_rec.attribute6;
8745 lp_kplv_rec.attribute7 := p_kpl_rec.attribute7;
8746 lp_kplv_rec.attribute8 := p_kpl_rec.attribute8;
8747 lp_kplv_rec.attribute9 := p_kpl_rec.attribute9;
8748 lp_kplv_rec.attribute10 := p_kpl_rec.attribute10;
8749 lp_kplv_rec.attribute11 := p_kpl_rec.attribute11;
8750 lp_kplv_rec.attribute12 := p_kpl_rec.attribute12;
8751 lp_kplv_rec.attribute13 := p_kpl_rec.attribute13;
8752 lp_kplv_rec.attribute14 := p_kpl_rec.attribute14;
8753 lp_kplv_rec.attribute15 := p_kpl_rec.attribute15;
8754
8755 IF(p_kpl_rec.rle_code IS NOT NULL AND
8756 NOT (p_kpl_rec.rle_code = 'LESSEE' OR p_kpl_rec.rle_code = 'LESSOR')) THEN
8757 lp_kplv_rec.validate_dff_yn := 'Y';
8758 END IF;
8759
8760 okl_k_party_roles_pvt.create_k_party_role(
8761 p_api_version => p_api_version,
8762 p_init_msg_list => p_init_msg_list,
8763 x_return_status => x_return_status,
8764 x_msg_count => x_msg_count,
8765 x_msg_data => x_msg_data,
8766 p_cplv_rec => lp_cplv_rec,
8767 x_cplv_rec => lx_cplv_rec,
8768 p_kplv_rec => lp_kplv_rec,
8769 x_kplv_rec => lx_kplv_rec);
8770
8771 x_kpl_rec.id := lx_cplv_rec.id;
8772
8773 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
8774 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8775 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
8776 RAISE OKL_API.G_EXCEPTION_ERROR;
8777 END IF;
8778
8779 OKL_API.END_ACTIVITY (x_msg_count,x_msg_data );
8780
8781 EXCEPTION
8782 WHEN OKL_API.G_EXCEPTION_ERROR THEN
8783 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
8784 l_api_name,
8785 G_PKG_NAME,
8786 'OKL_API.G_RET_STS_ERROR',
8787 x_msg_count,
8788 x_msg_data,
8789 '_PVT');
8790 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
8791 x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
8792 l_api_name,
8793 G_PKG_NAME,
8794 'OKL_API.G_RET_STS_UNEXP_ERROR',
8795 x_msg_count,
8796 x_msg_data,
8797 '_PVT');
8798 WHEN OTHERS THEN
8799 x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
8800 l_api_name,
8801 G_PKG_NAME,
8802 'OTHERS',
8803 x_msg_count,
8804 x_msg_data,
8805 '_PVT');
8806
8807 end;
8808
8809 PROCEDURE update_party(
8810 p_api_version IN NUMBER,
8811 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
8812 x_return_status OUT NOCOPY VARCHAR2,
8813 x_msg_count OUT NOCOPY NUMBER,
8814 x_msg_data OUT NOCOPY VARCHAR2,
8815 p_kpl_rec IN party_rec_type,
8816 x_kpl_rec OUT NOCOPY party_rec_type
8817 ) AS
8818
8819 l_return_status VARCHAR2(1) default OKL_API.G_RET_STS_SUCCESS;
8820 l_api_name CONSTANT varchar2(30) := 'update_party';
8821 l_api_version CONSTANT NUMBER := 1.0;
8822
8823 lp_cplv_rec OKL_OKC_MIGRATION_PVT.cplv_rec_type;
8824 lx_cplv_rec OKL_OKC_MIGRATION_PVT.cplv_rec_type;
8825 lp_kplv_rec okl_k_party_roles_pvt.kplv_rec_type;
8826 lx_kplv_rec okl_k_party_roles_pvt.kplv_rec_type;
8827
8828 Begin
8829 x_return_status := OKL_API.G_RET_STS_SUCCESS;
8830 -- Call start_activity to create savepoint, check compatibility
8831 -- and initialize message list
8832 x_return_status := OKL_API.START_ACTIVITY (
8833 l_api_name
8834 ,p_init_msg_list
8835 ,'_PVT'
8836 ,x_return_status);
8837 -- Check if activity started successfully
8838 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
8839 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8840 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
8841 RAISE OKL_API.G_EXCEPTION_ERROR;
8842 END IF;
8843
8844 lp_cplv_rec.id := p_kpl_rec.id;
8845 lp_cplv_rec.object1_id1 := p_kpl_rec.object1_id1;
8846 lp_cplv_rec.object1_id2 := p_kpl_rec.object1_id2;
8847 lp_cplv_rec.rle_code := p_kpl_rec.rle_code;
8848 lp_cplv_rec.dnz_chr_id := p_kpl_rec.dnz_chr_id;
8849 lp_cplv_rec.chr_id := p_kpl_rec.chr_id;
8850 lp_cplv_rec.cognomen:= p_kpl_rec.cognomen;
8851 lp_cplv_rec.alias:= p_kpl_rec.alias;
8852 lp_kplv_rec.attribute_category := p_kpl_rec.attribute_category;
8853 lp_kplv_rec.attribute1 := p_kpl_rec.attribute1;
8854 lp_kplv_rec.attribute2 := p_kpl_rec.attribute2;
8855 lp_kplv_rec.attribute3 := p_kpl_rec.attribute3;
8856 lp_kplv_rec.attribute4 := p_kpl_rec.attribute4;
8857 lp_kplv_rec.attribute5 := p_kpl_rec.attribute5;
8858 lp_kplv_rec.attribute6 := p_kpl_rec.attribute6;
8859 lp_kplv_rec.attribute7 := p_kpl_rec.attribute7;
8860 lp_kplv_rec.attribute8 := p_kpl_rec.attribute8;
8861 lp_kplv_rec.attribute9 := p_kpl_rec.attribute9;
8862 lp_kplv_rec.attribute10 := p_kpl_rec.attribute10;
8863 lp_kplv_rec.attribute11 := p_kpl_rec.attribute11;
8864 lp_kplv_rec.attribute12 := p_kpl_rec.attribute12;
8865 lp_kplv_rec.attribute13 := p_kpl_rec.attribute13;
8866 lp_kplv_rec.attribute14 := p_kpl_rec.attribute14;
8867 lp_kplv_rec.attribute15 := p_kpl_rec.attribute15;
8868 lp_kplv_rec.validate_dff_yn := 'Y';
8869
8870 okl_k_party_roles_pvt.update_k_party_role(
8871 p_api_version => p_api_version,
8872 p_init_msg_list => p_init_msg_list,
8873 x_return_status => x_return_status,
8874 x_msg_count => x_msg_count,
8875 x_msg_data => x_msg_data,
8876 p_cplv_rec => lp_cplv_rec,
8877 x_cplv_rec => lx_cplv_rec,
8878 p_kplv_rec => lp_kplv_rec,
8879 x_kplv_rec => lx_kplv_rec);
8880
8881
8882 x_kpl_rec.id := lx_cplv_rec.id;
8883
8884 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
8885 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8886 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
8887 RAISE OKL_API.G_EXCEPTION_ERROR;
8888 END IF;
8889
8890 OKL_API.END_ACTIVITY (x_msg_count,x_msg_data );
8891
8892 EXCEPTION
8893 WHEN OKL_API.G_EXCEPTION_ERROR THEN
8894 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
8895 l_api_name,
8896 G_PKG_NAME,
8897 'OKL_API.G_RET_STS_ERROR',
8898 x_msg_count,
8899 x_msg_data,
8900 '_PVT');
8901 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
8902 x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
8903 l_api_name,
8904 G_PKG_NAME,
8905 'OKL_API.G_RET_STS_UNEXP_ERROR',
8906 x_msg_count,
8907 x_msg_data,
8908 '_PVT');
8909 WHEN OTHERS THEN
8910 x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
8911 l_api_name,
8912 G_PKG_NAME,
8913 'OTHERS',
8914 x_msg_count,
8915 x_msg_data,
8916 '_PVT');
8917
8918 end;
8919
8920
8921 PROCEDURE load_deal(
8922 p_api_version IN NUMBER,
8923 p_init_msg_list IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
8924 x_return_status OUT NOCOPY VARCHAR2,
8925 x_msg_count OUT NOCOPY NUMBER,
8926 x_msg_data OUT NOCOPY VARCHAR2,
8927 p_chr_id IN NUMBER,
8928 x_deal_values_rec OUT NOCOPY deal_values_rec
8929 ) IS
8930
8931 l_return_status VARCHAR2(1) default OKL_API.G_RET_STS_SUCCESS;
8932 l_api_name CONSTANT VARCHAR2(30) := 'load_deal';
8933 l_api_version CONSTANT NUMBER := 1.0;
8934
8935 CURSOR c_hdr_full_uv(p_chr_id OKC_K_HEADERS_ALL_B.ID%TYPE) IS
8936 SELECT *
8937 FROM okl_k_hdrs_full_uv
8938 WHERE chr_id = p_chr_id;
8939
8940 l_hdr_uv_rec c_hdr_full_uv%ROWTYPE;
8941
8942 CURSOR c_hdr_full_v(p_chr_id OKC_K_HEADERS_ALL_B.ID%TYPE) IS
8943 SELECT *
8944 FROM okl_k_headers_full_v
8945 WHERE id = p_chr_id;
8946
8947 l_hdr_rec c_hdr_full_v%ROWTYPE;
8948
8949 CURSOR c_okc_hdr(p_chr_id OKC_K_HEADERS_ALL_B.ID%TYPE) IS
8950 SELECT contract_number
8951 FROM okc_k_headers_all_b
8952 WHERE id = p_chr_id;
8953
8954 CURSOR c_bill_to_site(p_site_use_id NUMBER) IS
8955 SELECT description
8956 FROM okl_la_bill_to_uv
8957 WHERE id1 = p_site_use_id;
8958
8959 CURSOR c_gvr_data(p_scs_code VARCHAR2,
8960 p_chr_id NUMBER,
8961 p_dnz_chr_id NUMBER) IS
8962 SELECT mla.contract_number,gvr.chr_id_referred,gvr.id
8963 FROM okl_k_headers_full_v mla,
8964 okc_governances_v gvr
8965 WHERE mla.id = gvr.chr_id_referred
8966 AND mla.scs_code = p_scs_code
8967 AND gvr.dnz_chr_id = p_dnz_chr_id
8968 AND gvr.chr_id = p_chr_id;
8969
8970 CURSOR c_ledger(p_chr_id NUMBER, p_organization_id NUMBER) IS
8971 -- start:| 21-Nov-2008 cklee Bug 7569200 -- Fixed display LEDGER NAME issue |
8972 -- SELECT bks.ledger_id,bks.short_name,ou.name
8973 SELECT bks.ledger_id,bks.name,ou.name
8974 -- end:| 21-Nov-2008 cklee Bug 7569200 -- Fixed display LEDGER NAME issue |
8975
8976 FROM gl_ledgers_public_v bks,
8977 hr_operating_units ou,
8978 okc_k_headers_b chr
8979 WHERE bks.ledger_id = ou.set_of_books_id
8980 AND ou.organization_id = chr.authoring_org_id
8981 AND chr.authoring_org_id = p_organization_id
8982 AND chr.id = p_chr_id;
8983
8984 --start| 27-Jun-2008 cklee Bug 6957971 |
8985 /*cklee 06/27/08
8986 CURSOR c_legal_address(p_party_id NUMBER) IS
8987 SELECT cust_site.description
8988 FROM okx_cust_site_uses_v cust_site
8989 WHERE cust_site.party_id = p_party_id
8990 AND cust_site.site_use_code = 'LEGAL';
8991 */
8992 -- Each account may have one primary legal address (purpose = Legal)
8993 -- So when there have multiple accounts for the customer, we need
8994 -- to add additional cust_account_id as a key to retrieve specific
8995 -- legal address for the account
8996 CURSOR c_legal_address(p_party_id NUMBER, cp_cust_acct_id NUMBER) IS
8997 SELECT cust_site.description
8998 FROM okx_cust_site_uses_v cust_site
8999 WHERE cust_site.party_id = p_party_id
9000 AND cust_site.cust_account_id = cp_cust_acct_id
9001 AND cust_site.site_use_code = 'LEGAL';
9002 --end| 27-Jun-2008 cklee Bug 6957971 |
9003
9004 CURSOR c_le_name(cp_legal_entity_id NUMBER) IS
9005 SELECT name
9006 FROM xle_entity_profiles
9007 WHERE legal_entity_id = cp_legal_entity_id;
9008
9009 CURSOR c_quote_name(p_chr_orig_system_id1 NUMBER) IS
9010 SELECT lsq.reference_number
9011 FROM okl_lease_quotes_b lsq
9012 WHERE LSQ.parent_object_id = p_chr_orig_system_id1
9013 AND lsq.status = 'CT-ACCEPTED';
9014
9015 CURSOR c_program_template_name(p_orig_system_id1 NUMBER, p_khr_khr_id NUMBER) IS
9016 SELECT chr.contract_number
9017 FROM okl_k_headers_full_v chr
9018 WHERE chr.id = p_orig_system_id1
9019 AND chr.template_type_code = 'PROGRAM'
9020 AND NVL(chr.template_yn,'N') = 'Y'
9021 AND EXISTS(SELECT 1
9022 FROM okl_vp_associations vpaso
9023 WHERE vpaso.chr_id = p_khr_khr_id
9024 AND vpaso.assoc_object_id = p_orig_system_id1
9025 AND vpaso.assoc_object_type_code = 'LC_TEMPLATE');
9026
9027 CURSOR c_orig_lease_application(p_orig_syststem_id1 NUMBER) IS
9028 SELECT LAP.reference_number
9029 FROM OKL_LEASE_APPLICATIONS_B LAP,
9030 OKL_LEASE_APPLICATIONS_TL LAPT
9031 WHERE LAP.id = LAPT.id
9032 AND LAPT.LANGUAGE = USERENV('LANG')
9033 AND lap.id = p_orig_syststem_id1;
9034
9035 CURSOR c_cust_name(cp_party_id NUMBER) IS
9036 SELECT hp.party_name
9037 FROM hz_parties hp
9038 WHERE hp.party_id = cp_party_id;
9039
9040 CURSOR c_cust_acct_num_csr(cp_cust_acct_id NUMBER)IS
9041 SELECT account_number
9042 FROM hz_Cust_Accounts
9043 WHERE cust_account_id = cp_cust_acct_id;
9044
9045 CURSOR c_salesrep(p_salesrep_id NUMBER) IS
9046 SELECT name
9047 FROM okx_salesreps_v
9048 WHERE id1 = p_salesrep_id;
9049
9050 CURSOR c_prompt_name IS
9051 SELECT rdef.rule_code,col.form_left_prompt
9052 FROM fnd_descr_flex_col_usage_vl col,
9053 okc_rule_defs_v rdef
9054 WHERE col.application_id = rdef.application_id
9055 AND col.descriptive_flexfield_name=rdef.descriptive_flexfield_name
9056 AND col.descriptive_flex_context_code=rdef.rule_code
9057 AND rdef.rule_code in ('LACPLN','LANNTF','LAREBL','LARLES','LATOWN','LAPACT');
9058
9059 BEGIN
9060 x_return_status := OKL_API.G_RET_STS_SUCCESS;
9061 -- Call start_activity to create savepoint, check compatibility
9062 -- and initialize message list
9063 x_return_status := OKL_API.START_ACTIVITY (
9064 l_api_name
9065 ,p_init_msg_list
9066 ,'_PVT'
9067 ,x_return_status);
9068 -- Check if activity started successfully
9069 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
9070 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9071 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
9072 RAISE OKL_API.G_EXCEPTION_ERROR;
9073 END IF;
9074
9075 OPEN c_hdr_full_uv(p_chr_id);
9076 FETCH c_hdr_full_uv INTO l_hdr_uv_rec;
9077
9078 OPEN c_hdr_full_v(p_chr_id);
9079 FETCH c_hdr_full_v INTO l_hdr_rec;
9080
9081 X_DEAL_VALUES_REC.ACCEPTANCE_METHOD_MEANING := OKL_LLA_UTIL_PVT.GET_LOOKUP_MEANING('OKL_ACCEPTANCE_METHOD',L_HDR_UV_REC.KHR_AMD_CODE);
9082 X_DEAL_VALUES_REC.ASSIGNABLE_MEANING := OKL_LLA_UTIL_PVT.GET_LOOKUP_MEANING('OKL_YES_NO',l_HDR_UV_REC.KHR_ASSIGNABLE_YN);
9083 X_DEAL_VALUES_REC.BILL_TO_SITE_USE_ID := L_HDR_REC.BILL_TO_SITE_USE_ID;
9084
9085 OPEN c_bill_to_site(l_HDR_REC.BILL_TO_SITE_USE_ID);
9086 FETCH c_bill_to_site INTO X_DEAL_VALUES_REC.BILL_TO_ADDRESS_DESC;
9087 CLOSE c_bill_to_site;
9088
9089 X_DEAL_VALUES_REC.BOOK_CLASS_MEANING := OKL_LLA_UTIL_PVT.GET_LOOKUP_MEANING('OKL_BOOK_CLASS',L_HDR_UV_REC.KHR_DEAL_TYPE);
9090 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);
9091 X_DEAL_VALUES_REC.CAP_INTERIM_INT_RGD_CODE := 'LACPLN';
9092 X_DEAL_VALUES_REC.CAP_INTERIM_INT_RGP_ID := L_HDR_UV_REC.RG_LACPLN_ID;
9093 X_DEAL_VALUES_REC.CAP_INTERIM_INT_RUL_ID := L_HDR_UV_REC.R_LACPLN_ID;
9094 X_DEAL_VALUES_REC.CAP_INTERIM_INT_RUL_INF1 := L_HDR_UV_REC.R_LACPLN_RULE_INFORMATION1;
9095 X_DEAL_VALUES_REC.CAP_INTERIM_INT_RUL_INF_CAT := 'LACPLN';
9096 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);
9097 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);
9098
9099 OPEN c_gvr_data('CREDITLINE_CONTRACT',L_HDR_UV_REC.CHR_ID,L_HDR_UV_REC.CHR_ID);
9100 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;
9101 CLOSE c_gvr_data;
9102
9103 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);
9104
9105 -- splitting the customer name and customer account number cursors to support
9106 -- ui query to show customer name without customer account.
9107 OPEN c_cust_name(L_HDR_UV_REC.CUST_OBJECT1_ID1);
9108 FETCH c_cust_name INTO X_DEAL_VALUES_REC.CUSTOMER_NAME;
9109 CLOSE c_cust_name;
9110
9111 OPEN c_cust_acct_num_csr(L_HDR_UV_REC.CHR_CUST_ACCT_ID);
9112 FETCH c_cust_acct_num_csr INTO X_DEAL_VALUES_REC.CUSTOMER_ACCOUNT;
9113 CLOSE c_cust_acct_num_csr;
9114
9115 X_DEAL_VALUES_REC.CUSTOMER_CPL_ID := L_HDR_UV_REC.CUST_ID;
9116 IF(L_HDR_UV_REC.CUST_JTOT_OBJECT1_CODE IS NULL)THEN
9117 X_DEAL_VALUES_REC.CUSTOMER_JTOT_OBJECT1_CODE := 'OKX_PARTY';
9118 ELSE
9119 X_DEAL_VALUES_REC.CUSTOMER_JTOT_OBJECT1_CODE := L_HDR_UV_REC.CUST_JTOT_OBJECT1_CODE;
9120 END IF;
9121
9122 X_DEAL_VALUES_REC.CUSTOMER_OBJECT1_ID1 := L_HDR_UV_REC.CUST_OBJECT1_ID1;
9123 X_DEAL_VALUES_REC.CUSTOMER_OBJECT1_ID2 := L_HDR_UV_REC.CUST_OBJECT1_ID2;
9124 X_DEAL_VALUES_REC.CUST_ACCT_ID := L_HDR_UV_REC.CHR_CUST_ACCT_ID;
9125 X_DEAL_VALUES_REC.CUST_PO_NUMBER := L_HDR_UV_REC.CHR_CUST_PO_NUMBER;
9126 X_DEAL_VALUES_REC.DEAL_TYPE := L_HDR_UV_REC.KHR_DEAL_TYPE;
9127
9128 X_DEAL_VALUES_REC.DESCRIPTION := L_HDR_UV_REC.CHR_DESCRIPTION;
9129 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);
9130 X_DEAL_VALUES_REC.ID := L_HDR_UV_REC.CHR_ID;
9131 X_DEAL_VALUES_REC.INTEREST_CALC_MEANING := L_HDR_UV_REC.INTEREST_CALCULATION_MEANING;
9132
9133 OPEN c_ledger(l_hdr_rec.id,l_hdr_rec.authoring_org_id);
9134 FETCH c_ledger INTO X_DEAL_VALUES_REC.LEDGER_ID, X_DEAL_VALUES_REC.LEDGER_NAME, X_DEAL_VALUES_REC.OPERATING_UNIT_NAME;
9135 CLOSE c_ledger;
9136
9137 IF (l_HDR_UV_REC.CHR_ORIG_SYSTEM_SOURCE_CODE = 'OKL_IMPORT') THEN
9138 X_DEAL_VALUES_REC.LEGACY_NUMBER := L_HDR_UV_REC.CHR_ORIG_SYSTEM_REFERENCE1;
9139 END IF;
9140
9141 --start| 27-Jun-2008 cklee Bug 6957971 |
9142 OPEN c_legal_address(l_HDR_UV_REC.cust_object1_id1,
9143 L_HDR_UV_REC.CHR_CUST_ACCT_ID); -- cklee 06/27/08
9144 FETCH c_legal_address INTO X_DEAL_VALUES_REC.LEGAL_ADDRESS;
9145 CLOSE c_legal_address;
9146 --end| 27-Jun-2008 cklee Bug 6957971 |
9147
9148
9149 X_DEAL_VALUES_REC.LEGAL_ADDRESS_ID := NULL;
9150
9151 OPEN c_le_name(l_hdr_rec.legal_entity_id);
9152 FETCH c_le_name INTO X_DEAL_VALUES_REC.LEGAL_ENTITY_NAME;
9153 CLOSE c_le_name;
9154
9155 X_DEAL_VALUES_REC.LESSOR_INSURED_MEANING := NULL;
9156 X_DEAL_VALUES_REC.LESSOR_PAYEE_MEANING := NULL;
9157 X_DEAL_VALUES_REC.LESSOR_SERV_ORG_CODE := NULL;
9158
9159 OPEN c_gvr_data('MASTER_LEASE',l_HDR_UV_REC.CHR_ID,l_HDR_UV_REC.CHR_ID);
9160 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;
9161 CLOSE c_gvr_data;
9162
9163 X_DEAL_VALUES_REC.NNTF_RGD_CODE := 'LANNTF';
9164 X_DEAL_VALUES_REC.NNTF_RGP_ID := L_HDR_UV_REC.RG_LANNTF_ID;
9165 X_DEAL_VALUES_REC.NNTF_RUL_ID := L_HDR_UV_REC.R_LANNTF_ID;
9166 X_DEAL_VALUES_REC.NNTF_RUL_INF1 := L_HDR_UV_REC.R_LANNTF_RULE_INFORMATION1;
9167 X_DEAL_VALUES_REC.NNTF_RUL_INF_CAT := 'LANNTF';
9168 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);
9169
9170 FOR c_prompt_rec in c_prompt_name
9171 LOOP
9172 IF (c_prompt_rec.rule_code = 'LACPLN') THEN
9173 X_DEAL_VALUES_REC.COL_LACPLN_FORM_LEFT_PROMPT := C_PROMPT_REC.FORM_LEFT_PROMPT;
9174 ELSIF (c_prompt_rec.rule_code = 'LANNTF') THEN
9175 X_DEAL_VALUES_REC.COL_LANNTF_FORM_LEFT_PROMPT := C_PROMPT_REC.FORM_LEFT_PROMPT;
9176 ELSIF (c_prompt_rec.rule_code = 'LAREBL') THEN
9177 X_DEAL_VALUES_REC.COL_LAREBL_FORM_LEFT_PROMPT := C_PROMPT_REC.FORM_LEFT_PROMPT;
9178 ELSIF (c_prompt_rec.rule_code = 'LARLES') THEN
9179 X_DEAL_VALUES_REC.COL_LARLES_FORM_LEFT_PROMPT := C_PROMPT_REC.FORM_LEFT_PROMPT;
9180 ELSIF (c_prompt_rec.rule_code = 'LATOWN') THEN
9181 X_DEAL_VALUES_REC.COL_LATOWN_FORM_LEFT_PROMPT := C_PROMPT_REC.FORM_LEFT_PROMPT;
9182 ELSIF (c_prompt_rec.rule_code = 'LAPACT') THEN
9183 X_DEAL_VALUES_REC.COL_LAPACT_FORM_LEFT_PROMPT := C_PROMPT_REC.FORM_LEFT_PROMPT;
9184 END IF;
9185 END LOOP;
9186
9187 IF (l_HDR_UV_REC.CHR_ORIG_SYSTEM_SOURCE_CODE = 'OKL_QUOTE') THEN
9188 X_DEAL_VALUES_REC.ORIGINATION_QUOTE_ID := L_HDR_UV_REC.CHR_ORIG_SYSTEM_ID1;
9189 OPEN c_quote_name(l_HDR_UV_REC.CHR_ORIG_SYSTEM_ID1);
9190 FETCH c_quote_name INTO X_DEAL_VALUES_REC.ORIGINATION_QUOTE_NAME;
9191 CLOSE c_quote_name;
9192 END IF;
9193
9194 X_DEAL_VALUES_REC.ORIG_SYSTEM_ID1 := L_HDR_UV_REC.CHR_ORIG_SYSTEM_ID1;
9195 X_DEAL_VALUES_REC.ORIG_SYSTEM_REFERENCE1 := L_HDR_UV_REC.CHR_ORIG_SYSTEM_REFERENCE1;
9196 X_DEAL_VALUES_REC.ORIG_SYSTEM_SOURCE_CODE := L_HDR_UV_REC.CHR_ORIG_SYSTEM_SOURCE_CODE;
9197
9198 IF (l_HDR_UV_REC.CHR_ORIG_SYSTEM_SOURCE_CODE = 'OKL_LEASE_APP') THEN
9199 OPEN c_orig_lease_application(L_HDR_UV_REC.CHR_ORIG_SYSTEM_ID1);
9200 FETCH c_orig_lease_application INTO X_DEAL_VALUES_REC.ORIGINATION_LEASE_APPLICATION;
9201 X_DEAL_VALUES_REC.LEASE_APPLICATION_ID := L_HDR_UV_REC.CHR_ORIG_SYSTEM_ID1;
9202 X_DEAL_VALUES_REC.LEASE_APPLICATION_NAME := X_DEAL_VALUES_REC.ORIGINATION_LEASE_APPLICATION;
9203 CLOSE c_orig_lease_application;
9204 END IF;
9205
9206 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);
9207 X_DEAL_VALUES_REC.PRODUCT_DESCRIPTION := L_HDR_UV_REC.PRODUCT_DESCRIPTION;
9208 X_DEAL_VALUES_REC.PRODUCT_NAME := L_HDR_UV_REC.PRODUCT_NAME;
9209
9210 IF ((L_HDR_UV_REC.CHR_ORIG_SYSTEM_SOURCE_CODE = 'OKC_HDR') AND (L_HDR_UV_REC.KHR_KHR_ID IS NOT NULL))THEN
9211 X_DEAL_VALUES_REC.PROGRAM_TEMPLATE_CHR_ID := L_HDR_UV_REC.CHR_ORIG_SYSTEM_ID1;
9212 OPEN c_program_template_name(l_HDR_UV_REC.CHR_ORIG_SYSTEM_ID1,l_HDR_UV_REC.KHR_KHR_ID);
9213 FETCH c_program_template_name INTO X_DEAL_VALUES_REC.PROGRAM_TEMPLATE_NAME;
9214 CLOSE c_program_template_name;
9215 END IF;
9216
9217 X_DEAL_VALUES_REC.PRV_ACT_BOND_RGD_CODE := 'LAPACT';
9218 X_DEAL_VALUES_REC.PRV_ACT_BOND_RGP_ID := L_HDR_UV_REC.RG_LAPACT_ID;
9219 X_DEAL_VALUES_REC.PRV_ACT_BOND_RUL_ID := L_HDR_UV_REC.R_LAPACT_ID;
9220 X_DEAL_VALUES_REC.PRV_ACT_BOND_RUL_INF1 := L_HDR_UV_REC.R_LAPACT_RULE_INFORMATION1;
9221 X_DEAL_VALUES_REC.PRV_ACT_BOND_RUL_INF_CAT := 'LAPACT';
9222
9223 X_DEAL_VALUES_REC.REBOOK_LIMIT_DATE := TO_CHAR(TO_DATE(L_HDR_UV_REC.R_LAREBL_RULE_INFORMATION1,'YYYY/MM/DD'));
9224 X_DEAL_VALUES_REC.REBOOK_LIMIT_DATE_RGD_CODE := 'LAREBL';
9225 X_DEAL_VALUES_REC.REBOOK_LIMIT_DATE_RGP_ID := L_HDR_UV_REC.RG_LAREBL_ID;
9226 X_DEAL_VALUES_REC.REBOOK_LIMIT_DATE_RUL_ID := L_HDR_UV_REC.R_LAREBL_ID;
9227 X_DEAL_VALUES_REC.REBOOK_LIMIT_RUL_INF1 := L_HDR_UV_REC.R_LAREBL_RULE_INFORMATION1;
9228 X_DEAL_VALUES_REC.REBOOK_LIMIT_RUL_INF_CAT := 'LAREBL';
9229
9230 IF (L_HDR_UV_REC.CHR_ORIG_SYSTEM_SOURCE_CODE = 'OKL_RELEASE') THEN
9231 X_DEAL_VALUES_REC.REPLACES_CHR_ID := L_HDR_UV_REC.CHR_ORIG_SYSTEM_ID1;
9232 OPEN c_okc_hdr(l_HDR_UV_REC.CHR_ORIG_SYSTEM_ID1);
9233 FETCH c_okc_hdr INTO X_DEAL_VALUES_REC.REPLACES_CONTRACT_NUMBER;
9234 CLOSE c_okc_hdr;
9235 END IF;
9236
9237 X_DEAL_VALUES_REC.REP_CONTACT_ID := L_HDR_UV_REC.CONTACT_ID;
9238 X_DEAL_VALUES_REC.REP_CONTACT_JTOT_OBJECT1_CODE := L_HDR_UV_REC.CONTACT_JTOT_OBJECT1_CODE;
9239 X_DEAL_VALUES_REC.REP_CONTACT_OBJECT1_ID1 := L_HDR_UV_REC.CONTACT_OBJECT1_ID1;
9240
9241 IF (L_HDR_UV_REC.CONTACT_OBJECT1_ID2 <> '#') THEN
9242 X_DEAL_VALUES_REC.REP_CONTACT_OBJECT1_ID2 := L_HDR_UV_REC.CONTACT_OBJECT1_ID2;
9243 END IF;
9244
9245 X_DEAL_VALUES_REC.REVENUE_RECOGNITION_MEANING := L_HDR_UV_REC.REVENUE_RECOGNITION_MEANING;
9246 X_DEAL_VALUES_REC.REVOLVING_CREDIT_YN := L_HDR_UV_REC.KHR_REVOLVING_CREDIT_YN;
9247
9248 X_DEAL_VALUES_REC.RLES_RGD_CODE := 'LARLES';
9249 X_DEAL_VALUES_REC.RLES_RGP_ID := L_HDR_UV_REC.RG_LARLES_ID;
9250 X_DEAL_VALUES_REC.RLES_RUL_ID := L_HDR_UV_REC.R_LARLES_ID;
9251 X_DEAL_VALUES_REC.RLES_RUL_INF1 := L_HDR_UV_REC.R_LARLES_RULE_INFORMATION1;
9252 X_DEAL_VALUES_REC.RLES_RUL_INF_CAT := 'LARLES';
9253 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);
9254
9255 OPEN c_salesrep(L_HDR_UV_REC.contact_object1_id1);
9256 FETCH c_salesrep INTO X_DEAL_VALUES_REC.SALES_REPRESENTATIVE_NAME;
9257 CLOSE c_salesrep;
9258
9259 X_DEAL_VALUES_REC.SCS_CODE_MEANING := NULL;
9260 X_DEAL_VALUES_REC.SPLIT_FROM_CHR_ID := NULL;
9261 X_DEAL_VALUES_REC.SPLIT_FROM_CONTRACT_NUMBER := NULL;
9262 X_DEAL_VALUES_REC.STS_CODE_MEANING := L_HDR_UV_REC.CHR_STS_MEANING;
9263
9264 X_DEAL_VALUES_REC.TAX_OWNER_CODE := L_HDR_UV_REC.R_LATOWN_RULE_INFORMATION1;
9265 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);
9266 X_DEAL_VALUES_REC.TAX_OWNER_RGD_CODE := 'LATOWN';
9267 X_DEAL_VALUES_REC.TAX_OWNER_RGP_ID := L_HDR_UV_REC.RG_LATOWN_ID;
9268 X_DEAL_VALUES_REC.TAX_OWNER_RUL_ID := L_HDR_UV_REC.R_LATOWN_ID;
9269 X_DEAL_VALUES_REC.TAX_OWNER_RUL_INF1 := L_HDR_UV_REC.R_LATOWN_RULE_INFORMATION1;
9270 X_DEAL_VALUES_REC.TAX_OWNER_RUL_INF_CAT := 'LATOWN';
9271
9272 X_DEAL_VALUES_REC.UPG_ORIG_SYSTEM_REF := NULL;
9273 X_DEAL_VALUES_REC.UPG_ORIG_SYSTEM_REF_ID := NULL;
9274 X_DEAL_VALUES_REC.VPA_CONTRACT_NUMBER := L_HDR_UV_REC.PROGRAM_CONTRACT_NUMBER;
9275 X_DEAL_VALUES_REC.VPA_KHR_ID := L_HDR_UV_REC.KHR_KHR_ID;
9276 X_DEAL_VALUES_REC.VERS_VERSION := L_HDR_UV_REC.VERS_VERSION;
9277
9278 -- sjalasut, added product subclass code which will serve as a criteria to the Product List of values page
9279 X_DEAL_VALUES_REC.PRODUCT_SUBCLASS_CODE := 'LEASE';
9280 CLOSE c_hdr_full_v;
9281 CLOSE c_hdr_full_uv;
9282
9283 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
9284 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9285 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
9286 RAISE OKL_API.G_EXCEPTION_ERROR;
9287 END IF;
9288
9289 OKL_API.END_ACTIVITY (x_msg_count,x_msg_data );
9290
9291 EXCEPTION
9292 WHEN OKL_API.G_EXCEPTION_ERROR THEN
9293 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
9294 l_api_name,
9295 G_PKG_NAME,
9296 'OKL_API.G_RET_STS_ERROR',
9297 x_msg_count,
9298 x_msg_data,
9299 '_PVT');
9300 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
9301 x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
9302 l_api_name,
9303 G_PKG_NAME,
9304 'OKL_API.G_RET_STS_UNEXP_ERROR',
9305 x_msg_count,
9306 x_msg_data,
9307 '_PVT');
9308 WHEN OTHERS THEN
9309 x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
9310 l_api_name,
9311 G_PKG_NAME,
9312 'OTHERS',
9313 x_msg_count,
9314 x_msg_data,
9315 '_PVT');
9316 END load_deal;
9317
9318 -- Start of comments
9319 -- API name : load_booking_summary
9320 -- Pre-reqs : None
9321 -- Function : This procedure loads booking summary record
9322 -- Parameters :
9323 -- IN : p_api_version - Standard input parameter
9324 -- p_init_msg_list - Standard input parameter
9325 -- p_chr_id - Contract ID
9326 -- Version : 1.0
9327 -- History : asahoo created.
9328 -- End of comments
9329
9330 PROCEDURE load_booking_summary(
9331 p_api_version IN NUMBER,
9332 p_init_msg_list IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
9333 x_return_status OUT NOCOPY VARCHAR2,
9334 x_msg_count OUT NOCOPY NUMBER,
9335 x_msg_data OUT NOCOPY VARCHAR2,
9336 p_chr_id IN NUMBER,
9337 x_booking_summary_rec OUT NOCOPY booking_summary_rec) IS
9338
9339 l_return_status VARCHAR2(1) default OKL_API.G_RET_STS_SUCCESS;
9340 l_api_name CONSTANT VARCHAR2(30) := 'load_booking_summary';
9341 l_api_version CONSTANT NUMBER := 1.0;
9342
9343 CURSOR c_khr_currency(p_chr_id IN NUMBER) IS
9344 SELECT CURRENCY_CODE
9345 FROM OKC_K_HEADERS_B
9346 WHERE ID = p_chr_id;
9347
9348 CURSOR c_residual_amt(p_chr_id NUMBER) IS
9349 SELECT SUM(kle.residual_value) total_residual_amount
9350 FROM okl_k_lines kle,
9351 okc_k_lines_b cleb
9352 WHERE cleb.dnz_chr_id = p_chr_id
9353 AND cleb.chr_id = p_chr_id
9354 AND kle.id = cleb.id;
9355
9356 CURSOR c_eot(p_chr_id NUMBER) IS
9357 SELECT rul.rule_information1 eot_option_code,
9358 rul.rule_information2 eot_option_amount
9359 FROM okc_rule_groups_b rgp,
9360 okc_rules_b rul
9361 WHERE rgp.dnz_chr_id = p_chr_id
9362 AND rgp.rgd_code = 'AMTFOC'
9363 AND rgp.dnz_chr_id = rgp.dnz_chr_id
9364 AND rul.rgp_id = rgp.id
9365 AND rul.rule_information_category = 'AMBPOC';
9366
9367 CURSOR c_upfront_tax(p_chr_id NUMBER) IS
9368 SELECT SUM(NVL(total_tax,0))
9369 FROM okl_tax_sources txs
9370 WHERE txs.khr_id = p_chr_id
9371 AND txs.tax_line_status_code = 'ACTIVE'
9372 AND txs.tax_call_type_code = 'UPFRONT_TAX';
9373
9374 CURSOR c_rvi_premium(p_chr_id NUMBER) IS
9375 SELECT kle.amount rvi_premium
9376 FROM okc_k_lines_b cleb,
9377 okl_k_lines kle,
9378 okc_line_styles_b lseb
9379 WHERE cleb.dnz_chr_id = p_chr_id
9380 AND cleb.chr_id = p_chr_id
9381 AND kle.id = cleb.id
9382 AND cleb.lse_id = lseb.id
9383 AND lseb.lty_code = 'FEE'
9384 AND kle.fee_purpose_code = 'RVI';
9385
9386 l_eot_option_code okc_rules_b.rule_information1%TYPE;
9387 l_currency_code okc_k_headers_b.currency_code%TYPE;
9388 l_total_financed_amount NUMBER;
9389 l_total_funded NUMBER;
9390 l_total_subsidies NUMBER;
9391 l_eot_amount NUMBER;
9392 l_upfront_sales_tax NUMBER;
9393 l_rvi_premium NUMBER;
9394 l_residual_amount NUMBER;
9395
9396 BEGIN
9397 IF( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
9398 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, 'OKL_DEAL_CREAT_PVT.load_booking_summary.', 'Begin(+)');
9399 END IF;
9400
9401 x_return_status := OKL_API.G_RET_STS_SUCCESS;
9402 -- Call start_activity to create savepoint, check compatibility
9403 -- and initialize message list
9404 x_return_status := OKL_API.START_ACTIVITY (
9405 l_api_name
9406 ,p_init_msg_list
9407 ,'_PVT'
9408 ,x_return_status);
9409 -- Check if activity started successfully
9410 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
9411 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9412 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
9413 RAISE OKL_API.G_EXCEPTION_ERROR;
9414 END IF;
9415
9416 IF( FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
9417 FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, 'OKL_DEAL_CREAT_PVT.load_booking_summary.',
9418 'p_chr_id :'||p_chr_id);
9419 END IF;
9420
9421 x_booking_summary_rec.dnz_chr_id := p_chr_id;
9422
9423 OPEN c_khr_currency(p_chr_id => p_chr_id);
9424 FETCH c_khr_currency INTO l_currency_code;
9425 CLOSE c_khr_currency;
9426
9427 OKL_EXECUTE_FORMULA_PUB.execute(
9428 p_api_version => p_api_version,
9429 p_init_msg_list => p_init_msg_list,
9430 x_return_status => x_return_status,
9431 x_msg_count => x_msg_count,
9432 x_msg_data => x_msg_data,
9433 p_formula_name => 'CONTRACT_FINANCED_AMOUNT_BKG',
9434 p_contract_id => p_chr_id,
9435 p_line_id => NULL,
9436 x_value => l_total_financed_amount);
9437
9438 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
9439 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9440 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
9441 RAISE OKL_API.G_EXCEPTION_ERROR;
9442 END IF;
9443
9444 -- Format the financed amt
9445 x_booking_summary_rec.total_financed_amount := OKL_ACCOUNTING_UTIL.format_amount(
9446 l_total_financed_amount,
9447 l_currency_code);
9448
9449 OKL_EXECUTE_FORMULA_PUB.execute(
9450 p_api_version => p_api_version,
9451 p_init_msg_list => p_init_msg_list,
9452 x_return_status => x_return_status,
9453 x_msg_count => x_msg_count,
9454 x_msg_data => x_msg_data,
9455 p_formula_name => 'CONTRACT_TOT_FNDED',
9456 p_contract_id => p_chr_id,
9457 p_line_id => NULL,
9458 x_value => l_total_funded);
9459
9460 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
9461 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9462 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
9463 RAISE OKL_API.G_EXCEPTION_ERROR;
9464 END IF;
9465
9466 -- Format the funded amt
9467 x_booking_summary_rec.total_funded := OKL_ACCOUNTING_UTIL.format_amount(
9468 l_total_funded,
9469 l_currency_code);
9470
9471 OPEN c_residual_amt(p_chr_id => p_chr_id);
9472 FETCH c_residual_amt INTO l_residual_amount;
9473 CLOSE c_residual_amt;
9474 -- Format the residual amt
9475 x_booking_summary_rec.total_residual_amount := OKL_ACCOUNTING_UTIL.format_amount(
9476 l_residual_amount,
9477 l_currency_code);
9478
9479 OKL_SUBSIDY_PROCESS_PVT.get_contract_subsidy_amount(
9480 p_api_version => p_api_version,
9481 p_init_msg_list => p_init_msg_list,
9482 x_return_status => x_return_status,
9483 x_msg_count => x_msg_count,
9484 x_msg_data => x_msg_data,
9485 p_chr_id => p_chr_id,
9486 p_accounting_method => NULL,
9487 x_subsidy_amount => l_total_subsidies);
9488
9489 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
9490 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9491 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
9492 RAISE OKL_API.G_EXCEPTION_ERROR;
9493 END IF;
9494
9495 -- Format the subsidy amt
9496 x_booking_summary_rec.total_subsidies := OKL_ACCOUNTING_UTIL.format_amount(
9497 l_total_subsidies,
9498 l_currency_code);
9499
9500 OPEN c_eot(p_chr_id => p_chr_id);
9501 FETCH c_eot INTO l_eot_option_code,l_eot_amount;
9502 CLOSE c_eot;
9503 -- Format the end of term amt
9504 x_booking_summary_rec.eot_amount := OKL_ACCOUNTING_UTIL.format_amount(
9505 l_eot_amount,
9506 l_currency_code);
9507
9508 x_booking_summary_rec.eot_option := OKL_LLA_UTIL_PVT.GET_LOOKUP_MEANING('OKL_QUOTE_RULE_OPTION_TYPE',l_eot_option_code);
9509
9510 OPEN c_upfront_tax(p_chr_id => p_chr_id);
9511 FETCH c_upfront_tax INTO l_upfront_sales_tax;
9512 CLOSE c_upfront_tax;
9513 -- Format the upfront tax amt
9514 x_booking_summary_rec.total_upfront_sales_tax := OKL_ACCOUNTING_UTIL.format_amount(
9515 l_upfront_sales_tax,
9516 l_currency_code);
9517
9518 OPEN c_rvi_premium(p_chr_id => p_chr_id);
9519 FETCH c_rvi_premium INTO l_rvi_premium;
9520 CLOSE c_rvi_premium;
9521 -- Format the rvi premium amt
9522 x_booking_summary_rec.rvi_premium := OKL_ACCOUNTING_UTIL.format_amount(
9523 l_rvi_premium,
9524 l_currency_code);
9525
9526 OKL_API.END_ACTIVITY (x_msg_count,x_msg_data );
9527
9528 IF( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
9529 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, 'OKL_DEAL_CREAT_PVT.load_booking_summary.', 'End(-)');
9530 END IF;
9531
9532 EXCEPTION
9533 WHEN OKL_API.G_EXCEPTION_ERROR THEN
9534 IF c_khr_currency%ISOPEN THEN
9535 CLOSE c_khr_currency;
9536 END IF;
9537 IF c_residual_amt%ISOPEN THEN
9538 CLOSE c_residual_amt;
9539 END IF;
9540 IF c_eot%ISOPEN THEN
9541 CLOSE c_eot;
9542 END IF;
9543 IF c_upfront_tax%ISOPEN THEN
9544 CLOSE c_upfront_tax;
9545 END IF;
9546 IF c_rvi_premium%ISOPEN THEN
9547 CLOSE c_rvi_premium;
9548 END IF;
9549 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
9550 l_api_name,
9551 G_PKG_NAME,
9552 'OKL_API.G_RET_STS_ERROR',
9553 x_msg_count,
9554 x_msg_data,
9555 '_PVT');
9556 IF( FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
9557 FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, 'OKL_DEAL_CREAT_PVT.load_booking_summary.', 'EXP - ERROR');
9558 END IF;
9559 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
9560 IF c_khr_currency%ISOPEN THEN
9561 CLOSE c_khr_currency;
9562 END IF;
9563 IF c_residual_amt%ISOPEN THEN
9564 CLOSE c_residual_amt;
9565 END IF;
9566 IF c_eot%ISOPEN THEN
9567 CLOSE c_eot;
9568 END IF;
9569 IF c_upfront_tax%ISOPEN THEN
9570 CLOSE c_upfront_tax;
9571 END IF;
9572 IF c_rvi_premium%ISOPEN THEN
9573 CLOSE c_rvi_premium;
9574 END IF;
9575 x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
9576 l_api_name,
9577 G_PKG_NAME,
9578 'OKL_API.G_RET_STS_UNEXP_ERROR',
9579 x_msg_count,
9580 x_msg_data,
9581 '_PVT');
9582 IF( FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
9583 FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, 'OKL_DEAL_CREAT_PVT.load_booking_summary.', 'EXP - UNEXCP ERROR');
9584 END IF;
9585 WHEN OTHERS THEN
9586 IF c_khr_currency%ISOPEN THEN
9587 CLOSE c_khr_currency;
9588 END IF;
9589 IF c_residual_amt%ISOPEN THEN
9590 CLOSE c_residual_amt;
9591 END IF;
9592 IF c_eot%ISOPEN THEN
9593 CLOSE c_eot;
9594 END IF;
9595 IF c_upfront_tax%ISOPEN THEN
9596 CLOSE c_upfront_tax;
9597 END IF;
9598 IF c_rvi_premium%ISOPEN THEN
9599 CLOSE c_rvi_premium;
9600 END IF;
9601 x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
9602 l_api_name,
9603 G_PKG_NAME,
9604 'OTHERS',
9605 x_msg_count,
9606 x_msg_data,
9607 '_PVT');
9608 IF( FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
9609 FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, 'OKL_DEAL_CREAT_PVT.load_booking_summary.', 'EXP - OTHERS');
9610 END IF;
9611 END load_booking_summary;
9612
9613 END Okl_Deal_Creat_Pvt;