DBA Data[Home] [Help]

PACKAGE BODY: APPS.FEM_PARTY_PROFIT_MERGE_PUB

Source


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;