[Home] [Help]
PACKAGE BODY: APPS.FA_LEASE_PVT
Source
1 PACKAGE BODY FA_LEASE_PVT AS
2 /* $Header: FAVLEAB.pls 120.5 2009/05/08 21:14:44 glchen ship $ */
3
4 -----------------------------------------------
5 -- CHECK FOR LESSOR_ID
6 -----------------------------------------------
7 FUNCTION CHECK_LESSOR_ID (
8 P_VENDOR_ID IN PO_VENDORS.VENDOR_ID%TYPE
9 ,p_log_level_rec IN fa_api_types.log_level_rec_type default null
10 ) RETURN BOOLEAN AS
11
12 CURSOR C_VENDOR_ID IS
13 SELECT VENDOR_ID
14 FROM PO_VENDORS
15 WHERE VENDOR_ID= P_VENDOR_ID;
16
17 L_VENDOR_ID NUMBER:=NULL;
18
19 BEGIN
20
21 FOR C_VENDOR_ID_REC IN C_VENDOR_ID
22 LOOP
23 L_VENDOR_ID := C_VENDOR_ID_REC.VENDOR_ID;
24 END LOOP;
25
26 IF L_VENDOR_ID IS NULL THEN
27 FND_MESSAGE.SET_NAME ('OFA','FA_INCORRECT_LESSOR_ID');
28 FND_MESSAGE.SET_TOKEN ('CALLING_FN','CHECK_LESSOR_ID');
29 FND_MSG_PUB.ADD;
30 RETURN (FALSE);
31 ELSE
32 RETURN (TRUE);
33 END IF;
34
35 EXCEPTION
36 WHEN OTHERS THEN
37 FA_SRVR_MSG.ADD_SQL_ERROR('CHECK_LESSOR_ID', p_log_level_rec => p_log_level_rec);
38 RETURN (FALSE);
39 END CHECK_LESSOR_ID ;
40
41 ---------------------------------------------------------
42 -- CHECK FOR LESSOR_NAME
43 ---------------------------------------------------------
44 FUNCTION CHECK_LESSOR_NAME (
45 P_VENDOR_NAME IN PO_VENDORS.VENDOR_NAME%TYPE,
46 X_VENDOR_ID OUT NOCOPY PO_VENDORS.VENDOR_ID%TYPE,
47 p_log_level_rec IN fa_api_types.log_level_rec_type default null
48 ) RETURN BOOLEAN AS
49
50 CURSOR C_VENDOR_NAME IS
51 SELECT VENDOR_ID
52 FROM PO_VENDORS
53 WHERE VENDOR_NAME= P_VENDOR_NAME;
54
55 L_VENDOR_ID NUMBER:=NULL;
56
57 BEGIN
58
59 FOR C_VENDOR_NAME_REC IN C_VENDOR_NAME
60 LOOP
61 L_VENDOR_ID := C_VENDOR_NAME_REC.VENDOR_ID;
62 END LOOP;
63
64 IF L_VENDOR_ID IS NULL THEN
65 FND_MESSAGE.SET_NAME ('OFA','FA_INCORRECT_LESSOR_ID');
66 FND_MESSAGE.SET_TOKEN ('CALLING_FN','CHECK_LESSOR_NAME');
67 FND_MSG_PUB.ADD;
68 RETURN (FALSE);
69 ELSE
70 X_VENDOR_ID:=L_VENDOR_ID;
71 RETURN (TRUE);
72 END IF;
73
74 EXCEPTION
75 WHEN OTHERS THEN
76 FA_SRVR_MSG.ADD_SQL_ERROR('CHECK_LESSOR_NAME', p_log_level_rec => p_log_level_rec);
77 RETURN (FALSE);
78 END CHECK_LESSOR_NAME ;
79
80 ---------------------------------------
81 -- CHECK FOR PAYMENT SCHEDULE ID
82 ---------------------------------------
83 FUNCTION CHECK_PAYMENT_SCHEDULE_ID (
84 P_PAYMENT_SCHEDULE_ID IN FA_LEASE_SCHEDULES.PAYMENT_SCHEDULE_ID%TYPE
85 ,p_log_level_rec IN fa_api_types.log_level_rec_type default null
86
87 ) RETURN BOOLEAN AS
88
89 CURSOR C_PAYMENT_SCHEDULE_ID IS
90 SELECT PAYMENT_SCHEDULE_ID
91 FROM FA_LEASE_SCHEDULES
92 WHERE PAYMENT_SCHEDULE_ID = P_PAYMENT_SCHEDULE_ID;
93
94 L_PAYMENT_SCHEDULE_ID FA_LEASE_PAYMENTS.PAYMENT_SCHEDULE_ID%TYPE:=NULL;
95
96 BEGIN
97
98 FOR C_PAYMENT_SCHEDULE_ID_REC IN C_PAYMENT_SCHEDULE_ID
99 LOOP
100 L_PAYMENT_SCHEDULE_ID := C_PAYMENT_SCHEDULE_ID_REC.PAYMENT_SCHEDULE_ID ;
101 END LOOP;
102
103 IF L_PAYMENT_SCHEDULE_ID IS NULL THEN
104 FND_MESSAGE.SET_NAME ('OFA','FA_LEASE_SCHEDULE_NOT_FOUND');
105 FND_MESSAGE.SET_TOKEN ('CALLING_FN','CHECK_PAYMENT_SCHEDULE_ID');
106 FND_MSG_PUB.ADD;
107 RETURN (FALSE);
108 ELSE
109 RETURN (TRUE);
110 END IF;
111
112 EXCEPTION
113 WHEN OTHERS THEN
114 FA_SRVR_MSG.ADD_SQL_ERROR('CHECK_PAYMENT_SCHEDULE_ID', p_log_level_rec => p_log_level_rec);
115 RETURN (FALSE);
116 END CHECK_PAYMENT_SCHEDULE_ID;
117
118 ----------------------------------------
119 -- CHECK FOR PAYMENT SCHEDULE NAME
120 ----------------------------------------
121 FUNCTION CHECK_PAYMENT_SCHEDULE_NAME (
122 P_PAYMENT_SCHEDULE_NAME IN FA_LEASE_SCHEDULES.PAYMENT_SCHEDULE_NAME%TYPE,
123 X_PAYMENT_SCHEDULE_ID OUT NOCOPY FA_LEASE_SCHEDULES.PAYMENT_SCHEDULE_ID%TYPE
124 ,p_log_level_rec IN fa_api_types.log_level_rec_type default null
125 ) RETURN BOOLEAN AS
126
127 CURSOR C_PAYMENT_SCHEDULE_NAME IS
128 SELECT PAYMENT_SCHEDULE_ID
129 FROM FA_LEASE_SCHEDULES
130 WHERE PAYMENT_SCHEDULE_NAME = P_PAYMENT_SCHEDULE_NAME;
131
132 L_PAYMENT_SCHEDULE_ID NUMBER:=NULL;
133
134 BEGIN
135
136 FOR C_PAYMENT_SCHEDULE_NAME_REC IN C_PAYMENT_SCHEDULE_NAME
137 LOOP
138 L_PAYMENT_SCHEDULE_ID := C_PAYMENT_SCHEDULE_NAME_REC.PAYMENT_SCHEDULE_ID ;
139 END LOOP;
140
141 IF L_PAYMENT_SCHEDULE_ID IS NULL THEN
142 FND_MESSAGE.SET_NAME ('OFA','FA_LEASE_SCHEDULE_NOT_FOUND');
143 FND_MESSAGE.SET_TOKEN ('CALLING_FN','CHECK_PAYMENT_SCHEDULE_NAME');
144 FND_MSG_PUB.ADD;
145 RETURN (FALSE);
146 ELSE
147 X_PAYMENT_SCHEDULE_ID :=L_PAYMENT_SCHEDULE_ID ;
148 RETURN (TRUE);
149 END IF;
150
151 EXCEPTION
152 WHEN OTHERS THEN
153 FA_SRVR_MSG.ADD_SQL_ERROR('CHECK_PAYMENT_SCHEDULE_NAME', p_log_level_rec => p_log_level_rec);
154 RETURN (FALSE);
155 END CHECK_PAYMENT_SCHEDULE_NAME;
156
157 --------------------------------
158 -- CHECK FOR CHECK TERMS
159 --------------------------------
160 FUNCTION CHECK_TERMS_ID (
161 P_TERMS_ID IN AP_TERMS.TERM_ID%TYPE
162 ,p_log_level_rec IN fa_api_types.log_level_rec_type default null
163 ) RETURN BOOLEAN AS
164
165 CURSOR C_CHECK_TERMS_ID IS
166 SELECT TERM_ID FROM
167 AP_TERMS_BAT_PAY_TERMS_V
168 WHERE TERM_ID = P_TERMS_ID;
169
170 L_TERMS_ID NUMBER:=NULL;
171
172 BEGIN
173
174 FOR C_CHECK_TERMS_ID_REC IN C_CHECK_TERMS_ID
175 LOOP
176 L_TERMS_ID := C_CHECK_TERMS_ID_REC.TERM_ID ;
177 END LOOP;
178
179 IF L_TERMS_ID IS NULL THEN
180 FND_MESSAGE.SET_NAME ('OFA','FA_INCORRECT_PAYMENT_TERM');
181 FND_MESSAGE.SET_TOKEN ('CALLING_FN','CHECK_TERMS_ID');
182 FND_MSG_PUB.ADD;
183 RETURN(FALSE);
184 ELSE
185 RETURN(TRUE);
186 END IF;
187
188 EXCEPTION
189 WHEN OTHERS THEN
190 FA_SRVR_MSG.ADD_SQL_ERROR('CHECK_TERMS_ID', p_log_level_rec => p_log_level_rec);
191 RETURN (FALSE);
192 END CHECK_TERMS_ID ;
193
194 ---------------------------------------
195 -- CHECK FOR CHECK PAYMENT TERMS
196 ---------------------------------------
197 FUNCTION CHECK_PAYMENT_TERMS(
198 P_PAYMENT_TERMS IN AP_TERMS.NAME%TYPE,
199 X_TERMS_ID OUT NOCOPY AP_TERMS.TERM_ID%TYPE
200 ,p_log_level_rec IN fa_api_types.log_level_rec_type default null
201 ) RETURN BOOLEAN AS
202
203 CURSOR C_CHECK_PAYMENT_TERMS IS
204 SELECT TERM_ID FROM
205 AP_TERMS_BAT_PAY_TERMS_V
206 WHERE TERMS = P_PAYMENT_TERMS;
207
208 L_TERMS_ID NUMBER:=NULL;
209
210 BEGIN
211
212 FOR C_CHECK_PAYMENT_TERMS_REC IN C_CHECK_PAYMENT_TERMS
213 LOOP
214 L_TERMS_ID := C_CHECK_PAYMENT_TERMS_REC.TERM_ID ;
215 END LOOP;
216
217 IF L_TERMS_ID IS NULL THEN
218 FND_MESSAGE.SET_NAME ('OFA','FA_INCORRECT_PAYMENT_TERM');
219 FND_MESSAGE.SET_TOKEN ('CALLING_FN','CHECK_PAYMENT_TERMS');
220 FND_MSG_PUB.ADD;
221 RETURN (FALSE);
222 ELSE
223 X_TERMS_ID := L_TERMS_ID ;
224 RETURN (TRUE);
225 END IF;
226
227 EXCEPTION
228 WHEN OTHERS THEN
229 FA_SRVR_MSG.ADD_SQL_ERROR('CHECK_PAYMENT_TERMS', p_log_level_rec => p_log_level_rec);
230 RETURN (FALSE);
231 END CHECK_PAYMENT_TERMS;
232
233 -------------------------------------------
234 -- CHECK FOR CHECK LESSOR SITE
235 -------------------------------------------
236 FUNCTION CHECK_LESSOR_SITE_ID (
237 P_VENDOR_SITE_ID IN PO_VENDOR_SITES_ALL.VENDOR_SITE_ID%TYPE,
238 P_VENDOR_ID IN PO_VENDOR_SITES_ALL.VENDOR_ID%TYPE,
239 X_CHART_OF_ACCOUNTS_ID OUT NOCOPY GL_SETS_OF_BOOKS.CHART_OF_ACCOUNTS_ID%TYPE,
240 X_LESSOR_SITE_ORG_ID OUT NOCOPY NUMBER
241 ,p_log_level_rec IN fa_api_types.log_level_rec_type default null
242 ) RETURN BOOLEAN AS
243
244 CURSOR C_LESSOR_SITE_ID IS
245 SELECT
246 PVS.VENDOR_SITE_ID
247 ,SOB.CHART_OF_ACCOUNTS_ID COA_ID
248 ,PVS.ORG_ID LESSOR_SITE_ORG_ID
249 FROM GL_SETS_OF_BOOKS SOB
250 ,HR_ALL_ORGANIZATION_UNITS HAO
251 ,PO_VENDOR_SITES_ALL PVS
252 ,AP_SYSTEM_PARAMETERS_ALL AP
253 WHERE PVS.VENDOR_ID = P_VENDOR_ID
254 AND PVS.VENDOR_SITE_ID = P_VENDOR_SITE_ID
255 AND PVS.ORG_ID IS NOT NULL
256 AND AP.ORG_ID = PVS.ORG_ID
257 AND SOB.SET_OF_BOOKS_ID = AP.SET_OF_BOOKS_ID
258 AND HAO.ORGANIZATION_ID = PVS.ORG_ID
259 UNION
260 SELECT PVS.VENDOR_SITE_ID
261 ,SOB.CHART_OF_ACCOUNTS_ID COA_ID
262 ,PVS.ORG_ID LESSOR_SITE_ORG_ID
263 FROM GL_SETS_OF_BOOKS SOB
264 ,AP_SYSTEM_PARAMETERS_ALL AP
265 ,PO_VENDOR_SITES_ALL PVS
266 WHERE PVS.VENDOR_ID = P_VENDOR_ID
267 AND PVS.VENDOR_SITE_ID = P_VENDOR_SITE_ID
268 AND PVS.ORG_ID IS NULL
269 AND AP.ORG_ID IS NULL
270 AND SOB.SET_OF_BOOKS_ID = AP.SET_OF_BOOKS_ID;
271
272 L_VENDOR_SITE_ID NUMBER:=NULL;
273 L_CHART_OF_ACCOUNTS_ID NUMBER:=NULL;
274 L_LESSOR_SITE_ORG_ID NUMBER:=NULL;
275
276 BEGIN
277
278 FOR C_LESSOR_SITE_ID_REC IN C_LESSOR_SITE_ID
279 LOOP
280 L_VENDOR_SITE_ID := C_LESSOR_SITE_ID_REC.VENDOR_SITE_ID;
281 L_CHART_OF_ACCOUNTS_ID := C_LESSOR_SITE_ID_REC.COA_ID;
282 L_LESSOR_SITE_ORG_ID := C_LESSOR_SITE_ID_REC.LESSOR_SITE_ORG_ID;
283 END LOOP;
284
285 IF L_VENDOR_SITE_ID IS NULL OR L_CHART_OF_ACCOUNTS_ID IS NULL THEN
286 FND_MESSAGE.SET_NAME ('OFA','FA_INCORRECT_PO_VENDOR_SITE');
287 FND_MESSAGE.SET_TOKEN ('CALLING_FN','CHECK_LESSOR_SITE_ID');
288 FND_MSG_PUB.ADD;
289 RETURN (FALSE);
290 ELSE
291 X_CHART_OF_ACCOUNTS_ID:=L_CHART_OF_ACCOUNTS_ID;
292 X_LESSOR_SITE_ORG_ID :=L_LESSOR_SITE_ORG_ID ;
293 RETURN (TRUE);
294 END IF;
295
296 EXCEPTION
297 WHEN OTHERS THEN
298 FA_SRVR_MSG.ADD_SQL_ERROR('cHECK_LESSOR_SITE_ID', p_log_level_rec => p_log_level_rec);
299 RETURN (FALSE);
300 END CHECK_LESSOR_SITE_ID ;
301
302 ------------------------------------------
303 -- CHECK FOR CHECK LESSOR SITE CODE
304 ------------------------------------------
305 FUNCTION CHECK_LESSOR_SITE_CODE (
306 P_VENDOR_SITE_CODE IN PO_VENDOR_SITES_ALL.VENDOR_SITE_CODE%TYPE,
307 P_VENDOR_ID IN PO_VENDOR_SITES_ALL.VENDOR_ID%TYPE,
308 P_VENDOR_SITE_ORG_ID IN PO_VENDOR_SITES_ALL.ORG_ID%TYPE,
309 X_VENDOR_SITE_ID OUT NOCOPY PO_VENDOR_SITES_ALL.VENDOR_SITE_ID%TYPE,
310 X_CHART_OF_ACCOUNTS_ID OUT NOCOPY GL_SETS_OF_BOOKS.CHART_OF_ACCOUNTS_ID%TYPE
311 ,p_log_level_rec IN fa_api_types.log_level_rec_type default null
312 ) RETURN BOOLEAN AS
313
314 CURSOR C_LESSOR_SITE_CODE IS
315 SELECT
316 PVS.VENDOR_SITE_ID
317 ,SOB.CHART_OF_ACCOUNTS_ID COA_ID
318 FROM GL_SETS_OF_BOOKS SOB
319 ,HR_ALL_ORGANIZATION_UNITS HAO
320 ,PO_VENDOR_SITES_ALL PVS
321 ,AP_SYSTEM_PARAMETERS_ALL AP
322 WHERE PVS.VENDOR_ID = P_VENDOR_ID
323 AND PVS.VENDOR_SITE_CODE = P_VENDOR_SITE_CODE
324 AND PVS.ORG_ID IS NOT NULL
325 AND AP.ORG_ID = PVS.ORG_ID
326 AND SOB.SET_OF_BOOKS_ID = AP.SET_OF_BOOKS_ID
327 AND HAO.ORGANIZATION_ID = PVS.ORG_ID
328 AND PVS.ORG_ID = P_VENDOR_SITE_ORG_ID
329 UNION
330 SELECT PVS.VENDOR_SITE_ID
331 ,SOB.CHART_OF_ACCOUNTS_ID COA_ID
332 FROM GL_SETS_OF_BOOKS SOB
333 ,AP_SYSTEM_PARAMETERS_ALL AP
334 ,PO_VENDOR_SITES_ALL PVS
335 WHERE PVS.VENDOR_ID = P_VENDOR_ID
336 AND PVS.VENDOR_SITE_CODE = P_VENDOR_SITE_CODE
337 AND PVS.ORG_ID IS NULL
338 AND AP.ORG_ID IS NULL
339 AND SOB.SET_OF_BOOKS_ID = AP.SET_OF_BOOKS_ID;
340
341 L_VENDOR_SITE_ID NUMBER:=NULL;
342 L_CHART_OF_ACCOUNTS_ID NUMBER:=NULL;
343
344 BEGIN
345
346 FOR C_LESSOR_SITE_CODE_REC IN C_LESSOR_SITE_CODE
347 LOOP
348 L_VENDOR_SITE_ID := C_LESSOR_SITE_CODE_REC.VENDOR_SITE_ID;
349 L_CHART_OF_ACCOUNTS_ID := C_LESSOR_SITE_CODE_REC.COA_ID;
350 END LOOP;
351
352 IF L_VENDOR_SITE_ID IS NULL OR L_CHART_OF_ACCOUNTS_ID IS NULL THEN
353 FND_MESSAGE.SET_NAME ('OFA','FA_INCORRECT_PO_VENDOR_SITE');
354 FND_MESSAGE.SET_TOKEN ('CALLING_FN','CHECK_LESSOR_SITE_CODE');
355 FND_MSG_PUB.ADD;
356 RETURN (FALSE);
357 ELSE
358 X_CHART_OF_ACCOUNTS_ID:=L_CHART_OF_ACCOUNTS_ID;
359 X_VENDOR_SITE_ID:=L_VENDOR_SITE_ID;
360 RETURN (TRUE);
361 END IF;
362
363 EXCEPTION
364 WHEN OTHERS THEN
365 FA_SRVR_MSG.ADD_SQL_ERROR('CHECK_LESSOR_SITE_CODE', p_log_level_rec => p_log_level_rec);
366 RETURN (FALSE);
367 END CHECK_LESSOR_SITE_CODE ;
368
369 ----------------------------------------------
370 -- CHECK FOR CHECK DISTRIBUTION CODE ID
371 ----------------------------------------------
372
373 FUNCTION CHECK_DIST_CODE_COMBINATION_ID(
374 P_DIST_CODE_COMBINATION_ID IN GL_CODE_COMBINATIONS.CODE_COMBINATION_ID%TYPE,
375 P_COA_ID IN GL_CODE_COMBINATIONS.CHART_OF_ACCOUNTS_ID%TYPE
376 ,p_log_level_rec IN fa_api_types.log_level_rec_type default null
377 ) RETURN BOOLEAN AS
378
379 CURSOR C_CODE_COMBINATION_ID IS
380 SELECT
381 CODE_COMBINATION_ID
382 FROM GL_CODE_COMBINATIONS_V
383 WHERE CODE_COMBINATION_ID = P_DIST_CODE_COMBINATION_ID
384 AND CHART_OF_ACCOUNTS_ID = P_COA_ID
385 AND ENABLED_FLAG = 'Y';
386
387 L_CODE_COMBINATION_ID NUMBER:=NULL;
388
389 BEGIN
390 FOR C_CODE_COMBINATION_ID_REC IN C_CODE_COMBINATION_ID
391 LOOP
392 L_CODE_COMBINATION_ID := C_CODE_COMBINATION_ID_REC.CODE_COMBINATION_ID;
393 END LOOP;
394
395 IF L_CODE_COMBINATION_ID IS NULL THEN
396 FND_MESSAGE.SET_NAME ('OFA','FA_INV_CODE_COMBINATION');
397 FND_MESSAGE.SET_TOKEN ('CALLING_FN','CHECK_DIST_CODE_COMBINATION_ID');
398 FND_MSG_PUB.ADD;
399 RETURN (FALSE);
400 ELSE
401 RETURN (TRUE);
402 END IF;
403 EXCEPTION
404 WHEN OTHERS THEN
405 FA_SRVR_MSG.ADD_SQL_ERROR('CHECK_DIST_CODE_COMBINATION_ID', p_log_level_rec => p_log_level_rec);
406 RETURN (FALSE);
407 END CHECK_DIST_CODE_COMBINATION_ID;
408
409 -------------------------------------------------------
410 -- CHECK FOR CHECK DISTRIBUTION CODE COMBINATION
411 -------------------------------------------------------
412 FUNCTION CHECK_CODE_COMBINATION
413 (P_CON_CODE_COMBINATION IN VARCHAR2,
414 P_COA_ID IN GL_CODE_COMBINATIONS.CHART_OF_ACCOUNTS_ID%TYPE,
415 X_CODE_COMBINATION_ID OUT NOCOPY GL_CODE_COMBINATIONS.CODE_COMBINATION_ID%TYPE
416 ,p_log_level_rec IN fa_api_types.log_level_rec_type default null
417 ) RETURN BOOLEAN AS
418
419 L_CODE_COMBINATION_ID NUMBER:=NULL;
420
421 BEGIN
422
423 L_CODE_COMBINATION_ID := FND_FLEX_EXT.GET_CCID ('SQLGL', 'GL#',P_COA_ID,SYSDATE,P_CON_CODE_COMBINATION);
424
425 IF L_CODE_COMBINATION_ID = 0 THEN
426 FND_MESSAGE.SET_NAME ('OFA','FA_INV_CODE_COMBINATION');
427 FND_MESSAGE.SET_TOKEN ('CALLING_FN','CHECK_CODE_COMBINATION');
428 FND_MSG_PUB.ADD;
429 RETURN (FALSE);
430 ELSE
431 X_CODE_COMBINATION_ID :=L_CODE_COMBINATION_ID;
432 RETURN (TRUE);
433 END IF;
434 EXCEPTION
435 WHEN OTHERS THEN
436 FA_SRVR_MSG.ADD_SQL_ERROR('CHECK_CODE_COMBINATION', p_log_level_rec => p_log_level_rec);
437 RETURN (FALSE);
438 END CHECK_CODE_COMBINATION;
439
440 ---------------------------------------------------
441 -- CHECK FOR CHECK LEASE LESSOR COMBINATION
442 ---------------------------------------------------
443 FUNCTION CHECK_LEASE_LESSOR_COMBINATION (
444 P_LESSOR_ID IN NUMBER,
445 P_LEASE_NUMBER IN VARCHAR2
446 , p_log_level_rec IN FA_API_TYPES.log_level_rec_type) RETURN BOOLEAN AS
447
448 CURSOR C_LEASE_LESSOR IS
449 SELECT LEASE_ID
450 FROM FA_LEASES
451 WHERE LEASE_NUMBER = P_LEASE_NUMBER
452 AND LESSOR_ID = P_LESSOR_ID;
453
454 L_LEASE_ID NUMBER:=NULL;
455 DUP_FOUND EXCEPTION;
456
457 BEGIN
458
459 OPEN C_LEASE_LESSOR ;
460 FETCH C_LEASE_LESSOR
461 INTO L_LEASE_ID;
462 IF C_LEASE_LESSOR%FOUND THEN
463 RAISE DUP_FOUND;
464 END IF;
465 CLOSE C_LEASE_LESSOR;
466
467 RETURN (TRUE);
468
469 EXCEPTION
470 WHEN DUP_FOUND THEN
471 CLOSE C_LEASE_LESSOR;
472 FND_MESSAGE.SET_NAME ('OFA','FA_DUPLICATE_LEASE');
473 FND_MESSAGE.SET_TOKEN ('CALLING_FN','CHECK_LEASE_LESSOR_COMBINATION');
474 FND_MSG_PUB.ADD;
475 RETURN (FALSE);
476 WHEN OTHERS THEN
477 CLOSE C_LEASE_LESSOR;
478 FA_SRVR_MSG.ADD_SQL_ERROR('CHECK_LEASE_LESSOR_COMBINATION', p_log_level_rec => p_log_level_rec);
479 RETURN (FALSE);
480 END CHECK_LEASE_LESSOR_COMBINATION ;
481
482 ----------------------------------------
483 -- CHECK FOR CHECK CURRENCY CODE
484 ----------------------------------------
485 FUNCTION CHECK_CURRENCY_CODE (
486 P_CURRENCY_CODE VARCHAR2,
487 P_PAYMENT_SCHEDULE_ID NUMBER
488 , p_log_level_rec IN FA_API_TYPES.log_level_rec_type) RETURN BOOLEAN AS
489
490 CURSOR C_CURRENCY_CODE IS
491 SELECT CURRENCY_CODE
492 FROM FA_LEASE_SCHEDULES
493 WHERE PAYMENT_SCHEDULE_ID = P_PAYMENT_SCHEDULE_ID;
494
495 L_CURRENCY_CODE VARCHAR2(5):=NULL;
496
497 BEGIN
498
499 OPEN C_CURRENCY_CODE ;
500 FETCH C_CURRENCY_CODE INTO L_CURRENCY_CODE;
501
502 IF (C_CURRENCY_CODE %NOTFOUND) THEN
503 CLOSE C_CURRENCY_CODE;
504 FND_MESSAGE.SET_NAME ('OFA','FA_LEASE_SCHEDULE_NOT_FOUND');
505 FND_MESSAGE.SET_TOKEN ('CALLING_FN','CHECK_CURRENCY_CODE');
506 FND_MSG_PUB.ADD;
507 RETURN (FALSE);
508 END IF;
509
510 CLOSE C_CURRENCY_CODE ;
511
512 IF P_CURRENCY_CODE <> L_CURRENCY_CODE THEN
513 FND_MESSAGE.SET_NAME ('OFA','FA_LEASE_CURRENCY_NOT_MATCH');
514 FND_MESSAGE.SET_TOKEN ('CALLING_FN','CHECK_CURRENCY_CODE');
515 FND_MSG_PUB.ADD;
516 RETURN (FALSE);
517 ELSE
518 RETURN (TRUE);
519 END IF;
520
521 EXCEPTION
522 WHEN OTHERS THEN
523 FA_SRVR_MSG.ADD_SQL_ERROR('CHECK_CURRENCY_CODE', p_log_level_rec => p_log_level_rec);
524 RETURN (FALSE);
525 END CHECK_CURRENCY_CODE ;
526
527 -----------------------------------
528 -- CHECK FOR CHECK LEASE TYPE
529 -----------------------------------
530 FUNCTION CHECK_LEASE_TYPE(
531 P_LEASE_TYPE VARCHAR2
532 , p_log_level_rec IN FA_API_TYPES.log_level_rec_type) RETURN BOOLEAN AS
533
534 CURSOR C_LEASE_TYPE IS
535 SELECT LOOKUP_CODE
536 FROM FA_LOOKUPS WHERE
537 LOOKUP_TYPE='LEASE TYPES'
538 AND LOOKUP_CODE = UPPER(P_LEASE_TYPE)
539 AND ENABLED_FLAG = 'Y'
540 AND SYSDATE BETWEEN NVL(START_DATE_ACTIVE,SYSDATE) AND NVL(END_DATE_ACTIVE,SYSDATE);
541
542 L_LEASE_TYPE VARCHAR2(15):=NULL;
543
544 BEGIN
545
546 FOR C_LEASE_TYPE_REC IN C_LEASE_TYPE
547 LOOP
548 L_LEASE_TYPE := C_LEASE_TYPE_REC.LOOKUP_CODE;
549 END LOOP;
550
551 IF L_LEASE_TYPE IS NULL THEN
552 FND_MESSAGE.SET_NAME ('OFA','FA_INV_LEASE_TYPE');
553 FND_MESSAGE.SET_TOKEN ('CALLING_FN','CHECK_LEASE_TYPE');
554 FND_MSG_PUB.ADD;
555 RETURN (FALSE);
556 ELSE
557 RETURN (TRUE);
558 END IF;
559
560 EXCEPTION
561 WHEN OTHERS THEN
562 FA_SRVR_MSG.ADD_SQL_ERROR('CHECK_LEASE_TYPE', p_log_level_rec => p_log_level_rec);
563 RETURN (FALSE);
564 END CHECK_LEASE_TYPE;
565
566 -------------------------------------
567 -- VALIDATE LESSOR
568 -------------------------------------
569 FUNCTION VALIDATE_LESSOR
570 (P_VENDOR_ID IN NUMBER,
571 P_VENDOR_NAME IN VARCHAR2,
572 X_VENDOR_ID OUT NOCOPY NUMBER
573 , p_log_level_rec IN FA_API_TYPES.log_level_rec_type) RETURN BOOLEAN AS
574
575 CURSOR C_VENDOR_NAME IS
576 SELECT VENDOR_ID
577 FROM PO_VENDORS
578 WHERE VENDOR_NAME= P_VENDOR_NAME ;
579
580 CURSOR C_VENDOR_ID IS
581 SELECT VENDOR_ID
582 FROM PO_VENDORS
583 WHERE VENDOR_ID= P_VENDOR_ID ;
584
585 L_VENDOR_ID NUMBER:=NULL;
586
587 BEGIN
588
589 IF P_VENDOR_ID IS NOT NULL THEN
590 FOR C_VENDOR_ID_REC IN C_VENDOR_ID
591 LOOP
592 L_VENDOR_ID := C_VENDOR_ID_REC.VENDOR_ID;
593 END LOOP;
594 ELSIF P_VENDOR_NAME IS NOT NULL THEN
595 FOR C_VENDOR_NAME_REC IN C_VENDOR_NAME
596 LOOP
597 L_VENDOR_ID := C_VENDOR_NAME_REC.VENDOR_ID;
598 END LOOP;
599 ELSE
600 FND_MESSAGE.SET_NAME ('OFA','FA_INCORRECT_PO_VENDOR_NAME');
601 FND_MESSAGE.SET_TOKEN ('CALLING_FN','VALIDATE_LESSOR');
602 FND_MSG_PUB.ADD;
603 RETURN (FALSE);
604 END IF;
605
606 IF L_VENDOR_ID IS NOT NULL THEN
607 X_VENDOR_ID:=L_VENDOR_ID;
608 RETURN (TRUE);
609 ELSE
610 FND_MESSAGE.SET_NAME ('OFA','FA_INCORRECT_PO_VENDOR_NAME');
611 FND_MESSAGE.SET_TOKEN ('CALLING_FN','VALIDATE_LESSOR');
612 FND_MSG_PUB.ADD;
613 RETURN (FALSE);
614 END IF;
615
616 EXCEPTION
617 WHEN OTHERS THEN
618 FA_SRVR_MSG.ADD_SQL_ERROR('VALIDATE_LESSOR', p_log_level_rec => p_log_level_rec);
619 RETURN (FALSE);
620 END VALIDATE_LESSOR;
621
622 ------------------------------------
623 -- GET LEASE ID
624 ------------------------------------
625 FUNCTION GET_LEASE_ID
626 (P_LESSOR_ID IN NUMBER,
627 P_LEASE_NUMBER IN VARCHAR2,
628 X_LEASE_ID OUT NOCOPY NUMBER
629 , p_log_level_rec IN FA_API_TYPES.log_level_rec_type) RETURN BOOLEAN AS
630
631 CURSOR C_LEASE_LESSOR IS
632 SELECT LEASE_ID
633 FROM FA_LEASES
634 WHERE LEASE_NUMBER = P_LEASE_NUMBER
635 AND LESSOR_ID = P_LESSOR_ID;
636
637 L_LEASE_ID NUMBER:=NULL;
638 COMB_NOT_FOUND EXCEPTION;
639
640 BEGIN
641
642 OPEN C_LEASE_LESSOR ;
643 FETCH C_LEASE_LESSOR
644 INTO L_LEASE_ID;
645 IF C_LEASE_LESSOR%NOTFOUND THEN
646 RAISE COMB_NOT_FOUND;
647 END IF;
648 CLOSE C_LEASE_LESSOR;
649
650 X_LEASE_ID:=L_LEASE_ID;
651 RETURN (TRUE);
652
653 EXCEPTION
654 WHEN COMB_NOT_FOUND THEN
655 CLOSE C_LEASE_LESSOR;
656 FND_MESSAGE.SET_NAME ('OFA','FA_LEASE_INCORRECT_LEASE_ID');
657 FND_MESSAGE.SET_TOKEN ('CALLING_FN','GET_LEASE_ID');
658 FND_MSG_PUB.ADD;
659 RETURN (FALSE);
660 WHEN OTHERS THEN
661 CLOSE C_LEASE_LESSOR;
662 FA_SRVR_MSG.ADD_SQL_ERROR('GET_LEASE_ID', p_log_level_rec => p_log_level_rec);
663 RETURN (FALSE);
664 END GET_LEASE_ID;
665
666 ------------------------------
667 -- VALIDATE LEASE
668 ------------------------------
669 FUNCTION VALIDATE_LEASE_ID
670 (P_LEASE_ID IN NUMBER
671 , p_log_level_rec IN FA_API_TYPES.log_level_rec_type) RETURN BOOLEAN AS
672
673 L_LEASE_ID NUMBER:=NULL;
674
675 BEGIN
676
677 SELECT LEASE_ID INTO L_LEASE_ID
678 FROM FA_LEASES
679 WHERE LEASE_ID = P_LEASE_ID;
680
681 RETURN (TRUE);
682
683 EXCEPTION
684 WHEN NO_DATA_FOUND THEN
685 FND_MESSAGE.SET_NAME ('OFA','FA_LEASE_INCORRECT_LEASE_ID');
686 FND_MESSAGE.SET_TOKEN ('CALLING_FN','VALIDATE_LEASE_ID');
687 FND_MSG_PUB.ADD;
688 RETURN (FALSE);
689 WHEN OTHERS THEN
690 FA_SRVR_MSG.ADD_SQL_ERROR('VALIDATE_LEASE_ID', p_log_level_rec => p_log_level_rec);
691 RETURN (FALSE);
692 END VALIDATE_LEASE_ID;
693
694 -----------------------------------
695 -- CHECK LEASE UPDATE
696 -----------------------------------
697 FUNCTION CHECK_LEASE_UPDATE
698 (P_LEASE_ID IN NUMBER, p_log_level_rec IN FA_API_TYPES.log_level_rec_type)
699 RETURN VARCHAR2 AS
700
701 L_COUNT NUMBER:=0;
702
703 BEGIN
704
705 SELECT COUNT(*) INTO L_COUNT
706 FROM FA_ADDITIONS_B
707 WHERE LEASE_ID = P_LEASE_ID;
708
709 IF L_COUNT > 0 THEN
710 RETURN ('N');
711 ELSE
712 RETURN('Y');
713 END IF;
714
715 EXCEPTION
716 WHEN NO_DATA_FOUND THEN
717 FND_MESSAGE.SET_NAME ('OFA','FA_DUPLICATE_LEASE');
718 FND_MESSAGE.SET_TOKEN ('CALLING_FN','CHECK_LEASE_UPDATE');
719 FND_MSG_PUB.ADD;
720 RETURN ('N');
721 WHEN OTHERS THEN
722 FA_SRVR_MSG.ADD_SQL_ERROR('CHECK_LEASE_UPDATE', p_log_level_rec => p_log_level_rec);
723 RETURN ('N');
724 END CHECK_LEASE_UPDATE;
725
726 -----------------------------------------
727 -- CHECK VALIDATE LEASE LESSOR
728 -----------------------------------------
729 FUNCTION VALIDATE_LEASE_LESSOR
730 (P_LEASE_ID IN NUMBER
731 ,P_LESSOR_ID IN NUMBER
732 ,P_LESSOR_SITE_ID IN NUMBER
733 ,P_LESSOR_SITE_ORG_ID IN NUMBER
734 , p_log_level_rec IN FA_API_TYPES.log_level_rec_type) RETURN BOOLEAN AS
735
736 L_LEASE_NUMBER VARCHAR2(15):=NULL;
737 L_LESSOR_ID NUMBER:=NULL;
738 L_LESSOR_SITE_ID NUMBER:=NULL;
739 L_LESSOR_SITE_ORG_ID NUMBER:=NULL;
740
741 BEGIN
742
743 SELECT
744 LEASE_NUMBER,
745 LESSOR_ID,
746 LESSOR_SITE_ID,
747 B.ORG_ID LESSOR_SITE_ORG_ID
748 INTO
749 L_LEASE_NUMBER,
750 L_LESSOR_ID,
751 L_LESSOR_SITE_ID,
752 L_LESSOR_SITE_ORG_ID
753 FROM FA_LEASES A,
754 PO_VENDOR_SITES_ALL B
755 WHERE A.LEASE_ID = P_LEASE_ID
756 AND A.LESSOR_SITE_ID = B.VENDOR_SITE_ID;
757
758 IF P_LESSOR_SITE_ORG_ID = L_LESSOR_SITE_ORG_ID THEN
759 IF L_LESSOR_ID = P_LESSOR_ID AND
760 L_LESSOR_SITE_ID =P_LESSOR_SITE_ID THEN
761 RETURN(FALSE);
762 ELSIF CHECK_LEASE_LESSOR_COMBINATION
763 (P_LESSOR_ID,L_LEASE_NUMBER,p_log_level_rec) THEN
764 RETURN(TRUE);
765 ELSE
766 RETURN(FALSE);
767 END IF;
768 ELSE
769 RETURN(FALSE);
770 END IF;
771
772 EXCEPTION
773 WHEN OTHERS THEN
774 RETURN (FALSE);
775 END VALIDATE_LEASE_LESSOR;
776
777 --------------------------------------
778 -- VALIDATE CREATE LEASE PARAMETERS
779 --------------------------------------
780 FUNCTION VALIDATION_CREATE_LEASE (
781 PX_LEASE_DETAILS_REC IN OUT NOCOPY FA_API_TYPES.LEASE_DETAILS_REC_TYPE
782 , p_log_level_rec IN FA_API_TYPES.log_level_rec_type) RETURN BOOLEAN AS
783
784 VALUE_ERROR_EXCEPTION EXCEPTION;
785 L_LESSOR_ID NUMBER:=NULL;
786 L_PAYMENT_SCHEDULE_ID NUMBER:=NULL;
787 L_TERMS_ID NUMBER:=NULL;
788 L_LESSOR_SITE_ID NUMBER:=NULL;
789 L_COA_ID NUMBER:=NULL;
790 L_DIST_CODE_COMBINATION_ID NUMBER:=NULL;
791 L_LEASE_NUMBER VARCHAR2(15):=NULL;
792 L_FAIR_VALUE NUMBER:=NULL;
793 L_CURRENCY_CODE VARCHAR2(5):=NULL;
794 L_DESCRIPTION VARCHAR2(30):=NULL;
795 L_BARGAIN_PURCHASE_OPTION VARCHAR2(1):=NULL;
796 L_TRANSFER_OWNERSHIP VARCHAR2(1):=NULL;
797 L_ASSET_LIFE NUMBER:=NULL;
798 L_LEASE_TERM NUMBER:=NULL;
799 L_LEASE_TYPE VARCHAR2(15):=NULL;
800 L_ROWID VARCHAR2(100):=NULL;
801 L_LEASE_ID NUMBER:=NULL;
802 L_PRESENT_VALUE NUMBER:=NULL;
803 L_ECONOMIC_TEST VARCHAR2(1):=NULL;
804 L_PRESENT_TEST VARCHAR2(1):=NULL;
805 L_FASB_LEASE_TYPE VARCHAR2(15):=NULL;
806 L_COST_CAPITALIZED NUMBER:=NULL;
807 L_LESSOR_SITE_ORG_ID NUMBER:=NULL;
808
809 CURSOR C_PRESENT_VALUE IS
810 SELECT PRESENT_VALUE
811 FROM FA_LEASE_SCHEDULES
812 WHERE PAYMENT_SCHEDULE_ID= L_PAYMENT_SCHEDULE_ID;
813
814 PRESENT_VALUE_NOT_FOUND EXCEPTION;
815
816 BEGIN
817
818 ---------------------------------------
819 -- CHECK FOR LESSOR INFORMATION
820 ---------------------------------------
821 IF PX_LEASE_DETAILS_REC.LESSOR_ID IS NULL THEN
822 IF PX_LEASE_DETAILS_REC.LESSOR_NAME IS NULL THEN
823 FND_MESSAGE.SET_NAME ('OFA','FA_INCORRECT_LESSOR_ID');
824 FND_MESSAGE.SET_TOKEN ('CALLING_FN','VALIDATION_CREATE_LEASE');
825 FND_MSG_PUB.ADD;
826 RAISE VALUE_ERROR_EXCEPTION;
827 ELSE
828 IF CHECK_LESSOR_NAME(PX_LEASE_DETAILS_REC.LESSOR_NAME,L_LESSOR_ID) THEN
829 PX_LEASE_DETAILS_REC.LESSOR_ID:=L_LESSOR_ID;
830 ELSE
831 RAISE VALUE_ERROR_EXCEPTION;
832 END IF;
833 END IF;
834 ELSE
835 IF NOT CHECK_LESSOR_ID(PX_LEASE_DETAILS_REC.LESSOR_ID) THEN
836 RAISE VALUE_ERROR_EXCEPTION;
837 END IF;
838 END IF;
839
840 ---------------------------------------
841 -- CHECK FOR LESSOR SITE INFORMATION
842 ---------------------------------------
843
844 IF PX_LEASE_DETAILS_REC.LESSOR_SITE_ID IS NULL THEN
845 IF PX_LEASE_DETAILS_REC.LESSOR_SITE IS NULL OR
846 PX_LEASE_DETAILS_REC.LESSOR_SITE_ORG_ID IS NULL THEN
847 FND_MESSAGE.SET_NAME ('OFA','FA_INCORRECT_PO_VENDOR_SITE');
848 FND_MESSAGE.SET_TOKEN ('CALLING_FN','VALIDATION_CREATE_LEASE');
849 FND_MSG_PUB.ADD;
850 RAISE VALUE_ERROR_EXCEPTION;
851 ELSE
852 IF CHECK_LESSOR_SITE_CODE (PX_LEASE_DETAILS_REC.LESSOR_SITE,PX_LEASE_DETAILS_REC.LESSOR_ID,PX_LEASE_DETAILS_REC.LESSOR_SITE_ORG_ID ,L_LESSOR_SITE_ID,L_COA_ID) THEN
853 PX_LEASE_DETAILS_REC.LESSOR_SITE_ID:=L_LESSOR_SITE_ID;
854 ELSE
855 RAISE VALUE_ERROR_EXCEPTION;
856 END IF;
857 END IF;
858 ELSE
859 IF NOT CHECK_LESSOR_SITE_ID (PX_LEASE_DETAILS_REC.LESSOR_SITE_ID,PX_LEASE_DETAILS_REC.LESSOR_ID,L_COA_ID,L_LESSOR_SITE_ORG_ID) THEN
860 RAISE VALUE_ERROR_EXCEPTION;
861 END IF;
862 END IF;
863
864 -----------------------------------
865 -- CHECK FOR PAYMENT SCHDULE
866 -----------------------------------
867
868 IF PX_LEASE_DETAILS_REC.PAYMENT_SCHEDULE_ID IS NULL THEN
869 IF PX_LEASE_DETAILS_REC.PAYMENT_SCHEDULE_NAME IS NULL THEN
870 FND_MESSAGE.SET_NAME ('OFA','FA_LEASE_SCHEDULE_NOT_FOUND');
871 FND_MESSAGE.SET_TOKEN ('CALLING_FN','VALIDATION_CREATE_LEASE');
872 FND_MSG_PUB.ADD;
873 RAISE VALUE_ERROR_EXCEPTION;
874 ELSE
875 IF CHECK_PAYMENT_SCHEDULE_NAME(PX_LEASE_DETAILS_REC.PAYMENT_SCHEDULE_NAME ,L_PAYMENT_SCHEDULE_ID) THEN
876 PX_LEASE_DETAILS_REC.PAYMENT_SCHEDULE_ID:=L_PAYMENT_SCHEDULE_ID;
877 ELSE
878 RAISE VALUE_ERROR_EXCEPTION;
879 END IF;
880 END IF;
881 ELSE
882 IF NOT CHECK_PAYMENT_SCHEDULE_ID (PX_LEASE_DETAILS_REC.PAYMENT_SCHEDULE_ID) THEN
883 RAISE VALUE_ERROR_EXCEPTION;
884 END IF;
885 END IF;
886
887 -----------------------------------
888 -- CHECK FOR PAYMENT TERMS
889 -----------------------------------
890 IF PX_LEASE_DETAILS_REC.TERMS_ID IS NULL THEN
891 IF PX_LEASE_DETAILS_REC.PAYMENT_TERMS IS NULL THEN
892 NULL;
893 ELSE
894 IF CHECK_PAYMENT_TERMS(PX_LEASE_DETAILS_REC.PAYMENT_TERMS,L_TERMS_ID) THEN
895 PX_LEASE_DETAILS_REC.TERMS_ID:=L_TERMS_ID;
896 ELSE
897 RAISE VALUE_ERROR_EXCEPTION;
898 END IF;
899 END IF;
900 ELSE
901 IF NOT CHECK_TERMS_ID (PX_LEASE_DETAILS_REC.TERMS_ID) THEN
902 RAISE VALUE_ERROR_EXCEPTION;
903 END IF;
904 END IF;
905
906
907 --------------------------------------------------------------------------------------------------
908 -- CHECK FOR CODE COMBINATION, IF DYNAMIC INSERT IS ON AND IF CODE COMBINATION DOES NOT EXISTS, IT
909 -- WILL INSERT A NEW CODE COMBINATION
910 --------------------------------------------------------------------------------------------------
911
912 IF PX_LEASE_DETAILS_REC.DIST_CODE_COMBINATION_ID IS NULL THEN
913 IF PX_LEASE_DETAILS_REC.CON_DIST_CODE_COMBINATION IS NULL THEN
914 FND_MESSAGE.SET_NAME ('OFA','FA_INV_CODE_COMBINATION');
915 FND_MESSAGE.SET_TOKEN ('CALLING_FN','VALIDATION_CREATE_LEASE');
916 FND_MSG_PUB.ADD;
917 RAISE VALUE_ERROR_EXCEPTION;
918 ELSE
919 IF CHECK_CODE_COMBINATION (PX_LEASE_DETAILS_REC.CON_DIST_CODE_COMBINATION,L_COA_ID,L_DIST_CODE_COMBINATION_ID) THEN
920 PX_LEASE_DETAILS_REC.DIST_CODE_COMBINATION_ID:=L_DIST_CODE_COMBINATION_ID;
921 ELSE
922 RAISE VALUE_ERROR_EXCEPTION;
923 END IF;
924 END IF;
925 ELSE
926 IF NOT CHECK_DIST_CODE_COMBINATION_ID( PX_LEASE_DETAILS_REC.DIST_CODE_COMBINATION_ID,L_COA_ID) THEN
927 RAISE VALUE_ERROR_EXCEPTION;
928 END IF;
929 END IF;
930
931 -----------------------------------------------------------------------
932 -- CHECK IF LEASE NUMBER AND LESSOR SHOULD HAVE A UNIQUE COMBINATION
933 -----------------------------------------------------------------------
934
935 IF PX_LEASE_DETAILS_REC.LEASE_NUMBER IS NULL THEN
936 FND_MESSAGE.SET_NAME ('OFA','FA_INCORRECT_LEASE_NUMBER');
937 FND_MESSAGE.SET_TOKEN ('CALLING_FN','VALIDATION_CREATE_LEASE');
938 FND_MSG_PUB.ADD;
939 RAISE VALUE_ERROR_EXCEPTION;
940 END IF;
941
942 IF NOT CHECK_LEASE_LESSOR_COMBINATION (PX_LEASE_DETAILS_REC.LESSOR_ID,PX_LEASE_DETAILS_REC.LEASE_NUMBER,p_log_level_rec) THEN
943 RAISE VALUE_ERROR_EXCEPTION;
944 END IF;
945
946 -----------------------------------------------------------------------
947 -- CHECK IF FAIR VALUE >= 0
948 -----------------------------------------------------------------------
949
950 IF PX_LEASE_DETAILS_REC.FAIR_VALUE IS NULL THEN
951 FND_MESSAGE.SET_NAME ('OFA','FA_INCORRECT_FAIR_VALUE');
952 FND_MESSAGE.SET_TOKEN ('CALLING_FN','VALIDATION_CREATE_LEASE');
953 FND_MSG_PUB.ADD;
954 RAISE VALUE_ERROR_EXCEPTION;
955 END IF;
956
957 IF PX_LEASE_DETAILS_REC.FAIR_VALUE < 1 THEN
958 FND_MESSAGE.SET_NAME ('OFA','FA_INCORRECT_FAIR_VALUE');
959 FND_MESSAGE.SET_TOKEN ('CALLING_FN','VALIDATION_CREATE_LEASE');
960 FND_MSG_PUB.ADD;
961 RAISE VALUE_ERROR_EXCEPTION;
962 END IF;
963
964 ---------------------------------
965 -- CHECK FOR CURRENCY CODE
966 ---------------------------------
967
968 IF PX_LEASE_DETAILS_REC.CURRENCY_CODE IS NULL THEN
969 FND_MESSAGE.SET_NAME ('OFA','FA_LEASE_CURRENCY_NOT_MATCH');
970 FND_MESSAGE.SET_TOKEN ('CALLING_FN','VALIDATION_CREATE_LEASE');
971 FND_MSG_PUB.ADD;
972 RAISE VALUE_ERROR_EXCEPTION;
973 ELSE
974 IF NOT CHECK_CURRENCY_CODE (PX_LEASE_DETAILS_REC.CURRENCY_CODE,PX_LEASE_DETAILS_REC.PAYMENT_SCHEDULE_ID,p_log_level_rec) THEN
975 RAISE VALUE_ERROR_EXCEPTION;
976 END IF;
977 END IF;
978
979 -------------------------------------------------
980 -- CHECK FOR DESCRIPTION SHOULD NOT BE NULL
981 -------------------------------------------------
982
983 IF PX_LEASE_DETAILS_REC.DESCRIPTION IS NULL THEN
984 FND_MESSAGE.SET_NAME ('OFA','FA_LEASE_DESCRIPTION_NULL');
985 FND_MESSAGE.SET_TOKEN ('CALLING_FN','VALIDATION_CREATE_LEASE');
986 FND_MSG_PUB.ADD;
987 RAISE VALUE_ERROR_EXCEPTION;
988 END IF;
989
990 --------------------------------------------------------
991 -- CHECK FOR TRANSFER OWNERSHIP CAN BE NULL,Y OR N
992 --------------------------------------------------------
993
994 IF (PX_LEASE_DETAILS_REC.TRANSFER_OWNERSHIP IS NULL OR
995 PX_LEASE_DETAILS_REC.TRANSFER_OWNERSHIP = 'Y' OR
996 PX_LEASE_DETAILS_REC.TRANSFER_OWNERSHIP = 'N' ) THEN
997 L_TRANSFER_OWNERSHIP:= NVL(PX_LEASE_DETAILS_REC.TRANSFER_OWNERSHIP,'N') ;
998 PX_LEASE_DETAILS_REC.TRANSFER_OWNERSHIP:=L_TRANSFER_OWNERSHIP;
999 ELSE
1000 FND_MESSAGE.SET_NAME ('OFA','FA_INCORRECT_TRANSFER_OWNER');
1001 FND_MESSAGE.SET_TOKEN ('CALLING_FN','VALIDATION_CREATE_LEASE');
1002 FND_MSG_PUB.ADD;
1003 RAISE VALUE_ERROR_EXCEPTION;
1004 END IF;
1005
1006 ----------------------------------------------------------
1007 -- CHECK FOR BARGAIN PURCHASE OPTION CAN BE NULL,Y OR N
1008 ----------------------------------------------------------
1009
1010 IF (PX_LEASE_DETAILS_REC.BARGAIN_PURCHASE_OPTION IS NULL OR
1011 PX_LEASE_DETAILS_REC.BARGAIN_PURCHASE_OPTION = 'Y' OR
1012 PX_LEASE_DETAILS_REC.BARGAIN_PURCHASE_OPTION = 'N' ) THEN
1013 L_BARGAIN_PURCHASE_OPTION:= NVL(PX_LEASE_DETAILS_REC.BARGAIN_PURCHASE_OPTION,'N') ;
1014 PX_LEASE_DETAILS_REC.BARGAIN_PURCHASE_OPTION:=L_BARGAIN_PURCHASE_OPTION;
1015 ELSE
1016 FND_MESSAGE.SET_NAME ('OFA','FA_INCORRECT_BARGAIN_PURCHASE');
1017 FND_MESSAGE.SET_TOKEN ('CALLING_FN','VALIDATION_CREATE_LEASE');
1018 FND_MSG_PUB.ADD;
1019 RAISE VALUE_ERROR_EXCEPTION;
1020 END IF;
1021
1022 ----------------------------------------------------------
1023 -- CHECK FOR IF ASSET_LIFE IS NOT NULL, IT CAN BE => 0
1024 ----------------------------------------------------------
1025
1026
1027 IF PX_LEASE_DETAILS_REC.ASSET_LIFE IS NULL THEN
1028 PX_LEASE_DETAILS_REC.ASSET_LIFE:=NULL;
1029 ELSE
1030 IF PX_LEASE_DETAILS_REC.ASSET_LIFE < 0 THEN
1031 FND_MESSAGE.SET_NAME ('OFA','FA_INCORRECT_ASSET_LIFE');
1032 FND_MESSAGE.SET_TOKEN ('CALLING_FN','VALIDATION_CREATE_LEASE');
1033 FND_MSG_PUB.ADD;
1034 RAISE VALUE_ERROR_EXCEPTION;
1035 END IF;
1036 END IF;
1037
1038 -------------------------------------------------------------
1039 -- CHECK FOR IF LEASE_TERM IS NOT NULL, IT CAN BE => 0
1040 -------------------------------------------------------------
1041
1042 IF PX_LEASE_DETAILS_REC.LEASE_TERM IS NULL THEN
1043 PX_LEASE_DETAILS_REC.LEASE_TERM:=NULL;
1044 ELSE
1045 IF PX_LEASE_DETAILS_REC.LEASE_TERM < 0 THEN
1046 FND_MESSAGE.SET_NAME ('OFA','FA_INCORRECT_LEASE_TERM');
1047 FND_MESSAGE.SET_TOKEN ('CALLING_FN','VALIDATION_CREATE_LEASE');
1048 FND_MSG_PUB.ADD;
1049 RAISE VALUE_ERROR_EXCEPTION;
1050 END IF;
1051 END IF;
1052
1053 -------------------------------------------------------------------------
1054 -- CHECK FOR IF LEASE_TERM IS IS PROVIDED MAKE SURE THAT ASSET LIFE IS
1055 -- ALSO PROVIDED
1056 -------------------------------------------------------------------------
1057
1058 IF PX_LEASE_DETAILS_REC.ASSET_LIFE IS NOT NULL AND
1059 PX_LEASE_DETAILS_REC.LEASE_TERM IS NOT NULL THEN
1060 NULL;
1061 ELSIF PX_LEASE_DETAILS_REC.ASSET_LIFE IS NULL AND
1062 PX_LEASE_DETAILS_REC.LEASE_TERM IS NULL THEN
1063 NULL;
1064 ELSE
1065 FND_MESSAGE.SET_NAME ('OFA','FA_INCORRECT_ALIFE_LEASE_TERM');
1066 FND_MESSAGE.SET_TOKEN ('CALLING_FN','VALIDATION_CREATE_LEASE');
1067 FND_MSG_PUB.ADD;
1068 RAISE VALUE_ERROR_EXCEPTION;
1069 END IF;
1070
1071 --------------------------------------
1072 -- CHECK FOR LEASE TYPE
1073 --------------------------------------
1074
1075 IF PX_LEASE_DETAILS_REC.LEASE_TYPE IS NULL THEN
1076 FND_MESSAGE.SET_NAME ('OFA','FA_INV_LEASE_TYPE');
1077 FND_MESSAGE.SET_TOKEN ('CALLING_FN','CHECK_LEASE_TYPE');
1078 FND_MSG_PUB.ADD;
1079 ELSE
1080 IF NOT CHECK_LEASE_TYPE(PX_LEASE_DETAILS_REC.LEASE_TYPE,p_log_level_rec) THEN
1081 RAISE VALUE_ERROR_EXCEPTION;
1082 END IF;
1083 END IF;
1084
1085 RETURN(TRUE);
1086
1087 EXCEPTION
1088 WHEN PRESENT_VALUE_NOT_FOUND THEN
1089 ROLLBACK TO CREATE_LEASE;
1090 FND_MESSAGE.SET_NAME ('OFA','FA_PRESENT_VALUE_NOT_FOUND');
1091 FND_MESSAGE.SET_TOKEN ('CALLING_FN','VALIDATION_CREATE_LEASE');
1092 FND_MSG_PUB.ADD;
1093 RETURN(FALSE);
1094 WHEN VALUE_ERROR_EXCEPTION THEN
1095 RETURN(FALSE);
1096 WHEN OTHERS THEN
1097 FA_SRVR_MSG.ADD_SQL_ERROR('VALIDATION_CREATE_LEASE', p_log_level_rec => p_log_level_rec);
1098 RETURN (FALSE);
1099 END VALIDATION_CREATE_LEASE;
1100
1101 -----------------------------------------
1102 -- VALIDATE UPDATE LEASE API PARAMETERS
1103 -----------------------------------------
1104 FUNCTION VALIDATION_UPDATE_LEASE (
1105 PX_LEASE_DETAILS_REC_NEW IN OUT NOCOPY FA_API_TYPES.LEASE_DETAILS_REC_TYPE,
1106 X_OK_TO_UPDATE_FLAG OUT NOCOPY VARCHAR2
1107 , p_log_level_rec IN FA_API_TYPES.log_level_rec_type) RETURN BOOLEAN AS
1108
1109 VALUE_ERROR_EXCEPTION EXCEPTION;
1110 L_LEASE_ID NUMBER:=NULL;
1111 L_LESSOR_ID NUMBER:=NULL;
1112 L_UPDATE_FLAG VARCHAR2(1):=NULL;
1113 L_LESSOR_SITE_ID NUMBER:=NULL;
1114 L_COA_ID NUMBER:=NULL;
1115 L_UPDATE_STATEMET VARCHAR2(3000):=NULL;
1116 L_OK_TO_UPDATE_LESSOR VARCHAR2(1):=NULL;
1117 L_LESSOR_SITE_ORG_ID NUMBER:=NULL;
1118 L_ATLEAST_ONE_UPDATE NUMBER:=0;
1119
1120 BEGIN
1121
1122 --------------------------------
1123 -- VALIDATE LESSOR INFORMATION
1124 ---------------------------------
1125 IF PX_LEASE_DETAILS_REC_NEW.LESSOR_ID IS NULL THEN
1126 IF PX_LEASE_DETAILS_REC_NEW.LESSOR_NAME IS NULL THEN
1127 NULL;
1128 ELSE
1129 IF VALIDATE_LESSOR(NULL,PX_LEASE_DETAILS_REC_NEW.LESSOR_NAME,L_LESSOR_ID,p_log_level_rec) THEN
1130 PX_LEASE_DETAILS_REC_NEW.LESSOR_ID:=L_LESSOR_ID;
1131 ELSE
1132 RAISE VALUE_ERROR_EXCEPTION;
1133 END IF;
1134 END IF;
1135 ELSE
1136 IF VALIDATE_LESSOR(PX_LEASE_DETAILS_REC_NEW.LESSOR_ID,NULL,L_LESSOR_ID,p_log_level_rec) THEN
1137 PX_LEASE_DETAILS_REC_NEW.LESSOR_ID:=L_LESSOR_ID;
1138 ELSE
1139 RAISE VALUE_ERROR_EXCEPTION;
1140 END IF;
1141 END IF;
1142
1143 --------------------------
1144 -- VALIDATE LEASE ID
1145 --------------------------
1146 IF PX_LEASE_DETAILS_REC_NEW.LEASE_ID IS NULL THEN
1147 IF PX_LEASE_DETAILS_REC_NEW.LEASE_NUMBER IS NULL THEN
1148 FND_MESSAGE.SET_NAME ('OFA','FA_LEASE_INCORRECT_LEASE_ID');
1149 FND_MESSAGE.SET_TOKEN ('CALLING_FN','VALIDATION_UPDATE_LEASE');
1150 FND_MSG_PUB.ADD;
1151 RAISE VALUE_ERROR_EXCEPTION;
1152 ELSE
1153 IF GET_LEASE_ID(L_LESSOR_ID,PX_LEASE_DETAILS_REC_NEW.LEASE_NUMBER,L_LEASE_ID,p_log_level_rec) THEN
1154 PX_LEASE_DETAILS_REC_NEW.LEASE_ID:=L_LEASE_ID;
1155 ELSE
1156 RAISE VALUE_ERROR_EXCEPTION;
1157 END IF;
1158 END IF;
1159 ELSE
1160 IF VALIDATE_LEASE_ID(PX_LEASE_DETAILS_REC_NEW.LEASE_ID,p_log_level_rec) THEN
1161 L_LEASE_ID:=PX_LEASE_DETAILS_REC_NEW.LEASE_ID;
1162 ELSE
1163 RAISE VALUE_ERROR_EXCEPTION;
1164 END IF;
1165 END IF;
1166
1167 -----------------------------
1168 -- VALIDATE LESSOR SITE
1169 -----------------------------
1170
1171 IF PX_LEASE_DETAILS_REC_NEW.LESSOR_SITE_ID IS NULL THEN
1172 IF PX_LEASE_DETAILS_REC_NEW.LESSOR_SITE IS NULL THEN
1173 NULL;
1174 ELSE
1175 IF CHECK_LESSOR_SITE_CODE (PX_LEASE_DETAILS_REC_NEW.LESSOR_SITE,L_LESSOR_ID,PX_LEASE_DETAILS_REC_NEW.LESSOR_SITE_ORG_ID ,L_LESSOR_SITE_ID,L_COA_ID,p_log_level_rec) THEN
1176 L_LESSOR_SITE_ORG_ID:=PX_LEASE_DETAILS_REC_NEW.LESSOR_SITE_ORG_ID ;
1177 PX_LEASE_DETAILS_REC_NEW.LESSOR_site_ID:=L_LESSOR_SITE_ID;
1178 ELSE
1179 RAISE VALUE_ERROR_EXCEPTION;
1180 END IF;
1181 END IF;
1182 ELSE
1183 IF CHECK_LESSOR_SITE_ID (PX_LEASE_DETAILS_REC_NEW.LESSOR_SITE_ID,L_LESSOR_ID,L_COA_ID,L_LESSOR_SITE_ORG_ID,p_log_level_rec) THEN
1184 L_LESSOR_SITE_ID := PX_LEASE_DETAILS_REC_NEW.LESSOR_SITE_ID;
1185 ELSE
1186 RAISE VALUE_ERROR_EXCEPTION;
1187 END IF;
1188 END IF;
1189
1190 ---------------------------------------
1191 -- CHECK IF LEASE CAN BE UPDATED
1192 ---------------------------------------
1193
1194 L_UPDATE_FLAG :=CHECK_LEASE_UPDATE(PX_LEASE_DETAILS_REC_NEW.LEASE_ID
1195 ,p_log_level_rec);
1196
1197 ----------------------------------------------------------------------------------------------
1198 -- CHECK IF LESSOR AND SITE IS SAME AS IN THE DATABASE DO NOT BOTHER TO UPDATE, IF NOT MAKE
1199 -- SURE THAT THEY ARE IN THE SAME OPERATING UNIT AS PREVIOUS LESSOR AND LESSOR SITE
1200 ----------------------------------------------------------------------------------------------
1201 L_OK_TO_UPDATE_LESSOR :='N';
1202
1203 IF L_LESSOR_ID IS NOT NULL
1204 AND L_LESSOR_SITE_ID IS NOT NULL THEN
1205 IF L_UPDATE_FLAG = 'Y' THEN
1206 IF VALIDATE_LEASE_LESSOR(L_LEASE_ID,L_LESSOR_ID,L_LESSOR_SITE_ID,L_LESSOR_SITE_ORG_ID,p_log_level_rec) THEN
1207 L_OK_TO_UPDATE_LESSOR :='Y';
1208 ELSE
1209 FND_MESSAGE.SET_NAME ('OFA','FA_LEASE_CANNOT_BE_UPDATED');
1210 FND_MESSAGE.SET_TOKEN ('CALLING_FN','VALIDATION_UPDATE_LEASE');
1211 FND_MSG_PUB.ADD;
1212 RAISE VALUE_ERROR_EXCEPTION;
1213 END IF;
1214 ELSE
1215 FND_MESSAGE.SET_NAME ('OFA','FA_LEASE_CANNOT_BE_UPDATED');
1216 FND_MESSAGE.SET_TOKEN ('CALLING_FN','VALIDATION_UPDATE_LEASE');
1217 FND_MSG_PUB.ADD;
1218 RAISE VALUE_ERROR_EXCEPTION;
1219 END IF;
1220 END IF;
1221
1222 X_OK_TO_UPDATE_FLAG:=L_OK_TO_UPDATE_LESSOR;
1223
1224 RETURN(TRUE);
1225
1226 EXCEPTION
1227 WHEN VALUE_ERROR_EXCEPTION THEN
1228 RETURN(FALSE);
1229 WHEN OTHERS THEN
1230 RETURN(FALSE);
1231 END VALIDATION_UPDATE_LEASE;
1232
1233 PROCEDURE UPDATE_ROW (
1234 X_ROWID IN VARCHAR2 DEFAULT NULL,
1235 X_LEASE_ID IN NUMBER,
1236 X_LESSOR_ID IN NUMBER,
1237 X_LESSOR_SITE_ID IN NUMBER,
1238 X_DESCRIPTION IN VARCHAR2,
1239 X_LAST_UPDATE_DATE IN DATE,
1240 X_LAST_UPDATED_BY IN NUMBER,
1241 X_ATTRIBUTE1 IN VARCHAR2,
1242 X_ATTRIBUTE2 IN VARCHAR2,
1243 X_ATTRIBUTE3 IN VARCHAR2,
1244 X_ATTRIBUTE4 IN VARCHAR2,
1245 X_ATTRIBUTE5 IN VARCHAR2,
1246 X_ATTRIBUTE6 IN VARCHAR2,
1247 X_ATTRIBUTE7 IN VARCHAR2,
1248 X_ATTRIBUTE8 IN VARCHAR2,
1249 X_ATTRIBUTE9 IN VARCHAR2,
1250 X_ATTRIBUTE10 IN VARCHAR2,
1251 X_ATTRIBUTE11 IN VARCHAR2,
1252 X_ATTRIBUTE12 IN VARCHAR2,
1253 X_ATTRIBUTE13 IN VARCHAR2,
1254 X_ATTRIBUTE14 IN VARCHAR2,
1255 X_ATTRIBUTE15 IN VARCHAR2,
1256 X_ATTRIBUTE_CATEGORY_CODE IN VARCHAR2, p_log_level_rec IN FA_API_TYPES.log_level_rec_type)
1257 IS
1258 BEGIN
1259 IF X_ROWID IS NOT NULL THEN
1260 UPDATE FA_LEASES
1261 SET
1262 LESSOR_ID = NVL(X_LESSOR_ID,LESSOR_ID),
1263 DESCRIPTION = NVL(X_DESCRIPTION,DESCRIPTION),
1264 LAST_UPDATE_DATE = DECODE(X_LAST_UPDATE_DATE,NULL,LAST_UPDATE_DATE,X_LAST_UPDATE_DATE),
1265 LAST_UPDATED_BY = DECODE(X_LAST_UPDATED_BY,NULL,LAST_UPDATED_BY,FND_API.G_MISS_NUM,NULL,X_LAST_UPDATED_BY),
1266 ATTRIBUTE1 = DECODE(X_ATTRIBUTE1,NULL,ATTRIBUTE1,FND_API.G_MISS_CHAR,NULL,X_ATTRIBUTE1),
1267 ATTRIBUTE2 = DECODE(X_ATTRIBUTE2,NULL,ATTRIBUTE2,FND_API.G_MISS_CHAR,NULL,X_ATTRIBUTE2),
1268 ATTRIBUTE3 = DECODE(X_ATTRIBUTE3,NULL,ATTRIBUTE3,FND_API.G_MISS_CHAR,NULL,X_ATTRIBUTE3),
1269 ATTRIBUTE4 = DECODE(X_ATTRIBUTE4,NULL,ATTRIBUTE4,FND_API.G_MISS_CHAR,NULL,X_ATTRIBUTE4),
1270 ATTRIBUTE5 = DECODE(X_ATTRIBUTE5,NULL,ATTRIBUTE5,FND_API.G_MISS_CHAR,NULL,X_ATTRIBUTE5),
1271 ATTRIBUTE6 = DECODE(X_ATTRIBUTE6,NULL,ATTRIBUTE6,FND_API.G_MISS_CHAR,NULL,X_ATTRIBUTE6),
1272 ATTRIBUTE7 = DECODE(X_ATTRIBUTE7,NULL,ATTRIBUTE7,FND_API.G_MISS_CHAR,NULL,X_ATTRIBUTE7),
1273 ATTRIBUTE8 = DECODE(X_ATTRIBUTE8,NULL,ATTRIBUTE8,FND_API.G_MISS_CHAR,NULL,X_ATTRIBUTE8),
1274 ATTRIBUTE9 = DECODE(X_ATTRIBUTE9,NULL,ATTRIBUTE9,FND_API.G_MISS_CHAR,NULL,X_ATTRIBUTE9),
1275 ATTRIBUTE10 = DECODE(X_ATTRIBUTE10,NULL,ATTRIBUTE10,FND_API.G_MISS_CHAR,NULL,X_ATTRIBUTE10),
1276 ATTRIBUTE11 = DECODE(X_ATTRIBUTE11,NULL,ATTRIBUTE11,FND_API.G_MISS_CHAR,NULL,X_ATTRIBUTE11),
1277 ATTRIBUTE12 = DECODE(X_ATTRIBUTE12,NULL,ATTRIBUTE12,FND_API.G_MISS_CHAR,NULL,X_ATTRIBUTE12),
1278 ATTRIBUTE13 = DECODE(X_ATTRIBUTE13,NULL,ATTRIBUTE13,FND_API.G_MISS_CHAR,NULL,X_ATTRIBUTE13),
1279 ATTRIBUTE14 = DECODE(X_ATTRIBUTE14,NULL,ATTRIBUTE14,FND_API.G_MISS_CHAR,NULL,X_ATTRIBUTE14),
1280 ATTRIBUTE15 = DECODE(X_ATTRIBUTE15,NULL,ATTRIBUTE15,FND_API.G_MISS_CHAR,NULL,X_ATTRIBUTE15),
1281 ATTRIBUTE_CATEGORY_CODE = DECODE(X_ATTRIBUTE_CATEGORY_CODE,NULL,ATTRIBUTE_CATEGORY_CODE,FND_API.G_MISS_CHAR,NULL,X_ATTRIBUTE_CATEGORY_CODE),
1282 LESSOR_SITE_ID = NVL(X_LESSOR_SITE_ID,LESSOR_SITE_ID)
1283 WHERE ROWID = X_ROWID;
1284 ELSE
1285 UPDATE FA_LEASES
1286 SET
1287 LESSOR_ID = NVL(X_LESSOR_ID,LESSOR_ID),
1288 DESCRIPTION = NVL(X_DESCRIPTION,DESCRIPTION),
1289 LAST_UPDATE_DATE = DECODE(X_LAST_UPDATE_DATE,NULL,LAST_UPDATE_DATE,X_LAST_UPDATE_DATE),
1290 LAST_UPDATED_BY = DECODE(X_LAST_UPDATED_BY,NULL,LAST_UPDATED_BY,FND_API.G_MISS_NUM,NULL,X_LAST_UPDATED_BY),
1291 ATTRIBUTE1 = DECODE(X_ATTRIBUTE1,NULL,ATTRIBUTE1,FND_API.G_MISS_CHAR,NULL,X_ATTRIBUTE1),
1292 ATTRIBUTE2 = DECODE(X_ATTRIBUTE2,NULL,ATTRIBUTE2,FND_API.G_MISS_CHAR,NULL,X_ATTRIBUTE2),
1293 ATTRIBUTE3 = DECODE(X_ATTRIBUTE3,NULL,ATTRIBUTE3,FND_API.G_MISS_CHAR,NULL,X_ATTRIBUTE3),
1294 ATTRIBUTE4 = DECODE(X_ATTRIBUTE4,NULL,ATTRIBUTE4,FND_API.G_MISS_CHAR,NULL,X_ATTRIBUTE4),
1295 ATTRIBUTE5 = DECODE(X_ATTRIBUTE5,NULL,ATTRIBUTE5,FND_API.G_MISS_CHAR,NULL,X_ATTRIBUTE5),
1296 ATTRIBUTE6 = DECODE(X_ATTRIBUTE6,NULL,ATTRIBUTE6,FND_API.G_MISS_CHAR,NULL,X_ATTRIBUTE6),
1297 ATTRIBUTE7 = DECODE(X_ATTRIBUTE7,NULL,ATTRIBUTE7,FND_API.G_MISS_CHAR,NULL,X_ATTRIBUTE7),
1298 ATTRIBUTE8 = DECODE(X_ATTRIBUTE8,NULL,ATTRIBUTE8,FND_API.G_MISS_CHAR,NULL,X_ATTRIBUTE8),
1299 ATTRIBUTE9 = DECODE(X_ATTRIBUTE9,NULL,ATTRIBUTE9,FND_API.G_MISS_CHAR,NULL,X_ATTRIBUTE9),
1300 ATTRIBUTE10 = DECODE(X_ATTRIBUTE10,NULL,ATTRIBUTE10,FND_API.G_MISS_CHAR,NULL,X_ATTRIBUTE10),
1301 ATTRIBUTE11 = DECODE(X_ATTRIBUTE11,NULL,ATTRIBUTE11,FND_API.G_MISS_CHAR,NULL,X_ATTRIBUTE11),
1302 ATTRIBUTE12 = DECODE(X_ATTRIBUTE12,NULL,ATTRIBUTE12,FND_API.G_MISS_CHAR,NULL,X_ATTRIBUTE12),
1303 ATTRIBUTE13 = DECODE(X_ATTRIBUTE13,NULL,ATTRIBUTE13,FND_API.G_MISS_CHAR,NULL,X_ATTRIBUTE13),
1304 ATTRIBUTE14 = DECODE(X_ATTRIBUTE14,NULL,ATTRIBUTE14,FND_API.G_MISS_CHAR,NULL,X_ATTRIBUTE14),
1305 ATTRIBUTE15 = DECODE(X_ATTRIBUTE15,NULL,ATTRIBUTE15,FND_API.G_MISS_CHAR,NULL,X_ATTRIBUTE15),
1306 ATTRIBUTE_CATEGORY_CODE = DECODE(X_ATTRIBUTE_CATEGORY_CODE,NULL,ATTRIBUTE_CATEGORY_CODE,FND_API.G_MISS_CHAR,NULL,X_ATTRIBUTE_CATEGORY_CODE),
1307 LESSOR_SITE_ID = NVL(X_LESSOR_SITE_ID,LESSOR_SITE_ID)
1308 WHERE LEASE_ID = X_LEASE_ID;
1309 END IF;
1310 --
1311 IF (SQL%NOTFOUND) THEN
1312 RAISE NO_DATA_FOUND;
1313 END IF;
1314
1315 EXCEPTION
1316 WHEN OTHERS THEN
1317 FA_SRVR_MSG.ADD_SQL_ERROR(
1318 CALLING_FN => 'FA_LEASE_PVT.UPDATE_ROW', p_log_level_rec => p_log_level_rec);
1319 RAISE;
1320 END UPDATE_ROW;
1321
1322 END FA_LEASE_PVT;