DBA Data[Home] [Help]

PACKAGE BODY: APPS.PA_MERGE_PKG

Source


1 PACKAGE BODY PA_MERGE_PKG AS
2 --$Header: PAXTCAMB.pls 120.0 2005/05/30 15:00:29 appldev noship $
3 --
4 PROCEDURE party_merge(
5 p_entity_name                IN   VARCHAR2,
6 p_from_id                    IN   NUMBER,
7 x_to_id                      OUT  NOCOPY  NUMBER,
8 p_from_fk_id                 IN   NUMBER,
9 p_to_fk_id                   IN   NUMBER,
10 p_parent_entity_name         IN   VARCHAR2,
11 p_batch_id                   IN   NUMBER,
12 p_batch_party_id             IN   NUMBER,
13 x_return_status              OUT  NOCOPY  VARCHAR2)
14 IS
15 
16 begin
17 
18   -- This API is currently not doing anything. It just rejects the merge.
19   -- We do this to avoid merge in TCA for 11.5.9. For 11.5.9, we are not
20   -- ready to merge Project entities. So if a party_id referenced in projects
21   -- is merged, we reject it. This API will be enhanced immediately after
22   -- 11.5.9 to support the merge.
23 
24   x_return_status := fnd_api.g_ret_sts_error;
25 
26   fnd_message.set_name ('PA', 'PA_REJECT_MERGE');
27   FND_MSG_PUB.add;
28 
29 END party_merge;
30 
31 PROCEDURE control_items_owner_id(
32   p_entity_name                IN   VARCHAR2,
33   p_from_id                    IN   NUMBER,
34   x_to_id                      OUT  NOCOPY  NUMBER,
35   p_from_fk_id                 IN   NUMBER,
36   p_to_fk_id                   IN   NUMBER,
37   p_parent_entity_name         IN   VARCHAR2,
38   p_batch_id                   IN   NUMBER,
39   p_batch_party_id             IN   NUMBER,
40   x_return_status              OUT  NOCOPY  VARCHAR2)
41 IS
42 BEGIN
43   x_return_status := FND_API.G_RET_STS_SUCCESS;
44 
45   IF (p_from_fk_id <> p_to_fk_id) THEN
46     UPDATE pa_control_items
47     SET owner_id = p_to_fk_id
48     WHERE owner_id = p_from_fk_id;
49 
50     x_to_id := p_from_id;
51 
52   END IF;
53 END control_items_owner_id;
54 
55 PROCEDURE control_items_last_mod_by_id(
56   p_entity_name                IN   VARCHAR2,
57   p_from_id                    IN   NUMBER,
58   x_to_id                      OUT  NOCOPY  NUMBER,
59   p_from_fk_id                 IN   NUMBER,
60   p_to_fk_id                   IN   NUMBER,
61   p_parent_entity_name         IN   VARCHAR2,
62   p_batch_id                   IN   NUMBER,
63   p_batch_party_id             IN   NUMBER,
64   x_return_status              OUT  NOCOPY  VARCHAR2)
65 IS
66 BEGIN
67   x_return_status := FND_API.G_RET_STS_SUCCESS;
68 
69   IF (p_from_fk_id <> p_to_fk_id) THEN
70     UPDATE pa_control_items
71     SET last_modified_by_id = p_to_fk_id
72     WHERE last_modified_by_id = p_from_fk_id;
73 
74     x_to_id := p_from_id;
75 
76   END IF;
77 END control_items_last_mod_by_id;
78 
79 PROCEDURE control_items_closed_by_id(
80   p_entity_name                IN   VARCHAR2,
81   p_from_id                    IN   NUMBER,
82   x_to_id                      OUT  NOCOPY  NUMBER,
83   p_from_fk_id                 IN   NUMBER,
84   p_to_fk_id                   IN   NUMBER,
85   p_parent_entity_name         IN   VARCHAR2,
86   p_batch_id                   IN   NUMBER,
87   p_batch_party_id             IN   NUMBER,
88   x_return_status              OUT  NOCOPY  VARCHAR2)
89 IS
90 BEGIN
91   x_return_status := FND_API.G_RET_STS_SUCCESS;
92 
93   IF (p_from_fk_id <> p_to_fk_id) THEN
94     UPDATE pa_control_items
95     SET closed_by_id = p_to_fk_id
96     WHERE closed_by_id = p_from_fk_id;
97 
98     x_to_id := p_from_id;
99 
100   END IF;
101 END control_items_closed_by_id;
102 
103 PROCEDURE ci_actions_assigned_to(
104   p_entity_name                IN   VARCHAR2,
105   p_from_id                    IN   NUMBER,
106   x_to_id                      OUT  NOCOPY  NUMBER,
107   p_from_fk_id                 IN   NUMBER,
108   p_to_fk_id                   IN   NUMBER,
109   p_parent_entity_name         IN   VARCHAR2,
110   p_batch_id                   IN   NUMBER,
111   p_batch_party_id             IN   NUMBER,
112   x_return_status              OUT  NOCOPY  VARCHAR2)
113 IS
114 BEGIN
115   x_return_status := FND_API.G_RET_STS_SUCCESS;
116 
117   IF (p_from_fk_id <> p_to_fk_id) THEN
118     UPDATE pa_ci_actions
119     SET assigned_to = p_to_fk_id
120     WHERE assigned_to = p_from_fk_id;
121 
122     x_to_id := p_from_id;
123 
124   END IF;
125 END ci_actions_assigned_to;
126 
127 PROCEDURE ci_impacts_implemented_by(
128   p_entity_name                IN   VARCHAR2,
129   p_from_id                    IN   NUMBER,
130   x_to_id                      OUT  NOCOPY  NUMBER,
131   p_from_fk_id                 IN   NUMBER,
132   p_to_fk_id                   IN   NUMBER,
133   p_parent_entity_name         IN   VARCHAR2,
134   p_batch_id                   IN   NUMBER,
135   p_batch_party_id             IN   NUMBER,
136   x_return_status              OUT  NOCOPY  VARCHAR2)
137 IS
138   l_dummy NUMBER;
139 BEGIN
140   x_return_status := FND_API.G_RET_STS_SUCCESS;
141 
142   IF (p_from_fk_id <> p_to_fk_id) THEN
143     UPDATE pa_ci_impacts
144     SET implemented_by = p_to_fk_id
145     WHERE implemented_by = p_from_fk_id;
146 
147     x_to_id := p_from_id;
148 
149   END IF;
150 END ci_impacts_implemented_by;
151 
152 PROCEDURE project_parties_res_src_id(
153   p_entity_name                IN   VARCHAR2,
154   p_from_id                    IN   NUMBER,
155   x_to_id                      OUT  NOCOPY  NUMBER,
156   p_from_fk_id                 IN   NUMBER,
157   p_to_fk_id                   IN   NUMBER,
158   p_parent_entity_name         IN   VARCHAR2,
159   p_batch_id                   IN   NUMBER,
160   p_batch_party_id             IN   NUMBER,
161   x_return_status              OUT  NOCOPY  VARCHAR2)
162 IS
163   l_dummy NUMBER;
164 BEGIN
165   x_return_status := FND_API.G_RET_STS_SUCCESS;
166 
167   IF (p_from_fk_id <> p_to_fk_id) THEN
168     BEGIN
169 --Looking for a grant from PA for the party being merged
170       SELECT 1
171       INTO l_dummy
172       FROM fnd_grants g, fnd_objects o
173       WHERE o.application_id = 275
174         AND g.object_id = o.object_id
175         AND g.grantee_type = 'USER'
176         AND g.grantee_key = 'HZ_PARTY:'||p_from_fk_id
177         AND ROWNUM = 1;
178 
179 --Veto if grant is found for the same party, because grants are not yet merged
180       x_return_status := FND_API.G_RET_STS_ERROR;
181 
182       FND_MESSAGE.SET_NAME('PA', 'PA_REJECT_MERGE');
183       FND_MSG_PUB.add;
184 
185     EXCEPTION
186       WHEN NO_DATA_FOUND THEN
187         UPDATE pa_project_parties
188         SET resource_source_id = p_to_fk_id
189         WHERE resource_source_id = p_from_fk_id
190           AND resource_type_id = 112;
191 
192       x_to_id := p_from_id;
193 
194     END;
195   END IF;
196 END project_parties_res_src_id;
197 
198 PROCEDURE update_project_parties_res_id(
199   p_from_resource_id IN NUMBER,
200   p_to_resource_id IN NUMBER,
201   x_return_status OUT NOCOPY VARCHAR2)
202 IS
203 BEGIN
204   x_return_status := FND_API.G_RET_STS_SUCCESS;
205 
206   IF (p_from_resource_id <> p_to_resource_id) THEN
207     UPDATE pa_project_parties
208     SET resource_id = p_to_resource_id
209     WHERE resource_id = p_from_resource_id;
210   END IF;
211 END update_project_parties_res_id;
212 
213 end;