DBA Data[Home] [Help]

PACKAGE BODY: APPS.AK_CUSTOM_REGIONS_PKG

Source


1 package body AK_CUSTOM_REGIONS_PKG as
2 /* $Header: AKDCRGNB.pls 120.3 2006/01/25 15:56:23 tshort noship $ */
3 procedure INSERT_ROW (
4 X_ROWID                        in out NOCOPY VARCHAR2,
5 X_CUSTOMIZATION_APPLICATION_ID in     NUMBER,
6 X_CUSTOMIZATION_CODE           in     VARCHAR2,
7 X_REGION_APPLICATION_ID        in     NUMBER,
8 X_REGION_CODE                  in     VARCHAR2,
9 X_PROPERTY_NAME                in     VARCHAR2,
10 X_PROPERTY_VARCHAR2_VALUE      in     VARCHAR2,
11 X_PROPERTY_NUMBER_VALUE        in     NUMBER,
12 X_CRITERIA_JOIN_CONDITION      in     VARCHAR2,
13 X_CREATED_BY                   in     NUMBER,
14 X_CREATION_DATE                in     DATE,
15 X_LAST_UPDATED_BY              in     NUMBER,
16 X_LAST_UPDATE_DATE             in     DATE,
17 X_LAST_UPDATE_LOGIN            in     NUMBER
18 ) is
19 cursor C is select ROWID from AK_CUSTOM_REGIONS
20 where CUSTOMIZATION_APPLICATION_ID = X_CUSTOMIZATION_APPLICATION_ID
21 and   CUSTOMIZATION_CODE           = X_CUSTOMIZATION_CODE
22 and   REGION_APPLICATION_ID        = X_REGION_APPLICATION_ID
23 and   REGION_CODE                  = X_REGION_CODE
24 and   PROPERTY_NAME                = X_PROPERTY_NAME;
25 begin
26 insert into AK_CUSTOM_REGIONS (
27 CUSTOMIZATION_APPLICATION_ID,
28 CUSTOMIZATION_CODE,
29 REGION_APPLICATION_ID,
30 REGION_CODE,
31 PROPERTY_NAME,
32 PROPERTY_VARCHAR2_VALUE,
33 PROPERTY_NUMBER_VALUE,
34 CRITERIA_JOIN_CONDITION,
35 CREATED_BY,
36 CREATION_DATE,
37 LAST_UPDATED_BY,
38 LAST_UPDATE_DATE,
39 LAST_UPDATE_LOGIN
40 ) values (
41 X_CUSTOMIZATION_APPLICATION_ID,
42 X_CUSTOMIZATION_CODE,
43 X_REGION_APPLICATION_ID,
44 X_REGION_CODE,
45 X_PROPERTY_NAME,
46 X_PROPERTY_VARCHAR2_VALUE,
47 X_PROPERTY_NUMBER_VALUE,
48 X_CRITERIA_JOIN_CONDITION,
49 X_CREATED_BY,
50 X_CREATION_DATE,
51 X_LAST_UPDATED_BY,
52 X_LAST_UPDATE_DATE,
53 X_LAST_UPDATE_LOGIN
54 );
55 
56 open C;
57 fetch C into X_ROWID;
58 if (C%notfound) then
59 close C;
60 raise no_data_found;
61 end if;
62 close C;
63 
64 insert into AK_CUSTOM_REGIONS_TL (
65 CUSTOMIZATION_APPLICATION_ID,
66 CUSTOMIZATION_CODE,
67 REGION_APPLICATION_ID,
68 REGION_CODE,
69 PROPERTY_NAME,
70 PROPERTY_VARCHAR2_VALUE,
71 LANGUAGE,
72 SOURCE_LANG,
73 CREATED_BY,
74 CREATION_DATE,
75 LAST_UPDATED_BY,
76 LAST_UPDATE_DATE,
77 LAST_UPDATE_LOGIN
78 ) select
79 X_CUSTOMIZATION_APPLICATION_ID,
80 X_CUSTOMIZATION_CODE,
81 X_REGION_APPLICATION_ID,
82 X_REGION_CODE,
83 X_PROPERTY_NAME,
84 X_PROPERTY_VARCHAR2_VALUE,
85 L.LANGUAGE_CODE,
86 userenv('LANG'),
87 X_CREATED_BY,
88 X_CREATION_DATE,
89 X_LAST_UPDATED_BY,
90 X_LAST_UPDATE_DATE,
91 X_LAST_UPDATE_LOGIN
92 from FND_LANGUAGES L
93 where L.INSTALLED_FLAG in ('I', 'B')
94 and not exists
95 (select NULL
96 from AK_CUSTOM_REGIONS_TL T
97 where T.CUSTOMIZATION_APPLICATION_ID = X_CUSTOMIZATION_APPLICATION_ID
98 and   T.CUSTOMIZATION_CODE           = X_CUSTOMIZATION_CODE
99 and   T.REGION_APPLICATION_ID        = X_REGION_APPLICATION_ID
100 and   T.REGION_CODE                  = X_REGION_CODE
101 and   T.PROPERTY_NAME                = X_PROPERTY_NAME
102 and   T.LANGUAGE                     = L.LANGUAGE_CODE);
103 end INSERT_ROW;
104 
105 procedure LOCK_ROW (
106 X_CUSTOMIZATION_APPLICATION_ID in     NUMBER,
107 X_CUSTOMIZATION_CODE           in     VARCHAR2,
108 X_REGION_APPLICATION_ID        in     NUMBER,
109 X_REGION_CODE                  in     VARCHAR2,
110 X_PROPERTY_NAME                in     VARCHAR2,
111 X_PROPERTY_VARCHAR2_VALUE      in     VARCHAR2,
112 X_PROPERTY_NUMBER_VALUE        in     NUMBER,
113 X_CRITERIA_JOIN_CONDITION      in     VARCHAR2,
114 X_CREATED_BY                   in     NUMBER,
115 X_CREATION_DATE                in     DATE,
116 X_LAST_UPDATED_BY              in     NUMBER,
117 X_LAST_UPDATE_DATE             in     DATE,
118 X_LAST_UPDATE_LOGIN            in     NUMBER
119 ) is
120 cursor C is select
121 CUSTOMIZATION_APPLICATION_ID,
122 CUSTOMIZATION_CODE,
123 REGION_APPLICATION_ID,
124 REGION_CODE,
125 PROPERTY_NAME,
126 PROPERTY_VARCHAR2_VALUE,
127 PROPERTY_NUMBER_VALUE,
128 CRITERIA_JOIN_CONDITION
129 from AK_CUSTOM_REGIONS
130 where CUSTOMIZATION_APPLICATION_ID = X_CUSTOMIZATION_APPLICATION_ID
131 and   CUSTOMIZATION_CODE           = X_CUSTOMIZATION_CODE
132 and   REGION_APPLICATION_ID        = X_REGION_APPLICATION_ID
133 and   REGION_CODE                  = X_REGION_CODE
134 and   PROPERTY_NAME                = X_PROPERTY_NAME
135 for update of CUSTOMIZATION_APPLICATION_ID nowait;
136 recinfo C%rowtype;
137 
138 cursor C1 is select
139 PROPERTY_VARCHAR2_VALUE
140 from AK_CUSTOM_REGIONS_TL
141 where CUSTOMIZATION_APPLICATION_ID = X_CUSTOMIZATION_APPLICATION_ID
142 and   CUSTOMIZATION_CODE           = X_CUSTOMIZATION_CODE
143 and   REGION_APPLICATION_ID        = X_REGION_APPLICATION_ID
144 and   REGION_CODE                  = X_REGION_CODE
145 and   PROPERTY_NAME                = X_PROPERTY_NAME
146 and   LANGUAGE                     = userenv('LANG')
147 for update of CUSTOMIZATION_CODE nowait;
148 tlinfo C1%rowtype;
149 begin
150 open C;
151 fetch C into recinfo;
152 if (C%notfound) then
153 close C;
154 fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
155 app_exception.raise_exception;
156 end if;
157 close C;
158 
159 if (((recinfo.CUSTOMIZATION_APPLICATION_ID = X_CUSTOMIZATION_APPLICATION_ID)
160 OR ((recinfo.CUSTOMIZATION_APPLICATION_ID is null)
161 AND (X_CUSTOMIZATION_APPLICATION_ID is null)))
162 AND ((recinfo.CUSTOMIZATION_CODE = X_CUSTOMIZATION_CODE)
163 OR ((recinfo.CUSTOMIZATION_CODE is null)
164 AND (X_CUSTOMIZATION_CODE is null)))
165 AND ((recinfo.REGION_APPLICATION_ID = X_REGION_APPLICATION_ID)
166 OR ((recinfo.REGION_APPLICATION_ID is null)
167 AND (X_REGION_APPLICATION_ID is null)))
168 AND ((recinfo.REGION_CODE = X_REGION_CODE)
169 OR ((recinfo.REGION_CODE is null)
170 AND (X_REGION_CODE is null)))
171 AND ((recinfo.PROPERTY_NAME = X_PROPERTY_NAME)
172 OR ((recinfo.PROPERTY_NAME is null)
173 AND (X_PROPERTY_NAME is null)))
174 AND ((recinfo.PROPERTY_VARCHAR2_VALUE = X_PROPERTY_VARCHAR2_VALUE)
175 OR ((recinfo.PROPERTY_VARCHAR2_VALUE is null)
176 AND (X_PROPERTY_VARCHAR2_VALUE is null)))
177 AND ((recinfo.PROPERTY_NUMBER_VALUE = X_PROPERTY_NUMBER_VALUE)
178 OR ((recinfo.PROPERTY_NUMBER_VALUE is null)
179 AND (X_PROPERTY_NUMBER_VALUE is null)))
180 AND ((recinfo.CRITERIA_JOIN_CONDITION = X_CRITERIA_JOIN_CONDITION)
181 OR ((recinfo.CRITERIA_JOIN_CONDITION is null)
182 AND (X_CRITERIA_JOIN_CONDITION is null)))
183 ) then
184 null;
185 else
186 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
187 app_exception.raise_exception;
188 end if;
189 
190 open C1;
191 fetch C1 into tlinfo;
192 if (C1%notfound) then
193 close C1;
194 return;
195 end if;
196 close C1;
197 
198 if ((tlinfo.PROPERTY_VARCHAR2_VALUE = X_PROPERTY_VARCHAR2_VALUE)
199 OR ((tlinfo.PROPERTY_VARCHAR2_VALUE is null)
200 AND (X_PROPERTY_VARCHAR2_VALUE is null))
201 ) then
202 null;
203 else
204 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
205 app_exception.raise_exception;
206 end if;
207 return;
208 end LOCK_ROW;
209 
210 procedure UPDATE_ROW (
211 X_CUSTOMIZATION_APPLICATION_ID in     NUMBER,
212 X_CUSTOMIZATION_CODE           in     VARCHAR2,
213 X_REGION_APPLICATION_ID        in     NUMBER,
214 X_REGION_CODE                  in     VARCHAR2,
215 X_PROPERTY_NAME                in     VARCHAR2,
216 X_PROPERTY_VARCHAR2_VALUE      in     VARCHAR2,
217 X_PROPERTY_NUMBER_VALUE        in     NUMBER,
218 X_CRITERIA_JOIN_CONDITION      in     VARCHAR2,
219 X_LAST_UPDATED_BY              in     NUMBER,
220 X_LAST_UPDATE_DATE             in     DATE,
221 X_LAST_UPDATE_LOGIN            in     NUMBER
222 ) is
223 begin
224 update AK_CUSTOM_REGIONS set
225 CUSTOMIZATION_APPLICATION_ID = X_CUSTOMIZATION_APPLICATION_ID,
226 CUSTOMIZATION_CODE           = X_CUSTOMIZATION_CODE,
227 REGION_APPLICATION_ID        = X_REGION_APPLICATION_ID,
228 REGION_CODE                  = X_REGION_CODE,
229 PROPERTY_NAME                = X_PROPERTY_NAME,
230 PROPERTY_VARCHAR2_VALUE      = X_PROPERTY_VARCHAR2_VALUE,
231 PROPERTY_NUMBER_VALUE        = X_PROPERTY_NUMBER_VALUE,
232 CRITERIA_JOIN_CONDITION      = X_CRITERIA_JOIN_CONDITION,
233 LAST_UPDATED_BY              = X_LAST_UPDATED_BY,
234 LAST_UPDATE_DATE             = X_LAST_UPDATE_DATE,
235 LAST_UPDATE_LOGIN            = X_LAST_UPDATE_LOGIN
236 where CUSTOMIZATION_APPLICATION_ID = X_CUSTOMIZATION_APPLICATION_ID
237 and   CUSTOMIZATION_CODE           = X_CUSTOMIZATION_CODE
238 and   REGION_APPLICATION_ID        = X_REGION_APPLICATION_ID
239 and   REGION_CODE                  = X_REGION_CODE
240 and   PROPERTY_NAME                = X_PROPERTY_NAME;
241 
242 if (sql%notfound) then
243 raise no_data_found;
244 end if;
245 
246 update AK_CUSTOM_REGIONS_TL set
247 PROPERTY_VARCHAR2_VALUE = X_PROPERTY_VARCHAR2_VALUE,
248 LAST_UPDATED_BY         = X_LAST_UPDATED_BY,
249 LAST_UPDATE_DATE        = X_LAST_UPDATE_DATE,
250 LAST_UPDATE_LOGIN       = X_LAST_UPDATE_LOGIN,
251 SOURCE_LANG             = userenv('LANG')
252 where CUSTOMIZATION_APPLICATION_ID =  X_CUSTOMIZATION_APPLICATION_ID
253 and   CUSTOMIZATION_CODE           =  X_CUSTOMIZATION_CODE
254 and   REGION_APPLICATION_ID        =  X_REGION_APPLICATION_ID
255 and   REGION_CODE                  =  X_REGION_CODE
256 and   PROPERTY_NAME                =  X_PROPERTY_NAME
257 and   userenv('LANG')              in (LANGUAGE, SOURCE_LANG);
258 
259 if (sql%notfound) then
260 raise no_data_found;
261 end if;
262 end UPDATE_ROW;
263 
264 procedure DELETE_ROW (
265 X_CUSTOMIZATION_APPLICATION_ID in NUMBER,
266 X_CUSTOMIZATION_CODE           in VARCHAR2,
267 X_REGION_APPLICATION_ID        in NUMBER,
268 X_REGION_CODE                  in VARCHAR2,
269 X_PROPERTY_NAME                in VARCHAR2
270 ) is
271 begin
272 delete from AK_CUSTOM_REGIONS
273 where CUSTOMIZATION_APPLICATION_ID = X_CUSTOMIZATION_APPLICATION_ID
274 and   CUSTOMIZATION_CODE           = X_CUSTOMIZATION_CODE
275 and   REGION_APPLICATION_ID        = X_REGION_APPLICATION_ID
276 and   REGION_CODE                  = X_REGION_CODE
277 and   PROPERTY_NAME                = X_PROPERTY_NAME;
278 
279 if (sql%notfound) then
280 raise no_data_found;
281 end if;
282 
283 delete from AK_CUSTOM_REGIONS_TL
284 where CUSTOMIZATION_APPLICATION_ID = X_CUSTOMIZATION_APPLICATION_ID
285 and   CUSTOMIZATION_CODE           = X_CUSTOMIZATION_CODE
286 and   REGION_APPLICATION_ID        = X_REGION_APPLICATION_ID
287 and   REGION_CODE                  = X_REGION_CODE
288 and   PROPERTY_NAME                = X_PROPERTY_NAME;
289 
290 if (sql%notfound) then
291 raise no_data_found;
292 end if;
293 end DELETE_ROW;
294 
295 procedure ADD_LANGUAGE
296 is
297 begin
298 /* Mar/19/03 requested by Ric Ginsberg */
299 /* The following delete and update statements are commented out */
300 /* as a quick workaround to fix the time-consuming table handler issue */
301 /* Eventually we'll need to turn them into a separate fix_language procedure */
302 /*
303 
304 delete from AK_CUSTOM_REGIONS_TL T
305 where not exists
306 (select NULL
307 from AK_CUSTOM_REGIONS B
308 where B.CUSTOMIZATION_APPLICATION_ID = T.CUSTOMIZATION_APPLICATION_ID
309 and   B.CUSTOMIZATION_CODE           = T.CUSTOMIZATION_CODE
310 and   B.REGION_APPLICATION_ID        = T.REGION_APPLICATION_ID
311 and   B.REGION_CODE                  = T.REGION_CODE
312 and   B.PROPERTY_NAME                = T.PROPERTY_NAME
313 );
314 
315 update AK_CUSTOM_REGIONS_TL T set (
316 PROPERTY_VARCHAR2_VALUE
317 ) = (select
318 B.PROPERTY_VARCHAR2_VALUE
319 from AK_CUSTOM_REGIONS_TL B
320 where B.CUSTOMIZATION_APPLICATION_ID = T.CUSTOMIZATION_APPLICATION_ID
321 and   B.CUSTOMIZATION_CODE           = T.CUSTOMIZATION_CODE
322 and   B.REGION_APPLICATION_ID        = T.REGION_APPLICATION_ID
323 and   B.REGION_CODE                  = T.REGION_CODE
324 and   B.PROPERTY_NAME                = T.PROPERTY_NAME
325 and   B.LANGUAGE                     = T.SOURCE_LANG)
326 where (
327 T.CUSTOMIZATION_APPLICATION_ID,
328 T.CUSTOMIZATION_CODE,
329 T.REGION_APPLICATION_ID,
330 T.REGION_CODE,
331 T.PROPERTY_NAME,
332 T.LANGUAGE
333 ) in (select SUBT.CUSTOMIZATION_APPLICATION_ID,
334 SUBT.CUSTOMIZATION_CODE,
335 SUBT.REGION_APPLICATION_ID,
336 SUBT.REGION_CODE,
337 SUBT.PROPERTY_NAME,
338 SUBT.LANGUAGE
339 from AK_CUSTOM_REGIONS_TL SUBB,
340 AK_CUSTOM_REGIONS_TL SUBT
341 where SUBB.CUSTOMIZATION_APPLICATION_ID = SUBT.CUSTOMIZATION_APPLICATION_ID
342 and   SUBB.CUSTOMIZATION_CODE           = SUBT.CUSTOMIZATION_CODE
343 and   SUBB.REGION_APPLICATION_ID        = SUBT.REGION_APPLICATION_ID
344 and   SUBB.REGION_CODE                  = SUBT.REGION_CODE
345 and   SUBB.PROPERTY_NAME                = SUBT.PROPERTY_NAME
346 and   SUBB.LANGUAGE                     = SUBT.SOURCE_LANG
347 and   (SUBB.PROPERTY_VARCHAR2_VALUE <> SUBT.PROPERTY_VARCHAR2_VALUE
348 or (SUBB.PROPERTY_VARCHAR2_VALUE is null and SUBT.PROPERTY_VARCHAR2_VALUE is not null)
349 or (SUBB.PROPERTY_VARCHAR2_VALUE is not null and SUBT.PROPERTY_VARCHAR2_VALUE is null))
350 );
351 
352 */
353 
354 insert /*+ append parallel(tt) */ into AK_CUSTOM_REGIONS_TL tt (
355 CUSTOMIZATION_APPLICATION_ID,
356 CUSTOMIZATION_CODE,
357 REGION_APPLICATION_ID,
358 REGION_CODE,
359 PROPERTY_NAME,
360 PROPERTY_VARCHAR2_VALUE,
361 LANGUAGE,
362 SOURCE_LANG,
363 CREATED_BY,
364 CREATION_DATE,
365 LAST_UPDATED_BY,
366 LAST_UPDATE_DATE,
367 LAST_UPDATE_LOGIN
368 ) select /*+ parallel(v) parallel(t) use_nl(t)  */ v.* from
369 (select /*+ no_merge ordered parallel(b) */
370 B.CUSTOMIZATION_APPLICATION_ID,
371 B.CUSTOMIZATION_CODE,
372 B.REGION_APPLICATION_ID,
373 B.REGION_CODE,
374 B.PROPERTY_NAME,
375 B.PROPERTY_VARCHAR2_VALUE,
376 L.LANGUAGE_CODE,
377 B.SOURCE_LANG,
378 B.CREATED_BY,
379 B.CREATION_DATE,
380 B.LAST_UPDATED_BY,
381 B.LAST_UPDATE_DATE,
382 B.LAST_UPDATE_LOGIN
383 from AK_CUSTOM_REGIONS_TL B,
384 FND_LANGUAGES L
385 where L.INSTALLED_FLAG in ('I', 'B')
386 and   B.LANGUAGE = userenv('LANG')
387 ) v, AK_CUSTOM_REGIONS_TL T
388 where T.CUSTOMIZATION_APPLICATION_ID(+) = v.CUSTOMIZATION_APPLICATION_ID
389 and   T.CUSTOMIZATION_CODE(+)           = v.CUSTOMIZATION_CODE
390 and   T.REGION_APPLICATION_ID(+)        = v.REGION_APPLICATION_ID
391 and   T.REGION_CODE(+)                  = v.REGION_CODE
392 and   T.PROPERTY_NAME(+)                = v.PROPERTY_NAME
393 and   T.LANGUAGE(+)                     = v.LANGUAGE_CODE
394 and T.CUSTOMIZATION_APPLICATION_ID is NULL
395 and T.CUSTOMIZATION_CODE is NULL
396 and T.REGION_APPLICATION_ID is NULL
397 and T.REGION_CODE is NULL
398 and T.PROPERTY_NAME is NULL;
399 
400 end ADD_LANGUAGE;
401 
402 end AK_CUSTOM_REGIONS_PKG;