[Home] [Help]
PACKAGE BODY: APPS.OKL_LEASE_APP_PVT
Source
1 PACKAGE BODY OKL_LEASE_APP_PVT AS
2 /* $Header: OKLRLAPB.pls 120.93.12010000.10 2010/02/10 08:31:01 smadhava ship $*/
3 -- Bug#4741121 - smadhava - Modified - Start
4 G_WF_EVT_LEASE_APP_WDW_PENDING CONSTANT wf_events.name%TYPE DEFAULT 'oracle.apps.okl.sales.leaseapplication.withdrawn';
5 G_WF_LEASE_APP_ID CONSTANT VARCHAR2(50) := 'LA_ID';
6 -- Bug#4741121 - smadhava - Modified - Start
7
8 L_MODULE FND_LOG_MESSAGES.MODULE%TYPE;
9 L_DEBUG_ENABLED VARCHAR2(10);
10 IS_DEBUG_PROCEDURE_ON BOOLEAN;
11 IS_DEBUG_STATEMENT_ON BOOLEAN;
12
13 -- Record type for the credit Application
14 TYPE crr_rec_type IS RECORD(
15 l_commit VARCHAR2(15),
16 validation_level VARCHAR2(50),
17 application_number AR_CMGT_CREDIT_REQUESTS.APPLICATION_NUMBER%TYPE,
18 application_date AR_CMGT_CREDIT_REQUESTS.APPLICATION_DATE%TYPE,
19 requestor_type AR_CMGT_CREDIT_REQUESTS.REQUESTOR_TYPE%TYPE,
20 requestor_id AR_CMGT_CREDIT_REQUESTS.REQUESTOR_ID%TYPE,
21 review_type AR_CMGT_CREDIT_REQUESTS.REVIEW_TYPE%TYPE,
22 credit_classification AR_CMGT_CREDIT_REQUESTS.CREDIT_CLASSIFICATION%TYPE,
23 requested_amount AR_CMGT_CREDIT_REQUESTS.LIMIT_AMOUNT%TYPE,
24 requested_currency AR_CMGT_CREDIT_REQUESTS.LIMIT_CURRENCY%TYPE,
25 trx_amount AR_CMGT_CREDIT_REQUESTS.TRX_AMOUNT%TYPE,
26 trx_currency AR_CMGT_CREDIT_REQUESTS.TRX_CURRENCY%TYPE,
27 credit_type AR_CMGT_CREDIT_REQUESTS.CREDIT_TYPE%TYPE,
28 term_length AR_CMGT_CREDIT_REQUESTS.TERM_LENGTH%TYPE,
29 credit_check_rule_id AR_CMGT_CREDIT_REQUESTS.CREDIT_CHECK_RULE_ID%TYPE,
30 credit_request_status AR_CMGT_CREDIT_REQUESTS.STATUS%TYPE,
31 party_id AR_CMGT_CREDIT_REQUESTS.PARTY_ID%TYPE,
32 cust_account_id AR_CMGT_CREDIT_REQUESTS.CUST_ACCOUNT_ID%TYPE,
33 cust_acct_site_id AR_CMGT_CREDIT_REQUESTS.CUST_ACCT_SITE_ID%TYPE,
34 site_use_id AR_CMGT_CREDIT_REQUESTS.SITE_USE_ID%TYPE,
35 contact_party_id AR_CMGT_CREDIT_REQUESTS.CONTACT_PARTY_ID%TYPE,
36 notes AR_CMGT_CREDIT_REQUESTS.NOTES%TYPE,
37 source_org_id AR_CMGT_CREDIT_REQUESTS.SOURCE_ORG_ID%TYPE,
38 source_user_id AR_CMGT_CREDIT_REQUESTS.SOURCE_USER_ID%TYPE,
39 source_resp_id AR_CMGT_CREDIT_REQUESTS.SOURCE_RESP_ID%TYPE,
40 source_appln_id AR_CMGT_CREDIT_REQUESTS.SOURCE_RESP_APPLN_ID%TYPE,
41 source_security_group_id AR_CMGT_CREDIT_REQUESTS.SOURCE_SECURITY_GROUP_ID%TYPE,
42 source_name AR_CMGT_CREDIT_REQUESTS.SOURCE_NAME%TYPE,
43 source_column1 AR_CMGT_CREDIT_REQUESTS.SOURCE_COLUMN1%TYPE,
44 source_column2 AR_CMGT_CREDIT_REQUESTS.SOURCE_COLUMN2%TYPE,
45 source_column3 AR_CMGT_CREDIT_REQUESTS.SOURCE_COLUMN3%TYPE,
46 credit_request_id AR_CMGT_CREDIT_REQUESTS.CREDIT_REQUEST_ID%TYPE,
47 review_cycle AR_CMGT_CREDIT_REQUESTS.REVIEW_CYCLE%TYPE,
48 case_folder_number AR_CMGT_CREDIT_REQUESTS.CASE_FOLDER_NUMBER%TYPE,
49 score_model_id AR_CMGT_CREDIT_REQUESTS.SCORE_MODEL_ID%TYPE,
50 parent_credit_request_id AR_CMGT_CREDIT_REQUESTS.PARENT_CREDIT_REQUEST_ID%TYPE,
51 credit_request_type AR_CMGT_CREDIT_REQUESTS.CREDIT_REQUEST_TYPE%TYPE
52 );
53 --Added Bug 5647107 ssdeshpa start
54 -----------------------------------
55 -- PROCEDURE validate_le_id
56 -----------------------------------
57 PROCEDURE validate_le_id(p_le_id IN NUMBER ,
58 x_return_status OUT NOCOPY VARCHAR2) IS
59
60 l_program_name CONSTANT VARCHAR2(30) := 'validate_le_id';
61 l_api_name CONSTANT VARCHAR2(61) := G_PKG_NAME||'.'||l_program_name;
62 l_ou_tax_upfront_yn VARCHAR2(1);
63
64 CURSOR l_systemparams_csr IS
65 SELECT NVL(tax_upfront_yn,'N')
66 FROM OKL_SYSTEM_PARAMS;
67
68 BEGIN
69 OPEN l_systemparams_csr;
70 FETCH l_systemparams_csr INTO l_ou_tax_upfront_yn;
71 CLOSE l_systemparams_csr;
72
73 IF(l_ou_tax_upfront_yn = 'Y') THEN
74 IF(p_le_id IS NULL) THEN
75 OKL_API.SET_MESSAGE (
76 p_app_name => G_APP_NAME
77 ,p_msg_name => 'OKL_SO_LSE_APP_LE_ERR');
78 RAISE OKL_API.G_EXCEPTION_ERROR;
79 END IF;
80 END IF;
81 x_return_status := OKL_API.G_RET_STS_SUCCESS;
82 EXCEPTION
83 WHEN OKL_API.G_EXCEPTION_ERROR THEN
84 x_return_status := OKL_API.G_RET_STS_ERROR;
85
86 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
87 x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
88
89 WHEN OTHERS THEN
90 OKL_API.SET_MESSAGE(
91 p_app_name => G_APP_NAME,
92 p_msg_name => G_UNEXPECTED_ERROR,
93 p_token1 => G_SQLCODE_TOKEN,
94 p_token1_value => SQLCODE,
95 p_token2 => G_SQLERRM_TOKEN,
96 p_token2_value => SQLERRM);
97 x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
98 END validate_le_id;
99 --Added Bug 5647107 ssdeshpa end
100 -------------------------------------------------------------------------------
101 -- FUNCTION get_lookup_meaning
102 -------------------------------------------------------------------------------
103 -- Start of comments
104 --
105 -- Function Name : get_lookup_meaning
106 -- Description : This function returns the meaning for given lookup type
107 -- and code
108 -- Business Rules : This function returns the meaning for given lookup type
109 -- and code
110 -- Parameters :
111 -- Version : 1.0
112 -- History : 23-Dec-2005 PAGARG created
113 -- End of comments
114 FUNCTION get_lookup_meaning(
115 p_lookup_type IN VARCHAR2,
116 p_lookup_code IN VARCHAR2)
117 RETURN VARCHAR2
118 IS
119 --Local variables
120 l_meaning VARCHAR2(80);
121
122 --Cursor to check for Approve or Reject recommendation for a
123 --given Lease Application
124 CURSOR lkup_meaning_csr(p_lookup_type VARCHAR2, p_lookup_code VARCHAR2) IS
125 SELECT MEANING
126 FROM FND_LOOKUPS FL
127 WHERE FL.LOOKUP_TYPE = p_lookup_type
128 AND FL.LOOKUP_CODE = p_lookup_code;
129
130 BEGIN
131 IF p_lookup_type IS NOT NULL
132 AND p_lookup_code IS NOT NULL
133 THEN
134 OPEN lkup_meaning_csr(p_lookup_type, p_lookup_code);
135 FETCH lkup_meaning_csr INTO l_meaning;
136 CLOSE lkup_meaning_csr;
137 END IF;
138
139 RETURN l_meaning;
140 EXCEPTION
141 WHEN OTHERS
142 THEN
143 --Lookup Meaning Cursor
144 IF lkup_meaning_csr%ISOPEN
145 THEN
146 CLOSE lkup_meaning_csr;
147 END IF;
148 OKL_API.SET_MESSAGE(
149 p_app_name => G_APP_NAME,
150 p_msg_name => G_UNEXPECTED_ERROR,
151 p_token1 => G_SQLCODE_TOKEN,
152 p_token1_value => SQLCODE,
153 p_token2 => G_SQLERRM_TOKEN,
154 p_token2_value => SQLERRM);
155 RETURN NULL;
156 END get_lookup_meaning;
157
158 -- Bug# 7140398 - Start
159 ------------------------------------------------------------------------------
160 -- FUNCTION is_primary_quote_declined
161 ------------------------------------------------------------------------------
162 -- Start of comments
163 --
164 -- Function Name : is_primary_quote_declined
165 -- Description : This procedure checks if the primary quote on the lease app
166 -- is in status Credit Declined
167 -- Parameters :
168 -- Version : 1.0
169 -- History : 24-Apr-2009 nikshah created Bug 7140398
170 --
171 -- End of comments
172 FUNCTION is_primary_quote_declined(p_lap_id IN OKL_LEASE_APPLICATIONS_B.ID%TYPE)
173 RETURN BOOLEAN
174 IS
175 is_primary_declined BOOLEAN := FALSE;
176 l_flag NUMBER;
177 -- Cursor to check if primary quote on the lease app is credit declined
178 CURSOR get_primary_quote_declined IS
179 SELECT 1
180 FROM OKL_LEASE_APPLICATIONS_B LAP
181 , OKL_LEASE_QUOTES_B LSQ
182 WHERE LAP.ID = p_lap_id
183 AND LSQ.PARENT_OBJECT_CODE = 'LEASEAPP'
184 AND LSQ.PARENT_OBJECT_ID = LAP.ID
185 AND LSQ.PRIMARY_QUOTE = 'Y'
186 AND LSQ.STATUS = 'CR-DECLINED';
187 BEGIN
188 OPEN get_primary_quote_declined;
189 FETCH get_primary_quote_declined INTO l_flag;
190 IF get_primary_quote_declined%FOUND THEN
191 is_primary_declined := TRUE;
192 END IF;
193 CLOSE get_primary_quote_declined;
194
195 return is_primary_declined;
196 END is_primary_quote_declined;
197
198 -- Bug# 7140398 - End
199
200 --Bug 4872214 PAGARG Added functions to return credit decision
201 -------------------------------------------------------------------------------
202 -- FUNCTION get_credit_decision
203 -------------------------------------------------------------------------------
204 -- Start of comments
205 --
206 -- Function Name : get_credit_decision
207 -- Description : This function returns the Credit Decision on the given
208 -- Lease Application
209 -- Business Rules : This function returns the Credit Decision on the given
210 -- Lease Application
211 -- Parameters :
212 -- Version : 1.0
213 -- History : 14-Dec-2005 PAGARG created
214 -- : 20 Dec 2005 PAGARG Bug 4897011 returning Credit Approved
215 -- or Credit Rejected instead of Approved or Rejected
216 -- 19 Nov 2008 gboomina Bug 6971371 Modified the logic to return
217 -- credit decision based on status of Credit Recommendations
218 -- End of comments
219 FUNCTION get_credit_decision(
220 p_lease_app_id IN NUMBER)
221 RETURN VARCHAR2
222 IS
223 --Local variables
224 l_cr_decision VARCHAR2(50);
225 l_cr_recom AR_CMGT_CF_RECOMMENDS.CREDIT_RECOMMENDATION%TYPE;
226 l_cr_status AR_CMGT_CF_RECOMMENDS.STATUS%TYPE;
227
228 --Cursor to check for Approve or Reject recommendation for a
229 --given Lease Application
230 CURSOR credit_recom_csr(cp_lap_id NUMBER) IS
231 SELECT RCM.CREDIT_RECOMMENDATION
232 , RCM.STATUS
233 FROM AR_CMGT_CF_RECOMMENDS RCM
234 , AR_CMGT_CREDIT_REQUESTS CCR
235 WHERE RCM.CREDIT_REQUEST_ID = CCR.CREDIT_REQUEST_ID
236 AND RCM.CREDIT_RECOMMENDATION IN ('REJECT', 'APPROVE')
237 AND CCR.SOURCE_COLUMN3 = 'LEASEAPP'
238 AND CCR.SOURCE_COLUMN1 = cp_lap_id;
239
240 --Cursor to check for Approve or Reject recommendation for a
241 --given Lease Application
242 CURSOR credit_decision_csr(p_decision_code VARCHAR2) IS
243 SELECT MEANING
244 FROM FND_LOOKUPS FL
245 WHERE FL.LOOKUP_TYPE = 'OKL_LEASE_APP_STATUS'
246 AND FL.LOOKUP_CODE = p_decision_code;
247
248 BEGIN
249 IF ( p_lease_app_id IS NULL )
250 THEN
251 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
252 END IF;
253
254 OPEN credit_recom_csr(p_lease_app_id);
255 FETCH credit_recom_csr INTO l_cr_recom, l_cr_status;
256 CLOSE credit_recom_csr;
257
258 IF l_cr_recom = 'APPROVE' AND l_cr_status = 'I'
259 THEN
260 OPEN credit_decision_csr('CR-APPROVED');
261 FETCH credit_decision_csr INTO l_cr_decision;
262 CLOSE credit_decision_csr;
263 ELSIF l_cr_recom = 'REJECT' AND l_cr_status = 'I'
264 THEN
265 OPEN credit_decision_csr('CR-REJECTED');
266 FETCH credit_decision_csr INTO l_cr_decision;
267 CLOSE credit_decision_csr;
268 ELSIF ((l_cr_recom = 'REJECT' OR l_cr_recom = 'APPROVE') AND
269 l_cr_status = 'R')
270 THEN
271 OPEN credit_decision_csr('RECOM_NOT_APPROVED');
272 FETCH credit_decision_csr INTO l_cr_decision;
273 CLOSE credit_decision_csr;
274 END IF;
275
276 RETURN l_cr_decision;
277 EXCEPTION
278 WHEN OKL_API.G_EXCEPTION_ERROR
279 THEN
280 RETURN NULL;
281 WHEN OTHERS
282 THEN
283 --Credit Recommendations Cursor
284 IF credit_recom_csr%ISOPEN
285 THEN
286 CLOSE credit_recom_csr;
287 END IF;
288 --Credit Decision Cursor
289 IF credit_decision_csr%ISOPEN
290 THEN
291 CLOSE credit_decision_csr;
292 END IF;
293 OKL_API.SET_MESSAGE(
294 p_app_name => G_APP_NAME,
295 p_msg_name => G_UNEXPECTED_ERROR,
296 p_token1 => G_SQLCODE_TOKEN,
297 p_token1_value => SQLCODE,
298 p_token2 => G_SQLERRM_TOKEN,
299 p_token2_value => SQLERRM);
300 RETURN NULL;
301 END get_credit_decision;
302
303 --Bug 4872214 PAGARG Added functions to return approval expiration date
304 -------------------------------------------------------------------------------
305 -- FUNCTION get_approval_exp_date
306 -------------------------------------------------------------------------------
307 -- Start of comments
308 --
309 -- Function Name : get_approval_exp_date
310 -- Description : This function returns the Credit Approval Expiration Date
311 -- for the given Lease Application
312 -- Business Rules : This function returns the Credit Approval Expiration Date
313 -- for the given Lease Application
314 -- Parameters :
315 -- Version : 1.0
316 -- History : 14-Dec-2005 PAGARG created
317 --
318 -- End of comments
319 FUNCTION get_approval_exp_date(
320 p_lease_app_id IN NUMBER)
321 RETURN DATE
322 IS
323 --Local variables
324 l_cr_recom_count NUMBER;
325 l_exp_date DATE;
326
327 --Cursor to check for Approve or Reject recommendation for a
328 --given Lease Application
329 CURSOR credit_recom_csr(cp_lap_id NUMBER) IS
330 SELECT COUNT(*)
331 FROM AR_CMGT_CF_RECOMMENDS RCM
332 , AR_CMGT_CREDIT_REQUESTS CCR
333 WHERE RCM.CREDIT_REQUEST_ID = CCR.CREDIT_REQUEST_ID
334 AND RCM.CREDIT_RECOMMENDATION IN ('APPROVE', 'EXPIRATION_DATE')
335 AND CCR.SOURCE_COLUMN3 = 'LEASEAPP'
336 AND CCR.SOURCE_COLUMN1 = cp_lap_id;
337
338 --Cursor to check for Approve or Reject recommendation for a
339 --given Lease Application
340 CURSOR case_folder_csr(p_lap_id NUMBER)
341 IS
342 SELECT LAP.CR_EXP_DAYS + TRUNC(LAST_UPDATED) APPR_EXP_DATE
343 FROM AR_CMGT_CASE_FOLDERS CCF
344 , AR_CMGT_CREDIT_REQUESTS CCR
345 , OKL_LEASE_APPLICATIONS_B LAP
346 WHERE CCR.CREDIT_REQUEST_ID = CCF.CREDIT_REQUEST_ID
347 AND CCR.SOURCE_COLUMN3 = 'LEASEAPP'
348 AND CCR.SOURCE_COLUMN1 = LAP.ID
349 AND CCF.STATUS = 'CLOSED'
350 AND LAP.ID = p_lap_id;
351 BEGIN
352 IF ( p_lease_app_id IS NULL )
353 THEN
354 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
355 END IF;
356
357 OPEN credit_recom_csr(p_lease_app_id);
358 FETCH credit_recom_csr INTO l_cr_recom_count;
359 CLOSE credit_recom_csr;
360
361 IF l_cr_recom_count = 2
362 THEN
363 OPEN case_folder_csr(p_lease_app_id);
364 FETCH case_folder_csr INTO l_exp_date;
365 CLOSE case_folder_csr;
366 END IF;
367
368 RETURN l_exp_date;
369 EXCEPTION
370 WHEN OKL_API.G_EXCEPTION_ERROR
371 THEN
372 RETURN NULL;
373 WHEN OTHERS
374 THEN
375 --Credit Recommendations Cursor
376 IF credit_recom_csr%ISOPEN
377 THEN
378 CLOSE credit_recom_csr;
379 END IF;
380 --Case Folder Cursor
381 IF case_folder_csr%ISOPEN
382 THEN
383 CLOSE case_folder_csr;
384 END IF;
385 OKL_API.SET_MESSAGE(
386 p_app_name => G_APP_NAME,
387 p_msg_name => G_UNEXPECTED_ERROR,
388 p_token1 => G_SQLCODE_TOKEN,
389 p_token1_value => SQLCODE,
390 p_token2 => G_SQLERRM_TOKEN,
391 p_token2_value => SQLERRM);
392 RETURN NULL;
393 END get_approval_exp_date;
394
395 --Bug 4872271 PAGARG Added two functions: one to return Credit Decision Appeal
396 --Flag and other to return Expiration Date Appeal Flag
397 --Start
398 -------------------------------------------------------------------------------
399 -- FUNCTION get_cr_dec_appeal_flag
400 -------------------------------------------------------------------------------
401 -- Start of comments
402 --
403 -- Function Name : get_cr_dec_appeal_flag
404 -- Description : This function returns the appeal flag for Credit Decision
405 -- on the given Lease Application
406 -- Business Rules : This function returns the appeal flag for Credit Decision
407 -- on the given Lease Application
408 -- Parameters :
409 -- Version : 1.0
410 -- History : 28-Mar-2006 PAGARG created
411 --
412 -- End of comments
413 FUNCTION get_cr_dec_appeal_flag(
414 p_lease_app_id IN NUMBER)
415 RETURN VARCHAR2
416 IS
417 --Local variables
418 l_cr_dec_appeal_flag VARCHAR2(3);
419 l_cr_recom VARCHAR2(30);
420
421 --Cursor to check for Approve or Reject recommendation for a
422 --given Lease Application
423 CURSOR credit_recom_csr(cp_lap_id NUMBER) IS
424 SELECT RCM.CREDIT_RECOMMENDATION
425 , RCM.APPEALED_FLAG
426 FROM AR_CMGT_CF_RECOMMENDS RCM
427 , AR_CMGT_CREDIT_REQUESTS CCR
428 WHERE RCM.CREDIT_REQUEST_ID = CCR.CREDIT_REQUEST_ID
429 AND RCM.CREDIT_RECOMMENDATION IN ('REJECT', 'APPROVE')
430 AND CCR.SOURCE_COLUMN3 = 'LEASEAPP'
431 AND CCR.SOURCE_COLUMN1 = cp_lap_id;
432 BEGIN
433 IF ( p_lease_app_id IS NULL )
434 THEN
435 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
436 END IF;
437
438 OPEN credit_recom_csr(p_lease_app_id);
439 FETCH credit_recom_csr INTO l_cr_recom, l_cr_dec_appeal_flag;
440 CLOSE credit_recom_csr;
441
442 RETURN l_cr_dec_appeal_flag;
443 EXCEPTION
444 WHEN OKL_API.G_EXCEPTION_ERROR
445 THEN
446 RETURN NULL;
447 WHEN OTHERS
448 THEN
449 --Credit Recommendations Cursor
450 IF credit_recom_csr%ISOPEN
451 THEN
452 CLOSE credit_recom_csr;
453 END IF;
454 OKL_API.SET_MESSAGE(
455 p_app_name => G_APP_NAME,
456 p_msg_name => G_UNEXPECTED_ERROR,
457 p_token1 => G_SQLCODE_TOKEN,
458 p_token1_value => SQLCODE,
459 p_token2 => G_SQLERRM_TOKEN,
460 p_token2_value => SQLERRM);
461 RETURN NULL;
462 END get_cr_dec_appeal_flag;
463
464 -------------------------------------------------------------------------------
465 -- FUNCTION get_exp_date_appeal_flag
466 -------------------------------------------------------------------------------
467 -- Start of comments
468 --
469 -- Function Name : get_exp_date_appeal_flag
470 -- Description : This function returns the appeal flag for Credit Approval
471 -- Expiration Date for the given Lease Application
472 -- Business Rules : This function returns the appeal flag for Credit Approval
473 -- Expiration Date for the given Lease Application
474 -- Parameters :
475 -- Version : 1.0
476 -- History : 28-Mar-2006 PAGARG created
477 --
478 -- End of comments
479 FUNCTION get_exp_date_appeal_flag(
480 p_lease_app_id IN NUMBER)
481 RETURN VARCHAR2
482 IS
483 --Local variables
484 l_cr_recom_count NUMBER;
485 l_exp_date_appeal_flag VARCHAR2(3);
486
487 --Cursor to check for Approve or Reject recommendation for a
488 --given Lease Application
489 CURSOR credit_recom_csr(cp_lap_id NUMBER) IS
490 SELECT COUNT(*)
491 FROM AR_CMGT_CF_RECOMMENDS RCM
492 , AR_CMGT_CREDIT_REQUESTS CCR
493 WHERE RCM.CREDIT_REQUEST_ID = CCR.CREDIT_REQUEST_ID
494 AND RCM.CREDIT_RECOMMENDATION IN ('APPROVE', 'EXPIRATION_DATE')
495 AND CCR.SOURCE_COLUMN3 = 'LEASEAPP'
496 AND CCR.SOURCE_COLUMN1 = cp_lap_id;
497
498 --Cursor to check for Approve or Reject recommendation for a
499 --given Lease Application
500 CURSOR appeal_flag_csr(p_lap_id NUMBER)
501 IS
502 SELECT RCM.APPEALED_FLAG
503 FROM AR_CMGT_CF_RECOMMENDS RCM
504 , AR_CMGT_CREDIT_REQUESTS CCR
505 WHERE RCM.CREDIT_REQUEST_ID = CCR.CREDIT_REQUEST_ID
506 AND RCM.CREDIT_RECOMMENDATION = 'EXPIRATION_DATE'
507 AND CCR.SOURCE_COLUMN3 = 'LEASEAPP'
508 AND CCR.SOURCE_COLUMN1 = p_lap_id;
509 BEGIN
510 IF ( p_lease_app_id IS NULL )
511 THEN
512 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
513 END IF;
514
515 OPEN credit_recom_csr(p_lease_app_id);
516 FETCH credit_recom_csr INTO l_cr_recom_count;
517 CLOSE credit_recom_csr;
518
519 IF l_cr_recom_count = 2
520 THEN
521 OPEN appeal_flag_csr(p_lease_app_id);
522 FETCH appeal_flag_csr INTO l_exp_date_appeal_flag;
523 CLOSE appeal_flag_csr;
524 END IF;
525
526 RETURN l_exp_date_appeal_flag;
527 EXCEPTION
528 WHEN OKL_API.G_EXCEPTION_ERROR
529 THEN
530 RETURN NULL;
531 WHEN OTHERS
532 THEN
533 --Credit Recommendations Cursor
534 IF credit_recom_csr%ISOPEN
535 THEN
536 CLOSE credit_recom_csr;
537 END IF;
538 --Case Folder Cursor
539 IF appeal_flag_csr%ISOPEN
540 THEN
541 CLOSE appeal_flag_csr;
542 END IF;
543 OKL_API.SET_MESSAGE(
544 p_app_name => G_APP_NAME,
545 p_msg_name => G_UNEXPECTED_ERROR,
546 p_token1 => G_SQLCODE_TOKEN,
547 p_token1_value => SQLCODE,
548 p_token2 => G_SQLERRM_TOKEN,
549 p_token2_value => SQLERRM);
550 RETURN NULL;
551 END get_exp_date_appeal_flag;
552 --Bug 4872271 PAGARG End
553
554 ------------------------------------------------------------------------------
555 -- FUNCTION get_next_seq_num
556 ------------------------------------------------------------------------------
557 -- Start of comments
558 --
559 -- Function Name : get_next_seq_num
560 -- Description : This function returns the next unique value from the sequence
561 -- for given column column in the table.
562 -- Parameters :
563 -- Version : 1.0
564 -- History : 01-Dec-2005 PAGARG Created Bug 4867953
565 --
566 -- End of comments
567 --Bug 7022258-Modified by kkorrapo
568 /*FUNCTION get_next_seq_num(
569 p_seq_name IN VARCHAR2,
570 p_table_name IN VARCHAR2,
571 p_col_name IN VARCHAR2)
572 RETURN NUMBER
573 IS
574 l_next_val NUMBER;
575 l_col_value VARCHAR2(150);
576 l_seq_stmt VARCHAR2(100);
577 l_query_stmt VARCHAR2(100);
578 TYPE l_csr_typ IS REF CURSOR;
579 l_ref_csr l_csr_typ;
580 BEGIN
581 l_next_val := 0;
582 l_seq_stmt := 'SELECT ' || p_seq_name || '.NEXTVAL FROM DUAL';
583 l_query_stmt := 'SELECT ' ||
584 p_col_name ||
585 ' FROM ' ||
586 p_table_name ||
587 ' WHERE '||
588 p_col_name || ' = :1 ';
589 LOOP
590 --Execute the dynamic sql for obtaining next value of sequence
591 OPEN l_ref_csr FOR l_seq_stmt;
592 FETCH l_ref_csr INTO l_next_val;
593 IF l_ref_csr%NOTFOUND THEN
594 EXIT;
595 END IF;
596 CLOSE l_ref_csr;
597
598 --Execute the dynamic sql for validating uniqueness of the next value from sequence
599 OPEN l_ref_csr FOR l_query_stmt USING TO_CHAR(l_next_val);
600 FETCH l_ref_csr INTO l_col_value;
601 IF l_ref_csr%NOTFOUND THEN
602 EXIT;
603 END IF;
604 CLOSE l_ref_csr;
605 END LOOP;
606 RETURN l_next_val;
607 EXCEPTION
608 WHEN OTHERS
609 THEN
610 IF l_ref_csr%ISOPEN
611 THEN
612 CLOSE l_ref_csr;
613 END IF;
614 RETURN 0;
615 END get_next_seq_num; */
616
617 FUNCTION get_next_seq_num(
618 p_seq_name IN VARCHAR2,
619 p_table_name IN VARCHAR2,
620 p_col_name IN VARCHAR2)
621 RETURN VARCHAR2
622 IS
623 l_next_val NUMBER;
624 l_col_value VARCHAR2(150);
625 l_seq_stmt VARCHAR2(100);
626 l_query_stmt VARCHAR2(100);
627 TYPE l_csr_typ IS REF CURSOR;
628 l_ref_csr l_csr_typ;
629 CURSOR c_get_prefix(c_table_name IN VARCHAR2) IS
630 SELECT DECODE(c_table_name,'OKL_LEASE_QUOTES_B',LSEQTE_SEQ_PREFIX_TXT,'OKL_QUICK_QUOTES_B',QCKQTE_SEQ_PREFIX_TXT,'OKL_LEASE_OPPORTUNITIES_B',LSEOPP_SEQ_PREFIX_TXT,'OKL_LEASE_APPLICATIONS_B',LSEAPP_SEQ_PREFIX_TXT)
631 FROM okl_system_params;
632 l_prefix VARCHAR2(30);
633 l_value VARCHAR(250);
634 BEGIN
635 l_next_val := 0;
636 l_seq_stmt := 'SELECT ' || p_seq_name || '.NEXTVAL FROM DUAL';
637 l_query_stmt := 'SELECT ' ||
638 p_col_name ||
639 ' FROM ' ||
640 p_table_name ||
641 ' WHERE '||
642 p_col_name || ' = :1 ';
643 --get prefix
644 OPEN c_get_prefix(p_table_name);
645 FETCH c_get_prefix INTO l_prefix;
646 CLOSE c_get_prefix;
647
648 LOOP
649 --Execute the dynamic sql for obtaining next value of sequence
650 OPEN l_ref_csr FOR l_seq_stmt;
651 FETCH l_ref_csr INTO l_next_val;
652 IF l_ref_csr%NOTFOUND THEN
653 EXIT;
654 END IF;
655 CLOSE l_ref_csr;
656
657
658 IF l_prefix IS NOT NULL THEN
659 l_value := l_prefix || TO_CHAR(l_next_val);
660 ELSE
661 l_value := TO_CHAR(l_next_val);
662 END IF;
663
664 --Execute the dynamic sql for validating uniqueness of the next value from sequence
665 OPEN l_ref_csr FOR l_query_stmt USING l_value;
666 FETCH l_ref_csr INTO l_col_value;
667 IF l_ref_csr%NOTFOUND THEN
668 EXIT;
669 END IF;
670 CLOSE l_ref_csr;
671 END LOOP;
672 RETURN l_value;
673 EXCEPTION
674 WHEN OTHERS
675 THEN
676 IF l_ref_csr%ISOPEN
677 THEN
678 CLOSE l_ref_csr;
679 END IF;
680 RETURN 0;
681 --Bug 7022258--Modification end
682 END get_next_seq_num;
683
684 -------------------------------------------------------------------------------
685 -- PROCEDURE populate_ec_rec
686 -------------------------------------------------------------------------------
687 -- Start of comments
688 --
689 -- Procedure Name : populate_ec_rec
690 -- Description : This procedure populates okl_ec_rec_type
691 -- Business Rules : This procedure populates okl_ec_rec_type
692 -- Parameters :
693 -- Version : 1.0
694 -- History : 27-Oct-2005 PAGARG created
695 --
696 -- End of comments
697 PROCEDURE populate_ec_rec(
698 p_api_version IN NUMBER,
699 p_init_msg_list IN VARCHAR2,
700 p_lap_id IN OKL_LEASE_APPLICATIONS_B.ID%TYPE,
701 x_return_status OUT NOCOPY VARCHAR2,
702 x_msg_count OUT NOCOPY NUMBER,
703 x_msg_data OUT NOCOPY VARCHAR2,
704 lx_okl_ec_rec IN OUT NOCOPY OKL_ECC_PUB.okl_ec_rec_type)
705 IS
706 -- Variables Declarations
707 l_api_version CONSTANT NUMBER DEFAULT G_INIT_VERSION;
708 l_api_name CONSTANT VARCHAR2(30) DEFAULT 'POPULATE_EC_REC';
709 l_return_status VARCHAR2(1);
710 l_counter NUMBER;
711
712 l_item_tbl okl_ec_evaluate_pvt.okl_number_table_type;
713
714 --Cursor to obtain Lease Application Details
715 CURSOR lse_app_dtls_csr(cp_lse_app_id NUMBER) IS
716 SELECT VALID_FROM VALID_FROM
717 , PROSPECT_ID PROSPECT_ID
718 , CUST_ACCT_ID CUST_ACCT_ID
719 , CURRENCY_CODE CURRENCY_CODE
720 FROM OKL_LEASE_APPLICATIONS_B LAB
721 WHERE LAB.ID = cp_lse_app_id;
722 lse_app_dtls_rec lse_app_dtls_csr%ROWTYPE;
723
724 --Cursor to obtain the details of lease quote line of Lease App
725 CURSOR l_lsq_dtls_csr(p_lap_id NUMBER)
726 IS
727 SELECT LSQ.ID LSQ_ID
728 , LSQ.TERM
729 FROM OKL_LEASE_QUOTES_B LSQ
730 WHERE LSQ.PARENT_OBJECT_CODE = 'LEASEAPP'
731 AND LSQ.PRIMARY_QUOTE= 'Y'
732 AND LSQ.PARENT_OBJECT_ID = p_lap_id;
733 l_lsq_dtls_rec l_lsq_dtls_csr%ROWTYPE;
734
735 --Cursor to obtain the inventory items of Lease Quote
736 CURSOR l_item_csr(p_lsq_id NUMBER)
737 IS
738 SELECT INV_ITEM_ID
739 FROM OKL_ASSET_COMPONENTS_B ASTC
740 , OKL_ASSETS_B AST
741 WHERE ASTC.ASSET_ID = AST.ID
742 AND AST.PARENT_OBJECT_CODE = 'LEASEQUOTE'
743 AND AST.PARENT_OBJECT_ID = p_lsq_id;
744 l_item_rec l_item_csr%ROWTYPE;
745
746 --Cursor to obtain the sum of adjustments of Lease Quote
747 CURSOR l_adj_sum_csr(p_lsq_id IN NUMBER, cp_adj_src_type IN VARCHAR2)
748 IS
749 SELECT SUM(ADJ.VALUE)
750 FROM OKL_ASSETS_B AST
751 , OKL_COST_ADJUSTMENTS_B ADJ
752 WHERE AST.PARENT_OBJECT_CODE = 'LEASEQUOTE'
753 AND ADJ.PARENT_OBJECT_ID = AST.ID
754 AND AST.PARENT_OBJECT_ID = p_lsq_id
755 AND ADJ.ADJUSTMENT_SOURCE_TYPE = cp_adj_src_type;
756
757 BEGIN
758 l_return_status := OKL_API.G_RET_STS_SUCCESS;
759 L_MODULE := 'OKL.PLSQL.OKL_LEASE_APP_PVT.POPULATE_EC_REC';
760
761 -- check for logging on PROCEDURE level
762 L_DEBUG_ENABLED := NVL(OKL_DEBUG_PUB.CHECK_LOG_ENABLED, 'N');
763 IS_DEBUG_PROCEDURE_ON := NVL(OKL_DEBUG_PUB.CHECK_LOG_ON(L_MODULE, FND_LOG.LEVEL_PROCEDURE), FALSE);
764 -- check for logging on STATEMENT level
765 IS_DEBUG_STATEMENT_ON := NVL(OKL_DEBUG_PUB.CHECK_LOG_ON(L_MODULE, FND_LOG.LEVEL_STATEMENT), FALSE);
766
767 -- call START_ACTIVITY to create savepoint, check compatibility
768 -- and initialize message list
769 l_return_status := OKL_API.START_ACTIVITY(
770 p_api_name => l_api_name
771 ,p_pkg_name => G_PKG_NAME
772 ,p_init_msg_list => p_init_msg_list
773 ,l_api_version => l_api_version
774 ,p_api_version => p_api_version
775 ,p_api_type => G_API_TYPE
776 ,x_return_status => l_return_status);
777
778 -- check if activity started successfully
779 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
780 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
781 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
782 RAISE OKL_API.G_EXCEPTION_ERROR;
783 END IF;
784
785 --Populate Eligibility criteria rec
786 OPEN lse_app_dtls_csr(p_lap_id);
787 FETCH lse_app_dtls_csr INTO lse_app_dtls_rec;
788 CLOSE lse_app_dtls_csr;
789
790 --Obtain the details of Lease Quote line of Lease App
791 OPEN l_lsq_dtls_csr(p_lap_id);
792 FETCH l_lsq_dtls_csr INTO l_lsq_dtls_rec;
793 CLOSE l_lsq_dtls_csr;
794
795 lx_okl_ec_rec.target_id := p_lap_id;
796 lx_okl_ec_rec.target_type := 'LEASE_APP';
797 lx_okl_ec_rec.target_eff_from := lse_app_dtls_rec.valid_from;
798 lx_okl_ec_rec.term := l_lsq_dtls_rec.term;
799 lx_okl_ec_rec.deal_size := get_financed_Amount(l_lsq_dtls_rec.lsq_id);
800 lx_okl_ec_rec.customer_credit_class := get_credit_classfication(lse_app_dtls_rec.prospect_id, lse_app_dtls_rec.cust_acct_id, NULL);
801 lx_okl_ec_rec.currency_code := lse_app_dtls_rec.currency_code;
802
803 OPEN l_adj_sum_csr(l_lsq_dtls_rec.lsq_id, 'DOWN_PAYMENT');
804 FETCH l_adj_sum_csr INTO lx_okl_ec_rec.down_payment;
805 CLOSE l_adj_sum_csr;
806
807 OPEN l_adj_sum_csr(l_lsq_dtls_rec.lsq_id, 'TRADEIN');
808 FETCH l_adj_sum_csr INTO lx_okl_ec_rec.trade_in_value;
809 CLOSE l_adj_sum_csr;
810
811 l_counter := 1;
812 FOR l_item_rec IN l_item_csr(l_lsq_dtls_rec.lsq_id)
813 LOOP
814 l_item_tbl(l_counter) := l_item_rec.inv_item_id;
815 END LOOP;
816 lx_okl_ec_rec.item_table := l_item_tbl;
817
818 x_return_status := l_return_status;
819
820 OKL_API.END_ACTIVITY(
821 x_msg_count => x_msg_count
822 ,x_msg_data => x_msg_data);
823
824 EXCEPTION
825 WHEN OKL_API.G_EXCEPTION_ERROR THEN
826 --Lease Application Details cursor
827 IF lse_app_dtls_csr%ISOPEN
828 THEN
829 CLOSE lse_app_dtls_csr;
830 END IF;
831 --Lease Quote Details Cursor
832 IF l_lsq_dtls_csr%ISOPEN
833 THEN
834 CLOSE l_lsq_dtls_csr;
835 END IF;
836 --Inventory Item Id Cursor
837 IF l_item_csr%ISOPEN
838 THEN
839 CLOSE l_item_csr;
840 END IF;
841 --Sum of Adjustment Cursor
842 IF l_adj_sum_csr%ISOPEN
843 THEN
844 CLOSE l_adj_sum_csr;
845 END IF;
846 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
847 p_api_name => l_api_name,
848 p_pkg_name => G_PKG_NAME,
849 p_exc_name => 'OKL_API.G_RET_STS_ERROR',
850 x_msg_count => x_msg_count,
851 x_msg_data => x_msg_data,
852 p_api_type => G_API_TYPE);
853
854 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
855 --Lease Application Details cursor
856 IF lse_app_dtls_csr%ISOPEN
857 THEN
858 CLOSE lse_app_dtls_csr;
859 END IF;
860 --Lease Quote Details Cursor
861 IF l_lsq_dtls_csr%ISOPEN
862 THEN
863 CLOSE l_lsq_dtls_csr;
864 END IF;
865 --Inventory Item Id Cursor
866 IF l_item_csr%ISOPEN
867 THEN
868 CLOSE l_item_csr;
869 END IF;
870 --Sum of Adjustment Cursor
871 IF l_adj_sum_csr%ISOPEN
872 THEN
873 CLOSE l_adj_sum_csr;
874 END IF;
875 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
876 p_api_name => l_api_name,
877 p_pkg_name => G_PKG_NAME,
878 p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
879 x_msg_count => x_msg_count,
880 x_msg_data => x_msg_data,
881 p_api_type => G_API_TYPE);
882
883 WHEN OTHERS THEN
884 --Lease Application Details cursor
885 IF lse_app_dtls_csr%ISOPEN
886 THEN
887 CLOSE lse_app_dtls_csr;
888 END IF;
889 --Lease Quote Details Cursor
890 IF l_lsq_dtls_csr%ISOPEN
891 THEN
892 CLOSE l_lsq_dtls_csr;
893 END IF;
894 --Inventory Item Id Cursor
895 IF l_item_csr%ISOPEN
896 THEN
897 CLOSE l_item_csr;
898 END IF;
899 --Sum of Adjustment Cursor
900 IF l_adj_sum_csr%ISOPEN
901 THEN
902 CLOSE l_adj_sum_csr;
903 END IF;
904 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
905 p_api_name => l_api_name,
906 p_pkg_name => G_PKG_NAME,
907 p_exc_name => 'OTHERS',
908 x_msg_count => x_msg_count,
909 x_msg_data => x_msg_data,
910 p_api_type => G_API_TYPE);
911 END populate_ec_rec;
912
913 -------------------------------------------------------------------------------
914 -- FUNCTION get_financed_amount
915 -------------------------------------------------------------------------------
916 -- Start of comments
917 --
918 -- Function Name : get_financed_amount
919 -- Description : This function returns the financed amount for given
920 -- Lease Quote
921 -- Business Rules : This function returns the financed amount for given
922 -- Lease Quote
923 -- Parameters :
924 -- Version : 1.0
925 -- History : 23-SEP-2005 PAGARG created
926 --
927 -- End of comments
928 FUNCTION get_financed_amount(
929 p_lease_qte_id IN NUMBER)
930 RETURN NUMBER
931 IS
932 --cursor to find total capital amount
933 CURSOR l_cap_amnt_csr(p_lsq_id NUMBER)
934 IS
935 SELECT NVL(SUM(ASS.OEC), 0) ASSET_AMOUNT
936 FROM OKL_ASSETS_B ASS
937 WHERE ASS.PARENT_OBJECT_CODE = 'LEASEQUOTE'
938 AND ASS.PARENT_OBJECT_ID = p_lsq_id;
939
940 -- cursor to find total Rollover Fee Amount for a Lease Application
941 CURSOR l_fee_csr(p_lsq_id NUMBER, p_fee_type VARCHAR2)
942 IS
943 SELECT NVL(SUM(FEE.FEE_AMOUNT), 0) FEE_AMOUNT
944 FROM OKL_FEES_B FEE
945 WHERE FEE.FEE_TYPE = p_fee_type
946 AND FEE.PARENT_OBJECT_CODE = 'LEASEQUOTE'
947 AND FEE.PARENT_OBJECT_ID = p_lsq_id;
948
949 -- added for bug 6596860 --
950 CURSOR l_adj_sum_csr(p_lsq_id IN NUMBER)
951 IS
952 SELECT NVL(SUM(VALUE), 0 )
953 FROM OKL_ASSETS_B AST
954 , OKL_COST_ADJUSTMENTS_B ADJ
955 WHERE AST.PARENT_OBJECT_CODE = 'LEASEQUOTE'
956 AND ADJ.PARENT_OBJECT_ID = AST.ID
957 AND ADJ.ADJUSTMENT_SOURCE_TYPE IN ('DOWN_PAYMENT', 'TRADEIN')
958 AND AST.PARENT_OBJECT_ID = p_lsq_id;
959
960
961 l_rollover_fee NUMBER;
962 l_capital_amount NUMBER;
963 l_financed_fee NUMBER;
964 l_financed_amount NUMBER;
965 l_adj_amount NUMBER; -- added for bug 6596860 --
966 l_capitalized_fee NUMBER; --added for bug 6697231 --
967
968 BEGIN
969 IF ( p_lease_qte_id IS NULL )
970 THEN
971 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
972 END IF;
973
974 l_capital_amount := 0;
975 l_financed_fee := 0;
976 l_financed_amount := 0;
977 l_rollover_fee := 0;
978 l_adj_amount :=0; -- added for bug 6596860 --
979 l_capitalized_fee:=0; --added for bug 6697231 --
980
981 OPEN l_cap_amnt_csr(p_lease_qte_id);
982 FETCH l_cap_amnt_csr INTO l_capital_amount;
983 CLOSE l_cap_amnt_csr;
984
985 OPEN l_fee_csr(p_lease_qte_id, 'ROLLOVER');
986 FETCH l_fee_csr INTO l_rollover_fee;
987 CLOSE l_fee_csr;
988
989 OPEN l_fee_csr(p_lease_qte_id, 'FINANCED');
990 FETCH l_fee_csr INTO l_financed_fee;
991 CLOSE l_fee_csr;
992
993 --added for bug 6697231
994 OPEN l_fee_csr(p_lease_qte_id, 'CAPITALIZED');
995 FETCH l_fee_csr INTO l_capitalized_fee;
996 CLOSE l_fee_csr;
997 --added for bug 6697231:End
998
999 -- added for bug 6596860 --
1000 OPEN l_adj_sum_csr(p_lease_qte_id);
1001 FETCH l_adj_sum_csr INTO l_adj_amount;
1002 CLOSE l_adj_sum_csr;
1003
1004 --bug 6697231: added capitalized fee
1005 l_financed_amount := l_capital_amount + l_financed_fee + l_rollover_fee + l_capitalized_fee - l_adj_amount ; -- Subtract adjusted amount (Bug 6596860)
1006
1007 RETURN l_financed_amount;
1008 EXCEPTION
1009 WHEN OKL_API.G_EXCEPTION_ERROR
1010 THEN
1011 RETURN 0;
1012 WHEN OTHERS
1013 THEN
1014 --Capital Amount cursor
1015 IF l_cap_amnt_csr%ISOPEN
1016 THEN
1017 CLOSE l_cap_amnt_csr;
1018 END IF;
1019 --Fee Amount cursor
1020 IF l_fee_csr%ISOPEN
1021 THEN
1022 CLOSE l_fee_csr;
1023 END IF;
1024 OKL_API.SET_MESSAGE(
1025 p_app_name => G_APP_NAME,
1026 p_msg_name => G_UNEXPECTED_ERROR,
1027 p_token1 => G_SQLCODE_TOKEN,
1028 p_token1_value => SQLCODE,
1029 p_token2 => G_SQLERRM_TOKEN,
1030 p_token2_value => SQLERRM);
1031 RETURN 0;
1032 END get_financed_amount;
1033
1034 -------------------------------------------------------------------------------
1035 -- PROCEDURE populate_lease_app
1036 -------------------------------------------------------------------------------
1037 -- Start of comments
1038 --
1039 -- Procedure Name : populate_lease_app
1040 -- Description : This procedure populates lapv_rec and lsqv_rec with the
1041 -- : database values for a given lease application.
1042 -- Business Rules : This procedure populates lapv_rec and lsqv_rec with the
1043 -- : database values for a given lease application.
1044 -- Parameters :
1045 -- Version : 1.0
1046 -- History : 30-MAY-2005 PAGARG created
1047 --
1048 -- End of comments
1049 PROCEDURE populate_lease_app(
1050 p_api_version IN NUMBER,
1051 p_init_msg_list IN VARCHAR2,
1052 x_return_status OUT NOCOPY VARCHAR2,
1053 x_msg_count OUT NOCOPY NUMBER,
1054 x_msg_data OUT NOCOPY VARCHAR2,
1055 p_lap_id IN OKL_LEASE_APPLICATIONS_B.ID%TYPE,
1056 x_lapv_rec OUT NOCOPY lapv_rec_type,
1057 x_lsqv_rec OUT NOCOPY lsqv_rec_type) IS
1058
1059 -- Variables Declarations
1060 l_api_version CONSTANT NUMBER DEFAULT G_INIT_VERSION;
1061 l_api_name CONSTANT VARCHAR2(30) DEFAULT 'POPULATE_LEASE_APP';
1062 l_return_status VARCHAR2(1);
1063
1064 -- Record/Table Type Declarations
1065 l_lapv_rec lapv_rec_type;
1066 l_lsqv_rec lsqv_rec_type;
1067
1068 --Cursor to populate Lease Application details from database
1069 CURSOR lap_db_val_csr(cp_lap_id NUMBER) IS
1070 SELECT LAB.ID ID
1071 , LAB.REFERENCE_NUMBER LEASE_APPL_NUMBER
1072 , LAB.APPLICATION_STATUS LEASE_APPL_STATUS_CODE
1073 , LAB.VALID_FROM VALID_FROM
1074 , LAB.VALID_TO VALID_TO
1075 , LAB.PROSPECT_ID PROSPECT_ID
1076 , LAB.PROSPECT_ADDRESS_ID PROSPECT_ADDRESS_ID
1077 , LAB.CUST_ACCT_ID CUST_ACCT_ID
1078 , LAB.CURRENCY_CODE CURRENCY_CODE
1079 , LAB.CURRENCY_CONVERSION_TYPE CONVERSION_TYPE
1080 , LAB.CURRENCY_CONVERSION_RATE CONVERSION_RATE
1081 , LAB.CURRENCY_CONVERSION_DATE CONVERSION_DATE
1082 , LAB.LEASEAPP_TEMPLATE_ID LEASEAPP_TEMPLATE_ID
1083 , LAB.LEASE_OPPORTUNITY_ID LEASE_OPPORTUNITY_ID
1084 , LAB.CREDIT_LINE_ID CREDIT_LINE_ID
1085 , LAB.PROGRAM_AGREEMENT_ID PROGRAM_AGREEMENT_ID
1086 , LAB.MASTER_LEASE_ID MASTER_LEASE_ID
1087 , LAB.SALES_REP_ID SALES_REP_ID
1088 , LAB.SALES_TERRITORY_ID SALES_TERRITORY_ID
1089 , LAB.INDUSTRY_CODE INDUSTRY_CODE
1090 , LAB.INDUSTRY_CLASS INDUSTRY_CLASS
1091 , LAT.SHORT_DESCRIPTION DESCRIPTION
1092 , LAB.ORG_ID ORG_ID
1093 , LAB.OBJECT_VERSION_NUMBER OBJECT_VERSION_NUMBER
1094 , LAB.CREATED_BY CREATED_BY
1095 , LAB.CREATION_DATE CREATION_DATE
1096 , LAB.PARENT_LEASEAPP_ID PARENT_LEASEAPP_ID
1097 , LAB.ACTION ACTION
1098 , LAB.ORIG_STATUS ORIG_STATUS
1099 , LQ.ID LSE_QTE_ID
1100 , LQ.REFERENCE_NUMBER QUOTE_NUMBER
1101 , LQ.STATUS STATUS_CODE
1102 , LQ.VALID_FROM LQ_VALID_FROM
1103 , LQ.VALID_TO LQ_VALID_TO
1104 , LQ.PRICING_METHOD PRICING_METHOD_CODE
1105 , LQ.TERM TERM
1106 , LQ.PRODUCT_ID PRODUCT_ID
1107 , LQ.END_OF_TERM_OPTION_ID END_OF_TERM_OPTION_ID
1108 , LQ.PROPERTY_TAX_APPLICABLE PROPERTY_TAX_APPLICABLE_CODE
1109 , LQ.PROPERTY_TAX_BILLING_TYPE PROPERTY_TAX_BILLING_TYPE_CODE
1110 , LQ.UPFRONT_TAX_TREATMENT UPFRONT_TAX_TREATMENT_CODE
1111 , LQ.PURCHASE_OF_LEASE PURCHASE_OF_LEASE_CODE
1112 , LQ.SALE_AND_LEASE_BACK SALE_AND_LEASE_BACK_CODE
1113 , LQ.INTEREST_DISCLOSED INTEREST_DISCLOSED_CODE
1114 , LQ.TRANSFER_OF_TITLE TRANSFER_OF_TITLE_CODE
1115 , LQ.USAGE_CATEGORY USAGE_CATEGORY
1116 , LQ.AGE_OF_EQUIPMENT AGE_OF_EQUIPMENT
1117 , LQ.UPFRONT_TAX_STREAM_TYPE UPFRONT_TAX_STY_ID
1118 , LQ.PARENT_OBJECT_CODE PARENT_OBJECT_CODE
1119 , LQ.PARENT_OBJECT_ID PARENT_OBJECT_ID
1120 , LQ.EXPECTED_START_DATE LQ_EXPECTED_START_DATE
1121 , LQ.OBJECT_VERSION_NUMBER LQ_OBJECT_VERSION_NUMBER
1122 --asawanka bug 4721141 start
1123 , LQ.EXPECTED_FUNDING_DATE LQ_EXPECTED_FUNDING_DATE
1124 , LQ.EXPECTED_DELIVERY_DATE LQ_EXPECTED_DELIVERY_DATE
1125 --asawanka bug 4721141 end
1126 --Added Bug 5647107 ssdeshpa start
1127 , LQ.LEGAL_ENTITY_ID LEGAL_ENTITY_ID
1128 --Added Bug 5647107 ssdeshpa start
1129 FROM OKL_LEASE_APPLICATIONS_B LAB
1130 , OKL_LEASE_APPLICATIONS_TL LAT
1131 , OKL_LEASE_QUOTES_B LQ
1132 WHERE LAB.ID = LAT.ID
1133 AND LAT.LANGUAGE = USERENV('LANG')
1134 AND LQ.PARENT_OBJECT_ID = LAB.ID
1135 AND LQ.PARENT_OBJECT_CODE = 'LEASEAPP'
1136 AND LQ.PRIMARY_QUOTE = 'Y'
1137 AND LAB.ID = cp_lap_id;
1138 lap_db_val_rec lap_db_val_csr%ROWTYPE;
1139
1140 BEGIN
1141 l_return_status := OKL_API.G_RET_STS_SUCCESS;
1142 L_MODULE := 'OKL.PLSQL.OKL_LEASE_APP_PVT.POPULATE_LEASE_APP';
1143
1144 -- check for logging on PROCEDURE level
1145 L_DEBUG_ENABLED := NVL(OKL_DEBUG_PUB.CHECK_LOG_ENABLED, 'N');
1146 IS_DEBUG_PROCEDURE_ON := NVL(OKL_DEBUG_PUB.CHECK_LOG_ON(L_MODULE, FND_LOG.LEVEL_PROCEDURE), FALSE);
1147 -- check for logging on STATEMENT level
1148 IS_DEBUG_STATEMENT_ON := NVL(OKL_DEBUG_PUB.CHECK_LOG_ON(L_MODULE, FND_LOG.LEVEL_STATEMENT), FALSE);
1149
1150 -- call START_ACTIVITY to create savepoint, check compatibility
1151 -- and initialize message list
1152 l_return_status := OKL_API.START_ACTIVITY(
1153 p_api_name => l_api_name
1154 ,p_pkg_name => G_PKG_NAME
1155 ,p_init_msg_list => p_init_msg_list
1156 ,l_api_version => l_api_version
1157 ,p_api_version => p_api_version
1158 ,p_api_type => G_API_TYPE
1159 ,x_return_status => l_return_status);
1160
1161 -- check if activity started successfully
1162 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1163 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1164 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
1165 RAISE OKL_API.G_EXCEPTION_ERROR;
1166 END IF;
1167
1168 --Populate lease application rec with database values
1169 IF(p_lap_id IS NOT NULL AND
1170 p_lap_id <> OKL_API.G_MISS_NUM)
1171 THEN
1172 OPEN lap_db_val_csr(p_lap_id);
1173 FETCH lap_db_val_csr INTO lap_db_val_rec;
1174 IF(lap_db_val_csr%NOTFOUND)
1175 THEN
1176 l_return_status := OKL_API.G_RET_STS_ERROR;
1177 OKL_API.SET_MESSAGE(
1178 p_app_name => G_APP_NAME,
1179 p_msg_name => 'OKL_SO_LSE_APP_INVALID');
1180 RAISE OKL_API.G_EXCEPTION_ERROR;
1181 ELSE
1182 l_lapv_rec.id := lap_db_val_rec.id;
1183 l_lapv_rec.reference_number := lap_db_val_rec.lease_appl_number;
1184 l_lapv_rec.application_status := lap_db_val_rec.lease_appl_status_code;
1185 l_lapv_rec.valid_from := lap_db_val_rec.valid_from;
1186 l_lapv_rec.valid_to := lap_db_val_rec.valid_to;
1187 l_lapv_rec.prospect_id := lap_db_val_rec.prospect_id;
1188 l_lapv_rec.prospect_address_id := lap_db_val_rec.prospect_address_id;
1189 l_lapv_rec.cust_acct_id := lap_db_val_rec.cust_acct_id;
1190 l_lapv_rec.currency_code := lap_db_val_rec.currency_code;
1191 l_lapv_rec.currency_conversion_type := lap_db_val_rec.conversion_type;
1192 l_lapv_rec.currency_conversion_rate := lap_db_val_rec.conversion_rate;
1193 l_lapv_rec.currency_conversion_date := lap_db_val_rec.conversion_date;
1194 l_lapv_rec.leaseapp_template_id := lap_db_val_rec.leaseapp_template_id;
1195 l_lapv_rec.lease_opportunity_id := lap_db_val_rec.lease_opportunity_id;
1196 l_lapv_rec.credit_line_id := lap_db_val_rec.credit_line_id;
1197 l_lapv_rec.program_agreement_id := lap_db_val_rec.program_agreement_id;
1198 l_lapv_rec.master_lease_id := lap_db_val_rec.master_lease_id;
1199 l_lapv_rec.sales_rep_id := lap_db_val_rec.sales_rep_id;
1200 l_lapv_rec.sales_territory_id := lap_db_val_rec.sales_territory_id;
1201 l_lapv_rec.industry_code := lap_db_val_rec.industry_code;
1202 l_lapv_rec.industry_class := lap_db_val_rec.industry_class;
1203 l_lapv_rec.short_description := lap_db_val_rec.description;
1204 l_lapv_rec.org_id := lap_db_val_rec.org_id;
1205 l_lapv_rec.object_version_number := lap_db_val_rec.object_version_number;
1206 l_lapv_rec.parent_leaseapp_id := lap_db_val_rec.parent_leaseapp_id;
1207 l_lapv_rec.action := lap_db_val_rec.action;
1208 l_lapv_rec.orig_status := lap_db_val_rec.orig_status;
1209 l_lsqv_rec.id := lap_db_val_rec.lse_qte_id;
1210 l_lsqv_rec.reference_number := lap_db_val_rec.quote_number;
1211 l_lsqv_rec.status := lap_db_val_rec.status_code;
1212 l_lsqv_rec.valid_from := lap_db_val_rec.lq_valid_from;
1213 l_lsqv_rec.valid_to := lap_db_val_rec.lq_valid_to;
1214 l_lsqv_rec.pricing_method := lap_db_val_rec.pricing_method_code;
1215 l_lsqv_rec.term := lap_db_val_rec.term;
1216 l_lsqv_rec.product_id := lap_db_val_rec.product_id;
1217 l_lsqv_rec.end_of_term_option_id := lap_db_val_rec.end_of_term_option_id;
1218 l_lsqv_rec.property_tax_applicable := lap_db_val_rec.property_tax_applicable_code;
1219 l_lsqv_rec.property_tax_billing_type := lap_db_val_rec.property_tax_billing_type_code;
1220 l_lsqv_rec.upfront_tax_treatment := lap_db_val_rec.upfront_tax_treatment_code;
1221 l_lsqv_rec.purchase_of_lease := lap_db_val_rec.purchase_of_lease_code;
1222 l_lsqv_rec.sale_and_lease_back := lap_db_val_rec.sale_and_lease_back_code;
1223 l_lsqv_rec.interest_disclosed := lap_db_val_rec.interest_disclosed_code;
1224 l_lsqv_rec.transfer_of_title := lap_db_val_rec.transfer_of_title_code;
1225 l_lsqv_rec.usage_category := lap_db_val_rec.usage_category;
1226 l_lsqv_rec.age_of_equipment := lap_db_val_rec.age_of_equipment;
1227 l_lsqv_rec.upfront_tax_stream_type := lap_db_val_rec.upfront_tax_sty_id;
1228 l_lsqv_rec.parent_object_code := lap_db_val_rec.parent_object_code;
1229 l_lsqv_rec.parent_object_id := lap_db_val_rec.parent_object_id;
1230 l_lsqv_rec.expected_start_date := lap_db_val_rec.lq_expected_start_date;
1231 l_lsqv_rec.object_version_number := lap_db_val_rec.lq_object_version_number;
1232 --asawanka bug 4721141 start
1233 l_lsqv_rec.expected_funding_date := lap_db_val_rec.lq_expected_funding_date;
1234 l_lsqv_rec.expected_delivery_date := lap_db_val_rec.lq_expected_delivery_date;
1235 --asawanka bug 4721141 end
1236 --Added Bug 5647107 ssdeshpa start
1237 l_lsqv_rec.legal_entity_id := lap_db_val_rec.legal_entity_id;
1238 --Added Bug 5647107 ssdeshpa end
1239 END IF;
1240 CLOSE lap_db_val_csr;
1241 ELSE
1242 l_return_status := OKL_API.G_RET_STS_ERROR;
1243 OKL_API.SET_MESSAGE(
1244 p_app_name => G_APP_NAME,
1245 p_msg_name => 'OKL_SO_LSE_APP_INVALID');
1246 RAISE OKL_API.G_EXCEPTION_ERROR;
1247 END IF; --Lease Application Id is null or G_MISS_NUM
1248
1249 x_lapv_rec := l_lapv_rec;
1250 x_lsqv_rec := l_lsqv_rec;
1251 x_return_status := l_return_status;
1252
1253 OKL_API.END_ACTIVITY(
1254 x_msg_count => x_msg_count
1255 ,x_msg_data => x_msg_data);
1256 EXCEPTION
1257 WHEN OKL_API.G_EXCEPTION_ERROR THEN
1258 --Lease Application Details cursor
1259 IF lap_db_val_csr%ISOPEN
1260 THEN
1261 CLOSE lap_db_val_csr;
1262 END IF;
1263 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
1264 p_api_name => l_api_name,
1265 p_pkg_name => G_PKG_NAME,
1266 p_exc_name => 'OKL_API.G_RET_STS_ERROR',
1267 x_msg_count => x_msg_count,
1268 x_msg_data => x_msg_data,
1269 p_api_type => G_API_TYPE);
1270
1271 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1272 --Lease Application Details cursor
1273 IF lap_db_val_csr%ISOPEN
1274 THEN
1275 CLOSE lap_db_val_csr;
1276 END IF;
1277 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
1278 p_api_name => l_api_name,
1279 p_pkg_name => G_PKG_NAME,
1280 p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
1281 x_msg_count => x_msg_count,
1282 x_msg_data => x_msg_data,
1283 p_api_type => G_API_TYPE);
1284
1285 WHEN OTHERS THEN
1286 --Lease Application Details cursor
1287 IF lap_db_val_csr%ISOPEN
1288 THEN
1289 CLOSE lap_db_val_csr;
1290 END IF;
1291 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
1292 p_api_name => l_api_name,
1293 p_pkg_name => G_PKG_NAME,
1294 p_exc_name => 'OTHERS',
1295 x_msg_count => x_msg_count,
1296 x_msg_data => x_msg_data,
1297 p_api_type => G_API_TYPE);
1298 END populate_lease_app;
1299
1300 -------------------------------------------------------------------------------
1301 -- PROCEDURE pop_checklist_item
1302 -------------------------------------------------------------------------------
1303 -- Start of comments
1304 --
1305 -- Procedure Name : pop_checklist_item
1306 -- Description : This procedure populates cldv_rec with the database values
1307 -- for a given Checklist Item Id.
1308 -- Business Rules : This procedure populates cldv_rec with the database values
1309 -- for a given Checklist Item Id.
1310 -- Parameters :
1311 -- Version : 1.0
1312 -- History : 28-MAR-2006 PAGARG created
1313 --
1314 -- End of comments
1315 PROCEDURE pop_checklist_item(
1316 p_api_version IN NUMBER,
1317 p_init_msg_list IN VARCHAR2,
1318 p_cld_id IN OKL_CHECKLIST_DETAILS.ID%TYPE,
1319 x_cldv_rec OUT NOCOPY OKL_CLD_PVT.CLDV_REC_TYPE,
1320 x_return_status OUT NOCOPY VARCHAR2,
1321 x_msg_count OUT NOCOPY NUMBER,
1322 x_msg_data OUT NOCOPY VARCHAR2)
1323 IS
1324 -- Variables Declarations
1325 l_api_version CONSTANT NUMBER DEFAULT G_INIT_VERSION;
1326 l_api_name CONSTANT VARCHAR2(30) DEFAULT 'POP_CHECKLIST_ITEM';
1327 l_return_status VARCHAR2(1);
1328
1329 -- Record/Table Type Declarations
1330 l_cldv_rec OKL_CLD_PVT.CLDV_REC_TYPE;
1331
1332 --Cursor to populate Lease Application details from database
1333 CURSOR cld_db_val_csr(cp_cld_id NUMBER) IS
1334 SELECT CLD.ID ID
1335 , CLD.OBJECT_VERSION_NUMBER OBJECT_VERSION_NUMBER
1336 , CLD.CKL_ID CKL_ID
1337 , CLD.TODO_ITEM_CODE TODO_ITEM_CODE
1338 , CLD.ATTRIBUTE_CATEGORY ATTRIBUTE_CATEGORY
1339 , CLD.ATTRIBUTE1 ATTRIBUTE1
1340 , CLD.ATTRIBUTE2 ATTRIBUTE2
1341 , CLD.ATTRIBUTE3 ATTRIBUTE3
1342 , CLD.ATTRIBUTE4 ATTRIBUTE4
1343 , CLD.ATTRIBUTE5 ATTRIBUTE5
1344 , CLD.ATTRIBUTE6 ATTRIBUTE6
1345 , CLD.ATTRIBUTE7 ATTRIBUTE7
1346 , CLD.ATTRIBUTE8 ATTRIBUTE8
1347 , CLD.ATTRIBUTE9 ATTRIBUTE9
1348 , CLD.ATTRIBUTE10 ATTRIBUTE10
1349 , CLD.ATTRIBUTE11 ATTRIBUTE11
1350 , CLD.ATTRIBUTE12 ATTRIBUTE12
1351 , CLD.ATTRIBUTE13 ATTRIBUTE13
1352 , CLD.ATTRIBUTE14 ATTRIBUTE14
1353 , CLD.ATTRIBUTE15 ATTRIBUTE15
1354 , CLD.ORG_ID ORG_ID
1355 , CLD.MANDATORY_FLAG MANDATORY_FLAG
1356 , CLD.USER_COMPLETE_FLAG USER_COMPLETE_FLAG
1357 , CLD.ADMIN_NOTE ADMIN_NOTE
1358 , CLD.USER_NOTE USER_NOTE
1359 , CLD.FUNCTION_VALIDATE_RSTS FUNCTION_VALIDATE_RSTS
1360 , CLD.FUNCTION_VALIDATE_MSG FUNCTION_VALIDATE_MSG
1361 , CLD.DNZ_CHECKLIST_OBJ_ID DNZ_CHECKLIST_OBJ_ID
1362 , CLD.FUNCTION_ID FUNCTION_ID
1363 , CLD.INST_CHECKLIST_TYPE INST_CHECKLIST_TYPE
1364 , CLD.APPEAL_FLAG APPEAL_FLAG
1365 FROM OKL_CHECKLIST_DETAILS CLD
1366 WHERE CLD.ID = cp_cld_id;
1367 cld_db_val_rec cld_db_val_csr%ROWTYPE;
1368 BEGIN
1369 l_return_status := OKL_API.G_RET_STS_SUCCESS;
1370 L_MODULE := 'OKL.PLSQL.OKL_LEASE_APP_PVT.POP_CHECKLIST_ITEM';
1371
1372 -- check for logging on PROCEDURE level
1373 L_DEBUG_ENABLED := NVL(OKL_DEBUG_PUB.CHECK_LOG_ENABLED, 'N');
1374 IS_DEBUG_PROCEDURE_ON := NVL(OKL_DEBUG_PUB.CHECK_LOG_ON(L_MODULE, FND_LOG.LEVEL_PROCEDURE), FALSE);
1375 -- check for logging on STATEMENT level
1376 IS_DEBUG_STATEMENT_ON := NVL(OKL_DEBUG_PUB.CHECK_LOG_ON(L_MODULE, FND_LOG.LEVEL_STATEMENT), FALSE);
1377
1378 -- call START_ACTIVITY to create savepoint, check compatibility
1379 -- and initialize message list
1380 l_return_status := OKL_API.START_ACTIVITY(
1381 p_api_name => l_api_name
1382 ,p_pkg_name => G_PKG_NAME
1383 ,p_init_msg_list => p_init_msg_list
1384 ,l_api_version => l_api_version
1385 ,p_api_version => p_api_version
1386 ,p_api_type => G_API_TYPE
1387 ,x_return_status => l_return_status);
1388
1389 -- check if activity started successfully
1390 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1391 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1392 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
1393 RAISE OKL_API.G_EXCEPTION_ERROR;
1394 END IF;
1395
1396 --Populate lease application rec with database values
1397 IF(p_cld_id IS NOT NULL AND
1398 p_cld_id <> OKL_API.G_MISS_NUM)
1399 THEN
1400 OPEN cld_db_val_csr(p_cld_id);
1401 FETCH cld_db_val_csr INTO cld_db_val_rec;
1402 IF(cld_db_val_csr%FOUND)
1403 THEN
1404 l_cldv_rec.id := cld_db_val_rec.id;
1405 l_cldv_rec.object_version_number := cld_db_val_rec.object_version_number;
1406 l_cldv_rec.ckl_id := cld_db_val_rec.ckl_id;
1407 l_cldv_rec.todo_item_code := cld_db_val_rec.todo_item_code;
1408 l_cldv_rec.attribute_category := cld_db_val_rec.attribute_category;
1409 l_cldv_rec.attribute1 := cld_db_val_rec.attribute1;
1410 l_cldv_rec.attribute2 := cld_db_val_rec.attribute2;
1411 l_cldv_rec.attribute3 := cld_db_val_rec.attribute3;
1412 l_cldv_rec.attribute4 := cld_db_val_rec.attribute4;
1413 l_cldv_rec.attribute5 := cld_db_val_rec.attribute5;
1414 l_cldv_rec.attribute6 := cld_db_val_rec.attribute6;
1415 l_cldv_rec.attribute7 := cld_db_val_rec.attribute7;
1416 l_cldv_rec.attribute8 := cld_db_val_rec.attribute8;
1417 l_cldv_rec.attribute9 := cld_db_val_rec.attribute9;
1418 l_cldv_rec.attribute10 := cld_db_val_rec.attribute10;
1419 l_cldv_rec.attribute11 := cld_db_val_rec.attribute11;
1420 l_cldv_rec.attribute12 := cld_db_val_rec.attribute12;
1421 l_cldv_rec.attribute13 := cld_db_val_rec.attribute13;
1422 l_cldv_rec.attribute14 := cld_db_val_rec.attribute14;
1423 l_cldv_rec.attribute15 := cld_db_val_rec.attribute15;
1424 l_cldv_rec.org_id := cld_db_val_rec.org_id;
1425 l_cldv_rec.mandatory_flag := cld_db_val_rec.mandatory_flag;
1426 l_cldv_rec.user_complete_flag := cld_db_val_rec.user_complete_flag;
1427 l_cldv_rec.admin_note := cld_db_val_rec.admin_note;
1428 l_cldv_rec.user_note := cld_db_val_rec.user_note;
1429 l_cldv_rec.function_validate_rsts := cld_db_val_rec.function_validate_rsts;
1430 l_cldv_rec.function_validate_msg := cld_db_val_rec.function_validate_msg;
1431 l_cldv_rec.dnz_checklist_obj_id := cld_db_val_rec.dnz_checklist_obj_id;
1432 l_cldv_rec.function_id := cld_db_val_rec.function_id;
1433 l_cldv_rec.inst_checklist_type := cld_db_val_rec.inst_checklist_type;
1434 l_cldv_rec.appeal_flag := cld_db_val_rec.appeal_flag;
1435 END IF;
1436 CLOSE cld_db_val_csr;
1437 END IF;--Checklist Details Id is null or G_MISS_NUM
1438
1439 x_cldv_rec := l_cldv_rec;
1440 x_return_status := l_return_status;
1441 OKL_API.END_ACTIVITY(
1442 x_msg_count => x_msg_count
1443 ,x_msg_data => x_msg_data);
1444 EXCEPTION
1445 WHEN OKL_API.G_EXCEPTION_ERROR THEN
1446 --Checklist Details cursor
1447 IF cld_db_val_csr%ISOPEN
1448 THEN
1449 CLOSE cld_db_val_csr;
1450 END IF;
1451 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
1452 p_api_name => l_api_name,
1453 p_pkg_name => G_PKG_NAME,
1454 p_exc_name => 'OKL_API.G_RET_STS_ERROR',
1455 x_msg_count => x_msg_count,
1456 x_msg_data => x_msg_data,
1457 p_api_type => G_API_TYPE);
1458
1459 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1460 --Checklist Details cursor
1461 IF cld_db_val_csr%ISOPEN
1462 THEN
1463 CLOSE cld_db_val_csr;
1464 END IF;
1465 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
1466 p_api_name => l_api_name,
1467 p_pkg_name => G_PKG_NAME,
1468 p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
1469 x_msg_count => x_msg_count,
1470 x_msg_data => x_msg_data,
1471 p_api_type => G_API_TYPE);
1472
1473 WHEN OTHERS THEN
1474 --Checklist Details cursor
1475 IF cld_db_val_csr%ISOPEN
1476 THEN
1477 CLOSE cld_db_val_csr;
1478 END IF;
1479 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
1480 p_api_name => l_api_name,
1481 p_pkg_name => G_PKG_NAME,
1482 p_exc_name => 'OTHERS',
1483 x_msg_count => x_msg_count,
1484 x_msg_data => x_msg_data,
1485 p_api_type => G_API_TYPE);
1486 END pop_checklist_item;
1487
1488 ------------------------------------------------------------------------------
1489 -- PROCEDURE set_in_progress_status
1490 ------------------------------------------------------------------------------
1491 -- Start of comments
1492 --
1493 -- Procedure Name : set_in_progress_status
1494 -- Description : This procedure sets the in progress status for lease
1495 -- application based on the type of action
1496 -- THIS PROCEDURE IS ONLY FOR OKL INTERNAL DEVELOPMENT PURPOSE
1497 -- Business Rules : This procedure sets the in progress status for lease
1498 -- application based on the type of action. It will store the
1499 -- current status in orig_status
1500 -- Parameters :
1501 -- Version : 1.0
1502 -- History : 28-Feb-2006 PAGARG created Bug 4872271
1503 --
1504 -- End of comments
1505 PROCEDURE set_in_progress_status(
1506 p_api_version IN NUMBER,
1507 p_init_msg_list IN VARCHAR2,
1508 p_lap_id IN OKL_LEASE_APPLICATIONS_B.ID%TYPE,
1509 p_action IN VARCHAR2,
1510 x_return_status OUT NOCOPY VARCHAR2,
1511 x_msg_count OUT NOCOPY NUMBER,
1512 x_msg_data OUT NOCOPY VARCHAR2)
1513 IS
1514 -- Variables Declarations
1515 l_api_version CONSTANT NUMBER DEFAULT G_INIT_VERSION;
1516 l_api_name CONSTANT VARCHAR2(30) DEFAULT 'SET_IN_PROGRESS_STATUS';
1517 l_return_status VARCHAR2(1);
1518
1519 -- Record/Table Type Declarations
1520 l_lapv_rec lapv_rec_type;
1521 x_lapv_rec lapv_rec_type;
1522 x_lsqv_rec lsqv_rec_type;
1523 BEGIN
1524 l_return_status := OKL_API.G_RET_STS_SUCCESS;
1525 L_MODULE := 'OKL.PLSQL.OKL_LEASE_APP_PVT.SET_IN_PROGRESS_STATUS';
1526
1527 -- check for logging on PROCEDURE level
1528 L_DEBUG_ENABLED := NVL(OKL_DEBUG_PUB.CHECK_LOG_ENABLED, 'N');
1529 IS_DEBUG_PROCEDURE_ON := NVL(OKL_DEBUG_PUB.CHECK_LOG_ON(L_MODULE, FND_LOG.LEVEL_PROCEDURE), FALSE);
1530 -- check for logging on STATEMENT level
1531 IS_DEBUG_STATEMENT_ON := NVL(OKL_DEBUG_PUB.CHECK_LOG_ON(L_MODULE, FND_LOG.LEVEL_STATEMENT), FALSE);
1532
1533 -- call START_ACTIVITY to create savepoint, check compatibility
1534 -- and initialize message list
1535 l_return_status := OKL_API.START_ACTIVITY(
1536 p_api_name => l_api_name
1537 ,p_pkg_name => G_PKG_NAME
1538 ,p_init_msg_list => p_init_msg_list
1539 ,l_api_version => l_api_version
1540 ,p_api_version => p_api_version
1541 ,p_api_type => G_API_TYPE
1542 ,x_return_status => l_return_status);
1543
1544 -- check if activity started successfully
1545 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1546 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1547 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
1548 RAISE OKL_API.G_EXCEPTION_ERROR;
1549 END IF;
1550
1551 --Populate Lease Application rec with the values from database.
1552 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
1553 THEN
1554 OKL_DEBUG_PUB.LOG_DEBUG(
1555 FND_LOG.LEVEL_PROCEDURE
1556 ,L_MODULE
1557 ,'begin debug call POPULATE_LEASE_APP');
1558 END IF;
1559
1560 POPULATE_LEASE_APP(
1561 p_api_version => p_api_version
1562 ,p_init_msg_list => OKL_API.G_FALSE
1563 ,x_return_status => l_return_status
1564 ,x_msg_count => x_msg_count
1565 ,x_msg_data => x_msg_data
1566 ,p_lap_id => p_lap_id
1567 ,x_lapv_rec => x_lapv_rec
1568 ,x_lsqv_rec => x_lsqv_rec);
1569
1570 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
1571 THEN
1572 OKL_DEBUG_PUB.LOG_DEBUG(
1573 FND_LOG.LEVEL_PROCEDURE
1574 ,L_MODULE
1575 ,'end debug call POPULATE_LEASE_APP');
1576 END IF;
1577
1578 -- write to log
1579 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
1580 OKL_DEBUG_PUB.LOG_DEBUG(
1581 FND_LOG.LEVEL_STATEMENT
1582 ,L_MODULE || ' Result of POPULATE_LEASE_APP'
1583 ,'l_return_status ' || l_return_status);
1584 END IF; -- end of statement level debug
1585
1586 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
1587 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1588 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
1589 RAISE OKL_API.G_EXCEPTION_ERROR;
1590 END IF;
1591
1592 l_lapv_rec := x_lapv_rec;
1593 l_lapv_rec.orig_status := l_lapv_rec.application_status;
1594 IF(p_action = 'APPEAL')
1595 THEN
1596 l_lapv_rec.application_status := 'APPEALINPROG';
1597 ELSIF(p_action = 'RESUBMIT')
1598 THEN
1599 l_lapv_rec.application_status := 'RESUBMITINPROG';
1600 END IF;
1601
1602 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
1603 THEN
1604 OKL_DEBUG_PUB.LOG_DEBUG(
1605 FND_LOG.LEVEL_PROCEDURE
1606 ,L_MODULE
1607 ,'begin debug call OKL_LAP_PVT.UPDATE_ROW');
1608 END IF;
1609
1610 OKL_LAP_PVT.UPDATE_ROW(
1611 p_api_version => p_api_version
1612 ,p_init_msg_list => OKL_API.G_FALSE
1613 ,x_return_status => l_return_status
1614 ,x_msg_count => x_msg_count
1615 ,x_msg_data => x_msg_data
1616 ,p_lapv_rec => l_lapv_rec
1617 ,x_lapv_rec => x_lapv_rec);
1618
1619 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
1620 THEN
1621 OKL_DEBUG_PUB.LOG_DEBUG(
1622 FND_LOG.LEVEL_PROCEDURE
1623 ,L_MODULE
1624 ,'end debug call OKL_LAP_PVT.UPDATE_ROW');
1625 END IF;
1626
1627 -- write to log
1628 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
1629 OKL_DEBUG_PUB.LOG_DEBUG(
1630 FND_LOG.LEVEL_STATEMENT
1631 ,L_MODULE || ' Result of OKL_LAP_PVT.UPDATE_ROW'
1632 ,'l_return_status ' || l_return_status);
1633 END IF; -- end of statement level debug
1634
1635 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
1636 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1637 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
1638 RAISE OKL_API.G_EXCEPTION_ERROR;
1639 END IF;
1640
1641 x_return_status := l_return_status;
1642 OKL_API.END_ACTIVITY(
1643 x_msg_count => x_msg_count
1644 ,x_msg_data => x_msg_data);
1645 EXCEPTION
1646 WHEN OKL_API.G_EXCEPTION_ERROR THEN
1647 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
1648 p_api_name => l_api_name,
1649 p_pkg_name => G_PKG_NAME,
1650 p_exc_name => 'OKL_API.G_RET_STS_ERROR',
1651 x_msg_count => x_msg_count,
1652 x_msg_data => x_msg_data,
1653 p_api_type => G_API_TYPE);
1654
1655 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1656 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
1657 p_api_name => l_api_name,
1658 p_pkg_name => G_PKG_NAME,
1659 p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
1660 x_msg_count => x_msg_count,
1661 x_msg_data => x_msg_data,
1662 p_api_type => G_API_TYPE);
1663
1664 WHEN OTHERS THEN
1665 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
1666 p_api_name => l_api_name,
1667 p_pkg_name => G_PKG_NAME,
1668 p_exc_name => 'OTHERS',
1669 x_msg_count => x_msg_count,
1670 x_msg_data => x_msg_data,
1671 p_api_type => G_API_TYPE);
1672 END set_in_progress_status;
1673
1674 ------------------------------------------------------------------------------
1675 -- PROCEDURE revert_to_orig_status
1676 ------------------------------------------------------------------------------
1677 -- Start of comments
1678 --
1679 -- Procedure Name : revert_to_orig_status
1680 -- Description : This procedure updates the status of parent lease
1681 -- application with the status stored in orig_status
1682 -- THIS PROCEDURE IS ONLY FOR OKL INTERNAL DEVELOPMENT PURPOSE
1683 -- Business Rules : This procedure updates the status of parent lease
1684 -- application with the status stored in orig_status. It will
1685 -- then clear the value in orig_status
1686 -- Parameters :
1687 -- Version : 1.0
1688 -- History : 28-Feb-2006 PAGARG created Bug 4872271
1689 --
1690 -- End of comments
1691 PROCEDURE revert_to_orig_status(
1692 p_api_version IN NUMBER,
1693 p_init_msg_list IN VARCHAR2,
1694 p_lap_id IN OKL_LEASE_APPLICATIONS_B.ID%TYPE,
1695 x_return_status OUT NOCOPY VARCHAR2,
1696 x_msg_count OUT NOCOPY NUMBER,
1697 x_msg_data OUT NOCOPY VARCHAR2)
1698 IS
1699 -- Variables Declarations
1700 l_api_version CONSTANT NUMBER DEFAULT G_INIT_VERSION;
1701 l_api_name CONSTANT VARCHAR2(30) DEFAULT 'REVERT_TO_ORIG_STATUS';
1702 l_return_status VARCHAR2(1);
1703
1704 -- Record/Table Type Declarations
1705 l_lapv_rec lapv_rec_type;
1706 x_lapv_rec lapv_rec_type;
1707 x_lsqv_rec lsqv_rec_type;
1708
1709 --Cursor to obtain Parent Lease Application Details
1710 CURSOR lse_app_dtls_csr(cp_lse_app_id NUMBER) IS
1711 SELECT PLAB.ID PARENT_LSE_APP_ID
1712 , PLAB.APPLICATION_STATUS PARENT_LSE_APP_STS
1713 FROM OKL_LEASE_APPLICATIONS_B LAB
1714 , OKL_LEASE_APPLICATIONS_B PLAB
1715 WHERE LAB.ID = cp_lse_app_id
1716 AND PLAB.ID = LAB.PARENT_LEASEAPP_ID;
1717 lse_app_dtls_rec lse_app_dtls_csr%ROWTYPE;
1718 BEGIN
1719 l_return_status := OKL_API.G_RET_STS_SUCCESS;
1720 L_MODULE := 'OKL.PLSQL.OKL_LEASE_APP_PVT.REVERT_TO_ORIG_STATUS';
1721
1722 -- check for logging on PROCEDURE level
1723 L_DEBUG_ENABLED := NVL(OKL_DEBUG_PUB.CHECK_LOG_ENABLED, 'N');
1724 IS_DEBUG_PROCEDURE_ON := NVL(OKL_DEBUG_PUB.CHECK_LOG_ON(L_MODULE, FND_LOG.LEVEL_PROCEDURE), FALSE);
1725 -- check for logging on STATEMENT level
1726 IS_DEBUG_STATEMENT_ON := NVL(OKL_DEBUG_PUB.CHECK_LOG_ON(L_MODULE, FND_LOG.LEVEL_STATEMENT), FALSE);
1727
1728 -- call START_ACTIVITY to create savepoint, check compatibility
1729 -- and initialize message list
1730 l_return_status := OKL_API.START_ACTIVITY(
1731 p_api_name => l_api_name
1732 ,p_pkg_name => G_PKG_NAME
1733 ,p_init_msg_list => p_init_msg_list
1734 ,l_api_version => l_api_version
1735 ,p_api_version => p_api_version
1736 ,p_api_type => G_API_TYPE
1737 ,x_return_status => l_return_status);
1738
1739 -- check if activity started successfully
1740 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1741 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1742 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
1743 RAISE OKL_API.G_EXCEPTION_ERROR;
1744 END IF;
1745
1746 OPEN lse_app_dtls_csr(p_lap_id);
1747 FETCH lse_app_dtls_csr INTO lse_app_dtls_rec;
1748 CLOSE lse_app_dtls_csr;
1749
1750 IF(lse_app_dtls_rec.parent_lse_app_id IS NOT NULL
1751 AND lse_app_dtls_rec.parent_lse_app_sts IN ('APPEALINPROG', 'RESUBMITINPROG') )
1752 THEN
1753 --Populate Lease Application rec with the values from database.
1754 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
1755 THEN
1756 OKL_DEBUG_PUB.LOG_DEBUG(
1757 FND_LOG.LEVEL_PROCEDURE
1758 ,L_MODULE
1759 ,'begin debug call POPULATE_LEASE_APP');
1760 END IF;
1761
1762 POPULATE_LEASE_APP(
1763 p_api_version => p_api_version
1764 ,p_init_msg_list => OKL_API.G_FALSE
1765 ,x_return_status => l_return_status
1766 ,x_msg_count => x_msg_count
1767 ,x_msg_data => x_msg_data
1768 ,p_lap_id => lse_app_dtls_rec.parent_lse_app_id
1769 ,x_lapv_rec => x_lapv_rec
1770 ,x_lsqv_rec => x_lsqv_rec);
1771
1772 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
1773 THEN
1774 OKL_DEBUG_PUB.LOG_DEBUG(
1775 FND_LOG.LEVEL_PROCEDURE
1776 ,L_MODULE
1777 ,'end debug call POPULATE_LEASE_APP');
1778 END IF;
1779
1780 -- write to log
1781 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
1782 OKL_DEBUG_PUB.LOG_DEBUG(
1783 FND_LOG.LEVEL_STATEMENT
1784 ,L_MODULE || ' Result of POPULATE_LEASE_APP'
1785 ,'l_return_status ' || l_return_status);
1786 END IF; -- end of statement level debug
1787
1788 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
1789 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1790 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
1791 RAISE OKL_API.G_EXCEPTION_ERROR;
1792 END IF;
1793
1794 l_lapv_rec := x_lapv_rec;
1795 l_lapv_rec.application_status := l_lapv_rec.orig_status;
1796 l_lapv_rec.orig_status := NULL;
1797
1798 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
1799 THEN
1800 OKL_DEBUG_PUB.LOG_DEBUG(
1801 FND_LOG.LEVEL_PROCEDURE
1802 ,L_MODULE
1803 ,'begin debug call OKL_LAP_PVT.UPDATE_ROW');
1804 END IF;
1805
1806 OKL_LAP_PVT.UPDATE_ROW(
1807 p_api_version => p_api_version
1808 ,p_init_msg_list => OKL_API.G_FALSE
1809 ,x_return_status => l_return_status
1810 ,x_msg_count => x_msg_count
1811 ,x_msg_data => x_msg_data
1812 ,p_lapv_rec => l_lapv_rec
1813 ,x_lapv_rec => x_lapv_rec);
1814
1815 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
1816 THEN
1817 OKL_DEBUG_PUB.LOG_DEBUG(
1818 FND_LOG.LEVEL_PROCEDURE
1819 ,L_MODULE
1820 ,'end debug call OKL_LAP_PVT.UPDATE_ROW');
1821 END IF;
1822
1823 -- write to log
1824 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
1825 OKL_DEBUG_PUB.LOG_DEBUG(
1826 FND_LOG.LEVEL_STATEMENT
1827 ,L_MODULE || ' Result of OKL_LAP_PVT.UPDATE_ROW'
1828 ,'l_return_status ' || l_return_status);
1829 END IF; -- end of statement level debug
1830
1831 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
1832 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1833 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
1834 RAISE OKL_API.G_EXCEPTION_ERROR;
1835 END IF;
1836 END IF;--if parent lease app id is not null and status is in progress status
1837
1838 x_return_status := l_return_status;
1839 OKL_API.END_ACTIVITY(
1840 x_msg_count => x_msg_count
1841 ,x_msg_data => x_msg_data);
1842 EXCEPTION
1843 WHEN OKL_API.G_EXCEPTION_ERROR THEN
1844 --Lease Application Details cursor
1845 IF lse_app_dtls_csr%ISOPEN
1846 THEN
1847 CLOSE lse_app_dtls_csr;
1848 END IF;
1849 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
1850 p_api_name => l_api_name,
1851 p_pkg_name => G_PKG_NAME,
1852 p_exc_name => 'OKL_API.G_RET_STS_ERROR',
1853 x_msg_count => x_msg_count,
1854 x_msg_data => x_msg_data,
1855 p_api_type => G_API_TYPE);
1856 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1857 --Lease Application Details cursor
1858 IF lse_app_dtls_csr%ISOPEN
1859 THEN
1860 CLOSE lse_app_dtls_csr;
1861 END IF;
1862 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
1863 p_api_name => l_api_name,
1864 p_pkg_name => G_PKG_NAME,
1865 p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
1866 x_msg_count => x_msg_count,
1867 x_msg_data => x_msg_data,
1868 p_api_type => G_API_TYPE);
1869 WHEN OTHERS THEN
1870 --Lease Application Details cursor
1871 IF lse_app_dtls_csr%ISOPEN
1872 THEN
1873 CLOSE lse_app_dtls_csr;
1874 END IF;
1875 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
1876 p_api_name => l_api_name,
1877 p_pkg_name => G_PKG_NAME,
1878 p_exc_name => 'OTHERS',
1879 x_msg_count => x_msg_count,
1880 x_msg_data => x_msg_data,
1881 p_api_type => G_API_TYPE);
1882 END revert_to_orig_status;
1883
1884 -------------------------------------------------------------------------------
1885 -- PROCEDURE check_lease_quote_defaults
1886 -------------------------------------------------------------------------------
1887 -- Start of comments
1888 --
1889 -- Procedure Name : check_lease_quote_defaults
1890 -- Description : This procedure checks the values defaulted in lease
1891 -- : application from lease quote.
1892 -- Business Rules : If default values from lease quote are not changed then
1893 -- : set the status as Pricing Approved else Incomplete
1894 -- Parameters :
1895 -- Version : 1.0
1896 -- History : 30-MAY-2005 PAGARG created
1897 -- : 02 Jan 2006 PAGARG Bug 4902717 Fixed the cursor to compare
1898 -- default values
1899 -- : 18 Jan 2006 PAGARG BUG 4951955 Instead of lapv_rec, take source
1900 -- Lease Quote Id as input so that this procedure can be reused
1901 -- : 17 Feb 2006 PAGARG BUG 4905261 Included comparison of some
1902 -- header level attributes to identify if there are any changes done
1903 -- End of comments
1904 PROCEDURE check_lease_quote_defaults(
1905 p_api_version IN NUMBER,
1906 p_init_msg_list IN VARCHAR2,
1907 x_return_status OUT NOCOPY VARCHAR2,
1908 x_msg_count OUT NOCOPY NUMBER,
1909 x_msg_data OUT NOCOPY VARCHAR2,
1910 p_source_lsq_id IN OKL_LEASE_QUOTES_B.ID%TYPE,
1911 p_lapv_rec IN lapv_rec_type,
1912 p_lsqv_rec IN lsqv_rec_type)
1913 IS
1914 -- Variables Declarations
1915 l_api_version CONSTANT NUMBER DEFAULT G_INIT_VERSION;
1916 l_api_name CONSTANT VARCHAR2(30) DEFAULT 'CHECK_LEASE_QUOTE_DEFAULTS';
1917 l_return_status VARCHAR2(1);
1918
1919 --02 Jan 2006 PAGARG Bug 4902717 Fixed the condition to compare default values
1920 --as values passed from java layer will not be null but G_MISS
1921 --BUG 4936112 PAGARG Removed the check for pricing method
1922 --BUG 4951955 PAGARG Instead of Lease Opp id, Lease Quote id is the input
1923 --Cursor to query the default values from lease quote
1924 CURSOR lsq_db_val_csr(cp_lsq_id NUMBER, cp_lsqv_rec lsqv_rec_type) IS
1925 SELECT LQ.REFERENCE_NUMBER REFERENCE_NUMBER
1926 FROM OKL_LEASE_QUOTES_B LQ
1927 WHERE LQ.ID = cp_lsq_id
1928 -- AND NVL(LQ.PRICING_METHOD, OKL_API.G_MISS_CHAR) = NVL(cp_lsqv_rec.PRICING_METHOD, OKL_API.G_MISS_CHAR)
1929 AND NVL(LQ.EXPECTED_START_DATE, OKL_API.G_MISS_DATE) = NVL(cp_lsqv_rec.EXPECTED_START_DATE, OKL_API.G_MISS_DATE)
1930 AND NVL(LQ.VALID_FROM, OKL_API.G_MISS_DATE) = NVL(cp_lsqv_rec.VALID_FROM, OKL_API.G_MISS_DATE)
1931 AND NVL(LQ.VALID_TO, OKL_API.G_MISS_DATE) = NVL(cp_lsqv_rec.VALID_TO, OKL_API.G_MISS_DATE)
1932 AND NVL(LQ.TERM, OKL_API.G_MISS_NUM) = NVL(cp_lsqv_rec.TERM, OKL_API.G_MISS_NUM)
1933 AND NVL(LQ.PRODUCT_ID, OKL_API.G_MISS_NUM) = NVL(cp_lsqv_rec.PRODUCT_ID, OKL_API.G_MISS_NUM)
1934 AND NVL(LQ.END_OF_TERM_OPTION_ID, OKL_API.G_MISS_NUM) = NVL(cp_lsqv_rec.END_OF_TERM_OPTION_ID, OKL_API.G_MISS_NUM)
1935 AND NVL(LQ.PROPERTY_TAX_APPLICABLE, OKL_API.G_MISS_CHAR) = NVL(cp_lsqv_rec.PROPERTY_TAX_APPLICABLE, OKL_API.G_MISS_CHAR)
1936 AND NVL(LQ.PROPERTY_TAX_BILLING_TYPE, OKL_API.G_MISS_CHAR) = NVL(cp_lsqv_rec.PROPERTY_TAX_BILLING_TYPE, OKL_API.G_MISS_CHAR)
1937 AND NVL(LQ.USAGE_CATEGORY, OKL_API.G_MISS_CHAR) = NVL(cp_lsqv_rec.USAGE_CATEGORY, OKL_API.G_MISS_CHAR)
1938 AND NVL(LQ.UPFRONT_TAX_TREATMENT, OKL_API.G_MISS_CHAR) = NVL(cp_lsqv_rec.UPFRONT_TAX_TREATMENT, OKL_API.G_MISS_CHAR)
1939 AND NVL(LQ.UPFRONT_TAX_STREAM_TYPE, OKL_API.G_MISS_NUM) = NVL(cp_lsqv_rec.UPFRONT_TAX_STREAM_TYPE, OKL_API.G_MISS_NUM)
1940 AND NVL(LQ.TRANSFER_OF_TITLE, OKL_API.G_MISS_CHAR) = NVL(cp_lsqv_rec.TRANSFER_OF_TITLE, OKL_API.G_MISS_CHAR)
1941 AND NVL(LQ.AGE_OF_EQUIPMENT, OKL_API.G_MISS_NUM) = NVL(cp_lsqv_rec.AGE_OF_EQUIPMENT, OKL_API.G_MISS_NUM)
1942 AND NVL(LQ.PURCHASE_OF_LEASE, OKL_API.G_MISS_CHAR) = NVL(cp_lsqv_rec.PURCHASE_OF_LEASE, OKL_API.G_MISS_CHAR)
1943 AND NVL(LQ.SALE_AND_LEASE_BACK, OKL_API.G_MISS_CHAR) = NVL(cp_lsqv_rec.SALE_AND_LEASE_BACK, OKL_API.G_MISS_CHAR)
1944 AND NVL(LQ.INTEREST_DISCLOSED, OKL_API.G_MISS_CHAR) = NVL(cp_lsqv_rec.INTEREST_DISCLOSED, OKL_API.G_MISS_CHAR)
1945 --Added Bug # 5647107 start
1946 AND NVL(LQ.LEGAL_ENTITY_ID, OKL_API.G_MISS_NUM) = NVL(cp_lsqv_rec.LEGAL_ENTITY_ID, OKL_API.G_MISS_NUM)
1947 --Added Bug # 5647107 end
1948 -- Bug 5908845. eBTax Enhancement Project
1949 AND NVL(LQ.LINE_INTENDED_USE, OKL_API.G_MISS_CHAR) = NVL(cp_lsqv_rec.LINE_INTENDED_USE, OKL_API.G_MISS_CHAR);
1950 -- End Bug 5908845. eBTax Enhancement Project
1951
1952 lsq_db_val_rec lsq_db_val_csr%ROWTYPE;
1953
1954 --Cursor to compare the db values of lease app header with the one in rec
1955 CURSOR lap_db_val_csr(cp_lap_id NUMBER, cp_lapv_rec lapv_rec_type) IS
1956 SELECT LAP.REFERENCE_NUMBER REFERENCE_NUMBER
1957 FROM OKL_LEASE_APPLICATIONS_B LAP
1958 WHERE LAP.ID = cp_lap_id
1959 AND NVL(LAP.PROSPECT_ADDRESS_ID, OKL_API.G_MISS_NUM) = NVL(cp_lapv_rec.prospect_address_id, OKL_API.G_MISS_NUM)
1960 AND NVL(LAP.CUST_ACCT_ID, OKL_API.G_MISS_NUM) = NVL(cp_lapv_rec.cust_acct_id, OKL_API.G_MISS_NUM)
1961 AND NVL(LAP.MASTER_LEASE_ID, OKL_API.G_MISS_NUM) = NVL(cp_lapv_rec.master_lease_id, OKL_API.G_MISS_NUM)
1962 AND NVL(LAP.CURRENCY_CODE, OKL_API.G_MISS_CHAR) = NVL(cp_lapv_rec.currency_code, OKL_API.G_MISS_CHAR)
1963 AND NVL(LAP.CURRENCY_CONVERSION_TYPE, OKL_API.G_MISS_CHAR) = NVL(cp_lapv_rec.currency_conversion_type, OKL_API.G_MISS_CHAR)
1964 AND NVL(LAP.CURRENCY_CONVERSION_RATE, OKL_API.G_MISS_NUM) = NVL(cp_lapv_rec.currency_conversion_rate, OKL_API.G_MISS_NUM)
1965 AND NVL(LAP.CURRENCY_CONVERSION_DATE, OKL_API.G_MISS_DATE) = NVL(cp_lapv_rec.currency_conversion_date, OKL_API.G_MISS_DATE);
1966 lap_db_val_rec lap_db_val_csr%ROWTYPE;
1967
1968 --Cursor to compare the db values of lease app header with the one in rec
1969 CURSOR lop_db_val_csr(cp_lop_id NUMBER, cp_lapv_rec lapv_rec_type) IS
1970 SELECT LOP.REFERENCE_NUMBER REFERENCE_NUMBER
1971 FROM OKL_LEASE_OPPORTUNITIES_B LOP
1972 WHERE LOP.ID = cp_lop_id
1973 AND NVL(LOP.PROSPECT_ADDRESS_ID, OKL_API.G_MISS_NUM) = NVL(cp_lapv_rec.prospect_address_id, OKL_API.G_MISS_NUM)
1974 AND NVL(LOP.CUST_ACCT_ID, OKL_API.G_MISS_NUM) = NVL(cp_lapv_rec.cust_acct_id, OKL_API.G_MISS_NUM)
1975 AND NVL(LOP.MASTER_LEASE_ID, OKL_API.G_MISS_NUM) = NVL(cp_lapv_rec.master_lease_id, OKL_API.G_MISS_NUM)
1976 AND NVL(LOP.CURRENCY_CODE, OKL_API.G_MISS_CHAR) = NVL(cp_lapv_rec.currency_code, OKL_API.G_MISS_CHAR)
1977 AND NVL(LOP.CURRENCY_CONVERSION_TYPE, OKL_API.G_MISS_CHAR) = NVL(cp_lapv_rec.currency_conversion_type, OKL_API.G_MISS_CHAR)
1978 AND NVL(LOP.CURRENCY_CONVERSION_RATE, OKL_API.G_MISS_NUM) = NVL(cp_lapv_rec.currency_conversion_rate, OKL_API.G_MISS_NUM)
1979 AND NVL(LOP.CURRENCY_CONVERSION_DATE, OKL_API.G_MISS_DATE) = NVL(cp_lapv_rec.currency_conversion_date, OKL_API.G_MISS_DATE);
1980 lop_db_val_rec lop_db_val_csr%ROWTYPE;
1981
1982 --Cursor to obtain parent object information of lease quote
1983 CURSOR lsq_parent_csr(cp_lsq_id NUMBER) IS
1984 SELECT LQ.PARENT_OBJECT_CODE PARENT_OBJECT_CODE
1985 , LQ.PARENT_OBJECT_ID PARENT_OBJECT_ID
1986 FROM OKL_LEASE_QUOTES_B LQ
1987 WHERE LQ.ID = cp_lsq_id;
1988 lsq_parent_rec lsq_parent_csr%ROWTYPE;
1989 BEGIN
1990 l_return_status := OKL_API.G_RET_STS_SUCCESS;
1991 L_MODULE := 'OKL.PLSQL.OKL_LEASE_APP_PVT.CHECK_LEASE_QUOTE_DEFAULTS';
1992
1993 -- check for logging on PROCEDURE level
1994 L_DEBUG_ENABLED := NVL(OKL_DEBUG_PUB.CHECK_LOG_ENABLED, 'N');
1995 IS_DEBUG_PROCEDURE_ON := NVL(OKL_DEBUG_PUB.CHECK_LOG_ON(L_MODULE, FND_LOG.LEVEL_PROCEDURE), FALSE);
1996 -- check for logging on STATEMENT level
1997 IS_DEBUG_STATEMENT_ON := NVL(OKL_DEBUG_PUB.CHECK_LOG_ON(L_MODULE, FND_LOG.LEVEL_STATEMENT), FALSE);
1998
1999 -- call START_ACTIVITY to create savepoint, check compatibility
2000 -- and initialize message list
2001 l_return_status := OKL_API.START_ACTIVITY(
2002 p_api_name => l_api_name
2003 ,p_pkg_name => G_PKG_NAME
2004 ,p_init_msg_list => p_init_msg_list
2005 ,l_api_version => l_api_version
2006 ,p_api_version => p_api_version
2007 ,p_api_type => G_API_TYPE
2008 ,x_return_status => l_return_status);
2009
2010 -- check if activity started successfully
2011 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2012 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2013 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2014 RAISE OKL_API.G_EXCEPTION_ERROR;
2015 END IF;
2016
2017 --Populate lease application rec with database values
2018 IF(p_source_lsq_id IS NOT NULL AND
2019 p_source_lsq_id <> OKL_API.G_MISS_NUM)
2020 THEN
2021 OPEN lsq_parent_csr(p_source_lsq_id);
2022 FETCH lsq_parent_csr INTO lsq_parent_rec;
2023 IF(lsq_parent_csr%NOTFOUND)
2024 THEN
2025 l_return_status := OKL_API.G_RET_STS_ERROR;
2026 END IF;
2027 CLOSE lsq_parent_csr;
2028
2029 IF(l_return_status = OKL_API.G_RET_STS_SUCCESS)
2030 THEN
2031 IF(lsq_parent_rec.parent_object_code = 'LEASEAPP')
2032 THEN
2033 OPEN lap_db_val_csr(lsq_parent_rec.parent_object_id, p_lapv_rec);
2034 FETCH lap_db_val_csr INTO lap_db_val_rec;
2035 IF(lap_db_val_csr%NOTFOUND)
2036 THEN
2037 l_return_status := OKL_API.G_RET_STS_ERROR;
2038 END IF;
2039 CLOSE lap_db_val_csr;
2040 ELSIF(lsq_parent_rec.parent_object_code = 'LEASEOPP')
2041 THEN
2042 OPEN lop_db_val_csr(lsq_parent_rec.parent_object_id, p_lapv_rec);
2043 FETCH lop_db_val_csr INTO lop_db_val_rec;
2044 IF(lop_db_val_csr%NOTFOUND)
2045 THEN
2046 l_return_status := OKL_API.G_RET_STS_ERROR;
2047 END IF;
2048 CLOSE lop_db_val_csr;
2049 END IF;
2050 END IF;
2051
2052 IF(l_return_status = OKL_API.G_RET_STS_SUCCESS)
2053 THEN
2054 OPEN lsq_db_val_csr(p_source_lsq_id, p_lsqv_rec);
2055 FETCH lsq_db_val_csr INTO lsq_db_val_rec;
2056 IF(lsq_db_val_csr%NOTFOUND)
2057 THEN
2058 l_return_status := OKL_API.G_RET_STS_ERROR;
2059 END IF;
2060 CLOSE lsq_db_val_csr;
2061 END IF;
2062 ELSE
2063 l_return_status := OKL_API.G_RET_STS_ERROR;
2064 END IF;--Source Lease Quote Id is null or G_MISS_NUM
2065
2066 x_return_status := l_return_status;
2067 OKL_API.END_ACTIVITY(
2068 x_msg_count => x_msg_count
2069 ,x_msg_data => x_msg_data);
2070 EXCEPTION
2071 WHEN OKL_API.G_EXCEPTION_ERROR THEN
2072 --Lease Quote Details cursor
2073 IF lsq_db_val_csr%ISOPEN
2074 THEN
2075 CLOSE lsq_db_val_csr;
2076 END IF;
2077 --Lease App Details cursor
2078 IF lap_db_val_csr%ISOPEN
2079 THEN
2080 CLOSE lap_db_val_csr;
2081 END IF;
2082 --Lease Opp Details cursor
2083 IF lop_db_val_csr%ISOPEN
2084 THEN
2085 CLOSE lop_db_val_csr;
2086 END IF;
2087 --Lease Quote parent Details cursor
2088 IF lsq_parent_csr%ISOPEN
2089 THEN
2090 CLOSE lsq_parent_csr;
2091 END IF;
2092 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
2093 p_api_name => l_api_name,
2094 p_pkg_name => G_PKG_NAME,
2095 p_exc_name => 'OKL_API.G_RET_STS_ERROR',
2096 x_msg_count => x_msg_count,
2097 x_msg_data => x_msg_data,
2098 p_api_type => G_API_TYPE);
2099 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2100 --Lease Quote Details cursor
2101 IF lsq_db_val_csr%ISOPEN
2102 THEN
2103 CLOSE lsq_db_val_csr;
2104 END IF;
2105 --Lease App Details cursor
2106 IF lap_db_val_csr%ISOPEN
2107 THEN
2108 CLOSE lap_db_val_csr;
2109 END IF;
2110 --Lease Opp Details cursor
2111 IF lop_db_val_csr%ISOPEN
2112 THEN
2113 CLOSE lop_db_val_csr;
2114 END IF;
2115 --Lease Quote parent Details cursor
2116 IF lsq_parent_csr%ISOPEN
2117 THEN
2118 CLOSE lsq_parent_csr;
2119 END IF;
2120 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
2121 p_api_name => l_api_name,
2122 p_pkg_name => G_PKG_NAME,
2123 p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
2124 x_msg_count => x_msg_count,
2125 x_msg_data => x_msg_data,
2126 p_api_type => G_API_TYPE);
2127 WHEN OTHERS THEN
2128 --Lease Quote Details cursor
2129 IF lsq_db_val_csr%ISOPEN
2130 THEN
2131 CLOSE lsq_db_val_csr;
2132 END IF;
2133 --Lease App Details cursor
2134 IF lap_db_val_csr%ISOPEN
2135 THEN
2136 CLOSE lap_db_val_csr;
2137 END IF;
2138 --Lease Opp Details cursor
2139 IF lop_db_val_csr%ISOPEN
2140 THEN
2141 CLOSE lop_db_val_csr;
2142 END IF;
2143 --Lease Quote parent Details cursor
2144 IF lsq_parent_csr%ISOPEN
2145 THEN
2146 CLOSE lsq_parent_csr;
2147 END IF;
2148 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
2149 p_api_name => l_api_name,
2150 p_pkg_name => G_PKG_NAME,
2151 p_exc_name => 'OTHERS',
2152 x_msg_count => x_msg_count,
2153 x_msg_data => x_msg_data,
2154 p_api_type => G_API_TYPE);
2155 END check_lease_quote_defaults;
2156
2157 -------------------------------------------------------------------------------
2158 -- PROCEDURE raise_business_event
2159 -------------------------------------------------------------------------------
2160 -- Start of comments
2161 --
2162 -- Procedure Name : raise_business_event
2163 -- Description : This procedure is a wrapper to raise workflow event
2164 -- Business Rules : This procedure is a wrapper to raise workflow event
2165 -- Parameters :
2166 -- Version : 1.0
2167 -- History : 01-June-2005 PAGARG created
2168 --
2169 -- End of comments
2170 PROCEDURE raise_business_event(
2171 p_transaction_id IN NUMBER,
2172 p_event_name IN VARCHAR2) IS
2173
2174 -- Variables Declarations
2175 l_parameter_list wf_parameter_list_t;
2176 l_key VARCHAR2(240);
2177 l_seq NUMBER;
2178
2179 -- Selects the nextval from sequence, used later for defining event key
2180 CURSOR okl_key_csr IS
2181 SELECT okl_wf_item_s.nextval
2182 FROM dual;
2183
2184 BEGIN
2185 SAVEPOINT raise_event;
2186
2187 OPEN okl_key_csr;
2188 FETCH okl_key_csr INTO l_seq;
2189 CLOSE okl_key_csr;
2190
2191 l_key := p_event_name || l_seq ;
2192
2193 wf_event.AddParameterToList('TRANSACTION_ID', p_transaction_id, l_parameter_list);
2194
2195 -- Raise Event
2196 wf_event.raise(p_event_name => p_event_name
2197 ,p_event_key => l_key
2198 ,p_parameters => l_parameter_list);
2199
2200 l_parameter_list.DELETE;
2201 EXCEPTION
2202 WHEN OTHERS THEN
2203 FND_MESSAGE.SET_NAME('OKL', 'OKL_API_OTHERS_EXCEP');
2204 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
2205 FND_MSG_PUB.ADD;
2206 IF okl_key_csr%ISOPEN
2207 THEN
2208 CLOSE okl_key_csr;
2209 END IF;
2210
2211 ROLLBACK TO raise_event;
2212 END raise_business_event;
2213
2214 -------------------------------------------------------------------------------
2215 -- PROCEDURE create_credit_app
2216 -------------------------------------------------------------------------------
2217 -- Start of comments
2218 --
2219 -- Procedure Name : create_credit_app
2220 -- Description : This procedure is a wrapper that creates credit application
2221 -- Business Rules : This procedure creates credit application
2222 -- Parameters :
2223 -- Version : 1.0
2224 -- History : 21-JUNE-2005 PAGARG created
2225 -- : 20 Jan 2006 PAGARG BUG 4968010 Passing requestor id and
2226 -- type appropriately to create Credit Application
2227 -- End of comments
2228 PROCEDURE create_credit_app(
2229 p_api_version IN NUMBER,
2230 p_init_msg_list IN VARCHAR2,
2231 x_return_status OUT NOCOPY VARCHAR2,
2232 x_msg_count OUT NOCOPY NUMBER,
2233 x_msg_data OUT NOCOPY VARCHAR2,
2234 p_lapv_rec IN lapv_rec_type,
2235 p_crr_rec IN crr_rec_type,
2236 x_crr_rec OUT NOCOPY crr_rec_type) IS
2237
2238 -- Variables Declarations
2239 l_api_version CONSTANT NUMBER DEFAULT G_INIT_VERSION;
2240 l_api_name CONSTANT VARCHAR2(30) DEFAULT 'CREATE_CREDIT_APP';
2241 l_return_status VARCHAR2(1);
2242 l_cm_installed BOOLEAN;
2243
2244 --Variables for create Credit Application call
2245 l_init_msg_list VARCHAR2(32767);
2246
2247 -- Record/Table Type Declarations
2248 l_crr_rec crr_rec_type;
2249
2250 --Cursor to obtain Lease Application Details
2251 CURSOR lse_app_dtls_csr(cp_lse_app_id NUMBER) IS
2252 SELECT LAB.REFERENCE_NUMBER REFERENCE_NUMBER
2253 ,LSQ.EXPECTED_START_DATE EXPECTED_START_DATE
2254 ,LAT.CREDIT_REVIEW_PURPOSE REVIEW_TYPE
2255 ,LAT.CUST_CREDIT_CLASSIFICATION CREDIT_CLASSIFICATION
2256 ,LAB.CURRENCY_CODE CURRENCY_CODE
2257 ,LSQ.TERM TERM
2258 ,LAB.PROSPECT_ID PROSPECT_ID
2259 ,LAB.CUST_ACCT_ID CUST_ACCT_ID
2260 ,LAB.ORG_ID ORG_ID
2261 ,LAB.CREDIT_LINE_ID CREDIT_LINE_ID
2262 ,LSQ.ID LSQ_ID
2263 FROM OKL_LEASE_APPLICATIONS_B LAB
2264 ,OKL_LEASEAPP_TEMPLATES LAT
2265 ,OKL_LEASE_QUOTES_B LSQ
2266 ,OKL_LEASEAPP_TEMPL_VERSIONS_V LATV
2267 WHERE LATV.ID = LAB.LEASEAPP_TEMPLATE_ID
2268 AND LAT.ID = LATV.LEASEAPP_TEMPLATE_ID
2269 AND LSQ.PARENT_OBJECT_CODE = 'LEASEAPP'
2270 AND LSQ.PARENT_OBJECT_ID = LAB.ID
2271 AND LSQ.PRIMARY_QUOTE = 'Y'
2272 AND LAB.ID = cp_lse_app_id;
2273 lse_app_dtls_rec lse_app_dtls_csr%ROWTYPE;
2274
2275 BEGIN
2276 l_return_status := OKL_API.G_RET_STS_SUCCESS;
2277 L_MODULE := 'OKL.PLSQL.OKL_LEASE_APP_PVT.CREATE_CREDIT_APP';
2278
2279 -- check for logging on PROCEDURE level
2280 L_DEBUG_ENABLED := NVL(OKL_DEBUG_PUB.CHECK_LOG_ENABLED, 'N');
2281 IS_DEBUG_PROCEDURE_ON := NVL(OKL_DEBUG_PUB.CHECK_LOG_ON(L_MODULE, FND_LOG.LEVEL_PROCEDURE), FALSE);
2282 -- check for logging on STATEMENT level
2283 IS_DEBUG_STATEMENT_ON := NVL(OKL_DEBUG_PUB.CHECK_LOG_ON(L_MODULE, FND_LOG.LEVEL_STATEMENT), FALSE);
2284
2285 -- call START_ACTIVITY to create savepoint, check compatibility
2286 -- and initialize message list
2287 l_return_status := OKL_API.START_ACTIVITY(
2288 p_api_name => l_api_name
2289 ,p_pkg_name => G_PKG_NAME
2290 ,p_init_msg_list => p_init_msg_list
2291 ,l_api_version => l_api_version
2292 ,p_api_version => p_api_version
2293 ,p_api_type => G_API_TYPE
2294 ,x_return_status => l_return_status);
2295
2296 -- check if activity started successfully
2297 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2298 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2299 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2300 RAISE OKL_API.G_EXCEPTION_ERROR;
2301 END IF;
2302
2303 l_cm_installed := AR_CMGT_CREDIT_REQUEST_API.is_Credit_Management_Installed;
2304 IF NOT l_cm_installed
2305 THEN
2306 l_return_status := OKL_API.G_RET_STS_ERROR;
2307 OKL_API.set_message(p_app_name => OKL_API.G_APP_NAME,
2308 p_msg_name => 'OKL_CM_NOTINSTALLED');
2309 RAISE OKL_API.G_EXCEPTION_ERROR;
2310 END IF;
2311
2312 l_crr_rec := p_crr_rec;
2313
2314 OPEN lse_app_dtls_csr(p_lapv_rec.id);
2315 FETCH lse_app_dtls_csr INTO lse_app_dtls_rec;
2316 CLOSE lse_app_dtls_csr;
2317
2318 l_crr_rec.application_number := lse_app_dtls_rec.reference_number;
2319 l_crr_rec.application_date := lse_app_dtls_rec.expected_start_date;
2320 --BUG 4968010 PAGARG Passing requestor id and type based on the value of
2321 --employee id
2322 IF FND_GLOBAL.EMPLOYEE_ID = -1
2323 THEN
2324 l_crr_rec.requestor_type := 'FND_USER';
2325 l_crr_rec.requestor_id := FND_GLOBAL.USER_ID;
2326 ELSE
2327 l_crr_rec.requestor_type := 'EMPLOYEE';
2328 l_crr_rec.requestor_id := FND_GLOBAL.EMPLOYEE_ID;
2329 END IF;
2330 l_crr_rec.review_type := lse_app_dtls_rec.review_type;
2331 l_crr_rec.credit_classification := lse_app_dtls_rec.credit_classification;
2332 l_crr_rec.requested_amount := get_financed_Amount(lse_app_dtls_rec.lsq_id);
2333 l_crr_rec.requested_currency := lse_app_dtls_rec.currency_code;
2334 l_crr_rec.trx_amount := get_financed_Amount(lse_app_dtls_rec.lsq_id); -- Added for bug 6596860
2335 --l_crr_rec.trx_amount := l_crr_rec.requested_amount; -- Commented for for bug 6596860
2336 l_crr_rec.trx_currency := l_crr_rec.requested_currency;
2337 IF(l_crr_rec.credit_type IS NULL)
2338 THEN
2339 l_crr_rec.credit_type := 'TERM';
2340 END IF;
2341 IF(l_crr_rec.credit_request_status IS NULL)
2342 THEN
2343 l_crr_rec.credit_request_status := 'SAVE';
2344 END IF;
2345 l_crr_rec.term_length := lse_app_dtls_rec.term;
2346 l_crr_rec.party_id := lse_app_dtls_rec.prospect_id;
2347 l_crr_rec.cust_account_id := lse_app_dtls_rec.cust_acct_id;
2348 l_crr_rec.source_org_id := lse_app_dtls_rec.org_id;
2349 l_crr_rec.source_user_id := FND_GLOBAL.USER_ID;
2350 l_crr_rec.source_resp_id := FND_GLOBAL.RESP_ID;
2351 l_crr_rec.source_appln_id := 540;
2352 l_crr_rec.source_security_group_id := FND_GLOBAL.SECURITY_GROUP_ID;
2353 l_crr_rec.source_name := 'OKL';
2354 l_crr_rec.source_column1 := p_lapv_rec.id;
2355 --Bug 4728360 Interchanged the values populated for source_column2 and 3
2356 l_crr_rec.source_column2 := p_lapv_rec.reference_number;
2357 l_crr_rec.source_column3 := 'LEASEAPP';
2358
2359 --Call to create Credit Application
2360 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
2361 THEN
2362 OKL_DEBUG_PUB.LOG_DEBUG(
2363 FND_LOG.LEVEL_PROCEDURE
2364 ,L_MODULE
2365 ,'begin debug call AR_CMGT_CREDIT_REQUEST_API.CREATE_CREDIT_REQUEST');
2366 END IF;
2367
2368 AR_CMGT_CREDIT_REQUEST_API.CREATE_CREDIT_REQUEST(
2369 p_api_version => l_api_version,
2370 p_init_msg_list => OKL_API.G_FALSE,
2371 p_commit => l_crr_rec.l_commit,
2372 p_validation_level => l_crr_rec.validation_level,
2373 x_return_status => l_return_status,
2374 x_msg_count => x_msg_count,
2375 x_msg_data => x_msg_data,
2376 p_application_number => l_crr_rec.application_number,
2377 p_application_date => l_crr_rec.application_date,
2378 p_requestor_type => l_crr_rec.requestor_type,
2379 p_requestor_id => l_crr_rec.requestor_id,
2380 p_review_type => l_crr_rec.review_type,
2381 p_credit_classification => l_crr_rec.credit_classification,
2382 p_requested_amount => l_crr_rec.requested_amount,
2383 p_requested_currency => l_crr_rec.requested_currency,
2384 p_trx_amount => l_crr_rec.trx_amount,
2385 p_trx_currency => l_crr_rec.trx_currency,
2386 p_credit_type => l_crr_rec.credit_type,
2387 p_term_length => l_crr_rec.term_length,
2388 p_credit_check_rule_id => l_crr_rec.credit_check_rule_id,
2389 p_credit_request_status => l_crr_rec.credit_request_status,
2390 p_party_id => l_crr_rec.party_id,
2391 p_cust_account_id => l_crr_rec.cust_account_id,
2392 p_cust_acct_site_id => l_crr_rec.cust_acct_site_id,
2393 p_site_use_id => l_crr_rec.site_use_id,
2394 p_contact_party_id => l_crr_rec.contact_party_id,
2395 p_notes => l_crr_rec.notes,
2396 p_source_org_id => l_crr_rec.source_org_id,
2397 p_source_user_id => l_crr_rec.source_user_id,
2398 p_source_resp_id => l_crr_rec.source_resp_id,
2399 p_source_appln_id => l_crr_rec.source_appln_id,
2400 p_source_security_group_id => l_crr_rec.source_security_group_id,
2401 p_source_name => l_crr_rec.source_name,
2402 p_source_column1 => l_crr_rec.source_column1,
2403 p_source_column2 => l_crr_rec.source_column2,
2404 p_source_column3 => l_crr_rec.source_column3,
2405 p_credit_request_id => l_crr_rec.credit_request_id,
2406 p_review_cycle => l_crr_rec.review_cycle,
2407 p_case_folder_number => l_crr_rec.case_folder_number,
2408 p_score_model_id => l_crr_rec.score_model_id,
2409 p_parent_credit_request_id => l_crr_rec.parent_credit_request_id,
2410 p_credit_request_type => l_crr_rec.credit_request_type,
2411 p_reco => 'OKL_CR_MGMT_RECOMMENDATION' );
2412
2413 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
2414 THEN
2415 OKL_DEBUG_PUB.LOG_DEBUG(
2416 FND_LOG.LEVEL_PROCEDURE
2417 ,L_MODULE
2418 ,'end debug call AR_CMGT_CREDIT_REQUEST_API.CREATE_CREDIT_REQUEST');
2419 END IF;
2420
2421 -- write to log
2422 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
2423 OKL_DEBUG_PUB.LOG_DEBUG(
2424 FND_LOG.LEVEL_STATEMENT
2425 ,L_MODULE || ' Result of AR_CMGT_CREDIT_REQUEST_API.CREATE_CREDIT_REQUEST'
2426 ,'l_return_status ' || l_return_status);
2427 END IF; -- end of statement level debug
2428
2429 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
2430 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2431 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
2432 RAISE OKL_API.G_EXCEPTION_ERROR;
2433 END IF;
2434
2435 x_crr_rec := l_crr_rec;
2436 x_return_status := l_return_status;
2437
2438 OKL_API.END_ACTIVITY(
2439 x_msg_count => x_msg_count
2440 ,x_msg_data => x_msg_data);
2441
2442 EXCEPTION
2443 WHEN OKL_API.G_EXCEPTION_ERROR THEN
2444 --Lease Application Details Cursor
2445 IF lse_app_dtls_csr%ISOPEN
2446 THEN
2447 CLOSE lse_app_dtls_csr;
2448 END IF;
2449 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
2450 p_api_name => l_api_name,
2451 p_pkg_name => G_PKG_NAME,
2452 p_exc_name => 'OKL_API.G_RET_STS_ERROR',
2453 x_msg_count => x_msg_count,
2454 x_msg_data => x_msg_data,
2455 p_api_type => G_API_TYPE);
2456
2457 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2458 --Lease Application Details Cursor
2459 IF lse_app_dtls_csr%ISOPEN
2460 THEN
2461 CLOSE lse_app_dtls_csr;
2462 END IF;
2463 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
2464 p_api_name => l_api_name,
2465 p_pkg_name => G_PKG_NAME,
2466 p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
2467 x_msg_count => x_msg_count,
2468 x_msg_data => x_msg_data,
2469 p_api_type => G_API_TYPE);
2470
2471 WHEN OTHERS THEN
2472 --Lease Application Details Cursor
2473 IF lse_app_dtls_csr%ISOPEN
2474 THEN
2475 CLOSE lse_app_dtls_csr;
2476 END IF;
2477 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
2478 p_api_name => l_api_name,
2479 p_pkg_name => G_PKG_NAME,
2480 p_exc_name => 'OTHERS',
2481 x_msg_count => x_msg_count,
2482 x_msg_data => x_msg_data,
2483 p_api_type => G_API_TYPE);
2484 END create_credit_app;
2485
2486 -------------------------------------------------------------------------------
2487 -- PROCEDURE checklist_inst_cre
2488 -------------------------------------------------------------------------------
2489 -- Start of comments
2490 --
2491 -- Procedure Name : checklist_inst_cre
2492 -- Description : This procedure is a wrapper that creates checklist instance
2493 -- Business Rules : This procedure creates checklist instance
2494 -- Parameters :
2495 -- Version : 1.0
2496 -- History : 24-JUNE-2005 PAGARG created
2497 --
2498 -- End of comments
2499 PROCEDURE checklist_inst_cre(
2500 p_api_version IN NUMBER,
2501 p_init_msg_list IN VARCHAR2,
2502 x_return_status OUT NOCOPY VARCHAR2,
2503 x_msg_count OUT NOCOPY NUMBER,
2504 x_msg_data OUT NOCOPY VARCHAR2,
2505 p_lap_id IN NUMBER,
2506 p_chklst_tmpl_id IN NUMBER) IS
2507
2508 -- Variables Declarations
2509 l_api_version CONSTANT NUMBER DEFAULT G_INIT_VERSION;
2510 l_api_name CONSTANT VARCHAR2(30) DEFAULT 'CHECKLIST_INST_CRE';
2511 l_return_status VARCHAR2(1);
2512 l_counter NUMBER;
2513
2514 -- Record/Table Type Declarations
2515 l_clhv_rec OKL_CLH_PVT.CLHV_REC_TYPE;
2516 x_clhv_rec OKL_CLH_PVT.CLHV_REC_TYPE;
2517 l_cldv_tbl OKL_CLD_PVT.CLDV_TBL_TYPE;
2518 x_cldv_tbl OKL_CLD_PVT.CLDV_TBL_TYPE;
2519
2520 -- Bug#4741121 - viselvar - Modified - Start
2521 l_parameter_list wf_parameter_list_t;
2522 p_event_name VARCHAR2(240) :='oracle.apps.okl.sales.leaseapplication.checklist_associated';
2523 -- Bug#4741121 - viselvar - Modified - End
2524
2525
2526 --Cursor to obtain Lease App details
2527 CURSOR lse_app_dtls_csr(cp_lap_id NUMBER)
2528 IS
2529 SELECT LAP.ORG_ID ORG_ID
2530 , LAP.VALID_FROM VALID_FROM
2531 , LAP.VALID_TO VALID_TO
2532 FROM OKL_LEASE_APPLICATIONS_B LAP
2533 WHERE LAP.ID = cp_lap_id;
2534 lse_app_dtls_rec lse_app_dtls_csr%ROWTYPE;
2535
2536 --Cursor to obtain Checklist Header Id and details
2537 CURSOR chk_hdr_dtls_csr(cp_chk_id NUMBER)
2538 IS
2539 SELECT CHK.ID ID
2540 ,CHK.START_DATE START_DATE
2541 ,CHK.END_DATE END_DATE
2542 ,CHK.DESCRIPTION
2543 ,CHK.SHORT_DESCRIPTION
2544 FROM OKL_CHECKLISTS CHK
2545 WHERE CHK.ID = cp_chk_id;
2546 chk_hdr_dtls_rec chk_hdr_dtls_csr%ROWTYPE;
2547
2548 --Bug 4893077 PAGARG Querying checklist type from header while querying
2549 --data for source checklist items
2550 --Cursor to obtain Checklist details for given checklist
2551 CURSOR chk_ln_dtls_csr(cp_chk_id NUMBER)
2552 IS
2553 SELECT CHKD.TODO_ITEM_CODE ITEM_CODE
2554 , CHK.CHECKLIST_TYPE CHECKLIST_TYPE
2555 , CHKD.FUNCTION_ID FUNCTION_ID
2556 FROM OKL_CHECKLIST_DETAILS CHKD
2557 , OKL_CHECKLISTS CHK
2558 WHERE CHKD.CKL_ID = CHK.ID
2559 --removing the condition for bug 5167776
2560 -- AND CHK.CHECKLIST_PURPOSE_CODE <> 'CHECKLIST_INSTANCE'
2561 AND (CHK.ID = cp_chk_id OR CHK.CKL_ID = cp_chk_id );
2562
2563 --Curosr to obtain existing checklist instances with given lease application
2564 CURSOR lap_chk_dtls_csr(cp_lap_id NUMBER)
2565 IS
2566 SELECT CHK.ID ID
2567 ,CHK.START_DATE START_DATE
2568 ,CHK.END_DATE END_DATE
2569 ,CHK.DESCRIPTION DESCRIPTION
2570 ,CHK.SHORT_DESCRIPTION SHORT_DESCRIPTION
2571 ,CHK.OBJECT_VERSION_NUMBER OBJECT_VERSION_NUMBER
2572 FROM OKL_CHECKLISTS CHK
2573 WHERE CHK.CHECKLIST_OBJ_TYPE_CODE = 'LEASE_APPL'
2574 AND CHK.CHECKLIST_OBJ_ID = cp_lap_id;
2575 lap_chk_dtls_rec lap_chk_dtls_csr%ROWTYPE;
2576
2577 BEGIN
2578 l_return_status := OKL_API.G_RET_STS_SUCCESS;
2579 L_MODULE := 'OKL.PLSQL.OKL_LEASE_APP_PVT.CHECKLIST_INST_CRE';
2580
2581 -- check for logging on PROCEDURE level
2582 L_DEBUG_ENABLED := NVL(OKL_DEBUG_PUB.CHECK_LOG_ENABLED, 'N');
2583 IS_DEBUG_PROCEDURE_ON := NVL(OKL_DEBUG_PUB.CHECK_LOG_ON(L_MODULE, FND_LOG.LEVEL_PROCEDURE), FALSE);
2584 -- check for logging on STATEMENT level
2585 IS_DEBUG_STATEMENT_ON := NVL(OKL_DEBUG_PUB.CHECK_LOG_ON(L_MODULE, FND_LOG.LEVEL_STATEMENT), FALSE);
2586
2587 -- call START_ACTIVITY to create savepoint, check compatibility
2588 -- and initialize message list
2589 l_return_status := OKL_API.START_ACTIVITY(
2590 p_api_name => l_api_name
2591 ,p_pkg_name => G_PKG_NAME
2592 ,p_init_msg_list => p_init_msg_list
2593 ,l_api_version => l_api_version
2594 ,p_api_version => p_api_version
2595 ,p_api_type => G_API_TYPE
2596 ,x_return_status => l_return_status);
2597
2598 -- check if activity started successfully
2599 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2600 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2601 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2602 RAISE OKL_API.G_EXCEPTION_ERROR;
2603 END IF;
2604
2605 FOR lap_chk_dtls_rec IN lap_chk_dtls_csr(p_lap_id)
2606 LOOP
2607 l_clhv_rec.id := lap_chk_dtls_rec.id;
2608 l_clhv_rec.CHECKLIST_OBJ_ID := NULL;
2609 l_clhv_rec.CHECKLIST_OBJ_TYPE_CODE := NULL;
2610
2611 --Call to update Checklist Instance header to remove already association
2612 --with lease application
2613 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
2614 THEN
2615 OKL_DEBUG_PUB.LOG_DEBUG(
2616 FND_LOG.LEVEL_PROCEDURE
2617 ,L_MODULE
2618 ,'begin debug call OKL_CHECKLIST_PVT.UPDATE_CHECKLIST_INST_HDR');
2619 END IF;
2620
2621 OKL_CHECKLIST_PVT.UPDATE_CHECKLIST_INST_HDR(
2622 p_api_version => p_api_version
2623 ,p_init_msg_list => OKL_API.G_FALSE
2624 ,x_return_status => l_return_status
2625 ,x_msg_count => x_msg_count
2626 ,x_msg_data => x_msg_data
2627 ,p_clhv_rec => l_clhv_rec
2628 ,x_clhv_rec => x_clhv_rec);
2629
2630 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
2631 THEN
2632 OKL_DEBUG_PUB.LOG_DEBUG(
2633 FND_LOG.LEVEL_PROCEDURE
2634 ,L_MODULE
2635 ,'end debug call OKL_CHECKLIST_PVT.UPDATE_CHECKLIST_INST_HDR');
2636 END IF;
2637
2638 -- write to log
2639 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
2640 OKL_DEBUG_PUB.LOG_DEBUG(
2641 FND_LOG.LEVEL_STATEMENT
2642 ,L_MODULE || ' Result of OKL_CHECKLIST_PVT.UPDATE_CHECKLIST_INST_HDR'
2643 ,'l_return_status ' || l_return_status);
2644 END IF; -- end of statement level debug
2645
2646 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
2647 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2648 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
2649 RAISE OKL_API.G_EXCEPTION_ERROR;
2650 END IF;
2651 END LOOP;
2652
2653 --asawanka Bug 4865418 changes start
2654 IF p_chklst_tmpl_id IS NOT NULL THEN
2655 --asawanka Bug 4865418 changes end.
2656 OPEN chk_hdr_dtls_csr(p_chklst_tmpl_id);
2657 FETCH chk_hdr_dtls_csr INTO chk_hdr_dtls_rec;
2658 CLOSE chk_hdr_dtls_csr;
2659
2660 OPEN lse_app_dtls_csr(p_lap_id);
2661 FETCH lse_app_dtls_csr INTO lse_app_dtls_rec;
2662 CLOSE lse_app_dtls_csr;
2663
2664 l_clhv_rec.description := chk_hdr_dtls_rec.description;
2665 l_clhv_rec.short_description := chk_hdr_dtls_rec.short_description;
2666 l_clhv_rec.org_id := lse_app_dtls_rec.org_id;
2667 l_clhv_rec.start_date := chk_hdr_dtls_rec.start_date;
2668 IF(chk_hdr_dtls_rec.end_date <= SYSDATE)
2669 THEN
2670 l_clhv_rec.end_date := SYSDATE + 30;
2671 ELSE
2672 l_clhv_rec.end_date := chk_hdr_dtls_rec.end_date;
2673 END IF;
2674 l_clhv_rec.id := NULL;
2675 --Lease Application Id
2676 l_clhv_rec.checklist_obj_id := p_lap_id;
2677 l_clhv_rec.checklist_obj_type_code := 'LEASE_APPL';
2678
2679 --Call to create Checklist Instance
2680 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
2681 THEN
2682 OKL_DEBUG_PUB.LOG_DEBUG(
2683 FND_LOG.LEVEL_PROCEDURE
2684 ,L_MODULE
2685 ,'begin debug call OKL_CHECKLIST_PVT.CREATE_CHECKLIST_INST_HDR');
2686 END IF;
2687
2688 OKL_CHECKLIST_PVT.CREATE_CHECKLIST_INST_HDR(
2689 p_api_version => p_api_version
2690 ,p_init_msg_list => OKL_API.G_FALSE
2691 ,x_return_status => l_return_status
2692 ,x_msg_count => x_msg_count
2693 ,x_msg_data => x_msg_data
2694 ,p_clhv_rec => l_clhv_rec
2695 ,x_clhv_rec => x_clhv_rec);
2696
2697 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
2698 THEN
2699 OKL_DEBUG_PUB.LOG_DEBUG(
2700 FND_LOG.LEVEL_PROCEDURE
2701 ,L_MODULE
2702 ,'end debug call OKL_CHECKLIST_PVT.CREATE_CHECKLIST_INST_HDR');
2703 END IF;
2704
2705 -- write to log
2706 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
2707 OKL_DEBUG_PUB.LOG_DEBUG(
2708 FND_LOG.LEVEL_STATEMENT
2709 ,L_MODULE || ' Result of OKL_CHECKLIST_PVT.CREATE_CHECKLIST_INST_HDR'
2710 ,'l_return_status ' || l_return_status);
2711 END IF; -- end of statement level debug
2712
2713 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
2714 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2715 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
2716 RAISE OKL_API.G_EXCEPTION_ERROR;
2717 END IF;
2718
2719 l_counter := 0;
2720 FOR chk_ln_dtls_rec in chk_ln_dtls_csr(chk_hdr_dtls_rec.id)
2721 LOOP
2722 l_counter := l_counter + 1;
2723 l_cldv_tbl(l_counter).ckl_id := x_clhv_rec.id;
2724 l_cldv_tbl(l_counter).todo_item_code := chk_ln_dtls_rec.item_code;
2725 l_cldv_tbl(l_counter).org_id := x_clhv_rec.org_id;
2726 l_cldv_tbl(l_counter).function_id := chk_ln_dtls_rec.function_id;
2727 --Bug 4893077 PAGARG Populate instance checklist type with checklist type
2728 --of checklist header of source checklist
2729 l_cldv_tbl(l_counter).inst_checklist_type := chk_ln_dtls_rec.checklist_type;
2730 END LOOP;
2731
2732 IF(l_cldv_tbl.count > 0)
2733 THEN
2734 --Call to create Checklist Instance Details
2735 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
2736 THEN
2737 OKL_DEBUG_PUB.LOG_DEBUG(
2738 FND_LOG.LEVEL_PROCEDURE
2739 ,L_MODULE
2740 ,'begin debug call OKL_CHECKLIST_PVT.CREATE_CHECKLIST_INST_DTL');
2741 END IF;
2742
2743 OKL_CHECKLIST_PVT.CREATE_CHECKLIST_INST_DTL(
2744 p_api_version => p_api_version
2745 ,p_init_msg_list => OKL_API.G_FALSE
2746 ,x_return_status => l_return_status
2747 ,x_msg_count => x_msg_count
2748 ,x_msg_data => x_msg_data
2749 ,p_cldv_tbl => l_cldv_tbl
2750 ,x_cldv_tbl => x_cldv_tbl);
2751
2752 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
2753 THEN
2754 OKL_DEBUG_PUB.LOG_DEBUG(
2755 FND_LOG.LEVEL_PROCEDURE
2756 ,L_MODULE
2757 ,'end debug call OKL_CHECKLIST_PVT.CREATE_CHECKLIST_INST_DTL');
2758 END IF;
2759
2760 -- write to log
2761 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
2762 OKL_DEBUG_PUB.LOG_DEBUG(
2763 FND_LOG.LEVEL_STATEMENT
2764 ,L_MODULE || ' Result of OKL_CHECKLIST_PVT.CREATE_CHECKLIST_INST_DTL'
2765 ,'l_return_status ' || l_return_status);
2766 END IF; -- end of statement level debug
2767
2768 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
2769 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2770 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
2771 RAISE OKL_API.G_EXCEPTION_ERROR;
2772 END IF;
2773 END IF;-- l_cldv_tbl.count > 0
2774
2775 -- Bug#4741121 - viselvar - Modified - Start
2776 -- raise the business event passing the Lease Application id added to the parameter list
2777
2778 wf_event.addparametertolist('LAPP_ID'
2779 ,p_lap_id
2780 ,l_parameter_list);
2781
2782 okl_wf_pvt.raise_event( p_api_version => p_api_version
2783 ,p_init_msg_list => p_init_msg_list
2784 ,x_return_status => l_return_status
2785 ,x_msg_count => x_msg_count
2786 ,x_msg_data => x_msg_data
2787 ,p_event_name => p_event_name
2788 ,p_parameters => l_parameter_list);
2789
2790
2791 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
2792 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2793 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
2794 RAISE OKL_API.G_EXCEPTION_ERROR;
2795 END IF;
2796
2797 -- Bug#4741121 - viselvar - Modified - End
2798 --asawanka Bug 4865418 changes start
2799 END IF;
2800 --asawanka Bug 4865418 changes end.
2801 x_return_status := l_return_status;
2802
2803 OKL_API.END_ACTIVITY(
2804 x_msg_count => x_msg_count
2805 ,x_msg_data => x_msg_data);
2806
2807 EXCEPTION
2808 WHEN OKL_API.G_EXCEPTION_ERROR THEN
2809 --Lease App Details Cursor
2810 IF lse_app_dtls_csr%ISOPEN
2811 THEN
2812 CLOSE lse_app_dtls_csr;
2813 END IF;
2814 --Checklist Header Details Cursor
2815 IF chk_hdr_dtls_csr%ISOPEN
2816 THEN
2817 CLOSE chk_hdr_dtls_csr;
2818 END IF;
2819 --Checklist Details Cursor
2820 IF chk_ln_dtls_csr%ISOPEN
2821 THEN
2822 CLOSE chk_ln_dtls_csr;
2823 END IF;
2824 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
2825 p_api_name => l_api_name,
2826 p_pkg_name => G_PKG_NAME,
2827 p_exc_name => 'OKL_API.G_RET_STS_ERROR',
2828 x_msg_count => x_msg_count,
2829 x_msg_data => x_msg_data,
2830 p_api_type => G_API_TYPE);
2831
2832 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2833 --Lease App Details Cursor
2834 IF lse_app_dtls_csr%ISOPEN
2835 THEN
2836 CLOSE lse_app_dtls_csr;
2837 END IF;
2838 --Checklist Header Details Cursor
2839 IF chk_hdr_dtls_csr%ISOPEN
2840 THEN
2841 CLOSE chk_hdr_dtls_csr;
2842 END IF;
2843 --Checklist Details Cursor
2844 IF chk_ln_dtls_csr%ISOPEN
2845 THEN
2846 CLOSE chk_ln_dtls_csr;
2847 END IF;
2848 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
2849 p_api_name => l_api_name,
2850 p_pkg_name => G_PKG_NAME,
2851 p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
2852 x_msg_count => x_msg_count,
2853 x_msg_data => x_msg_data,
2854 p_api_type => G_API_TYPE);
2855
2856 WHEN OTHERS THEN
2857 --Lease App Details Cursor
2858 IF lse_app_dtls_csr%ISOPEN
2859 THEN
2860 CLOSE lse_app_dtls_csr;
2861 END IF;
2862 --Checklist Header Details Cursor
2863 IF chk_hdr_dtls_csr%ISOPEN
2864 THEN
2865 CLOSE chk_hdr_dtls_csr;
2866 END IF;
2867 --Checklist Details Cursor
2868 IF chk_ln_dtls_csr%ISOPEN
2869 THEN
2870 CLOSE chk_ln_dtls_csr;
2871 END IF;
2872 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
2873 p_api_name => l_api_name,
2874 p_pkg_name => G_PKG_NAME,
2875 p_exc_name => 'OTHERS',
2876 x_msg_count => x_msg_count,
2877 x_msg_data => x_msg_data,
2878 p_api_type => G_API_TYPE);
2879 END CHECKLIST_INST_CRE;
2880
2881 -------------------------------------------------------------------------------
2882 -- PROCEDURE lease_app_cre
2883 -------------------------------------------------------------------------------
2884 -- Start of comments
2885 --
2886 -- Procedure Name : lease_app_cre
2887 -- Description : This procedure is a wrapper that creates records for
2888 -- : lease application.
2889 -- Business Rules : This procedure inserts records into the
2890 -- OKL_LEASE_APPLICATIONS_B and _TL table
2891 -- Parameters :
2892 -- Version : 1.0
2893 -- History : 20-MAY-2005 PAGARG created
2894 -- : 09 Feb 2006 PAGARG Bug 4960541 Added call to validations
2895 -- API while creating Lease App from Lease Quote
2896 -- End of comments
2897 PROCEDURE lease_app_cre(
2898 p_api_version IN NUMBER,
2899 p_init_msg_list IN VARCHAR2,
2900 x_return_status OUT NOCOPY VARCHAR2,
2901 x_msg_count OUT NOCOPY NUMBER,
2902 x_msg_data OUT NOCOPY VARCHAR2,
2903 p_lapv_rec IN lapv_rec_type,
2904 x_lapv_rec OUT NOCOPY lapv_rec_type,
2905 p_lsqv_rec IN lsqv_rec_type,
2906 x_lsqv_rec OUT NOCOPY lsqv_rec_type) IS
2907
2908 -- Variables Declarations
2909 l_api_version CONSTANT NUMBER DEFAULT G_INIT_VERSION;
2910 l_api_name CONSTANT VARCHAR2(30) DEFAULT 'LEASE_APP_CRE';
2911 l_return_status VARCHAR2(1);
2912 l_qa_result VARCHAR2(1);
2913
2914 -- Record/Table Type Declarations
2915 l_lapv_rec lapv_rec_type;
2916 l_lsqv_rec lsqv_rec_type;
2917 l_crr_rec crr_rec_type;
2918 x_crr_rec crr_rec_type;
2919
2920 -- Bug#4741121 - viselvar - Modified - Start
2921 l_parameter_list wf_parameter_list_t;
2922 p_event_name VARCHAR2(240) :='oracle.apps.okl.sales.leaseapplication.header_created';
2923 p_event_name1 VARCHAR2(240) :='oracle.apps.okl.sales.leaseapplication.sales_quote_created';
2924 -- Bug#4741121 - viselvar - Modified - End
2925
2926 --Cursor to obtain Checklist Header Id
2927 CURSOR chk_hdr_dtls_csr(cp_lap_id NUMBER)
2928 IS
2929 SELECT LATV.CHECKLIST_ID
2930 FROM OKL_LEASE_APPLICATIONS_B LAP
2931 ,OKL_LEASEAPP_TEMPL_VERSIONS_V LATV
2932 WHERE LAP.LEASEAPP_TEMPLATE_ID = LATV.ID
2933 AND LAP.ID = cp_lap_id;
2934 chk_hdr_dtls_rec chk_hdr_dtls_csr%ROWTYPE;
2935
2936 --Cursor to obtain Lease App Source details
2937 --Begin - varangan-3-11-2005- removed lease application reference for bug#4713798
2938 CURSOR lse_app_src_dtls_csr(cp_lap_id NUMBER)
2939 IS
2940 SELECT LSQ.ID LSQ_ID
2941 , LOP.ID LOP_ID
2942 FROM OKL_LEASE_OPPORTUNITIES_B LOP
2943 , OKL_LEASE_QUOTES_B LSQ
2944 WHERE
2945 LSQ.PARENT_OBJECT_ID = LOP.ID
2946 AND LSQ.PARENT_OBJECT_CODE = 'LEASEOPP'
2947 AND LSQ.STATUS = 'CT-ACCEPTED'
2948 AND LOP.ID = cp_lap_id;
2949 --End - varangan-3-11-2005- removed lease application reference for bug#4713798
2950 lse_app_src_dtls_rec lse_app_src_dtls_csr%ROWTYPE;
2951 BEGIN
2952 l_return_status := OKL_API.G_RET_STS_SUCCESS;
2953 L_MODULE := 'OKL.PLSQL.OKL_LEASE_APP_PVT.LEASE_APP_CRE';
2954
2955 -- check for logging on PROCEDURE level
2956 L_DEBUG_ENABLED := NVL(OKL_DEBUG_PUB.CHECK_LOG_ENABLED, 'N');
2957 IS_DEBUG_PROCEDURE_ON := NVL(OKL_DEBUG_PUB.CHECK_LOG_ON(L_MODULE, FND_LOG.LEVEL_PROCEDURE), FALSE);
2958 -- check for logging on STATEMENT level
2959 IS_DEBUG_STATEMENT_ON := NVL(OKL_DEBUG_PUB.CHECK_LOG_ON(L_MODULE, FND_LOG.LEVEL_STATEMENT), FALSE);
2960
2961 l_lapv_rec := p_lapv_rec;
2962 l_lsqv_rec := p_lsqv_rec;
2963
2964 -- call START_ACTIVITY to create savepoint, check compatibility
2965 -- and initialize message list
2966 l_return_status := OKL_API.START_ACTIVITY(
2967 p_api_name => l_api_name
2968 ,p_pkg_name => G_PKG_NAME
2969 ,p_init_msg_list => p_init_msg_list
2970 ,l_api_version => l_api_version
2971 ,p_api_version => p_api_version
2972 ,p_api_type => G_API_TYPE
2973 ,x_return_status => l_return_status);
2974
2975 -- check if activity started successfully
2976 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2977 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2978 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2979 RAISE OKL_API.G_EXCEPTION_ERROR;
2980 END IF;
2981
2982 --set the status for lease application
2983 l_lapv_rec.application_status := G_INIT_APPL_STATUS;
2984
2985 --Validate Lease Application Template
2986 --Validate Program Agreement
2987 --Validate VP and LAT association
2988 --Validate Lease Quote
2989 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
2990 THEN
2991 OKL_DEBUG_PUB.LOG_DEBUG(
2992 FND_LOG.LEVEL_PROCEDURE
2993 ,L_MODULE
2994 ,'begin debug call LEASE_APP_VAL');
2995 END IF;
2996
2997 LEASE_APP_VAL(
2998 p_api_version => p_api_version
2999 ,p_init_msg_list => OKL_API.G_FALSE
3000 ,x_return_status => l_return_status
3001 ,x_msg_count => x_msg_count
3002 ,x_msg_data => x_msg_data
3003 ,p_lapv_rec => l_lapv_rec
3004 ,p_lsqv_rec => l_lsqv_rec);
3005
3006 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
3007 THEN
3008 OKL_DEBUG_PUB.LOG_DEBUG(
3009 FND_LOG.LEVEL_PROCEDURE
3010 ,L_MODULE
3011 ,'end debug call LEASE_APP_VAL');
3012 END IF;
3013
3014 -- write to log
3015 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
3016 OKL_DEBUG_PUB.LOG_DEBUG(
3017 FND_LOG.LEVEL_STATEMENT
3018 ,L_MODULE || ' Result of LEASE_APP_VAL'
3019 ,'l_return_status ' || l_return_status);
3020 END IF; -- end of statement level debug
3021
3022 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
3023 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3024 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
3025 RAISE OKL_API.G_EXCEPTION_ERROR;
3026 END IF;
3027
3028 IF(l_lapv_rec.lease_opportunity_id IS NOT NULL OR
3029 l_lapv_rec.lease_opportunity_id <> OKL_API.G_MISS_NUM)
3030 THEN
3031 --BUG 4951955 PAGARG Instead of Lease Opp id, pass source Lease Quote id
3032 --as parameter to check default values
3033 OPEN lse_app_src_dtls_csr(l_lapv_rec.lease_opportunity_id);
3034 FETCH lse_app_src_dtls_csr INTO lse_app_src_dtls_rec;
3035 CLOSE lse_app_src_dtls_csr;
3036
3037 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
3038 THEN
3039 OKL_DEBUG_PUB.LOG_DEBUG(
3040 FND_LOG.LEVEL_PROCEDURE
3041 ,L_MODULE
3042 ,'begin debug call CHECK_LEASE_QUOTE_DEFAULTS');
3043 END IF;
3044
3045 check_lease_quote_defaults(
3046 p_api_version => p_api_version
3047 ,p_init_msg_list => OKL_API.G_FALSE
3048 ,x_return_status => l_return_status
3049 ,x_msg_count => x_msg_count
3050 ,x_msg_data => x_msg_data
3051 ,p_source_lsq_id => lse_app_src_dtls_rec.lsq_id
3052 ,p_lapv_rec => l_lapv_rec
3053 ,p_lsqv_rec => l_lsqv_rec);
3054
3055 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
3056 THEN
3057 OKL_DEBUG_PUB.LOG_DEBUG(
3058 FND_LOG.LEVEL_PROCEDURE
3059 ,L_MODULE
3060 ,'end debug call CHECK_LEASE_QUOTE_DEFAULTS');
3061 END IF;
3062
3063 -- write to log
3064 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON)
3065 THEN
3066 OKL_DEBUG_PUB.LOG_DEBUG(
3067 FND_LOG.LEVEL_STATEMENT
3068 ,L_MODULE || ' Result of CHECK_LEASE_QUOTE_DEFAULTS'
3069 ,'l_return_status ' || l_return_status);
3070 END IF; -- end of statement level debug
3071
3072 -- Check the status and accordingly set the Lease Application Status
3073 IF(l_return_status = OKL_API.G_RET_STS_SUCCESS)THEN
3074 l_lapv_rec.application_status := 'PR-ACCEPTED';
3075 END IF;
3076 END IF; -- LEASE_OPPORTUNITY_ID check for null and G_MISS_NUM
3077
3078 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
3079 THEN
3080 OKL_DEBUG_PUB.LOG_DEBUG(
3081 FND_LOG.LEVEL_PROCEDURE
3082 ,L_MODULE
3083 ,'begin debug call OKL_LAP_PVT.INSERT_ROW');
3084 END IF;
3085
3086 -- call the TAPI insert_row to create a lease application
3087 OKL_LAP_PVT.INSERT_ROW(
3088 p_api_version => p_api_version
3089 ,p_init_msg_list => OKL_API.G_FALSE
3090 ,x_return_status => l_return_status
3091 ,x_msg_count => x_msg_count
3092 ,x_msg_data => x_msg_data
3093 ,p_lapv_rec => l_lapv_rec
3094 ,x_lapv_rec => x_lapv_rec);
3095
3096 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
3097 THEN
3098 OKL_DEBUG_PUB.LOG_DEBUG(
3099 FND_LOG.LEVEL_PROCEDURE
3100 ,L_MODULE
3101 ,'end debug call OKL_LAP_PVT.INSERT_ROW');
3102 END IF;
3103
3104 -- write to log
3105 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
3106 OKL_DEBUG_PUB.LOG_DEBUG(
3107 FND_LOG.LEVEL_STATEMENT
3108 ,L_MODULE || ' Result of OKL_LAP_PVT.INSERT_ROW'
3109 ,'l_lapv_rec.reference_number ' || to_char(l_lapv_rec.reference_number) ||
3110 ' l_lapv_rec.id '|| l_lapv_rec.id ||
3111 ' result status ' || l_return_status ||
3112 ' x_msg_data ' || x_msg_data);
3113 END IF; -- end of statement level debug
3114
3115 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
3116 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3117 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
3118 RAISE OKL_API.G_EXCEPTION_ERROR;
3119 END IF;
3120
3121 --Populate lease quote rec values
3122 l_lsqv_rec.parent_object_code := 'LEASEAPP';
3123 l_lsqv_rec.parent_object_id := x_lapv_rec.id;
3124 --Bug 4721142 PAGARG set the lease quote reference number form sequence
3125 --Bug 4867953 PAGARG instead of using the sequence directly use function
3126 l_lsqv_rec.reference_number := get_next_seq_num(
3127 'OKL_LSQ_REF_SEQ'
3128 ,'OKL_LEASE_QUOTES_B'
3129 ,'REFERENCE_NUMBER');
3130 --Bug Fix End
3131 l_lsqv_rec.status := 'PR-INCOMPLETE';
3132 l_lsqv_rec.primary_quote := 'Y';
3133
3134 --if lease application is sourced from Lease Opportunity then duplicate the
3135 --underline lease quote with the header rec passed to duplicate api
3136 --This way it will duplicate lease quote with header values from rec and
3137 --rest of configuration, adjustment, pricing data from the source lease quote id
3138 IF(l_lapv_rec.lease_opportunity_id IS NOT NULL
3139 AND l_lapv_rec.lease_opportunity_id <> OKL_API.G_MISS_NUM)
3140 THEN
3141 IF(x_lapv_rec.application_status = 'PR-ACCEPTED')
3142 THEN
3143 l_lsqv_rec.status := 'CT-ACCEPTED';
3144 END IF;
3145 --Begin - varangan-3-11-2005- updated with lease opportunity id for bug#4713798
3146 OPEN lse_app_src_dtls_csr(l_lapv_rec.lease_opportunity_id);
3147 --End - varangan-3-11-2005- updated with lease opportunity id for bug#4713798
3148 FETCH lse_app_src_dtls_csr INTO lse_app_src_dtls_rec;
3149 CLOSE lse_app_src_dtls_csr;
3150
3151 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
3152 THEN
3153 OKL_DEBUG_PUB.LOG_DEBUG(
3154 FND_LOG.LEVEL_PROCEDURE
3155 ,L_MODULE
3156 ,'begin debug call OKL_LEASE_QUOTE_PVT.DUPLICATE_LEASE_QTE');
3157 END IF;
3158
3159 -- call the procedure to create lease quote line
3160 OKL_LEASE_QUOTE_PVT.DUPLICATE_LEASE_QTE(
3161 p_api_version => p_api_version
3162 ,p_init_msg_list => OKL_API.G_FALSE
3163 ,p_transaction_control => OKL_API.G_TRUE
3164 ,p_source_quote_id => lse_app_src_dtls_rec.lsq_id
3165 ,p_lease_qte_rec => l_lsqv_rec
3166 ,x_lease_qte_rec => x_lsqv_rec
3167 ,x_return_status => l_return_status
3168 ,x_msg_count => x_msg_count
3169 ,x_msg_data => x_msg_data);
3170
3171 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
3172 THEN
3173 OKL_DEBUG_PUB.LOG_DEBUG(
3174 FND_LOG.LEVEL_PROCEDURE
3175 ,L_MODULE
3176 ,'end debug call OKL_LEASE_QUOTE_PVT.DUPLICATE_LEASE_QTE');
3177 END IF;
3178
3179 -- write to log
3180 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
3181 OKL_DEBUG_PUB.LOG_DEBUG(
3182 FND_LOG.LEVEL_STATEMENT
3183 ,L_MODULE || ' Result of OKL_LEASE_QUOTE_PVT.DUPLICATE_LEASE_QTE'
3184 ,'l_lsqv_rec.reference_number ' || to_char(l_lsqv_rec.reference_number) ||
3185 ' l_lsqv_rec.id '|| l_lsqv_rec.id ||
3186 ' result status ' || l_return_status ||
3187 ' x_msg_data ' || x_msg_data);
3188 END IF; -- end of statement level debug
3189
3190 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
3191 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3192 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
3193 RAISE OKL_API.G_EXCEPTION_ERROR;
3194 END IF;
3195
3196 --Bug 4960541 PAGARG Added call to validations API while creating Lease
3197 --App from Lease Quote. Based on qa result Lease App and Lease Quote status
3198 --are updated
3199 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
3200 THEN
3201 OKL_DEBUG_PUB.LOG_DEBUG(
3202 FND_LOG.LEVEL_PROCEDURE
3203 ,L_MODULE
3204 ,'begin debug call LEASE_APP_QA_VAL');
3205 END IF;
3206
3207 -- call the procedure to perform QA validations
3208 LEASE_APP_QA_VAL(
3209 p_api_version => p_api_version
3210 ,p_init_msg_list => OKL_API.G_FALSE
3211 ,p_lap_id => x_lapv_rec.id
3212 ,x_return_status => l_return_status
3213 ,x_msg_count => x_msg_count
3214 ,x_msg_data => x_msg_data
3215 ,x_qa_result => l_qa_result);
3216
3217 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
3218 THEN
3219 OKL_DEBUG_PUB.LOG_DEBUG(
3220 FND_LOG.LEVEL_PROCEDURE
3221 ,L_MODULE
3222 ,'end debug call LEASE_APP_QA_VAL');
3223 END IF;
3224
3225 -- write to log
3226 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
3227 OKL_DEBUG_PUB.LOG_DEBUG(
3228 FND_LOG.LEVEL_STATEMENT
3229 ,L_MODULE
3230 ,' Result of LEASE_APP_QA_VAL' ||
3231 ' Result Status ' || l_return_status ||
3232 ' QA Result Status ' || l_qa_result);
3233 END IF; -- end of statement level debug
3234
3235 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
3236 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3237 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
3238 RAISE OKL_API.G_EXCEPTION_ERROR;
3239 END IF;
3240
3241 IF l_qa_result <> OKL_API.G_RET_STS_SUCCESS
3242 THEN
3243 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
3244 THEN
3245 OKL_DEBUG_PUB.LOG_DEBUG(
3246 FND_LOG.LEVEL_PROCEDURE
3247 ,L_MODULE
3248 ,'begin debug call SET_LEASE_APP_STATUS');
3249 END IF;
3250
3251 --call the procedure to update a lease application status
3252 SET_LEASE_APP_STATUS(
3253 p_api_version => p_api_version
3254 ,p_init_msg_list => OKL_API.G_FALSE
3255 ,p_lap_id => x_lapv_rec.id
3256 ,p_lap_status => G_INIT_APPL_STATUS
3257 ,x_return_status => l_return_status
3258 ,x_msg_count => x_msg_count
3259 ,x_msg_data => x_msg_data);
3260
3261 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
3262 THEN
3263 OKL_DEBUG_PUB.LOG_DEBUG(
3264 FND_LOG.LEVEL_PROCEDURE
3265 ,L_MODULE
3266 ,'end debug call SET_LEASE_APP_STATUS');
3267 END IF;
3268
3269 -- write to log
3270 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
3271 OKL_DEBUG_PUB.LOG_DEBUG(
3272 FND_LOG.LEVEL_STATEMENT
3273 ,L_MODULE || ' Result of SET_LEASE_APP_STATUS'
3274 ,'return status ' || l_return_status ||
3275 ' x_msg_data ' || x_msg_data);
3276 END IF; -- end of statement level debug
3277
3278 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3279 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3280 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3281 RAISE OKL_API.G_EXCEPTION_ERROR;
3282 END IF;
3283
3284 l_lsqv_rec := x_lsqv_rec;
3285 l_lsqv_rec.status := 'PR-INCOMPLETE';
3286 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
3287 THEN
3288 OKL_DEBUG_PUB.LOG_DEBUG(
3289 FND_LOG.LEVEL_PROCEDURE
3290 ,L_MODULE
3291 ,'begin debug call OKL_LEASE_QUOTE_PVT.UPDATE_LEASE_QTE');
3292 END IF;
3293
3294 -- call the procedure to create lease quote line
3295 OKL_LEASE_QUOTE_PVT.UPDATE_LEASE_QTE(
3296 p_api_version => p_api_version
3297 ,p_init_msg_list => OKL_API.G_FALSE
3298 ,p_transaction_control => OKL_API.G_TRUE
3299 ,p_lease_qte_rec => l_lsqv_rec
3300 ,x_lease_qte_rec => x_lsqv_rec
3301 ,x_return_status => l_return_status
3302 ,x_msg_count => x_msg_count
3303 ,x_msg_data => x_msg_data);
3304
3305 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
3306 THEN
3307 OKL_DEBUG_PUB.LOG_DEBUG(
3308 FND_LOG.LEVEL_PROCEDURE
3309 ,L_MODULE
3310 ,'end debug call OKL_LEASE_QUOTE_PVT.UPDATE_LEASE_QTE');
3311 END IF;
3312
3313 -- write to log
3314 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
3315 OKL_DEBUG_PUB.LOG_DEBUG(
3316 FND_LOG.LEVEL_STATEMENT
3317 ,L_MODULE || ' Result of OKL_LEASE_QUOTE_PVT.UPDATE_LEASE_QTE'
3318 ,'l_lsqv_rec.reference_number ' || to_char(l_lsqv_rec.reference_number) ||
3319 ' l_lsqv_rec.id '|| l_lsqv_rec.id ||
3320 ' result status ' || l_return_status ||
3321 ' x_msg_data ' || x_msg_data);
3322 END IF; -- end of statement level debug
3323
3324 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
3325 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3326 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
3327 RAISE OKL_API.G_EXCEPTION_ERROR;
3328 END IF;
3329 -- Bug 7440199: Quote Streams ER: RGOOTY: Start
3330 ELSE
3331 --Making the pricing call to generate the streams
3332 IF(x_lapv_rec.application_status = 'PR-ACCEPTED')
3333 THEN
3334 --Start Pricing API call
3335 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
3336 THEN
3337 OKL_DEBUG_PUB.LOG_DEBUG(
3338 FND_LOG.LEVEL_PROCEDURE
3339 ,L_MODULE
3340 ,'begin debug call OKL_PRICING_UTILS_PVT.PRICE_STANDARD_QUOTE');
3341 END IF;
3342
3343 OKL_PRICING_UTILS_PVT.PRICE_STANDARD_QUOTE(
3344 p_api_version => p_api_version
3345 ,p_init_msg_list => OKL_API.G_FALSE
3346 ,p_qte_id => x_lsqv_rec.id
3347 ,x_return_status => l_return_status
3348 ,x_msg_count => x_msg_count
3349 ,x_msg_data => x_msg_data);
3350
3351 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
3352 THEN
3353 OKL_DEBUG_PUB.LOG_DEBUG(
3354 FND_LOG.LEVEL_PROCEDURE
3355 ,L_MODULE
3356 ,'end debug call OKL_PRICING_UTILS_PVT.PRICE_STANDARD_QUOTE');
3357 END IF;
3358
3359 -- write to log
3360 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
3361 OKL_DEBUG_PUB.LOG_DEBUG(
3362 FND_LOG.LEVEL_STATEMENT
3363 ,L_MODULE || ' Result of OKL_PRICING_UTILS_PVT.PRICE_STANDARD_QUOTE'
3364 ,'l_return_status ' || l_return_status);
3365 END IF; -- end of statement level debug
3366
3367 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
3368 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3369 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
3370 RAISE OKL_API.G_EXCEPTION_ERROR;
3371 END IF;
3372 --End of Pricing API call
3373 END IF;
3374 -- Bug 7440199: Quote Streams ER: RGOOTY: End
3375 END IF; -- For QA Result Check
3376 ELSE -- if Lease Opportunity Id is null
3377 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
3378 THEN
3379 OKL_DEBUG_PUB.LOG_DEBUG(
3380 FND_LOG.LEVEL_PROCEDURE
3381 ,L_MODULE
3382 ,'begin debug call OKL_LEASE_QUOTE_PVT.CREATE_LEASE_QTE');
3383 END IF;
3384
3385 -- call the procedure to create lease quote line
3386 OKL_LEASE_QUOTE_PVT.CREATE_LEASE_QTE(
3387 p_api_version => p_api_version
3388 ,p_init_msg_list => OKL_API.G_FALSE
3389 ,p_transaction_control => OKL_API.G_TRUE
3390 ,p_lease_qte_rec => l_lsqv_rec
3391 ,x_lease_qte_rec => x_lsqv_rec
3392 ,x_return_status => l_return_status
3393 ,x_msg_count => x_msg_count
3394 ,x_msg_data => x_msg_data);
3395
3396 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
3397 THEN
3398 OKL_DEBUG_PUB.LOG_DEBUG(
3399 FND_LOG.LEVEL_PROCEDURE
3400 ,L_MODULE
3401 ,'end debug call OKL_LEASE_QUOTE_PVT.CREATE_LEASE_QTE');
3402 END IF;
3403
3404 -- write to log
3405 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
3406 OKL_DEBUG_PUB.LOG_DEBUG(
3407 FND_LOG.LEVEL_STATEMENT
3408 ,L_MODULE || ' Result of OKL_LEASE_QUOTE_PVT.CREATE_LEASE_QTE'
3409 ,'l_lsqv_rec.reference_number ' || to_char(l_lsqv_rec.reference_number) ||
3410 ' l_lsqv_rec.id '|| l_lsqv_rec.id ||
3411 ' result status ' || l_return_status ||
3412 ' x_msg_data ' || x_msg_data);
3413 END IF; -- end of statement level debug
3414
3415 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
3416 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3417 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
3418 RAISE OKL_API.G_EXCEPTION_ERROR;
3419 END IF;
3420
3421 END IF;
3422 -- Bug#4741121 - viselvar - Modified - Start
3423 -- raise the business event passing the Lease Application id added to the parameter list
3424 wf_event.addparametertolist('LAPP_ID'
3425 ,x_lapv_rec.id
3426 ,l_parameter_list);
3427 okl_wf_pvt.raise_event(p_api_version => p_api_version
3428 ,p_init_msg_list => p_init_msg_list
3429 ,x_return_status => l_return_status
3430 ,x_msg_count => x_msg_count
3431 ,x_msg_data => x_msg_data
3432 ,p_event_name => p_event_name1
3433 ,p_parameters => l_parameter_list);
3434
3435 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
3436 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3437 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
3438 RAISE OKL_API.G_EXCEPTION_ERROR;
3439 END IF;
3440 -- Bug#4741121 - viselvar - Modified - End
3441
3442 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
3443 THEN
3444 OKL_DEBUG_PUB.LOG_DEBUG(
3445 FND_LOG.LEVEL_PROCEDURE
3446 ,L_MODULE
3447 ,'begin debug call CREATE_CREDIT_APP');
3448 END IF;
3449
3450 --call to create Credit Lease Application
3451 CREATE_CREDIT_APP(
3452 p_api_version => p_api_version
3453 ,p_init_msg_list => OKL_API.G_FALSE
3454 ,x_return_status => l_return_status
3455 ,x_msg_count => x_msg_count
3456 ,x_msg_data => x_msg_data
3457 ,p_lapv_rec => x_lapv_rec
3458 ,p_crr_rec => l_crr_rec
3459 ,x_crr_rec => x_crr_rec);
3460
3461 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
3462 THEN
3463 OKL_DEBUG_PUB.LOG_DEBUG(
3464 FND_LOG.LEVEL_PROCEDURE
3465 ,L_MODULE
3466 ,'end debug call CREATE_CREDIT_APP');
3467 END IF;
3468
3469 -- write to log
3470 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
3471 OKL_DEBUG_PUB.LOG_DEBUG(
3472 FND_LOG.LEVEL_STATEMENT
3473 ,L_MODULE || ' Result of CREATE_CREDIT_APP'
3474 ,' result status ' || l_return_status);
3475 END IF; -- end of statement level debug
3476
3477 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
3478 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3479 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
3480 RAISE OKL_API.G_EXCEPTION_ERROR;
3481 END IF;
3482
3483 OPEN chk_hdr_dtls_csr(x_lapv_rec.id);
3484 FETCH chk_hdr_dtls_csr INTO chk_hdr_dtls_rec;
3485 CLOSE chk_hdr_dtls_csr;
3486
3487 IF(chk_hdr_dtls_rec.checklist_id IS NOT NULL)
3488 THEN
3489 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
3490 THEN
3491 OKL_DEBUG_PUB.LOG_DEBUG(
3492 FND_LOG.LEVEL_PROCEDURE
3493 ,L_MODULE
3494 ,'begin debug call CHECKLIST_INST_CRE');
3495 END IF;
3496
3497 --call to create Checklist Instance
3498 CHECKLIST_INST_CRE(
3499 p_api_version => p_api_version
3500 ,p_init_msg_list => OKL_API.G_FALSE
3501 ,x_return_status => l_return_status
3502 ,x_msg_count => x_msg_count
3503 ,x_msg_data => x_msg_data
3504 ,p_lap_id => x_lapv_rec.id
3505 ,p_chklst_tmpl_id => chk_hdr_dtls_rec.checklist_id);
3506
3507 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
3508 THEN
3509 OKL_DEBUG_PUB.LOG_DEBUG(
3510 FND_LOG.LEVEL_PROCEDURE
3511 ,L_MODULE
3512 ,'end debug call CHECKLIST_INST_CRE');
3513 END IF;
3514
3515 -- write to log
3516 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
3517 OKL_DEBUG_PUB.LOG_DEBUG(
3518 FND_LOG.LEVEL_STATEMENT
3519 ,L_MODULE || ' Result of CHECKLIST_INST_CRE'
3520 ,' result status ' || l_return_status);
3521 END IF; -- end of statement level debug
3522
3523 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
3524 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3525 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
3526 RAISE OKL_API.G_EXCEPTION_ERROR;
3527 END IF;
3528 END IF; -- Condition to check for call to create checklist instance
3529
3530 -- Bug#4741121 - viselvar - Modified - Start
3531 -- raise the business event passing the Lease Application id added to the parameter list
3532 wf_event.addparametertolist('LAPP_ID'
3533 ,x_lapv_rec.id
3534 ,l_parameter_list);
3535 okl_wf_pvt.raise_event(p_api_version => p_api_version
3536 ,p_init_msg_list => p_init_msg_list
3537 ,x_return_status => l_return_status
3538 ,x_msg_count => x_msg_count
3539 ,x_msg_data => x_msg_data
3540 ,p_event_name => p_event_name
3541 ,p_parameters => l_parameter_list);
3542
3543 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
3544 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3545 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
3546 RAISE OKL_API.G_EXCEPTION_ERROR;
3547 END IF;
3548 -- Bug#4741121 - viselvar - Modified - End
3549
3550 x_return_status := l_return_status;
3551 OKL_API.END_ACTIVITY(
3552 x_msg_count => x_msg_count
3553 ,x_msg_data => x_msg_data);
3554 EXCEPTION
3555 WHEN OKL_API.G_EXCEPTION_ERROR THEN
3556 --Checklist Header Details Cursor
3557 IF chk_hdr_dtls_csr%ISOPEN
3558 THEN
3559 CLOSE chk_hdr_dtls_csr;
3560 END IF;
3561 --Lease Application Source Details Cursor
3562 IF lse_app_src_dtls_csr%ISOPEN
3563 THEN
3564 CLOSE lse_app_src_dtls_csr;
3565 END IF;
3566 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
3567 p_api_name => l_api_name,
3568 p_pkg_name => G_PKG_NAME,
3569 p_exc_name => 'OKL_API.G_RET_STS_ERROR',
3570 x_msg_count => x_msg_count,
3571 x_msg_data => x_msg_data,
3572 p_api_type => G_API_TYPE);
3573 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3574 --Checklist Header Details Cursor
3575 IF chk_hdr_dtls_csr%ISOPEN
3576 THEN
3577 CLOSE chk_hdr_dtls_csr;
3578 END IF;
3579 --Lease Application Source Details Cursor
3580 IF lse_app_src_dtls_csr%ISOPEN
3581 THEN
3582 CLOSE lse_app_src_dtls_csr;
3583 END IF;
3584 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
3585 p_api_name => l_api_name,
3586 p_pkg_name => G_PKG_NAME,
3587 p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
3588 x_msg_count => x_msg_count,
3589 x_msg_data => x_msg_data,
3590 p_api_type => G_API_TYPE);
3591 WHEN OTHERS THEN
3592 --Checklist Header Details Cursor
3593 IF chk_hdr_dtls_csr%ISOPEN
3594 THEN
3595 CLOSE chk_hdr_dtls_csr;
3596 END IF;
3597 --Lease Application Source Details Cursor
3598 IF lse_app_src_dtls_csr%ISOPEN
3599 THEN
3600 CLOSE lse_app_src_dtls_csr;
3601 END IF;
3602 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
3603 p_api_name => l_api_name,
3604 p_pkg_name => G_PKG_NAME,
3605 p_exc_name => 'OTHERS',
3606 x_msg_count => x_msg_count,
3607 x_msg_data => x_msg_data,
3608 p_api_type => G_API_TYPE);
3609 END lease_app_cre;
3610
3611 ------------------------------------------------------------------------------
3612 -- PROCEDURE lease_app_upd
3613 ------------------------------------------------------------------------------
3614 -- Start of comments
3615 --
3616 -- Procedure Name : lease_app_upd
3617 -- Description : This procedure is a wrapper that updates records for
3618 -- : lease application.
3619 -- Business Rules : This procedure updates records into the
3620 -- OKL_LEASE_APPLICATIONS_B and _TL table
3621 -- Parameters :
3622 -- Version : 1.0
3623 -- History : 20-MAY-2005 PAGARG created
3624 --
3625 -- End of comments
3626 PROCEDURE lease_app_upd(
3627 p_api_version IN NUMBER,
3628 p_init_msg_list IN VARCHAR2,
3629 x_return_status OUT NOCOPY VARCHAR2,
3630 x_msg_count OUT NOCOPY NUMBER,
3631 x_msg_data OUT NOCOPY VARCHAR2,
3632 p_lapv_rec IN lapv_rec_type,
3633 x_lapv_rec OUT NOCOPY lapv_rec_type,
3634 p_lsqv_rec IN lsqv_rec_type,
3635 x_lsqv_rec OUT NOCOPY lsqv_rec_type) IS
3636
3637 -- Variables Declarations
3638 l_api_version CONSTANT NUMBER DEFAULT G_INIT_VERSION;
3639 l_api_name CONSTANT VARCHAR2(30) DEFAULT 'LEASE_APP_UPD';
3640 l_return_status VARCHAR2(1);
3641 l_update_quote NUMBER;
3642
3643 -- Record/Table Type Declarations
3644 l_lapv_rec lapv_rec_type;
3645 l_lsqv_rec lsqv_rec_type;
3646
3647 -- Bug#4741121 - viselvar - Modified - Start
3648 l_parameter_list wf_parameter_list_t;
3649 p_event_name VARCHAR2(240) :='oracle.apps.okl.sales.leaseapplication.saved';
3650 -- Bug#4741121 - viselvar - Modified - Start
3651
3652 --asawanka Bug 4865418 changes start
3653 l_credit_request_rec OCM_CREDIT_REQUEST_UPDATE_PUB.credit_request_rec;
3654 --asawanka Bug 4865418 changes end
3655 --Cursor to obtain the details of lease quote line of Lease App
3656 CURSOR l_lsq_dtls_csr(p_lap_id NUMBER)
3657 IS
3658 SELECT LSQ.ID LSQ_ID
3659 , LSQ.STATUS STATUS
3660 FROM OKL_LEASE_QUOTES_B LSQ
3661 WHERE LSQ.PARENT_OBJECT_CODE = 'LEASEAPP'
3662 AND LSQ.PRIMARY_QUOTE= 'Y'
3663 AND LSQ.PARENT_OBJECT_ID = p_lap_id;
3664 l_lsq_dtls_rec l_lsq_dtls_csr%ROWTYPE;
3665 --asawanka Bug 4865418 changes start
3666 --cursor to obtain lease app template id used on lease application
3667 CURSOR l_lse_app_tmplt_csr(p_lap_id NUMBER)
3668 IS
3669 SELECT leaseapp_template_id
3670 FROM okl_lease_applications_b LSQ
3671 WHERE ID = p_lap_id;
3672 l_lse_app_tmplt_csr_rec l_lse_app_tmplt_csr%ROWTYPE;
3673
3674 --Cursor to obtain Checklist Header Id
3675 CURSOR chk_hdr_dtls_csr(cp_latv_id NUMBER)
3676 IS
3677 SELECT LATV.CHECKLIST_ID
3678 ,LAT.CREDIT_REVIEW_PURPOSE
3679 ,LAT.CUST_CREDIT_CLASSIFICATION
3680 FROM OKL_LEASEAPP_TEMPL_VERSIONS_V LATV
3681 ,OKL_LEASEAPP_TEMPLATES LAT
3682 WHERE LATV.LEASEAPP_TEMPLATE_ID = LAT.ID
3683 AND LATV.ID = cp_latv_id;
3684 chk_hdr_dtls_rec chk_hdr_dtls_csr%ROWTYPE;
3685
3686 CURSOR get_crd_app_data(cp_lap_id NUMBER)
3687 IS
3688 SELECT CREDIT_REQUEST_ID
3689 ,APPLICATION_NUMBER
3690 ,TRX_AMOUNT
3691 ,TRX_CURRENCY
3692 ,STATUS
3693 ,RECOMMENDATION_NAME
3694 ,SOURCE_COLUMN1
3695 ,SOURCE_COLUMN2
3696 ,REVIEW_TYPE
3697 ,CREDIT_CLASSIFICATION
3698 ,CUST_ACCOUNT_ID
3699 FROM AR_CMGT_CREDIT_REQUESTS
3700 WHERE SOURCE_COLUMN3 = 'LEASEAPP'
3701 AND SOURCE_COLUMN1 = cp_lap_id;
3702 get_crd_app_data_rec get_crd_app_data%ROWTYPE;
3703 --asawanka Bug 4865418 changes end
3704 BEGIN
3705 l_return_status := OKL_API.G_RET_STS_SUCCESS;
3706 L_MODULE := 'OKL.PLSQL.OKL_LEASE_APP_PVT.LEASE_APP_UPD';
3707
3708 -- check for logging on PROCEDURE level
3709 L_DEBUG_ENABLED := NVL(OKL_DEBUG_PUB.CHECK_LOG_ENABLED, 'N');
3710 IS_DEBUG_PROCEDURE_ON := NVL(OKL_DEBUG_PUB.CHECK_LOG_ON(L_MODULE, FND_LOG.LEVEL_PROCEDURE), FALSE);
3711 -- check for logging on STATEMENT level
3712 IS_DEBUG_STATEMENT_ON := NVL(OKL_DEBUG_PUB.CHECK_LOG_ON(L_MODULE, FND_LOG.LEVEL_STATEMENT), FALSE);
3713
3714 -- call START_ACTIVITY to create savepoint, check compatibility
3715 -- and initialize message list
3716 l_return_status := OKL_API.START_ACTIVITY(
3717 p_api_name => l_api_name
3718 ,p_pkg_name => G_PKG_NAME
3719 ,p_init_msg_list => p_init_msg_list
3720 ,l_api_version => l_api_version
3721 ,p_api_version => p_api_version
3722 ,p_api_type => G_API_TYPE
3723 ,x_return_status => l_return_status);
3724
3725 -- check if activity started successfully
3726 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3727 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3728 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3729 RAISE OKL_API.G_EXCEPTION_ERROR;
3730 END IF;
3731
3732 l_lapv_rec := p_lapv_rec;
3733 l_lsqv_rec := p_lsqv_rec;
3734 x_lsqv_rec := p_lsqv_rec;
3735
3736 --Validate Lease Application Template
3737 --Validate Program Agreement
3738 --Validate VP and LAT association
3739 --Validate Lease Quote
3740 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
3741 THEN
3742 OKL_DEBUG_PUB.LOG_DEBUG(
3743 FND_LOG.LEVEL_PROCEDURE
3744 ,L_MODULE
3745 ,'begin debug call LEASE_APP_VAL');
3746 END IF;
3747
3748 LEASE_APP_VAL(
3749 p_api_version => p_api_version
3750 ,p_init_msg_list => OKL_API.G_FALSE
3751 ,x_return_status => l_return_status
3752 ,x_msg_count => x_msg_count
3753 ,x_msg_data => x_msg_data
3754 ,p_lapv_rec => l_lapv_rec
3755 ,p_lsqv_rec => l_lsqv_rec);
3756
3757 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
3758 THEN
3759 OKL_DEBUG_PUB.LOG_DEBUG(
3760 FND_LOG.LEVEL_PROCEDURE
3761 ,L_MODULE
3762 ,'end debug call LEASE_APP_VAL');
3763 END IF;
3764
3765 -- write to log
3766 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
3767 OKL_DEBUG_PUB.LOG_DEBUG(
3768 FND_LOG.LEVEL_STATEMENT
3769 ,L_MODULE || ' Result of LEASE_APP_VAL'
3770 ,'l_return_status ' || l_return_status);
3771 END IF; -- end of statement level debug
3772
3773 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
3774 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3775 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
3776 RAISE OKL_API.G_EXCEPTION_ERROR;
3777 END IF;
3778 --asawanka Bug 4865418 changes start
3779
3780 --collect the existing lease application template before update
3781 OPEN l_lse_app_tmplt_csr(l_lapv_rec.id);
3782 FETCH l_lse_app_tmplt_csr INTO l_lse_app_tmplt_csr_rec;
3783 CLOSE l_lse_app_tmplt_csr;
3784 --asawanka Bug 4865418 changes end
3785
3786 --BUG 4951955 PAGARG Call check Lease Quote defaults and accordingly set
3787 --status of Lease App and Lease Quote
3788 l_update_quote := 0;
3789 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
3790 THEN
3791 OKL_DEBUG_PUB.LOG_DEBUG(
3792 FND_LOG.LEVEL_PROCEDURE
3793 ,L_MODULE
3794 ,'begin debug call CHECK_LEASE_QUOTE_DEFAULTS');
3795 END IF;
3796
3797 CHECK_LEASE_QUOTE_DEFAULTS(
3798 p_api_version => p_api_version
3799 ,p_init_msg_list => OKL_API.G_FALSE
3800 ,x_return_status => l_return_status
3801 ,x_msg_count => x_msg_count
3802 ,x_msg_data => x_msg_data
3803 ,p_source_lsq_id => l_lsqv_rec.id
3804 ,p_lapv_rec => l_lapv_rec
3805 ,p_lsqv_rec => l_lsqv_rec);
3806
3807 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
3808 THEN
3809 OKL_DEBUG_PUB.LOG_DEBUG(
3810 FND_LOG.LEVEL_PROCEDURE
3811 ,L_MODULE
3812 ,'end debug call CHECK_LEASE_QUOTE_DEFAULTS');
3813 END IF;
3814
3815 -- write to log
3816 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON)
3817 THEN
3818 OKL_DEBUG_PUB.LOG_DEBUG(
3819 FND_LOG.LEVEL_STATEMENT
3820 ,L_MODULE || ' Result of CHECK_LEASE_QUOTE_DEFAULTS'
3821 ,'l_return_status ' || l_return_status);
3822 END IF; -- end of statement level debug
3823
3824 -- Check the status and accordingly set the Lease Application Status
3825 IF(l_return_status = OKL_API.G_RET_STS_ERROR)
3826 THEN
3827 --set the status for lease application
3828 l_lapv_rec.application_status := G_INIT_APPL_STATUS;
3829 l_update_quote := 1;
3830 END IF;
3831
3832 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
3833 THEN
3834 OKL_DEBUG_PUB.LOG_DEBUG(
3835 FND_LOG.LEVEL_PROCEDURE
3836 ,L_MODULE
3837 ,'begin debug call OKL_LAP_PVT.UPDATE_ROW');
3838 END IF;
3839
3840 -- call the TAPI update_row to update a lease application
3841 OKL_LAP_PVT.UPDATE_ROW(
3842 p_api_version => p_api_version
3843 ,p_init_msg_list => OKL_API.G_FALSE
3844 ,x_return_status => l_return_status
3845 ,x_msg_count => x_msg_count
3846 ,x_msg_data => x_msg_data
3847 ,p_lapv_rec => l_lapv_rec
3848 ,x_lapv_rec => x_lapv_rec);
3849
3850 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
3851 THEN
3852 OKL_DEBUG_PUB.LOG_DEBUG(
3853 FND_LOG.LEVEL_PROCEDURE
3854 ,L_MODULE
3855 ,'end debug call OKL_LAP_PVT.UPDATE_ROW');
3856 END IF;
3857
3858 -- write to log
3859 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
3860 OKL_DEBUG_PUB.LOG_DEBUG(
3861 FND_LOG.LEVEL_STATEMENT
3862 ,L_MODULE || ' Result of OKL_LAP_PVT.UPDATE_ROW'
3863 ,'l_lapv_rec.reference_number ' || to_char(l_lapv_rec.reference_number) ||
3864 ' expiring lease application with status ' || l_return_status ||
3865 ' x_msg_data ' || x_msg_data);
3866 END IF; -- end of statement level debug
3867
3868 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
3869 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3870 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
3871 RAISE OKL_API.G_EXCEPTION_ERROR;
3872 END IF;
3873
3874 IF(l_update_quote = 1)
3875 THEN
3876 l_lsqv_rec.status := 'PR-INCOMPLETE';
3877
3878 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
3879 THEN
3880 OKL_DEBUG_PUB.LOG_DEBUG(
3881 FND_LOG.LEVEL_PROCEDURE
3882 ,L_MODULE
3883 ,'begin debug call OKL_LEASE_QUOTE_PVT.UPDATE_LEASE_QTE');
3884 END IF;
3885
3886 -- call the procedure to create lease quote line
3887 OKL_LEASE_QUOTE_PVT.UPDATE_LEASE_QTE(
3888 p_api_version => p_api_version
3889 ,p_init_msg_list => OKL_API.G_FALSE
3890 ,p_transaction_control => OKL_API.G_TRUE
3891 ,p_lease_qte_rec => l_lsqv_rec
3892 ,x_lease_qte_rec => x_lsqv_rec
3893 ,x_return_status => l_return_status
3894 ,x_msg_count => x_msg_count
3895 ,x_msg_data => x_msg_data);
3896
3897 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
3898 THEN
3899 OKL_DEBUG_PUB.LOG_DEBUG(
3900 FND_LOG.LEVEL_PROCEDURE
3901 ,L_MODULE
3902 ,'end debug call OKL_LEASE_QUOTE_PVT.UPDATE_LEASE_QTE');
3903 END IF;
3904
3905 -- write to log
3906 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
3907 OKL_DEBUG_PUB.LOG_DEBUG(
3908 FND_LOG.LEVEL_STATEMENT
3909 ,L_MODULE || ' Result of OKL_LEASE_QUOTE_PVT.UPDATE_LEASE_QTE'
3910 ,'l_lsqv_rec.reference_number ' || to_char(l_lsqv_rec.reference_number) ||
3911 ' l_lsqv_rec.id '|| l_lsqv_rec.id ||
3912 ' result status ' || l_return_status ||
3913 ' x_msg_data ' || x_msg_data);
3914 END IF; -- end of statement level debug
3915
3916 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
3917 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3918 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
3919 RAISE OKL_API.G_EXCEPTION_ERROR;
3920 END IF;
3921 END IF;
3922 --BUG 4951955 PAGARG Removed the call to subsidy pool API as it was redundant
3923 --It is already called in update_lease_qte
3924
3925 -- Bug#4741121 - viselvar - Modified - Start
3926 -- raise the business event passing the Lease Application id added to the parameter list
3927 wf_event.addparametertolist('LAPP_ID'
3928 ,x_lapv_rec.id
3929 ,l_parameter_list);
3930 okl_wf_pvt.raise_event(p_api_version => p_api_version
3931 ,p_init_msg_list => p_init_msg_list
3932 ,x_return_status => l_return_status
3933 ,x_msg_count => x_msg_count
3934 ,x_msg_data => x_msg_data
3935 ,p_event_name => p_event_name
3936 ,p_parameters => l_parameter_list);
3937
3938 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
3939 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3940 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
3941 RAISE OKL_API.G_EXCEPTION_ERROR;
3942 END IF;
3943 -- Bug#4741121 - viselvar - Modified - End
3944
3945 --asawanka Bug 4865418 changes start
3946 --if lease application template selected on the lease application has changed
3947 --then handle the checklist instance, credit application review purpose and credit classification
3948 IF l_lse_app_tmplt_csr_rec.leaseapp_template_id <> l_lapv_rec.LEASEAPP_TEMPLATE_ID
3949 THEN
3950 --take the checklist details for the new lease application template
3951 OPEN chk_hdr_dtls_csr(l_lapv_rec.LEASEAPP_TEMPLATE_ID);
3952 FETCH chk_hdr_dtls_csr INTO chk_hdr_dtls_rec;
3953 CLOSE chk_hdr_dtls_csr;
3954
3955 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
3956 THEN
3957 OKL_DEBUG_PUB.LOG_DEBUG(
3958 FND_LOG.LEVEL_PROCEDURE
3959 ,L_MODULE
3960 ,'begin debug call CHECKLIST_INST_CRE');
3961 END IF;
3962
3963 --call to create Checklist Instance
3964 CHECKLIST_INST_CRE(
3965 p_api_version => p_api_version
3966 ,p_init_msg_list => OKL_API.G_FALSE
3967 ,x_return_status => l_return_status
3968 ,x_msg_count => x_msg_count
3969 ,x_msg_data => x_msg_data
3970 ,p_lap_id => l_lapv_rec.id
3971 ,p_chklst_tmpl_id => chk_hdr_dtls_rec.checklist_id);
3972
3973 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
3974 THEN
3975 OKL_DEBUG_PUB.LOG_DEBUG(
3976 FND_LOG.LEVEL_PROCEDURE
3977 ,L_MODULE
3978 ,'end debug call CHECKLIST_INST_CRE');
3979 END IF;
3980
3981 -- write to log
3982 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
3983 OKL_DEBUG_PUB.LOG_DEBUG(
3984 FND_LOG.LEVEL_STATEMENT
3985 ,L_MODULE || ' Result of CHECKLIST_INST_CRE'
3986 ,' result status ' || l_return_status);
3987 END IF; -- end of statement level debug
3988
3989 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
3990 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3991 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
3992 RAISE OKL_API.G_EXCEPTION_ERROR;
3993 END IF;
3994 END IF;--condition to check change of lease application template
3995
3996 --check the review purpose, credit classification and Customer Account on the
3997 --credit application for this lease application. if any of these are
3998 --changed, call the api to update them in credit application.
3999 OPEN get_crd_app_data(l_lapv_rec.id);
4000 FETCH get_crd_app_data INTO get_crd_app_data_rec;
4001 CLOSE get_crd_app_data;
4002 IF get_crd_app_data_rec.review_type <> chk_hdr_dtls_rec.credit_review_purpose
4003 OR get_crd_app_data_rec.credit_classification <> chk_hdr_dtls_rec.cust_credit_classification
4004 OR get_crd_app_data_rec.cust_account_id <> NVL(x_lapv_rec.cust_acct_id, -99)
4005 OR get_crd_app_data_rec.application_number <> l_lapv_rec.reference_number
4006 THEN
4007 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
4008 THEN
4009 OKL_DEBUG_PUB.LOG_DEBUG(
4010 FND_LOG.LEVEL_PROCEDURE
4011 ,L_MODULE
4012 ,'begin debug call OCM_CREDIT_REQUEST_UPDATE_PUB.GET_CREDIT_REQUEST_REC');
4013 END IF;
4014 --get the existing credit request data
4015 OCM_CREDIT_REQUEST_UPDATE_PUB.GET_CREDIT_REQUEST_REC(
4016 p_credit_request_id => get_crd_app_data_rec.credit_request_id
4017 ,p_return_status => l_return_status
4018 ,p_error_msg => x_msg_data
4019 ,p_credit_request_rec => l_credit_request_rec);
4020
4021 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
4022 THEN
4023 OKL_DEBUG_PUB.LOG_DEBUG(
4024 FND_LOG.LEVEL_PROCEDURE
4025 ,L_MODULE
4026 ,'end debug call OCM_CREDIT_REQUEST_UPDATE_PUB.GET_CREDIT_REQUEST_REC');
4027 END IF;
4028
4029 -- write to log
4030 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
4031 OKL_DEBUG_PUB.LOG_DEBUG(
4032 FND_LOG.LEVEL_STATEMENT
4033 ,L_MODULE || ' Result of OCM_CREDIT_REQUEST_UPDATE_PUB.GET_CREDIT_REQUEST_REC'
4034 ,' result status ' || l_return_status);
4035 END IF; -- end of statement level debug
4036
4037 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
4038 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4039 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
4040 RAISE OKL_API.G_EXCEPTION_ERROR;
4041 END IF;
4042
4043 --assign the new values
4044 l_credit_request_rec.application_number := l_lapv_rec.reference_number;
4045 l_credit_request_rec.source_column2 := l_lapv_rec.reference_number;
4046 l_credit_request_rec.review_type := chk_hdr_dtls_rec.credit_review_purpose;
4047 l_credit_request_rec.credit_classification := chk_hdr_dtls_rec.cust_credit_classification;
4048 l_credit_request_rec.cust_account_id := x_lapv_rec.cust_acct_id;
4049
4050 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
4051 THEN
4052 OKL_DEBUG_PUB.LOG_DEBUG(
4053 FND_LOG.LEVEL_PROCEDURE
4054 ,L_MODULE
4055 ,'begin debug call OCM_CREDIT_REQUEST_UPDATE_PUB.UPDATE_CREDIT_REQUEST');
4056 END IF;
4057 --update the credit application data
4058 OCM_CREDIT_REQUEST_UPDATE_PUB.UPDATE_CREDIT_REQUEST(
4059 p_api_version => l_api_version,
4060 p_init_msg_list => OKL_API.G_FALSE,
4061 p_commit => NULL,
4062 p_validation_level => NULL,
4063 x_return_status => l_return_status,
4064 x_msg_count => x_msg_count,
4065 x_msg_data => x_msg_data,
4066 p_credit_request_rec => l_credit_request_rec);
4067
4068 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
4069 THEN
4070 OKL_DEBUG_PUB.LOG_DEBUG(
4071 FND_LOG.LEVEL_PROCEDURE
4072 ,L_MODULE
4073 ,'end debug call OCM_CREDIT_REQUEST_UPDATE_PUB.UPDATE_CREDIT_REQUEST');
4074 END IF;
4075
4076 -- write to log
4077 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
4078 OKL_DEBUG_PUB.LOG_DEBUG(
4079 FND_LOG.LEVEL_STATEMENT
4080 ,L_MODULE || ' Result of OCM_CREDIT_REQUEST_UPDATE_PUB.UPDATE_CREDIT_REQUEST'
4081 ,' result status ' || l_return_status);
4082 END IF; -- end of statement level debug
4083
4084 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
4085 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4086 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
4087 RAISE OKL_API.G_EXCEPTION_ERROR;
4088 END IF;
4089 END IF;--condition to check change in credit classification or review purpose
4090 --asawanka Bug 4865418 changes end
4091
4092 x_return_status := l_return_status;
4093 OKL_API.END_ACTIVITY(
4094 x_msg_count => x_msg_count
4095 ,x_msg_data => x_msg_data);
4096 EXCEPTION
4097 WHEN OKL_API.G_EXCEPTION_ERROR THEN
4098 --Lease Quote Details Cursor
4099 IF l_lsq_dtls_csr%ISOPEN
4100 THEN
4101 CLOSE l_lsq_dtls_csr;
4102 END IF;
4103 --Lease App Template Details Cursor
4104 IF l_lse_app_tmplt_csr%ISOPEN
4105 THEN
4106 CLOSE l_lse_app_tmplt_csr;
4107 END IF;
4108 --Checklist Header Details Cursor
4109 IF chk_hdr_dtls_csr%ISOPEN
4110 THEN
4111 CLOSE chk_hdr_dtls_csr;
4112 END IF;
4113 --Credit Application Details Cursor
4114 IF get_crd_app_data%ISOPEN
4115 THEN
4116 CLOSE get_crd_app_data;
4117 END IF;
4118 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
4119 p_api_name => l_api_name,
4120 p_pkg_name => G_PKG_NAME,
4121 p_exc_name => 'OKL_API.G_RET_STS_ERROR',
4122 x_msg_count => x_msg_count,
4123 x_msg_data => x_msg_data,
4124 p_api_type => G_API_TYPE);
4125 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
4126 --Lease Quote Details Cursor
4127 IF l_lsq_dtls_csr%ISOPEN
4128 THEN
4129 CLOSE l_lsq_dtls_csr;
4130 END IF;
4131 --Lease App Template Details Cursor
4132 IF l_lse_app_tmplt_csr%ISOPEN
4133 THEN
4134 CLOSE l_lse_app_tmplt_csr;
4135 END IF;
4136 --Checklist Header Details Cursor
4137 IF chk_hdr_dtls_csr%ISOPEN
4138 THEN
4139 CLOSE chk_hdr_dtls_csr;
4140 END IF;
4141 --Credit Application Details Cursor
4142 IF get_crd_app_data%ISOPEN
4143 THEN
4144 CLOSE get_crd_app_data;
4145 END IF;
4146 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
4147 p_api_name => l_api_name,
4148 p_pkg_name => G_PKG_NAME,
4149 p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
4150 x_msg_count => x_msg_count,
4151 x_msg_data => x_msg_data,
4152 p_api_type => G_API_TYPE);
4153 WHEN OTHERS THEN
4154 --Lease Quote Details Cursor
4155 IF l_lsq_dtls_csr%ISOPEN
4156 THEN
4157 CLOSE l_lsq_dtls_csr;
4158 END IF;
4159 --Lease App Template Details Cursor
4160 IF l_lse_app_tmplt_csr%ISOPEN
4161 THEN
4162 CLOSE l_lse_app_tmplt_csr;
4163 END IF;
4164 --Checklist Header Details Cursor
4165 IF chk_hdr_dtls_csr%ISOPEN
4166 THEN
4167 CLOSE chk_hdr_dtls_csr;
4168 END IF;
4169 --Credit Application Details Cursor
4170 IF get_crd_app_data%ISOPEN
4171 THEN
4172 CLOSE get_crd_app_data;
4173 END IF;
4174 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
4175 p_api_name => l_api_name,
4176 p_pkg_name => G_PKG_NAME,
4177 p_exc_name => 'OTHERS',
4178 x_msg_count => x_msg_count,
4179 x_msg_data => x_msg_data,
4180 p_api_type => G_API_TYPE);
4181 END lease_app_upd;
4182
4183 ------------------------------------------------------------------------------
4184 -- PROCEDURE lease_app_val
4185 ------------------------------------------------------------------------------
4186 -- Start of comments
4187 --
4188 -- Procedure Name : lease_app_val
4189 -- Description : This procedure validates lease application.
4190 -- Business Rules : This procedure validates lease application
4191 -- Parameters :
4192 -- Version : 1.0
4193 -- History : 20-MAY-2005 PAGARG created
4194 -- : 12-Dec-2005 PAGARG Bug 4873205 Added validation for
4195 -- Checklist and Contract Template effectivity and also
4196 -- fixed the VP-LAT association validation
4197 -- End of comments
4198 PROCEDURE lease_app_val(
4199 p_api_version IN NUMBER,
4200 p_init_msg_list IN VARCHAR2,
4201 x_return_status OUT NOCOPY VARCHAR2,
4202 x_msg_count OUT NOCOPY NUMBER,
4203 x_msg_data OUT NOCOPY VARCHAR2,
4204 p_lapv_rec IN lapv_rec_type,
4205 p_lsqv_rec IN lsqv_rec_type) IS
4206
4207 -- Variables Declarations
4208 l_api_version CONSTANT NUMBER DEFAULT G_INIT_VERSION;
4209 l_api_name CONSTANT VARCHAR2(30) DEFAULT 'LEASE_APP_VAL';
4210 l_return_status VARCHAR2(1);
4211 l_dummy VARCHAR2(200);
4212
4213 -- Record/Table Type Declarations
4214 l_lapv_rec lapv_rec_type;
4215 l_lsqv_rec lsqv_rec_type;
4216
4217 -- Bug#4741121 - viselvar - Modified - Start
4218 l_parameter_list wf_parameter_list_t;
4219 p_event_name VARCHAR2(240) :='oracle.apps.okl.sales.leaseapplication.validated';
4220 -- Bug#4741121 - viselvar - Modified - End
4221
4222 --Cursor for Lease Application Template details
4223 CURSOR lat_dtls_csr(cp_tmpl_id NUMBER, cp_valid_from DATE) IS
4224 SELECT LAT.NAME LEASEAPP_TMPL_NAME
4225 FROM OKL_LEASEAPP_TEMPLATES LAT
4226 ,OKL_LEASEAPP_TEMPL_VERSIONS_V LATV
4227 WHERE (LATV.VERSION_STATUS <> 'ACTIVE' OR
4228 LATV.VALID_FROM > cp_valid_from OR
4229 NVL(LATV.VALID_TO, TO_DATE('31-12-9999', 'dd-mm-yyyy')) < cp_valid_from)
4230 AND LATV.ID = cp_tmpl_id
4231 AND LATV.LEASEAPP_TEMPLATE_ID = LAT.ID;
4232 lat_dtls_rec lat_dtls_csr%ROWTYPE;
4233
4234 --Cursor for Program Agreement details
4235 CURSOR pgm_agr_dtls_csr(cp_pgm_agr_id NUMBER) IS
4236 SELECT CHR.ID
4237 , CHR.CONTRACT_NUMBER
4238 , CHR.STS_CODE
4239 , PSTS.STE_CODE
4240 , CHR.START_DATE START_DATE
4241 , CHR.END_DATE END_DATE
4242 FROM OKC_K_HEADERS_B CHR
4243 , OKC_STATUSES_V PSTS
4244 WHERE CHR.SCS_CODE = 'PROGRAM'
4245 AND CHR.STS_CODE = PSTS.CODE
4246 AND CHR.ID = cp_pgm_agr_id;
4247 pgm_agr_dtls_rec pgm_agr_dtls_csr%ROWTYPE;
4248
4249 --Cursor for Lease Quote details
4250 CURSOR lse_qte_dtls_csr(cp_lop_id NUMBER) IS
4251 SELECT LSQ.ID
4252 , LSQ.REFERENCE_NUMBER
4253 , LSQ.STATUS
4254 FROM OKL_LEASE_QUOTES_B LSQ
4255 , OKL_LEASE_OPPORTUNITIES_B LOP
4256 WHERE LOP.ID = cp_lop_id
4257 AND LSQ.PARENT_OBJECT_CODE = 'LEASEOPP'
4258 AND LSQ.PARENT_OBJECT_ID = LOP.ID
4259 AND LSQ.STATUS = 'CT-ACCEPTED';
4260 lse_qte_dtls_rec lse_qte_dtls_csr%ROWTYPE;
4261
4262 --Cursor for Lease Application Template and Vendor Program Association validation
4263 --Bug abhsaxen 5158188 for validation of VPA is having any LAT
4264 CURSOR lat_pgm_exist_csr(cp_pgm_agr_id NUMBER) IS
4265 SELECT 'X'
4266 FROM OKC_K_HEADERS_B PGM
4267 , OKL_VP_ASSOCIATIONS_V VPA
4268 , OKL_LEASEAPP_TEMPLATES LAT
4269 , OKL_LEASEAPP_TEMPL_VERSIONS_B LATV
4270 WHERE VPA.CHR_ID = PGM.ID
4271 AND VPA.CRS_ID IS NULL
4272 AND VPA.ASSOC_OBJECT_TYPE_CODE = 'LA_TEMPLATE'
4273 AND PGM.SCS_CODE = 'PROGRAM'
4274 AND VPA.ASSOC_OBJECT_ID = LAT.ID
4275 AND VPA.ASSOC_OBJECT_VERSION = LATV.VERSION_NUMBER
4276 AND LATV.LEASEAPP_TEMPLATE_ID = LAT.ID
4277 AND PGM.ID = cp_pgm_agr_id;
4278 lat_pgm_exist_rec lat_pgm_exist_csr%ROWTYPE;
4279 --Bug 4873205 PAGARG modified the query to validate validation
4280 CURSOR lat_pgm_val_csr(cp_pgm_agr_id NUMBER, cp_latv_id NUMBER) IS
4281 SELECT 'X'
4282 FROM OKC_K_HEADERS_B PGM
4283 , OKL_VP_ASSOCIATIONS_V VPA
4284 , OKL_LEASEAPP_TEMPLATES LAT
4285 , OKL_LEASEAPP_TEMPL_VERSIONS_B LATV
4286 WHERE VPA.CHR_ID = PGM.ID
4287 AND VPA.CRS_ID IS NULL
4288 AND VPA.ASSOC_OBJECT_TYPE_CODE = 'LA_TEMPLATE'
4289 AND PGM.SCS_CODE = 'PROGRAM'
4290 AND VPA.ASSOC_OBJECT_ID = LAT.ID
4291 AND VPA.ASSOC_OBJECT_VERSION = LATV.VERSION_NUMBER
4292 AND LATV.LEASEAPP_TEMPLATE_ID = LAT.ID
4293 AND PGM.ID = cp_pgm_agr_id
4294 AND LATV.ID = cp_latv_id;
4295 lat_pgm_val_rec lat_pgm_val_csr%ROWTYPE;
4296
4297 --Cursor to validate if there is any in process lease application sourced from
4298 --given Lease Quote
4299 CURSOR lap_lsq_uniq_csr(cp_lop_id NUMBER, p_lap_id NUMBER) IS
4300 SELECT REFERENCE_NUMBER
4301 FROM OKL_LEASE_APPLICATIONS_B
4302 --asawanka bug 4936130 changes start
4303 WHERE APPLICATION_STATUS NOT IN ('CR-APPROVED'
4304 ,'CR-REJECTED'
4305 ,'RECOM_NOT_APPROVED'
4306 ,'CONV-K'
4307 ,'WITHDRAWN'
4308 ,'CANCELED'
4309 ,'APPEALINPROG'
4310 ,'RESUBMITINPROG')
4311 --asawanka bug 4936130 changes end
4312 AND LEASE_OPPORTUNITY_ID = cp_lop_id
4313 AND ID <> NVL(p_lap_id, -1);
4314
4315 --Bug 4873205 PAGARG Added cursors to validate Checklist and Contract Template
4316 --Validate Checklist Cursor
4317 CURSOR checklist_val_csr(p_latv_id NUMBER, p_valid_from DATE)
4318 IS
4319 SELECT CHECKLIST_NUMBER TEMPLATE_NUMBER
4320 FROM OKL_CHECKLISTS CHK
4321 , OKL_LEASEAPP_TEMPL_VERSIONS_V LATV
4322 , OKL_LEASEAPP_TEMPLATES LAT
4323 WHERE LATV.CHECKLIST_ID = CHK.ID
4324 AND LATV.LEASEAPP_TEMPLATE_ID = LAT.ID
4325 AND ( (p_valid_from NOT BETWEEN NVL(CHK.START_DATE, p_valid_from)
4326 AND NVL(CHK.END_DATE, p_valid_from))
4327 OR CHK.STATUS_CODE <> 'ACTIVE'
4328 OR CHK.CHECKLIST_PURPOSE_CODE NOT IN ('CHECKLIST_TEMPLATE', 'CHECKLIST_TEMPLATE_GROUP')
4329 OR CHK.ORG_ID <> LAT.ORG_ID)
4330 AND LATV.ID = p_latv_id;
4331
4332 --Validate Contract Template Cursor
4333 CURSOR contract_tmpl_val_csr(p_latv_id NUMBER, p_valid_from DATE)
4334 IS
4335 SELECT CHR.CONTRACT_NUMBER TEMPLATE_NUMBER
4336 FROM OKC_K_HEADERS_B CHR
4337 , OKL_LEASEAPP_TEMPL_VERSIONS_V LATV
4338 , OKL_LEASEAPP_TEMPLATES LAT
4339 , OKL_K_HEADERS KHR
4340 , OKC_STATUSES_V STS
4341 WHERE LATV.CONTRACT_TEMPLATE_ID = CHR.ID
4342 AND LATV.LEASEAPP_TEMPLATE_ID = LAT.ID
4343 AND CHR.ID = KHR.ID
4344 AND CHR.STS_CODE = STS.CODE
4345 /* Bug#6850094 : Include contract template with any status
4346 AND (CHR.TEMPLATE_YN <> 'Y'
4347 OR STS.STE_CODE <> 'ACTIVE'
4348 OR NVL(KHR.TEMPLATE_TYPE_CODE, 'X') <> 'LEASEAPP'
4349 OR CHR.AUTHORING_ORG_ID <> LAT.ORG_ID)
4350 */
4351 AND (CHR.TEMPLATE_YN <> 'Y'
4352 OR (NVL(KHR.TEMPLATE_TYPE_CODE,'X') = 'LEASEAPP' AND STS.STE_CODE <> 'ACTIVE')
4353 OR NVL(KHR.TEMPLATE_TYPE_CODE, 'X') NOT IN ('LEASEAPP','CONTRACT')
4354 OR CHR.AUTHORING_ORG_ID <> LAT.ORG_ID)
4355 --Bug# 6850094 :End
4356 AND LATV.ID = p_latv_id;
4357 BEGIN
4358 l_return_status := OKL_API.G_RET_STS_SUCCESS;
4359 L_MODULE := 'OKL.PLSQL.OKL_LEASE_APP_PVT.LEASE_APP_VAL';
4360
4361 -- check for logging on PROCEDURE level
4362 L_DEBUG_ENABLED := NVL(OKL_DEBUG_PUB.CHECK_LOG_ENABLED, 'N');
4363 IS_DEBUG_PROCEDURE_ON := NVL(OKL_DEBUG_PUB.CHECK_LOG_ON(L_MODULE, FND_LOG.LEVEL_PROCEDURE), FALSE);
4364 -- check for logging on STATEMENT level
4365 IS_DEBUG_STATEMENT_ON := NVL(OKL_DEBUG_PUB.CHECK_LOG_ON(L_MODULE, FND_LOG.LEVEL_STATEMENT), FALSE);
4366
4367 -- call START_ACTIVITY to create savepoint, check compatibility
4368 -- and initialize message list
4369 l_return_status := OKL_API.START_ACTIVITY(
4370 p_api_name => l_api_name
4371 ,p_pkg_name => G_PKG_NAME
4372 ,p_init_msg_list => p_init_msg_list
4373 ,l_api_version => l_api_version
4374 ,p_api_version => p_api_version
4375 ,p_api_type => G_API_TYPE
4376 ,x_return_status => l_return_status);
4377
4378 -- check if activity started successfully
4379 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4380 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4381 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
4382 RAISE OKL_API.G_EXCEPTION_ERROR;
4383 END IF;
4384
4385 l_lapv_rec := p_lapv_rec;
4386 l_lsqv_rec := p_lsqv_rec;
4387
4388 --Validate Lease Application Template
4389 IF(l_lapv_rec.leaseapp_template_id IS NOT NULL AND
4390 l_lapv_rec.leaseapp_template_id <> OKL_API.G_MISS_NUM)
4391 THEN
4392 FOR lat_dtls_rec IN lat_dtls_csr(l_lapv_rec.leaseapp_template_id
4393 ,l_lapv_rec.valid_from)
4394 LOOP
4395 l_return_status := OKL_API.G_RET_STS_ERROR;
4396 OKL_API.SET_MESSAGE(
4397 p_app_name => G_APP_NAME,
4398 p_msg_name => 'OKL_VAL_LEASEAPP_TEMPLATE',
4399 p_token1 => 'TEMPLATE_NUMBER',
4400 p_token1_value => lat_dtls_rec.leaseapp_tmpl_name);
4401 RAISE OKL_API.G_EXCEPTION_ERROR;
4402 END LOOP;
4403
4404 --Validate Eligibility Criteria for Lease Application Template
4405 l_return_status := is_valid_leaseapp_template(
4406 l_lapv_rec.leaseapp_template_id
4407 ,l_lapv_rec.id
4408 ,l_lapv_rec.valid_from);
4409 IF(l_return_status = OKL_API.G_RET_STS_ERROR)
4410 THEN
4411 OKL_API.SET_MESSAGE(
4412 p_app_name => G_APP_NAME,
4413 p_msg_name => 'OKL_SO_LSEAPP_TMPL_EC_FAIL',
4414 p_token1 => 'TEXT',
4415 p_token1_value => lat_dtls_rec.leaseapp_tmpl_name);
4416 RAISE OKL_API.G_EXCEPTION_ERROR;
4417 END IF;
4418 ELSE
4419 --Lease Application Template is required field.
4420 l_return_status := OKL_API.G_RET_STS_ERROR;
4421 OKL_API.SET_MESSAGE(
4422 p_app_name => G_APP_NAME,
4423 p_msg_name => 'OKL_SO_INVALID_LSEAPP_TMPL');
4424 RAISE OKL_API.G_EXCEPTION_ERROR;
4425 END IF; --Validate Lease Application Template
4426
4427 --Validate Program Agreement and Associations
4428 IF(l_lapv_rec.program_agreement_id IS NOT NULL AND
4429 l_lapv_rec.program_agreement_id <> OKL_API.G_MISS_NUM)
4430 THEN
4431 OPEN pgm_agr_dtls_csr(l_lapv_rec.program_agreement_id);
4432 FETCH pgm_agr_dtls_csr INTO pgm_agr_dtls_rec;
4433 IF(pgm_agr_dtls_csr%NOTFOUND)
4434 THEN
4435 l_return_status := OKL_API.G_RET_STS_ERROR;
4436 OKL_API.SET_MESSAGE(
4437 p_app_name => G_APP_NAME,
4438 p_msg_name => 'OKL_SO_INVALID_PGM_AGR');
4439 RAISE OKL_API.G_EXCEPTION_ERROR;
4440 ELSIF(pgm_agr_dtls_rec.ste_code <> 'ACTIVE'
4441 OR pgm_agr_dtls_rec.START_DATE > l_lsqv_rec.expected_start_date
4442 OR NVL(pgm_agr_dtls_rec.END_DATE, TO_DATE('31-12-9999', 'dd-mm-yyyy')) < l_lsqv_rec.expected_start_date)
4443 THEN
4444 l_return_status := OKL_API.G_RET_STS_ERROR;
4445 OKL_API.SET_MESSAGE(
4446 p_app_name => G_APP_NAME,
4447 p_msg_name => 'OKL_SO_INACTIVE_PGM_AGR',
4448 p_token1 => 'TEXT',
4449 p_token1_value => pgm_agr_dtls_rec.contract_number);
4450 RAISE OKL_API.G_EXCEPTION_ERROR;
4451 END IF;
4452 CLOSE pgm_agr_dtls_csr;
4453
4454 --Validate Eligibility Criteria for Program Agreement
4455 l_return_status := is_valid_program_agreement(
4456 l_lapv_rec.program_agreement_id
4457 ,l_lapv_rec.id
4458 ,l_lapv_rec.valid_from);
4459
4460 IF(l_return_status = OKL_API.G_RET_STS_ERROR)
4461 THEN
4462 OKL_API.SET_MESSAGE(
4463 p_app_name => G_APP_NAME,
4464 p_msg_name => 'OKL_SO_PGM_AGR_EC_FAIL',
4465 p_token1 => 'TEXT',
4466 p_token1_value => pgm_agr_dtls_rec.contract_number);
4467 RAISE OKL_API.G_EXCEPTION_ERROR;
4468 END IF;
4469
4470 --Validate Lease Application Template and Program Agreement Association
4471 --Bug 4873205 PAGARG Passing Template Version id also to validate association
4472 --Bug abhsaxen 5158188 modified for VPA is not having LAT
4473 OPEN lat_pgm_exist_csr(l_lapv_rec.program_agreement_id);
4474 FETCH lat_pgm_exist_csr INTO lat_pgm_exist_rec;
4475 IF lat_pgm_exist_csr%FOUND THEN
4476 OPEN lat_pgm_val_csr(l_lapv_rec.program_agreement_id, l_lapv_rec.leaseapp_template_id);
4477 FETCH lat_pgm_val_csr INTO lat_pgm_val_rec;
4478 IF lat_pgm_val_csr%NOTFOUND
4479 THEN
4480 l_return_status := OKL_API.G_RET_STS_ERROR;
4481 OKL_API.SET_MESSAGE(
4482 p_app_name => G_APP_NAME,
4483 p_msg_name => 'OKL_SO_NO_ASS_LAT_PAG',
4484 p_token1 => 'LAP_TMP',
4485 p_token1_value => lat_dtls_rec.leaseapp_tmpl_name,
4486 p_token2 => 'PGM_AGR',
4487 p_token2_value => pgm_agr_dtls_rec.contract_number);
4488 RAISE OKL_API.G_EXCEPTION_ERROR;
4489 END IF;
4490 CLOSE lat_pgm_val_csr;
4491 END IF;
4492 CLOSE lat_pgm_exist_csr;
4493 END IF; --Validate Program Agreement and Association
4494
4495 --Validate Lease Quote
4496 IF(l_lapv_rec.lease_opportunity_id IS NOT NULL AND
4497 l_lapv_rec.lease_opportunity_id <> OKL_API.G_MISS_NUM)
4498 THEN
4499 OPEN lse_qte_dtls_csr(l_lapv_rec.lease_opportunity_id);
4500 FETCH lse_qte_dtls_csr INTO lse_qte_dtls_rec;
4501 IF(lse_qte_dtls_csr%NOTFOUND)
4502 THEN
4503 l_return_status := OKL_API.G_RET_STS_ERROR;
4504 OKL_API.SET_MESSAGE(
4505 p_app_name => G_APP_NAME,
4506 p_msg_name => 'OKL_SO_INVALID_LSE_QTE');
4507 RAISE OKL_API.G_EXCEPTION_ERROR;
4508 END IF;
4509 CLOSE lse_qte_dtls_csr;
4510
4511 OPEN lap_lsq_uniq_csr(l_lapv_rec.lease_opportunity_id, l_lapv_rec.id);
4512 FETCH lap_lsq_uniq_csr INTO l_dummy;
4513 IF(lap_lsq_uniq_csr%FOUND)
4514 THEN
4515 l_return_status := OKL_API.G_RET_STS_ERROR;
4516 OKL_API.SET_MESSAGE(
4517 p_app_name => G_APP_NAME,
4518 p_msg_name => 'OKL_SO_LSE_APP_QTE_UNQ_ERR',
4519 p_token1 => 'TEXT',
4520 p_token1_value => l_dummy,
4521 p_token2 => 'QUOTE',
4522 p_token2_value => lse_qte_dtls_rec.reference_number);
4523 RAISE OKL_API.G_EXCEPTION_ERROR;
4524 END IF;
4525 CLOSE lap_lsq_uniq_csr;
4526 END IF; --Validate Lease Quote
4527
4528 --Bug 4873205 PAGARG Validating Checklist and Contract Template
4529 --Validate whether Contract Template associated to the
4530 --Lease Application Template is still Active and effective
4531 FOR contract_tmpl_val_rec IN contract_tmpl_val_csr(l_lapv_rec.leaseapp_template_id
4532 ,l_lapv_rec.valid_from)
4533 LOOP
4534 l_return_status := OKL_API.G_RET_STS_ERROR;
4535 OKL_API.SET_MESSAGE(
4536 p_app_name => G_APP_NAME,
4537 p_msg_name => 'OKL_VAL_CONTRACT_TEMPLATE',
4538 p_token1 => 'TEMPLATE_NUMBER',
4539 p_token1_value => contract_tmpl_val_rec.template_number);
4540 RAISE OKL_API.G_EXCEPTION_ERROR;
4541 END LOOP;
4542
4543 --Validate whether Checklist associated to the
4544 --Lease Application Template is still Active and effective
4545 FOR checklist_val_rec IN checklist_val_csr(l_lapv_rec.leaseapp_template_id
4546 ,l_lapv_rec.valid_from)
4547 LOOP
4548 l_return_status := OKL_API.G_RET_STS_ERROR;
4549 OKL_API.SET_MESSAGE(
4550 p_app_name => G_APP_NAME,
4551 p_msg_name => 'OKL_VAL_CHECKLIST_TEMPLATE',
4552 p_token1 => 'TEMPLATE_NUMBER',
4553 p_token1_value => checklist_val_rec.template_number);
4554 RAISE OKL_API.G_EXCEPTION_ERROR;
4555 END LOOP;
4556
4557 --Bug 4932155 PAGARG Validate Currency Conversion Attributes
4558 l_return_status := is_curr_conv_valid(
4559 p_curr_code => l_lapv_rec.currency_code
4560 ,p_curr_type => l_lapv_rec.currency_conversion_type
4561 ,p_curr_rate => l_lapv_rec.currency_conversion_rate
4562 ,p_curr_date => l_lapv_rec.currency_conversion_date);
4563
4564 IF (l_return_status = OKL_API.G_RET_STS_ERROR)
4565 THEN
4566 RAISE OKL_API.G_EXCEPTION_ERROR;
4567 END IF;
4568
4569 --Validate Expected Start Date against Valid From Date
4570 IF(TRUNC(l_lsqv_rec.expected_start_Date) < TRUNC(l_lapv_rec.valid_from))
4571 THEN
4572 l_return_status := OKL_API.G_RET_STS_ERROR;
4573 OKL_API.SET_MESSAGE(
4574 p_app_name => G_APP_NAME,
4575 p_msg_name => 'OKL_SO_LSE_APP_EXP_ST_DATE_ERR',
4576 p_token1 => 'VALID_FROM',
4577 p_token1_value => l_lapv_rec.valid_from);
4578 RAISE OKL_API.G_EXCEPTION_ERROR;
4579 END IF;
4580
4581 -- Bug#4741121 - viselvar - Modified - Start
4582 -- raise the business event passing the Lease Application id added to the parameter list
4583 wf_event.addparametertolist('LAPP_ID'
4584 ,l_lapv_rec.id
4585 ,l_parameter_list);
4586 okl_wf_pvt.raise_event(p_api_version => p_api_version
4587 ,p_init_msg_list => p_init_msg_list
4588 ,x_return_status => l_return_status
4589 ,x_msg_count => x_msg_count
4590 ,x_msg_data => x_msg_data
4591 ,p_event_name => p_event_name
4592 ,p_parameters => l_parameter_list);
4593
4594 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
4595 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4596 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
4597 RAISE OKL_API.G_EXCEPTION_ERROR;
4598 END IF;
4599 -- Bug#4741121 - viselvar - Modified - End
4600
4601 x_return_status := l_return_status;
4602 OKL_API.END_ACTIVITY(
4603 x_msg_count => x_msg_count
4604 ,x_msg_data => x_msg_data);
4605 EXCEPTION
4606 WHEN OKL_API.G_EXCEPTION_ERROR THEN
4607 --Lease Application Template Details Cursor
4608 IF lat_dtls_csr%ISOPEN
4609 THEN
4610 CLOSE lat_dtls_csr;
4611 END IF;
4612 --Program Agreement Details Cursor
4613 IF pgm_agr_dtls_csr%ISOPEN
4614 THEN
4615 CLOSE pgm_agr_dtls_csr;
4616 END IF;
4617 --Lease Quote Details Cursor
4618 IF lse_qte_dtls_csr%ISOPEN
4619 THEN
4620 CLOSE lse_qte_dtls_csr;
4621 END IF;
4622 --Lease Application Template and Program Agreement Association Cursor
4623 IF lat_pgm_val_csr%ISOPEN
4624 THEN
4625 CLOSE lat_pgm_val_csr;
4626 END IF;
4627 --Unique source for Active Lease Application
4628 IF lap_lsq_uniq_csr%ISOPEN
4629 THEN
4630 CLOSE lap_lsq_uniq_csr;
4631 END IF;
4632 --Contract Template Validate Cursor
4633 IF contract_tmpl_val_csr%ISOPEN
4634 THEN
4635 CLOSE contract_tmpl_val_csr;
4636 END IF;
4637 --Checklist Template Validate Cursor
4638 IF checklist_val_csr%ISOPEN
4639 THEN
4640 CLOSE checklist_val_csr;
4641 END IF;
4642 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
4643 p_api_name => l_api_name,
4644 p_pkg_name => G_PKG_NAME,
4645 p_exc_name => 'OKL_API.G_RET_STS_ERROR',
4646 x_msg_count => x_msg_count,
4647 x_msg_data => x_msg_data,
4648 p_api_type => G_API_TYPE);
4649 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
4650 --Lease Application Template Details Cursor
4651 IF lat_dtls_csr%ISOPEN
4652 THEN
4653 CLOSE lat_dtls_csr;
4654 END IF;
4655 --Program Agreement Details Cursor
4656 IF pgm_agr_dtls_csr%ISOPEN
4657 THEN
4658 CLOSE pgm_agr_dtls_csr;
4659 END IF;
4660 --Lease Quote Details Cursor
4661 IF lse_qte_dtls_csr%ISOPEN
4662 THEN
4663 CLOSE lse_qte_dtls_csr;
4664 END IF;
4665 --Lease Application Template and Program Agreement Association Cursor
4666 IF lat_pgm_val_csr%ISOPEN
4667 THEN
4668 CLOSE lat_pgm_val_csr;
4669 END IF;
4670 --Unique source for Active Lease Application
4671 IF lap_lsq_uniq_csr%ISOPEN
4672 THEN
4673 CLOSE lap_lsq_uniq_csr;
4674 END IF;
4675 --Contract Template Validate Cursor
4676 IF contract_tmpl_val_csr%ISOPEN
4677 THEN
4678 CLOSE contract_tmpl_val_csr;
4679 END IF;
4680 --Checklist Template Validate Cursor
4681 IF checklist_val_csr%ISOPEN
4682 THEN
4683 CLOSE checklist_val_csr;
4684 END IF;
4685 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
4686 p_api_name => l_api_name,
4687 p_pkg_name => G_PKG_NAME,
4688 p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
4689 x_msg_count => x_msg_count,
4690 x_msg_data => x_msg_data,
4691 p_api_type => G_API_TYPE);
4692 WHEN OTHERS THEN
4693 --Lease Application Template Details Cursor
4694 IF lat_dtls_csr%ISOPEN
4695 THEN
4696 CLOSE lat_dtls_csr;
4697 END IF;
4698 --Program Agreement Details Cursor
4699 IF pgm_agr_dtls_csr%ISOPEN
4700 THEN
4701 CLOSE pgm_agr_dtls_csr;
4702 END IF;
4703 --Lease Quote Details Cursor
4704 IF lse_qte_dtls_csr%ISOPEN
4705 THEN
4706 CLOSE lse_qte_dtls_csr;
4707 END IF;
4708 --Lease Application Template and Program Agreement Association Cursor
4709 IF lat_pgm_val_csr%ISOPEN
4710 THEN
4711 CLOSE lat_pgm_val_csr;
4712 END IF;
4713 --Unique source for Active Lease Application
4714 IF lap_lsq_uniq_csr%ISOPEN
4715 THEN
4716 CLOSE lap_lsq_uniq_csr;
4717 END IF;
4718 --Contract Template Validate Cursor
4719 IF contract_tmpl_val_csr%ISOPEN
4720 THEN
4721 CLOSE contract_tmpl_val_csr;
4722 END IF;
4723 --Checklist Template Validate Cursor
4724 IF checklist_val_csr%ISOPEN
4725 THEN
4726 CLOSE checklist_val_csr;
4727 END IF;
4728 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
4729 p_api_name => l_api_name,
4730 p_pkg_name => G_PKG_NAME,
4731 p_exc_name => 'OTHERS',
4732 x_msg_count => x_msg_count,
4733 x_msg_data => x_msg_data,
4734 p_api_type => G_API_TYPE);
4735 END lease_app_val;
4736
4737 ------------------------------------------------------------------------------
4738 -- PROCEDURE lease_app_accept
4739 ------------------------------------------------------------------------------
4740 -- Start of comments
4741 --
4742 -- Procedure Name : lease_app_accept
4743 -- Description : This procedure accepts lease application.
4744 -- Business Rules : This procedure accepts lease application
4745 -- Parameters :
4746 -- Version : 1.0
4747 -- History : 20-MAY-2005 PAGARG created
4748 --
4749 -- End of comments
4750 PROCEDURE lease_app_accept(
4751 p_api_version IN NUMBER,
4752 p_init_msg_list IN VARCHAR2,
4753 x_return_status OUT NOCOPY VARCHAR2,
4754 x_msg_count OUT NOCOPY NUMBER,
4755 x_msg_data OUT NOCOPY VARCHAR2,
4756 p_lapv_rec IN lapv_rec_type,
4757 x_lapv_rec OUT NOCOPY lapv_rec_type) IS
4758
4759 -- Variables Declarations
4760 l_api_version CONSTANT NUMBER DEFAULT G_INIT_VERSION;
4761 l_api_name CONSTANT VARCHAR2(30) DEFAULT 'LEASE_APP_ACCEPT';
4762 l_return_status VARCHAR2(1);
4763
4764 -- Record/Table Type Declarations
4765 l_lapv_rec lapv_rec_type;
4766 l_lsqv_rec lsqv_rec_type;
4767 x_lsqv_rec lsqv_rec_type;
4768 -- Bug#4741121 - viselvar - Modified - Start
4769 l_parameter_list wf_parameter_list_t;
4770 p_event_name VARCHAR2(240) :='oracle.apps.okl.sales.leaseapplication.submitted_for_acceptance';
4771 p_event_name1 VARCHAR2(240) :='oracle.apps.okl.sales.leaseapplication.quote_accepted';
4772 -- Bug#4741121 - viselvar - Modified - End
4773 BEGIN
4774 l_return_status := OKL_API.G_RET_STS_SUCCESS;
4775 L_MODULE := 'OKL.PLSQL.OKL_LEASE_APP_PVT.LEASE_APP_ACCEPT';
4776
4777 -- check for logging on PROCEDURE level
4778 L_DEBUG_ENABLED := NVL(OKL_DEBUG_PUB.CHECK_LOG_ENABLED, 'N');
4779 IS_DEBUG_PROCEDURE_ON := NVL(OKL_DEBUG_PUB.CHECK_LOG_ON(L_MODULE, FND_LOG.LEVEL_PROCEDURE), FALSE);
4780 -- check for logging on STATEMENT level
4781 IS_DEBUG_STATEMENT_ON := NVL(OKL_DEBUG_PUB.CHECK_LOG_ON(L_MODULE, FND_LOG.LEVEL_STATEMENT), FALSE);
4782
4783 -- call START_ACTIVITY to create savepoint, check compatibility
4784 -- and initialize message list
4785 l_return_status := OKL_API.START_ACTIVITY(
4786 p_api_name => l_api_name
4787 ,p_pkg_name => G_PKG_NAME
4788 ,p_init_msg_list => p_init_msg_list
4789 ,l_api_version => l_api_version
4790 ,p_api_version => p_api_version
4791 ,p_api_type => G_API_TYPE
4792 ,x_return_status => l_return_status);
4793
4794 -- check if activity started successfully
4795 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4796 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4797 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
4798 RAISE OKL_API.G_EXCEPTION_ERROR;
4799 END IF;
4800
4801 l_lapv_rec := p_lapv_rec;
4802 -- Bug#4741121 - viselvar - Modified - Start
4803 -- raise the business event passing the Lease Application id added to the parameter list
4804 wf_event.addparametertolist('LAPP_ID'
4805 ,p_lapv_rec.id
4806 ,l_parameter_list);
4807
4808 okl_wf_pvt.raise_event( p_api_version => p_api_version
4809 ,p_init_msg_list => p_init_msg_list
4810 ,x_return_status => l_return_status
4811 ,x_msg_count => x_msg_count
4812 ,x_msg_data => x_msg_data
4813 ,p_event_name => p_event_name
4814 ,p_parameters => l_parameter_list);
4815
4816
4817 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
4818 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4819 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
4820 RAISE OKL_API.G_EXCEPTION_ERROR;
4821 END IF;
4822 -- Bug#4741121 - viselvar - Modified - End
4823
4824 --Populate Lease Application rec with the values from database.
4825 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
4826 THEN
4827 OKL_DEBUG_PUB.LOG_DEBUG(
4828 FND_LOG.LEVEL_PROCEDURE
4829 ,L_MODULE
4830 ,'begin debug call POPULATE_LEASE_APP');
4831 END IF;
4832
4833 POPULATE_LEASE_APP(
4834 p_api_version => p_api_version
4835 ,p_init_msg_list => OKL_API.G_FALSE
4836 ,x_return_status => l_return_status
4837 ,x_msg_count => x_msg_count
4838 ,x_msg_data => x_msg_data
4839 ,p_lap_id => l_lapv_rec.id
4840 ,x_lapv_rec => x_lapv_rec
4841 ,x_lsqv_rec => x_lsqv_rec);
4842
4843 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
4844 THEN
4845 OKL_DEBUG_PUB.LOG_DEBUG(
4846 FND_LOG.LEVEL_PROCEDURE
4847 ,L_MODULE
4848 ,'end debug call POPULATE_LEASE_APP');
4849 END IF;
4850
4851 -- write to log
4852 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
4853 OKL_DEBUG_PUB.LOG_DEBUG(
4854 FND_LOG.LEVEL_STATEMENT
4855 ,L_MODULE || ' Result of POPULATE_LEASE_APP'
4856 ,'l_return_status ' || l_return_status);
4857 END IF; -- end of statement level debug
4858
4859 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
4860 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4861 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
4862 RAISE OKL_API.G_EXCEPTION_ERROR;
4863 END IF;
4864
4865 l_lapv_rec := x_lapv_rec;
4866 l_lsqv_rec := x_lsqv_rec;
4867 IF(l_lapv_rec.application_status = 'PR-APPROVED')
4868 THEN
4869 --Validate Lease Application and if valid then update the status to
4870 --Pricing Accepted
4871 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
4872 THEN
4873 OKL_DEBUG_PUB.LOG_DEBUG(
4874 FND_LOG.LEVEL_PROCEDURE
4875 ,L_MODULE
4876 ,'begin debug call LEASE_APP_VAL');
4877 END IF;
4878
4879 LEASE_APP_VAL(
4880 p_api_version => p_api_version
4881 ,p_init_msg_list => OKL_API.G_FALSE
4882 ,x_return_status => l_return_status
4883 ,x_msg_count => x_msg_count
4884 ,x_msg_data => x_msg_data
4885 ,p_lapv_rec => l_lapv_rec
4886 ,p_lsqv_rec => l_lsqv_rec);
4887
4888 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
4889 THEN
4890 OKL_DEBUG_PUB.LOG_DEBUG(
4891 FND_LOG.LEVEL_PROCEDURE
4892 ,L_MODULE
4893 ,'end debug call LEASE_APP_VAL');
4894 END IF;
4895
4896 -- write to log
4897 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
4898 OKL_DEBUG_PUB.LOG_DEBUG(
4899 FND_LOG.LEVEL_STATEMENT
4900 ,L_MODULE || ' Result of LEASE_APP_VAL'
4901 ,'l_return_status ' || l_return_status);
4902 END IF; -- end of statement level debug
4903
4904 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
4905 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4906 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
4907 RAISE OKL_API.G_EXCEPTION_ERROR;
4908 END IF;
4909
4910 --Fixed added Bug 5647107 ssdeshpa start
4911 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
4912 THEN
4913 OKL_DEBUG_PUB.LOG_DEBUG(
4914 FND_LOG.LEVEL_PROCEDURE
4915 ,L_MODULE
4916 ,'begin debug call VALIDATE_LE_ID');
4917 END IF;
4918
4919 validate_le_id(l_lsqv_rec.legal_entity_id, l_return_status);
4920
4921 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
4922 THEN
4923 OKL_DEBUG_PUB.LOG_DEBUG(
4924 FND_LOG.LEVEL_PROCEDURE
4925 ,L_MODULE
4926 ,'end debug call VALIDATE_LE_ID');
4927 END IF;
4928
4929 -- write to log
4930 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
4931 OKL_DEBUG_PUB.LOG_DEBUG(
4932 FND_LOG.LEVEL_STATEMENT
4933 ,L_MODULE || ' Result of VALIDATE_LE_ID'
4934 ,'l_return_status ' || l_return_status);
4935 END IF; -- end of statement level debug
4936
4937 IF l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
4938 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4939 ELSIF l_return_status = OKL_API.G_RET_STS_ERROR THEN
4940 RAISE OKL_API.G_EXCEPTION_ERROR;
4941 END IF;
4942 --Fixed added Bug 5647107 ssdeshpa end
4943
4944 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
4945 THEN
4946 OKL_DEBUG_PUB.LOG_DEBUG(
4947 FND_LOG.LEVEL_PROCEDURE
4948 ,L_MODULE
4949 ,'begin debug call SET_LEASE_APP_STATUS');
4950 END IF;
4951
4952 SET_LEASE_APP_STATUS(
4953 p_api_version => p_api_version
4954 ,p_init_msg_list => OKL_API.G_FALSE
4955 ,p_lap_id => l_lapv_rec.id
4956 ,p_lap_status => 'PR-ACCEPTED'
4957 ,x_return_status => l_return_status
4958 ,x_msg_count => x_msg_count
4959 ,x_msg_data => x_msg_data);
4960
4961 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
4962 THEN
4963 OKL_DEBUG_PUB.LOG_DEBUG(
4964 FND_LOG.LEVEL_PROCEDURE
4965 ,L_MODULE
4966 ,'end debug call SET_LEASE_APP_STATUS');
4967 END IF;
4968
4969 -- write to log
4970 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
4971 OKL_DEBUG_PUB.LOG_DEBUG(
4972 FND_LOG.LEVEL_STATEMENT
4973 ,L_MODULE || ' Result of SET_LEASE_APP_STATUS'
4974 ,'l_return_status ' || l_return_status);
4975 END IF; -- end of statement level debug
4976
4977 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
4978 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4979 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
4980 RAISE OKL_API.G_EXCEPTION_ERROR;
4981 END IF;
4982
4983 --Update the lease quote to status pricing accepted
4984 l_lsqv_rec.status := 'CT-ACCEPTED';
4985
4986 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
4987 THEN
4988 OKL_DEBUG_PUB.LOG_DEBUG(
4989 FND_LOG.LEVEL_PROCEDURE
4990 ,L_MODULE
4991 ,'begin debug call OKL_LEASE_QUOTE_PVT.UPDATE_LEASE_QTE');
4992 END IF;
4993
4994 -- call the procedure to update lease quote line
4995 OKL_LEASE_QUOTE_PVT.UPDATE_LEASE_QTE(
4996 p_api_version => p_api_version
4997 ,p_init_msg_list => OKL_API.G_FALSE
4998 ,p_transaction_control => OKL_API.G_TRUE
4999 ,p_lease_qte_rec => l_lsqv_rec
5000 ,x_lease_qte_rec => x_lsqv_rec
5001 ,x_return_status => l_return_status
5002 ,x_msg_count => x_msg_count
5003 ,x_msg_data => x_msg_data);
5004
5005 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
5006 THEN
5007 OKL_DEBUG_PUB.LOG_DEBUG(
5008 FND_LOG.LEVEL_PROCEDURE
5009 ,L_MODULE
5010 ,'end debug call OKL_LEASE_QUOTE_PVT.UPDATE_LEASE_QTE');
5011 END IF;
5012
5013 -- write to log
5014 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
5015 OKL_DEBUG_PUB.LOG_DEBUG(
5016 FND_LOG.LEVEL_STATEMENT
5017 ,L_MODULE || ' Result of OKL_LEASE_QUOTE_PVT.UPDATE_LEASE_QTE'
5018 ,'l_lsqv_rec.reference_number ' || to_char(l_lsqv_rec.reference_number) ||
5019 ' l_lsqv_rec.id '|| l_lsqv_rec.id ||
5020 ' result status ' || l_return_status ||
5021 ' x_msg_data ' || x_msg_data);
5022 END IF; -- end of statement level debug
5023
5024 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
5025 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5026 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
5027 RAISE OKL_API.G_EXCEPTION_ERROR;
5028 END IF;
5029
5030 -- Bug#4741121 - viselvar - Modified - Start
5031 -- raise the business event passing the Lease Application id added to the parameter list
5032 -- this event is raised after the quote is accepted ie the quote status is changed
5033 wf_event.addparametertolist('LAPP_ID'
5034 ,p_lapv_rec.id
5035 ,l_parameter_list);
5036
5037 okl_wf_pvt.raise_event(p_api_version => p_api_version
5038 ,p_init_msg_list => p_init_msg_list
5039 ,x_return_status => l_return_status
5040 ,x_msg_count => x_msg_count
5041 ,x_msg_data => x_msg_data
5042 ,p_event_name => p_event_name1
5043 ,p_parameters => l_parameter_list);
5044
5045 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
5046 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5047 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
5048 RAISE OKL_API.G_EXCEPTION_ERROR;
5049 END IF;
5050 -- Bug#4741121 - viselvar - Modified - End
5051 END IF;
5052
5053 x_return_status := l_return_status;
5054 OKL_API.END_ACTIVITY(
5055 x_msg_count => x_msg_count
5056 ,x_msg_data => x_msg_data);
5057 EXCEPTION
5058 WHEN OKL_API.G_EXCEPTION_ERROR THEN
5059 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
5060 p_api_name => l_api_name,
5061 p_pkg_name => G_PKG_NAME,
5062 p_exc_name => 'OKL_API.G_RET_STS_ERROR',
5063 x_msg_count => x_msg_count,
5064 x_msg_data => x_msg_data,
5065 p_api_type => G_API_TYPE);
5066 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
5067 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
5068 p_api_name => l_api_name,
5069 p_pkg_name => G_PKG_NAME,
5070 p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
5071 x_msg_count => x_msg_count,
5072 x_msg_data => x_msg_data,
5073 p_api_type => G_API_TYPE);
5074 WHEN OTHERS THEN
5075 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
5076 p_api_name => l_api_name,
5077 p_pkg_name => G_PKG_NAME,
5078 p_exc_name => 'OTHERS',
5079 x_msg_count => x_msg_count,
5080 x_msg_data => x_msg_data,
5081 p_api_type => G_API_TYPE);
5082 END lease_app_accept;
5083
5084 ------------------------------------------------------------------------------
5085 -- PROCEDURE lease_app_withdraw
5086 ------------------------------------------------------------------------------
5087 -- Start of comments
5088 --
5089 -- Procedure Name : lease_app_withdraw
5090 -- Description : This procedure withdraws lease application.
5091 -- Business Rules : This procedure withdraws lease application
5092 -- Parameters :
5093 -- Version : 1.0
5094 -- History : 20-MAY-2005 PAGARG created
5095 --
5096 -- End of comments
5097 PROCEDURE lease_app_withdraw(
5098 p_api_version IN NUMBER,
5099 p_init_msg_list IN VARCHAR2,
5100 x_return_status OUT NOCOPY VARCHAR2,
5101 x_msg_count OUT NOCOPY NUMBER,
5102 x_msg_data OUT NOCOPY VARCHAR2,
5103 p_lapv_rec IN lapv_rec_type,
5104 x_lapv_rec OUT NOCOPY lapv_rec_type) IS
5105
5106 -- Variables Declarations
5107 l_api_version CONSTANT NUMBER DEFAULT G_INIT_VERSION;
5108 l_api_name CONSTANT VARCHAR2(30) DEFAULT 'LEASE_APP_WITHDRAW';
5109 l_return_status VARCHAR2(1);
5110
5111 -- Record/Table Type Declarations
5112 l_lapv_rec lapv_rec_type;
5113 l_lsqv_rec lsqv_rec_type;
5114 x_lsqv_rec lsqv_rec_type;
5115
5116 -- Bug#4741121 - smadhava - Added - Start
5117 l_parameter_list WF_PARAMETER_LIST_T;
5118 l_event_name wf_events.name%TYPE;
5119 -- Bug#4741121 - smadhava - Added - End
5120 BEGIN
5121 l_return_status := OKL_API.G_RET_STS_SUCCESS;
5122 L_MODULE := 'OKL.PLSQL.OKL_LEASE_APP_PVT.LEASE_APP_WITHDRAW';
5123
5124 -- check for logging on PROCEDURE level
5125 L_DEBUG_ENABLED := NVL(OKL_DEBUG_PUB.CHECK_LOG_ENABLED, 'N');
5126 IS_DEBUG_PROCEDURE_ON := NVL(OKL_DEBUG_PUB.CHECK_LOG_ON(L_MODULE, FND_LOG.LEVEL_PROCEDURE), FALSE);
5127 -- check for logging on STATEMENT level
5128 IS_DEBUG_STATEMENT_ON := NVL(OKL_DEBUG_PUB.CHECK_LOG_ON(L_MODULE, FND_LOG.LEVEL_STATEMENT), FALSE);
5129
5130 -- call START_ACTIVITY to create savepoint, check compatibility
5131 -- and initialize message list
5132 l_return_status := OKL_API.START_ACTIVITY(
5133 p_api_name => l_api_name
5134 ,p_pkg_name => G_PKG_NAME
5135 ,p_init_msg_list => p_init_msg_list
5136 ,l_api_version => l_api_version
5137 ,p_api_version => p_api_version
5138 ,p_api_type => G_API_TYPE
5139 ,x_return_status => l_return_status);
5140
5141 -- check if activity started successfully
5142 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
5143 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5144 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
5145 RAISE OKL_API.G_EXCEPTION_ERROR;
5146 END IF;
5147
5148 l_lapv_rec := p_lapv_rec;
5149
5150 --Check the status of Lease Application
5151 --If status not Credit submitted, credit rejected, credit approved, withdrawn
5152 -- then change the status to withdrawn
5153 --If status credit submitted then start workflow for withdrawn approval from
5154 --credit analyst and change the status to Withdraw Approval Pending
5155 --If approved from credit analyst then change the status to withdrawn
5156 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
5157 THEN
5158 OKL_DEBUG_PUB.LOG_DEBUG(
5159 FND_LOG.LEVEL_PROCEDURE
5160 ,L_MODULE
5161 ,'begin debug call POPULATE_LEASE_APP');
5162 END IF;
5163
5164 POPULATE_LEASE_APP(
5165 p_api_version => p_api_version
5166 ,p_init_msg_list => OKL_API.G_FALSE
5167 ,x_return_status => l_return_status
5168 ,x_msg_count => x_msg_count
5169 ,x_msg_data => x_msg_data
5170 ,p_lap_id => l_lapv_rec.id
5171 ,x_lapv_rec => x_lapv_rec
5172 ,x_lsqv_rec => x_lsqv_rec);
5173
5174 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
5175 THEN
5176 OKL_DEBUG_PUB.LOG_DEBUG(
5177 FND_LOG.LEVEL_PROCEDURE
5178 ,L_MODULE
5179 ,'end debug call POPULATE_LEASE_APP');
5180 END IF;
5181
5182 -- write to log
5183 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
5184 OKL_DEBUG_PUB.LOG_DEBUG(
5185 FND_LOG.LEVEL_STATEMENT
5186 ,L_MODULE || ' Result of POPULATE_LEASE_APP'
5187 ,'l_return_status ' || l_return_status);
5188 END IF; -- end of statement level debug
5189
5190 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
5191 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5192 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
5193 RAISE OKL_API.G_EXCEPTION_ERROR;
5194 END IF;
5195
5196 l_lapv_rec := x_lapv_rec;
5197
5198 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
5199 THEN
5200 OKL_DEBUG_PUB.LOG_DEBUG(
5201 FND_LOG.LEVEL_PROCEDURE
5202 ,L_MODULE
5203 ,'begin debug call CHECK_ELIGIBILITY');
5204 END IF;
5205
5206 --call the procedure to Validate Withdraw action on lease app
5207 CHECK_ELIGIBILITY(
5208 p_api_version => p_api_version
5209 ,p_init_msg_list => OKL_API.G_FALSE
5210 ,x_return_status => l_return_status
5211 ,x_msg_count => x_msg_count
5212 ,x_msg_data => x_msg_data
5213 ,p_lap_id => l_lapv_rec.id
5214 ,p_action => 'WITHDRAW');
5215
5216 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
5217 THEN
5218 OKL_DEBUG_PUB.LOG_DEBUG(
5219 FND_LOG.LEVEL_PROCEDURE
5220 ,L_MODULE
5221 ,'end debug call CHECK_ELIGIBILITY');
5222 END IF;
5223
5224 -- write to log
5225 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
5226 OKL_DEBUG_PUB.LOG_DEBUG(
5227 FND_LOG.LEVEL_STATEMENT
5228 ,L_MODULE || ' Result of CHECK_ELIGIBILITY'
5229 ,'return status ' || l_return_status ||
5230 ' x_msg_data ' || x_msg_data);
5231 END IF; -- end of statement level debug
5232
5233 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
5234 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5235 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
5236 RAISE OKL_API.G_EXCEPTION_ERROR;
5237 END IF;
5238
5239 IF(l_lapv_rec.application_status NOT IN('CR-SUBMITTED'
5240 ,'CONV-K'
5241 ,'WITHDRAWN'))
5242 THEN
5243 l_lapv_rec.application_status := 'WITHDRAWN';
5244
5245 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
5246 THEN
5247 OKL_DEBUG_PUB.LOG_DEBUG(
5248 FND_LOG.LEVEL_PROCEDURE
5249 ,L_MODULE
5250 ,'begin debug call OKL_LAP_PVT.UPDATE_ROW');
5251 END IF;
5252
5253 OKL_LAP_PVT.UPDATE_ROW(
5254 p_api_version => p_api_version
5255 ,p_init_msg_list => OKL_API.G_FALSE
5256 ,x_return_status => l_return_status
5257 ,x_msg_count => x_msg_count
5258 ,x_msg_data => x_msg_data
5259 ,p_lapv_rec => l_lapv_rec
5260 ,x_lapv_rec => x_lapv_rec);
5261
5262 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
5263 THEN
5264 OKL_DEBUG_PUB.LOG_DEBUG(
5265 FND_LOG.LEVEL_PROCEDURE
5266 ,L_MODULE
5267 ,'end debug call OKL_LAP_PVT.UPDATE_ROW');
5268 END IF;
5269
5270 -- write to log
5271 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
5272 OKL_DEBUG_PUB.LOG_DEBUG(
5273 FND_LOG.LEVEL_STATEMENT
5274 ,L_MODULE || ' Result of OKL_LAP_PVT.UPDATE_ROW'
5275 ,'l_return_status ' || l_return_status);
5276 END IF; -- end of statement level debug
5277
5278 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
5279 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5280 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
5281 RAISE OKL_API.G_EXCEPTION_ERROR;
5282 END IF;
5283
5284 --Check if lease quote line of Lease App is in status pricing approved or
5285 --accepted then only call the process subsidy pool api
5286 IF(x_lsqv_rec.status IN ('PR-APPROVED', 'CT-ACCEPTED'))
5287 THEN
5288 --Call the API to process the lease app subsidy pool
5289 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
5290 THEN
5291 OKL_DEBUG_PUB.LOG_DEBUG(
5292 FND_LOG.LEVEL_PROCEDURE
5293 ,L_MODULE
5294 ,'begin debug call OKL_LEASE_QUOTE_PVT.PROCESS_LEASEAPP_SUBSIDY_POOL');
5295 END IF;
5296
5297 OKL_LEASE_QUOTE_SUBPOOL_PVT.PROCESS_LEASEAPP_SUBSIDY_POOL(
5298 p_api_version => p_api_version
5299 ,p_init_msg_list => OKL_API.G_FALSE
5300 ,p_transaction_control => OKL_API.G_TRUE
5301 ,p_leaseapp_id => l_lapv_rec.id
5302 ,p_transaction_reason => 'WITHDRAW_LEASE_APP'
5303 ,p_quote_id => null
5304 ,x_return_status => l_return_status
5305 ,x_msg_count => x_msg_count
5306 ,x_msg_data => x_msg_data);
5307
5308 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
5309 THEN
5310 OKL_DEBUG_PUB.LOG_DEBUG(
5311 FND_LOG.LEVEL_PROCEDURE
5312 ,L_MODULE
5313 ,'end debug call OKL_LEASE_QUOTE_PVT.PROCESS_LEASEAPP_SUBSIDY_POOL');
5314 END IF;
5315
5316 -- write to log
5317 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
5318 OKL_DEBUG_PUB.LOG_DEBUG(
5319 FND_LOG.LEVEL_STATEMENT
5320 ,L_MODULE || ' Result of OKL_LEASE_QUOTE_PVT.PROCESS_LEASEAPP_SUBSIDY_POOL'
5321 ,'l_return_status ' || l_return_status);
5322 END IF; -- end of statement level debug
5323
5324 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
5325 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5326 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
5327 RAISE OKL_API.G_EXCEPTION_ERROR;
5328 END IF;
5329 END IF;-- Checking Lease Quote status for call to process subsidy pool api
5330
5331 --Call the API which will check if there is any Parent to this Lease App
5332 --and in status Appeal/Resubmit in Progress. If yes then restore the status
5333 --of parent to original status
5334 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
5335 THEN
5336 OKL_DEBUG_PUB.LOG_DEBUG(
5337 FND_LOG.LEVEL_PROCEDURE
5338 ,L_MODULE
5339 ,'begin debug call REVERT_TO_ORIG_STATUS');
5340 END IF;
5341
5342 REVERT_TO_ORIG_STATUS(
5343 p_api_version => l_api_version
5344 ,p_init_msg_list => OKL_API.G_FALSE
5345 ,p_lap_id => l_lapv_rec.id
5346 ,x_return_status => l_return_status
5347 ,x_msg_count => x_msg_count
5348 ,x_msg_data => x_msg_data);
5349
5350 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
5351 THEN
5352 OKL_DEBUG_PUB.LOG_DEBUG(
5353 FND_LOG.LEVEL_PROCEDURE
5354 ,L_MODULE
5355 ,'end debug call REVERT_TO_ORIG_STATUS');
5356 END IF;
5357
5358 -- write to log
5359 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
5360 OKL_DEBUG_PUB.LOG_DEBUG(
5361 FND_LOG.LEVEL_STATEMENT
5362 ,L_MODULE || ' Result of REVERT_TO_ORIG_STATUS'
5363 ,'l_return_status ' || l_return_status);
5364 END IF; -- end of statement level debug
5365
5366 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
5367 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5368 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
5369 RAISE OKL_API.G_EXCEPTION_ERROR;
5370 END IF;
5371 ELSIF(l_lapv_rec.application_status = 'CR-SUBMITTED')
5372 THEN
5373 --**** Instead of submitting any Withdraw Approval, need to call OCM API to Withdraw****--
5374 --Submit workflow for Withdraw approval
5375 --Bug#4741121 - smadhava - Added - Start
5376 --raise workflow submit event
5377 l_event_name := G_WF_EVT_LEASE_APP_WDW_PENDING;
5378
5379 -- Add the version id to the wf parameter list
5380 wf_event.AddParameterToList(G_WF_LEASE_APP_ID
5381 ,l_lapv_rec.ID
5382 ,l_parameter_list);
5383 --added by akrangan
5384 wf_event.AddParameterToList('ORG_ID',mo_global.get_current_org_id ,l_parameter_list);
5385
5386
5387 -- Raise the workflow event for Withdrawal of lease application
5388 OKL_WF_PVT.raise_event(p_api_version => p_api_version,
5389 p_init_msg_list => p_init_msg_list,
5390 x_return_status => l_return_status,
5391 x_msg_count => x_msg_count,
5392 x_msg_data => x_msg_data,
5393 p_event_name => l_event_name,
5394 p_parameters => l_parameter_list);
5395
5396 IF l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR THEN
5397 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5398 ELSIF l_return_status = OKL_API.G_RET_STS_ERROR THEN
5399 RAISE OKL_API.G_EXCEPTION_ERROR;
5400 END IF;
5401 -- Bug#4741121 - smadhava - Added - End
5402 END IF;
5403
5404 x_return_status := l_return_status;
5405 OKL_API.END_ACTIVITY(
5406 x_msg_count => x_msg_count
5407 ,x_msg_data => x_msg_data);
5408 EXCEPTION
5409 WHEN OKL_API.G_EXCEPTION_ERROR THEN
5410 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
5411 p_api_name => l_api_name,
5412 p_pkg_name => G_PKG_NAME,
5413 p_exc_name => 'OKL_API.G_RET_STS_ERROR',
5414 x_msg_count => x_msg_count,
5415 x_msg_data => x_msg_data,
5416 p_api_type => G_API_TYPE);
5417 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
5418 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
5419 p_api_name => l_api_name,
5420 p_pkg_name => G_PKG_NAME,
5421 p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
5422 x_msg_count => x_msg_count,
5423 x_msg_data => x_msg_data,
5424 p_api_type => G_API_TYPE);
5425 WHEN OTHERS THEN
5426 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
5427 p_api_name => l_api_name,
5428 p_pkg_name => G_PKG_NAME,
5429 p_exc_name => 'OTHERS',
5430 x_msg_count => x_msg_count,
5431 x_msg_data => x_msg_data,
5432 p_api_type => G_API_TYPE);
5433 END lease_app_withdraw;
5434
5435 ------------------------------------------------------------------------------
5436 -- PROCEDURE lease_app_dup
5437 ------------------------------------------------------------------------------
5438 -- Start of comments
5439 --
5440 -- Procedure Name : lease_app_dup
5441 -- Description : This procedure duplicates lease application.
5442 -- Business Rules : This procedure duplicates lease application
5443 -- Parameters :
5444 -- Version : 1.0
5445 -- History : 20-MAY-2005 PAGARG created
5446 -- : 09 Feb 2006 PAGARG Bug 4960541 Added call to validations
5447 -- API while creating Lease App from Lease Quote
5448 -- End of comments
5449 PROCEDURE lease_app_dup(
5450 p_api_version IN NUMBER,
5451 p_init_msg_list IN VARCHAR2,
5452 x_return_status OUT NOCOPY VARCHAR2,
5453 x_msg_count OUT NOCOPY NUMBER,
5454 x_msg_data OUT NOCOPY VARCHAR2,
5455 p_source_lap_id IN NUMBER,
5456 p_lapv_rec IN lapv_rec_type,
5457 x_lapv_rec OUT NOCOPY lapv_rec_type,
5458 p_lsqv_rec IN lsqv_rec_type,
5459 x_lsqv_rec OUT NOCOPY lsqv_rec_type,
5460 p_origin IN VARCHAR2) IS
5461
5462 -- Variables Declarations
5463 l_api_version CONSTANT NUMBER DEFAULT G_INIT_VERSION;
5464 l_api_name CONSTANT VARCHAR2(30) DEFAULT 'LEASE_APP_DUP';
5465 l_return_status VARCHAR2(1);
5466 l_source_quote_id NUMBER;
5467 l_qa_result VARCHAR2(1);
5468
5469 -- Record/Table Type Declarations
5470 l_lapv_rec lapv_rec_type;
5471 l_lsqv_rec lsqv_rec_type;
5472 l_crr_rec crr_rec_type;
5473 x_crr_rec crr_rec_type;
5474
5475 -- Bug#4741121 - viselvar - Modified - Start
5476 l_parameter_list wf_parameter_list_t;
5477 p_event_name VARCHAR2(240) :='oracle.apps.okl.sales.leaseapplication.duplicated';
5478 -- Bug#4741121 - viselvar - Modified - End
5479
5480 --gboomina:bug 7110500 - Start
5481 CURSOR quote_oth_atrrib_csr(p_source_quote_id NUMBER) IS
5482 SELECT
5483 EXPECTED_FUNDING_DATE,
5484 EXPECTED_DELIVERY_DATE
5485 FROM okl_lease_quotes_v
5486 WHERE id = p_source_quote_id;
5487
5488 quote_oth_atrrib_rec quote_oth_atrrib_csr%ROWTYPE;
5489 --gboomina:bug 7110500 End
5490
5491 --Cursor to obtain Checklist Header Id
5492 CURSOR chk_hdr_dtls_csr(cp_lap_id NUMBER)
5493 IS
5494 SELECT LATV.CHECKLIST_ID
5495 FROM OKL_LEASE_APPLICATIONS_B LAP
5496 ,OKL_LEASEAPP_TEMPL_VERSIONS_V LATV
5497 WHERE LAP.LEASEAPP_TEMPLATE_ID = LATV.ID
5498 AND LAP.ID = cp_lap_id;
5499 chk_hdr_dtls_rec chk_hdr_dtls_csr%ROWTYPE;
5500
5501 --Cursor to obtain Source Lease App details
5502 CURSOR src_lse_app_dtls_csr(cp_lap_id NUMBER)
5503 IS
5504 SELECT LSQ.ID LSQ_ID
5505 FROM OKL_LEASE_QUOTES_B LSQ
5506 , OKL_LEASE_APPLICATIONS_B LAP
5507 WHERE LSQ.PARENT_OBJECT_ID = LAP.ID
5508 AND LSQ.PARENT_OBJECT_CODE = 'LEASEAPP'
5509 AND LSQ.PRIMARY_QUOTE = 'Y'
5510 AND LAP.ID = cp_lap_id;
5511 src_lse_app_dtls_rec src_lse_app_dtls_csr%ROWTYPE;
5512
5513 --Begin-bug#4721142 - varangan- cursor to fetch quote details from opportunity id
5514 --Cursor to obtain Source Lease App details
5515 CURSOR src_lse_opp_dtls_csr(cp_lap_id NUMBER)
5516 IS
5517 SELECT LSQ.ID LSQ_ID
5518 , LOP.ID LOP_ID
5519 FROM OKL_LEASE_OPPORTUNITIES_B LOP
5520 , OKL_LEASE_QUOTES_B LSQ
5521 WHERE
5522 LSQ.PARENT_OBJECT_ID = LOP.ID
5523 AND LSQ.PARENT_OBJECT_CODE = 'LEASEOPP'
5524 AND LSQ.STATUS = 'CT-ACCEPTED'
5525 AND LOP.ID = cp_lap_id;
5526 src_lse_opp_dtls_rec src_lse_opp_dtls_csr%ROWTYPE;
5527 --End-bug#4721142 - varangan- cursor to fetch quote details from opportunity id
5528 BEGIN
5529 l_return_status := OKL_API.G_RET_STS_SUCCESS;
5530 L_MODULE := 'OKL.PLSQL.OKL_LEASE_APP_PVT.LEASE_APP_DUP';
5531
5532 -- check for logging on PROCEDURE level
5533 L_DEBUG_ENABLED := NVL(OKL_DEBUG_PUB.CHECK_LOG_ENABLED, 'N');
5534 IS_DEBUG_PROCEDURE_ON := NVL(OKL_DEBUG_PUB.CHECK_LOG_ON(L_MODULE, FND_LOG.LEVEL_PROCEDURE), FALSE);
5535 -- check for logging on STATEMENT level
5536 IS_DEBUG_STATEMENT_ON := NVL(OKL_DEBUG_PUB.CHECK_LOG_ON(L_MODULE, FND_LOG.LEVEL_STATEMENT), FALSE);
5537
5538 -- call START_ACTIVITY to create savepoint, check compatibility
5539 -- and initialize message list
5540 l_return_status := OKL_API.START_ACTIVITY(
5541 p_api_name => l_api_name
5542 ,p_pkg_name => G_PKG_NAME
5543 ,p_init_msg_list => p_init_msg_list
5544 ,l_api_version => l_api_version
5545 ,p_api_version => p_api_version
5546 ,p_api_type => G_API_TYPE
5547 ,x_return_status => l_return_status);
5548
5549 -- check if activity started successfully
5550 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
5551 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5552 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
5553 RAISE OKL_API.G_EXCEPTION_ERROR;
5554 END IF;
5555
5556 l_lapv_rec := p_lapv_rec;
5557 l_lsqv_rec := p_lsqv_rec;
5558 IF p_source_lap_id IS NOT NULL
5559 THEN
5560 --set the status for lease application
5561 l_lapv_rec.application_status := G_INIT_APPL_STATUS;
5562 --Bug 4930634 PAGARG if source for duplicate is not Lease Opp then remove
5563 --the link with Lease Opp from duplicated Lease App
5564 IF p_origin <> 'LEASEOPP'
5565 THEN
5566 l_lapv_rec.lease_opportunity_id := NULL; --Commented by VARANGAN for bug#4721142 to fetch quote details
5567 END IF;
5568 ELSE
5569 --BUG 4951955 PAGARG Instead of Lease Opp id, pass source Lease Quote id
5570 --as parameter to check default values
5571 OPEN src_lse_opp_dtls_csr(l_lapv_rec.lease_opportunity_id);
5572 FETCH src_lse_opp_dtls_csr INTO src_lse_opp_dtls_rec;
5573 CLOSE src_lse_opp_dtls_csr;
5574
5575 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
5576 THEN
5577 OKL_DEBUG_PUB.LOG_DEBUG(
5578 FND_LOG.LEVEL_PROCEDURE
5579 ,L_MODULE
5580 ,'begin debug call CHECK_LEASE_QUOTE_DEFAULTS');
5581 END IF;
5582
5583 CHECK_LEASE_QUOTE_DEFAULTS(
5584 p_api_version => p_api_version
5585 ,p_init_msg_list => OKL_API.G_FALSE
5586 ,x_return_status => l_return_status
5587 ,x_msg_count => x_msg_count
5588 ,x_msg_data => x_msg_data
5589 ,p_source_lsq_id => src_lse_opp_dtls_rec.lsq_id
5590 ,p_lapv_rec => l_lapv_rec
5591 ,p_lsqv_rec => l_lsqv_rec);
5592
5593 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
5594 THEN
5595 OKL_DEBUG_PUB.LOG_DEBUG(
5596 FND_LOG.LEVEL_PROCEDURE
5597 ,L_MODULE
5598 ,'end debug call CHECK_LEASE_QUOTE_DEFAULTS');
5599 END IF;
5600
5601 -- write to log
5602 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON)
5603 THEN
5604 OKL_DEBUG_PUB.LOG_DEBUG(
5605 FND_LOG.LEVEL_STATEMENT
5606 ,L_MODULE || ' Result of CHECK_LEASE_QUOTE_DEFAULTS'
5607 ,'l_return_status ' || l_return_status);
5608 END IF; -- end of statement level debug
5609
5610 -- Check the status and accordingly set the Lease Application Status
5611 IF(l_return_status = OKL_API.G_RET_STS_SUCCESS)THEN
5612 l_lapv_rec.application_status := 'PR-ACCEPTED';
5613 ELSE
5614 --set the status for lease application
5615 l_lapv_rec.application_status := G_INIT_APPL_STATUS;
5616 END IF;
5617 END IF;
5618
5619 --Validate Lease Application Template
5620 --Validate Program Agreement
5621 --Validate VP and LAT association
5622 --Validate Lease Quote
5623 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
5624 THEN
5625 OKL_DEBUG_PUB.LOG_DEBUG(
5626 FND_LOG.LEVEL_PROCEDURE
5627 ,L_MODULE
5628 ,'begin debug call LEASE_APP_VAL');
5629 END IF;
5630
5631 LEASE_APP_VAL(
5632 p_api_version => p_api_version
5633 ,p_init_msg_list => OKL_API.G_FALSE
5634 ,x_return_status => l_return_status
5635 ,x_msg_count => x_msg_count
5636 ,x_msg_data => x_msg_data
5637 ,p_lapv_rec => l_lapv_rec
5638 ,p_lsqv_rec => l_lsqv_rec);
5639
5640 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
5641 THEN
5642 OKL_DEBUG_PUB.LOG_DEBUG(
5643 FND_LOG.LEVEL_PROCEDURE
5644 ,L_MODULE
5645 ,'end debug call LEASE_APP_VAL');
5646 END IF;
5647
5648 -- write to log
5649 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
5650 OKL_DEBUG_PUB.LOG_DEBUG(
5651 FND_LOG.LEVEL_STATEMENT
5652 ,L_MODULE || ' Result of LEASE_APP_VAL'
5653 ,'l_return_status ' || l_return_status);
5654 END IF; -- end of statement level debug
5655
5656 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
5657 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5658 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
5659 RAISE OKL_API.G_EXCEPTION_ERROR;
5660 END IF;
5661
5662 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
5663 THEN
5664 OKL_DEBUG_PUB.LOG_DEBUG(
5665 FND_LOG.LEVEL_PROCEDURE
5666 ,L_MODULE
5667 ,'begin debug call OKL_LAP_PVT.INSERT_ROW');
5668 END IF;
5669
5670 -- call the TAPI insert_row to create a lease application
5671 OKL_LAP_PVT.INSERT_ROW(
5672 p_api_version => p_api_version
5673 ,p_init_msg_list => OKL_API.G_FALSE
5674 ,x_return_status => l_return_status
5675 ,x_msg_count => x_msg_count
5676 ,x_msg_data => x_msg_data
5677 ,p_lapv_rec => l_lapv_rec
5678 ,x_lapv_rec => x_lapv_rec);
5679
5680 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
5681 THEN
5682 OKL_DEBUG_PUB.LOG_DEBUG(
5683 FND_LOG.LEVEL_PROCEDURE
5684 ,L_MODULE
5685 ,'end debug call OKL_LAP_PVT.INSERT_ROW');
5686 END IF;
5687
5688 -- write to log
5689 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
5690 OKL_DEBUG_PUB.LOG_DEBUG(
5691 FND_LOG.LEVEL_STATEMENT
5692 ,L_MODULE || ' Result of OKL_LAP_PVT.INSERT_ROW'
5693 ,'l_lapv_rec.reference_number ' || to_char(l_lapv_rec.reference_number) ||
5694 ' l_lapv_rec.id '|| l_lapv_rec.id ||
5695 ' result status ' || l_return_status ||
5696 ' x_msg_data ' || x_msg_data);
5697 END IF; -- end of statement level debug
5698
5699 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
5700 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5701 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
5702 RAISE OKL_API.G_EXCEPTION_ERROR;
5703 END IF;
5704
5705 --Populate lease quote rec values
5706 l_lsqv_rec.parent_object_code := 'LEASEAPP';
5707 l_lsqv_rec.parent_object_id := x_lapv_rec.id;
5708 --Bug 4721142 PAGARG set the lease quote reference number form sequence
5709 --Bug 4867953 PAGARG instead of using the sequence directly use function
5710 l_lsqv_rec.reference_number := get_next_seq_num(
5711 'OKL_LSQ_REF_SEQ'
5712 ,'OKL_LEASE_QUOTES_B'
5713 ,'REFERENCE_NUMBER');
5714 --Bug Fix End
5715 l_lsqv_rec.primary_quote := 'Y';
5716 l_lsqv_rec.status := 'PR-INCOMPLETE';
5717
5718 IF p_source_lap_id IS NULL
5719 AND l_lapv_rec.application_status = 'PR-ACCEPTED'
5720 THEN
5721 l_lsqv_rec.status := 'CT-ACCEPTED';
5722 END IF;
5723
5724 --Obtain the lease quote id attached to lease application and pass it as
5725 --source to duplicate lease quote.
5726 --This way it will duplicate lease quote with header values from rec and
5727 --rest of configuration, adjustment, pricing data from the source lease quote id
5728
5729 --Begin-bug#4721142 - varangan- cursor to fetch quote details from opportunity id
5730 IF p_source_lap_id IS NULL
5731 THEN
5732 IF x_lapv_rec.lease_opportunity_id IS NOT NULL
5733 THEN
5734 OPEN src_lse_opp_dtls_csr(x_lapv_rec.lease_opportunity_id);
5735 FETCH src_lse_opp_dtls_csr INTO src_lse_opp_dtls_rec;
5736 CLOSE src_lse_opp_dtls_csr;
5737 l_source_quote_id := src_lse_opp_dtls_rec.lsq_id;
5738
5739 -- gboomina Bug 7110500: start
5740 OPEN quote_oth_atrrib_csr(l_source_quote_id);
5741 FETCH quote_oth_atrrib_csr INTO quote_oth_atrrib_rec;
5742 CLOSE quote_oth_atrrib_csr;
5743
5744 l_lsqv_rec.EXPECTED_FUNDING_DATE:=quote_oth_atrrib_rec.EXPECTED_FUNDING_DATE;
5745 l_lsqv_rec.EXPECTED_DELIVERY_DATE:=quote_oth_atrrib_rec.EXPECTED_DELIVERY_DATE;
5746
5747 -- gboomina Bug 7110500: End
5748
5749 END IF;
5750 ELSE
5751 OPEN src_lse_app_dtls_csr(p_source_lap_id);
5752 FETCH src_lse_app_dtls_csr INTO src_lse_app_dtls_rec;
5753 CLOSE src_lse_app_dtls_csr;
5754 l_source_quote_id := src_lse_app_dtls_rec.lsq_id;
5755 END IF;
5756 --End-bug#4721142 - varangan- cursor to fetch quote details from opportunity id
5757
5758 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
5759 THEN
5760 OKL_DEBUG_PUB.LOG_DEBUG(
5761 FND_LOG.LEVEL_PROCEDURE
5762 ,L_MODULE
5763 ,'begin debug call OKL_LEASE_QUOTE_PVT.DUPLICATE_LEASE_QTE');
5764 END IF;
5765
5766 -- call the procedure to create lease quote line
5767 OKL_LEASE_QUOTE_PVT.DUPLICATE_LEASE_QTE(
5768 p_api_version => p_api_version
5769 ,p_init_msg_list => OKL_API.G_FALSE
5770 ,p_transaction_control => OKL_API.G_TRUE
5771 ,p_source_quote_id => l_source_quote_id
5772 ,p_lease_qte_rec => l_lsqv_rec
5773 ,x_lease_qte_rec => x_lsqv_rec
5774 ,x_return_status => l_return_status
5775 ,x_msg_count => x_msg_count
5776 ,x_msg_data => x_msg_data);
5777
5778 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
5779 THEN
5780 OKL_DEBUG_PUB.LOG_DEBUG(
5781 FND_LOG.LEVEL_PROCEDURE
5782 ,L_MODULE
5783 ,'end debug call OKL_LEASE_QUOTE_PVT.DUPLICATE_LEASE_QTE');
5784 END IF;
5785
5786 -- write to log
5787 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
5788 OKL_DEBUG_PUB.LOG_DEBUG(
5789 FND_LOG.LEVEL_STATEMENT
5790 ,L_MODULE || ' Result of OKL_LEASE_QUOTE_PVT.DUPLICATE_LEASE_QTE'
5791 ,'l_lsqv_rec.reference_number ' || to_char(l_lsqv_rec.reference_number) ||
5792 ' l_lsqv_rec.id '|| l_lsqv_rec.id ||
5793 ' result status ' || l_return_status ||
5794 ' x_msg_data ' || x_msg_data);
5795 END IF; -- end of statement level debug
5796
5797 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
5798 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5799 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
5800 RAISE OKL_API.G_EXCEPTION_ERROR;
5801 END IF;
5802
5803 --Bug 4960541 PAGARG Added call to validations API while creating Lease
5804 --App from Lease Quote. Based on qa result Lease App and Lease Quote status
5805 --are updated
5806 l_lsqv_rec := x_lsqv_rec;
5807 IF l_lsqv_rec.status = 'CT-ACCEPTED'
5808 THEN
5809 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
5810 THEN
5811 OKL_DEBUG_PUB.LOG_DEBUG(
5812 FND_LOG.LEVEL_PROCEDURE
5813 ,L_MODULE
5814 ,'begin debug call LEASE_APP_QA_VAL');
5815 END IF;
5816
5817 -- call the procedure to perform QA validations
5818 LEASE_APP_QA_VAL(
5819 p_api_version => p_api_version
5820 ,p_init_msg_list => OKL_API.G_FALSE
5821 ,p_lap_id => x_lapv_rec.id
5822 ,x_return_status => l_return_status
5823 ,x_msg_count => x_msg_count
5824 ,x_msg_data => x_msg_data
5825 ,x_qa_result => l_qa_result);
5826
5827 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
5828 THEN
5829 OKL_DEBUG_PUB.LOG_DEBUG(
5830 FND_LOG.LEVEL_PROCEDURE
5831 ,L_MODULE
5832 ,'end debug call LEASE_APP_QA_VAL');
5833 END IF;
5834
5835 -- write to log
5836 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
5837 OKL_DEBUG_PUB.LOG_DEBUG(
5838 FND_LOG.LEVEL_STATEMENT
5839 ,L_MODULE
5840 ,' Result of LEASE_APP_QA_VAL' ||
5841 ' Result Status ' || l_return_status ||
5842 ' QA Result Status ' || l_qa_result);
5843 END IF; -- end of statement level debug
5844
5845 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
5846 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5847 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
5848 RAISE OKL_API.G_EXCEPTION_ERROR;
5849 END IF;
5850
5851 IF l_qa_result <> OKL_API.G_RET_STS_SUCCESS
5852 THEN
5853 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
5854 THEN
5855 OKL_DEBUG_PUB.LOG_DEBUG(
5856 FND_LOG.LEVEL_PROCEDURE
5857 ,L_MODULE
5858 ,'begin debug call SET_LEASE_APP_STATUS');
5859 END IF;
5860
5861 --call the procedure to update a lease application status
5862 SET_LEASE_APP_STATUS(
5863 p_api_version => p_api_version
5864 ,p_init_msg_list => OKL_API.G_FALSE
5865 ,p_lap_id => x_lapv_rec.id
5866 ,p_lap_status => G_INIT_APPL_STATUS
5867 ,x_return_status => l_return_status
5868 ,x_msg_count => x_msg_count
5869 ,x_msg_data => x_msg_data);
5870
5871 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
5872 THEN
5873 OKL_DEBUG_PUB.LOG_DEBUG(
5874 FND_LOG.LEVEL_PROCEDURE
5875 ,L_MODULE
5876 ,'end debug call SET_LEASE_APP_STATUS');
5877 END IF;
5878
5879 -- write to log
5880 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
5881 OKL_DEBUG_PUB.LOG_DEBUG(
5882 FND_LOG.LEVEL_STATEMENT
5883 ,L_MODULE || ' Result of SET_LEASE_APP_STATUS'
5884 ,'return status ' || l_return_status ||
5885 ' x_msg_data ' || x_msg_data);
5886 END IF; -- end of statement level debug
5887
5888 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
5889 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5890 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
5891 RAISE OKL_API.G_EXCEPTION_ERROR;
5892 END IF;
5893
5894 l_lsqv_rec.status := 'PR-INCOMPLETE';
5895 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
5896 THEN
5897 OKL_DEBUG_PUB.LOG_DEBUG(
5898 FND_LOG.LEVEL_PROCEDURE
5899 ,L_MODULE
5900 ,'begin debug call OKL_LEASE_QUOTE_PVT.UPDATE_LEASE_QTE');
5901 END IF;
5902
5903 -- call the procedure to create lease quote line
5904 OKL_LEASE_QUOTE_PVT.UPDATE_LEASE_QTE(
5905 p_api_version => p_api_version
5906 ,p_init_msg_list => OKL_API.G_FALSE
5907 ,p_transaction_control => OKL_API.G_TRUE
5908 ,p_lease_qte_rec => l_lsqv_rec
5909 ,x_lease_qte_rec => x_lsqv_rec
5910 ,x_return_status => l_return_status
5911 ,x_msg_count => x_msg_count
5912 ,x_msg_data => x_msg_data);
5913
5914 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
5915 THEN
5916 OKL_DEBUG_PUB.LOG_DEBUG(
5917 FND_LOG.LEVEL_PROCEDURE
5918 ,L_MODULE
5919 ,'end debug call OKL_LEASE_QUOTE_PVT.UPDATE_LEASE_QTE');
5920 END IF;
5921
5922 -- write to log
5923 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
5924 OKL_DEBUG_PUB.LOG_DEBUG(
5925 FND_LOG.LEVEL_STATEMENT
5926 ,L_MODULE || ' Result of OKL_LEASE_QUOTE_PVT.UPDATE_LEASE_QTE'
5927 ,'l_lsqv_rec.reference_number ' || to_char(l_lsqv_rec.reference_number) ||
5928 ' l_lsqv_rec.id '|| l_lsqv_rec.id ||
5929 ' result status ' || l_return_status ||
5930 ' x_msg_data ' || x_msg_data);
5931 END IF; -- end of statement level debug
5932
5933 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
5934 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5935 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
5936 RAISE OKL_API.G_EXCEPTION_ERROR;
5937 END IF;
5938 -- Bug 7440199: Quote Streams ER: RGOOTY: Start
5939 ELSE
5940 --Making the pricing call to generate the streams
5941 --Start Pricing API call
5942 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
5943 THEN
5944 OKL_DEBUG_PUB.LOG_DEBUG(
5945 FND_LOG.LEVEL_PROCEDURE
5946 ,L_MODULE
5947 ,'begin debug call OKL_PRICING_UTILS_PVT.PRICE_STANDARD_QUOTE');
5948 END IF;
5949
5950 OKL_PRICING_UTILS_PVT.PRICE_STANDARD_QUOTE(
5951 p_api_version => p_api_version
5952 ,p_init_msg_list => OKL_API.G_FALSE
5953 ,p_qte_id => x_lsqv_rec.id
5954 ,x_return_status => l_return_status
5955 ,x_msg_count => x_msg_count
5956 ,x_msg_data => x_msg_data);
5957
5958 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
5959 THEN
5960 OKL_DEBUG_PUB.LOG_DEBUG(
5961 FND_LOG.LEVEL_PROCEDURE
5962 ,L_MODULE
5963 ,'end debug call OKL_PRICING_UTILS_PVT.PRICE_STANDARD_QUOTE');
5964 END IF;
5965
5966 -- write to log
5967 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
5968 OKL_DEBUG_PUB.LOG_DEBUG(
5969 FND_LOG.LEVEL_STATEMENT
5970 ,L_MODULE || ' Result of OKL_PRICING_UTILS_PVT.PRICE_STANDARD_QUOTE'
5971 ,'l_return_status ' || l_return_status);
5972 END IF; -- end of statement level debug
5973
5974 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
5975 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5976 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
5977 RAISE OKL_API.G_EXCEPTION_ERROR;
5978 END IF;
5979 --End of Pricing API call
5980 -- Bug 7440199: Quote Streams ER: RGOOTY: End
5981 END IF; -- For QA Result Check
5982 END IF;-- Check for Lease Quote status to call QA validation
5983
5984 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
5985 THEN
5986 OKL_DEBUG_PUB.LOG_DEBUG(
5987 FND_LOG.LEVEL_PROCEDURE
5988 ,L_MODULE
5989 ,'begin debug call CREATE_CREDIT_APP');
5990 END IF;
5991
5992 --call to duplicate Credit Lease Application
5993 CREATE_CREDIT_APP(
5994 p_api_version => p_api_version
5995 ,p_init_msg_list => OKL_API.G_FALSE
5996 ,x_return_status => l_return_status
5997 ,x_msg_count => x_msg_count
5998 ,x_msg_data => x_msg_data
5999 ,p_lapv_rec => x_lapv_rec
6000 ,p_crr_rec => l_crr_rec
6001 ,x_crr_rec => x_crr_rec);
6002
6003 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
6004 THEN
6005 OKL_DEBUG_PUB.LOG_DEBUG(
6006 FND_LOG.LEVEL_PROCEDURE
6007 ,L_MODULE
6008 ,'end debug call CREATE_CREDIT_APP');
6009 END IF;
6010
6011 -- write to log
6012 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
6013 OKL_DEBUG_PUB.LOG_DEBUG(
6014 FND_LOG.LEVEL_STATEMENT
6015 ,L_MODULE || ' Result of CREATE_CREDIT_APP'
6016 ,' result status ' || l_return_status);
6017 END IF; -- end of statement level debug
6018
6019 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
6020 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6021 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
6022 RAISE OKL_API.G_EXCEPTION_ERROR;
6023 END IF;
6024
6025 OPEN chk_hdr_dtls_csr(x_lapv_rec.id);
6026 FETCH chk_hdr_dtls_csr INTO chk_hdr_dtls_rec;
6027 CLOSE chk_hdr_dtls_csr;
6028
6029 IF(chk_hdr_dtls_rec.checklist_id IS NOT NULL)
6030 THEN
6031 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
6032 THEN
6033 OKL_DEBUG_PUB.LOG_DEBUG(
6034 FND_LOG.LEVEL_PROCEDURE
6035 ,L_MODULE
6036 ,'begin debug call CHECKLIST_INST_CRE');
6037 END IF;
6038
6039 --call to create Checklist Instance
6040 CHECKLIST_INST_CRE(
6041 p_api_version => p_api_version
6042 ,p_init_msg_list => OKL_API.G_FALSE
6043 ,x_return_status => l_return_status
6044 ,x_msg_count => x_msg_count
6045 ,x_msg_data => x_msg_data
6046 ,p_lap_id => x_lapv_rec.id
6047 ,p_chklst_tmpl_id => chk_hdr_dtls_rec.checklist_id);
6048
6049 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
6050 THEN
6051 OKL_DEBUG_PUB.LOG_DEBUG(
6052 FND_LOG.LEVEL_PROCEDURE
6053 ,L_MODULE
6054 ,'end debug call CHECKLIST_INST_CRE');
6055 END IF;
6056
6057 -- write to log
6058 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
6059 OKL_DEBUG_PUB.LOG_DEBUG(
6060 FND_LOG.LEVEL_STATEMENT
6061 ,L_MODULE || ' Result of CHECKLIST_INST_CRE'
6062 ,' result status ' || l_return_status);
6063 END IF; -- end of statement level debug
6064
6065 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
6066 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6067 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
6068 RAISE OKL_API.G_EXCEPTION_ERROR;
6069 END IF;
6070 END IF; -- Condition to check for call to create checklist instance
6071
6072 -- Bug#4741121 - viselvar - Modified - Start
6073 -- raise the business event passing the Lease Application id added to the parameter list
6074 wf_event.addparametertolist('LAPP_ID'
6075 ,x_lapv_rec.id
6076 ,l_parameter_list);
6077 okl_wf_pvt.raise_event(p_api_version => p_api_version
6078 ,p_init_msg_list => p_init_msg_list
6079 ,x_return_status => l_return_status
6080 ,x_msg_count => x_msg_count
6081 ,x_msg_data => x_msg_data
6082 ,p_event_name => p_event_name
6083 ,p_parameters => l_parameter_list);
6084
6085 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
6086 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6087 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
6088 RAISE OKL_API.G_EXCEPTION_ERROR;
6089 END IF;
6090 -- Bug#4741121 - viselvar - Modified - End
6091
6092 x_return_status := l_return_status;
6093 OKL_API.END_ACTIVITY(
6094 x_msg_count => x_msg_count
6095 ,x_msg_data => x_msg_data);
6096 EXCEPTION
6097 WHEN OKL_API.G_EXCEPTION_ERROR THEN
6098 --Checklist Header Details Cursor
6099 IF chk_hdr_dtls_csr%ISOPEN
6100 THEN
6101 CLOSE chk_hdr_dtls_csr;
6102 END IF;
6103 --Lease Application Source Details Cursor
6104 IF src_lse_app_dtls_csr%ISOPEN
6105 THEN
6106 CLOSE src_lse_app_dtls_csr;
6107 END IF;
6108 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
6109 p_api_name => l_api_name,
6110 p_pkg_name => G_PKG_NAME,
6111 p_exc_name => 'OKL_API.G_RET_STS_ERROR',
6112 x_msg_count => x_msg_count,
6113 x_msg_data => x_msg_data,
6114 p_api_type => G_API_TYPE);
6115
6116 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
6117 --Checklist Header Details Cursor
6118 IF chk_hdr_dtls_csr%ISOPEN
6119 THEN
6120 CLOSE chk_hdr_dtls_csr;
6121 END IF;
6122 --Lease Application Source Details Cursor
6123 IF src_lse_app_dtls_csr%ISOPEN
6124 THEN
6125 CLOSE src_lse_app_dtls_csr;
6126 END IF;
6127 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
6128 p_api_name => l_api_name,
6129 p_pkg_name => G_PKG_NAME,
6130 p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
6131 x_msg_count => x_msg_count,
6132 x_msg_data => x_msg_data,
6133 p_api_type => G_API_TYPE);
6134
6135 WHEN OTHERS THEN
6136 --Checklist Header Details Cursor
6137 IF chk_hdr_dtls_csr%ISOPEN
6138 THEN
6139 CLOSE chk_hdr_dtls_csr;
6140 END IF;
6141 --Lease Application Source Details Cursor
6142 IF src_lse_app_dtls_csr%ISOPEN
6143 THEN
6144 CLOSE src_lse_app_dtls_csr;
6145 END IF;
6146 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
6147 p_api_name => l_api_name,
6148 p_pkg_name => G_PKG_NAME,
6149 p_exc_name => 'OTHERS',
6150 x_msg_count => x_msg_count,
6151 x_msg_data => x_msg_data,
6152 p_api_type => G_API_TYPE);
6153 END lease_app_dup;
6154
6155 ------------------------------------------------------------------------------
6156 -- PROCEDURE submit_for_pricing
6157 ------------------------------------------------------------------------------
6158 -- Start of comments
6159 --
6160 -- Procedure Name : submit_for_pricing
6161 -- Description : This procedure submits lease application for pricing.
6162 -- Business Rules : This procedure submits lease application for pricing.
6163 -- Parameters :
6164 -- Version : 1.0
6165 -- History : 20-MAY-2005 PAGARG created
6166 --
6167 -- End of comments
6168 PROCEDURE submit_for_pricing(
6169 p_api_version IN NUMBER,
6170 p_init_msg_list IN VARCHAR2,
6171 x_return_status OUT NOCOPY VARCHAR2,
6172 x_msg_count OUT NOCOPY NUMBER,
6173 x_msg_data OUT NOCOPY VARCHAR2,
6174 p_lapv_rec IN lapv_rec_type,
6175 x_lapv_rec OUT NOCOPY lapv_rec_type) IS
6176
6177 -- Variables Declarations
6178 l_api_version CONSTANT NUMBER DEFAULT G_INIT_VERSION;
6179 l_api_name CONSTANT VARCHAR2(30) DEFAULT 'SUBMIT_FOR_PRICING';
6180 l_return_status VARCHAR2(1);
6181
6182 -- Record/Table Type Declarations
6183 l_lapv_rec lapv_rec_type;
6184 l_lsqv_rec lsqv_rec_type;
6185 x_lsqv_rec lsqv_rec_type;
6186 -- Bug#4741121 - viselvar - Modified - Start
6187 l_parameter_list wf_parameter_list_t;
6188 p_event_name1 VARCHAR2(240) :='oracle.apps.okl.sales.leaseapplication.sent_for_pricing_approval';
6189 p_event_name2 VARCHAR2(240) :='oracle.apps.okl.sales.leaseapplication.pricing_approved';
6190 -- Bug#4741121 - viselvar - Modified - End
6191
6192 --Cursor to obtain the details of lease quote line of Lease App
6193 CURSOR l_lsq_dtls_csr(p_lap_id NUMBER)
6194 IS
6195 SELECT LSQ.ID LSQ_ID
6196 , LSQ.STATUS STATUS
6197 FROM OKL_LEASE_QUOTES_B LSQ
6198 WHERE LSQ.PARENT_OBJECT_CODE = 'LEASEAPP'
6199 AND LSQ.PRIMARY_QUOTE= 'Y'
6200 AND LSQ.PARENT_OBJECT_ID = p_lap_id;
6201 l_lsq_dtls_rec l_lsq_dtls_csr%ROWTYPE;
6202 BEGIN
6203 l_return_status := OKL_API.G_RET_STS_SUCCESS;
6204 L_MODULE := 'OKL.PLSQL.OKL_LEASE_APP_PVT.SUBMIT_FOR_PRICING';
6205
6206 -- check for logging on PROCEDURE level
6207 L_DEBUG_ENABLED := NVL(OKL_DEBUG_PUB.CHECK_LOG_ENABLED, 'N');
6208 IS_DEBUG_PROCEDURE_ON := NVL(OKL_DEBUG_PUB.CHECK_LOG_ON(L_MODULE, FND_LOG.LEVEL_PROCEDURE), FALSE);
6209 -- check for logging on STATEMENT level
6210 IS_DEBUG_STATEMENT_ON := NVL(OKL_DEBUG_PUB.CHECK_LOG_ON(L_MODULE, FND_LOG.LEVEL_STATEMENT), FALSE);
6211
6212 -- call START_ACTIVITY to create savepoint, check compatibility
6213 -- and initialize message list
6214 l_return_status := OKL_API.START_ACTIVITY(
6215 p_api_name => l_api_name
6216 ,p_pkg_name => G_PKG_NAME
6217 ,p_init_msg_list => p_init_msg_list
6218 ,l_api_version => l_api_version
6219 ,p_api_version => p_api_version
6220 ,p_api_type => G_API_TYPE
6221 ,x_return_status => l_return_status);
6222
6223 -- check if activity started successfully
6224 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
6225 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6226 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
6227 RAISE OKL_API.G_EXCEPTION_ERROR;
6228 END IF;
6229
6230 l_lapv_rec := p_lapv_rec;
6231
6232 -- Bug#4741121 - viselvar - Modified - Start
6233 -- raise the business event passing the Lease Application id added to the parameter list
6234 wf_event.addparametertolist('LAPP_ID'
6235 ,p_lapv_rec.id
6236 ,l_parameter_list);
6237
6238 okl_wf_pvt.raise_event( p_api_version => p_api_version
6239 ,p_init_msg_list => p_init_msg_list
6240 ,x_return_status => l_return_status
6241 ,x_msg_count => x_msg_count
6242 ,x_msg_data => x_msg_data
6243 ,p_event_name => p_event_name1
6244 ,p_parameters => l_parameter_list);
6245
6246 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
6247 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6248 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
6249 RAISE OKL_API.G_EXCEPTION_ERROR;
6250 END IF;
6251 -- Bug#4741121 - viselvar - Modified - End
6252
6253 --Populate Lease Application rec with the values from database.
6254 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
6255 THEN
6256 OKL_DEBUG_PUB.LOG_DEBUG(
6257 FND_LOG.LEVEL_PROCEDURE
6258 ,L_MODULE
6259 ,'begin debug call POPULATE_LEASE_APP');
6260 END IF;
6261
6262 POPULATE_LEASE_APP(
6263 p_api_version => p_api_version
6264 ,p_init_msg_list => OKL_API.G_FALSE
6265 ,x_return_status => l_return_status
6266 ,x_msg_count => x_msg_count
6267 ,x_msg_data => x_msg_data
6268 ,p_lap_id => l_lapv_rec.id
6269 ,x_lapv_rec => x_lapv_rec
6270 ,x_lsqv_rec => x_lsqv_rec);
6271
6272 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
6273 THEN
6274 OKL_DEBUG_PUB.LOG_DEBUG(
6275 FND_LOG.LEVEL_PROCEDURE
6276 ,L_MODULE
6277 ,'end debug call POPULATE_LEASE_APP');
6278 END IF;
6279
6280 -- write to log
6281 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
6282 OKL_DEBUG_PUB.LOG_DEBUG(
6283 FND_LOG.LEVEL_STATEMENT
6284 ,L_MODULE || ' Result of POPULATE_LEASE_APP'
6285 ,'l_return_status ' || l_return_status);
6286 END IF; -- end of statement level debug
6287
6288 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
6289 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6290 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
6291 RAISE OKL_API.G_EXCEPTION_ERROR;
6292 END IF;
6293
6294 l_lapv_rec := x_lapv_rec;
6295 l_lsqv_rec := x_lsqv_rec;
6296
6297 IF(l_lapv_rec.application_status = 'PR-COMPLETE')
6298 THEN
6299 --Validate Lease Application and if valid then update the status to
6300 --Pricing Submitted
6301 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
6302 THEN
6303 OKL_DEBUG_PUB.LOG_DEBUG(
6304 FND_LOG.LEVEL_PROCEDURE
6305 ,L_MODULE
6306 ,'begin debug call LEASE_APP_VAL');
6307 END IF;
6308
6309 LEASE_APP_VAL(
6310 p_api_version => p_api_version
6311 ,p_init_msg_list => OKL_API.G_FALSE
6312 ,x_return_status => l_return_status
6313 ,x_msg_count => x_msg_count
6314 ,x_msg_data => x_msg_data
6315 ,p_lapv_rec => l_lapv_rec
6316 ,p_lsqv_rec => l_lsqv_rec);
6317
6318 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
6319 THEN
6320 OKL_DEBUG_PUB.LOG_DEBUG(
6321 FND_LOG.LEVEL_PROCEDURE
6322 ,L_MODULE
6323 ,'end debug call LEASE_APP_VAL');
6324 END IF;
6325
6326 -- write to log
6327 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
6328 OKL_DEBUG_PUB.LOG_DEBUG(
6329 FND_LOG.LEVEL_STATEMENT
6330 ,L_MODULE || ' Result of LEASE_APP_VAL'
6331 ,'l_return_status ' || l_return_status);
6332 END IF; -- end of statement level debug
6333
6334 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
6335 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6336 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
6337 RAISE OKL_API.G_EXCEPTION_ERROR;
6338 END IF;
6339
6340 --set the status of Lease Application to Pricing Submitted
6341 l_lapv_rec.application_status := 'PR-SUBMITTED';
6342
6343 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
6344 THEN
6345 OKL_DEBUG_PUB.LOG_DEBUG(
6346 FND_LOG.LEVEL_PROCEDURE
6347 ,L_MODULE
6348 ,'begin debug call SET_LEASE_APP_STATUS');
6349 END IF;
6350
6351 SET_LEASE_APP_STATUS(
6352 p_api_version => p_api_version
6353 ,p_init_msg_list => OKL_API.G_FALSE
6354 ,p_lap_id => l_lapv_rec.id
6355 ,p_lap_status => l_lapv_rec.application_status
6356 ,x_return_status => l_return_status
6357 ,x_msg_count => x_msg_count
6358 ,x_msg_data => x_msg_data);
6359
6360 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
6361 THEN
6362 OKL_DEBUG_PUB.LOG_DEBUG(
6363 FND_LOG.LEVEL_PROCEDURE
6364 ,L_MODULE
6365 ,'end debug call SET_LEASE_APP_STATUS');
6366 END IF;
6367
6368 -- write to log
6369 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
6370 OKL_DEBUG_PUB.LOG_DEBUG(
6371 FND_LOG.LEVEL_STATEMENT
6372 ,L_MODULE || ' Result of SET_LEASE_APP_STATUS'
6373 ,'l_return_status ' || l_return_status);
6374 END IF; -- end of statement level debug
6375
6376 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
6377 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6378 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
6379 RAISE OKL_API.G_EXCEPTION_ERROR;
6380 END IF;
6381
6382 --Obtain the details of Lease Quote line of Lease App
6383 OPEN l_lsq_dtls_csr(l_lapv_rec.id);
6384 FETCH l_lsq_dtls_csr INTO l_lsq_dtls_rec;
6385 CLOSE l_lsq_dtls_csr;
6386
6387 --Call the API to submit the lease quote for Pricing Approval
6388 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
6389 THEN
6390 OKL_DEBUG_PUB.LOG_DEBUG(
6391 FND_LOG.LEVEL_PROCEDURE
6392 ,L_MODULE
6393 ,'begin debug call OKL_LEASE_QUOTE_PVT.SUBMIT_LEASE_QTE');
6394 END IF;
6395
6396 OKL_LEASE_QUOTE_PVT.SUBMIT_LEASE_QTE(
6397 p_api_version => p_api_version
6398 ,p_init_msg_list => OKL_API.G_FALSE
6399 ,p_transaction_control => OKL_API.G_TRUE
6400 ,p_quote_id => l_lsq_dtls_rec.lsq_id
6401 ,x_return_status => l_return_status
6402 ,x_msg_count => x_msg_count
6403 ,x_msg_data => x_msg_data);
6404
6405 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
6406 THEN
6407 OKL_DEBUG_PUB.LOG_DEBUG(
6408 FND_LOG.LEVEL_PROCEDURE
6409 ,L_MODULE
6410 ,'end debug call OKL_LEASE_QUOTE_PVT.SUBMIT_LEASE_QTE');
6411 END IF;
6412
6413 -- write to log
6414 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
6415 OKL_DEBUG_PUB.LOG_DEBUG(
6416 FND_LOG.LEVEL_STATEMENT
6417 ,L_MODULE || ' Result of OKL_LEASE_QUOTE_PVT.SUBMIT_LEASE_QTE'
6418 ,'l_return_status ' || l_return_status);
6419 END IF; -- end of statement level debug
6420
6421 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
6422 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6423 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
6424 RAISE OKL_API.G_EXCEPTION_ERROR;
6425 END IF;
6426
6427 --Check if lease quote line of Lease App is in status pricing complete
6428 --then only call the process subsidy pool api
6429 IF(l_lsq_dtls_rec.status = 'PR-COMPLETE')
6430 THEN
6431 --Call the API to process the lease app subsidy pool
6432 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
6433 THEN
6434 OKL_DEBUG_PUB.LOG_DEBUG(
6435 FND_LOG.LEVEL_PROCEDURE
6436 ,L_MODULE
6437 ,'begin debug call OKL_LEASE_QUOTE_PVT.PROCESS_LEASEAPP_SUBSIDY_POOL');
6438 END IF;
6439
6440 OKL_LEASE_QUOTE_SUBPOOL_PVT.PROCESS_LEASEAPP_SUBSIDY_POOL(
6441 p_api_version => p_api_version
6442 ,p_init_msg_list => OKL_API.G_FALSE
6443 ,p_transaction_control => OKL_API.G_TRUE
6444 ,p_leaseapp_id => l_lapv_rec.id
6445 ,p_transaction_reason => 'APPROVE_LEASE_APP_PRICING'
6446 ,p_quote_id => l_lsq_dtls_rec.lsq_id
6447 ,x_return_status => l_return_status
6448 ,x_msg_count => x_msg_count
6449 ,x_msg_data => x_msg_data);
6450
6451 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
6452 THEN
6453 OKL_DEBUG_PUB.LOG_DEBUG(
6454 FND_LOG.LEVEL_PROCEDURE
6455 ,L_MODULE
6456 ,'end debug call OKL_LEASE_QUOTE_PVT.PROCESS_LEASEAPP_SUBSIDY_POOL');
6457 END IF;
6458
6459 -- write to log
6460 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
6461 OKL_DEBUG_PUB.LOG_DEBUG(
6462 FND_LOG.LEVEL_STATEMENT
6463 ,L_MODULE || ' Result of OKL_LEASE_QUOTE_PVT.PROCESS_LEASEAPP_SUBSIDY_POOL'
6464 ,'l_return_status ' || l_return_status);
6465 END IF; -- end of statement level debug
6466
6467 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
6468 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6469 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
6470 RAISE OKL_API.G_EXCEPTION_ERROR;
6471 END IF;
6472 END IF;-- Checking Lease Quote status for call to process subsidy pool api
6473 ELSE
6474 l_return_status := OKL_API.G_RET_STS_ERROR;
6475 OKL_API.SET_MESSAGE(
6476 p_app_name => G_APP_NAME,
6477 p_msg_name => 'OKL_SO_LSE_APP_PR_SUB_FAIL',
6478 p_token1 => 'TEXT',
6479 p_token1_value => l_lapv_rec.reference_number);
6480 END IF;
6481
6482 -- Bug#4741121 - viselvar - Modified - Start
6483 -- raise the business event passing the Lease Application id added to the parameter list
6484
6485 wf_event.addparametertolist('LAPP_ID'
6486 ,p_lapv_rec.id
6487 ,l_parameter_list);
6488
6489 okl_wf_pvt.raise_event( p_api_version => p_api_version
6490 ,p_init_msg_list => p_init_msg_list
6491 ,x_return_status => l_return_status
6492 ,x_msg_count => x_msg_count
6493 ,x_msg_data => x_msg_data
6494 ,p_event_name => p_event_name2
6495 ,p_parameters => l_parameter_list);
6496
6497
6498 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
6499 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6500 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
6501 RAISE OKL_API.G_EXCEPTION_ERROR;
6502 END IF;
6503 -- Bug#4741121 - viselvar - Modified - End
6504
6505 x_return_status := l_return_status;
6506
6507 OKL_API.END_ACTIVITY(
6508 x_msg_count => x_msg_count
6509 ,x_msg_data => x_msg_data);
6510 EXCEPTION
6511 WHEN OKL_API.G_EXCEPTION_ERROR THEN
6512 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
6513 p_api_name => l_api_name,
6514 p_pkg_name => G_PKG_NAME,
6515 p_exc_name => 'OKL_API.G_RET_STS_ERROR',
6516 x_msg_count => x_msg_count,
6517 x_msg_data => x_msg_data,
6518 p_api_type => G_API_TYPE);
6519
6520 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
6521 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
6522 p_api_name => l_api_name,
6523 p_pkg_name => G_PKG_NAME,
6524 p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
6525 x_msg_count => x_msg_count,
6526 x_msg_data => x_msg_data,
6527 p_api_type => G_API_TYPE);
6528
6529 WHEN OTHERS THEN
6530 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
6531 p_api_name => l_api_name,
6532 p_pkg_name => G_PKG_NAME,
6533 p_exc_name => 'OTHERS',
6534 x_msg_count => x_msg_count,
6535 x_msg_data => x_msg_data,
6536 p_api_type => G_API_TYPE);
6537 END submit_for_pricing;
6538
6539 ------------------------------------------------------------------------------
6540 -- PROCEDURE submit_for_credit
6541 ------------------------------------------------------------------------------
6542 -- Start of comments
6543 --
6544 -- Procedure Name : submit_for_credit
6545 -- Description : This procedure submits lease application for Credit Approval.
6546 -- Business Rules : This procedure submits lease application for Credit Approval.
6547 -- Parameters :
6548 -- Version : 1.0
6549 -- History : 20-MAY-2005 PAGARG created
6550 -- : 23 Dec 2005 PAGARG Bug 4902717 Update the Requested Amount
6551 -- on Credit Application before submitting it for approval
6552 -- : 03 Apr 2006 PAGARG Bug 4872271 Added validation to check
6553 -- appeal allowed period befor submitting for credit approval
6554 -- This validation is needed for Lease App with action APPEAL
6555 -- End of comments
6556 PROCEDURE submit_for_credit(
6557 p_api_version IN NUMBER,
6558 p_init_msg_list IN VARCHAR2,
6559 x_return_status OUT NOCOPY VARCHAR2,
6560 x_msg_count OUT NOCOPY NUMBER,
6561 x_msg_data OUT NOCOPY VARCHAR2,
6562 p_lapv_rec IN lapv_rec_type,
6563 x_lapv_rec OUT NOCOPY lapv_rec_type) IS
6564
6565 -- Variables Declarations
6566 l_api_version CONSTANT NUMBER DEFAULT G_INIT_VERSION;
6567 l_api_name CONSTANT VARCHAR2(30) DEFAULT 'SUBMIT_FOR_CREDIT';
6568 l_return_status VARCHAR2(1);
6569 l_req_amt NUMBER;
6570 l_meaning VARCHAR2(80);
6571
6572 -- Record/Table Type Declarations
6573 l_lapv_rec lapv_rec_type;
6574 l_lsqv_rec lsqv_rec_type;
6575 x_lsqv_rec lsqv_rec_type;
6576 l_crd_req_rec OCM_CREDIT_REQUEST_UPDATE_PUB.credit_request_rec;
6577 -- Bug#4741121 - viselvar - Modified - Start
6578 l_parameter_list wf_parameter_list_t;
6579 p_event_name VARCHAR2(240) :='oracle.apps.okl.sales.leaseapplication.submitted_for_credit_evaluation';
6580 -- Bug#4741121 - viselvar - Modified - End
6581 l_count NUMBER;
6582 l_exp_date DATE;
6583
6584 --Cursor to obtain Credit Request Details
6585 CURSOR acr_dtls_csr(cp_lap_id NUMBER) IS
6586 SELECT CREDIT_REQUEST_ID CREDIT_REQUEST_ID
6587 FROM AR_CMGT_CREDIT_REQUESTS ACR
6588 WHERE ACR.SOURCE_COLUMN3 = 'LEASEAPP' -- Fix for Bug 4749255
6589 AND ACR.SOURCE_COLUMN1 = cp_lap_id;
6590 acr_dtls_rec acr_dtls_csr%ROWTYPE;
6591
6592 --Cursor to obtain the details of lease quote line of Lease App
6593 CURSOR l_lsq_dtls_csr(p_lap_id NUMBER)
6594 IS
6595 SELECT LSQ.ID LSQ_ID
6596 , LSQ.REFERENCE_NUMBER REFERENCE_NUMBER
6597 FROM OKL_LEASE_QUOTES_B LSQ
6598 WHERE LSQ.PARENT_OBJECT_CODE = 'LEASEAPP'
6599 AND LSQ.PRIMARY_QUOTE= 'Y'
6600 AND LSQ.PARENT_OBJECT_ID = p_lap_id;
6601 l_lsq_dtls_rec l_lsq_dtls_csr%ROWTYPE;
6602
6603 --Cursor to check whether a given recommendation is added to given Lease App
6604 CURSOR credit_recom_csr(p_lap_id NUMBER, p_recomm VARCHAR2, p_appeal VARCHAR2) IS
6605 SELECT COUNT(*)
6606 FROM AR_CMGT_CF_RECOMMENDS RCM
6607 , AR_CMGT_CREDIT_REQUESTS CCR
6608 WHERE RCM.CREDIT_REQUEST_ID = CCR.CREDIT_REQUEST_ID
6609 AND CCR.SOURCE_COLUMN3 = 'LEASEAPP'
6610 AND RCM.CREDIT_RECOMMENDATION = NVL(p_recomm, RCM.CREDIT_RECOMMENDATION)
6611 AND NVL(RCM.APPEALED_FLAG, 'N') = NVL(p_appeal, NVL(RCM.APPEALED_FLAG, 'N'))
6612 AND CCR.SOURCE_COLUMN1 = p_lap_id;
6613
6614 --Cursor to obtain appeal period expiration date for a given Lease App
6615 CURSOR appeal_exp_date_csr(p_lap_id NUMBER)
6616 IS
6617 SELECT RCM.RECOMMENDATION_VALUE1 + TRUNC(LAST_UPDATED) APPEAL_EXP_DATE
6618 FROM AR_CMGT_CASE_FOLDERS CCF
6619 , AR_CMGT_CREDIT_REQUESTS CCR
6620 , AR_CMGT_CF_RECOMMENDS RCM
6621 WHERE CCR.CREDIT_REQUEST_ID = CCF.CREDIT_REQUEST_ID
6622 AND CCR.SOURCE_COLUMN3 = 'LEASEAPP'
6623 AND CCF.STATUS = 'CLOSED'
6624 AND RCM.CREDIT_REQUEST_ID = CCR.CREDIT_REQUEST_ID
6625 AND RCM.CREDIT_RECOMMENDATION = 'AUTHORIZE_APPEAL'
6626 AND CCR.SOURCE_COLUMN1 = p_lap_id;
6627
6628 --Cursor to obtain Lease Application Details
6629 CURSOR lse_app_dtls_csr(p_lap_id NUMBER) IS
6630 SELECT LAB.REFERENCE_NUMBER
6631 FROM OKL_LEASE_APPLICATIONS_B LAB
6632 WHERE LAB.ID = p_lap_id;
6633 lse_app_dtls_rec lse_app_dtls_csr%ROWTYPE;
6634 BEGIN
6635 l_return_status := OKL_API.G_RET_STS_SUCCESS;
6636 L_MODULE := 'OKL.PLSQL.OKL_LEASE_APP_PVT.SUBMIT_FOR_CREDIT';
6637
6638 -- check for logging on PROCEDURE level
6639 L_DEBUG_ENABLED := NVL(OKL_DEBUG_PUB.CHECK_LOG_ENABLED, 'N');
6640 IS_DEBUG_PROCEDURE_ON := NVL(OKL_DEBUG_PUB.CHECK_LOG_ON(L_MODULE, FND_LOG.LEVEL_PROCEDURE), FALSE);
6641 -- check for logging on STATEMENT level
6642 IS_DEBUG_STATEMENT_ON := NVL(OKL_DEBUG_PUB.CHECK_LOG_ON(L_MODULE, FND_LOG.LEVEL_STATEMENT), FALSE);
6643
6644 -- call START_ACTIVITY to create savepoint, check compatibility
6645 -- and initialize message list
6646 l_return_status := OKL_API.START_ACTIVITY(
6647 p_api_name => l_api_name
6648 ,p_pkg_name => G_PKG_NAME
6649 ,p_init_msg_list => p_init_msg_list
6650 ,l_api_version => l_api_version
6651 ,p_api_version => p_api_version
6652 ,p_api_type => G_API_TYPE
6653 ,x_return_status => l_return_status);
6654
6655 -- check if activity started successfully
6656 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
6657 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6658 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
6659 RAISE OKL_API.G_EXCEPTION_ERROR;
6660 END IF;
6661
6662 l_lapv_rec := p_lapv_rec;
6663
6664 --Populate Lease Application rec with the values from database.
6665 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
6666 THEN
6667 OKL_DEBUG_PUB.LOG_DEBUG(
6668 FND_LOG.LEVEL_PROCEDURE
6669 ,L_MODULE
6670 ,'begin debug call POPULATE_LEASE_APP');
6671 END IF;
6672
6673 POPULATE_LEASE_APP(
6674 p_api_version => p_api_version
6675 ,p_init_msg_list => OKL_API.G_FALSE
6676 ,x_return_status => l_return_status
6677 ,x_msg_count => x_msg_count
6678 ,x_msg_data => x_msg_data
6679 ,p_lap_id => l_lapv_rec.id
6680 ,x_lapv_rec => x_lapv_rec
6681 ,x_lsqv_rec => x_lsqv_rec);
6682
6683 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
6684 THEN
6685 OKL_DEBUG_PUB.LOG_DEBUG(
6686 FND_LOG.LEVEL_PROCEDURE
6687 ,L_MODULE
6688 ,'end debug call POPULATE_LEASE_APP');
6689 END IF;
6690
6691 -- write to log
6692 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
6693 OKL_DEBUG_PUB.LOG_DEBUG(
6694 FND_LOG.LEVEL_STATEMENT
6695 ,L_MODULE || ' Result of POPULATE_LEASE_APP'
6696 ,'l_return_status ' || l_return_status);
6697 END IF; -- end of statement level debug
6698
6699 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
6700 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6701 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
6702 RAISE OKL_API.G_EXCEPTION_ERROR;
6703 END IF;
6704
6705 l_lapv_rec := x_lapv_rec;
6706 l_lsqv_rec := x_lsqv_rec;
6707 --Validate if Lease App is appealed Lease Application then whether parent
6708 --Lease App is allowed for appeal and appeal period has not expired
6709 IF(l_lapv_rec.action = 'APPEAL')
6710 THEN
6711 OPEN lse_app_dtls_csr(l_lapv_rec.parent_leaseapp_id);
6712 FETCH lse_app_dtls_csr INTO lse_app_dtls_rec;
6713 CLOSE lse_app_dtls_csr;
6714 --Check if AUTHORIZE_APPEAL recommendation is added for parent lease app
6715 OPEN credit_recom_csr(l_lapv_rec.parent_leaseapp_id, 'AUTHORIZE_APPEAL', NULL);
6716 FETCH credit_recom_csr INTO l_count;
6717 CLOSE credit_recom_csr;
6718 IF(l_count = 1)
6719 THEN
6720 OPEN appeal_exp_date_csr(l_lapv_rec.parent_leaseapp_id);
6721 FETCH appeal_exp_date_csr INTO l_exp_date;
6722 CLOSE appeal_exp_date_csr;
6723 IF(l_exp_Date IS NULL OR l_exp_Date < TRUNC(SYSDATE))
6724 THEN
6725 l_return_status := OKL_API.G_RET_STS_ERROR;
6726 OKL_API.SET_MESSAGE(
6727 p_app_name => G_APP_NAME,
6728 p_msg_name => 'OKL_SO_LSE_APP_APPEAL_PRD_EXP',
6729 p_token1 => 'TEXT',
6730 p_token1_value => lse_app_dtls_rec.reference_number);
6731 RAISE OKL_API.G_EXCEPTION_ERROR;
6732 END IF;
6733 ELSE
6734 l_return_status := OKL_API.G_RET_STS_ERROR;
6735 OKL_API.SET_MESSAGE(
6736 p_app_name => G_APP_NAME,
6737 p_msg_name => 'OKL_SO_LSE_APP_APPEAL_AUTH_ERR',
6738 p_token1 => 'TEXT',
6739 p_token1_value => lse_app_dtls_rec.reference_number);
6740 RAISE OKL_API.G_EXCEPTION_ERROR;
6741 END IF;
6742 --Check if atleast one of the recommendations of parent lease app is marked
6743 --for appeal
6744 OPEN credit_recom_csr(l_lapv_rec.parent_leaseapp_id, NULL, 'Y');
6745 FETCH credit_recom_csr INTO l_count;
6746 CLOSE credit_recom_csr;
6747 IF(l_count = 0)
6748 THEN
6749 l_return_status := OKL_API.G_RET_STS_ERROR;
6750 OKL_API.SET_MESSAGE(
6751 p_app_name => G_APP_NAME,
6752 p_msg_name => 'OKL_SO_LSE_APP_APL_RECOM_ERR');
6753 RAISE OKL_API.G_EXCEPTION_ERROR;
6754 END IF;
6755 END IF;--Check for Appeal validity
6756
6757 IF(l_lapv_rec.application_status IN ('PR-ACCEPTED'))
6758 THEN
6759 --Validate Lease Application and if valid then update the status to
6760 --Pricing Accepted
6761 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
6762 THEN
6763 OKL_DEBUG_PUB.LOG_DEBUG(
6764 FND_LOG.LEVEL_PROCEDURE
6765 ,L_MODULE
6766 ,'begin debug call LEASE_APP_VAL');
6767 END IF;
6768
6769 LEASE_APP_VAL(
6770 p_api_version => p_api_version
6771 ,p_init_msg_list => OKL_API.G_FALSE
6772 ,x_return_status => l_return_status
6773 ,x_msg_count => x_msg_count
6774 ,x_msg_data => x_msg_data
6775 ,p_lapv_rec => l_lapv_rec
6776 ,p_lsqv_rec => l_lsqv_rec);
6777
6778 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
6779 THEN
6780 OKL_DEBUG_PUB.LOG_DEBUG(
6781 FND_LOG.LEVEL_PROCEDURE
6782 ,L_MODULE
6783 ,'end debug call LEASE_APP_VAL');
6784 END IF;
6785
6786 -- write to log
6787 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
6788 OKL_DEBUG_PUB.LOG_DEBUG(
6789 FND_LOG.LEVEL_STATEMENT
6790 ,L_MODULE || ' Result of LEASE_APP_VAL'
6791 ,'l_return_status ' || l_return_status);
6792 END IF; -- end of statement level debug
6793
6794 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
6795 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6796 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
6797 RAISE OKL_API.G_EXCEPTION_ERROR;
6798 END IF;
6799
6800 OPEN acr_dtls_csr(l_lapv_rec.id);
6801 FETCH acr_dtls_csr INTO acr_dtls_rec;
6802 CLOSE acr_dtls_csr;
6803
6804 --Obtain the details of Lease Quote line of Lease App
6805 OPEN l_lsq_dtls_csr(l_lapv_rec.id);
6806 FETCH l_lsq_dtls_csr INTO l_lsq_dtls_rec;
6807 CLOSE l_lsq_dtls_csr;
6808
6809 l_req_amt := get_financed_amount(l_lsq_dtls_rec.lsq_id);
6810 IF(l_req_amt <= 0)
6811 THEN
6812 l_return_status := OKL_API.G_RET_STS_ERROR;
6813 OKL_API.SET_MESSAGE(
6814 p_app_name => G_APP_NAME,
6815 p_msg_name => 'OKL_AMOUNT_GREATER_THAN_ZERO');
6816 RAISE OKL_API.G_EXCEPTION_ERROR;
6817 ELSE
6818 -- Bug 4902717 PAGARG Update the Requested Amount on Credit Application
6819 --before submitting it for approval
6820 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
6821 THEN
6822 OKL_DEBUG_PUB.LOG_DEBUG(
6823 FND_LOG.LEVEL_PROCEDURE
6824 ,L_MODULE
6825 ,'begin debug call OCM_CREDIT_REQUEST_UPDATE_PUB.GET_CREDIT_REQUEST_REC');
6826 END IF;
6827 --get the existing credit request data
6828 OCM_CREDIT_REQUEST_UPDATE_PUB.GET_CREDIT_REQUEST_REC(
6829 p_credit_request_id => acr_dtls_rec.credit_request_id
6830 ,p_return_status => l_return_status
6831 ,p_error_msg => x_msg_data
6832 ,p_credit_request_rec => l_crd_req_rec);
6833
6834 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
6835 THEN
6836 OKL_DEBUG_PUB.LOG_DEBUG(
6837 FND_LOG.LEVEL_PROCEDURE
6838 ,L_MODULE
6839 ,'end debug call OCM_CREDIT_REQUEST_UPDATE_PUB.GET_CREDIT_REQUEST_REC');
6840 END IF;
6841
6842 -- write to log
6843 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
6844 OKL_DEBUG_PUB.LOG_DEBUG(
6845 FND_LOG.LEVEL_STATEMENT
6846 ,L_MODULE || ' Result of OCM_CREDIT_REQUEST_UPDATE_PUB.GET_CREDIT_REQUEST_REC'
6847 ,' result status ' || l_return_status);
6848 END IF; -- end of statement level debug
6849
6850 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
6851 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6852 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
6853 RAISE OKL_API.G_EXCEPTION_ERROR;
6854 END IF;
6855
6856 --assign the new values
6857 l_crd_req_rec.requested_amount := l_req_amt;
6858 l_crd_req_rec.trx_amount := l_req_amt; -- added for bug 6596860
6859
6860 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
6861 THEN
6862 OKL_DEBUG_PUB.LOG_DEBUG(
6863 FND_LOG.LEVEL_PROCEDURE
6864 ,L_MODULE
6865 ,'begin debug call OCM_CREDIT_REQUEST_UPDATE_PUB.UPDATE_CREDIT_REQUEST');
6866 END IF;
6867 --update the credit application data
6868 OCM_CREDIT_REQUEST_UPDATE_PUB.UPDATE_CREDIT_REQUEST(
6869 p_api_version => l_api_version,
6870 p_init_msg_list => OKL_API.G_FALSE,
6871 p_commit => NULL,
6872 p_validation_level => NULL,
6873 x_return_status => l_return_status,
6874 x_msg_count => x_msg_count,
6875 x_msg_data => x_msg_data,
6876 p_credit_request_rec => l_crd_req_rec);
6877
6878 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
6879 THEN
6880 OKL_DEBUG_PUB.LOG_DEBUG(
6881 FND_LOG.LEVEL_PROCEDURE
6882 ,L_MODULE
6883 ,'end debug call OCM_CREDIT_REQUEST_UPDATE_PUB.UPDATE_CREDIT_REQUEST');
6884 END IF;
6885
6886 -- write to log
6887 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
6888 OKL_DEBUG_PUB.LOG_DEBUG(
6889 FND_LOG.LEVEL_STATEMENT
6890 ,L_MODULE || ' Result of OCM_CREDIT_REQUEST_UPDATE_PUB.UPDATE_CREDIT_REQUEST'
6891 ,' result status ' || l_return_status);
6892 END IF; -- end of statement level debug
6893
6894 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
6895 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6896 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
6897 RAISE OKL_API.G_EXCEPTION_ERROR;
6898 END IF;
6899 END IF;
6900
6901 --Trigger the Credit Approval workflow
6902 --Bug#4741121 - viselvar - Modified - Start
6903 --raise the business event passing the Lease Application id added to the parameter list
6904 wf_event.addparametertolist('LAPP_ID'
6905 ,x_lapv_rec.id
6906 ,l_parameter_list);
6907 okl_wf_pvt.raise_event(p_api_version => p_api_version
6908 ,p_init_msg_list => p_init_msg_list
6909 ,x_return_status => l_return_status
6910 ,x_msg_count => x_msg_count
6911 ,x_msg_data => x_msg_data
6912 ,p_event_name => p_event_name
6913 ,p_parameters => l_parameter_list);
6914
6915 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
6916 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6917 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
6918 RAISE OKL_API.G_EXCEPTION_ERROR;
6919 END IF;
6920 -- Bug#4741121 - viselvar - Modified - End
6921
6922 --11/05/05 SNAMBIAR - we should not update other teams table like this
6923 --changing the update statement and calling the API.
6924 --This API will take care of the business event also.
6925 /* UPDATE AR_CMGT_CREDIT_REQUESTS
6926 SET status = 'SUBMIT'
6927 WHERE credit_request_id= acr_dtls_rec.credit_request_id;
6928
6929 AR_CMGT_WF_ENGINE.START_WORKFLOW(
6930 acr_dtls_rec.credit_request_id
6931 ,'SUBMIT');
6932 */
6933 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
6934 THEN
6935 OKL_DEBUG_PUB.LOG_DEBUG(
6936 FND_LOG.LEVEL_PROCEDURE
6937 ,L_MODULE
6938 ,'begin debug call OCM_CREDIT_REQUEST_UPDATE_PUB.UPDATE_CREDIT_REQUEST_STATUS');
6939 END IF;
6940
6941 OCM_CREDIT_REQUEST_UPDATE_PUB.UPDATE_CREDIT_REQUEST_STATUS(
6942 p_api_version => l_api_version
6943 ,p_init_msg_list => OKL_API.G_FALSE
6944 ,p_commit => OKL_API.G_FALSE
6945 ,p_validation_level => FND_API.G_VALID_LEVEL_FULL
6946 ,x_return_status => l_return_status
6947 ,x_msg_count => x_msg_count
6948 ,x_msg_data => x_msg_data
6949 ,p_credit_request_id => acr_dtls_rec.credit_request_id
6950 ,p_credit_request_status => 'SUBMIT');
6951
6952 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
6953 THEN
6954 OKL_DEBUG_PUB.LOG_DEBUG(
6955 FND_LOG.LEVEL_PROCEDURE
6956 ,L_MODULE
6957 ,'end debug call OCM_CREDIT_REQUEST_UPDATE_PUB.UPDATE_CREDIT_REQUEST_STATUS');
6958 END IF;
6959
6960 -- write to log
6961 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
6962 OKL_DEBUG_PUB.LOG_DEBUG(
6963 FND_LOG.LEVEL_STATEMENT
6964 ,L_MODULE || ' Result of OCM_CREDIT_REQUEST_UPDATE_PUB.UPDATE_CREDIT_REQUEST_STATUS'
6965 ,'l_return_status ' || l_return_status);
6966 END IF; -- end of statement level debug
6967
6968 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
6969 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6970 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
6971 RAISE OKL_API.G_EXCEPTION_ERROR;
6972 END IF;
6973
6974 l_lapv_rec.application_status := 'CR-SUBMITTED';
6975
6976 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
6977 THEN
6978 OKL_DEBUG_PUB.LOG_DEBUG(
6979 FND_LOG.LEVEL_PROCEDURE
6980 ,L_MODULE
6981 ,'begin debug call SET_LEASE_APP_STATUS');
6982 END IF;
6983
6984 SET_LEASE_APP_STATUS(
6985 p_api_version => p_api_version
6986 ,p_init_msg_list => OKL_API.G_FALSE
6987 ,p_lap_id => l_lapv_rec.id
6988 ,p_lap_status => l_lapv_rec.application_status
6989 ,x_return_status => l_return_status
6990 ,x_msg_count => x_msg_count
6991 ,x_msg_data => x_msg_data);
6992
6993 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
6994 THEN
6995 OKL_DEBUG_PUB.LOG_DEBUG(
6996 FND_LOG.LEVEL_PROCEDURE
6997 ,L_MODULE
6998 ,'end debug call SET_LEASE_APP_STATUS');
6999 END IF;
7000
7001 -- write to log
7002 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
7003 OKL_DEBUG_PUB.LOG_DEBUG(
7004 FND_LOG.LEVEL_STATEMENT
7005 ,L_MODULE || ' Result of SET_LEASE_APP_STATUS'
7006 ,'l_return_status ' || l_return_status);
7007 END IF; -- end of statement level debug
7008
7009 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
7010 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7011 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
7012 RAISE OKL_API.G_EXCEPTION_ERROR;
7013 END IF;
7014 ELSE
7015 l_return_status := OKL_API.G_RET_STS_ERROR;
7016 l_meaning := get_lookup_meaning('OKL_LEASE_APP_STATUS', 'CR-SUBMITTED');
7017 OKL_API.SET_MESSAGE(
7018 p_app_name => G_APP_NAME,
7019 p_msg_name => 'OKL_SO_LSE_APP_ACTION_ERR',
7020 p_token1 => 'TEXT',
7021 p_token1_value => l_lapv_rec.reference_number,
7022 p_token2 => 'STATUS',
7023 p_token2_value => l_lapv_rec.application_status,
7024 p_token3 => 'ACTION',
7025 p_token3_value => l_meaning);
7026 RAISE OKL_API.G_EXCEPTION_ERROR;
7027 END IF;
7028
7029 x_return_status := l_return_status;
7030
7031 OKL_API.END_ACTIVITY(
7032 x_msg_count => x_msg_count
7033 ,x_msg_data => x_msg_data);
7034 EXCEPTION
7035 WHEN OKL_API.G_EXCEPTION_ERROR THEN
7036 --Credit Request Details Cursor
7037 IF acr_dtls_csr%ISOPEN
7038 THEN
7039 CLOSE acr_dtls_csr;
7040 END IF;
7041 --Lease Quote Details Cursor
7042 IF l_lsq_dtls_csr%ISOPEN
7043 THEN
7044 CLOSE l_lsq_dtls_csr;
7045 END IF;
7046 --Check if Credit Recommendation cursor is open
7047 IF credit_recom_csr%ISOPEN
7048 THEN
7049 CLOSE credit_recom_csr;
7050 END IF;
7051 --Check if Appeal Exp Date cursor is open
7052 IF appeal_exp_date_csr%ISOPEN
7053 THEN
7054 CLOSE appeal_exp_date_csr;
7055 END IF;
7056 --Check if Lease App details cursor is open
7057 IF lse_app_dtls_csr%ISOPEN
7058 THEN
7059 CLOSE lse_app_dtls_csr;
7060 END IF;
7061 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
7062 p_api_name => l_api_name,
7063 p_pkg_name => G_PKG_NAME,
7064 p_exc_name => 'OKL_API.G_RET_STS_ERROR',
7065 x_msg_count => x_msg_count,
7066 x_msg_data => x_msg_data,
7067 p_api_type => G_API_TYPE);
7068
7069 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
7070 --Credit Request Details Cursor
7071 IF acr_dtls_csr%ISOPEN
7072 THEN
7073 CLOSE acr_dtls_csr;
7074 END IF;
7075 --Lease Quote Details Cursor
7076 IF l_lsq_dtls_csr%ISOPEN
7077 THEN
7078 CLOSE l_lsq_dtls_csr;
7079 END IF;
7080 --Check if Credit Recommendation cursor is open
7081 IF credit_recom_csr%ISOPEN
7082 THEN
7083 CLOSE credit_recom_csr;
7084 END IF;
7085 --Check if Appeal Exp Date cursor is open
7086 IF appeal_exp_date_csr%ISOPEN
7087 THEN
7088 CLOSE appeal_exp_date_csr;
7089 END IF;
7090 --Check if Lease App details cursor is open
7091 IF lse_app_dtls_csr%ISOPEN
7092 THEN
7093 CLOSE lse_app_dtls_csr;
7094 END IF;
7095 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
7096 p_api_name => l_api_name,
7097 p_pkg_name => G_PKG_NAME,
7098 p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
7099 x_msg_count => x_msg_count,
7100 x_msg_data => x_msg_data,
7101 p_api_type => G_API_TYPE);
7102
7103 WHEN OTHERS THEN
7104 --Credit Request Details Cursor
7105 IF acr_dtls_csr%ISOPEN
7106 THEN
7107 CLOSE acr_dtls_csr;
7108 END IF;
7109 --Lease Quote Details Cursor
7110 IF l_lsq_dtls_csr%ISOPEN
7111 THEN
7112 CLOSE l_lsq_dtls_csr;
7113 END IF;
7114 --Check if Credit Recommendation cursor is open
7115 IF credit_recom_csr%ISOPEN
7116 THEN
7117 CLOSE credit_recom_csr;
7118 END IF;
7119 --Check if Appeal Exp Date cursor is open
7120 IF appeal_exp_date_csr%ISOPEN
7121 THEN
7122 CLOSE appeal_exp_date_csr;
7123 END IF;
7124 --Check if Lease App details cursor is open
7125 IF lse_app_dtls_csr%ISOPEN
7126 THEN
7127 CLOSE lse_app_dtls_csr;
7128 END IF;
7129 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
7130 p_api_name => l_api_name,
7131 p_pkg_name => G_PKG_NAME,
7132 p_exc_name => 'OTHERS',
7133 x_msg_count => x_msg_count,
7134 x_msg_data => x_msg_data,
7135 p_api_type => G_API_TYPE);
7136 END submit_for_credit;
7137
7138 ------------------------------------------------------------------------------
7139 -- FUNCTION is_valid_program_agreement
7140 ------------------------------------------------------------------------------
7141 -- Start of comments
7142 --
7143 -- Function Name : is_valid_program_agreement
7144 -- Description : This function returns whether Program Agreement fulfills
7145 -- all eligibility criteria on Lease Application
7146 -- Business Rules : This function returns whether Program Agreement fulfills
7147 -- all eligibility criteria on Lease Application
7148 -- Parameters :
7149 -- Version : 1.0
7150 -- History : 08-JUNE-2005 PAGARG created
7151 --
7152 -- End of comments
7153 FUNCTION is_valid_program_agreement(
7154 p_pgm_agr_id IN NUMBER,
7155 p_lap_id IN NUMBER,
7156 p_eff_from IN DATE)
7157 RETURN VARCHAR2
7158 IS
7159 -- Variables Declarations
7160 l_api_version CONSTANT NUMBER DEFAULT G_INIT_VERSION;
7161 l_api_name CONSTANT VARCHAR2(30) DEFAULT 'IS_VALID_PROGRAM_AGREEMENT';
7162 l_return_status VARCHAR2(1);
7163 l_eligible BOOLEAN;
7164 x_msg_count NUMBER;
7165 x_msg_data VARCHAR2(32767);
7166
7167 -- Record/Table Type Declarations
7168 l_okl_ec_rec OKL_ECC_PUB.okl_ec_rec_type;
7169
7170 --Cursor to obtain Program Agreement Details
7171 CURSOR pgm_agr_dtls_csr(cp_pgm_agr_id NUMBER) IS
7172 SELECT CONTRACT_NUMBER PROGRAM_AGREEMENT
7173 FROM OKC_K_HEADERS_B CHR
7174 WHERE CHR.ID = cp_pgm_agr_id
7175 AND CHR.SCS_CODE = 'PROGRAM';
7176 pgm_agr_dtls_rec pgm_agr_dtls_csr%ROWTYPE;
7177
7178 BEGIN
7179 l_return_status := OKL_API.G_RET_STS_ERROR;
7180 l_eligible := false;
7181 L_MODULE := 'OKL.PLSQL.OKL_LEASE_APP_PVT.IS_VALID_PROGRAM_AGREEMENT';
7182
7183 -- check for logging on PROCEDURE level
7184 L_DEBUG_ENABLED := NVL(OKL_DEBUG_PUB.CHECK_LOG_ENABLED, 'N');
7185 IS_DEBUG_PROCEDURE_ON := NVL(OKL_DEBUG_PUB.CHECK_LOG_ON(L_MODULE, FND_LOG.LEVEL_PROCEDURE), FALSE);
7186 -- check for logging on STATEMENT level
7187 IS_DEBUG_STATEMENT_ON := NVL(OKL_DEBUG_PUB.CHECK_LOG_ON(L_MODULE, FND_LOG.LEVEL_STATEMENT), FALSE);
7188
7189 OPEN pgm_agr_dtls_csr(p_pgm_agr_id);
7190 FETCH pgm_agr_dtls_csr INTO pgm_agr_dtls_rec;
7191 CLOSE pgm_agr_dtls_csr;
7192
7193 l_okl_ec_rec.src_id := p_pgm_agr_id;
7194 l_okl_ec_rec.src_type := 'VENDOR_PROGRAM';
7195 l_okl_ec_rec.validation_mode := 'LOV';
7196 l_okl_ec_rec.source_name := pgm_agr_dtls_rec.program_agreement;
7197
7198 IF(p_lap_id IS NOT NULL AND p_lap_id <> OKL_API.G_MISS_NUM)
7199 THEN
7200 --Populate the EC rec
7201 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
7202 THEN
7203 OKL_DEBUG_PUB.LOG_DEBUG(
7204 FND_LOG.LEVEL_PROCEDURE
7205 ,L_MODULE
7206 ,'begin debug call POPULATE_EC_REC');
7207 END IF;
7208
7209 POPULATE_EC_REC(
7210 p_api_version => l_api_version
7211 ,p_init_msg_list => OKL_API.G_FALSE
7212 ,p_lap_id => p_lap_id
7213 ,x_return_status => l_return_status
7214 ,x_msg_count => x_msg_count
7215 ,x_msg_data => x_msg_data
7216 ,lx_okl_ec_rec => l_okl_ec_rec);
7217
7218 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
7219 THEN
7220 OKL_DEBUG_PUB.LOG_DEBUG(
7221 FND_LOG.LEVEL_PROCEDURE
7222 ,L_MODULE
7223 ,'end debug call POPULATE_EC_REC');
7224 END IF;
7225
7226 -- write to log
7227 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
7228 OKL_DEBUG_PUB.LOG_DEBUG(
7229 FND_LOG.LEVEL_STATEMENT
7230 ,L_MODULE || ' Result of POPULATE_EC_REC'
7231 ,'l_return_status ' || l_return_status);
7232 END IF; -- end of statement level debug
7233
7234 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
7235 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7236 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
7237 RAISE OKL_API.G_EXCEPTION_ERROR;
7238 END IF;
7239 ELSE
7240 l_okl_ec_rec.target_eff_from := p_eff_from;
7241 END IF;
7242
7243 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
7244 THEN
7245 OKL_DEBUG_PUB.LOG_DEBUG(
7246 FND_LOG.LEVEL_PROCEDURE
7247 ,L_MODULE
7248 ,'begin debug call OKL_ECC_PUB.EVALUATE_ELIGIBILITY_CRITERIA');
7249 END IF;
7250
7251 OKL_ECC_PUB.EVALUATE_ELIGIBILITY_CRITERIA(
7252 p_api_version => l_api_version
7253 ,p_init_msg_list => OKL_API.G_FALSE
7254 ,x_return_status => l_return_status
7255 ,x_msg_count => x_msg_count
7256 ,x_msg_data => x_msg_data
7257 ,p_okl_ec_rec => l_okl_ec_rec
7258 ,x_eligible => l_eligible);
7259
7260 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
7261 THEN
7262 OKL_DEBUG_PUB.LOG_DEBUG(
7263 FND_LOG.LEVEL_PROCEDURE
7264 ,L_MODULE
7265 ,'end debug call OKL_ECC_PUB.EVALUATE_ELIGIBILITY_CRITERIA');
7266 END IF;
7267
7268 -- write to log
7269 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
7270 OKL_DEBUG_PUB.LOG_DEBUG(
7271 FND_LOG.LEVEL_STATEMENT
7272 ,L_MODULE || ' Result of OKL_ECC_PUB.EVALUATE_ELIGIBILITY_CRITERIA'
7273 ,'l_return_status ' || l_return_status);
7274 END IF; -- end of statement level debug
7275
7276 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
7277 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7278 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
7279 RAISE OKL_API.G_EXCEPTION_ERROR;
7280 END IF;
7281
7282 IF(l_return_status = OKL_API.G_RET_STS_SUCCESS AND l_eligible)
7283 THEN
7284 l_return_status := OKL_API.G_RET_STS_SUCCESS;
7285 ELSE
7286 l_return_status := OKL_API.G_RET_STS_ERROR;
7287 END IF;
7288
7289 RETURN l_return_status;
7290 EXCEPTION
7291 WHEN OKL_API.G_EXCEPTION_ERROR THEN
7292 --Program Agreement Details Cursor
7293 IF pgm_agr_dtls_csr%ISOPEN
7294 THEN
7295 CLOSE pgm_agr_dtls_csr;
7296 END IF;
7297 l_return_status := OKL_API.HANDLE_EXCEPTIONS(
7298 p_api_name => l_api_name,
7299 p_pkg_name => G_PKG_NAME,
7300 p_exc_name => 'OKL_API.G_RET_STS_ERROR',
7301 x_msg_count => x_msg_count,
7302 x_msg_data => x_msg_data,
7303 p_api_type => G_API_TYPE);
7304
7305 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
7306 --Program Agreement Details Cursor
7307 IF pgm_agr_dtls_csr%ISOPEN
7308 THEN
7309 CLOSE pgm_agr_dtls_csr;
7310 END IF;
7311 l_return_status := OKL_API.HANDLE_EXCEPTIONS(
7312 p_api_name => l_api_name,
7313 p_pkg_name => G_PKG_NAME,
7314 p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
7315 x_msg_count => x_msg_count,
7316 x_msg_data => x_msg_data,
7317 p_api_type => G_API_TYPE);
7318
7319 WHEN OTHERS THEN
7320 --Program Agreement Details Cursor
7321 IF pgm_agr_dtls_csr%ISOPEN
7322 THEN
7323 CLOSE pgm_agr_dtls_csr;
7324 END IF;
7325 l_return_status := OKL_API.HANDLE_EXCEPTIONS(
7326 p_api_name => l_api_name,
7327 p_pkg_name => G_PKG_NAME,
7328 p_exc_name => 'OTHERS',
7329 x_msg_count => x_msg_count,
7330 x_msg_data => x_msg_data,
7331 p_api_type => G_API_TYPE);
7332 END is_valid_program_agreement;
7333
7334 ------------------------------------------------------------------------------
7335 -- FUNCTION is_valid_leaseapp_template
7336 ------------------------------------------------------------------------------
7337 -- Start of comments
7338 --
7339 -- Function Name : is_valid_leaseapp_template
7340 -- Description : This function returns whether Lease Application Template
7341 -- fulfills all eligibility criteria on Lease Application
7342 -- Business Rules : This function returns whether Program Agreement fulfills
7343 -- all eligibility criteria on Lease Application
7344 -- Parameters :
7345 -- Version : 1.0
7346 -- History : 08-JUNE-2005 PAGARG created
7347 --
7348 -- End of comments
7349 FUNCTION is_valid_leaseapp_template(
7350 p_lat_id IN NUMBER,
7351 p_lap_id IN NUMBER,
7352 p_eff_from IN DATE)
7353 RETURN VARCHAR2
7354 IS
7355 -- Variables Declarations
7356 l_api_version CONSTANT NUMBER DEFAULT G_INIT_VERSION;
7357 l_api_name CONSTANT VARCHAR2(30) DEFAULT 'IS_VALID_LEASEAPP_TEMPLATE';
7358 l_return_status VARCHAR2(1);
7359 l_eligible BOOLEAN;
7360 x_msg_count NUMBER;
7361 x_msg_data VARCHAR2(32767);
7362
7363 -- Record/Table Type Declarations
7364 l_okl_ec_rec OKL_ECC_PUB.okl_ec_rec_type;
7365
7366 --Cursor to obtain Lease Application Template Details
7367 CURSOR lat_dtls_csr(cp_lat_id NUMBER) IS
7368 SELECT LAT.NAME LAT_NUMBER
7369 FROM OKL_LEASEAPP_TEMPLATES LAT
7370 ,OKL_LEASEAPP_TEMPL_VERSIONS_V LATV
7371 WHERE LATV.LEASEAPP_TEMPLATE_ID = LAT.ID
7372 AND LATV.ID = cp_lat_id;
7373 lat_dtls_rec lat_dtls_csr%ROWTYPE;
7374
7375 BEGIN
7376 l_return_status := OKL_API.G_RET_STS_ERROR;
7377 l_eligible := false;
7378 L_MODULE := 'OKL.PLSQL.OKL_LEASE_APP_PVT.IS_VALID_LEASEAPP_TEMPLATE';
7379
7380 -- check for logging on PROCEDURE level
7381 L_DEBUG_ENABLED := NVL(OKL_DEBUG_PUB.CHECK_LOG_ENABLED, 'N');
7382 IS_DEBUG_PROCEDURE_ON := NVL(OKL_DEBUG_PUB.CHECK_LOG_ON(L_MODULE, FND_LOG.LEVEL_PROCEDURE), FALSE);
7383 -- check for logging on STATEMENT level
7384 IS_DEBUG_STATEMENT_ON := NVL(OKL_DEBUG_PUB.CHECK_LOG_ON(L_MODULE, FND_LOG.LEVEL_STATEMENT), FALSE);
7385
7386 IF(p_lat_id IS NOT NULL
7387 AND p_lat_id <> OKL_API.G_MISS_NUM)
7388 THEN
7389 OPEN lat_dtls_csr(p_lat_id);
7390 FETCH lat_dtls_csr INTO lat_dtls_rec;
7391 CLOSE lat_dtls_csr;
7392 l_okl_ec_rec.src_id := p_lat_id;
7393 l_okl_ec_rec.src_type := 'LEASE_APPL_TEMPLATE';
7394 l_okl_ec_rec.validation_mode := 'LOV';
7395 l_okl_ec_rec.source_name := lat_dtls_rec.lat_number;
7396 END IF;
7397
7398 IF(p_lap_id IS NOT NULL
7399 AND p_lap_id <> OKL_API.G_MISS_NUM)
7400 THEN
7401 --Populate the EC rec
7402 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
7403 THEN
7404 OKL_DEBUG_PUB.LOG_DEBUG(
7405 FND_LOG.LEVEL_PROCEDURE
7406 ,L_MODULE
7407 ,'begin debug call POPULATE_EC_REC');
7408 END IF;
7409
7410 POPULATE_EC_REC(
7411 p_api_version => l_api_version
7412 ,p_init_msg_list => OKL_API.G_FALSE
7413 ,p_lap_id => p_lap_id
7414 ,x_return_status => l_return_status
7415 ,x_msg_count => x_msg_count
7416 ,x_msg_data => x_msg_data
7417 ,lx_okl_ec_rec => l_okl_ec_rec);
7418
7419 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
7420 THEN
7421 OKL_DEBUG_PUB.LOG_DEBUG(
7422 FND_LOG.LEVEL_PROCEDURE
7423 ,L_MODULE
7424 ,'end debug call POPULATE_EC_REC');
7425 END IF;
7426
7427 -- write to log
7428 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
7429 OKL_DEBUG_PUB.LOG_DEBUG(
7430 FND_LOG.LEVEL_STATEMENT
7431 ,L_MODULE || ' Result of POPULATE_EC_REC'
7432 ,'l_return_status ' || l_return_status);
7433 END IF; -- end of statement level debug
7434
7435 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
7436 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7437 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
7438 RAISE OKL_API.G_EXCEPTION_ERROR;
7439 END IF;
7440 ELSE
7441 l_okl_ec_rec.target_eff_from := p_eff_from;
7442 END IF;
7443
7444 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
7445 THEN
7446 OKL_DEBUG_PUB.LOG_DEBUG(
7447 FND_LOG.LEVEL_PROCEDURE
7448 ,L_MODULE
7449 ,'begin debug call OKL_ECC_PUB.EVALUATE_ELIGIBILITY_CRITERIA');
7450 END IF;
7451
7452 OKL_ECC_PUB.EVALUATE_ELIGIBILITY_CRITERIA(
7453 p_api_version => l_api_version
7454 ,p_init_msg_list => OKL_API.G_FALSE
7455 ,x_return_status => l_return_status
7456 ,x_msg_count => x_msg_count
7457 ,x_msg_data => x_msg_data
7458 ,p_okl_ec_rec => l_okl_ec_rec
7459 ,x_eligible => l_eligible);
7460
7461 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
7462 THEN
7463 OKL_DEBUG_PUB.LOG_DEBUG(
7464 FND_LOG.LEVEL_PROCEDURE
7465 ,L_MODULE
7466 ,'end debug call OKL_ECC_PUB.EVALUATE_ELIGIBILITY_CRITERIA');
7467 END IF;
7468
7469 -- write to log
7470 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
7471 OKL_DEBUG_PUB.LOG_DEBUG(
7472 FND_LOG.LEVEL_STATEMENT
7473 ,L_MODULE || ' Result of OKL_ECC_PUB.EVALUATE_ELIGIBILITY_CRITERIA'
7474 ,'l_return_status ' || l_return_status);
7475 END IF; -- end of statement level debug
7476
7477 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
7478 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7479 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
7480 RAISE OKL_API.G_EXCEPTION_ERROR;
7481 END IF;
7482
7483 IF(l_return_status = OKL_API.G_RET_STS_SUCCESS AND l_eligible)
7484 THEN
7485 l_return_status := OKL_API.G_RET_STS_SUCCESS;
7486 ELSE
7487 l_return_status := OKL_API.G_RET_STS_ERROR;
7488 END IF;
7489
7490 RETURN l_return_status;
7491 EXCEPTION
7492 WHEN OKL_API.G_EXCEPTION_ERROR THEN
7493 --Lease Application Template Details Cursor
7494 IF lat_dtls_csr%ISOPEN
7495 THEN
7496 CLOSE lat_dtls_csr;
7497 END IF;
7498 l_return_status := OKL_API.HANDLE_EXCEPTIONS(
7499 p_api_name => l_api_name,
7500 p_pkg_name => G_PKG_NAME,
7501 p_exc_name => 'OKL_API.G_RET_STS_ERROR',
7502 x_msg_count => x_msg_count,
7503 x_msg_data => x_msg_data,
7504 p_api_type => G_API_TYPE);
7505
7506 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
7507 --Lease Application Template Details Cursor
7508 IF lat_dtls_csr%ISOPEN
7509 THEN
7510 CLOSE lat_dtls_csr;
7511 END IF;
7512 l_return_status := OKL_API.HANDLE_EXCEPTIONS(
7513 p_api_name => l_api_name,
7514 p_pkg_name => G_PKG_NAME,
7515 p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
7516 x_msg_count => x_msg_count,
7517 x_msg_data => x_msg_data,
7518 p_api_type => G_API_TYPE);
7519
7520 WHEN OTHERS THEN
7521 --Lease Application Template Details Cursor
7522 IF lat_dtls_csr%ISOPEN
7523 THEN
7524 CLOSE lat_dtls_csr;
7525 END IF;
7526 l_return_status := OKL_API.HANDLE_EXCEPTIONS(
7527 p_api_name => l_api_name,
7528 p_pkg_name => G_PKG_NAME,
7529 p_exc_name => 'OTHERS',
7530 x_msg_count => x_msg_count,
7531 x_msg_data => x_msg_data,
7532 p_api_type => G_API_TYPE);
7533 END is_valid_leaseapp_template;
7534
7535 ------------------------------------------------------------------------------
7536 -- FUNCTION get_credit_classfication
7537 ------------------------------------------------------------------------------
7538 -- Start of comments
7539 --
7540 -- Function Name : get_credit_classfication
7541 -- Description : This function returns credit classification for given
7542 -- party, customer account or customer account site use.
7543 -- Business Rules : This function returns credit classification for given
7544 -- party, customer account or customer account site use.
7545 -- Parameters :
7546 -- Version : 1.0
7547 -- History : 20-JUNE-2005 PAGARG created
7548 --
7549 -- End of comments
7550 FUNCTION get_credit_classfication(
7551 p_party_id IN NUMBER,
7552 p_cust_acct_id IN NUMBER,
7553 p_site_use_id IN NUMBER)
7554 RETURN VARCHAR2
7555 IS
7556 -- Variables Declarations
7557 l_api_name CONSTANT VARCHAR2(30) DEFAULT 'GET_CREDIT_CLASSFICATION';
7558 l_cr_class ar_cmgt_credit_requests.credit_classification%type;
7559 l_party_id NUMBER;
7560 l_cust_acct_id NUMBER;
7561 l_site_use_id NUMBER;
7562
7563 BEGIN
7564 l_cr_class := NULL;
7565 L_MODULE := 'OKL.PLSQL.OKL_LEASE_APP_PVT.GET_CREDIT_CLASSFICATION';
7566
7567 -- check for logging on PROCEDURE level
7568 L_DEBUG_ENABLED := NVL(OKL_DEBUG_PUB.CHECK_LOG_ENABLED, 'N');
7569 IS_DEBUG_PROCEDURE_ON := NVL(OKL_DEBUG_PUB.CHECK_LOG_ON(L_MODULE, FND_LOG.LEVEL_PROCEDURE), FALSE);
7570 -- check for logging on STATEMENT level
7571 IS_DEBUG_STATEMENT_ON := NVL(OKL_DEBUG_PUB.CHECK_LOG_ON(L_MODULE, FND_LOG.LEVEL_STATEMENT), FALSE);
7572
7573 l_party_id := p_party_id;
7574 l_cust_acct_id := p_cust_acct_id;
7575 l_site_use_id := p_site_use_id;
7576
7577 --Begin viselvar bug#4740946
7578 --Begin-varangan-bug#4723072-getting site level risk
7579 /*If (p_site_use_id IS NOT NULL AND p_site_use_id <> OKL_API.G_MISS_NUM) Then
7580 Begin
7581 select a.site_use_id site_use_id
7582 Into l_site_use_id
7583 from Hz_cust_site_uses a,
7584 Hz_cust_acct_sites b
7585 Where a.CUST_ACCT_SITE_ID=B.CUST_ACCT_SITE_ID
7586 AND A.SITE_USE_CODE='BILL_TO'
7587 AND B.PARTY_SITE_ID=p_site_use_id;
7588
7589 Exception
7590 when others then
7591 l_site_use_id:=NULL;
7592 End;
7593 End If;*/
7594 --End-varangan-bug#4723072-getting site level risk
7595 -- End viselvar Bug#4723072
7596
7597 IF(l_party_id IS NULL OR l_party_id = OKL_API.G_MISS_NUM)
7598 THEN
7599 l_party_id := -99;
7600 END IF;
7601 IF(l_cust_acct_id IS NULL OR l_cust_acct_id = OKL_API.G_MISS_NUM)
7602 THEN
7603 l_cust_acct_id := -99;
7604 END IF;
7605 IF(l_site_use_id IS NULL OR l_site_use_id = OKL_API.G_MISS_NUM)
7606 THEN
7607 l_site_use_id := -99;
7608 END IF;
7609
7610 l_cr_class := AR_CMGT_UTIL.get_credit_classification(
7611 p_party_id => l_party_id,
7612 p_cust_account_id => l_cust_acct_id,
7613 p_site_use_id => l_site_use_id);
7614 IF(l_cr_class IS NULL OR l_cr_class = 'NULL')
7615 THEN
7616 SELECT DEFAULT_CREDIT_CLASSIFICATION
7617 INTO l_cr_class
7618 FROM AR_CMGT_SETUP_OPTIONS;
7619 END IF;
7620
7621 RETURN l_cr_class;
7622 EXCEPTION
7623 WHEN OTHERS THEN
7624 l_cr_class := NULL;
7625 END get_credit_classfication;
7626
7627 ------------------------------------------------------------------------------
7628 -- PROCEDURE accept_counter_offer
7629 ------------------------------------------------------------------------------
7630 -- Start of comments
7631 --
7632 -- Procedure Name : accept_counter_offer
7633 -- Description : This procedure accepts counter offers for Lease Application.
7634 -- Business Rules : This procedure accepts counter offers for Lease Application.
7635 -- Parameters :
7636 -- Version : 1.0
7637 -- History : 20-MAY-2005 PAGARG created
7638 -- : 04-Jan-2006 PAGARG Bug 4897098 Make accepted offer as
7639 -- in-play quote
7640 -- End of comments
7641 PROCEDURE accept_counter_offer(
7642 p_api_version IN NUMBER,
7643 p_init_msg_list IN VARCHAR2,
7644 x_return_status OUT NOCOPY VARCHAR2,
7645 x_msg_count OUT NOCOPY NUMBER,
7646 x_msg_data OUT NOCOPY VARCHAR2,
7647 p_lap_id IN NUMBER,
7648 p_cntr_offr IN NUMBER,
7649 x_lapv_rec OUT NOCOPY lapv_rec_type,
7650 x_lsqv_rec OUT NOCOPY lsqv_rec_type)
7651 IS
7652 -- Variables Declarations
7653 l_api_version CONSTANT NUMBER DEFAULT G_INIT_VERSION;
7654 l_api_name CONSTANT VARCHAR2(30) DEFAULT 'ACCEPT_COUNTER_OFFER';
7655 l_return_status VARCHAR2(1);
7656
7657 l_lapv_rec lapv_rec_type;
7658 l_lsqv_rec lsqv_rec_type;
7659
7660 -- Bug#4741121 - viselvar - Modified - Start
7661 l_parameter_list wf_parameter_list_t;
7662 p_event_name VARCHAR2(240) :='oracle.apps.okl.sales.leaseapplication.reco_alt_offers_acpt';
7663 -- Bug#4741121 - viselvar - Modified - End
7664
7665 --Cursor to obtain the in play quote id
7666 CURSOR in_play_qte_dtls_csr(cp_lap_id NUMBER)
7667 IS
7668 SELECT LSQ.ID LSQ_ID
7669 , LAP.APPLICATION_STATUS LAP_STATUS
7670 , LAP.REFERENCE_NUMBER LAP_NUMBER
7671 FROM OKL_LEASE_QUOTES_B LSQ
7672 , OKL_LEASE_APPLICATIONS_B LAP
7673 WHERE LSQ.PARENT_OBJECT_ID = LAP.ID
7674 AND LSQ.PARENT_OBJECT_CODE = 'LEASEAPP'
7675 AND LSQ.PRIMARY_QUOTE = 'Y'
7676 AND LAP.ID = cp_lap_id;
7677 in_play_qte_dtls_rec in_play_qte_dtls_csr%ROWTYPE;
7678
7679 BEGIN
7680 l_return_status := OKL_API.G_RET_STS_SUCCESS;
7681 L_MODULE := 'OKL.PLSQL.OKL_LEASE_APP_PVT.ACCEPT_COUNTER_OFFER';
7682
7683 -- check for logging on PROCEDURE level
7684 L_DEBUG_ENABLED := NVL(OKL_DEBUG_PUB.CHECK_LOG_ENABLED, 'N');
7685 IS_DEBUG_PROCEDURE_ON := NVL(OKL_DEBUG_PUB.CHECK_LOG_ON(L_MODULE, FND_LOG.LEVEL_PROCEDURE), FALSE);
7686 -- check for logging on STATEMENT level
7687 IS_DEBUG_STATEMENT_ON := NVL(OKL_DEBUG_PUB.CHECK_LOG_ON(L_MODULE, FND_LOG.LEVEL_STATEMENT), FALSE);
7688
7689 -- call START_ACTIVITY to create savepoint, check compatibility
7690 -- and initialize message list
7691 l_return_status := OKL_API.START_ACTIVITY(
7692 p_api_name => l_api_name
7693 ,p_pkg_name => G_PKG_NAME
7694 ,p_init_msg_list => p_init_msg_list
7695 ,l_api_version => l_api_version
7696 ,p_api_version => p_api_version
7697 ,p_api_type => G_API_TYPE
7698 ,x_return_status => l_return_status);
7699
7700 -- check if activity started successfully
7701 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7702 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7703 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
7704 RAISE OKL_API.G_EXCEPTION_ERROR;
7705 END IF;
7706
7707 IF(p_lap_id IS NULL OR
7708 p_lap_id = OKL_API.G_MISS_NUM)
7709 THEN
7710 l_return_status := OKL_API.G_RET_STS_ERROR;
7711 OKL_API.SET_MESSAGE(
7712 p_app_name => G_APP_NAME,
7713 p_msg_name => 'OKL_SO_LSE_APP_INVALID');
7714 RAISE OKL_API.G_EXCEPTION_ERROR;
7715 END IF;
7716
7717 OPEN in_play_qte_dtls_csr(p_lap_id);
7718 FETCH in_play_qte_dtls_csr INTO in_play_qte_dtls_rec;
7719 IF in_play_qte_dtls_csr%NOTFOUND
7720 THEN
7721 l_return_status := OKL_API.G_RET_STS_ERROR;
7722 OKL_API.SET_MESSAGE(
7723 p_app_name => G_APP_NAME,
7724 p_msg_name => 'OKL_SO_LSE_APP_INVALID');
7725 RAISE OKL_API.G_EXCEPTION_ERROR;
7726 END IF;
7727 CLOSE in_play_qte_dtls_csr;
7728 IF in_play_qte_dtls_rec.lap_status IN ('CR-REJECTED', 'CR-APPROVED', 'RECOM_NOT_APPROVED')
7729 THEN --[1]
7730 --Update the in play quote
7731 l_lsqv_rec.id := in_play_qte_dtls_rec.lsq_id;
7732 l_lsqv_rec.primary_quote := 'N';
7733
7734 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
7735 THEN
7736 OKL_DEBUG_PUB.LOG_DEBUG(
7737 FND_LOG.LEVEL_PROCEDURE
7738 ,L_MODULE
7739 ,'begin debug call OKL_LEASE_QUOTE_PVT.UPDATE_LEASE_QTE');
7740 END IF;
7741
7742 -- call the procedure to create lease quote line
7743 OKL_LEASE_QUOTE_PVT.UPDATE_LEASE_QTE(
7744 p_api_version => p_api_version
7745 ,p_init_msg_list => OKL_API.G_FALSE
7746 ,p_transaction_control => OKL_API.G_TRUE
7747 ,p_lease_qte_rec => l_lsqv_rec
7748 ,x_lease_qte_rec => x_lsqv_rec
7749 ,x_return_status => l_return_status
7750 ,x_msg_count => x_msg_count
7751 ,x_msg_data => x_msg_data);
7752
7753 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
7754 THEN
7755 OKL_DEBUG_PUB.LOG_DEBUG(
7756 FND_LOG.LEVEL_PROCEDURE
7757 ,L_MODULE
7758 ,'end debug call OKL_LEASE_QUOTE_PVT.UPDATE_LEASE_QTE');
7759 END IF;
7760
7761 -- write to log
7762 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
7763 OKL_DEBUG_PUB.LOG_DEBUG(
7764 FND_LOG.LEVEL_STATEMENT
7765 ,L_MODULE || ' Result of OKL_LEASE_QUOTE_PVT.UPDATE_LEASE_QTE'
7766 ,'l_lsqv_rec.reference_number ' || to_char(l_lsqv_rec.reference_number) ||
7767 ' l_lsqv_rec.id '|| l_lsqv_rec.id ||
7768 ' result status ' || l_return_status ||
7769 ' x_msg_data ' || x_msg_data);
7770 END IF; -- end of statement level debug
7771
7772 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
7773 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7774 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
7775 RAISE OKL_API.G_EXCEPTION_ERROR;
7776 END IF;
7777
7778 --Update counter offer
7779 l_lsqv_rec.id := p_cntr_offr;
7780 l_lsqv_rec.primary_quote := 'Y';
7781
7782 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
7783 THEN
7784 OKL_DEBUG_PUB.LOG_DEBUG(
7785 FND_LOG.LEVEL_PROCEDURE
7786 ,L_MODULE
7787 ,'begin debug call OKL_LEASE_QUOTE_PVT.UPDATE_LEASE_QTE');
7788 END IF;
7789
7790 -- call the procedure to create lease quote line
7791 OKL_LEASE_QUOTE_PVT.UPDATE_LEASE_QTE(
7792 p_api_version => p_api_version
7793 ,p_init_msg_list => OKL_API.G_FALSE
7794 ,p_transaction_control => OKL_API.G_TRUE
7795 ,p_lease_qte_rec => l_lsqv_rec
7796 ,x_lease_qte_rec => x_lsqv_rec
7797 ,x_return_status => l_return_status
7798 ,x_msg_count => x_msg_count
7799 ,x_msg_data => x_msg_data);
7800
7801 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
7802 THEN
7803 OKL_DEBUG_PUB.LOG_DEBUG(
7804 FND_LOG.LEVEL_PROCEDURE
7805 ,L_MODULE
7806 ,'end debug call OKL_LEASE_QUOTE_PVT.UPDATE_LEASE_QTE');
7807 END IF;
7808
7809 -- write to log
7810 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
7811 OKL_DEBUG_PUB.LOG_DEBUG(
7812 FND_LOG.LEVEL_STATEMENT
7813 ,L_MODULE || ' Result of OKL_LEASE_QUOTE_PVT.UPDATE_LEASE_QTE'
7814 ,'l_lsqv_rec.reference_number ' || to_char(l_lsqv_rec.reference_number) ||
7815 ' l_lsqv_rec.id '|| l_lsqv_rec.id ||
7816 ' result status ' || l_return_status ||
7817 ' x_msg_data ' || x_msg_data);
7818 END IF; -- end of statement level debug
7819
7820 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
7821 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7822 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
7823 RAISE OKL_API.G_EXCEPTION_ERROR;
7824 END IF;
7825 -- Bug#4741121 - viselvar - Modified - Start
7826 -- raise the business event passing the Lease Application id added to the parameter list
7827
7828 wf_event.addparametertolist('LAPP_ID'
7829 ,p_lap_id
7830 ,l_parameter_list);
7831
7832 okl_wf_pvt.raise_event(p_api_version => p_api_version
7833 ,p_init_msg_list => p_init_msg_list
7834 ,x_return_status => l_return_status
7835 ,x_msg_count => x_msg_count
7836 ,x_msg_data => x_msg_data
7837 ,p_event_name => p_event_name
7838 ,p_parameters => l_parameter_list);
7839
7840
7841 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
7842 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7843 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
7844 RAISE OKL_API.G_EXCEPTION_ERROR;
7845 END IF;
7846 -- Bug#4741121 - viselvar - Modified - End
7847 x_lapv_rec := l_lapv_rec;
7848 ELSE
7849 -- Accept counter offer is applicable only for CR-ACCEPTED or CR-REJECTED
7850 -- RECOM_NOT_APPROVED Lease Applications only
7851 l_return_status := OKL_API.G_RET_STS_ERROR;
7852 OKL_API.SET_MESSAGE(
7853 p_app_name => G_APP_NAME,
7854 p_msg_name => 'OKL_SO_ALT_OFFER_ACC_ERR',
7855 p_token1 => 'TEXT',
7856 p_token1_value => in_play_qte_dtls_rec.lap_number,
7857 p_token2 => 'STATUS',
7858 p_token2_value => in_play_qte_dtls_rec.lap_status);
7859 RAISE OKL_API.G_EXCEPTION_ERROR;
7860 END IF; -- [1]
7861
7862 x_return_status := l_return_status;
7863 OKL_API.END_ACTIVITY(
7864 x_msg_count => x_msg_count
7865 ,x_msg_data => x_msg_data);
7866 EXCEPTION
7867 WHEN OKL_API.G_EXCEPTION_ERROR
7868 THEN
7869 IF in_play_qte_dtls_csr%ISOPEN
7870 THEN
7871 CLOSE in_play_qte_dtls_csr;
7872 END IF;
7873 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
7874 p_api_name => l_api_name,
7875 p_pkg_name => G_PKG_NAME,
7876 p_exc_name => 'OKL_API.G_RET_STS_ERROR',
7877 x_msg_count => x_msg_count,
7878 x_msg_data => x_msg_data,
7879 p_api_type => G_API_TYPE);
7880
7881 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR
7882 THEN
7883 IF in_play_qte_dtls_csr%ISOPEN
7884 THEN
7885 CLOSE in_play_qte_dtls_csr;
7886 END IF;
7887 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
7888 p_api_name => l_api_name,
7889 p_pkg_name => G_PKG_NAME,
7890 p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
7891 x_msg_count => x_msg_count,
7892 x_msg_data => x_msg_data,
7893 p_api_type => G_API_TYPE);
7894
7895 WHEN OTHERS
7896 THEN
7897 IF in_play_qte_dtls_csr%ISOPEN
7898 THEN
7899 CLOSE in_play_qte_dtls_csr;
7900 END IF;
7901 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
7902 p_api_name => l_api_name,
7903 p_pkg_name => G_PKG_NAME,
7904 p_exc_name => 'OTHERS',
7905 x_msg_count => x_msg_count,
7906 x_msg_data => x_msg_data,
7907 p_api_type => G_API_TYPE);
7908 END accept_counter_offer;
7909
7910 -------------------------------------------------------------------------------
7911 -- PROCEDURE revert_leaseapp
7912 -------------------------------------------------------------------------------
7913 -- Start of comments
7914 --
7915 -- Procedure Name : revert_leaseapp
7916 -- Description : This procedure reverts the status from CONV-K to CR-APPROVED
7917 -- : This procedure is called when Contract created from
7918 -- : Lease Application is cancelled
7919 -- Business Rules : This procedure reverts the status from CONV-K to CR-APPROVED
7920 -- : This procedure is called when Contract created from
7921 -- : Lease Application is cancelled
7922 -- Parameters :
7923 -- Version : 1.0
7924 -- History : 14-SEP-2005 PAGARG created
7925 --
7926 -- End of comments
7927 PROCEDURE revert_leaseapp (
7928 p_api_version IN NUMBER
7929 ,p_init_msg_list IN VARCHAR2
7930 ,p_leaseapp_id IN NUMBER
7931 ,x_return_status OUT NOCOPY VARCHAR2
7932 ,x_msg_count OUT NOCOPY NUMBER
7933 ,x_msg_data OUT NOCOPY VARCHAR2)
7934 IS
7935 -- Variables Declarations
7936 l_api_version CONSTANT NUMBER DEFAULT G_INIT_VERSION;
7937 l_api_name CONSTANT VARCHAR2(30) DEFAULT 'REVERT_LEASEAPP';
7938 l_return_status VARCHAR2(1);
7939 l_meaning VARCHAR2(80);
7940
7941 --Cursor to populate Lease Application details from database
7942 CURSOR lap_db_val_csr(cp_lap_id NUMBER) IS
7943 SELECT LAB.REFERENCE_NUMBER LEASE_APPL_NUMBER
7944 , LAB.APPLICATION_STATUS APPLICATION_STATUS
7945 , LAB.OBJECT_VERSION_NUMBER OBJECT_VERSION_NUMBER
7946 FROM OKL_LEASE_APPLICATIONS_B LAB
7947 WHERE LAB.ID = cp_lap_id;
7948 lap_db_val_rec lap_db_val_csr%ROWTYPE;
7949
7950 BEGIN
7951 l_return_status := OKL_API.G_RET_STS_SUCCESS;
7952 L_MODULE := 'OKL.PLSQL.OKL_LEASE_APP_PVT.REVERT_LEASEAPP';
7953
7954 -- check for logging on PROCEDURE level
7955 L_DEBUG_ENABLED := NVL(OKL_DEBUG_PUB.CHECK_LOG_ENABLED, 'N');
7956 IS_DEBUG_PROCEDURE_ON := NVL(OKL_DEBUG_PUB.CHECK_LOG_ON(L_MODULE, FND_LOG.LEVEL_PROCEDURE), FALSE);
7957 -- check for logging on STATEMENT level
7958 IS_DEBUG_STATEMENT_ON := NVL(OKL_DEBUG_PUB.CHECK_LOG_ON(L_MODULE, FND_LOG.LEVEL_STATEMENT), FALSE);
7959
7960 -- call START_ACTIVITY to create savepoint, check compatibility
7961 -- and initialize message list
7962 l_return_status := OKL_API.START_ACTIVITY(
7963 p_api_name => l_api_name
7964 ,p_pkg_name => G_PKG_NAME
7965 ,p_init_msg_list => p_init_msg_list
7966 ,l_api_version => l_api_version
7967 ,p_api_version => p_api_version
7968 ,p_api_type => G_API_TYPE
7969 ,x_return_status => l_return_status);
7970
7971 -- check if activity started successfully
7972 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
7973 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
7974 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
7975 RAISE OKL_API.G_EXCEPTION_ERROR;
7976 END IF;
7977
7978 --Populate lease application rec with database values
7979 IF(p_leaseapp_id IS NOT NULL OR
7980 p_leaseapp_id <> OKL_API.G_MISS_NUM)
7981 THEN
7982 OPEN lap_db_val_csr(p_leaseapp_id);
7983 FETCH lap_db_val_csr INTO lap_db_val_rec;
7984 IF(lap_db_val_csr%NOTFOUND)
7985 THEN
7986 l_return_status := OKL_API.G_RET_STS_ERROR;
7987 OKL_API.SET_MESSAGE(
7988 p_app_name => G_APP_NAME,
7989 p_msg_name => 'OKL_SO_LSE_APP_INVALID');
7990 RAISE OKL_API.G_EXCEPTION_ERROR;
7991 ELSIF(lap_db_val_rec.application_status <> 'CONV-K')
7992 THEN
7993 --Lease Application not in status CONV-K, can not be reverted
7994 l_return_status := OKL_API.G_RET_STS_ERROR;
7995 l_meaning := get_lookup_meaning('OKL_LEASE_APP_STATUS' ,'CONV-K');
7996 OKL_API.SET_MESSAGE(
7997 p_app_name => G_APP_NAME,
7998 p_msg_name => 'OKL_SO_LSE_APP_INVALID_STS',
7999 p_token1 => 'TEXT',
8000 p_token1_value => lap_db_val_rec.lease_appl_number,
8001 p_token2 => 'STATUS',
8002 p_token2_value => l_meaning);
8003 RAISE OKL_API.G_EXCEPTION_ERROR;
8004 END IF;
8005 CLOSE lap_db_val_csr;
8006 ELSE
8007 l_return_status := OKL_API.G_RET_STS_ERROR;
8008 OKL_API.SET_MESSAGE(
8009 p_app_name => G_APP_NAME,
8010 p_msg_name => 'OKL_SO_LSE_APP_INVALID');
8011 RAISE OKL_API.G_EXCEPTION_ERROR;
8012 END IF; --Lease Application Id is null or G_MISS_NUM
8013
8014 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
8015 THEN
8016 OKL_DEBUG_PUB.LOG_DEBUG(
8017 FND_LOG.LEVEL_PROCEDURE
8018 ,L_MODULE
8019 ,'begin debug call SET_LEASE_APP_STATUS');
8020 END IF;
8021
8022 -- call the procedure to update a lease application status
8023 SET_LEASE_APP_STATUS(
8024 p_api_version => p_api_version
8025 ,p_init_msg_list => OKL_API.G_FALSE
8026 ,p_lap_id => p_leaseapp_id
8027 ,p_lap_status => 'CR-APPROVED'
8028 ,x_return_status => l_return_status
8029 ,x_msg_count => x_msg_count
8030 ,x_msg_data => x_msg_data);
8031
8032 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
8033 THEN
8034 OKL_DEBUG_PUB.LOG_DEBUG(
8035 FND_LOG.LEVEL_PROCEDURE
8036 ,L_MODULE
8037 ,'end debug call SET_LEASE_APP_STATUS');
8038 END IF;
8039
8040 -- write to log
8041 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
8042 OKL_DEBUG_PUB.LOG_DEBUG(
8043 FND_LOG.LEVEL_STATEMENT
8044 ,L_MODULE || ' Result of SET_LEASE_APP_STATUS'
8045 ,'return status ' || l_return_status ||
8046 ' x_msg_data ' || x_msg_data);
8047 END IF; -- end of statement level debug
8048
8049 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
8050 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8051 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
8052 RAISE OKL_API.G_EXCEPTION_ERROR;
8053 END IF;
8054
8055 x_return_status := l_return_status;
8056
8057 OKL_API.END_ACTIVITY(
8058 x_msg_count => x_msg_count
8059 ,x_msg_data => x_msg_data);
8060 EXCEPTION
8061 WHEN OKL_API.G_EXCEPTION_ERROR THEN
8062 --Lease Application Details Cusrsor
8063 IF lap_db_val_csr%ISOPEN
8064 THEN
8065 CLOSE lap_db_val_csr;
8066 END IF;
8067 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
8068 p_api_name => l_api_name,
8069 p_pkg_name => G_PKG_NAME,
8070 p_exc_name => 'OKL_API.G_RET_STS_ERROR',
8071 x_msg_count => x_msg_count,
8072 x_msg_data => x_msg_data,
8073 p_api_type => G_API_TYPE);
8074
8075 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
8076 --Lease Application Details Cusrsor
8077 IF lap_db_val_csr%ISOPEN
8078 THEN
8079 CLOSE lap_db_val_csr;
8080 END IF;
8081 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
8082 p_api_name => l_api_name,
8083 p_pkg_name => G_PKG_NAME,
8084 p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
8085 x_msg_count => x_msg_count,
8086 x_msg_data => x_msg_data,
8087 p_api_type => G_API_TYPE);
8088
8089 WHEN OTHERS THEN
8090 --Lease Application Details Cusrsor
8091 IF lap_db_val_csr%ISOPEN
8092 THEN
8093 CLOSE lap_db_val_csr;
8094 END IF;
8095 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
8096 p_api_name => l_api_name,
8097 p_pkg_name => G_PKG_NAME,
8098 p_exc_name => 'OTHERS',
8099 x_msg_count => x_msg_count,
8100 x_msg_data => x_msg_data,
8101 p_api_type => G_API_TYPE);
8102 END revert_leaseapp;
8103
8104 -------------------------------------------------------------------------------
8105 -- PROCEDURE validate_credit_results
8106 -------------------------------------------------------------------------------
8107 -- Start of comments
8108 --
8109 -- Procedure Name : validate_credit_results
8110 -- Description : This procedure validates credit results
8111 -- Business Rules : This procedure validates credit results
8112 -- Parameters :
8113 -- Version : 1.0
8114 -- History : 22-SEP-2005 PAGARG created
8115 -- : 02-Dec-2005 PAGARG Bug 4753078 validate whether either
8116 -- approve or reject recommendation is created or not
8117 -- : 06 Jan 2006 PAGARG Bug 4931564 Added check for Multiple
8118 -- recommendations of Checklist and Expiration Days
8119 -- : 02 Feb 2006 PAGARG BUG 4931146 Validate number of Counter
8120 -- Offers created as credit recommendations against those
8121 -- linked to Lease App, break the link for those for which
8122 -- credit recommendations are not commited.
8123 -- End of comments
8124 PROCEDURE validate_credit_results (
8125 p_api_version IN NUMBER
8126 ,p_init_msg_list IN VARCHAR2
8127 ,p_leaseapp_id IN NUMBER
8128 ,x_return_status OUT NOCOPY VARCHAR2
8129 ,x_msg_count OUT NOCOPY NUMBER
8130 ,x_msg_data OUT NOCOPY VARCHAR2)
8131 IS
8132 -- Variables Declarations
8133 l_api_version CONSTANT NUMBER DEFAULT G_INIT_VERSION;
8134 l_api_name CONSTANT VARCHAR2(30) DEFAULT 'VALIDATE_CREDIT_RESULTS';
8135 l_return_status VARCHAR2(1);
8136
8137 --Local variables
8138 l_leaseapp_id NUMBER;
8139 l_approve_count NUMBER;
8140 l_reject_count NUMBER;
8141 l_recom_count NUMBER;
8142 l_recom_mean VARCHAR2(80);
8143
8144 l_lsqv_rec lsqv_rec_type;
8145 x_lsqv_rec lsqv_rec_type;
8146
8147 --Bug 4753078 Cursor to check for Approve or Reject recommendation for a
8148 --given Lease Application
8149 CURSOR credit_recom_csr(cp_lap_id NUMBER, p_recom VARCHAR2) IS
8150 SELECT COUNT(*)
8151 FROM AR_CMGT_CF_RECOMMENDS RCM
8152 , AR_CMGT_CREDIT_REQUESTS CCR
8153 WHERE RCM.CREDIT_REQUEST_ID = CCR.CREDIT_REQUEST_ID
8154 AND RCM.CREDIT_RECOMMENDATION = p_recom
8155 AND CCR.SOURCE_COLUMN3 = 'LEASEAPP'
8156 AND CCR.SOURCE_COLUMN1 = cp_lap_id;
8157
8158 --BUG 4931146 PAGARG Cursor to query Counter offers for the given Lease App
8159 CURSOR okl_counter_offer_csr(cp_lap_id NUMBER)
8160 IS
8161 SELECT ID
8162 , REFERENCE_NUMBER
8163 , STATUS
8164 FROM OKL_LEASE_QUOTES_B LSQ
8165 WHERE PARENT_OBJECT_CODE = 'LEASEAPP'
8166 AND STATUS IN ('CR-RECOMMENDATION', 'CR-INCOMPLETE')
8167 AND PARENT_OBJECT_ID = cp_lap_id;
8168
8169 --BUG 4931146 PAGARG Cursor to query Counter offer recommendations for given
8170 --Lease App
8171 CURSOR ocm_counter_offer_csr(cp_lap_id NUMBER, cp_co_id NUMBER)
8172 IS
8173 SELECT 'X'
8174 FROM AR_CMGT_CF_RECOMMENDS CCRM
8175 , AR_CMGT_CREDIT_REQUESTS CCR
8176 WHERE CCRM.CREDIT_REQUEST_ID = CCR.CREDIT_REQUEST_ID
8177 AND CCR.SOURCE_COLUMN3 = 'LEASEAPP'
8178 AND CCRM.CREDIT_RECOMMENDATION = 'COUNTER_OFFER'
8179 AND CCR.SOURCE_COLUMN1 = cp_lap_id
8180 AND CCRM.RECOMMENDATION_VALUE1 = cp_co_id;
8181 BEGIN
8182 l_return_status := OKL_API.G_RET_STS_SUCCESS;
8183 L_MODULE := 'OKL.PLSQL.OKL_LEASE_APP_PVT.VALIDATE_CREDIT_RESULTS';
8184
8185 -- check for logging on PROCEDURE level
8186 L_DEBUG_ENABLED := NVL(OKL_DEBUG_PUB.CHECK_LOG_ENABLED, 'N');
8187 IS_DEBUG_PROCEDURE_ON := NVL(OKL_DEBUG_PUB.CHECK_LOG_ON(L_MODULE, FND_LOG.LEVEL_PROCEDURE), FALSE);
8188 -- check for logging on STATEMENT level
8189 IS_DEBUG_STATEMENT_ON := NVL(OKL_DEBUG_PUB.CHECK_LOG_ON(L_MODULE, FND_LOG.LEVEL_STATEMENT), FALSE);
8190
8191 -- call START_ACTIVITY to create savepoint, check compatibility
8192 -- and initialize message list
8193 l_return_status := OKL_API.START_ACTIVITY(
8194 p_api_name => l_api_name
8195 ,p_pkg_name => G_PKG_NAME
8196 ,p_init_msg_list => p_init_msg_list
8197 ,l_api_version => l_api_version
8198 ,p_api_version => p_api_version
8199 ,p_api_type => G_API_TYPE
8200 ,x_return_status => l_return_status);
8201
8202 -- check if activity started successfully
8203 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
8204 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8205 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
8206 RAISE OKL_API.G_EXCEPTION_ERROR;
8207 END IF;
8208
8209 --Logic for the procedures goes here
8210 l_leaseapp_id := p_leaseapp_id;
8211
8212 --Bug 4753078 Open the cursor and check for number of approve or reject
8213 --recommendation and accordingly throw error.
8214 OPEN credit_recom_csr(l_leaseapp_id, 'APPROVE');
8215 FETCH credit_recom_csr INTO l_approve_count;
8216 CLOSE credit_recom_csr;
8217 OPEN credit_recom_csr(l_leaseapp_id, 'REJECT');
8218 FETCH credit_recom_csr INTO l_reject_count;
8219 CLOSE credit_recom_csr;
8220 l_recom_count := l_approve_count + l_reject_count;
8221 IF(l_recom_count > 1) --changed from <> to > for bug 6945703
8222 THEN
8223 l_return_status := OKL_API.G_RET_STS_ERROR;
8224 OKL_API.SET_MESSAGE(
8225 p_app_name => G_APP_NAME,
8226 p_msg_name => 'OKL_SO_LSE_APP_CRE_REC_ERR');
8227 RAISE OKL_API.G_EXCEPTION_ERROR;
8228 END IF;
8229
8230 OPEN credit_recom_csr(l_leaseapp_id, 'CHECKLIST');
8231 FETCH credit_recom_csr INTO l_recom_count;
8232 CLOSE credit_recom_csr;
8233 IF(l_recom_count > 1)
8234 THEN
8235 l_return_status := OKL_API.G_RET_STS_ERROR;
8236 l_recom_mean := get_lookup_meaning('OKL_CR_MGMT_RECOMMENDATION', 'CHECKLIST');
8237 OKL_API.SET_MESSAGE(
8238 p_app_name => G_APP_NAME,
8239 p_msg_name => 'OKL_SO_LSE_APP_MUL_RECOM',
8240 p_token1 => 'TEXT',
8241 p_token1_value => l_recom_mean);
8242 RAISE OKL_API.G_EXCEPTION_ERROR;
8243 END IF;
8244
8245 OPEN credit_recom_csr(l_leaseapp_id, 'EXPIRATION_DATE');
8246 FETCH credit_recom_csr INTO l_recom_count;
8247 CLOSE credit_recom_csr;
8248 IF(l_recom_count > 1)
8249 THEN
8250 l_return_status := OKL_API.G_RET_STS_ERROR;
8251 l_recom_mean := get_lookup_meaning('OKL_CR_MGMT_RECOMMENDATION', 'EXPIRATION_DATE');
8252 OKL_API.SET_MESSAGE(
8253 p_app_name => G_APP_NAME,
8254 p_msg_name => 'OKL_SO_LSE_APP_MUL_RECOM',
8255 p_token1 => 'TEXT',
8256 p_token1_value => l_recom_mean);
8257 RAISE OKL_API.G_EXCEPTION_ERROR;
8258 ELSIF(l_recom_count = 0)
8259 THEN
8260 --If there is no recommendation for Expiration Days then set the expiration
8261 --days value as NULL
8262 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
8263 THEN
8264 OKL_DEBUG_PUB.LOG_DEBUG(
8265 FND_LOG.LEVEL_PROCEDURE
8266 ,L_MODULE
8267 ,'begin debug call SET_LEASE_APP_EXPDAYS');
8268 END IF;
8269
8270 SET_LEASE_APP_EXPDAYS(
8271 p_api_version => p_api_version
8272 ,p_init_msg_list => OKL_API.G_FALSE
8273 ,p_lap_id => l_leaseapp_id
8274 ,p_lap_expdays => NULL
8275 ,x_return_status => l_return_status
8276 ,x_msg_count => x_msg_count
8277 ,x_msg_data => x_msg_data);
8278
8279 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
8280 THEN
8281 OKL_DEBUG_PUB.LOG_DEBUG(
8282 FND_LOG.LEVEL_PROCEDURE
8283 ,L_MODULE
8284 ,'end debug call SET_LEASE_APP_EXPDAYS');
8285 END IF;
8286
8287 -- write to log
8288 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
8289 OKL_DEBUG_PUB.LOG_DEBUG(
8290 FND_LOG.LEVEL_STATEMENT
8291 ,L_MODULE || ' Result of SET_LEASE_APP_EXPDAYS'
8292 ,'return status ' || l_return_status);
8293 END IF; -- end of statement level debug
8294
8295 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
8296 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8297 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
8298 RAISE OKL_API.G_EXCEPTION_ERROR;
8299 END IF;
8300 END IF;--For Expiration Date recommendation check
8301
8302 --BUG 4931146 PAGARG Loop through the Counter Offers linked to given Lease App
8303 --if there is no recommendation for the given Counter Offer then remove the link
8304 --by setting the parent_object_code as -1
8305 FOR okl_counter_offer_rec IN okl_counter_offer_csr(l_leaseapp_id)
8306 LOOP
8307 OPEN ocm_counter_offer_csr(l_leaseapp_id, okl_counter_offer_rec.id);
8308 FETCH ocm_counter_offer_csr INTO l_recom_mean;
8309 IF ocm_counter_offer_csr%NOTFOUND
8310 THEN
8311 SELECT OBJECT_VERSION_NUMBER INTO l_lsqv_rec.object_version_number
8312 FROM OKL_LEASE_QUOTES_B
8313 WHERE ID = okl_counter_offer_rec.id;
8314
8315 l_lsqv_rec.id := okl_counter_offer_rec.id;
8316 l_lsqv_rec.parent_object_id := -1;
8317
8318 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
8319 THEN
8320 OKL_DEBUG_PUB.LOG_DEBUG(
8321 FND_LOG.LEVEL_PROCEDURE
8322 ,L_MODULE
8323 ,'begin debug call OKL_LSQ_PVT.UPDATE_ROW');
8324 END IF;
8325
8326 -- call the procedure to update lease quote
8327 OKL_LSQ_PVT.UPDATE_ROW(
8328 p_api_version => p_api_version
8329 ,p_init_msg_list => OKL_API.G_FALSE
8330 ,p_lsqv_rec => l_lsqv_rec
8331 ,x_lsqv_rec => x_lsqv_rec
8332 ,x_return_status => l_return_status
8333 ,x_msg_count => x_msg_count
8334 ,x_msg_data => x_msg_data);
8335
8336 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
8337 THEN
8338 OKL_DEBUG_PUB.LOG_DEBUG(
8339 FND_LOG.LEVEL_PROCEDURE
8340 ,L_MODULE
8341 ,'end debug call OKL_LSQ_PVT.UPDATE_ROW');
8342 END IF;
8343
8344 -- write to log
8345 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
8346 OKL_DEBUG_PUB.LOG_DEBUG(
8347 FND_LOG.LEVEL_STATEMENT
8348 ,L_MODULE || ' Result of OKL_LSQ_PVT.UPDATE_ROW'
8349 ,'l_lsqv_rec.reference_number ' || to_char(l_lsqv_rec.reference_number) ||
8350 ' result status ' || l_return_status);
8351 END IF; -- end of statement level debug
8352
8353 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
8354 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8355 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
8356 RAISE OKL_API.G_EXCEPTION_ERROR;
8357 END IF;
8358 ELSE
8359 --If Counter offer is found as recommendation in OCM then validate
8360 --whether pricing is completed for Counter Offer or not
8361 IF(okl_counter_offer_rec.status = 'CR-INCOMPLETE')
8362 THEN
8363 l_return_status := OKL_API.G_RET_STS_ERROR;
8364 OKL_API.SET_MESSAGE(
8365 p_app_name => G_APP_NAME,
8366 p_msg_name => 'OKL_SO_LSE_APP_COUN_OFFER_ERR',
8367 p_token1 => 'TEXT',
8368 p_token1_value => okl_counter_offer_rec.reference_number);
8369 RAISE OKL_API.G_EXCEPTION_ERROR;
8370 END IF;
8371 END IF;--For counter offer not found as credit recommendations in OCM
8372 CLOSE ocm_counter_offer_csr;
8373 END LOOP;
8374 --BUG 4931146 PAGARG Fix End
8375
8376 x_return_status := l_return_status;
8377 OKL_API.END_ACTIVITY(
8378 x_msg_count => x_msg_count
8379 ,x_msg_data => x_msg_data);
8380 EXCEPTION
8381 WHEN OKL_API.G_EXCEPTION_ERROR THEN
8382 --Credit Recommendations Cursor
8383 IF credit_recom_csr%ISOPEN
8384 THEN
8385 CLOSE credit_recom_csr;
8386 END IF;
8387 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
8388 p_api_name => l_api_name,
8389 p_pkg_name => G_PKG_NAME,
8390 p_exc_name => 'OKL_API.G_RET_STS_ERROR',
8391 x_msg_count => x_msg_count,
8392 x_msg_data => x_msg_data,
8393 p_api_type => G_API_TYPE);
8394
8395 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
8396 --Credit Recommendations Cursor
8397 IF credit_recom_csr%ISOPEN
8398 THEN
8399 CLOSE credit_recom_csr;
8400 END IF;
8401 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
8402 p_api_name => l_api_name,
8403 p_pkg_name => G_PKG_NAME,
8404 p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
8405 x_msg_count => x_msg_count,
8406 x_msg_data => x_msg_data,
8407 p_api_type => G_API_TYPE);
8408
8409 WHEN OTHERS THEN
8410 --Credit Recommendations Cursor
8411 IF credit_recom_csr%ISOPEN
8412 THEN
8413 CLOSE credit_recom_csr;
8414 END IF;
8415 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
8416 p_api_name => l_api_name,
8417 p_pkg_name => G_PKG_NAME,
8418 p_exc_name => 'OTHERS',
8419 x_msg_count => x_msg_count,
8420 x_msg_data => x_msg_data,
8421 p_api_type => G_API_TYPE);
8422 END validate_credit_results;
8423
8424 -------------------------------------------------------------------------------
8425 -- PROCEDURE lease_app_resubmit
8426 -------------------------------------------------------------------------------
8427 -- Start of comments
8428 --
8429 -- Procedure Name : lease_app_resubmit
8430 -- Description : This procedure resubmits the lease application.
8431 -- Business Rules : This procedure resubmits the lease application.
8432 -- Parameters :
8433 -- Version : 1.0
8434 -- History : 26-SEP-2005 PAGARG created
8435 --
8436 -- End of comments
8437 PROCEDURE lease_app_resubmit(
8438 p_api_version IN NUMBER,
8439 p_init_msg_list IN VARCHAR2,
8440 x_return_status OUT NOCOPY VARCHAR2,
8441 x_msg_count OUT NOCOPY NUMBER,
8442 x_msg_data OUT NOCOPY VARCHAR2,
8443 p_source_lap_id IN NUMBER,
8444 p_lapv_rec IN lapv_rec_type,
8445 x_lapv_rec OUT NOCOPY lapv_rec_type,
8446 p_lsqv_rec IN lsqv_rec_type,
8447 x_lsqv_rec OUT NOCOPY lsqv_rec_type) IS
8448
8449 -- Variables Declarations
8450 l_api_version CONSTANT NUMBER DEFAULT G_INIT_VERSION;
8451 l_api_name CONSTANT VARCHAR2(30) DEFAULT 'LEASE_APP_RESUBMIT';
8452 l_return_status VARCHAR2(1);
8453
8454 -- Record/Table Type Declarations
8455 l_lapv_rec lapv_rec_type;
8456 l_lsqv_rec lsqv_rec_type;
8457 l_crr_rec crr_rec_type;
8458 x_crr_rec crr_rec_type;
8459 l_parameter_list wf_parameter_list_t;
8460 p_event_name VARCHAR2(240) :='oracle.apps.okl.sales.leaseapplication.resubmitted';
8461
8462 --Cursor to obtain Checklist Header Id
8463 CURSOR chk_hdr_dtls_csr(cp_lap_id NUMBER)
8464 IS
8465 --changing the query for bug 5167776
8466 SELECT LATV.CHECKLIST_ID
8467 FROM OKL_LEASE_APPLICATIONS_B LAP
8468 ,OKL_LEASEAPP_TEMPL_VERSIONS_V LATV
8469 WHERE LAP.LEASEAPP_TEMPLATE_ID = LATV.ID
8470 AND LAP.ID = cp_lap_id;
8471 chk_hdr_dtls_rec chk_hdr_dtls_csr%ROWTYPE;
8472
8473 --Cursor to obtain Source Lease App details
8474 CURSOR src_lse_app_dtls_csr(cp_lap_id NUMBER)
8475 IS
8476 SELECT LSQ.ID LSQ_ID
8477 , CRR.CREDIT_REQUEST_ID
8478 FROM OKL_LEASE_QUOTES_B LSQ
8479 , OKL_LEASE_APPLICATIONS_B LAP
8480 , AR_CMGT_CREDIT_REQUESTS CRR
8481 WHERE LSQ.PARENT_OBJECT_ID = LAP.ID
8482 AND LSQ.PARENT_OBJECT_CODE = 'LEASEAPP'
8483 AND LSQ.PRIMARY_QUOTE = 'Y'
8484 AND CRR.SOURCE_COLUMN1 = LAP.ID
8485 AND CRR.SOURCE_COLUMN3 = 'LEASEAPP'
8486 AND LAP.ID = cp_lap_id;
8487 src_lse_app_dtls_rec src_lse_app_dtls_csr%ROWTYPE;
8488 BEGIN
8489 l_return_status := OKL_API.G_RET_STS_SUCCESS;
8490 L_MODULE := 'OKL.PLSQL.OKL_LEASE_APP_PVT.LEASE_APP_RESUBMIT';
8491
8492 -- check for logging on PROCEDURE level
8493 L_DEBUG_ENABLED := NVL(OKL_DEBUG_PUB.CHECK_LOG_ENABLED, 'N');
8494 IS_DEBUG_PROCEDURE_ON := NVL(OKL_DEBUG_PUB.CHECK_LOG_ON(L_MODULE, FND_LOG.LEVEL_PROCEDURE), FALSE);
8495 -- check for logging on STATEMENT level
8496 IS_DEBUG_STATEMENT_ON := NVL(OKL_DEBUG_PUB.CHECK_LOG_ON(L_MODULE, FND_LOG.LEVEL_STATEMENT), FALSE);
8497
8498 -- call START_ACTIVITY to create savepoint, check compatibility
8499 -- and initialize message list
8500 l_return_status := OKL_API.START_ACTIVITY(
8501 p_api_name => l_api_name
8502 ,p_pkg_name => G_PKG_NAME
8503 ,p_init_msg_list => p_init_msg_list
8504 ,l_api_version => l_api_version
8505 ,p_api_version => p_api_version
8506 ,p_api_type => G_API_TYPE
8507 ,x_return_status => l_return_status);
8508
8509 -- check if activity started successfully
8510 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
8511 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8512 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
8513 RAISE OKL_API.G_EXCEPTION_ERROR;
8514 END IF;
8515
8516 l_lapv_rec := p_lapv_rec;
8517 l_lsqv_rec := p_lsqv_rec;
8518 --set the status and parent for lease application
8519 l_lapv_rec.application_status := G_INIT_APPL_STATUS;
8520 l_lapv_rec.parent_leaseapp_id := p_source_lap_id;
8521 l_lapv_rec.action := 'RESUBMIT';
8522
8523 --Validate Lease Application Template
8524 --Validate Program Agreement
8525 --Validate VP and LAT association
8526 --Validate Lease Quote
8527 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
8528 THEN
8529 OKL_DEBUG_PUB.LOG_DEBUG(
8530 FND_LOG.LEVEL_PROCEDURE
8531 ,L_MODULE
8532 ,'begin debug call LEASE_APP_VAL');
8533 END IF;
8534
8535 LEASE_APP_VAL(
8536 p_api_version => p_api_version
8537 ,p_init_msg_list => OKL_API.G_FALSE
8538 ,x_return_status => l_return_status
8539 ,x_msg_count => x_msg_count
8540 ,x_msg_data => x_msg_data
8541 ,p_lapv_rec => l_lapv_rec
8542 ,p_lsqv_rec => l_lsqv_rec);
8543
8544 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
8545 THEN
8546 OKL_DEBUG_PUB.LOG_DEBUG(
8547 FND_LOG.LEVEL_PROCEDURE
8548 ,L_MODULE
8549 ,'end debug call LEASE_APP_VAL');
8550 END IF;
8551
8552 -- write to log
8553 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
8554 OKL_DEBUG_PUB.LOG_DEBUG(
8555 FND_LOG.LEVEL_STATEMENT
8556 ,L_MODULE || ' Result of LEASE_APP_VAL'
8557 ,'l_return_status ' || l_return_status);
8558 END IF; -- end of statement level debug
8559
8560 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
8561 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8562 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
8563 RAISE OKL_API.G_EXCEPTION_ERROR;
8564 END IF;
8565
8566 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
8567 THEN
8568 OKL_DEBUG_PUB.LOG_DEBUG(
8569 FND_LOG.LEVEL_PROCEDURE
8570 ,L_MODULE
8571 ,'begin debug call OKL_LAP_PVT.INSERT_ROW');
8572 END IF;
8573
8574 -- call the TAPI insert_row to create a lease application
8575 OKL_LAP_PVT.INSERT_ROW(
8576 p_api_version => p_api_version
8577 ,p_init_msg_list => OKL_API.G_FALSE
8578 ,x_return_status => l_return_status
8579 ,x_msg_count => x_msg_count
8580 ,x_msg_data => x_msg_data
8581 ,p_lapv_rec => l_lapv_rec
8582 ,x_lapv_rec => x_lapv_rec);
8583
8584 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
8585 THEN
8586 OKL_DEBUG_PUB.LOG_DEBUG(
8587 FND_LOG.LEVEL_PROCEDURE
8588 ,L_MODULE
8589 ,'end debug call OKL_LAP_PVT.INSERT_ROW');
8590 END IF;
8591
8592 -- write to log
8593 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
8594 OKL_DEBUG_PUB.LOG_DEBUG(
8595 FND_LOG.LEVEL_STATEMENT
8596 ,L_MODULE || ' Result of OKL_LAP_PVT.INSERT_ROW'
8597 ,'l_lapv_rec.reference_number ' || to_char(l_lapv_rec.reference_number) ||
8598 ' l_lapv_rec.id '|| l_lapv_rec.id ||
8599 ' result status ' || l_return_status ||
8600 ' x_msg_data ' || x_msg_data);
8601 END IF; -- end of statement level debug
8602
8603 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
8604 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8605 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
8606 RAISE OKL_API.G_EXCEPTION_ERROR;
8607 END IF;
8608
8609 --Populate lease quote rec values
8610 l_lsqv_rec.parent_object_code := 'LEASEAPP';
8611 l_lsqv_rec.parent_object_id := x_lapv_rec.id;
8612 l_lsqv_rec.reference_number := get_next_seq_num(
8613 'OKL_LSQ_REF_SEQ'
8614 ,'OKL_LEASE_QUOTES_B'
8615 ,'REFERENCE_NUMBER');
8616 l_lsqv_rec.status := 'PR-INCOMPLETE';
8617 l_lsqv_rec.primary_quote := 'Y';
8618
8619 --Obtain the lease quote id attached to lease application and pass it as
8620 --source to duplicate lease quote.
8621 --This way it will duplicate lease quote with header values from rec and
8622 --rest of configuration, adjustment, pricing data from the source lease quote id
8623 OPEN src_lse_app_dtls_csr(p_source_lap_id);
8624 FETCH src_lse_app_dtls_csr INTO src_lse_app_dtls_rec;
8625 CLOSE src_lse_app_dtls_csr;
8626
8627 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
8628 THEN
8629 OKL_DEBUG_PUB.LOG_DEBUG(
8630 FND_LOG.LEVEL_PROCEDURE
8631 ,L_MODULE
8632 ,'begin debug call OKL_LEASE_QUOTE_PVT.DUPLICATE_LEASE_QTE');
8633 END IF;
8634
8635 -- call the procedure to create lease quote line
8636 OKL_LEASE_QUOTE_PVT.DUPLICATE_LEASE_QTE(
8637 p_api_version => p_api_version
8638 ,p_init_msg_list => OKL_API.G_FALSE
8639 ,p_transaction_control => OKL_API.G_TRUE
8640 ,p_source_quote_id => src_lse_app_dtls_rec.lsq_id
8641 ,p_lease_qte_rec => l_lsqv_rec
8642 ,x_lease_qte_rec => x_lsqv_rec
8643 ,x_return_status => l_return_status
8644 ,x_msg_count => x_msg_count
8645 ,x_msg_data => x_msg_data);
8646
8647 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
8648 THEN
8649 OKL_DEBUG_PUB.LOG_DEBUG(
8650 FND_LOG.LEVEL_PROCEDURE
8651 ,L_MODULE
8652 ,'end debug call OKL_LEASE_QUOTE_PVT.DUPLICATE_LEASE_QTE');
8653 END IF;
8654
8655 -- write to log
8656 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
8657 OKL_DEBUG_PUB.LOG_DEBUG(
8658 FND_LOG.LEVEL_STATEMENT
8659 ,L_MODULE || ' Result of OKL_LEASE_QUOTE_PVT.DUPLICATE_LEASE_QTE'
8660 ,'l_lsqv_rec.reference_number ' || to_char(l_lsqv_rec.reference_number) ||
8661 ' l_lsqv_rec.id '|| l_lsqv_rec.id ||
8662 ' result status ' || l_return_status ||
8663 ' x_msg_data ' || x_msg_data);
8664 END IF; -- end of statement level debug
8665
8666 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
8667 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8668 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
8669 RAISE OKL_API.G_EXCEPTION_ERROR;
8670 END IF;
8671
8672 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
8673 THEN
8674 OKL_DEBUG_PUB.LOG_DEBUG(
8675 FND_LOG.LEVEL_PROCEDURE
8676 ,L_MODULE
8677 ,'begin debug call CREATE_CREDIT_APP');
8678 END IF;
8679
8680 l_crr_rec.credit_request_type := 'RESUBMISSION';
8681 l_crr_rec.parent_credit_request_id := src_lse_app_dtls_rec.credit_request_id;
8682 --call to duplicate Credit Lease Application
8683 CREATE_CREDIT_APP(
8684 p_api_version => p_api_version
8685 ,p_init_msg_list => OKL_API.G_FALSE
8686 ,x_return_status => l_return_status
8687 ,x_msg_count => x_msg_count
8688 ,x_msg_data => x_msg_data
8689 ,p_lapv_rec => x_lapv_rec
8690 ,p_crr_rec => l_crr_rec
8691 ,x_crr_rec => x_crr_rec);
8692
8693 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
8694 THEN
8695 OKL_DEBUG_PUB.LOG_DEBUG(
8696 FND_LOG.LEVEL_PROCEDURE
8697 ,L_MODULE
8698 ,'end debug call CREATE_CREDIT_APP');
8699 END IF;
8700
8701 -- write to log
8702 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
8703 OKL_DEBUG_PUB.LOG_DEBUG(
8704 FND_LOG.LEVEL_STATEMENT
8705 ,L_MODULE || ' Result of CREATE_CREDIT_APP'
8706 ,' result status ' || l_return_status);
8707 END IF; -- end of statement level debug
8708
8709 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
8710 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8711 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
8712 RAISE OKL_API.G_EXCEPTION_ERROR;
8713 END IF;
8714 --asawanka. for bug 5169964
8715 OPEN chk_hdr_dtls_csr(x_lapv_rec.id);
8716 FETCH chk_hdr_dtls_csr INTO chk_hdr_dtls_rec;
8717 CLOSE chk_hdr_dtls_csr;
8718
8719 IF(chk_hdr_dtls_rec.checklist_id IS NOT NULL)
8720 THEN
8721 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
8722 THEN
8723 OKL_DEBUG_PUB.LOG_DEBUG(
8724 FND_LOG.LEVEL_PROCEDURE
8725 ,L_MODULE
8726 ,'begin debug call CHECKLIST_INST_CRE');
8727 END IF;
8728
8729 --call to create Checklist Instance
8730 CHECKLIST_INST_CRE(
8731 p_api_version => p_api_version
8732 ,p_init_msg_list => OKL_API.G_FALSE
8733 ,x_return_status => l_return_status
8734 ,x_msg_count => x_msg_count
8735 ,x_msg_data => x_msg_data
8736 ,p_lap_id => x_lapv_rec.id
8737 ,p_chklst_tmpl_id => chk_hdr_dtls_rec.checklist_id);
8738
8739 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
8740 THEN
8741 OKL_DEBUG_PUB.LOG_DEBUG(
8742 FND_LOG.LEVEL_PROCEDURE
8743 ,L_MODULE
8744 ,'end debug call CHECKLIST_INST_CRE');
8745 END IF;
8746
8747 -- write to log
8748 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
8749 OKL_DEBUG_PUB.LOG_DEBUG(
8750 FND_LOG.LEVEL_STATEMENT
8751 ,L_MODULE || ' Result of CHECKLIST_INST_CRE'
8752 ,' result status ' || l_return_status);
8753 END IF; -- end of statement level debug
8754
8755 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
8756 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8757 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
8758 RAISE OKL_API.G_EXCEPTION_ERROR;
8759 END IF;
8760 END IF; -- Condition to check for call to create checklist instance
8761
8762 --Update the status of Parent Lease Application as in Progress
8763 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
8764 THEN
8765 OKL_DEBUG_PUB.LOG_DEBUG(
8766 FND_LOG.LEVEL_PROCEDURE
8767 ,L_MODULE
8768 ,'begin debug call SET_IN_PROGRESS_STATUS');
8769 END IF;
8770
8771 --call the procedure to update a lease application status
8772 SET_IN_PROGRESS_STATUS(
8773 p_api_version => p_api_version
8774 ,p_init_msg_list => OKL_API.G_FALSE
8775 ,p_lap_id => p_source_lap_id
8776 ,p_action => 'RESUBMIT'
8777 ,x_return_status => l_return_status
8778 ,x_msg_count => x_msg_count
8779 ,x_msg_data => x_msg_data);
8780
8781 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
8782 THEN
8783 OKL_DEBUG_PUB.LOG_DEBUG(
8784 FND_LOG.LEVEL_PROCEDURE
8785 ,L_MODULE
8786 ,'end debug call SET_IN_PROGRESS_STATUS');
8787 END IF;
8788
8789 -- write to log
8790 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
8791 OKL_DEBUG_PUB.LOG_DEBUG(
8792 FND_LOG.LEVEL_STATEMENT
8793 ,L_MODULE || ' Result of SET_IN_PROGRESS_STATUS'
8794 ,'return status ' || l_return_status ||
8795 ' x_msg_data ' || x_msg_data);
8796 END IF; -- end of statement level debug
8797
8798 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
8799 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8800 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
8801 RAISE OKL_API.G_EXCEPTION_ERROR;
8802 END IF;
8803
8804 -- raise the business event passing the Lease Application id added to the parameter list
8805 wf_event.addparametertolist('LAPP_ID'
8806 ,x_lapv_rec.id
8807 ,l_parameter_list);
8808
8809 okl_wf_pvt.raise_event(p_api_version => p_api_version
8810 ,p_init_msg_list => p_init_msg_list
8811 ,x_return_status => l_return_status
8812 ,x_msg_count => x_msg_count
8813 ,x_msg_data => x_msg_data
8814 ,p_event_name => p_event_name
8815 ,p_parameters => l_parameter_list);
8816
8817 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
8818 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8819 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
8820 RAISE OKL_API.G_EXCEPTION_ERROR;
8821 END IF;
8822
8823 x_return_status := l_return_status;
8824 OKL_API.END_ACTIVITY(
8825 x_msg_count => x_msg_count
8826 ,x_msg_data => x_msg_data);
8827 EXCEPTION
8828 WHEN OKL_API.G_EXCEPTION_ERROR THEN
8829 --Checklist Header Details Cursor
8830 IF chk_hdr_dtls_csr%ISOPEN
8831 THEN
8832 CLOSE chk_hdr_dtls_csr;
8833 END IF;
8834 --Lease Application Source Details Cursor
8835 IF src_lse_app_dtls_csr%ISOPEN
8836 THEN
8837 CLOSE src_lse_app_dtls_csr;
8838 END IF;
8839 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
8840 p_api_name => l_api_name,
8841 p_pkg_name => G_PKG_NAME,
8842 p_exc_name => 'OKL_API.G_RET_STS_ERROR',
8843 x_msg_count => x_msg_count,
8844 x_msg_data => x_msg_data,
8845 p_api_type => G_API_TYPE);
8846
8847 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
8848 --Checklist Header Details Cursor
8849 IF chk_hdr_dtls_csr%ISOPEN
8850 THEN
8851 CLOSE chk_hdr_dtls_csr;
8852 END IF;
8853 --Lease Application Source Details Cursor
8854 IF src_lse_app_dtls_csr%ISOPEN
8855 THEN
8856 CLOSE src_lse_app_dtls_csr;
8857 END IF;
8858 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
8859 p_api_name => l_api_name,
8860 p_pkg_name => G_PKG_NAME,
8861 p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
8862 x_msg_count => x_msg_count,
8863 x_msg_data => x_msg_data,
8864 p_api_type => G_API_TYPE);
8865
8866 WHEN OTHERS THEN
8867 --Checklist Header Details Cursor
8868 IF chk_hdr_dtls_csr%ISOPEN
8869 THEN
8870 CLOSE chk_hdr_dtls_csr;
8871 END IF;
8872 --Lease Application Source Details Cursor
8873 IF src_lse_app_dtls_csr%ISOPEN
8874 THEN
8875 CLOSE src_lse_app_dtls_csr;
8876 END IF;
8877 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
8878 p_api_name => l_api_name,
8879 p_pkg_name => G_PKG_NAME,
8880 p_exc_name => 'OTHERS',
8881 x_msg_count => x_msg_count,
8882 x_msg_data => x_msg_data,
8883 p_api_type => G_API_TYPE);
8884 END lease_app_resubmit;
8885
8886 -------------------------------------------------------------------------------
8887 -- PROCEDURE lease_app_cancel
8888 -------------------------------------------------------------------------------
8889 -- Start of comments
8890 --
8891 -- Procedure Name : lease_app_cancel
8892 -- Description : This procedure cancels the lease application.
8893 -- Business Rules : This procedure cancels the lease application.
8894 -- Parameters :
8895 -- Version : 1.0
8896 -- History : 26-SEP-2005 PAGARG created
8897 --
8898 -- End of comments
8899 PROCEDURE lease_app_cancel(
8900 p_api_version IN NUMBER,
8901 p_init_msg_list IN VARCHAR2,
8902 x_return_status OUT NOCOPY VARCHAR2,
8903 x_msg_count OUT NOCOPY NUMBER,
8904 x_msg_data OUT NOCOPY VARCHAR2,
8905 p_lease_app_id IN NUMBER,
8906 x_lapv_rec OUT NOCOPY lapv_rec_type)
8907 IS
8908 -- Variables Declarations
8909 l_api_version CONSTANT NUMBER DEFAULT G_INIT_VERSION;
8910 l_api_name CONSTANT VARCHAR2(30) DEFAULT 'LEASE_APP_CANCEL';
8911 l_return_status VARCHAR2(1);
8912 l_meaning VARCHAR2(80);
8913
8914 -- Bug#4741121 - viselvar - Modified - Start
8915 l_parameter_list wf_parameter_list_t;
8916 p_event_name VARCHAR2(240) :='oracle.apps.okl.sales.leaseapplication.cancelled';
8917 -- Bug#4741121 - viselvar - Modified - End
8918
8919 --Cursor to populate Lease Application details from database
8920 CURSOR lap_db_val_csr(cp_lap_id NUMBER) IS
8921 SELECT LAB.REFERENCE_NUMBER LEASE_APPL_NUMBER
8922 , LAB.APPLICATION_STATUS APPLICATION_STATUS
8923 FROM OKL_LEASE_APPLICATIONS_B LAB
8924 WHERE LAB.ID = cp_lap_id;
8925 lap_db_val_rec lap_db_val_csr%ROWTYPE;
8926 BEGIN
8927 l_return_status := OKL_API.G_RET_STS_SUCCESS;
8928 L_MODULE := 'OKL.PLSQL.OKL_LEASE_APP_PVT.LEASE_APP_CANCEL';
8929
8930 -- check for logging on PROCEDURE level
8931 L_DEBUG_ENABLED := NVL(OKL_DEBUG_PUB.CHECK_LOG_ENABLED, 'N');
8932 IS_DEBUG_PROCEDURE_ON := NVL(OKL_DEBUG_PUB.CHECK_LOG_ON(L_MODULE, FND_LOG.LEVEL_PROCEDURE), FALSE);
8933 -- check for logging on STATEMENT level
8934 IS_DEBUG_STATEMENT_ON := NVL(OKL_DEBUG_PUB.CHECK_LOG_ON(L_MODULE, FND_LOG.LEVEL_STATEMENT), FALSE);
8935
8936 -- call START_ACTIVITY to create savepoint, check compatibility
8937 -- and initialize message list
8938 l_return_status := OKL_API.START_ACTIVITY(
8939 p_api_name => l_api_name
8940 ,p_pkg_name => G_PKG_NAME
8941 ,p_init_msg_list => p_init_msg_list
8942 ,l_api_version => l_api_version
8943 ,p_api_version => p_api_version
8944 ,p_api_type => G_API_TYPE
8945 ,x_return_status => l_return_status);
8946
8947 -- check if activity started successfully
8948 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
8949 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
8950 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
8951 RAISE OKL_API.G_EXCEPTION_ERROR;
8952 END IF;
8953
8954 IF(p_lease_app_id IS NOT NULL OR
8955 p_lease_app_id <> OKL_API.G_MISS_NUM)
8956 THEN
8957 OPEN lap_db_val_csr(p_lease_app_id);
8958 FETCH lap_db_val_csr INTO lap_db_val_rec;
8959 IF(lap_db_val_csr%NOTFOUND)
8960 THEN
8961 l_return_status := OKL_API.G_RET_STS_ERROR;
8962 OKL_API.SET_MESSAGE(
8963 p_app_name => G_APP_NAME,
8964 p_msg_name => 'OKL_SO_LSE_APP_INVALID');
8965 RAISE OKL_API.G_EXCEPTION_ERROR;
8966 END IF;
8967 CLOSE lap_db_val_csr;
8968 ELSE
8969 l_return_status := OKL_API.G_RET_STS_ERROR;
8970 OKL_API.SET_MESSAGE(
8971 p_app_name => G_APP_NAME,
8972 p_msg_name => 'OKL_SO_LSE_APP_INVALID');
8973 RAISE OKL_API.G_EXCEPTION_ERROR;
8974 END IF; --Lease Application Id is null or G_MISS_NUM
8975
8976 /* Due to data integrity concerns, users would not be able to cancel applications
8977 that are in any of the following statuses:
8978 Submitted to Credit,Credit Rejected,Credit Approved,Converted to Contract
8979 Submitted for Pricing Approval, Receommendation Not Approved
8980 */
8981 IF(lap_db_val_rec.application_status IN
8982 ('CR-SUBMITTED', 'CR-REJECTED', 'CR-APPROVED','CONV-K', 'PR-SUBMITTED', 'RECOM_NOT_APPROVED') )
8983 THEN
8984 l_return_status := OKL_API.G_RET_STS_ERROR;
8985 l_meaning := get_lookup_meaning('OKL_LEASE_APP_STATUS', 'CANCELED');
8986 OKL_API.SET_MESSAGE(
8987 p_app_name => G_APP_NAME,
8988 p_msg_name => 'OKL_SO_LSE_APP_ACTION_ERR',
8989 p_token1 => 'TEXT',
8990 p_token1_value => lap_db_val_rec.lease_appl_number,
8991 p_token2 => 'STATUS',
8992 p_token2_value => lap_db_val_rec.application_status,
8993 p_token3 => 'ACTION',
8994 p_token3_value => l_meaning);
8995 RAISE OKL_API.G_EXCEPTION_ERROR;
8996 ELSE
8997 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
8998 THEN
8999 OKL_DEBUG_PUB.LOG_DEBUG(
9000 FND_LOG.LEVEL_PROCEDURE
9001 ,L_MODULE
9002 ,'begin debug call CHECK_ELIGIBILITY');
9003 END IF;
9004
9005 --call the procedure to Validate Cancel action on lease app
9006 CHECK_ELIGIBILITY(
9007 p_api_version => p_api_version
9008 ,p_init_msg_list => OKL_API.G_FALSE
9009 ,x_return_status => l_return_status
9010 ,x_msg_count => x_msg_count
9011 ,x_msg_data => x_msg_data
9012 ,p_lap_id => p_lease_app_id
9013 ,p_action => 'CANCEL');
9014
9015 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
9016 THEN
9017 OKL_DEBUG_PUB.LOG_DEBUG(
9018 FND_LOG.LEVEL_PROCEDURE
9019 ,L_MODULE
9020 ,'end debug call CHECK_ELIGIBILITY');
9021 END IF;
9022
9023 -- write to log
9024 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
9025 OKL_DEBUG_PUB.LOG_DEBUG(
9026 FND_LOG.LEVEL_STATEMENT
9027 ,L_MODULE || ' Result of CHECK_ELIGIBILITY'
9028 ,'return status ' || l_return_status ||
9029 ' x_msg_data ' || x_msg_data);
9030 END IF; -- end of statement level debug
9031
9032 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
9033 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9034 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
9035 RAISE OKL_API.G_EXCEPTION_ERROR;
9036 END IF;
9037
9038 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
9039 THEN
9040 OKL_DEBUG_PUB.LOG_DEBUG(
9041 FND_LOG.LEVEL_PROCEDURE
9042 ,L_MODULE
9043 ,'begin debug call SET_LEASE_APP_STATUS');
9044 END IF;
9045
9046 --call the procedure to update a lease application status
9047 SET_LEASE_APP_STATUS(
9048 p_api_version => p_api_version
9049 ,p_init_msg_list => OKL_API.G_FALSE
9050 ,p_lap_id => p_lease_app_id
9051 ,p_lap_status => 'CANCELED'
9052 ,x_return_status => l_return_status
9053 ,x_msg_count => x_msg_count
9054 ,x_msg_data => x_msg_data);
9055
9056 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
9057 THEN
9058 OKL_DEBUG_PUB.LOG_DEBUG(
9059 FND_LOG.LEVEL_PROCEDURE
9060 ,L_MODULE
9061 ,'end debug call SET_LEASE_APP_STATUS');
9062 END IF;
9063
9064 -- write to log
9065 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
9066 OKL_DEBUG_PUB.LOG_DEBUG(
9067 FND_LOG.LEVEL_STATEMENT
9068 ,L_MODULE || ' Result of SET_LEASE_APP_STATUS'
9069 ,'return status ' || l_return_status ||
9070 ' x_msg_data ' || x_msg_data);
9071 END IF; -- end of statement level debug
9072
9073 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
9074 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9075 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
9076 RAISE OKL_API.G_EXCEPTION_ERROR;
9077 END IF;
9078
9079 -- Added by rravikir for Bug 5001802
9080 -- Call the API to process the lease app subsidy pool
9081 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
9082 THEN
9083 OKL_DEBUG_PUB.LOG_DEBUG(
9084 FND_LOG.LEVEL_PROCEDURE
9085 ,L_MODULE
9086 ,'begin debug call OKL_LEASE_QUOTE_PVT.PROCESS_LEASEAPP_SUBSIDY_POOL');
9087 END IF;
9088
9089 OKL_LEASE_QUOTE_SUBPOOL_PVT.PROCESS_LEASEAPP_SUBSIDY_POOL(
9090 p_api_version => p_api_version
9091 ,p_init_msg_list => OKL_API.G_FALSE
9092 ,p_transaction_control => OKL_API.G_TRUE
9093 ,p_leaseapp_id => p_lease_app_id
9094 ,p_transaction_reason => 'CANCEL_LEASE_APP'
9095 ,p_quote_id => null
9096 ,x_return_status => l_return_status
9097 ,x_msg_count => x_msg_count
9098 ,x_msg_data => x_msg_data);
9099
9100 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
9101 THEN
9102 OKL_DEBUG_PUB.LOG_DEBUG(
9103 FND_LOG.LEVEL_PROCEDURE
9104 ,L_MODULE
9105 ,'end debug call OKL_LEASE_QUOTE_PVT.PROCESS_LEASEAPP_SUBSIDY_POOL');
9106 END IF;
9107
9108 -- write to log
9109 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
9110 OKL_DEBUG_PUB.LOG_DEBUG(
9111 FND_LOG.LEVEL_STATEMENT
9112 ,L_MODULE || ' Result of OKL_LEASE_QUOTE_PVT.PROCESS_LEASEAPP_SUBSIDY_POOL'
9113 ,'l_return_status ' || l_return_status);
9114 END IF; -- end of statement level debug
9115
9116 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
9117 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9118 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
9119 RAISE OKL_API.G_EXCEPTION_ERROR;
9120 END IF;
9121 -- End changes for Bug 5001802
9122
9123 --Call the API which will check if there is any Parent to this Lease App
9124 --and in status Appeal/Resubmit in Progress. If yes then restore the status
9125 --of parent to original status
9126 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
9127 THEN
9128 OKL_DEBUG_PUB.LOG_DEBUG(
9129 FND_LOG.LEVEL_PROCEDURE
9130 ,L_MODULE
9131 ,'begin debug call REVERT_TO_ORIG_STATUS');
9132 END IF;
9133
9134 REVERT_TO_ORIG_STATUS(
9135 p_api_version => l_api_version
9136 ,p_init_msg_list => OKL_API.G_FALSE
9137 ,p_lap_id => p_lease_app_id
9138 ,x_return_status => l_return_status
9139 ,x_msg_count => x_msg_count
9140 ,x_msg_data => x_msg_data);
9141
9142 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
9143 THEN
9144 OKL_DEBUG_PUB.LOG_DEBUG(
9145 FND_LOG.LEVEL_PROCEDURE
9146 ,L_MODULE
9147 ,'end debug call REVERT_TO_ORIG_STATUS');
9148 END IF;
9149
9150 -- write to log
9151 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
9152 OKL_DEBUG_PUB.LOG_DEBUG(
9153 FND_LOG.LEVEL_STATEMENT
9154 ,L_MODULE || ' Result of REVERT_TO_ORIG_STATUS'
9155 ,'l_return_status ' || l_return_status);
9156 END IF; -- end of statement level debug
9157
9158 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
9159 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9160 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
9161 RAISE OKL_API.G_EXCEPTION_ERROR;
9162 END IF;
9163
9164 -- Bug#4741121 - viselvar - Modified - Start
9165 -- raise the business event passing the Lease Application id added to the parameter list
9166 wf_event.addparametertolist('LAPP_ID'
9167 ,p_lease_app_id
9168 ,l_parameter_list);
9169
9170 okl_wf_pvt.raise_event(p_api_version => p_api_version
9171 ,p_init_msg_list => p_init_msg_list
9172 ,x_return_status => l_return_status
9173 ,x_msg_count => x_msg_count
9174 ,x_msg_data => x_msg_data
9175 ,p_event_name => p_event_name
9176 ,p_parameters => l_parameter_list);
9177
9178 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
9179 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9180 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
9181 RAISE OKL_API.G_EXCEPTION_ERROR;
9182 END IF;
9183 -- Bug#4741121 - viselvar - Modified - End
9184 END IF;
9185
9186 x_return_status := l_return_status;
9187 OKL_API.END_ACTIVITY(
9188 x_msg_count => x_msg_count
9189 ,x_msg_data => x_msg_data);
9190 EXCEPTION
9191 WHEN OKL_API.G_EXCEPTION_ERROR THEN
9192 --Lease App Details Cursor
9193 IF lap_db_val_csr%ISOPEN
9194 THEN
9195 CLOSE lap_db_val_csr;
9196 END IF;
9197 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
9198 p_api_name => l_api_name,
9199 p_pkg_name => G_PKG_NAME,
9200 p_exc_name => 'OKL_API.G_RET_STS_ERROR',
9201 x_msg_count => x_msg_count,
9202 x_msg_data => x_msg_data,
9203 p_api_type => G_API_TYPE);
9204 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
9205 --Lease App Details Cursor
9206 IF lap_db_val_csr%ISOPEN
9207 THEN
9208 CLOSE lap_db_val_csr;
9209 END IF;
9210 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
9211 p_api_name => l_api_name,
9212 p_pkg_name => G_PKG_NAME,
9213 p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
9214 x_msg_count => x_msg_count,
9215 x_msg_data => x_msg_data,
9216 p_api_type => G_API_TYPE);
9217 WHEN OTHERS THEN
9218 --Lease App Details Cursor
9219 IF lap_db_val_csr%ISOPEN
9220 THEN
9221 CLOSE lap_db_val_csr;
9222 END IF;
9223 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
9224 p_api_name => l_api_name,
9225 p_pkg_name => G_PKG_NAME,
9226 p_exc_name => 'OTHERS',
9227 x_msg_count => x_msg_count,
9228 x_msg_data => x_msg_data,
9229 p_api_type => G_API_TYPE);
9230 END lease_app_cancel;
9231
9232 -------------------------------------------------------------------------------
9233 -- PROCEDURE lease_app_appeal
9234 -------------------------------------------------------------------------------
9235 -- Start of comments
9236 --
9237 -- Procedure Name : lease_app_appeal
9238 -- Description : This procedure appeals the lease application.
9239 -- Business Rules : This procedure appeals the lease application.
9240 -- Parameters :
9241 -- Version : 1.0
9242 -- History : 26-SEP-2005 PAGARG created
9243 --
9244 -- End of comments
9245 PROCEDURE lease_app_appeal(
9246 p_api_version IN NUMBER,
9247 p_init_msg_list IN VARCHAR2,
9248 x_return_status OUT NOCOPY VARCHAR2,
9249 x_msg_count OUT NOCOPY NUMBER,
9250 x_msg_data OUT NOCOPY VARCHAR2,
9251 p_source_lap_id IN NUMBER,
9252 p_lapv_rec IN lapv_rec_type,
9253 x_lapv_rec OUT NOCOPY lapv_rec_type,
9254 p_lsqv_rec IN lsqv_rec_type,
9255 x_lsqv_rec OUT NOCOPY lsqv_rec_type)
9256 IS
9257 -- Variables Declarations
9258 l_api_version CONSTANT NUMBER DEFAULT G_INIT_VERSION;
9259 l_api_name CONSTANT VARCHAR2(30) DEFAULT 'LEASE_APP_APPEAL';
9260 l_return_status VARCHAR2(1);
9261
9262 -- Record/Table Type Declarations
9263 l_lapv_rec lapv_rec_type;
9264 l_lsqv_rec lsqv_rec_type;
9265 l_crr_rec crr_rec_type;
9266 x_crr_rec crr_rec_type;
9267 l_parameter_list wf_parameter_list_t;
9268 p_event_name VARCHAR2(240) :='oracle.apps.okl.sales.leaseapplication.appeal';
9269
9270 --Cursor to obtain Checklist Header Id
9271 CURSOR chk_hdr_dtls_csr(cp_lap_id NUMBER)
9272 IS
9273 SELECT CHK.ID CHECKLIST_ID
9274 FROM OKL_LEASE_APPLICATIONS_B LAP
9275 , OKL_CHECKLISTS CHK
9276 WHERE CHK.CHECKLIST_OBJ_TYPE_CODE = 'LEASE_APPL'
9277 AND CHK.CHECKLIST_OBJ_ID = LAP.ID
9278 AND LAP.ID = cp_lap_id;
9279 chk_hdr_dtls_rec chk_hdr_dtls_csr%ROWTYPE;
9280
9281 --Cursor to obtain Source Lease App details
9282 CURSOR src_lse_app_dtls_csr(cp_lap_id NUMBER)
9283 IS
9284 SELECT LSQ.ID LSQ_ID
9285 , CRR.CREDIT_REQUEST_ID
9286 , LAP.APPLICATION_STATUS
9287 , LAP.APPLICATION_STATUS APPEAL_SCOPE
9288 FROM OKL_LEASE_QUOTES_B LSQ
9289 , OKL_LEASE_APPLICATIONS_B LAP
9290 , AR_CMGT_CREDIT_REQUESTS CRR
9291 WHERE LSQ.PARENT_OBJECT_ID = LAP.ID
9292 AND LSQ.PARENT_OBJECT_CODE = 'LEASEAPP'
9293 AND LSQ.PRIMARY_QUOTE = 'Y'
9294 AND CRR.SOURCE_COLUMN1 = LAP.ID
9295 AND CRR.SOURCE_COLUMN3 = 'LEASEAPP'
9296 AND LAP.ID = cp_lap_id;
9297 src_lse_app_dtls_rec src_lse_app_dtls_csr%ROWTYPE;
9298 BEGIN
9299 l_return_status := OKL_API.G_RET_STS_SUCCESS;
9300 L_MODULE := 'OKL.PLSQL.OKL_LEASE_APP_PVT.LEASE_APP_APPEAL';
9301
9302 -- check for logging on PROCEDURE level
9303 L_DEBUG_ENABLED := NVL(OKL_DEBUG_PUB.CHECK_LOG_ENABLED, 'N');
9304 IS_DEBUG_PROCEDURE_ON := NVL(OKL_DEBUG_PUB.CHECK_LOG_ON(L_MODULE, FND_LOG.LEVEL_PROCEDURE), FALSE);
9305 -- check for logging on STATEMENT level
9306 IS_DEBUG_STATEMENT_ON := NVL(OKL_DEBUG_PUB.CHECK_LOG_ON(L_MODULE, FND_LOG.LEVEL_STATEMENT), FALSE);
9307
9308 -- call START_ACTIVITY to create savepoint, check compatibility
9309 -- and initialize message list
9310 l_return_status := OKL_API.START_ACTIVITY(
9311 p_api_name => l_api_name
9312 ,p_pkg_name => G_PKG_NAME
9313 ,p_init_msg_list => p_init_msg_list
9314 ,l_api_version => l_api_version
9315 ,p_api_version => p_api_version
9316 ,p_api_type => G_API_TYPE
9317 ,x_return_status => l_return_status);
9318
9319 -- check if activity started successfully
9320 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
9321 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9322 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
9323 RAISE OKL_API.G_EXCEPTION_ERROR;
9324 END IF;
9325
9326 l_lapv_rec := p_lapv_rec;
9327 l_lsqv_rec := p_lsqv_rec;
9328 l_lapv_rec.application_status := 'PR-ACCEPTED';
9329 l_lapv_rec.parent_leaseapp_id := p_source_lap_id;
9330 l_lapv_rec.action := 'APPEAL';
9331
9332 --Validate Lease Application Template
9333 --Validate Program Agreement
9334 --Validate VP and LAT association
9335 --Validate Lease Quote
9336 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
9337 THEN
9338 OKL_DEBUG_PUB.LOG_DEBUG(
9339 FND_LOG.LEVEL_PROCEDURE
9340 ,L_MODULE
9341 ,'begin debug call LEASE_APP_VAL');
9342 END IF;
9343
9344 LEASE_APP_VAL(
9345 p_api_version => p_api_version
9346 ,p_init_msg_list => OKL_API.G_FALSE
9347 ,x_return_status => l_return_status
9348 ,x_msg_count => x_msg_count
9349 ,x_msg_data => x_msg_data
9350 ,p_lapv_rec => l_lapv_rec
9351 ,p_lsqv_rec => l_lsqv_rec);
9352
9353 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
9354 THEN
9355 OKL_DEBUG_PUB.LOG_DEBUG(
9356 FND_LOG.LEVEL_PROCEDURE
9357 ,L_MODULE
9358 ,'end debug call LEASE_APP_VAL');
9359 END IF;
9360
9361 -- write to log
9362 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
9363 OKL_DEBUG_PUB.LOG_DEBUG(
9364 FND_LOG.LEVEL_STATEMENT
9365 ,L_MODULE || ' Result of LEASE_APP_VAL'
9366 ,'l_return_status ' || l_return_status);
9367 END IF; -- end of statement level debug
9368
9369 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
9370 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9371 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
9372 RAISE OKL_API.G_EXCEPTION_ERROR;
9373 END IF;
9374
9375 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
9376 THEN
9377 OKL_DEBUG_PUB.LOG_DEBUG(
9378 FND_LOG.LEVEL_PROCEDURE
9379 ,L_MODULE
9380 ,'begin debug call OKL_LAP_PVT.INSERT_ROW');
9381 END IF;
9382
9383 -- call the TAPI insert_row to create a lease application
9384 OKL_LAP_PVT.INSERT_ROW(
9385 p_api_version => p_api_version
9386 ,p_init_msg_list => OKL_API.G_FALSE
9387 ,x_return_status => l_return_status
9388 ,x_msg_count => x_msg_count
9389 ,x_msg_data => x_msg_data
9390 ,p_lapv_rec => l_lapv_rec
9391 ,x_lapv_rec => x_lapv_rec);
9392
9393 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
9394 THEN
9395 OKL_DEBUG_PUB.LOG_DEBUG(
9396 FND_LOG.LEVEL_PROCEDURE
9397 ,L_MODULE
9398 ,'end debug call OKL_LAP_PVT.INSERT_ROW');
9399 END IF;
9400
9401 -- write to log
9402 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
9403 OKL_DEBUG_PUB.LOG_DEBUG(
9404 FND_LOG.LEVEL_STATEMENT
9405 ,L_MODULE || ' Result of OKL_LAP_PVT.INSERT_ROW'
9406 ,'l_lapv_rec.reference_number ' || to_char(l_lapv_rec.reference_number) ||
9407 ' l_lapv_rec.id '|| l_lapv_rec.id ||
9408 ' result status ' || l_return_status ||
9409 ' x_msg_data ' || x_msg_data);
9410 END IF; -- end of statement level debug
9411
9412 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
9413 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9414 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
9415 RAISE OKL_API.G_EXCEPTION_ERROR;
9416 END IF;
9417
9418 --Populate lease quote rec values
9419 l_lsqv_rec.parent_object_code := 'LEASEAPP';
9420 l_lsqv_rec.parent_object_id := x_lapv_rec.id;
9421 l_lsqv_rec.reference_number := get_next_seq_num(
9422 'OKL_LSQ_REF_SEQ'
9423 ,'OKL_LEASE_QUOTES_B'
9424 ,'REFERENCE_NUMBER');
9425 l_lsqv_rec.status := 'CT-ACCEPTED';
9426 l_lsqv_rec.primary_quote := 'Y';
9427
9428 --Obtain the details of Source Lease Application
9429 --Obtain the lease quote id attached to lease application and pass it as
9430 --source to duplicate lease quote.
9431 --This way it will duplicate lease quote with header values from rec and
9432 --rest of configuration, adjustment, pricing data from the source lease quote id
9433 OPEN src_lse_app_dtls_csr(p_source_lap_id);
9434 FETCH src_lse_app_dtls_csr INTO src_lse_app_dtls_rec;
9435 CLOSE src_lse_app_dtls_csr;
9436
9437 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
9438 THEN
9439 OKL_DEBUG_PUB.LOG_DEBUG(
9440 FND_LOG.LEVEL_PROCEDURE
9441 ,L_MODULE
9442 ,'begin debug call OKL_LEASE_QUOTE_PVT.DUPLICATE_LEASE_QTE');
9443 END IF;
9444
9445 -- call the procedure to create lease quote line
9446 OKL_LEASE_QUOTE_PVT.DUPLICATE_LEASE_QTE(
9447 p_api_version => p_api_version
9448 ,p_init_msg_list => OKL_API.G_FALSE
9449 ,p_transaction_control => OKL_API.G_TRUE
9450 ,p_source_quote_id => src_lse_app_dtls_rec.lsq_id
9451 ,p_lease_qte_rec => l_lsqv_rec
9452 ,x_lease_qte_rec => x_lsqv_rec
9453 ,x_return_status => l_return_status
9454 ,x_msg_count => x_msg_count
9455 ,x_msg_data => x_msg_data);
9456
9457 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
9458 THEN
9459 OKL_DEBUG_PUB.LOG_DEBUG(
9460 FND_LOG.LEVEL_PROCEDURE
9461 ,L_MODULE
9462 ,'end debug call OKL_LEASE_QUOTE_PVT.DUPLICATE_LEASE_QTE');
9463 END IF;
9464
9465 -- write to log
9466 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
9467 OKL_DEBUG_PUB.LOG_DEBUG(
9468 FND_LOG.LEVEL_STATEMENT
9469 ,L_MODULE || ' Result of OKL_LEASE_QUOTE_PVT.DUPLICATE_LEASE_QTE'
9470 ,'l_lsqv_rec.reference_number ' || to_char(l_lsqv_rec.reference_number) ||
9471 ' l_lsqv_rec.id '|| l_lsqv_rec.id ||
9472 ' result status ' || l_return_status ||
9473 ' x_msg_data ' || x_msg_data);
9474 END IF; -- end of statement level debug
9475
9476 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
9477 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9478 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
9479 RAISE OKL_API.G_EXCEPTION_ERROR;
9480 END IF;
9481
9482 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
9483 THEN
9484 OKL_DEBUG_PUB.LOG_DEBUG(
9485 FND_LOG.LEVEL_PROCEDURE
9486 ,L_MODULE
9487 ,'begin debug call CREATE_CREDIT_APP');
9488 END IF;
9489
9490 IF(src_lse_app_dtls_rec.application_status = 'CR-APPROVED')
9491 THEN
9492 l_crr_rec.credit_request_type := 'APPEAL';
9493 ELSIF(src_lse_app_dtls_rec.application_status IN ('CR-REJECTED', 'RECOM_NOT_APPROVED'))
9494 THEN
9495 l_crr_rec.credit_request_type := 'APPEAL_REJECTION';
9496 END IF;
9497 l_crr_rec.parent_credit_request_id := src_lse_app_dtls_rec.credit_request_id;
9498 --call to duplicate Credit Lease Application
9499 CREATE_CREDIT_APP(
9500 p_api_version => p_api_version
9501 ,p_init_msg_list => OKL_API.G_FALSE
9502 ,x_return_status => l_return_status
9503 ,x_msg_count => x_msg_count
9504 ,x_msg_data => x_msg_data
9505 ,p_lapv_rec => x_lapv_rec
9506 ,p_crr_rec => l_crr_rec
9507 ,x_crr_rec => x_crr_rec);
9508
9509 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
9510 THEN
9511 OKL_DEBUG_PUB.LOG_DEBUG(
9512 FND_LOG.LEVEL_PROCEDURE
9513 ,L_MODULE
9514 ,'end debug call CREATE_CREDIT_APP');
9515 END IF;
9516
9517 -- write to log
9518 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
9519 OKL_DEBUG_PUB.LOG_DEBUG(
9520 FND_LOG.LEVEL_STATEMENT
9521 ,L_MODULE || ' Result of CREATE_CREDIT_APP'
9522 ,' result status ' || l_return_status);
9523 END IF; -- end of statement level debug
9524
9525 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
9526 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9527 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
9528 RAISE OKL_API.G_EXCEPTION_ERROR;
9529 END IF;
9530
9531 OPEN chk_hdr_dtls_csr(p_source_lap_id);
9532 FETCH chk_hdr_dtls_csr INTO chk_hdr_dtls_rec;
9533 CLOSE chk_hdr_dtls_csr;
9534
9535 IF(chk_hdr_dtls_rec.checklist_id IS NOT NULL)
9536 THEN
9537 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
9538 THEN
9539 OKL_DEBUG_PUB.LOG_DEBUG(
9540 FND_LOG.LEVEL_PROCEDURE
9541 ,L_MODULE
9542 ,'begin debug call CHECKLIST_INST_CRE');
9543 END IF;
9544
9545 --call to create Checklist Instance
9546 CHECKLIST_INST_CRE(
9547 p_api_version => p_api_version
9548 ,p_init_msg_list => OKL_API.G_FALSE
9549 ,x_return_status => l_return_status
9550 ,x_msg_count => x_msg_count
9551 ,x_msg_data => x_msg_data
9552 ,p_lap_id => x_lapv_rec.id
9553 ,p_chklst_tmpl_id => chk_hdr_dtls_rec.checklist_id);
9554
9555 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
9556 THEN
9557 OKL_DEBUG_PUB.LOG_DEBUG(
9558 FND_LOG.LEVEL_PROCEDURE
9559 ,L_MODULE
9560 ,'end debug call CHECKLIST_INST_CRE');
9561 END IF;
9562
9563 -- write to log
9564 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
9565 OKL_DEBUG_PUB.LOG_DEBUG(
9566 FND_LOG.LEVEL_STATEMENT
9567 ,L_MODULE || ' Result of CHECKLIST_INST_CRE'
9568 ,' result status ' || l_return_status);
9569 END IF; -- end of statement level debug
9570
9571 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
9572 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9573 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
9574 RAISE OKL_API.G_EXCEPTION_ERROR;
9575 END IF;
9576 END IF; -- Condition to check for call to create checklist instance
9577
9578 --Update the status of Parent Lease Application as in Progress
9579 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
9580 THEN
9581 OKL_DEBUG_PUB.LOG_DEBUG(
9582 FND_LOG.LEVEL_PROCEDURE
9583 ,L_MODULE
9584 ,'begin debug call SET_IN_PROGRESS_STATUS');
9585 END IF;
9586
9587 --call the procedure to update a lease application status
9588 SET_IN_PROGRESS_STATUS(
9589 p_api_version => p_api_version
9590 ,p_init_msg_list => OKL_API.G_FALSE
9591 ,p_lap_id => p_source_lap_id
9592 ,p_action => 'APPEAL'
9593 ,x_return_status => l_return_status
9594 ,x_msg_count => x_msg_count
9595 ,x_msg_data => x_msg_data);
9596
9597 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
9598 THEN
9599 OKL_DEBUG_PUB.LOG_DEBUG(
9600 FND_LOG.LEVEL_PROCEDURE
9601 ,L_MODULE
9602 ,'end debug call SET_IN_PROGRESS_STATUS');
9603 END IF;
9604
9605 -- write to log
9606 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
9607 OKL_DEBUG_PUB.LOG_DEBUG(
9608 FND_LOG.LEVEL_STATEMENT
9609 ,L_MODULE || ' Result of SET_IN_PROGRESS_STATUS'
9610 ,'return status ' || l_return_status ||
9611 ' x_msg_data ' || x_msg_data);
9612 END IF; -- end of statement level debug
9613
9614 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
9615 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9616 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
9617 RAISE OKL_API.G_EXCEPTION_ERROR;
9618 END IF;
9619
9620 -- raise the business event passing the Lease Application id added to the parameter list
9621 wf_event.addparametertolist('LAPP_ID'
9622 ,x_lapv_rec.id
9623 ,l_parameter_list);
9624 okl_wf_pvt.raise_event(p_api_version => p_api_version
9625 ,p_init_msg_list => p_init_msg_list
9626 ,x_return_status => l_return_status
9627 ,x_msg_count => x_msg_count
9628 ,x_msg_data => x_msg_data
9629 ,p_event_name => p_event_name
9630 ,p_parameters => l_parameter_list);
9631
9632 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
9633 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9634 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
9635 RAISE OKL_API.G_EXCEPTION_ERROR;
9636 END IF;
9637
9638 x_return_status := l_return_status;
9639 OKL_API.END_ACTIVITY(
9640 x_msg_count => x_msg_count
9641 ,x_msg_data => x_msg_data);
9642 EXCEPTION
9643 WHEN OKL_API.G_EXCEPTION_ERROR THEN
9644 --Checklist Header Details Cursor
9645 IF chk_hdr_dtls_csr%ISOPEN
9646 THEN
9647 CLOSE chk_hdr_dtls_csr;
9648 END IF;
9649 --Source Lease Application Details Cursor
9650 IF src_lse_app_dtls_csr%ISOPEN
9651 THEN
9652 CLOSE src_lse_app_dtls_csr;
9653 END IF;
9654 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
9655 p_api_name => l_api_name,
9656 p_pkg_name => G_PKG_NAME,
9657 p_exc_name => 'OKL_API.G_RET_STS_ERROR',
9658 x_msg_count => x_msg_count,
9659 x_msg_data => x_msg_data,
9660 p_api_type => G_API_TYPE);
9661 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
9662 --Checklist Header Details Cursor
9663 IF chk_hdr_dtls_csr%ISOPEN
9664 THEN
9665 CLOSE chk_hdr_dtls_csr;
9666 END IF;
9667 --Source Lease Application Details Cursor
9668 IF src_lse_app_dtls_csr%ISOPEN
9669 THEN
9670 CLOSE src_lse_app_dtls_csr;
9671 END IF;
9672 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
9673 p_api_name => l_api_name,
9674 p_pkg_name => G_PKG_NAME,
9675 p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
9676 x_msg_count => x_msg_count,
9677 x_msg_data => x_msg_data,
9678 p_api_type => G_API_TYPE);
9679 WHEN OTHERS THEN
9680 --Checklist Header Details Cursor
9681 IF chk_hdr_dtls_csr%ISOPEN
9682 THEN
9683 CLOSE chk_hdr_dtls_csr;
9684 END IF;
9685 --Source Lease Application Details Cursor
9686 IF src_lse_app_dtls_csr%ISOPEN
9687 THEN
9688 CLOSE src_lse_app_dtls_csr;
9689 END IF;
9690 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
9691 p_api_name => l_api_name,
9692 p_pkg_name => G_PKG_NAME,
9693 p_exc_name => 'OTHERS',
9694 x_msg_count => x_msg_count,
9695 x_msg_data => x_msg_data,
9696 p_api_type => G_API_TYPE);
9697 END lease_app_appeal;
9698
9699 -------------------------------------------------------------------------------
9700 -- PROCEDURE check_eligibility
9701 -------------------------------------------------------------------------------
9702 -- Start of comments
9703 --
9704 -- Procedure Name : check_eligibility
9705 -- Description : This procedure checks whether lease app is eligible for
9706 -- given action or not.
9707 -- Business Rules : This procedure checks whether lease app is eligible for
9708 -- given action or not.
9709 -- Parameters :
9710 -- Version : 1.0
9711 -- History : 06-OCT-2005 PAGARG created
9712 --
9713 -- End of comments
9714 PROCEDURE check_eligibility(
9715 p_api_version IN NUMBER,
9716 p_init_msg_list IN VARCHAR2,
9717 x_return_status OUT NOCOPY VARCHAR2,
9718 x_msg_count OUT NOCOPY NUMBER,
9719 x_msg_data OUT NOCOPY VARCHAR2,
9720 p_lap_id IN NUMBER,
9721 p_action IN VARCHAR2)
9722 IS
9723 -- Variables Declarations
9724 l_api_version CONSTANT NUMBER DEFAULT G_INIT_VERSION;
9725 l_api_name CONSTANT VARCHAR2(30) DEFAULT 'CHECK_ELIGIBILITY';
9726 l_return_status VARCHAR2(1);
9727
9728 -- Record/Table Type Declarations
9729 flag BOOLEAN;
9730 l_count NUMBER;
9731 l_exp_date DATE;
9732 l_meaning VARCHAR2(80);
9733
9734 CURSOR child_lse_app_csr(cp_lap_id IN NUMBER)
9735 IS
9736 SELECT ID
9737 , REFERENCE_NUMBER
9738 , APPLICATION_STATUS
9739 FROM OKL_LEASE_APPLICATIONS_B
9740 WHERE ID <> cp_lap_id
9741 CONNECT BY PARENT_LEASEAPP_ID = PRIOR ID
9742 START WITH ID = cp_lap_id;
9743 child_lse_app_rec child_lse_app_csr%ROWTYPE;
9744
9745 CURSOR parent_lse_app_csr(cp_lap_id IN NUMBER)
9746 IS
9747 SELECT ID
9748 , REFERENCE_NUMBER
9749 , APPLICATION_STATUS
9750 FROM OKL_LEASE_APPLICATIONS_B
9751 WHERE ID <> cp_lap_id
9752 CONNECT BY PRIOR PARENT_LEASEAPP_ID = ID
9753 START WITH ID = cp_lap_id;
9754 parent_lse_app_rec parent_lse_app_csr%ROWTYPE;
9755
9756 --Cursor to check whether a given recommendation is added to given Lease App
9757 CURSOR credit_recom_csr(p_lap_id NUMBER, p_recomm VARCHAR2) IS
9758 SELECT COUNT(*)
9759 FROM AR_CMGT_CF_RECOMMENDS RCM
9760 , AR_CMGT_CREDIT_REQUESTS CCR
9761 WHERE RCM.CREDIT_REQUEST_ID = CCR.CREDIT_REQUEST_ID
9762 AND CCR.SOURCE_COLUMN3 = 'LEASEAPP'
9763 AND RCM.CREDIT_RECOMMENDATION = p_recomm
9764 AND CCR.SOURCE_COLUMN1 = p_lap_id;
9765
9766 --Cursor to obtain appeal period expiration date for a given Lease App
9767 CURSOR appeal_exp_date_csr(p_lap_id NUMBER)
9768 IS
9769 SELECT RCM.RECOMMENDATION_VALUE1 + TRUNC(LAST_UPDATED) APPEAL_EXP_DATE
9770 FROM AR_CMGT_CASE_FOLDERS CCF
9771 , AR_CMGT_CREDIT_REQUESTS CCR
9772 , AR_CMGT_CF_RECOMMENDS RCM
9773 WHERE CCR.CREDIT_REQUEST_ID = CCF.CREDIT_REQUEST_ID
9774 AND CCR.SOURCE_COLUMN3 = 'LEASEAPP'
9775 AND CCF.STATUS = 'CLOSED'
9776 AND RCM.CREDIT_REQUEST_ID = CCR.CREDIT_REQUEST_ID
9777 AND RCM.CREDIT_RECOMMENDATION = 'AUTHORIZE_APPEAL'
9778 AND CCR.SOURCE_COLUMN1 = p_lap_id;
9779
9780 --Cursor to Obtain Contract Number created from given lease app
9781 CURSOR contract_dtls_csr(p_lap_id NUMBER)
9782 IS
9783 SELECT CHR.CONTRACT_NUMBER CONTRACT_NUMBER
9784 FROM OKC_K_HEADERS_B CHR
9785 , OKC_STATUSES_V CSTS
9786 WHERE CHR.ORIG_SYSTEM_SOURCE_CODE = 'OKL_LEASE_APP'
9787 AND CHR.STS_CODE = CSTS.CODE
9788 AND CSTS.STE_CODE <> 'CANCELLED'
9789 AND CHR.ORIG_SYSTEM_ID1 = p_lap_id;
9790 contract_dtls_rec contract_dtls_csr%ROWTYPE;
9791
9792 --Cursor to obtain Lease Application Details
9793 CURSOR lse_app_dtls_csr(p_lap_id NUMBER) IS
9794 SELECT LAB.REFERENCE_NUMBER
9795 FROM OKL_LEASE_APPLICATIONS_B LAB
9796 WHERE LAB.ID = p_lap_id;
9797 lse_app_dtls_rec lse_app_dtls_csr%ROWTYPE;
9798 BEGIN
9799 l_return_status := OKL_API.G_RET_STS_SUCCESS;
9800 L_MODULE := 'OKL.PLSQL.OKL_LEASE_APP_PVT.CHECK_ELIGIBILITY';
9801
9802 -- check for logging on PROCEDURE level
9803 L_DEBUG_ENABLED := NVL(OKL_DEBUG_PUB.CHECK_LOG_ENABLED, 'N');
9804 IS_DEBUG_PROCEDURE_ON := NVL(OKL_DEBUG_PUB.CHECK_LOG_ON(L_MODULE, FND_LOG.LEVEL_PROCEDURE), FALSE);
9805 -- check for logging on STATEMENT level
9806 IS_DEBUG_STATEMENT_ON := NVL(OKL_DEBUG_PUB.CHECK_LOG_ON(L_MODULE, FND_LOG.LEVEL_STATEMENT), FALSE);
9807
9808 -- call START_ACTIVITY to create savepoint, check compatibility
9809 -- and initialize message list
9810 l_return_status := OKL_API.START_ACTIVITY(
9811 p_api_name => l_api_name
9812 ,p_pkg_name => G_PKG_NAME
9813 ,p_init_msg_list => p_init_msg_list
9814 ,l_api_version => l_api_version
9815 ,p_api_version => p_api_version
9816 ,p_api_type => G_API_TYPE
9817 ,x_return_status => l_return_status);
9818
9819 -- check if activity started successfully
9820 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
9821 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
9822 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
9823 RAISE OKL_API.G_EXCEPTION_ERROR;
9824 END IF;
9825
9826 OPEN lse_app_dtls_csr(p_lap_id);
9827 FETCH lse_app_dtls_csr INTO lse_app_dtls_rec;
9828 CLOSE lse_app_dtls_csr;
9829
9830 IF(p_action = 'APPEAL')
9831 THEN
9832 FOR child_lse_app_rec IN child_lse_app_csr(p_lap_id)
9833 LOOP
9834 IF child_lse_app_rec.application_status NOT IN ('CANCELED', 'WITHDRAWN')
9835 THEN
9836 l_return_status := OKL_API.G_RET_STS_ERROR;
9837 l_meaning := get_lookup_meaning('OKL_LEASE_APP_ACTION', 'APPEAL');
9838 OKL_API.SET_MESSAGE(
9839 p_app_name => G_APP_NAME,
9840 p_msg_name => 'OKL_SO_LSE_APP_APP_RESUB_ERR',
9841 p_token1 => 'ACTION',
9842 p_token1_value => l_meaning,
9843 p_token2 => 'TEXT',
9844 p_token2_value => lse_app_dtls_rec.reference_number);
9845 RAISE OKL_API.G_EXCEPTION_ERROR;
9846 END IF;
9847 END LOOP;
9848 OPEN credit_recom_csr(p_lap_id, 'AUTHORIZE_APPEAL');
9849 FETCH credit_recom_csr INTO l_count;
9850 CLOSE credit_recom_csr;
9851 IF(l_count = 1)
9852 THEN
9853 OPEN appeal_exp_date_csr(p_lap_id);
9854 FETCH appeal_exp_date_csr INTO l_exp_date;
9855 CLOSE appeal_exp_date_csr;
9856 IF(l_exp_Date < TRUNC(SYSDATE))
9857 THEN
9858 l_return_status := OKL_API.G_RET_STS_ERROR;
9859 OKL_API.SET_MESSAGE(
9860 p_app_name => G_APP_NAME,
9861 p_msg_name => 'OKL_SO_LSE_APP_APPEAL_PRD_EXP',
9862 p_token1 => 'TEXT',
9863 p_token1_value => lse_app_dtls_rec.reference_number);
9864 RAISE OKL_API.G_EXCEPTION_ERROR;
9865 END IF;
9866 ELSE
9867 l_return_status := OKL_API.G_RET_STS_ERROR;
9868 OKL_API.SET_MESSAGE(
9869 p_app_name => G_APP_NAME,
9870 p_msg_name => 'OKL_SO_LSE_APP_APPEAL_AUTH_ERR',
9871 p_token1 => 'TEXT',
9872 p_token1_value => lse_app_dtls_rec.reference_number);
9873 RAISE OKL_API.G_EXCEPTION_ERROR;
9874 END IF;
9875 END IF;
9876
9877 IF(p_action = 'RESUBMIT' )
9878 THEN
9879 -- Bug# 7140398 - Start
9880 -- Donot allow resubmit in case the primary quote is Credit Declined.
9881 IF (is_primary_quote_declined(p_lap_id)) THEN
9882 l_return_status := OKL_API.G_RET_STS_ERROR;
9883 OKL_API.SET_MESSAGE(
9884 p_app_name => G_APP_NAME,
9885 p_msg_name => 'OKL_SO_DEC_OFFER_RESUBM_ERR');
9886 RAISE OKL_API.G_EXCEPTION_ERROR;
9887 END IF;
9888 -- Bug# 7140398 - End
9889 FOR child_lse_app_rec IN child_lse_app_csr(p_lap_id)
9890 LOOP
9891 IF child_lse_app_rec.application_status NOT IN ('CANCELED', 'WITHDRAWN')
9892 THEN
9893 l_return_status := OKL_API.G_RET_STS_ERROR;
9894 l_meaning := get_lookup_meaning('OKL_LEASE_APP_ACTION', 'RESUBMIT');
9895 OKL_API.SET_MESSAGE(
9896 p_app_name => G_APP_NAME,
9897 p_msg_name => 'OKL_SO_LSE_APP_APP_RESUB_ERR',
9898 p_token1 => 'ACTION',
9899 p_token1_value => l_meaning,
9900 p_token2 => 'TEXT',
9901 p_token2_value => lse_app_dtls_rec.reference_number);
9902 RAISE OKL_API.G_EXCEPTION_ERROR;
9903 RAISE OKL_API.G_EXCEPTION_ERROR;
9904 END IF;
9905 END LOOP;
9906 END IF;
9907
9908 IF(p_action = 'CANCEL')
9909 THEN
9910 FOR child_lse_app_rec IN child_lse_app_csr(p_lap_id)
9911 LOOP
9912 IF child_lse_app_rec.application_status <> 'CANCELED'
9913 THEN
9914 l_return_status := OKL_API.G_RET_STS_ERROR;
9915 OKL_API.SET_MESSAGE(
9916 p_app_name => G_APP_NAME,
9917 p_msg_name => 'OKL_SO_LSE_APP_CANCEL_ERR',
9918 p_token1 => 'TEXT',
9919 p_token1_value => lse_app_dtls_rec.reference_number);
9920 RAISE OKL_API.G_EXCEPTION_ERROR;
9921 END IF;
9922 END LOOP;
9923 END IF;
9924
9925 IF(p_action = 'WITHDRAW')
9926 THEN
9927 FOR child_lse_app_rec IN child_lse_app_csr(p_lap_id)
9928 LOOP
9929 IF child_lse_app_rec.application_status IN ('APPEALINPROG', 'RESUBMITINPROG')
9930 THEN
9931 l_return_status := OKL_API.G_RET_STS_ERROR;
9932 l_meaning := get_lookup_meaning('OKL_LEASE_APP_ACTION', 'WITHDRAW');
9933 OKL_API.SET_MESSAGE(
9934 p_app_name => G_APP_NAME,
9935 p_msg_name => 'OKL_SO_LSE_APP_IN_PROG_ERR',
9936 p_token1 => 'ACTION',
9937 p_token1_value => l_meaning,
9938 p_token2 => 'TEXT',
9939 p_token2_value => lse_app_dtls_rec.reference_number);
9940 RAISE OKL_API.G_EXCEPTION_ERROR;
9941 END IF;
9942 END LOOP;
9943 END IF;
9944
9945 IF(p_action = 'CRECON')
9946 THEN
9947 -- Bug# 7140398 - Start
9948 -- Donot allow convertion to contract in case the primary quote is Credit Declined.
9949 IF (is_primary_quote_declined(p_lap_id)) THEN
9950 l_return_status := OKL_API.G_RET_STS_ERROR;
9951 OKL_API.SET_MESSAGE(
9952 p_app_name => G_APP_NAME,
9953 p_msg_name => 'OKL_SO_DEC_OFFER_TO_CHR_ERR');
9954 RAISE OKL_API.G_EXCEPTION_ERROR;
9955 END IF;
9956 -- Bug# 7140398 - End
9957
9958 FOR child_lse_app_rec IN child_lse_app_csr(p_lap_id)
9959 LOOP
9960 IF child_lse_app_rec.application_status IN ('APPEALINPROG', 'RESUBMITINPROG')
9961 THEN
9962 l_return_status := OKL_API.G_RET_STS_ERROR;
9963 l_meaning := get_lookup_meaning('OKL_LEASE_APP_ACTION', 'CRECON');
9964 OKL_API.SET_MESSAGE(
9965 p_app_name => G_APP_NAME,
9966 p_msg_name => 'OKL_SO_LSE_APP_IN_PROG_ERR',
9967 p_token1 => 'ACTION',
9968 p_token1_value => l_meaning,
9969 p_token2 => 'TEXT',
9970 p_token2_value => lse_app_dtls_rec.reference_number);
9971 RAISE OKL_API.G_EXCEPTION_ERROR;
9972 END IF;
9973 IF child_lse_app_rec.application_status = 'CONV-K'
9974 THEN
9975 OPEN contract_dtls_csr(child_lse_app_rec.id);
9976 FETCH contract_dtls_csr INTO contract_dtls_rec;
9977 CLOSE contract_dtls_csr;
9978 l_return_status := OKL_API.G_RET_STS_ERROR;
9979 OKL_API.SET_MESSAGE(
9980 p_app_name => G_APP_NAME,
9981 p_msg_name => 'OKL_SO_LSE_APP_CRE_CON_ERR',
9982 p_token1 => 'CONTRACT_NUM',
9983 p_token1_value => contract_dtls_rec.contract_number,
9984 p_token2 => 'TEXT',
9985 p_token2_value => child_lse_app_rec.reference_number);
9986 RAISE OKL_API.G_EXCEPTION_ERROR;
9987 END IF;
9988 END LOOP;
9989 FOR parent_lse_app_rec IN parent_lse_app_csr(p_lap_id)
9990 LOOP
9991 IF parent_lse_app_rec.application_status = 'CONV-K'
9992 THEN
9993 OPEN contract_dtls_csr(parent_lse_app_rec.id);
9994 FETCH contract_dtls_csr INTO contract_dtls_rec;
9995 CLOSE contract_dtls_csr;
9996 l_return_status := OKL_API.G_RET_STS_ERROR;
9997 OKL_API.SET_MESSAGE(
9998 p_app_name => G_APP_NAME,
9999 p_msg_name => 'OKL_SO_LSE_APP_CRE_CON_ERR',
10000 p_token1 => 'CONTRACT_NUM',
10001 p_token1_value => contract_dtls_rec.contract_number,
10002 p_token2 => 'TEXT',
10003 p_token2_value => parent_lse_app_rec.reference_number);
10004 RAISE OKL_API.G_EXCEPTION_ERROR;
10005 END IF;
10006 END LOOP;
10007 END IF;
10008
10009 x_return_status := l_return_status;
10010 OKL_API.END_ACTIVITY(
10011 x_msg_count => x_msg_count
10012 ,x_msg_data => x_msg_data);
10013 EXCEPTION
10014 WHEN OKL_API.G_EXCEPTION_ERROR THEN
10015 --Check if Child Lease App cursor is open
10016 IF child_lse_app_csr%ISOPEN
10017 THEN
10018 CLOSE child_lse_app_csr;
10019 END IF;
10020 --Check if Parent Lease App cursor is open
10021 IF parent_lse_app_csr%ISOPEN
10022 THEN
10023 CLOSE parent_lse_app_csr;
10024 END IF;
10025 --Check if Credit Recommendation cursor is open
10026 IF credit_recom_csr%ISOPEN
10027 THEN
10028 CLOSE credit_recom_csr;
10029 END IF;
10030 --Check if Appeal Exp Date cursor is open
10031 IF appeal_exp_date_csr%ISOPEN
10032 THEN
10033 CLOSE appeal_exp_date_csr;
10034 END IF;
10035 --Check if Contract Details cursor is open
10036 IF contract_dtls_csr%ISOPEN
10037 THEN
10038 CLOSE contract_dtls_csr;
10039 END IF;
10040 --Check if Lease App details cursor is open
10041 IF lse_app_dtls_csr%ISOPEN
10042 THEN
10043 CLOSE lse_app_dtls_csr;
10044 END IF;
10045 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
10046 p_api_name => l_api_name,
10047 p_pkg_name => G_PKG_NAME,
10048 p_exc_name => 'OKL_API.G_RET_STS_ERROR',
10049 x_msg_count => x_msg_count,
10050 x_msg_data => x_msg_data,
10051 p_api_type => G_API_TYPE);
10052 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
10053 --Check if Child Lease App cursor is open
10054 IF child_lse_app_csr%ISOPEN
10055 THEN
10056 CLOSE child_lse_app_csr;
10057 END IF;
10058 --Check if Parent Lease App cursor is open
10059 IF parent_lse_app_csr%ISOPEN
10060 THEN
10061 CLOSE parent_lse_app_csr;
10062 END IF;
10063 --Check if Credit Recommendation cursor is open
10064 IF credit_recom_csr%ISOPEN
10065 THEN
10066 CLOSE credit_recom_csr;
10067 END IF;
10068 --Check if Appeal Exp Date cursor is open
10069 IF appeal_exp_date_csr%ISOPEN
10070 THEN
10071 CLOSE appeal_exp_date_csr;
10072 END IF;
10073 --Check if Contract Details cursor is open
10074 IF contract_dtls_csr%ISOPEN
10075 THEN
10076 CLOSE contract_dtls_csr;
10077 END IF;
10078 --Check if Lease App details cursor is open
10079 IF lse_app_dtls_csr%ISOPEN
10080 THEN
10081 CLOSE lse_app_dtls_csr;
10082 END IF;
10083 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
10084 p_api_name => l_api_name,
10085 p_pkg_name => G_PKG_NAME,
10086 p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
10087 x_msg_count => x_msg_count,
10088 x_msg_data => x_msg_data,
10089 p_api_type => G_API_TYPE);
10090 WHEN OTHERS THEN
10091 --Check if Child Lease App cursor is open
10092 IF child_lse_app_csr%ISOPEN
10093 THEN
10094 CLOSE child_lse_app_csr;
10095 END IF;
10096 --Check if Parent Lease App cursor is open
10097 IF parent_lse_app_csr%ISOPEN
10098 THEN
10099 CLOSE parent_lse_app_csr;
10100 END IF;
10101 --Check if Credit Recommendation cursor is open
10102 IF credit_recom_csr%ISOPEN
10103 THEN
10104 CLOSE credit_recom_csr;
10105 END IF;
10106 --Check if Appeal Exp Date cursor is open
10107 IF appeal_exp_date_csr%ISOPEN
10108 THEN
10109 CLOSE appeal_exp_date_csr;
10110 END IF;
10111 --Check if Contract Details cursor is open
10112 IF contract_dtls_csr%ISOPEN
10113 THEN
10114 CLOSE contract_dtls_csr;
10115 END IF;
10116 --Check if Lease App details cursor is open
10117 IF lse_app_dtls_csr%ISOPEN
10118 THEN
10119 CLOSE lse_app_dtls_csr;
10120 END IF;
10121 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
10122 p_api_name => l_api_name,
10123 p_pkg_name => G_PKG_NAME,
10124 p_exc_name => 'OTHERS',
10125 x_msg_count => x_msg_count,
10126 x_msg_data => x_msg_data,
10127 p_api_type => G_API_TYPE);
10128 END check_eligibility;
10129
10130 ------------------------------------------------------------------------------
10131 -- PROCEDURE lease_app_qa_val
10132 ------------------------------------------------------------------------------
10133 -- Start of comments
10134 --
10135 -- Procedure Name : lease_app_qa_val
10136 -- Description : This procedure calls qa validation for lease application.
10137 -- Business Rules : This procedure calls qa validation for lease application.
10138 -- Parameters :
10139 -- Version : 1.0
10140 -- History : 26-Oct-2005 PAGARG created
10141 --
10142 -- End of comments
10143 PROCEDURE lease_app_qa_val(
10144 p_api_version IN NUMBER,
10145 p_init_msg_list IN VARCHAR2,
10146 p_lap_id IN OKL_LEASE_APPLICATIONS_B.ID%TYPE,
10147 x_return_status OUT NOCOPY VARCHAR2,
10148 x_msg_count OUT NOCOPY NUMBER,
10149 x_msg_data OUT NOCOPY VARCHAR2,
10150 x_qa_result OUT NOCOPY VARCHAR2)
10151 IS
10152 -- Variables Declarations
10153 l_api_version CONSTANT NUMBER DEFAULT G_INIT_VERSION;
10154 l_api_name CONSTANT VARCHAR2(30) DEFAULT 'LEASE_APP_QA_VAL';
10155 l_return_status VARCHAR2(1);
10156 BEGIN
10157 l_return_status := OKL_API.G_RET_STS_SUCCESS;
10158 L_MODULE := 'OKL.PLSQL.OKL_LEASE_APP_PVT.LEASE_APP_QA_VAL';
10159
10160 -- check for logging on PROCEDURE level
10161 L_DEBUG_ENABLED := NVL(OKL_DEBUG_PUB.CHECK_LOG_ENABLED, 'N');
10162 IS_DEBUG_PROCEDURE_ON := NVL(OKL_DEBUG_PUB.CHECK_LOG_ON(L_MODULE, FND_LOG.LEVEL_PROCEDURE), FALSE);
10163 -- check for logging on STATEMENT level
10164 IS_DEBUG_STATEMENT_ON := NVL(OKL_DEBUG_PUB.CHECK_LOG_ON(L_MODULE, FND_LOG.LEVEL_STATEMENT), FALSE);
10165
10166 -- call START_ACTIVITY to create savepoint, check compatibility
10167 -- and initialize message list
10168 l_return_status := OKL_API.START_ACTIVITY(
10169 p_api_name => l_api_name
10170 ,p_pkg_name => G_PKG_NAME
10171 ,p_init_msg_list => p_init_msg_list
10172 ,l_api_version => l_api_version
10173 ,p_api_version => p_api_version
10174 ,p_api_type => G_API_TYPE
10175 ,x_return_status => l_return_status);
10176
10177 -- check if activity started successfully
10178 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
10179 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10180 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
10181 RAISE OKL_API.G_EXCEPTION_ERROR;
10182 END IF;
10183
10184 --QA Checker integration
10185 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
10186 THEN
10187 OKL_DEBUG_PUB.LOG_DEBUG(
10188 FND_LOG.LEVEL_PROCEDURE
10189 ,L_MODULE
10190 ,'begin debug call OKL_SALES_QUOTE_QA_PVT.RUN_QA_CHECKER');
10191 END IF;
10192
10193 OKL_SALES_QUOTE_QA_PVT.RUN_QA_CHECKER(
10194 p_api_version => p_api_version
10195 ,p_init_msg_list => OKL_API.G_FALSE
10196 ,p_object_type => 'LEASEAPP'
10197 ,p_object_id => p_lap_id
10198 ,x_qa_result => x_qa_result
10199 ,x_return_status => l_return_status
10200 ,x_msg_count => x_msg_count
10201 ,x_msg_data => x_msg_data);
10202
10203 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
10204 THEN
10205 OKL_DEBUG_PUB.LOG_DEBUG(
10206 FND_LOG.LEVEL_PROCEDURE
10207 ,L_MODULE
10208 ,'end debug call OKL_SALES_QUOTE_QA_PVT.RUN_QA_CHECKER');
10209 END IF;
10210
10211 -- write to log
10212 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
10213 OKL_DEBUG_PUB.LOG_DEBUG(
10214 FND_LOG.LEVEL_STATEMENT
10215 ,L_MODULE || ' Result of OKL_SALES_QUOTE_QA_PVT.RUN_QA_CHECKER'
10216 ,'l_return_status ' || l_return_status);
10217 END IF; -- end of statement level debug
10218
10219 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
10220 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10221 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
10222 RAISE OKL_API.G_EXCEPTION_ERROR;
10223 END IF;
10224 --End of Validatation API call
10225
10226 x_return_status := l_return_status;
10227
10228 OKL_API.END_ACTIVITY(
10229 x_msg_count => x_msg_count
10230 ,x_msg_data => x_msg_data);
10231 EXCEPTION
10232 WHEN OKL_API.G_EXCEPTION_ERROR THEN
10233 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
10234 p_api_name => l_api_name,
10235 p_pkg_name => G_PKG_NAME,
10236 p_exc_name => 'OKL_API.G_RET_STS_ERROR',
10237 x_msg_count => x_msg_count,
10238 x_msg_data => x_msg_data,
10239 p_api_type => G_API_TYPE);
10240
10241 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
10242 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
10243 p_api_name => l_api_name,
10244 p_pkg_name => G_PKG_NAME,
10245 p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
10246 x_msg_count => x_msg_count,
10247 x_msg_data => x_msg_data,
10248 p_api_type => G_API_TYPE);
10249
10250 WHEN OTHERS THEN
10251 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
10252 p_api_name => l_api_name,
10253 p_pkg_name => G_PKG_NAME,
10254 p_exc_name => 'OTHERS',
10255 x_msg_count => x_msg_count,
10256 x_msg_data => x_msg_data,
10257 p_api_type => G_API_TYPE);
10258 END lease_app_qa_val;
10259
10260 ------------------------------------------------------------------------------
10261 -- PROCEDURE lease_app_price
10262 ------------------------------------------------------------------------------
10263 -- Start of comments
10264 --
10265 -- Procedure Name : lease_app_price
10266 -- Description : This procedure calls api to price lease application.
10267 -- Business Rules : This procedure calls api to price lease application.
10268 -- Parameters :
10269 -- Version : 1.0
10270 -- History : 26-Oct-2005 PAGARG created
10271 --
10272 -- End of comments
10273 PROCEDURE lease_app_price(
10274 p_api_version IN NUMBER,
10275 p_init_msg_list IN VARCHAR2,
10276 p_lap_id IN OKL_LEASE_APPLICATIONS_B.ID%TYPE,
10277 x_return_status OUT NOCOPY VARCHAR2,
10278 x_msg_count OUT NOCOPY NUMBER,
10279 x_msg_data OUT NOCOPY VARCHAR2)
10280 IS
10281 -- Variables Declarations
10282 l_api_version CONSTANT NUMBER DEFAULT G_INIT_VERSION;
10283 l_api_name CONSTANT VARCHAR2(30) DEFAULT 'LEASE_APP_PRICE';
10284 l_return_status VARCHAR2(1);
10285
10286 -- Bug#4741121 - viselvar - Modified - Start
10287 l_parameter_list wf_parameter_list_t;
10288 p_event_name VARCHAR2(240) :='oracle.apps.okl.sales.leaseapplication.priced';
10289 -- Bug#4741121 - viselvar - Modified - End
10290
10291 --Cursor to obtain the details of lease quote line of Lease App
10292 CURSOR l_lsq_dtls_csr(p_lap_id NUMBER)
10293 IS
10294 SELECT LSQ.ID LSQ_ID
10295 , LSQ.STATUS STATUS
10296 FROM OKL_LEASE_QUOTES_B LSQ
10297 WHERE LSQ.PARENT_OBJECT_CODE = 'LEASEAPP'
10298 AND LSQ.PRIMARY_QUOTE= 'Y'
10299 AND LSQ.PARENT_OBJECT_ID = p_lap_id;
10300 l_lsq_dtls_rec l_lsq_dtls_csr%ROWTYPE;
10301
10302 BEGIN
10303 l_return_status := OKL_API.G_RET_STS_SUCCESS;
10304 L_MODULE := 'OKL.PLSQL.OKL_LEASE_APP_PVT.LEASE_APP_PRICE';
10305
10306 -- check for logging on PROCEDURE level
10307 L_DEBUG_ENABLED := NVL(OKL_DEBUG_PUB.CHECK_LOG_ENABLED, 'N');
10308 IS_DEBUG_PROCEDURE_ON := NVL(OKL_DEBUG_PUB.CHECK_LOG_ON(L_MODULE, FND_LOG.LEVEL_PROCEDURE), FALSE);
10309 -- check for logging on STATEMENT level
10310 IS_DEBUG_STATEMENT_ON := NVL(OKL_DEBUG_PUB.CHECK_LOG_ON(L_MODULE, FND_LOG.LEVEL_STATEMENT), FALSE);
10311
10312 -- call START_ACTIVITY to create savepoint, check compatibility
10313 -- and initialize message list
10314 l_return_status := OKL_API.START_ACTIVITY(
10315 p_api_name => l_api_name
10316 ,p_pkg_name => G_PKG_NAME
10317 ,p_init_msg_list => p_init_msg_list
10318 ,l_api_version => l_api_version
10319 ,p_api_version => p_api_version
10320 ,p_api_type => G_API_TYPE
10321 ,x_return_status => l_return_status);
10322
10323 -- check if activity started successfully
10324 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
10325 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10326 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
10327 RAISE OKL_API.G_EXCEPTION_ERROR;
10328 END IF;
10329
10330 --Obtain the details of Lease Quote line of Lease App
10331 OPEN l_lsq_dtls_csr(p_lap_id);
10332 FETCH l_lsq_dtls_csr INTO l_lsq_dtls_rec;
10333 CLOSE l_lsq_dtls_csr;
10334
10335 --Pricing Validation
10336 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
10337 THEN
10338 OKL_DEBUG_PUB.LOG_DEBUG(
10339 FND_LOG.LEVEL_PROCEDURE
10340 ,L_MODULE
10341 ,'begin debug call OKL_PRICING_UTILS_PVT.PRICE_STANDARD_QUOTE');
10342 END IF;
10343
10344 OKL_PRICING_UTILS_PVT.PRICE_STANDARD_QUOTE(
10345 p_api_version => p_api_version
10346 ,p_init_msg_list => OKL_API.G_FALSE
10347 ,p_qte_id => l_lsq_dtls_rec.lsq_id
10348 ,x_return_status => l_return_status
10349 ,x_msg_count => x_msg_count
10350 ,x_msg_data => x_msg_data);
10351
10352 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
10353 THEN
10354 OKL_DEBUG_PUB.LOG_DEBUG(
10355 FND_LOG.LEVEL_PROCEDURE
10356 ,L_MODULE
10357 ,'end debug call OKL_PRICING_UTILS_PVT.PRICE_STANDARD_QUOTE');
10358 END IF;
10359
10360 -- write to log
10361 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
10362 OKL_DEBUG_PUB.LOG_DEBUG(
10363 FND_LOG.LEVEL_STATEMENT
10364 ,L_MODULE || ' Result of OKL_PRICING_UTILS_PVT.PRICE_STANDARD_QUOTE'
10365 ,'l_return_status ' || l_return_status);
10366 END IF; -- end of statement level debug
10367
10368 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
10369 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10370 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
10371 RAISE OKL_API.G_EXCEPTION_ERROR;
10372 END IF;
10373 --End of Pricing API call
10374
10375 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
10376 THEN
10377 OKL_DEBUG_PUB.LOG_DEBUG(
10378 FND_LOG.LEVEL_PROCEDURE
10379 ,L_MODULE
10380 ,'begin debug call SET_LEASE_APP_STATUS');
10381 END IF;
10382
10383 SET_LEASE_APP_STATUS(
10384 p_api_version => p_api_version
10385 ,p_init_msg_list => OKL_API.G_FALSE
10386 ,p_lap_id => p_lap_id
10387 ,p_lap_status => 'PR-COMPLETE'
10388 ,x_return_status => l_return_status
10389 ,x_msg_count => x_msg_count
10390 ,x_msg_data => x_msg_data);
10391
10392 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
10393 THEN
10394 OKL_DEBUG_PUB.LOG_DEBUG(
10395 FND_LOG.LEVEL_PROCEDURE
10396 ,L_MODULE
10397 ,'end debug call SET_LEASE_APP_STATUS');
10398 END IF;
10399
10400 -- write to log
10401 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
10402 OKL_DEBUG_PUB.LOG_DEBUG(
10403 FND_LOG.LEVEL_STATEMENT
10404 ,L_MODULE || ' Result of SET_LEASE_APP_STATUS'
10405 ,'l_return_status ' || l_return_status);
10406 END IF; -- end of statement level debug
10407
10408 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
10409 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10410 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
10411 RAISE OKL_API.G_EXCEPTION_ERROR;
10412 END IF;
10413
10414 -- Bug#4741121 - viselvar - Modified - Start
10415 -- raise the business event passing the Lease Application id added to the parameter list
10416 wf_event.addparametertolist('LAPP_ID'
10417 ,p_lap_id
10418 ,l_parameter_list);
10419
10420 okl_wf_pvt.raise_event( p_api_version => p_api_version
10421 ,p_init_msg_list => p_init_msg_list
10422 ,x_return_status => l_return_status
10423 ,x_msg_count => x_msg_count
10424 ,x_msg_data => x_msg_data
10425 ,p_event_name => p_event_name
10426 ,p_parameters => l_parameter_list);
10427
10428
10429 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
10430 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10431 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
10432 RAISE OKL_API.G_EXCEPTION_ERROR;
10433 END IF;
10434
10435 -- Bug#4741121 - viselvar - Modified - End
10436 x_return_status := l_return_status;
10437
10438 OKL_API.END_ACTIVITY(
10439 x_msg_count => x_msg_count
10440 ,x_msg_data => x_msg_data);
10441 EXCEPTION
10442 WHEN OKL_API.G_EXCEPTION_ERROR THEN
10443 --Check if Lease Quote cursor is open
10444 IF l_lsq_dtls_csr%ISOPEN
10445 THEN
10446 CLOSE l_lsq_dtls_csr;
10447 END IF;
10448 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
10449 p_api_name => l_api_name,
10450 p_pkg_name => G_PKG_NAME,
10451 p_exc_name => 'OKL_API.G_RET_STS_ERROR',
10452 x_msg_count => x_msg_count,
10453 x_msg_data => x_msg_data,
10454 p_api_type => G_API_TYPE);
10455
10456 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
10457 --Check if Lease Quote cursor is open
10458 IF l_lsq_dtls_csr%ISOPEN
10459 THEN
10460 CLOSE l_lsq_dtls_csr;
10461 END IF;
10462 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
10463 p_api_name => l_api_name,
10464 p_pkg_name => G_PKG_NAME,
10465 p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
10466 x_msg_count => x_msg_count,
10467 x_msg_data => x_msg_data,
10468 p_api_type => G_API_TYPE);
10469 WHEN OTHERS THEN
10470 --Check if Lease Quote cursor is open
10471 IF l_lsq_dtls_csr%ISOPEN
10472 THEN
10473 CLOSE l_lsq_dtls_csr;
10474 END IF;
10475 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
10476 p_api_name => l_api_name,
10477 p_pkg_name => G_PKG_NAME,
10478 p_exc_name => 'OTHERS',
10479 x_msg_count => x_msg_count,
10480 x_msg_data => x_msg_data,
10481 p_api_type => G_API_TYPE);
10482 END lease_app_price;
10483
10484 ------------------------------------------------------------------------------
10485 -- PROCEDURE set_lease_app_status
10486 ------------------------------------------------------------------------------
10487 -- Start of comments
10488 --
10489 -- Procedure Name : set_lease_app_status
10490 -- Description : This procedure sets the required lease application status.
10491 -- THIS PROCEDURE IS ONLY FOR OKL INTERNAL DEVELOPMENT PURPOSE
10492 -- Business Rules : This procedure sets the required lease application status.
10493 -- Parameters :
10494 -- Version : 1.0
10495 -- History : 15-Nov-2005 PAGARG created Bug 4721142
10496 --
10497 -- End of comments
10498 PROCEDURE set_lease_app_status(
10499 p_api_version IN NUMBER,
10500 p_init_msg_list IN VARCHAR2,
10501 p_lap_id IN OKL_LEASE_APPLICATIONS_B.ID%TYPE,
10502 p_lap_status IN VARCHAR2,
10503 x_return_status OUT NOCOPY VARCHAR2,
10504 x_msg_count OUT NOCOPY NUMBER,
10505 x_msg_data OUT NOCOPY VARCHAR2)
10506 IS
10507 -- Variables Declarations
10508 l_api_version CONSTANT NUMBER DEFAULT G_INIT_VERSION;
10509 l_api_name CONSTANT VARCHAR2(30) DEFAULT 'SET_LEASE_APP_STATUS';
10510 l_return_status VARCHAR2(1);
10511
10512 -- Record/Table Type Declarations
10513 l_lapv_rec lapv_rec_type;
10514 x_lapv_rec lapv_rec_type;
10515 x_lsqv_rec lsqv_rec_type;
10516
10517 BEGIN
10518 l_return_status := OKL_API.G_RET_STS_SUCCESS;
10519 L_MODULE := 'OKL.PLSQL.OKL_LEASE_APP_PVT.SET_LEASE_APP_STATUS';
10520
10521 -- check for logging on PROCEDURE level
10522 L_DEBUG_ENABLED := NVL(OKL_DEBUG_PUB.CHECK_LOG_ENABLED, 'N');
10523 IS_DEBUG_PROCEDURE_ON := NVL(OKL_DEBUG_PUB.CHECK_LOG_ON(L_MODULE, FND_LOG.LEVEL_PROCEDURE), FALSE);
10524 -- check for logging on STATEMENT level
10525 IS_DEBUG_STATEMENT_ON := NVL(OKL_DEBUG_PUB.CHECK_LOG_ON(L_MODULE, FND_LOG.LEVEL_STATEMENT), FALSE);
10526
10527 -- call START_ACTIVITY to create savepoint, check compatibility
10528 -- and initialize message list
10529 l_return_status := OKL_API.START_ACTIVITY(
10530 p_api_name => l_api_name
10531 ,p_pkg_name => G_PKG_NAME
10532 ,p_init_msg_list => p_init_msg_list
10533 ,l_api_version => l_api_version
10534 ,p_api_version => p_api_version
10535 ,p_api_type => G_API_TYPE
10536 ,x_return_status => l_return_status);
10537
10538 -- check if activity started successfully
10539 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
10540 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10541 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
10542 RAISE OKL_API.G_EXCEPTION_ERROR;
10543 END IF;
10544
10545 --Populate Lease Application rec with the values from database.
10546 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
10547 THEN
10548 OKL_DEBUG_PUB.LOG_DEBUG(
10549 FND_LOG.LEVEL_PROCEDURE
10550 ,L_MODULE
10551 ,'begin debug call POPULATE_LEASE_APP');
10552 END IF;
10553
10554 POPULATE_LEASE_APP(
10555 p_api_version => p_api_version
10556 ,p_init_msg_list => OKL_API.G_FALSE
10557 ,x_return_status => l_return_status
10558 ,x_msg_count => x_msg_count
10559 ,x_msg_data => x_msg_data
10560 ,p_lap_id => p_lap_id
10561 ,x_lapv_rec => x_lapv_rec
10562 ,x_lsqv_rec => x_lsqv_rec);
10563
10564 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
10565 THEN
10566 OKL_DEBUG_PUB.LOG_DEBUG(
10567 FND_LOG.LEVEL_PROCEDURE
10568 ,L_MODULE
10569 ,'end debug call POPULATE_LEASE_APP');
10570 END IF;
10571
10572 -- write to log
10573 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
10574 OKL_DEBUG_PUB.LOG_DEBUG(
10575 FND_LOG.LEVEL_STATEMENT
10576 ,L_MODULE || ' Result of POPULATE_LEASE_APP'
10577 ,'l_return_status ' || l_return_status);
10578 END IF; -- end of statement level debug
10579
10580 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
10581 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10582 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
10583 RAISE OKL_API.G_EXCEPTION_ERROR;
10584 END IF;
10585
10586 l_lapv_rec := x_lapv_rec;
10587 l_lapv_rec.application_status := p_lap_status;
10588
10589 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
10590 THEN
10591 OKL_DEBUG_PUB.LOG_DEBUG(
10592 FND_LOG.LEVEL_PROCEDURE
10593 ,L_MODULE
10594 ,'begin debug call OKL_LAP_PVT.UPDATE_ROW');
10595 END IF;
10596
10597 OKL_LAP_PVT.UPDATE_ROW(
10598 p_api_version => p_api_version
10599 ,p_init_msg_list => OKL_API.G_FALSE
10600 ,x_return_status => l_return_status
10601 ,x_msg_count => x_msg_count
10602 ,x_msg_data => x_msg_data
10603 ,p_lapv_rec => l_lapv_rec
10604 ,x_lapv_rec => x_lapv_rec);
10605
10606 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
10607 THEN
10608 OKL_DEBUG_PUB.LOG_DEBUG(
10609 FND_LOG.LEVEL_PROCEDURE
10610 ,L_MODULE
10611 ,'end debug call OKL_LAP_PVT.UPDATE_ROW');
10612 END IF;
10613
10614 -- write to log
10615 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
10616 OKL_DEBUG_PUB.LOG_DEBUG(
10617 FND_LOG.LEVEL_STATEMENT
10618 ,L_MODULE || ' Result of OKL_LAP_PVT.UPDATE_ROW'
10619 ,'l_return_status ' || l_return_status);
10620 END IF; -- end of statement level debug
10621
10622 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
10623 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10624 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
10625 RAISE OKL_API.G_EXCEPTION_ERROR;
10626 END IF;
10627
10628 x_return_status := l_return_status;
10629
10630 OKL_API.END_ACTIVITY(
10631 x_msg_count => x_msg_count
10632 ,x_msg_data => x_msg_data);
10633 EXCEPTION
10634 WHEN OKL_API.G_EXCEPTION_ERROR THEN
10635 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
10636 p_api_name => l_api_name,
10637 p_pkg_name => G_PKG_NAME,
10638 p_exc_name => 'OKL_API.G_RET_STS_ERROR',
10639 x_msg_count => x_msg_count,
10640 x_msg_data => x_msg_data,
10641 p_api_type => G_API_TYPE);
10642
10643 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
10644 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
10645 p_api_name => l_api_name,
10646 p_pkg_name => G_PKG_NAME,
10647 p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
10648 x_msg_count => x_msg_count,
10649 x_msg_data => x_msg_data,
10650 p_api_type => G_API_TYPE);
10651
10652 WHEN OTHERS THEN
10653 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
10654 p_api_name => l_api_name,
10655 p_pkg_name => G_PKG_NAME,
10656 p_exc_name => 'OTHERS',
10657 x_msg_count => x_msg_count,
10658 x_msg_data => x_msg_data,
10659 p_api_type => G_API_TYPE);
10660 END set_lease_app_status;
10661
10662 --BEGIN-VARANGAN-for bug4747179
10663 ------------------------------------------------------------------------------
10664 -- PROCEDURE set_lease_app_expdays
10665 ------------------------------------------------------------------------------
10666 -- Start of comments
10667 --
10668 -- Procedure Name : set_lease_app_expdays
10669 -- Description : This procedure sets the required lease application expiration status
10670 -- THIS PROCEDURE IS ONLY FOR OKL INTERNAL DEVELOPMENT PURPOSE
10671 -- Business Rules : This procedure sets the required credit expiration date.
10672 -- Parameters :
10673 -- Version : 1.0
10674 -- History : 18-Nov-2005 VARANGAN created Bug#4747179
10675 --
10676 -- End of comments
10677 PROCEDURE set_lease_app_expdays(
10678 p_api_version IN NUMBER,
10679 p_init_msg_list IN VARCHAR2,
10680 p_lap_id IN OKL_LEASE_APPLICATIONS_B.ID%TYPE,
10681 p_lap_expdays IN NUMBER,
10682 x_return_status OUT NOCOPY VARCHAR2,
10683 x_msg_count OUT NOCOPY NUMBER,
10684 x_msg_data OUT NOCOPY VARCHAR2)
10685 IS
10686 -- Variables Declarations
10687 l_api_version CONSTANT NUMBER DEFAULT G_INIT_VERSION;
10688 l_api_name CONSTANT VARCHAR2(30) DEFAULT 'SET_LEASE_APP_EXPDAYS';
10689 l_return_status VARCHAR2(1);
10690
10691 -- Record/Table Type Declarations
10692 l_lapv_rec lapv_rec_type;
10693 x_lapv_rec lapv_rec_type;
10694 x_lsqv_rec lsqv_rec_type;
10695
10696 BEGIN
10697 l_return_status := OKL_API.G_RET_STS_SUCCESS;
10698 L_MODULE := 'OKL.PLSQL.OKL_LEASE_APP_PVT.SET_LEASE_APP_EXPDAYS';
10699
10700 -- check for logging on PROCEDURE level
10701 L_DEBUG_ENABLED := NVL(OKL_DEBUG_PUB.CHECK_LOG_ENABLED, 'N');
10702 IS_DEBUG_PROCEDURE_ON := NVL(OKL_DEBUG_PUB.CHECK_LOG_ON(L_MODULE, FND_LOG.LEVEL_PROCEDURE), FALSE);
10703 -- check for logging on STATEMENT level
10704 IS_DEBUG_STATEMENT_ON := NVL(OKL_DEBUG_PUB.CHECK_LOG_ON(L_MODULE, FND_LOG.LEVEL_STATEMENT), FALSE);
10705
10706 -- call START_ACTIVITY to create savepoint, check compatibility
10707 -- and initialize message list
10708 l_return_status := OKL_API.START_ACTIVITY(
10709 p_api_name => l_api_name
10710 ,p_pkg_name => G_PKG_NAME
10711 ,p_init_msg_list => p_init_msg_list
10712 ,l_api_version => l_api_version
10713 ,p_api_version => p_api_version
10714 ,p_api_type => G_API_TYPE
10715 ,x_return_status => l_return_status);
10716
10717 -- check if activity started successfully
10718 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
10719 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10720 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
10721 RAISE OKL_API.G_EXCEPTION_ERROR;
10722 END IF;
10723
10724 --Populate Lease Application rec with the values from database.
10725 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
10726 THEN
10727 OKL_DEBUG_PUB.LOG_DEBUG(
10728 FND_LOG.LEVEL_PROCEDURE
10729 ,L_MODULE
10730 ,'begin debug call POPULATE_LEASE_APP');
10731 END IF;
10732
10733 POPULATE_LEASE_APP(
10734 p_api_version => p_api_version
10735 ,p_init_msg_list => OKL_API.G_FALSE
10736 ,x_return_status => l_return_status
10737 ,x_msg_count => x_msg_count
10738 ,x_msg_data => x_msg_data
10739 ,p_lap_id => p_lap_id
10740 ,x_lapv_rec => x_lapv_rec
10741 ,x_lsqv_rec => x_lsqv_rec);
10742
10743 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
10744 THEN
10745 OKL_DEBUG_PUB.LOG_DEBUG(
10746 FND_LOG.LEVEL_PROCEDURE
10747 ,L_MODULE
10748 ,'end debug call POPULATE_LEASE_APP');
10749 END IF;
10750
10751 -- write to log
10752 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
10753 OKL_DEBUG_PUB.LOG_DEBUG(
10754 FND_LOG.LEVEL_STATEMENT
10755 ,L_MODULE || ' Result of POPULATE_LEASE_APP'
10756 ,'l_return_status ' || l_return_status);
10757 END IF; -- end of statement level debug
10758
10759 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
10760 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10761 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
10762 RAISE OKL_API.G_EXCEPTION_ERROR;
10763 END IF;
10764
10765 l_lapv_rec := x_lapv_rec;
10766 l_lapv_rec.cr_exp_days := p_lap_expdays;
10767
10768 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
10769 THEN
10770 OKL_DEBUG_PUB.LOG_DEBUG(
10771 FND_LOG.LEVEL_PROCEDURE
10772 ,L_MODULE
10773 ,'begin debug call OKL_LAP_PVT.UPDATE_ROW');
10774 END IF;
10775
10776 OKL_LAP_PVT.UPDATE_ROW(
10777 p_api_version => p_api_version
10778 ,p_init_msg_list => OKL_API.G_FALSE
10779 ,x_return_status => l_return_status
10780 ,x_msg_count => x_msg_count
10781 ,x_msg_data => x_msg_data
10782 ,p_lapv_rec => l_lapv_rec
10783 ,x_lapv_rec => x_lapv_rec);
10784
10785 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
10786 THEN
10787 OKL_DEBUG_PUB.LOG_DEBUG(
10788 FND_LOG.LEVEL_PROCEDURE
10789 ,L_MODULE
10790 ,'end debug call OKL_LAP_PVT.UPDATE_ROW');
10791 END IF;
10792
10793 -- write to log
10794 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
10795 OKL_DEBUG_PUB.LOG_DEBUG(
10796 FND_LOG.LEVEL_STATEMENT
10797 ,L_MODULE || ' Result of OKL_LAP_PVT.UPDATE_ROW'
10798 ,'l_return_status ' || l_return_status);
10799 END IF; -- end of statement level debug
10800
10801 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
10802 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
10803 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
10804 RAISE OKL_API.G_EXCEPTION_ERROR;
10805 END IF;
10806
10807 x_return_status := l_return_status;
10808
10809 OKL_API.END_ACTIVITY(
10810 x_msg_count => x_msg_count
10811 ,x_msg_data => x_msg_data);
10812 EXCEPTION
10813 WHEN OKL_API.G_EXCEPTION_ERROR THEN
10814 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
10815 p_api_name => l_api_name,
10816 p_pkg_name => G_PKG_NAME,
10817 p_exc_name => 'OKL_API.G_RET_STS_ERROR',
10818 x_msg_count => x_msg_count,
10819 x_msg_data => x_msg_data,
10820 p_api_type => G_API_TYPE);
10821
10822 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
10823 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
10824 p_api_name => l_api_name,
10825 p_pkg_name => G_PKG_NAME,
10826 p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
10827 x_msg_count => x_msg_count,
10828 x_msg_data => x_msg_data,
10829 p_api_type => G_API_TYPE);
10830
10831 WHEN OTHERS THEN
10832 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
10833 p_api_name => l_api_name,
10834 p_pkg_name => G_PKG_NAME,
10835 p_exc_name => 'OTHERS',
10836 x_msg_count => x_msg_count,
10837 x_msg_data => x_msg_data,
10838 p_api_type => G_API_TYPE);
10839 END set_lease_app_expdays;
10840 --END-VARANGAN-for bug4747179
10841
10842 ------------------------------------------------------------------------------
10843 -- FUNCTION is_curr_conv_valid
10844 ------------------------------------------------------------------------------
10845 -- Start of comments
10846 --
10847 -- Function Name : is_curr_conv_valid
10848 -- Description : This function validates Currency Conversion values and
10849 -- returns Success or Error
10850 -- Business Rules : This function validates Currency Conversion values and
10851 -- returns Success or Error
10852 -- Parameters :
10853 -- Version : 1.0
10854 -- History : 02-Feb-2006 PAGARG created Bug 4932155
10855 --
10856 -- End of comments
10857 FUNCTION is_curr_conv_valid(
10858 p_curr_code IN VARCHAR2,
10859 p_curr_type IN VARCHAR2,
10860 p_curr_rate IN NUMBER,
10861 p_curr_date IN DATE)
10862 RETURN VARCHAR2
10863 IS
10864 -- Variables Declarations
10865 l_func_curr_code VARCHAR2(15);
10866 l_return_status VARCHAR2(1);
10867 l_meaning VARCHAR2(80);
10868 BEGIN
10869 l_return_status := OKL_API.G_RET_STS_SUCCESS;
10870 SELECT OKL_ACCOUNTING_UTIL.GET_FUNC_CURR_CODE INTO l_func_curr_code
10871 FROM DUAL;
10872
10873 IF(p_curr_code IS NULL
10874 OR p_curr_code = OKL_API.G_MISS_CHAR)
10875 THEN
10876 l_return_status := OKL_API.G_RET_STS_ERROR;
10877 OKL_API.SET_MESSAGE(
10878 p_app_name => G_APP_NAME,
10879 p_msg_name => 'OKL_INVALID_CURRENCY');
10880 RETURN l_return_status;
10881 END IF;
10882
10883 IF(l_func_curr_code IS NULL
10884 OR l_func_curr_code = OKL_API.G_MISS_CHAR)
10885 THEN
10886 l_return_status := OKL_API.G_RET_STS_ERROR;
10887 OKL_API.SET_MESSAGE(
10888 p_app_name => G_APP_NAME,
10889 p_msg_name => 'OKL_FUNC_CURR_NOT_FOUND');
10890 RETURN l_return_status;
10891 END IF;
10892
10893 IF(p_curr_code <> l_func_curr_code)
10894 THEN
10895 IF(p_curr_type IS NULL
10896 OR p_curr_type = OKL_API.G_MISS_CHAR
10897 OR p_curr_type = 'NONE')
10898 THEN
10899 l_return_status := OKL_API.G_RET_STS_ERROR;
10900 OKL_API.SET_MESSAGE(
10901 p_app_name => G_APP_NAME,
10902 p_msg_name => 'OKL_BPD_PLS_ENT_CUR_TYPE');
10903 RETURN l_return_status;
10904 ELSE
10905 SELECT USER_CONVERSION_TYPE
10906 INTO l_meaning
10907 FROM GL_DAILY_CONVERSION_TYPES
10908 WHERE CONVERSION_TYPE = p_curr_type;
10909
10910 IF(l_meaning IS NULL)
10911 THEN
10912 l_return_status := OKL_API.G_RET_STS_ERROR;
10913 OKL_API.SET_MESSAGE(
10914 p_app_name => G_APP_NAME,
10915 p_msg_name => 'OKL_INVALID_CURR_CONV');
10916 RETURN l_return_status;
10917 END IF;
10918 END IF;-- Currency Conversion type check
10919 IF(p_curr_type IS NOT NULL AND UPPER(p_curr_type) <> 'USER' )
10920 THEN
10921 -- bug 5148581 abhsaxen modify checking condition
10922 --replace or with and
10923 IF(p_curr_rate IS NOT NULL
10924 AND p_curr_rate <> OKL_API.G_MISS_NUM)
10925 THEN
10926 l_return_status := OKL_API.G_RET_STS_ERROR;
10927 OKL_API.SET_MESSAGE(
10928 p_app_name => G_APP_NAME,
10929 p_msg_name => 'OKL_LA_CONV_RATE_CHK');
10930 RETURN l_return_status;
10931 END IF;
10932 IF(p_curr_date IS NULL
10933 OR p_curr_date = OKL_API.G_MISS_DATE)
10934 THEN
10935 l_return_status := OKL_API.G_RET_STS_ERROR;
10936 OKL_API.SET_MESSAGE(
10937 p_app_name => G_APP_NAME,
10938 p_msg_name => 'OKL_CONVERSION_DATE_INVALID');
10939 RETURN l_return_status;
10940 END IF;
10941 ELSIF(UPPER(p_curr_type) = 'USER')
10942 THEN
10943 IF(p_curr_rate IS NULL
10944 OR p_curr_rate = OKL_API.G_MISS_NUM)
10945 THEN
10946 l_return_status := OKL_API.G_RET_STS_ERROR;
10947 OKL_API.SET_MESSAGE(
10948 p_app_name => G_APP_NAME,
10949 p_msg_name => 'OKL_BPD_USR_RTE_SUPPLIED');
10950 RETURN l_return_status;
10951 END IF;
10952 IF(p_curr_date IS NULL
10953 OR p_curr_date = OKL_API.G_MISS_DATE)
10954 THEN
10955 l_return_status := OKL_API.G_RET_STS_ERROR;
10956 OKL_API.SET_MESSAGE(
10957 p_app_name => G_APP_NAME,
10958 p_msg_name => 'OKL_CONVERSION_DATE_INVALID');
10959 RETURN l_return_status;
10960 END IF;
10961 END IF;--Check for different values for Conversion Type
10962 ELSE
10963 --Currency Conversion columns must not be populated
10964 IF((p_curr_type IS NOT NULL AND p_curr_type <> OKL_API.G_MISS_CHAR AND p_curr_type <> 'NONE') OR
10965 (p_curr_rate IS NOT NULL AND p_curr_rate <> OKL_API.G_MISS_NUM) OR
10966 (p_curr_date IS NOT NULL AND p_curr_date <> OKL_API.G_MISS_DATE))
10967 THEN
10968 l_return_status := OKL_API.G_RET_STS_ERROR;
10969 OKL_API.SET_MESSAGE(
10970 p_app_name => G_APP_NAME,
10971 p_msg_name => 'OKL_CURR_FUNC_CURR_SAME');
10972 RETURN l_return_status;
10973 END IF;
10974 END IF;--Functional Currency and Currency is same or not
10975
10976 RETURN l_return_status;
10977 EXCEPTION
10978 WHEN OTHERS
10979 THEN
10980 OKL_API.SET_MESSAGE(
10981 p_app_name => G_APP_NAME,
10982 p_msg_name => G_UNEXPECTED_ERROR,
10983 p_token1 => G_SQLCODE_TOKEN,
10984 p_token1_value => SQLCODE,
10985 p_token2 => G_SQLERRM_TOKEN,
10986 p_token2_value => SQLERRM);
10987 RETURN OKL_API.G_RET_STS_ERROR;
10988 END is_curr_conv_valid;
10989
10990 ------------------------------------------------------------------------------
10991 -- PROCEDURE lease_app_unaccept
10992 ------------------------------------------------------------------------------
10993 -- Start of comments
10994 --
10995 -- Procedure Name : lease_app_unaccept
10996 -- Description : This procedure unaccepts lease application.
10997 -- Business Rules : This procedure unaccepts lease application
10998 -- Parameters :
10999 -- Version : 1.0
11000 -- History : 07-Feb-2006 PAGARG created Bug 4905274
11001 --
11002 -- End of comments
11003 PROCEDURE lease_app_unaccept(
11004 p_api_version IN NUMBER,
11005 p_init_msg_list IN VARCHAR2,
11006 p_lap_id IN OKL_LEASE_APPLICATIONS_B.ID%TYPE,
11007 x_return_status OUT NOCOPY VARCHAR2,
11008 x_msg_count OUT NOCOPY NUMBER,
11009 x_msg_data OUT NOCOPY VARCHAR2)
11010 IS
11011 -- Variables Declarations
11012 l_api_version CONSTANT NUMBER DEFAULT G_INIT_VERSION;
11013 l_api_name CONSTANT VARCHAR2(30) DEFAULT 'LEASE_APP_UNACCEPT';
11014 l_return_status VARCHAR2(1);
11015
11016 -- Record/Table Type Declarations
11017 l_lapv_rec lapv_rec_type;
11018 l_lsqv_rec lsqv_rec_type;
11019
11020 --Cursor to obtain Lease Application Details
11021 CURSOR lse_app_dtls_csr(p_lse_app_id NUMBER)
11022 IS
11023 SELECT REFERENCE_NUMBER
11024 FROM OKL_LEASE_APPLICATIONS_B LAB
11025 WHERE LAB.ID = p_lse_app_id;
11026 lse_app_dtls_rec lse_app_dtls_csr%ROWTYPE;
11027 BEGIN
11028 l_return_status := OKL_API.G_RET_STS_SUCCESS;
11029 L_MODULE := 'OKL.PLSQL.OKL_LEASE_APP_PVT.LEASE_APP_UNACCEPT';
11030
11031 -- check for logging on PROCEDURE level
11032 L_DEBUG_ENABLED := NVL(OKL_DEBUG_PUB.CHECK_LOG_ENABLED, 'N');
11033 IS_DEBUG_PROCEDURE_ON := NVL(OKL_DEBUG_PUB.CHECK_LOG_ON(L_MODULE, FND_LOG.LEVEL_PROCEDURE), FALSE);
11034 -- check for logging on STATEMENT level
11035 IS_DEBUG_STATEMENT_ON := NVL(OKL_DEBUG_PUB.CHECK_LOG_ON(L_MODULE, FND_LOG.LEVEL_STATEMENT), FALSE);
11036
11037 -- call START_ACTIVITY to create savepoint, check compatibility
11038 -- and initialize message list
11039 l_return_status := OKL_API.START_ACTIVITY(
11040 p_api_name => l_api_name
11041 ,p_pkg_name => G_PKG_NAME
11042 ,p_init_msg_list => p_init_msg_list
11043 ,l_api_version => l_api_version
11044 ,p_api_version => p_api_version
11045 ,p_api_type => G_API_TYPE
11046 ,x_return_status => l_return_status);
11047
11048 -- check if activity started successfully
11049 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
11050 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
11051 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
11052 RAISE OKL_API.G_EXCEPTION_ERROR;
11053 END IF;
11054
11055 --Populate Lease Application rec with the values from database.
11056 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
11057 THEN
11058 OKL_DEBUG_PUB.LOG_DEBUG(
11059 FND_LOG.LEVEL_PROCEDURE
11060 ,L_MODULE
11061 ,'begin debug call POPULATE_LEASE_APP');
11062 END IF;
11063
11064 POPULATE_LEASE_APP(
11065 p_api_version => p_api_version
11066 ,p_init_msg_list => OKL_API.G_FALSE
11067 ,x_return_status => l_return_status
11068 ,x_msg_count => x_msg_count
11069 ,x_msg_data => x_msg_data
11070 ,p_lap_id => p_lap_id
11071 ,x_lapv_rec => l_lapv_rec
11072 ,x_lsqv_rec => l_lsqv_rec);
11073
11074 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
11075 THEN
11076 OKL_DEBUG_PUB.LOG_DEBUG(
11077 FND_LOG.LEVEL_PROCEDURE
11078 ,L_MODULE
11079 ,'end debug call POPULATE_LEASE_APP');
11080 END IF;
11081
11082 -- write to log
11083 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
11084 OKL_DEBUG_PUB.LOG_DEBUG(
11085 FND_LOG.LEVEL_STATEMENT
11086 ,L_MODULE || ' Result of POPULATE_LEASE_APP'
11087 ,'l_return_status ' || l_return_status);
11088 END IF; -- end of statement level debug
11089
11090 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
11091 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
11092 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
11093 RAISE OKL_API.G_EXCEPTION_ERROR;
11094 END IF;
11095
11096 --Validate if Lease App is appealed lease app then unaccept is not allowed
11097 IF(l_lapv_rec.action = 'APPEAL')
11098 THEN
11099 OPEN lse_app_dtls_csr(l_lapv_rec.parent_leaseapp_id);
11100 FETCH lse_app_dtls_csr INTO lse_app_dtls_rec;
11101 CLOSE lse_app_dtls_csr;
11102
11103 l_return_status := OKL_API.G_RET_STS_ERROR;
11104 OKL_API.SET_MESSAGE(
11105 p_app_name => G_APP_NAME,
11106 p_msg_name => 'OKL_SO_LSE_APP_UNACCEPT_ERR',
11107 p_token1 => 'LEASE_APP',
11108 p_token1_value => l_lapv_rec.reference_number,
11109 p_token2 => 'APL_LEASE_APP',
11110 p_token2_value => lse_app_dtls_rec.reference_number);
11111 RAISE OKL_API.G_EXCEPTION_ERROR;
11112 END IF;
11113
11114 IF(l_lapv_rec.application_status = 'PR-ACCEPTED')
11115 THEN
11116 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
11117 THEN
11118 OKL_DEBUG_PUB.LOG_DEBUG(
11119 FND_LOG.LEVEL_PROCEDURE
11120 ,L_MODULE
11121 ,'begin debug call SET_LEASE_APP_STATUS');
11122 END IF;
11123
11124 SET_LEASE_APP_STATUS(
11125 p_api_version => p_api_version
11126 ,p_init_msg_list => OKL_API.G_FALSE
11127 ,p_lap_id => p_lap_id
11128 ,p_lap_status => 'PR-APPROVED'
11129 ,x_return_status => l_return_status
11130 ,x_msg_count => x_msg_count
11131 ,x_msg_data => x_msg_data);
11132
11133 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
11134 THEN
11135 OKL_DEBUG_PUB.LOG_DEBUG(
11136 FND_LOG.LEVEL_PROCEDURE
11137 ,L_MODULE
11138 ,'end debug call SET_LEASE_APP_STATUS');
11139 END IF;
11140
11141 -- write to log
11142 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
11143 OKL_DEBUG_PUB.LOG_DEBUG(
11144 FND_LOG.LEVEL_STATEMENT
11145 ,L_MODULE || ' Result of SET_LEASE_APP_STATUS'
11146 ,'l_return_status ' || l_return_status);
11147 END IF; -- end of statement level debug
11148
11149 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
11150 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
11151 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
11152 RAISE OKL_API.G_EXCEPTION_ERROR;
11153 END IF;
11154
11155 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
11156 THEN
11157 OKL_DEBUG_PUB.LOG_DEBUG(
11158 FND_LOG.LEVEL_PROCEDURE
11159 ,L_MODULE
11160 ,'begin debug call OKL_LEASE_QUOTE_PVT.UNACCEPT_LEASE_QTE');
11161 END IF;
11162
11163 -- call the procedure to unaccept lease quote
11164 OKL_LEASE_QUOTE_PVT.UNACCEPT_LEASE_QTE(
11165 p_api_version => p_api_version
11166 ,p_init_msg_list => OKL_API.G_FALSE
11167 ,p_transaction_control => OKL_API.G_TRUE
11168 ,p_quote_id => l_lsqv_rec.id
11169 ,x_return_status => l_return_status
11170 ,x_msg_count => x_msg_count
11171 ,x_msg_data => x_msg_data);
11172
11173 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
11174 THEN
11175 OKL_DEBUG_PUB.LOG_DEBUG(
11176 FND_LOG.LEVEL_PROCEDURE
11177 ,L_MODULE
11178 ,'end debug call OKL_LEASE_QUOTE_PVT.UNACCEPT_LEASE_QTE');
11179 END IF;
11180
11181 -- write to log
11182 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
11183 OKL_DEBUG_PUB.LOG_DEBUG(
11184 FND_LOG.LEVEL_STATEMENT
11185 ,L_MODULE || ' Result of OKL_LEASE_QUOTE_PVT.UNACCEPT_LEASE_QTE'
11186 ,' result status ' || l_return_status);
11187 END IF; -- end of statement level debug
11188
11189 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
11190 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
11191 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
11192 RAISE OKL_API.G_EXCEPTION_ERROR;
11193 END IF;
11194 END IF;
11195
11196 x_return_status := l_return_status;
11197 OKL_API.END_ACTIVITY(
11198 x_msg_count => x_msg_count
11199 ,x_msg_data => x_msg_data);
11200 EXCEPTION
11201 WHEN OKL_API.G_EXCEPTION_ERROR THEN
11202 --Lease Application Details cursor
11203 IF lse_app_dtls_csr%ISOPEN
11204 THEN
11205 CLOSE lse_app_dtls_csr;
11206 END IF;
11207 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
11208 p_api_name => l_api_name,
11209 p_pkg_name => G_PKG_NAME,
11210 p_exc_name => 'OKL_API.G_RET_STS_ERROR',
11211 x_msg_count => x_msg_count,
11212 x_msg_data => x_msg_data,
11213 p_api_type => G_API_TYPE);
11214 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
11215 --Lease Application Details cursor
11216 IF lse_app_dtls_csr%ISOPEN
11217 THEN
11218 CLOSE lse_app_dtls_csr;
11219 END IF;
11220 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
11221 p_api_name => l_api_name,
11222 p_pkg_name => G_PKG_NAME,
11223 p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
11224 x_msg_count => x_msg_count,
11225 x_msg_data => x_msg_data,
11226 p_api_type => G_API_TYPE);
11227 WHEN OTHERS THEN
11228 --Lease Application Details cursor
11229 IF lse_app_dtls_csr%ISOPEN
11230 THEN
11231 CLOSE lse_app_dtls_csr;
11232 END IF;
11233 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
11234 p_api_name => l_api_name,
11235 p_pkg_name => G_PKG_NAME,
11236 p_exc_name => 'OTHERS',
11237 x_msg_count => x_msg_count,
11238 x_msg_data => x_msg_data,
11239 p_api_type => G_API_TYPE);
11240 END lease_app_unaccept;
11241
11242 ------------------------------------------------------------------------------
11243 -- PROCEDURE create_contract
11244 ------------------------------------------------------------------------------
11245 -- Start of comments
11246 --
11247 -- Procedure Name : create_contract
11248 -- Description : This procedure calls api to create contract from lease app.
11249 -- Business Rules : This procedure calls api to create contract from lease app.
11250 -- Parameters :
11251 -- Version : 1.0
11252 -- History : 15-Feb-2006 PAGARG created Bug 4930634
11253 -- : This wrapper is created to perform validations before
11254 -- converting Lease App to Contract
11255 -- End of comments
11256 PROCEDURE create_contract(
11257 p_api_version IN NUMBER,
11258 p_init_msg_list IN VARCHAR2,
11259 p_lap_id IN OKL_LEASE_APPLICATIONS_B.ID%TYPE,
11260 x_return_status OUT NOCOPY VARCHAR2,
11261 x_msg_count OUT NOCOPY NUMBER,
11262 x_msg_data OUT NOCOPY VARCHAR2,
11263 x_chr_id OUT NOCOPY NUMBER,
11264 x_chr_number OUT NOCOPY VARCHAR2)
11265 IS
11266 -- Variables Declarations
11267 l_api_version CONSTANT NUMBER DEFAULT G_INIT_VERSION;
11268 l_api_name CONSTANT VARCHAR2(30) DEFAULT 'CREATE_CONTRACT';
11269 l_return_status VARCHAR2(1);
11270
11271 --Cursor to obtain the details of lease quote line of Lease App
11272 CURSOR l_lap_dtls_csr(p_lap_id NUMBER)
11273 IS
11274 SELECT LAB.REFERENCE_NUMBER REFERENCE_NUMBER
11275 , LAB.LEASE_OPPORTUNITY_ID LEASE_OPPORTUNITY_ID
11276 FROM OKL_LEASE_APPLICATIONS_B LAB
11277 WHERE LAB.ID = p_lap_id;
11278 l_lap_dtls_rec l_lap_dtls_csr%ROWTYPE;
11279
11280 BEGIN
11281 l_return_status := OKL_API.G_RET_STS_SUCCESS;
11282 L_MODULE := 'OKL.PLSQL.OKL_LEASE_APP_PVT.CREATE_CONTRACT';
11283
11284 -- check for logging on PROCEDURE level
11285 L_DEBUG_ENABLED := NVL(OKL_DEBUG_PUB.CHECK_LOG_ENABLED, 'N');
11286 IS_DEBUG_PROCEDURE_ON := NVL(OKL_DEBUG_PUB.CHECK_LOG_ON(L_MODULE, FND_LOG.LEVEL_PROCEDURE), FALSE);
11287 -- check for logging on STATEMENT level
11288 IS_DEBUG_STATEMENT_ON := NVL(OKL_DEBUG_PUB.CHECK_LOG_ON(L_MODULE, FND_LOG.LEVEL_STATEMENT), FALSE);
11289
11290 -- call START_ACTIVITY to create savepoint, check compatibility
11291 -- and initialize message list
11292 l_return_status := OKL_API.START_ACTIVITY(
11293 p_api_name => l_api_name
11294 ,p_pkg_name => G_PKG_NAME
11295 ,p_init_msg_list => p_init_msg_list
11296 ,l_api_version => l_api_version
11297 ,p_api_version => p_api_version
11298 ,p_api_type => G_API_TYPE
11299 ,x_return_status => l_return_status);
11300
11301 -- check if activity started successfully
11302 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
11303 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
11304 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
11305 RAISE OKL_API.G_EXCEPTION_ERROR;
11306 END IF;
11307
11308 --Obtain the details of Lease App
11309 OPEN l_lap_dtls_csr(p_lap_id);
11310 FETCH l_lap_dtls_csr INTO l_lap_dtls_rec;
11311 CLOSE l_lap_dtls_csr;
11312
11313 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
11314 THEN
11315 OKL_DEBUG_PUB.LOG_DEBUG(
11316 FND_LOG.LEVEL_PROCEDURE
11317 ,L_MODULE
11318 ,'begin debug call OKL_QUOTE_TO_CONTRACT_PVT.CREATE_CONTRACT');
11319 END IF;
11320
11321 OKL_QUOTE_TO_CONTRACT_PVT.CREATE_CONTRACT(
11322 p_api_version => p_api_version
11323 ,p_init_msg_list => OKL_API.G_FALSE
11324 ,x_return_status => l_return_status
11325 ,x_msg_count => x_msg_count
11326 ,x_msg_data => x_msg_data
11327 ,p_contract_number => NULL -- Bug#9356216 - null passed so that OKC Autonumbering would be used
11328 ,p_parent_object_code => 'LEASEAPP'
11329 ,p_parent_object_id => p_lap_id
11330 ,x_chr_id => x_chr_id
11331 ,x_contract_number => x_chr_number);
11332
11333 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
11334 THEN
11335 OKL_DEBUG_PUB.LOG_DEBUG(
11336 FND_LOG.LEVEL_PROCEDURE
11337 ,L_MODULE
11338 ,'end debug call OKL_QUOTE_TO_CONTRACT_PVT.CREATE_CONTRACT');
11339 END IF;
11340
11341 -- write to log
11342 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
11343 OKL_DEBUG_PUB.LOG_DEBUG(
11344 FND_LOG.LEVEL_STATEMENT
11345 ,L_MODULE || ' Result of OKL_QUOTE_TO_CONTRACT_PVT.CREATE_CONTRACT'
11346 ,' return status ' || l_return_status);
11347 END IF; -- end of statement level debug
11348
11349 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
11350 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
11351 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
11352 RAISE OKL_API.G_EXCEPTION_ERROR;
11353 END IF;
11354 --End of create contract API call
11355
11356 x_return_status := l_return_status;
11357 OKL_API.END_ACTIVITY(
11358 x_msg_count => x_msg_count
11359 ,x_msg_data => x_msg_data);
11360 EXCEPTION
11361 WHEN OKL_API.G_EXCEPTION_ERROR THEN
11362 --Check if Lease App cursor is open
11363 IF l_lap_dtls_csr%ISOPEN
11364 THEN
11365 CLOSE l_lap_dtls_csr;
11366 END IF;
11367 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
11368 p_api_name => l_api_name,
11369 p_pkg_name => G_PKG_NAME,
11370 p_exc_name => 'OKL_API.G_RET_STS_ERROR',
11371 x_msg_count => x_msg_count,
11372 x_msg_data => x_msg_data,
11373 p_api_type => G_API_TYPE);
11374 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
11375 --Check if Lease App cursor is open
11376 IF l_lap_dtls_csr%ISOPEN
11377 THEN
11378 CLOSE l_lap_dtls_csr;
11379 END IF;
11380 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
11381 p_api_name => l_api_name,
11382 p_pkg_name => G_PKG_NAME,
11383 p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
11384 x_msg_count => x_msg_count,
11385 x_msg_data => x_msg_data,
11386 p_api_type => G_API_TYPE);
11387 WHEN OTHERS THEN
11388 --Check if Lease App cursor is open
11389 IF l_lap_dtls_csr%ISOPEN
11390 THEN
11391 CLOSE l_lap_dtls_csr;
11392 END IF;
11393 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
11394 p_api_name => l_api_name,
11395 p_pkg_name => G_PKG_NAME,
11396 p_exc_name => 'OTHERS',
11397 x_msg_count => x_msg_count,
11398 x_msg_data => x_msg_data,
11399 p_api_type => G_API_TYPE);
11400 END create_contract;
11401
11402 --Bug 4872271 PAGARG Added function to set Appeal Flag for recommendations
11403 ------------------------------------------------------------------------------
11404 -- PROCEDURE appeal_recommendations
11405 ------------------------------------------------------------------------------
11406 -- Start of comments
11407 --
11408 -- Procedure Name : appeal_recommendations
11409 -- Description : This procedure sets the appeal flag for credit recommendations
11410 -- of parent lease app of given lease application
11411 -- Business Rules : This procedure sets the appeal flag for credit recommendations
11412 -- of parent lease app of given lease application
11413 -- Parameters :
11414 -- Version : 1.0
11415 -- History : 28-Mar-2006 PAGARG created Bug 4872271
11416 --
11417 -- End of comments
11418 PROCEDURE appeal_recommendations(
11419 p_api_version IN NUMBER,
11420 p_init_msg_list IN VARCHAR2,
11421 p_lap_id IN OKL_LEASE_APPLICATIONS_B.ID%TYPE,
11422 p_cr_dec_apl_flag IN VARCHAR2,
11423 p_exp_date_apl_flag IN VARCHAR2,
11424 p_cr_conds IN NAME_VAL_TBL_TYPE,
11425 p_addl_rcmnds IN NAME_VAL_TBL_TYPE,
11426 x_return_status OUT NOCOPY VARCHAR2,
11427 x_msg_count OUT NOCOPY NUMBER,
11428 x_msg_data OUT NOCOPY VARCHAR2)
11429 IS
11430 -- Variables Declarations
11431 l_api_version CONSTANT NUMBER DEFAULT G_INIT_VERSION;
11432 l_api_name CONSTANT VARCHAR2(30) DEFAULT 'APPEAL_RECOMMENDATIONS';
11433 l_return_status VARCHAR2(1);
11434 i NUMBER;
11435 recom_count NUMBER;
11436 process_chklst BOOLEAN;
11437 approve BOOLEAN;
11438
11439 -- Record/Table Type Declarations
11440 l_cldv_tbl OKL_CLD_PVT.CLDV_TBL_TYPE;
11441 x_cldv_tbl OKL_CLD_PVT.CLDV_TBL_TYPE;
11442 l_appealing_reco_tbl OCM_RECOMMENDATIONS_PUB.APPEALING_RECO_TBL;
11443
11444 --Cursor to obtain Credit Recommendation details
11445 CURSOR credit_recom_csr(cp_lap_id NUMBER, cp_recom_id NUMBER, cp_cr_recom VARCHAR2)
11446 IS
11447 SELECT RCM.RECOMMENDATION_ID
11448 , RCM.CASE_FOLDER_ID
11449 , RCM.CREDIT_REQUEST_ID
11450 , RCM.CREDIT_RECOMMENDATION
11451 , RCM.RECOMMENDATION_NAME
11452 , RCM.APPEALED_FLAG
11453 FROM AR_CMGT_CF_RECOMMENDS RCM
11454 , AR_CMGT_CREDIT_REQUESTS CCR
11455 WHERE RCM.CREDIT_REQUEST_ID = CCR.CREDIT_REQUEST_ID
11456 AND RCM.CREDIT_RECOMMENDATION = NVL(cp_cr_recom, RCM.CREDIT_RECOMMENDATION)
11457 AND RCM.RECOMMENDATION_ID = NVL(cp_recom_id, RCM.RECOMMENDATION_ID)
11458 AND CCR.SOURCE_COLUMN3 = 'LEASEAPP'
11459 AND CCR.SOURCE_COLUMN1 = cp_lap_id;
11460 credit_recom_rec credit_recom_csr%ROWTYPE;
11461
11462 --Cursor to obtain Credit Request details of Parent Lease Application
11463 CURSOR crd_app_data_csr(cp_lap_id NUMBER)
11464 IS
11465 SELECT CCR.CREDIT_REQUEST_ID
11466 , CCR.APPLICATION_NUMBER
11467 , CCR.TRX_AMOUNT
11468 , CCR.TRX_CURRENCY
11469 , CCR.STATUS
11470 , CCR.RECOMMENDATION_NAME
11471 , CCR.SOURCE_COLUMN1
11472 , CCR.SOURCE_COLUMN2
11473 , CCR.REVIEW_TYPE
11474 , CCR.CREDIT_CLASSIFICATION
11475 , CCR.CUST_ACCOUNT_ID
11476 , LAB.PARENT_LEASEAPP_ID PARENT_LEASEAPP_ID
11477 FROM AR_CMGT_CREDIT_REQUESTS CCR
11478 , OKL_LEASE_APPLICATIONS_B LAB
11479 WHERE SOURCE_COLUMN3 = 'LEASEAPP'
11480 AND SOURCE_COLUMN1 = LAB.PARENT_LEASEAPP_ID
11481 AND LAB.ID = cp_lap_id;
11482 crd_app_data_rec crd_app_data_csr%ROWTYPE;
11483 BEGIN
11484 l_return_status := OKL_API.G_RET_STS_SUCCESS;
11485 L_MODULE := 'OKL.PLSQL.OKL_LEASE_APP_PVT.APPEAL_RECOMMENDATIONS';
11486
11487 -- check for logging on PROCEDURE level
11488 L_DEBUG_ENABLED := NVL(OKL_DEBUG_PUB.CHECK_LOG_ENABLED, 'N');
11489 IS_DEBUG_PROCEDURE_ON := NVL(OKL_DEBUG_PUB.CHECK_LOG_ON(L_MODULE, FND_LOG.LEVEL_PROCEDURE), FALSE);
11490 -- check for logging on STATEMENT level
11491 IS_DEBUG_STATEMENT_ON := NVL(OKL_DEBUG_PUB.CHECK_LOG_ON(L_MODULE, FND_LOG.LEVEL_STATEMENT), FALSE);
11492
11493 -- call START_ACTIVITY to create savepoint, check compatibility
11494 -- and initialize message list
11495 l_return_status := OKL_API.START_ACTIVITY(
11496 p_api_name => l_api_name
11497 ,p_pkg_name => G_PKG_NAME
11498 ,p_init_msg_list => p_init_msg_list
11499 ,l_api_version => l_api_version
11500 ,p_api_version => p_api_version
11501 ,p_api_type => G_API_TYPE
11502 ,x_return_status => l_return_status);
11503
11504 -- check if activity started successfully
11505 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
11506 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
11507 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
11508 RAISE OKL_API.G_EXCEPTION_ERROR;
11509 END IF;
11510
11511 OPEN crd_app_data_csr(p_lap_id);
11512 FETCH crd_app_data_csr INTO crd_app_data_rec;
11513 CLOSE crd_app_data_csr;
11514
11515 process_chklst := FALSE;
11516 IF(p_cr_conds.COUNT > 0)
11517 THEN
11518 i := p_cr_conds.FIRST;
11519 LOOP
11520 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
11521 THEN
11522 OKL_DEBUG_PUB.LOG_DEBUG(
11523 FND_LOG.LEVEL_PROCEDURE
11524 ,L_MODULE
11525 ,'begin debug call POP_CHECKLIST_ITEM');
11526 END IF;
11527
11528 POP_CHECKLIST_ITEM(
11529 p_api_version => p_api_version
11530 ,p_init_msg_list => OKL_API.G_FALSE
11531 ,p_cld_id => p_cr_conds(i).itm_name
11532 ,x_cldv_rec => l_cldv_tbl(i)
11533 ,x_return_status => l_return_status
11534 ,x_msg_count => x_msg_count
11535 ,x_msg_data => x_msg_data);
11536
11537 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
11538 THEN
11539 OKL_DEBUG_PUB.LOG_DEBUG(
11540 FND_LOG.LEVEL_PROCEDURE
11541 ,L_MODULE
11542 ,'end debug call POP_CHECKLIST_ITEM');
11543 END IF;
11544
11545 -- write to log
11546 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
11547 OKL_DEBUG_PUB.LOG_DEBUG(
11548 FND_LOG.LEVEL_STATEMENT
11549 ,L_MODULE || ' Result of POP_CHECKLIST_ITEM'
11550 ,'l_return_status ' || l_return_status);
11551 END IF; -- end of statement level debug
11552
11553 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
11554 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
11555 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
11556 RAISE OKL_API.G_EXCEPTION_ERROR;
11557 END IF;
11558
11559 l_cldv_tbl(i).appeal_flag := p_cr_conds(i).itm_value;
11560 IF(l_cldv_tbl(i).appeal_flag = 'Y')
11561 THEN
11562 process_chklst := TRUE;
11563 END IF;
11564
11565 EXIT WHEN (i = p_cr_conds.LAST);
11566 i := p_cr_conds.NEXT(i);
11567 END LOOP;
11568
11569 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
11570 THEN
11571 OKL_DEBUG_PUB.LOG_DEBUG(
11572 FND_LOG.LEVEL_PROCEDURE
11573 ,L_MODULE
11574 ,'begin debug call OKL_CHECKLIST_PVT.UPD_CHKLST_DTL_APL_FLAG');
11575 END IF;
11576
11577 OKL_CHECKLIST_PVT.UPD_CHKLST_DTL_APL_FLAG(
11578 p_api_version => p_api_version
11579 ,p_init_msg_list => OKL_API.G_FALSE
11580 ,x_return_status => l_return_status
11581 ,x_msg_count => x_msg_count
11582 ,x_msg_data => x_msg_data
11583 ,p_cldv_tbl => l_cldv_tbl
11584 ,x_cldv_tbl => x_cldv_tbl);
11585
11586 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
11587 THEN
11588 OKL_DEBUG_PUB.LOG_DEBUG(
11589 FND_LOG.LEVEL_PROCEDURE
11590 ,L_MODULE
11591 ,'end debug call OKL_CHECKLIST_PVT.UPD_CHKLST_DTL_APL_FLAG');
11592 END IF;
11593
11594 -- write to log
11595 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
11596 OKL_DEBUG_PUB.LOG_DEBUG(
11597 FND_LOG.LEVEL_STATEMENT
11598 ,L_MODULE || ' Result of OKL_CHECKLIST_PVT.UPD_CHKLST_DTL_APL_FLAG'
11599 ,'l_return_status ' || l_return_status);
11600 END IF; -- end of statement level debug
11601
11602 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
11603 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
11604 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
11605 RAISE OKL_API.G_EXCEPTION_ERROR;
11606 END IF;
11607 END IF;--If check for credit conditions table count check
11608
11609 recom_count := 1;
11610 --Process Credit Decision Recommendation
11611 IF(p_cr_dec_apl_flag = 'Y')
11612 THEN
11613 approve := TRUE;
11614 --Fetch the details for the given recommendation id and populate
11615 --appealing recommendation table
11616 OPEN credit_recom_csr(crd_app_data_rec.parent_leaseapp_id, NULL, 'APPROVE');
11617 FETCH credit_recom_csr INTO credit_recom_rec;
11618 IF(credit_recom_csr%NOTFOUND)
11619 THEN
11620 approve := FALSE;
11621 END IF;
11622 CLOSE credit_recom_csr;
11623 IF(NOT approve)
11624 THEN
11625 OPEN credit_recom_csr(crd_app_data_rec.parent_leaseapp_id, NULL, 'REJECT');
11626 FETCH credit_recom_csr INTO credit_recom_rec;
11627 CLOSE credit_recom_csr;
11628 END IF;
11629 l_appealing_reco_tbl(recom_count).recommendation_id := credit_recom_rec.recommendation_id;
11630 l_appealing_reco_tbl(recom_count).credit_recommendation := credit_recom_rec.credit_recommendation;
11631 l_appealing_reco_tbl(recom_count).recommendation_name := credit_recom_rec.recommendation_name;
11632 recom_count := recom_count + 1;
11633 END IF;
11634 --Process Expiration Days Recommendation
11635 IF(p_exp_date_apl_flag = 'Y')
11636 THEN
11637 --Fetch the details for the given recommendation id and populate
11638 --appealing recommendation table
11639 OPEN credit_recom_csr(crd_app_data_rec.parent_leaseapp_id, NULL, 'EXPIRATION_DATE');
11640 FETCH credit_recom_csr INTO credit_recom_rec;
11641 IF(credit_recom_csr%FOUND)
11642 THEN
11643 l_appealing_reco_tbl(recom_count).recommendation_id := credit_recom_rec.recommendation_id;
11644 l_appealing_reco_tbl(recom_count).credit_recommendation := credit_recom_rec.credit_recommendation;
11645 l_appealing_reco_tbl(recom_count).recommendation_name := credit_recom_rec.recommendation_name;
11646 recom_count := recom_count + 1;
11647 END IF;
11648 CLOSE credit_recom_csr;
11649 END IF;
11650 --Process Checklist Recommendation
11651 IF(process_chklst)
11652 THEN
11653 --Fetch the details for the given recommendation id and populate
11654 --appealing recommendation table
11655 OPEN credit_recom_csr(crd_app_data_rec.parent_leaseapp_id, NULL, 'CHECKLIST');
11656 FETCH credit_recom_csr INTO credit_recom_rec;
11657 IF(credit_recom_csr%FOUND)
11658 THEN
11659 l_appealing_reco_tbl(recom_count).recommendation_id := credit_recom_rec.recommendation_id;
11660 l_appealing_reco_tbl(recom_count).credit_recommendation := credit_recom_rec.credit_recommendation;
11661 l_appealing_reco_tbl(recom_count).recommendation_name := credit_recom_rec.recommendation_name;
11662 recom_count := recom_count + 1;
11663 END IF;
11664 CLOSE credit_recom_csr;
11665 END IF;
11666
11667 --Loop through the additional recommends flag and populate the recommendations
11668 --table to be passed to OCM
11669 IF(p_addl_rcmnds.COUNT > 0)
11670 THEN
11671 i := p_addl_rcmnds.FIRST;
11672 LOOP
11673 IF(p_addl_rcmnds(i).itm_value = 'Y')
11674 THEN
11675 --Fetch the details for the given recommendation id and populate
11676 --appealing recommendation table
11677 OPEN credit_recom_csr(crd_app_data_rec.parent_leaseapp_id, p_addl_rcmnds(i).itm_name, NULL);
11678 FETCH credit_recom_csr INTO credit_recom_rec;
11679 IF(credit_recom_csr%FOUND)
11680 THEN
11681 l_appealing_reco_tbl(recom_count).recommendation_id := credit_recom_rec.recommendation_id;
11682 l_appealing_reco_tbl(recom_count).credit_recommendation := credit_recom_rec.credit_recommendation;
11683 l_appealing_reco_tbl(recom_count).recommendation_name := credit_recom_rec.recommendation_name;
11684 recom_count := recom_count + 1;
11685 END IF;
11686 CLOSE credit_recom_csr;
11687 END IF;
11688 EXIT WHEN (i = p_addl_rcmnds.LAST);
11689 i := p_addl_rcmnds.NEXT(i);
11690 END LOOP;
11691 END IF;--If check for additional recommendations table count
11692
11693 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
11694 THEN
11695 OKL_DEBUG_PUB.LOG_DEBUG(
11696 FND_LOG.LEVEL_PROCEDURE
11697 ,L_MODULE
11698 ,'begin debug call OCM_RECOMMENDATIONS_PUB.MARK_APPEAL');
11699 END IF;
11700
11701 OCM_RECOMMENDATIONS_PUB.MARK_APPEAL(
11702 p_api_version => p_api_version
11703 ,p_init_msg_list => OKL_API.G_FALSE
11704 ,p_commit => NULL
11705 ,p_validation_level => NULL
11706 ,p_credit_request_id => crd_app_data_rec.credit_request_id
11707 ,p_case_folder_id => NULL
11708 ,p_appealing_reco_tbl => l_appealing_reco_tbl
11709 ,x_return_status => l_return_status
11710 ,x_msg_count => x_msg_count
11711 ,x_msg_data => x_msg_data);
11712
11713 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
11714 THEN
11715 OKL_DEBUG_PUB.LOG_DEBUG(
11716 FND_LOG.LEVEL_PROCEDURE
11717 ,L_MODULE
11718 ,'end debug call OCM_RECOMMENDATIONS_PUB.MARK_APPEAL');
11719 END IF;
11720
11721 -- write to log
11722 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
11723 OKL_DEBUG_PUB.LOG_DEBUG(
11724 FND_LOG.LEVEL_STATEMENT
11725 ,L_MODULE || ' Result of OCM_RECOMMENDATIONS_PUB.MARK_APPEAL'
11726 ,'l_return_status ' || l_return_status);
11727 END IF; -- end of statement level debug
11728
11729 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
11730 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
11731 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
11732 RAISE OKL_API.G_EXCEPTION_ERROR;
11733 END IF;
11734
11735 x_return_status := l_return_status;
11736 OKL_API.END_ACTIVITY(
11737 x_msg_count => x_msg_count
11738 ,x_msg_data => x_msg_data);
11739 EXCEPTION
11740 WHEN OKL_API.G_EXCEPTION_ERROR THEN
11741 --Credit Recommendation Details Cursor
11742 IF credit_recom_csr%ISOPEN
11743 THEN
11744 CLOSE credit_recom_csr;
11745 END IF;
11746 --Credit Request Details Cursor
11747 IF crd_app_data_csr%ISOPEN
11748 THEN
11749 CLOSE crd_app_data_csr;
11750 END IF;
11751 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
11752 p_api_name => l_api_name,
11753 p_pkg_name => G_PKG_NAME,
11754 p_exc_name => 'OKL_API.G_RET_STS_ERROR',
11755 x_msg_count => x_msg_count,
11756 x_msg_data => x_msg_data,
11757 p_api_type => G_API_TYPE);
11758
11759 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
11760 --Credit Recommendation Details Cursor
11761 IF credit_recom_csr%ISOPEN
11762 THEN
11763 CLOSE credit_recom_csr;
11764 END IF;
11765 --Credit Request Details Cursor
11766 IF crd_app_data_csr%ISOPEN
11767 THEN
11768 CLOSE crd_app_data_csr;
11769 END IF;
11770 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
11771 p_api_name => l_api_name,
11772 p_pkg_name => G_PKG_NAME,
11773 p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
11774 x_msg_count => x_msg_count,
11775 x_msg_data => x_msg_data,
11776 p_api_type => G_API_TYPE);
11777 WHEN OTHERS THEN
11778 --Credit Recommendation Details Cursor
11779 IF credit_recom_csr%ISOPEN
11780 THEN
11781 CLOSE credit_recom_csr;
11782 END IF;
11783 --Credit Request Details Cursor
11784 IF crd_app_data_csr%ISOPEN
11785 THEN
11786 CLOSE crd_app_data_csr;
11787 END IF;
11788 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
11789 p_api_name => l_api_name,
11790 p_pkg_name => G_PKG_NAME,
11791 p_exc_name => 'OTHERS',
11792 x_msg_count => x_msg_count,
11793 x_msg_data => x_msg_data,
11794 p_api_type => G_API_TYPE);
11795 END appeal_recommendations;
11796
11797 ------------------------------------------------------------------------------
11798 -- PROCEDURE create_contract_val
11799 ------------------------------------------------------------------------------
11800 -- Start of comments
11801 --
11802 -- Procedure Name : create_contract_val
11803 -- Description : This procedure validates the contract creation from given
11804 -- lease app.
11805 -- Business Rules : This procedure validates the contract creation from given
11806 -- lease app.
11807 -- Parameters :
11808 -- Version : 1.0
11809 -- History : 06-Apr-2006 PAGARG created Bug 5115741
11810 -- 24-Apr-2009 nikshah Bug 7140398
11811 -- End of comments
11812 PROCEDURE create_contract_val(
11813 p_api_version IN NUMBER,
11814 p_init_msg_list IN VARCHAR2,
11815 p_lap_id IN OKL_LEASE_APPLICATIONS_B.ID%TYPE,
11816 x_return_status OUT NOCOPY VARCHAR2,
11817 x_msg_count OUT NOCOPY NUMBER,
11818 x_msg_data OUT NOCOPY VARCHAR2)
11819 IS
11820 -- Variables Declarations
11821 l_api_version CONSTANT NUMBER DEFAULT G_INIT_VERSION;
11822 l_api_name CONSTANT VARCHAR2(30) DEFAULT 'CREATE_CONTRACT_VAL';
11823 l_return_status VARCHAR2(1);
11824
11825 --Cursor to obtain the details of lease quote line of Lease App
11826 CURSOR l_lap_dtls_csr(p_lap_id NUMBER)
11827 IS
11828 SELECT LAB.REFERENCE_NUMBER REFERENCE_NUMBER
11829 , LAB.LEASE_OPPORTUNITY_ID LEASE_OPPORTUNITY_ID
11830 FROM OKL_LEASE_APPLICATIONS_B LAB
11831 WHERE LAB.ID = p_lap_id;
11832 l_lap_dtls_rec l_lap_dtls_csr%ROWTYPE;
11833
11834 --Cursor to check if contract already created from lease opp linked to lease app
11835 --through another Lease App
11836 CURSOR l_uniq_contract_csr(p_lap_id NUMBER)
11837 IS
11838 SELECT LAB.REFERENCE_NUMBER LSE_APP
11839 , LOP.REFERENCE_NUMBER LSE_OPP
11840 , CHR.CONTRACT_NUMBER CONTRACT_NUMBER
11841 FROM OKL_LEASE_APPLICATIONS_B LAB
11842 , OKL_LEASE_APPLICATIONS_B CLAB
11843 , OKL_LEASE_OPPORTUNITIES_B LOP
11844 , OKC_K_HEADERS_B CHR
11845 , OKC_STATUSES_V CSTS
11846 WHERE LAB.LEASE_OPPORTUNITY_ID = CLAB.LEASE_OPPORTUNITY_ID
11847 AND LOP.ID = LAB.LEASE_OPPORTUNITY_ID
11848 AND LAB.ID <> CLAB.ID
11849 AND LAB.APPLICATION_STATUS = 'CONV-K'
11850 AND LAB.ID = CHR.ORIG_SYSTEM_ID1
11851 AND CHR.ORIG_SYSTEM_SOURCE_CODE = 'OKL_LEASE_APP'
11852 AND CHR.STS_CODE = CSTS.CODE
11853 AND CSTS.STE_CODE <> 'CANCELLED'
11854 AND CLAB.ID = p_lap_id;
11855 l_uniq_contract_rec l_uniq_contract_csr%ROWTYPE;
11856
11857 --Cursor to check if contract already created directly from lease opp which
11858 --is linked to lease app
11859 CURSOR l_uniq_qte_contract_csr(p_lap_id NUMBER)
11860 IS
11861 SELECT LSQ.REFERENCE_NUMBER LSE_QTE
11862 , LOP.REFERENCE_NUMBER LSE_OPP
11863 , CHR.CONTRACT_NUMBER CONTRACT_NUMBER
11864 FROM OKL_LEASE_QUOTES_B LSQ
11865 , OKL_LEASE_APPLICATIONS_B CLAB
11866 , OKL_LEASE_OPPORTUNITIES_B LOP
11867 , OKC_K_HEADERS_B CHR
11868 , OKC_STATUSES_V CSTS
11869 WHERE LOP.ID = CLAB.LEASE_OPPORTUNITY_ID
11870 AND CHR.ORIG_SYSTEM_ID1 = LOP.ID
11871 AND CHR.ORIG_SYSTEM_SOURCE_CODE = 'OKL_QUOTE'
11872 AND CSTS.CODE = CHR.STS_CODE
11873 AND CSTS.STE_CODE <> 'CANCELLED'
11874 AND LSQ.PARENT_OBJECT_CODE = 'LEASEOPP'
11875 AND LSQ.PARENT_OBJECT_ID = LOP.ID
11876 AND LSQ.STATUS = 'CT-ACCEPTED'
11877 AND CLAB.ID = p_lap_id;
11878 l_uniq_qte_contract_rec l_uniq_qte_contract_csr%ROWTYPE;
11879 BEGIN
11880 l_return_status := OKL_API.G_RET_STS_SUCCESS;
11881 L_MODULE := 'OKL.PLSQL.OKL_LEASE_APP_PVT.CREATE_CONTRACT_VAL';
11882
11883 -- check for logging on PROCEDURE level
11884 L_DEBUG_ENABLED := NVL(OKL_DEBUG_PUB.CHECK_LOG_ENABLED, 'N');
11885 IS_DEBUG_PROCEDURE_ON := NVL(OKL_DEBUG_PUB.CHECK_LOG_ON(L_MODULE, FND_LOG.LEVEL_PROCEDURE), FALSE);
11886 -- check for logging on STATEMENT level
11887 IS_DEBUG_STATEMENT_ON := NVL(OKL_DEBUG_PUB.CHECK_LOG_ON(L_MODULE, FND_LOG.LEVEL_STATEMENT), FALSE);
11888
11889 -- call START_ACTIVITY to create savepoint, check compatibility
11890 -- and initialize message list
11891 l_return_status := OKL_API.START_ACTIVITY(
11892 p_api_name => l_api_name
11893 ,p_pkg_name => G_PKG_NAME
11894 ,p_init_msg_list => p_init_msg_list
11895 ,l_api_version => l_api_version
11896 ,p_api_version => p_api_version
11897 ,p_api_type => G_API_TYPE
11898 ,x_return_status => l_return_status);
11899
11900 -- check if activity started successfully
11901 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
11902 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
11903 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
11904 RAISE OKL_API.G_EXCEPTION_ERROR;
11905 END IF;
11906
11907 -- ER# 7140398 - Start
11908 -- Do not allow conversion to contract in case the primary quote is Credit Declined.
11909 IF (is_primary_quote_declined(p_lap_id)) THEN
11910 l_return_status := OKL_API.G_RET_STS_ERROR;
11911 OKL_API.SET_MESSAGE(
11912 p_app_name => G_APP_NAME,
11913 p_msg_name => 'OKL_SO_DEC_OFFER_TO_CHR_ERR');
11914 RAISE OKL_API.G_EXCEPTION_ERROR;
11915 END IF;
11916 -- Bug# 7140398 - End
11917
11918 --Obtain the details of Lease App
11919 OPEN l_lap_dtls_csr(p_lap_id);
11920 FETCH l_lap_dtls_csr INTO l_lap_dtls_rec;
11921 CLOSE l_lap_dtls_csr;
11922
11923 --Validate that only one contract being created from source Lease Opp through
11924 --any Lease App
11925 OPEN l_uniq_contract_csr(p_lap_id);
11926 FETCH l_uniq_contract_csr INTO l_uniq_contract_rec;
11927 IF l_uniq_contract_csr%FOUND
11928 THEN
11929 l_return_status := OKL_API.G_RET_STS_ERROR;
11930 OKL_API.SET_MESSAGE(
11931 p_app_name => G_APP_NAME,
11932 p_msg_name => 'OKL_SO_LSE_APP_DUP_CRE_CON_ERR',
11933 p_token1 => 'LSE_OPP',
11934 p_token1_value => l_uniq_contract_rec.lse_opp,
11935 p_token2 => 'CONTRACT',
11936 p_token2_value => l_uniq_contract_rec.contract_number,
11937 p_token3 => 'LSE_APP',
11938 p_token3_value => l_uniq_contract_rec.lse_app);
11939 RAISE OKL_API.G_EXCEPTION_ERROR;
11940 END IF;
11941 CLOSE l_uniq_contract_csr;
11942
11943 --Validate that only one contract being created from source Lease Opp through
11944 --accepted Lease Quote
11945 OPEN l_uniq_qte_contract_csr(p_lap_id);
11946 FETCH l_uniq_qte_contract_csr INTO l_uniq_qte_contract_rec;
11947 IF l_uniq_qte_contract_csr%FOUND
11948 THEN
11949 l_return_status := OKL_API.G_RET_STS_ERROR;
11950 OKL_API.SET_MESSAGE(
11951 p_app_name => G_APP_NAME,
11952 p_msg_name => 'OKL_SO_LSE_QTE_DUP_CRE_CON_ERR',
11953 p_token1 => 'LSE_OPP',
11954 p_token1_value => l_uniq_qte_contract_rec.lse_opp,
11955 p_token2 => 'CONTRACT',
11956 p_token2_value => l_uniq_qte_contract_rec.contract_number,
11957 p_token3 => 'LSE_QTE',
11958 p_token3_value => l_uniq_qte_contract_rec.lse_qte);
11959 RAISE OKL_API.G_EXCEPTION_ERROR;
11960 END IF;
11961 CLOSE l_uniq_qte_contract_csr;
11962
11963 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
11964 THEN
11965 OKL_DEBUG_PUB.LOG_DEBUG(
11966 FND_LOG.LEVEL_PROCEDURE
11967 ,L_MODULE
11968 ,'begin debug call CHECK_ELIGIBILITY');
11969 END IF;
11970
11971 --call the procedure to Validate Create Contract action on lease app
11972 CHECK_ELIGIBILITY(
11973 p_api_version => p_api_version
11974 ,p_init_msg_list => OKL_API.G_FALSE
11975 ,x_return_status => l_return_status
11976 ,x_msg_count => x_msg_count
11977 ,x_msg_data => x_msg_data
11978 ,p_lap_id => p_lap_id
11979 ,p_action => 'CRECON');
11980
11981 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
11982 THEN
11983 OKL_DEBUG_PUB.LOG_DEBUG(
11984 FND_LOG.LEVEL_PROCEDURE
11985 ,L_MODULE
11986 ,'end debug call CHECK_ELIGIBILITY');
11987 END IF;
11988
11989 -- write to log
11990 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
11991 OKL_DEBUG_PUB.LOG_DEBUG(
11992 FND_LOG.LEVEL_STATEMENT
11993 ,L_MODULE || ' Result of CHECK_ELIGIBILITY'
11994 ,'return status ' || l_return_status ||
11995 ' x_msg_data ' || x_msg_data);
11996 END IF; -- end of statement level debug
11997
11998 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
11999 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
12000 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
12001 RAISE OKL_API.G_EXCEPTION_ERROR;
12002 END IF;
12003
12004 x_return_status := l_return_status;
12005 OKL_API.END_ACTIVITY(
12006 x_msg_count => x_msg_count
12007 ,x_msg_data => x_msg_data);
12008 EXCEPTION
12009 WHEN OKL_API.G_EXCEPTION_ERROR THEN
12010 --Check if Lease App cursor is open
12011 IF l_lap_dtls_csr%ISOPEN
12012 THEN
12013 CLOSE l_lap_dtls_csr;
12014 END IF;
12015 --Check if Unique Contract cursor is open
12016 IF l_uniq_contract_csr%ISOPEN
12017 THEN
12018 CLOSE l_uniq_contract_csr;
12019 END IF;
12020 --Check if Unique Contract from quote cursor is open
12021 IF l_uniq_qte_contract_csr%ISOPEN
12022 THEN
12023 CLOSE l_uniq_qte_contract_csr;
12024 END IF;
12025 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
12026 p_api_name => l_api_name,
12027 p_pkg_name => G_PKG_NAME,
12028 p_exc_name => 'OKL_API.G_RET_STS_ERROR',
12029 x_msg_count => x_msg_count,
12030 x_msg_data => x_msg_data,
12031 p_api_type => G_API_TYPE);
12032 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
12033 --Check if Lease App cursor is open
12034 IF l_lap_dtls_csr%ISOPEN
12035 THEN
12036 CLOSE l_lap_dtls_csr;
12037 END IF;
12038 --Check if Unique Contract cursor is open
12039 IF l_uniq_contract_csr%ISOPEN
12040 THEN
12041 CLOSE l_uniq_contract_csr;
12042 END IF;
12043 --Check if Unique Contract from quote cursor is open
12044 IF l_uniq_qte_contract_csr%ISOPEN
12045 THEN
12046 CLOSE l_uniq_qte_contract_csr;
12047 END IF;
12048 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
12049 p_api_name => l_api_name,
12050 p_pkg_name => G_PKG_NAME,
12051 p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
12052 x_msg_count => x_msg_count,
12053 x_msg_data => x_msg_data,
12054 p_api_type => G_API_TYPE);
12055 WHEN OTHERS THEN
12056 --Check if Lease App cursor is open
12057 IF l_lap_dtls_csr%ISOPEN
12058 THEN
12059 CLOSE l_lap_dtls_csr;
12060 END IF;
12061 --Check if Unique Contract cursor is open
12062 IF l_uniq_contract_csr%ISOPEN
12063 THEN
12064 CLOSE l_uniq_contract_csr;
12065 END IF;
12066 --Check if Unique Contract from quote cursor is open
12067 IF l_uniq_qte_contract_csr%ISOPEN
12068 THEN
12069 CLOSE l_uniq_qte_contract_csr;
12070 END IF;
12071 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
12072 p_api_name => l_api_name,
12073 p_pkg_name => G_PKG_NAME,
12074 p_exc_name => 'OTHERS',
12075 x_msg_count => x_msg_count,
12076 x_msg_data => x_msg_data,
12077 p_api_type => G_API_TYPE);
12078 END create_contract_val;
12079
12080 END OKL_LEASE_APP_PVT;