DBA Data[Home] [Help]

PACKAGE BODY: APPS.PA_RESOURCE_CLASSES_PVT

Source


1 package body PA_RESOURCE_CLASSES_PVT as
2 /* $Header: PARRCLVB.pls 120.0 2005/05/30 16:37:31 appldev noship $ */
3 procedure INSERT_ROW (
4   X_ROWID                           in out NOCOPY ROWID,
5   P_RESOURCE_CLASS_ID               in NUMBER,
6   P_RESOURCE_CLASS_CODE             in VARCHAR2,
7   P_RESOURCE_CLASS_SEQ              in NUMBER,
8   P_NAME                            in VARCHAR2,
9   P_DESCRIPTION                     in VARCHAR2,
10   P_CREATION_DATE                   in DATE     ,
11   P_CREATED_BY                      in NUMBER   ,
12   P_LAST_UPDATE_DATE                in DATE     ,
13   P_LAST_UPDATED_BY                 in NUMBER   ,
14   P_LAST_UPDATE_LOGIN               in NUMBER
15 ) is
16 
17   l_resource_class_id pa_resource_classes_b.resource_class_id%type;
18 
19 
20   cursor C is select ROWID from pa_resource_classes_b
21     where resource_class_id = l_resource_class_id;
22 begin
23 
24   select nvl(P_RESOURCE_CLASS_ID,PA_RESOURCE_CLASSES_S.nextval)
25   into   l_resource_class_id
26   from   dual;
27 
28   insert into pa_resource_classes_b (
29     RESOURCE_CLASS_ID             ,
30     RESOURCE_CLASS_CODE           ,
31     RESOURCE_CLASS_SEQ            ,
32     CREATION_DATE                 ,
33     CREATED_BY                    ,
34     LAST_UPDATE_DATE              ,
35     LAST_UPDATED_BY               ,
36     LAST_UPDATE_LOGIN
37   ) values (
38     L_RESOURCE_CLASS_ID                  ,
39     P_RESOURCE_CLASS_CODE                ,
40     P_RESOURCE_CLASS_SEQ                 ,
41     P_CREATION_DATE                      ,
42     P_CREATED_BY                         ,
43     P_LAST_UPDATE_DATE                   ,
44     P_LAST_UPDATED_BY                    ,
45     P_LAST_UPDATE_LOGIN
46   );
47 
48   insert into pa_resource_classes_tl (
49     LAST_UPDATE_LOGIN,
50     CREATION_DATE,
51     CREATED_BY,
52     LAST_UPDATE_DATE,
53     LAST_UPDATED_BY,
54     RESOURCE_CLASS_ID,
55     NAME,
56     DESCRIPTION,
57     LANGUAGE,
58     SOURCE_LANG
59   ) select
60     P_LAST_UPDATE_LOGIN,
61     P_CREATION_DATE,
62     P_CREATED_BY,
63     P_LAST_UPDATE_DATE,
64     P_LAST_UPDATED_BY,
65     L_RESOURCE_CLASS_ID,
66     P_NAME,
67     P_DESCRIPTION,
68     L.LANGUAGE_CODE,
69     userenv('LANG')
70   from FND_LANGUAGES L
71   where L.INSTALLED_FLAG in ('I', 'B')
72   and not exists
73     (select NULL
74     from PA_RESOURCE_CLASSES_TL T
75     where T.RESOURCE_CLASS_ID = L_RESOURCE_CLASS_ID
76     and T.LANGUAGE = L.LANGUAGE_CODE);
77 
78   open c;
79   fetch c into X_ROWID;
80   if (c%notfound) then
81     close c;
82     raise no_data_found;
83   end if;
84   close c;
85 
86 end INSERT_ROW;
87 
88 procedure LOCK_ROW (
89   P_RESOURCE_CLASS_ID                  in NUMBER
90  ) is
91   cursor c is select
92       RESOURCE_CLASS_CODE
93     from pa_resource_classes_b
94     where RESOURCE_CLASS_ID = P_RESOURCE_CLASS_ID
95     for update of RESOURCE_CLASS_ID nowait;
96   recinfo c%rowtype;
97 
98   cursor c1 is select
99       NAME,
100       DESCRIPTION,
101       decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
102     from pa_resource_classes_tl
103     where RESOURCE_CLASS_ID = P_RESOURCE_CLASS_ID
104     and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
105     for update of RESOURCE_CLASS_ID nowait;
106 begin
107 
108   open c;
109   fetch c into recinfo;
110   if (c%notfound) then
111     close c;
112     fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
113     app_exception.raise_exception;
114   end if;
115   close c;
116 
117   return;
118 
119 end LOCK_ROW;
120 
121 procedure UPDATE_ROW (
122   P_RESOURCE_CLASS_ID               in NUMBER,
123   P_RESOURCE_CLASS_CODE             in VARCHAR2,
124   P_RESOURCE_CLASS_SEQ              in NUMBER,
125   P_NAME                            in VARCHAR2,
126   P_DESCRIPTION                     in VARCHAR2,
127   P_LAST_UPDATE_DATE                in DATE     ,
128   P_LAST_UPDATED_BY                 in NUMBER   ,
129   P_LAST_UPDATE_LOGIN               in NUMBER
130 ) is
131 begin
132   update pa_resource_classes_b set
133     RESOURCE_CLASS_CODE    = P_RESOURCE_CLASS_CODE,
134     RESOURCE_CLASS_SEQ     = P_RESOURCE_CLASS_SEQ,
135     LAST_UPDATE_DATE       = P_LAST_UPDATE_DATE               ,
136     LAST_UPDATED_BY        = P_LAST_UPDATED_BY                ,
137     LAST_UPDATE_LOGIN      = P_LAST_UPDATE_LOGIN
138   where RESOURCE_CLASS_ID              = P_RESOURCE_CLASS_ID;
139 
140   if (sql%notfound) then
141     raise no_data_found;
142   end if;
143 
144   update pa_resource_classes_tl set
145     NAME = P_NAME,
146     DESCRIPTION = P_DESCRIPTION,
147     LAST_UPDATE_DATE = P_LAST_UPDATE_DATE,
148     LAST_UPDATED_BY = P_LAST_UPDATED_BY,
149     LAST_UPDATE_LOGIN = P_LAST_UPDATE_LOGIN,
150     SOURCE_LANG = userenv('LANG')
151   where RESOURCE_CLASS_ID              = P_RESOURCE_CLASS_ID
152   and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
153 
154   if (sql%notfound) then
155     raise no_data_found;
156   end if;
157 end UPDATE_ROW;
158 
159 procedure DELETE_ROW (
160   P_RESOURCE_CLASS_ID in NUMBER
161 ) is
162 begin
163   delete from pa_resource_classes_tl
164   where RESOURCE_CLASS_ID = P_RESOURCE_CLASS_ID;
165 
166   if (sql%notfound) then
167     raise no_data_found;
168   end if;
169 
170   delete from pa_resource_classes_b
171   where RESOURCE_CLASS_ID = P_RESOURCE_CLASS_ID;
172 
173   if (sql%notfound) then
174     raise no_data_found;
175   end if;
176 end DELETE_ROW;
177 
178 procedure ADD_LANGUAGE
179 is
180 begin
181   delete from pa_resource_classes_tl T
182   where not exists
183     (select NULL
184     from pa_resource_classes_b B
185     where B.RESOURCE_CLASS_ID = T.RESOURCE_CLASS_ID
186     );
187 
188   update pa_resource_classes_tl T set (
189       NAME,
190       DESCRIPTION
191     ) = (select
192       B.NAME,
193       B.DESCRIPTION
194     from pa_resource_classes_tl B
195     where B.RESOURCE_CLASS_ID = T.RESOURCE_CLASS_ID
196     and B.LANGUAGE = T.SOURCE_LANG)
197   where (
198       T.RESOURCE_CLASS_ID,
199       T.LANGUAGE
200   ) in (select
201       SUBT.RESOURCE_CLASS_ID,
202       SUBT.LANGUAGE
203     from pa_resource_classes_tl SUBB, pa_resource_classes_tl SUBT
204     where SUBB.RESOURCE_CLASS_ID = SUBT.RESOURCE_CLASS_ID
205     and SUBB.LANGUAGE = SUBT.SOURCE_LANG
206     and (SUBB.NAME <> SUBT.NAME
207       or SUBB.DESCRIPTION <> SUBT.DESCRIPTION
208       or (SUBB.DESCRIPTION is null and SUBT.DESCRIPTION is not null)
209       or (SUBB.DESCRIPTION is not null and SUBT.DESCRIPTION is null)
210   ));
211 
212   insert into pa_resource_classes_tl (
213     LAST_UPDATE_LOGIN,
214     CREATION_DATE,
215     CREATED_BY,
216     LAST_UPDATE_DATE,
217     LAST_UPDATED_BY,
218     RESOURCE_CLASS_ID,
219     NAME,
220     DESCRIPTION,
221     LANGUAGE,
222     SOURCE_LANG
223   ) select
224     B.LAST_UPDATE_LOGIN,
225     B.CREATION_DATE,
226     B.CREATED_BY,
227     B.LAST_UPDATE_DATE,
228     B.LAST_UPDATED_BY,
229     B.RESOURCE_CLASS_ID,
230     B.NAME,
231     B.DESCRIPTION,
232     L.LANGUAGE_CODE,
233     B.SOURCE_LANG
234   from pa_resource_classes_tl B, FND_LANGUAGES L
235   where L.INSTALLED_FLAG in ('I', 'B')
236   and B.LANGUAGE = userenv('LANG')
237   and not exists
238     (select NULL
239     from pa_resource_classes_tl T
240     where T.RESOURCE_CLASS_ID = B.RESOURCE_CLASS_ID
241     and T.LANGUAGE = L.LANGUAGE_CODE);
242 end ADD_LANGUAGE;
243 
244 procedure TRANSLATE_ROW(
245   P_RESOURCE_CLASS_ID                 in NUMBER   ,
246   P_OWNER                             in VARCHAR2 ,
247   P_NAME                              in VARCHAR2 ,
248   P_DESCRIPTION                       in VARCHAR2
249 ) is
250 begin
251 
252   update pa_resource_classes_tl set
253     NAME = P_NAME,
254     DESCRIPTION = P_DESCRIPTION,
255     LAST_UPDATE_DATE  = sysdate,
256     LAST_UPDATED_BY   = decode(P_OWNER, 'SEED', 1, 0),
257     LAST_UPDATE_LOGIN = 0,
258     SOURCE_LANG = userenv('LANG') --For bug 4129599
259   where RESOURCE_CLASS_ID = P_RESOURCE_CLASS_ID
260   /*Bug4129599- Changes Start */
261   and   userenv('LANG') in (LANGUAGE, SOURCE_LANG);
262 --          (select LANGUAGE_CODE from FND_LANGUAGES where INSTALLED_FLAG = 'B');
263   /*Bug4129599- Changes End */
264 
265   if (sql%notfound) then
266     raise no_data_found;
267   end if;
268 
269 end TRANSLATE_ROW;
270 
271 procedure LOAD_ROW(
272   P_RESOURCE_CLASS_ID               in NUMBER,
273   P_RESOURCE_CLASS_CODE             in VARCHAR2,
274   P_RESOURCE_CLASS_SEQ              in NUMBER,
275   P_NAME                            in VARCHAR2,
276   P_DESCRIPTION                     in VARCHAR2,
277   P_OWNER                           in VARCHAR2
278 ) is
279 
280   user_id NUMBER;
281   l_rowid VARCHAR2(64);
282 
283 begin
284 
285   if (P_OWNER = 'SEED')then
286    user_id := 1;
287   else
288    user_id :=0;
289   end if;
290 
291   PA_RESOURCE_CLASSES_PVT.UPDATE_ROW (
292     P_RESOURCE_CLASS_ID                 =>    P_RESOURCE_CLASS_ID   ,
293     P_RESOURCE_CLASS_CODE               =>    P_RESOURCE_CLASS_CODE ,
294     P_RESOURCE_CLASS_SEQ                =>    P_RESOURCE_CLASS_SEQ  ,
295     P_NAME                              =>    P_NAME                ,
296     P_DESCRIPTION                       =>    P_DESCRIPTION         ,
297     P_LAST_UPDATE_DATE                  =>    sysdate               ,
298     P_LAST_UPDATED_BY                   =>    user_id               ,
299     P_LAST_UPDATE_LOGIN                 =>    0                     );
300 
301   EXCEPTION
302     WHEN no_data_found then
303         PA_RESOURCE_CLASSES_PVT.INSERT_ROW (
304     X_ROWID                           =>  l_rowid               ,
305     P_RESOURCE_CLASS_ID               =>  P_RESOURCE_CLASS_ID   ,
306     P_RESOURCE_CLASS_CODE             =>  P_RESOURCE_CLASS_CODE ,
307     P_RESOURCE_CLASS_SEQ              =>  P_RESOURCE_CLASS_SEQ  ,
308     P_NAME                            =>  P_NAME                ,
309     P_DESCRIPTION                     =>  P_DESCRIPTION         ,
310     P_CREATION_DATE                   =>  sysdate               ,
311     P_CREATED_BY                      =>  user_id               ,
312     P_LAST_UPDATE_DATE                =>  sysdate               ,
313     P_LAST_UPDATED_BY                 =>  user_id               ,
314     P_LAST_UPDATE_LOGIN               =>  0                     );
315 end LOAD_ROW;
316 
317 end PA_RESOURCE_CLASSES_PVT;