DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKE_HOLD_STATUSES_PKG

Source


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