DBA Data[Home] [Help]

PACKAGE BODY: APPS.FND_BUSINESS_PURPOSES_PKG

Source


1 package body FND_BUSINESS_PURPOSES_PKG as
2 /* $Header: fndpipub.pls 115.3 2004/04/09 19:19:45 rcsingh noship $ */
3 procedure INSERT_ROW (
4   X_ROWID in out nocopy VARCHAR2,
5   X_PURPOSE_CODE in VARCHAR2,
6   X_APPLICATION_ID in NUMBER,
7   X_SEEDED_FLAG in VARCHAR2,
8   X_ATTRIBUTE1 in VARCHAR2,
9   X_ATTRIBUTE2 in VARCHAR2,
10   X_ATTRIBUTE3 in VARCHAR2,
11   X_ATTRIBUTE4 in VARCHAR2,
12   X_ATTRIBUTE5 in VARCHAR2,
13   X_ATTRIBUTE6 in VARCHAR2,
14   X_ATTRIBUTE7 in VARCHAR2,
15   X_ATTRIBUTE8 in VARCHAR2,
16   X_ATTRIBUTE9 in VARCHAR2,
17   X_ATTRIBUTE10 in VARCHAR2,
18   X_ATTRIBUTE11 in VARCHAR2,
19   X_ATTRIBUTE12 in VARCHAR2,
20   X_ATTRIBUTE13 in VARCHAR2,
21   X_ATTRIBUTE14 in VARCHAR2,
22   X_ATTRIBUTE15 in VARCHAR2,
23   X_ATTRIBUTE_CATEGORY in VARCHAR2,
24   X_OBJECT_VERSION_NUMBER in NUMBER,
25   X_PURPOSE_NAME in VARCHAR2,
26   X_DESCRIPTION in VARCHAR2,
27   X_DESCRIPTION_INT in VARCHAR2,
28   X_CREATION_DATE in DATE,
29   X_CREATED_BY in NUMBER,
30   X_LAST_UPDATE_DATE in DATE,
31   X_LAST_UPDATED_BY in NUMBER,
32   X_LAST_UPDATE_LOGIN in NUMBER,
33   X_PURPOSE_DEFAULT_CODE in VARCHAR2
34 ) is
35   cursor C is select ROWID from FND_BUSINESS_PURPOSES_B
36     where PURPOSE_CODE = X_PURPOSE_CODE
37     ;
38 begin
39   insert into FND_BUSINESS_PURPOSES_B (
40     PURPOSE_CODE,
41     APPLICATION_ID,
42     SEEDED_FLAG,
43     ATTRIBUTE1,
44     ATTRIBUTE2,
45     ATTRIBUTE3,
46     ATTRIBUTE4,
47     ATTRIBUTE5,
48     ATTRIBUTE6,
49     ATTRIBUTE7,
50     ATTRIBUTE8,
51     ATTRIBUTE9,
52     ATTRIBUTE10,
53     ATTRIBUTE11,
54     ATTRIBUTE12,
55     ATTRIBUTE13,
56     ATTRIBUTE14,
57     ATTRIBUTE15,
58     ATTRIBUTE_CATEGORY,
59     OBJECT_VERSION_NUMBER,
60     CREATION_DATE,
61     CREATED_BY,
62     LAST_UPDATE_DATE,
63     LAST_UPDATED_BY,
64     LAST_UPDATE_LOGIN,
65     PURPOSE_DEFAULT_CODE
66   ) values (
67     X_PURPOSE_CODE,
68     X_APPLICATION_ID,
69     X_SEEDED_FLAG,
70     X_ATTRIBUTE1,
71     X_ATTRIBUTE2,
72     X_ATTRIBUTE3,
73     X_ATTRIBUTE4,
74     X_ATTRIBUTE5,
75     X_ATTRIBUTE6,
76     X_ATTRIBUTE7,
77     X_ATTRIBUTE8,
78     X_ATTRIBUTE9,
79     X_ATTRIBUTE10,
80     X_ATTRIBUTE11,
81     X_ATTRIBUTE12,
82     X_ATTRIBUTE13,
83     X_ATTRIBUTE14,
84     X_ATTRIBUTE15,
85     X_ATTRIBUTE_CATEGORY,
86     X_OBJECT_VERSION_NUMBER,
87     X_CREATION_DATE,
88     X_CREATED_BY,
89     X_LAST_UPDATE_DATE,
90     X_LAST_UPDATED_BY,
91     X_LAST_UPDATE_LOGIN,
92     X_PURPOSE_DEFAULT_CODE
93   );
94 
95   insert into FND_BUSINESS_PURPOSES_TL (
96     PURPOSE_CODE,
97     PURPOSE_NAME,
98     DESCRIPTION,
99     DESCRIPTION_INT,
100     CREATED_BY,
101     CREATION_DATE,
102     LAST_UPDATED_BY,
103     LAST_UPDATE_DATE,
104     LAST_UPDATE_LOGIN,
105     LANGUAGE,
106     SOURCE_LANG
107   ) select
108     X_PURPOSE_CODE,
109     X_PURPOSE_NAME,
110     X_DESCRIPTION,
111     X_DESCRIPTION_INT,
112     X_CREATED_BY,
113     X_CREATION_DATE,
114     X_LAST_UPDATED_BY,
115     X_LAST_UPDATE_DATE,
116     X_LAST_UPDATE_LOGIN,
117     L.LANGUAGE_CODE,
118     userenv('LANG')
119   from FND_LANGUAGES L
120   where L.INSTALLED_FLAG in ('I', 'B')
121   and not exists
122     (select NULL
123     from FND_BUSINESS_PURPOSES_TL T
124     where T.PURPOSE_CODE = X_PURPOSE_CODE
125     and T.LANGUAGE = L.LANGUAGE_CODE);
126 
127   open c;
128   fetch c into X_ROWID;
129   if (c%notfound) then
130     close c;
131     raise no_data_found;
132   end if;
133   close c;
134 
135 end INSERT_ROW;
136 
137 procedure LOCK_ROW (
138   X_PURPOSE_CODE in VARCHAR2,
139   X_APPLICATION_ID in NUMBER,
140   X_SEEDED_FLAG in VARCHAR2,
141   X_ATTRIBUTE1 in VARCHAR2,
142   X_ATTRIBUTE2 in VARCHAR2,
143   X_ATTRIBUTE3 in VARCHAR2,
144   X_ATTRIBUTE4 in VARCHAR2,
145   X_ATTRIBUTE5 in VARCHAR2,
146   X_ATTRIBUTE6 in VARCHAR2,
147   X_ATTRIBUTE7 in VARCHAR2,
148   X_ATTRIBUTE8 in VARCHAR2,
149   X_ATTRIBUTE9 in VARCHAR2,
150   X_ATTRIBUTE10 in VARCHAR2,
151   X_ATTRIBUTE11 in VARCHAR2,
152   X_ATTRIBUTE12 in VARCHAR2,
153   X_ATTRIBUTE13 in VARCHAR2,
154   X_ATTRIBUTE14 in VARCHAR2,
155   X_ATTRIBUTE15 in VARCHAR2,
156   X_ATTRIBUTE_CATEGORY in VARCHAR2,
157   X_OBJECT_VERSION_NUMBER in NUMBER,
158   X_PURPOSE_NAME in VARCHAR2,
159   X_DESCRIPTION in VARCHAR2,
160   X_DESCRIPTION_INT in VARCHAR2,
161   X_PURPOSE_DEFAULT_CODE in VARCHAR2
162 ) is
163   cursor c is select
164       APPLICATION_ID,
165       SEEDED_FLAG,
166       ATTRIBUTE1,
167       ATTRIBUTE2,
168       ATTRIBUTE3,
169       ATTRIBUTE4,
170       ATTRIBUTE5,
171       ATTRIBUTE6,
172       ATTRIBUTE7,
173       ATTRIBUTE8,
174       ATTRIBUTE9,
175       ATTRIBUTE10,
176       ATTRIBUTE11,
177       ATTRIBUTE12,
178       ATTRIBUTE13,
179       ATTRIBUTE14,
180       ATTRIBUTE15,
181       ATTRIBUTE_CATEGORY,
182       OBJECT_VERSION_NUMBER,
183       PURPOSE_DEFAULT_CODE
184     from FND_BUSINESS_PURPOSES_B
185     where PURPOSE_CODE = X_PURPOSE_CODE
186     for update of PURPOSE_CODE nowait;
187   recinfo c%rowtype;
188 
189   cursor c1 is select
190       PURPOSE_NAME,
191       DESCRIPTION,
192       DESCRIPTION_INT,
193       decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
194     from FND_BUSINESS_PURPOSES_TL
195     where PURPOSE_CODE = X_PURPOSE_CODE
196     and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
197     for update of PURPOSE_CODE nowait;
198 begin
199   open c;
200   fetch c into recinfo;
201   if (c%notfound) then
202     close c;
203     fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
204     app_exception.raise_exception;
205   end if;
206   close c;
207   if (    (recinfo.APPLICATION_ID = X_APPLICATION_ID)
208       AND (recinfo.SEEDED_FLAG = X_SEEDED_FLAG)
209       AND ((recinfo.ATTRIBUTE1 = X_ATTRIBUTE1)
210            OR ((recinfo.ATTRIBUTE1 is null) AND (X_ATTRIBUTE1 is null)))
211       AND ((recinfo.ATTRIBUTE2 = X_ATTRIBUTE2)
212            OR ((recinfo.ATTRIBUTE2 is null) AND (X_ATTRIBUTE2 is null)))
213       AND ((recinfo.ATTRIBUTE3 = X_ATTRIBUTE3)
214            OR ((recinfo.ATTRIBUTE3 is null) AND (X_ATTRIBUTE3 is null)))
215       AND ((recinfo.ATTRIBUTE4 = X_ATTRIBUTE4)
216            OR ((recinfo.ATTRIBUTE4 is null) AND (X_ATTRIBUTE4 is null)))
217       AND ((recinfo.ATTRIBUTE5 = X_ATTRIBUTE5)
218            OR ((recinfo.ATTRIBUTE5 is null) AND (X_ATTRIBUTE5 is null)))
219       AND ((recinfo.ATTRIBUTE6 = X_ATTRIBUTE6)
220            OR ((recinfo.ATTRIBUTE6 is null) AND (X_ATTRIBUTE6 is null)))
221       AND ((recinfo.ATTRIBUTE7 = X_ATTRIBUTE7)
222            OR ((recinfo.ATTRIBUTE7 is null) AND (X_ATTRIBUTE7 is null)))
223       AND ((recinfo.ATTRIBUTE8 = X_ATTRIBUTE8)
224            OR ((recinfo.ATTRIBUTE8 is null) AND (X_ATTRIBUTE8 is null)))
225       AND ((recinfo.ATTRIBUTE9 = X_ATTRIBUTE9)
226            OR ((recinfo.ATTRIBUTE9 is null) AND (X_ATTRIBUTE9 is null)))
227       AND ((recinfo.ATTRIBUTE10 = X_ATTRIBUTE10)
228            OR ((recinfo.ATTRIBUTE10 is null) AND (X_ATTRIBUTE10 is null)))
229       AND ((recinfo.ATTRIBUTE11 = X_ATTRIBUTE11)
230            OR ((recinfo.ATTRIBUTE11 is null) AND (X_ATTRIBUTE11 is null)))
231       AND ((recinfo.ATTRIBUTE12 = X_ATTRIBUTE12)
232            OR ((recinfo.ATTRIBUTE12 is null) AND (X_ATTRIBUTE12 is null)))
233       AND ((recinfo.ATTRIBUTE13 = X_ATTRIBUTE13)
234            OR ((recinfo.ATTRIBUTE13 is null) AND (X_ATTRIBUTE13 is null)))
235       AND ((recinfo.ATTRIBUTE14 = X_ATTRIBUTE14)
236            OR ((recinfo.ATTRIBUTE14 is null) AND (X_ATTRIBUTE14 is null)))
237       AND ((recinfo.ATTRIBUTE15 = X_ATTRIBUTE15)
238            OR ((recinfo.ATTRIBUTE15 is null) AND (X_ATTRIBUTE15 is null)))
239       AND ((recinfo.ATTRIBUTE_CATEGORY = X_ATTRIBUTE_CATEGORY)
240            OR ((recinfo.ATTRIBUTE_CATEGORY is null) AND (X_ATTRIBUTE_CATEGORY is null)))
241       AND ((recinfo.PURPOSE_DEFAULT_CODE = X_PURPOSE_DEFAULT_CODE)
242            OR ((recinfo.PURPOSE_DEFAULT_CODE is null) AND (X_PURPOSE_DEFAULT_CODE is null)))
243       AND (recinfo.OBJECT_VERSION_NUMBER = X_OBJECT_VERSION_NUMBER)
244   ) then
245     null;
246   else
247     fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
248     app_exception.raise_exception;
249   end if;
250 
251   for tlinfo in c1 loop
252     if (tlinfo.BASELANG = 'Y') then
253       if (    (tlinfo.PURPOSE_NAME = X_PURPOSE_NAME)
254           AND ((tlinfo.DESCRIPTION = X_DESCRIPTION)
255                OR ((tlinfo.DESCRIPTION is null) AND (X_DESCRIPTION is null)))
256           AND ((tlinfo.DESCRIPTION_INT = X_DESCRIPTION_INT)
257                OR ((tlinfo.DESCRIPTION_INT is null) AND (X_DESCRIPTION_INT is null)))
258       ) then
259         null;
260       else
261         fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
262         app_exception.raise_exception;
263       end if;
264     end if;
265   end loop;
266   return;
267 end LOCK_ROW;
268 
269 procedure UPDATE_ROW (
270   X_PURPOSE_CODE in VARCHAR2,
271   X_APPLICATION_ID in NUMBER,
272   X_SEEDED_FLAG in VARCHAR2,
273   X_ATTRIBUTE1 in VARCHAR2,
274   X_ATTRIBUTE2 in VARCHAR2,
275   X_ATTRIBUTE3 in VARCHAR2,
276   X_ATTRIBUTE4 in VARCHAR2,
277   X_ATTRIBUTE5 in VARCHAR2,
278   X_ATTRIBUTE6 in VARCHAR2,
279   X_ATTRIBUTE7 in VARCHAR2,
280   X_ATTRIBUTE8 in VARCHAR2,
281   X_ATTRIBUTE9 in VARCHAR2,
282   X_ATTRIBUTE10 in VARCHAR2,
283   X_ATTRIBUTE11 in VARCHAR2,
284   X_ATTRIBUTE12 in VARCHAR2,
285   X_ATTRIBUTE13 in VARCHAR2,
286   X_ATTRIBUTE14 in VARCHAR2,
287   X_ATTRIBUTE15 in VARCHAR2,
288   X_ATTRIBUTE_CATEGORY in VARCHAR2,
289   X_OBJECT_VERSION_NUMBER in NUMBER,
290   X_PURPOSE_NAME in VARCHAR2,
291   X_DESCRIPTION in VARCHAR2,
292   X_DESCRIPTION_INT in VARCHAR2,
293   X_LAST_UPDATE_DATE in DATE,
294   X_LAST_UPDATED_BY in NUMBER,
295   X_LAST_UPDATE_LOGIN in NUMBER,
296   X_PURPOSE_DEFAULT_CODE in VARCHAR2
297 ) is
298 begin
299   update FND_BUSINESS_PURPOSES_B set
300     APPLICATION_ID = X_APPLICATION_ID,
301     SEEDED_FLAG = X_SEEDED_FLAG,
302     ATTRIBUTE1 = X_ATTRIBUTE1,
303     ATTRIBUTE2 = X_ATTRIBUTE2,
304     ATTRIBUTE3 = X_ATTRIBUTE3,
305     ATTRIBUTE4 = X_ATTRIBUTE4,
306     ATTRIBUTE5 = X_ATTRIBUTE5,
307     ATTRIBUTE6 = X_ATTRIBUTE6,
308     ATTRIBUTE7 = X_ATTRIBUTE7,
309     ATTRIBUTE8 = X_ATTRIBUTE8,
310     ATTRIBUTE9 = X_ATTRIBUTE9,
311     ATTRIBUTE10 = X_ATTRIBUTE10,
312     ATTRIBUTE11 = X_ATTRIBUTE11,
313     ATTRIBUTE12 = X_ATTRIBUTE12,
314     ATTRIBUTE13 = X_ATTRIBUTE13,
315     ATTRIBUTE14 = X_ATTRIBUTE14,
316     ATTRIBUTE15 = X_ATTRIBUTE15,
317     ATTRIBUTE_CATEGORY = X_ATTRIBUTE_CATEGORY,
318     OBJECT_VERSION_NUMBER = X_OBJECT_VERSION_NUMBER,
319     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
320     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
321     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
322     PURPOSE_DEFAULT_CODE = X_PURPOSE_DEFAULT_CODE
323   where PURPOSE_CODE = X_PURPOSE_CODE;
324 
325   if (sql%notfound) then
326     raise no_data_found;
327   end if;
328 
329   update FND_BUSINESS_PURPOSES_TL set
330     PURPOSE_NAME = X_PURPOSE_NAME,
331     DESCRIPTION = X_DESCRIPTION,
332     DESCRIPTION_INT = X_DESCRIPTION_INT,
333     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
334     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
335     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
336     SOURCE_LANG = userenv('LANG')
337   where PURPOSE_CODE = X_PURPOSE_CODE
338   and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
339 
340   if (sql%notfound) then
341     raise no_data_found;
342   end if;
343 end UPDATE_ROW;
344 
345 procedure DELETE_ROW (
346   X_PURPOSE_CODE in VARCHAR2
347 ) is
348 begin
349   delete from FND_BUSINESS_PURPOSES_TL
350   where PURPOSE_CODE = X_PURPOSE_CODE;
351 
352   if (sql%notfound) then
353     raise no_data_found;
354   end if;
355 
356   delete from FND_BUSINESS_PURPOSES_B
357   where PURPOSE_CODE = X_PURPOSE_CODE;
358 
359   if (sql%notfound) then
360     raise no_data_found;
361   end if;
362 end DELETE_ROW;
363 
364 procedure ADD_LANGUAGE
365 is
366 begin
367   delete from FND_BUSINESS_PURPOSES_TL T
368   where not exists
369     (select NULL
370     from FND_BUSINESS_PURPOSES_B B
371     where B.PURPOSE_CODE = T.PURPOSE_CODE
372     );
373 
374   update FND_BUSINESS_PURPOSES_TL T set (
375       PURPOSE_NAME,
376       DESCRIPTION,
377       DESCRIPTION_INT
378     ) = (select
379       B.PURPOSE_NAME,
380       B.DESCRIPTION,
381       B.DESCRIPTION_INT
382     from FND_BUSINESS_PURPOSES_TL B
383     where B.PURPOSE_CODE = T.PURPOSE_CODE
384     and B.LANGUAGE = T.SOURCE_LANG)
385   where (
386       T.PURPOSE_CODE,
387       T.LANGUAGE
388   ) in (select
389       SUBT.PURPOSE_CODE,
390       SUBT.LANGUAGE
391     from FND_BUSINESS_PURPOSES_TL SUBB, FND_BUSINESS_PURPOSES_TL SUBT
392     where SUBB.PURPOSE_CODE = SUBT.PURPOSE_CODE
393     and SUBB.LANGUAGE = SUBT.SOURCE_LANG
394     and (SUBB.PURPOSE_NAME <> SUBT.PURPOSE_NAME
395       or SUBB.DESCRIPTION <> SUBT.DESCRIPTION
396       or (SUBB.DESCRIPTION is null and SUBT.DESCRIPTION is not null)
397       or (SUBB.DESCRIPTION is not null and SUBT.DESCRIPTION is null)
398       or SUBB.DESCRIPTION_INT <> SUBT.DESCRIPTION_INT
399       or (SUBB.DESCRIPTION_INT is null and SUBT.DESCRIPTION_INT is not null)
400       or (SUBB.DESCRIPTION_INT is not null and SUBT.DESCRIPTION_INT is null)
401   ));
402 
403   insert into FND_BUSINESS_PURPOSES_TL (
404     PURPOSE_CODE,
405     PURPOSE_NAME,
406     DESCRIPTION,
407     DESCRIPTION_INT,
408     CREATED_BY,
409     CREATION_DATE,
410     LAST_UPDATED_BY,
411     LAST_UPDATE_DATE,
412     LAST_UPDATE_LOGIN,
413     LANGUAGE,
414     SOURCE_LANG
415   ) select /*+ ORDERED */
416     B.PURPOSE_CODE,
417     B.PURPOSE_NAME,
418     B.DESCRIPTION,
419     B.DESCRIPTION_INT,
420     B.CREATED_BY,
421     B.CREATION_DATE,
422     B.LAST_UPDATED_BY,
423     B.LAST_UPDATE_DATE,
424     B.LAST_UPDATE_LOGIN,
425     L.LANGUAGE_CODE,
426     B.SOURCE_LANG
427   from FND_BUSINESS_PURPOSES_TL B, FND_LANGUAGES L
428   where L.INSTALLED_FLAG in ('I', 'B')
429   and B.LANGUAGE = userenv('LANG')
430   and not exists
431     (select NULL
432     from FND_BUSINESS_PURPOSES_TL T
433     where T.PURPOSE_CODE = B.PURPOSE_CODE
434     and T.LANGUAGE = L.LANGUAGE_CODE);
435 end ADD_LANGUAGE;
436 
437 Procedure TRANSLATE_ROW
438 (x_PURPOSE_CODE  in varchar2,
439  x_PURPOSE_NAME in varchar2,
440  x_Last_update_date in date,
441  x_last_updated_by in number,
442  x_last_update_login in number)
443 is
444 begin
445 
446 Update FND_BUSINESS_PURPOSES_TL set
447 purpose_name           = nvl(x_PURPOSE_NAME,purpose_name),
448 last_update_date        = nvl(x_last_update_date,sysdate),
449 last_updated_by         = x_last_updated_by,
450 last_update_login       = 0,
451 source_lang             = userenv('LANG')
452 where purpose_code      = x_PURPOSE_CODE
453 and userenv('LANG') in (LANGUAGE,SOURCE_LANG);
454 
455   if (sql%notfound) then
456     raise no_data_found;
457   end if;
458 end TRANSLATE_ROW;
459 
460 
461 end FND_BUSINESS_PURPOSES_PKG;