87:
88: PROCEDURE init_package IS
89: BEGIN
90: g_debug := NVL(fnd_profile.value('AFLOG_ENABLED'), 'N');
91: g_debug_level := NVL(fnd_profile.value('AFLOG_LEVEL'), fnd_log.level_event);
92: END init_package;
93:
94: PROCEDURE debug(p_message VARCHAR2, p_module VARCHAR2, p_level NUMBER) IS
95: BEGIN
100: ELSE
101: fnd_file.put_line(fnd_file.log, rpad(p_module, 20) || ': ' || p_message);
102: END IF;
103: ELSE
104: fnd_log.string(p_level, 'csf.plsql.CSF_RESOURCE_ADDRESS_PVT.' || p_module, p_message);
105: END IF;
106: END IF;
107: --dbms_output.put_line(rpad(p_module, 20) || ': ' || p_message);
108: END debug;
273: -- Initialize Return Status
274: x_return_status := fnd_api.g_ret_sts_success;
275:
276: IF l_debug THEN
277: debug('Resolving the Address corresponding to Location #' || p_location_id, l_api_name, fnd_log.level_procedure);
278: debug(' --> Address1 = ' || p_address1, l_api_name, fnd_log.level_statement);
279: debug(' --> City = ' || p_city, l_api_name, fnd_log.level_statement);
280: debug(' --> State = ' || p_state, l_api_name, fnd_log.level_statement);
281: debug(' --> Zip = ' || p_postalcode, l_api_name, fnd_log.level_statement);
274: x_return_status := fnd_api.g_ret_sts_success;
275:
276: IF l_debug THEN
277: debug('Resolving the Address corresponding to Location #' || p_location_id, l_api_name, fnd_log.level_procedure);
278: debug(' --> Address1 = ' || p_address1, l_api_name, fnd_log.level_statement);
279: debug(' --> City = ' || p_city, l_api_name, fnd_log.level_statement);
280: debug(' --> State = ' || p_state, l_api_name, fnd_log.level_statement);
281: debug(' --> Zip = ' || p_postalcode, l_api_name, fnd_log.level_statement);
282: debug(' --> Country = ' || p_country, l_api_name, fnd_log.level_statement);
275:
276: IF l_debug THEN
277: debug('Resolving the Address corresponding to Location #' || p_location_id, l_api_name, fnd_log.level_procedure);
278: debug(' --> Address1 = ' || p_address1, l_api_name, fnd_log.level_statement);
279: debug(' --> City = ' || p_city, l_api_name, fnd_log.level_statement);
280: debug(' --> State = ' || p_state, l_api_name, fnd_log.level_statement);
281: debug(' --> Zip = ' || p_postalcode, l_api_name, fnd_log.level_statement);
282: debug(' --> Country = ' || p_country, l_api_name, fnd_log.level_statement);
283: debug(' --> Country Code = ' || p_country_code, l_api_name, fnd_log.level_statement);
276: IF l_debug THEN
277: debug('Resolving the Address corresponding to Location #' || p_location_id, l_api_name, fnd_log.level_procedure);
278: debug(' --> Address1 = ' || p_address1, l_api_name, fnd_log.level_statement);
279: debug(' --> City = ' || p_city, l_api_name, fnd_log.level_statement);
280: debug(' --> State = ' || p_state, l_api_name, fnd_log.level_statement);
281: debug(' --> Zip = ' || p_postalcode, l_api_name, fnd_log.level_statement);
282: debug(' --> Country = ' || p_country, l_api_name, fnd_log.level_statement);
283: debug(' --> Country Code = ' || p_country_code, l_api_name, fnd_log.level_statement);
284: debug(' --> Update Addr = ' || p_update_address, l_api_name, fnd_log.level_statement);
277: debug('Resolving the Address corresponding to Location #' || p_location_id, l_api_name, fnd_log.level_procedure);
278: debug(' --> Address1 = ' || p_address1, l_api_name, fnd_log.level_statement);
279: debug(' --> City = ' || p_city, l_api_name, fnd_log.level_statement);
280: debug(' --> State = ' || p_state, l_api_name, fnd_log.level_statement);
281: debug(' --> Zip = ' || p_postalcode, l_api_name, fnd_log.level_statement);
282: debug(' --> Country = ' || p_country, l_api_name, fnd_log.level_statement);
283: debug(' --> Country Code = ' || p_country_code, l_api_name, fnd_log.level_statement);
284: debug(' --> Update Addr = ' || p_update_address, l_api_name, fnd_log.level_statement);
285: END IF;
278: debug(' --> Address1 = ' || p_address1, l_api_name, fnd_log.level_statement);
279: debug(' --> City = ' || p_city, l_api_name, fnd_log.level_statement);
280: debug(' --> State = ' || p_state, l_api_name, fnd_log.level_statement);
281: debug(' --> Zip = ' || p_postalcode, l_api_name, fnd_log.level_statement);
282: debug(' --> Country = ' || p_country, l_api_name, fnd_log.level_statement);
283: debug(' --> Country Code = ' || p_country_code, l_api_name, fnd_log.level_statement);
284: debug(' --> Update Addr = ' || p_update_address, l_api_name, fnd_log.level_statement);
285: END IF;
286:
279: debug(' --> City = ' || p_city, l_api_name, fnd_log.level_statement);
280: debug(' --> State = ' || p_state, l_api_name, fnd_log.level_statement);
281: debug(' --> Zip = ' || p_postalcode, l_api_name, fnd_log.level_statement);
282: debug(' --> Country = ' || p_country, l_api_name, fnd_log.level_statement);
283: debug(' --> Country Code = ' || p_country_code, l_api_name, fnd_log.level_statement);
284: debug(' --> Update Addr = ' || p_update_address, l_api_name, fnd_log.level_statement);
285: END IF;
286:
287: l_update_addr := NVL(fnd_api.to_boolean(p_update_address), FALSE);
280: debug(' --> State = ' || p_state, l_api_name, fnd_log.level_statement);
281: debug(' --> Zip = ' || p_postalcode, l_api_name, fnd_log.level_statement);
282: debug(' --> Country = ' || p_country, l_api_name, fnd_log.level_statement);
283: debug(' --> Country Code = ' || p_country_code, l_api_name, fnd_log.level_statement);
284: debug(' --> Update Addr = ' || p_update_address, l_api_name, fnd_log.level_statement);
285: END IF;
286:
287: l_update_addr := NVL(fnd_api.to_boolean(p_update_address), FALSE);
288: l_update_geo := FALSE;
288: l_update_geo := FALSE;
289:
290: -- Location Finder Profiles. Check whether Resolve Address needs to be called.
291: IF l_debug THEN
292: debug('CSF: Location Finder Installed = ' || fnd_profile.VALUE('CSF_LF_INSTALLED'), l_api_name, fnd_log.level_statement);
293: debug('CSR: Create Location = ' || fnd_profile.VALUE('CREATELOCATION'), l_api_name, fnd_log.level_statement);
294: END IF;
295:
296: l_call_lf := (NVL(fnd_profile.VALUE('CSF_LF_INSTALLED'),'N') = 'Y')
289:
290: -- Location Finder Profiles. Check whether Resolve Address needs to be called.
291: IF l_debug THEN
292: debug('CSF: Location Finder Installed = ' || fnd_profile.VALUE('CSF_LF_INSTALLED'), l_api_name, fnd_log.level_statement);
293: debug('CSR: Create Location = ' || fnd_profile.VALUE('CREATELOCATION'), l_api_name, fnd_log.level_statement);
294: END IF;
295:
296: l_call_lf := (NVL(fnd_profile.VALUE('CSF_LF_INSTALLED'),'N') = 'Y')
297: AND (NVL(fnd_profile.VALUE('CREATELOCATION'),'N') = 'Y');
326:
327: IF x_return_status <> fnd_api.g_ret_sts_success THEN
328: IF l_debug THEN
329: fnd_msg_pub.count_and_get(fnd_api.g_false, x_msg_count, x_msg_data);
330: debug('CSF_LF_PUB.RESOLVE returned error: Error = ' || x_msg_data, l_api_name, fnd_log.level_error);
331: END IF;
332: IF x_return_status = fnd_api.g_ret_sts_unexp_error THEN
333: RAISE fnd_api.g_exc_unexpected_error;
334: END IF;
336: END IF;
337:
338: IF (l_resultarray IS NULL OR l_resultarray.COUNT > 1) THEN
339: IF l_debug THEN
340: debug('CSF_LF_PUB.RESOLVE didnt return proper result.. So Error', l_api_name, fnd_log.level_error);
341: END IF;
342: RAISE fnd_api.g_exc_error;
343: END IF;
344:
351: l_road := l_resultarray(1).buildingnum || ' ' || initcap(l_resultarray(1).road);
352: END IF;
353:
354: IF l_debug THEN
355: debug(' --> Longitude = ' || x_geometry.sdo_ordinates(1), l_api_name, fnd_log.level_statement);
356: debug(' --> Latitude = ' || x_geometry.sdo_ordinates(2), l_api_name, fnd_log.level_statement);
357: debug(' --> Segment = ' || x_geometry.sdo_ordinates(5), l_api_name, fnd_log.level_statement);
358: END IF;
359: END IF;
352: END IF;
353:
354: IF l_debug THEN
355: debug(' --> Longitude = ' || x_geometry.sdo_ordinates(1), l_api_name, fnd_log.level_statement);
356: debug(' --> Latitude = ' || x_geometry.sdo_ordinates(2), l_api_name, fnd_log.level_statement);
357: debug(' --> Segment = ' || x_geometry.sdo_ordinates(5), l_api_name, fnd_log.level_statement);
358: END IF;
359: END IF;
360:
353:
354: IF l_debug THEN
355: debug(' --> Longitude = ' || x_geometry.sdo_ordinates(1), l_api_name, fnd_log.level_statement);
356: debug(' --> Latitude = ' || x_geometry.sdo_ordinates(2), l_api_name, fnd_log.level_statement);
357: debug(' --> Segment = ' || x_geometry.sdo_ordinates(5), l_api_name, fnd_log.level_statement);
358: END IF;
359: END IF;
360:
361:
363: --l_location_rec.address1 := p_address1;
364: IF p_address1 = l_roadname THEN
365: l_location_rec.address1 := l_road;
366: IF l_debug THEN
367: debug('Considering the address1 for resolving street. Modified address1 = ' || l_location_rec.address1, l_api_name, fnd_log.level_procedure);
368: END IF;
369: ELSIF p_address2 = l_roadname THEN
370: l_location_rec.address2 := l_road;
371: IF l_debug THEN
368: END IF;
369: ELSIF p_address2 = l_roadname THEN
370: l_location_rec.address2 := l_road;
371: IF l_debug THEN
372: debug('Considering the address2 for resolving street. Modified address2 = ' || l_location_rec.address2, l_api_name, fnd_log.level_procedure);
373: END IF;
374: ELSIF p_address3 = l_roadname THEN
375: l_location_rec.address3 := l_road;
376: IF l_debug THEN
373: END IF;
374: ELSIF p_address3 = l_roadname THEN
375: l_location_rec.address3 := l_road;
376: IF l_debug THEN
377: debug('Considering the address3 for resolving street. Modified address3 = ' || l_location_rec.address3, l_api_name, fnd_log.level_procedure);
378: END IF;
379: ELSIF p_address4 = l_roadname THEN
380: l_location_rec.address4 := l_road;
381: IF l_debug THEN
378: END IF;
379: ELSIF p_address4 = l_roadname THEN
380: l_location_rec.address4 := l_road;
381: IF l_debug THEN
382: debug('Considering the address4 for resolving street. Modified address4 = ' || l_location_rec.address4, l_api_name, fnd_log.level_procedure);
383: END IF;
384: END IF;
385: IF p_city = '_' THEN
386: l_location_rec.city := '';
408: END IF;
409:
410: IF l_update_addr OR l_update_geo THEN
411: IF l_debug THEN
412: debug('Updating Address ', l_api_name, fnd_log.level_statement);
413: END IF;
414:
415: l_location_rec.location_id := p_location_id;
416: l_location_rec.created_by_module := null;
437: EXCEPTION
438: WHEN fnd_api.g_exc_error THEN
439: IF l_debug THEN
440: fnd_msg_pub.count_and_get(fnd_api.g_false, x_msg_count, x_msg_data);
441: debug('Expected Error: ' || x_msg_data, l_api_name, fnd_log.level_error);
442: END IF;
443:
444: ROLLBACK TO resolve_address_pub;
445: x_return_status := fnd_api.g_ret_sts_error;
446: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
447: WHEN fnd_api.g_exc_unexpected_error THEN
448: IF l_debug THEN
449: fnd_msg_pub.count_and_get(fnd_api.g_false, x_msg_count, x_msg_data);
450: debug('Unexpected Error: ' || x_msg_data, l_api_name, fnd_log.level_unexpected);
451: END IF;
452:
453: ROLLBACK TO resolve_address_pub;
454: x_return_status := fnd_api.g_ret_sts_unexp_error;
454: x_return_status := fnd_api.g_ret_sts_unexp_error;
455: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
456: WHEN OTHERS THEN
457: IF l_debug THEN
458: debug('Exception: SQLCODE = ' || SQLCODE || ' : SQLERRM = ' || SQLERRM, l_api_name, fnd_log.level_unexpected);
459: END IF;
460:
461: x_return_status := fnd_api.g_ret_sts_unexp_error;
462: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_unexp_error) THEN
474: l_api_name CONSTANT VARCHAR2(50) := 'ARE_ADDRESSES_EQUAL';
475: l_debug CONSTANT BOOLEAN := g_debug = 'Y';
476: BEGIN
477: IF l_debug THEN
478: debug('Checking for the Equality of two addresses', l_api_name, fnd_log.level_procedure);
479: debug('Address#1', l_api_name, fnd_log.level_statement);
480: debug(' --> Street : ' || p_address1.street, l_api_name, fnd_log.level_statement);
481: debug(' --> City : ' || p_address1.city, l_api_name, fnd_log.level_statement);
482: debug(' --> State : ' || p_address1.state, l_api_name, fnd_log.level_statement);
475: l_debug CONSTANT BOOLEAN := g_debug = 'Y';
476: BEGIN
477: IF l_debug THEN
478: debug('Checking for the Equality of two addresses', l_api_name, fnd_log.level_procedure);
479: debug('Address#1', l_api_name, fnd_log.level_statement);
480: debug(' --> Street : ' || p_address1.street, l_api_name, fnd_log.level_statement);
481: debug(' --> City : ' || p_address1.city, l_api_name, fnd_log.level_statement);
482: debug(' --> State : ' || p_address1.state, l_api_name, fnd_log.level_statement);
483: debug(' --> Zip : ' || p_address1.postal_code, l_api_name, fnd_log.level_statement);
476: BEGIN
477: IF l_debug THEN
478: debug('Checking for the Equality of two addresses', l_api_name, fnd_log.level_procedure);
479: debug('Address#1', l_api_name, fnd_log.level_statement);
480: debug(' --> Street : ' || p_address1.street, l_api_name, fnd_log.level_statement);
481: debug(' --> City : ' || p_address1.city, l_api_name, fnd_log.level_statement);
482: debug(' --> State : ' || p_address1.state, l_api_name, fnd_log.level_statement);
483: debug(' --> Zip : ' || p_address1.postal_code, l_api_name, fnd_log.level_statement);
484: debug(' --> Country : ' || p_address1.country, l_api_name, fnd_log.level_statement);
477: IF l_debug THEN
478: debug('Checking for the Equality of two addresses', l_api_name, fnd_log.level_procedure);
479: debug('Address#1', l_api_name, fnd_log.level_statement);
480: debug(' --> Street : ' || p_address1.street, l_api_name, fnd_log.level_statement);
481: debug(' --> City : ' || p_address1.city, l_api_name, fnd_log.level_statement);
482: debug(' --> State : ' || p_address1.state, l_api_name, fnd_log.level_statement);
483: debug(' --> Zip : ' || p_address1.postal_code, l_api_name, fnd_log.level_statement);
484: debug(' --> Country : ' || p_address1.country, l_api_name, fnd_log.level_statement);
485: debug(' --> Terr SN : ' || p_address1.territory_short_name, l_api_name, fnd_log.level_statement);
478: debug('Checking for the Equality of two addresses', l_api_name, fnd_log.level_procedure);
479: debug('Address#1', l_api_name, fnd_log.level_statement);
480: debug(' --> Street : ' || p_address1.street, l_api_name, fnd_log.level_statement);
481: debug(' --> City : ' || p_address1.city, l_api_name, fnd_log.level_statement);
482: debug(' --> State : ' || p_address1.state, l_api_name, fnd_log.level_statement);
483: debug(' --> Zip : ' || p_address1.postal_code, l_api_name, fnd_log.level_statement);
484: debug(' --> Country : ' || p_address1.country, l_api_name, fnd_log.level_statement);
485: debug(' --> Terr SN : ' || p_address1.territory_short_name, l_api_name, fnd_log.level_statement);
486: debug('Address#2', l_api_name, fnd_log.level_statement);
479: debug('Address#1', l_api_name, fnd_log.level_statement);
480: debug(' --> Street : ' || p_address1.street, l_api_name, fnd_log.level_statement);
481: debug(' --> City : ' || p_address1.city, l_api_name, fnd_log.level_statement);
482: debug(' --> State : ' || p_address1.state, l_api_name, fnd_log.level_statement);
483: debug(' --> Zip : ' || p_address1.postal_code, l_api_name, fnd_log.level_statement);
484: debug(' --> Country : ' || p_address1.country, l_api_name, fnd_log.level_statement);
485: debug(' --> Terr SN : ' || p_address1.territory_short_name, l_api_name, fnd_log.level_statement);
486: debug('Address#2', l_api_name, fnd_log.level_statement);
487: debug(' --> Street : ' || p_address2.street, l_api_name, fnd_log.level_statement);
480: debug(' --> Street : ' || p_address1.street, l_api_name, fnd_log.level_statement);
481: debug(' --> City : ' || p_address1.city, l_api_name, fnd_log.level_statement);
482: debug(' --> State : ' || p_address1.state, l_api_name, fnd_log.level_statement);
483: debug(' --> Zip : ' || p_address1.postal_code, l_api_name, fnd_log.level_statement);
484: debug(' --> Country : ' || p_address1.country, l_api_name, fnd_log.level_statement);
485: debug(' --> Terr SN : ' || p_address1.territory_short_name, l_api_name, fnd_log.level_statement);
486: debug('Address#2', l_api_name, fnd_log.level_statement);
487: debug(' --> Street : ' || p_address2.street, l_api_name, fnd_log.level_statement);
488: debug(' --> City : ' || p_address2.city, l_api_name, fnd_log.level_statement);
481: debug(' --> City : ' || p_address1.city, l_api_name, fnd_log.level_statement);
482: debug(' --> State : ' || p_address1.state, l_api_name, fnd_log.level_statement);
483: debug(' --> Zip : ' || p_address1.postal_code, l_api_name, fnd_log.level_statement);
484: debug(' --> Country : ' || p_address1.country, l_api_name, fnd_log.level_statement);
485: debug(' --> Terr SN : ' || p_address1.territory_short_name, l_api_name, fnd_log.level_statement);
486: debug('Address#2', l_api_name, fnd_log.level_statement);
487: debug(' --> Street : ' || p_address2.street, l_api_name, fnd_log.level_statement);
488: debug(' --> City : ' || p_address2.city, l_api_name, fnd_log.level_statement);
489: debug(' --> State : ' || p_address2.state, l_api_name, fnd_log.level_statement);
482: debug(' --> State : ' || p_address1.state, l_api_name, fnd_log.level_statement);
483: debug(' --> Zip : ' || p_address1.postal_code, l_api_name, fnd_log.level_statement);
484: debug(' --> Country : ' || p_address1.country, l_api_name, fnd_log.level_statement);
485: debug(' --> Terr SN : ' || p_address1.territory_short_name, l_api_name, fnd_log.level_statement);
486: debug('Address#2', l_api_name, fnd_log.level_statement);
487: debug(' --> Street : ' || p_address2.street, l_api_name, fnd_log.level_statement);
488: debug(' --> City : ' || p_address2.city, l_api_name, fnd_log.level_statement);
489: debug(' --> State : ' || p_address2.state, l_api_name, fnd_log.level_statement);
490: debug(' --> Zip : ' || p_address2.postal_code, l_api_name, fnd_log.level_statement);
483: debug(' --> Zip : ' || p_address1.postal_code, l_api_name, fnd_log.level_statement);
484: debug(' --> Country : ' || p_address1.country, l_api_name, fnd_log.level_statement);
485: debug(' --> Terr SN : ' || p_address1.territory_short_name, l_api_name, fnd_log.level_statement);
486: debug('Address#2', l_api_name, fnd_log.level_statement);
487: debug(' --> Street : ' || p_address2.street, l_api_name, fnd_log.level_statement);
488: debug(' --> City : ' || p_address2.city, l_api_name, fnd_log.level_statement);
489: debug(' --> State : ' || p_address2.state, l_api_name, fnd_log.level_statement);
490: debug(' --> Zip : ' || p_address2.postal_code, l_api_name, fnd_log.level_statement);
491: debug(' --> Country : ' || p_address2.country, l_api_name, fnd_log.level_statement);
484: debug(' --> Country : ' || p_address1.country, l_api_name, fnd_log.level_statement);
485: debug(' --> Terr SN : ' || p_address1.territory_short_name, l_api_name, fnd_log.level_statement);
486: debug('Address#2', l_api_name, fnd_log.level_statement);
487: debug(' --> Street : ' || p_address2.street, l_api_name, fnd_log.level_statement);
488: debug(' --> City : ' || p_address2.city, l_api_name, fnd_log.level_statement);
489: debug(' --> State : ' || p_address2.state, l_api_name, fnd_log.level_statement);
490: debug(' --> Zip : ' || p_address2.postal_code, l_api_name, fnd_log.level_statement);
491: debug(' --> Country : ' || p_address2.country, l_api_name, fnd_log.level_statement);
492: debug(' --> Terr SN : ' || p_address2.territory_short_name, l_api_name, fnd_log.level_statement);
485: debug(' --> Terr SN : ' || p_address1.territory_short_name, l_api_name, fnd_log.level_statement);
486: debug('Address#2', l_api_name, fnd_log.level_statement);
487: debug(' --> Street : ' || p_address2.street, l_api_name, fnd_log.level_statement);
488: debug(' --> City : ' || p_address2.city, l_api_name, fnd_log.level_statement);
489: debug(' --> State : ' || p_address2.state, l_api_name, fnd_log.level_statement);
490: debug(' --> Zip : ' || p_address2.postal_code, l_api_name, fnd_log.level_statement);
491: debug(' --> Country : ' || p_address2.country, l_api_name, fnd_log.level_statement);
492: debug(' --> Terr SN : ' || p_address2.territory_short_name, l_api_name, fnd_log.level_statement);
493: END IF;
486: debug('Address#2', l_api_name, fnd_log.level_statement);
487: debug(' --> Street : ' || p_address2.street, l_api_name, fnd_log.level_statement);
488: debug(' --> City : ' || p_address2.city, l_api_name, fnd_log.level_statement);
489: debug(' --> State : ' || p_address2.state, l_api_name, fnd_log.level_statement);
490: debug(' --> Zip : ' || p_address2.postal_code, l_api_name, fnd_log.level_statement);
491: debug(' --> Country : ' || p_address2.country, l_api_name, fnd_log.level_statement);
492: debug(' --> Terr SN : ' || p_address2.territory_short_name, l_api_name, fnd_log.level_statement);
493: END IF;
494:
487: debug(' --> Street : ' || p_address2.street, l_api_name, fnd_log.level_statement);
488: debug(' --> City : ' || p_address2.city, l_api_name, fnd_log.level_statement);
489: debug(' --> State : ' || p_address2.state, l_api_name, fnd_log.level_statement);
490: debug(' --> Zip : ' || p_address2.postal_code, l_api_name, fnd_log.level_statement);
491: debug(' --> Country : ' || p_address2.country, l_api_name, fnd_log.level_statement);
492: debug(' --> Terr SN : ' || p_address2.territory_short_name, l_api_name, fnd_log.level_statement);
493: END IF;
494:
495: IF NVL(UPPER(p_address1.street), '@#$') <> NVL(UPPER(p_address2.street), '@#$') THEN
488: debug(' --> City : ' || p_address2.city, l_api_name, fnd_log.level_statement);
489: debug(' --> State : ' || p_address2.state, l_api_name, fnd_log.level_statement);
490: debug(' --> Zip : ' || p_address2.postal_code, l_api_name, fnd_log.level_statement);
491: debug(' --> Country : ' || p_address2.country, l_api_name, fnd_log.level_statement);
492: debug(' --> Terr SN : ' || p_address2.territory_short_name, l_api_name, fnd_log.level_statement);
493: END IF;
494:
495: IF NVL(UPPER(p_address1.street), '@#$') <> NVL(UPPER(p_address2.street), '@#$') THEN
496: RETURN FALSE;
517: RETURN FALSE;
518: END IF;
519:
520: IF l_debug THEN
521: debug('Addresses are equal', l_api_name, fnd_log.level_statement);
522: END IF;
523: RETURN TRUE;
524: END are_addresses_equal;
525:
539: c_parties ref_cursor_type;
540: l_address_rec address_rec_type;
541: BEGIN
542: IF l_debug THEN
543: debug('Finding the Parties associated with Resource ID = ' || p_resource_id, l_api_name, fnd_log.level_procedure);
544: END IF;
545:
546: x_address_tbl := address_tbl_type();
547:
561: END LOOP;
562: CLOSE c_parties;
563:
564: IF l_debug THEN
565: debug(' Number of Parties found = ' || x_address_tbl.COUNT, l_api_name, fnd_log.level_statement);
566: END IF;
567:
568: END IF;
569:
583: END LOOP;
584: CLOSE c_parties;
585:
586: IF l_debug THEN
587: debug(' Number of Parties found upon retrying = ' || x_address_tbl.COUNT, l_api_name, fnd_log.level_statement);
588: END IF;
589:
590: END get_party_addresses;
591:
624:
625: l_home_address c_home_addresses%ROWTYPE;
626: BEGIN
627: IF l_debug THEN
628: debug('Finding the addresses associated with Resource ID = ' || p_resource_id, l_api_name, fnd_log.level_procedure);
629: END IF;
630:
631: OPEN c_home_addresses (p_resource_id, p_date);
632: FETCH c_home_addresses INTO l_home_address;
643: x_address.end_date_active := l_home_address.end_date_active;
644:
645: IF l_debug THEN
646: IF x_address.address_id IS NOT NULL THEN
647: debug(' Found a Address: Address ID = ' || x_address.address_id, l_api_name, fnd_log.level_statement);
648: ELSE
649: debug(' Found no Home Address', l_api_name, fnd_log.level_statement);
650: END IF;
651: END IF;
645: IF l_debug THEN
646: IF x_address.address_id IS NOT NULL THEN
647: debug(' Found a Address: Address ID = ' || x_address.address_id, l_api_name, fnd_log.level_statement);
648: ELSE
649: debug(' Found no Home Address', l_api_name, fnd_log.level_statement);
650: END IF;
651: END IF;
652: END get_home_addresses;
653:
679: END LOOP;
680:
681: IF l_debug THEN
682: IF x_matched_address_rec.party_site_id IS NULL THEN
683: debug('Best Address ID (#' || p_home_addr_rec.address_id || ') doesnt match with any Party Site', l_api_name, fnd_log.level_statement);
684: ELSE
685: debug('Best Address ID (#' || p_home_addr_rec.address_id || ') matches with Party Site ID = ' || x_matched_address_rec.party_site_id, l_api_name, fnd_log.level_statement);
686: END IF;
687: END IF;
681: IF l_debug THEN
682: IF x_matched_address_rec.party_site_id IS NULL THEN
683: debug('Best Address ID (#' || p_home_addr_rec.address_id || ') doesnt match with any Party Site', l_api_name, fnd_log.level_statement);
684: ELSE
685: debug('Best Address ID (#' || p_home_addr_rec.address_id || ') matches with Party Site ID = ' || x_matched_address_rec.party_site_id, l_api_name, fnd_log.level_statement);
686: END IF;
687: END IF;
688: END match_home_to_party;
689:
714: CURSOR c_terr IS
715: SELECT territory_code FROM fnd_territories WHERE ROWNUM = 1;
716: BEGIN
717: IF l_debug THEN
718: debug('Creating the Resource Party Link for Resource ID = ' || p_resource_id, l_api_name, fnd_log.level_procedure);
719: END IF;
720:
721: -- Check for API Compatibility
722: IF NOT fnd_api.compatible_api_call(l_api_version, p_api_version, l_api_name, g_pkg_name) THEN
751: l_location_rec.country := p_address.country;
752: END IF;
753:
754: IF l_debug THEN
755: debug('Creating Location Record in HZ_LOCATIONS', l_api_name, fnd_log.level_statement);
756: debug(' --> Address1 = ' || l_location_rec.address1, l_api_name, fnd_log.level_statement);
757: debug(' --> City = ' || l_location_rec.city, l_api_name, fnd_log.level_statement);
758: debug(' --> State = ' || l_location_rec.state, l_api_name, fnd_log.level_statement);
759: debug(' --> Zip = ' || l_location_rec.postal_code, l_api_name, fnd_log.level_statement);
752: END IF;
753:
754: IF l_debug THEN
755: debug('Creating Location Record in HZ_LOCATIONS', l_api_name, fnd_log.level_statement);
756: debug(' --> Address1 = ' || l_location_rec.address1, l_api_name, fnd_log.level_statement);
757: debug(' --> City = ' || l_location_rec.city, l_api_name, fnd_log.level_statement);
758: debug(' --> State = ' || l_location_rec.state, l_api_name, fnd_log.level_statement);
759: debug(' --> Zip = ' || l_location_rec.postal_code, l_api_name, fnd_log.level_statement);
760: debug(' --> Country = ' || l_location_rec.country, l_api_name, fnd_log.level_statement);
753:
754: IF l_debug THEN
755: debug('Creating Location Record in HZ_LOCATIONS', l_api_name, fnd_log.level_statement);
756: debug(' --> Address1 = ' || l_location_rec.address1, l_api_name, fnd_log.level_statement);
757: debug(' --> City = ' || l_location_rec.city, l_api_name, fnd_log.level_statement);
758: debug(' --> State = ' || l_location_rec.state, l_api_name, fnd_log.level_statement);
759: debug(' --> Zip = ' || l_location_rec.postal_code, l_api_name, fnd_log.level_statement);
760: debug(' --> Country = ' || l_location_rec.country, l_api_name, fnd_log.level_statement);
761: END IF;
754: IF l_debug THEN
755: debug('Creating Location Record in HZ_LOCATIONS', l_api_name, fnd_log.level_statement);
756: debug(' --> Address1 = ' || l_location_rec.address1, l_api_name, fnd_log.level_statement);
757: debug(' --> City = ' || l_location_rec.city, l_api_name, fnd_log.level_statement);
758: debug(' --> State = ' || l_location_rec.state, l_api_name, fnd_log.level_statement);
759: debug(' --> Zip = ' || l_location_rec.postal_code, l_api_name, fnd_log.level_statement);
760: debug(' --> Country = ' || l_location_rec.country, l_api_name, fnd_log.level_statement);
761: END IF;
762:
755: debug('Creating Location Record in HZ_LOCATIONS', l_api_name, fnd_log.level_statement);
756: debug(' --> Address1 = ' || l_location_rec.address1, l_api_name, fnd_log.level_statement);
757: debug(' --> City = ' || l_location_rec.city, l_api_name, fnd_log.level_statement);
758: debug(' --> State = ' || l_location_rec.state, l_api_name, fnd_log.level_statement);
759: debug(' --> Zip = ' || l_location_rec.postal_code, l_api_name, fnd_log.level_statement);
760: debug(' --> Country = ' || l_location_rec.country, l_api_name, fnd_log.level_statement);
761: END IF;
762:
763: l_location_rec.created_by_module := 'CSFDEAR'; -- Calling Module 'CSF: Departure Arrival'
756: debug(' --> Address1 = ' || l_location_rec.address1, l_api_name, fnd_log.level_statement);
757: debug(' --> City = ' || l_location_rec.city, l_api_name, fnd_log.level_statement);
758: debug(' --> State = ' || l_location_rec.state, l_api_name, fnd_log.level_statement);
759: debug(' --> Zip = ' || l_location_rec.postal_code, l_api_name, fnd_log.level_statement);
760: debug(' --> Country = ' || l_location_rec.country, l_api_name, fnd_log.level_statement);
761: END IF;
762:
763: l_location_rec.created_by_module := 'CSFDEAR'; -- Calling Module 'CSF: Departure Arrival'
764:
772: );
773: IF x_return_status <> fnd_api.g_ret_sts_success THEN
774: IF l_debug THEN
775: fnd_msg_pub.count_and_get(fnd_api.g_false, x_msg_count, x_msg_data);
776: debug('HZ_LOCATION_V2PUB.CREATE returned error: Error = ' || fnd_msg_pub.get(fnd_msg_pub.g_last), l_api_name, fnd_log.level_error);
777: END IF;
778: IF x_return_status = fnd_api.g_ret_sts_unexp_error THEN
779: RAISE fnd_api.g_exc_unexpected_error;
780: END IF;
780: END IF;
781: RAISE fnd_api.g_exc_error;
782: ELSE
783: IF l_debug THEN
784: debug('HZ_LOCATION_V2PUB.CREATE was successful. Location ID = ' || p_address.location_id, l_api_name, fnd_log.level_statement);
785: END IF;
786: END IF;
787:
788: IF p_address.party_id IS NULL THEN
798: FROM dual;
799: END IF;
800:
801: IF l_debug THEN
802: debug('Creating Party Record in HZ_PARTIES', l_api_name, fnd_log.level_statement);
803: debug(' --> Party Number = ' || l_person_rec.party_rec.party_number, l_api_name, fnd_log.level_statement);
804: debug(' --> First Name = ' || l_person_rec.person_first_name, l_api_name, fnd_log.level_statement);
805: debug(' --> Last Name = ' || l_person_rec.person_last_name, l_api_name, fnd_log.level_statement);
806: END IF;
799: END IF;
800:
801: IF l_debug THEN
802: debug('Creating Party Record in HZ_PARTIES', l_api_name, fnd_log.level_statement);
803: debug(' --> Party Number = ' || l_person_rec.party_rec.party_number, l_api_name, fnd_log.level_statement);
804: debug(' --> First Name = ' || l_person_rec.person_first_name, l_api_name, fnd_log.level_statement);
805: debug(' --> Last Name = ' || l_person_rec.person_last_name, l_api_name, fnd_log.level_statement);
806: END IF;
807:
800:
801: IF l_debug THEN
802: debug('Creating Party Record in HZ_PARTIES', l_api_name, fnd_log.level_statement);
803: debug(' --> Party Number = ' || l_person_rec.party_rec.party_number, l_api_name, fnd_log.level_statement);
804: debug(' --> First Name = ' || l_person_rec.person_first_name, l_api_name, fnd_log.level_statement);
805: debug(' --> Last Name = ' || l_person_rec.person_last_name, l_api_name, fnd_log.level_statement);
806: END IF;
807:
808: hz_party_v2pub.create_person(
801: IF l_debug THEN
802: debug('Creating Party Record in HZ_PARTIES', l_api_name, fnd_log.level_statement);
803: debug(' --> Party Number = ' || l_person_rec.party_rec.party_number, l_api_name, fnd_log.level_statement);
804: debug(' --> First Name = ' || l_person_rec.person_first_name, l_api_name, fnd_log.level_statement);
805: debug(' --> Last Name = ' || l_person_rec.person_last_name, l_api_name, fnd_log.level_statement);
806: END IF;
807:
808: hz_party_v2pub.create_person(
809: p_init_msg_list => fnd_api.g_false
818:
819: IF x_return_status <> fnd_api.g_ret_sts_success THEN
820: IF l_debug THEN
821: fnd_msg_pub.count_and_get(fnd_api.g_false, x_msg_count, x_msg_data);
822: debug('HZ_PARTY_V2PUB.CREATE returned error: Error = ' || fnd_msg_pub.get(fnd_msg_pub.g_last), l_api_name, fnd_log.level_error);
823: END IF;
824: IF x_return_status = fnd_api.g_ret_sts_unexp_error THEN
825: RAISE fnd_api.g_exc_unexpected_error;
826: END IF;
826: END IF;
827: RAISE fnd_api.g_exc_error;
828: ELSE
829: IF l_debug THEN
830: debug('HZ_PARTY_V2PUB.CREATE_P was successful: Party ID = ' || p_address.party_id, l_api_name, fnd_log.level_statement);
831: END IF;
832: END IF;
833: ELSE
834: IF l_debug THEN
831: END IF;
832: END IF;
833: ELSE
834: IF l_debug THEN
835: debug('Party already exists. Using it. Party ID = ' || p_address.party_id, l_api_name, fnd_log.level_statement);
836: END IF;
837: END IF;
838:
839: l_party_site_rec.location_id := p_address.location_id;
847: FROM dual;
848: END IF;
849:
850: IF l_debug THEN
851: debug('Creating Party Site Record in HZ_PARTY_SITES', l_api_name, fnd_log.level_statement);
852: debug(' --> Party Site Number = ' || l_party_site_rec.party_site_number, l_api_name, fnd_log.level_statement);
853: debug(' --> Party ID = ' || l_party_site_rec.party_id, l_api_name, fnd_log.level_statement);
854: debug(' --> Location ID = ' || l_party_site_rec.location_id, l_api_name, fnd_log.level_statement);
855: END IF;
848: END IF;
849:
850: IF l_debug THEN
851: debug('Creating Party Site Record in HZ_PARTY_SITES', l_api_name, fnd_log.level_statement);
852: debug(' --> Party Site Number = ' || l_party_site_rec.party_site_number, l_api_name, fnd_log.level_statement);
853: debug(' --> Party ID = ' || l_party_site_rec.party_id, l_api_name, fnd_log.level_statement);
854: debug(' --> Location ID = ' || l_party_site_rec.location_id, l_api_name, fnd_log.level_statement);
855: END IF;
856:
849:
850: IF l_debug THEN
851: debug('Creating Party Site Record in HZ_PARTY_SITES', l_api_name, fnd_log.level_statement);
852: debug(' --> Party Site Number = ' || l_party_site_rec.party_site_number, l_api_name, fnd_log.level_statement);
853: debug(' --> Party ID = ' || l_party_site_rec.party_id, l_api_name, fnd_log.level_statement);
854: debug(' --> Location ID = ' || l_party_site_rec.location_id, l_api_name, fnd_log.level_statement);
855: END IF;
856:
857: hz_party_site_v2pub.create_party_site(
850: IF l_debug THEN
851: debug('Creating Party Site Record in HZ_PARTY_SITES', l_api_name, fnd_log.level_statement);
852: debug(' --> Party Site Number = ' || l_party_site_rec.party_site_number, l_api_name, fnd_log.level_statement);
853: debug(' --> Party ID = ' || l_party_site_rec.party_id, l_api_name, fnd_log.level_statement);
854: debug(' --> Location ID = ' || l_party_site_rec.location_id, l_api_name, fnd_log.level_statement);
855: END IF;
856:
857: hz_party_site_v2pub.create_party_site(
858: p_init_msg_list => fnd_api.g_false
866:
867: IF x_return_status <> fnd_api.g_ret_sts_success THEN
868: IF l_debug THEN
869: fnd_msg_pub.count_and_get(fnd_api.g_false, x_msg_count, x_msg_data);
870: debug('HZ_PARTY_SITE_V2PUB.CREATE returned error: Error = ' || fnd_msg_pub.get(fnd_msg_pub.g_last), l_api_name, fnd_log.level_error);
871: END IF;
872: IF x_return_status = fnd_api.g_ret_sts_unexp_error THEN
873: RAISE fnd_api.g_exc_unexpected_error;
874: END IF;
874: END IF;
875: RAISE fnd_api.g_exc_error;
876: ELSE
877: IF l_debug THEN
878: debug('HZ_PARTY_SITE_V2PUB.CREATE_PS was successful. Party Site ID = ' || p_address.party_site_id, l_api_name, fnd_log.level_error);
879: END IF;
880: END IF;
881:
882: IF fnd_api.to_boolean(p_commit) THEN
885: EXCEPTION
886: WHEN fnd_api.g_exc_error THEN
887: IF l_debug THEN
888: fnd_msg_pub.count_and_get(fnd_api.g_false, x_msg_count, x_msg_data);
889: debug('Expected Error: ' || x_msg_data, l_api_name, fnd_log.level_error);
890: END IF;
891:
892: ROLLBACK TO create_party;
893: x_return_status := fnd_api.g_ret_sts_error;
894: fnd_msg_pub.count_and_get(p_data => x_msg_data, p_count => x_msg_count);
895: WHEN fnd_api.g_exc_unexpected_error THEN
896: IF l_debug THEN
897: fnd_msg_pub.count_and_get(fnd_api.g_false, x_msg_count, x_msg_data);
898: debug('Unexpected Error: ' || x_msg_data, l_api_name, fnd_log.level_unexpected);
899: END IF;
900:
901: ROLLBACK TO create_party;
902: x_return_status := fnd_api.g_ret_sts_unexp_error;
902: x_return_status := fnd_api.g_ret_sts_unexp_error;
903: fnd_msg_pub.count_and_get(p_data => x_msg_data, p_count => x_msg_count);
904: WHEN OTHERS THEN
905: IF l_debug THEN
906: debug('Exception: SQLCODE = ' || SQLCODE || ' : SQLERRM = ' || SQLERRM, l_api_name, fnd_log.level_unexpected);
907: END IF;
908:
909: ROLLBACK TO create_party;
910: x_return_status := fnd_api.g_ret_sts_unexp_error;
938:
939: IF l_debug THEN
940: debug( 'Getting the Party Information for Resource ID = '
941: || p_resource_id || '( ' || p_resource_type || ') on ' || p_date
942: , l_api_name, fnd_log.level_procedure);
943: END IF;
944:
945: -- Check for API Compatibility
946: IF NOT fnd_api.compatible_api_call(l_api_version, p_api_version, l_api_name, g_pkg_name) THEN
984: , x_matched_address_rec => x_address_rec
985: );
986: ELSIF l_party_addresses_tbl IS NOT NULL AND l_party_addresses_tbl.COUNT > 0 THEN
987: IF l_debug THEN
988: debug('No Home Address found. But found a Party. Using it', l_api_name, fnd_log.level_statement);
989: END IF;
990: -- There is no home address. Pick the first Party Fetched.
991: x_address_rec := l_party_addresses_tbl(1);
992: END IF;
993:
994: -- If there is no Location created for the Address, create it.
995: IF x_address_rec.location_id IS NULL THEN
996: IF l_debug THEN
997: debug('Since Location is not created.... Creating it', l_api_name, fnd_log.level_statement);
998: END IF;
999: create_resource_party_link(
1000: p_api_version => l_api_version
1001: , p_init_msg_list => fnd_api.g_false
1017:
1018: l_validate_address := TRUE;
1019: ELSIF l_home_address.address_id IS NOT NULL AND NOT are_addresses_equal(l_home_address, x_address_rec) THEN
1020: IF l_debug THEN
1021: debug('Location is already created.... Needs Updation', l_api_name, fnd_log.level_statement);
1022: END IF;
1023: l_change_address := fnd_api.g_true;
1024: l_validate_address := TRUE;
1025:
1030: x_address_rec.territory_short_name := l_home_address.territory_short_name;
1031: x_address_rec.country := l_home_address.country;
1032: ELSIF x_address_rec.geometry IS NULL THEN
1033: IF l_debug THEN
1034: debug('Location is already created.... Needs Geocoding', l_api_name, fnd_log.level_statement);
1035: END IF;
1036: l_validate_address := TRUE;
1037: END IF;
1038:
1039: -- Resolve the address if its a new Resource or Address has changed.
1040: -- Right now only Employee Resource / Party Resource can have an Address. So Resolving only for them.
1041: IF l_validate_address AND p_resource_type IN ('RS_EMPLOYEE', 'RS_PARTY') THEN
1042: IF l_debug THEN
1043: debug('Resolving the Address again', l_api_name, fnd_log.level_statement);
1044: END IF;
1045: resolve_address(
1046: p_api_version => l_api_version
1047: , x_return_status => x_return_status
1062: x_return_status := fnd_api.g_ret_sts_success;
1063: END IF;
1064:
1065: IF l_debug THEN
1066: debug('Returning Resource Party Info', l_api_name, fnd_log.level_statement);
1067: debug(' --> Party Site ID = ' || x_address_rec.party_site_id, l_api_name, fnd_log.level_statement);
1068: END IF;
1069:
1070: IF fnd_api.to_boolean(p_commit) THEN
1063: END IF;
1064:
1065: IF l_debug THEN
1066: debug('Returning Resource Party Info', l_api_name, fnd_log.level_statement);
1067: debug(' --> Party Site ID = ' || x_address_rec.party_site_id, l_api_name, fnd_log.level_statement);
1068: END IF;
1069:
1070: IF fnd_api.to_boolean(p_commit) THEN
1071: COMMIT;
1073: EXCEPTION
1074: WHEN fnd_api.g_exc_error THEN
1075: IF l_debug THEN
1076: fnd_msg_pub.count_and_get(fnd_api.g_false, x_msg_count, x_msg_data);
1077: debug('Expected Error: ' || x_msg_data, l_api_name, fnd_log.level_error);
1078: END IF;
1079:
1080: ROLLBACK TO resource_party_info;
1081: x_return_status := fnd_api.g_ret_sts_error;
1082: fnd_msg_pub.count_and_get(p_data => x_msg_data, p_count => x_msg_count);
1083: WHEN fnd_api.g_exc_unexpected_error THEN
1084: IF l_debug THEN
1085: fnd_msg_pub.count_and_get(fnd_api.g_false, x_msg_count, x_msg_data);
1086: debug('Unexpected Error: ' || x_msg_data, l_api_name, fnd_log.level_unexpected);
1087: END IF;
1088:
1089: ROLLBACK TO resource_party_info;
1090: x_return_status := fnd_api.g_ret_sts_unexp_error;
1090: x_return_status := fnd_api.g_ret_sts_unexp_error;
1091: fnd_msg_pub.count_and_get(p_data => x_msg_data, p_count => x_msg_count);
1092: WHEN OTHERS THEN
1093: IF l_debug THEN
1094: debug('Exception: SQLCODE = ' || SQLCODE || ' : SQLERRM = ' || SQLERRM, l_api_name, fnd_log.level_unexpected);
1095: END IF;
1096:
1097: ROLLBACK TO resource_party_info;
1098: x_return_status := fnd_api.g_ret_sts_unexp_error;