DBA Data[Home] [Help]

PACKAGE BODY: APPS.AS_SALES_LEAD_QUALS_PKG

Source


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