DBA Data[Home] [Help]

PACKAGE BODY: APPS.CSI_COUNTERS_PKG

Source


1 PACKAGE BODY CSI_COUNTERS_PKG as
2 /* $Header: csitctib.pls 120.5 2008/04/02 23:11:40 devijay ship $*/
3 
4 G_PKG_NAME CONSTANT VARCHAR2(30)  := 'CSI_COUNTERS_PKG';
5 G_FILE_NAME CONSTANT VARCHAR2(12) := 'csitctib.pls';
6 
7 PROCEDURE Insert_Row(
8  	 px_COUNTER_ID	                IN OUT NOCOPY NUMBER
9 	,p_GROUP_ID                     NUMBER
10 	,p_COUNTER_TYPE                 VARCHAR2
11 	,p_INITIAL_READING              NUMBER
12 	,p_INITIAL_READING_DATE         DATE
13 	,p_TOLERANCE_PLUS               NUMBER
14 	,p_TOLERANCE_MINUS              NUMBER
15 	,p_UOM_CODE                     VARCHAR2
16 	,p_DERIVE_COUNTER_ID            NUMBER
17 	,p_DERIVE_FUNCTION              VARCHAR2
18 	,p_DERIVE_PROPERTY_ID           NUMBER
19 	,p_VALID_FLAG                   VARCHAR2
20 	,p_FORMULA_INCOMPLETE_FLAG      VARCHAR2
21 	,p_FORMULA_TEXT                 VARCHAR2
22 	,p_ROLLOVER_LAST_READING        NUMBER
23 	,p_ROLLOVER_FIRST_READING	NUMBER
24 	,p_USAGE_ITEM_ID                NUMBER
25 	,p_CTR_VAL_MAX_SEQ_NO           NUMBER
26 	,p_START_DATE_ACTIVE            DATE
27 	,p_END_DATE_ACTIVE              DATE
28 	,p_OBJECT_VERSION_NUMBER        NUMBER
29 	,p_LAST_UPDATE_DATE             DATE
30 	,p_LAST_UPDATED_BY              NUMBER
31 	,p_CREATION_DATE                DATE
32 	,p_CREATED_BY                   NUMBER
33 	,p_LAST_UPDATE_LOGIN            NUMBER
34 	,p_ATTRIBUTE1                   VARCHAR2
35 	,p_ATTRIBUTE2                   VARCHAR2
36 	,p_ATTRIBUTE3                   VARCHAR2
37 	,p_ATTRIBUTE4                   VARCHAR2
38 	,p_ATTRIBUTE5                   VARCHAR2
39 	,p_ATTRIBUTE6                   VARCHAR2
40 	,p_ATTRIBUTE7                   VARCHAR2
41 	,p_ATTRIBUTE8                   VARCHAR2
42 	,p_ATTRIBUTE9                   VARCHAR2
43 	,p_ATTRIBUTE10                  VARCHAR2
44 	,p_ATTRIBUTE11                  VARCHAR2
45 	,p_ATTRIBUTE12                  VARCHAR2
46 	,p_ATTRIBUTE13                  VARCHAR2
47 	,p_ATTRIBUTE14                  VARCHAR2
48 	,p_ATTRIBUTE15                  VARCHAR2
49         ,p_ATTRIBUTE16                  VARCHAR2
50         ,p_ATTRIBUTE17                  VARCHAR2
51         ,p_ATTRIBUTE18                  VARCHAR2
52         ,p_ATTRIBUTE19                  VARCHAR2
53         ,p_ATTRIBUTE20                  VARCHAR2
54         ,p_ATTRIBUTE21                  VARCHAR2
55         ,p_ATTRIBUTE22                  VARCHAR2
56         ,p_ATTRIBUTE23                  VARCHAR2
57         ,p_ATTRIBUTE24                  VARCHAR2
58         ,p_ATTRIBUTE25                  VARCHAR2
59         ,p_ATTRIBUTE26                  VARCHAR2
60         ,p_ATTRIBUTE27                  VARCHAR2
61         ,p_ATTRIBUTE28                  VARCHAR2
62         ,p_ATTRIBUTE29                  VARCHAR2
63         ,p_ATTRIBUTE30                  VARCHAR2
64 	,p_ATTRIBUTE_CATEGORY           VARCHAR2
65 	,p_MIGRATED_FLAG                VARCHAR2
66 	,p_CUSTOMER_VIEW                VARCHAR2
67 	,p_DIRECTION                    VARCHAR2
68 	,p_FILTER_TYPE                  VARCHAR2
69 	,p_FILTER_READING_COUNT         NUMBER
70 	,p_FILTER_TIME_UOM              VARCHAR2
71 	,p_ESTIMATION_ID                NUMBER
72 	,p_READING_TYPE                 NUMBER
73         ,p_AUTOMATIC_ROLLOVER           VARCHAR2
74 	,p_DEFAULT_USAGE_RATE           NUMBER
75 	,p_USE_PAST_READING             NUMBER
76 	,p_USED_IN_SCHEDULING           VARCHAR2
77 	,p_DEFAULTED_GROUP_ID           NUMBER
78         ,p_CREATED_FROM_COUNTER_TMPL_ID NUMBER
79         ,p_SECURITY_GROUP_ID            NUMBER
80         ,p_STEP_VALUE                   NUMBER
81         ,p_NAME	                        VARCHAR2
82         ,p_DESCRIPTION                  VARCHAR2
83         ,p_TIME_BASED_MANUAL_ENTRY      VARCHAR2
84         ,p_EAM_REQUIRED_FLAG            VARCHAR2
85         ,p_COMMENTS                     VARCHAR2
86       )  IS
87 
88    CURSOR C1 IS
89    SELECT CSI_COUNTERS_B_S.nextval
90    FROM   sys.dual;
91 BEGIN
92    IF (px_COUNTER_ID IS NULL) OR (px_COUNTER_ID = FND_API.G_MISS_NUM) then
93       OPEN C1;
94       FETCH C1 INTO px_COUNTER_ID;
95       CLOSE C1;
96    END IF;
97 
98    INSERT INTO CSI_COUNTERS_B(
99  	 COUNTER_ID
100 	,GROUP_ID
101 	,COUNTER_TYPE
102 	,INITIAL_READING
103 	,INITIAL_READING_DATE
104 	,TOLERANCE_PLUS
105 	,TOLERANCE_MINUS
106 	,UOM_CODE
107 	,DERIVE_COUNTER_ID
108 	,DERIVE_FUNCTION
109 	,DERIVE_PROPERTY_ID
110 	,VALID_FLAG
111 	,FORMULA_INCOMPLETE_FLAG
112 	,FORMULA_TEXT
113 	,ROLLOVER_LAST_READING
114 	,ROLLOVER_FIRST_READING
115 	,USAGE_ITEM_ID
116 	,CTR_VAL_MAX_SEQ_NO
117 	,START_DATE_ACTIVE
118 	,END_DATE_ACTIVE
119 	,OBJECT_VERSION_NUMBER
120 	,LAST_UPDATE_DATE
121 	,LAST_UPDATED_BY
122 	,CREATION_DATE
123 	,CREATED_BY
124 	,LAST_UPDATE_LOGIN
125 	,ATTRIBUTE1
126 	,ATTRIBUTE2
127 	,ATTRIBUTE3
128 	,ATTRIBUTE4
129 	,ATTRIBUTE5
130 	,ATTRIBUTE6
131 	,ATTRIBUTE7
132 	,ATTRIBUTE8
133 	,ATTRIBUTE9
134 	,ATTRIBUTE10
135 	,ATTRIBUTE11
136 	,ATTRIBUTE12
137 	,ATTRIBUTE13
138 	,ATTRIBUTE14
139 	,ATTRIBUTE15
140         ,ATTRIBUTE16
141         ,ATTRIBUTE17
142         ,ATTRIBUTE18
143         ,ATTRIBUTE19
144         ,ATTRIBUTE20
145         ,ATTRIBUTE21
146         ,ATTRIBUTE22
147         ,ATTRIBUTE23
148         ,ATTRIBUTE24
149         ,ATTRIBUTE25
150         ,ATTRIBUTE26
151         ,ATTRIBUTE27
152         ,ATTRIBUTE28
153         ,ATTRIBUTE29
154         ,ATTRIBUTE30
155 	,ATTRIBUTE_CATEGORY
156 	,MIGRATED_FLAG
157 	,CUSTOMER_VIEW
158 	,DIRECTION
159 	,FILTER_TYPE
160 	,FILTER_READING_COUNT
161 	,FILTER_TIME_UOM
162 	,ESTIMATION_ID
163 	,READING_TYPE
164 	,AUTOMATIC_ROLLOVER
165 	,DEFAULT_USAGE_RATE
166 	,USE_PAST_READING
167 	,USED_IN_SCHEDULING
168 	,DEFAULTED_GROUP_ID
169         ,CREATED_FROM_COUNTER_TMPL_ID
170         ,SECURITY_GROUP_ID
171         ,STEP_VALUE
172         ,TIME_BASED_MANUAL_ENTRY
173         ,EAM_REQUIRED_FLAG
174         ,COMMENTS
175       )
176    VALUES(
177 	 px_COUNTER_ID
178 	,decode(p_GROUP_ID, FND_API.G_MISS_NUM, NULL,p_GROUP_ID)
179 	,decode(p_COUNTER_TYPE, FND_API.G_MISS_CHAR, NULL,p_COUNTER_TYPE)
180 	,decode(p_INITIAL_READING, FND_API.G_MISS_NUM, NULL,p_INITIAL_READING)
181 	,decode(p_INITIAL_READING_DATE, FND_API.G_MISS_DATE, NULL,p_INITIAL_READING_DATE)
182 	,decode(p_TOLERANCE_PLUS, FND_API.G_MISS_NUM, NULL,p_TOLERANCE_PLUS)
183 	,decode(p_TOLERANCE_MINUS, FND_API.G_MISS_NUM, NULL,p_TOLERANCE_MINUS)
184 	,decode(p_UOM_CODE, FND_API.G_MISS_CHAR, NULL,p_UOM_CODE)
185 	,decode(p_DERIVE_COUNTER_ID, FND_API.G_MISS_NUM, NULL,p_DERIVE_COUNTER_ID)
186 	,decode(p_DERIVE_FUNCTION, FND_API.G_MISS_CHAR, NULL,p_DERIVE_FUNCTION)
187 	,decode(p_DERIVE_PROPERTY_ID, FND_API.G_MISS_NUM, NULL,p_DERIVE_PROPERTY_ID)
188 	,decode(p_VALID_FLAG, FND_API.G_MISS_CHAR, NULL,p_VALID_FLAG)
189 	,decode(p_FORMULA_INCOMPLETE_FLAG, FND_API.G_MISS_CHAR, NULL,p_FORMULA_INCOMPLETE_FLAG)
190 	,decode(p_FORMULA_TEXT, FND_API.G_MISS_CHAR, NULL,p_FORMULA_TEXT)
191 	,decode(p_ROLLOVER_LAST_READING, FND_API.G_MISS_NUM, NULL,p_ROLLOVER_LAST_READING)
192 	,decode(p_ROLLOVER_FIRST_READING, FND_API.G_MISS_NUM, NULL,p_ROLLOVER_FIRST_READING)
193 	,decode(p_USAGE_ITEM_ID, FND_API.G_MISS_NUM, NULL,p_USAGE_ITEM_ID)
194 	,decode(p_CTR_VAL_MAX_SEQ_NO, FND_API.G_MISS_NUM, NULL,p_CTR_VAL_MAX_SEQ_NO)
195 	,decode(p_START_DATE_ACTIVE, FND_API.G_MISS_DATE, TO_DATE(NULL),p_START_DATE_ACTIVE)
196 	,decode(p_END_DATE_ACTIVE, FND_API.G_MISS_DATE, TO_DATE(NULL),p_END_DATE_ACTIVE)
197 	,decode(p_OBJECT_VERSION_NUMBER, FND_API.G_MISS_NUM, NULL,p_OBJECT_VERSION_NUMBER)
198 	,decode(p_LAST_UPDATE_DATE, FND_API.G_MISS_DATE, TO_DATE(NULL),p_LAST_UPDATE_DATE)
199 	,decode(p_LAST_UPDATED_BY, FND_API.G_MISS_NUM, NULL,p_LAST_UPDATED_BY)
200 	,decode(p_CREATION_DATE, FND_API.G_MISS_DATE, TO_DATE(NULL),p_CREATION_DATE)
201 	,decode(p_CREATED_BY, FND_API.G_MISS_NUM, NULL,p_CREATED_BY)
202 	,decode(p_LAST_UPDATE_LOGIN, FND_API.G_MISS_NUM, NULL,p_LAST_UPDATE_LOGIN)
203 	,decode(p_ATTRIBUTE1, FND_API.G_MISS_CHAR, NULL,p_ATTRIBUTE1)
204 	,decode(p_ATTRIBUTE2, FND_API.G_MISS_CHAR, NULL,p_ATTRIBUTE2)
205 	,decode(p_ATTRIBUTE3, FND_API.G_MISS_CHAR, NULL,p_ATTRIBUTE3)
206 	,decode(p_ATTRIBUTE4, FND_API.G_MISS_CHAR, NULL,p_ATTRIBUTE4)
207 	,decode(p_ATTRIBUTE5, FND_API.G_MISS_CHAR, NULL,p_ATTRIBUTE5)
208 	,decode(p_ATTRIBUTE6, FND_API.G_MISS_CHAR, NULL,p_ATTRIBUTE6)
209 	,decode(p_ATTRIBUTE7, FND_API.G_MISS_CHAR, NULL,p_ATTRIBUTE7)
210 	,decode(p_ATTRIBUTE8, FND_API.G_MISS_CHAR, NULL,p_ATTRIBUTE8)
211 	,decode(p_ATTRIBUTE9, FND_API.G_MISS_CHAR, NULL,p_ATTRIBUTE9)
212 	,decode(p_ATTRIBUTE10, FND_API.G_MISS_CHAR, NULL,p_ATTRIBUTE10)
213 	,decode(p_ATTRIBUTE11, FND_API.G_MISS_CHAR, NULL,p_ATTRIBUTE11)
214 	,decode(p_ATTRIBUTE12, FND_API.G_MISS_CHAR, NULL,p_ATTRIBUTE12)
215 	,decode(p_ATTRIBUTE13, FND_API.G_MISS_CHAR, NULL,p_ATTRIBUTE13)
216 	,decode(p_ATTRIBUTE14, FND_API.G_MISS_CHAR, NULL,p_ATTRIBUTE14)
217 	,decode(p_ATTRIBUTE15, FND_API.G_MISS_CHAR, NULL,p_ATTRIBUTE15)
218         ,decode(p_ATTRIBUTE16, FND_API.G_MISS_CHAR, NULL,p_ATTRIBUTE16)
219         ,decode(p_ATTRIBUTE17, FND_API.G_MISS_CHAR, NULL,p_ATTRIBUTE17)
220         ,decode(p_ATTRIBUTE18, FND_API.G_MISS_CHAR, NULL,p_ATTRIBUTE18)
221         ,decode(p_ATTRIBUTE19, FND_API.G_MISS_CHAR, NULL,p_ATTRIBUTE19)
222         ,decode(p_ATTRIBUTE20, FND_API.G_MISS_CHAR, NULL,p_ATTRIBUTE20)
223         ,decode(p_ATTRIBUTE21, FND_API.G_MISS_CHAR, NULL,p_ATTRIBUTE21)
224         ,decode(p_ATTRIBUTE22, FND_API.G_MISS_CHAR, NULL,p_ATTRIBUTE22)
225         ,decode(p_ATTRIBUTE23, FND_API.G_MISS_CHAR, NULL,p_ATTRIBUTE23)
226         ,decode(p_ATTRIBUTE24, FND_API.G_MISS_CHAR, NULL,p_ATTRIBUTE24)
227         ,decode(p_ATTRIBUTE25, FND_API.G_MISS_CHAR, NULL,p_ATTRIBUTE25)
228         ,decode(p_ATTRIBUTE26, FND_API.G_MISS_CHAR, NULL,p_ATTRIBUTE26)
229         ,decode(p_ATTRIBUTE27, FND_API.G_MISS_CHAR, NULL,p_ATTRIBUTE27)
230         ,decode(p_ATTRIBUTE28, FND_API.G_MISS_CHAR, NULL,p_ATTRIBUTE28)
231         ,decode(p_ATTRIBUTE29, FND_API.G_MISS_CHAR, NULL,p_ATTRIBUTE29)
232         ,decode(p_ATTRIBUTE30, FND_API.G_MISS_CHAR, NULL,p_ATTRIBUTE30)
233 	,decode(p_ATTRIBUTE_CATEGORY, FND_API.G_MISS_CHAR, NULL,p_ATTRIBUTE_CATEGORY)
234 	,decode(p_MIGRATED_FLAG, FND_API.G_MISS_CHAR, NULL,p_MIGRATED_FLAG)
235 	,decode(p_CUSTOMER_VIEW, FND_API.G_MISS_CHAR, NULL,p_CUSTOMER_VIEW)
236 	,decode(p_DIRECTION, FND_API.G_MISS_CHAR, NULL,p_DIRECTION)
237 	,decode(p_FILTER_TYPE, FND_API.G_MISS_CHAR, NULL,p_FILTER_TYPE)
238 	,decode(p_FILTER_READING_COUNT, FND_API.G_MISS_NUM, NULL,p_FILTER_READING_COUNT)
239 	,decode(p_FILTER_TIME_UOM, FND_API.G_MISS_CHAR, NULL,p_FILTER_TIME_UOM)
240 	,decode(p_ESTIMATION_ID, FND_API.G_MISS_NUM, NULL,p_ESTIMATION_ID)
241 	,decode(p_READING_TYPE, FND_API.G_MISS_NUM, NULL,p_READING_TYPE)
242 	,decode(p_AUTOMATIC_ROLLOVER, FND_API.G_MISS_CHAR, NULL,p_AUTOMATIC_ROLLOVER)
243 	,decode(p_DEFAULT_USAGE_RATE, FND_API.G_MISS_NUM, NULL,p_DEFAULT_USAGE_RATE)
244 	,decode(p_USE_PAST_READING, FND_API.G_MISS_NUM, NULL,p_USE_PAST_READING)
245 	,decode(p_USED_IN_SCHEDULING, FND_API.G_MISS_CHAR, NULL,p_USED_IN_SCHEDULING)
246 	,decode(p_DEFAULTED_GROUP_ID, FND_API.G_MISS_NUM, NULL,p_DEFAULTED_GROUP_ID)
247 	,decode(p_CREATED_FROM_COUNTER_TMPL_ID, FND_API.G_MISS_NUM, NULL,p_CREATED_FROM_COUNTER_TMPL_ID)
248         ,decode(p_SECURITY_GROUP_ID, FND_API.G_MISS_NUM, NULL,p_SECURITY_GROUP_ID)
249         ,decode(p_STEP_VALUE, FND_API.G_MISS_NUM, NULL,p_STEP_VALUE)
250         ,decode(p_TIME_BASED_MANUAL_ENTRY, FND_API.G_MISS_CHAR, NULL,p_TIME_BASED_MANUAL_ENTRY)
251         ,decode(p_EAM_REQUIRED_FLAG, FND_API.G_MISS_CHAR, NULL,p_EAM_REQUIRED_FLAG)
252         ,decode(p_COMMENTS, FND_API.G_MISS_CHAR, NULL,p_COMMENTS)
253     );
254 
255     INSERT INTO CSI_COUNTERS_TL(
256 	 COUNTER_ID
257 	,NAME
258 	,DESCRIPTION
259 	,LANGUAGE
260 	,SOURCE_LANG
261 	,CREATED_BY
262 	,CREATION_DATE
263 	,LAST_UPDATED_BY
264 	,LAST_UPDATE_DATE
265 	,LAST_UPDATE_LOGIN
266 	)
267     SELECT  px_counter_id
268             ,decode(p_name, fnd_api.g_miss_char, NULL, p_name)
269             ,decode(p_description, fnd_api.g_miss_char, NULL, p_description)
270             ,L.language_code
271             ,userenv('LANG')
272             ,decode( p_created_by, fnd_api.g_miss_num, NULL, p_created_by)
273             ,decode( p_creation_date, fnd_api.g_miss_date, to_date(NULL), p_creation_date)
274             ,decode( p_last_updated_by, fnd_api.g_miss_num, NULL, p_last_updated_by)
275             ,decode( p_last_update_date, fnd_api.g_miss_date, to_date(NULL), p_last_update_date)
276             ,decode( p_last_update_login, fnd_api.g_miss_num, NULL, p_last_update_login)
277      FROM   fnd_languages L
278      WHERE  L.installed_flag IN ('I','B')
279      AND    NOT EXISTS (SELECT NULL
280                         FROM   csi_counters_tl cct
281                         WHERE  cct.counter_id = px_counter_id
282                         AND    cct.language = L.language_code);
283 End Insert_Row;
284 
285 PROCEDURE Update_Row(
286   	 p_COUNTER_ID	                NUMBER
287 	,p_GROUP_ID                     NUMBER
288 	,p_COUNTER_TYPE                 VARCHAR2
289 	,p_INITIAL_READING              NUMBER
290 	,p_INITIAL_READING_DATE         DATE
291 	,p_TOLERANCE_PLUS               NUMBER
292 	,p_TOLERANCE_MINUS              NUMBER
293 	,p_UOM_CODE                     VARCHAR2
294 	,p_DERIVE_COUNTER_ID            NUMBER
295 	,p_DERIVE_FUNCTION              VARCHAR2
296 	,p_DERIVE_PROPERTY_ID           NUMBER
297 	,p_VALID_FLAG                   VARCHAR2
298 	,p_FORMULA_INCOMPLETE_FLAG      VARCHAR2
299 	,p_FORMULA_TEXT                 VARCHAR2
300 	,p_ROLLOVER_LAST_READING        NUMBER
301 	,p_ROLLOVER_FIRST_READING	NUMBER
302 	,p_USAGE_ITEM_ID                NUMBER
303 	,p_CTR_VAL_MAX_SEQ_NO           NUMBER
304 	,p_START_DATE_ACTIVE            DATE
305 	,p_END_DATE_ACTIVE              DATE
306 	,p_OBJECT_VERSION_NUMBER        NUMBER
307 	,p_LAST_UPDATE_DATE             DATE
308 	,p_LAST_UPDATED_BY              NUMBER
309 	,p_CREATION_DATE                DATE
310 	,p_CREATED_BY                   NUMBER
311 	,p_LAST_UPDATE_LOGIN            NUMBER
312 	,p_ATTRIBUTE1                   VARCHAR2
313 	,p_ATTRIBUTE2                   VARCHAR2
314 	,p_ATTRIBUTE3                   VARCHAR2
315 	,p_ATTRIBUTE4                   VARCHAR2
316 	,p_ATTRIBUTE5                   VARCHAR2
320 	,p_ATTRIBUTE9                   VARCHAR2
317 	,p_ATTRIBUTE6                   VARCHAR2
318 	,p_ATTRIBUTE7                   VARCHAR2
319 	,p_ATTRIBUTE8                   VARCHAR2
321 	,p_ATTRIBUTE10                  VARCHAR2
322 	,p_ATTRIBUTE11                  VARCHAR2
323 	,p_ATTRIBUTE12                  VARCHAR2
324 	,p_ATTRIBUTE13                  VARCHAR2
325 	,p_ATTRIBUTE14                  VARCHAR2
326 	,p_ATTRIBUTE15                  VARCHAR2
327         ,p_ATTRIBUTE16                  VARCHAR2
328         ,p_ATTRIBUTE17                  VARCHAR2
329         ,p_ATTRIBUTE18                  VARCHAR2
330         ,p_ATTRIBUTE19                  VARCHAR2
331         ,p_ATTRIBUTE20                  VARCHAR2
332         ,p_ATTRIBUTE21                  VARCHAR2
333         ,p_ATTRIBUTE22                  VARCHAR2
334         ,p_ATTRIBUTE23                  VARCHAR2
335         ,p_ATTRIBUTE24                  VARCHAR2
336         ,p_ATTRIBUTE25                  VARCHAR2
337         ,p_ATTRIBUTE26                  VARCHAR2
338         ,p_ATTRIBUTE27                  VARCHAR2
339         ,p_ATTRIBUTE28                  VARCHAR2
340         ,p_ATTRIBUTE29                  VARCHAR2
341         ,p_ATTRIBUTE30                  VARCHAR2
342 	,p_ATTRIBUTE_CATEGORY           VARCHAR2
343 	,p_MIGRATED_FLAG                VARCHAR2
344 	,p_CUSTOMER_VIEW                VARCHAR2
345 	,p_DIRECTION                    VARCHAR2
346 	,p_FILTER_TYPE                  VARCHAR2
347 	,p_FILTER_READING_COUNT         NUMBER
348 	,p_FILTER_TIME_UOM              VARCHAR2
349 	,p_ESTIMATION_ID                NUMBER
350 	,p_READING_TYPE                 NUMBER
351 	,p_AUTOMATIC_ROLLOVER           VARCHAR2
352 	,p_DEFAULT_USAGE_RATE           NUMBER
353 	,p_USE_PAST_READING             NUMBER
354 	,p_USED_IN_SCHEDULING           VARCHAR2
355 	,p_DEFAULTED_GROUP_ID           NUMBER
356         ,p_CREATED_FROM_COUNTER_TMPL_ID NUMBER
357         ,p_SECURITY_GROUP_ID            NUMBER
358         ,p_STEP_VALUE                   NUMBER
359         ,p_NAME	                        VARCHAR2
360         ,p_DESCRIPTION                  VARCHAR2
361         ,p_TIME_BASED_MANUAL_ENTRY      VARCHAR2
362         ,p_EAM_REQUIRED_FLAG            VARCHAR2
363         ,p_COMMENTS                     VARCHAR2
364 
365 	) IS
366  BEGIN
367     UPDATE CSI_COUNTERS_B
368     SET    GROUP_ID = decode(p_GROUP_ID, NULL, GROUP_ID, FND_API.G_MISS_NUM, NULL, p_GROUP_ID)
369 	   ,COUNTER_TYPE = decode(p_COUNTER_TYPE, NULL, COUNTER_TYPE, FND_API.G_MISS_CHAR, NULL,  p_COUNTER_TYPE)
370 	   ,INITIAL_READING = decode(p_INITIAL_READING, NULL, INITIAL_READING, FND_API.G_MISS_NUM, NULL, p_INITIAL_READING)
371   	   ,INITIAL_READING_DATE = decode(p_INITIAL_READING_DATE, NULL, INITIAL_READING_DATE, FND_API.G_MISS_DATE, NULL, p_INITIAL_READING_DATE)
372 	   ,TOLERANCE_PLUS = decode(p_TOLERANCE_PLUS, NULL, TOLERANCE_PLUS, FND_API.G_MISS_NUM, NULL, p_TOLERANCE_PLUS)
373 	   ,TOLERANCE_MINUS = decode(p_TOLERANCE_MINUS, NULL, TOLERANCE_MINUS, FND_API.G_MISS_NUM, NULL, p_TOLERANCE_MINUS)
374 	   ,UOM_CODE = decode(p_UOM_CODE, NULL, UOM_CODE, FND_API.G_MISS_CHAR, NULL, p_UOM_CODE)
375 	   ,DERIVE_COUNTER_ID = decode(p_DERIVE_COUNTER_ID, NULL, DERIVE_COUNTER_ID, FND_API.G_MISS_NUM, NULL,  p_DERIVE_COUNTER_ID)
376 	   ,DERIVE_FUNCTION = decode(p_DERIVE_FUNCTION, NULL, DERIVE_FUNCTION, FND_API.G_MISS_CHAR, NULL, p_DERIVE_FUNCTION)
377 	   ,DERIVE_PROPERTY_ID = decode(p_DERIVE_PROPERTY_ID, NULL, DERIVE_PROPERTY_ID, FND_API.G_MISS_NUM, NULL,  p_DERIVE_PROPERTY_ID)
378 	   ,VALID_FLAG = decode(p_VALID_FLAG, NULL, VALID_FLAG, FND_API.G_MISS_CHAR, NULL, p_VALID_FLAG)
379 	   ,FORMULA_INCOMPLETE_FLAG = decode(p_FORMULA_INCOMPLETE_FLAG, NULL, FORMULA_INCOMPLETE_FLAG, FND_API.G_MISS_CHAR, NULL, p_FORMULA_INCOMPLETE_FLAG)
380 	   ,FORMULA_TEXT = decode(p_FORMULA_TEXT, NULL, FORMULA_TEXT, FND_API.G_MISS_CHAR, NULL, p_FORMULA_TEXT)
381 	   ,ROLLOVER_LAST_READING = decode(p_ROLLOVER_LAST_READING, NULL, ROLLOVER_LAST_READING, FND_API.G_MISS_NUM, NULL,  p_ROLLOVER_LAST_READING)
382 	   ,ROLLOVER_FIRST_READING = decode(p_ROLLOVER_FIRST_READING, NULL, ROLLOVER_FIRST_READING, FND_API.G_MISS_NUM, NULL, p_ROLLOVER_FIRST_READING)
383 	   ,USAGE_ITEM_ID = decode(p_USAGE_ITEM_ID, NULL, USAGE_ITEM_ID, FND_API.G_MISS_NUM, NULL, p_USAGE_ITEM_ID)
384 	   ,CTR_VAL_MAX_SEQ_NO = decode(p_CTR_VAL_MAX_SEQ_NO, NULL, CTR_VAL_MAX_SEQ_NO, FND_API.G_MISS_NUM, CTR_VAL_MAX_SEQ_NO,  p_CTR_VAL_MAX_SEQ_NO)
385  	   ,START_DATE_ACTIVE = decode(p_START_DATE_ACTIVE, NULL, START_DATE_ACTIVE, FND_API.G_MISS_DATE, NULL, p_START_DATE_ACTIVE)
386   	   ,END_DATE_ACTIVE = decode(p_END_DATE_ACTIVE, NULL, END_DATE_ACTIVE, FND_API.G_MISS_DATE, NULL,p_END_DATE_ACTIVE)
387 	   ,OBJECT_VERSION_NUMBER = decode(p_OBJECT_VERSION_NUMBER, NULL, OBJECT_VERSION_NUMBER, FND_API.G_MISS_NUM, NULL, p_OBJECT_VERSION_NUMBER)
388   	   ,LAST_UPDATE_DATE = decode(p_LAST_UPDATE_DATE, NULL, LAST_UPDATE_DATE, FND_API.G_MISS_DATE, NULL,p_LAST_UPDATE_DATE)
389 	   ,LAST_UPDATED_BY = decode(p_LAST_UPDATED_BY, NULL,LAST_UPDATED_BY, FND_API.G_MISS_NUM, NULL,p_LAST_UPDATED_BY)
390    	   ,CREATION_DATE = decode(p_CREATION_DATE, NULL, CREATION_DATE, FND_API.G_MISS_DATE, CREATION_DATE, p_CREATION_DATE)
391 	   ,CREATED_BY = decode(p_CREATED_BY, NULL, CREATED_BY, FND_API.G_MISS_NUM, CREATED_BY, p_CREATED_BY)
392 	   ,LAST_UPDATE_LOGIN = decode(p_LAST_UPDATE_LOGIN, NULL,LAST_UPDATE_LOGIN, FND_API.G_MISS_NUM, FND_GLOBAL.USER_ID, p_LAST_UPDATE_LOGIN)
393 	   ,ATTRIBUTE1 = decode(p_ATTRIBUTE1, NULL, ATTRIBUTE1, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE1)
394 	   ,ATTRIBUTE2 = decode(p_ATTRIBUTE2, NULL, ATTRIBUTE2, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE2)
395 	   ,ATTRIBUTE3 = decode(p_ATTRIBUTE3, NULL, ATTRIBUTE3, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE3)
396 	   ,ATTRIBUTE4 = decode(p_ATTRIBUTE4, NULL, ATTRIBUTE4, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE4)
397 	   ,ATTRIBUTE5 = decode(p_ATTRIBUTE5, NULL, ATTRIBUTE5, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE5)
401 	   ,ATTRIBUTE9 = decode(p_ATTRIBUTE9, NULL, ATTRIBUTE9, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE9)
398 	   ,ATTRIBUTE6 = decode(p_ATTRIBUTE6, NULL, ATTRIBUTE6, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE6)
399 	   ,ATTRIBUTE7 = decode(p_ATTRIBUTE7, NULL, ATTRIBUTE7, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE7)
400 	   ,ATTRIBUTE8 = decode(p_ATTRIBUTE8, NULL, ATTRIBUTE8, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE8)
402 	   ,ATTRIBUTE10 = decode(p_ATTRIBUTE10, NULL, ATTRIBUTE10, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE10)
403 	   ,ATTRIBUTE11 = decode(p_ATTRIBUTE11, NULL, ATTRIBUTE11, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE11)
404 	   ,ATTRIBUTE12 = decode(p_ATTRIBUTE12, NULL, ATTRIBUTE12, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE12)
405 	   ,ATTRIBUTE13 = decode(p_ATTRIBUTE13, NULL, ATTRIBUTE13, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE13)
406 	   ,ATTRIBUTE14 = decode(p_ATTRIBUTE14, NULL, ATTRIBUTE14, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE14)
407 	   ,ATTRIBUTE15 = decode(p_ATTRIBUTE15, NULL, ATTRIBUTE15, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE15)
408 	   ,ATTRIBUTE16 = decode(p_ATTRIBUTE16, NULL, ATTRIBUTE16, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE16)
409            ,ATTRIBUTE17 = decode(p_ATTRIBUTE17, NULL, ATTRIBUTE17, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE17)
410            ,ATTRIBUTE18 = decode(p_ATTRIBUTE18, NULL, ATTRIBUTE18, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE18)
411            ,ATTRIBUTE19 = decode(p_ATTRIBUTE19, NULL, ATTRIBUTE19, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE19)
412            ,ATTRIBUTE20 = decode(p_ATTRIBUTE20, NULL, ATTRIBUTE20, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE20)
413            ,ATTRIBUTE21 = decode(p_ATTRIBUTE21, NULL, ATTRIBUTE21, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE21)
414            ,ATTRIBUTE22 = decode(p_ATTRIBUTE22, NULL, ATTRIBUTE22, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE22)
415            ,ATTRIBUTE23 = decode(p_ATTRIBUTE23, NULL, ATTRIBUTE23, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE23)
416            ,ATTRIBUTE24 = decode(p_ATTRIBUTE24, NULL, ATTRIBUTE24, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE24)
417            ,ATTRIBUTE25 = decode(p_ATTRIBUTE25, NULL, ATTRIBUTE25, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE25)
418            ,ATTRIBUTE26 = decode(p_ATTRIBUTE26, NULL, ATTRIBUTE26, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE26)
419            ,ATTRIBUTE27 = decode(p_ATTRIBUTE27, NULL, ATTRIBUTE27, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE27)
420            ,ATTRIBUTE28 = decode(p_ATTRIBUTE28, NULL, ATTRIBUTE28, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE28)
421            ,ATTRIBUTE29 = decode(p_ATTRIBUTE29, NULL, ATTRIBUTE29, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE29)
422            ,ATTRIBUTE30 = decode(p_ATTRIBUTE30, NULL, ATTRIBUTE30, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE30)
423 	   ,ATTRIBUTE_CATEGORY = decode(p_ATTRIBUTE_CATEGORY, NULL, ATTRIBUTE_CATEGORY, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE_CATEGORY)
424 	   ,MIGRATED_FLAG = decode(p_MIGRATED_FLAG, NULL, MIGRATED_FLAG, FND_API.G_MISS_CHAR, NULL, p_MIGRATED_FLAG)
425   	   ,CUSTOMER_VIEW = decode(p_CUSTOMER_VIEW, NULL, CUSTOMER_VIEW, FND_API.G_MISS_CHAR,NULL,  p_CUSTOMER_VIEW)
426 	   ,DIRECTION = decode(p_DIRECTION, NULL, DIRECTION, FND_API.G_MISS_CHAR, NULL,  p_DIRECTION)
427 	   ,FILTER_TYPE = decode(p_FILTER_TYPE, NULL, FILTER_TYPE, FND_API.G_MISS_CHAR, NULL, p_FILTER_TYPE)
428 	   ,FILTER_READING_COUNT = decode(p_FILTER_READING_COUNT, NULL, FILTER_READING_COUNT, FND_API.G_MISS_NUM,NULL,  p_FILTER_READING_COUNT)
429 	   ,FILTER_TIME_UOM = decode(p_FILTER_TIME_UOM, NULL, FILTER_TIME_UOM, FND_API.G_MISS_CHAR, NULL,  p_FILTER_TIME_UOM)
430 	   ,ESTIMATION_ID = decode(p_ESTIMATION_ID, NULL, ESTIMATION_ID, FND_API.G_MISS_NUM, NULL, p_ESTIMATION_ID)
431 	   ,READING_TYPE = decode(p_READING_TYPE, NULL, READING_TYPE, FND_API.G_MISS_NUM, NULL,  p_READING_TYPE)
432 	   ,AUTOMATIC_ROLLOVER = decode(p_AUTOMATIC_ROLLOVER, NULL, AUTOMATIC_ROLLOVER, FND_API.G_MISS_CHAR,NULL,  p_AUTOMATIC_ROLLOVER)
433 	   ,DEFAULT_USAGE_RATE = decode(p_DEFAULT_USAGE_RATE, NULL, DEFAULT_USAGE_RATE, FND_API.G_MISS_NUM,NULL,  p_DEFAULT_USAGE_RATE)
434 	   ,USE_PAST_READING = decode(p_USE_PAST_READING, NULL, USE_PAST_READING, FND_API.G_MISS_NUM, NULL,  p_USE_PAST_READING)
435 	   ,USED_IN_SCHEDULING = decode(p_USED_IN_SCHEDULING, NULL, USED_IN_SCHEDULING, FND_API.G_MISS_CHAR,NULL, p_USED_IN_SCHEDULING)
436 	   ,DEFAULTED_GROUP_ID = decode(p_DEFAULTED_GROUP_ID, NULL, DEFAULTED_GROUP_ID, FND_API.G_MISS_NUM, NULL, p_DEFAULTED_GROUP_ID)
437 	   ,CREATED_FROM_COUNTER_TMPL_ID = decode(p_CREATED_FROM_COUNTER_TMPL_ID, NULL, CREATED_FROM_COUNTER_TMPL_ID,FND_API.G_MISS_NUM, NULL, p_CREATED_FROM_COUNTER_TMPL_ID)
438            ,SECURITY_GROUP_ID     = decode(p_SECURITY_GROUP_ID, NULL, SECURITY_GROUP_ID, FND_API.G_MISS_NUM, NULL, p_SECURITY_GROUP_ID)
439            ,STEP_VALUE            = decode(p_STEP_VALUE, NULL, STEP_VALUE, FND_API.G_MISS_NUM, NULL, p_STEP_VALUE)
440            ,TIME_BASED_MANUAL_ENTRY = decode(p_TIME_BASED_MANUAL_ENTRY, NULL, TIME_BASED_MANUAL_ENTRY, FND_API.G_MISS_CHAR, NULL, p_TIME_BASED_MANUAL_ENTRY)
441            ,EAM_REQUIRED_FLAG = decode(p_EAM_REQUIRED_FLAG, NULL, EAM_REQUIRED_FLAG, FND_API.G_MISS_CHAR, NULL, p_EAM_REQUIRED_FLAG)
442            ,COMMENTS = decode(p_COMMENTS, NULL, COMMENTS, FND_API.G_MISS_CHAR, NULL, p_COMMENTS )
443     WHERE  COUNTER_ID = p_COUNTER_ID;
444 
445     UPDATE csi_counters_tl
446     SET    source_lang        = userenv('LANG'),
447            name               = decode( p_name, NULL, name, fnd_api.g_miss_char, NULL, p_name),
448            description        = decode( p_description, NULL, description, fnd_api.g_miss_char, NULL, p_description),
449            created_by         = decode( p_created_by, NULL,created_by, fnd_api.g_miss_num,created_by, p_created_by),
450            creation_date      = decode( p_creation_date, NULL,creation_date, fnd_api.g_miss_date, creation_date, p_creation_date),
451            last_updated_by    = decode( p_last_updated_by, NULL,last_updated_by, fnd_api.g_miss_num, FND_GLOBAL.USER_ID, p_last_updated_by),
452            last_update_date   = decode( p_last_update_date, NULL,last_update_date, fnd_api.g_miss_date, last_update_date,  p_last_update_date),
456 
453            last_update_login  = decode( p_last_update_login, NULL,last_update_login, fnd_api.g_miss_num, FND_GLOBAL.USER_ID,  p_last_update_login)
454     WHERE counter_id = p_counter_id
455     AND   userenv('LANG') IN (LANGUAGE,SOURCE_LANG);
457     If (SQL%NOTFOUND) then
458         RAISE NO_DATA_FOUND;
459     End If;
460 END Update_Row;
461 
462 PROCEDURE Delete_Row(p_COUNTER_ID  NUMBER)  IS
463 BEGIN
464    DELETE FROM CSI_COUNTERS_B
465    WHERE  COUNTER_ID = p_COUNTER_ID;
466    IF (SQL%NOTFOUND) then
467        RAISE NO_DATA_FOUND;
468    END IF;
469 END Delete_Row;
470 
471 PROCEDURE Lock_Row(
472   	 p_COUNTER_ID	                NUMBER
473 	,p_GROUP_ID                     NUMBER
474 	,p_COUNTER_TYPE                 VARCHAR2
475 	,p_INITIAL_READING              NUMBER
476 	,p_INITIAL_READING_DATE         DATE
477 	,p_TOLERANCE_PLUS               NUMBER
478 	,p_TOLERANCE_MINUS              NUMBER
479 	,p_UOM_CODE                     VARCHAR2
480 	,p_DERIVE_COUNTER_ID            NUMBER
481 	,p_DERIVE_FUNCTION              VARCHAR2
482 	,p_DERIVE_PROPERTY_ID           NUMBER
483 	,p_VALID_FLAG                   VARCHAR2
484 	,p_FORMULA_INCOMPLETE_FLAG      VARCHAR2
485 	,p_FORMULA_TEXT                 VARCHAR2
486 	,p_ROLLOVER_LAST_READING        NUMBER
487 	,p_ROLLOVER_FIRST_READING	NUMBER
488 	,p_USAGE_ITEM_ID                NUMBER
489 	,p_CTR_VAL_MAX_SEQ_NO           NUMBER
490 	,p_START_DATE_ACTIVE            DATE
491 	,p_END_DATE_ACTIVE              DATE
492 	,p_OBJECT_VERSION_NUMBER        NUMBER
493 	,p_LAST_UPDATE_DATE             DATE
494 	,p_LAST_UPDATED_BY              NUMBER
495 	,p_CREATION_DATE                DATE
496 	,p_CREATED_BY                   NUMBER
497 	,p_LAST_UPDATE_LOGIN            NUMBER
498 	,p_ATTRIBUTE1                   VARCHAR2
499 	,p_ATTRIBUTE2                   VARCHAR2
500 	,p_ATTRIBUTE3                   VARCHAR2
501 	,p_ATTRIBUTE4                   VARCHAR2
502 	,p_ATTRIBUTE5                   VARCHAR2
503 	,p_ATTRIBUTE6                   VARCHAR2
504 	,p_ATTRIBUTE7                   VARCHAR2
505 	,p_ATTRIBUTE8                   VARCHAR2
506 	,p_ATTRIBUTE9                   VARCHAR2
507 	,p_ATTRIBUTE10                  VARCHAR2
508 	,p_ATTRIBUTE11                  VARCHAR2
509 	,p_ATTRIBUTE12                  VARCHAR2
510 	,p_ATTRIBUTE13                  VARCHAR2
511 	,p_ATTRIBUTE14                  VARCHAR2
512 	,p_ATTRIBUTE15                  VARCHAR2
513         ,p_ATTRIBUTE16                  VARCHAR2
514         ,p_ATTRIBUTE17                  VARCHAR2
515         ,p_ATTRIBUTE18                  VARCHAR2
516         ,p_ATTRIBUTE19                  VARCHAR2
517         ,p_ATTRIBUTE20                  VARCHAR2
518         ,p_ATTRIBUTE21                  VARCHAR2
519         ,p_ATTRIBUTE22                  VARCHAR2
520         ,p_ATTRIBUTE23                  VARCHAR2
521         ,p_ATTRIBUTE24                  VARCHAR2
522         ,p_ATTRIBUTE25                  VARCHAR2
523         ,p_ATTRIBUTE26                  VARCHAR2
524         ,p_ATTRIBUTE27                  VARCHAR2
525         ,p_ATTRIBUTE28                  VARCHAR2
526         ,p_ATTRIBUTE29                  VARCHAR2
527         ,p_ATTRIBUTE30                  VARCHAR2
528 	,p_ATTRIBUTE_CATEGORY           VARCHAR2
529 	,p_MIGRATED_FLAG                VARCHAR2
530 	,p_CUSTOMER_VIEW                VARCHAR2
531 	,p_DIRECTION                    VARCHAR2
532 	,p_FILTER_TYPE                  VARCHAR2
533 	,p_FILTER_READING_COUNT         NUMBER
537 	,p_AUTOMATIC_ROLLOVER           VARCHAR2
534 	,p_FILTER_TIME_UOM              VARCHAR2
535 	,p_ESTIMATION_ID                NUMBER
536 	,p_READING_TYPE                 NUMBER
538 	,p_DEFAULT_USAGE_RATE           NUMBER
539 	,p_USE_PAST_READING             NUMBER
540 	,p_USED_IN_SCHEDULING           VARCHAR2
541 	,p_DEFAULTED_GROUP_ID           NUMBER
542         ,p_CREATED_FROM_COUNTER_TMPL_ID NUMBER
543         ,p_SECURITY_GROUP_ID            NUMBER
544         ,p_STEP_VALUE                   NUMBER
545         ,p_NAME	                        VARCHAR2
546         ,p_DESCRIPTION                  VARCHAR2
547         ,p_TIME_BASED_MANUAL_ENTRY      VARCHAR2
548         ,p_EAM_REQUIRED_FLAG            VARCHAR2
549         ,p_COMMENTS                     VARCHAR2
550 	) IS
551 
552    CURSOR C1 IS
553    SELECT *
554    FROM   CSI_COUNTERS_B
555    WHERE  COUNTER_ID = p_COUNTER_ID
556    FOR UPDATE of COUNTER_ID NOWAIT;
557    Recinfo C1%ROWTYPE;
558 
559    CURSOR c2 IS
560    SELECT name,
561           description,
562           decode(language, userenv('LANG'), 'Y', 'N') baselang
563    FROM   csi_counters_tl
564    WHERE  counter_id = p_counter_id
565    AND    userenv('LANG') IN (LANGUAGE, SOURCE_LANG)
566    FOR UPDATE OF counter_id NOWAIT;
567 BEGIN
568     OPEN c1;
569     FETCH c1 INTO recinfo;
570     IF (c1%notfound) THEN
571         CLOSE c1;
572         fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
573         app_exception.raise_exception;
574     END IF;
575     CLOSE c1;
576 
577 
578     IF  (recinfo.object_version_number=p_object_version_number)
579     THEN
580       RETURN;
581     ELSE
582       fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
583       app_exception.raise_exception;
584     END IF;
585 
586    FOR tlinfo IN c2 LOOP
587     IF (tlinfo.baselang = 'Y') THEN
588        IF (    (tlinfo.name = p_name)
589           AND ((tlinfo.description = p_description)
590                OR ((tlinfo.description IS NULL) AND (p_description IS NULL)))
591        ) THEN
592         NULL;
593        ELSE
594         fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
595         app_exception.raise_exception;
596        END IF;
597     END IF;
598    END LOOP;
599   RETURN;
600 
601 END Lock_Row;
602 
603 PROCEDURE add_language IS
604 BEGIN
605    DELETE FROM csi_counters_tl t
606    WHERE NOT EXISTS (SELECT NULL
607                      FROM   csi_counters_b b
608                      WHERE  b.counter_id = t.counter_id);
609 
613                                 FROM   csi_counters_tl b
610    UPDATE csi_counters_tl t
611    SET    (name,description) = (SELECT b.name,
612                                        b.description
614                                 WHERE  b.counter_id = t.counter_id
615                                 AND    b.language  = t.source_lang)
616    WHERE (t.counter_id,t.language) IN  (SELECT subt.counter_id,
617                                                subt.language
618                                        FROM    csi_counters_tl subb, csi_counters_tl subt
619                                        WHERE   subb.counter_id = subt.counter_id
620                                        AND     subb.language  = subt.source_lang
621                                        AND    (subb.name <> subt.name
625                                                )
622                                                OR subb.description <> subt.description
623                                                OR (subb.description IS NULL AND subt.description IS NOT NULL)
624                                                OR (subb.description iS NOT NULL AND subt.description IS NULL)
626                                         );
627 
628    INSERT INTO csi_counters_tl(
629 	counter_id,
630         name,
631         description,
632         last_update_date,
633         last_updated_by,
634         creation_date,
635         created_by,
636         last_update_login,
637         language,
638         source_lang
639         )
640    SELECT  b.counter_id,
641            b.name,
642            b.description,
643            b.last_update_date,
644            b.last_updated_by,
645            b.creation_date,
646            b.created_by,
647            b.last_update_login,
648            l.language_code,
649            b.source_lang
650    FROM  csi_counters_tl b, fnd_languages l
651    WHERE l.installed_flag in ('I', 'B')
652    AND   b.language = userenv('LANG')
653    AND   NOT EXISTS (SELECT NULL
654                      FROM   csi_counters_tl t
655                      WHERE  t.counter_id = b.counter_id
656                      AND    t.language  = l.language_code);
657 END add_language;
658 
659 PROCEDURE translate_row (
663    p_owner        IN     VARCHAR2) IS
660    p_counter_id   IN     NUMBER,
661    p_name         IN     VARCHAR2,
662    p_description  IN     VARCHAR2,
664 BEGIN
665   UPDATE csi_counters_tl
666   SET   name              = p_name,
667         description       = p_description,
668         last_update_date  = sysdate,
669         last_updated_by   = decode(p_owner, 'SEED', 1, 0),
670         last_update_login = 0,
671         source_lang       = userenv('LANG')
672   WHERE counter_id = p_counter_id
673   AND   userenv('LANG') IN (language, source_lang);
674 END translate_row;
675 
676 End CSI_COUNTERS_PKG;