DBA Data[Home] [Help]

PACKAGE BODY: APPS.MTL_ITEM_STATUS_PKG

Source


1 PACKAGE BODY MTL_ITEM_STATUS_PKG AS
2 /* $Header: INVISTHB.pls 120.0 2005/06/20 02:47:06 anmurali noship $ */
3 
4 procedure INSERT_ROW (
5   X_ROWID in out NOCOPY VARCHAR2,
6   X_INVENTORY_ITEM_STATUS_CODE in VARCHAR2,
7   X_DISABLE_DATE in DATE,
8   X_ATTRIBUTE_CATEGORY in VARCHAR2,
9   X_ATTRIBUTE1 in VARCHAR2,
10   X_ATTRIBUTE2 in VARCHAR2,
11   X_ATTRIBUTE3 in VARCHAR2,
12   X_ATTRIBUTE4 in VARCHAR2,
13   X_ATTRIBUTE5 in VARCHAR2,
14   X_ATTRIBUTE6 in VARCHAR2,
15   X_ATTRIBUTE7 in VARCHAR2,
16   X_ATTRIBUTE8 in VARCHAR2,
17   X_ATTRIBUTE9 in VARCHAR2,
18   X_ATTRIBUTE10 in VARCHAR2,
19   X_ATTRIBUTE11 in VARCHAR2,
20   X_ATTRIBUTE12 in VARCHAR2,
21   X_ATTRIBUTE13 in VARCHAR2,
22   X_ATTRIBUTE14 in VARCHAR2,
23   X_ATTRIBUTE15 in VARCHAR2,
24   X_REQUEST_ID in NUMBER,
25   X_PROGRAM_APPLICATION_ID in NUMBER,
26   X_PROGRAM_ID in NUMBER,
27   X_PROGRAM_UPDATE_DATE  in DATE,
28   X_INVENTORY_ITEM_STATUS_CODE_T in VARCHAR2,
29   X_DESCRIPTION in VARCHAR2,
30   X_CREATION_DATE in DATE,
31   X_CREATED_BY in NUMBER,
32   X_LAST_UPDATE_DATE in DATE,
33   X_LAST_UPDATED_BY in NUMBER,
34   X_LAST_UPDATE_LOGIN in NUMBER
35 ) is
36   cursor C is
37     select ROWID from MTL_ITEM_STATUS_TL
38      where INVENTORY_ITEM_STATUS_CODE = X_INVENTORY_ITEM_STATUS_CODE;
39 begin
40   insert into MTL_ITEM_STATUS_TL (
41     INVENTORY_ITEM_STATUS_CODE,
42     DESCRIPTION,
43     DISABLE_DATE,
44     ATTRIBUTE_CATEGORY,
45     ATTRIBUTE1,
46     ATTRIBUTE2,
47     ATTRIBUTE3,
48     ATTRIBUTE4,
49     ATTRIBUTE5,
50     ATTRIBUTE6,
51     ATTRIBUTE7,
52     ATTRIBUTE8,
53     ATTRIBUTE9,
54     ATTRIBUTE10,
55     ATTRIBUTE11,
56     ATTRIBUTE12,
57     ATTRIBUTE13,
58     ATTRIBUTE14,
59     ATTRIBUTE15,
60     REQUEST_ID,
61     PROGRAM_APPLICATION_ID,
62     PROGRAM_ID,
63     PROGRAM_UPDATE_DATE,
64     CREATION_DATE,
65     CREATED_BY,
66     LAST_UPDATE_DATE,
67     LAST_UPDATED_BY,
68     LAST_UPDATE_LOGIN,
69     LANGUAGE,
70     SOURCE_LANG,
71     INVENTORY_ITEM_STATUS_CODE_TL
72   ) SELECT
73     X_INVENTORY_ITEM_STATUS_CODE,
74     X_DESCRIPTION,
75     X_DISABLE_DATE,
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     X_REQUEST_ID,
93     X_PROGRAM_APPLICATION_ID,
94     X_PROGRAM_ID,
95     X_PROGRAM_UPDATE_DATE,
96     X_CREATION_DATE,
97     X_CREATED_BY,
98     X_LAST_UPDATE_DATE,
99     X_LAST_UPDATED_BY,
100     X_LAST_UPDATE_LOGIN,
101     L.LANGUAGE_CODE,
102     userenv('LANG'),
103     X_INVENTORY_ITEM_STATUS_CODE_T
104     from FND_LANGUAGES L
105   where L.INSTALLED_FLAG in ('I', 'B')
106   and not exists
107     (select NULL
108     from MTL_ITEM_STATUS_TL T
109     where T.INVENTORY_ITEM_STATUS_CODE = X_INVENTORY_ITEM_STATUS_CODE
110     and T.LANGUAGE = L.LANGUAGE_CODE);
111 
112   open c;
113   fetch c into X_ROWID;
114   if (c%notfound) then
115     close c;
116     raise no_data_found;
117   end if;
118   close c;
119 
120 end INSERT_ROW;
121 
122 procedure LOCK_ROW (
123   X_INVENTORY_ITEM_STATUS_CODE in VARCHAR2,
124   X_DISABLE_DATE in DATE,
125   X_ATTRIBUTE_CATEGORY in VARCHAR2,
126   X_ATTRIBUTE1 in VARCHAR2,
127   X_ATTRIBUTE2 in VARCHAR2,
128   X_ATTRIBUTE3 in VARCHAR2,
129   X_ATTRIBUTE4 in VARCHAR2,
130   X_ATTRIBUTE5 in VARCHAR2,
131   X_ATTRIBUTE6 in VARCHAR2,
132   X_ATTRIBUTE7 in VARCHAR2,
133   X_ATTRIBUTE8 in VARCHAR2,
134   X_ATTRIBUTE9 in VARCHAR2,
135   X_ATTRIBUTE10 in VARCHAR2,
136   X_ATTRIBUTE11 in VARCHAR2,
137   X_ATTRIBUTE12 in VARCHAR2,
138   X_ATTRIBUTE13 in VARCHAR2,
139   X_ATTRIBUTE14 in VARCHAR2,
140   X_ATTRIBUTE15 in VARCHAR2,
141   X_REQUEST_ID in NUMBER,
142   X_PROGRAM_APPLICATION_ID in NUMBER,
143   X_PROGRAM_ID in NUMBER,
144   X_PROGRAM_UPDATE_DATE  in DATE,
145   X_INVENTORY_ITEM_STATUS_CODE_T in VARCHAR2,
146   X_DESCRIPTION in VARCHAR2
147 ) is
148 
149   cursor c is
150     select
151       DISABLE_DATE,
152       ATTRIBUTE_CATEGORY,
153       ATTRIBUTE1,
154       ATTRIBUTE2,
155       ATTRIBUTE3,
156       ATTRIBUTE4,
157       ATTRIBUTE5,
158       ATTRIBUTE6,
159       ATTRIBUTE7,
160       ATTRIBUTE8,
161       ATTRIBUTE9,
162       ATTRIBUTE10,
163       ATTRIBUTE11,
164       ATTRIBUTE12,
165       ATTRIBUTE13,
166       ATTRIBUTE14,
167       ATTRIBUTE15,
168       REQUEST_ID,
169       PROGRAM_APPLICATION_ID,
170       PROGRAM_ID,
171       PROGRAM_UPDATE_DATE,
172       INVENTORY_ITEM_STATUS_CODE_TL,
173       DESCRIPTION,
174       decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
175     from MTL_ITEM_STATUS_TL
176     where INVENTORY_ITEM_STATUS_CODE = X_INVENTORY_ITEM_STATUS_CODE
177     and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
178     for update of INVENTORY_ITEM_STATUS_CODE nowait;
179 
180  recinfo c%ROWTYPE;
181 begin
182   open c;
183   fetch c into recinfo;
184   if (c%notfound) then
185     close c;
186     fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
187     app_exception.raise_exception;
188   end if;
189   close c;
190   if (    ((recinfo.DISABLE_DATE = X_DISABLE_DATE)
191            OR ((recinfo.DISABLE_DATE is null) AND (X_DISABLE_DATE is null)))
192       AND ((recinfo.ATTRIBUTE_CATEGORY = X_ATTRIBUTE_CATEGORY)
193            OR ((recinfo.ATTRIBUTE_CATEGORY is null) AND (X_ATTRIBUTE_CATEGORY is null)))
194       AND ((recinfo.ATTRIBUTE1 = X_ATTRIBUTE1)
195            OR ((recinfo.ATTRIBUTE1 is null) AND (X_ATTRIBUTE1 is null)))
196       AND ((recinfo.ATTRIBUTE2 = X_ATTRIBUTE2)
197            OR ((recinfo.ATTRIBUTE2 is null) AND (X_ATTRIBUTE2 is null)))
198       AND ((recinfo.ATTRIBUTE3 = X_ATTRIBUTE3)
199            OR ((recinfo.ATTRIBUTE3 is null) AND (X_ATTRIBUTE3 is null)))
200       AND ((recinfo.ATTRIBUTE4 = X_ATTRIBUTE4)
201            OR ((recinfo.ATTRIBUTE4 is null) AND (X_ATTRIBUTE4 is null)))
202       AND ((recinfo.ATTRIBUTE5 = X_ATTRIBUTE5)
203            OR ((recinfo.ATTRIBUTE5 is null) AND (X_ATTRIBUTE5 is null)))
204       AND ((recinfo.ATTRIBUTE6 = X_ATTRIBUTE6)
205            OR ((recinfo.ATTRIBUTE6 is null) AND (X_ATTRIBUTE6 is null)))
206       AND ((recinfo.ATTRIBUTE7 = X_ATTRIBUTE7)
207            OR ((recinfo.ATTRIBUTE7 is null) AND (X_ATTRIBUTE7 is null)))
208       AND ((recinfo.ATTRIBUTE8 = X_ATTRIBUTE8)
209            OR ((recinfo.ATTRIBUTE8 is null) AND (X_ATTRIBUTE8 is null)))
210       AND ((recinfo.ATTRIBUTE9 = X_ATTRIBUTE9)
211            OR ((recinfo.ATTRIBUTE9 is null) AND (X_ATTRIBUTE9 is null)))
212       AND ((recinfo.ATTRIBUTE10 = X_ATTRIBUTE10)
213            OR ((recinfo.ATTRIBUTE10 is null) AND (X_ATTRIBUTE10 is null)))
214       AND ((recinfo.ATTRIBUTE11 = X_ATTRIBUTE11)
215            OR ((recinfo.ATTRIBUTE11 is null) AND (X_ATTRIBUTE11 is null)))
216       AND ((recinfo.ATTRIBUTE12 = X_ATTRIBUTE12)
217            OR ((recinfo.ATTRIBUTE12 is null) AND (X_ATTRIBUTE12 is null)))
218       AND ((recinfo.ATTRIBUTE13 = X_ATTRIBUTE13)
219            OR ((recinfo.ATTRIBUTE13 is null) AND (X_ATTRIBUTE13 is null)))
220       AND ((recinfo.ATTRIBUTE14 = X_ATTRIBUTE14)
221            OR ((recinfo.ATTRIBUTE14 is null) AND (X_ATTRIBUTE14 is null)))
222       AND ((recinfo.ATTRIBUTE15 = X_ATTRIBUTE15)
223            OR ((recinfo.ATTRIBUTE15 is null) AND (X_ATTRIBUTE15 is null)))
224       AND ((recinfo.REQUEST_ID = X_REQUEST_ID)
225            OR ((recinfo.REQUEST_ID is null) AND (X_REQUEST_ID is null)))
226       AND ((recinfo.PROGRAM_APPLICATION_ID = X_PROGRAM_APPLICATION_ID)
227            OR ((recinfo.PROGRAM_APPLICATION_ID is null) AND (X_PROGRAM_APPLICATION_ID is null)))
228       AND ((recinfo.PROGRAM_ID = X_PROGRAM_ID)
229            OR ((recinfo.PROGRAM_ID is null) AND (X_PROGRAM_ID is null)))
230       AND ((recinfo.PROGRAM_UPDATE_DATE = X_PROGRAM_UPDATE_DATE)
231            OR ((recinfo.PROGRAM_UPDATE_DATE is null) AND (X_PROGRAM_UPDATE_DATE is null)))
232   ) then
233     null;
234   else
235     fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
236     app_exception.raise_exception;
237   end if;
238 
239     if (recinfo.BASELANG = 'Y') then
240       if (    (recinfo.INVENTORY_ITEM_STATUS_CODE_TL = X_INVENTORY_ITEM_STATUS_CODE_T)
241           AND ((recinfo.DESCRIPTION = X_DESCRIPTION)
242                OR ((recinfo.DESCRIPTION is null) AND (X_DESCRIPTION is null)))
243       ) then
244         null;
245       else
246         fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
247         app_exception.raise_exception;
248       end if;
249     end if;
250   return;
251 end LOCK_ROW;
252 
253 procedure UPDATE_ROW (
254   X_INVENTORY_ITEM_STATUS_CODE in VARCHAR2,
255   X_DISABLE_DATE in DATE,
256   X_ATTRIBUTE_CATEGORY in VARCHAR2,
257   X_ATTRIBUTE1 in VARCHAR2,
258   X_ATTRIBUTE2 in VARCHAR2,
259   X_ATTRIBUTE3 in VARCHAR2,
260   X_ATTRIBUTE4 in VARCHAR2,
261   X_ATTRIBUTE5 in VARCHAR2,
262   X_ATTRIBUTE6 in VARCHAR2,
263   X_ATTRIBUTE7 in VARCHAR2,
264   X_ATTRIBUTE8 in VARCHAR2,
265   X_ATTRIBUTE9 in VARCHAR2,
266   X_ATTRIBUTE10 in VARCHAR2,
267   X_ATTRIBUTE11 in VARCHAR2,
268   X_ATTRIBUTE12 in VARCHAR2,
269   X_ATTRIBUTE13 in VARCHAR2,
270   X_ATTRIBUTE14 in VARCHAR2,
271   X_ATTRIBUTE15 in VARCHAR2,
272   X_REQUEST_ID in NUMBER,
273   X_PROGRAM_APPLICATION_ID in NUMBER,
274   X_PROGRAM_ID in NUMBER,
275   X_PROGRAM_UPDATE_DATE  in DATE,
276   X_INVENTORY_ITEM_STATUS_CODE_T in VARCHAR2,
277   X_DESCRIPTION in VARCHAR2,
278   X_LAST_UPDATE_DATE in DATE,
279   X_LAST_UPDATED_BY in NUMBER,
280   X_LAST_UPDATE_LOGIN in NUMBER
281 ) is
282 begin
283   update MTL_ITEM_STATUS_TL set
284     DISABLE_DATE = X_DISABLE_DATE,
285     ATTRIBUTE_CATEGORY = X_ATTRIBUTE_CATEGORY,
286     ATTRIBUTE1 = X_ATTRIBUTE1,
287     ATTRIBUTE2 = X_ATTRIBUTE2,
288     ATTRIBUTE3 = X_ATTRIBUTE3,
289     ATTRIBUTE4 = X_ATTRIBUTE4,
290     ATTRIBUTE5 = X_ATTRIBUTE5,
291     ATTRIBUTE6 = X_ATTRIBUTE6,
292     ATTRIBUTE7 = X_ATTRIBUTE7,
293     ATTRIBUTE8 = X_ATTRIBUTE8,
294     ATTRIBUTE9 = X_ATTRIBUTE9,
295     ATTRIBUTE10 = X_ATTRIBUTE10,
296     ATTRIBUTE11 = X_ATTRIBUTE11,
297     ATTRIBUTE12 = X_ATTRIBUTE12,
298     ATTRIBUTE13 = X_ATTRIBUTE13,
299     ATTRIBUTE14 = X_ATTRIBUTE14,
300     ATTRIBUTE15 = X_ATTRIBUTE15,
301     REQUEST_ID = X_REQUEST_ID,
302     PROGRAM_APPLICATION_ID = X_PROGRAM_APPLICATION_ID,
303     PROGRAM_ID = X_PROGRAM_ID,
304     PROGRAM_UPDATE_DATE = X_PROGRAM_UPDATE_DATE,
305     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
306     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
307     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
308     INVENTORY_ITEM_STATUS_CODE_TL = X_INVENTORY_ITEM_STATUS_CODE_T,
309     DESCRIPTION = X_DESCRIPTION
310   where INVENTORY_ITEM_STATUS_CODE = X_INVENTORY_ITEM_STATUS_CODE
311   and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
312 
313   if (sql%notfound) then
314     raise no_data_found;
315   end if;
316 
317 end UPDATE_ROW;
318 
319 procedure DELETE_ROW (
320   X_INVENTORY_ITEM_STATUS_CODE in VARCHAR2
321 ) is
322 begin
323   delete from MTL_ITEM_STATUS_TL
324   where INVENTORY_ITEM_STATUS_CODE = X_INVENTORY_ITEM_STATUS_CODE;
325 
326   if (sql%notfound) then
327     raise no_data_found;
328   end if;
329 
330 end DELETE_ROW;
331 
332 procedure ADD_LANGUAGE
333 is
334 begin
335   insert into MTL_ITEM_STATUS_TL (
336     INVENTORY_ITEM_STATUS_CODE,
337     INVENTORY_ITEM_STATUS_CODE_TL,
338     DESCRIPTION,
339     CREATED_BY,
340     CREATION_DATE,
341     LAST_UPDATED_BY,
342     LAST_UPDATE_DATE,
343     LAST_UPDATE_LOGIN,
344     LANGUAGE,
345     SOURCE_LANG
346   ) select /*+ ORDERED */
347     B.INVENTORY_ITEM_STATUS_CODE,
348     B.INVENTORY_ITEM_STATUS_CODE_TL,
349     B.DESCRIPTION,
350     B.CREATED_BY,
351     B.CREATION_DATE,
352     B.LAST_UPDATED_BY,
353     B.LAST_UPDATE_DATE,
354     B.LAST_UPDATE_LOGIN,
355     L.LANGUAGE_CODE,
356     B.SOURCE_LANG
357   from MTL_ITEM_STATUS_TL B, FND_LANGUAGES L
358   where L.INSTALLED_FLAG in ('I', 'B')
359   and B.LANGUAGE = userenv('LANG')
360   and not exists
361     (select NULL
362     from MTL_ITEM_STATUS_TL T
363     where T.INVENTORY_ITEM_STATUS_CODE = B.INVENTORY_ITEM_STATUS_CODE
364     and T.LANGUAGE = L.LANGUAGE_CODE);
365 end ADD_LANGUAGE;
366 
367 end MTL_ITEM_STATUS_PKG;