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