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