DBA Data[Home] [Help]

PACKAGE BODY: APPS.BSC_SYS_PERIODICITIES_PKG

Source


1 package body BSC_SYS_PERIODICITIES_PKG as
2 /* $Header: BSCSPERB.pls 115.7 2004/03/04 16:22:54 meastmon ship $ */
3 procedure INSERT_ROW (
4   X_ROWID in out NOCOPY VARCHAR2,
5   X_PERIODICITY_ID in NUMBER,
6   X_NAME in VARCHAR2,
7   X_CREATION_DATE in DATE,
8   X_CREATED_BY in NUMBER,
9   X_LAST_UPDATE_DATE in DATE,
10   X_LAST_UPDATED_BY in NUMBER,
11   X_LAST_UPDATE_LOGIN in NUMBER
12 ) is
13   cursor C is select ROWID from BSC_SYS_PERIODICITIES_TL
14     where PERIODICITY_ID = X_PERIODICITY_ID
15     and LANGUAGE = userenv('LANG')
16     ;
17 begin
18   insert into BSC_SYS_PERIODICITIES_TL (
19     PERIODICITY_ID,
20     NAME,
21     CREATION_DATE ,
22     CREATED_BY,
23     LAST_UPDATE_DATE,
24     LAST_UPDATED_BY ,
25     LAST_UPDATE_LOGIN,
26     LANGUAGE,
27     SOURCE_LANG
28   ) select
29 	  X_PERIODICITY_ID,
30 	  X_NAME,
31 	  X_CREATION_DATE ,
32 	  X_CREATED_BY,
33 	  X_LAST_UPDATE_DATE,
34 	  X_LAST_UPDATED_BY ,
35 	  X_LAST_UPDATE_LOGIN,
36 	  L.LANGUAGE_CODE,
37 	  userenv('LANG')
38   from FND_LANGUAGES L
39   where L.INSTALLED_FLAG in ('I', 'B')
40   and not exists
41     (select NULL
42     from BSC_SYS_PERIODICITIES_TL T
43     where T.PERIODICITY_ID = X_PERIODICITY_ID
44     and T.LANGUAGE = L.LANGUAGE_CODE);
45 
46   open c;
47   fetch c into X_ROWID;
48   if (c%notfound) then
49     close c;
50     raise no_data_found;
51   end if;
52   close c;
53 
54 end INSERT_ROW;
55 
56 procedure LOCK_ROW (
57   X_PERIODICITY_ID in NUMBER,
58   X_NAME in VARCHAR2
59 ) is
60   cursor c1 is select
61         NAME,
62       decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
63     from BSC_SYS_PERIODICITIES_TL
64     where PERIODICITY_ID = X_PERIODICITY_ID
65     and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
66     for update of PERIODICITY_ID nowait;
67 begin
68   for tlinfo in c1 loop
69     if (tlinfo.BASELANG = 'Y') then
70       if (    (tlinfo.NAME = X_NAME)
71       ) then
72         null;
73       else
74         fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
75         app_exception.raise_exception;
76       end if;
77     end if;
78   end loop;
79   return;
80 end LOCK_ROW;
81 
82 procedure UPDATE_ROW (
83   X_PERIODICITY_ID in NUMBER,
84   X_NAME in VARCHAR2,
85   X_CREATION_DATE in DATE,
86   X_CREATED_BY in NUMBER,
87   X_LAST_UPDATE_DATE in DATE,
88   X_LAST_UPDATED_BY in NUMBER,
89   X_LAST_UPDATE_LOGIN in NUMBER
90 ) is
91 begin
92   update BSC_SYS_PERIODICITIES_TL set
93      NAME = X_NAME,
94      LAST_UPDATE_DATE = DECODE(LAST_UPDATED_BY,1,X_LAST_UPDATE_DATE,LAST_UPDATE_DATE),
95      LAST_UPDATED_BY = DECODE(LAST_UPDATED_BY,1,X_LAST_UPDATED_BY,LAST_UPDATED_BY),
96      LAST_UPDATE_LOGIN = DECODE(LAST_UPDATED_BY,1,X_LAST_UPDATE_LOGIN,LAST_UPDATE_LOGIN),
97      SOURCE_LANG = userenv('LANG')
98   where PERIODICITY_ID = X_PERIODICITY_ID
99   and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
100 
101   if (sql%notfound) then
102     raise no_data_found;
103   end if;
104 end UPDATE_ROW;
105 
106 procedure DELETE_ROW (
107   X_PERIODICITY_ID in NUMBER
108 ) is
109 begin
110   delete from BSC_SYS_PERIODICITIES_TL
111   where PERIODICITY_ID = X_PERIODICITY_ID;
112 
113   if (sql%notfound) then
114     raise no_data_found;
115   end if;
116 
117 end DELETE_ROW;
118 
119 procedure ADD_LANGUAGE
120 is
121 l_user NUMBER;
122 begin
123 
124   -- Ref: bug#3482442 In corner cases this query can return more than one
125   -- row and it will fail. AUDSID is not PK. After meeting with
126   -- Vinod and Kris and Venu, we should use FNG_GLOBAL.user_id
127   l_user := BSC_APPS.fnd_global_user_id;
128 
129   update BSC_SYS_PERIODICITIES_TL T set (
130     NAME
131     ) = (select
132       B.NAME
133     from BSC_SYS_PERIODICITIES_TL B
134     where B.PERIODICITY_ID = T.PERIODICITY_ID
135     and B.LANGUAGE = T.SOURCE_LANG)
136   where (
137       T.PERIODICITY_ID,
138       T.LANGUAGE
139   ) in (select
140       SUBT.PERIODICITY_ID,
141       SUBT.LANGUAGE
142     from BSC_SYS_PERIODICITIES_TL SUBB, BSC_SYS_PERIODICITIES_TL SUBT
143     where SUBB.PERIODICITY_ID = SUBT.PERIODICITY_ID
144     and SUBB.LANGUAGE = SUBT.SOURCE_LANG
145     and (SUBB.NAME <> SUBT.NAME
146   ));
147 
148   insert into BSC_SYS_PERIODICITIES_TL (
149     PERIODICITY_ID,
150     NAME,
151     CREATION_DATE ,
152     CREATED_BY,
153     LAST_UPDATE_DATE,
154     LAST_UPDATED_BY ,
155     LAST_UPDATE_LOGIN,
156     LANGUAGE,
157     SOURCE_LANG
158   ) select
159     B.PERIODICITY_ID,
160     B.NAME,
161     SYSDATE,
162     l_user,
163     SYSDATE,
164     l_user,
165     l_user,
166     L.LANGUAGE_CODE,
167     B.SOURCE_LANG
168   from BSC_SYS_PERIODICITIES_TL B, FND_LANGUAGES L
169   where L.INSTALLED_FLAG in ('I', 'B')
170   and B.LANGUAGE = userenv('LANG')
171   and not exists
172     (select NULL
173     from BSC_SYS_PERIODICITIES_TL T
174     where T.PERIODICITY_ID = B.PERIODICITY_ID
175     and T.LANGUAGE = L.LANGUAGE_CODE);
176 end ADD_LANGUAGE;
177 
178 end BSC_SYS_PERIODICITIES_PKG;