[Home] [Help]
PACKAGE BODY: APPS.IGW_ORGANIZATIONS_PVT
Source
1 PACKAGE BODY Igw_Organizations_Pvt AS
2 --$Header: igwvorgb.pls 115.2 2002/11/14 18:47:29 vmedikon noship $
3
4 ---------------------------------------------------------------------------
5
6 G_PKG_NAME VARCHAR2(30) := 'IGW_ORGANIZATIONS_PVT';
7
8 ---------------------------------------------------------------------------
9
10 FUNCTION Get_Status(p_active_flag VARCHAR2)
11 RETURN varchar2 IS
12
13 l_api_name CONSTANT VARCHAR2(30) := 'Get_Status';
14
15 BEGIN
16
17 IF p_active_flag = 'Y' THEN
18
19 RETURN 'A';
20
21 END IF;
22
23 RETURN 'I';
24
25 EXCEPTION
26
27 WHEN others THEN
28
29 Fnd_Msg_Pub.Add_Exc_Msg
30 (
31 p_pkg_name => G_PKG_NAME,
32 p_procedure_name => l_api_name
33 );
34
35 RAISE Fnd_Api.G_Exc_Unexpected_Error;
36
37 END Get_Status;
38
39 ---------------------------------------------------------------------------
40
41 FUNCTION Get_Country_Code(p_country_name VARCHAR2)
42 RETURN varchar2 IS
43
44 l_api_name CONSTANT VARCHAR2(30) := 'Get_Country_Code';
45
46 l_country_code VARCHAR2(30);
47
48 BEGIN
49
50 IF p_country_name IS NOT NULL THEN
51
52 SELECT territory_code
53 INTO l_country_code
54 FROM fnd_territories_vl
55 WHERE territory_short_name = p_country_name;
56
57 END IF;
58
59 RETURN l_country_code;
60
61 EXCEPTION
62
63 WHEN no_data_found THEN
64
65 Fnd_Message.Set_Name('IGW','IGW_SS_COUNTRY_INVALID');
66 Fnd_Msg_Pub.Add;
67 RETURN null;
68
69 WHEN others THEN
70
71 Fnd_Msg_Pub.Add_Exc_Msg
72 (
73 p_pkg_name => G_PKG_NAME,
74 p_procedure_name => l_api_name
75 );
76
77 RAISE Fnd_Api.G_Exc_Unexpected_Error;
78
79 END Get_Country_Code;
80
81 ---------------------------------------------------------------------------
82
83 PROCEDURE Create_Organization
84 (
85 p_init_msg_list IN VARCHAR2 := Fnd_Api.G_False,
86 p_validate_only IN VARCHAR2 := Fnd_Api.G_False,
87 p_commit IN VARCHAR2 := Fnd_Api.G_False,
88 x_party_id OUT NOCOPY NUMBER,
89 p_organization_name IN VARCHAR2,
90 p_address1 IN VARCHAR2,
91 p_address2 IN VARCHAR2,
92 p_address3 IN VARCHAR2,
93 p_city IN VARCHAR2,
94 p_state IN VARCHAR2,
95 p_postal_code IN VARCHAR2,
96 p_county IN VARCHAR2,
97 p_country_name IN VARCHAR2,
98 p_active_flag IN VARCHAR2,
99 x_return_status OUT NOCOPY VARCHAR2,
100 x_msg_count OUT NOCOPY NUMBER,
101 x_msg_data OUT NOCOPY VARCHAR2
102 ) IS
103
104 l_api_name CONSTANT VARCHAR2(30) := 'Create_Organization';
105
106 l_status VARCHAR2(1);
107 l_country_code VARCHAR2(30);
108
109 l_party_number VARCHAR2(30);
110 l_profile_id NUMBER;
111 l_location_id NUMBER;
112 l_party_site_id NUMBER;
113 l_party_site_number VARCHAR2(30);
114
115 l_organization_rec Hz_Party_V2pub.Organization_Rec_Type;
116 l_location_rec Hz_Location_V2pub.Location_Rec_Type;
117 l_party_site_rec Hz_Party_Site_V2pub.Party_Site_Rec_Type;
118
119 BEGIN
120
121 /*
122 ** Establish Savepoint for Rollback
123 */
124
125 SAVEPOINT Create_Organization_Pvt;
126
127 /*
128 ** Initialize
129 */
130
131 x_return_status := Fnd_Api.G_Ret_Sts_Success;
132
133 IF Fnd_Api.To_Boolean(p_init_msg_list) THEN
134
135 Fnd_Msg_Pub.Initialize;
136
137 END IF;
138
139 l_status := Get_Status(p_active_flag);
140 l_country_code := Get_Country_Code(p_country_name);
141
142 IF Fnd_Msg_Pub.Count_Msg > 0 THEN
143
144 RAISE Fnd_Api.G_Exc_Error;
145
146 END IF;
147
148
149 /*
150 ** Discontinue processing if API invoked in validation mode
151 */
152
153 IF Fnd_Api.To_Boolean(p_validate_only) THEN
154
155 RETURN;
156
157 END IF;
158
159 l_organization_rec.organization_name := p_organization_name;
160 l_organization_rec.created_by_module := 'IGW';
161 l_organization_rec.party_rec.orig_system_reference := 'IGW';
162 l_organization_rec.party_rec.status := l_status;
163
164 IF Fnd_Profile.Value_Wnps('HZ_GENERATE_PARTY_NUMBER') = 'N' THEN
165
166 SELECT to_char(hz_party_number_s.nextval)
167 INTO l_organization_rec.party_rec.party_number
168 FROM dual;
169
170 END IF;
171
172 Hz_Party_V2pub.Create_Organization
173 (
174 p_init_msg_list => Fnd_Api.G_False,
175 p_organization_rec => l_organization_rec,
176 x_party_id => x_party_id,
177 x_party_number => l_party_number,
178 x_profile_id => l_profile_id,
179 x_return_status => x_return_status,
180 x_msg_count => x_msg_count,
181 x_msg_data => x_msg_data
182 );
183
184 IF Fnd_Msg_Pub.Count_Msg > 0 THEN
185
186 RAISE Fnd_Api.G_Exc_Error;
187
188 END IF;
189
190 l_location_rec.address1 := p_address1;
191 l_location_rec.address2 := p_address2;
192 l_location_rec.address3 := p_address3;
193 l_location_rec.city := p_city;
194 l_location_rec.state := p_state;
195 l_location_rec.postal_code := p_postal_code;
196 l_location_rec.county := p_county;
197 l_location_rec.country := l_country_code;
198 l_location_rec.created_by_module := 'IGW';
199
200 Hz_Location_V2pub.Create_Location
201 (
202 p_init_msg_list => Fnd_Api.G_False,
203 p_location_rec => l_location_rec,
204 x_location_id => l_location_id,
205 x_return_status => x_return_status,
206 x_msg_count => x_msg_count,
207 x_msg_data => x_msg_data
208 );
209
210 IF Fnd_Msg_Pub.Count_Msg > 0 THEN
211
212 RAISE Fnd_Api.G_Exc_Error;
213
214 END IF;
215
216 l_party_site_rec.party_id := x_party_id;
217 l_party_site_rec.location_id := l_location_id;
218 l_party_site_rec.identifying_address_flag := 'Y';
219 l_party_site_rec.created_by_module := 'IGW';
220
221 IF Fnd_Profile.Value_Wnps('HZ_GENERATE_PARTY_SITE_NUMBER') = 'N' THEN
222
223 SELECT to_char(hz_party_site_number_s.nextval)
224 INTO l_party_site_rec.party_site_number
225 FROM dual;
226
227 END IF;
228
229 Hz_Party_Site_V2pub.Create_Party_Site
230 (
231 p_init_msg_list => Fnd_Api.G_False,
232 p_party_site_rec => l_party_site_rec,
233 x_party_site_id => l_party_site_id,
234 x_party_site_number => l_party_site_number,
235 x_return_status => x_return_status,
236 x_msg_count => x_msg_count,
237 x_msg_data => x_msg_data
238 );
239
240 IF Fnd_Msg_Pub.Count_Msg > 0 THEN
241
242 RAISE Fnd_Api.G_Exc_Error;
243
244 END IF;
245
246
247 /*
248 ** Commit data if API invoked in commit mode
249 */
250
251 IF Fnd_Api.To_Boolean(p_commit) THEN
252
253 COMMIT;
254
255 END IF;
256
257 EXCEPTION
258
259 WHEN Fnd_Api.G_Exc_Error THEN
260
261 ROLLBACK TO Create_Organization_Pvt;
262
263 x_return_status := Fnd_Api.G_Ret_Sts_Error;
264
265 Fnd_Msg_Pub.Count_And_Get
266 (
267 p_count => x_msg_count,
268 p_data => x_msg_data
269 );
270
271 WHEN Fnd_Api.G_Exc_Unexpected_Error THEN
272
273 ROLLBACK TO Create_Organization_Pvt;
274
275 x_return_status := Fnd_Api.G_Ret_Sts_Unexp_Error;
276
277 Fnd_Msg_Pub.Count_And_Get
278 (
279 p_count => x_msg_count,
280 p_data => x_msg_data
281 );
282
283 WHEN others THEN
284
285 ROLLBACK TO Create_Organization_Pvt;
286
287 x_return_status := Fnd_Api.G_Ret_Sts_Unexp_Error;
288
289 Fnd_Msg_Pub.Add_Exc_Msg
290 (
291 p_pkg_name => G_PKG_NAME,
292 p_procedure_name => l_api_name
293 );
294
295 Fnd_Msg_Pub.Count_And_Get
296 (
297 p_count => x_msg_count,
298 p_data => x_msg_data
299 );
300
301 END Create_Organization;
302
303 ---------------------------------------------------------------------------
304
305 PROCEDURE Update_Organization
306 (
307 p_init_msg_list IN VARCHAR2 := Fnd_Api.G_False,
308 p_validate_only IN VARCHAR2 := Fnd_Api.G_False,
309 p_commit IN VARCHAR2 := Fnd_Api.G_False,
310 p_party_id IN NUMBER,
311 p_party_version IN NUMBER,
312 p_location_id IN NUMBER,
313 p_location_version IN NUMBER,
314 p_organization_name IN VARCHAR2,
315 p_address1 IN VARCHAR2,
316 p_address2 IN VARCHAR2,
317 p_address3 IN VARCHAR2,
318 p_city IN VARCHAR2,
319 p_state IN VARCHAR2,
320 p_postal_code IN VARCHAR2,
321 p_county IN VARCHAR2,
322 p_country_name IN VARCHAR2,
323 p_active_flag IN VARCHAR2,
324 x_return_status OUT NOCOPY VARCHAR2,
325 x_msg_count OUT NOCOPY NUMBER,
326 x_msg_data OUT NOCOPY VARCHAR2
327 ) IS
328
329 l_api_name CONSTANT VARCHAR2(30) := 'Update_Organization';
330
331 l_status VARCHAR2(1);
332 l_country_code VARCHAR2(30);
333
334 l_profile_id NUMBER;
335 l_party_version NUMBER := p_party_version;
336 l_location_version NUMBER := p_location_version;
337
338 l_organization_rec Hz_Party_V2pub.Organization_Rec_Type;
339 l_location_rec Hz_Location_V2pub.Location_Rec_Type;
340 l_party_site_rec Hz_Party_Site_V2pub.Party_Site_Rec_Type;
341
342 BEGIN
343
344 /*
345 ** Establish Savepoint for Rollback
346 */
347
348 SAVEPOINT Update_Organization_Pvt;
349
350 /*
351 ** Initialize
352 */
353
354 x_return_status := Fnd_Api.G_Ret_Sts_Success;
355
356 IF Fnd_Api.To_Boolean(p_init_msg_list) THEN
357
358 Fnd_Msg_Pub.Initialize;
359
360 END IF;
361
362 l_status := Get_Status(p_active_flag);
363 l_country_code := Get_Country_Code(p_country_name);
364
365 IF Fnd_Msg_Pub.Count_Msg > 0 THEN
366
367 RAISE Fnd_Api.G_Exc_Error;
368
369 END IF;
370
371
372 /*
373 ** Discontinue processing if API invoked in validation mode
374 */
375
376 IF Fnd_Api.To_Boolean(p_validate_only) THEN
377
378 RETURN;
379
380 END IF;
381
382 l_organization_rec.party_rec.party_id := p_party_id;
383 l_organization_rec.organization_name := p_organization_name;
384 l_organization_rec.created_by_module := 'IGW';
385 l_organization_rec.party_rec.orig_system_reference := 'IGW';
386 l_organization_rec.party_rec.status := l_status;
387
388 Hz_Party_V2pub.Update_Organization
389 (
390 p_init_msg_list => Fnd_Api.G_False,
391 p_organization_rec => l_organization_rec,
392 p_party_object_version_number => l_party_version,
393 x_profile_id => l_profile_id,
394 x_return_status => x_return_status,
395 x_msg_count => x_msg_count,
396 x_msg_data => x_msg_data
397 );
398
399 IF Fnd_Msg_Pub.Count_Msg > 0 THEN
400
401 RAISE Fnd_Api.G_Exc_Error;
402
403 END IF;
404
405 l_location_rec.location_id := p_location_id;
406 l_location_rec.address1 := p_address1;
407 l_location_rec.address2 := p_address2;
408 l_location_rec.address3 := p_address3;
409 l_location_rec.city := p_city;
410 l_location_rec.state := p_state;
411 l_location_rec.postal_code := p_postal_code;
412 l_location_rec.county := p_county;
413 l_location_rec.country := l_country_code;
414 l_location_rec.created_by_module := 'IGW';
415
416 Hz_Location_V2pub.Update_Location
417 (
418 p_init_msg_list => Fnd_Api.G_False,
419 p_location_rec => l_location_rec,
420 p_object_version_number => l_location_version,
421 x_return_status => x_return_status,
422 x_msg_count => x_msg_count,
423 x_msg_data => x_msg_data
424 );
425
426 IF Fnd_Msg_Pub.Count_Msg > 0 THEN
427
428 RAISE Fnd_Api.G_Exc_Error;
429
430 END IF;
431
432 /*
433 ** Commit data if API invoked in commit mode
434 */
435
436 IF Fnd_Api.To_Boolean(p_commit) THEN
437
438 COMMIT;
439
440 END IF;
441
442 EXCEPTION
443
444 WHEN Fnd_Api.G_Exc_Error THEN
445
446 ROLLBACK TO Update_Organization_Pvt;
447
448 x_return_status := Fnd_Api.G_Ret_Sts_Error;
449
450 Fnd_Msg_Pub.Count_And_Get
451 (
452 p_count => x_msg_count,
453 p_data => x_msg_data
454 );
455
456 WHEN Fnd_Api.G_Exc_Unexpected_Error THEN
457
458 ROLLBACK TO Update_Organization_Pvt;
459
460 x_return_status := Fnd_Api.G_Ret_Sts_Unexp_Error;
461
462 Fnd_Msg_Pub.Count_And_Get
463 (
464 p_count => x_msg_count,
465 p_data => x_msg_data
466 );
467
468 WHEN others THEN
469
470 ROLLBACK TO Update_Organization_Pvt;
471
472 x_return_status := Fnd_Api.G_Ret_Sts_Unexp_Error;
473
474 Fnd_Msg_Pub.Add_Exc_Msg
475 (
476 p_pkg_name => G_PKG_NAME,
477 p_procedure_name => l_api_name
478 );
479
480 Fnd_Msg_Pub.Count_And_Get
481 (
482 p_count => x_msg_count,
483 p_data => x_msg_data
484 );
485
486 END Update_Organization;
487
488 ---------------------------------------------------------------------------
489
490 END Igw_Organizations_Pvt;