[Home] [Help]
PACKAGE BODY: APPS.OKE_CHG_STATUSES_PKG
Source
1 package body OKE_CHG_STATUSES_PKG as
2 /* $Header: OKEOCSXB.pls 115.6 2002/11/21 23:06:41 ybchen ship $ */
3 procedure INSERT_ROW (
4 X_ROWID in out NOCOPY VARCHAR2
5 , X_CHG_STATUS_CODE in VARCHAR2
6 , X_CREATION_DATE in DATE
7 , X_CREATED_BY in NUMBER
8 , X_LAST_UPDATE_DATE in DATE
9 , X_LAST_UPDATED_BY in NUMBER
10 , X_LAST_UPDATE_LOGIN in NUMBER
11 , X_CHG_STATUS_NAME in VARCHAR2
12 , X_CHG_STATUS_TYPE_CODE in VARCHAR2
13 , X_DEFAULT_STATUS in VARCHAR2
14 , X_WF_ITEM_TYPE in VARCHAR2
15 , X_WF_PROCESS in VARCHAR2
16 , X_DESCRIPTION in VARCHAR2
17 , X_START_DATE_ACTIVE in DATE
18 , X_END_DATE_ACTIVE in DATE
19 , X_ATTRIBUTE_CATEGORY in VARCHAR2
20 , X_ATTRIBUTE1 in VARCHAR2
21 , X_ATTRIBUTE2 in VARCHAR2
22 , X_ATTRIBUTE3 in VARCHAR2
23 , X_ATTRIBUTE4 in VARCHAR2
24 , X_ATTRIBUTE5 in VARCHAR2
25 , X_ATTRIBUTE6 in VARCHAR2
26 , X_ATTRIBUTE7 in VARCHAR2
27 , X_ATTRIBUTE8 in VARCHAR2
28 , X_ATTRIBUTE9 in VARCHAR2
29 , X_ATTRIBUTE10 in VARCHAR2
30 , X_ATTRIBUTE11 in VARCHAR2
31 , X_ATTRIBUTE12 in VARCHAR2
32 , X_ATTRIBUTE13 in VARCHAR2
33 , X_ATTRIBUTE14 in VARCHAR2
34 , X_ATTRIBUTE15 in VARCHAR2
35 ) is
36 cursor C is select ROWID from OKE_CHG_STATUSES_B
37 where CHG_STATUS_CODE = X_CHG_STATUS_CODE
38 ;
39 begin
40 insert into OKE_CHG_STATUSES_B (
41 CHG_STATUS_CODE
42 , CREATION_DATE
43 , CREATED_BY
44 , LAST_UPDATE_DATE
45 , LAST_UPDATED_BY
46 , LAST_UPDATE_LOGIN
47 , CHG_STATUS_TYPE_CODE
48 , DEFAULT_STATUS
49 , WF_ITEM_TYPE
50 , WF_PROCESS
51 , START_DATE_ACTIVE
52 , END_DATE_ACTIVE
53 , ATTRIBUTE_CATEGORY
54 , ATTRIBUTE1
55 , ATTRIBUTE2
56 , ATTRIBUTE3
57 , ATTRIBUTE4
58 , ATTRIBUTE5
59 , ATTRIBUTE6
60 , ATTRIBUTE7
61 , ATTRIBUTE8
62 , ATTRIBUTE9
63 , ATTRIBUTE10
64 , ATTRIBUTE11
65 , ATTRIBUTE12
66 , ATTRIBUTE13
67 , ATTRIBUTE14
68 , ATTRIBUTE15
69 ) values (
70 X_CHG_STATUS_CODE
71 , X_CREATION_DATE
72 , X_CREATED_BY
73 , X_LAST_UPDATE_DATE
74 , X_LAST_UPDATED_BY
75 , X_LAST_UPDATE_LOGIN
76 , X_CHG_STATUS_TYPE_CODE
77 , X_DEFAULT_STATUS
78 , X_WF_ITEM_TYPE
79 , X_WF_PROCESS
80 , X_START_DATE_ACTIVE
81 , X_END_DATE_ACTIVE
82 , X_ATTRIBUTE_CATEGORY
83 , X_ATTRIBUTE1
84 , X_ATTRIBUTE2
85 , X_ATTRIBUTE3
86 , X_ATTRIBUTE4
87 , X_ATTRIBUTE5
88 , X_ATTRIBUTE6
89 , X_ATTRIBUTE7
90 , X_ATTRIBUTE8
91 , X_ATTRIBUTE9
92 , X_ATTRIBUTE10
93 , X_ATTRIBUTE11
94 , X_ATTRIBUTE12
95 , X_ATTRIBUTE13
96 , X_ATTRIBUTE14
97 , X_ATTRIBUTE15
98 );
99
100 insert into OKE_CHG_STATUSES_TL (
101 CHG_STATUS_CODE
102 , LANGUAGE
103 , CREATION_DATE
104 , CREATED_BY
105 , LAST_UPDATE_DATE
106 , LAST_UPDATED_BY
107 , LAST_UPDATE_LOGIN
108 , CHG_STATUS_NAME
109 , DESCRIPTION
110 , SOURCE_LANG
111 ) select
112 X_CHG_STATUS_CODE
113 , L.LANGUAGE_CODE
114 , X_CREATION_DATE
115 , X_CREATED_BY
116 , X_LAST_UPDATE_DATE
117 , X_LAST_UPDATED_BY
118 , X_LAST_UPDATE_LOGIN
119 , X_CHG_STATUS_NAME
120 , X_DESCRIPTION
121 , userenv('LANG')
122 from FND_LANGUAGES L
123 where L.INSTALLED_FLAG in ('I', 'B')
124 and not exists
125 (select NULL
126 from OKE_CHG_STATUSES_TL T
127 where T.CHG_STATUS_CODE = X_CHG_STATUS_CODE
128 and T.LANGUAGE = L.LANGUAGE_CODE)
129 ;
130
131 open c;
132 fetch c into X_ROWID;
133 if (c%notfound) then
134 close c;
135 raise no_data_found;
136 end if;
137 close c;
138
139 end INSERT_ROW;
140
141 procedure LOCK_ROW (
142 X_CHG_STATUS_CODE in VARCHAR2
143 , X_CHG_STATUS_NAME in VARCHAR2
144 , X_CHG_STATUS_TYPE_CODE in VARCHAR2
145 , X_DEFAULT_STATUS in VARCHAR2
146 , X_WF_ITEM_TYPE in VARCHAR2
147 , X_WF_PROCESS in VARCHAR2
148 , X_DESCRIPTION in VARCHAR2
149 , X_START_DATE_ACTIVE in DATE
150 , X_END_DATE_ACTIVE in DATE
151 , X_ATTRIBUTE_CATEGORY in VARCHAR2
152 , X_ATTRIBUTE1 in VARCHAR2
153 , X_ATTRIBUTE2 in VARCHAR2
154 , X_ATTRIBUTE3 in VARCHAR2
155 , X_ATTRIBUTE4 in VARCHAR2
156 , X_ATTRIBUTE5 in VARCHAR2
157 , X_ATTRIBUTE6 in VARCHAR2
158 , X_ATTRIBUTE7 in VARCHAR2
159 , X_ATTRIBUTE8 in VARCHAR2
160 , X_ATTRIBUTE9 in VARCHAR2
161 , X_ATTRIBUTE10 in VARCHAR2
162 , X_ATTRIBUTE11 in VARCHAR2
163 , X_ATTRIBUTE12 in VARCHAR2
164 , X_ATTRIBUTE13 in VARCHAR2
165 , X_ATTRIBUTE14 in VARCHAR2
166 , X_ATTRIBUTE15 in VARCHAR2
167 ) is
168 cursor c is select
169 CHG_STATUS_CODE
170 , CHG_STATUS_TYPE_CODE
171 , DEFAULT_STATUS
172 , WF_ITEM_TYPE
173 , WF_PROCESS
174 , START_DATE_ACTIVE
175 , END_DATE_ACTIVE
176 , ATTRIBUTE_CATEGORY
177 , ATTRIBUTE1
178 , ATTRIBUTE2
179 , ATTRIBUTE3
180 , ATTRIBUTE4
181 , ATTRIBUTE5
182 , ATTRIBUTE6
183 , ATTRIBUTE7
184 , ATTRIBUTE8
185 , ATTRIBUTE9
186 , ATTRIBUTE10
187 , ATTRIBUTE11
188 , ATTRIBUTE12
189 , ATTRIBUTE13
190 , ATTRIBUTE14
191 , ATTRIBUTE15
192 from OKE_CHG_STATUSES_B
193 where CHG_STATUS_CODE = X_CHG_STATUS_CODE
194 for update of CHG_STATUS_CODE nowait;
195 recinfo c%rowtype;
196
197 cursor c1 is select
198 CHG_STATUS_NAME
199 ,DESCRIPTION
200 ,decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
201 from OKE_CHG_STATUSES_TL
202 where CHG_STATUS_CODE= X_CHG_STATUS_CODE
203 and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
204 for update of CHG_STATUS_CODE nowait;
205 tlinfo c1%rowtype;
206
207 begin
208 open c;
209 fetch c into recinfo;
210 if (c%notfound) then
211 close c;
212 fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
213 app_exception.raise_exception;
214 end if;
215 close c;
216
217 if ( (recinfo.CHG_STATUS_CODE = X_CHG_STATUS_CODE)
218 AND ((recinfo.CHG_STATUS_TYPE_CODE = X_CHG_STATUS_TYPE_CODE)
219 OR ((recinfo.CHG_STATUS_TYPE_CODE is null) AND (X_CHG_STATUS_TYPE_CODE is null)))
220 AND ((recinfo.DEFAULT_STATUS = X_DEFAULT_STATUS)
221 OR ((recinfo.DEFAULT_STATUS is null) AND (X_DEFAULT_STATUS is null)))
222 AND ((recinfo.WF_ITEM_TYPE = X_WF_ITEM_TYPE)
223 OR ((recinfo.WF_ITEM_TYPE is null) AND (X_WF_ITEM_TYPE is null)))
224 AND ((recinfo.WF_PROCESS = X_WF_PROCESS)
225 OR ((recinfo.WF_PROCESS is null) AND (X_WF_PROCESS is null)))
226 AND ((recinfo.START_DATE_ACTIVE = X_START_DATE_ACTIVE)
227 OR ((recinfo.START_DATE_ACTIVE is null) AND (X_START_DATE_ACTIVE is null)))
228 AND ((recinfo.END_DATE_ACTIVE = X_END_DATE_ACTIVE)
229 OR ((recinfo.END_DATE_ACTIVE is null) AND (X_END_DATE_ACTIVE is null)))
230 AND ((recinfo.ATTRIBUTE_CATEGORY = X_ATTRIBUTE_CATEGORY)
231 OR ((recinfo.ATTRIBUTE_CATEGORY is null) AND (X_ATTRIBUTE_CATEGORY is null)))
232 AND ((recinfo.ATTRIBUTE1 = X_ATTRIBUTE1)
233 OR ((recinfo.ATTRIBUTE1 is null) AND (X_ATTRIBUTE1 is null)))
234 AND ((recinfo.ATTRIBUTE2 = X_ATTRIBUTE2)
235 OR ((recinfo.ATTRIBUTE2 is null) AND (X_ATTRIBUTE2 is null)))
236 AND ((recinfo.ATTRIBUTE3 = X_ATTRIBUTE3)
237 OR ((recinfo.ATTRIBUTE3 is null) AND (X_ATTRIBUTE3 is null)))
238 AND ((recinfo.ATTRIBUTE4 = X_ATTRIBUTE4)
239 OR ((recinfo.ATTRIBUTE4 is null) AND (X_ATTRIBUTE4 is null)))
240 AND ((recinfo.ATTRIBUTE5 = X_ATTRIBUTE5)
241 OR ((recinfo.ATTRIBUTE5 is null) AND (X_ATTRIBUTE5 is null)))
242 AND ((recinfo.ATTRIBUTE6 = X_ATTRIBUTE6)
243 OR ((recinfo.ATTRIBUTE6 is null) AND (X_ATTRIBUTE6 is null)))
244 AND ((recinfo.ATTRIBUTE7 = X_ATTRIBUTE7)
245 OR ((recinfo.ATTRIBUTE7 is null) AND (X_ATTRIBUTE7 is null)))
246 AND ((recinfo.ATTRIBUTE8 = X_ATTRIBUTE8)
247 OR ((recinfo.ATTRIBUTE8 is null) AND (X_ATTRIBUTE8 is null)))
248 AND ((recinfo.ATTRIBUTE9 = X_ATTRIBUTE9)
249 OR ((recinfo.ATTRIBUTE9 is null) AND (X_ATTRIBUTE9 is null)))
250 AND ((recinfo.ATTRIBUTE10 = X_ATTRIBUTE10)
251 OR ((recinfo.ATTRIBUTE10 is null) AND (X_ATTRIBUTE10 is null)))
252 AND ((recinfo.ATTRIBUTE11 = X_ATTRIBUTE11)
253 OR ((recinfo.ATTRIBUTE11 is null) AND (X_ATTRIBUTE11 is null)))
254 AND ((recinfo.ATTRIBUTE12 = X_ATTRIBUTE12)
255 OR ((recinfo.ATTRIBUTE12 is null) AND (X_ATTRIBUTE12 is null)))
256 AND ((recinfo.ATTRIBUTE13 = X_ATTRIBUTE13)
257 OR ((recinfo.ATTRIBUTE13 is null) AND (X_ATTRIBUTE13 is null)))
258 AND ((recinfo.ATTRIBUTE14 = X_ATTRIBUTE14)
259 OR ((recinfo.ATTRIBUTE14 is null) AND (X_ATTRIBUTE14 is null)))
260 AND ((recinfo.ATTRIBUTE15 = X_ATTRIBUTE15)
261 OR ((recinfo.ATTRIBUTE15 is null) AND (X_ATTRIBUTE15 is null)))
262 ) then
263 null;
264 else
265 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
266 app_exception.raise_exception;
267 end if;
268
269 for tlinfo in c1 loop
270 if (tlinfo.BASELANG = 'Y') then
271 if ( ((tlinfo.CHG_STATUS_NAME = X_CHG_STATUS_NAME)
272 OR ((tlinfo.CHG_STATUS_NAME is null) AND (X_CHG_STATUS_NAME is null)))
273 AND ((tlinfo.DESCRIPTION = X_DESCRIPTION)
274 OR ((tlinfo.DESCRIPTION is null) AND (X_DESCRIPTION is null)))
275 ) then
276 null;
277 else
278 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
279 app_exception.raise_exception;
280 end if;
281 end if;
282 end loop;
283
284 return;
285 end LOCK_ROW;
286
287 procedure UPDATE_ROW (
288 X_CHG_STATUS_CODE in VARCHAR2
289 , X_LAST_UPDATE_DATE in DATE
290 , X_LAST_UPDATED_BY in NUMBER
291 , X_LAST_UPDATE_LOGIN in NUMBER
292 , X_CHG_STATUS_NAME in VARCHAR2
293 , X_CHG_STATUS_TYPE_CODE in VARCHAR2
294 , X_DEFAULT_STATUS in VARCHAR2
295 , X_WF_ITEM_TYPE in VARCHAR2
296 , X_WF_PROCESS in VARCHAR2
297 , X_DESCRIPTION in VARCHAR2
298 , X_START_DATE_ACTIVE in DATE
299 , X_END_DATE_ACTIVE in DATE
300 , X_ATTRIBUTE_CATEGORY in VARCHAR2
301 , X_ATTRIBUTE1 in VARCHAR2
302 , X_ATTRIBUTE2 in VARCHAR2
303 , X_ATTRIBUTE3 in VARCHAR2
304 , X_ATTRIBUTE4 in VARCHAR2
305 , X_ATTRIBUTE5 in VARCHAR2
306 , X_ATTRIBUTE6 in VARCHAR2
307 , X_ATTRIBUTE7 in VARCHAR2
308 , X_ATTRIBUTE8 in VARCHAR2
309 , X_ATTRIBUTE9 in VARCHAR2
310 , X_ATTRIBUTE10 in VARCHAR2
311 , X_ATTRIBUTE11 in VARCHAR2
312 , X_ATTRIBUTE12 in VARCHAR2
313 , X_ATTRIBUTE13 in VARCHAR2
314 , X_ATTRIBUTE14 in VARCHAR2
315 , X_ATTRIBUTE15 in VARCHAR2
316 ) is
317 begin
318 update OKE_CHG_STATUSES_B set
319 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE
320 , LAST_UPDATED_BY = X_LAST_UPDATED_BY
321 , LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
322 , CHG_STATUS_TYPE_CODE = X_CHG_STATUS_TYPE_CODE
323 , DEFAULT_STATUS = X_DEFAULT_STATUS
324 , WF_ITEM_TYPE = X_WF_ITEM_TYPE
325 , WF_PROCESS = X_WF_PROCESS
326 , START_DATE_ACTIVE = X_START_DATE_ACTIVE
327 , END_DATE_ACTIVE = X_END_DATE_ACTIVE
328 , ATTRIBUTE_CATEGORY = X_ATTRIBUTE_CATEGORY
329 , ATTRIBUTE1 = X_ATTRIBUTE1
330 , ATTRIBUTE2 = X_ATTRIBUTE2
331 , ATTRIBUTE3 = X_ATTRIBUTE3
332 , ATTRIBUTE4 = X_ATTRIBUTE4
333 , ATTRIBUTE5 = X_ATTRIBUTE5
334 , ATTRIBUTE6 = X_ATTRIBUTE6
335 , ATTRIBUTE7 = X_ATTRIBUTE7
336 , ATTRIBUTE8 = X_ATTRIBUTE8
337 , ATTRIBUTE9 = X_ATTRIBUTE9
338 , ATTRIBUTE10 = X_ATTRIBUTE10
339 , ATTRIBUTE11 = X_ATTRIBUTE11
340 , ATTRIBUTE12 = X_ATTRIBUTE12
341 , ATTRIBUTE13 = X_ATTRIBUTE13
342 , ATTRIBUTE14 = X_ATTRIBUTE14
343 , ATTRIBUTE15 = X_ATTRIBUTE15
344 where CHG_STATUS_CODE = X_CHG_STATUS_CODE
345 ;
346
347 if (sql%notfound) then
348 raise no_data_found;
349 end if;
350
351 update OKE_CHG_STATUSES_TL set
352 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE
353 , LAST_UPDATED_BY = X_LAST_UPDATED_BY
354 , LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
355 , CHG_STATUS_NAME = X_CHG_STATUS_NAME
356 , DESCRIPTION = X_DESCRIPTION
357 , SOURCE_LANG = userenv('LANG')
358 where CHG_STATUS_CODE = X_CHG_STATUS_CODE
359 and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
360 ;
361
362 if (sql%notfound) then
363 raise no_data_found;
364 end if;
365 end UPDATE_ROW;
366
367 procedure ADD_LANGUAGE
368 is
369 begin
370 delete from OKE_CHG_STATUSES_TL T
371 where not exists
372 (select NULL
373 from OKE_CHG_STATUSES_B B
374 where B.CHG_STATUS_CODE = T.CHG_STATUS_CODE
375 );
376
377 update OKE_CHG_STATUSES_TL T set (
378 CHG_STATUS_NAME,
379 DESCRIPTION
380 ) = (select
381 B.CHG_STATUS_NAME,
382 B.DESCRIPTION
383 from OKE_CHG_STATUSES_TL B
384 where B.CHG_STATUS_CODE = T.CHG_STATUS_CODE
385 and B.LANGUAGE = T.SOURCE_LANG)
386 where (
387 T.CHG_STATUS_CODE,
388 T.LANGUAGE
389 ) in (select
390 SUBT.CHG_STATUS_CODE,
391 SUBT.LANGUAGE
392 from OKE_CHG_STATUSES_TL SUBB, OKE_CHG_STATUSES_TL SUBT
393 where SUBB.CHG_STATUS_CODE = SUBT.CHG_STATUS_CODE
394 and SUBB.LANGUAGE = SUBT.SOURCE_LANG
395 and (SUBB.CHG_STATUS_NAME <> SUBT.CHG_STATUS_NAME
396 or SUBB.DESCRIPTION <> SUBT.DESCRIPTION
397 or (SUBB.DESCRIPTION is null and SUBT.DESCRIPTION is not null)
398 or (SUBB.DESCRIPTION is not null and SUBT.DESCRIPTION is null)
399 ));
400
401 insert into OKE_CHG_STATUSES_TL (
402 LAST_UPDATE_DATE,
403 LAST_UPDATED_BY,
404 LAST_UPDATE_LOGIN,
405 CHG_STATUS_NAME,
406 DESCRIPTION,
407 CHG_STATUS_CODE,
408 CREATION_DATE,
409 CREATED_BY,
410 LANGUAGE,
411 SOURCE_LANG
412 ) select
413 B.LAST_UPDATE_DATE,
414 B.LAST_UPDATED_BY,
415 B.LAST_UPDATE_LOGIN,
416 B.CHG_STATUS_NAME,
417 B.DESCRIPTION,
418 B.CHG_STATUS_CODE,
419 B.CREATION_DATE,
420 B.CREATED_BY,
421 L.LANGUAGE_CODE,
422 B.SOURCE_LANG
423 from OKE_CHG_STATUSES_TL B, FND_LANGUAGES L
424 where L.INSTALLED_FLAG in ('I', 'B')
425 and B.LANGUAGE = userenv('LANG')
426 and not exists
427 (select NULL
428 from OKE_CHG_STATUSES_TL T
429 where T.CHG_STATUS_CODE = B.CHG_STATUS_CODE
430 and T.LANGUAGE = L.LANGUAGE_CODE);
431 end ADD_LANGUAGE;
432
433 end OKE_CHG_STATUSES_PKG;