DBA Data[Home] [Help]

PACKAGE BODY: APPS.CSI_COUNTER_TEMPLATE_PKG

Source


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