1 package body FEM_PARTY_PROFIT_MERGE_PUB AS
2 -- $Header: femprfMB.pls 120.0 2005/06/06 20:57:50 appldev noship $
3
4
5
6 procedure merge_profitability (
7 p_Entity_name IN VARCHAR2, -- Name of the Entity being merged
8 p_from_id IN NUMBER, -- PK of the Party ID being merged
9 p_to_id IN OUT NOCOPY NUMBER, -- PK of the target Party ID; returned if duplicate
10 p_From_FK_id IN NUMBER, -- same as p_from_id
11 p_To_FK_id IN NUMBER, -- same as p_to_id
12 p_Parent_Entity_name IN VARCHAR2, -- should always be 'HZ_PARTIES'
13 p_batch_id IN NUMBER, -- Batch ID running the merge
14 p_Batch_Party_id IN NUMBER, -- same as the From Party ID
15 x_return_status OUT NOCOPY VARCHAR2)
16
17
18 IS
19
20 BEGIN
21
22 x_return_status := FND_API.G_RET_STS_SUCCESS;
23
24 /* Perform the Merge */
25
26 /* If Parent (i.e., Party ID) has NOT changed, then nothing needs to be done. Set
27 Merged To ID is the same as Merged From ID and Return */
28
29 IF p_from_FK_id = p_to_FK_id THEN
30 p_to_id := p_from_id;
31
32 RETURN;
33 END IF;
34
35 /********************************************************************************
36 If the Party_ID (Parent) has changed, then we are deleting the existing profitability of the "From"
37 Party_ID and replacing with the profitability of the "To" Party_ID. If the "To" Party_ID does
38 not exist, we will just update the "From" Party_ID to the new Party ID
39 *******************************************************************************/
40
41 IF p_from_FK_id <> p_to_FK_id THEN
42
43 IF p_parent_entity_name = 'HZ_PARTIES' THEN
44
45 /*delete the existing target party ID */
46 DELETE FROM FEM_PARTY_PROFITABILITY
47 WHERE party_id = p_To_Fk_id;
48
49
50 /* Update the "From" Party_ID to be equal to the new target */
51 UPDATE FEM_PARTY_PROFITABILITY
52 SET party_id = p_To_FK_id,
53 LAST_UPDATED_BY = hz_utility_pub.user_id,
54 LAST_UPDATE_DATE = hz_utility_pub.last_update_date,
55 LAST_UPDATE_LOGIN = hz_utility_pub.last_update_login
56 WHERE party_id = p_From_FK_id;
57 RETURN;
58
59
60 END IF;
61 END IF;
62
63 EXCEPTION
64 WHEN OTHERS THEN
65 FND_MESSAGE.SET_NAME('AR','HZ_API_OTHERS_EXCEP');
66 FND_MESSAGE.SET_TOKEN('ERROR',SQLERRM);
67 FND_MSG_PUB.ADD;
68 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
69
70 END merge_profitability;
71
72
73 END FEM_PARTY_PROFIT_MERGE_PUB;