[Home] [Help]
PACKAGE BODY: APPS.XDP_SERVICE_VAL_ACTS_PKG
Source
1 package body XDP_SERVICE_VAL_ACTS_PKG as
2 /* $Header: XDPSVACB.pls 120.1 2005/06/16 02:39:41 appldev $ */
3 procedure INSERT_ROW (
4 X_ROWID in OUT NOCOPY VARCHAR2,
5 X_SERVICE_VAL_ACT_ID in NUMBER,
6 X_ACTION_SOURCE in VARCHAR2,
7 X_ACTION_CODE in VARCHAR2,
8 X_ORGANIZATION_ID in NUMBER ,
9 X_INVENTORY_ITEM_ID in NUMBER,
10 X_VALID_DATE in DATE,
11 X_INVALID_DATE in DATE,
12 X_WI_MAPPING_PROC in VARCHAR2,
13 X_WI_MAPPING_TYPE in VARCHAR2,
14 X_DESCRIPTION in VARCHAR2,
15 X_CREATION_DATE in DATE,
16 X_CREATED_BY in NUMBER,
17 X_LAST_UPDATE_DATE in DATE,
18 X_LAST_UPDATED_BY in NUMBER,
19 X_LAST_UPDATE_LOGIN in NUMBER
20 ) is
21 cursor C is select ROWID from XDP_SERVICE_VAL_ACTS
22 where SERVICE_VAL_ACT_ID = X_SERVICE_VAL_ACT_ID
23 ;
24 begin
25 insert into XDP_SERVICE_VAL_ACTS (
26 SERVICE_VAL_ACT_ID,
27 VALID_DATE,
28 INVALID_DATE,
29 WI_MAPPING_PROC,
30 WI_MAPPING_TYPE,
31 ORGANIZATION_ID ,
32 INVENTORY_ITEM_ID ,
33 ACTION_SOURCE,
34 ACTION_CODE,
35 CREATION_DATE,
36 CREATED_BY,
37 LAST_UPDATE_DATE,
38 LAST_UPDATED_BY,
39 LAST_UPDATE_LOGIN
40 ) values (
41 X_SERVICE_VAL_ACT_ID,
42 X_VALID_DATE,
43 X_INVALID_DATE,
44 X_WI_MAPPING_PROC,
45 X_WI_MAPPING_TYPE,
46 X_ORGANIZATION_ID ,
47 X_INVENTORY_ITEM_ID ,
48 X_ACTION_SOURCE,
49 X_ACTION_CODE,
50 X_CREATION_DATE,
51 X_CREATED_BY,
52 X_LAST_UPDATE_DATE,
53 X_LAST_UPDATED_BY,
54 X_LAST_UPDATE_LOGIN
55 );
56
57 insert into XDP_SERVICE_VAL_ACTS_TL (
58 SERVICE_VAL_ACT_ID,
59 DESCRIPTION,
60 CREATED_BY,
61 CREATION_DATE,
62 LAST_UPDATED_BY,
63 LAST_UPDATE_DATE,
64 LAST_UPDATE_LOGIN,
65 LANGUAGE,
66 SOURCE_LANG
67 ) select
68 X_SERVICE_VAL_ACT_ID,
69 X_DESCRIPTION,
70 X_CREATED_BY,
71 X_CREATION_DATE,
72 X_LAST_UPDATED_BY,
73 X_LAST_UPDATE_DATE,
74 X_LAST_UPDATE_LOGIN,
75 L.LANGUAGE_CODE,
76 userenv('LANG')
77 from FND_LANGUAGES L
78 where L.INSTALLED_FLAG in ('I', 'B')
79 and not exists
80 (select NULL
81 from XDP_SERVICE_VAL_ACTS_TL T
82 where T.SERVICE_VAL_ACT_ID = X_SERVICE_VAL_ACT_ID
83 and T.LANGUAGE = L.LANGUAGE_CODE);
84
85 open c;
86 fetch c into X_ROWID;
87 if (c%notfound) then
88 close c;
89 raise no_data_found;
90 end if;
91 close c;
92 exception
93 when no_data_found then
94 raise_application_error(-20001,'No data found1 : '||sqlcode||' - '||sqlerrm);
95 when others then
96 raise_application_error(-20001,'others : '||sqlcode||' - '||sqlerrm);
97 end INSERT_ROW;
98
99 procedure LOCK_ROW (
100 X_SERVICE_VAL_ACT_ID in NUMBER,
101 X_ACTION_SOURCE in VARCHAR2,
102 X_ACTION_CODE in VARCHAR2,
103 X_ORGANIZATION_ID in NUMBER,
104 X_INVENTORY_ITEM_ID in NUMBER,
105 X_VALID_DATE in DATE,
106 X_INVALID_DATE in DATE,
107 X_WI_MAPPING_PROC in VARCHAR2,
108 X_WI_MAPPING_TYPE in VARCHAR2,
109 X_DESCRIPTION in VARCHAR2
110 ) is
111 cursor c is select
112 ORGANIZATION_ID,
113 INVENTORY_ITEM_ID ,
114 ACTION_SOURCE,
115 ACTION_CODE,
116 VALID_DATE,
117 INVALID_DATE,
118 WI_MAPPING_PROC,
119 WI_MAPPING_TYPE
120 from XDP_SERVICE_VAL_ACTS
121 where SERVICE_VAL_ACT_ID = X_SERVICE_VAL_ACT_ID
122 for update of SERVICE_VAL_ACT_ID nowait;
123 recinfo c%rowtype;
124
125 cursor c1 is select
126 DESCRIPTION,
127 decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
128 from XDP_SERVICE_VAL_ACTS_TL
129 where SERVICE_VAL_ACT_ID = X_SERVICE_VAL_ACT_ID
130 and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
131 for update of SERVICE_VAL_ACT_ID nowait;
132 begin
133 open c;
134 fetch c into recinfo;
135 if (c%notfound) then
136 close c;
137 fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
138 app_exception.raise_exception;
139 end if;
140 close c;
141 if (
142 (recinfo.ORGANIZATION_ID = X_ORGANIZATION_ID)
143 AND (recinfo.INVENTORY_ITEM_ID = X_INVENTORY_ITEM_ID)
144 AND (recinfo.ACTION_SOURCE = X_ACTION_SOURCE)
145 AND (recinfo.ACTION_CODE = X_ACTION_CODE)
146 AND ((recinfo.VALID_DATE = X_VALID_DATE)
147 OR ((recinfo.VALID_DATE is null) AND (X_VALID_DATE is null)))
148 AND ((recinfo.INVALID_DATE = X_INVALID_DATE)
149 OR ((recinfo.INVALID_DATE is null) AND (X_INVALID_DATE is null)))
150 AND ((recinfo.WI_MAPPING_PROC = X_WI_MAPPING_PROC)
151 OR ((recinfo.WI_MAPPING_PROC is null) AND (X_WI_MAPPING_PROC is null)))
152 AND ((recinfo.WI_MAPPING_TYPE = X_WI_MAPPING_TYPE)
153 OR ((recinfo.WI_MAPPING_TYPE is null) AND (X_WI_MAPPING_TYPE is null)))
154 ) then
155 null;
156 else
157 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
158 app_exception.raise_exception;
159 end if;
160
161 for tlinfo in c1 loop
162 if (tlinfo.BASELANG = 'Y') then
163 if ( ((tlinfo.DESCRIPTION = X_DESCRIPTION)
164 OR ((tlinfo.DESCRIPTION is null) AND (X_DESCRIPTION is null)))
165 ) then
166 null;
167 else
168 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
169 app_exception.raise_exception;
170 end if;
171 end if;
172 end loop;
173 return;
174 end LOCK_ROW;
175
176 procedure UPDATE_ROW (
177 X_SERVICE_VAL_ACT_ID in NUMBER,
178 X_ACTION_SOURCE in VARCHAR2,
179 X_ACTION_CODE in VARCHAR2,
180 X_ORGANIZATION_ID in NUMBER,
181 X_INVENTORY_ITEM_ID in NUMBER,
182 X_VALID_DATE in DATE,
183 X_INVALID_DATE in DATE,
184 X_WI_MAPPING_PROC in VARCHAR2,
185 X_WI_MAPPING_TYPE in VARCHAR2,
186 X_DESCRIPTION in VARCHAR2,
187 X_LAST_UPDATE_DATE in DATE,
188 X_LAST_UPDATED_BY in NUMBER,
189 X_LAST_UPDATE_LOGIN in NUMBER
190 ) is
191 begin
192 update XDP_SERVICE_VAL_ACTS set
193 ACTION_SOURCE = X_ACTION_SOURCE ,
194 ACTION_CODE = X_ACTION_CODE ,
195 ORGANIZATION_ID = X_ORGANIZATION_ID ,
196 INVENTORY_ITEM_ID = X_INVENTORY_ITEM_ID ,
197 VALID_DATE = X_VALID_DATE,
198 INVALID_DATE = X_INVALID_DATE,
199 WI_MAPPING_PROC = X_WI_MAPPING_PROC,
200 WI_MAPPING_TYPE = X_WI_MAPPING_TYPE,
201 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
202 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
203 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
204 where SERVICE_VAL_ACT_ID = X_SERVICE_VAL_ACT_ID;
205
206 if (sql%notfound) then
207 raise no_data_found;
208 end if;
209
210 update XDP_SERVICE_VAL_ACTS_TL set
211 DESCRIPTION = X_DESCRIPTION,
212 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
213 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
214 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
215 SOURCE_LANG = userenv('LANG')
216 where SERVICE_VAL_ACT_ID = X_SERVICE_VAL_ACT_ID
217 and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
218
219 if (sql%notfound) then
220 raise no_data_found;
221 end if;
222 end UPDATE_ROW;
223
224 procedure DELETE_ROW (
225 X_SERVICE_VAL_ACT_ID in NUMBER
226 ) is
227 begin
228 delete from XDP_SERVICE_VAL_ACTS_TL
229 where SERVICE_VAL_ACT_ID = X_SERVICE_VAL_ACT_ID;
230
231 if (sql%notfound) then
232 raise no_data_found;
233 end if;
234
235 delete from XDP_SERVICE_VAL_ACTS
236 where SERVICE_VAL_ACT_ID = X_SERVICE_VAL_ACT_ID;
237
238 if (sql%notfound) then
239 raise no_data_found;
240 end if;
241 end DELETE_ROW;
242
243 procedure ADD_LANGUAGE
244 is
245 begin
246 delete from XDP_SERVICE_VAL_ACTS_TL T
247 where not exists
248 (select NULL
249 from XDP_SERVICE_VAL_ACTS B
250 where B.SERVICE_VAL_ACT_ID = T.SERVICE_VAL_ACT_ID
251 );
252
253 update XDP_SERVICE_VAL_ACTS_TL T set (
254 DESCRIPTION
255 ) = (select
256 B.DESCRIPTION
257 from XDP_SERVICE_VAL_ACTS_TL B
258 where B.SERVICE_VAL_ACT_ID = T.SERVICE_VAL_ACT_ID
259 and B.LANGUAGE = T.SOURCE_LANG)
260 where (
261 T.SERVICE_VAL_ACT_ID,
262 T.LANGUAGE
263 ) in (select
264 SUBT.SERVICE_VAL_ACT_ID,
265 SUBT.LANGUAGE
266 from XDP_SERVICE_VAL_ACTS_TL SUBB, XDP_SERVICE_VAL_ACTS_TL SUBT
267 where SUBB.SERVICE_VAL_ACT_ID = SUBT.SERVICE_VAL_ACT_ID
268 and SUBB.LANGUAGE = SUBT.SOURCE_LANG
269 and (SUBB.DESCRIPTION <> SUBT.DESCRIPTION
270 or (SUBB.DESCRIPTION is null and SUBT.DESCRIPTION is not null)
271 or (SUBB.DESCRIPTION is not null and SUBT.DESCRIPTION is null)
272 ));
273
274 insert into XDP_SERVICE_VAL_ACTS_TL (
275 SERVICE_VAL_ACT_ID,
276 DESCRIPTION,
277 CREATED_BY,
278 CREATION_DATE,
279 LAST_UPDATED_BY,
280 LAST_UPDATE_DATE,
281 LAST_UPDATE_LOGIN,
282 LANGUAGE,
283 SOURCE_LANG
284 ) select
285 B.SERVICE_VAL_ACT_ID,
286 B.DESCRIPTION,
287 B.CREATED_BY,
288 B.CREATION_DATE,
289 B.LAST_UPDATED_BY,
290 B.LAST_UPDATE_DATE,
291 B.LAST_UPDATE_LOGIN,
292 L.LANGUAGE_CODE,
293 B.SOURCE_LANG
294 from XDP_SERVICE_VAL_ACTS_TL B, FND_LANGUAGES L
295 where L.INSTALLED_FLAG in ('I', 'B')
296 and B.LANGUAGE = userenv('LANG')
297 and not exists
298 (select NULL
299 from XDP_SERVICE_VAL_ACTS_TL T
300 where T.SERVICE_VAL_ACT_ID = B.SERVICE_VAL_ACT_ID
301 and T.LANGUAGE = L.LANGUAGE_CODE);
302 end ADD_LANGUAGE;
303
304 procedure LOAD_ROW (
305 X_SERVICE_VAL_ACT_ID in NUMBER,
306 X_ACTION_SOURCE in VARCHAR2 ,
307 X_ACTION_CODE in VARCHAR2,
308 X_ORGANIZATION_ID in NUMBER,
309 X_INVENTORY_ITEM_ID in NUMBER,
310 X_VALID_DATE in DATE,
311 X_INVALID_DATE in DATE,
312 X_WI_MAPPING_PROC in VARCHAR2,
313 X_WI_MAPPING_TYPE in VARCHAR2,
314 X_DESCRIPTION in VARCHAR2,
315 X_OWNER in VARCHAR2) IS
316 begin
317
318 declare
319 user_id number := 0;
320 row_id varchar2(64);
321
322 begin
323
324 if (X_OWNER = 'SEED') then
325 user_id := 1;
326 end if;
327
328 XDP_SERVICE_VAL_ACTS_PKG.UPDATE_ROW (
329 X_SERVICE_VAL_ACT_ID => X_SERVICE_VAL_ACT_ID,
330 X_ACTION_SOURCE => X_ACTION_SOURCE,
331 X_ACTION_CODE => X_ACTION_CODE,
332 X_ORGANIZATION_ID => X_ORGANIZATION_ID,
333 X_INVENTORY_ITEM_ID => X_INVENTORY_ITEM_ID,
334 X_VALID_DATE => X_VALID_DATE,
335 X_INVALID_DATE => X_INVALID_DATE,
336 X_WI_MAPPING_PROC => X_WI_MAPPING_PROC,
337 X_WI_MAPPING_TYPE => X_WI_MAPPING_TYPE,
338 X_DESCRIPTION => X_DESCRIPTION,
339 X_LAST_UPDATE_DATE => sysdate,
340 X_LAST_UPDATED_BY => user_id,
341 X_LAST_UPDATE_LOGIN => 0);
342
343 exception
344 when NO_DATA_FOUND then
345 XDP_SERVICE_VAL_ACTS_PKG.INSERT_ROW (
346 X_ROWID => row_id,
347 X_SERVICE_VAL_ACT_ID => X_SERVICE_VAL_ACT_ID,
348 X_ACTION_SOURCE => X_ACTION_SOURCE,
349 X_ACTION_CODE => X_ACTION_CODE,
350 X_ORGANIZATION_ID => X_ORGANIZATION_ID,
351 X_INVENTORY_ITEM_ID => X_INVENTORY_ITEM_ID,
352 X_VALID_DATE => X_VALID_DATE,
353 X_INVALID_DATE => X_INVALID_DATE,
354 X_WI_MAPPING_PROC => X_WI_MAPPING_PROC,
355 X_WI_MAPPING_TYPE => X_WI_MAPPING_TYPE,
356 X_DESCRIPTION => X_DESCRIPTION,
357 X_CREATION_DATE => sysdate,
358 X_CREATED_BY => user_id,
359 X_LAST_UPDATE_DATE => sysdate,
360 X_LAST_UPDATED_BY => user_id,
361 X_LAST_UPDATE_LOGIN => 0);
362 end;
363 end LOAD_ROW;
364
365 procedure TRANSLATE_ROW (
366 X_SERVICE_VAL_ACT_ID in NUMBER,
367 X_DESCRIPTION in VARCHAR2,
368 X_OWNER in VARCHAR2) IS
369
370 begin
371
372 -- only update rows that have not been altered by user
373
374 update XDP_SERVICE_VAL_ACTS_TL
375 set description = X_DESCRIPTION,
376 source_lang = userenv('LANG'),
377 last_update_date = sysdate,
378 last_updated_by = decode(X_OWNER, 'SEED', 1, 0),
379 last_update_login = 0
380 where service_val_act_id = X_SERVICE_VAL_ACT_ID
381 and userenv('LANG') in (language, source_lang);
382
383 end TRANSLATE_ROW;
384
385
386 end XDP_SERVICE_VAL_ACTS_PKG;