1 package body OZF_WORKSHEET_HEADERS_PKG as
2 /* $Header: ozftwkhb.pls 120.0 2005/05/31 23:57:59 appldev noship $ */
3 procedure INSERT_ROW (
4 X_ROWID in out nocopy VARCHAR2,
5 X_WORKSHEET_HEADER_ID in NUMBER,
6 X_FORECAST_START_DATE in DATE,
7 X_FORECAST_END_DATE in DATE,
8 X_CURRENCY_CODE in VARCHAR2,
9 X_FORECAST_GENERATED in VARCHAR2,
10 X_FORECAST_BASIS in VARCHAR2,
11 X_OFFER_CODE in VARCHAR2,
12 X_OBJECT_VERSION_NUMBER in NUMBER,
13 X_START_DATE_ACTIVE in DATE,
14 X_END_DATE_ACTIVE in DATE,
15 X_CUSTOM_SETUP_ID in NUMBER,
16 X_OWNER_ID in NUMBER,
17 X_ACTIVITY_ID in NUMBER,
18 X_TIME_SPREAD in VARCHAR2,
19 X_PRICE_LIST_ID in NUMBER,
20 X_FORECAST_UOM_CODE in VARCHAR2,
21 X_INCREMENT_QUOTA in VARCHAR2,
22 X_OFFER_TYPE in VARCHAR2,
23 X_NAME in VARCHAR2,
24 X_DESCRIPTION in VARCHAR2,
25 X_VERSION_NO in VARCHAR2,
26 X_CREATION_DATE in DATE,
27 X_CREATED_BY in NUMBER,
28 X_LAST_UPDATE_DATE in DATE,
29 X_LAST_UPDATED_BY in NUMBER,
30 X_LAST_UPDATE_LOGIN in NUMBER
31 ) is
32 cursor C is select ROWID from OZF_WORKSHEET_HEADERS_B
33 where WORKSHEET_HEADER_ID = X_WORKSHEET_HEADER_ID
34 ;
35 begin
36 insert into OZF_WORKSHEET_HEADERS_B (
37 FORECAST_START_DATE,
38 FORECAST_END_DATE,
39 CURRENCY_CODE,
40 FORECAST_GENERATED,
41 FORECAST_BASIS,
42 OFFER_CODE,
43 OBJECT_VERSION_NUMBER,
44 START_DATE_ACTIVE,
45 END_DATE_ACTIVE,
46 CUSTOM_SETUP_ID,
47 OWNER_ID,
48 ACTIVITY_ID,
49 TIME_SPREAD,
50 PRICE_LIST_ID,
51 FORECAST_UOM_CODE,
52 INCREMENT_QUOTA,
53 OFFER_TYPE,
54 WORKSHEET_HEADER_ID,
55 CREATION_DATE,
56 CREATED_BY,
57 LAST_UPDATE_DATE,
58 LAST_UPDATED_BY,
59 LAST_UPDATE_LOGIN
60 ) values (
61 X_FORECAST_START_DATE,
62 X_FORECAST_END_DATE,
63 X_CURRENCY_CODE,
64 X_FORECAST_GENERATED,
65 X_FORECAST_BASIS,
66 X_OFFER_CODE,
67 X_OBJECT_VERSION_NUMBER,
68 X_START_DATE_ACTIVE,
69 X_END_DATE_ACTIVE,
70 X_CUSTOM_SETUP_ID,
71 X_OWNER_ID,
72 X_ACTIVITY_ID,
73 X_TIME_SPREAD,
74 X_PRICE_LIST_ID,
75 X_FORECAST_UOM_CODE,
76 X_INCREMENT_QUOTA,
77 X_OFFER_TYPE,
78 X_WORKSHEET_HEADER_ID,
79 X_CREATION_DATE,
80 X_CREATED_BY,
81 X_LAST_UPDATE_DATE,
82 X_LAST_UPDATED_BY,
83 X_LAST_UPDATE_LOGIN
84 );
85
86 insert into OZF_WORKSHEET_HEADERS_TL (
87 WORKSHEET_HEADER_ID,
88 CREATION_DATE,
89 CREATED_BY,
90 LAST_UPDATE_DATE,
91 LAST_UPDATED_BY,
92 LAST_UPDATE_LOGIN,
93 NAME,
94 DESCRIPTION,
95 VERSION_NO,
96 LANGUAGE,
97 SOURCE_LANG
98 ) select
99 X_WORKSHEET_HEADER_ID,
100 X_CREATION_DATE,
101 X_CREATED_BY,
102 X_LAST_UPDATE_DATE,
103 X_LAST_UPDATED_BY,
104 X_LAST_UPDATE_LOGIN,
105 X_NAME,
106 X_DESCRIPTION,
107 X_VERSION_NO,
108 L.LANGUAGE_CODE,
109 userenv('LANG')
110 from FND_LANGUAGES L
111 where L.INSTALLED_FLAG in ('I', 'B')
112 and not exists
113 (select NULL
114 from OZF_WORKSHEET_HEADERS_TL T
115 where T.WORKSHEET_HEADER_ID = X_WORKSHEET_HEADER_ID
116 and T.LANGUAGE = L.LANGUAGE_CODE);
117
118 open c;
119 fetch c into X_ROWID;
120 if (c%notfound) then
121 close c;
122 raise no_data_found;
123 end if;
124 close c;
125
126 end INSERT_ROW;
127
128 procedure LOCK_ROW (
129 X_WORKSHEET_HEADER_ID in NUMBER,
130 X_FORECAST_START_DATE in DATE,
131 X_FORECAST_END_DATE in DATE,
132 X_CURRENCY_CODE in VARCHAR2,
133 X_FORECAST_GENERATED in VARCHAR2,
134 X_FORECAST_BASIS in VARCHAR2,
135 X_OFFER_CODE in VARCHAR2,
136 X_OBJECT_VERSION_NUMBER in NUMBER,
137 X_START_DATE_ACTIVE in DATE,
138 X_END_DATE_ACTIVE in DATE,
139 X_CUSTOM_SETUP_ID in NUMBER,
140 X_OWNER_ID in NUMBER,
141 X_ACTIVITY_ID in NUMBER,
142 X_TIME_SPREAD in VARCHAR2,
143 X_PRICE_LIST_ID in NUMBER,
144 X_FORECAST_UOM_CODE in VARCHAR2,
145 X_INCREMENT_QUOTA in VARCHAR2,
146 X_OFFER_TYPE in VARCHAR2,
147 X_NAME in VARCHAR2,
148 X_DESCRIPTION in VARCHAR2,
149 X_VERSION_NO in VARCHAR2
150 ) is
151 cursor c is select
152 FORECAST_START_DATE,
153 FORECAST_END_DATE,
154 CURRENCY_CODE,
155 FORECAST_GENERATED,
156 FORECAST_BASIS,
157 OFFER_CODE,
158 OBJECT_VERSION_NUMBER,
159 START_DATE_ACTIVE,
160 END_DATE_ACTIVE,
161 CUSTOM_SETUP_ID,
162 OWNER_ID,
163 ACTIVITY_ID,
164 TIME_SPREAD,
165 PRICE_LIST_ID,
166 FORECAST_UOM_CODE,
167 INCREMENT_QUOTA,
168 OFFER_TYPE
169 from OZF_WORKSHEET_HEADERS_B
170 where WORKSHEET_HEADER_ID = X_WORKSHEET_HEADER_ID
171 for update of WORKSHEET_HEADER_ID nowait;
172 recinfo c%rowtype;
173
174 cursor c1 is select
175 NAME,
176 DESCRIPTION,
177 VERSION_NO,
178 decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
179 from OZF_WORKSHEET_HEADERS_TL
180 where WORKSHEET_HEADER_ID = X_WORKSHEET_HEADER_ID
181 and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
182 for update of WORKSHEET_HEADER_ID nowait;
183 begin
184 open c;
185 fetch c into recinfo;
186 if (c%notfound) then
187 close c;
188 fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
189 app_exception.raise_exception;
190 end if;
191 close c;
192 if ( ((recinfo.FORECAST_START_DATE = X_FORECAST_START_DATE)
193 OR ((recinfo.FORECAST_START_DATE is null) AND (X_FORECAST_START_DATE is null)))
194 AND ((recinfo.FORECAST_END_DATE = X_FORECAST_END_DATE)
195 OR ((recinfo.FORECAST_END_DATE is null) AND (X_FORECAST_END_DATE is null)))
196 AND ((recinfo.CURRENCY_CODE = X_CURRENCY_CODE)
197 OR ((recinfo.CURRENCY_CODE is null) AND (X_CURRENCY_CODE is null)))
198 AND ((recinfo.FORECAST_GENERATED = X_FORECAST_GENERATED)
199 OR ((recinfo.FORECAST_GENERATED is null) AND (X_FORECAST_GENERATED is null)))
200 AND ((recinfo.FORECAST_BASIS = X_FORECAST_BASIS)
201 OR ((recinfo.FORECAST_BASIS is null) AND (X_FORECAST_BASIS is null)))
202 AND ((recinfo.OFFER_CODE = X_OFFER_CODE)
203 OR ((recinfo.OFFER_CODE is null) AND (X_OFFER_CODE is null)))
204 AND ((recinfo.OBJECT_VERSION_NUMBER = X_OBJECT_VERSION_NUMBER)
205 OR ((recinfo.OBJECT_VERSION_NUMBER is null) AND (X_OBJECT_VERSION_NUMBER is null)))
206 AND ((recinfo.START_DATE_ACTIVE = X_START_DATE_ACTIVE)
207 OR ((recinfo.START_DATE_ACTIVE is null) AND (X_START_DATE_ACTIVE is null)))
208 AND ((recinfo.END_DATE_ACTIVE = X_END_DATE_ACTIVE)
209 OR ((recinfo.END_DATE_ACTIVE is null) AND (X_END_DATE_ACTIVE is null)))
210 AND (recinfo.CUSTOM_SETUP_ID = X_CUSTOM_SETUP_ID)
211 AND ((recinfo.OWNER_ID = X_OWNER_ID)
212 OR ((recinfo.OWNER_ID is null) AND (X_OWNER_ID is null)))
213 AND ((recinfo.ACTIVITY_ID = X_ACTIVITY_ID)
214 OR ((recinfo.ACTIVITY_ID is null) AND (X_ACTIVITY_ID is null)))
215 AND ((recinfo.TIME_SPREAD = X_TIME_SPREAD)
216 OR ((recinfo.TIME_SPREAD is null) AND (X_TIME_SPREAD is null)))
217 AND (recinfo.PRICE_LIST_ID = X_PRICE_LIST_ID)
218 AND ((recinfo.FORECAST_UOM_CODE = X_FORECAST_UOM_CODE)
219 OR ((recinfo.FORECAST_UOM_CODE is null) AND (X_FORECAST_UOM_CODE is null)))
220 AND ((recinfo.INCREMENT_QUOTA = X_INCREMENT_QUOTA)
221 OR ((recinfo.INCREMENT_QUOTA is null) AND (X_INCREMENT_QUOTA is null)))
222 AND ((recinfo.OFFER_TYPE = X_OFFER_TYPE)
223 OR ((recinfo.OFFER_TYPE is null) AND (X_OFFER_TYPE is null)))
224 ) then
225 null;
226 else
227 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
228 app_exception.raise_exception;
229 end if;
230
231 for tlinfo in c1 loop
232 if (tlinfo.BASELANG = 'Y') then
233 if ( (tlinfo.NAME = X_NAME)
234 AND ((tlinfo.DESCRIPTION = X_DESCRIPTION)
235 OR ((tlinfo.DESCRIPTION is null) AND (X_DESCRIPTION is null)))
236 AND ((tlinfo.VERSION_NO = X_VERSION_NO)
237 OR ((tlinfo.VERSION_NO is null) AND (X_VERSION_NO is null)))
238 ) then
239 null;
240 else
241 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
242 app_exception.raise_exception;
243 end if;
244 end if;
245 end loop;
246 return;
247 end LOCK_ROW;
248
249 procedure UPDATE_ROW (
250 X_WORKSHEET_HEADER_ID in NUMBER,
251 X_FORECAST_START_DATE in DATE,
252 X_FORECAST_END_DATE in DATE,
253 X_CURRENCY_CODE in VARCHAR2,
254 X_FORECAST_GENERATED in VARCHAR2,
255 X_FORECAST_BASIS in VARCHAR2,
256 X_OFFER_CODE in VARCHAR2,
257 X_OBJECT_VERSION_NUMBER in NUMBER,
258 X_START_DATE_ACTIVE in DATE,
259 X_END_DATE_ACTIVE in DATE,
260 X_CUSTOM_SETUP_ID in NUMBER,
261 X_OWNER_ID in NUMBER,
262 X_ACTIVITY_ID in NUMBER,
263 X_TIME_SPREAD in VARCHAR2,
264 X_PRICE_LIST_ID in NUMBER,
265 X_FORECAST_UOM_CODE in VARCHAR2,
266 X_INCREMENT_QUOTA in VARCHAR2,
267 X_OFFER_TYPE in VARCHAR2,
268 X_NAME in VARCHAR2,
269 X_DESCRIPTION in VARCHAR2,
270 X_VERSION_NO in VARCHAR2,
271 X_LAST_UPDATE_DATE in DATE,
272 X_LAST_UPDATED_BY in NUMBER,
273 X_LAST_UPDATE_LOGIN in NUMBER
274 ) is
275 begin
276 update OZF_WORKSHEET_HEADERS_B set
277 FORECAST_START_DATE = X_FORECAST_START_DATE,
278 FORECAST_END_DATE = X_FORECAST_END_DATE,
279 CURRENCY_CODE = X_CURRENCY_CODE,
280 FORECAST_GENERATED = X_FORECAST_GENERATED,
281 FORECAST_BASIS = X_FORECAST_BASIS,
282 OFFER_CODE = X_OFFER_CODE,
283 OBJECT_VERSION_NUMBER = X_OBJECT_VERSION_NUMBER,
284 START_DATE_ACTIVE = X_START_DATE_ACTIVE,
285 END_DATE_ACTIVE = X_END_DATE_ACTIVE,
286 CUSTOM_SETUP_ID = X_CUSTOM_SETUP_ID,
287 OWNER_ID = X_OWNER_ID,
288 ACTIVITY_ID = X_ACTIVITY_ID,
289 TIME_SPREAD = X_TIME_SPREAD,
290 PRICE_LIST_ID = X_PRICE_LIST_ID,
291 FORECAST_UOM_CODE = X_FORECAST_UOM_CODE,
292 INCREMENT_QUOTA = X_INCREMENT_QUOTA,
293 OFFER_TYPE = X_OFFER_TYPE,
294 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
295 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
296 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
297 where WORKSHEET_HEADER_ID = X_WORKSHEET_HEADER_ID;
298
299 if (sql%notfound) then
300 raise no_data_found;
301 end if;
302
303 update OZF_WORKSHEET_HEADERS_TL set
304 NAME = X_NAME,
305 DESCRIPTION = X_DESCRIPTION,
306 VERSION_NO = X_VERSION_NO,
307 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
308 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
309 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
310 SOURCE_LANG = userenv('LANG')
311 where WORKSHEET_HEADER_ID = X_WORKSHEET_HEADER_ID
312 and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
313
314 if (sql%notfound) then
315 raise no_data_found;
316 end if;
317 end UPDATE_ROW;
318
319 procedure DELETE_ROW (
320 X_WORKSHEET_HEADER_ID in NUMBER
321 ) is
322 begin
323 delete from OZF_WORKSHEET_HEADERS_TL
324 where WORKSHEET_HEADER_ID = X_WORKSHEET_HEADER_ID;
325
326 if (sql%notfound) then
327 raise no_data_found;
328 end if;
329
330 delete from OZF_WORKSHEET_HEADERS_B
331 where WORKSHEET_HEADER_ID = X_WORKSHEET_HEADER_ID;
332
333 if (sql%notfound) then
334 raise no_data_found;
335 end if;
336 end DELETE_ROW;
337
338 procedure ADD_LANGUAGE
339 is
340 begin
341 delete from OZF_WORKSHEET_HEADERS_TL T
342 where not exists
343 (select NULL
344 from OZF_WORKSHEET_HEADERS_B B
345 where B.WORKSHEET_HEADER_ID = T.WORKSHEET_HEADER_ID
346 );
347
348 update OZF_WORKSHEET_HEADERS_TL T set (
349 NAME,
350 DESCRIPTION,
351 VERSION_NO
352 ) = (select
353 B.NAME,
354 B.DESCRIPTION,
355 B.VERSION_NO
356 from OZF_WORKSHEET_HEADERS_TL B
357 where B.WORKSHEET_HEADER_ID = T.WORKSHEET_HEADER_ID
358 and B.LANGUAGE = T.SOURCE_LANG)
359 where (
360 T.WORKSHEET_HEADER_ID,
361 T.LANGUAGE
362 ) in (select
363 SUBT.WORKSHEET_HEADER_ID,
364 SUBT.LANGUAGE
365 from OZF_WORKSHEET_HEADERS_TL SUBB, OZF_WORKSHEET_HEADERS_TL SUBT
366 where SUBB.WORKSHEET_HEADER_ID = SUBT.WORKSHEET_HEADER_ID
367 and SUBB.LANGUAGE = SUBT.SOURCE_LANG
368 and (SUBB.NAME <> SUBT.NAME
369 or SUBB.DESCRIPTION <> SUBT.DESCRIPTION
370 or (SUBB.DESCRIPTION is null and SUBT.DESCRIPTION is not null)
371 or (SUBB.DESCRIPTION is not null and SUBT.DESCRIPTION is null)
372 or SUBB.VERSION_NO <> SUBT.VERSION_NO
373 or (SUBB.VERSION_NO is null and SUBT.VERSION_NO is not null)
374 or (SUBB.VERSION_NO is not null and SUBT.VERSION_NO is null)
375 ));
376
377 insert into OZF_WORKSHEET_HEADERS_TL (
378 WORKSHEET_HEADER_ID,
379 CREATION_DATE,
380 CREATED_BY,
381 LAST_UPDATE_DATE,
382 LAST_UPDATED_BY,
383 LAST_UPDATE_LOGIN,
384 NAME,
385 DESCRIPTION,
386 VERSION_NO,
387 LANGUAGE,
388 SOURCE_LANG
389 ) select /*+ ORDERED */
390 B.WORKSHEET_HEADER_ID,
391 B.CREATION_DATE,
392 B.CREATED_BY,
393 B.LAST_UPDATE_DATE,
394 B.LAST_UPDATED_BY,
395 B.LAST_UPDATE_LOGIN,
396 B.NAME,
397 B.DESCRIPTION,
398 B.VERSION_NO,
399 L.LANGUAGE_CODE,
400 B.SOURCE_LANG
401 from OZF_WORKSHEET_HEADERS_TL B, FND_LANGUAGES L
402 where L.INSTALLED_FLAG in ('I', 'B')
403 and B.LANGUAGE = userenv('LANG')
404 and not exists
405 (select NULL
406 from OZF_WORKSHEET_HEADERS_TL T
407 where T.WORKSHEET_HEADER_ID = B.WORKSHEET_HEADER_ID
408 and T.LANGUAGE = L.LANGUAGE_CODE);
409 end ADD_LANGUAGE;
410
411 end OZF_WORKSHEET_HEADERS_PKG;