[Home] [Help]
PACKAGE BODY: APPS.FA_VENDORMERGE_GRP
Source
1 PACKAGE BODY FA_VendorMerge_GRP AS
2 /* $Header: FAPVDMGB.pls 120.1.12010000.2 2009/07/19 12:53:22 glchen ship $ */
3
4 --
5 -- Global Constant Variables
6 --
7 G_PKG_NAME CONSTANT varchar2(30) := 'FA_VendorMerge_GRP';
8 G_API_NAME CONSTANT varchar2(30) := 'Vendor_Merge';
9 G_API_VERSION CONSTANT number := 1.0;
10
11 g_log_level_rec fa_api_types.log_level_rec_type;
12
13 PROCEDURE Merge_Vendor(
14 p_api_version IN NUMBER
15 , p_init_msg_list IN VARCHAR2 default FND_API.G_FALSE
16 , p_commit IN VARCHAR2 default FND_API.G_FALSE
17 , p_validation_level IN NUMBER default FND_API.G_VALID_LEVEL_FULL
18 , x_return_status OUT NOCOPY VARCHAR2
19 , x_msg_count OUT NOCOPY NUMBER
20 , x_msg_data OUT NOCOPY VARCHAR2
21 , p_vendor_id IN NUMBER
22 , p_dup_vendor_id IN NUMBER
23 , p_vendor_site_id IN NUMBER
24 , p_dup_vendor_site_id IN NUMBER
25 , p_party_id IN NUMBER
26 , p_dup_party_id IN NUMBER
27 , p_party_site_id IN NUMBER
28 , p_dup_party_site_id IN NUMBER
29 , p_segment1 IN VARCHAR2 -- Vendor Number
30 , p_dup_segment1 IN VARCHAR2
31 , p_vendor_name IN VARCHAR2 default NULL
32 ) IS
33
34
35 l_calling_fn varchar2(50) := 'FA_VendorMerge_GRP.Merge_Vendor';
36 l_location varchar2(50);
37 l_row_count binary_integer;
38 --
39 -- This can be removed if parameters for vendor name are added
40 --
41 l_vendor_name varchar2(240);
42
43 CURSOR c_get_vendor_name IS
44 select vendor_name
45 from po_vendors
46 where vendor_id = p_vendor_id;
47 --
48 --
49 --
50
51 mrg_err exception;
52
53
54 BEGIN
55 if (g_log_level_rec.statement_level) then
56 fa_debug_pkg.add(l_calling_fn, 'BEGIN', to_char(p_vendor_id)||':'||to_char(p_dup_vendor_id)||':'||
57 to_char(p_vendor_site_id)||':'||to_char(p_dup_vendor_site_id),
58 p_log_level_rec => g_log_level_rec);
59 end if;
60
61 SAVEPOINT sp_vendor_merge;
62
63 if (not g_log_level_rec.initialized) then
64 if (NOT fa_util_pub.get_log_level_rec (
65 x_log_level_rec => g_log_level_rec)) then
66
67 if (g_log_level_rec.statement_level) then
68 fa_debug_pkg.add(l_calling_fn, 'Failed calling', 'fa_util_pub.get_log_level_rec',
69 p_log_level_rec => g_log_level_rec);
70 end if;
71
72 raise mrg_err;
73 end if;
74 end if;
75
76 l_row_count := 0;
77
78 l_location := 'Calling fnd_api.compatible_api_call';
79 -- Check version of the API
80 -- Standard call to check for API call compatibility.
81 if NOT fnd_api.compatible_api_call (
82 G_API_VERSION,
83 p_api_version,
84 G_API_NAME,
85 G_PKG_NAME) then
86 if (g_log_level_rec.statement_level) then
87 fa_debug_pkg.add(l_calling_fn, 'Failed calling', 'fnd_api.compatible_api_call',
88 p_log_level_rec => g_log_level_rec);
89 end if;
90
91 raise mrg_err;
92 end if;
93
94
95 --
96 -- This can be removed if parameters for vendor name are added
97 --
98 if (p_vendor_name is null) then
99 l_location := 'Getting vendor info';
100 open c_get_vendor_name;
101 fetch c_get_vendor_name INTO l_vendor_name;
102
103 if c_get_vendor_name%notfound then
104 close c_get_vendor_name;
105
106 if (g_log_level_rec.statement_level) then
107 fa_debug_pkg.add(l_calling_fn, 'Failed getting', 'vendor informatioin',
108 p_log_level_rec => g_log_level_rec);
109 end if;
110
111 raise mrg_err;
112 end if;
113
114 close c_get_vendor_name;
115 else
116 l_vendor_name := p_vendor_name;
117 end if;
118 --
119 --
120 --
121
122 if (g_log_level_rec.statement_level) then
123 fa_debug_pkg.add(l_calling_fn, 'Start Updating', 'processing...',
124 p_log_level_rec => g_log_level_rec);
125 end if;
126
127 -- **********************************************************
128 -- Updating FA_INS_LINES : VENDOR_ID
129 -- **********************************************************
130 l_location := 'FA_INS_LINES';
131 update FA_INS_LINES
132 set VENDOR_ID = p_vendor_id
133 where VENDOR_ID = p_dup_vendor_id;
134
135 -- **********************************************************
136 -- Updating FA_INS_MST_POLS : VENDOR_ID, VENDOR_SITE_ID
137 -- **********************************************************
138 l_location := 'FA_INS_MST_POLS';
139 update FA_INS_MST_POLS
140 set VENDOR_ID = p_vendor_id
141 , VENDOR_SITE_ID = decode(VENDOR_SITE_ID, p_dup_vendor_site_id, p_vendor_site_id, VENDOR_SITE_ID)
142 where VENDOR_ID = p_dup_vendor_id
143 and nvl(VENDOR_SITE_ID, 0) = decode(VENDOR_SITE_ID, NULL, 0, p_dup_vendor_site_id);
144
145 -- **********************************************************
146 -- Updating FA_INS_POLICIES : VENDOR_ID, VENDOR_SITE_ID
147 -- **********************************************************
148 l_location := 'FA_INS_POLICIES';
149 update FA_INS_POLICIES
150 set VENDOR_ID = p_vendor_id
151 , VENDOR_SITE_ID = decode(VENDOR_SITE_ID, p_dup_vendor_site_id, p_vendor_site_id, VENDOR_SITE_ID)
152 where VENDOR_ID = p_dup_vendor_id
153 and nvl(VENDOR_SITE_ID, 0) = decode(VENDOR_SITE_ID, NULL, 0, p_dup_vendor_site_id);
154
155 -- **********************************************************
156 -- Updating FA_INS_VALUES : VENDOR_ID
157 -- **********************************************************
158 l_location := 'FA_INS_VALUES';
159 update FA_INS_VALUES
160 set VENDOR_ID = p_vendor_id
161 where VENDOR_ID = p_dup_vendor_id;
162
163 -- **********************************************************
164 -- Updating FA_MAINT_EVENTS : VENDOR_ID
165 -- **********************************************************
166 l_location := 'FA_MAINT_EVENTS';
167 update FA_MAINT_EVENTS
168 set VENDOR_ID = p_vendor_id
169 where VENDOR_ID = p_dup_vendor_id;
170
171 -- **********************************************************
172 -- Updating FA_MAINT_SCHEDULE_DTL : VENDOR_ID, VENDOR_NAME
173 -- **********************************************************
174 l_location := 'FA_MAINT_SCHEDULE_DTL';
175 update FA_MAINT_SCHEDULE_DTL
176 set VENDOR_ID = p_vendor_id
177 , VENDOR_NAME = decode(VENDOR_NAME, NULL, NULL, l_vendor_name)
178 , VENDOR_NUMBER = decode(VENDOR_NUMBER, NULL, NULL, p_segment1)
179 where VENDOR_ID = p_dup_vendor_id;
180
181 -- **********************************************************
182 -- Updating FA_WARRANTIES : PO_VENDOR_ID
183 -- **********************************************************
184 l_location := 'FA_WARRANTIES';
185 update FA_WARRANTIES
186 set PO_VENDOR_ID = p_vendor_id
187 where PO_VENDOR_ID = p_dup_vendor_id;
188
189 -- **********************************************************
190 -- Updating FA_LEASES : LESSOR_ID, LESSOR_SITE_ID
191 -- **********************************************************
192 l_location := 'FA_LEASES';
193 update FA_LEASES
194 set LESSOR_ID = p_vendor_id
195 , LESSOR_SITE_ID = decode(LESSOR_SITE_ID, p_dup_vendor_site_id, p_vendor_site_id, LESSOR_SITE_ID)
196 where LESSOR_ID = p_dup_vendor_id
197 and nvl(LESSOR_SITE_ID, 0) = decode(LESSOR_SITE_ID, NULL, 0, p_dup_vendor_site_id);
198
199 -- **********************************************************
200 -- Updating FA_LEASE_PAYMENT_ITEMS: LESSOR_ID, LESSOR_SITE_ID
201 -- **********************************************************
202 l_location := 'FA_LEASE_PAYMENT_ITEMS';
203 update FA_LEASE_PAYMENT_ITEMS
204 set LESSOR_ID = p_vendor_id
205 , LESSOR_SITE_ID = p_vendor_site_id
206 where LESSOR_ID = p_dup_vendor_id
207 and LESSOR_SITE_ID = p_dup_vendor_site_id;
208
209 -- **********************************************************
210 -- Updating FA_ASSET_INVOICES : PO_VENDOR_ID
211 -- **********************************************************
212 l_location := 'FA_ASSET_INVOICES';
213 update FA_ASSET_INVOICES
214 set PO_VENDOR_ID = p_vendor_id
215 where PO_VENDOR_ID = p_dup_vendor_id;
216
217 -- **********************************************************
218 -- Updating FA_MC_ASSET_INVOICES : PO_VENDOR_ID
219 -- **********************************************************
220 l_location := 'FA_MC_ASSET_INVOICES';
221 update FA_MC_ASSET_INVOICES
222 set PO_VENDOR_ID = p_vendor_id
223 where PO_VENDOR_ID = p_dup_vendor_id;
224
225 -- **********************************************************
226 -- Updating FA_MASS_ADDITIONS : PO_VENDOR_ID, LESSOR_ID, VENDOR_NUMBER
227 -- **********************************************************
228 l_location := 'FA_MASS_ADDITIONS';
229 update FA_MASS_ADDITIONS
230 set PO_VENDOR_ID = decode(PO_VENDOR_ID, p_dup_vendor_id, p_vendor_id, PO_VENDOR_ID)
231 , LESSOR_ID = decode(LESSOR_ID, p_dup_vendor_id, p_vendor_id, LESSOR_ID)
232 , VENDOR_NUMBER = decode(PO_VENDOR_ID, p_dup_vendor_id,
233 decode(VENDOR_NUMBER, NULL, NULL, p_segment1),
234 VENDOR_NUMBER)
235 where (PO_VENDOR_ID = p_dup_vendor_id
236 or LESSOR_ID = p_dup_vendor_id);
237
238
239 -- **********************************************************
240 --
241 -- ITF(RXi) tables
242 --
243 -- **********************************************************
244
245 --
246 -- Updating FA_ADDITION_REP_ITF : VENDOR_NUMBER
247 --
248 l_location := 'FA_ADDITION_REP_ITF';
249 update FA_ADDITION_REP_ITF
250 set VENDOR_NUMBER = p_segment1
251 where VENDOR_NUMBER = p_dup_segment1;
252
253 --
254 -- Updating FA_MAINT_REP_ITF : VENDOR_NAME, VENDOR_NUMBER
255 --
256 l_location := 'FA_MAINT_REP_ITF';
257 update FA_MAINT_REP_ITF
258 set VENDOR_NAME = l_vendor_name
259 , VENDOR_NUMBER = p_segment1
260 where VENDOR_NUMBER = p_dup_segment1;
261
262 --
263 -- Updating FA_MASSADD_REP_ITF : VENDOR_NAME, VENDOR_NUMBER
264 --
265 l_location := 'FA_MASSADD_REP_ITF';
266 update FA_MASSADD_REP_ITF
267 set VENDOR_NAME = l_vendor_name
268 , VENDOR_NUMBER = p_segment1
269 where VENDOR_NUMBER = p_dup_segment1;
270
271
272 -- Commenting out as this is not necessary
273 -- if FND_API.to_boolean(p_commit) then
274 -- COMMIT;
275 -- end if;
276
277 x_return_status := FND_API.G_RET_STS_SUCCESS;
278
279 if (g_log_level_rec.statement_level) then
280 fa_debug_pkg.add(l_calling_fn, 'End', 'SUCCESS',
281 p_log_level_rec => g_log_level_rec);
282 end if;
283
284 EXCEPTION
285 WHEN mrg_err THEN
286 ROLLBACK TO sp_vendor_merge;
287
288 fa_srvr_msg.add_message(calling_fn => l_calling_fn,
289 p_log_level_rec => g_log_level_rec);
290 FND_MSG_PUB.count_and_get(p_count => x_msg_count,
291 p_data => x_msg_data);
292 x_return_status := FND_API.G_RET_STS_ERROR;
293
294 WHEN OTHERS THEN
295 ROLLBACK TO sp_vendor_merge;
296
297 if (g_log_level_rec.statement_level) then
298 fa_debug_pkg.add(l_calling_fn, 'EXCEPTION(OTHERS)', l_location,
299 p_log_level_rec => g_log_level_rec);
300 end if;
301
302 fa_srvr_msg.add_message(calling_fn => l_calling_fn,
303 name => 'FA_SHARED_ACTION_TABLE',
304 token1 => 'ACTION',
305 value1 => 'Update',
306 token2 => 'TABLE',
307 value2 => l_location,
308 p_log_level_rec => g_log_level_rec);
309
310 fa_srvr_msg.add_sql_error(calling_fn => l_calling_fn,
311 p_log_level_rec => g_log_level_rec);
312
313 FND_MSG_PUB.count_and_get(p_count => x_msg_count,
314 p_data => x_msg_data);
315 x_return_status := FND_API.G_RET_STS_ERROR;
316
317 END Merge_Vendor;
318
319 END FA_VENDORMERGE_GRP;