DBA Data[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;