DBA Data[Home] [Help]

PACKAGE BODY: APPS.IEC_O_VALIDATION_RECOMM_PKG

Source


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