DBA Data[Home] [Help]

PACKAGE BODY: APPS.CM_CMPT_MST_PKG

Source


1 PACKAGE BODY cm_cmpt_mst_pkg AS
2 /* $Header: gmfcmptb.pls 115.2 2002/12/04 17:04:11 umoogala ship $ */
3 PROCEDURE INSERT_ROW (
4   X_ROWID in out NOCOPY VARCHAR2,
5   X_COST_CMPNTCLS_ID in NUMBER,
6   X_COST_CMPNTCLS_CODE in VARCHAR2,
7   X_SORT_SEQUENCE in NUMBER,
8   X_USAGE_IND in NUMBER,
9   X_PRIMARY_CMPNTCLS_ID in NUMBER,
10   X_PRODUCT_COST_IND in NUMBER,
11   X_UPDATE_COST_IND in NUMBER,
12   X_CMPNT_GROUP in VARCHAR2,
13   X_TEXT_CODE in NUMBER,
14   X_TRANS_CNT in NUMBER,
15   X_DELETE_MARK in NUMBER,
16   X_PPV_IND in NUMBER,
17   X_ATTRIBUTE1 in VARCHAR2,
18   X_ATTRIBUTE2 in VARCHAR2,
19   X_ATTRIBUTE3 in VARCHAR2,
20   X_ATTRIBUTE4 in VARCHAR2,
21   X_ATTRIBUTE5 in VARCHAR2,
22   X_ATTRIBUTE6 in VARCHAR2,
23   X_ATTRIBUTE7 in VARCHAR2,
24   X_ATTRIBUTE8 in VARCHAR2,
25   X_ATTRIBUTE9 in VARCHAR2,
26   X_ATTRIBUTE10 in VARCHAR2,
27   X_ATTRIBUTE11 in VARCHAR2,
28   X_ATTRIBUTE12 in VARCHAR2,
29   X_ATTRIBUTE13 in VARCHAR2,
30   X_ATTRIBUTE14 in VARCHAR2,
31   X_ATTRIBUTE15 in VARCHAR2,
32   X_ATTRIBUTE16 in VARCHAR2,
33   X_ATTRIBUTE17 in VARCHAR2,
34   X_ATTRIBUTE18 in VARCHAR2,
35   X_ATTRIBUTE19 in VARCHAR2,
36   X_ATTRIBUTE20 in VARCHAR2,
37   X_ATTRIBUTE21 in VARCHAR2,
38   X_ATTRIBUTE22 in VARCHAR2,
39   X_ATTRIBUTE23 in VARCHAR2,
40   X_ATTRIBUTE24 in VARCHAR2,
41   X_ATTRIBUTE25 in VARCHAR2,
42   X_ATTRIBUTE26 in VARCHAR2,
43   X_ATTRIBUTE27 in VARCHAR2,
44   X_ATTRIBUTE28 in VARCHAR2,
45   X_ATTRIBUTE29 in VARCHAR2,
46   X_ATTRIBUTE30 in VARCHAR2,
47   X_ATTRIBUTE_CATEGORY in VARCHAR2,
48   X_COST_CMPNTCLS_DESC in VARCHAR2,
49   X_CREATION_DATE in DATE,
50   X_CREATED_BY in NUMBER,
51   X_LAST_UPDATE_DATE in DATE,
52   X_LAST_UPDATED_BY in NUMBER,
53   X_LAST_UPDATE_LOGIN in NUMBER
54 ) is
55   cursor C is select ROWID from CM_CMPT_MST_B
56     where COST_CMPNTCLS_ID = X_COST_CMPNTCLS_ID
57     ;
58 begin
59   insert into CM_CMPT_MST_B (
60     COST_CMPNTCLS_ID,
61     COST_CMPNTCLS_CODE,
62     SORT_SEQUENCE,
63     USAGE_IND,
64     PRIMARY_CMPNTCLS_ID,
65     PRODUCT_COST_IND,
66     UPDATE_COST_IND,
67     CMPNT_GROUP,
68     TEXT_CODE,
69     TRANS_CNT,
70     DELETE_MARK,
71     PPV_IND,
72     ATTRIBUTE1,
73     ATTRIBUTE2,
74     ATTRIBUTE3,
75     ATTRIBUTE4,
76     ATTRIBUTE5,
77     ATTRIBUTE6,
78     ATTRIBUTE7,
79     ATTRIBUTE8,
80     ATTRIBUTE9,
81     ATTRIBUTE10,
82     ATTRIBUTE11,
83     ATTRIBUTE12,
84     ATTRIBUTE13,
85     ATTRIBUTE14,
86     ATTRIBUTE15,
87     ATTRIBUTE16,
88     ATTRIBUTE17,
89     ATTRIBUTE18,
90     ATTRIBUTE19,
91     ATTRIBUTE20,
92     ATTRIBUTE21,
93     ATTRIBUTE22,
94     ATTRIBUTE23,
95     ATTRIBUTE24,
96     ATTRIBUTE25,
97     ATTRIBUTE26,
98     ATTRIBUTE27,
99     ATTRIBUTE28,
100     ATTRIBUTE29,
101     ATTRIBUTE30,
102     ATTRIBUTE_CATEGORY,
103     CREATION_DATE,
104     CREATED_BY,
105     LAST_UPDATE_DATE,
106     LAST_UPDATED_BY,
107     LAST_UPDATE_LOGIN
108   ) values (
109     X_COST_CMPNTCLS_ID,
110     X_COST_CMPNTCLS_CODE,
111     X_SORT_SEQUENCE,
112     X_USAGE_IND,
113     X_PRIMARY_CMPNTCLS_ID,
114     X_PRODUCT_COST_IND,
115     X_UPDATE_COST_IND,
116     X_CMPNT_GROUP,
117     X_TEXT_CODE,
118     X_TRANS_CNT,
119     X_DELETE_MARK,
120     X_PPV_IND,
121     X_ATTRIBUTE1,
122     X_ATTRIBUTE2,
123     X_ATTRIBUTE3,
124     X_ATTRIBUTE4,
125     X_ATTRIBUTE5,
126     X_ATTRIBUTE6,
127     X_ATTRIBUTE7,
128     X_ATTRIBUTE8,
129     X_ATTRIBUTE9,
130     X_ATTRIBUTE10,
131     X_ATTRIBUTE11,
132     X_ATTRIBUTE12,
133     X_ATTRIBUTE13,
134     X_ATTRIBUTE14,
135     X_ATTRIBUTE15,
136     X_ATTRIBUTE16,
137     X_ATTRIBUTE17,
138     X_ATTRIBUTE18,
139     X_ATTRIBUTE19,
140     X_ATTRIBUTE20,
141     X_ATTRIBUTE21,
142     X_ATTRIBUTE22,
143     X_ATTRIBUTE23,
144     X_ATTRIBUTE24,
145     X_ATTRIBUTE25,
146     X_ATTRIBUTE26,
147     X_ATTRIBUTE27,
148     X_ATTRIBUTE28,
149     X_ATTRIBUTE29,
150     X_ATTRIBUTE30,
151     X_ATTRIBUTE_CATEGORY,
152     X_CREATION_DATE,
153     X_CREATED_BY,
154     X_LAST_UPDATE_DATE,
155     X_LAST_UPDATED_BY,
156     X_LAST_UPDATE_LOGIN
157   );
158 
159   insert into CM_CMPT_MST_TL (
160     COST_CMPNTCLS_ID,
161     COST_CMPNTCLS_DESC,
162     CREATION_DATE,
163     CREATED_BY,
164     LAST_UPDATE_DATE,
165     LAST_UPDATED_BY,
166     LAST_UPDATE_LOGIN,
167     LANGUAGE,
168     SOURCE_LANG
169   ) select
170     X_COST_CMPNTCLS_ID,
171     X_COST_CMPNTCLS_DESC,
172     X_CREATION_DATE,
173     X_CREATED_BY,
174     X_LAST_UPDATE_DATE,
175     X_LAST_UPDATED_BY,
176     X_LAST_UPDATE_LOGIN,
177     L.LANGUAGE_CODE,
178     userenv('LANG')
179   from FND_LANGUAGES L
180   where L.INSTALLED_FLAG in ('I', 'B')
181   and not exists
182     (select NULL
183     from CM_CMPT_MST_TL T
184     where T.COST_CMPNTCLS_ID = X_COST_CMPNTCLS_ID
185     and T.LANGUAGE = L.LANGUAGE_CODE);
186 
187   open c;
188   fetch c into X_ROWID;
189   if (c%notfound) then
190     close c;
191     raise no_data_found;
192   end if;
193   close c;
194 
195 end INSERT_ROW;
196 
197 procedure LOCK_ROW (
198   X_COST_CMPNTCLS_ID in NUMBER,
199   X_COST_CMPNTCLS_CODE in VARCHAR2,
200   X_SORT_SEQUENCE in NUMBER,
201   X_USAGE_IND in NUMBER,
202   X_PRIMARY_CMPNTCLS_ID in NUMBER,
203   X_PRODUCT_COST_IND in NUMBER,
204   X_UPDATE_COST_IND in NUMBER,
205   X_CMPNT_GROUP in VARCHAR2,
206   X_TEXT_CODE in NUMBER,
207   X_TRANS_CNT in NUMBER,
208   X_DELETE_MARK in NUMBER,
209   X_PPV_IND in NUMBER,
210   X_ATTRIBUTE1 in VARCHAR2,
211   X_ATTRIBUTE2 in VARCHAR2,
212   X_ATTRIBUTE3 in VARCHAR2,
213   X_ATTRIBUTE4 in VARCHAR2,
214   X_ATTRIBUTE5 in VARCHAR2,
215   X_ATTRIBUTE6 in VARCHAR2,
216   X_ATTRIBUTE7 in VARCHAR2,
217   X_ATTRIBUTE8 in VARCHAR2,
218   X_ATTRIBUTE9 in VARCHAR2,
219   X_ATTRIBUTE10 in VARCHAR2,
220   X_ATTRIBUTE11 in VARCHAR2,
221   X_ATTRIBUTE12 in VARCHAR2,
222   X_ATTRIBUTE13 in VARCHAR2,
223   X_ATTRIBUTE14 in VARCHAR2,
224   X_ATTRIBUTE15 in VARCHAR2,
225   X_ATTRIBUTE16 in VARCHAR2,
226   X_ATTRIBUTE17 in VARCHAR2,
227   X_ATTRIBUTE18 in VARCHAR2,
228   X_ATTRIBUTE19 in VARCHAR2,
229   X_ATTRIBUTE20 in VARCHAR2,
230   X_ATTRIBUTE21 in VARCHAR2,
231   X_ATTRIBUTE22 in VARCHAR2,
232   X_ATTRIBUTE23 in VARCHAR2,
233   X_ATTRIBUTE24 in VARCHAR2,
234   X_ATTRIBUTE25 in VARCHAR2,
235   X_ATTRIBUTE26 in VARCHAR2,
236   X_ATTRIBUTE27 in VARCHAR2,
237   X_ATTRIBUTE28 in VARCHAR2,
238   X_ATTRIBUTE29 in VARCHAR2,
239   X_ATTRIBUTE30 in VARCHAR2,
240   X_ATTRIBUTE_CATEGORY in VARCHAR2,
241   X_COST_CMPNTCLS_DESC in VARCHAR2
242 ) is
243   cursor c is select
244       COST_CMPNTCLS_CODE,
245       SORT_SEQUENCE,
246       USAGE_IND,
247       PRIMARY_CMPNTCLS_ID,
248       PRODUCT_COST_IND,
249       UPDATE_COST_IND,
250       CMPNT_GROUP,
251       TEXT_CODE,
252       TRANS_CNT,
253       DELETE_MARK,
254       PPV_IND,
255       ATTRIBUTE1,
256       ATTRIBUTE2,
257       ATTRIBUTE3,
258       ATTRIBUTE4,
259       ATTRIBUTE5,
260       ATTRIBUTE6,
261       ATTRIBUTE7,
262       ATTRIBUTE8,
263       ATTRIBUTE9,
264       ATTRIBUTE10,
265       ATTRIBUTE11,
266       ATTRIBUTE12,
267       ATTRIBUTE13,
268       ATTRIBUTE14,
269       ATTRIBUTE15,
270       ATTRIBUTE16,
271       ATTRIBUTE17,
272       ATTRIBUTE18,
273       ATTRIBUTE19,
274       ATTRIBUTE20,
275       ATTRIBUTE21,
276       ATTRIBUTE22,
277       ATTRIBUTE23,
278       ATTRIBUTE24,
279       ATTRIBUTE25,
280       ATTRIBUTE26,
281       ATTRIBUTE27,
282       ATTRIBUTE28,
283       ATTRIBUTE29,
284       ATTRIBUTE30,
285       ATTRIBUTE_CATEGORY
286     from CM_CMPT_MST_B
287     where COST_CMPNTCLS_ID = X_COST_CMPNTCLS_ID
288     for update of COST_CMPNTCLS_ID nowait;
289   recinfo c%rowtype;
290 
291   cursor c1 is select
292       COST_CMPNTCLS_DESC,
293       decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
294     from CM_CMPT_MST_TL
295     where COST_CMPNTCLS_ID = X_COST_CMPNTCLS_ID
296     and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
297     for update of COST_CMPNTCLS_ID nowait;
298 begin
299   open c;
300   fetch c into recinfo;
301   if (c%notfound) then
302     close c;
303     fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
304     app_exception.raise_exception;
305   end if;
306   close c;
307   if (    (recinfo.COST_CMPNTCLS_CODE = X_COST_CMPNTCLS_CODE)
308       AND (recinfo.SORT_SEQUENCE = X_SORT_SEQUENCE)
309       AND (recinfo.USAGE_IND = X_USAGE_IND)
310       AND (recinfo.PRIMARY_CMPNTCLS_ID = X_PRIMARY_CMPNTCLS_ID)
311       AND (recinfo.PRODUCT_COST_IND = X_PRODUCT_COST_IND)
312       AND (recinfo.UPDATE_COST_IND = X_UPDATE_COST_IND)
313       AND ((recinfo.CMPNT_GROUP = X_CMPNT_GROUP)
314            OR ((recinfo.CMPNT_GROUP is null) AND (X_CMPNT_GROUP is null)))
315       AND ((recinfo.TEXT_CODE = X_TEXT_CODE)
316            OR ((recinfo.TEXT_CODE is null) AND (X_TEXT_CODE is null)))
317       AND ((recinfo.TRANS_CNT = X_TRANS_CNT)
318            OR ((recinfo.TRANS_CNT is null) AND (X_TRANS_CNT is null)))
319       AND (recinfo.DELETE_MARK = X_DELETE_MARK)
320       AND (recinfo.PPV_IND = X_PPV_IND)
321       AND ((recinfo.ATTRIBUTE1 = X_ATTRIBUTE1)
322            OR ((recinfo.ATTRIBUTE1 is null) AND (X_ATTRIBUTE1 is null)))
323       AND ((recinfo.ATTRIBUTE2 = X_ATTRIBUTE2)
324            OR ((recinfo.ATTRIBUTE2 is null) AND (X_ATTRIBUTE2 is null)))
325       AND ((recinfo.ATTRIBUTE3 = X_ATTRIBUTE3)
326            OR ((recinfo.ATTRIBUTE3 is null) AND (X_ATTRIBUTE3 is null)))
327       AND ((recinfo.ATTRIBUTE4 = X_ATTRIBUTE4)
328            OR ((recinfo.ATTRIBUTE4 is null) AND (X_ATTRIBUTE4 is null)))
329       AND ((recinfo.ATTRIBUTE5 = X_ATTRIBUTE5)
330            OR ((recinfo.ATTRIBUTE5 is null) AND (X_ATTRIBUTE5 is null)))
331       AND ((recinfo.ATTRIBUTE6 = X_ATTRIBUTE6)
332            OR ((recinfo.ATTRIBUTE6 is null) AND (X_ATTRIBUTE6 is null)))
333       AND ((recinfo.ATTRIBUTE7 = X_ATTRIBUTE7)
334            OR ((recinfo.ATTRIBUTE7 is null) AND (X_ATTRIBUTE7 is null)))
335       AND ((recinfo.ATTRIBUTE8 = X_ATTRIBUTE8)
336            OR ((recinfo.ATTRIBUTE8 is null) AND (X_ATTRIBUTE8 is null)))
337       AND ((recinfo.ATTRIBUTE9 = X_ATTRIBUTE9)
338            OR ((recinfo.ATTRIBUTE9 is null) AND (X_ATTRIBUTE9 is null)))
339       AND ((recinfo.ATTRIBUTE10 = X_ATTRIBUTE10)
343       AND ((recinfo.ATTRIBUTE12 = X_ATTRIBUTE12)
340            OR ((recinfo.ATTRIBUTE10 is null) AND (X_ATTRIBUTE10 is null)))
341       AND ((recinfo.ATTRIBUTE11 = X_ATTRIBUTE11)
342            OR ((recinfo.ATTRIBUTE11 is null) AND (X_ATTRIBUTE11 is null)))
344            OR ((recinfo.ATTRIBUTE12 is null) AND (X_ATTRIBUTE12 is null)))
345       AND ((recinfo.ATTRIBUTE13 = X_ATTRIBUTE13)
346            OR ((recinfo.ATTRIBUTE13 is null) AND (X_ATTRIBUTE13 is null)))
347       AND ((recinfo.ATTRIBUTE14 = X_ATTRIBUTE14)
348            OR ((recinfo.ATTRIBUTE14 is null) AND (X_ATTRIBUTE14 is null)))
349       AND ((recinfo.ATTRIBUTE15 = X_ATTRIBUTE15)
350            OR ((recinfo.ATTRIBUTE15 is null) AND (X_ATTRIBUTE15 is null)))
351       AND ((recinfo.ATTRIBUTE16 = X_ATTRIBUTE16)
352            OR ((recinfo.ATTRIBUTE16 is null) AND (X_ATTRIBUTE16 is null)))
353       AND ((recinfo.ATTRIBUTE17 = X_ATTRIBUTE17)
354            OR ((recinfo.ATTRIBUTE17 is null) AND (X_ATTRIBUTE17 is null)))
355       AND ((recinfo.ATTRIBUTE18 = X_ATTRIBUTE18)
356            OR ((recinfo.ATTRIBUTE18 is null) AND (X_ATTRIBUTE18 is null)))
357       AND ((recinfo.ATTRIBUTE19 = X_ATTRIBUTE19)
358            OR ((recinfo.ATTRIBUTE19 is null) AND (X_ATTRIBUTE19 is null)))
359       AND ((recinfo.ATTRIBUTE20 = X_ATTRIBUTE20)
360            OR ((recinfo.ATTRIBUTE20 is null) AND (X_ATTRIBUTE20 is null)))
361       AND ((recinfo.ATTRIBUTE21 = X_ATTRIBUTE21)
362            OR ((recinfo.ATTRIBUTE21 is null) AND (X_ATTRIBUTE21 is null)))
363       AND ((recinfo.ATTRIBUTE22 = X_ATTRIBUTE22)
364            OR ((recinfo.ATTRIBUTE22 is null) AND (X_ATTRIBUTE22 is null)))
365       AND ((recinfo.ATTRIBUTE23 = X_ATTRIBUTE23)
366            OR ((recinfo.ATTRIBUTE23 is null) AND (X_ATTRIBUTE23 is null)))
367       AND ((recinfo.ATTRIBUTE24 = X_ATTRIBUTE24)
368            OR ((recinfo.ATTRIBUTE24 is null) AND (X_ATTRIBUTE24 is null)))
369       AND ((recinfo.ATTRIBUTE25 = X_ATTRIBUTE25)
370            OR ((recinfo.ATTRIBUTE25 is null) AND (X_ATTRIBUTE25 is null)))
371       AND ((recinfo.ATTRIBUTE26 = X_ATTRIBUTE26)
372            OR ((recinfo.ATTRIBUTE26 is null) AND (X_ATTRIBUTE26 is null)))
373       AND ((recinfo.ATTRIBUTE27 = X_ATTRIBUTE27)
374            OR ((recinfo.ATTRIBUTE27 is null) AND (X_ATTRIBUTE27 is null)))
375       AND ((recinfo.ATTRIBUTE28 = X_ATTRIBUTE28)
376            OR ((recinfo.ATTRIBUTE28 is null) AND (X_ATTRIBUTE28 is null)))
377       AND ((recinfo.ATTRIBUTE29 = X_ATTRIBUTE29)
378            OR ((recinfo.ATTRIBUTE29 is null) AND (X_ATTRIBUTE29 is null)))
379       AND ((recinfo.ATTRIBUTE30 = X_ATTRIBUTE30)
380            OR ((recinfo.ATTRIBUTE30 is null) AND (X_ATTRIBUTE30 is null)))
381       AND ((recinfo.ATTRIBUTE_CATEGORY = X_ATTRIBUTE_CATEGORY)
382            OR ((recinfo.ATTRIBUTE_CATEGORY is null) AND (X_ATTRIBUTE_CATEGORY is null)))
383   ) then
384     null;
385   else
386     fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
387     app_exception.raise_exception;
388   end if;
389 
390   for tlinfo in c1 loop
391     if (tlinfo.BASELANG = 'Y') then
392       if (    (tlinfo.COST_CMPNTCLS_DESC = X_COST_CMPNTCLS_DESC)
393       ) then
394         null;
395       else
396         fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
397         app_exception.raise_exception;
398       end if;
399     end if;
400   end loop;
401   return;
402 end LOCK_ROW;
403 
404 procedure UPDATE_ROW (
405   X_COST_CMPNTCLS_ID in NUMBER,
406   X_COST_CMPNTCLS_CODE in VARCHAR2,
407   X_SORT_SEQUENCE in NUMBER,
408   X_USAGE_IND in NUMBER,
409   X_PRIMARY_CMPNTCLS_ID in NUMBER,
410   X_PRODUCT_COST_IND in NUMBER,
411   X_UPDATE_COST_IND in NUMBER,
412   X_CMPNT_GROUP in VARCHAR2,
413   X_TEXT_CODE in NUMBER,
414   X_TRANS_CNT in NUMBER,
418   X_ATTRIBUTE2 in VARCHAR2,
415   X_DELETE_MARK in NUMBER,
416   X_PPV_IND in NUMBER,
417   X_ATTRIBUTE1 in VARCHAR2,
419   X_ATTRIBUTE3 in VARCHAR2,
420   X_ATTRIBUTE4 in VARCHAR2,
421   X_ATTRIBUTE5 in VARCHAR2,
422   X_ATTRIBUTE6 in VARCHAR2,
423   X_ATTRIBUTE7 in VARCHAR2,
424   X_ATTRIBUTE8 in VARCHAR2,
425   X_ATTRIBUTE9 in VARCHAR2,
426   X_ATTRIBUTE10 in VARCHAR2,
427   X_ATTRIBUTE11 in VARCHAR2,
428   X_ATTRIBUTE12 in VARCHAR2,
429   X_ATTRIBUTE13 in VARCHAR2,
430   X_ATTRIBUTE14 in VARCHAR2,
431   X_ATTRIBUTE15 in VARCHAR2,
432   X_ATTRIBUTE16 in VARCHAR2,
433   X_ATTRIBUTE17 in VARCHAR2,
434   X_ATTRIBUTE18 in VARCHAR2,
435   X_ATTRIBUTE19 in VARCHAR2,
436   X_ATTRIBUTE20 in VARCHAR2,
437   X_ATTRIBUTE21 in VARCHAR2,
438   X_ATTRIBUTE22 in VARCHAR2,
439   X_ATTRIBUTE23 in VARCHAR2,
440   X_ATTRIBUTE24 in VARCHAR2,
441   X_ATTRIBUTE25 in VARCHAR2,
442   X_ATTRIBUTE26 in VARCHAR2,
443   X_ATTRIBUTE27 in VARCHAR2,
444   X_ATTRIBUTE28 in VARCHAR2,
445   X_ATTRIBUTE29 in VARCHAR2,
446   X_ATTRIBUTE30 in VARCHAR2,
447   X_ATTRIBUTE_CATEGORY in VARCHAR2,
448   X_COST_CMPNTCLS_DESC in VARCHAR2,
449   X_LAST_UPDATE_DATE in DATE,
450   X_LAST_UPDATED_BY in NUMBER,
451   X_LAST_UPDATE_LOGIN in NUMBER
452 ) is
453 begin
454   update CM_CMPT_MST_B set
455     COST_CMPNTCLS_CODE = X_COST_CMPNTCLS_CODE,
456     SORT_SEQUENCE = X_SORT_SEQUENCE,
457     USAGE_IND = X_USAGE_IND,
458     PRIMARY_CMPNTCLS_ID = X_PRIMARY_CMPNTCLS_ID,
459     PRODUCT_COST_IND = X_PRODUCT_COST_IND,
460     UPDATE_COST_IND = X_UPDATE_COST_IND,
461     CMPNT_GROUP = X_CMPNT_GROUP,
462     TEXT_CODE = X_TEXT_CODE,
463     TRANS_CNT = X_TRANS_CNT,
464     DELETE_MARK = X_DELETE_MARK,
465     PPV_IND = X_PPV_IND,
466     ATTRIBUTE1 = X_ATTRIBUTE1,
467     ATTRIBUTE2 = X_ATTRIBUTE2,
468     ATTRIBUTE3 = X_ATTRIBUTE3,
469     ATTRIBUTE4 = X_ATTRIBUTE4,
470     ATTRIBUTE5 = X_ATTRIBUTE5,
471     ATTRIBUTE6 = X_ATTRIBUTE6,
472     ATTRIBUTE7 = X_ATTRIBUTE7,
473     ATTRIBUTE8 = X_ATTRIBUTE8,
474     ATTRIBUTE9 = X_ATTRIBUTE9,
475     ATTRIBUTE10 = X_ATTRIBUTE10,
476     ATTRIBUTE11 = X_ATTRIBUTE11,
477     ATTRIBUTE12 = X_ATTRIBUTE12,
478     ATTRIBUTE13 = X_ATTRIBUTE13,
479     ATTRIBUTE14 = X_ATTRIBUTE14,
480     ATTRIBUTE15 = X_ATTRIBUTE15,
481     ATTRIBUTE16 = X_ATTRIBUTE16,
482     ATTRIBUTE17 = X_ATTRIBUTE17,
483     ATTRIBUTE18 = X_ATTRIBUTE18,
484     ATTRIBUTE19 = X_ATTRIBUTE19,
485     ATTRIBUTE20 = X_ATTRIBUTE20,
486     ATTRIBUTE21 = X_ATTRIBUTE21,
487     ATTRIBUTE22 = X_ATTRIBUTE22,
488     ATTRIBUTE23 = X_ATTRIBUTE23,
489     ATTRIBUTE24 = X_ATTRIBUTE24,
490     ATTRIBUTE25 = X_ATTRIBUTE25,
491     ATTRIBUTE26 = X_ATTRIBUTE26,
492     ATTRIBUTE27 = X_ATTRIBUTE27,
493     ATTRIBUTE28 = X_ATTRIBUTE28,
494     ATTRIBUTE29 = X_ATTRIBUTE29,
495     ATTRIBUTE30 = X_ATTRIBUTE30,
496     ATTRIBUTE_CATEGORY = X_ATTRIBUTE_CATEGORY,
497     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
498     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
499     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
500   where COST_CMPNTCLS_ID = X_COST_CMPNTCLS_ID;
501 
502   if (sql%notfound) then
503     raise no_data_found;
504   end if;
505 
506   update CM_CMPT_MST_TL set
507     COST_CMPNTCLS_DESC = X_COST_CMPNTCLS_DESC,
508     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
509     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
513   and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
510     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
511     SOURCE_LANG = userenv('LANG')
512   where COST_CMPNTCLS_ID = X_COST_CMPNTCLS_ID
514 
515   if (sql%notfound) then
516     raise no_data_found;
517   end if;
518 end UPDATE_ROW;
519 
520 procedure DELETE_ROW (
521   X_COST_CMPNTCLS_ID in NUMBER
522 ) is
523 begin
524 /*
525 *  delete from CM_CMPT_MST_TL
526 *  where COST_CMPNTCLS_ID = X_COST_CMPNTCLS_ID;
527 *
528 *  if (sql%notfound) then
529 *    raise no_data_found;
530 *  end if;
531 *
532 *  delete from CM_CMPT_MST_B
533 *  where COST_CMPNTCLS_ID = X_COST_CMPNTCLS_ID;
534 */
535 
536   update CM_CMPT_MST_B
537      set DELETE_MARK = 1
538    where COST_CMPNTCLS_ID = X_COST_CMPNTCLS_ID;
539 
540   if (sql%notfound) then
541     raise no_data_found;
542   end if;
543 end DELETE_ROW;
544 
545 procedure ADD_LANGUAGE
546 is
547 begin
548   delete from CM_CMPT_MST_TL T
549   where not exists
550     (select NULL
551     from CM_CMPT_MST_B B
552     where B.COST_CMPNTCLS_ID = T.COST_CMPNTCLS_ID
553     );
554 
555   update CM_CMPT_MST_TL T set (
556       COST_CMPNTCLS_DESC
557     ) = (select
558       B.COST_CMPNTCLS_DESC
559     from CM_CMPT_MST_TL B
560     where B.COST_CMPNTCLS_ID = T.COST_CMPNTCLS_ID
561     and B.LANGUAGE = T.SOURCE_LANG)
562   where (
563       T.COST_CMPNTCLS_ID,
564       T.LANGUAGE
565   ) in (select
566       SUBT.COST_CMPNTCLS_ID,
567       SUBT.LANGUAGE
568     from CM_CMPT_MST_TL SUBB, CM_CMPT_MST_TL SUBT
569     where SUBB.COST_CMPNTCLS_ID = SUBT.COST_CMPNTCLS_ID
570     and SUBB.LANGUAGE = SUBT.SOURCE_LANG
571     and (SUBB.COST_CMPNTCLS_DESC <> SUBT.COST_CMPNTCLS_DESC
572   ));
573 
574   insert into CM_CMPT_MST_TL (
575     COST_CMPNTCLS_ID,
576     COST_CMPNTCLS_DESC,
577     CREATION_DATE,
578     CREATED_BY,
579     LAST_UPDATE_DATE,
580     LAST_UPDATED_BY,
581     LAST_UPDATE_LOGIN,
582     LANGUAGE,
583     SOURCE_LANG
584   ) select
585     B.COST_CMPNTCLS_ID,
586     B.COST_CMPNTCLS_DESC,
587     B.CREATION_DATE,
588     B.CREATED_BY,
589     B.LAST_UPDATE_DATE,
590     B.LAST_UPDATED_BY,
591     B.LAST_UPDATE_LOGIN,
592     L.LANGUAGE_CODE,
593     B.SOURCE_LANG
594   from CM_CMPT_MST_TL B, FND_LANGUAGES L
595   where L.INSTALLED_FLAG in ('I', 'B')
596   and B.LANGUAGE = userenv('LANG')
597   and not exists
598     (select NULL
599     from CM_CMPT_MST_TL T
600     where T.COST_CMPNTCLS_ID = B.COST_CMPNTCLS_ID
601     and T.LANGUAGE = L.LANGUAGE_CODE);
602 end ADD_LANGUAGE;
603 
604 end CM_CMPT_MST_PKG;