[Home] [Help]
PACKAGE BODY: APPS.CSP_LOOP_CALC_RULES_B_PKG
Source
1 PACKAGE BODY CSP_LOOP_CALC_RULES_B_PKG as
2 /* $Header: csptpcrb.pls 115.9 2002/11/26 07:13:40 hhaugeru ship $ */
3 -- Start of Comments
4 -- Package name : CSP_LOOP_CALC_RULES_B_PKG
5 -- Purpose :
6 -- History :
7 -- NOTE :
8 -- End of Comments
9
10
11 G_PKG_NAME CONSTANT VARCHAR2(30):= 'CSP_LOOP_CALC_RULES_B_PKG';
12 G_FILE_NAME CONSTANT VARCHAR2(12) := 'csptpcrb.pls';
13
14 PROCEDURE Insert_Row(
15 px_CALCULATION_RULE_ID IN OUT NOCOPY NUMBER,
16 p_CREATED_BY NUMBER,
17 p_CREATION_DATE DATE,
18 p_LAST_UPDATED_BY NUMBER,
19 p_LAST_UPDATE_DATE DATE,
20 p_LAST_UPDATE_LOGIN NUMBER,
21 p_CALCULATION_RULE_NAME VARCHAR2,
22 p_INCLUDE_SALES_ORDERS VARCHAR2,
23 p_INCLUDE_MOVE_ORDERS VARCHAR2,
24 p_INCLUDE_REPAIR_ORDERS VARCHAR2,
25 p_INCLUDE_WORK_ORDERS VARCHAR2,
26 p_INCLUDE_PURCHASE_ORDERS VARCHAR2,
27 p_INCLUDE_REQUISITIONS VARCHAR2,
28 p_INCLUDE_INTERORG_TRANSFERS VARCHAR2,
29 p_INCLUDE_ONHAND_GOOD VARCHAR2,
30 p_INCLUDE_ONHAND_BAD VARCHAR2,
31 p_INCLUDE_INTRANSIT_MOVE_ORD VARCHAR2,
32 p_TOLERANCE_PERCENT NUMBER,
33 p_TIME_FENCE NUMBER,
34 p_INCLUDE_DOA VARCHAR2,
35 p_ROLLUP_SUPERCESSION VARCHAR2,
36 p_FORECAST_LOWER_SUPERCESSION VARCHAR2,
37 p_ATTRIBUTE_CATEGORY VARCHAR2,
38 p_ATTRIBUTE1 VARCHAR2,
39 p_ATTRIBUTE2 VARCHAR2,
40 p_ATTRIBUTE3 VARCHAR2,
41 p_ATTRIBUTE4 VARCHAR2,
42 p_ATTRIBUTE5 VARCHAR2,
43 p_ATTRIBUTE6 VARCHAR2,
44 p_ATTRIBUTE7 VARCHAR2,
45 p_ATTRIBUTE8 VARCHAR2,
46 p_ATTRIBUTE9 VARCHAR2,
47 p_ATTRIBUTE10 VARCHAR2,
48 p_ATTRIBUTE11 VARCHAR2,
49 p_ATTRIBUTE12 VARCHAR2,
50 p_ATTRIBUTE13 VARCHAR2,
51 p_ATTRIBUTE14 VARCHAR2,
52 p_ATTRIBUTE15 VARCHAR2,
53 p_DESCRIPTION VARCHAR2 )
54
55 IS
56 CURSOR C2 IS SELECT CSP_LOOP_CALC_RULES_B_S1.nextval FROM sys.dual;
57
58 CURSOR C3 is select ROWID from CSP_LOOP_CALC_RULES_B
59 where CALCULATION_RULE_ID = px_CALCULATION_RULE_ID;
60
61 p_ROWID VARCHAR2(30);
62
63 BEGIN
64 If (px_CALCULATION_RULE_ID IS NULL) OR (px_CALCULATION_RULE_ID = FND_API.G_MISS_NUM) then
65 OPEN C2;
66 FETCH C2 INTO px_CALCULATION_RULE_ID;
67 CLOSE C2;
68 End If;
69 INSERT INTO CSP_LOOP_CALC_RULES_B(
70 CALCULATION_RULE_ID,
71 CREATED_BY,
72 CREATION_DATE,
73 LAST_UPDATED_BY,
74 LAST_UPDATE_DATE,
75 LAST_UPDATE_LOGIN,
76 CALCULATION_RULE_NAME,
77 INCLUDE_SALES_ORDERS,
78 INCLUDE_MOVE_ORDERS,
79 INCLUDE_REPAIR_ORDERS,
80 INCLUDE_WORK_ORDERS,
81 INCLUDE_PURCHASE_ORDERS,
82 INCLUDE_REQUISITIONS,
83 INCLUDE_INTERORG_TRANSFERS,
84 INCLUDE_ONHAND_GOOD,
85 INCLUDE_ONHAND_BAD,
86 INCLUDE_INTRANSIT_MOVE_ORDERS,
87 TOLERANCE_PERCENT,
88 TIME_FENCE,
89 INCLUDE_DOA,
90 ROLLUP_SUPERCESSION,
91 FORECAST_LOWER_SUPERCESSION,
92 ATTRIBUTE_CATEGORY,
93 ATTRIBUTE1,
94 ATTRIBUTE2,
95 ATTRIBUTE3,
96 ATTRIBUTE4,
97 ATTRIBUTE5,
98 ATTRIBUTE6,
99 ATTRIBUTE7,
100 ATTRIBUTE8,
101 ATTRIBUTE9,
102 ATTRIBUTE10,
103 ATTRIBUTE11,
104 ATTRIBUTE12,
105 ATTRIBUTE13,
106 ATTRIBUTE14,
107 ATTRIBUTE15
108 ) VALUES (
109 px_CALCULATION_RULE_ID,
110 decode( p_CREATED_BY, FND_API.G_MISS_NUM, NULL, p_CREATED_BY),
111 decode( p_CREATION_DATE, FND_API.G_MISS_DATE, to_date(null), p_CREATION_DATE),
112 decode( p_LAST_UPDATED_BY, FND_API.G_MISS_NUM, NULL, p_LAST_UPDATED_BY),
113 decode( p_LAST_UPDATE_DATE, FND_API.G_MISS_DATE, to_date(null), p_LAST_UPDATE_DATE),
114 decode( p_LAST_UPDATE_LOGIN, FND_API.G_MISS_NUM, NULL, p_LAST_UPDATE_LOGIN),
115 decode( p_CALCULATION_RULE_NAME, FND_API.G_MISS_CHAR, NULL, p_CALCULATION_RULE_NAME),
116 decode( p_INCLUDE_SALES_ORDERS, FND_API.G_MISS_CHAR, NULL, p_INCLUDE_SALES_ORDERS),
117 decode( p_INCLUDE_MOVE_ORDERS, FND_API.G_MISS_CHAR, NULL, p_INCLUDE_MOVE_ORDERS),
118 decode( p_INCLUDE_REPAIR_ORDERS, FND_API.G_MISS_CHAR, NULL, p_INCLUDE_REPAIR_ORDERS),
119 decode( p_INCLUDE_WORK_ORDERS, FND_API.G_MISS_CHAR, NULL, p_INCLUDE_WORK_ORDERS),
120 decode( p_INCLUDE_PURCHASE_ORDERS, FND_API.G_MISS_CHAR, NULL, p_INCLUDE_PURCHASE_ORDERS),
121 decode( p_INCLUDE_REQUISITIONS, FND_API.G_MISS_CHAR, NULL, p_INCLUDE_REQUISITIONS),
122 decode( p_INCLUDE_INTERORG_TRANSFERS, FND_API.G_MISS_CHAR, NULL, p_INCLUDE_INTERORG_TRANSFERS),
123 decode( p_INCLUDE_ONHAND_GOOD, FND_API.G_MISS_CHAR, NULL, p_INCLUDE_ONHAND_GOOD),
124 decode( p_INCLUDE_ONHAND_BAD, FND_API.G_MISS_CHAR, NULL, p_INCLUDE_ONHAND_BAD),
125 decode( p_INCLUDE_INTRANSIT_MOVE_ORD, FND_API.G_MISS_CHAR, NULL, p_INCLUDE_INTRANSIT_MOVE_ORD),
126 decode( p_TOLERANCE_PERCENT, FND_API.G_MISS_NUM, NULL, p_TOLERANCE_PERCENT),
127 decode( p_TIME_FENCE, FND_API.G_MISS_NUM, NULL, p_TIME_FENCE),
128 decode( p_INCLUDE_DOA, FND_API.G_MISS_CHAR, NULL, p_INCLUDE_DOA),
129 decode( p_ROLLUP_SUPERCESSION, FND_API.G_MISS_CHAR, NULL, p_ROLLUP_SUPERCESSION),
130 decode( p_FORECAST_LOWER_SUPERCESSION, FND_API.G_MISS_CHAR, NULL, p_FORECAST_LOWER_SUPERCESSION),
131 decode( p_ATTRIBUTE_CATEGORY, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE_CATEGORY),
132 decode( p_ATTRIBUTE1, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE1),
133 decode( p_ATTRIBUTE2, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE2),
134 decode( p_ATTRIBUTE3, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE3),
135 decode( p_ATTRIBUTE4, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE4),
136 decode( p_ATTRIBUTE5, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE5),
137 decode( p_ATTRIBUTE6, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE6),
138 decode( p_ATTRIBUTE7, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE7),
139 decode( p_ATTRIBUTE8, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE8),
140 decode( p_ATTRIBUTE9, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE9),
141 decode( p_ATTRIBUTE10, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE10),
142 decode( p_ATTRIBUTE11, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE11),
143 decode( p_ATTRIBUTE12, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE12),
144 decode( p_ATTRIBUTE13, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE13),
145 decode( p_ATTRIBUTE14, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE14),
146 decode( p_ATTRIBUTE15, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE15));
147
148 insert into CSP_LOOP_CALC_RULES_TL (
149 CALCULATION_RULE_ID,
150 CREATED_BY,
151 CREATION_DATE,
152 LAST_UPDATED_BY,
153 LAST_UPDATE_DATE,
154 LAST_UPDATE_LOGIN,
155 DESCRIPTION,
156 LANGUAGE,
157 SOURCE_LANG
158 ) select
159 px_CALCULATION_RULE_ID,
160 p_CREATED_BY,
161 p_CREATION_DATE,
162 p_LAST_UPDATED_BY,
163 p_LAST_UPDATE_DATE,
164 p_LAST_UPDATE_LOGIN,
165 p_DESCRIPTION,
166 L.LANGUAGE_CODE,
167 userenv('LANG')
168 from FND_LANGUAGES L
169 where L.INSTALLED_FLAG in ('I', 'B')
170 and not exists
171 (select NULL
172 from CSP_LOOP_CALC_RULES_TL T
173 where T.CALCULATION_RULE_ID = px_CALCULATION_RULE_ID
174 and T.LANGUAGE = L.LANGUAGE_CODE);
175
176 open c3;
177 fetch c3 into P_ROWID;
178 if (c3%notfound) then
179 close c3;
180 raise no_data_found;
181 end if;
182 close c3;
183
184 End Insert_Row;
185
186
187 PROCEDURE Update_Row(
188 p_CALCULATION_RULE_ID NUMBER,
189 p_CREATED_BY NUMBER,
190 p_CREATION_DATE DATE,
191 p_LAST_UPDATED_BY NUMBER,
192 p_LAST_UPDATE_DATE DATE,
193 p_LAST_UPDATE_LOGIN NUMBER,
194 p_CALCULATION_RULE_NAME VARCHAR2,
195 p_INCLUDE_SALES_ORDERS VARCHAR2,
196 p_INCLUDE_MOVE_ORDERS VARCHAR2,
197 p_INCLUDE_REPAIR_ORDERS VARCHAR2,
198 p_INCLUDE_WORK_ORDERS VARCHAR2,
199 p_INCLUDE_PURCHASE_ORDERS VARCHAR2,
200 p_INCLUDE_REQUISITIONS VARCHAR2,
201 p_INCLUDE_INTERORG_TRANSFERS VARCHAR2,
202 p_INCLUDE_ONHAND_GOOD VARCHAR2,
203 p_INCLUDE_ONHAND_BAD VARCHAR2,
204 p_INCLUDE_INTRANSIT_MOVE_ORD VARCHAR2,
205 p_TOLERANCE_PERCENT NUMBER,
206 p_TIME_FENCE NUMBER,
207 p_INCLUDE_DOA VARCHAR2,
208 p_ROLLUP_SUPERCESSION VARCHAR2,
209 p_FORECAST_LOWER_SUPERCESSION VARCHAR2,
210 p_ATTRIBUTE_CATEGORY VARCHAR2,
211 p_ATTRIBUTE1 VARCHAR2,
212 p_ATTRIBUTE2 VARCHAR2,
213 p_ATTRIBUTE3 VARCHAR2,
214 p_ATTRIBUTE4 VARCHAR2,
215 p_ATTRIBUTE5 VARCHAR2,
216 p_ATTRIBUTE6 VARCHAR2,
217 p_ATTRIBUTE7 VARCHAR2,
218 p_ATTRIBUTE8 VARCHAR2,
219 p_ATTRIBUTE9 VARCHAR2,
220 p_ATTRIBUTE10 VARCHAR2,
221 p_ATTRIBUTE11 VARCHAR2,
222 p_ATTRIBUTE12 VARCHAR2,
223 p_ATTRIBUTE13 VARCHAR2,
224 p_ATTRIBUTE14 VARCHAR2,
225 p_ATTRIBUTE15 VARCHAR2,
226 p_DESCRIPTION VARCHAR2 )
227
228 IS
229 BEGIN
230 Update CSP_LOOP_CALC_RULES_B
231 SET
232 CALCULATION_RULE_ID = decode( p_CALCULATION_RULE_ID, FND_API.G_MISS_NUM, CALCULATION_RULE_ID, p_CALCULATION_RULE_ID),
233 CREATED_BY = decode( p_CREATED_BY, FND_API.G_MISS_NUM, CREATED_BY, p_CREATED_BY),
234 CREATION_DATE = decode( p_CREATION_DATE, FND_API.G_MISS_DATE, CREATION_DATE, p_CREATION_DATE),
235 LAST_UPDATED_BY = decode( p_LAST_UPDATED_BY, FND_API.G_MISS_NUM, LAST_UPDATED_BY, p_LAST_UPDATED_BY),
236 LAST_UPDATE_DATE = decode( p_LAST_UPDATE_DATE, FND_API.G_MISS_DATE, LAST_UPDATE_DATE, p_LAST_UPDATE_DATE),
237 LAST_UPDATE_LOGIN = decode( p_LAST_UPDATE_LOGIN, FND_API.G_MISS_NUM, LAST_UPDATE_LOGIN, p_LAST_UPDATE_LOGIN),
238 CALCULATION_RULE_NAME = decode( p_CALCULATION_RULE_NAME, FND_API.G_MISS_CHAR, CALCULATION_RULE_NAME, p_CALCULATION_RULE_NAME),
239 INCLUDE_SALES_ORDERS = decode( p_INCLUDE_SALES_ORDERS, FND_API.G_MISS_CHAR, INCLUDE_SALES_ORDERS, p_INCLUDE_SALES_ORDERS),
240 INCLUDE_MOVE_ORDERS = decode( p_INCLUDE_MOVE_ORDERS, FND_API.G_MISS_CHAR, INCLUDE_MOVE_ORDERS, p_INCLUDE_MOVE_ORDERS),
241 INCLUDE_REPAIR_ORDERS = decode( p_INCLUDE_REPAIR_ORDERS, FND_API.G_MISS_CHAR, INCLUDE_REPAIR_ORDERS, p_INCLUDE_REPAIR_ORDERS),
242 INCLUDE_WORK_ORDERS = decode( p_INCLUDE_WORK_ORDERS, FND_API.G_MISS_CHAR, INCLUDE_WORK_ORDERS, p_INCLUDE_WORK_ORDERS),
243 INCLUDE_PURCHASE_ORDERS = decode( p_INCLUDE_PURCHASE_ORDERS, FND_API.G_MISS_CHAR, INCLUDE_PURCHASE_ORDERS, p_INCLUDE_PURCHASE_ORDERS),
244 INCLUDE_REQUISITIONS = decode( p_INCLUDE_REQUISITIONS, FND_API.G_MISS_CHAR, INCLUDE_REQUISITIONS, p_INCLUDE_REQUISITIONS),
245 INCLUDE_INTERORG_TRANSFERS = decode( p_INCLUDE_INTERORG_TRANSFERS, FND_API.G_MISS_CHAR, INCLUDE_INTERORG_TRANSFERS, p_INCLUDE_INTERORG_TRANSFERS),
246 INCLUDE_ONHAND_GOOD = decode( p_INCLUDE_ONHAND_GOOD, FND_API.G_MISS_CHAR, INCLUDE_ONHAND_GOOD, p_INCLUDE_ONHAND_GOOD),
247 INCLUDE_ONHAND_BAD = decode( p_INCLUDE_ONHAND_BAD, FND_API.G_MISS_CHAR, INCLUDE_ONHAND_BAD, p_INCLUDE_ONHAND_BAD),
248 INCLUDE_INTRANSIT_MOVE_ORDERS = decode( p_INCLUDE_INTRANSIT_MOVE_ORD, FND_API.G_MISS_CHAR, INCLUDE_INTRANSIT_MOVE_ORDERS, p_INCLUDE_INTRANSIT_MOVE_ORD),
249 TOLERANCE_PERCENT = decode( p_TOLERANCE_PERCENT, FND_API.G_MISS_NUM, TOLERANCE_PERCENT, p_TOLERANCE_PERCENT),
250 TIME_FENCE = decode( p_TIME_FENCE, FND_API.G_MISS_NUM, TIME_FENCE, p_TIME_FENCE),
251 INCLUDE_DOA = decode( p_INCLUDE_DOA, FND_API.G_MISS_CHAR, INCLUDE_DOA, p_INCLUDE_DOA),
252 ROLLUP_SUPERCESSION = decode( p_ROLLUP_SUPERCESSION, FND_API.G_MISS_CHAR, ROLLUP_SUPERCESSION, p_ROLLUP_SUPERCESSION),
253 FORECAST_LOWER_SUPERCESSION = decode( p_FORECAST_LOWER_SUPERCESSION, FND_API.G_MISS_CHAR, FORECAST_LOWER_SUPERCESSION, p_FORECAST_LOWER_SUPERCESSION),
254 ATTRIBUTE_CATEGORY = decode( p_ATTRIBUTE_CATEGORY, FND_API.G_MISS_CHAR, ATTRIBUTE_CATEGORY, p_ATTRIBUTE_CATEGORY),
255 ATTRIBUTE1 = decode( p_ATTRIBUTE1, FND_API.G_MISS_CHAR, ATTRIBUTE1, p_ATTRIBUTE1),
256 ATTRIBUTE2 = decode( p_ATTRIBUTE2, FND_API.G_MISS_CHAR, ATTRIBUTE2, p_ATTRIBUTE2),
257 ATTRIBUTE3 = decode( p_ATTRIBUTE3, FND_API.G_MISS_CHAR, ATTRIBUTE3, p_ATTRIBUTE3),
258 ATTRIBUTE4 = decode( p_ATTRIBUTE4, FND_API.G_MISS_CHAR, ATTRIBUTE4, p_ATTRIBUTE4),
259 ATTRIBUTE5 = decode( p_ATTRIBUTE5, FND_API.G_MISS_CHAR, ATTRIBUTE5, p_ATTRIBUTE5),
260 ATTRIBUTE6 = decode( p_ATTRIBUTE6, FND_API.G_MISS_CHAR, ATTRIBUTE6, p_ATTRIBUTE6),
261 ATTRIBUTE7 = decode( p_ATTRIBUTE7, FND_API.G_MISS_CHAR, ATTRIBUTE7, p_ATTRIBUTE7),
262 ATTRIBUTE8 = decode( p_ATTRIBUTE8, FND_API.G_MISS_CHAR, ATTRIBUTE8, p_ATTRIBUTE8),
263 ATTRIBUTE9 = decode( p_ATTRIBUTE9, FND_API.G_MISS_CHAR, ATTRIBUTE9, p_ATTRIBUTE9),
264 ATTRIBUTE10 = decode( p_ATTRIBUTE10, FND_API.G_MISS_CHAR, ATTRIBUTE10, p_ATTRIBUTE10),
265 ATTRIBUTE11 = decode( p_ATTRIBUTE11, FND_API.G_MISS_CHAR, ATTRIBUTE11, p_ATTRIBUTE11),
266 ATTRIBUTE12 = decode( p_ATTRIBUTE12, FND_API.G_MISS_CHAR, ATTRIBUTE12, p_ATTRIBUTE12),
267 ATTRIBUTE13 = decode( p_ATTRIBUTE13, FND_API.G_MISS_CHAR, ATTRIBUTE13, p_ATTRIBUTE13),
268 ATTRIBUTE14 = decode( p_ATTRIBUTE14, FND_API.G_MISS_CHAR, ATTRIBUTE14, p_ATTRIBUTE14),
269 ATTRIBUTE15 = decode( p_ATTRIBUTE15, FND_API.G_MISS_CHAR, ATTRIBUTE15, p_ATTRIBUTE15)
270 where CALCULATION_RULE_ID = p_CALCULATION_RULE_ID;
271
272 If (SQL%NOTFOUND) then
273 RAISE NO_DATA_FOUND;
274 End If;
275
276 update CSP_LOOP_CALC_RULES_TL set
277 DESCRIPTION = p_DESCRIPTION,
278 LAST_UPDATE_DATE = p_LAST_UPDATE_DATE,
279 LAST_UPDATED_BY = p_LAST_UPDATED_BY,
280 LAST_UPDATE_LOGIN = p_LAST_UPDATE_LOGIN,
281 SOURCE_LANG = userenv('LANG')
282 where CALCULATION_RULE_ID = p_CALCULATION_RULE_ID
283 and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
284
285 if (sql%notfound) then
286 raise no_data_found;
287 end if;
288
289 END Update_Row;
290
291 PROCEDURE Delete_Row(
292 p_CALCULATION_RULE_ID NUMBER)
293 IS
294 BEGIN
295
296 delete from CSP_LOOP_CALC_RULES_TL
297 where CALCULATION_RULE_ID = p_CALCULATION_RULE_ID;
298
299 if (sql%notfound) then
300 raise no_data_found;
301 end if;
302
303 DELETE FROM CSP_LOOP_CALC_RULES_B
304 WHERE CALCULATION_RULE_ID = p_CALCULATION_RULE_ID;
305 If (SQL%NOTFOUND) then
306 RAISE NO_DATA_FOUND;
307 End If;
308 END Delete_Row;
309
310 PROCEDURE Lock_Row(
311 p_CALCULATION_RULE_ID NUMBER,
312 p_CREATED_BY NUMBER,
313 p_CREATION_DATE DATE,
314 p_LAST_UPDATED_BY NUMBER,
315 p_LAST_UPDATE_DATE DATE,
316 p_LAST_UPDATE_LOGIN NUMBER,
317 p_CALCULATION_RULE_NAME VARCHAR2,
318 p_INCLUDE_SALES_ORDERS VARCHAR2,
319 p_INCLUDE_MOVE_ORDERS VARCHAR2,
320 p_INCLUDE_REPAIR_ORDERS VARCHAR2,
321 p_INCLUDE_WORK_ORDERS VARCHAR2,
322 p_INCLUDE_PURCHASE_ORDERS VARCHAR2,
323 p_INCLUDE_REQUISITIONS VARCHAR2,
324 p_INCLUDE_INTERORG_TRANSFERS VARCHAR2,
325 p_INCLUDE_ONHAND_GOOD VARCHAR2,
326 p_INCLUDE_ONHAND_BAD VARCHAR2,
327 p_INCLUDE_INTRANSIT_MOVE_ORD VARCHAR2,
328 p_TOLERANCE_PERCENT NUMBER,
329 p_TIME_FENCE NUMBER,
330 p_INCLUDE_DOA VARCHAR2,
331 p_ROLLUP_SUPERCESSION VARCHAR2,
332 p_FORECAST_LOWER_SUPERCESSION VARCHAR2,
333 p_ATTRIBUTE_CATEGORY VARCHAR2,
334 p_ATTRIBUTE1 VARCHAR2,
335 p_ATTRIBUTE2 VARCHAR2,
336 p_ATTRIBUTE3 VARCHAR2,
337 p_ATTRIBUTE4 VARCHAR2,
338 p_ATTRIBUTE5 VARCHAR2,
339 p_ATTRIBUTE6 VARCHAR2,
340 p_ATTRIBUTE7 VARCHAR2,
341 p_ATTRIBUTE8 VARCHAR2,
342 p_ATTRIBUTE9 VARCHAR2,
343 p_ATTRIBUTE10 VARCHAR2,
344 p_ATTRIBUTE11 VARCHAR2,
345 p_ATTRIBUTE12 VARCHAR2,
346 p_ATTRIBUTE13 VARCHAR2,
347 p_ATTRIBUTE14 VARCHAR2,
348 p_ATTRIBUTE15 VARCHAR2,
349 p_DESCRIPTION VARCHAR2 )
350
351 IS
352 CURSOR C IS
353 SELECT *
354 FROM CSP_LOOP_CALC_RULES_B
355 WHERE CALCULATION_RULE_ID = p_CALCULATION_RULE_ID
356 FOR UPDATE of CALCULATION_RULE_ID NOWAIT;
357 Recinfo C%ROWTYPE;
358
359 cursor c1 is select
360 DESCRIPTION,
361 decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
362 from CSP_LOOP_CALC_RULES_TL
363 where CALCULATION_RULE_ID = p_CALCULATION_RULE_ID
364 and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
365 for update of CALCULATION_RULE_ID nowait;
366
367 BEGIN
368 OPEN C;
369 FETCH C INTO Recinfo;
370 If (C%NOTFOUND) then
371 CLOSE C;
372 FND_MESSAGE.SET_NAME('FND', 'FORM_RECORD_DELETED');
373 APP_EXCEPTION.RAISE_EXCEPTION;
374 End If;
375 CLOSE C;
376 if (
377 ( ( Recinfo.CALCULATION_RULE_ID = p_CALCULATION_RULE_ID)
378 OR ( ( Recinfo.CALCULATION_RULE_ID IS NULL )
379 AND ( p_CALCULATION_RULE_ID IS NULL )))
380 AND ( ( Recinfo.CREATED_BY = p_CREATED_BY)
381 OR ( ( Recinfo.CREATED_BY IS NULL )
382 AND ( p_CREATED_BY IS NULL )))
383 AND ( ( Recinfo.CREATION_DATE = p_CREATION_DATE)
384 OR ( ( Recinfo.CREATION_DATE IS NULL )
385 AND ( p_CREATION_DATE IS NULL )))
386 AND ( ( Recinfo.LAST_UPDATED_BY = p_LAST_UPDATED_BY)
387 OR ( ( Recinfo.LAST_UPDATED_BY IS NULL )
388 AND ( p_LAST_UPDATED_BY IS NULL )))
389 AND ( ( Recinfo.LAST_UPDATE_DATE = p_LAST_UPDATE_DATE)
390 OR ( ( Recinfo.LAST_UPDATE_DATE IS NULL )
391 AND ( p_LAST_UPDATE_DATE IS NULL )))
392 AND ( ( Recinfo.LAST_UPDATE_LOGIN = p_LAST_UPDATE_LOGIN)
393 OR ( ( Recinfo.LAST_UPDATE_LOGIN IS NULL )
394 AND ( p_LAST_UPDATE_LOGIN IS NULL )))
395 AND ( ( Recinfo.CALCULATION_RULE_NAME = p_CALCULATION_RULE_NAME)
396 OR ( ( Recinfo.CALCULATION_RULE_NAME IS NULL )
397 AND ( p_CALCULATION_RULE_NAME IS NULL )))
398 AND ( ( Recinfo.INCLUDE_SALES_ORDERS = p_INCLUDE_SALES_ORDERS)
399 OR ( ( Recinfo.INCLUDE_SALES_ORDERS IS NULL )
400 AND ( p_INCLUDE_SALES_ORDERS IS NULL )))
401 AND ( ( Recinfo.INCLUDE_MOVE_ORDERS = p_INCLUDE_MOVE_ORDERS)
402 OR ( ( Recinfo.INCLUDE_MOVE_ORDERS IS NULL )
403 AND ( p_INCLUDE_MOVE_ORDERS IS NULL )))
404 AND ( ( Recinfo.INCLUDE_REPAIR_ORDERS = p_INCLUDE_REPAIR_ORDERS)
405 OR ( ( Recinfo.INCLUDE_REPAIR_ORDERS IS NULL )
406 AND ( p_INCLUDE_REPAIR_ORDERS IS NULL )))
407 AND ( ( Recinfo.INCLUDE_WORK_ORDERS = p_INCLUDE_WORK_ORDERS)
408 OR ( ( Recinfo.INCLUDE_WORK_ORDERS IS NULL )
409 AND ( p_INCLUDE_WORK_ORDERS IS NULL )))
410 AND ( ( Recinfo.INCLUDE_PURCHASE_ORDERS = p_INCLUDE_PURCHASE_ORDERS)
411 OR ( ( Recinfo.INCLUDE_PURCHASE_ORDERS IS NULL )
412 AND ( p_INCLUDE_PURCHASE_ORDERS IS NULL )))
413 AND ( ( Recinfo.INCLUDE_REQUISITIONS = p_INCLUDE_REQUISITIONS)
414 OR ( ( Recinfo.INCLUDE_REQUISITIONS IS NULL )
415 AND ( p_INCLUDE_REQUISITIONS IS NULL )))
416 AND ( ( Recinfo.INCLUDE_INTERORG_TRANSFERS = p_INCLUDE_INTERORG_TRANSFERS)
417 OR ( ( Recinfo.INCLUDE_INTERORG_TRANSFERS IS NULL )
418 AND ( p_INCLUDE_INTERORG_TRANSFERS IS NULL )))
419 AND ( ( Recinfo.INCLUDE_ONHAND_GOOD = p_INCLUDE_ONHAND_GOOD)
420 OR ( ( Recinfo.INCLUDE_ONHAND_GOOD IS NULL )
421 AND ( p_INCLUDE_ONHAND_GOOD IS NULL )))
422 AND ( ( Recinfo.INCLUDE_ONHAND_BAD = p_INCLUDE_ONHAND_BAD)
423 OR ( ( Recinfo.INCLUDE_ONHAND_BAD IS NULL )
424 AND ( p_INCLUDE_ONHAND_BAD IS NULL )))
425 AND ( ( Recinfo.INCLUDE_INTRANSIT_MOVE_ORDERS = p_INCLUDE_INTRANSIT_MOVE_ORD)
426 OR ( ( Recinfo.INCLUDE_INTRANSIT_MOVE_ORDERS IS NULL )
427 AND ( p_INCLUDE_INTRANSIT_MOVE_ORD IS NULL )))
428 AND ( ( Recinfo.TOLERANCE_PERCENT = p_TOLERANCE_PERCENT)
429 OR ( ( Recinfo.TOLERANCE_PERCENT IS NULL )
430 AND ( p_TOLERANCE_PERCENT IS NULL )))
431 AND ( ( Recinfo.TIME_FENCE = p_TIME_FENCE)
432 OR ( ( Recinfo.TIME_FENCE IS NULL )
433 AND ( p_TIME_FENCE IS NULL )))
434 AND ( ( Recinfo.INCLUDE_DOA = p_INCLUDE_DOA)
435 OR ( ( Recinfo.INCLUDE_DOA IS NULL )
436 AND ( p_INCLUDE_DOA IS NULL )))
437 AND ( ( Recinfo.ROLLUP_SUPERCESSION = p_ROLLUP_SUPERCESSION)
438 OR ( ( Recinfo.ROLLUP_SUPERCESSION IS NULL )
439 AND ( p_ROLLUP_SUPERCESSION IS NULL )))
440 AND ( ( Recinfo.FORECAST_LOWER_SUPERCESSION = p_FORECAST_LOWER_SUPERCESSION)
441 OR ( ( Recinfo.FORECAST_LOWER_SUPERCESSION IS NULL )
442 AND ( p_FORECAST_LOWER_SUPERCESSION IS NULL )))
443 AND ( ( Recinfo.ATTRIBUTE_CATEGORY = p_ATTRIBUTE_CATEGORY)
444 OR ( ( Recinfo.ATTRIBUTE_CATEGORY IS NULL )
445 AND ( p_ATTRIBUTE_CATEGORY IS NULL )))
446 AND ( ( Recinfo.ATTRIBUTE1 = p_ATTRIBUTE1)
447 OR ( ( Recinfo.ATTRIBUTE1 IS NULL )
448 AND ( p_ATTRIBUTE1 IS NULL )))
449 AND ( ( Recinfo.ATTRIBUTE2 = p_ATTRIBUTE2)
450 OR ( ( Recinfo.ATTRIBUTE2 IS NULL )
451 AND ( p_ATTRIBUTE2 IS NULL )))
452 AND ( ( Recinfo.ATTRIBUTE3 = p_ATTRIBUTE3)
453 OR ( ( Recinfo.ATTRIBUTE3 IS NULL )
454 AND ( p_ATTRIBUTE3 IS NULL )))
455 AND ( ( Recinfo.ATTRIBUTE4 = p_ATTRIBUTE4)
456 OR ( ( Recinfo.ATTRIBUTE4 IS NULL )
457 AND ( p_ATTRIBUTE4 IS NULL )))
458 AND ( ( Recinfo.ATTRIBUTE5 = p_ATTRIBUTE5)
459 OR ( ( Recinfo.ATTRIBUTE5 IS NULL )
460 AND ( p_ATTRIBUTE5 IS NULL )))
461 AND ( ( Recinfo.ATTRIBUTE6 = p_ATTRIBUTE6)
462 OR ( ( Recinfo.ATTRIBUTE6 IS NULL )
463 AND ( p_ATTRIBUTE6 IS NULL )))
464 AND ( ( Recinfo.ATTRIBUTE7 = p_ATTRIBUTE7)
465 OR ( ( Recinfo.ATTRIBUTE7 IS NULL )
466 AND ( p_ATTRIBUTE7 IS NULL )))
467 AND ( ( Recinfo.ATTRIBUTE8 = p_ATTRIBUTE8)
468 OR ( ( Recinfo.ATTRIBUTE8 IS NULL )
469 AND ( p_ATTRIBUTE8 IS NULL )))
470 AND ( ( Recinfo.ATTRIBUTE9 = p_ATTRIBUTE9)
471 OR ( ( Recinfo.ATTRIBUTE9 IS NULL )
472 AND ( p_ATTRIBUTE9 IS NULL )))
473 AND ( ( Recinfo.ATTRIBUTE10 = p_ATTRIBUTE10)
474 OR ( ( Recinfo.ATTRIBUTE10 IS NULL )
475 AND ( p_ATTRIBUTE10 IS NULL )))
476 AND ( ( Recinfo.ATTRIBUTE11 = p_ATTRIBUTE11)
477 OR ( ( Recinfo.ATTRIBUTE11 IS NULL )
478 AND ( p_ATTRIBUTE11 IS NULL )))
479 AND ( ( Recinfo.ATTRIBUTE12 = p_ATTRIBUTE12)
480 OR ( ( Recinfo.ATTRIBUTE12 IS NULL )
481 AND ( p_ATTRIBUTE12 IS NULL )))
482 AND ( ( Recinfo.ATTRIBUTE13 = p_ATTRIBUTE13)
483 OR ( ( Recinfo.ATTRIBUTE13 IS NULL )
484 AND ( p_ATTRIBUTE13 IS NULL )))
485 AND ( ( Recinfo.ATTRIBUTE14 = p_ATTRIBUTE14)
486 OR ( ( Recinfo.ATTRIBUTE14 IS NULL )
487 AND ( p_ATTRIBUTE14 IS NULL )))
488 AND ( ( Recinfo.ATTRIBUTE15 = p_ATTRIBUTE15)
489 OR ( ( Recinfo.ATTRIBUTE15 IS NULL )
490 AND ( p_ATTRIBUTE15 IS NULL )))
491
492 ) then
493 null;
494 else
495 FND_MESSAGE.SET_NAME('FND', 'FORM_RECORD_CHANGED');
496 APP_EXCEPTION.RAISE_EXCEPTION;
497 End If;
498
499 for tlinfo in c1 loop
500 if (tlinfo.BASELANG = 'Y') then
501 if ( ((tlinfo.DESCRIPTION = P_DESCRIPTION)
502 OR ((tlinfo.DESCRIPTION is null) AND (p_DESCRIPTION is null)))
503 ) then
504 null;
505 else
506 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
507 app_exception.raise_exception;
508 end if;
509 end if;
510 end loop;
511 return;
512
513 END Lock_Row;
514
515 procedure ADD_LANGUAGE
516 is
517 begin
518 delete from CSP_LOOP_CALC_RULES_TL T
519 where not exists
520 (select NULL
521 from CSP_LOOP_CALC_RULES_B B
522 where B.CALCULATION_RULE_ID = T.CALCULATION_RULE_ID
523 );
524
525 update CSP_LOOP_CALC_RULES_TL T set (
526 DESCRIPTION
527 ) = (select
528 B.DESCRIPTION
529 from CSP_LOOP_CALC_RULES_TL B
530 where B.calculation_rule_id = T.calculation_rule_id
531 and B.LANGUAGE = T.SOURCE_LANG)
532 where (
533 T.calculation_rule_id,
534 T.LANGUAGE
535 ) in (select
536 SUBT.calculation_rule_id,
537 SUBT.LANGUAGE
538 from CSP_LOOP_CALC_RULES_TL SUBB, CSP_LOOP_CALC_RULES_TL SUBT
539 where SUBB.calculation_rule_id = SUBT.calculation_rule_id
540 and SUBB.LANGUAGE = SUBT.SOURCE_LANG
541 and (SUBB.DESCRIPTION <> SUBT.DESCRIPTION
542 or (SUBB.DESCRIPTION is null and SUBT.DESCRIPTION is not null)
543 or (SUBB.DESCRIPTION is not null and SUBT.DESCRIPTION is null)
544 ));
545
546 insert into CSP_LOOP_CALC_RULES_TL (
547 calculation_rule_id,
548 CREATED_BY,
549 CREATION_DATE,
550 LAST_UPDATED_BY,
551 LAST_UPDATE_DATE,
552 LAST_UPDATE_LOGIN,
553 DESCRIPTION,
554 LANGUAGE,
555 SOURCE_LANG
556 ) select
557 B.calculation_rule_id,
558 B.CREATED_BY,
559 B.CREATION_DATE,
560 B.LAST_UPDATED_BY,
561 B.LAST_UPDATE_DATE,
562 B.LAST_UPDATE_LOGIN,
563 B.DESCRIPTION,
564 L.LANGUAGE_CODE,
565 B.SOURCE_LANG
566 from CSP_LOOP_CALC_RULES_TL B, FND_LANGUAGES L
567 where L.INSTALLED_FLAG in ('I', 'B')
568 and B.LANGUAGE = userenv('LANG')
569 and not exists
570 (select NULL
571 from CSP_LOOP_CALC_RULES_TL T
572 where T.calculation_rule_id = B.calculation_rule_id
573 and T.LANGUAGE = L.LANGUAGE_CODE);
574 end ADD_LANGUAGE;
575
576 PROCEDURE Translate_Row
577 ( p_calculation_rule_id IN NUMBER
578 , p_description IN VARCHAR2
579 , p_owner IN VARCHAR2
580 )
581 IS
582 l_user_id NUMBER := 0;
583 BEGIN
584
585 if p_owner = 'SEED' then
586 l_user_id := 1;
587 end if;
588
589 UPDATE csp_loop_calc_rules_tl
590 SET description = p_description
591 , last_update_date = SYSDATE
592 , last_updated_by = l_user_id
593 , last_update_login = 0
594 , source_lang = userenv('LANG')
595 WHERE calculation_rule_id = p_calculation_rule_id
596 AND userenv('LANG') in (LANGUAGE, SOURCE_LANG);
597
598 EXCEPTION
599 WHEN OTHERS THEN
600 IF FND_MSG_PUB.Check_Msg_level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
601 THEN
602 FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME, 'Translate_Row');
603 END IF;
604 RAISE;
605
606 END Translate_Row;
607
608 PROCEDURE Load_Row
609 ( p_calculation_rule_id IN NUMBER
610 , p_description IN VARCHAR2
611 , p_owner IN VARCHAR2
612 )
613 IS
614
615 l_calculation_rule_id VARCHAR2(20);
616 l_user_id NUMBER := 0;
617
618 BEGIN
619
620 -- assign user ID
621 if p_owner = 'SEED' then
622 l_user_id := 1; --SEED
623 end if;
624
625 BEGIN
626 -- update row if present
627 Update_Row(
628 p_CALCULATION_RULE_ID => p_calculation_rule_id,
629 p_CREATED_BY => FND_API.G_MISS_NUM,
630 p_CREATION_DATE => FND_API.G_MISS_DATE,
631 p_LAST_UPDATED_BY => l_user_id,
632 p_LAST_UPDATE_DATE => SYSDATE,
633 p_LAST_UPDATE_LOGIN => 0,
634 p_CALCULATION_RULE_NAME => FND_API.G_MISS_CHAR,
635 p_INCLUDE_SALES_ORDERS => FND_API.G_MISS_CHAR,
636 p_INCLUDE_MOVE_ORDERS => FND_API.G_MISS_CHAR,
637 p_INCLUDE_REPAIR_ORDERS => FND_API.G_MISS_CHAR,
638 p_INCLUDE_WORK_ORDERS => FND_API.G_MISS_CHAR,
639 p_INCLUDE_PURCHASE_ORDERS => FND_API.G_MISS_CHAR,
640 p_INCLUDE_REQUISITIONS => FND_API.G_MISS_CHAR,
641 p_INCLUDE_INTERORG_TRANSFERS => FND_API.G_MISS_CHAR,
642 p_INCLUDE_ONHAND_GOOD => FND_API.G_MISS_CHAR,
643 p_INCLUDE_ONHAND_BAD => FND_API.G_MISS_CHAR,
644 p_INCLUDE_INTRANSIT_MOVE_ORD => FND_API.G_MISS_CHAR,
645 p_TOLERANCE_PERCENT => FND_API.G_MISS_NUM,
646 p_TIME_FENCE => FND_API.G_MISS_NUM,
647 p_INCLUDE_DOA => FND_API.G_MISS_CHAR,
648 p_ROLLUP_SUPERCESSION => FND_API.G_MISS_CHAR,
649 p_FORECAST_LOWER_SUPERCESSION => FND_API.G_MISS_CHAR,
650 p_ATTRIBUTE_CATEGORY => FND_API.G_MISS_CHAR,
651 p_ATTRIBUTE1 => FND_API.G_MISS_CHAR,
652 p_ATTRIBUTE2 => FND_API.G_MISS_CHAR,
653 p_ATTRIBUTE3 => FND_API.G_MISS_CHAR,
654 p_ATTRIBUTE4 => FND_API.G_MISS_CHAR,
655 p_ATTRIBUTE5 => FND_API.G_MISS_CHAR,
656 p_ATTRIBUTE6 => FND_API.G_MISS_CHAR,
657 p_ATTRIBUTE7 => FND_API.G_MISS_CHAR,
658 p_ATTRIBUTE8 => FND_API.G_MISS_CHAR,
659 p_ATTRIBUTE9 => FND_API.G_MISS_CHAR,
660 p_ATTRIBUTE10 => FND_API.G_MISS_CHAR,
661 p_ATTRIBUTE11 => FND_API.G_MISS_CHAR,
662 p_ATTRIBUTE12 => FND_API.G_MISS_CHAR,
663 p_ATTRIBUTE13 => FND_API.G_MISS_CHAR,
664 p_ATTRIBUTE14 => FND_API.G_MISS_CHAR,
665 p_ATTRIBUTE15 => FND_API.G_MISS_CHAR,
666 p_DESCRIPTION => p_description);
667 EXCEPTION
668 WHEN NO_DATA_FOUND THEN
669 -- insert row
670 Insert_Row(
671 px_CALCULATION_RULE_ID => l_calculation_rule_id,
672 p_CREATED_BY => FND_API.G_MISS_NUM,
673 p_CREATION_DATE => FND_API.G_MISS_DATE,
674 p_LAST_UPDATED_BY => l_user_id,
675 p_LAST_UPDATE_DATE => SYSDATE,
676 p_LAST_UPDATE_LOGIN => 0,
677 p_CALCULATION_RULE_NAME => FND_API.G_MISS_CHAR,
678 p_INCLUDE_SALES_ORDERS => FND_API.G_MISS_CHAR,
679 p_INCLUDE_MOVE_ORDERS => FND_API.G_MISS_CHAR,
680 p_INCLUDE_REPAIR_ORDERS => FND_API.G_MISS_CHAR,
681 p_INCLUDE_WORK_ORDERS => FND_API.G_MISS_CHAR,
682 p_INCLUDE_PURCHASE_ORDERS => FND_API.G_MISS_CHAR,
683 p_INCLUDE_REQUISITIONS => FND_API.G_MISS_CHAR,
684 p_INCLUDE_INTERORG_TRANSFERS => FND_API.G_MISS_CHAR,
685 p_INCLUDE_ONHAND_GOOD => FND_API.G_MISS_CHAR,
686 p_INCLUDE_ONHAND_BAD => FND_API.G_MISS_CHAR,
687 p_INCLUDE_INTRANSIT_MOVE_ORD => FND_API.G_MISS_CHAR,
688 p_TOLERANCE_PERCENT => FND_API.G_MISS_NUM,
689 p_TIME_FENCE => FND_API.G_MISS_NUM,
690 p_INCLUDE_DOA => FND_API.G_MISS_CHAR,
691 p_ROLLUP_SUPERCESSION => FND_API.G_MISS_CHAR,
692 p_FORECAST_LOWER_SUPERCESSION => FND_API.G_MISS_CHAR,
693 p_ATTRIBUTE_CATEGORY => FND_API.G_MISS_CHAR,
694 p_ATTRIBUTE1 => FND_API.G_MISS_CHAR,
695 p_ATTRIBUTE2 => FND_API.G_MISS_CHAR,
696 p_ATTRIBUTE3 => FND_API.G_MISS_CHAR,
697 p_ATTRIBUTE4 => FND_API.G_MISS_CHAR,
698 p_ATTRIBUTE5 => FND_API.G_MISS_CHAR,
699 p_ATTRIBUTE6 => FND_API.G_MISS_CHAR,
700 p_ATTRIBUTE7 => FND_API.G_MISS_CHAR,
701 p_ATTRIBUTE8 => FND_API.G_MISS_CHAR,
702 p_ATTRIBUTE9 => FND_API.G_MISS_CHAR,
703 p_ATTRIBUTE10 => FND_API.G_MISS_CHAR,
704 p_ATTRIBUTE11 => FND_API.G_MISS_CHAR,
705 p_ATTRIBUTE12 => FND_API.G_MISS_CHAR,
706 p_ATTRIBUTE13 => FND_API.G_MISS_CHAR,
707 p_ATTRIBUTE14 => FND_API.G_MISS_CHAR,
708 p_ATTRIBUTE15 => FND_API.G_MISS_CHAR,
709 p_DESCRIPTION => p_description);
710 END;
711
712 EXCEPTION
713 WHEN OTHERS THEN
714 IF FND_MSG_PUB.Check_Msg_level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
715 THEN
716 FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME, 'Load_Row');
717 END IF;
718 RAISE;
719
720 END Load_Row;
721
722 End CSP_LOOP_CALC_RULES_B_PKG;