DBA Data[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;