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