1 PACKAGE BODY UMX_PARTY_MERGE AS
2 /* $Header: UMXPMRGB.pls 115.1 2004/07/27 18:54:16 cmehta noship $ */
3
4 PROCEDURE MERGE_PARTIES
5 (
6 p_entity_name IN VARCHAR2,
7 p_from_id IN NUMBER,
8 p_to_id OUT NOCOPY NUMBER,
9 p_from_fk_id IN NUMBER,
10 p_to_fk_id IN NUMBER,
11 p_parent_entity_name IN VARCHAR2,
12 p_batch_id IN NUMBER,
13 p_batch_party_id IN NUMBER,
14 p_return_status out NOCOPY Varchar2
15 ) IS
16
17 CURSOR GET_STATUS IS SELECT STATUS_CODE FROM UMX_REG_REQUESTS
18 WHERE REQUESTED_FOR_PARTY_ID = p_from_fk_id
19 and status_code = 'PENDING';
20 l_status_code UMX_REG_REQUESTS.STATUS_CODE%TYPE;
21
22 BEGIN
23
24 -- Set the return status to success unless an error occurs
25 p_return_status := FND_API.G_RET_STS_SUCCESS;
26
27 -- Check for the request status. If it is Pending, don't allow the merge
28 open GET_STATUS;
29 fetch GET_STATUS into l_status_code;
30 if GET_STATUS%FOUND then
31 p_return_status := FND_API.G_RET_STS_ERROR;
32 FND_MESSAGE.SET_NAME('FND','UMX_MERGE_NOT_ALLOWED');
33 FND_MSG_PUB.ADD;
34 close GET_STATUS;
35 return;
36 else
37 close GET_STATUS;
38 end if;
39
40 -- If the parent has not changed, no need to do anything
41
42 if p_from_FK_id = p_to_FK_id then
43
44 return;
45
46 else
47
48 if p_parent_entity_name = 'HZ_PARTIES' then
49 -- Update the table with the new party_id
50 update umx_reg_requests set requested_for_party_id = p_To_FK_id,
51 last_update_date = hz_utility_pub.last_update_date,
52 last_updated_by = hz_utility_pub.user_id,
53 last_update_login = hz_utility_pub.last_update_login
54 where requested_for_party_id = p_From_FK_id;
55 return;
56 end if;
57 end if;
58
59 EXCEPTION
60 WHEN OTHERS THEN
61 FND_MESSAGE.SET_NAME('AR', 'HZ_API_OTHERS_EXCEP');
62 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
63 FND_MSG_PUB.ADD;
64 p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
65
66 END MERGE_PARTIES;
67
68 end UMX_PARTY_MERGE;