DBA Data[Home] [Help]

PACKAGE BODY: APPS.AP_POL_LOCATIONS_PKG

Source


1 package body AP_POL_LOCATIONS_PKG as
2 /* $Header: apwplocb.pls 120.4 2005/11/16 04:24:34 rlangi noship $ */
3 
4 /*=======================================================================+
5  | Standard handlers
6  *=======================================================================*/
7 procedure INSERT_ROW (
8   X_ROWID in out nocopy VARCHAR2,
9   X_LOCATION_ID in NUMBER,
10   X_TERRITORY_CODE in VARCHAR2,
11   X_UNDEFINED_LOCATION_FLAG in VARCHAR2,
12   X_END_DATE in DATE,
13   X_LOCATION in VARCHAR2,
14   X_DESCRIPTION in VARCHAR2,
15   X_STATUS in VARCHAR2,
16   X_LOCATION_TYPE in VARCHAR2,
17   X_COUNTRY in VARCHAR2,
18   X_STATE_PROVINCE_ID in NUMBER,
19   X_COUNTY_ID in NUMBER,
20   X_CITY_LOCALITY_ID in NUMBER,
21   X_CREATION_DATE in DATE,
22   X_CREATED_BY in NUMBER,
23   X_LAST_UPDATE_DATE in DATE,
24   X_LAST_UPDATED_BY in NUMBER,
25   X_LAST_UPDATE_LOGIN in NUMBER) is
26 
27 begin
28   INSERT_ROW (X_ROWID,
29               X_LOCATION_ID,
30               X_TERRITORY_CODE,
31               X_UNDEFINED_LOCATION_FLAG,
32               X_END_DATE,
33               X_LOCATION,
34               X_DESCRIPTION,
35               X_STATUS,
36               X_LOCATION_TYPE,
37               X_COUNTRY,
38               X_STATE_PROVINCE_ID,
39               X_COUNTY_ID,
40               X_CITY_LOCALITY_ID,
41               X_CREATION_DATE,
42               X_CREATED_BY,
43               X_LAST_UPDATE_DATE,
44               X_LAST_UPDATED_BY,
45               X_LAST_UPDATE_LOGIN,
46               NULL,
47               userenv('LANG'));
48 end INSERT_ROW;
49 
50 procedure LOCK_ROW (
51   X_LOCATION_ID in NUMBER,
52   X_TERRITORY_CODE in VARCHAR2,
53   X_UNDEFINED_LOCATION_FLAG in VARCHAR2,
54   X_END_DATE in DATE,
55   X_LOCATION in VARCHAR2,
56   X_DESCRIPTION in VARCHAR2,
57   X_STATUS in VARCHAR2,
58   X_LOCATION_TYPE in VARCHAR2,
59   X_COUNTRY in VARCHAR2,
60   X_STATE_PROVINCE_ID in NUMBER,
61   X_COUNTY_ID in NUMBER,
62   X_CITY_LOCALITY_ID in NUMBER) is
63 
64 begin
65   LOCK_ROW (X_LOCATION_ID,
66             X_TERRITORY_CODE,
67             X_UNDEFINED_LOCATION_FLAG,
68             X_END_DATE,
69             X_LOCATION,
70             X_DESCRIPTION,
71             X_STATUS,
72             X_LOCATION_TYPE,
73             X_COUNTRY,
74             X_STATE_PROVINCE_ID,
75             X_COUNTY_ID,
76             X_CITY_LOCALITY_ID,
77             NULL,
78             userenv('LANG'));
79 
80 end LOCK_ROW;
81 
82 procedure UPDATE_ROW (X_LOCATION_ID in NUMBER,
83                       X_TERRITORY_CODE in VARCHAR2,
84                       X_UNDEFINED_LOCATION_FLAG in VARCHAR2,
85                       X_END_DATE in DATE,
86                       X_LOCATION in VARCHAR2,
87                       X_DESCRIPTION in VARCHAR2,
88                       X_STATUS in VARCHAR2,
89                       X_LOCATION_TYPE in VARCHAR2,
90                       X_COUNTRY in VARCHAR2,
91                       X_STATE_PROVINCE_ID in NUMBER,
92                       X_COUNTY_ID in NUMBER,
93                       X_CITY_LOCALITY_ID in NUMBER,
94                       X_LAST_UPDATE_DATE in DATE,
95                       X_LAST_UPDATED_BY in NUMBER,
96                       X_LAST_UPDATE_LOGIN in NUMBER) is
97 begin
98   UPDATE_ROW (X_LOCATION_ID,
99               X_TERRITORY_CODE,
100               X_UNDEFINED_LOCATION_FLAG,
101               X_END_DATE,
102               X_LOCATION,
103               X_DESCRIPTION,
104               X_STATUS,
105               X_LOCATION_TYPE,
106               X_COUNTRY,
107               X_STATE_PROVINCE_ID,
108               X_COUNTY_ID,
109               X_CITY_LOCALITY_ID,
110               X_LAST_UPDATE_DATE,
111               X_LAST_UPDATED_BY,
112               X_LAST_UPDATE_LOGIN,
113               NULL,
114               userenv('LANG'));
115 
116 end UPDATE_ROW;
117 
118 procedure ADD_LANGUAGE is
119 begin
120  ADD_LANGUAGE(NULL,userenv('LANG'));
121 end ADD_LANGUAGE;
122 
123 procedure DELETE_ROW (
124   X_LOCATION_ID in NUMBER,
125   X_LANGUAGE in VARCHAR2  --bug 2650513
126 ) is
127 begin
128   delete from AP_POL_LOCATIONS_TL
129   where LOCATION_ID = X_LOCATION_ID;
130 
131   if (sql%notfound) then
132     raise no_data_found;
133   end if;
134 
135   delete from AP_POL_LOCATIONS_B
136   where LOCATION_ID = X_LOCATION_ID;
137 
138   if (sql%notfound) then
139     raise no_data_found;
140   end if;
141 end DELETE_ROW;
142 
143 /*=======================================================================+
144  | Handlers with language
145  *=======================================================================*/
146 procedure INSERT_ROW (
147   X_ROWID in out nocopy VARCHAR2,
148   X_LOCATION_ID in NUMBER,
149   X_TERRITORY_CODE in VARCHAR2,
150   X_UNDEFINED_LOCATION_FLAG in VARCHAR2,
151   X_END_DATE in DATE,
152   X_LOCATION in VARCHAR2,
153   X_DESCRIPTION in VARCHAR2,
154   X_STATUS in VARCHAR2,
155   X_LOCATION_TYPE in VARCHAR2,
156   X_COUNTRY in VARCHAR2,
157   X_STATE_PROVINCE_ID in NUMBER,
158   X_COUNTY_ID in NUMBER,
159   X_CITY_LOCALITY_ID in NUMBER,
160   X_CREATION_DATE in DATE,
161   X_CREATED_BY in NUMBER,
162   X_LAST_UPDATE_DATE in DATE,
163   X_LAST_UPDATED_BY in NUMBER,
164   X_LAST_UPDATE_LOGIN in NUMBER,
165   X_LANGUAGE in VARCHAR2,
166   X_SOURCE_LANG in VARCHAR2) is
167 
168   cursor C is select ROWID from AP_POL_LOCATIONS_B
169     where LOCATION_ID = X_LOCATION_ID;
170 
171 begin
172 
173   insert into AP_POL_LOCATIONS_B (
174     LOCATION_ID,
175     TERRITORY_CODE,
176     UNDEFINED_LOCATION_FLAG,
177     END_DATE,
178     STATUS,
179     LOCATION_TYPE,
180     COUNTRY,
181     STATE_PROVINCE_ID,
182     COUNTY_ID,
183     CITY_LOCALITY_ID,
184     CREATION_DATE,
185     CREATED_BY,
186     LAST_UPDATE_DATE,
187     LAST_UPDATED_BY,
188     LAST_UPDATE_LOGIN
189   ) values (
190     X_LOCATION_ID,
191     X_TERRITORY_CODE,
192     X_UNDEFINED_LOCATION_FLAG,
193     X_END_DATE,
194     X_STATUS,
195     X_LOCATION_TYPE,
196     X_COUNTRY,
197     X_STATE_PROVINCE_ID,
198     X_COUNTY_ID,
199     X_CITY_LOCALITY_ID,
200     X_CREATION_DATE,
201     X_CREATED_BY,
202     X_LAST_UPDATE_DATE,
203     X_LAST_UPDATED_BY,
204     X_LAST_UPDATE_LOGIN
205   );
206 
207   insert into AP_POL_LOCATIONS_TL (
208     LOCATION_ID,
209     LOCATION,
213     LAST_UPDATE_LOGIN,
210     DESCRIPTION,
211     CREATION_DATE,
212     CREATED_BY,
214     LAST_UPDATE_DATE,
215     LAST_UPDATED_BY,
216     LANGUAGE,
217     SOURCE_LANG
218   ) select
219     X_LOCATION_ID,
220     X_LOCATION,
221     X_DESCRIPTION,
222     X_CREATION_DATE,
223     X_CREATED_BY,
224     X_LAST_UPDATE_LOGIN,
225     X_LAST_UPDATE_DATE,
226     X_LAST_UPDATED_BY,
227     L.LANGUAGE_CODE,
228     NVL(X_SOURCE_LANG,BASE.LANGUAGE_CODE)
229   from FND_LANGUAGES L,
230        FND_LANGUAGES BASE
231   where L.INSTALLED_FLAG in ('I', 'B')
232   AND BASE.INSTALLED_FLAG = 'B'
233   and not exists
237     and T.LANGUAGE = L.LANGUAGE_CODE);
234     (select NULL
235     from AP_POL_LOCATIONS_TL T
236     where T.LOCATION_ID = X_LOCATION_ID
238 
239   open c;
240   fetch c into X_ROWID;
241   if (c%notfound) then
242     close c;
243     raise no_data_found;
244   end if;
245   close c;
246 
247 end INSERT_ROW;
248 
249 procedure LOCK_ROW (
250   X_LOCATION_ID in NUMBER,
251   X_TERRITORY_CODE in VARCHAR2,
252   X_UNDEFINED_LOCATION_FLAG in VARCHAR2,
253   X_END_DATE in DATE,
254   X_LOCATION in VARCHAR2,
255   X_DESCRIPTION in VARCHAR2,
256   X_STATUS in VARCHAR2,
257   X_LOCATION_TYPE in VARCHAR2,
258   X_COUNTRY in VARCHAR2,
259   X_STATE_PROVINCE_ID in NUMBER,
260   X_COUNTY_ID in NUMBER,
261   X_CITY_LOCALITY_ID in NUMBER,
262   X_LANGUAGE in VARCHAR2,
263   X_SOURCE_LANG in VARCHAR2
264 ) is
265   cursor c is select
266       TERRITORY_CODE,
267       UNDEFINED_LOCATION_FLAG,
268       END_DATE,
269       STATUS,
270       LOCATION_TYPE,
271       COUNTRY,
272       STATE_PROVINCE_ID,
273       COUNTY_ID,
274       CITY_LOCALITY_ID
275     from AP_POL_LOCATIONS_B
276     where LOCATION_ID = X_LOCATION_ID
277     for update of LOCATION_ID nowait;
278   recinfo c%rowtype;
279 
280   cursor c1 is select
281       LOCATION,
282       DESCRIPTION,
283       decode(LANGUAGE, NVL(X_SOURCE_LANG,userenv('LANG')), 'Y', 'N') BASELANG
284     from AP_POL_LOCATIONS_TL
285     where LOCATION_ID = X_LOCATION_ID
286     and NVL(X_SOURCE_LANG,userenv('LANG')) in (LANGUAGE, SOURCE_LANG)
287     for update of LOCATION_ID nowait;
288 begin
289   open c;
290   fetch c into recinfo;
291   if (c%notfound) then
292     close c;
293     fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
294     app_exception.raise_exception;
295   end if;
296   close c;
297   if (    ((recinfo.TERRITORY_CODE = X_TERRITORY_CODE)
298            OR ((recinfo.TERRITORY_CODE is null) AND (X_TERRITORY_CODE is null)))
299       AND ((recinfo.UNDEFINED_LOCATION_FLAG = X_UNDEFINED_LOCATION_FLAG)
300            OR ((recinfo.UNDEFINED_LOCATION_FLAG is null) AND (X_UNDEFINED_LOCATION_FLAG is null)))
301       AND ((recinfo.STATUS = X_STATUS)
302            OR ((recinfo.STATUS is null) AND (X_STATUS is null)))
303       AND ((recinfo.LOCATION_TYPE = X_LOCATION_TYPE)
304            OR ((recinfo.LOCATION_TYPE is null) AND (X_LOCATION_TYPE is null)))
305       AND ((recinfo.COUNTRY = X_COUNTRY)
306            OR ((recinfo.COUNTRY is null) AND (X_COUNTRY is null)))
307       AND ((recinfo.STATE_PROVINCE_ID = X_STATE_PROVINCE_ID)
308            OR ((recinfo.STATE_PROVINCE_ID is null) AND (X_STATE_PROVINCE_ID is null)))
309       AND ((recinfo.COUNTY_ID = X_COUNTY_ID)
310            OR ((recinfo.COUNTY_ID is null) AND (X_COUNTY_ID is null)))
311       AND ((recinfo.CITY_LOCALITY_ID = X_CITY_LOCALITY_ID)
312            OR ((recinfo.CITY_LOCALITY_ID is null) AND (X_CITY_LOCALITY_ID is null)))
313       AND ((recinfo.END_DATE = X_END_DATE)
314            OR ((recinfo.END_DATE is null) AND (X_END_DATE is null)))
315   ) then
316     null;
317   else
318     fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
319     app_exception.raise_exception;
320   end if;
321 
322   for tlinfo in c1 loop
323     if (tlinfo.BASELANG = 'Y') then
324       if (    ((tlinfo.LOCATION = X_LOCATION)
325                OR ((tlinfo.LOCATION is null) AND (X_LOCATION is null)))
326           AND ((tlinfo.DESCRIPTION = X_DESCRIPTION)
327                OR ((tlinfo.DESCRIPTION is null) AND (X_DESCRIPTION is null)))
328       ) then
329         null;
330       else
331         fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
332         app_exception.raise_exception;
333       end if;
334     end if;
335   end loop;
336   return;
337 end LOCK_ROW;
338 
339 procedure UPDATE_ROW (
340   X_LOCATION_ID in NUMBER,
341   X_TERRITORY_CODE in VARCHAR2,
342   X_UNDEFINED_LOCATION_FLAG in VARCHAR2,
343   X_END_DATE in DATE,
344   X_LOCATION in VARCHAR2,
345   X_DESCRIPTION in VARCHAR2,
346   X_STATUS in VARCHAR2,
347   X_LOCATION_TYPE in VARCHAR2,
348   X_COUNTRY in VARCHAR2,
349   X_STATE_PROVINCE_ID in NUMBER,
350   X_COUNTY_ID in NUMBER,
351   X_CITY_LOCALITY_ID in NUMBER,
352   X_LAST_UPDATE_DATE in DATE,
353   X_LAST_UPDATED_BY in NUMBER,
354   X_LAST_UPDATE_LOGIN in NUMBER,
355   X_LANGUAGE in VARCHAR2,
356   X_SOURCE_LANG in VARCHAR2) is
357 begin
358   update AP_POL_LOCATIONS_B set
359     TERRITORY_CODE = X_TERRITORY_CODE,
360     UNDEFINED_LOCATION_FLAG = X_UNDEFINED_LOCATION_FLAG,
361     END_DATE = X_END_DATE,
362     STATUS = X_STATUS,
363     LOCATION_TYPE = X_LOCATION_TYPE,
364     COUNTRY = X_COUNTRY,
365     STATE_PROVINCE_ID = X_STATE_PROVINCE_ID,
366     COUNTY_ID = X_COUNTY_ID,
367     CITY_LOCALITY_ID = X_CITY_LOCALITY_ID,
368     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
369     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
370     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
371   where LOCATION_ID = X_LOCATION_ID;
372 
373   if (sql%notfound) then
374     raise no_data_found;
375   end if;
376 
377   update AP_POL_LOCATIONS_TL set
378     LOCATION = X_LOCATION,
379     DESCRIPTION = X_DESCRIPTION,
380     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
381     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
382     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
383     SOURCE_LANG = NVL(X_SOURCE_LANG,userenv('LANG'))
384   where LOCATION_ID = X_LOCATION_ID
385   and NVL(X_SOURCE_LANG,userenv('LANG')) in (LANGUAGE, SOURCE_LANG);
389     raise no_data_found;
386 
387 
388   if (sql%notfound) then
390   end if;
391 end UPDATE_ROW;
392 
393 procedure ADD_LANGUAGE (X_LANGUAGE in VARCHAR2,
394                         X_SOURCE_LANG in VARCHAR2) is
395 begin
396   delete from AP_POL_LOCATIONS_TL T
397   where not exists
398     (select NULL
399     from AP_POL_LOCATIONS_B B
403   update AP_POL_LOCATIONS_TL T set (
400     where B.LOCATION_ID = T.LOCATION_ID
401     );
402 
404       LOCATION,
405       DESCRIPTION
406     ) = (select
407       B.LOCATION,
408       B.DESCRIPTION
409     from AP_POL_LOCATIONS_TL B
410     where B.LOCATION_ID = T.LOCATION_ID
411     and B.LANGUAGE = T.SOURCE_LANG)
412   where (
413       T.LOCATION_ID,
414       T.LANGUAGE
415   ) in (select
416       SUBT.LOCATION_ID,
417       SUBT.LANGUAGE
418     from AP_POL_LOCATIONS_TL SUBB, AP_POL_LOCATIONS_TL SUBT
419     where SUBB.LOCATION_ID = SUBT.LOCATION_ID
420     and SUBB.LANGUAGE = SUBT.SOURCE_LANG
421     and (SUBB.LOCATION <> SUBT.LOCATION
422       or (SUBB.LOCATION is null and SUBT.LOCATION is not null)
423       or (SUBB.LOCATION is not null and SUBT.LOCATION is null)
424       or SUBB.DESCRIPTION <> SUBT.DESCRIPTION
425       or (SUBB.DESCRIPTION is null and SUBT.DESCRIPTION is not null)
426       or (SUBB.DESCRIPTION is not null and SUBT.DESCRIPTION is null)
427   ));
428 
429   insert into AP_POL_LOCATIONS_TL (
430     LOCATION_ID,
431     LOCATION,
432     DESCRIPTION,
433     CREATION_DATE,
434     CREATED_BY,
435     LAST_UPDATE_LOGIN,
436     LAST_UPDATE_DATE,
437     LAST_UPDATED_BY,
438     LANGUAGE,
439     SOURCE_LANG
440   ) select
441     B.LOCATION_ID,
442     B.LOCATION,
443     B.DESCRIPTION,
444     B.CREATION_DATE,
445     B.CREATED_BY,
446     B.LAST_UPDATE_LOGIN,
447     B.LAST_UPDATE_DATE,
448     B.LAST_UPDATED_BY,
449     L.LANGUAGE_CODE,
450     B.SOURCE_LANG
451   from AP_POL_LOCATIONS_TL B, FND_LANGUAGES L
452   where L.INSTALLED_FLAG in ('I', 'B')
453   and B.LANGUAGE = NVL(X_SOURCE_LANG,userenv('LANG'))
454   and not exists
455     (select NULL
456     from AP_POL_LOCATIONS_TL T
457     where T.LOCATION_ID = B.LOCATION_ID
458     and T.LANGUAGE = L.LANGUAGE_CODE);
459 end ADD_LANGUAGE;
460 
461 end AP_POL_LOCATIONS_PKG;