[Home] [Help]
PACKAGE BODY: APPS.CSP_EXCESS_RULES_B_PKG
Source
1 PACKAGE BODY CSP_EXCESS_RULES_B_PKG as
2 /* $Header: csptexrb.pls 115.5 2002/11/26 07:26:56 hhaugeru noship $ */
3 -- Start of Comments
4 -- Package name : CSP_EXCESS_RULES_B_PKG
5 -- Purpose :
6 -- History :
7 -- NOTE :
8 -- End of Comments
9
10
11
12 G_PKG_NAME CONSTANT VARCHAR2(30):= 'CSP_EXCESS_RULES_B_PKG';
13 G_FILE_NAME CONSTANT VARCHAR2(12) := 'csptexrb.pls';
14
15 PROCEDURE Insert_Row(
16 px_EXCESS_RULE_ID IN OUT NOCOPY NUMBER,
17 p_CREATED_BY NUMBER,
18 p_CREATION_DATE DATE,
19 p_LAST_UPDATED_BY NUMBER,
20 p_LAST_UPDATE_DATE DATE,
21 p_LAST_UPDATE_LOGIN NUMBER,
22 p_EXCESS_RULE_NAME VARCHAR2,
23 p_TOTAL_MAX_EXCESS NUMBER,
24 p_LINE_MAX_EXCESS NUMBER,
25 p_DAYS_SINCE_RECEIPT NUMBER,
26 p_TOTAL_EXCESS_VALUE NUMBER,
27 p_TOP_EXCESS_LINES NUMBER,
28 p_CATEGORY_SET_ID NUMBER,
29 p_CATEGORY_ID NUMBER,
30 p_ATTRIBUTE_CATEGORY VARCHAR2,
31 p_ATTRIBUTE1 VARCHAR2,
32 p_ATTRIBUTE2 VARCHAR2,
33 p_ATTRIBUTE3 VARCHAR2,
34 p_ATTRIBUTE4 VARCHAR2,
35 p_ATTRIBUTE5 VARCHAR2,
36 p_ATTRIBUTE6 VARCHAR2,
37 p_ATTRIBUTE7 VARCHAR2,
38 p_ATTRIBUTE8 VARCHAR2,
39 p_ATTRIBUTE9 VARCHAR2,
40 p_ATTRIBUTE10 VARCHAR2,
41 p_ATTRIBUTE11 VARCHAR2,
42 p_ATTRIBUTE12 VARCHAR2,
43 p_ATTRIBUTE13 VARCHAR2,
44 p_ATTRIBUTE14 VARCHAR2,
45 p_ATTRIBUTE15 VARCHAR2,
46 p_DESCRIPTION VARCHAR2)
47 IS
48 CURSOR C2 IS SELECT CSP_EXCESS_RULES_B_S1.nextval FROM sys.dual;
49 BEGIN
50 If (px_EXCESS_RULE_ID IS NULL) OR (px_EXCESS_RULE_ID = FND_API.G_MISS_NUM) then
51 OPEN C2;
52 FETCH C2 INTO px_EXCESS_RULE_ID;
53 CLOSE C2;
54 End If;
55 INSERT INTO CSP_EXCESS_RULES_B(
56 EXCESS_RULE_ID,
57 CREATED_BY,
58 CREATION_DATE,
59 LAST_UPDATED_BY,
60 LAST_UPDATE_DATE,
61 LAST_UPDATE_LOGIN,
62 EXCESS_RULE_NAME,
63 TOTAL_MAX_EXCESS,
64 LINE_MAX_EXCESS,
65 DAYS_SINCE_RECEIPT,
66 TOTAL_EXCESS_VALUE,
67 TOP_EXCESS_LINES,
68 CATEGORY_SET_ID,
69 CATEGORY_ID,
70 ATTRIBUTE_CATEGORY,
71 ATTRIBUTE1,
72 ATTRIBUTE2,
73 ATTRIBUTE3,
74 ATTRIBUTE4,
75 ATTRIBUTE5,
76 ATTRIBUTE6,
77 ATTRIBUTE7,
78 ATTRIBUTE8,
79 ATTRIBUTE9,
80 ATTRIBUTE10,
81 ATTRIBUTE11,
82 ATTRIBUTE12,
83 ATTRIBUTE13,
84 ATTRIBUTE14,
85 ATTRIBUTE15
86 ) VALUES (
87 px_EXCESS_RULE_ID,
88 decode( p_CREATED_BY, FND_API.G_MISS_NUM, NULL, p_CREATED_BY),
89 decode( p_CREATION_DATE, FND_API.G_MISS_DATE, TO_DATE(NULL), p_CREATION_DATE),
90 decode( p_LAST_UPDATED_BY, FND_API.G_MISS_NUM, NULL, p_LAST_UPDATED_BY),
91 decode( p_LAST_UPDATE_DATE, FND_API.G_MISS_DATE, TO_DATE(NULL), p_LAST_UPDATE_DATE),
92 decode( p_LAST_UPDATE_LOGIN, FND_API.G_MISS_NUM, NULL, p_LAST_UPDATE_LOGIN),
93 decode( p_EXCESS_RULE_NAME, FND_API.G_MISS_CHAR, NULL, p_EXCESS_RULE_NAME),
94 decode( p_TOTAL_MAX_EXCESS, FND_API.G_MISS_NUM, NULL, p_TOTAL_MAX_EXCESS),
95 decode( p_LINE_MAX_EXCESS, FND_API.G_MISS_NUM, NULL, p_LINE_MAX_EXCESS),
96 decode( p_DAYS_SINCE_RECEIPT, FND_API.G_MISS_NUM, NULL, p_DAYS_SINCE_RECEIPT),
97 decode( p_TOTAL_EXCESS_VALUE, FND_API.G_MISS_NUM, NULL, p_TOTAL_EXCESS_VALUE),
98 decode( p_TOP_EXCESS_LINES, FND_API.G_MISS_NUM, NULL, p_TOP_EXCESS_LINES),
99 decode( p_CATEGORY_SET_ID, FND_API.G_MISS_NUM, NULL, p_CATEGORY_SET_ID),
100 decode( p_CATEGORY_ID, FND_API.G_MISS_NUM, NULL, p_CATEGORY_ID),
101 decode( p_ATTRIBUTE_CATEGORY, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE_CATEGORY),
102 decode( p_ATTRIBUTE1, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE1),
103 decode( p_ATTRIBUTE2, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE2),
104 decode( p_ATTRIBUTE3, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE3),
105 decode( p_ATTRIBUTE4, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE4),
106 decode( p_ATTRIBUTE5, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE5),
107 decode( p_ATTRIBUTE6, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE6),
108 decode( p_ATTRIBUTE7, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE7),
109 decode( p_ATTRIBUTE8, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE8),
110 decode( p_ATTRIBUTE9, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE9),
111 decode( p_ATTRIBUTE10, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE10),
112 decode( p_ATTRIBUTE11, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE11),
113 decode( p_ATTRIBUTE12, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE12),
114 decode( p_ATTRIBUTE13, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE13),
115 decode( p_ATTRIBUTE14, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE14),
116 decode( p_ATTRIBUTE15, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE15));
117 insert into CSP_EXCESS_RULES_TL (
118 EXCESS_RULE_ID,
119 CREATED_BY,
120 CREATION_DATE,
121 LAST_UPDATED_BY,
122 LAST_UPDATE_DATE,
123 LAST_UPDATE_LOGIN,
124 DESCRIPTION,
125 LANGUAGE,
126 SOURCE_LANG
127 ) select
128 pX_EXCESS_RULE_ID,
129 p_CREATED_BY,
130 p_CREATION_DATE,
131 p_LAST_UPDATED_BY,
132 p_last_update_DATE,
133 p_LAST_UPDATE_LOGIN,
134 p_DESCRIPTION,
135 L.LANGUAGE_CODE,
136 userenv('LANG')
137 from FND_LANGUAGES L
138 where L.INSTALLED_FLAG in ('I', 'B')
139 and not exists
140 (select NULL
141 from CSP_EXCESS_RULES_TL T
142 where T.EXCESS_RULE_ID = pX_EXCESS_RULE_ID
143 and T.LANGUAGE = L.LANGUAGE_CODE);
144
145 End Insert_Row;
146
147 PROCEDURE Update_Row(
148 p_EXCESS_RULE_ID NUMBER,
149 p_CREATED_BY NUMBER,
150 p_CREATION_DATE DATE,
151 p_LAST_UPDATED_BY NUMBER,
152 p_LAST_UPDATE_DATE DATE,
153 p_LAST_UPDATE_LOGIN NUMBER,
154 p_EXCESS_RULE_NAME VARCHAR2,
155 p_TOTAL_MAX_EXCESS NUMBER,
156 p_LINE_MAX_EXCESS NUMBER,
157 p_DAYS_SINCE_RECEIPT NUMBER,
158 p_TOTAL_EXCESS_VALUE NUMBER,
159 p_TOP_EXCESS_LINES NUMBER,
160 p_CATEGORY_SET_ID NUMBER,
161 p_CATEGORY_ID NUMBER,
162 p_ATTRIBUTE_CATEGORY VARCHAR2,
163 p_ATTRIBUTE1 VARCHAR2,
164 p_ATTRIBUTE2 VARCHAR2,
165 p_ATTRIBUTE3 VARCHAR2,
166 p_ATTRIBUTE4 VARCHAR2,
167 p_ATTRIBUTE5 VARCHAR2,
168 p_ATTRIBUTE6 VARCHAR2,
169 p_ATTRIBUTE7 VARCHAR2,
170 p_ATTRIBUTE8 VARCHAR2,
171 p_ATTRIBUTE9 VARCHAR2,
172 p_ATTRIBUTE10 VARCHAR2,
173 p_ATTRIBUTE11 VARCHAR2,
174 p_ATTRIBUTE12 VARCHAR2,
175 p_ATTRIBUTE13 VARCHAR2,
176 p_ATTRIBUTE14 VARCHAR2,
177 p_ATTRIBUTE15 VARCHAR2,
178 p_DESCRIPTION VARCHAR2)
179 IS
180 BEGIN
181 Update CSP_EXCESS_RULES_B
182 SET
183 CREATED_BY = decode( p_CREATED_BY, FND_API.G_MISS_NUM, CREATED_BY, p_CREATED_BY),
184 CREATION_DATE = decode( p_CREATION_DATE, FND_API.G_MISS_DATE, CREATION_DATE, p_CREATION_DATE),
185 LAST_UPDATED_BY = decode( p_LAST_UPDATED_BY, FND_API.G_MISS_NUM, LAST_UPDATED_BY, p_LAST_UPDATED_BY),
186 LAST_UPDATE_DATE = decode( p_LAST_UPDATE_DATE, FND_API.G_MISS_DATE, LAST_UPDATE_DATE, p_LAST_UPDATE_DATE),
187 LAST_UPDATE_LOGIN = decode( p_LAST_UPDATE_LOGIN, FND_API.G_MISS_NUM, LAST_UPDATE_LOGIN, p_LAST_UPDATE_LOGIN),
188 EXCESS_RULE_NAME = decode( p_EXCESS_RULE_NAME, FND_API.G_MISS_CHAR, EXCESS_RULE_NAME, p_EXCESS_RULE_NAME),
189 TOTAL_MAX_EXCESS = decode( p_TOTAL_MAX_EXCESS, FND_API.G_MISS_NUM, TOTAL_MAX_EXCESS, p_TOTAL_MAX_EXCESS),
190 LINE_MAX_EXCESS = decode( p_LINE_MAX_EXCESS, FND_API.G_MISS_NUM, LINE_MAX_EXCESS, p_LINE_MAX_EXCESS),
191 DAYS_SINCE_RECEIPT = decode( p_DAYS_SINCE_RECEIPT, FND_API.G_MISS_NUM, DAYS_SINCE_RECEIPT, p_DAYS_SINCE_RECEIPT),
192 TOTAL_EXCESS_VALUE = decode( p_TOTAL_EXCESS_VALUE, FND_API.G_MISS_NUM, TOTAL_EXCESS_VALUE, p_TOTAL_EXCESS_VALUE),
193 TOP_EXCESS_LINES = decode( p_TOP_EXCESS_LINES, FND_API.G_MISS_NUM, TOP_EXCESS_LINES, p_TOP_EXCESS_LINES),
194 CATEGORY_SET_ID = decode( p_CATEGORY_SET_ID, FND_API.G_MISS_NUM, CATEGORY_SET_ID, p_CATEGORY_SET_ID),
195 CATEGORY_ID = decode( p_CATEGORY_ID, FND_API.G_MISS_NUM, CATEGORY_ID, p_CATEGORY_ID),
196 ATTRIBUTE_CATEGORY = decode( p_ATTRIBUTE_CATEGORY, FND_API.G_MISS_CHAR, ATTRIBUTE_CATEGORY, p_ATTRIBUTE_CATEGORY),
197 ATTRIBUTE1 = decode( p_ATTRIBUTE1, FND_API.G_MISS_CHAR, ATTRIBUTE1, p_ATTRIBUTE1),
198 ATTRIBUTE2 = decode( p_ATTRIBUTE2, FND_API.G_MISS_CHAR, ATTRIBUTE2, p_ATTRIBUTE2),
199 ATTRIBUTE3 = decode( p_ATTRIBUTE3, FND_API.G_MISS_CHAR, ATTRIBUTE3, p_ATTRIBUTE3),
200 ATTRIBUTE4 = decode( p_ATTRIBUTE4, FND_API.G_MISS_CHAR, ATTRIBUTE4, p_ATTRIBUTE4),
201 ATTRIBUTE5 = decode( p_ATTRIBUTE5, FND_API.G_MISS_CHAR, ATTRIBUTE5, p_ATTRIBUTE5),
202 ATTRIBUTE6 = decode( p_ATTRIBUTE6, FND_API.G_MISS_CHAR, ATTRIBUTE6, p_ATTRIBUTE6),
203 ATTRIBUTE7 = decode( p_ATTRIBUTE7, FND_API.G_MISS_CHAR, ATTRIBUTE7, p_ATTRIBUTE7),
204 ATTRIBUTE8 = decode( p_ATTRIBUTE8, FND_API.G_MISS_CHAR, ATTRIBUTE8, p_ATTRIBUTE8),
205 ATTRIBUTE9 = decode( p_ATTRIBUTE9, FND_API.G_MISS_CHAR, ATTRIBUTE9, p_ATTRIBUTE9),
206 ATTRIBUTE10 = decode( p_ATTRIBUTE10, FND_API.G_MISS_CHAR, ATTRIBUTE10, p_ATTRIBUTE10),
207 ATTRIBUTE11 = decode( p_ATTRIBUTE11, FND_API.G_MISS_CHAR, ATTRIBUTE11, p_ATTRIBUTE11),
208 ATTRIBUTE12 = decode( p_ATTRIBUTE12, FND_API.G_MISS_CHAR, ATTRIBUTE12, p_ATTRIBUTE12),
209 ATTRIBUTE13 = decode( p_ATTRIBUTE13, FND_API.G_MISS_CHAR, ATTRIBUTE13, p_ATTRIBUTE13),
210 ATTRIBUTE14 = decode( p_ATTRIBUTE14, FND_API.G_MISS_CHAR, ATTRIBUTE14, p_ATTRIBUTE14),
211 ATTRIBUTE15 = decode( p_ATTRIBUTE15, FND_API.G_MISS_CHAR, ATTRIBUTE15, p_ATTRIBUTE15)
212 where EXCESS_RULE_ID = p_EXCESS_RULE_ID;
213
214 If (SQL%NOTFOUND) then
215 RAISE NO_DATA_FOUND;
216 End If;
217
218 update CSP_EXCESS_RULES_TL set
219 DESCRIPTION = p_DESCRIPTION,
220 LAST_UPDATE_DATE = p_last_update_DATE,
221 LAST_UPDATED_BY = p_LAST_UPDATED_BY,
222 LAST_UPDATE_LOGIN = p_LAST_UPDATE_LOGIN,
223 SOURCE_LANG = userenv('LANG')
224 where EXCESS_RULE_ID = p_EXCESS_RULE_ID
225 and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
226
227 if (sql%notfound) then
228 raise no_data_found;
229 end if;
230 END Update_Row;
231
232 PROCEDURE Delete_Row(
233 p_EXCESS_RULE_ID NUMBER)
234 IS
235 BEGIN
236 DELETE FROM CSP_EXCESS_RULES_B
237 WHERE EXCESS_RULE_ID = p_EXCESS_RULE_ID;
238 If (SQL%NOTFOUND) then
239 RAISE NO_DATA_FOUND;
240 End If;
241 DELETE FROM CSP_EXCESS_RULES_TL
242 WHERE EXCESS_RULE_ID = p_EXCESS_RULE_ID;
243 If (SQL%NOTFOUND) then
244 RAISE NO_DATA_FOUND;
245 End If;
246 END Delete_Row;
247
248 PROCEDURE Lock_Row(
249 p_EXCESS_RULE_ID NUMBER,
250 p_CREATED_BY NUMBER,
251 p_CREATION_DATE DATE,
252 p_LAST_UPDATED_BY NUMBER,
253 p_LAST_UPDATE_DATE DATE,
254 p_LAST_UPDATE_LOGIN NUMBER,
255 p_EXCESS_RULE_NAME VARCHAR2,
256 p_TOTAL_MAX_EXCESS NUMBER,
257 p_LINE_MAX_EXCESS NUMBER,
258 p_DAYS_SINCE_RECEIPT NUMBER,
259 p_TOTAL_EXCESS_VALUE NUMBER,
260 p_TOP_EXCESS_LINES NUMBER,
261 p_CATEGORY_SET_ID NUMBER,
262 p_CATEGORY_ID NUMBER,
263 p_ATTRIBUTE_CATEGORY VARCHAR2,
264 p_ATTRIBUTE1 VARCHAR2,
265 p_ATTRIBUTE2 VARCHAR2,
266 p_ATTRIBUTE3 VARCHAR2,
267 p_ATTRIBUTE4 VARCHAR2,
268 p_ATTRIBUTE5 VARCHAR2,
269 p_ATTRIBUTE6 VARCHAR2,
270 p_ATTRIBUTE7 VARCHAR2,
271 p_ATTRIBUTE8 VARCHAR2,
272 p_ATTRIBUTE9 VARCHAR2,
273 p_ATTRIBUTE10 VARCHAR2,
274 p_ATTRIBUTE11 VARCHAR2,
275 p_ATTRIBUTE12 VARCHAR2,
276 p_ATTRIBUTE13 VARCHAR2,
277 p_ATTRIBUTE14 VARCHAR2,
278 p_ATTRIBUTE15 VARCHAR2,
279 p_DESCRIPTION VARCHAR2)
280 IS
281 CURSOR C IS
282 SELECT *
283 FROM CSP_EXCESS_RULES_B
284 WHERE EXCESS_RULE_ID = p_EXCESS_RULE_ID
285 FOR UPDATE of EXCESS_RULE_ID NOWAIT;
286 CURSOR c1 is select
287 DESCRIPTION,
288 decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
289 from CSP_EXCESS_RULES_TL
290 where EXCESS_RULE_ID = p_EXCESS_RULE_ID
291 and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
292 for update of EXCESS_RULE_ID nowait;
293
294 Recinfo C%ROWTYPE;
295 BEGIN
296 OPEN C;
297 FETCH C INTO Recinfo;
298 If (C%NOTFOUND) then
299 CLOSE C;
300 FND_MESSAGE.SET_NAME('FND', 'FORM_RECORD_DELETED');
301 APP_EXCEPTION.RAISE_EXCEPTION;
302 End If;
303 CLOSE C;
304 if (
308 AND ( p_CREATED_BY IS NULL )))
305 ( Recinfo.EXCESS_RULE_ID = p_EXCESS_RULE_ID)
306 AND ( ( Recinfo.CREATED_BY = p_CREATED_BY)
307 OR ( ( Recinfo.CREATED_BY IS NULL )
309 AND ( ( Recinfo.CREATION_DATE = p_CREATION_DATE)
310 OR ( ( Recinfo.CREATION_DATE IS NULL )
311 AND ( p_CREATION_DATE IS NULL )))
312 AND ( ( Recinfo.LAST_UPDATED_BY = p_LAST_UPDATED_BY)
313 OR ( ( Recinfo.LAST_UPDATED_BY IS NULL )
314 AND ( p_LAST_UPDATED_BY IS NULL )))
315 AND ( ( Recinfo.LAST_UPDATE_DATE = p_LAST_UPDATE_DATE)
316 OR ( ( Recinfo.LAST_UPDATE_DATE IS NULL )
317 AND ( p_LAST_UPDATE_DATE IS NULL )))
318 AND ( ( Recinfo.LAST_UPDATE_LOGIN = p_LAST_UPDATE_LOGIN)
319 OR ( ( Recinfo.LAST_UPDATE_LOGIN IS NULL )
320 AND ( p_LAST_UPDATE_LOGIN IS NULL )))
321 AND ( ( Recinfo.EXCESS_RULE_NAME = p_EXCESS_RULE_NAME)
322 OR ( ( Recinfo.EXCESS_RULE_NAME IS NULL )
323 AND ( p_EXCESS_RULE_NAME IS NULL )))
324 AND ( ( Recinfo.TOTAL_MAX_EXCESS = p_TOTAL_MAX_EXCESS)
325 OR ( ( Recinfo.TOTAL_MAX_EXCESS IS NULL )
326 AND ( p_TOTAL_MAX_EXCESS IS NULL )))
327 AND ( ( Recinfo.LINE_MAX_EXCESS = p_LINE_MAX_EXCESS)
328 OR ( ( Recinfo.LINE_MAX_EXCESS IS NULL )
329 AND ( p_LINE_MAX_EXCESS IS NULL )))
330 AND ( ( Recinfo.DAYS_SINCE_RECEIPT = p_DAYS_SINCE_RECEIPT)
331 OR ( ( Recinfo.DAYS_SINCE_RECEIPT IS NULL )
332 AND ( p_DAYS_SINCE_RECEIPT IS NULL )))
333 AND ( ( Recinfo.TOTAL_EXCESS_VALUE = p_TOTAL_EXCESS_VALUE)
334 OR ( ( Recinfo.TOTAL_EXCESS_VALUE IS NULL )
335 AND ( p_TOTAL_EXCESS_VALUE IS NULL )))
336 AND ( ( Recinfo.TOP_EXCESS_LINES = p_TOP_EXCESS_LINES)
337 OR ( ( Recinfo.TOP_EXCESS_LINES IS NULL )
338 AND ( p_TOP_EXCESS_LINES IS NULL )))
339 AND ( ( Recinfo.CATEGORY_SET_ID = p_CATEGORY_SET_ID)
340 OR ( ( Recinfo.CATEGORY_SET_ID IS NULL )
341 AND ( p_CATEGORY_SET_ID IS NULL )))
342 AND ( ( Recinfo.CATEGORY_ID = p_CATEGORY_ID)
343 OR ( ( Recinfo.CATEGORY_ID IS NULL )
344 AND ( p_CATEGORY_ID IS NULL )))
345 AND ( ( Recinfo.ATTRIBUTE_CATEGORY = p_ATTRIBUTE_CATEGORY)
346 OR ( ( Recinfo.ATTRIBUTE_CATEGORY IS NULL )
347 AND ( p_ATTRIBUTE_CATEGORY IS NULL )))
348 AND ( ( Recinfo.ATTRIBUTE1 = p_ATTRIBUTE1)
349 OR ( ( Recinfo.ATTRIBUTE1 IS NULL )
350 AND ( p_ATTRIBUTE1 IS NULL )))
351 AND ( ( Recinfo.ATTRIBUTE2 = p_ATTRIBUTE2)
352 OR ( ( Recinfo.ATTRIBUTE2 IS NULL )
353 AND ( p_ATTRIBUTE2 IS NULL )))
354 AND ( ( Recinfo.ATTRIBUTE3 = p_ATTRIBUTE3)
355 OR ( ( Recinfo.ATTRIBUTE3 IS NULL )
356 AND ( p_ATTRIBUTE3 IS NULL )))
357 AND ( ( Recinfo.ATTRIBUTE4 = p_ATTRIBUTE4)
358 OR ( ( Recinfo.ATTRIBUTE4 IS NULL )
359 AND ( p_ATTRIBUTE4 IS NULL )))
360 AND ( ( Recinfo.ATTRIBUTE5 = p_ATTRIBUTE5)
361 OR ( ( Recinfo.ATTRIBUTE5 IS NULL )
362 AND ( p_ATTRIBUTE5 IS NULL )))
363 AND ( ( Recinfo.ATTRIBUTE6 = p_ATTRIBUTE6)
364 OR ( ( Recinfo.ATTRIBUTE6 IS NULL )
365 AND ( p_ATTRIBUTE6 IS NULL )))
366 AND ( ( Recinfo.ATTRIBUTE7 = p_ATTRIBUTE7)
367 OR ( ( Recinfo.ATTRIBUTE7 IS NULL )
368 AND ( p_ATTRIBUTE7 IS NULL )))
369 AND ( ( Recinfo.ATTRIBUTE8 = p_ATTRIBUTE8)
370 OR ( ( Recinfo.ATTRIBUTE8 IS NULL )
371 AND ( p_ATTRIBUTE8 IS NULL )))
372 AND ( ( Recinfo.ATTRIBUTE9 = p_ATTRIBUTE9)
373 OR ( ( Recinfo.ATTRIBUTE9 IS NULL )
374 AND ( p_ATTRIBUTE9 IS NULL )))
375 AND ( ( Recinfo.ATTRIBUTE10 = p_ATTRIBUTE10)
376 OR ( ( Recinfo.ATTRIBUTE10 IS NULL )
377 AND ( p_ATTRIBUTE10 IS NULL )))
378 AND ( ( Recinfo.ATTRIBUTE11 = p_ATTRIBUTE11)
379 OR ( ( Recinfo.ATTRIBUTE11 IS NULL )
380 AND ( p_ATTRIBUTE11 IS NULL )))
381 AND ( ( Recinfo.ATTRIBUTE12 = p_ATTRIBUTE12)
382 OR ( ( Recinfo.ATTRIBUTE12 IS NULL )
383 AND ( p_ATTRIBUTE12 IS NULL )))
384 AND ( ( Recinfo.ATTRIBUTE13 = p_ATTRIBUTE13)
385 OR ( ( Recinfo.ATTRIBUTE13 IS NULL )
386 AND ( p_ATTRIBUTE13 IS NULL )))
387 AND ( ( Recinfo.ATTRIBUTE14 = p_ATTRIBUTE14)
388 OR ( ( Recinfo.ATTRIBUTE14 IS NULL )
389 AND ( p_ATTRIBUTE14 IS NULL )))
390 AND ( ( Recinfo.ATTRIBUTE15 = p_ATTRIBUTE15)
391 OR ( ( Recinfo.ATTRIBUTE15 IS NULL )
392 AND ( p_ATTRIBUTE15 IS NULL )))
393 ) then
394 return;
395 else
396 FND_MESSAGE.SET_NAME('FND', 'FORM_RECORD_CHANGED');
397 APP_EXCEPTION.RAISE_EXCEPTION;
398 End If;
399 for tlinfo in c1 loop
400 if (tlinfo.BASELANG = 'Y') then
401 if ( ((tlinfo.DESCRIPTION = p_DESCRIPTION)
402 OR ((tlinfo.DESCRIPTION is null) AND (p_DESCRIPTION is null)))
403 ) then
404 null;
405 else
406 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
407 app_exception.raise_exception;
408 end if;
409 end if;
410 end loop;
411 return;
412 END Lock_Row;
413 procedure ADD_LANGUAGE
414 is
415 begin
416 delete from CSP_EXCESS_RULES_TL T
417 where not exists
418 (select NULL
419 from CSP_EXCESS_RULES_B B
420 where B.EXCESS_RULE_ID = T.EXCESS_RULE_ID
421 );
422
426 B.DESCRIPTION
423 update CSP_EXCESS_RULES_TL T set (
424 DESCRIPTION
425 ) = (select
427 from CSP_EXCESS_RULES_TL B
428 where B.EXCESS_RULE_ID = T.EXCESS_RULE_ID
429 and B.LANGUAGE = T.SOURCE_LANG)
430 where (
431 T.EXCESS_RULE_ID,
432 T.LANGUAGE
433 ) in (select
434 SUBT.EXCESS_RULE_ID,
435 SUBT.LANGUAGE
436 from CSP_EXCESS_RULES_TL SUBB, CSP_EXCESS_RULES_TL SUBT
437 where SUBB.EXCESS_RULE_ID = SUBT.EXCESS_RULE_ID
438 and SUBB.LANGUAGE = SUBT.SOURCE_LANG
439 and (SUBB.DESCRIPTION <> SUBT.DESCRIPTION
440 or (SUBB.DESCRIPTION is null and SUBT.DESCRIPTION is not null)
441 or (SUBB.DESCRIPTION is not null and SUBT.DESCRIPTION is null)
442 ));
443
444 insert into CSP_EXCESS_RULES_TL (
445 EXCESS_RULE_ID,
446 CREATED_BY,
447 CREATION_DATE,
448 LAST_UPDATED_BY,
449 LAST_UPDATE_DATE,
450 LAST_UPDATE_LOGIN,
451 DESCRIPTION,
452 LANGUAGE,
453 SOURCE_LANG
454 ) select
455 B.EXCESS_RULE_ID,
456 B.CREATED_BY,
457 B.CREATION_DATE,
458 B.LAST_UPDATED_BY,
459 B.LAST_UPDATE_DATE,
460 B.LAST_UPDATE_LOGIN,
461 B.DESCRIPTION,
462 L.LANGUAGE_CODE,
463 B.SOURCE_LANG
464 from CSP_EXCESS_RULES_TL B, FND_LANGUAGES L
465 where L.INSTALLED_FLAG in ('I', 'B')
466 and B.LANGUAGE = userenv('LANG')
467 and not exists
468 (select NULL
469 from CSP_EXCESS_RULES_TL T
470 where T.EXCESS_RULE_ID = B.EXCESS_RULE_ID
471 and T.LANGUAGE = L.LANGUAGE_CODE);
472 end ADD_LANGUAGE;
473
474 PROCEDURE Translate_Row
475 ( p_excess_rule_id IN NUMBER
476 , p_description IN VARCHAR2
477 , p_owner IN VARCHAR2
478 )
479 IS
480 l_user_id NUMBER := 0;
481 BEGIN
482
483 if p_owner = 'SEED' then
484 l_user_id := 1;
485 end if;
486
487 UPDATE csp_excess_rules_tl
488 SET description = p_description
489 , last_update_date = SYSDATE
490 , last_updated_by = l_user_id
491 , last_update_login = 0
492 , source_lang = userenv('LANG')
493 WHERE excess_rule_id = p_excess_rule_id
494 AND userenv('LANG') IN (language, source_lang);
495
496 EXCEPTION
497 WHEN OTHERS THEN
498 IF FND_MSG_PUB.Check_Msg_level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
499 THEN
500 FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME, 'Translate_Row');
501 END IF;
502 RAISE;
503
504 END Translate_Row;
505
506 PROCEDURE Load_Row
507 ( p_excess_rule_id IN NUMBER
508 , p_description IN VARCHAR2
509 , p_owner IN VARCHAR2
510 )
511 IS
512
513 l_excess_rule_id NUMBER;
514 l_user_id NUMBER := 0;
515
516 BEGIN
517
518 -- assign user ID
519 if p_owner = 'SEED' then
520 l_user_id := 1; --SEED
521 end if;
522
523 BEGIN
524 -- update row if present
525 Update_Row(
526 p_EXCESS_RULE_ID => p_excess_rule_id,
527 p_CREATED_BY => l_user_id,
528 p_CREATION_DATE => sysdate ,
529 p_LAST_UPDATED_BY => l_user_id,
530 p_LAST_UPDATE_DATE => sysdate,
531 p_LAST_UPDATE_LOGIN => 0,
532 p_EXCESS_RULE_NAME => FND_API.G_MISS_CHAR,
533 p_TOTAL_MAX_EXCESS => FND_API.G_MISS_NUM,
534 p_LINE_MAX_EXCESS => FND_API.G_MISS_NUM,
535 p_DAYS_SINCE_RECEIPT => FND_API.G_MISS_NUM,
536 p_TOTAL_EXCESS_VALUE => FND_API.G_MISS_NUM,
537 p_TOP_EXCESS_LINES => FND_API.G_MISS_NUM,
538 p_CATEGORY_SET_ID => FND_API.G_MISS_NUM,
539 p_CATEGORY_ID => FND_API.G_MISS_NUM,
540 p_ATTRIBUTE_CATEGORY => FND_API.G_MISS_CHAR,
541 p_ATTRIBUTE1 => FND_API.G_MISS_CHAR,
542 p_ATTRIBUTE2 => FND_API.G_MISS_CHAR,
543 p_ATTRIBUTE3 => FND_API.G_MISS_CHAR,
544 p_ATTRIBUTE4 => FND_API.G_MISS_CHAR,
545 p_ATTRIBUTE5 => FND_API.G_MISS_CHAR,
546 p_ATTRIBUTE6 => FND_API.G_MISS_CHAR,
547 p_ATTRIBUTE7 => FND_API.G_MISS_CHAR,
548 p_ATTRIBUTE8 => FND_API.G_MISS_CHAR,
549 p_ATTRIBUTE9 => FND_API.G_MISS_CHAR,
550 p_ATTRIBUTE10 => FND_API.G_MISS_CHAR,
551 p_ATTRIBUTE11 => FND_API.G_MISS_CHAR,
552 p_ATTRIBUTE12 => FND_API.G_MISS_CHAR,
553 p_ATTRIBUTE13 => FND_API.G_MISS_CHAR,
554 p_ATTRIBUTE14 => FND_API.G_MISS_CHAR,
555 p_ATTRIBUTE15 => FND_API.G_MISS_CHAR,
556 p_DESCRIPTION => p_description);
557 EXCEPTION
558 WHEN NO_DATA_FOUND THEN
559 -- insert row
560 Insert_Row(
561 px_EXCESS_RULE_ID => l_excess_rule_id,
562 p_CREATED_BY => l_user_id,
563 p_CREATION_DATE => sysdate ,
564 p_LAST_UPDATED_BY => l_user_id,
565 p_LAST_UPDATE_DATE => sysdate,
566 p_LAST_UPDATE_LOGIN => 0,
567 p_EXCESS_RULE_NAME => FND_API.G_MISS_CHAR,
568 p_TOTAL_MAX_EXCESS => FND_API.G_MISS_NUM,
569 p_LINE_MAX_EXCESS => FND_API.G_MISS_NUM,
570 p_DAYS_SINCE_RECEIPT => FND_API.G_MISS_NUM,
571 p_TOTAL_EXCESS_VALUE => FND_API.G_MISS_NUM,
572 p_TOP_EXCESS_LINES => FND_API.G_MISS_NUM,
573 p_CATEGORY_SET_ID => FND_API.G_MISS_NUM,
574 p_CATEGORY_ID => FND_API.G_MISS_NUM,
575 p_ATTRIBUTE_CATEGORY => FND_API.G_MISS_CHAR,
576 p_ATTRIBUTE1 => FND_API.G_MISS_CHAR,
577 p_ATTRIBUTE2 => FND_API.G_MISS_CHAR,
581 p_ATTRIBUTE6 => FND_API.G_MISS_CHAR,
578 p_ATTRIBUTE3 => FND_API.G_MISS_CHAR,
579 p_ATTRIBUTE4 => FND_API.G_MISS_CHAR,
580 p_ATTRIBUTE5 => FND_API.G_MISS_CHAR,
582 p_ATTRIBUTE7 => FND_API.G_MISS_CHAR,
583 p_ATTRIBUTE8 => FND_API.G_MISS_CHAR,
584 p_ATTRIBUTE9 => FND_API.G_MISS_CHAR,
585 p_ATTRIBUTE10 => FND_API.G_MISS_CHAR,
586 p_ATTRIBUTE11 => FND_API.G_MISS_CHAR,
587 p_ATTRIBUTE12 => FND_API.G_MISS_CHAR,
588 p_ATTRIBUTE13 => FND_API.G_MISS_CHAR,
589 p_ATTRIBUTE14 => FND_API.G_MISS_CHAR,
590 p_ATTRIBUTE15 => FND_API.G_MISS_CHAR,
591 p_DESCRIPTION => p_description);
592 END;
593
594 EXCEPTION
595 WHEN OTHERS THEN
596 IF FND_MSG_PUB.Check_Msg_level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
597 THEN
598 FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME, 'Load_Row');
599 END IF;
600 RAISE;
601
602 END Load_Row;
603 End CSP_EXCESS_RULES_B_PKG;