The following lines contain the word 'select', 'insert', 'update' or 'delete':
| Update_Person_Language
|
| DESCRIPTION
| If the API finds a language preference for the given party then it updates
| the primary indicator to 'N' then it sets the new language as the primary
| language. If it does not find any language preference for the party then
| it creates a new one and makes it primary
|
| REFERENCED APIS
| This API calls the following APIs
| - HZ_PERSON_INFO_V2PUB.create_person_language if no row exists
| - HZ_PERSON_INFO_V2PUB.update_person_language if row exists
+======================================================================*/
PROCEDURE Update_Person_Language(
p_party_id IN NUMBER,
p_language_name IN VARCHAR2,
p_created_by_module IN VARCHAR2,
x_debug_buf OUT NOCOPY VARCHAR2,
x_return_status OUT NOCOPY VARCHAR2,
x_msg_count OUT NOCOPY NUMBER,
x_msg_data OUT NOCOPY VARCHAR2
)
IS
CURSOR c_party_type (p_party_id number) is
SELECT PARTY_TYPE
FROM HZ_PARTIES
WHERE PARTY_ID = p_party_id;
SELECT SUBJECT_ID
FROM HZ_RELATIONSHIPS
WHERE PARTY_ID = p_party_id
AND SUBJECT_TYPE = 'PERSON';
x_debug_buf := x_debug_buf || 'enter ibu_hz_person.update_person_language';
SAVEPOINT Update_Person_Language;
SELECT language_use_reference_id, object_version_number
INTO l_id, l_object_version_number
FROM hz_person_language
WHERE party_id=l_party_id and primary_language_indicator='Y';
x_debug_buf := x_debug_buf || 'Call HZ_PERSON_INFO_V2PUB.update_person_language API to unset primary';
hz_person_info_v2pub.update_person_language(
p_person_language_rec => l_per_language_rec,
p_object_version_number => l_object_version_number,
x_return_status => x_return_status,
x_msg_count => x_msg_count,
x_msg_data => x_msg_data);
x_debug_buf := x_debug_buf || ' After Call HZ_PERSON_INFO_V2PUB.update_person_language APIto unset primary';
SELECT language_use_reference_id, object_version_number
INTO l_id, l_object_version_number
FROM hz_person_language
WHERE party_id=l_party_id
AND language_name=p_language_name
AND status = 'A';
x_debug_buf := x_debug_buf || 'Call HZ_PERSON_INFO_V2PUB.update_person_language API to set primary';
hz_person_info_v2pub.update_person_language(
p_person_language_rec => l_per_language_rec2,
p_object_version_number => l_object_version_number,
x_return_status => x_return_status,
x_msg_count => x_msg_count,
x_msg_data => x_msg_data);
x_debug_buf := x_debug_buf || 'After Call HZ_PERSON_INFO_V2PUB.update_person_language API to set primary';
ROLLBACK TO Update_Person_Language;
ROLLBACK TO Update_Person_Language;
ROLLBACK TO Update_Person_Language;
END update_person_language;