1 package body QP_PARAMETERS_PKG as
2 /* $Header: QPXUPARB.pls 120.0 2005/08/05 00:26:47 nirmkuma noship $ */
3
4 procedure INSERT_ROW (
5 X_ROWID in out nocopy VARCHAR2,
6 X_PARAMETER_ID in NUMBER,
7 X_VALUE_SET_ID in NUMBER,
8 X_ADVANCED_PRICING_ONLY in VARCHAR2,
9 X_SEEDED_VALUE in VARCHAR2,
10 X_PARAMETER_CODE in VARCHAR2,
11 X_PARAMETER_LEVEL in VARCHAR2,
12 X_PARAMETER_NAME 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 QP_PARAMETERS_B
21 where PARAMETER_ID = X_PARAMETER_ID
22 ;
23 begin
24 insert into QP_PARAMETERS_B (
25 VALUE_SET_ID,
26 ADVANCED_PRICING_ONLY,
27 SEEDED_VALUE,
28 PARAMETER_CODE,
29 PARAMETER_ID,
30 PARAMETER_LEVEL,
31 CREATION_DATE,
32 CREATED_BY,
33 LAST_UPDATE_DATE,
34 LAST_UPDATED_BY,
35 LAST_UPDATE_LOGIN
36 ) values (
37 X_VALUE_SET_ID,
38 X_ADVANCED_PRICING_ONLY,
39 X_SEEDED_VALUE,
40 X_PARAMETER_CODE,
41 X_PARAMETER_ID,
42 X_PARAMETER_LEVEL,
43 X_CREATION_DATE,
44 X_CREATED_BY,
45 X_LAST_UPDATE_DATE,
46 X_LAST_UPDATED_BY,
47 X_LAST_UPDATE_LOGIN
48 );
49
50 insert into QP_PARAMETERS_TL (
51 PARAMETER_ID,
52 PARAMETER_NAME,
53 DESCRIPTION,
54 CREATION_DATE,
55 CREATED_BY,
56 LAST_UPDATE_DATE,
57 LAST_UPDATED_BY,
58 LAST_UPDATE_LOGIN,
59 LANGUAGE,
60 SOURCE_LANG
61 ) select
62 X_PARAMETER_ID,
63 X_PARAMETER_NAME,
64 X_DESCRIPTION,
65 X_CREATION_DATE,
66 X_CREATED_BY,
67 X_LAST_UPDATE_DATE,
68 X_LAST_UPDATED_BY,
69 X_LAST_UPDATE_LOGIN,
70 L.LANGUAGE_CODE,
71 userenv('LANG')
72 from FND_LANGUAGES L
73 where L.INSTALLED_FLAG in ('I', 'B')
74 and not exists
75 (select NULL
76 from QP_PARAMETERS_TL T
77 where T.PARAMETER_ID = X_PARAMETER_ID
78 and T.LANGUAGE = L.LANGUAGE_CODE);
79
80 open c;
81 fetch c into X_ROWID;
82 if (c%notfound) then
83 close c;
84 raise no_data_found;
85 end if;
86 close c;
87
88 QP_PARAM_UTIL.Populate_Parameter_Values( X_PARAMETER_ID,
89 X_SEEDED_VALUE,
90 X_PARAMETER_LEVEL);
91
92 end INSERT_ROW;
93
94 procedure LOCK_ROW (
95 X_PARAMETER_ID in NUMBER,
96 X_VALUE_SET_ID in NUMBER,
97 X_ADVANCED_PRICING_ONLY in VARCHAR2,
98 X_SEEDED_VALUE in VARCHAR2,
99 X_PARAMETER_CODE in VARCHAR2,
100 X_PARAMETER_LEVEL in VARCHAR2,
101 X_PARAMETER_NAME in VARCHAR2,
102 X_DESCRIPTION in VARCHAR2
103 ) is
104 cursor c is select
105 VALUE_SET_ID,
106 ADVANCED_PRICING_ONLY,
107 SEEDED_VALUE,
108 PARAMETER_CODE,
109 PARAMETER_LEVEL
110 from QP_PARAMETERS_B
111 where PARAMETER_ID = X_PARAMETER_ID
112 for update of PARAMETER_ID nowait;
113 recinfo c%rowtype;
114
115 cursor c1 is select
116 PARAMETER_NAME,
117 DESCRIPTION,
118 decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
119 from QP_PARAMETERS_TL
120 where PARAMETER_ID = X_PARAMETER_ID
121 and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
122 for update of PARAMETER_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.VALUE_SET_ID = X_VALUE_SET_ID)
133 OR ((recinfo.VALUE_SET_ID is null) AND (X_VALUE_SET_ID is null)))
134 AND ((recinfo.ADVANCED_PRICING_ONLY = X_ADVANCED_PRICING_ONLY)
135 OR ((recinfo.ADVANCED_PRICING_ONLY is null) AND (X_ADVANCED_PRICING_ONLY is null)))
136 AND ((recinfo.SEEDED_VALUE = X_SEEDED_VALUE)
137 OR ((recinfo.SEEDED_VALUE is null) AND (X_SEEDED_VALUE is null)))
138 AND (recinfo.PARAMETER_CODE = X_PARAMETER_CODE)
139 AND (recinfo.PARAMETER_LEVEL = X_PARAMETER_LEVEL)
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.PARAMETER_NAME = X_PARAMETER_NAME)
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_PARAMETER_ID in NUMBER,
165 X_VALUE_SET_ID in NUMBER,
166 X_ADVANCED_PRICING_ONLY in VARCHAR2,
167 X_SEEDED_VALUE in VARCHAR2,
168 X_PARAMETER_CODE in VARCHAR2,
169 X_PARAMETER_LEVEL in VARCHAR2,
170 X_PARAMETER_NAME in VARCHAR2,
171 X_DESCRIPTION in VARCHAR2,
172 X_LAST_UPDATE_DATE in DATE,
173 X_LAST_UPDATED_BY in NUMBER,
174 X_LAST_UPDATE_LOGIN in NUMBER
175 ) is
176 begin
177 update QP_PARAMETERS_B set
178 VALUE_SET_ID = X_VALUE_SET_ID,
179 ADVANCED_PRICING_ONLY = X_ADVANCED_PRICING_ONLY,
180 SEEDED_VALUE = X_SEEDED_VALUE,
181 PARAMETER_CODE = X_PARAMETER_CODE,
182 PARAMETER_LEVEL = X_PARAMETER_LEVEL,
183 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
184 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
185 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
186 where PARAMETER_ID = X_PARAMETER_ID;
187
188 if (sql%notfound) then
189 raise no_data_found;
190 end if;
191
192 update QP_PARAMETERS_TL set
193 PARAMETER_NAME = X_PARAMETER_NAME,
194 DESCRIPTION = X_DESCRIPTION,
195 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
196 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
197 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
198 SOURCE_LANG = userenv('LANG')
199 where PARAMETER_ID = X_PARAMETER_ID
200 and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
201
202 if (sql%notfound) then
203 raise no_data_found;
204 end if;
205 end UPDATE_ROW;
206
207 procedure DELETE_ROW (
208 X_PARAMETER_ID in NUMBER
209 ) is
210 begin
211
212 delete from QP_PARAMETERS_TL
213 where PARAMETER_ID = X_PARAMETER_ID;
214
215 if (sql%notfound) then
216 raise no_data_found;
217 end if;
218
219 delete from QP_PARAMETERS_B
220 where PARAMETER_ID = X_PARAMETER_ID;
221
222 if (sql%notfound) then
223 raise no_data_found;
224 end if;
225
226 delete from QP_PARAMETER_VALUES
227 where PARAMETER_ID = X_PARAMETER_ID;
228
229 if (sql%notfound) then
230 raise no_data_found;
231 end if;
232
233 end DELETE_ROW;
234
235 procedure ADD_LANGUAGE
236 is
237 begin
238 delete from QP_PARAMETERS_TL T
239 where not exists
240 (select NULL
241 from QP_PARAMETERS_B B
242 where B.PARAMETER_ID = T.PARAMETER_ID
243 );
244
245 update QP_PARAMETERS_TL T set (
246 PARAMETER_NAME,
247 DESCRIPTION
248 ) = (select
249 B.PARAMETER_NAME,
250 B.DESCRIPTION
251 from QP_PARAMETERS_TL B
252 where B.PARAMETER_ID = T.PARAMETER_ID
253 and B.LANGUAGE = T.SOURCE_LANG)
254 where (
255 T.PARAMETER_ID,
256 T.LANGUAGE
257 ) in (select
258 SUBT.PARAMETER_ID,
259 SUBT.LANGUAGE
260 from QP_PARAMETERS_TL SUBB, QP_PARAMETERS_TL SUBT
261 where SUBB.PARAMETER_ID = SUBT.PARAMETER_ID
262 and SUBB.LANGUAGE = SUBT.SOURCE_LANG
263 and (SUBB.PARAMETER_NAME <> SUBT.PARAMETER_NAME
264 or SUBB.DESCRIPTION <> SUBT.DESCRIPTION
265 or (SUBB.DESCRIPTION is null and SUBT.DESCRIPTION is not null)
266 or (SUBB.DESCRIPTION is not null and SUBT.DESCRIPTION is null)
267 ));
268
269 insert into QP_PARAMETERS_TL (
270 PARAMETER_ID,
271 PARAMETER_NAME,
272 DESCRIPTION,
273 CREATION_DATE,
274 CREATED_BY,
275 LAST_UPDATE_DATE,
276 LAST_UPDATED_BY,
277 LAST_UPDATE_LOGIN,
278 LANGUAGE,
279 SOURCE_LANG
280 ) select /*+ ORDERED */
281 B.PARAMETER_ID,
282 B.PARAMETER_NAME,
283 B.DESCRIPTION,
284 B.CREATION_DATE,
285 B.CREATED_BY,
286 B.LAST_UPDATE_DATE,
287 B.LAST_UPDATED_BY,
288 B.LAST_UPDATE_LOGIN,
289 L.LANGUAGE_CODE,
290 B.SOURCE_LANG
291 from QP_PARAMETERS_TL B, FND_LANGUAGES L
292 where L.INSTALLED_FLAG in ('I', 'B')
293 and B.LANGUAGE = userenv('LANG')
294 and not exists
295 (select NULL
296 from QP_PARAMETERS_TL T
297 where T.PARAMETER_ID = B.PARAMETER_ID
298 and T.LANGUAGE = L.LANGUAGE_CODE);
299 end ADD_LANGUAGE;
300
301 end QP_PARAMETERS_PKG;