DBA Data[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;