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