222: ------------------------------
223: -- Validate Entry Types
224: ------------------------------
225: if (loc.ENTRY_TYPE not in ('A', 'U','R')) then --added the 'R' for fix BUG#2127286
226: fnd_message.set_name('PN', 'PN_CAFM_LOCATION_ENTRY_TYPE');
227: fnd_message.set_token('LOCATION_ID', loc.LOCATION_ID);
228: l_error_message := fnd_message.get;
229: raise INVALID_RECORD;
230: end if;
223: -- Validate Entry Types
224: ------------------------------
225: if (loc.ENTRY_TYPE not in ('A', 'U','R')) then --added the 'R' for fix BUG#2127286
226: fnd_message.set_name('PN', 'PN_CAFM_LOCATION_ENTRY_TYPE');
227: fnd_message.set_token('LOCATION_ID', loc.LOCATION_ID);
228: l_error_message := fnd_message.get;
229: raise INVALID_RECORD;
230: end if;
231:
224: ------------------------------
225: if (loc.ENTRY_TYPE not in ('A', 'U','R')) then --added the 'R' for fix BUG#2127286
226: fnd_message.set_name('PN', 'PN_CAFM_LOCATION_ENTRY_TYPE');
227: fnd_message.set_token('LOCATION_ID', loc.LOCATION_ID);
228: l_error_message := fnd_message.get;
229: raise INVALID_RECORD;
230: end if;
231:
232: put_log('Validate Location Type Lookup_Code');
234: -- Validate Location Type Lookup_Code
235: --------------------------------------
236: if (NOT PNP_UTIL_FUNC.valid_lookup_code(
237: 'PN_LOCATION_TYPE', loc.LOCATION_TYPE_LOOKUP_CODE)) then
238: fnd_message.set_name('PN', 'PN_CAFM_LOCATION_TYPE');
239: fnd_message.set_token('LOCATION_ID', loc.location_id);
240: l_error_message := fnd_message.get;
241: raise INVALID_RECORD;
242: end if;
235: --------------------------------------
236: if (NOT PNP_UTIL_FUNC.valid_lookup_code(
237: 'PN_LOCATION_TYPE', loc.LOCATION_TYPE_LOOKUP_CODE)) then
238: fnd_message.set_name('PN', 'PN_CAFM_LOCATION_TYPE');
239: fnd_message.set_token('LOCATION_ID', loc.location_id);
240: l_error_message := fnd_message.get;
241: raise INVALID_RECORD;
242: end if;
243:
236: if (NOT PNP_UTIL_FUNC.valid_lookup_code(
237: 'PN_LOCATION_TYPE', loc.LOCATION_TYPE_LOOKUP_CODE)) then
238: fnd_message.set_name('PN', 'PN_CAFM_LOCATION_TYPE');
239: fnd_message.set_token('LOCATION_ID', loc.location_id);
240: l_error_message := fnd_message.get;
241: raise INVALID_RECORD;
242: end if;
243:
244: ------------------------------------------------------------------
251: -- Validate BUILDING/LAND
252: --------------------------------------
253: if (loc.LOCATION_TYPE_LOOKUP_CODE IN ( 'BUILDING', 'LAND' ) and
254: loc.BUILDING is NULL) then
255: fnd_message.set_name('PN', 'PN_CAFM_BUILDING');
256: fnd_message.set_token('LOCATION_ID', loc.location_id);
257: l_error_message := fnd_message.get;
258: raise INVALID_RECORD;
259: end if;
252: --------------------------------------
253: if (loc.LOCATION_TYPE_LOOKUP_CODE IN ( 'BUILDING', 'LAND' ) and
254: loc.BUILDING is NULL) then
255: fnd_message.set_name('PN', 'PN_CAFM_BUILDING');
256: fnd_message.set_token('LOCATION_ID', loc.location_id);
257: l_error_message := fnd_message.get;
258: raise INVALID_RECORD;
259: end if;
260:
253: if (loc.LOCATION_TYPE_LOOKUP_CODE IN ( 'BUILDING', 'LAND' ) and
254: loc.BUILDING is NULL) then
255: fnd_message.set_name('PN', 'PN_CAFM_BUILDING');
256: fnd_message.set_token('LOCATION_ID', loc.location_id);
257: l_error_message := fnd_message.get;
258: raise INVALID_RECORD;
259: end if;
260:
261: put_log('Validate FLOOR/PARCEL');
263: -- Validate FLOOR/PARCEL
264: --------------------------------------
265: if (loc.LOCATION_TYPE_LOOKUP_CODE IN ( 'FLOOR' , 'PARCEL' ) and
266: loc.FLOOR is NULL) then
267: fnd_message.set_name('PN', 'PN_CAFM_FLOOR');
268: fnd_message.set_token('LOCATION_ID', loc.location_id);
269: l_error_message := fnd_message.get;
270: raise INVALID_RECORD;
271: end if;
264: --------------------------------------
265: if (loc.LOCATION_TYPE_LOOKUP_CODE IN ( 'FLOOR' , 'PARCEL' ) and
266: loc.FLOOR is NULL) then
267: fnd_message.set_name('PN', 'PN_CAFM_FLOOR');
268: fnd_message.set_token('LOCATION_ID', loc.location_id);
269: l_error_message := fnd_message.get;
270: raise INVALID_RECORD;
271: end if;
272:
265: if (loc.LOCATION_TYPE_LOOKUP_CODE IN ( 'FLOOR' , 'PARCEL' ) and
266: loc.FLOOR is NULL) then
267: fnd_message.set_name('PN', 'PN_CAFM_FLOOR');
268: fnd_message.set_token('LOCATION_ID', loc.location_id);
269: l_error_message := fnd_message.get;
270: raise INVALID_RECORD;
271: end if;
272:
273: put_log('Validate OFFICE/SECTION');
275: -- Validate OFFICE/SECTION
276: --------------------------------------
277: if (loc.LOCATION_TYPE_LOOKUP_CODE IN ( 'OFFICE' , 'SECTION' ) and
278: loc.OFFICE is NULL) then
279: fnd_message.set_name('PN', 'PN_CAFM_OFFICE');
280: fnd_message.set_token('LOCATION_ID', loc.location_id);
281: l_error_message := fnd_message.get;
282: raise INVALID_RECORD;
283: end if;
276: --------------------------------------
277: if (loc.LOCATION_TYPE_LOOKUP_CODE IN ( 'OFFICE' , 'SECTION' ) and
278: loc.OFFICE is NULL) then
279: fnd_message.set_name('PN', 'PN_CAFM_OFFICE');
280: fnd_message.set_token('LOCATION_ID', loc.location_id);
281: l_error_message := fnd_message.get;
282: raise INVALID_RECORD;
283: end if;
284:
277: if (loc.LOCATION_TYPE_LOOKUP_CODE IN ( 'OFFICE' , 'SECTION' ) and
278: loc.OFFICE is NULL) then
279: fnd_message.set_name('PN', 'PN_CAFM_OFFICE');
280: fnd_message.set_token('LOCATION_ID', loc.location_id);
281: l_error_message := fnd_message.get;
282: raise INVALID_RECORD;
283: end if;
284:
285: put_log('Validate Space Type Lookup_Code');
289: IF (loc.LOCATION_TYPE_LOOKUP_CODE IN ('OFFICE','FLOOR' )) THEN
290: if (loc.SPACE_TYPE_LOOKUP_CODE is NOT NULL and
291: NOT PNP_UTIL_FUNC.valid_lookup_code(
292: 'PN_SPACE_TYPE', loc.SPACE_TYPE_LOOKUP_CODE)) then
293: fnd_message.set_name('PN', 'PN_CAFM_SPACE_TYPE');
294: fnd_message.set_token('LOCATION_ID', loc.location_id);
295: l_error_message := fnd_message.get;
296: raise INVALID_RECORD;
297: end if;
290: if (loc.SPACE_TYPE_LOOKUP_CODE is NOT NULL and
291: NOT PNP_UTIL_FUNC.valid_lookup_code(
292: 'PN_SPACE_TYPE', loc.SPACE_TYPE_LOOKUP_CODE)) then
293: fnd_message.set_name('PN', 'PN_CAFM_SPACE_TYPE');
294: fnd_message.set_token('LOCATION_ID', loc.location_id);
295: l_error_message := fnd_message.get;
296: raise INVALID_RECORD;
297: end if;
298: END IF;
291: NOT PNP_UTIL_FUNC.valid_lookup_code(
292: 'PN_SPACE_TYPE', loc.SPACE_TYPE_LOOKUP_CODE)) then
293: fnd_message.set_name('PN', 'PN_CAFM_SPACE_TYPE');
294: fnd_message.set_token('LOCATION_ID', loc.location_id);
295: l_error_message := fnd_message.get;
296: raise INVALID_RECORD;
297: end if;
298: END IF;
299:
304: IF (loc.LOCATION_TYPE_LOOKUP_CODE IN ('PARCEL','SECTION' )) THEN
305: if (loc.SPACE_TYPE_LOOKUP_CODE is NOT NULL and
306: NOT PNP_UTIL_FUNC.valid_lookup_code(
307: 'PN_PARCEL_TYPE', loc.SPACE_TYPE_LOOKUP_CODE)) then
308: fnd_message.set_name('PN', 'PN_CAFM_SPACE_TYPE');
309: fnd_message.set_token('LOCATION_ID', loc.location_id);
310: l_error_message := fnd_message.get;
311: raise INVALID_RECORD;
312: end if;
305: if (loc.SPACE_TYPE_LOOKUP_CODE is NOT NULL and
306: NOT PNP_UTIL_FUNC.valid_lookup_code(
307: 'PN_PARCEL_TYPE', loc.SPACE_TYPE_LOOKUP_CODE)) then
308: fnd_message.set_name('PN', 'PN_CAFM_SPACE_TYPE');
309: fnd_message.set_token('LOCATION_ID', loc.location_id);
310: l_error_message := fnd_message.get;
311: raise INVALID_RECORD;
312: end if;
313: END IF;
306: NOT PNP_UTIL_FUNC.valid_lookup_code(
307: 'PN_PARCEL_TYPE', loc.SPACE_TYPE_LOOKUP_CODE)) then
308: fnd_message.set_name('PN', 'PN_CAFM_SPACE_TYPE');
309: fnd_message.set_token('LOCATION_ID', loc.location_id);
310: l_error_message := fnd_message.get;
311: raise INVALID_RECORD;
312: end if;
313: END IF;
314:
319: IF (loc.LOCATION_TYPE_LOOKUP_CODE IN ('PARCEL','SECTION','FLOOR','OFFICE' )) THEN
320: if (loc.FUNCTION_TYPE_LOOKUP_CODE is NOT NULL and
321: NOT PNP_UTIL_FUNC.valid_lookup_code(
322: 'PN_FUNCTION_TYPE', loc.FUNCTION_TYPE_LOOKUP_CODE)) then
323: fnd_message.set_name('PN', 'PN_CAFM_FUNCTION_TYPE');
324: fnd_message.set_token('LOCATION_ID', loc.location_id);
325: l_error_message := fnd_message.get;
326: raise INVALID_RECORD;
327: end if;
320: if (loc.FUNCTION_TYPE_LOOKUP_CODE is NOT NULL and
321: NOT PNP_UTIL_FUNC.valid_lookup_code(
322: 'PN_FUNCTION_TYPE', loc.FUNCTION_TYPE_LOOKUP_CODE)) then
323: fnd_message.set_name('PN', 'PN_CAFM_FUNCTION_TYPE');
324: fnd_message.set_token('LOCATION_ID', loc.location_id);
325: l_error_message := fnd_message.get;
326: raise INVALID_RECORD;
327: end if;
328: END IF;
321: NOT PNP_UTIL_FUNC.valid_lookup_code(
322: 'PN_FUNCTION_TYPE', loc.FUNCTION_TYPE_LOOKUP_CODE)) then
323: fnd_message.set_name('PN', 'PN_CAFM_FUNCTION_TYPE');
324: fnd_message.set_token('LOCATION_ID', loc.location_id);
325: l_error_message := fnd_message.get;
326: raise INVALID_RECORD;
327: end if;
328: END IF;
329:
334: IF (loc.LOCATION_TYPE_LOOKUP_CODE IN ('PARCEL','SECTION','FLOOR','OFFICE' )) THEN
335: if (loc.STANDARD_TYPE_LOOKUP_CODE is NOT NULL and
336: NOT PNP_UTIL_FUNC.valid_lookup_code(
337: 'PN_STANDARD_TYPE', loc.STANDARD_TYPE_LOOKUP_CODE)) then
338: fnd_message.set_name('PN', 'PN_CAFM_STANDARD_TYPE');
339: fnd_message.set_token('LOCATION_ID', loc.location_id);
340: l_error_message := fnd_message.get;
341: raise INVALID_RECORD;
342: end if;
335: if (loc.STANDARD_TYPE_LOOKUP_CODE is NOT NULL and
336: NOT PNP_UTIL_FUNC.valid_lookup_code(
337: 'PN_STANDARD_TYPE', loc.STANDARD_TYPE_LOOKUP_CODE)) then
338: fnd_message.set_name('PN', 'PN_CAFM_STANDARD_TYPE');
339: fnd_message.set_token('LOCATION_ID', loc.location_id);
340: l_error_message := fnd_message.get;
341: raise INVALID_RECORD;
342: end if;
343: END IF;
336: NOT PNP_UTIL_FUNC.valid_lookup_code(
337: 'PN_STANDARD_TYPE', loc.STANDARD_TYPE_LOOKUP_CODE)) then
338: fnd_message.set_name('PN', 'PN_CAFM_STANDARD_TYPE');
339: fnd_message.set_token('LOCATION_ID', loc.location_id);
340: l_error_message := fnd_message.get;
341: raise INVALID_RECORD;
342: end if;
343: END IF;
344:
348: --------------------------------------
349: IF (loc.LOCATION_TYPE_LOOKUP_CODE IN ( 'BUILDING' , 'LAND' )) AND
350: (loc.PARENT_LOCATION_ID is NOT NULL) THEN
351:
352: fnd_message.set_name('PN', 'PN_CAFM_BUILDING_PARENT_LOC_ID');
353: fnd_message.set_token('LOCATION_ID', loc.location_id);
354: l_error_message := fnd_message.get;
355: RAISE INVALID_RECORD;
356:
349: IF (loc.LOCATION_TYPE_LOOKUP_CODE IN ( 'BUILDING' , 'LAND' )) AND
350: (loc.PARENT_LOCATION_ID is NOT NULL) THEN
351:
352: fnd_message.set_name('PN', 'PN_CAFM_BUILDING_PARENT_LOC_ID');
353: fnd_message.set_token('LOCATION_ID', loc.location_id);
354: l_error_message := fnd_message.get;
355: RAISE INVALID_RECORD;
356:
357: ELSIF ((loc.LOCATION_TYPE_LOOKUP_CODE = 'FLOOR'AND
350: (loc.PARENT_LOCATION_ID is NOT NULL) THEN
351:
352: fnd_message.set_name('PN', 'PN_CAFM_BUILDING_PARENT_LOC_ID');
353: fnd_message.set_token('LOCATION_ID', loc.location_id);
354: l_error_message := fnd_message.get;
355: RAISE INVALID_RECORD;
356:
357: ELSIF ((loc.LOCATION_TYPE_LOOKUP_CODE = 'FLOOR'AND
358: get_location_type(loc.PARENT_LOCATION_ID) <> 'BUILDING' ) OR
358: get_location_type(loc.PARENT_LOCATION_ID) <> 'BUILDING' ) OR
359: (loc.LOCATION_TYPE_LOOKUP_CODE = 'PARCEL'AND
360: get_location_type(loc.PARENT_LOCATION_ID) <> 'LAND' )) THEN
361:
362: fnd_message.set_name('PN', 'PN_CAFM_FLOOR_PARENT_LOC_ID');
363: fnd_message.set_token('LOCATION_ID', loc.location_id);
364: IF loc.LOCATION_TYPE_LOOKUP_CODE = 'FLOOR' THEN
365: fnd_message.set_token('FLR_OR_PARCEL', 'floor');
366: fnd_message.set_token('BLD_OR_LAND', 'building');
359: (loc.LOCATION_TYPE_LOOKUP_CODE = 'PARCEL'AND
360: get_location_type(loc.PARENT_LOCATION_ID) <> 'LAND' )) THEN
361:
362: fnd_message.set_name('PN', 'PN_CAFM_FLOOR_PARENT_LOC_ID');
363: fnd_message.set_token('LOCATION_ID', loc.location_id);
364: IF loc.LOCATION_TYPE_LOOKUP_CODE = 'FLOOR' THEN
365: fnd_message.set_token('FLR_OR_PARCEL', 'floor');
366: fnd_message.set_token('BLD_OR_LAND', 'building');
367: ELSIF loc.LOCATION_TYPE_LOOKUP_CODE = 'PARCEL' THEN
361:
362: fnd_message.set_name('PN', 'PN_CAFM_FLOOR_PARENT_LOC_ID');
363: fnd_message.set_token('LOCATION_ID', loc.location_id);
364: IF loc.LOCATION_TYPE_LOOKUP_CODE = 'FLOOR' THEN
365: fnd_message.set_token('FLR_OR_PARCEL', 'floor');
366: fnd_message.set_token('BLD_OR_LAND', 'building');
367: ELSIF loc.LOCATION_TYPE_LOOKUP_CODE = 'PARCEL' THEN
368: fnd_message.set_token('FLR_OR_PARCEL', 'parcel');
369: fnd_message.set_token('BLD_OR_LAND', 'land');
362: fnd_message.set_name('PN', 'PN_CAFM_FLOOR_PARENT_LOC_ID');
363: fnd_message.set_token('LOCATION_ID', loc.location_id);
364: IF loc.LOCATION_TYPE_LOOKUP_CODE = 'FLOOR' THEN
365: fnd_message.set_token('FLR_OR_PARCEL', 'floor');
366: fnd_message.set_token('BLD_OR_LAND', 'building');
367: ELSIF loc.LOCATION_TYPE_LOOKUP_CODE = 'PARCEL' THEN
368: fnd_message.set_token('FLR_OR_PARCEL', 'parcel');
369: fnd_message.set_token('BLD_OR_LAND', 'land');
370: END IF;
364: IF loc.LOCATION_TYPE_LOOKUP_CODE = 'FLOOR' THEN
365: fnd_message.set_token('FLR_OR_PARCEL', 'floor');
366: fnd_message.set_token('BLD_OR_LAND', 'building');
367: ELSIF loc.LOCATION_TYPE_LOOKUP_CODE = 'PARCEL' THEN
368: fnd_message.set_token('FLR_OR_PARCEL', 'parcel');
369: fnd_message.set_token('BLD_OR_LAND', 'land');
370: END IF;
371: l_error_message := fnd_message.get;
372: RAISE INVALID_RECORD;
365: fnd_message.set_token('FLR_OR_PARCEL', 'floor');
366: fnd_message.set_token('BLD_OR_LAND', 'building');
367: ELSIF loc.LOCATION_TYPE_LOOKUP_CODE = 'PARCEL' THEN
368: fnd_message.set_token('FLR_OR_PARCEL', 'parcel');
369: fnd_message.set_token('BLD_OR_LAND', 'land');
370: END IF;
371: l_error_message := fnd_message.get;
372: RAISE INVALID_RECORD;
373:
367: ELSIF loc.LOCATION_TYPE_LOOKUP_CODE = 'PARCEL' THEN
368: fnd_message.set_token('FLR_OR_PARCEL', 'parcel');
369: fnd_message.set_token('BLD_OR_LAND', 'land');
370: END IF;
371: l_error_message := fnd_message.get;
372: RAISE INVALID_RECORD;
373:
374: ELSIF ((loc.LOCATION_TYPE_LOOKUP_CODE = 'OFFICE'AND
375: get_location_type(loc.PARENT_LOCATION_ID) <> 'FLOOR' ) OR
375: get_location_type(loc.PARENT_LOCATION_ID) <> 'FLOOR' ) OR
376: (loc.LOCATION_TYPE_LOOKUP_CODE = 'SECTION'AND
377: get_location_type(loc.PARENT_LOCATION_ID) <> 'PARCEL' )) THEN
378:
379: fnd_message.set_name('PN', 'PN_CAFM_OFFICE_PARENT_LOC_ID');
380: fnd_message.set_token('LOCATION_ID', loc.location_id);
381: IF loc.LOCATION_TYPE_LOOKUP_CODE = 'OFFICE' THEN
382: fnd_message.set_token('FLR_OR_PARCEL', 'floor');
383: fnd_message.set_token('OFF_OR_SECT', 'office');
376: (loc.LOCATION_TYPE_LOOKUP_CODE = 'SECTION'AND
377: get_location_type(loc.PARENT_LOCATION_ID) <> 'PARCEL' )) THEN
378:
379: fnd_message.set_name('PN', 'PN_CAFM_OFFICE_PARENT_LOC_ID');
380: fnd_message.set_token('LOCATION_ID', loc.location_id);
381: IF loc.LOCATION_TYPE_LOOKUP_CODE = 'OFFICE' THEN
382: fnd_message.set_token('FLR_OR_PARCEL', 'floor');
383: fnd_message.set_token('OFF_OR_SECT', 'office');
384: ELSIF loc.LOCATION_TYPE_LOOKUP_CODE = 'SECTION' THEN
378:
379: fnd_message.set_name('PN', 'PN_CAFM_OFFICE_PARENT_LOC_ID');
380: fnd_message.set_token('LOCATION_ID', loc.location_id);
381: IF loc.LOCATION_TYPE_LOOKUP_CODE = 'OFFICE' THEN
382: fnd_message.set_token('FLR_OR_PARCEL', 'floor');
383: fnd_message.set_token('OFF_OR_SECT', 'office');
384: ELSIF loc.LOCATION_TYPE_LOOKUP_CODE = 'SECTION' THEN
385: fnd_message.set_token('FLR_OR_PARCEL', 'parcel');
386: fnd_message.set_token('OFF_OR_SECT', 'section');
379: fnd_message.set_name('PN', 'PN_CAFM_OFFICE_PARENT_LOC_ID');
380: fnd_message.set_token('LOCATION_ID', loc.location_id);
381: IF loc.LOCATION_TYPE_LOOKUP_CODE = 'OFFICE' THEN
382: fnd_message.set_token('FLR_OR_PARCEL', 'floor');
383: fnd_message.set_token('OFF_OR_SECT', 'office');
384: ELSIF loc.LOCATION_TYPE_LOOKUP_CODE = 'SECTION' THEN
385: fnd_message.set_token('FLR_OR_PARCEL', 'parcel');
386: fnd_message.set_token('OFF_OR_SECT', 'section');
387: END IF;
381: IF loc.LOCATION_TYPE_LOOKUP_CODE = 'OFFICE' THEN
382: fnd_message.set_token('FLR_OR_PARCEL', 'floor');
383: fnd_message.set_token('OFF_OR_SECT', 'office');
384: ELSIF loc.LOCATION_TYPE_LOOKUP_CODE = 'SECTION' THEN
385: fnd_message.set_token('FLR_OR_PARCEL', 'parcel');
386: fnd_message.set_token('OFF_OR_SECT', 'section');
387: END IF;
388: l_error_message := fnd_message.get;
389: RAISE INVALID_RECORD;
382: fnd_message.set_token('FLR_OR_PARCEL', 'floor');
383: fnd_message.set_token('OFF_OR_SECT', 'office');
384: ELSIF loc.LOCATION_TYPE_LOOKUP_CODE = 'SECTION' THEN
385: fnd_message.set_token('FLR_OR_PARCEL', 'parcel');
386: fnd_message.set_token('OFF_OR_SECT', 'section');
387: END IF;
388: l_error_message := fnd_message.get;
389: RAISE INVALID_RECORD;
390:
384: ELSIF loc.LOCATION_TYPE_LOOKUP_CODE = 'SECTION' THEN
385: fnd_message.set_token('FLR_OR_PARCEL', 'parcel');
386: fnd_message.set_token('OFF_OR_SECT', 'section');
387: END IF;
388: l_error_message := fnd_message.get;
389: RAISE INVALID_RECORD;
390:
391: END IF;
392:
394: -------------------------------------------------
395: -- Validate Active_Start_Date
396: -------------------------------------------------
397: if loc.ACTIVE_START_DATE is NULL then
398: fnd_message.set_name('PN', 'PN_CAFM_ACT_ST_DT');
399: fnd_message.set_token('LOCATION_ID', loc.location_id);
400: l_error_message := fnd_message.get;
401: raise INVALID_RECORD;
402: end if;
395: -- Validate Active_Start_Date
396: -------------------------------------------------
397: if loc.ACTIVE_START_DATE is NULL then
398: fnd_message.set_name('PN', 'PN_CAFM_ACT_ST_DT');
399: fnd_message.set_token('LOCATION_ID', loc.location_id);
400: l_error_message := fnd_message.get;
401: raise INVALID_RECORD;
402: end if;
403: if TRUNC(loc.ACTIVE_START_DATE) >
396: -------------------------------------------------
397: if loc.ACTIVE_START_DATE is NULL then
398: fnd_message.set_name('PN', 'PN_CAFM_ACT_ST_DT');
399: fnd_message.set_token('LOCATION_ID', loc.location_id);
400: l_error_message := fnd_message.get;
401: raise INVALID_RECORD;
402: end if;
403: if TRUNC(loc.ACTIVE_START_DATE) >
404: TRUNC(NVL(loc.active_end_date,PNT_LOCATIONS_PKG.G_END_OF_TIME)) then
401: raise INVALID_RECORD;
402: end if;
403: if TRUNC(loc.ACTIVE_START_DATE) >
404: TRUNC(NVL(loc.active_end_date,PNT_LOCATIONS_PKG.G_END_OF_TIME)) then
405: fnd_message.set_name('PN', 'PN_LOCN_STDT_VALID_MSG');
406: fnd_message.set_token('LOCATION_ID', loc.location_id);
407: l_error_message := fnd_message.get;
408: raise INVALID_RECORD;
409: end if;
402: end if;
403: if TRUNC(loc.ACTIVE_START_DATE) >
404: TRUNC(NVL(loc.active_end_date,PNT_LOCATIONS_PKG.G_END_OF_TIME)) then
405: fnd_message.set_name('PN', 'PN_LOCN_STDT_VALID_MSG');
406: fnd_message.set_token('LOCATION_ID', loc.location_id);
407: l_error_message := fnd_message.get;
408: raise INVALID_RECORD;
409: end if;
410:
403: if TRUNC(loc.ACTIVE_START_DATE) >
404: TRUNC(NVL(loc.active_end_date,PNT_LOCATIONS_PKG.G_END_OF_TIME)) then
405: fnd_message.set_name('PN', 'PN_LOCN_STDT_VALID_MSG');
406: fnd_message.set_token('LOCATION_ID', loc.location_id);
407: l_error_message := fnd_message.get;
408: raise INVALID_RECORD;
409: end if;
410:
411: put_log('Validate Active_Start_Date and Active_End_Date wrt the parent Location');
418: from pn_locations_all where location_id = loc.PARENT_LOCATION_ID
419: group by location_id;
420:
421: if trunc(loc.active_start_date) < trunc(l_active_start_date) then
422: fnd_message.set_name('PN', 'PN_CAFM_LOC_CHILD_ST_DT');
423: fnd_message.set_token('LOCATION_ID', loc.location_id);
424: fnd_message.set_token('P_LOCATION_ID', loc.parent_location_id);
425: l_error_message := fnd_message.get;
426: raise INVALID_RECORD;
419: group by location_id;
420:
421: if trunc(loc.active_start_date) < trunc(l_active_start_date) then
422: fnd_message.set_name('PN', 'PN_CAFM_LOC_CHILD_ST_DT');
423: fnd_message.set_token('LOCATION_ID', loc.location_id);
424: fnd_message.set_token('P_LOCATION_ID', loc.parent_location_id);
425: l_error_message := fnd_message.get;
426: raise INVALID_RECORD;
427: elsif trunc(nvl(loc.active_end_date,PNT_LOCATIONS_PKG.G_END_OF_TIME))
420:
421: if trunc(loc.active_start_date) < trunc(l_active_start_date) then
422: fnd_message.set_name('PN', 'PN_CAFM_LOC_CHILD_ST_DT');
423: fnd_message.set_token('LOCATION_ID', loc.location_id);
424: fnd_message.set_token('P_LOCATION_ID', loc.parent_location_id);
425: l_error_message := fnd_message.get;
426: raise INVALID_RECORD;
427: elsif trunc(nvl(loc.active_end_date,PNT_LOCATIONS_PKG.G_END_OF_TIME))
428: > trunc(l_active_end_date) then
421: if trunc(loc.active_start_date) < trunc(l_active_start_date) then
422: fnd_message.set_name('PN', 'PN_CAFM_LOC_CHILD_ST_DT');
423: fnd_message.set_token('LOCATION_ID', loc.location_id);
424: fnd_message.set_token('P_LOCATION_ID', loc.parent_location_id);
425: l_error_message := fnd_message.get;
426: raise INVALID_RECORD;
427: elsif trunc(nvl(loc.active_end_date,PNT_LOCATIONS_PKG.G_END_OF_TIME))
428: > trunc(l_active_end_date) then
429: fnd_message.set_name('PN', 'PN_CAFM_LOC_CHILD_END_DT');
425: l_error_message := fnd_message.get;
426: raise INVALID_RECORD;
427: elsif trunc(nvl(loc.active_end_date,PNT_LOCATIONS_PKG.G_END_OF_TIME))
428: > trunc(l_active_end_date) then
429: fnd_message.set_name('PN', 'PN_CAFM_LOC_CHILD_END_DT');
430: fnd_message.set_token('LOCATION_ID', loc.location_id);
431: fnd_message.set_token('P_LOCATION_ID', loc.parent_location_id);
432: l_error_message := fnd_message.get;
433: raise INVALID_RECORD;
426: raise INVALID_RECORD;
427: elsif trunc(nvl(loc.active_end_date,PNT_LOCATIONS_PKG.G_END_OF_TIME))
428: > trunc(l_active_end_date) then
429: fnd_message.set_name('PN', 'PN_CAFM_LOC_CHILD_END_DT');
430: fnd_message.set_token('LOCATION_ID', loc.location_id);
431: fnd_message.set_token('P_LOCATION_ID', loc.parent_location_id);
432: l_error_message := fnd_message.get;
433: raise INVALID_RECORD;
434: end if;
427: elsif trunc(nvl(loc.active_end_date,PNT_LOCATIONS_PKG.G_END_OF_TIME))
428: > trunc(l_active_end_date) then
429: fnd_message.set_name('PN', 'PN_CAFM_LOC_CHILD_END_DT');
430: fnd_message.set_token('LOCATION_ID', loc.location_id);
431: fnd_message.set_token('P_LOCATION_ID', loc.parent_location_id);
432: l_error_message := fnd_message.get;
433: raise INVALID_RECORD;
434: end if;
435: end if;
428: > trunc(l_active_end_date) then
429: fnd_message.set_name('PN', 'PN_CAFM_LOC_CHILD_END_DT');
430: fnd_message.set_token('LOCATION_ID', loc.location_id);
431: fnd_message.set_token('P_LOCATION_ID', loc.parent_location_id);
432: l_error_message := fnd_message.get;
433: raise INVALID_RECORD;
434: end if;
435: end if;
436:
438: ------------------------------------------
439: -- Validate the combination of id and code
440: ------------------------------------------
441: if not (Is_Id_Code_Valid(loc.LOCATION_ID, loc.LOCATION_CODE, l_org_id)) then
442: fnd_message.set_name('PN', 'PN_CAFM_LOC_ID_CODE_COMB');
443: fnd_message.set_token('LOCATION_ID', loc.location_id);
444: l_error_message := fnd_message.get;
445: raise INVALID_RECORD;
446: end if;
439: -- Validate the combination of id and code
440: ------------------------------------------
441: if not (Is_Id_Code_Valid(loc.LOCATION_ID, loc.LOCATION_CODE, l_org_id)) then
442: fnd_message.set_name('PN', 'PN_CAFM_LOC_ID_CODE_COMB');
443: fnd_message.set_token('LOCATION_ID', loc.location_id);
444: l_error_message := fnd_message.get;
445: raise INVALID_RECORD;
446: end if;
447:
440: ------------------------------------------
441: if not (Is_Id_Code_Valid(loc.LOCATION_ID, loc.LOCATION_CODE, l_org_id)) then
442: fnd_message.set_name('PN', 'PN_CAFM_LOC_ID_CODE_COMB');
443: fnd_message.set_token('LOCATION_ID', loc.location_id);
444: l_error_message := fnd_message.get;
445: raise INVALID_RECORD;
446: end if;
447:
448: put_log('Validate for Duplicate Building/Land Code');
454: loc.LOCATION_CODE,
455: loc.LOCATION_TYPE_LOOKUP_CODE,
456: l_org_id))
457: then
458: fnd_message.set_token('LOCATION_ID', loc.location_id);
459: l_error_message := fnd_message.get;
460: raise INVALID_RECORD;
461: end if;
462: end if;
455: loc.LOCATION_TYPE_LOOKUP_CODE,
456: l_org_id))
457: then
458: fnd_message.set_token('LOCATION_ID', loc.location_id);
459: l_error_message := fnd_message.get;
460: raise INVALID_RECORD;
461: end if;
462: end if;
463:
471: end if;
472: else
473: if (NOT PNP_UTIL_FUNC.valid_lookup_code(
474: 'PN_LEASED_OR_OWNED', loc.LEASE_OR_OWNED)) then
475: fnd_message.set_name('PN', 'PN_CAFM_LEASE_OR_OWNED');
476: fnd_message.set_token('LOCATION_ID', loc.location_id);
477: l_error_message := fnd_message.get;
478: raise INVALID_RECORD;
479: end if;
472: else
473: if (NOT PNP_UTIL_FUNC.valid_lookup_code(
474: 'PN_LEASED_OR_OWNED', loc.LEASE_OR_OWNED)) then
475: fnd_message.set_name('PN', 'PN_CAFM_LEASE_OR_OWNED');
476: fnd_message.set_token('LOCATION_ID', loc.location_id);
477: l_error_message := fnd_message.get;
478: raise INVALID_RECORD;
479: end if;
480: end if;
473: if (NOT PNP_UTIL_FUNC.valid_lookup_code(
474: 'PN_LEASED_OR_OWNED', loc.LEASE_OR_OWNED)) then
475: fnd_message.set_name('PN', 'PN_CAFM_LEASE_OR_OWNED');
476: fnd_message.set_token('LOCATION_ID', loc.location_id);
477: l_error_message := fnd_message.get;
478: raise INVALID_RECORD;
479: end if;
480: end if;
481:
488: loc.COUNTRY := fnd_profile.value('DEFAULT_COUNTRY');
489: end if;
490: else
491: if (NOT PNP_UTIL_FUNC.valid_country_code(loc.COUNTRY)) then
492: fnd_message.set_name('PN', 'PN_CAFM_COUNTRY');
493: fnd_message.set_token('LOCATION_ID', loc.location_id);
494: l_error_message := fnd_message.get;
495: raise INVALID_RECORD;
496: end if;
489: end if;
490: else
491: if (NOT PNP_UTIL_FUNC.valid_country_code(loc.COUNTRY)) then
492: fnd_message.set_name('PN', 'PN_CAFM_COUNTRY');
493: fnd_message.set_token('LOCATION_ID', loc.location_id);
494: l_error_message := fnd_message.get;
495: raise INVALID_RECORD;
496: end if;
497: end if;
490: else
491: if (NOT PNP_UTIL_FUNC.valid_country_code(loc.COUNTRY)) then
492: fnd_message.set_name('PN', 'PN_CAFM_COUNTRY');
493: fnd_message.set_token('LOCATION_ID', loc.location_id);
494: l_error_message := fnd_message.get;
495: raise INVALID_RECORD;
496: end if;
497: end if;
498:
500: --------------------------------------
501: -- Validate Optimum_Capacity
502: --------------------------------------
503: if (loc.optimum_capacity > loc.max_capacity) then
504: fnd_message.set_name('PN', 'PN_CAFM_OPTIMUM_CAPACITY');
505: fnd_message.set_token('LOCATION_ID', loc.location_id);
506: l_error_message := fnd_message.get;
507: raise INVALID_RECORD;
508: end if;
501: -- Validate Optimum_Capacity
502: --------------------------------------
503: if (loc.optimum_capacity > loc.max_capacity) then
504: fnd_message.set_name('PN', 'PN_CAFM_OPTIMUM_CAPACITY');
505: fnd_message.set_token('LOCATION_ID', loc.location_id);
506: l_error_message := fnd_message.get;
507: raise INVALID_RECORD;
508: end if;
509:
502: --------------------------------------
503: if (loc.optimum_capacity > loc.max_capacity) then
504: fnd_message.set_name('PN', 'PN_CAFM_OPTIMUM_CAPACITY');
505: fnd_message.set_token('LOCATION_ID', loc.location_id);
506: l_error_message := fnd_message.get;
507: raise INVALID_RECORD;
508: end if;
509:
510: put_log('Setting appropriate areas to null based on lookup type');
524: --------------------------------------
525: -- Validate Usable_Area
526: --------------------------------------
527: if (loc.Usable_Area > loc.Rentable_Area) then
528: fnd_message.set_name('PN', 'PN_CAFM_USABLE_AREA');
529: fnd_message.set_token('LOCATION_ID', loc.location_id);
530: l_error_message := fnd_message.get;
531: raise INVALID_RECORD;
532: end if;
525: -- Validate Usable_Area
526: --------------------------------------
527: if (loc.Usable_Area > loc.Rentable_Area) then
528: fnd_message.set_name('PN', 'PN_CAFM_USABLE_AREA');
529: fnd_message.set_token('LOCATION_ID', loc.location_id);
530: l_error_message := fnd_message.get;
531: raise INVALID_RECORD;
532: end if;
533:
526: --------------------------------------
527: if (loc.Usable_Area > loc.Rentable_Area) then
528: fnd_message.set_name('PN', 'PN_CAFM_USABLE_AREA');
529: fnd_message.set_token('LOCATION_ID', loc.location_id);
530: l_error_message := fnd_message.get;
531: raise INVALID_RECORD;
532: end if;
533:
534: put_log('Validate Assignable_Area');
535: --------------------------------------
536: -- Validate Assignable_Area
537: --------------------------------------
538: if (loc.Assignable_Area > loc.Rentable_Area) then
539: fnd_message.set_name('PN', 'PN_CAFM_ASSIGNABLE_AREA');
540: fnd_message.set_token('LOCATION_ID', loc.location_id);
541: l_error_message := fnd_message.get;
542: raise INVALID_RECORD;
543: end if;
536: -- Validate Assignable_Area
537: --------------------------------------
538: if (loc.Assignable_Area > loc.Rentable_Area) then
539: fnd_message.set_name('PN', 'PN_CAFM_ASSIGNABLE_AREA');
540: fnd_message.set_token('LOCATION_ID', loc.location_id);
541: l_error_message := fnd_message.get;
542: raise INVALID_RECORD;
543: end if;
544:
537: --------------------------------------
538: if (loc.Assignable_Area > loc.Rentable_Area) then
539: fnd_message.set_name('PN', 'PN_CAFM_ASSIGNABLE_AREA');
540: fnd_message.set_token('LOCATION_ID', loc.location_id);
541: l_error_message := fnd_message.get;
542: raise INVALID_RECORD;
543: end if;
544:
545: put_log('Validate Assignable_Area/Common Area is not null for Offices/Section');
549: -------------------------------------------------------------------
550: if (loc.assignable_area is null and
551: loc.location_type_lookup_code in ('OFFICE','SECTION') and
552: nvl(loc.common_area_flag,'N') = 'N') then
553: fnd_message.set_name('PN','PN_CAFM_ASSIGNABLE_REQ');
554: fnd_message.set_token('LOCATION_ID', loc.location_id);
555: l_error_message := fnd_message.get;
556: raise INVALID_RECORD;
557: end if;
550: if (loc.assignable_area is null and
551: loc.location_type_lookup_code in ('OFFICE','SECTION') and
552: nvl(loc.common_area_flag,'N') = 'N') then
553: fnd_message.set_name('PN','PN_CAFM_ASSIGNABLE_REQ');
554: fnd_message.set_token('LOCATION_ID', loc.location_id);
555: l_error_message := fnd_message.get;
556: raise INVALID_RECORD;
557: end if;
558:
551: loc.location_type_lookup_code in ('OFFICE','SECTION') and
552: nvl(loc.common_area_flag,'N') = 'N') then
553: fnd_message.set_name('PN','PN_CAFM_ASSIGNABLE_REQ');
554: fnd_message.set_token('LOCATION_ID', loc.location_id);
555: l_error_message := fnd_message.get;
556: raise INVALID_RECORD;
557: end if;
558:
559: if (loc.common_area is null and
558:
559: if (loc.common_area is null and
560: loc.location_type_lookup_code in ('OFFICE','SECTION') and
561: loc.common_area_flag = 'Y') then
562: fnd_message.set_name('PN','PN_CAFM_COMMON_AREA_REQ');
563: fnd_message.set_token('LOCATION_ID', loc.location_id);
564: l_error_message := fnd_message.get;
565: raise INVALID_RECORD;
566: end if;
559: if (loc.common_area is null and
560: loc.location_type_lookup_code in ('OFFICE','SECTION') and
561: loc.common_area_flag = 'Y') then
562: fnd_message.set_name('PN','PN_CAFM_COMMON_AREA_REQ');
563: fnd_message.set_token('LOCATION_ID', loc.location_id);
564: l_error_message := fnd_message.get;
565: raise INVALID_RECORD;
566: end if;
567:
560: loc.location_type_lookup_code in ('OFFICE','SECTION') and
561: loc.common_area_flag = 'Y') then
562: fnd_message.set_name('PN','PN_CAFM_COMMON_AREA_REQ');
563: fnd_message.set_token('LOCATION_ID', loc.location_id);
564: l_error_message := fnd_message.get;
565: raise INVALID_RECORD;
566: end if;
567:
568: put_log('Validate Common_Area and Assignable_Area');
569: -------------------------------------------------------------------
570: -- Validate Common_Area and Assignable_Area are mutually exclusive
571: -------------------------------------------------------------------
572: if (loc.Common_Area is not null and loc.Assignable_Area is not null) then
573: fnd_message.set_name('PN', 'PN_CAFM_COMMON_ASSIGNABLE');
574: fnd_message.set_token('LOCATION_ID', loc.location_id);
575: l_error_message := fnd_message.get;
576: raise INVALID_RECORD;
577: end if;
570: -- Validate Common_Area and Assignable_Area are mutually exclusive
571: -------------------------------------------------------------------
572: if (loc.Common_Area is not null and loc.Assignable_Area is not null) then
573: fnd_message.set_name('PN', 'PN_CAFM_COMMON_ASSIGNABLE');
574: fnd_message.set_token('LOCATION_ID', loc.location_id);
575: l_error_message := fnd_message.get;
576: raise INVALID_RECORD;
577: end if;
578:
571: -------------------------------------------------------------------
572: if (loc.Common_Area is not null and loc.Assignable_Area is not null) then
573: fnd_message.set_name('PN', 'PN_CAFM_COMMON_ASSIGNABLE');
574: fnd_message.set_token('LOCATION_ID', loc.location_id);
575: l_error_message := fnd_message.get;
576: raise INVALID_RECORD;
577: end if;
578:
579: put_log('Validate Common_Area');
580: --------------------------------------
581: -- Validate Common_Area
582: --------------------------------------
583: if (loc.Common_Area > loc.Rentable_Area) then
584: fnd_message.set_name('PN', 'PN_CAFM_COMMON_AREA');
585: fnd_message.set_token('LOCATION_ID', loc.location_id);
586: l_error_message := fnd_message.get;
587: raise INVALID_RECORD;
588: end if;
581: -- Validate Common_Area
582: --------------------------------------
583: if (loc.Common_Area > loc.Rentable_Area) then
584: fnd_message.set_name('PN', 'PN_CAFM_COMMON_AREA');
585: fnd_message.set_token('LOCATION_ID', loc.location_id);
586: l_error_message := fnd_message.get;
587: raise INVALID_RECORD;
588: end if;
589:
582: --------------------------------------
583: if (loc.Common_Area > loc.Rentable_Area) then
584: fnd_message.set_name('PN', 'PN_CAFM_COMMON_AREA');
585: fnd_message.set_token('LOCATION_ID', loc.location_id);
586: l_error_message := fnd_message.get;
587: raise INVALID_RECORD;
588: end if;
589:
590: put_log('Validate SOURCE');
592: -- Validate SOURCE
593: --------------------------------------
594: if (NOT PNP_UTIL_FUNC.valid_lookup_code(
595: 'PN_SOURCE', loc.SOURCE)) then
596: fnd_message.set_name('PN', 'PN_CAFM_LOCATION_SOURCE');
597: fnd_message.set_token('LOCATION_ID', loc.location_id);
598: l_error_message := fnd_message.get;
599: raise INVALID_RECORD;
600: end if;
593: --------------------------------------
594: if (NOT PNP_UTIL_FUNC.valid_lookup_code(
595: 'PN_SOURCE', loc.SOURCE)) then
596: fnd_message.set_name('PN', 'PN_CAFM_LOCATION_SOURCE');
597: fnd_message.set_token('LOCATION_ID', loc.location_id);
598: l_error_message := fnd_message.get;
599: raise INVALID_RECORD;
600: end if;
601:
594: if (NOT PNP_UTIL_FUNC.valid_lookup_code(
595: 'PN_SOURCE', loc.SOURCE)) then
596: fnd_message.set_name('PN', 'PN_CAFM_LOCATION_SOURCE');
597: fnd_message.set_token('LOCATION_ID', loc.location_id);
598: l_error_message := fnd_message.get;
599: raise INVALID_RECORD;
600: end if;
601:
602: put_log('Validate PROPERTY_ID');
603: --------------------------------------
604: -- Validate PROPERTY_ID
605: --------------------------------------
606: if ( NOT EXISTS_PROPERTY_ID( loc.Property_Id ) ) then
607: fnd_message.set_name('PN', 'PN_CAFM_INVALID_PROPERTY_ID');
608: fnd_message.set_token('PROPERTY_ID', loc.Property_Id);
609: l_error_message := fnd_message.get;
610: raise INVALID_RECORD;
611: end if;
604: -- Validate PROPERTY_ID
605: --------------------------------------
606: if ( NOT EXISTS_PROPERTY_ID( loc.Property_Id ) ) then
607: fnd_message.set_name('PN', 'PN_CAFM_INVALID_PROPERTY_ID');
608: fnd_message.set_token('PROPERTY_ID', loc.Property_Id);
609: l_error_message := fnd_message.get;
610: raise INVALID_RECORD;
611: end if;
612:
605: --------------------------------------
606: if ( NOT EXISTS_PROPERTY_ID( loc.Property_Id ) ) then
607: fnd_message.set_name('PN', 'PN_CAFM_INVALID_PROPERTY_ID');
608: fnd_message.set_token('PROPERTY_ID', loc.Property_Id);
609: l_error_message := fnd_message.get;
610: raise INVALID_RECORD;
611: end if;
612:
613: ---------------------------------------------------------------------------
631: p_act_str_dt => trunc(loc.ACTIVE_START_DATE),
632: p_act_end_dt => trunc(nvl(loc.ACTIVE_END_DATE,
633: PNT_LOCATIONS_PKG.G_END_OF_TIME))) --Used trunc() :Bug 6009957
634: then
635: fnd_message.set_name('PN', 'PN_GROSS_RENTABLE');
636: fnd_message.set_token('LOCATION_ID', loc.location_id);
637: l_error_message := fnd_message.get;
638: raise INVALID_RECORD;
639: end if;
632: p_act_end_dt => trunc(nvl(loc.ACTIVE_END_DATE,
633: PNT_LOCATIONS_PKG.G_END_OF_TIME))) --Used trunc() :Bug 6009957
634: then
635: fnd_message.set_name('PN', 'PN_GROSS_RENTABLE');
636: fnd_message.set_token('LOCATION_ID', loc.location_id);
637: l_error_message := fnd_message.get;
638: raise INVALID_RECORD;
639: end if;
640: end if;
633: PNT_LOCATIONS_PKG.G_END_OF_TIME))) --Used trunc() :Bug 6009957
634: then
635: fnd_message.set_name('PN', 'PN_GROSS_RENTABLE');
636: fnd_message.set_token('LOCATION_ID', loc.location_id);
637: l_error_message := fnd_message.get;
638: raise INVALID_RECORD;
639: end if;
640: end if;
641:
747: ,x_bookable_flag => null
748: ,x_source => loc.source);
749:
750: IF NOT( l_returnstatus = FND_API.G_RET_STS_SUCCESS) THEN
751: l_error_message := fnd_message.get;
752: pnp_debug_pkg.log(l_error_message);
753: raise INVALID_RECORD;
754: END IF;
755:
755:
756: EXCEPTION
757:
758: WHEN OTHERS THEN
759: l_error_message := fnd_message.get;
760: pnp_debug_pkg.log(l_error_message);
761: pnp_debug_pkg.log(sqlerrm);
762: raise INVALID_RECORD;
763:
784: --Used trunc() :Bug 6009957
785:
786: EXCEPTION
787: WHEN no_data_found THEN
788: fnd_message.set_name('PN', 'PN_CAFM_LOC_REC_NOT_FOUND_UPD');
789: fnd_message.set_token('LOCATION_ID', loc.location_id);
790: l_error_message := fnd_message.get;
791: raise INVALID_RECORD;
792: END;
785:
786: EXCEPTION
787: WHEN no_data_found THEN
788: fnd_message.set_name('PN', 'PN_CAFM_LOC_REC_NOT_FOUND_UPD');
789: fnd_message.set_token('LOCATION_ID', loc.location_id);
790: l_error_message := fnd_message.get;
791: raise INVALID_RECORD;
792: END;
793:
786: EXCEPTION
787: WHEN no_data_found THEN
788: fnd_message.set_name('PN', 'PN_CAFM_LOC_REC_NOT_FOUND_UPD');
789: fnd_message.set_token('LOCATION_ID', loc.location_id);
790: l_error_message := fnd_message.get;
791: raise INVALID_RECORD;
792: END;
793:
794: --------------------------------------
805: where address_id = v_loc_rec.address_id;
806: l_address_id := v_addr_rec.address_id;
807: EXCEPTION
808: WHEN no_data_found THEN
809: fnd_message.set_name('PN', 'PN_CAFM_LOC_REC_NOT_FOUND_UPD');
810: fnd_message.set_token('LOCATION_ID', loc.location_id);
811: l_error_message := fnd_message.get;
812: raise INVALID_RECORD;
813: END;
806: l_address_id := v_addr_rec.address_id;
807: EXCEPTION
808: WHEN no_data_found THEN
809: fnd_message.set_name('PN', 'PN_CAFM_LOC_REC_NOT_FOUND_UPD');
810: fnd_message.set_token('LOCATION_ID', loc.location_id);
811: l_error_message := fnd_message.get;
812: raise INVALID_RECORD;
813: END;
814:
807: EXCEPTION
808: WHEN no_data_found THEN
809: fnd_message.set_name('PN', 'PN_CAFM_LOC_REC_NOT_FOUND_UPD');
810: fnd_message.set_token('LOCATION_ID', loc.location_id);
811: l_error_message := fnd_message.get;
812: raise INVALID_RECORD;
813: END;
814:
815: end if;
819: -- Validate New_Active_Start/End_Date
820: -------------------------------------------------
821: IF NVL(loc.new_active_start_date, loc.active_start_date)
822: > NVL(loc.new_active_end_date, loc.active_end_date) THEN
823: fnd_message.set_name('PN', 'PN_LOCN_ENDT_VALID_MSG');
824: fnd_message.set_token('LOCATION_ID', loc.location_id);
825: l_error_message := fnd_message.get;
826: RAISE INVALID_RECORD;
827: END IF;
820: -------------------------------------------------
821: IF NVL(loc.new_active_start_date, loc.active_start_date)
822: > NVL(loc.new_active_end_date, loc.active_end_date) THEN
823: fnd_message.set_name('PN', 'PN_LOCN_ENDT_VALID_MSG');
824: fnd_message.set_token('LOCATION_ID', loc.location_id);
825: l_error_message := fnd_message.get;
826: RAISE INVALID_RECORD;
827: END IF;
828:
821: IF NVL(loc.new_active_start_date, loc.active_start_date)
822: > NVL(loc.new_active_end_date, loc.active_end_date) THEN
823: fnd_message.set_name('PN', 'PN_LOCN_ENDT_VALID_MSG');
824: fnd_message.set_token('LOCATION_ID', loc.location_id);
825: l_error_message := fnd_message.get;
826: RAISE INVALID_RECORD;
827: END IF;
828:
829: put_log('Validate if the start - end dates need to be changed');
863: x_return_status => l_returnstatus,
864: x_return_message => l_return_message);
865:
866: if NOT ( l_returnStatus = FND_API.G_RET_STS_SUCCESS) then
867: l_error_message := fnd_message.get;
868: pnp_debug_pkg.put_log_msg(l_return_message);
869: raise INVALID_RECORD;
870: end if;
871:
890: x_return_message => l_return_message);
891: END IF;
892:
893: if NOT ( l_returnStatus = FND_API.G_RET_STS_SUCCESS) then
894: l_error_message := fnd_message.get;
895: pnp_debug_pkg.put_log_msg(l_return_message);
896: raise INVALID_RECORD;
897: end if;
898:
907: (loc.location_id,
908: trunc(loc.new_active_start_date)) THEN
909: -- set msg based on loc type
910: IF loc.location_type_lookup_code IN ('OFFICE', 'SECTION') THEN
911: fnd_message.set_name('PN', 'PN_OFF_TEN_START_DATE');
912: ELSE
913: fnd_message.set_name('PN', 'PN_LOC_TEN_START_DATE');
914: END IF;
915: l_error_message := fnd_message.get;
909: -- set msg based on loc type
910: IF loc.location_type_lookup_code IN ('OFFICE', 'SECTION') THEN
911: fnd_message.set_name('PN', 'PN_OFF_TEN_START_DATE');
912: ELSE
913: fnd_message.set_name('PN', 'PN_LOC_TEN_START_DATE');
914: END IF;
915: l_error_message := fnd_message.get;
916: RAISE INVALID_RECORD;
917: END IF;
911: fnd_message.set_name('PN', 'PN_OFF_TEN_START_DATE');
912: ELSE
913: fnd_message.set_name('PN', 'PN_LOC_TEN_START_DATE');
914: END IF;
915: l_error_message := fnd_message.get;
916: RAISE INVALID_RECORD;
917: END IF;
918: END IF;
919:
924: (loc.location_id,
925: trunc(loc.new_active_end_date)) THEN
926: -- set msg based on loc type
927: IF loc.location_type_lookup_code IN ('OFFICE', 'SECTION') THEN
928: fnd_message.set_name('PN', 'PN_OFF_TEN_END_DATE');
929: ELSE
930: fnd_message.set_name('PN', 'PN_LOC_TEN_END_DATE');
931: END IF;
932: l_error_message := fnd_message.get;
926: -- set msg based on loc type
927: IF loc.location_type_lookup_code IN ('OFFICE', 'SECTION') THEN
928: fnd_message.set_name('PN', 'PN_OFF_TEN_END_DATE');
929: ELSE
930: fnd_message.set_name('PN', 'PN_LOC_TEN_END_DATE');
931: END IF;
932: l_error_message := fnd_message.get;
933: RAISE INVALID_RECORD;
934: END IF;
928: fnd_message.set_name('PN', 'PN_OFF_TEN_END_DATE');
929: ELSE
930: fnd_message.set_name('PN', 'PN_LOC_TEN_END_DATE');
931: END IF;
932: l_error_message := fnd_message.get;
933: RAISE INVALID_RECORD;
934: END IF;
935: END IF;
936:
941: -- Validate p_as_of_date
942: -----------------------------
943: IF ( (nvl(loc.change_mode,'CORRECT') = 'UPDATE') and
944: loc.change_date is NULL ) THEN
945: fnd_message.set_name('PN', 'PN_CAFM_INVALID_CHANGE_DATE');
946: fnd_message.set_token('FIELD_NAME', 'Change Date');
947: l_error_message := fnd_message.get;
948: raise INVALID_RECORD;
949: END IF;
942: -----------------------------
943: IF ( (nvl(loc.change_mode,'CORRECT') = 'UPDATE') and
944: loc.change_date is NULL ) THEN
945: fnd_message.set_name('PN', 'PN_CAFM_INVALID_CHANGE_DATE');
946: fnd_message.set_token('FIELD_NAME', 'Change Date');
947: l_error_message := fnd_message.get;
948: raise INVALID_RECORD;
949: END IF;
950:
943: IF ( (nvl(loc.change_mode,'CORRECT') = 'UPDATE') and
944: loc.change_date is NULL ) THEN
945: fnd_message.set_name('PN', 'PN_CAFM_INVALID_CHANGE_DATE');
946: fnd_message.set_token('FIELD_NAME', 'Change Date');
947: l_error_message := fnd_message.get;
948: raise INVALID_RECORD;
949: END IF;
950:
951: --Used trunc() :Bug 6009957
953: ((loc.CHANGE_DATE < trunc(NVL(loc.new_active_start_date,
954: v_loc_rec.active_start_date))) OR
955: (loc.CHANGE_DATE > trunc(NVL(loc.new_active_end_date,
956: v_loc_rec.active_end_date)))) THEN
957: fnd_message.set_name('PN', 'PN_LOC_SPILT_DATE_MSG');
958: fnd_message.set_token('LOCATION_ID', loc.LOCATION_ID);
959: l_error_message := fnd_message.get;
960: raise INVALID_RECORD;
961: END IF;
954: v_loc_rec.active_start_date))) OR
955: (loc.CHANGE_DATE > trunc(NVL(loc.new_active_end_date,
956: v_loc_rec.active_end_date)))) THEN
957: fnd_message.set_name('PN', 'PN_LOC_SPILT_DATE_MSG');
958: fnd_message.set_token('LOCATION_ID', loc.LOCATION_ID);
959: l_error_message := fnd_message.get;
960: raise INVALID_RECORD;
961: END IF;
962:
955: (loc.CHANGE_DATE > trunc(NVL(loc.new_active_end_date,
956: v_loc_rec.active_end_date)))) THEN
957: fnd_message.set_name('PN', 'PN_LOC_SPILT_DATE_MSG');
958: fnd_message.set_token('LOCATION_ID', loc.LOCATION_ID);
959: l_error_message := fnd_message.get;
960: raise INVALID_RECORD;
961: END IF;
962:
963: put_log('Validate for Rentable area v/s Gross Area');
986: p_lkp_code => loc.LOCATION_TYPE_LOOKUP_CODE,
987: p_act_str_dt => l_active_start_date,
988: p_act_end_dt => l_active_end_date)
989: THEN
990: fnd_message.set_name('PN', 'PN_GROSS_RENTABLE');
991: fnd_message.set_token('LOCATION_ID', loc.location_id);
992: l_error_message := fnd_message.get;
993: raise INVALID_RECORD;
994: END IF;
987: p_act_str_dt => l_active_start_date,
988: p_act_end_dt => l_active_end_date)
989: THEN
990: fnd_message.set_name('PN', 'PN_GROSS_RENTABLE');
991: fnd_message.set_token('LOCATION_ID', loc.location_id);
992: l_error_message := fnd_message.get;
993: raise INVALID_RECORD;
994: END IF;
995:
988: p_act_end_dt => l_active_end_date)
989: THEN
990: fnd_message.set_name('PN', 'PN_GROSS_RENTABLE');
991: fnd_message.set_token('LOCATION_ID', loc.location_id);
992: l_error_message := fnd_message.get;
993: raise INVALID_RECORD;
994: END IF;
995:
996: ELSIF loc.LOCATION_TYPE_LOOKUP_CODE in ('BUILDING', 'LAND') AND
1002: p_lkp_code => loc.LOCATION_TYPE_LOOKUP_CODE,
1003: p_act_str_dt => l_active_start_date,
1004: p_act_end_dt => l_active_end_date)
1005: THEN
1006: fnd_message.set_name('PN', 'PN_GROSS_VALIDATE');
1007: fnd_message.set_token('LOCATION_ID', loc.location_id);
1008: l_error_message := fnd_message.get;
1009: raise INVALID_RECORD;
1010: END IF;
1003: p_act_str_dt => l_active_start_date,
1004: p_act_end_dt => l_active_end_date)
1005: THEN
1006: fnd_message.set_name('PN', 'PN_GROSS_VALIDATE');
1007: fnd_message.set_token('LOCATION_ID', loc.location_id);
1008: l_error_message := fnd_message.get;
1009: raise INVALID_RECORD;
1010: END IF;
1011:
1004: p_act_end_dt => l_active_end_date)
1005: THEN
1006: fnd_message.set_name('PN', 'PN_GROSS_VALIDATE');
1007: fnd_message.set_token('LOCATION_ID', loc.location_id);
1008: l_error_message := fnd_message.get;
1009: raise INVALID_RECORD;
1010: END IF;
1011:
1012: END IF;
1020: PNP_UTIL_FUNC.get_space_assigned_status(
1021: v_loc_rec.location_id,
1022: l_active_start_date))
1023: THEN
1024: fnd_message.set_name('PN', 'PN_ASSIGNMENTS_EXIST');
1025: fnd_message.set_token('LOCATION_ID', loc.location_id);
1026: l_error_message := fnd_message.get;
1027: raise INVALID_RECORD;
1028: END IF;
1021: v_loc_rec.location_id,
1022: l_active_start_date))
1023: THEN
1024: fnd_message.set_name('PN', 'PN_ASSIGNMENTS_EXIST');
1025: fnd_message.set_token('LOCATION_ID', loc.location_id);
1026: l_error_message := fnd_message.get;
1027: raise INVALID_RECORD;
1028: END IF;
1029:
1022: l_active_start_date))
1023: THEN
1024: fnd_message.set_name('PN', 'PN_ASSIGNMENTS_EXIST');
1025: fnd_message.set_token('LOCATION_ID', loc.location_id);
1026: l_error_message := fnd_message.get;
1027: raise INVALID_RECORD;
1028: END IF;
1029:
1030: ---------------------------------------
1149: );
1150: put_log( 'U: Just after Correct/Update');
1151:
1152: IF NOT ( l_returnStatus = FND_API.G_RET_STS_SUCCESS) THEN
1153: l_error_message := fnd_message.get;
1154: pnp_debug_pkg.put_log_msg(l_return_message);
1155: RAISE INVALID_RECORD;
1156: END IF;
1157:
1156: END IF;
1157:
1158: EXCEPTION
1159: WHEN No_Data_Found THEN
1160: fnd_message.set_name('PN', 'PN_CAFM_LOC_REC_NOT_FOUND_UPD');
1161: fnd_message.set_token('LOCATION_ID', loc.location_id);
1162: l_error_message := fnd_message.get;
1163: RAISE INVALID_RECORD;
1164:
1157:
1158: EXCEPTION
1159: WHEN No_Data_Found THEN
1160: fnd_message.set_name('PN', 'PN_CAFM_LOC_REC_NOT_FOUND_UPD');
1161: fnd_message.set_token('LOCATION_ID', loc.location_id);
1162: l_error_message := fnd_message.get;
1163: RAISE INVALID_RECORD;
1164:
1165: END;
1158: EXCEPTION
1159: WHEN No_Data_Found THEN
1160: fnd_message.set_name('PN', 'PN_CAFM_LOC_REC_NOT_FOUND_UPD');
1161: fnd_message.set_token('LOCATION_ID', loc.location_id);
1162: l_error_message := fnd_message.get;
1163: RAISE INVALID_RECORD;
1164:
1165: END;
1166:
1284:
1285: if (l_pn_locations_rec.assignable_area is null and
1286: l_pn_locations_rec.location_type_lookup_code in ('OFFICE','SECTION') and
1287: nvl(l_pn_locations_rec.common_area_flag,'N') = 'N') then
1288: fnd_message.set_name('PN','PN_CAFM_ASSIGNABLE_REQ');
1289: fnd_message.set_token('LOCATION_ID', l_pn_locations_rec.location_id);
1290: l_error_message := fnd_message.get;
1291: raise INVALID_RECORD;
1292: end if;
1285: if (l_pn_locations_rec.assignable_area is null and
1286: l_pn_locations_rec.location_type_lookup_code in ('OFFICE','SECTION') and
1287: nvl(l_pn_locations_rec.common_area_flag,'N') = 'N') then
1288: fnd_message.set_name('PN','PN_CAFM_ASSIGNABLE_REQ');
1289: fnd_message.set_token('LOCATION_ID', l_pn_locations_rec.location_id);
1290: l_error_message := fnd_message.get;
1291: raise INVALID_RECORD;
1292: end if;
1293:
1286: l_pn_locations_rec.location_type_lookup_code in ('OFFICE','SECTION') and
1287: nvl(l_pn_locations_rec.common_area_flag,'N') = 'N') then
1288: fnd_message.set_name('PN','PN_CAFM_ASSIGNABLE_REQ');
1289: fnd_message.set_token('LOCATION_ID', l_pn_locations_rec.location_id);
1290: l_error_message := fnd_message.get;
1291: raise INVALID_RECORD;
1292: end if;
1293:
1294: if (l_pn_locations_rec.common_area is null and
1293:
1294: if (l_pn_locations_rec.common_area is null and
1295: l_pn_locations_rec.location_type_lookup_code in ('OFFICE','SECTION') and
1296: l_pn_locations_rec.common_area_flag = 'Y') then
1297: fnd_message.set_name('PN','PN_CAFM_COMMON_AREA_REQ');
1298: fnd_message.set_token('LOCATION_ID', l_pn_locations_rec.location_id);
1299: l_error_message := fnd_message.get;
1300: raise INVALID_RECORD;
1301: end if;
1294: if (l_pn_locations_rec.common_area is null and
1295: l_pn_locations_rec.location_type_lookup_code in ('OFFICE','SECTION') and
1296: l_pn_locations_rec.common_area_flag = 'Y') then
1297: fnd_message.set_name('PN','PN_CAFM_COMMON_AREA_REQ');
1298: fnd_message.set_token('LOCATION_ID', l_pn_locations_rec.location_id);
1299: l_error_message := fnd_message.get;
1300: raise INVALID_RECORD;
1301: end if;
1302:
1295: l_pn_locations_rec.location_type_lookup_code in ('OFFICE','SECTION') and
1296: l_pn_locations_rec.common_area_flag = 'Y') then
1297: fnd_message.set_name('PN','PN_CAFM_COMMON_AREA_REQ');
1298: fnd_message.set_token('LOCATION_ID', l_pn_locations_rec.location_id);
1299: l_error_message := fnd_message.get;
1300: raise INVALID_RECORD;
1301: end if;
1302:
1303: if (l_pn_locations_rec.Common_Area is not null and
1327:
1328: IF NOT ( l_returnStatus = FND_API.G_RET_STS_SUCCESS) THEN
1329: put_log('R:Error in correctupdate_row ' || l_return_message);
1330: put_log(l_return_message);
1331: l_error_message := fnd_message.get;
1332: RAISE INVALID_RECORD;
1333: END IF;
1334:
1335: EXCEPTION
1333: END IF;
1334:
1335: EXCEPTION
1336: WHEN No_Data_Found THEN
1337: fnd_message.set_name('PN', 'PN_CAFM_LOC_REC_NOT_FOUND_UPD');
1338: fnd_message.set_token('LOCATION_ID', loc.location_id);
1339: l_error_message := fnd_message.get;
1340: RAISE INVALID_RECORD;
1341:
1334:
1335: EXCEPTION
1336: WHEN No_Data_Found THEN
1337: fnd_message.set_name('PN', 'PN_CAFM_LOC_REC_NOT_FOUND_UPD');
1338: fnd_message.set_token('LOCATION_ID', loc.location_id);
1339: l_error_message := fnd_message.get;
1340: RAISE INVALID_RECORD;
1341:
1342: END;
1335: EXCEPTION
1336: WHEN No_Data_Found THEN
1337: fnd_message.set_name('PN', 'PN_CAFM_LOC_REC_NOT_FOUND_UPD');
1338: fnd_message.set_token('LOCATION_ID', loc.location_id);
1339: l_error_message := fnd_message.get;
1340: RAISE INVALID_RECORD;
1341:
1342: END;
1343:
1399: COMMIT;
1400: END IF;
1401:
1402: IF (l_total = 0) THEN
1403: fnd_message.set_name ('PN', 'PN_CAFM_NO_LOC_REC_FOUND');
1404: errbuf := fnd_message.get;
1405: retcode := '2';
1406: put_line(errbuf);
1407:
1400: END IF;
1401:
1402: IF (l_total = 0) THEN
1403: fnd_message.set_name ('PN', 'PN_CAFM_NO_LOC_REC_FOUND');
1404: errbuf := fnd_message.get;
1405: retcode := '2';
1406: put_line(errbuf);
1407:
1408: ELSE
1410:
1411: Put_Log('
1412: =============== Summary ===============');
1413:
1414: fnd_message.set_name('PN', 'PN_CAFM_LOCATION_SUCCESS');
1415: fnd_message.set_token('SUCCESS', l_succ);
1416: put_line(fnd_message.get);
1417:
1418: fnd_message.set_name('PN', 'PN_CAFM_LOCATION_FAILURE');
1411: Put_Log('
1412: =============== Summary ===============');
1413:
1414: fnd_message.set_name('PN', 'PN_CAFM_LOCATION_SUCCESS');
1415: fnd_message.set_token('SUCCESS', l_succ);
1416: put_line(fnd_message.get);
1417:
1418: fnd_message.set_name('PN', 'PN_CAFM_LOCATION_FAILURE');
1419: fnd_message.set_token('FAILURE', l_fail);
1412: =============== Summary ===============');
1413:
1414: fnd_message.set_name('PN', 'PN_CAFM_LOCATION_SUCCESS');
1415: fnd_message.set_token('SUCCESS', l_succ);
1416: put_line(fnd_message.get);
1417:
1418: fnd_message.set_name('PN', 'PN_CAFM_LOCATION_FAILURE');
1419: fnd_message.set_token('FAILURE', l_fail);
1420: put_line(fnd_message.get);
1414: fnd_message.set_name('PN', 'PN_CAFM_LOCATION_SUCCESS');
1415: fnd_message.set_token('SUCCESS', l_succ);
1416: put_line(fnd_message.get);
1417:
1418: fnd_message.set_name('PN', 'PN_CAFM_LOCATION_FAILURE');
1419: fnd_message.set_token('FAILURE', l_fail);
1420: put_line(fnd_message.get);
1421:
1422: fnd_message.set_name('PN', 'PN_CAFM_LOCATION_TOTAL');
1415: fnd_message.set_token('SUCCESS', l_succ);
1416: put_line(fnd_message.get);
1417:
1418: fnd_message.set_name('PN', 'PN_CAFM_LOCATION_FAILURE');
1419: fnd_message.set_token('FAILURE', l_fail);
1420: put_line(fnd_message.get);
1421:
1422: fnd_message.set_name('PN', 'PN_CAFM_LOCATION_TOTAL');
1423: fnd_message.set_token('TOTAL', l_total);
1416: put_line(fnd_message.get);
1417:
1418: fnd_message.set_name('PN', 'PN_CAFM_LOCATION_FAILURE');
1419: fnd_message.set_token('FAILURE', l_fail);
1420: put_line(fnd_message.get);
1421:
1422: fnd_message.set_name('PN', 'PN_CAFM_LOCATION_TOTAL');
1423: fnd_message.set_token('TOTAL', l_total);
1424: put_line(fnd_message.get);
1418: fnd_message.set_name('PN', 'PN_CAFM_LOCATION_FAILURE');
1419: fnd_message.set_token('FAILURE', l_fail);
1420: put_line(fnd_message.get);
1421:
1422: fnd_message.set_name('PN', 'PN_CAFM_LOCATION_TOTAL');
1423: fnd_message.set_token('TOTAL', l_total);
1424: put_line(fnd_message.get);
1425:
1426: END IF;
1419: fnd_message.set_token('FAILURE', l_fail);
1420: put_line(fnd_message.get);
1421:
1422: fnd_message.set_name('PN', 'PN_CAFM_LOCATION_TOTAL');
1423: fnd_message.set_token('TOTAL', l_total);
1424: put_line(fnd_message.get);
1425:
1426: END IF;
1427:
1420: put_line(fnd_message.get);
1421:
1422: fnd_message.set_name('PN', 'PN_CAFM_LOCATION_TOTAL');
1423: fnd_message.set_token('TOTAL', l_total);
1424: put_line(fnd_message.get);
1425:
1426: END IF;
1427:
1428: PNP_DEBUG_PKG.disable_file_debug;
1429:
1430: EXCEPTION
1431: WHEN NO_DATA_FOUND THEN
1432: put_line('EXCEPTION: NO_DATA_FOUND');
1433: fnd_message.set_name ('PN', 'PN_NO_LOC_DATA_FOUND');
1434: errbuf := l_error_message;
1435: retcode := '2';
1436: put_line(errbuf);
1437: APP_EXCEPTION.raise_exception;
1439:
1440: WHEN OTHERS THEN
1441: put_line('EXCEPTION: OTHERS');
1442: If l_error_message is null then
1443: l_error_message := fnd_message.get;
1444: end if;
1445: pnp_debug_pkg.put_log_msg(l_error_message);
1446: errbuf := l_error_message;
1447: retcode := '2';
1756: -- Validate Entry Types
1757: -- Note that 'D' is no more a valid entry for space_allocations_itf.
1758: --------------------------------------------------------------------
1759: if (space.ENTRY_TYPE not in ('A', 'U', 'R')) then
1760: fnd_message.set_name('PN', 'PN_CAFM_SPACE_ENTRY_TYPE');
1761: fnd_message.set_token('SPACE_ALLOCATION_ID', space.EMP_SPACE_ASSIGN_ID);
1762: l_error_message := fnd_message.get;
1763: raise INVALID_RECORD;
1764: end if;
1757: -- Note that 'D' is no more a valid entry for space_allocations_itf.
1758: --------------------------------------------------------------------
1759: if (space.ENTRY_TYPE not in ('A', 'U', 'R')) then
1760: fnd_message.set_name('PN', 'PN_CAFM_SPACE_ENTRY_TYPE');
1761: fnd_message.set_token('SPACE_ALLOCATION_ID', space.EMP_SPACE_ASSIGN_ID);
1762: l_error_message := fnd_message.get;
1763: raise INVALID_RECORD;
1764: end if;
1765:
1758: --------------------------------------------------------------------
1759: if (space.ENTRY_TYPE not in ('A', 'U', 'R')) then
1760: fnd_message.set_name('PN', 'PN_CAFM_SPACE_ENTRY_TYPE');
1761: fnd_message.set_token('SPACE_ALLOCATION_ID', space.EMP_SPACE_ASSIGN_ID);
1762: l_error_message := fnd_message.get;
1763: raise INVALID_RECORD;
1764: end if;
1765:
1766: /*--------------------------------------------------------------
1792: --------------------------------------
1793: -- Validate SOURCE
1794: --------------------------------------
1795: if (NOT PNP_UTIL_FUNC.valid_lookup_code( 'PN_SOURCE', space.SOURCE)) then
1796: fnd_message.set_name('PN', 'PN_CAFM_SPACE_SOURCE');
1797: fnd_message.set_token('SPACE_ALLOCATION_ID', space.EMP_SPACE_ASSIGN_ID);
1798: l_error_message := fnd_message.get;
1799: raise INVALID_RECORD;
1800: end if;
1793: -- Validate SOURCE
1794: --------------------------------------
1795: if (NOT PNP_UTIL_FUNC.valid_lookup_code( 'PN_SOURCE', space.SOURCE)) then
1796: fnd_message.set_name('PN', 'PN_CAFM_SPACE_SOURCE');
1797: fnd_message.set_token('SPACE_ALLOCATION_ID', space.EMP_SPACE_ASSIGN_ID);
1798: l_error_message := fnd_message.get;
1799: raise INVALID_RECORD;
1800: end if;
1801:
1794: --------------------------------------
1795: if (NOT PNP_UTIL_FUNC.valid_lookup_code( 'PN_SOURCE', space.SOURCE)) then
1796: fnd_message.set_name('PN', 'PN_CAFM_SPACE_SOURCE');
1797: fnd_message.set_token('SPACE_ALLOCATION_ID', space.EMP_SPACE_ASSIGN_ID);
1798: l_error_message := fnd_message.get;
1799: raise INVALID_RECORD;
1800: end if;
1801:
1802: put_log('Validate Location_Id');
1803: --------------------------------------
1804: -- Validate LOCATION_ID
1805: --------------------------------------
1806: if (NOT PNP_UTIL_FUNC.valid_location(space.LOCATION_ID)) then
1807: fnd_message.set_name('PN', 'PN_CAFM_SPACE_INVALID_LOCATION');
1808: fnd_message.set_token('SPACE_ALLOCATION_ID', space.EMP_SPACE_ASSIGN_ID);
1809: l_error_message := fnd_message.get;
1810: raise INVALID_RECORD;
1811: end if;
1804: -- Validate LOCATION_ID
1805: --------------------------------------
1806: if (NOT PNP_UTIL_FUNC.valid_location(space.LOCATION_ID)) then
1807: fnd_message.set_name('PN', 'PN_CAFM_SPACE_INVALID_LOCATION');
1808: fnd_message.set_token('SPACE_ALLOCATION_ID', space.EMP_SPACE_ASSIGN_ID);
1809: l_error_message := fnd_message.get;
1810: raise INVALID_RECORD;
1811: end if;
1812:
1805: --------------------------------------
1806: if (NOT PNP_UTIL_FUNC.valid_location(space.LOCATION_ID)) then
1807: fnd_message.set_name('PN', 'PN_CAFM_SPACE_INVALID_LOCATION');
1808: fnd_message.set_token('SPACE_ALLOCATION_ID', space.EMP_SPACE_ASSIGN_ID);
1809: l_error_message := fnd_message.get;
1810: raise INVALID_RECORD;
1811: end if;
1812:
1813: /*-- For PERSON_ID, COST_CENTER_CODE validations,
1830: -- Situation (1) above.
1831: --------------------------------------
1832: if (space.employee_id is NULL) and
1833: (space.COST_CENTER_CODE is NULL) then
1834: fnd_message.set_name('PN', 'PN_CAFM_SPACE_EMP_ID_CC_CODE_1');
1835: fnd_message.set_token('SPACE_ALLOCATION_ID', space.EMP_SPACE_ASSIGN_ID);
1836: l_error_message := fnd_message.get;
1837: raise INVALID_RECORD;
1838: end if;
1831: --------------------------------------
1832: if (space.employee_id is NULL) and
1833: (space.COST_CENTER_CODE is NULL) then
1834: fnd_message.set_name('PN', 'PN_CAFM_SPACE_EMP_ID_CC_CODE_1');
1835: fnd_message.set_token('SPACE_ALLOCATION_ID', space.EMP_SPACE_ASSIGN_ID);
1836: l_error_message := fnd_message.get;
1837: raise INVALID_RECORD;
1838: end if;
1839:
1832: if (space.employee_id is NULL) and
1833: (space.COST_CENTER_CODE is NULL) then
1834: fnd_message.set_name('PN', 'PN_CAFM_SPACE_EMP_ID_CC_CODE_1');
1835: fnd_message.set_token('SPACE_ALLOCATION_ID', space.EMP_SPACE_ASSIGN_ID);
1836: l_error_message := fnd_message.get;
1837: raise INVALID_RECORD;
1838: end if;
1839:
1840:
1845: if (space.employee_id is NOT NULL) and
1846: (space.COST_CENTER_CODE is NOT NULL) then
1847:
1848: if (NOT PNP_UTIL_FUNC.valid_employee(space.employee_id)) then
1849: fnd_message.set_name('PN', 'PN_CAFM_SPACE_EMP_ID_CC_CODE3B');
1850: fnd_message.set_token('SPACE_ALLOCATION_ID', space.EMP_SPACE_ASSIGN_ID);
1851: fnd_message.set_token('PERSON_ID', space.employee_id);
1852: l_error_message := fnd_message.get;
1853: end if;
1846: (space.COST_CENTER_CODE is NOT NULL) then
1847:
1848: if (NOT PNP_UTIL_FUNC.valid_employee(space.employee_id)) then
1849: fnd_message.set_name('PN', 'PN_CAFM_SPACE_EMP_ID_CC_CODE3B');
1850: fnd_message.set_token('SPACE_ALLOCATION_ID', space.EMP_SPACE_ASSIGN_ID);
1851: fnd_message.set_token('PERSON_ID', space.employee_id);
1852: l_error_message := fnd_message.get;
1853: end if;
1854:
1847:
1848: if (NOT PNP_UTIL_FUNC.valid_employee(space.employee_id)) then
1849: fnd_message.set_name('PN', 'PN_CAFM_SPACE_EMP_ID_CC_CODE3B');
1850: fnd_message.set_token('SPACE_ALLOCATION_ID', space.EMP_SPACE_ASSIGN_ID);
1851: fnd_message.set_token('PERSON_ID', space.employee_id);
1852: l_error_message := fnd_message.get;
1853: end if;
1854:
1855: if (NOT PNP_UTIL_FUNC.valid_cost_center(space.COST_CENTER_CODE,l_org_id)) then
1848: if (NOT PNP_UTIL_FUNC.valid_employee(space.employee_id)) then
1849: fnd_message.set_name('PN', 'PN_CAFM_SPACE_EMP_ID_CC_CODE3B');
1850: fnd_message.set_token('SPACE_ALLOCATION_ID', space.EMP_SPACE_ASSIGN_ID);
1851: fnd_message.set_token('PERSON_ID', space.employee_id);
1852: l_error_message := fnd_message.get;
1853: end if;
1854:
1855: if (NOT PNP_UTIL_FUNC.valid_cost_center(space.COST_CENTER_CODE,l_org_id)) then
1856: fnd_message.set_name('PN', 'PN_CAFM_SPACE_EMP_ID_CC_CODE_4');
1852: l_error_message := fnd_message.get;
1853: end if;
1854:
1855: if (NOT PNP_UTIL_FUNC.valid_cost_center(space.COST_CENTER_CODE,l_org_id)) then
1856: fnd_message.set_name('PN', 'PN_CAFM_SPACE_EMP_ID_CC_CODE_4');
1857: fnd_message.set_token('SPACE_ALLOCATION_ID', space.EMP_SPACE_ASSIGN_ID);
1858: fnd_message.set_token('COST_CENTER_CODE', space.cost_center_code);
1859: l_error_message := fnd_message.get;
1860: raise INVALID_RECORD;
1853: end if;
1854:
1855: if (NOT PNP_UTIL_FUNC.valid_cost_center(space.COST_CENTER_CODE,l_org_id)) then
1856: fnd_message.set_name('PN', 'PN_CAFM_SPACE_EMP_ID_CC_CODE_4');
1857: fnd_message.set_token('SPACE_ALLOCATION_ID', space.EMP_SPACE_ASSIGN_ID);
1858: fnd_message.set_token('COST_CENTER_CODE', space.cost_center_code);
1859: l_error_message := fnd_message.get;
1860: raise INVALID_RECORD;
1861: end if;
1854:
1855: if (NOT PNP_UTIL_FUNC.valid_cost_center(space.COST_CENTER_CODE,l_org_id)) then
1856: fnd_message.set_name('PN', 'PN_CAFM_SPACE_EMP_ID_CC_CODE_4');
1857: fnd_message.set_token('SPACE_ALLOCATION_ID', space.EMP_SPACE_ASSIGN_ID);
1858: fnd_message.set_token('COST_CENTER_CODE', space.cost_center_code);
1859: l_error_message := fnd_message.get;
1860: raise INVALID_RECORD;
1861: end if;
1862:
1855: if (NOT PNP_UTIL_FUNC.valid_cost_center(space.COST_CENTER_CODE,l_org_id)) then
1856: fnd_message.set_name('PN', 'PN_CAFM_SPACE_EMP_ID_CC_CODE_4');
1857: fnd_message.set_token('SPACE_ALLOCATION_ID', space.EMP_SPACE_ASSIGN_ID);
1858: fnd_message.set_token('COST_CENTER_CODE', space.cost_center_code);
1859: l_error_message := fnd_message.get;
1860: raise INVALID_RECORD;
1861: end if;
1862:
1863:
1872: if (PNP_UTIL_FUNC.valid_employee(space.employee_id)) then
1873: space.COST_CENTER_CODE := PNP_UTIL_FUNC.get_cc_code(space.employee_id,l_org_id);
1874: Put_Log('Cost_Center_Code of Employee: ' || space.COST_CENTER_CODE);
1875: if (space.COST_CENTER_CODE is NULL) then
1876: fnd_message.set_name('PN', 'PN_CAFM_SPACE_EMP_ID_CC_CODE3A');
1877: fnd_message.set_token('SPACE_ALLOCATION_ID', space.EMP_SPACE_ASSIGN_ID);
1878: fnd_message.set_token('PERSON_ID', space.employee_id);
1879: l_error_message := fnd_message.get;
1880: raise INVALID_RECORD;
1873: space.COST_CENTER_CODE := PNP_UTIL_FUNC.get_cc_code(space.employee_id,l_org_id);
1874: Put_Log('Cost_Center_Code of Employee: ' || space.COST_CENTER_CODE);
1875: if (space.COST_CENTER_CODE is NULL) then
1876: fnd_message.set_name('PN', 'PN_CAFM_SPACE_EMP_ID_CC_CODE3A');
1877: fnd_message.set_token('SPACE_ALLOCATION_ID', space.EMP_SPACE_ASSIGN_ID);
1878: fnd_message.set_token('PERSON_ID', space.employee_id);
1879: l_error_message := fnd_message.get;
1880: raise INVALID_RECORD;
1881: end if;
1874: Put_Log('Cost_Center_Code of Employee: ' || space.COST_CENTER_CODE);
1875: if (space.COST_CENTER_CODE is NULL) then
1876: fnd_message.set_name('PN', 'PN_CAFM_SPACE_EMP_ID_CC_CODE3A');
1877: fnd_message.set_token('SPACE_ALLOCATION_ID', space.EMP_SPACE_ASSIGN_ID);
1878: fnd_message.set_token('PERSON_ID', space.employee_id);
1879: l_error_message := fnd_message.get;
1880: raise INVALID_RECORD;
1881: end if;
1882: else -- Invalid Employee --
1875: if (space.COST_CENTER_CODE is NULL) then
1876: fnd_message.set_name('PN', 'PN_CAFM_SPACE_EMP_ID_CC_CODE3A');
1877: fnd_message.set_token('SPACE_ALLOCATION_ID', space.EMP_SPACE_ASSIGN_ID);
1878: fnd_message.set_token('PERSON_ID', space.employee_id);
1879: l_error_message := fnd_message.get;
1880: raise INVALID_RECORD;
1881: end if;
1882: else -- Invalid Employee --
1883: fnd_message.set_name('PN', 'PN_CAFM_SPACE_EMP_ID_CC_CODE3B');
1879: l_error_message := fnd_message.get;
1880: raise INVALID_RECORD;
1881: end if;
1882: else -- Invalid Employee --
1883: fnd_message.set_name('PN', 'PN_CAFM_SPACE_EMP_ID_CC_CODE3B');
1884: fnd_message.set_token('SPACE_ALLOCATION_ID', space.EMP_SPACE_ASSIGN_ID);
1885: fnd_message.set_token('PERSON_ID', space.employee_id);
1886: l_error_message := fnd_message.get;
1887: raise INVALID_RECORD;
1880: raise INVALID_RECORD;
1881: end if;
1882: else -- Invalid Employee --
1883: fnd_message.set_name('PN', 'PN_CAFM_SPACE_EMP_ID_CC_CODE3B');
1884: fnd_message.set_token('SPACE_ALLOCATION_ID', space.EMP_SPACE_ASSIGN_ID);
1885: fnd_message.set_token('PERSON_ID', space.employee_id);
1886: l_error_message := fnd_message.get;
1887: raise INVALID_RECORD;
1888: end if;
1881: end if;
1882: else -- Invalid Employee --
1883: fnd_message.set_name('PN', 'PN_CAFM_SPACE_EMP_ID_CC_CODE3B');
1884: fnd_message.set_token('SPACE_ALLOCATION_ID', space.EMP_SPACE_ASSIGN_ID);
1885: fnd_message.set_token('PERSON_ID', space.employee_id);
1886: l_error_message := fnd_message.get;
1887: raise INVALID_RECORD;
1888: end if;
1889: end if;
1882: else -- Invalid Employee --
1883: fnd_message.set_name('PN', 'PN_CAFM_SPACE_EMP_ID_CC_CODE3B');
1884: fnd_message.set_token('SPACE_ALLOCATION_ID', space.EMP_SPACE_ASSIGN_ID);
1885: fnd_message.set_token('PERSON_ID', space.employee_id);
1886: l_error_message := fnd_message.get;
1887: raise INVALID_RECORD;
1888: end if;
1889: end if;
1890:
1894: --------------------------------------
1895: if (space.employee_id is NULL) and
1896: ( space.COST_CENTER_CODE is NOT NULL) then
1897: if (NOT PNP_UTIL_FUNC.valid_cost_center(space.COST_CENTER_CODE,l_org_id)) then
1898: fnd_message.set_name('PN', 'PN_CAFM_SPACE_EMP_ID_CC_CODE_4');
1899: fnd_message.set_token('SPACE_ALLOCATION_ID', space.EMP_SPACE_ASSIGN_ID);
1900: fnd_message.set_token('COST_CENTER_CODE', space.cost_center_code);
1901: l_error_message := fnd_message.get;
1902: raise INVALID_RECORD;
1895: if (space.employee_id is NULL) and
1896: ( space.COST_CENTER_CODE is NOT NULL) then
1897: if (NOT PNP_UTIL_FUNC.valid_cost_center(space.COST_CENTER_CODE,l_org_id)) then
1898: fnd_message.set_name('PN', 'PN_CAFM_SPACE_EMP_ID_CC_CODE_4');
1899: fnd_message.set_token('SPACE_ALLOCATION_ID', space.EMP_SPACE_ASSIGN_ID);
1900: fnd_message.set_token('COST_CENTER_CODE', space.cost_center_code);
1901: l_error_message := fnd_message.get;
1902: raise INVALID_RECORD;
1903: end if;
1896: ( space.COST_CENTER_CODE is NOT NULL) then
1897: if (NOT PNP_UTIL_FUNC.valid_cost_center(space.COST_CENTER_CODE,l_org_id)) then
1898: fnd_message.set_name('PN', 'PN_CAFM_SPACE_EMP_ID_CC_CODE_4');
1899: fnd_message.set_token('SPACE_ALLOCATION_ID', space.EMP_SPACE_ASSIGN_ID);
1900: fnd_message.set_token('COST_CENTER_CODE', space.cost_center_code);
1901: l_error_message := fnd_message.get;
1902: raise INVALID_RECORD;
1903: end if;
1904: end if;
1897: if (NOT PNP_UTIL_FUNC.valid_cost_center(space.COST_CENTER_CODE,l_org_id)) then
1898: fnd_message.set_name('PN', 'PN_CAFM_SPACE_EMP_ID_CC_CODE_4');
1899: fnd_message.set_token('SPACE_ALLOCATION_ID', space.EMP_SPACE_ASSIGN_ID);
1900: fnd_message.set_token('COST_CENTER_CODE', space.cost_center_code);
1901: l_error_message := fnd_message.get;
1902: raise INVALID_RECORD;
1903: end if;
1904: end if;
1905:
1906: --------------------------------------------------------
1907: -- Check if Start Date is NULL
1908: --------------------------------------------------------
1909: If ( space.EMP_ASSIGN_START_DATE IS NULL AND space.entry_type IN ('A', 'U')) Then
1910: fnd_message.set_name('PN', 'PN_SPACE_EMP_START_DATE_NULL');
1911: fnd_message.set_token('SPACE_ALLOCATION_ID', space.EMP_SPACE_ASSIGN_ID);
1912: l_error_message := fnd_message.get;
1913: raise INVALID_RECORD;
1914: End If;
1907: -- Check if Start Date is NULL
1908: --------------------------------------------------------
1909: If ( space.EMP_ASSIGN_START_DATE IS NULL AND space.entry_type IN ('A', 'U')) Then
1910: fnd_message.set_name('PN', 'PN_SPACE_EMP_START_DATE_NULL');
1911: fnd_message.set_token('SPACE_ALLOCATION_ID', space.EMP_SPACE_ASSIGN_ID);
1912: l_error_message := fnd_message.get;
1913: raise INVALID_RECORD;
1914: End If;
1915:
1908: --------------------------------------------------------
1909: If ( space.EMP_ASSIGN_START_DATE IS NULL AND space.entry_type IN ('A', 'U')) Then
1910: fnd_message.set_name('PN', 'PN_SPACE_EMP_START_DATE_NULL');
1911: fnd_message.set_token('SPACE_ALLOCATION_ID', space.EMP_SPACE_ASSIGN_ID);
1912: l_error_message := fnd_message.get;
1913: raise INVALID_RECORD;
1914: End If;
1915:
1916: --------------------------------------------------------
1919: If ( space.EMP_ASSIGN_START_DATE IS NOT NULL ) Then
1920: if ( space.EMP_ASSIGN_START_DATE >
1921: NVL( space.emp_assign_end_date,
1922: NVL(tlempinfo.emp_assign_end_date, to_date('12/31/4712','mm/dd/yyyy'))) ) then
1923: fnd_message.set_name('PN', 'PN_SPACE_ASSIGN_EMP_END_DT');
1924: fnd_message.set_token('SPACE_ALLOCATION_ID', space.EMP_SPACE_ASSIGN_ID);
1925: l_error_message := fnd_message.get;
1926: raise INVALID_RECORD;
1927: end if;
1920: if ( space.EMP_ASSIGN_START_DATE >
1921: NVL( space.emp_assign_end_date,
1922: NVL(tlempinfo.emp_assign_end_date, to_date('12/31/4712','mm/dd/yyyy'))) ) then
1923: fnd_message.set_name('PN', 'PN_SPACE_ASSIGN_EMP_END_DT');
1924: fnd_message.set_token('SPACE_ALLOCATION_ID', space.EMP_SPACE_ASSIGN_ID);
1925: l_error_message := fnd_message.get;
1926: raise INVALID_RECORD;
1927: end if;
1928: End If;
1921: NVL( space.emp_assign_end_date,
1922: NVL(tlempinfo.emp_assign_end_date, to_date('12/31/4712','mm/dd/yyyy'))) ) then
1923: fnd_message.set_name('PN', 'PN_SPACE_ASSIGN_EMP_END_DT');
1924: fnd_message.set_token('SPACE_ALLOCATION_ID', space.EMP_SPACE_ASSIGN_ID);
1925: l_error_message := fnd_message.get;
1926: raise INVALID_RECORD;
1927: end if;
1928: End If;
1929:
1933: -----------------------------------------------------------------------
1934: -- Check if Allocated_Area is NOT NULL in case of AUTO SPACE ASSIGNMENT
1935: -----------------------------------------------------------------------
1936: If (space.allocated_area IS NOT NULL) Then
1937: fnd_message.set_name('PN', 'PN_CAFM_SPACE_NOT_NULL_AREA');
1938: fnd_message.set_token('SPACE_ALLOCATION_ID', space.EMP_SPACE_ASSIGN_ID);
1939: l_error_message := fnd_message.get;
1940: raise INVALID_RECORD;
1941: End If;
1934: -- Check if Allocated_Area is NOT NULL in case of AUTO SPACE ASSIGNMENT
1935: -----------------------------------------------------------------------
1936: If (space.allocated_area IS NOT NULL) Then
1937: fnd_message.set_name('PN', 'PN_CAFM_SPACE_NOT_NULL_AREA');
1938: fnd_message.set_token('SPACE_ALLOCATION_ID', space.EMP_SPACE_ASSIGN_ID);
1939: l_error_message := fnd_message.get;
1940: raise INVALID_RECORD;
1941: End If;
1942:
1935: -----------------------------------------------------------------------
1936: If (space.allocated_area IS NOT NULL) Then
1937: fnd_message.set_name('PN', 'PN_CAFM_SPACE_NOT_NULL_AREA');
1938: fnd_message.set_token('SPACE_ALLOCATION_ID', space.EMP_SPACE_ASSIGN_ID);
1939: l_error_message := fnd_message.get;
1940: raise INVALID_RECORD;
1941: End If;
1942:
1943: Else -- PN_AUTOMATIC_SPACE_DISTRIBUTION='N' -- Manual Space Distribution
1951: pnp_util_func.get_location_type_lookup_code(
1952: p_location_id => space.location_id,
1953: p_as_of_date => space.emp_assign_start_date) IN ('OFFICE','SECTION')
1954: Then
1955: fnd_message.set_name('PN', 'PN_CAFM_SPACE_NULL_AREA');
1956: fnd_message.set_token('SPACE_ALLOCATION_ID', space.EMP_SPACE_ASSIGN_ID);
1957: l_error_message := fnd_message.get;
1958: raise INVALID_RECORD;
1959:
1952: p_location_id => space.location_id,
1953: p_as_of_date => space.emp_assign_start_date) IN ('OFFICE','SECTION')
1954: Then
1955: fnd_message.set_name('PN', 'PN_CAFM_SPACE_NULL_AREA');
1956: fnd_message.set_token('SPACE_ALLOCATION_ID', space.EMP_SPACE_ASSIGN_ID);
1957: l_error_message := fnd_message.get;
1958: raise INVALID_RECORD;
1959:
1960: Elsif (space.allocated_area IS NOT NULL) AND
1953: p_as_of_date => space.emp_assign_start_date) IN ('OFFICE','SECTION')
1954: Then
1955: fnd_message.set_name('PN', 'PN_CAFM_SPACE_NULL_AREA');
1956: fnd_message.set_token('SPACE_ALLOCATION_ID', space.EMP_SPACE_ASSIGN_ID);
1957: l_error_message := fnd_message.get;
1958: raise INVALID_RECORD;
1959:
1960: Elsif (space.allocated_area IS NOT NULL) AND
1961: (space.entry_type IN ('A','U')) AND
1962: pnp_util_func.get_location_type_lookup_code(
1963: p_location_id => space.location_id,
1964: p_as_of_date => space.emp_assign_start_date) NOT IN ('OFFICE','SECTION')
1965: Then
1966: fnd_message.set_name('PN', 'PN_CAFM_SPACE_NOT_NULL_AREA');
1967: fnd_message.set_token('SPACE_ALLOCATION_ID', space.EMP_SPACE_ASSIGN_ID);
1968: l_error_message := fnd_message.get;
1969: raise INVALID_RECORD;
1970:
1963: p_location_id => space.location_id,
1964: p_as_of_date => space.emp_assign_start_date) NOT IN ('OFFICE','SECTION')
1965: Then
1966: fnd_message.set_name('PN', 'PN_CAFM_SPACE_NOT_NULL_AREA');
1967: fnd_message.set_token('SPACE_ALLOCATION_ID', space.EMP_SPACE_ASSIGN_ID);
1968: l_error_message := fnd_message.get;
1969: raise INVALID_RECORD;
1970:
1971: End If;
1964: p_as_of_date => space.emp_assign_start_date) NOT IN ('OFFICE','SECTION')
1965: Then
1966: fnd_message.set_name('PN', 'PN_CAFM_SPACE_NOT_NULL_AREA');
1967: fnd_message.set_token('SPACE_ALLOCATION_ID', space.EMP_SPACE_ASSIGN_ID);
1968: l_error_message := fnd_message.get;
1969: raise INVALID_RECORD;
1970:
1971: End If;
1972:
1999: p_available_vacant_area => l_available_vacant_area );
2000: put_log('*** DONE PNP_UTIL_FUNC.validate_vacant_area ***');
2001:
2002: IF (l_assignable_area = -99) THEN
2003: l_error_message := fnd_message.get;
2004: raise INVALID_RECORD;
2005: END IF;
2006:
2007:
2020: date of all future dated assignments for this location.' );
2021: end if;
2022:
2023: Else
2024: fnd_message.set_name('PN', 'PN_CAFM_SPACE_INVALID_AREA');
2025: fnd_message.set_token('LOCATION_ID', space.LOCATION_ID);
2026: fnd_message.set_token('SPACE_ALLOCATION_ID', space.EMP_SPACE_ASSIGN_ID);
2027: l_error_message := fnd_message.get;
2028: raise INVALID_RECORD;
2021: end if;
2022:
2023: Else
2024: fnd_message.set_name('PN', 'PN_CAFM_SPACE_INVALID_AREA');
2025: fnd_message.set_token('LOCATION_ID', space.LOCATION_ID);
2026: fnd_message.set_token('SPACE_ALLOCATION_ID', space.EMP_SPACE_ASSIGN_ID);
2027: l_error_message := fnd_message.get;
2028: raise INVALID_RECORD;
2029:
2022:
2023: Else
2024: fnd_message.set_name('PN', 'PN_CAFM_SPACE_INVALID_AREA');
2025: fnd_message.set_token('LOCATION_ID', space.LOCATION_ID);
2026: fnd_message.set_token('SPACE_ALLOCATION_ID', space.EMP_SPACE_ASSIGN_ID);
2027: l_error_message := fnd_message.get;
2028: raise INVALID_RECORD;
2029:
2030: End If;
2023: Else
2024: fnd_message.set_name('PN', 'PN_CAFM_SPACE_INVALID_AREA');
2025: fnd_message.set_token('LOCATION_ID', space.LOCATION_ID);
2026: fnd_message.set_token('SPACE_ALLOCATION_ID', space.EMP_SPACE_ASSIGN_ID);
2027: l_error_message := fnd_message.get;
2028: raise INVALID_RECORD;
2029:
2030: End If;
2031:
2034: put_log('***Check if project_id and task_id are valid*****');
2035:
2036: IF (space.project_id IS NULL) THEN
2037: IF(space.task_id IS NOT NULL) THEN
2038: fnd_message.set_name('PN', 'PN_CAFM_TASK_PROJECT');
2039: fnd_message.set_token('TASK_ID', space.TASK_ID);
2040: l_error_message := fnd_message.get;
2041: RAISE INVALID_RECORD;
2042: END IF;
2035:
2036: IF (space.project_id IS NULL) THEN
2037: IF(space.task_id IS NOT NULL) THEN
2038: fnd_message.set_name('PN', 'PN_CAFM_TASK_PROJECT');
2039: fnd_message.set_token('TASK_ID', space.TASK_ID);
2040: l_error_message := fnd_message.get;
2041: RAISE INVALID_RECORD;
2042: END IF;
2043: ELSE
2036: IF (space.project_id IS NULL) THEN
2037: IF(space.task_id IS NOT NULL) THEN
2038: fnd_message.set_name('PN', 'PN_CAFM_TASK_PROJECT');
2039: fnd_message.set_token('TASK_ID', space.TASK_ID);
2040: l_error_message := fnd_message.get;
2041: RAISE INVALID_RECORD;
2042: END IF;
2043: ELSE
2044: l_project_valid := FALSE;
2054: END IF;
2055: END LOOP;
2056:
2057: IF l_task_valid = FALSE THEN
2058: fnd_message.set_name('PN', 'PN_CAFM_TASK');
2059: fnd_message.set_token('PROJECT_ID', space.PROJECT_ID);
2060: fnd_message.set_token('TASK_ID', space.TASK_ID);
2061: l_error_message := fnd_message.get;
2062: raise INVALID_RECORD;
2055: END LOOP;
2056:
2057: IF l_task_valid = FALSE THEN
2058: fnd_message.set_name('PN', 'PN_CAFM_TASK');
2059: fnd_message.set_token('PROJECT_ID', space.PROJECT_ID);
2060: fnd_message.set_token('TASK_ID', space.TASK_ID);
2061: l_error_message := fnd_message.get;
2062: raise INVALID_RECORD;
2063: END IF;
2056:
2057: IF l_task_valid = FALSE THEN
2058: fnd_message.set_name('PN', 'PN_CAFM_TASK');
2059: fnd_message.set_token('PROJECT_ID', space.PROJECT_ID);
2060: fnd_message.set_token('TASK_ID', space.TASK_ID);
2061: l_error_message := fnd_message.get;
2062: raise INVALID_RECORD;
2063: END IF;
2064: END IF;
2057: IF l_task_valid = FALSE THEN
2058: fnd_message.set_name('PN', 'PN_CAFM_TASK');
2059: fnd_message.set_token('PROJECT_ID', space.PROJECT_ID);
2060: fnd_message.set_token('TASK_ID', space.TASK_ID);
2061: l_error_message := fnd_message.get;
2062: raise INVALID_RECORD;
2063: END IF;
2064: END IF;
2065: END IF;
2065: END IF;
2066: END LOOP;
2067:
2068: IF l_project_valid = FALSE THEN
2069: fnd_message.set_name('PN', 'PN_CAFM_PROJECT');
2070: fnd_message.set_token('PROJECT_ID', space.PROJECT_ID);
2071: l_error_message := fnd_message.get;
2072: raise INVALID_RECORD;
2073: END IF;
2066: END LOOP;
2067:
2068: IF l_project_valid = FALSE THEN
2069: fnd_message.set_name('PN', 'PN_CAFM_PROJECT');
2070: fnd_message.set_token('PROJECT_ID', space.PROJECT_ID);
2071: l_error_message := fnd_message.get;
2072: raise INVALID_RECORD;
2073: END IF;
2074: END IF;
2067:
2068: IF l_project_valid = FALSE THEN
2069: fnd_message.set_name('PN', 'PN_CAFM_PROJECT');
2070: fnd_message.set_token('PROJECT_ID', space.PROJECT_ID);
2071: l_error_message := fnd_message.get;
2072: raise INVALID_RECORD;
2073: END IF;
2074: END IF;
2075:
2090: x_return_message => l_return_message
2091: );
2092:
2093: IF NOT( l_return_status = FND_API.G_RET_STS_SUCCESS) THEN
2094: fnd_message.set_name('PN', 'PN_INVALID_SPACE_ASSGN_DATE');
2095: l_error_message := fnd_message.get;
2096: raise INVALID_RECORD; --Bug5515198
2097: END IF;
2098:
2091: );
2092:
2093: IF NOT( l_return_status = FND_API.G_RET_STS_SUCCESS) THEN
2094: fnd_message.set_name('PN', 'PN_INVALID_SPACE_ASSGN_DATE');
2095: l_error_message := fnd_message.get;
2096: raise INVALID_RECORD; --Bug5515198
2097: END IF;
2098:
2099:
2151: if ( NVL( space.change_mode, 'CORRECT' ) = 'UPDATE' ) then
2152: if ( nvl(space.change_date, trunc(SYSDATE)) < tlempinfo.emp_assign_start_date OR
2153: nvl(space.change_date, trunc(SYSDATE)) > NVL(tlempinfo.emp_assign_end_date,
2154: to_date('12/31/4712','mm/dd/yyyy')) ) then
2155: fnd_message.set_name('PN', 'PN_CAFM_SPACE_UNABLE_TO_UPD');
2156: fnd_message.set_token('SPACE_ALLOCATION_ID', space.EMP_SPACE_ASSIGN_ID);
2157: l_error_message := fnd_message.get;
2158: Raise INVALID_RECORD;
2159: end if;
2152: if ( nvl(space.change_date, trunc(SYSDATE)) < tlempinfo.emp_assign_start_date OR
2153: nvl(space.change_date, trunc(SYSDATE)) > NVL(tlempinfo.emp_assign_end_date,
2154: to_date('12/31/4712','mm/dd/yyyy')) ) then
2155: fnd_message.set_name('PN', 'PN_CAFM_SPACE_UNABLE_TO_UPD');
2156: fnd_message.set_token('SPACE_ALLOCATION_ID', space.EMP_SPACE_ASSIGN_ID);
2157: l_error_message := fnd_message.get;
2158: Raise INVALID_RECORD;
2159: end if;
2160:
2153: nvl(space.change_date, trunc(SYSDATE)) > NVL(tlempinfo.emp_assign_end_date,
2154: to_date('12/31/4712','mm/dd/yyyy')) ) then
2155: fnd_message.set_name('PN', 'PN_CAFM_SPACE_UNABLE_TO_UPD');
2156: fnd_message.set_token('SPACE_ALLOCATION_ID', space.EMP_SPACE_ASSIGN_ID);
2157: l_error_message := fnd_message.get;
2158: Raise INVALID_RECORD;
2159: end if;
2160:
2161: space.emp_assign_start_date := NVL( space.change_date, SYSDATE );
2174: x_return_message => l_return_message
2175: );
2176:
2177: IF NOT( l_return_status = FND_API.G_RET_STS_SUCCESS) THEN
2178: fnd_message.set_name('PN', 'PN_INVALID_SPACE_ASSGN_DATE');
2179: l_error_message := fnd_message.get;
2180: raise INVALID_RECORD; --Bug5515198
2181: END IF;
2182:
2175: );
2176:
2177: IF NOT( l_return_status = FND_API.G_RET_STS_SUCCESS) THEN
2178: fnd_message.set_name('PN', 'PN_INVALID_SPACE_ASSGN_DATE');
2179: l_error_message := fnd_message.get;
2180: raise INVALID_RECORD; --Bug5515198
2181: END IF;
2182:
2183:
2237: x_return_message => l_return_message
2238: );
2239:
2240: IF NOT( l_return_status = FND_API.G_RET_STS_SUCCESS) THEN
2241: fnd_message.set_name('PN', 'PN_INVALID_SPACE_ASSGN_DATE');
2242: l_error_message := fnd_message.get;
2243: raise INVALID_RECORD; --Bug5515198
2244: END IF;
2245:
2238: );
2239:
2240: IF NOT( l_return_status = FND_API.G_RET_STS_SUCCESS) THEN
2241: fnd_message.set_name('PN', 'PN_INVALID_SPACE_ASSGN_DATE');
2242: l_error_message := fnd_message.get;
2243: raise INVALID_RECORD; --Bug5515198
2244: END IF;
2245:
2246:
2328:
2329: ROLLBACK TO S2;
2330: l_fail := l_fail + 1;
2331:
2332: l_error_message := fnd_message.get;
2333:
2334: update pn_emp_space_assign_itf
2335: set error_message = substr(l_error_message, 1, 240)
2336: where ROWID = space.ROWID;
2348: END LOOP;
2349:
2350:
2351: if (l_total = 0) then
2352: fnd_message.set_name ('PN', 'PN_CAFM_NO_SPC_REC_FOUND');
2353: errbuf := fnd_message.get;
2354: retcode := '2';
2355: put_line(errbuf);
2356:
2349:
2350:
2351: if (l_total = 0) then
2352: fnd_message.set_name ('PN', 'PN_CAFM_NO_SPC_REC_FOUND');
2353: errbuf := fnd_message.get;
2354: retcode := '2';
2355: put_line(errbuf);
2356:
2357: else
2360:
2361: Put_Log('
2362: =============== Summary ===============');
2363:
2364: fnd_message.set_name('PN', 'PN_CAFM_SPACE_SUCCESS');
2365: fnd_message.set_token('SUCCESS', l_succ);
2366: put_line(fnd_message.get);
2367:
2368: fnd_message.set_name('PN', 'PN_CAFM_SPACE_FAILURE');
2361: Put_Log('
2362: =============== Summary ===============');
2363:
2364: fnd_message.set_name('PN', 'PN_CAFM_SPACE_SUCCESS');
2365: fnd_message.set_token('SUCCESS', l_succ);
2366: put_line(fnd_message.get);
2367:
2368: fnd_message.set_name('PN', 'PN_CAFM_SPACE_FAILURE');
2369: fnd_message.set_token('FAILURE', l_fail);
2362: =============== Summary ===============');
2363:
2364: fnd_message.set_name('PN', 'PN_CAFM_SPACE_SUCCESS');
2365: fnd_message.set_token('SUCCESS', l_succ);
2366: put_line(fnd_message.get);
2367:
2368: fnd_message.set_name('PN', 'PN_CAFM_SPACE_FAILURE');
2369: fnd_message.set_token('FAILURE', l_fail);
2370: put_line(fnd_message.get);
2364: fnd_message.set_name('PN', 'PN_CAFM_SPACE_SUCCESS');
2365: fnd_message.set_token('SUCCESS', l_succ);
2366: put_line(fnd_message.get);
2367:
2368: fnd_message.set_name('PN', 'PN_CAFM_SPACE_FAILURE');
2369: fnd_message.set_token('FAILURE', l_fail);
2370: put_line(fnd_message.get);
2371:
2372: fnd_message.set_name('PN', 'PN_CAFM_SPACE_TOTAL');
2365: fnd_message.set_token('SUCCESS', l_succ);
2366: put_line(fnd_message.get);
2367:
2368: fnd_message.set_name('PN', 'PN_CAFM_SPACE_FAILURE');
2369: fnd_message.set_token('FAILURE', l_fail);
2370: put_line(fnd_message.get);
2371:
2372: fnd_message.set_name('PN', 'PN_CAFM_SPACE_TOTAL');
2373: fnd_message.set_token('TOTAL', l_total);
2366: put_line(fnd_message.get);
2367:
2368: fnd_message.set_name('PN', 'PN_CAFM_SPACE_FAILURE');
2369: fnd_message.set_token('FAILURE', l_fail);
2370: put_line(fnd_message.get);
2371:
2372: fnd_message.set_name('PN', 'PN_CAFM_SPACE_TOTAL');
2373: fnd_message.set_token('TOTAL', l_total);
2374: put_line(fnd_message.get);
2368: fnd_message.set_name('PN', 'PN_CAFM_SPACE_FAILURE');
2369: fnd_message.set_token('FAILURE', l_fail);
2370: put_line(fnd_message.get);
2371:
2372: fnd_message.set_name('PN', 'PN_CAFM_SPACE_TOTAL');
2373: fnd_message.set_token('TOTAL', l_total);
2374: put_line(fnd_message.get);
2375:
2376: end if;
2369: fnd_message.set_token('FAILURE', l_fail);
2370: put_line(fnd_message.get);
2371:
2372: fnd_message.set_name('PN', 'PN_CAFM_SPACE_TOTAL');
2373: fnd_message.set_token('TOTAL', l_total);
2374: put_line(fnd_message.get);
2375:
2376: end if;
2377:
2370: put_line(fnd_message.get);
2371:
2372: fnd_message.set_name('PN', 'PN_CAFM_SPACE_TOTAL');
2373: fnd_message.set_token('TOTAL', l_total);
2374: put_line(fnd_message.get);
2375:
2376: end if;
2377:
2378:
2378:
2379: EXCEPTION
2380: WHEN NO_DATA_FOUND THEN
2381: put_line('EXCEPTION: NO_DATA_FOUND');
2382: fnd_message.set_name ('PN', 'PN_NO_SPACE_DATA_FOUND');
2383: errbuf := l_error_message;
2384: retcode := '2';
2385: put_line(errbuf);
2386: APP_EXCEPTION.raise_exception;
2387:
2388:
2389: WHEN OTHERS THEN
2390: put_line('EXCEPTION: OTHERS');
2391: fnd_message.set_name ('PN', 'PN_NO_SPACE_DATA_FOUND');
2392: errbuf := l_error_message;
2393: retcode := '2';
2394: put_line(errbuf);
2395: APP_EXCEPTION.raise_exception;