DBA Data[Home] [Help]

PACKAGE BODY: APPS.CSTPCOIC

Source


1 PACKAGE BODY CSTPCOIC AS
2 /* $Header: CSTPCOIB.pls 120.5.12020000.4 2012/10/09 05:49:02 pbasrani ship $ */
3 
4 FUNCTION copy_to_interface(
5 	copy_option 		IN NUMBER,
6         from_org_id     	IN NUMBER,
7         to_org_id       	IN NUMBER,
8         from_cst_type_id   	IN NUMBER,
9         to_cst_type_id     	IN NUMBER,
10         range_option    	IN NUMBER,
11 	spec_item_id		IN NUMBER,
12 	spec_cat_set_id 	IN NUMBER,
13         spec_cat_id             IN NUMBER,
14 	grp_id  		IN NUMBER,
15         conv_type		IN VARCHAR2,
16         l_last_updated_by       IN NUMBER,
17         error_msg       	OUT NOCOPY VARCHAR2
18 ) RETURN INTEGER IS
19 
20 location NUMBER := 0;
21 l_from_currency_code VARCHAR2(15);
22 l_to_currency_code   VARCHAR2(15);
23 l_conversion_rate    NUMBER := 1;
24 l_no_of_rows         NUMBER := 0;
25 l_sql_stmnt          VARCHAR2(4000);
26 
27 /* 11.5.10+ New variables to support UOM conversion */
28 /* This cursor selects from a global temp table that *
29  * was added for 11.5.10+ CST_UOM_CONV_RATES_TEMP.   */
30 CURSOR cur_uom_conv IS
31    SELECT item_name
32    FROM cst_uom_conv_rates_temp
33    WHERE uom_conversion_rate IS NULL
34    OR uom_conversion_rate IN (0, -99999);
35 c_missing_uom_conv   cur_uom_conv%ROWTYPE; -- cursor variable
36 uom_exception        EXCEPTION;  -- raised when no UOM conversion defined
37 CONC_STATUS          BOOLEAN;    -- variable for SET_COMPLETION_STATUS
38 
39 BEGIN
40 /* Obtain currency information */
41 /*
42 select currency_code
43 into   l_from_currency_code
44 from   cst_organization_definitions
45 where  organization_id = from_org_id;
46 
47 select currency_code
48 into   l_to_currency_code
49 from   cst_organization_definitions
50 where  organization_id = to_org_id;
51 */
52 --bug5839929
53 select distinct
54      sob_from.currency_code,
55      sob_to.currency_code
56 into l_from_currency_code,
57      l_to_currency_code
58 from org_organization_definitions ood_from,
59      gl_sets_of_books sob_from,
60      org_organization_definitions ood_to,
61      gl_sets_of_books sob_to
62 where ood_from.organization_id = from_org_id
63 and   sob_from.set_of_books_id = ood_from.set_of_books_id
64 and   ood_to.organization_id   = to_org_id
65 and   sob_to.set_of_books_id   = ood_to.set_of_books_id;
66 
67 l_conversion_rate  :=  gl_currency_api.get_rate
68 			   ( l_from_currency_code,
69 			     l_to_currency_code,
70 			     sysdate,
71 			     conv_type );
72 
73 if (l_conversion_rate IS NULL) then
74       l_conversion_rate := 1;
75 end if;
76 
77 /* 11.5.10+ Copy Cost UOM Conversion                                           *
78 /* Populate the global temp table with the UOM conversion rates for any items  *
79  * where the from UOM <> to UOM                                                *
80  */
81 l_sql_stmnt := 'INSERT INTO CST_UOM_CONV_RATES_TEMP (INVENTORY_ITEM_ID, UOM_CONVERSION_RATE, ITEM_NAME)'||
82                ' SELECT src.inventory_item_id,inv_convert.inv_um_convert(src.inventory_item_id, 30, NULL, src.primary_uom_code, dst.primary_uom_code, NULL, NULL),'||
83                ' substr(src.concatenated_segments,1,50) FROM mtl_system_items_kfv src, mtl_system_items_b dst, cst_item_costs cic'||
84                ' WHERE cic.cost_type_id = :from_cst_type_id'||
85 	       ' AND cic.organization_id = :from_org_id'||
86                ' AND src.organization_id = cic.organization_id'||
87                ' AND dst.organization_id = :to_org_id'||
88                ' AND src.inventory_item_id = cic.inventory_item_id'||
89                ' AND src.inventory_item_id = dst.inventory_item_id'||
90                ' AND cic.inventory_item_id = dst.inventory_item_id'||
91                ' AND src.primary_uom_code <> dst.primary_uom_code';
92 IF ( copy_option = 2 ) THEN
93  l_sql_stmnt := l_sql_stmnt||
94                ' AND NOT EXISTS ( SELECT NULL'||
95                                   ' FROM CST_ITEM_COSTS CIC2'||
96                                   ' WHERE CIC2.INVENTORY_ITEM_ID = CIC.INVENTORY_ITEM_ID'||
97                                     ' AND CIC2.ORGANIZATION_ID = :to_org_id2'||
98                                     ' AND CIC2.COST_TYPE_ID = :to_cst_type_id'||
99                                 ')';
100 ELSIF (copy_option in (1,3)) THEN
101   l_sql_stmnt := l_sql_stmnt;
102 ELSE
103   l_sql_stmnt := l_sql_stmnt ||' AND 1=2';
104 END IF;
105 
106 IF(range_option =1 ) THEN /* -- ALL ITEMS -- */
107   l_sql_stmnt := l_sql_stmnt;
108 ELSIF (range_option = 2) THEN /* -- SPECIFIC ITEM -- */
109   l_sql_stmnt := l_sql_stmnt ||' AND CIC.INVENTORY_ITEM_ID = :spec_item_id';
110 ELSIF (range_option = 5) THEN /* -- SPECIFIC CATEGORY -- */
111   l_sql_stmnt := l_sql_stmnt ||' AND CIC.INVENTORY_ITEM_ID IN '||
112                                 ' (  SELECT INVENTORY_ITEM_ID'||
113 		                ' FROM MTL_ITEM_CATEGORIES MIC'||
114 		                ' WHERE MIC.ORGANIZATION_ID = :to_org_id3'||
115 		                '   AND MIC.CATEGORY_SET_ID = :spec_cat_set_id'||
116 		                '   AND MIC.CATEGORY_ID =  DECODE(:spec_cat_id,0,MIC.CATEGORY_ID,:spec_cat_id2)'||
117 	                        ')';
118 ELSE
119   l_sql_stmnt := l_sql_stmnt ||' AND 1=2';
120 END IF;
121 
122 IF(copy_option =2) THEN
123   IF (range_option = 1) THEN
124       EXECUTE IMMEDIATE l_sql_stmnt USING from_cst_type_id,from_org_id,to_org_id,to_org_id,to_cst_type_id ;
125   ELSIF (range_option = 2) THEN
126       EXECUTE IMMEDIATE l_sql_stmnt USING from_cst_type_id,from_org_id,to_org_id,to_org_id,to_cst_type_id,spec_item_id;
127   ELSIF (range_option = 5) THEN
128       EXECUTE IMMEDIATE l_sql_stmnt USING from_cst_type_id,from_org_id,to_org_id,to_org_id,to_cst_type_id,to_org_id,spec_cat_set_id,spec_cat_id,spec_cat_id;
129   END IF;
130 END IF;
131 IF(copy_option in (1,3) ) THEN
132   IF (range_option = 1) THEN
133        EXECUTE IMMEDIATE l_sql_stmnt USING from_cst_type_id,from_org_id,to_org_id;
134   ELSIF (range_option = 2) THEN
135        EXECUTE IMMEDIATE l_sql_stmnt USING from_cst_type_id,from_org_id,to_org_id,spec_item_id;
136   ELSIF (range_option = 5) THEN
137        EXECUTE IMMEDIATE l_sql_stmnt USING from_cst_type_id,from_org_id,to_org_id,to_org_id,spec_cat_set_id,spec_cat_id,spec_cat_id;
138   END IF;
139 END IF;
140 
141 /* Now that the global temp table is populated, check if any UOM rates are undefined.
142  * If so, abort the program and print the offending item(s)
143  */
144 OPEN cur_uom_conv;
145 FETCH cur_uom_conv INTO c_missing_uom_conv;
146 if (cur_uom_conv%FOUND) then
147    raise uom_exception;
148 else
149    CLOSE cur_uom_conv;
150 end if;
151 
152 /* end of addition for 11.5.10+ */
153 
154 
155 /*   Deleteting destination starts here */
156 
157 if (copy_option = 3) then
158 
159 	location := 1;
160 
161 	DELETE FROM CST_ITEM_COSTS CIC
162 	WHERE CIC.ORGANIZATION_ID = to_org_id
163 	AND CIC.COST_TYPE_ID = to_cst_type_id
164 	AND (
165         /* -- ALL ITEMS -- */
166         (range_option = 1)
167         OR
168         /* -- SPECIFIC ITEM -- */
169         ( (range_option = 2) AND (
170                 CIC.INVENTORY_ITEM_ID = spec_item_id
171                 )
172         )
173         OR
174         /* -- SPECIFIC CATEGORY -- */
175         ( (range_option = 5) AND EXISTS
176                            (
177                             SELECT INVENTORY_ITEM_ID
178                             FROM MTL_ITEM_CATEGORIES MIC
179                             WHERE MIC.ORGANIZATION_ID = to_org_id
180                             AND MIC.INVENTORY_ITEM_ID = CIC.INVENTORY_ITEM_ID
181                             AND MIC.CATEGORY_SET_ID = spec_cat_set_id
182                             AND MIC.CATEGORY_ID = DECODE(spec_cat_id,0,MIC.CATEGORY_ID,spec_cat_id)
183                            )
184         )
185        );
186 
187 	location := 2;
188 
189         DELETE FROM CST_ITEM_COST_DETAILS CICD
190         WHERE CICD.ORGANIZATION_ID = to_org_id
191         AND CICD.COST_TYPE_ID = to_cst_type_id
192         AND (
193         /* -- ALL ITEMS -- */
194         (range_option = 1)
195         OR
196         /* -- SPECIFIC ITEM -- */
197         ( (range_option = 2) AND (
198                 CICD.INVENTORY_ITEM_ID = spec_item_id
199                 )
200         )
201         OR
202         /* -- SPECIFIC CATEGORY -- */
203         ( (range_option = 5) AND EXISTS
204                            (
205                             SELECT INVENTORY_ITEM_ID
206                             FROM MTL_ITEM_CATEGORIES MIC
207                             WHERE MIC.ORGANIZATION_ID = to_org_id
208                             AND MIC.INVENTORY_ITEM_ID = CICD.INVENTORY_ITEM_ID
209                             AND MIC.CATEGORY_SET_ID = spec_cat_set_id
210                             AND MIC.CATEGORY_ID =  DECODE(spec_cat_id,0,MIC.CATEGORY_ID,spec_cat_id)
211                            )
212         )
213        );
214 
215 end if; /* COPY OPTION = 3 DELETE */
216 
217 if ( copy_option = 1 ) then
218 
219 	location := 3;
220 
221 	DELETE FROM CST_ITEM_COSTS CIC
222 	WHERE EXISTS (
223 		SELECT 'Item exists in from org'
224 		FROM CST_ITEM_COST_DETAILS CIC2
225 		WHERE CIC2.INVENTORY_ITEM_ID = CIC.INVENTORY_ITEM_ID
226 		AND CIC2.ORGANIZATION_ID = from_org_id
227 		AND CIC2.COST_TYPE_ID = from_cst_type_id
228 		     )
229 	AND CIC.ORGANIZATION_ID = to_org_id
230 	AND CIC.COST_TYPE_ID = to_cst_type_id
231 	AND (
232 	    /* -- ALL ITEMS -- */
233 	      (range_option = 1)
234 	       OR
235 	    /* -- SPECIFIC ITEM -- */
236 	      ( (range_option = 2) AND (
237 		 CIC.INVENTORY_ITEM_ID = spec_item_id
238 		)
239 	      )
240 	       OR
241 	      /* -- SPECIFIC CATEGORY -- */
242 	      ( (range_option = 5) AND EXISTS
243 				   (
244 				    SELECT INVENTORY_ITEM_ID
245 				    FROM MTL_ITEM_CATEGORIES MIC
246 				    WHERE MIC.ORGANIZATION_ID = to_org_id
247 				    AND MIC.INVENTORY_ITEM_ID = CIC.INVENTORY_ITEM_ID
248 				    AND MIC.CATEGORY_SET_ID = spec_cat_set_id
249 				    AND MIC.CATEGORY_ID =  DECODE(spec_cat_id,0,MIC.CATEGORY_ID,spec_cat_id)
250 				   )
251 	      )
252 	     );
253 
254 
255 	/*  following delete needs to change */
256 
257 	location := 4;
258 
259 	DELETE FROM CST_ITEM_COST_DETAILS CICD
260 	WHERE EXISTS (
261 		SELECT 'Item exists in from org'
262 		FROM CST_ITEM_COST_DETAILS CIC2
263 		WHERE CIC2.INVENTORY_ITEM_ID = CICD.INVENTORY_ITEM_ID
264 		AND CIC2.ORGANIZATION_ID = from_org_id
265 		AND CIC2.COST_TYPE_ID = from_cst_type_id
266 	)
267 	AND CICD.ORGANIZATION_ID = to_org_id
268 	AND CICD.COST_TYPE_ID = to_cst_type_id
269 	AND (
270 	    /* -- ALL ITEMS -- */
271 	      (range_option = 1)
272 	       OR
273 	    /* -- SPECIFIC ITEM -- */
274 	      ( (range_option = 2) AND (
275 		 CICD.INVENTORY_ITEM_ID = spec_item_id
276 		)
277 	      )
278 	       OR
279 	      /* -- SPECIFIC CATEGORY -- */
280 	      ( (range_option = 5) AND EXISTS
281 				   (
282 				    SELECT INVENTORY_ITEM_ID
283 				    FROM MTL_ITEM_CATEGORIES MIC
284 				    WHERE MIC.ORGANIZATION_ID = to_org_id
285 				    AND MIC.INVENTORY_ITEM_ID = CICD.INVENTORY_ITEM_ID
286 				    AND MIC.CATEGORY_SET_ID = spec_cat_set_id
287 				    AND MIC.CATEGORY_ID =  DECODE(spec_cat_id,0,MIC.CATEGORY_ID,spec_cat_id)
288 				   )
289 	      )
290 	     );
291 
292 
293 end if;
294 
295 
296  /*
297   *	Copy over non-code columns into CST_ITEM_COSTS_INTERFACE
298   *	from CST_ITEM_COSTS
299   *
300   *	CST_ITEM_COSTS ==> CST_ITEM_COSTS_INTERFACE
301   */
302 
303  location := 5;
304 
305 if (range_option = 1) then
306 
307 /* ---- All Items ---- */
308 
309 INSERT INTO CST_ITEM_COSTS_INTERFACE (
310 	INVENTORY_ITEM_ID,
311 	ORGANIZATION_ID,
312 	COST_TYPE_ID,
313 	INVENTORY_ITEM,
314 	ORGANIZATION_CODE,
315 	COST_TYPE,
316 	LAST_UPDATE_DATE,
317 	LAST_UPDATED_BY,
318 	CREATION_DATE,
319 	CREATED_BY,
320 	LAST_UPDATE_LOGIN,
321 	INVENTORY_ASSET_FLAG,
322 	LOT_SIZE,
323 	BASED_ON_ROLLUP_FLAG,
324 	SHRINKAGE_RATE,
325 	DEFAULTED_FLAG,
326 	COST_UPDATE_ID,
327 	PL_MATERIAL,
328 	PL_MATERIAL_OVERHEAD,
329 	PL_RESOURCE,
330 	PL_OUTSIDE_PROCESSING,
331 	PL_OVERHEAD,
332 	TL_MATERIAL,
333 	TL_MATERIAL_OVERHEAD,
334 	TL_RESOURCE,
335 	TL_OUTSIDE_PROCESSING,
336 	TL_OVERHEAD,
337 	MATERIAL_COST,
338 	MATERIAL_OVERHEAD_COST,
339 	RESOURCE_COST,
340 	OUTSIDE_PROCESSING_COST,
341 	OVERHEAD_COST,
342 	PL_ITEM_COST,
343 	TL_ITEM_COST,
344 	ITEM_COST,
345 	UNBURDENED_COST,
346 	BURDEN_COST,
347 	ATTRIBUTE_CATEGORY,
348 	ATTRIBUTE1,
349 	ATTRIBUTE2,
350 	ATTRIBUTE3,
351 	ATTRIBUTE4,
352 	ATTRIBUTE5,
353 	ATTRIBUTE6,
354 	ATTRIBUTE7,
355 	ATTRIBUTE8,
356 	ATTRIBUTE9,
357 	ATTRIBUTE10,
358 	ATTRIBUTE11,
359 	ATTRIBUTE12,
360 	ATTRIBUTE13,
361 	ATTRIBUTE14,
362 	ATTRIBUTE15,
363 	REQUEST_ID,
364 	PROGRAM_APPLICATION_ID,
365 	PROGRAM_ID,
366 	PROGRAM_UPDATE_DATE,
367 	GROUP_ID
368 ) SELECT
369 	CIC.INVENTORY_ITEM_ID,
370 	to_org_id,
371 	to_cst_type_id,
372 	MIF.ITEM_NUMBER,
373 	MP.ORGANIZATION_CODE,
374 	CCT.COST_TYPE,
375 	SYSDATE,
376 	l_last_updated_by,
377 	SYSDATE,
378 	l_last_updated_by,
379 	NULL,
380 	CIC.INVENTORY_ASSET_FLAG,
381 	CIC.LOT_SIZE,
382 	CIC.BASED_ON_ROLLUP_FLAG,
383 	CIC.SHRINKAGE_RATE,
384 	CIC.DEFAULTED_FLAG,
385 	CIC.COST_UPDATE_ID,
386 	CIC.PL_MATERIAL * nvl(l_conversion_rate,1),
387 	CIC.PL_MATERIAL_OVERHEAD * nvl(l_conversion_rate,1),
388 	CIC.PL_RESOURCE * nvl(l_conversion_rate,1),
389 	CIC.PL_OUTSIDE_PROCESSING * nvl(l_conversion_rate,1),
390 	CIC.PL_OVERHEAD * nvl(l_conversion_rate,1),
391 	CIC.TL_MATERIAL * nvl(l_conversion_rate,1),
392 	CIC.TL_MATERIAL_OVERHEAD * nvl(l_conversion_rate,1),
393 	CIC.TL_RESOURCE * nvl(l_conversion_rate,1),
394 	CIC.TL_OUTSIDE_PROCESSING * nvl(l_conversion_rate,1),
395 	CIC.TL_OVERHEAD * nvl(l_conversion_rate,1),
396 	CIC.MATERIAL_COST * nvl(l_conversion_rate,1),
397 	CIC.MATERIAL_OVERHEAD_COST * nvl(l_conversion_rate,1),
398 	CIC.RESOURCE_COST * nvl(l_conversion_rate,1),
399 	CIC.OUTSIDE_PROCESSING_COST * nvl(l_conversion_rate,1),
400 	CIC.OVERHEAD_COST * nvl(l_conversion_rate,1),
401 	CIC.PL_ITEM_COST * nvl(l_conversion_rate,1),
402 	CIC.TL_ITEM_COST * nvl(l_conversion_rate,1),
403 	CIC.ITEM_COST * nvl(l_conversion_rate,1),
404 	CIC.UNBURDENED_COST * nvl(l_conversion_rate,1),
405 	CIC.BURDEN_COST * nvl(l_conversion_rate,1),
406 	CIC.ATTRIBUTE_CATEGORY,
407 	CIC.ATTRIBUTE1,
408 	CIC.ATTRIBUTE2,
409 	CIC.ATTRIBUTE3,
410 	CIC.ATTRIBUTE4,
411 	CIC.ATTRIBUTE5,
412 	CIC.ATTRIBUTE6,
413 	CIC.ATTRIBUTE7,
414 	CIC.ATTRIBUTE8,
415 	CIC.ATTRIBUTE9,
416 	CIC.ATTRIBUTE10,
417 	CIC.ATTRIBUTE11,
418 	CIC.ATTRIBUTE12,
419 	CIC.ATTRIBUTE13,
420 	CIC.ATTRIBUTE14,
421 	CIC.ATTRIBUTE15,
422 	CIC.REQUEST_ID,
423 	CIC.PROGRAM_APPLICATION_ID,
424 	CIC.PROGRAM_ID,
425 	CIC.PROGRAM_UPDATE_DATE,
426 	grp_id
427 FROM	CST_ITEM_COSTS CIC,
428 	MTL_ITEM_FLEXFIELDS MIF,
429 	CST_COST_TYPES CCT,
430 	MTL_PARAMETERS MP
431 WHERE	CIC.ORGANIZATION_ID = from_org_id
432 AND	CIC.COST_TYPE_ID = from_cst_type_id
433 AND	MP.ORGANIZATION_ID = to_org_id
434 AND	NVL( CCT.ORGANIZATION_ID, to_org_id) = to_org_id
435 AND	CCT.COST_TYPE_ID = to_cst_type_id
436 AND	MIF.ORGANIZATION_ID = to_org_id
437 AND	MIF.ITEM_ID = CIC.INVENTORY_ITEM_ID
438 AND (
439 	( (copy_option = 2 or copy_option = 1) AND
440 	  ( NOT EXISTS (
441 		SELECT NULL
442 		FROM CST_ITEM_COSTS CIC2
443 		WHERE CIC2.INVENTORY_ITEM_ID = CIC.INVENTORY_ITEM_ID
444 		AND CIC2.ORGANIZATION_ID = to_org_id
445 		AND CIC2.COST_TYPE_ID = to_cst_type_id
446 	    )
447 	  )
448 	) OR
449 	(copy_option = 3)
450 );
451 
452 elsif (range_option = 2) then
453 
454 /* ---- Specific Item ---- */
455 
456 SELECT COUNT(*) INTO l_no_of_rows FROM CST_ITEM_COSTS CIC
457 WHERE   CIC.ORGANIZATION_ID = from_org_id
458 AND     CIC.COST_TYPE_ID = from_cst_type_id
459 AND     CIC.INVENTORY_ITEM_ID = spec_item_id;
460 
461 if(l_no_of_rows = 0) then
462         commit;
463         RETURN(2);
464 end if;
465 
466 INSERT INTO CST_ITEM_COSTS_INTERFACE (
467 	INVENTORY_ITEM_ID,
468 	ORGANIZATION_ID,
469 	COST_TYPE_ID,
470 	INVENTORY_ITEM,
471 	ORGANIZATION_CODE,
472 	COST_TYPE,
473 	LAST_UPDATE_DATE,
474 	LAST_UPDATED_BY,
475 	CREATION_DATE,
476 	CREATED_BY,
477 	LAST_UPDATE_LOGIN,
478 	INVENTORY_ASSET_FLAG,
479 	LOT_SIZE,
480 	BASED_ON_ROLLUP_FLAG,
481 	SHRINKAGE_RATE,
482 	DEFAULTED_FLAG,
483 	COST_UPDATE_ID,
484 	PL_MATERIAL,
485 	PL_MATERIAL_OVERHEAD,
486 	PL_RESOURCE,
487 	PL_OUTSIDE_PROCESSING,
488 	PL_OVERHEAD,
489 	TL_MATERIAL,
490 	TL_MATERIAL_OVERHEAD,
491 	TL_RESOURCE,
492 	TL_OUTSIDE_PROCESSING,
493 	TL_OVERHEAD,
494 	MATERIAL_COST,
495 	MATERIAL_OVERHEAD_COST,
496 	RESOURCE_COST,
497 	OUTSIDE_PROCESSING_COST,
498 	OVERHEAD_COST,
499 	PL_ITEM_COST,
500 	TL_ITEM_COST,
501 	ITEM_COST,
502 	UNBURDENED_COST,
503 	BURDEN_COST,
504 	ATTRIBUTE_CATEGORY,
505 	ATTRIBUTE1,
506 	ATTRIBUTE2,
507 	ATTRIBUTE3,
508 	ATTRIBUTE4,
509 	ATTRIBUTE5,
510 	ATTRIBUTE6,
511 	ATTRIBUTE7,
512 	ATTRIBUTE8,
513 	ATTRIBUTE9,
514 	ATTRIBUTE10,
515 	ATTRIBUTE11,
516 	ATTRIBUTE12,
517 	ATTRIBUTE13,
518 	ATTRIBUTE14,
519 	ATTRIBUTE15,
520 	REQUEST_ID,
521 	PROGRAM_APPLICATION_ID,
522 	PROGRAM_ID,
523 	PROGRAM_UPDATE_DATE,
524 	GROUP_ID
525 ) SELECT
526 	CIC.INVENTORY_ITEM_ID,
527 	to_org_id,
528 	to_cst_type_id,
529 	MIF.ITEM_NUMBER,
530 	MP.ORGANIZATION_CODE,
531 	CCT.COST_TYPE,
532 	SYSDATE,
533 	l_last_updated_by,
534 	SYSDATE,
535 	l_last_updated_by,
536 	NULL,
537 	CIC.INVENTORY_ASSET_FLAG,
538 	CIC.LOT_SIZE,
539 	CIC.BASED_ON_ROLLUP_FLAG,
540 	CIC.SHRINKAGE_RATE,
541 	CIC.DEFAULTED_FLAG,
542 	CIC.COST_UPDATE_ID,
543 	CIC.PL_MATERIAL * nvl(l_conversion_rate,1),
544 	CIC.PL_MATERIAL_OVERHEAD * nvl(l_conversion_rate,1),
545 	CIC.PL_RESOURCE * nvl(l_conversion_rate,1),
546 	CIC.PL_OUTSIDE_PROCESSING * nvl(l_conversion_rate,1),
547 	CIC.PL_OVERHEAD * nvl(l_conversion_rate,1),
548 	CIC.TL_MATERIAL * nvl(l_conversion_rate,1),
549 	CIC.TL_MATERIAL_OVERHEAD * nvl(l_conversion_rate,1),
550 	CIC.TL_RESOURCE * nvl(l_conversion_rate,1),
551 	CIC.TL_OUTSIDE_PROCESSING * nvl(l_conversion_rate,1),
552 	CIC.TL_OVERHEAD * nvl(l_conversion_rate,1),
553 	CIC.MATERIAL_COST * nvl(l_conversion_rate,1),
554 	CIC.MATERIAL_OVERHEAD_COST * nvl(l_conversion_rate,1),
555 	CIC.RESOURCE_COST * nvl(l_conversion_rate,1),
556 	CIC.OUTSIDE_PROCESSING_COST * nvl(l_conversion_rate,1),
557 	CIC.OVERHEAD_COST * nvl(l_conversion_rate,1),
558 	CIC.PL_ITEM_COST * nvl(l_conversion_rate,1),
559 	CIC.TL_ITEM_COST * nvl(l_conversion_rate,1),
560 	CIC.ITEM_COST * nvl(l_conversion_rate,1),
561 	CIC.UNBURDENED_COST * nvl(l_conversion_rate,1),
562 	CIC.BURDEN_COST * nvl(l_conversion_rate,1),
563 	CIC.ATTRIBUTE_CATEGORY,
564 	CIC.ATTRIBUTE1,
565 	CIC.ATTRIBUTE2,
566 	CIC.ATTRIBUTE3,
567 	CIC.ATTRIBUTE4,
568 	CIC.ATTRIBUTE5,
569 	CIC.ATTRIBUTE6,
570 	CIC.ATTRIBUTE7,
571 	CIC.ATTRIBUTE8,
572 	CIC.ATTRIBUTE9,
573 	CIC.ATTRIBUTE10,
574 	CIC.ATTRIBUTE11,
575 	CIC.ATTRIBUTE12,
576 	CIC.ATTRIBUTE13,
577 	CIC.ATTRIBUTE14,
578 	CIC.ATTRIBUTE15,
579 	CIC.REQUEST_ID,
580 	CIC.PROGRAM_APPLICATION_ID,
581 	CIC.PROGRAM_ID,
582 	CIC.PROGRAM_UPDATE_DATE,
583 	grp_id
584 FROM	CST_ITEM_COSTS CIC,
585 	MTL_ITEM_FLEXFIELDS MIF,
586 	CST_COST_TYPES CCT,
587 	MTL_PARAMETERS MP
588 WHERE	CIC.ORGANIZATION_ID = from_org_id
589 AND	CIC.COST_TYPE_ID = from_cst_type_id
590 AND	CIC.INVENTORY_ITEM_ID = spec_item_id
591 AND	MIF.ITEM_ID = CIC.INVENTORY_ITEM_ID
592 AND	MIF.ORGANIZATION_ID = to_org_id
593 AND	MP.ORGANIZATION_ID = to_org_id
594 AND	NVL( CCT.ORGANIZATION_ID, to_org_id) = to_org_id
595 AND	CCT.COST_TYPE_ID = to_cst_type_id
596 AND (
597 	( (copy_option = 2 or copy_option = 1) AND
598 	  ( NOT EXISTS (
599 		SELECT NULL
600 		FROM CST_ITEM_COSTS CIC2
601 		WHERE CIC2.INVENTORY_ITEM_ID = CIC.INVENTORY_ITEM_ID
602 		AND CIC2.ORGANIZATION_ID = to_org_id
603 		AND CIC2.COST_TYPE_ID = to_cst_type_id
604 	    )
605 	  )
606 	) OR
607 	(copy_option = 3)
608 );
609 
610 elsif (range_option = 5) then
611 
612 /* ---- Specific Category ---- */
613 
614 INSERT INTO CST_ITEM_COSTS_INTERFACE (
615 	INVENTORY_ITEM_ID,
616 	ORGANIZATION_ID,
617 	COST_TYPE_ID,
618 	INVENTORY_ITEM,
619 	ORGANIZATION_CODE,
620 	COST_TYPE,
621 	LAST_UPDATE_DATE,
622 	LAST_UPDATED_BY,
623 	CREATION_DATE,
624 	CREATED_BY,
625 	LAST_UPDATE_LOGIN,
626 	INVENTORY_ASSET_FLAG,
627 	LOT_SIZE,
628 	BASED_ON_ROLLUP_FLAG,
629 	SHRINKAGE_RATE,
630 	DEFAULTED_FLAG,
631 	COST_UPDATE_ID,
632 	PL_MATERIAL,
633 	PL_MATERIAL_OVERHEAD,
634 	PL_RESOURCE,
635 	PL_OUTSIDE_PROCESSING,
636 	PL_OVERHEAD,
637 	TL_MATERIAL,
638 	TL_MATERIAL_OVERHEAD,
639 	TL_RESOURCE,
640 	TL_OUTSIDE_PROCESSING,
641 	TL_OVERHEAD,
642 	MATERIAL_COST,
643 	MATERIAL_OVERHEAD_COST,
644 	RESOURCE_COST,
645 	OUTSIDE_PROCESSING_COST,
646 	OVERHEAD_COST,
647 	PL_ITEM_COST,
648 	TL_ITEM_COST,
649 	ITEM_COST,
650 	UNBURDENED_COST,
651 	BURDEN_COST,
652 	ATTRIBUTE_CATEGORY,
653 	ATTRIBUTE1,
654 	ATTRIBUTE2,
655 	ATTRIBUTE3,
656 	ATTRIBUTE4,
657 	ATTRIBUTE5,
658 	ATTRIBUTE6,
659 	ATTRIBUTE7,
660 	ATTRIBUTE8,
661 	ATTRIBUTE9,
662 	ATTRIBUTE10,
663 	ATTRIBUTE11,
664 	ATTRIBUTE12,
665 	ATTRIBUTE13,
666 	ATTRIBUTE14,
667 	ATTRIBUTE15,
668 	REQUEST_ID,
669 	PROGRAM_APPLICATION_ID,
670 	PROGRAM_ID,
671 	PROGRAM_UPDATE_DATE,
672 	GROUP_ID
673 ) SELECT
674 	CIC.INVENTORY_ITEM_ID,
675 	to_org_id,
676 	to_cst_type_id,
677 	MIF.ITEM_NUMBER,
678 	MP.ORGANIZATION_CODE,
679 	CCT.COST_TYPE,
680 	SYSDATE,
681 	l_last_updated_by,
682 	SYSDATE,
683 	l_last_updated_by,
684 	NULL,
685 	CIC.INVENTORY_ASSET_FLAG,
686 	CIC.LOT_SIZE,
687 	CIC.BASED_ON_ROLLUP_FLAG,
688 	CIC.SHRINKAGE_RATE,
689 	CIC.DEFAULTED_FLAG,
690 	CIC.COST_UPDATE_ID,
691 	CIC.PL_MATERIAL * nvl(l_conversion_rate,1),
692 	CIC.PL_MATERIAL_OVERHEAD * nvl(l_conversion_rate,1),
693 	CIC.PL_RESOURCE * nvl(l_conversion_rate,1),
694 	CIC.PL_OUTSIDE_PROCESSING * nvl(l_conversion_rate,1),
695 	CIC.PL_OVERHEAD * nvl(l_conversion_rate,1),
696 	CIC.TL_MATERIAL * nvl(l_conversion_rate,1),
697 	CIC.TL_MATERIAL_OVERHEAD * nvl(l_conversion_rate,1),
698 	CIC.TL_RESOURCE * nvl(l_conversion_rate,1),
699 	CIC.TL_OUTSIDE_PROCESSING * nvl(l_conversion_rate,1),
700 	CIC.TL_OVERHEAD * nvl(l_conversion_rate,1),
701 	CIC.MATERIAL_COST * nvl(l_conversion_rate,1),
702 	CIC.MATERIAL_OVERHEAD_COST * nvl(l_conversion_rate,1),
703 	CIC.RESOURCE_COST * nvl(l_conversion_rate,1),
704 	CIC.OUTSIDE_PROCESSING_COST * nvl(l_conversion_rate,1),
705 	CIC.OVERHEAD_COST * nvl(l_conversion_rate,1),
706 	CIC.PL_ITEM_COST * nvl(l_conversion_rate,1),
707 	CIC.TL_ITEM_COST * nvl(l_conversion_rate,1),
708 	CIC.ITEM_COST * nvl(l_conversion_rate,1),
709 	CIC.UNBURDENED_COST * nvl(l_conversion_rate,1),
710 	CIC.BURDEN_COST * nvl(l_conversion_rate,1),
711 	CIC.ATTRIBUTE_CATEGORY,
712 	CIC.ATTRIBUTE1,
713 	CIC.ATTRIBUTE2,
714 	CIC.ATTRIBUTE3,
715 	CIC.ATTRIBUTE4,
716 	CIC.ATTRIBUTE5,
717 	CIC.ATTRIBUTE6,
718 	CIC.ATTRIBUTE7,
719 	CIC.ATTRIBUTE8,
720 	CIC.ATTRIBUTE9,
721 	CIC.ATTRIBUTE10,
722 	CIC.ATTRIBUTE11,
723 	CIC.ATTRIBUTE12,
724 	CIC.ATTRIBUTE13,
725 	CIC.ATTRIBUTE14,
726 	CIC.ATTRIBUTE15,
727 	CIC.REQUEST_ID,
728 	CIC.PROGRAM_APPLICATION_ID,
729 	CIC.PROGRAM_ID,
730 	CIC.PROGRAM_UPDATE_DATE,
731 	grp_id
732 FROM	CST_ITEM_COSTS CIC,
733 	MTL_ITEM_FLEXFIELDS MIF,
734 	CST_COST_TYPES CCT,
735 	MTL_PARAMETERS MP
736 WHERE	CIC.ORGANIZATION_ID = from_org_id
737 AND	CIC.COST_TYPE_ID = from_cst_type_id
738 AND	MP.ORGANIZATION_ID = to_org_id
739 AND	NVL( CCT.ORGANIZATION_ID, to_org_id) = to_org_id
740 AND	CCT.COST_TYPE_ID = to_cst_type_id
741 AND	MIF.ORGANIZATION_ID = to_org_id
742 AND	MIF.ITEM_ID = CIC.INVENTORY_ITEM_ID
743 AND	CIC.INVENTORY_ITEM_ID in (
744 		     SELECT INVENTORY_ITEM_ID
745 		     FROM MTL_ITEM_CATEGORIES MIC
746 		     WHERE MIC.ORGANIZATION_ID = to_org_id
747 		     AND MIC.CATEGORY_SET_ID = spec_cat_set_id
748 		     AND MIC.CATEGORY_ID =  DECODE(spec_cat_id,0,MIC.CATEGORY_ID,spec_cat_id)
749 	)
750 AND (
751 	( (copy_option = 2 or copy_option = 1) AND
752 	  ( NOT EXISTS (
753 		SELECT NULL
754 		FROM CST_ITEM_COSTS CIC2
755 		WHERE CIC2.INVENTORY_ITEM_ID = CIC.INVENTORY_ITEM_ID
756 		AND CIC2.ORGANIZATION_ID = to_org_id
757 		AND CIC2.COST_TYPE_ID = to_cst_type_id
758 	    )
759 	  )
760 	) OR
761 	(copy_option = 3)
762 );
763 
764 end if;
765 
766 
767 IF SQL%ROWCOUNT = 0 THEN
768 	RETURN( 1 );
769 END IF;
770 
771 /*
772  *     Copy over columns into CST_ITEM_CST_DTLS_INTERFACE
773  *     from CST_ITEM_COST_DETAILS
774  *
775  *     CST_ITEM_COST_DETAILS ==> CST_ITEM_CST_DTLS_INTERFACE
776  */
777 
778 location := 6;
779 
780 INSERT INTO CST_ITEM_CST_DTLS_INTERFACE (
781 	GROUP_ID,
782 	INVENTORY_ITEM_ID,
783 	ORGANIZATION_ID,
784 	COST_TYPE_ID,
785 	INVENTORY_ITEM,
786 	COST_TYPE,
787 	ORGANIZATION_CODE,
788 	LAST_UPDATE_DATE,
789 	LAST_UPDATED_BY,
790 	CREATION_DATE,
791 	CREATED_BY,
792 	LAST_UPDATE_LOGIN,
793 	OPERATION_SEQUENCE_ID,
794 	OPERATION_SEQ_NUM,
795 	DEPARTMENT_ID,
796 	DEPARTMENT,
797 	LEVEL_TYPE,
798 	ACTIVITY_ID,
799 	ACTIVITY,
800 	RESOURCE_SEQ_NUM,
801 	RESOURCE_ID,
802 	RESOURCE_CODE,
803 	RESOURCE_RATE,
804 	ITEM_UNITS,
805 	ACTIVITY_UNITS,
806 	USAGE_RATE_OR_AMOUNT,
807 	BASIS_TYPE,
808 	BASIS_RESOURCE_ID,
809 	BASIS_RESOURCE_CODE,
810 	BASIS_FACTOR,
811 	NET_YIELD_OR_SHRINKAGE_FACTOR,
812 	ITEM_COST,
813 	COST_ELEMENT_ID,
814 	COST_ELEMENT,
815 	ROLLUP_SOURCE_TYPE,
816 	ACTIVITY_CONTEXT,
817 	REQUEST_ID,
818 	PROGRAM_APPLICATION_ID,
819 	PROGRAM_ID,
820 	PROGRAM_UPDATE_DATE,
821 	ATTRIBUTE_CATEGORY,
822 	ATTRIBUTE1,
823 	ATTRIBUTE2,
824 	ATTRIBUTE3,
825 	ATTRIBUTE4,
826 	ATTRIBUTE5,
827 	ATTRIBUTE6,
828 	ATTRIBUTE7,
829 	ATTRIBUTE8,
830 	ATTRIBUTE9,
831 	ATTRIBUTE10,
832 	ATTRIBUTE11,
833 	ATTRIBUTE12,
834 	ATTRIBUTE13,
835 	ATTRIBUTE14,
836 	ATTRIBUTE15,
837 	--bug5839929
838 	YIELDED_COST
839 ) SELECT  /*+ ORDERED */
840 	grp_id,
841 	CICD.INVENTORY_ITEM_ID,
842 	to_org_id,
843 	to_cst_type_id,
844 	CICI.INVENTORY_ITEM,
845 	CICI.COST_TYPE,
846 	CICI.ORGANIZATION_CODE,
847 	SYSDATE,
848 	l_last_updated_by,
849 	SYSDATE,
850 	l_last_updated_by,
851 	-1,
852 	NULL,
853 	CICD.OPERATION_SEQ_NUM,
854 	NULL,				/* department_id */
855 	BD.DEPARTMENT_CODE,
856 	CICD.LEVEL_TYPE,
857 	NULL,				/* activity_id */
858 	CA.ACTIVITY,
859 	CICD.RESOURCE_SEQ_NUM,
860 	NULL,				/* resource_id */
861 	BR.RESOURCE_CODE,
862 	CICD.RESOURCE_RATE,
863 	CICD.ITEM_UNITS,
864 	CICD.ACTIVITY_UNITS,
865         decode(cicd.cost_element_id,          /* No currency conversion for percentage rates and for some cases of resources and OSP*/
866                2,decode(cicd.basis_type,
867                         4,CICD.USAGE_RATE_OR_AMOUNT,
868                         5,CICD.USAGE_RATE_OR_AMOUNT,
869                         CICD.USAGE_RATE_OR_AMOUNT * nvl(l_conversion_rate,1)),
870                3,decode(br.functional_currency_flag,
871                         1,CICD.USAGE_RATE_OR_AMOUNT * nvl(l_conversion_rate,1),
872                         decode(cicd.resource_id,
873                                NULL,CICD.USAGE_RATE_OR_AMOUNT * nvl(l_conversion_rate,1),
874                                CICD.USAGE_RATE_OR_AMOUNT)),
875                4,decode(br.functional_currency_flag,
876                         1,CICD.USAGE_RATE_OR_AMOUNT * nvl(l_conversion_rate,1),
877                         decode(cicd.resource_id,
878                                NULL,CICD.USAGE_RATE_OR_AMOUNT * nvl(l_conversion_rate,1),
879                                CICD.USAGE_RATE_OR_AMOUNT)),
880                5,decode(cicd.basis_type,
881                         4,CICD.USAGE_RATE_OR_AMOUNT,
882                         CICD.USAGE_RATE_OR_AMOUNT * nvl(l_conversion_rate,1)),
883                CICD.USAGE_RATE_OR_AMOUNT * nvl(l_conversion_rate,1)),
884 	CICD.BASIS_TYPE,
885 	NULL,				/* BASIS_RESOURCE_ID */
886 	BR.RESOURCE_CODE,
887 	CICD.BASIS_FACTOR,
888 	CICD.NET_YIELD_OR_SHRINKAGE_FACTOR,
889 	CICD.ITEM_COST * nvl(l_conversion_rate,1),
890 	CICD.COST_ELEMENT_ID,		/* COST_ELEMENT_ID */
891 	CCE.COST_ELEMENT,
892 	CICD.ROLLUP_SOURCE_TYPE,
893 	CICD.ACTIVITY_CONTEXT,
894 	CICD.REQUEST_ID,
895 	CICD.PROGRAM_APPLICATION_ID,
896 	CICD.PROGRAM_ID,
897 	CICD.PROGRAM_UPDATE_DATE,
898 	CICD.ATTRIBUTE_CATEGORY,
899 	CICD.ATTRIBUTE1,
900 	CICD.ATTRIBUTE2,
901 	CICD.ATTRIBUTE3,
902 	CICD.ATTRIBUTE4,
903 	CICD.ATTRIBUTE5,
904 	CICD.ATTRIBUTE6,
905 	CICD.ATTRIBUTE7,
906 	CICD.ATTRIBUTE8,
907 	CICD.ATTRIBUTE9,
908 	CICD.ATTRIBUTE10,
909 	CICD.ATTRIBUTE11,
910 	CICD.ATTRIBUTE12,
911 	CICD.ATTRIBUTE13,
912 	CICD.ATTRIBUTE14,
913 	CICD.ATTRIBUTE15,
914     --bug5839929
915     CICD.yielded_cost*NVL(l_conversion_rate,1)
916 FROM	CST_ITEM_COSTS_INTERFACE CICI,
917 	BOM_DEPARTMENTS BD,
918 	CST_ACTIVITIES CA,
919 	BOM_RESOURCES BR,
920 	CST_COST_ELEMENTS CCE,
921 	CST_ITEM_COST_DETAILS CICD
922 WHERE	CICI.GROUP_ID = grp_id
923 AND	CICD.INVENTORY_ITEM_ID = CICI.INVENTORY_ITEM_ID
924 AND	CICD.ORGANIZATION_ID = from_org_id
925 AND	CICD.COST_TYPE_ID = from_cst_type_id
926 AND	BD.ORGANIZATION_ID (+) = from_org_id
927 AND	BD.DEPARTMENT_ID (+) = CICD.DEPARTMENT_ID
928 AND	NVL(CA.ORGANIZATION_ID,from_org_id) = from_org_id
929 AND	CA.ACTIVITY_ID (+) = CICD.ACTIVITY_ID
930 AND	BR.ORGANIZATION_ID (+) = from_org_id
931 AND	BR.RESOURCE_ID (+) = CICD.RESOURCE_ID
932 AND	CCE.COST_ELEMENT_ID (+) = CICD.COST_ELEMENT_ID;
933 
934 
935 /* 11.5.10+ Copy Cost UOM Conversion                  *
936  * Multiply the cost columns in the interface tables  *
937  * by the UOM conversion rate                         */
938 
939 location := 7;
940 
941 UPDATE (
942    SELECT PL_MATERIAL,
943           PL_MATERIAL_OVERHEAD,
944           PL_RESOURCE,
945           PL_OUTSIDE_PROCESSING,
946           PL_OVERHEAD,
947           TL_MATERIAL,
948           TL_MATERIAL_OVERHEAD,
949           TL_RESOURCE,
950           TL_OUTSIDE_PROCESSING,
951           TL_OVERHEAD,
952           MATERIAL_COST,
953           MATERIAL_OVERHEAD_COST,
954           RESOURCE_COST,
955           OUTSIDE_PROCESSING_COST,
956           OVERHEAD_COST,
957           PL_ITEM_COST,
958           TL_ITEM_COST,
959           ITEM_COST,
960           UNBURDENED_COST,
961           BURDEN_COST,
962           LOT_SIZE,
963           uom_conversion_rate
964    FROM cst_item_costs_interface cici, cst_uom_conv_rates_temp cucr
965    WHERE cici.inventory_item_id = cucr.inventory_item_id
966    AND cici.group_id = grp_id)
967 SET PL_MATERIAL = PL_MATERIAL / uom_conversion_rate,
968     PL_MATERIAL_OVERHEAD = PL_MATERIAL_OVERHEAD / uom_conversion_rate,
969     PL_RESOURCE = PL_RESOURCE / uom_conversion_rate,
970     PL_OUTSIDE_PROCESSING = PL_OUTSIDE_PROCESSING / uom_conversion_rate,
971     PL_OVERHEAD = PL_OVERHEAD / uom_conversion_rate,
972     TL_MATERIAL = TL_MATERIAL / uom_conversion_rate,
973     TL_MATERIAL_OVERHEAD = TL_MATERIAL_OVERHEAD / uom_conversion_rate,
974     TL_RESOURCE = TL_RESOURCE / uom_conversion_rate,
975     TL_OUTSIDE_PROCESSING = TL_OUTSIDE_PROCESSING / uom_conversion_rate,
976     TL_OVERHEAD = TL_OVERHEAD / uom_conversion_rate,
977     MATERIAL_COST = MATERIAL_COST / uom_conversion_rate,
978     MATERIAL_OVERHEAD_COST = MATERIAL_OVERHEAD_COST / uom_conversion_rate,
979     RESOURCE_COST = RESOURCE_COST / uom_conversion_rate,
980     OUTSIDE_PROCESSING_COST = OUTSIDE_PROCESSING_COST / uom_conversion_rate,
981     OVERHEAD_COST = OVERHEAD_COST / uom_conversion_rate,
982     PL_ITEM_COST = PL_ITEM_COST / uom_conversion_rate,
983     TL_ITEM_COST = TL_ITEM_COST / uom_conversion_rate,
984     ITEM_COST = ITEM_COST / uom_conversion_rate,
985     UNBURDENED_COST = UNBURDENED_COST / uom_conversion_rate,
986     BURDEN_COST = BURDEN_COST / uom_conversion_rate,
987     LOT_SIZE = LOT_SIZE * uom_conversion_rate;
988 
989 location := 8;
990 /* Update the usage_rate_or_amount in CICD for all rows where the basis type IS 'ITEM' *
991  * When the basis type is item there is no basis factor (it's always 1), so you must   *
992  * multiply the usage rate of the item by the UOM conversion factor so that usage rate *
993  * times net_yield_or_shrinkage equals item_cost.                                      */
994 
995 UPDATE (
996    SELECT USAGE_RATE_OR_AMOUNT,
997           ITEM_COST,
998 	  YIELDED_COST, /*Added for bug 14159528*/
999           uom_conversion_rate
1000    FROM cst_item_cst_dtls_interface cicdi, cst_uom_conv_rates_temp cucr
1001    WHERE cicdi.inventory_item_id = cucr.inventory_item_id
1002    AND cicdi.basis_type = 1
1003    AND cicdi.group_id = grp_id)
1004 SET USAGE_RATE_OR_AMOUNT = USAGE_RATE_OR_AMOUNT / uom_conversion_rate,
1005     ITEM_COST = ITEM_COST / uom_conversion_rate,
1006     YIELDED_COST = YIELDED_COST / uom_conversion_rate ;/*Added for bug 14159528*/
1007 
1008 location := 9;
1009 /* Update the basis_factor in CICD for all rows where the basis type IS NOT 'ITEM'     *
1010  * When the basis type is anything other than 'ITEM' (LOT, RESOURCE UNITS, RESOURCE    *
1011  * VALUE, TOTAL VALUE, ACTIVITY) the basis factor converts between basis and item, so  *
1012  * we should apply the UOM conversion to the basis factor.                             */
1013 
1014 UPDATE (
1015    SELECT BASIS_FACTOR,
1016           ITEM_COST,
1017 	  YIELDED_COST, /*Added for bug 14159528*/
1018           uom_conversion_rate
1019    FROM cst_item_cst_dtls_interface cicdi, cst_uom_conv_rates_temp cucr
1020    WHERE cicdi.inventory_item_id = cucr.inventory_item_id
1021    AND cicdi.basis_type <> 1
1022    AND cicdi.group_id = grp_id)
1023 SET BASIS_FACTOR = BASIS_FACTOR / uom_conversion_rate,
1024     ITEM_COST = ITEM_COST / uom_conversion_rate,
1025     YIELDED_COST = YIELDED_COST / uom_conversion_rate ;/*Added for bug 14159528*/
1026 
1027 
1028 
1029 /* End of 11.5.10+ additions */
1030 
1031 RETURN(0); /* No Error */
1032 
1033 EXCEPTION
1034     WHEN uom_exception THEN
1035        fnd_file.put_line(fnd_file.log,'');
1036        fnd_message.set_name('BOM', 'CST_NO_UOM_CONV_RATE');
1037        fnd_file.put_line(fnd_file.log, fnd_message.get);
1038        LOOP
1039           fnd_file.put_line(fnd_file.log,c_missing_uom_conv.item_name);
1040           FETCH cur_uom_conv INTO c_missing_uom_conv;
1041           EXIT WHEN cur_uom_conv%NOTFOUND;
1042        END LOOP;
1043        CLOSE cur_uom_conv;
1044        error_msg := 'copy_to_interface(): Required Unit of Measure conversion rates are missing.';
1045        CONC_STATUS := FND_CONCURRENT.SET_COMPLETION_STATUS('ERROR',error_msg);
1046        RETURN(1); -- the calling program will rollback
1047 
1048     WHEN OTHERS THEN
1049         error_msg         := 'copy_to_interface('||location||'): ' || SQLERRM(100);
1050 	RETURN(SQLCODE);
1051 
1052 
1053 END copy_to_interface;
1054 
1055 
1056 END CSTPCOIC; /* end package body */