DBA Data[Home] [Help]

PACKAGE BODY: APPS.FA_LEASE_PVT

Source


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