DBA Data[Home] [Help]

PACKAGE BODY: APPS.CSD_BULLETINS_PKG

Source


1 package body CSD_BULLETINS_PKG as
2 /* $Header: csdtbulb.pls 120.0.12010000.1 2008/12/11 01:05:10 swai noship $ */
3 
4 procedure INSERT_ROW (
5   PX_ROWID             in out nocopy VARCHAR2,
6   PX_BULLETIN_ID          in out nocopy NUMBER,
7   P_OBJECT_VERSION_NUMBER        in NUMBER,
8   P_CREATION_DATE                in DATE,
9   P_CREATED_BY                   in NUMBER,
10   P_LAST_UPDATE_DATE             in DATE,
11   P_LAST_UPDATED_BY              in NUMBER,
12   P_LAST_UPDATE_LOGIN            in NUMBER,
13   P_NAME                         in VARCHAR2,
14   P_DESCRIPTION                  in VARCHAR2,
15   P_BULLETIN_TYPE_CODE           in VARCHAR2,
16   P_ACTIVE_FROM                  in DATE,
17   P_ACTIVE_TO                    in DATE,
18   P_PUBLISHED_FLAG               in VARCHAR2,
19   P_ESCALATION_CODE              in VARCHAR2,
20   P_MANDATORY_FLAG               in VARCHAR2,
21   P_FREQUENCY_CODE               in VARCHAR2,
22   P_WF_ITEM_TYPE                 in VARCHAR2,
23   P_WF_PROCESS_NAME              in VARCHAR2,
24   P_ATTRIBUTE_CATEGORY           in VARCHAR2,
25   P_ATTRIBUTE1                   in VARCHAR2,
26   P_ATTRIBUTE2                   in VARCHAR2,
27   P_ATTRIBUTE3                   in VARCHAR2,
28   P_ATTRIBUTE4                   in VARCHAR2,
29   P_ATTRIBUTE5                   in VARCHAR2,
30   P_ATTRIBUTE6                   in VARCHAR2,
31   P_ATTRIBUTE7                   in VARCHAR2,
32   P_ATTRIBUTE8                   in VARCHAR2,
33   P_ATTRIBUTE9                   in VARCHAR2,
34   P_ATTRIBUTE10                  in VARCHAR2,
35   P_ATTRIBUTE11                  in VARCHAR2,
36   P_ATTRIBUTE12                  in VARCHAR2,
37   P_ATTRIBUTE13                  in VARCHAR2,
38   P_ATTRIBUTE14                  in VARCHAR2,
39   P_ATTRIBUTE15                  in VARCHAR2
40 ) is
41 
42   cursor C is select ROWID from CSD_BULLETINS_B
43     where BULLETIN_ID = PX_BULLETIN_ID
44     ;
45 
46 begin
47 
48   select CSD_BULLETINS_S1.nextval
49   into PX_BULLETIN_ID
50   from dual;
51 
52   insert into CSD_BULLETINS_B (
53     BULLETIN_ID,
54     OBJECT_VERSION_NUMBER,
55     CREATION_DATE,
56     CREATED_BY,
57     LAST_UPDATE_DATE,
58     LAST_UPDATED_BY,
59     LAST_UPDATE_LOGIN,
60     BULLETIN_TYPE_CODE,
61     ACTIVE_FROM,
62     ACTIVE_TO,
63     PUBLISHED_FLAG,
64     ESCALATION_CODE,
65     MANDATORY_FLAG,
66     FREQUENCY_CODE,
67     WF_ITEM_TYPE,
68     WF_PROCESS_NAME,
69     ATTRIBUTE_CATEGORY,
70     ATTRIBUTE1,
71     ATTRIBUTE2,
72     ATTRIBUTE3,
73     ATTRIBUTE4,
74     ATTRIBUTE5,
75     ATTRIBUTE6,
76     ATTRIBUTE7,
77     ATTRIBUTE8,
78     ATTRIBUTE9,
79     ATTRIBUTE10,
80     ATTRIBUTE11,
81     ATTRIBUTE12,
82     ATTRIBUTE13,
83     ATTRIBUTE14,
84     ATTRIBUTE15
85   ) values (
86     PX_BULLETIN_ID,
87     P_OBJECT_VERSION_NUMBER,
88     P_CREATION_DATE,
89     P_CREATED_BY,
90     P_LAST_UPDATE_DATE,
91     P_LAST_UPDATED_BY,
92     P_LAST_UPDATE_LOGIN,
93     P_BULLETIN_TYPE_CODE,
94     P_ACTIVE_FROM,
95     P_ACTIVE_TO,
96     P_PUBLISHED_FLAG,
97     P_ESCALATION_CODE,
98     P_MANDATORY_FLAG,
99     P_FREQUENCY_CODE,
100     P_WF_ITEM_TYPE,
101     P_WF_PROCESS_NAME,
102     P_ATTRIBUTE_CATEGORY,
103     P_ATTRIBUTE1,
104     P_ATTRIBUTE2,
105     P_ATTRIBUTE3,
106     P_ATTRIBUTE4,
107     P_ATTRIBUTE5,
108     P_ATTRIBUTE6,
109     P_ATTRIBUTE7,
110     P_ATTRIBUTE8,
111     P_ATTRIBUTE9,
112     P_ATTRIBUTE10,
113     P_ATTRIBUTE11,
114     P_ATTRIBUTE12,
115     P_ATTRIBUTE13,
116     P_ATTRIBUTE14,
117     P_ATTRIBUTE15
118   );
119 
120   insert into CSD_BULLETINS_TL (
121     BULLETIN_ID,
122     NAME,
123     DESCRIPTION,
124     CREATED_BY,
125     CREATION_DATE,
126     LAST_UPDATED_BY,
127     LAST_UPDATE_DATE,
128     LAST_UPDATE_LOGIN,
129     LANGUAGE,
130     SOURCE_LANG
131   ) select
132         PX_BULLETIN_ID,
133         P_NAME,
134         P_DESCRIPTION,
135         P_CREATED_BY,
136         P_CREATION_DATE,
137         P_LAST_UPDATED_BY,
138         P_LAST_UPDATE_DATE,
139         P_LAST_UPDATE_LOGIN,
140         L.LANGUAGE_CODE,
141         userenv('LANG')
142     from FND_LANGUAGES L
143    where L.INSTALLED_FLAG in ('I', 'B')
144      and not exists
145     (select NULL
146        from CSD_BULLETINS_TL T
147       where T.BULLETIN_ID = PX_BULLETIN_ID
148         and T.LANGUAGE = L.LANGUAGE_CODE);
149 
150   open c;
151   fetch c into PX_ROWID;
152   if (c%notfound) then
153     close c;
154     raise no_data_found;
155   end if;
156   close c;
157 
158 end INSERT_ROW;
159 
160 procedure LOCK_ROW (
161   P_BULLETIN_ID in NUMBER,
162   P_OBJECT_VERSION_NUMBER in NUMBER
163 ) is
164   cursor c is select
165       OBJECT_VERSION_NUMBER
166     from CSD_BULLETINS_B
167     where BULLETIN_ID = P_BULLETIN_ID
168     for update of BULLETIN_ID nowait;
169   recinfo c%rowtype;
170 
171 begin
172 
173   open c;
174   fetch c into recinfo;
175   if (c%notfound) then
176     close c;
177     fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
178     app_exception.raise_exception;
179   end if;
180   close c;
181 
182   if (recinfo.OBJECT_VERSION_NUMBER = P_OBJECT_VERSION_NUMBER) then
183     null;
184   else
185     fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
186     app_exception.raise_exception;
187   end if;
188 
189 /*
190   for tlinfo in c1 loop
191     if (tlinfo.BASELANG = 'Y') then
192       if (    ((tlinfo.DESCRIPTION = P_DESCRIPTION)
193                OR ((tlinfo.DESCRIPTION is null) AND (P_DESCRIPTION is null)))
194       ) then
195         null;
196       else
197         fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
198         app_exception.raise_exception;
199       end if;
200     end if;
201   end loop;
202 */
203 
204   return;
205 end LOCK_ROW;
206 
207 procedure UPDATE_ROW (
208   P_BULLETIN_ID in NUMBER,
209   P_OBJECT_VERSION_NUMBER        in NUMBER,
210   P_CREATION_DATE                in DATE,
211   P_CREATED_BY                   in NUMBER,
212   P_LAST_UPDATE_DATE             in DATE,
213   P_LAST_UPDATED_BY              in NUMBER,
214   P_LAST_UPDATE_LOGIN            in NUMBER,
215   P_NAME                         in VARCHAR2,
216   P_DESCRIPTION                  in VARCHAR2,
217   P_BULLETIN_TYPE_CODE           in VARCHAR2,
218   P_ACTIVE_FROM                  in DATE,
219   P_ACTIVE_TO                    in DATE,
220   P_PUBLISHED_FLAG               in VARCHAR2,
221   P_ESCALATION_CODE              in VARCHAR2,
222   P_MANDATORY_FLAG               in VARCHAR2,
223   P_FREQUENCY_CODE               in VARCHAR2,
224   P_WF_ITEM_TYPE                 in VARCHAR2,
225   P_WF_PROCESS_NAME              in VARCHAR2,
226   P_ATTRIBUTE_CATEGORY           in VARCHAR2,
227   P_ATTRIBUTE1                   in VARCHAR2,
228   P_ATTRIBUTE2                   in VARCHAR2,
229   P_ATTRIBUTE3                   in VARCHAR2,
230   P_ATTRIBUTE4                   in VARCHAR2,
231   P_ATTRIBUTE5                   in VARCHAR2,
232   P_ATTRIBUTE6                   in VARCHAR2,
233   P_ATTRIBUTE7                   in VARCHAR2,
234   P_ATTRIBUTE8                   in VARCHAR2,
235   P_ATTRIBUTE9                   in VARCHAR2,
236   P_ATTRIBUTE10                  in VARCHAR2,
237   P_ATTRIBUTE11                  in VARCHAR2,
238   P_ATTRIBUTE12                  in VARCHAR2,
239   P_ATTRIBUTE13                  in VARCHAR2,
240   P_ATTRIBUTE14                  in VARCHAR2,
241   P_ATTRIBUTE15                  in VARCHAR2
242 ) is
243 begin
244   update CSD_BULLETINS_B set
245          OBJECT_VERSION_NUMBER = decode( P_OBJECT_VERSION_NUMBER, FND_API.G_MISS_NUM, NULL, NULL, OBJECT_VERSION_NUMBER, P_OBJECT_VERSION_NUMBER)
246          ,CREATED_BY = decode( P_CREATED_BY, FND_API.G_MISS_NUM, NULL, NULL, CREATED_BY, P_CREATED_BY)
247          ,CREATION_DATE = decode( P_CREATION_DATE, FND_API.G_MISS_DATE, NULL, NULL, CREATION_DATE, P_CREATION_DATE)
248          ,LAST_UPDATED_BY = decode( P_LAST_UPDATED_BY, FND_API.G_MISS_NUM, NULL, NULL, LAST_UPDATED_BY, P_LAST_UPDATED_BY)
249          ,LAST_UPDATE_DATE = decode( P_LAST_UPDATE_DATE, FND_API.G_MISS_DATE, NULL, NULL, LAST_UPDATE_DATE, P_LAST_UPDATE_DATE)
250          ,LAST_UPDATE_LOGIN = decode( P_LAST_UPDATE_LOGIN, FND_API.G_MISS_NUM, NULL, NULL, LAST_UPDATE_LOGIN, P_LAST_UPDATE_LOGIN)
251 
252          ,BULLETIN_TYPE_CODE = decode( P_BULLETIN_TYPE_CODE, FND_API.G_MISS_CHAR, NULL, NULL, BULLETIN_TYPE_CODE, P_BULLETIN_TYPE_CODE)
253          ,ACTIVE_FROM = decode( P_ACTIVE_FROM, FND_API.G_MISS_DATE, NULL, NULL, ACTIVE_FROM, P_ACTIVE_FROM)
254          ,ACTIVE_TO = decode( P_ACTIVE_TO, FND_API.G_MISS_DATE, NULL, NULL, ACTIVE_TO, P_ACTIVE_TO)
255          ,PUBLISHED_FLAG = decode( P_PUBLISHED_FLAG, FND_API.G_MISS_CHAR, NULL, NULL, PUBLISHED_FLAG, P_PUBLISHED_FLAG)
256          ,ESCALATION_CODE = decode( P_ESCALATION_CODE, FND_API.G_MISS_CHAR, NULL, NULL, ESCALATION_CODE, P_ESCALATION_CODE)
257          ,MANDATORY_FLAG = decode( P_MANDATORY_FLAG, FND_API.G_MISS_CHAR, NULL, NULL, MANDATORY_FLAG, P_MANDATORY_FLAG)
258 
259          ,FREQUENCY_CODE = decode( P_FREQUENCY_CODE, FND_API.G_MISS_CHAR, NULL, NULL, FREQUENCY_CODE, P_FREQUENCY_CODE)
260          ,WF_ITEM_TYPE = decode( P_WF_ITEM_TYPE, FND_API.G_MISS_CHAR, NULL, NULL, WF_ITEM_TYPE, P_WF_ITEM_TYPE)
261          ,WF_PROCESS_NAME = decode( P_WF_PROCESS_NAME, FND_API.G_MISS_CHAR, NULL, NULL, WF_PROCESS_NAME, P_WF_PROCESS_NAME)
262 
263          ,ATTRIBUTE_CATEGORY = decode( P_ATTRIBUTE_CATEGORY, FND_API.G_MISS_CHAR, NULL, NULL, ATTRIBUTE_CATEGORY, P_ATTRIBUTE_CATEGORY)
264          ,ATTRIBUTE1 = decode( P_ATTRIBUTE1, FND_API.G_MISS_CHAR, NULL, NULL, ATTRIBUTE1, P_ATTRIBUTE1)
265          ,ATTRIBUTE2 = decode( P_ATTRIBUTE2, FND_API.G_MISS_CHAR, NULL, NULL, ATTRIBUTE2, P_ATTRIBUTE2)
266          ,ATTRIBUTE3 = decode( P_ATTRIBUTE3, FND_API.G_MISS_CHAR, NULL, NULL, ATTRIBUTE3, P_ATTRIBUTE3)
267          ,ATTRIBUTE4 = decode( P_ATTRIBUTE4, FND_API.G_MISS_CHAR, NULL, NULL, ATTRIBUTE4, P_ATTRIBUTE4)
268          ,ATTRIBUTE5 = decode( P_ATTRIBUTE5, FND_API.G_MISS_CHAR, NULL, NULL, ATTRIBUTE5, P_ATTRIBUTE5)
269          ,ATTRIBUTE6 = decode( P_ATTRIBUTE6, FND_API.G_MISS_CHAR, NULL, NULL, ATTRIBUTE6, P_ATTRIBUTE6)
270          ,ATTRIBUTE7 = decode( P_ATTRIBUTE7, FND_API.G_MISS_CHAR, NULL, NULL, ATTRIBUTE7, P_ATTRIBUTE7)
271          ,ATTRIBUTE8 = decode( P_ATTRIBUTE8, FND_API.G_MISS_CHAR, NULL, NULL, ATTRIBUTE8, P_ATTRIBUTE8)
272          ,ATTRIBUTE9 = decode( P_ATTRIBUTE9, FND_API.G_MISS_CHAR, NULL, NULL, ATTRIBUTE9, P_ATTRIBUTE9)
273          ,ATTRIBUTE10 = decode( P_ATTRIBUTE10, FND_API.G_MISS_CHAR, NULL, NULL, ATTRIBUTE10, P_ATTRIBUTE10)
274          ,ATTRIBUTE11 = decode( P_ATTRIBUTE11, FND_API.G_MISS_CHAR, NULL, NULL, ATTRIBUTE11, P_ATTRIBUTE11)
275          ,ATTRIBUTE12 = decode( P_ATTRIBUTE12, FND_API.G_MISS_CHAR, NULL, NULL, ATTRIBUTE12, P_ATTRIBUTE12)
276          ,ATTRIBUTE13 = decode( P_ATTRIBUTE13, FND_API.G_MISS_CHAR, NULL, NULL, ATTRIBUTE13, P_ATTRIBUTE13)
277          ,ATTRIBUTE14 = decode( P_ATTRIBUTE14, FND_API.G_MISS_CHAR, NULL, NULL, ATTRIBUTE14, P_ATTRIBUTE14)
278          ,ATTRIBUTE15 = decode( P_ATTRIBUTE15, FND_API.G_MISS_CHAR, NULL, NULL, ATTRIBUTE15, P_ATTRIBUTE15)
279   where BULLETIN_ID = P_BULLETIN_ID;
280 
281   if (sql%notfound) then
282     raise no_data_found;
283   end if;
284 
285   update CSD_BULLETINS_TL set
286           CREATED_BY = decode( P_CREATED_BY, FND_API.G_MISS_NUM, NULL, NULL, CREATED_BY, P_CREATED_BY)
287          ,CREATION_DATE = decode( P_CREATION_DATE, FND_API.G_MISS_DATE, NULL, NULL, CREATION_DATE, P_CREATION_DATE)
288          ,LAST_UPDATED_BY = decode( P_LAST_UPDATED_BY, FND_API.G_MISS_NUM, NULL, NULL, LAST_UPDATED_BY, P_LAST_UPDATED_BY)
289          ,LAST_UPDATE_DATE = decode( P_LAST_UPDATE_DATE, FND_API.G_MISS_DATE, NULL, NULL, LAST_UPDATE_DATE, P_LAST_UPDATE_DATE)
290          ,LAST_UPDATE_LOGIN = decode( P_LAST_UPDATE_LOGIN, FND_API.G_MISS_NUM, NULL, NULL, LAST_UPDATE_LOGIN, P_LAST_UPDATE_LOGIN)
291          ,NAME = decode( P_NAME, FND_API.G_MISS_CHAR, NULL, NULL, NAME, P_NAME)
292          ,DESCRIPTION = decode( P_DESCRIPTION, FND_API.G_MISS_CHAR, NULL, NULL, DESCRIPTION, P_DESCRIPTION)
293          ,SOURCE_LANG = userenv('LANG')
294   where BULLETIN_ID = P_BULLETIN_ID
295   and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
296 
297   if (sql%notfound) then
298     raise no_data_found;
299   end if;
300 
301 end UPDATE_ROW;
302 
303 procedure DELETE_ROW (
304   P_BULLETIN_ID in NUMBER
305 ) is
306 begin
307   delete from CSD_BULLETINS_TL
308   where BULLETIN_ID = P_BULLETIN_ID;
309 
310   if (sql%notfound) then
311     raise no_data_found;
312   end if;
313 
314   delete from CSD_BULLETINS_B
315   where BULLETIN_ID = P_BULLETIN_ID;
316 
317   if (sql%notfound) then
318     raise no_data_found;
319   end if;
320 end DELETE_ROW;
321 
322 procedure ADD_LANGUAGE
323 is
324 begin
325   delete from CSD_BULLETINS_TL T
326   where not exists
327     (select NULL
328     from CSD_BULLETINS_B B
329     where B.BULLETIN_ID = T.BULLETIN_ID
330     );
331 
332   update CSD_BULLETINS_TL T set (
333       NAME,
334       DESCRIPTION
335     ) = (select
336       B.NAME,
337       B.DESCRIPTION
338     from CSD_BULLETINS_TL B
339     where B.BULLETIN_ID = T.BULLETIN_ID
340     and B.LANGUAGE = T.SOURCE_LANG)
341   where (
342       T.BULLETIN_ID,
343       T.LANGUAGE
344   ) in (select
345       SUBT.BULLETIN_ID,
346       SUBT.LANGUAGE
347     from CSD_BULLETINS_TL SUBB, CSD_BULLETINS_TL SUBT
348     where SUBB.BULLETIN_ID = SUBT.BULLETIN_ID
349     and SUBB.LANGUAGE = SUBT.SOURCE_LANG
350     and (SUBB.NAME <> SUBT.NAME
351       or SUBB.DESCRIPTION <> SUBT.DESCRIPTION
352       or (SUBB.DESCRIPTION is null and SUBT.DESCRIPTION is not null)
353       or (SUBB.DESCRIPTION is not null and SUBT.DESCRIPTION is null)
354   ));
355 
356   insert into CSD_BULLETINS_TL (
357     BULLETIN_ID,
358     CREATED_BY,
359     CREATION_DATE,
360     LAST_UPDATED_BY,
361     LAST_UPDATE_DATE,
362     LAST_UPDATE_LOGIN,
363     NAME,
364     DESCRIPTION,
365     LANGUAGE,
366     SOURCE_LANG
367   ) select /*+ ORDERED */
368     B.BULLETIN_ID,
369     B.CREATED_BY,
370     B.CREATION_DATE,
371     B.LAST_UPDATED_BY,
372     B.LAST_UPDATE_DATE,
373     B.LAST_UPDATE_LOGIN,
374     B.NAME,
375     B.DESCRIPTION,
376     L.LANGUAGE_CODE,
377     B.SOURCE_LANG
378   from CSD_BULLETINS_TL B, FND_LANGUAGES L
379   where L.INSTALLED_FLAG in ('I', 'B')
380   and B.LANGUAGE = userenv('LANG')
381   and not exists
382     (select NULL
383     from CSD_BULLETINS_TL T
384     where T.BULLETIN_ID = B.BULLETIN_ID
385     and T.LANGUAGE = L.LANGUAGE_CODE);
386 end ADD_LANGUAGE;
387 
388 
389 end CSD_BULLETINS_PKG;