DBA Data[Home] [Help]

PACKAGE BODY: APPS.GMO_DISPENSE_AREA_PKG

Source


1 package body GMO_DISPENSE_AREA_PKG as
2 /* $Header: GMODAREB.pls 120.1 2007/06/21 06:08:01 rvsingh noship $ */
3 procedure INSERT_ROW (
4   X_ROWID in out NOCOPY VARCHAR2,
5   X_DISPENSE_AREA_ID in NUMBER,
6   X_ORGANIZATION_ID in NUMBER,
7   X_DISPENSE_AREA_NAME in VARCHAR2,
8   X_DEFAULT_AREA_IND in VARCHAR2,
9   X_SUBINVENTORY_CODE in VARCHAR2,
10   X_NUMBER_OF_TASKS_PER_DAY in NUMBER,
11   X_DISPENSE_AREA_DESC in VARCHAR2,
12   X_CREATION_DATE in DATE,
13   X_CREATED_BY in NUMBER,
14   X_LAST_UPDATE_DATE in DATE,
15   X_LAST_UPDATED_BY in NUMBER,
16   X_LAST_UPDATE_LOGIN in NUMBER
17 ) is
18   cursor C is select ROWID from GMO_DISPENSE_AREA_B
19     where DISPENSE_AREA_ID = X_DISPENSE_AREA_ID
20     ;
21 begin
22   insert into GMO_DISPENSE_AREA_B (
23     DISPENSE_AREA_ID,
24     ORGANIZATION_ID,
25     DISPENSE_AREA_NAME,
26     DEFAULT_AREA_IND,
27     SUBINVENTORY_CODE,
28     NUMBER_OF_TASKS_PER_DAY,
29     CREATION_DATE,
30     CREATED_BY,
31     LAST_UPDATE_DATE,
32     LAST_UPDATED_BY,
33     LAST_UPDATE_LOGIN
34   ) values (
35     X_DISPENSE_AREA_ID,
36     X_ORGANIZATION_ID,
37     X_DISPENSE_AREA_NAME,
38     X_DEFAULT_AREA_IND,
39     X_SUBINVENTORY_CODE,
40     X_NUMBER_OF_TASKS_PER_DAY,
41     X_CREATION_DATE,
42     X_CREATED_BY,
43     X_LAST_UPDATE_DATE,
44     X_LAST_UPDATED_BY,
45     X_LAST_UPDATE_LOGIN
46   );
47 
48   insert into GMO_DISPENSE_AREA_TL (
49     CREATION_DATE,
50     LAST_UPDATED_BY,
51     LAST_UPDATE_DATE,
52     LAST_UPDATE_LOGIN,
53     DISPENSE_AREA_ID,
54     DISPENSE_AREA_DESC,
55     CREATED_BY,
56     LANGUAGE,
57     SOURCE_LANG
58   ) select
59     X_CREATION_DATE,
60     X_LAST_UPDATED_BY,
61     X_LAST_UPDATE_DATE,
62     X_LAST_UPDATE_LOGIN,
63     X_DISPENSE_AREA_ID,
64     X_DISPENSE_AREA_DESC,
65     X_CREATED_BY,
66     L.LANGUAGE_CODE,
67     userenv('LANG')
68   from FND_LANGUAGES L
69   where L.INSTALLED_FLAG in ('I', 'B')
70   and not exists
71     (select NULL
72     from GMO_DISPENSE_AREA_TL T
73     where T.DISPENSE_AREA_ID = X_DISPENSE_AREA_ID
74     and T.LANGUAGE = L.LANGUAGE_CODE);
75 
76   open c;
77   fetch c into X_ROWID;
78   if (c%notfound) then
79     close c;
80     raise no_data_found;
81   end if;
82   close c;
83 
84 end INSERT_ROW;
85 
86 procedure LOCK_ROW (
87   X_DISPENSE_AREA_ID in NUMBER,
88   X_ORGANIZATION_ID in NUMBER,
89   X_DISPENSE_AREA_NAME in VARCHAR2,
90   X_DEFAULT_AREA_IND in VARCHAR2,
91   X_SUBINVENTORY_CODE in VARCHAR2,
92   X_NUMBER_OF_TASKS_PER_DAY in NUMBER,
93   X_DISPENSE_AREA_DESC in VARCHAR2
94 ) is
95   cursor c is select
96       ORGANIZATION_ID,
97       DISPENSE_AREA_NAME,
98       DEFAULT_AREA_IND,
99       SUBINVENTORY_CODE,
100       NUMBER_OF_TASKS_PER_DAY
101     from GMO_DISPENSE_AREA_B
102     where DISPENSE_AREA_ID = X_DISPENSE_AREA_ID
103     for update of DISPENSE_AREA_ID nowait;
104   recinfo c%rowtype;
105 
106   cursor c1 is select
107       DISPENSE_AREA_DESC,
108       decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
109     from GMO_DISPENSE_AREA_TL
110     where DISPENSE_AREA_ID = X_DISPENSE_AREA_ID
111     and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
112     for update of DISPENSE_AREA_ID nowait;
113 begin
114   open c;
115   fetch c into recinfo;
116   if (c%notfound) then
117     close c;
118     fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
119     app_exception.raise_exception;
120   end if;
121   close c;
122   if (    ((recinfo.ORGANIZATION_ID = X_ORGANIZATION_ID)
123            OR ((recinfo.ORGANIZATION_ID is null) AND (X_ORGANIZATION_ID is null)))
124       AND ((recinfo.DISPENSE_AREA_NAME = X_DISPENSE_AREA_NAME)
125            OR ((recinfo.DISPENSE_AREA_NAME is null) AND (X_DISPENSE_AREA_NAME is null)))
126       AND ((recinfo.DEFAULT_AREA_IND = X_DEFAULT_AREA_IND)
127            OR ((recinfo.DEFAULT_AREA_IND is null) AND (X_DEFAULT_AREA_IND is null)))
128       AND ((recinfo.SUBINVENTORY_CODE = X_SUBINVENTORY_CODE)
129            OR ((recinfo.SUBINVENTORY_CODE is null) AND (X_SUBINVENTORY_CODE is null)))
130       AND ((recinfo.NUMBER_OF_TASKS_PER_DAY = X_NUMBER_OF_TASKS_PER_DAY)
131            OR ((recinfo.NUMBER_OF_TASKS_PER_DAY is null) AND (X_NUMBER_OF_TASKS_PER_DAY is null)))
132   ) then
133     null;
134   else
135     fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
136     app_exception.raise_exception;
137   end if;
138 
139   for tlinfo in c1 loop
140     if (tlinfo.BASELANG = 'Y') then
141       if (    (tlinfo.DISPENSE_AREA_DESC = X_DISPENSE_AREA_DESC)
142       ) then
143         null;
144       else
145         fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
146         app_exception.raise_exception;
147       end if;
148     end if;
149   end loop;
150   return;
151 end LOCK_ROW;
152 
153 procedure UPDATE_ROW (
154   X_DISPENSE_AREA_ID in NUMBER,
155   X_ORGANIZATION_ID in NUMBER,
156   X_DISPENSE_AREA_NAME in VARCHAR2,
157   X_DEFAULT_AREA_IND in VARCHAR2,
158   X_SUBINVENTORY_CODE in VARCHAR2,
159   X_NUMBER_OF_TASKS_PER_DAY in NUMBER,
160   X_DISPENSE_AREA_DESC in VARCHAR2,
161   X_LAST_UPDATE_DATE in DATE,
162   X_LAST_UPDATED_BY in NUMBER,
163   X_LAST_UPDATE_LOGIN in NUMBER
164 ) is
165 begin
166   update GMO_DISPENSE_AREA_B set
167     ORGANIZATION_ID = X_ORGANIZATION_ID,
168     DISPENSE_AREA_NAME = X_DISPENSE_AREA_NAME,
169     DEFAULT_AREA_IND = X_DEFAULT_AREA_IND,
170     SUBINVENTORY_CODE = X_SUBINVENTORY_CODE,
171     NUMBER_OF_TASKS_PER_DAY = X_NUMBER_OF_TASKS_PER_DAY,
172     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
173     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
174     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
175   where DISPENSE_AREA_ID = X_DISPENSE_AREA_ID;
176 
177   if (sql%notfound) then
178     raise no_data_found;
179   end if;
180 
181   update GMO_DISPENSE_AREA_TL set
182     DISPENSE_AREA_DESC = X_DISPENSE_AREA_DESC,
183     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
184     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
185     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
186     SOURCE_LANG = userenv('LANG')
187   where DISPENSE_AREA_ID = X_DISPENSE_AREA_ID
188   and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
189 
190   if (sql%notfound) then
191     raise no_data_found;
192   end if;
193 end UPDATE_ROW;
194 
195 procedure DELETE_ROW (
196   X_DISPENSE_AREA_ID in NUMBER
197 ) is
198 begin
199   delete from GMO_DISPENSE_AREA_TL
200   where DISPENSE_AREA_ID = X_DISPENSE_AREA_ID;
201 
202   if (sql%notfound) then
203     raise no_data_found;
204   end if;
205 
206   delete from GMO_DISPENSE_AREA_B
207   where DISPENSE_AREA_ID = X_DISPENSE_AREA_ID;
208 
209   if (sql%notfound) then
210     raise no_data_found;
211   end if;
212 end DELETE_ROW;
213 
214 procedure ADD_LANGUAGE
215 is
216 begin
217   delete from GMO_DISPENSE_AREA_TL T
218   where not exists
219     (select NULL
220     from GMO_DISPENSE_AREA_B B
221     where B.DISPENSE_AREA_ID = T.DISPENSE_AREA_ID
222     );
223 
224   update GMO_DISPENSE_AREA_TL T set (
225       DISPENSE_AREA_DESC
226     ) = (select
227       B.DISPENSE_AREA_DESC
228     from GMO_DISPENSE_AREA_TL B
229     where B.DISPENSE_AREA_ID = T.DISPENSE_AREA_ID
230     and B.LANGUAGE = T.SOURCE_LANG)
231   where (
232       T.DISPENSE_AREA_ID,
233       T.LANGUAGE
234   ) in (select
235       SUBT.DISPENSE_AREA_ID,
236       SUBT.LANGUAGE
237     from GMO_DISPENSE_AREA_TL SUBB, GMO_DISPENSE_AREA_TL SUBT
238     where SUBB.DISPENSE_AREA_ID = SUBT.DISPENSE_AREA_ID
239     and SUBB.LANGUAGE = SUBT.SOURCE_LANG
240     and (SUBB.DISPENSE_AREA_DESC <> SUBT.DISPENSE_AREA_DESC
241   ));
242 
243   insert into GMO_DISPENSE_AREA_TL (
244     CREATION_DATE,
245     LAST_UPDATED_BY,
246     LAST_UPDATE_DATE,
247     LAST_UPDATE_LOGIN,
248     DISPENSE_AREA_ID,
249     DISPENSE_AREA_DESC,
250     CREATED_BY,
251     LANGUAGE,
252     SOURCE_LANG
253   ) select /*+ ORDERED */
254     B.CREATION_DATE,
255     B.LAST_UPDATED_BY,
256     B.LAST_UPDATE_DATE,
257     B.LAST_UPDATE_LOGIN,
258     B.DISPENSE_AREA_ID,
259     B.DISPENSE_AREA_DESC,
260     B.CREATED_BY,
261     L.LANGUAGE_CODE,
262     B.SOURCE_LANG
263   from GMO_DISPENSE_AREA_TL B, FND_LANGUAGES L
264   where L.INSTALLED_FLAG in ('I', 'B')
265   and B.LANGUAGE = userenv('LANG')
266   and not exists
267     (select NULL
268     from GMO_DISPENSE_AREA_TL T
269     where T.DISPENSE_AREA_ID = B.DISPENSE_AREA_ID
270     and T.LANGUAGE = L.LANGUAGE_CODE);
271 end ADD_LANGUAGE;
272 
273 end GMO_DISPENSE_AREA_PKG;