DBA Data[Home] [Help]

PACKAGE BODY: APPS.INV_ITEM_PVT

Source


1 PACKAGE BODY INV_ITEM_PVT AS
2 /* $Header: INVVITMB.pls 120.33.12010000.3 2008/11/20 00:29:00 akbharga ship $ */
3 G_PKG_NAME       CONSTANT   VARCHAR2(30)  :=  'INV_ITEM_PVT';
4 
5 -- =============================================================================
6 --                   Package variables, constants and cursors
7 -- =============================================================================
8 
9 /*
10 -- Pre-defined validation levels
11 --
12 G_VALID_LEVEL_NONE      CONSTANT   NUMBER  :=  0;
13 G_VALID_LEVEL_FULL      CONSTANT   NUMBER  :=  100;
14 
15 -- Return codes
16 --
17 G_RET_STS_SUCCESS       CONSTANT   VARCHAR2(1)  :=  'S';
18 G_RET_STS_ERROR         CONSTANT   VARCHAR2(1)  :=  'E';
19 G_RET_STS_UNEXP_ERROR   CONSTANT   VARCHAR2(1)  :=  'U';
20 
21 -- Error exceptions
22 --
23 G_EXC_ERROR                EXCEPTION;
24 G_EXC_UNEXPECTED_ERROR     EXCEPTION;
25 */
26 
27 SUBTYPE Attribute_Code_type  IS mtl_item_attributes.attribute_name%TYPE;  -- VARCHAR2(50)
28 
29 TYPE Attribute_Code_tbl_type IS TABLE OF Attribute_Code_type
30                                 INDEX BY BINARY_INTEGER;
31 
32 g_Master_Attribute_tbl      Attribute_Code_tbl_type;
33 g_Master_Org_ID             NUMBER;
34 g_Org_ID                    NUMBER;
35 G_IS_MASTER_ATTR_MODIFIED     VARCHAR2(1) := 'N';
36 /*Bug 6407303 Adding a new parameter to check for the master attribute */
37 
38 ------------------------- Get_Master_Org_ID ----------------------------------
39 FUNCTION Get_Master_Org_ID(p_Org_ID  IN   NUMBER) RETURN  NUMBER IS
40 BEGIN
41 
42    IF ((g_Master_Org_ID IS NULL ) OR NOT(g_Org_ID = p_Org_ID)) THEN
43       g_Org_ID := p_Org_ID;
44       SELECT  master_organization_id
45       INTO  g_Master_Org_ID
46       FROM  mtl_parameters
47       WHERE  organization_id = p_Org_ID;
48    END IF;
49    RETURN ( g_Master_Org_ID );
50 
51 END Get_Master_Org_ID;
52 
53 /*-------------------------- Get_Master_Attributes ---------------------------*/
54 
55 -- =============================================================================
56 --  Procedure:		Get_Master_Attributes
57 --
58 --  Description:
59 --    Store master-controlled attribute codes into a package pl/sql table.
60 -- =============================================================================
61 
62 PROCEDURE Get_Master_Attributes
63 (
64    x_return_status    OUT   NOCOPY VARCHAR2
65 )
66 IS
67    l_api_name     CONSTANT  VARCHAR2(30)  :=  'Get_Master_Attributes';
68 
69    --------------------------------------------------------
70    -- Fetch master-controlled attributes which values need
71    -- to be propagated to org items.
72    --------------------------------------------------------
73 
74    CURSOR Master_Attribute_csr
75    IS
76      SELECT  SUBSTR(attribute_name, 18)  Attribute_Code
77      FROM  mtl_item_attributes
78      WHERE  control_level = 1
79        AND  attribute_group_id_gui IN
80             (20, 25, 30, 31, 35, 40, 41, 51,
81              60, 62, 65, 70, 80, 90, 100, 120 /* Start Bug 3713912 */,130/* End Bug 3713912 */);
82 
83    l_Master_Attribute_Code    Attribute_Code_type;
84    i                          BINARY_INTEGER;
85 
86 BEGIN
87 
88    IF ( g_Master_Attribute_tbl.COUNT = 0 ) THEN
89 
90       OPEN Master_Attribute_csr;
91 
92       -- Loop through item attributes
93 
94       i := 0;
95 
96       LOOP
97          i := i + 1;
98 
99          FETCH Master_Attribute_csr INTO l_Master_Attribute_Code;
100          EXIT WHEN ( Master_Attribute_csr%NOTFOUND );
101 
102          g_Master_Attribute_tbl (i) := l_Master_Attribute_Code;
103 
104          IF ( l_Master_Attribute_Code = 'PRIMARY_UOM_CODE' ) THEN
105             i := i + 1;
106             g_Master_Attribute_tbl (i) := 'PRIMARY_UNIT_OF_MEASURE';
107          END IF;
108 
109       END LOOP;  -- Loop through item attributes
110 
111       CLOSE Master_Attribute_csr;
112 
113    END IF;  -- (g_Master_Attribute_tbl.COUNT = 0)
114 
115    -- Set return status
116    x_return_status := FND_API.g_RET_STS_SUCCESS;
117 
118 EXCEPTION
119 
120    WHEN others THEN
121 
122       IF ( Master_Attribute_csr%ISOPEN ) THEN
123          CLOSE Master_Attribute_csr;
124       END IF;
125 
126       x_return_status := FND_API.g_RET_STS_UNEXP_ERROR;
127 
128       IF FND_MSG_PUB.Check_Msg_Level
129          ( FND_MSG_PUB.g_MSG_LVL_UNEXP_ERROR )
130       THEN
131          FND_MSG_PUB.Add_Exc_Msg
132          (   p_pkg_name         =>  G_PKG_NAME
133          ,   p_procedure_name   =>  l_api_name
134 --       ,   p_error_text       =>  'UNEXP_ERROR : ' || SQLERRM
135          );
136       END IF;
137 
138 END Get_Master_Attributes;
139 
140 
141 /*------------------------------ Lock_Org_Items ------------------------------*/
142 
143 PROCEDURE Lock_Org_Items
144 (
145     p_Item_ID         IN   NUMBER
146 ,   p_Org_ID          IN   NUMBER
147 ,   p_lock_Master     IN   VARCHAR2   :=  FND_API.g_TRUE
148 ,   p_lock_Orgs       IN   VARCHAR2   :=  FND_API.g_FALSE
149 ,   x_return_status   OUT NOCOPY VARCHAR2
150 )
151 IS
152   l_api_name    CONSTANT  VARCHAR2(30)  :=  'Lock_Org_Items';
153 /*
154   l_Item_ID         NUMBER ;
155   l_Org_ID          NUMBER ;
156 */
157   l_return_status   VARCHAR2(1);
158 BEGIN
159 
160   OPEN INV_ITEM_API.Item_csr
161        (
162            p_Item_ID        =>  p_Item_ID
163        ,   p_Org_ID         =>  p_Org_ID
164        ,   p_fetch_Master   =>  p_lock_Master
165        ,   p_fetch_Orgs     =>  p_lock_Orgs
166        );
167 
168   CLOSE INV_ITEM_API.Item_csr;
169 
170   OPEN INV_ITEM_API.Item_TL_csr
171        (
172            p_Item_ID        =>  p_Item_ID
173        ,   p_Org_ID         =>  p_Org_ID
174        ,   p_fetch_Master   =>  p_lock_Master
175        ,   p_fetch_Orgs     =>  p_lock_Orgs
176        );
177 
178   CLOSE INV_ITEM_API.Item_TL_csr;
179 
180 EXCEPTION
181 
182 /*
183   -- row locking exception
184   --
185   WHEN FND_API.g_EXC_ THEN
186      x_return_status := FND_API.g_RET_STS_UNEXP_ERROR;
187      fnd_message.Set_Name( 'INV', 'Cannot_Lock_Item_rec' );
188      FND_MSG_PUB.Add;
189      RAISE;
190 */
191 
192   WHEN OTHERS THEN
193 
194      IF ( INV_ITEM_API.Item_csr%ISOPEN ) THEN
195         CLOSE INV_ITEM_API.Item_csr;
196      END IF;
197 
198      IF ( INV_ITEM_API.Item_TL_csr%ISOPEN ) THEN
199         CLOSE INV_ITEM_API.Item_TL_csr;
200      END IF;
201 
202      x_return_status := FND_API.g_RET_STS_UNEXP_ERROR;
203      fnd_message.Set_Name( 'INV', 'Cannot_Lock_Item_rec' );
204      FND_MSG_PUB.Add;
205      RAISE;
206 
207 END Lock_Org_Items;
208 
209 
210 /*----------------------------- Update_Org_Items -----------------------------*/
211 
212 PROCEDURE Update_Org_Items
213 (
214     p_init_msg_list        IN   VARCHAR2       :=  FND_API.g_FALSE
215 ,   p_commit               IN   VARCHAR2       :=  FND_API.g_FALSE
216 ,   p_lock_rows            IN   VARCHAR2       :=  FND_API.g_TRUE
217 ,   p_validation_level     IN   NUMBER         :=  FND_API.g_VALID_LEVEL_FULL
218 ,   p_Item_rec             IN   INV_ITEM_API.Item_rec_type
219 ,   p_update_changes_only  IN   VARCHAR2       :=  FND_API.g_FALSE
220 ,   p_validate_Master      IN   VARCHAR2       :=  FND_API.g_TRUE
221 ,   x_return_status        OUT NOCOPY VARCHAR2
222 ,   x_msg_count            OUT NOCOPY NUMBER
223 ,   x_msg_data             OUT NOCOPY VARCHAR2
224 )
225 IS
226   l_api_name    CONSTANT  VARCHAR2(30)  :=  'Update_Org_Items';
227 
228   p_Item_ID         NUMBER;
229   p_Org_ID          NUMBER;
230   p_Master_Org_ID   NUMBER;
231   p_Org_is_Master   BOOLEAN;
232 
233 --  l_Item_ID         NUMBER;
234 --  l_Org_ID          NUMBER;
235 
236   l_Item_rec               INV_ITEM_API.Item_rec_type;
237   m_Item_rec               INV_ITEM_API.Item_rec_type;
238 
239 --  l_Item_TL_rec            INV_ITEM_API.Item_TL_rec_type;
240 
241   l_Attribute_Code         Attribute_Code_type;
242   l_update_Item_TL         BOOLEAN;
243 --  l_Lang_Flag              VARCHAR2(1);
244   l_Lang_Flag              FND_LANGUAGES.INSTALLED_FLAG%TYPE;
245 
246   l_return_status          VARCHAR2(1);
247 --Added for 11.5.10
248   l_vmiorconsign_enabled   NUMBER;
249   l_consign_enabled        NUMBER;
250   l_exists                 NUMBER;
251 
252 
253    CURSOR org_parameters_csr(c_organization_id NUMBER)
254    IS
255      SELECT  process_enabled_flag, wms_enabled_flag,
256              eam_enabled_flag, primary_cost_method,
257 	     trading_partner_org_flag
258      FROM  mtl_parameters
259      WHERE organization_id = c_organization_id;
260 
261 l_process_enabled        VARCHAR2(1);
262 l_eam_enabled            VARCHAR2(1);
263 l_wms_enabled            VARCHAR2(1);
264 l_primary_cost_method    NUMBER;
265 l_trading_partner_org    VARCHAR2(1);
266 
267 
268   -- Added for bug 5236494
269   CURSOR status_attr_control IS
270   SELECT attribute_name, status_control_code
271   FROM   mtl_item_attributes
272   WHERE  status_control_code IS NOT NULL;
273 
274   CURSOR  status_attr_values (p_item_status_code VARCHAR2) IS
275   SELECT  attribute_name, attribute_value
276   FROM    mtl_status_attribute_values
277   WHERE   inventory_item_status_code = p_item_status_code;
278 
279   l_status_attr            VARCHAR2(50);
280   l_status_ctrl            NUMBER;
281   l_bom_enabled_status	   VARCHAR2(1);
282   l_purchasable_status	   VARCHAR2(1);
283   l_transactable_status	   VARCHAR2(1);
284   l_stockable_status	   VARCHAR2(1);
285   l_wip_status		   VARCHAR2(1);
286   l_cust_ord_status	   VARCHAR2(1);
287   l_int_ord_status	   VARCHAR2(1);
288   l_invoiceable_status	   VARCHAR2(1);
289 
290   l_attr_name		   VARCHAR2(50);
291   l_attr_value		   VARCHAR2(1);
292   l_bom_enabled_value	   VARCHAR2(1);
293   l_purchasable_value	   VARCHAR2(1);
294   l_transactable_value	   VARCHAR2(1);
295   l_stockable_value	   VARCHAR2(1);
296   l_wip_value		   VARCHAR2(1);
297   l_cust_ord_value	   VARCHAR2(1);
298   l_int_ord_value	   VARCHAR2(1);
299   l_invoiceable_value	   VARCHAR2(1);
300   -- End of bug 5236494
301   l_update_child_rec Boolean := FALSE; --Bug: 5220205
302 BEGIN
303 
304   -- Set savepoint
305   SAVEPOINT Update_Org_Items_PVT;
306 
307   -- Initialize message list
308   --
309   IF ( FND_API.to_Boolean (p_init_msg_list) ) THEN
310      FND_MSG_PUB.Initialize;
311   END IF;
312 
313   -- Initialize API return status to success
314   --
315   x_return_status := FND_API.g_RET_STS_SUCCESS;
316 
317   p_Item_ID := p_Item_rec.INVENTORY_ITEM_ID ;
318   p_Org_ID  := p_Item_rec.ORGANIZATION_ID ;
319 
320   IF ( p_Item_ID IS NULL ) OR
321      ( p_Org_ID  IS NULL )
322   THEN
323      fnd_message.SET_NAME( 'INV', 'INV_MISS_OrgItem_ID' );
324      FND_MSG_PUB.Add;
325      RAISE FND_API.g_EXC_UNEXPECTED_ERROR;
326   END IF;
327 
328 
329 
330   -- At this point it is sufficient to check (above) that item id
331   -- is not missing.
332 /*
333   -- Check if item record has any attribute values assigned
334   --
335   IF ( INV_ITEM_Lib.Is_Item_rec_Missing( p_Item_rec ) ) THEN
336      fnd_message.SET_NAME( 'INV', 'INV_MISS_Item_rec' );
337      FND_MSG_PUB.Add;
338      RAISE FND_API.g_EXC_UNEXPECTED_ERROR;
339   END IF;
340 */
341 
342   ------------------------
343   -- Lock org item rows --
344   ------------------------
345 
346   IF ( FND_API.to_Boolean (p_lock_rows) ) THEN
347 
348      INV_ITEM_PVT.Lock_Org_Items
349      (
350          p_Item_ID         =>  p_Item_ID
351      ,   p_Org_ID          =>  p_Org_ID
352      ,   p_lock_Master     =>  FND_API.g_TRUE
353      ,   p_lock_Orgs       =>  FND_API.g_TRUE
354      ,   x_return_status   =>  l_return_status
355      );
356 
357   END IF;  --  Lock org item rows
358 
359   -- Get current language installation status (B or I)
360   -- to see if it is base language
361   --
362   SELECT  INSTALLED_FLAG INTO l_Lang_Flag
363   FROM  FND_LANGUAGES
364   WHERE  LANGUAGE_CODE = userenv('LANG');
365 
366   --------------------------------------------
367   -- Open item query and fetch a first row. --
368   -- The first row is master item, if p_Org --
369   -- is master organization.                --
370   --------------------------------------------
371 
372   OPEN INV_ITEM_API.Item_csr
373        (
374            p_Item_ID        =>  p_Item_ID
375        ,   p_Org_ID         =>  p_Org_ID
376        ,   p_fetch_Master   =>  FND_API.g_TRUE
377        ,   p_fetch_Orgs     =>  FND_API.g_TRUE
378        );
379   FETCH INV_ITEM_API.Item_csr INTO l_Item_rec;
380 
381   IF ( INV_ITEM_API.Item_csr%NOTFOUND ) THEN
382      CLOSE INV_ITEM_API.Item_csr;
383      fnd_message.SET_NAME( 'INV', 'INV_Update_Org_Items_notfound' );
384      FND_MSG_PUB.Add;
385      RAISE FND_API.g_EXC_UNEXPECTED_ERROR;
386   END IF;
387 
388   -- Get master org ID from the fetched record
389   -- (parameter p_Item_rec may not have this value)
390   --
391   p_Master_Org_ID := l_Item_rec.MASTER_ORGANIZATION_ID ;
392 
393   p_Org_is_Master := ( p_Org_ID = p_Master_Org_ID );
394 
395   ----------------------------------------------------------
396   -- Depending on the input parameter, copy either        --
397   -- input item record "as is", or changed atributes only --
398   ----------------------------------------------------------
399 
400   IF ( FND_API.to_Boolean (p_update_changes_only) )
401   THEN
402      -- Update changed attributes only - not implemented yet
403 /*
404      INV_ITEM_Lib.Copy_Changed_Attributes
405      (
406          p_Item_rec   =>  p_Item_rec
407      ,   x_Item_rec   =>  l_Item_rec
408      );
409 */
410      l_Item_rec := p_Item_rec ;
411   ELSE
412      l_Item_rec := p_Item_rec ;
413   END IF;
414 
415 /*
416   -- Value layer
417 
418   -- Attribute defaulting
419 */
420 
421   -------------------------------------------------------
422   -- Item validation, depending on the input parameter --
423   -------------------------------------------------------
424 
425   IF ( FND_API.to_Boolean (p_validate_Master) ) THEN
426 
427      IF (l_Item_rec.inventory_item_flag ='N' AND
428          l_Item_rec.stock_enabled_flag ='Y' ) THEN
429        fnd_message.SET_NAME('INV', 'INVALID_INV_STK_FLAG_COMB');
430        FND_MSG_PUB.Add;
431        l_return_status := FND_API.g_RET_STS_ERROR;
432      ELSIF (l_Item_rec.stock_enabled_flag ='N' AND
433             l_Item_rec.mtl_transactions_enabled_flag ='Y' )THEN
434        fnd_message.SET_NAME('INV', 'INVALID_STK_TRX_FLAG_COMB');
435        FND_MSG_PUB.Add;
436        l_return_status := FND_API.g_RET_STS_ERROR;
437      ELSIF (l_Item_rec.purchasing_item_flag ='N' AND
438             l_Item_rec.purchasing_enabled_flag ='Y' )THEN
439        fnd_message.SET_NAME('INV', 'INVALID_PI_PE_FLAG_COMB');
440        FND_MSG_PUB.Add;
441        l_return_status := FND_API.g_RET_STS_ERROR;
442      ELSIF (l_Item_rec.customer_order_flag ='N' AND
443             l_Item_rec.customer_order_enabled_flag ='Y' )THEN
444        fnd_message.SET_NAME('INV', 'INVALID_CO_COE_FLAG_COMB');
445        FND_MSG_PUB.Add;
446        l_return_status := FND_API.g_RET_STS_ERROR;
447      ELSIF (l_Item_rec.internal_order_flag ='N' AND
448             l_Item_rec.internal_order_enabled_flag ='Y' )THEN
449        fnd_message.SET_NAME('INV', 'INVALID_IO_IOE_FLAG_COMB');
450        FND_MSG_PUB.Add;
451        l_return_status := FND_API.g_RET_STS_ERROR;
452 /** Bug: 3546140 Removed for PLM RBOM
453      ELSIF (l_Item_rec.inventory_item_flag = 'N' AND
454             l_Item_rec.contract_item_type_code IS NULL AND
455             l_Item_rec.bom_enabled_flag = 'Y') THEN
456        fnd_message.SET_NAME ('INV', 'INV_ITEM_MASTER_CTRL_ATTR_ERR');
457        fnd_message.SET_TOKEN ('ERROR_MESSAGE_NAME', 'INV_BOM_ENABLED', TRUE);
458        FND_MSG_PUB.Add;
459        l_return_status := FND_API.g_RET_STS_ERROR;
460 ***/
461      ELSIF ( ( l_item_rec.inventory_item_flag = 'N'
462            OR  l_item_rec.bom_item_type <> 4 )
463            AND l_Item_rec.build_in_wip_flag ='Y' ) THEN
464        FND_MESSAGE.Set_Name ('INV', 'INVALID_INV_WIP_FLAG_COMB');
465        FND_MSG_PUB.Add;
466        l_return_status := FND_API.g_RET_STS_ERROR;
467 
468      ELSIF ( l_Item_rec.EFFECTIVITY_CONTROL = 2 ) AND
469            ( l_Item_rec.SERIAL_NUMBER_CONTROL_CODE NOT IN (2, 5) ) THEN
470        fnd_message.SET_NAME('INV', 'ITM-EFFC-INVALID SERIAL CTRL-2');
471        FND_MSG_PUB.Add;
472        l_return_status := FND_API.g_RET_STS_ERROR;
473 
474      ELSIF (l_Item_rec.serviceable_product_flag = 'Y' AND
475             nvl(l_Item_rec.comms_nl_trackable_flag,'N') = 'N') THEN
476        fnd_message.SET_NAME ('INV', 'INV_ITEM_MASTER_CTRL_ATTR_ERR');
477        fnd_message.SET_TOKEN ('ERROR_MESSAGE_NAME', 'INV_IB_TRACKING_SERVICEABLE', TRUE);
478        FND_MSG_PUB.Add;
479        l_return_status := FND_API.g_RET_STS_ERROR;
480 --Added for 11.5.10 validations
481      ELSE
482        INVIDIT3.VMI_Table_Queries(
483            P_org_id                =>  l_Item_rec.organization_id
484          , P_item_id               =>  l_Item_rec.inventory_item_id
485          , X_vmiorconsign_enabled  =>  l_vmiorconsign_enabled
486          , X_consign_enabled	   =>  l_consign_enabled
487          );
488        IF ( (l_vmiorconsign_enabled = 1 AND
489             (NVL(l_Item_rec.outside_operation_flag,'N') = 'Y' OR
490 	     l_Item_rec.eam_item_type IS NOT NULL OR
491              NVL(l_Item_rec.mtl_transactions_enabled_flag,'N') = 'N' OR
492              NVL(l_Item_rec.stock_enabled_flag,'N') = 'N'))
493             OR
494 	    (l_consign_enabled = 1 AND NVL(l_Item_rec.inventory_asset_flag,'N') = 'N')
495             ) THEN
496                 fnd_message.SET_NAME ('INV', 'INV_INVALID_VMI_COMB');
497                 FND_MSG_PUB.Add;
498                 l_return_status := FND_API.g_RET_STS_ERROR;
499        END IF;
500      END IF;
501 
502 /*
503      INV_ITEM_PVT.Validate_Item
504      (
505          p_validation_level  =>  p_validation_level
506      ,   p_Item_rec          =>  l_Item_rec
507      ,   x_return_status     =>  l_return_status
508      ,   x_msg_count         =>  x_msg_count
509      ,   x_msg_data          =>  x_msg_data
510      );
511 */
512 
513      IF ( l_return_status = FND_API.g_RET_STS_ERROR ) THEN
514         RAISE FND_API.g_EXC_ERROR;
515      ELSIF ( l_return_status = FND_API.g_RET_STS_UNEXP_ERROR ) THEN
516         RAISE FND_API.g_EXC_UNEXPECTED_ERROR;
517      END IF;
518 
519   END IF;  -- validate master
520 
521   ----------------------------
522   -- Update master item row --
523   ----------------------------
524 
525   INV_ITEM_API.Update_Item_Row
526   (
527       p_Item_rec          =>  l_Item_rec
528   ,   p_update_Item_TL    =>  TRUE
529   ,   p_Lang_Flag         =>  l_Lang_Flag
530   ,   x_return_status     =>  l_return_status
531   );
532 
533   -------------------------------------------------
534   -- Continue with org items, if p_Org is master --
535   -------------------------------------------------
536 
537   ----------------------------------- p_Org is master ---
538   IF ( p_Org_is_Master ) THEN
539 
540      -- Save master item record
541      --
542      m_Item_rec := l_Item_rec;
543 
544      -- Get a list of master control level attributes
545 
546      Get_Master_Attributes ( x_return_status  =>  l_return_status );
547 
548      IF ( l_return_status = FND_API.g_RET_STS_ERROR ) THEN
549         RAISE FND_API.g_EXC_ERROR;
550      ELSIF ( l_return_status = FND_API.g_RET_STS_UNEXP_ERROR ) THEN
551         RAISE FND_API.g_EXC_UNEXPECTED_ERROR;
552      END IF;
553 /*
554      ELSE
555        fnd_message.Set_Name( 'INV', 'Master_Attribute.COUNT <> 0' );
556        FND_MSG_PUB.Add;
557        RAISE FND_API.g_EXC_UNEXPECTED_ERROR;
558 */
559 
560 /*   Following fix needs to be reverted for 5645595
561      -- Added for bug 5236494
562      -- Fetching status setting for each status controlled attribute
563      OPEN status_attr_control;
564      LOOP
565 	FETCH status_attr_control INTO l_status_attr, l_status_ctrl;
566 	EXIT when status_attr_control%NOTFOUND;
567 
568 	IF l_status_attr = 'MTL_SYSTEM_ITEMS.BOM_ENABLED_FLAG' THEN
569 	    l_bom_enabled_status := l_status_ctrl;
570 	ELSIF l_status_attr = 'MTL_SYSTEM_ITEMS.PURCHASING_ENABLED_FLAG' THEN
571 	    l_purchasable_status := l_status_ctrl;
572 	ELSIF l_status_attr = 'MTL_SYSTEM_ITEMS.MTL_TRANSACTIONS_ENABLED_FLAG' THEN
573 	    l_transactable_status := l_status_ctrl;
574 	ELSIF l_status_attr = 'MTL_SYSTEM_ITEMS.STOCK_ENABLED_FLAG' THEN
575 	    l_stockable_status := l_status_ctrl;
576 	ELSIF l_status_attr = 'MTL_SYSTEM_ITEMS.BUILD_IN_WIP_FLAG' THEN
577 	    l_wip_status := l_status_ctrl;
578 	ELSIF l_status_attr = 'MTL_SYSTEM_ITEMS.CUSTOMER_ORDER_ENABLED_FLAG' THEN
579 	    l_cust_ord_status := l_status_ctrl;
580 	ELSIF l_status_attr = 'MTL_SYSTEM_ITEMS.INTERNAL_ORDER_ENABLED_FLAG' THEN
581 	    l_int_ord_status := l_status_ctrl;
582 	ELSIF l_status_attr = 'MTL_SYSTEM_ITEMS.INVOICE_ENABLED_FLAG' THEN
583 	    l_invoiceable_status := l_status_ctrl;
584 	END IF;
585 
586      END LOOP;
587      CLOSE status_attr_control;
588 
589      -- Fetching attribute value for each status controlled attribute
590      -- corresponding to master organization's status code
591      OPEN status_attr_values (m_Item_rec.INVENTORY_ITEM_STATUS_CODE);
592      LOOP
593 	FETCH status_attr_values INTO l_attr_name, l_attr_value;
594 	EXIT when status_attr_values%NOTFOUND;
595 
596 	IF l_attr_name = 'MTL_SYSTEM_ITEMS.BOM_ENABLED_FLAG' THEN
597 	    l_bom_enabled_value := l_attr_value;
598 	ELSIF l_attr_name = 'MTL_SYSTEM_ITEMS.PURCHASING_ENABLED_FLAG' THEN
599 	    l_purchasable_value := l_attr_value;
600 	ELSIF l_attr_name = 'MTL_SYSTEM_ITEMS.MTL_TRANSACTIONS_ENABLED_FLAG' THEN
601 	    l_transactable_value := l_attr_value;
602 	ELSIF l_attr_name = 'MTL_SYSTEM_ITEMS.STOCK_ENABLED_FLAG' THEN
603 	    l_stockable_value := l_attr_value;
604 	ELSIF l_attr_name = 'MTL_SYSTEM_ITEMS.BUILD_IN_WIP_FLAG' THEN
605 	    l_wip_value := l_attr_value;
606 	ELSIF l_attr_name = 'MTL_SYSTEM_ITEMS.CUSTOMER_ORDER_ENABLED_FLAG' THEN
607 	    l_cust_ord_value := l_attr_value;
608 	ELSIF l_attr_name = 'MTL_SYSTEM_ITEMS.INTERNAL_ORDER_ENABLED_FLAG' THEN
609 	    l_int_ord_value := l_attr_value;
610 	ELSIF l_attr_name = 'MTL_SYSTEM_ITEMS.INVOICE_ENABLED_FLAG' THEN
611 	    l_invoiceable_value := l_attr_value;
612 	END IF;
613 
614      END LOOP;
615      CLOSE status_attr_values; */
616      -- End of bug 5236494
617 
618   --------------------------------
619   LOOP  -- loop through org items
620 
621      FETCH INV_ITEM_API.Item_csr INTO l_Item_rec;
622 
623      EXIT WHEN INV_ITEM_API.Item_csr%NOTFOUND;
624 
625      ----------------------------------
626      -- Loop through item attributes --
627      ----------------------------------
628 
629      l_update_Item_TL := FALSE;
630      l_update_child_rec     := FALSE;  --Bug: 5220205
631   -- Bug 4388141. Populate long description in l_item_rec.long_description
632      SELECT description , long_description
633      INTO   l_item_rec.description , l_item_rec.long_description
634      FROM   mtl_system_items_tl
635      WHERE  inventory_item_id = l_item_rec.inventory_item_id
636      AND    organization_id = l_item_rec.organization_id
637      AND    language = userenv('LANG');
638 
639      FOR i IN 1 .. g_Master_Attribute_tbl.COUNT LOOP
640         l_Attribute_Code := g_Master_Attribute_tbl (i);
641         -- Copy master level attribute over to an org item
642 
643         IF ( l_Attribute_Code = 'DESCRIPTION'                       ) THEN
644 	   IF l_Item_rec.DESCRIPTION <> m_Item_rec.DESCRIPTION THEN
645               l_Item_rec.DESCRIPTION := m_Item_rec.DESCRIPTION;
646               l_update_Item_TL := TRUE;
647               l_update_child_rec := TRUE;
648 	   END IF;
649 	ELSIF ( l_Attribute_Code = 'LONG_DESCRIPTION'               ) THEN
650 	   IF NVL(l_Item_rec.LONG_DESCRIPTION,'@@@') <> NVL(m_Item_rec.LONG_DESCRIPTION,'@@@') THEN
651 	      l_Item_rec.LONG_DESCRIPTION := m_Item_rec.LONG_DESCRIPTION;
652               l_update_Item_TL := TRUE;
653 	      l_update_child_rec := TRUE;
654 	   END IF;
655         ELSIF ( l_Attribute_Code = 'PRIMARY_UOM_CODE'               ) THEN
656            l_Item_rec.PRIMARY_UOM_CODE := m_Item_rec.PRIMARY_UOM_CODE;
657         ELSIF ( l_Attribute_Code = 'PRIMARY_UNIT_OF_MEASURE'        ) THEN
658            l_Item_rec.PRIMARY_UNIT_OF_MEASURE := m_Item_rec.PRIMARY_UNIT_OF_MEASURE;
659 
660         ELSIF ( l_Attribute_Code = 'ITEM_TYPE'                      ) THEN
661            l_Item_rec.ITEM_TYPE                      := m_Item_rec.ITEM_TYPE;
662            l_update_child_rec := TRUE;		-- Bug 	6450473
663 
664         ELSIF ( l_Attribute_Code = 'INVENTORY_ITEM_STATUS_CODE'     ) THEN
665 	   --Added for Bug: 5236494
666 	   IF l_Item_rec.INVENTORY_ITEM_STATUS_CODE <> m_Item_rec.INVENTORY_ITEM_STATUS_CODE THEN
667  	      /*   Following fix needs to be reverted for 5645595
668 		-- If status setting is not 'Not Used' then populate child organization's
669 		-- status controlled attributes with attribute value fetched earlier.
670 		IF l_stockable_status <> 3 THEN
671 		    l_Item_rec.STOCK_ENABLED_FLAG := l_stockable_value;
672 		END IF;
673 		IF l_transactable_status <> 3 THEN
674 		    l_Item_rec.MTL_TRANSACTIONS_ENABLED_FLAG := l_transactable_value;
675 		END IF;
676 		IF l_bom_enabled_status <> 3 THEN
677 		    l_Item_rec.BOM_ENABLED_FLAG := l_bom_enabled_value;
678 		END IF;
679 		IF l_purchasable_status <> 3 THEN
680 		    l_Item_rec.PURCHASING_ENABLED_FLAG := l_purchasable_value;
681 		END IF;
682 		IF l_wip_status <> 3 THEN
683 		    l_Item_rec.BUILD_IN_WIP_FLAG := l_wip_value;
684 		END IF;
685 		IF l_cust_ord_status <> 3 THEN
686 		    l_Item_rec.CUSTOMER_ORDER_ENABLED_FLAG := l_cust_ord_value;
687 		END IF;
688 		IF l_int_ord_status <> 3 THEN
689 		    l_Item_rec.INTERNAL_ORDER_ENABLED_FLAG := l_int_ord_value;
690 		END IF;
691 		IF l_invoiceable_status <> 3 THEN
692 		    l_Item_rec.INVOICE_ENABLED_FLAG := l_invoiceable_value;
693 		END IF; */
694 	   -- End of bug 5236494
695 	        l_Item_rec.INVENTORY_ITEM_STATUS_CODE     := m_Item_rec.INVENTORY_ITEM_STATUS_CODE;
696                 l_update_child_rec := TRUE;
697 	   END IF;
698 
699             --Inventory Attribute Group
700         ELSIF ( l_Attribute_Code = 'INVENTORY_ITEM_FLAG') THEN
701 	   IF (NVL(l_Item_rec.INVENTORY_ITEM_FLAG,'!')  <> NVL(m_Item_rec.INVENTORY_ITEM_FLAG,'!')) THEN
702               l_Item_rec.INVENTORY_ITEM_FLAG            := m_Item_rec.INVENTORY_ITEM_FLAG;
703 	      l_update_child_rec := TRUE;
704 	   END IF;
705         ELSIF ( l_Attribute_Code = 'STOCK_ENABLED_FLAG') THEN
706 	   IF (NVL(l_Item_rec.STOCK_ENABLED_FLAG,'!')  <> NVL(m_Item_rec.STOCK_ENABLED_FLAG,'!')) THEN
707               l_Item_rec.STOCK_ENABLED_FLAG             := m_Item_rec.STOCK_ENABLED_FLAG;
708 	      l_update_child_rec := TRUE;
709 	   END IF;
710         ELSIF ( l_Attribute_Code = 'MTL_TRANSACTIONS_ENABLED_FLAG') THEN
711 	   IF (NVL(l_Item_rec.MTL_TRANSACTIONS_ENABLED_FLAG,'!')  <> NVL(m_Item_rec.MTL_TRANSACTIONS_ENABLED_FLAG,'!')) THEN
712               l_Item_rec.MTL_TRANSACTIONS_ENABLED_FLAG  := m_Item_rec.MTL_TRANSACTIONS_ENABLED_FLAG;
713 	      l_update_child_rec := TRUE;
714 	   END IF;
715         ELSIF ( l_Attribute_Code = 'REVISION_QTY_CONTROL_CODE') THEN
716 	   IF (NVL(l_Item_rec.REVISION_QTY_CONTROL_CODE,-999999)  <> NVL(m_Item_rec.REVISION_QTY_CONTROL_CODE,-999999)) THEN
717               l_Item_rec.REVISION_QTY_CONTROL_CODE      := m_Item_rec.REVISION_QTY_CONTROL_CODE;
718 	      l_update_child_rec := TRUE;
719 	   END IF;
720         ELSIF ( l_Attribute_Code = 'RESERVABLE_TYPE') THEN
721 	   IF (NVL(l_Item_rec.RESERVABLE_TYPE,-999999)  <> NVL(m_Item_rec.RESERVABLE_TYPE,-999999)) THEN
722               l_Item_rec.RESERVABLE_TYPE                := m_Item_rec.RESERVABLE_TYPE;
723 	      l_update_child_rec := TRUE;
724 	   END IF;
725         ELSIF ( l_Attribute_Code = 'CHECK_SHORTAGES_FLAG') THEN
726 	   IF (NVL(l_Item_rec.CHECK_SHORTAGES_FLAG,'!')  <> NVL(m_Item_rec.CHECK_SHORTAGES_FLAG,'!')) THEN
727               l_Item_rec.CHECK_SHORTAGES_FLAG           := m_Item_rec.CHECK_SHORTAGES_FLAG;
728 	      l_update_child_rec := TRUE;
729 	   END IF;
730         ELSIF ( l_Attribute_Code = 'LOT_CONTROL_CODE') THEN
731 	   IF (NVL(l_Item_rec.LOT_CONTROL_CODE,-999999)  <> NVL(m_Item_rec.LOT_CONTROL_CODE,-999999)) THEN
732               l_Item_rec.LOT_CONTROL_CODE               := m_Item_rec.LOT_CONTROL_CODE;
733               l_update_child_rec := TRUE;
734 	   END IF;
735         ELSIF ( l_Attribute_Code = 'AUTO_LOT_ALPHA_PREFIX') THEN
736 	   IF (NVL(l_Item_rec.AUTO_LOT_ALPHA_PREFIX,'!')  <> NVL(m_Item_rec.AUTO_LOT_ALPHA_PREFIX,'!')) THEN
737               l_Item_rec.AUTO_LOT_ALPHA_PREFIX          := m_Item_rec.AUTO_LOT_ALPHA_PREFIX;
738 	      l_update_child_rec := TRUE;
739 	   END IF;
740         ELSIF ( l_Attribute_Code = 'START_AUTO_LOT_NUMBER') THEN
741 	   IF (NVL(l_Item_rec.START_AUTO_LOT_NUMBER,-999999)  <> NVL(m_Item_rec.START_AUTO_LOT_NUMBER,-999999)) THEN
742               l_Item_rec.START_AUTO_LOT_NUMBER          := m_Item_rec.START_AUTO_LOT_NUMBER;
743 	      l_update_child_rec := TRUE;
744 	   END IF;
745         ELSIF ( l_Attribute_Code = 'SHELF_LIFE_CODE') THEN
746 	   IF (NVL(l_Item_rec.SHELF_LIFE_CODE,-999999)  <> NVL(m_Item_rec.SHELF_LIFE_CODE,-999999)) THEN
747               l_Item_rec.SHELF_LIFE_CODE                := m_Item_rec.SHELF_LIFE_CODE;
748 	      l_update_child_rec := TRUE;
749 	   END IF;
750         ELSIF ( l_Attribute_Code = 'SHELF_LIFE_DAYS') THEN
751 	   IF (NVL(l_Item_rec.SHELF_LIFE_DAYS,-999999)  <> NVL(m_Item_rec.SHELF_LIFE_DAYS,-999999)) THEN
752               l_Item_rec.SHELF_LIFE_DAYS                := m_Item_rec.SHELF_LIFE_DAYS;
753 	      l_update_child_rec := TRUE;
754 	   END IF;
755         ELSIF ( l_Attribute_Code = 'CYCLE_COUNT_ENABLED_FLAG') THEN
756 	   IF (NVL(l_Item_rec.CYCLE_COUNT_ENABLED_FLAG,'!')  <> NVL(m_Item_rec.CYCLE_COUNT_ENABLED_FLAG,'!')) THEN
757               l_Item_rec.CYCLE_COUNT_ENABLED_FLAG       := m_Item_rec.CYCLE_COUNT_ENABLED_FLAG;
758 	      l_update_child_rec := TRUE;
759 	   END IF;
760         ELSIF ( l_Attribute_Code = 'NEGATIVE_MEASUREMENT_ERROR') THEN
761 	   IF (NVL(l_Item_rec.NEGATIVE_MEASUREMENT_ERROR,-999999)  <> NVL(m_Item_rec.NEGATIVE_MEASUREMENT_ERROR,-999999)) THEN
762               l_Item_rec.NEGATIVE_MEASUREMENT_ERROR     := m_Item_rec.NEGATIVE_MEASUREMENT_ERROR;
763 	      l_update_child_rec := TRUE;
764 	   END IF;
765         ELSIF ( l_Attribute_Code = 'POSITIVE_MEASUREMENT_ERROR') THEN
766 	   IF (NVL(l_Item_rec.POSITIVE_MEASUREMENT_ERROR,-999999)  <> NVL(m_Item_rec.POSITIVE_MEASUREMENT_ERROR,-999999)) THEN
767               l_Item_rec.POSITIVE_MEASUREMENT_ERROR     := m_Item_rec.POSITIVE_MEASUREMENT_ERROR;
768 	      l_update_child_rec := TRUE;
769 	   END IF;
770         ELSIF ( l_Attribute_Code = 'SERIAL_NUMBER_CONTROL_CODE') THEN
771 	   IF (NVL(l_Item_rec.SERIAL_NUMBER_CONTROL_CODE,-999999)  <> NVL(m_Item_rec.SERIAL_NUMBER_CONTROL_CODE,-999999)) THEN
772               l_Item_rec.SERIAL_NUMBER_CONTROL_CODE     := m_Item_rec.SERIAL_NUMBER_CONTROL_CODE;
773 	      l_update_child_rec := TRUE;
774 	   END IF;
775         ELSIF ( l_Attribute_Code = 'AUTO_SERIAL_ALPHA_PREFIX') THEN
776 	   IF (NVL(l_Item_rec.AUTO_SERIAL_ALPHA_PREFIX,'!')  <> NVL(m_Item_rec.AUTO_SERIAL_ALPHA_PREFIX,'!')) THEN
777               l_Item_rec.AUTO_SERIAL_ALPHA_PREFIX       := m_Item_rec.AUTO_SERIAL_ALPHA_PREFIX;
778 	      l_update_child_rec := TRUE;
779 	   END IF;
780         ELSIF ( l_Attribute_Code = 'START_AUTO_SERIAL_NUMBER') THEN
781 	   IF (NVL(l_Item_rec.START_AUTO_SERIAL_NUMBER,-999999)  <> NVL(m_Item_rec.START_AUTO_SERIAL_NUMBER,-999999)) THEN
782               l_Item_rec.START_AUTO_SERIAL_NUMBER       := m_Item_rec.START_AUTO_SERIAL_NUMBER;
783 	      l_update_child_rec := TRUE;
784 	   END IF;
785         ELSIF ( l_Attribute_Code = 'LOCATION_CONTROL_CODE') THEN
786 	   IF (NVL(l_Item_rec.LOCATION_CONTROL_CODE,-999999)  <> NVL(m_Item_rec.LOCATION_CONTROL_CODE,-999999)) THEN
787               l_Item_rec.LOCATION_CONTROL_CODE          := m_Item_rec.LOCATION_CONTROL_CODE;
788 	      l_update_child_rec := TRUE;
789 	   END IF;
790         ELSIF ( l_Attribute_Code = 'RESTRICT_SUBINVENTORIES_CODE') THEN
791 	   IF (NVL(l_Item_rec.RESTRICT_SUBINVENTORIES_CODE,-999999)  <> NVL(m_Item_rec.RESTRICT_SUBINVENTORIES_CODE,-999999)) THEN
792               l_Item_rec.RESTRICT_SUBINVENTORIES_CODE   := m_Item_rec.RESTRICT_SUBINVENTORIES_CODE;
793 	      l_update_child_rec := TRUE;
794 	   END IF;
795         ELSIF ( l_Attribute_Code = 'RESTRICT_LOCATORS_CODE') THEN
796 	   IF (NVL(l_Item_rec.RESTRICT_LOCATORS_CODE,-999999)  <> NVL(m_Item_rec.RESTRICT_LOCATORS_CODE,-999999)) THEN
797               l_Item_rec.RESTRICT_LOCATORS_CODE         := m_Item_rec.RESTRICT_LOCATORS_CODE;
798 	      l_update_child_rec := TRUE;
799 	   END IF;
800         ELSIF ( l_Attribute_Code = 'LOT_STATUS_ENABLED') THEN
801 	   IF (NVL(l_Item_rec.LOT_STATUS_ENABLED,'!')  <> NVL(m_Item_rec.LOT_STATUS_ENABLED,'!')) THEN
802               l_Item_rec.LOT_STATUS_ENABLED := m_Item_rec.LOT_STATUS_ENABLED ;
803 	      l_update_child_rec := TRUE;
804 	   END IF;
805         ELSIF ( l_Attribute_Code = 'DEFAULT_LOT_STATUS_ID') THEN
806 	   IF (NVL(l_Item_rec.DEFAULT_LOT_STATUS_ID,-999999)  <> NVL(m_Item_rec.DEFAULT_LOT_STATUS_ID,-999999)) THEN
807               l_Item_rec.DEFAULT_LOT_STATUS_ID := m_Item_rec.DEFAULT_LOT_STATUS_ID;
808 	      l_update_child_rec := TRUE;
809 	   END IF;
810         ELSIF ( l_Attribute_Code = 'SERIAL_STATUS_ENABLED') THEN
811 	   IF (NVL(l_Item_rec.SERIAL_STATUS_ENABLED,'!')  <> NVL(m_Item_rec.SERIAL_STATUS_ENABLED,'!')) THEN
812               l_Item_rec.SERIAL_STATUS_ENABLED := m_Item_rec.SERIAL_STATUS_ENABLED;
813 	      l_update_child_rec := TRUE;
814 	   END IF;
815         ELSIF ( l_Attribute_Code = 'DEFAULT_SERIAL_STATUS_ID') THEN
816 	   IF (NVL(l_Item_rec.DEFAULT_SERIAL_STATUS_ID,-999999)  <> NVL(m_Item_rec.DEFAULT_SERIAL_STATUS_ID,-999999)) THEN
817               l_Item_rec.DEFAULT_SERIAL_STATUS_ID := m_Item_rec.DEFAULT_SERIAL_STATUS_ID ;
818 	      l_update_child_rec := TRUE;
819 	   END IF;
820         ELSIF ( l_Attribute_Code = 'LOT_SPLIT_ENABLED') THEN
821 	   IF (NVL(l_Item_rec.LOT_SPLIT_ENABLED,'!')  <> NVL(m_Item_rec.LOT_SPLIT_ENABLED,'!')) THEN
822               l_Item_rec.LOT_SPLIT_ENABLED := m_Item_rec.LOT_SPLIT_ENABLED ;
823 	      l_update_child_rec := TRUE;
824 	   END IF;
825         ELSIF ( l_Attribute_Code = 'LOT_MERGE_ENABLED') THEN
826 	   IF (NVL(l_Item_rec.LOT_MERGE_ENABLED,'!')  <> NVL(m_Item_rec.LOT_MERGE_ENABLED,'!')) THEN
827               l_Item_rec.LOT_MERGE_ENABLED := m_Item_rec.LOT_MERGE_ENABLED ;
828 	      l_update_child_rec := TRUE;
829 	   END IF;
830         ELSIF ( l_Attribute_Code = 'LOT_TRANSLATE_ENABLED') THEN
831 	   IF (NVL(l_Item_rec.LOT_TRANSLATE_ENABLED,'!')  <> NVL(m_Item_rec.LOT_TRANSLATE_ENABLED,'!')) THEN
832               l_Item_rec.LOT_TRANSLATE_ENABLED      :=  m_Item_rec.LOT_TRANSLATE_ENABLED;
833 	      l_update_child_rec := TRUE;
834 	   END IF;
835         ELSIF ( l_Attribute_Code = 'LOT_SUBSTITUTION_ENABLED') THEN
836 	   IF (NVL(l_Item_rec.LOT_SUBSTITUTION_ENABLED,'!')  <> NVL(m_Item_rec.LOT_SUBSTITUTION_ENABLED,'!')) THEN
837               l_Item_rec.LOT_SUBSTITUTION_ENABLED     :=  m_Item_rec.LOT_SUBSTITUTION_ENABLED;
838 	      l_update_child_rec := TRUE;
839 	   END IF;
840         ELSIF ( l_Attribute_Code = 'BULK_PICKED_FLAG') THEN
841 	   IF (NVL(l_Item_rec.BULK_PICKED_FLAG,'!')  <> NVL(m_Item_rec.BULK_PICKED_FLAG,'!')) THEN
842               l_Item_rec.BULK_PICKED_FLAG := m_Item_rec.BULK_PICKED_FLAG ;
843 	      l_update_child_rec := TRUE;
844 	   END IF;
845         ELSIF ( l_Attribute_Code = 'LOT_DIVISIBLE_FLAG') THEN        --Bug: 5396073
846 	   IF (NVL(l_Item_rec.LOT_DIVISIBLE_FLAG,'!')  <> NVL(m_Item_rec.LOT_DIVISIBLE_FLAG,'!')) THEN
847               l_Item_rec.LOT_DIVISIBLE_FLAG := m_Item_rec.LOT_DIVISIBLE_FLAG ;
848 	      l_update_child_rec := TRUE;
849 	   END IF;
850         ELSIF ( l_Attribute_Code = 'MATURITY_DAYS') THEN        --Bug: 5396073
851 	   IF (NVL(l_Item_rec.MATURITY_DAYS,-999999)  <> NVL(m_Item_rec.MATURITY_DAYS,-999999)) THEN
852               l_Item_rec.MATURITY_DAYS := m_Item_rec.MATURITY_DAYS ;
853 	      l_update_child_rec := TRUE;
854 	   END IF;
855         ELSIF ( l_Attribute_Code = 'HOLD_DAYS') THEN        --Bug: 5396073
856 	   IF (NVL(l_Item_rec.HOLD_DAYS,-999999)  <> NVL(m_Item_rec.HOLD_DAYS,-999999)) THEN
857               l_Item_rec.HOLD_DAYS := m_Item_rec.HOLD_DAYS ;
858 	      l_update_child_rec := TRUE;
859 	   END IF;
860         ELSIF ( l_Attribute_Code = 'RETEST_INTERVAL') THEN        --Bug: 5396073
861 	   IF (NVL(l_Item_rec.RETEST_INTERVAL,-999999)  <> NVL(m_Item_rec.RETEST_INTERVAL,-999999)) THEN
862               l_Item_rec.RETEST_INTERVAL := m_Item_rec.RETEST_INTERVAL ;
863 	      l_update_child_rec := TRUE;
864 	   END IF;
865         ELSIF ( l_Attribute_Code = 'EXPIRATION_ACTION_INTERVAL') THEN        --Bug: 5396073
866 	   IF (NVL(l_Item_rec.EXPIRATION_ACTION_INTERVAL,-999999)  <> NVL(m_Item_rec.EXPIRATION_ACTION_INTERVAL,-999999)) THEN
867               l_Item_rec.EXPIRATION_ACTION_INTERVAL := m_Item_rec.EXPIRATION_ACTION_INTERVAL ;
868 	      l_update_child_rec := TRUE;
869 	   END IF;
870         ELSIF ( l_Attribute_Code = 'EXPIRATION_ACTION_CODE') THEN        --Bug: 5396073
871 	   IF (NVL(l_Item_rec.EXPIRATION_ACTION_CODE,'!')  <> NVL(m_Item_rec.EXPIRATION_ACTION_CODE,'!')) THEN
872               l_Item_rec.EXPIRATION_ACTION_CODE := m_Item_rec.EXPIRATION_ACTION_CODE ;
873 	      l_update_child_rec := TRUE;
874 	   END IF;
875         ELSIF ( l_Attribute_Code = 'GRADE_CONTROL_FLAG') THEN        --Bug: 5396073
876 	   IF (NVL(l_Item_rec.GRADE_CONTROL_FLAG,'!')  <> NVL(m_Item_rec.GRADE_CONTROL_FLAG,'!')) THEN
877               l_Item_rec.GRADE_CONTROL_FLAG := m_Item_rec.GRADE_CONTROL_FLAG ;
878 	      l_update_child_rec := TRUE;
879 	   END IF;
880         ELSIF ( l_Attribute_Code = 'DEFAULT_GRADE') THEN        --Bug: 5396073
881 	   IF (NVL(l_Item_rec.DEFAULT_GRADE,'!')  <> NVL(m_Item_rec.DEFAULT_GRADE,'!')) THEN
882               l_Item_rec.DEFAULT_GRADE := m_Item_rec.DEFAULT_GRADE ;
883 	      l_update_child_rec := TRUE;
884 	   END IF;
885         ELSIF ( l_Attribute_Code = 'CHILD_LOT_FLAG') THEN        --Bug: 5396073
886 	   IF (NVL(l_Item_rec.CHILD_LOT_FLAG,'!')  <> NVL(m_Item_rec.CHILD_LOT_FLAG,'!')) THEN
887               l_Item_rec.CHILD_LOT_FLAG := m_Item_rec.CHILD_LOT_FLAG ;
888 	      l_update_child_rec := TRUE;
889 	   END IF;
890         ELSIF ( l_Attribute_Code = 'PARENT_CHILD_GENERATION_FLAG') THEN        --Bug: 5396073
891 	   IF (NVL(l_Item_rec.PARENT_CHILD_GENERATION_FLAG,'!')  <> NVL(m_Item_rec.PARENT_CHILD_GENERATION_FLAG,'!')) THEN
892               l_Item_rec.PARENT_CHILD_GENERATION_FLAG := m_Item_rec.PARENT_CHILD_GENERATION_FLAG ;
893 	      l_update_child_rec := TRUE;
894 	   END IF;
895         ELSIF ( l_Attribute_Code = 'CHILD_LOT_PREFIX') THEN        --Bug: 5396073
896 	   IF (NVL(l_Item_rec.CHILD_LOT_PREFIX,'!')  <> NVL(m_Item_rec.CHILD_LOT_PREFIX,'!')) THEN
897               l_Item_rec.CHILD_LOT_PREFIX := m_Item_rec.CHILD_LOT_PREFIX ;
898 	      l_update_child_rec := TRUE;
899 	   END IF;
900         ELSIF ( l_Attribute_Code = 'CHILD_LOT_STARTING_NUMBER') THEN        --Bug: 5396073
901 	   IF (NVL(l_Item_rec.CHILD_LOT_STARTING_NUMBER,-999999)  <> NVL(m_Item_rec.CHILD_LOT_STARTING_NUMBER,-999999)) THEN
902               l_Item_rec.CHILD_LOT_STARTING_NUMBER := m_Item_rec.CHILD_LOT_STARTING_NUMBER ;
903 	      l_update_child_rec := TRUE;
904 	   END IF;
905         ELSIF ( l_Attribute_Code = 'CHILD_LOT_VALIDATION_FLAG') THEN        --Bug: 5396073
906 	   IF (NVL(l_Item_rec.CHILD_LOT_VALIDATION_FLAG,'!')  <> NVL(m_Item_rec.CHILD_LOT_VALIDATION_FLAG,'!')) THEN
907               l_Item_rec.CHILD_LOT_VALIDATION_FLAG := m_Item_rec.CHILD_LOT_VALIDATION_FLAG ;
908 	      l_update_child_rec := TRUE;
909 	   END IF;
910         ELSIF ( l_Attribute_Code = 'COPY_LOT_ATTRIBUTE_FLAG') THEN        --Bug: 5396073
911 	   IF (NVL(l_Item_rec.COPY_LOT_ATTRIBUTE_FLAG,'!')  <> NVL(m_Item_rec.COPY_LOT_ATTRIBUTE_FLAG,'!')) THEN
912               l_Item_rec.COPY_LOT_ATTRIBUTE_FLAG := m_Item_rec.COPY_LOT_ATTRIBUTE_FLAG ;
913 	      l_update_child_rec := TRUE;
914 	   END IF;
915 
916             --BOM Attribute Group
917         ELSIF ( l_Attribute_Code = 'BOM_ENABLED_FLAG') THEN
918 	   IF (NVL(l_Item_rec.BOM_ENABLED_FLAG,'!')  <> NVL(m_Item_rec.BOM_ENABLED_FLAG,'!')) THEN
919               l_Item_rec.BOM_ENABLED_FLAG               := m_Item_rec.BOM_ENABLED_FLAG;
920 	      l_update_child_rec := TRUE;
921 	   END IF;
922         ELSIF ( l_Attribute_Code = 'BOM_ITEM_TYPE') THEN
923 	   IF (NVL(l_Item_rec.BOM_ITEM_TYPE,-999999)  <> NVL(m_Item_rec.BOM_ITEM_TYPE,-999999)) THEN
924               l_Item_rec.BOM_ITEM_TYPE                  := m_Item_rec.BOM_ITEM_TYPE ;
925 	      l_update_child_rec := TRUE;
926 	   END IF;
927         ELSIF ( l_Attribute_Code = 'BASE_ITEM_ID') THEN
928 	   IF (NVL(l_Item_rec.BASE_ITEM_ID,-999999)  <> NVL(m_Item_rec.BASE_ITEM_ID,-999999)) THEN
929               l_Item_rec.BASE_ITEM_ID                   := m_Item_rec.BASE_ITEM_ID;
930 	      l_update_child_rec := TRUE;
931 	   END IF;
932         ELSIF ( l_Attribute_Code = 'AUTO_CREATED_CONFIG_FLAG') THEN
933 	   IF (NVL(l_Item_rec.AUTO_CREATED_CONFIG_FLAG,'!')  <> NVL(m_Item_rec.AUTO_CREATED_CONFIG_FLAG,'!')) THEN
934               l_Item_rec.AUTO_CREATED_CONFIG_FLAG       := m_Item_rec.AUTO_CREATED_CONFIG_FLAG;
935 	      l_update_child_rec := TRUE;
936 	   END IF;
937         ELSIF ( l_Attribute_Code = 'ENG_ITEM_FLAG') THEN
938 	   IF (NVL(l_Item_rec.ENG_ITEM_FLAG,'!')  <> NVL(m_Item_rec.ENG_ITEM_FLAG,'!')) THEN
939               l_Item_rec.ENG_ITEM_FLAG                  := m_Item_rec.ENG_ITEM_FLAG;
940 	      l_update_child_rec := TRUE;
941 	   END IF;
942         ELSIF ( l_Attribute_Code = 'EFFECTIVITY_CONTROL')  THEN
943 	   IF (NVL(l_Item_rec.EFFECTIVITY_CONTROL,-999999)  <> NVL(m_Item_rec.EFFECTIVITY_CONTROL,-999999)) THEN
944               l_Item_rec.EFFECTIVITY_CONTROL            := m_Item_rec.EFFECTIVITY_CONTROL;
945 	      l_update_child_rec := TRUE;
946 	   END IF;
947         ELSIF ( l_Attribute_Code = 'CONFIG_MODEL_TYPE') THEN
948 	    IF (NVL(l_Item_rec.CONFIG_MODEL_TYPE,'!')  <> NVL(m_Item_rec.CONFIG_MODEL_TYPE,'!')) THEN
949                l_Item_rec.CONFIG_MODEL_TYPE          :=  m_Item_rec.CONFIG_MODEL_TYPE;
950 	       l_update_child_rec := TRUE;
951 	    END IF;
952         ELSIF ( l_Attribute_Code = 'CONFIG_ORGS') THEN
953 	    IF (NVL(l_Item_rec.CONFIG_ORGS,'!')  <> NVL(m_Item_rec.CONFIG_ORGS,'!')) THEN
954                l_Item_rec.CONFIG_ORGS    :=  m_Item_rec.CONFIG_ORGS;
955 	       l_update_child_rec := TRUE;
956 	    END IF;
957         ELSIF ( l_Attribute_Code = 'CONFIG_MATCH')  THEN
958 	    IF (NVL(l_Item_rec.CONFIG_MATCH,'!')  <> NVL(m_Item_rec.CONFIG_MATCH,'!')) THEN
959                l_Item_rec.CONFIG_MATCH     :=  m_Item_rec.CONFIG_MATCH;
960 	       l_update_child_rec := TRUE;
961 	    END IF;
962         ELSIF ( l_Attribute_Code = 'ENGINEERING_ECN_CODE') THEN
963 	   IF (NVL(l_Item_rec.ENGINEERING_ECN_CODE,'!')  <> NVL(m_Item_rec.ENGINEERING_ECN_CODE,'!')) THEN
964               l_Item_rec.ENGINEERING_ECN_CODE           := m_Item_rec.ENGINEERING_ECN_CODE;
965 	      l_update_child_rec := TRUE;
966 	   END IF;
967        ELSIF ( l_Attribute_Code = 'ENGINEERING_ITEM_ID') THEN
968 	   IF (NVL(l_Item_rec.ENGINEERING_ITEM_ID,-999999)  <> NVL(m_Item_rec.ENGINEERING_ITEM_ID,-999999)) THEN
969               l_Item_rec.ENGINEERING_ITEM_ID            := m_Item_rec.ENGINEERING_ITEM_ID;
970               l_update_child_rec := TRUE;
971 	   END IF;
972 
973             --Asset Management Group
974         ELSIF ( l_Attribute_Code = 'EAM_ITEM_TYPE') THEN
975 	    IF (NVL(l_Item_rec.EAM_ITEM_TYPE,-999999)  <> NVL(m_Item_rec.EAM_ITEM_TYPE,-999999)) THEN
976                l_Item_rec.EAM_ITEM_TYPE := m_Item_rec.EAM_ITEM_TYPE;
977 	       l_update_child_rec := TRUE;
978 	    END IF;
979         ELSIF ( l_Attribute_Code = 'EAM_ACTIVITY_TYPE_CODE') THEN
980 	    IF (NVL(l_Item_rec.EAM_ACTIVITY_TYPE_CODE,'!')  <> NVL(m_Item_rec.EAM_ACTIVITY_TYPE_CODE,'!')) THEN
981                l_Item_rec.EAM_ACTIVITY_TYPE_CODE := m_Item_rec.EAM_ACTIVITY_TYPE_CODE;
982 	       l_update_child_rec := TRUE;
983 	    END IF;
984         ELSIF ( l_Attribute_Code = 'EAM_ACTIVITY_CAUSE_CODE') THEN
985 	    IF (NVL(l_Item_rec.EAM_ACTIVITY_CAUSE_CODE,'!')  <> NVL(m_Item_rec.EAM_ACTIVITY_CAUSE_CODE,'!')) THEN
986                l_Item_rec.EAM_ACTIVITY_CAUSE_CODE := m_Item_rec.EAM_ACTIVITY_CAUSE_CODE;
987 	       l_update_child_rec := TRUE;
988 	    END IF;
989         ELSIF ( l_Attribute_Code = 'EAM_ACTIVITY_SOURCE_CODE') THEN
990 	    IF (NVL(l_Item_rec.EAM_ACTIVITY_SOURCE_CODE,'!')  <> NVL(m_Item_rec.EAM_ACTIVITY_SOURCE_CODE,'!')) THEN
991                l_Item_rec.EAM_ACTIVITY_SOURCE_CODE          :=  m_Item_rec.EAM_ACTIVITY_SOURCE_CODE;
992 	       l_update_child_rec := TRUE;
993 	    END IF;
994         ELSIF ( l_Attribute_Code = 'EAM_ACT_NOTIFICATION_FLAG') THEN
995 	    IF (NVL(l_Item_rec.EAM_ACT_NOTIFICATION_FLAG,'!')  <> NVL(m_Item_rec.EAM_ACT_NOTIFICATION_FLAG,'!')) THEN
996                l_Item_rec.EAM_ACT_NOTIFICATION_FLAG := m_Item_rec.EAM_ACT_NOTIFICATION_FLAG;
997 	       l_update_child_rec := TRUE;
998 	    END IF;
999         ELSIF ( l_Attribute_Code = 'EAM_ACT_SHUTDOWN_STATUS') THEN
1000 	    IF (NVL(l_Item_rec.EAM_ACT_SHUTDOWN_STATUS,'!')  <> NVL(m_Item_rec.EAM_ACT_SHUTDOWN_STATUS,'!')) THEN
1001                l_Item_rec.EAM_ACT_SHUTDOWN_STATUS := m_Item_rec.EAM_ACT_SHUTDOWN_STATUS;
1002 	       l_update_child_rec := TRUE;
1003 	    END IF;
1004 
1005             --Costing Attribute Group
1006         ELSIF ( l_Attribute_Code = 'COSTING_ENABLED_FLAG') THEN
1007 	   IF (NVL(l_Item_rec.COSTING_ENABLED_FLAG,'!')  <> NVL(m_Item_rec.COSTING_ENABLED_FLAG,'!')) THEN
1008               l_Item_rec.COSTING_ENABLED_FLAG           := m_Item_rec.COSTING_ENABLED_FLAG;
1009 	      l_update_child_rec := TRUE;
1010 	   END IF;
1011         ELSIF ( l_Attribute_Code = 'INVENTORY_ASSET_FLAG') THEN
1012 	   IF (NVL(l_Item_rec.INVENTORY_ASSET_FLAG,'!')  <> NVL(m_Item_rec.INVENTORY_ASSET_FLAG,'!')) THEN
1013               l_Item_rec.INVENTORY_ASSET_FLAG           := m_Item_rec.INVENTORY_ASSET_FLAG;
1014 	      l_update_child_rec := TRUE;
1015 	   END IF;
1016         ELSIF ( l_Attribute_Code = 'DEFAULT_INCLUDE_IN_ROLLUP_FLAG') THEN
1017 	   IF (NVL(l_Item_rec.DEFAULT_INCLUDE_IN_ROLLUP_FLAG,'!')  <> NVL(m_Item_rec.DEFAULT_INCLUDE_IN_ROLLUP_FLAG,'!')) THEN
1018               l_Item_rec.DEFAULT_INCLUDE_IN_ROLLUP_FLAG := m_Item_rec.DEFAULT_INCLUDE_IN_ROLLUP_FLAG ;
1019 	      l_update_child_rec := TRUE;
1020 	   END IF;
1021         ELSIF ( l_Attribute_Code = 'COST_OF_SALES_ACCOUNT') THEN
1022 	   IF (NVL(l_Item_rec.COST_OF_SALES_ACCOUNT,-999999)  <> NVL(m_Item_rec.COST_OF_SALES_ACCOUNT,-999999)) THEN
1023               l_Item_rec.COST_OF_SALES_ACCOUNT          := m_Item_rec.COST_OF_SALES_ACCOUNT;
1024 	      l_update_child_rec := TRUE;
1025 	   END IF;
1026         ELSIF ( l_Attribute_Code = 'STD_LOT_SIZE') THEN
1027 	   IF (NVL(l_Item_rec.STD_LOT_SIZE,-999999)  <> NVL(m_Item_rec.STD_LOT_SIZE,-999999)) THEN
1028               l_Item_rec.STD_LOT_SIZE                   := m_Item_rec.STD_LOT_SIZE;
1029 	      l_update_child_rec := TRUE;
1030 	   END IF;
1031 
1032             --Purchasing Attribute Group
1033         ELSIF ( l_Attribute_Code = 'PURCHASING_ITEM_FLAG') THEN
1034 	   IF (NVL(l_Item_rec.PURCHASING_ITEM_FLAG,'!')  <> NVL(m_Item_rec.PURCHASING_ITEM_FLAG,'!')) THEN
1035               l_Item_rec.PURCHASING_ITEM_FLAG           := m_Item_rec.PURCHASING_ITEM_FLAG;
1036 	      l_update_child_rec := TRUE;
1037 	   END IF;
1038         ELSIF ( l_Attribute_Code = 'PURCHASING_ENABLED_FLAG') THEN
1039 	   IF (NVL(l_Item_rec.PURCHASING_ENABLED_FLAG,'!')  <> NVL(m_Item_rec.PURCHASING_ENABLED_FLAG,'!')) THEN
1040               l_Item_rec.PURCHASING_ENABLED_FLAG        := m_Item_rec.PURCHASING_ENABLED_FLAG;
1041 	      l_update_child_rec := TRUE;
1042 	   END IF;
1043         ELSIF ( l_Attribute_Code = 'MUST_USE_APPROVED_VENDOR_FLAG') THEN
1044 	   IF (NVL(l_Item_rec.MUST_USE_APPROVED_VENDOR_FLAG,'!')  <> NVL(m_Item_rec.MUST_USE_APPROVED_VENDOR_FLAG,'!')) THEN
1045               l_Item_rec.MUST_USE_APPROVED_VENDOR_FLAG  := m_Item_rec.MUST_USE_APPROVED_VENDOR_FLAG;
1046 	      l_update_child_rec := TRUE;
1047 	   END IF;
1048         ELSIF ( l_Attribute_Code = 'ALLOW_ITEM_DESC_UPDATE_FLAG') THEN
1049 	   IF (NVL(l_Item_rec.ALLOW_ITEM_DESC_UPDATE_FLAG,'!')  <> NVL(m_Item_rec.ALLOW_ITEM_DESC_UPDATE_FLAG,'!')) THEN
1050               l_Item_rec.ALLOW_ITEM_DESC_UPDATE_FLAG    := m_Item_rec.ALLOW_ITEM_DESC_UPDATE_FLAG;
1051 	      l_update_child_rec := TRUE;
1052 	   END IF;
1053         ELSIF ( l_Attribute_Code = 'RFQ_REQUIRED_FLAG') THEN
1054 	   IF (NVL(l_Item_rec.RFQ_REQUIRED_FLAG,'!')  <> NVL(m_Item_rec.RFQ_REQUIRED_FLAG,'!')) THEN
1055               l_Item_rec.RFQ_REQUIRED_FLAG              := m_Item_rec.RFQ_REQUIRED_FLAG;
1056 	      l_update_child_rec := TRUE;
1057 	   END IF;
1058         ELSIF ( l_Attribute_Code = 'OUTSIDE_OPERATION_FLAG') THEN
1059 	   IF (NVL(l_Item_rec.OUTSIDE_OPERATION_FLAG,'!')  <> NVL(m_Item_rec.OUTSIDE_OPERATION_FLAG,'!')) THEN
1060               l_Item_rec.OUTSIDE_OPERATION_FLAG         := m_Item_rec.OUTSIDE_OPERATION_FLAG;
1061 	      l_update_child_rec := TRUE;
1062 	   END IF;
1063         ELSIF ( l_Attribute_Code = 'OUTSIDE_OPERATION_UOM_TYPE') THEN
1064 	   IF (NVL(l_Item_rec.OUTSIDE_OPERATION_UOM_TYPE,'!')  <> NVL(m_Item_rec.OUTSIDE_OPERATION_UOM_TYPE,'!')) THEN
1065               l_Item_rec.OUTSIDE_OPERATION_UOM_TYPE     := m_Item_rec.OUTSIDE_OPERATION_UOM_TYPE;
1066 	      l_update_child_rec := TRUE;
1067 	   END IF;
1068         ELSIF ( l_Attribute_Code = 'TAXABLE_FLAG') THEN
1069 	   IF (NVL(l_Item_rec.TAXABLE_FLAG,'!')  <> NVL(m_Item_rec.TAXABLE_FLAG,'!')) THEN
1070               l_Item_rec.TAXABLE_FLAG                   := m_Item_rec.TAXABLE_FLAG;
1071 	      l_update_child_rec := TRUE;
1072 	   END IF;
1073        ELSIF ( l_Attribute_Code = 'PURCHASING_TAX_CODE')  THEN
1074 	   IF (NVL(l_Item_rec.PURCHASING_TAX_CODE,'!')  <> NVL(m_Item_rec.PURCHASING_TAX_CODE,'!')) THEN
1075               l_Item_rec.PURCHASING_TAX_CODE            := m_Item_rec.PURCHASING_TAX_CODE;
1076 	      l_update_child_rec := TRUE;
1077 	   END IF;
1078         ELSIF ( l_Attribute_Code = 'RECEIPT_REQUIRED_FLAG') THEN
1079 	   IF (NVL(l_Item_rec.RECEIPT_REQUIRED_FLAG,'!')  <> NVL(m_Item_rec.RECEIPT_REQUIRED_FLAG,'!')) THEN
1080               l_Item_rec.RECEIPT_REQUIRED_FLAG          := m_Item_rec.RECEIPT_REQUIRED_FLAG;
1081 	      l_update_child_rec := TRUE;
1082 	   END IF;
1083         ELSIF ( l_Attribute_Code = 'INSPECTION_REQUIRED_FLAG') THEN
1084 	   IF (NVL(l_Item_rec.INSPECTION_REQUIRED_FLAG,'!')  <> NVL(m_Item_rec.INSPECTION_REQUIRED_FLAG,'!')) THEN
1085               l_Item_rec.INSPECTION_REQUIRED_FLAG       := m_Item_rec.INSPECTION_REQUIRED_FLAG;
1086 	      l_update_child_rec := TRUE;
1087 	   END IF;
1088         ELSIF ( l_Attribute_Code = 'BUYER_ID') THEN
1089 	   IF (NVL(l_Item_rec.BUYER_ID,-999999)  <> NVL(m_Item_rec.BUYER_ID,-999999)) THEN
1090               l_Item_rec.BUYER_ID                       := m_Item_rec.BUYER_ID;
1091 	      l_update_child_rec := TRUE;
1092 	   END IF;
1093         ELSIF ( l_Attribute_Code = 'UNIT_OF_ISSUE') THEN
1094 	   IF (NVL(l_Item_rec.UNIT_OF_ISSUE,'!')  <> NVL(m_Item_rec.UNIT_OF_ISSUE,'!')) THEN
1095               l_Item_rec.UNIT_OF_ISSUE                  := m_Item_rec.UNIT_OF_ISSUE;
1096 	      l_update_child_rec := TRUE;
1097 	   END IF;
1098         ELSIF ( l_Attribute_Code = 'RECEIVE_CLOSE_TOLERANCE') THEN
1099 	   IF (NVL(l_Item_rec.RECEIVE_CLOSE_TOLERANCE,-999999)  <> NVL(m_Item_rec.RECEIVE_CLOSE_TOLERANCE,-999999)) THEN
1100               l_Item_rec.RECEIVE_CLOSE_TOLERANCE        := m_Item_rec.RECEIVE_CLOSE_TOLERANCE;
1101 	      l_update_child_rec := TRUE;
1102 	   END IF;
1103         ELSIF ( l_Attribute_Code = 'INVOICE_CLOSE_TOLERANCE') THEN
1104 	   IF (NVL(l_Item_rec.INVOICE_CLOSE_TOLERANCE,-999999)  <> NVL(m_Item_rec.INVOICE_CLOSE_TOLERANCE,-999999)) THEN
1105               l_Item_rec.INVOICE_CLOSE_TOLERANCE        := m_Item_rec.INVOICE_CLOSE_TOLERANCE;
1106 	      l_update_child_rec := TRUE;
1107 	   END IF;
1108         ELSIF ( l_Attribute_Code = 'UN_NUMBER_ID') THEN
1109 	   IF (NVL(l_Item_rec.UN_NUMBER_ID,-999999)  <> NVL(m_Item_rec.UN_NUMBER_ID,-999999)) THEN
1110               l_Item_rec.UN_NUMBER_ID                   := m_Item_rec.UN_NUMBER_ID;
1111 	      l_update_child_rec := TRUE;
1112 	   END IF;
1113 	ELSIF ( l_Attribute_Code = 'HAZARD_CLASS_ID') THEN
1114 	   IF (NVL(l_Item_rec.HAZARD_CLASS_ID,-999999)  <> NVL(m_Item_rec.HAZARD_CLASS_ID,-999999)) THEN
1115               l_Item_rec.HAZARD_CLASS_ID                := m_Item_rec.HAZARD_CLASS_ID;
1116 	      l_update_child_rec := TRUE;
1117 	   END IF;
1118         ELSIF ( l_Attribute_Code = 'LIST_PRICE_PER_UNIT') THEN
1119 	   IF (NVL(l_Item_rec.LIST_PRICE_PER_UNIT,-999999)  <> NVL(m_Item_rec.LIST_PRICE_PER_UNIT,-999999)) THEN
1120               l_Item_rec.LIST_PRICE_PER_UNIT            := m_Item_rec.LIST_PRICE_PER_UNIT;
1121 	      l_update_child_rec := TRUE;
1122 	   END IF;
1123         ELSIF ( l_Attribute_Code = 'MARKET_PRICE') THEN
1124 	   IF (NVL(l_Item_rec.MARKET_PRICE,-999999)  <> NVL(m_Item_rec.MARKET_PRICE,-999999)) THEN
1125               l_Item_rec.MARKET_PRICE                   := m_Item_rec.MARKET_PRICE;
1126 	      l_update_child_rec := TRUE;
1127 	   END IF;
1128         ELSIF ( l_Attribute_Code = 'PRICE_TOLERANCE_PERCENT') THEN
1129 	   IF (NVL(l_Item_rec.PRICE_TOLERANCE_PERCENT,-999999)  <> NVL(m_Item_rec.PRICE_TOLERANCE_PERCENT,-999999)) THEN
1130               l_Item_rec.PRICE_TOLERANCE_PERCENT        := m_Item_rec.PRICE_TOLERANCE_PERCENT;
1131 	      l_update_child_rec := TRUE;
1132 	   END IF;
1133         ELSIF ( l_Attribute_Code = 'ROUNDING_FACTOR') THEN
1134 	   IF (NVL(l_Item_rec.ROUNDING_FACTOR,-999999)  <> NVL(m_Item_rec.ROUNDING_FACTOR,-999999)) THEN
1135               l_Item_rec.ROUNDING_FACTOR                := m_Item_rec.ROUNDING_FACTOR;
1136 	      l_update_child_rec := TRUE;
1137 	   END IF;
1138         ELSIF ( l_Attribute_Code = 'ENCUMBRANCE_ACCOUNT') THEN
1139 	   IF (NVL(l_Item_rec.ENCUMBRANCE_ACCOUNT,-999999)  <> NVL(m_Item_rec.ENCUMBRANCE_ACCOUNT,-999999)) THEN
1140               l_Item_rec.ENCUMBRANCE_ACCOUNT            := m_Item_rec.ENCUMBRANCE_ACCOUNT;
1141 	      l_update_child_rec := TRUE;
1142 	   END IF;
1143         ELSIF ( l_Attribute_Code = 'EXPENSE_ACCOUNT') THEN
1144 	   IF (NVL(l_Item_rec.EXPENSE_ACCOUNT,-999999)  <> NVL(m_Item_rec.EXPENSE_ACCOUNT,-999999)) THEN
1145               l_Item_rec.EXPENSE_ACCOUNT                := m_Item_rec.EXPENSE_ACCOUNT;
1146 	      l_update_child_rec := TRUE;
1147 	   END IF;
1148         ELSIF ( l_Attribute_Code = 'ASSET_CATEGORY_ID') THEN
1149 	   IF (NVL(l_Item_rec.ASSET_CATEGORY_ID,-999999)  <> NVL(m_Item_rec.ASSET_CATEGORY_ID,-999999)) THEN
1150               l_Item_rec.ASSET_CATEGORY_ID              := m_Item_rec.ASSET_CATEGORY_ID;
1151 	      l_update_child_rec := TRUE;
1152 	   END IF;
1153         ELSIF ( l_Attribute_Code = 'OUTSOURCED_ASSEMBLY') THEN
1154 	   IF (NVL(l_Item_rec.OUTSOURCED_ASSEMBLY,-999999)  <> NVL(m_Item_rec.OUTSOURCED_ASSEMBLY,-999999)) THEN
1155               l_Item_rec.OUTSOURCED_ASSEMBLY              := m_Item_rec.OUTSOURCED_ASSEMBLY;
1156 	      l_update_child_rec := TRUE;
1157 	   END IF;
1158 
1159              --Receiving Attribute Group
1160         ELSIF ( l_Attribute_Code = 'RECEIPT_DAYS_EXCEPTION_CODE') THEN
1161 	   IF (NVL(l_Item_rec.RECEIPT_DAYS_EXCEPTION_CODE,'!')  <> NVL(m_Item_rec.RECEIPT_DAYS_EXCEPTION_CODE,'!')) THEN
1162               l_Item_rec.RECEIPT_DAYS_EXCEPTION_CODE    := m_Item_rec.RECEIPT_DAYS_EXCEPTION_CODE;
1163 	      l_update_child_rec := TRUE;
1164 	   END IF;
1165         ELSIF ( l_Attribute_Code = 'DAYS_EARLY_RECEIPT_ALLOWED') THEN
1166 	   IF (NVL(l_Item_rec.DAYS_EARLY_RECEIPT_ALLOWED,-999999)  <> NVL(m_Item_rec.DAYS_EARLY_RECEIPT_ALLOWED,-999999)) THEN
1167               l_Item_rec.DAYS_EARLY_RECEIPT_ALLOWED     := m_Item_rec.DAYS_EARLY_RECEIPT_ALLOWED;
1168 	      l_update_child_rec := TRUE;
1169 	   END IF;
1170         ELSIF ( l_Attribute_Code = 'DAYS_LATE_RECEIPT_ALLOWED')  THEN
1171 	   IF (NVL(l_Item_rec.DAYS_LATE_RECEIPT_ALLOWED,-999999)  <> NVL(m_Item_rec.DAYS_LATE_RECEIPT_ALLOWED,-999999)) THEN
1172               l_Item_rec.DAYS_LATE_RECEIPT_ALLOWED      := m_Item_rec.DAYS_LATE_RECEIPT_ALLOWED;
1173 	      l_update_child_rec := TRUE;
1174 	   END IF;
1175         ELSIF ( l_Attribute_Code = 'QTY_RCV_EXCEPTION_CODE') THEN
1176 	   IF (NVL(l_Item_rec.QTY_RCV_EXCEPTION_CODE,'!')  <> NVL(m_Item_rec.QTY_RCV_EXCEPTION_CODE,'!')) THEN
1177               l_Item_rec.QTY_RCV_EXCEPTION_CODE         := m_Item_rec.QTY_RCV_EXCEPTION_CODE;
1178 	      l_update_child_rec := TRUE;
1179 	   END IF;
1180         ELSIF ( l_Attribute_Code = 'QTY_RCV_TOLERANCE')  THEN
1181 	   IF (NVL(l_Item_rec.QTY_RCV_TOLERANCE,-999999)  <> NVL(m_Item_rec.QTY_RCV_TOLERANCE,-999999)) THEN
1182               l_Item_rec.QTY_RCV_TOLERANCE              := m_Item_rec.QTY_RCV_TOLERANCE;
1183 	      l_update_child_rec := TRUE;
1184 	   END IF;
1185         ELSIF ( l_Attribute_Code = 'ALLOW_SUBSTITUTE_RECEIPTS_FLAG') THEN
1186 	   IF (NVL(l_Item_rec.ALLOW_SUBSTITUTE_RECEIPTS_FLAG,'!')  <> NVL(m_Item_rec.ALLOW_SUBSTITUTE_RECEIPTS_FLAG,'!')) THEN
1187               l_Item_rec.ALLOW_SUBSTITUTE_RECEIPTS_FLAG := m_Item_rec.ALLOW_SUBSTITUTE_RECEIPTS_FLAG ;
1188 	      l_update_child_rec := TRUE;
1189 	   END IF;
1190         ELSIF ( l_Attribute_Code = 'ALLOW_UNORDERED_RECEIPTS_FLAG')  THEN
1191 	   IF (NVL(l_Item_rec.ALLOW_UNORDERED_RECEIPTS_FLAG,'!')  <> NVL(m_Item_rec.ALLOW_UNORDERED_RECEIPTS_FLAG,'!')) THEN
1192               l_Item_rec.ALLOW_UNORDERED_RECEIPTS_FLAG  := m_Item_rec.ALLOW_UNORDERED_RECEIPTS_FLAG;
1193 	      l_update_child_rec := TRUE;
1194 	   END IF;
1195         ELSIF ( l_Attribute_Code = 'ALLOW_EXPRESS_DELIVERY_FLAG') THEN
1196 	   IF (NVL(l_Item_rec.ALLOW_EXPRESS_DELIVERY_FLAG,'!')  <> NVL(m_Item_rec.ALLOW_EXPRESS_DELIVERY_FLAG,'!')) THEN
1197               l_Item_rec.ALLOW_EXPRESS_DELIVERY_FLAG    := m_Item_rec.ALLOW_EXPRESS_DELIVERY_FLAG;
1198 	      l_update_child_rec := TRUE;
1199 	   END IF;
1200         ELSIF ( l_Attribute_Code = 'RECEIVING_ROUTING_ID') THEN
1201 	   IF (NVL(l_Item_rec.RECEIVING_ROUTING_ID,-999999)  <> NVL(m_Item_rec.RECEIVING_ROUTING_ID,-999999)) THEN
1202               l_Item_rec.RECEIVING_ROUTING_ID           := m_Item_rec.RECEIVING_ROUTING_ID;
1203 	      l_update_child_rec := TRUE;
1204 	   END IF;
1205         ELSIF ( l_Attribute_Code = 'ENFORCE_SHIP_TO_LOCATION_CODE') THEN
1206 	   IF (NVL(l_Item_rec.ENFORCE_SHIP_TO_LOCATION_CODE,'!')  <> NVL(m_Item_rec.ENFORCE_SHIP_TO_LOCATION_CODE,'!')) THEN
1207               l_Item_rec.ENFORCE_SHIP_TO_LOCATION_CODE  := m_Item_rec.ENFORCE_SHIP_TO_LOCATION_CODE;
1208 	      l_update_child_rec := TRUE;
1209 	   END IF;
1210 
1211             --Physical Attributes
1212         ELSIF ( l_Attribute_Code = 'WEIGHT_UOM_CODE') THEN
1213 	   IF (NVL(l_Item_rec.WEIGHT_UOM_CODE,'!')  <> NVL(m_Item_rec.WEIGHT_UOM_CODE,'!')) THEN
1214               l_Item_rec.WEIGHT_UOM_CODE                := m_Item_rec.WEIGHT_UOM_CODE;
1215 	      l_update_child_rec := TRUE;
1216 	   END IF;
1217         ELSIF ( l_Attribute_Code = 'UNIT_WEIGHT') THEN
1218 	   IF (NVL(l_Item_rec.UNIT_WEIGHT,-999999)  <> NVL(m_Item_rec.UNIT_WEIGHT,-999999)) THEN
1219               l_Item_rec.UNIT_WEIGHT                    := m_Item_rec.UNIT_WEIGHT;
1220 	      l_update_child_rec := TRUE;
1221 	   END IF;
1222         ELSIF ( l_Attribute_Code = 'VOLUME_UOM_CODE') THEN
1223 	   IF (NVL(l_Item_rec.VOLUME_UOM_CODE,'!')  <> NVL(m_Item_rec.VOLUME_UOM_CODE,'!')) THEN
1224               l_Item_rec.VOLUME_UOM_CODE                := m_Item_rec.VOLUME_UOM_CODE;
1225 	      l_update_child_rec := TRUE;
1226 	   END IF;
1227         ELSIF ( l_Attribute_Code = 'UNIT_VOLUME') THEN
1228 	   IF (NVL(l_Item_rec.UNIT_VOLUME,-999999)  <> NVL(m_Item_rec.UNIT_VOLUME,-999999)) THEN
1229               l_Item_rec.UNIT_VOLUME                    := m_Item_rec.UNIT_VOLUME;
1230 	      l_update_child_rec := TRUE;
1231 	   END IF;
1232         ELSIF ( l_Attribute_Code = 'CONTAINER_ITEM_FLAG') THEN
1233 	   IF (NVL(l_Item_rec.CONTAINER_ITEM_FLAG,'!')  <> NVL(m_Item_rec.CONTAINER_ITEM_FLAG,'!')) THEN
1234               l_Item_rec.CONTAINER_ITEM_FLAG            := m_Item_rec.CONTAINER_ITEM_FLAG;
1235 	      l_update_child_rec := TRUE;
1236 	   END IF;
1237         ELSIF ( l_Attribute_Code = 'VEHICLE_ITEM_FLAG') THEN
1238 	   IF (NVL(l_Item_rec.VEHICLE_ITEM_FLAG,'!')  <> NVL(m_Item_rec.VEHICLE_ITEM_FLAG,'!')) THEN
1239               l_Item_rec.VEHICLE_ITEM_FLAG              := m_Item_rec.VEHICLE_ITEM_FLAG;
1240 	      l_update_child_rec := TRUE;
1241 	   END IF;
1242         ELSIF ( l_Attribute_Code = 'CONTAINER_TYPE_CODE') THEN
1243 	   IF (NVL(l_Item_rec.CONTAINER_TYPE_CODE,'!')  <> NVL(m_Item_rec.CONTAINER_TYPE_CODE,'!')) THEN
1244 	      l_Item_rec.CONTAINER_TYPE_CODE            := m_Item_rec.CONTAINER_TYPE_CODE;
1245 	      l_update_child_rec := TRUE;
1246 	   END IF;
1247         ELSIF ( l_Attribute_Code = 'INTERNAL_VOLUME') THEN
1248 	   IF (NVL(l_Item_rec.INTERNAL_VOLUME,-999999)  <> NVL(m_Item_rec.INTERNAL_VOLUME,-999999)) THEN
1249               l_Item_rec.INTERNAL_VOLUME                := m_Item_rec.INTERNAL_VOLUME;
1250 	      l_update_child_rec := TRUE;
1251 	   END IF;
1252         ELSIF ( l_Attribute_Code = 'MAXIMUM_LOAD_WEIGHT') THEN
1253 	   IF (NVL(l_Item_rec.MAXIMUM_LOAD_WEIGHT,-999999)  <> NVL(m_Item_rec.MAXIMUM_LOAD_WEIGHT,-999999)) THEN
1254               l_Item_rec.MAXIMUM_LOAD_WEIGHT            := m_Item_rec.MAXIMUM_LOAD_WEIGHT;
1255 	      l_update_child_rec := TRUE;
1256 	   END IF;
1257         ELSIF ( l_Attribute_Code = 'MINIMUM_FILL_PERCENT') THEN
1258 	   IF (NVL(l_Item_rec.MINIMUM_FILL_PERCENT,-999999)  <> NVL(m_Item_rec.MINIMUM_FILL_PERCENT,-999999)) THEN
1259               l_Item_rec.MINIMUM_FILL_PERCENT           := m_Item_rec.MINIMUM_FILL_PERCENT;
1260 	      l_update_child_rec := TRUE;
1261 	   END IF;
1262         ELSIF ( l_Attribute_Code = 'DIMENSION_UOM_CODE') THEN
1263 	   IF (NVL(l_Item_rec.DIMENSION_UOM_CODE,'!')  <> NVL(m_Item_rec.DIMENSION_UOM_CODE,'!')) THEN
1264               l_Item_rec.DIMENSION_UOM_CODE := m_Item_rec.DIMENSION_UOM_CODE ;
1265 	      l_update_child_rec := TRUE;
1266 	   END IF;
1267         ELSIF ( l_Attribute_Code = 'UNIT_LENGTH') THEN
1268 	   IF (NVL(l_Item_rec.UNIT_LENGTH,-999999)  <> NVL(m_Item_rec.UNIT_LENGTH,-999999)) THEN
1269               l_Item_rec.UNIT_LENGTH := m_Item_rec.UNIT_LENGTH ;
1270 	      l_update_child_rec := TRUE;
1271 	   END IF;
1272         ELSIF ( l_Attribute_Code = 'UNIT_WIDTH') THEN
1273 	   IF (NVL(l_Item_rec.UNIT_WIDTH,-999999)  <> NVL(m_Item_rec.UNIT_WIDTH,-999999)) THEN
1274               l_Item_rec.UNIT_WIDTH := m_Item_rec.UNIT_WIDTH ;
1275 	      l_update_child_rec := TRUE;
1276 	   END IF;
1277         ELSIF ( l_Attribute_Code = 'UNIT_HEIGHT') THEN
1278 	   IF (NVL(l_Item_rec.UNIT_HEIGHT,-999999)  <> NVL(m_Item_rec.UNIT_HEIGHT,-999999)) THEN
1279               l_Item_rec.UNIT_HEIGHT := m_Item_rec.UNIT_HEIGHT ;
1280 	      l_update_child_rec := TRUE;
1281 	   END IF;
1282         ELSIF ( l_Attribute_Code = 'COLLATERAL_FLAG') THEN
1283 	   IF (NVL(l_Item_rec.COLLATERAL_FLAG,'!')  <> NVL(m_Item_rec.COLLATERAL_FLAG,'!')) THEN
1284               l_Item_rec.COLLATERAL_FLAG                := m_Item_rec.COLLATERAL_FLAG;
1285 	      l_update_child_rec := TRUE;
1286 	   END IF;
1287         ELSIF ( l_Attribute_Code = 'EVENT_FLAG') THEN
1288 	   IF (NVL(l_Item_rec.EVENT_FLAG,'!')  <> NVL(m_Item_rec.EVENT_FLAG,'!')) THEN
1289               l_Item_rec.EVENT_FLAG := m_Item_rec.EVENT_FLAG ;
1290 	      l_update_child_rec := TRUE;
1291 	   END IF;
1292         ELSIF ( l_Attribute_Code = 'EQUIPMENT_TYPE') THEN
1293 	   IF (NVL(l_Item_rec.EQUIPMENT_TYPE,-999999)  <> NVL(m_Item_rec.EQUIPMENT_TYPE,-999999)) THEN
1294               l_Item_rec.EQUIPMENT_TYPE := m_Item_rec.EQUIPMENT_TYPE ;
1295 	      l_update_child_rec := TRUE;
1296 	   END IF;
1297         ELSIF ( l_Attribute_Code = 'ELECTRONIC_FLAG') THEN
1298 	   IF (NVL(l_Item_rec.ELECTRONIC_FLAG,'!')  <> NVL(m_Item_rec.ELECTRONIC_FLAG,'!')) THEN
1299               l_Item_rec.ELECTRONIC_FLAG := m_Item_rec.ELECTRONIC_FLAG ;
1300 	      l_update_child_rec := TRUE;
1301 	   END IF;
1302         ELSIF ( l_Attribute_Code = 'DOWNLOADABLE_FLAG') THEN
1303 	   IF (NVL(l_Item_rec.DOWNLOADABLE_FLAG,'!')  <> NVL(m_Item_rec.DOWNLOADABLE_FLAG,'!')) THEN
1304               l_Item_rec.DOWNLOADABLE_FLAG := m_Item_rec.DOWNLOADABLE_FLAG ;
1305 	      l_update_child_rec := TRUE;
1306 	   END IF;
1307         ELSIF ( l_Attribute_Code = 'INDIVISIBLE_FLAG') THEN
1308 	   IF (NVL(l_Item_rec.INDIVISIBLE_FLAG,'!')  <> NVL(m_Item_rec.INDIVISIBLE_FLAG,'!')) THEN
1309               l_Item_rec.INDIVISIBLE_FLAG := m_Item_rec.INDIVISIBLE_FLAG ;
1310 	      l_update_child_rec := TRUE;
1311 	   END IF;
1312 
1313             --General Planning
1314         ELSIF ( l_Attribute_Code = 'INVENTORY_PLANNING_CODE') THEN
1315 	   IF (NVL(l_Item_rec.INVENTORY_PLANNING_CODE,-999999)  <> NVL(m_Item_rec.INVENTORY_PLANNING_CODE,-999999)) THEN
1316               l_Item_rec.INVENTORY_PLANNING_CODE        := m_Item_rec.INVENTORY_PLANNING_CODE;
1317 	      l_update_child_rec := TRUE;
1318 	   END IF;
1319         ELSIF ( l_Attribute_Code = 'PLANNER_CODE') THEN
1320 	   IF (NVL(l_Item_rec.PLANNER_CODE,'!')  <> NVL(m_Item_rec.PLANNER_CODE,'!')) THEN
1321               l_Item_rec.PLANNER_CODE                   := m_Item_rec.PLANNER_CODE;
1322 	      l_update_child_rec := TRUE;
1323 	   END IF;
1324         ELSIF ( l_Attribute_Code = 'PLANNING_MAKE_BUY_CODE') THEN
1325 	   IF (NVL(l_Item_rec.PLANNING_MAKE_BUY_CODE,-999999)  <> NVL(m_Item_rec.PLANNING_MAKE_BUY_CODE,-999999)) THEN
1326               l_Item_rec.PLANNING_MAKE_BUY_CODE         := m_Item_rec.PLANNING_MAKE_BUY_CODE;
1327 	      l_update_child_rec := TRUE;
1328 	   END IF;
1329         ELSIF ( l_Attribute_Code = 'MIN_MINMAX_QUANTITY') THEN
1330 	   IF (NVL(l_Item_rec.MIN_MINMAX_QUANTITY,-999999)  <> NVL(m_Item_rec.MIN_MINMAX_QUANTITY,-999999)) THEN
1331               l_Item_rec.MIN_MINMAX_QUANTITY            := m_Item_rec.MIN_MINMAX_QUANTITY;
1332 	      l_update_child_rec := TRUE;
1333 	   END IF;
1334         ELSIF ( l_Attribute_Code = 'MAX_MINMAX_QUANTITY') THEN
1335 	   IF (NVL(l_Item_rec.MAX_MINMAX_QUANTITY,-999999)  <> NVL(m_Item_rec.MAX_MINMAX_QUANTITY,-999999)) THEN
1336               l_Item_rec.MAX_MINMAX_QUANTITY            := m_Item_rec.MAX_MINMAX_QUANTITY;
1337 	      l_update_child_rec := TRUE;
1338 	   END IF;
1339         ELSIF ( l_Attribute_Code = 'MINIMUM_ORDER_QUANTITY') THEN
1340 	   IF (NVL(l_Item_rec.MINIMUM_ORDER_QUANTITY,-999999)  <> NVL(m_Item_rec.MINIMUM_ORDER_QUANTITY,-999999)) THEN
1341               l_Item_rec.MINIMUM_ORDER_QUANTITY         := m_Item_rec.MINIMUM_ORDER_QUANTITY;
1342 	      l_update_child_rec := TRUE;
1343 	   END IF;
1344         ELSIF ( l_Attribute_Code = 'MAXIMUM_ORDER_QUANTITY') THEN
1345 	   IF (NVL(l_Item_rec.MAXIMUM_ORDER_QUANTITY,-999999)  <> NVL(m_Item_rec.MAXIMUM_ORDER_QUANTITY,-999999)) THEN
1346               l_Item_rec.MAXIMUM_ORDER_QUANTITY         := m_Item_rec.MAXIMUM_ORDER_QUANTITY;
1347 	      l_update_child_rec := TRUE;
1348 	   END IF;
1349         ELSIF ( l_Attribute_Code = 'ORDER_COST') THEN
1350 	   IF (NVL(l_Item_rec.ORDER_COST,-999999)  <> NVL(m_Item_rec.ORDER_COST,-999999)) THEN
1351               l_Item_rec.ORDER_COST                     := m_Item_rec.ORDER_COST;
1352 	      l_update_child_rec := TRUE;
1353 	   END IF;
1354         ELSIF ( l_Attribute_Code = 'CARRYING_COST') THEN
1355 	   IF (NVL(l_Item_rec.CARRYING_COST,-999999)  <> NVL(m_Item_rec.CARRYING_COST,-999999)) THEN
1356               l_Item_rec.CARRYING_COST                  := m_Item_rec.CARRYING_COST;
1357 	      l_update_child_rec := TRUE;
1358 	   END IF;
1359         ELSIF ( l_Attribute_Code = 'VMI_MINIMUM_UNITS') THEN
1360 	   IF (NVL(l_Item_rec.VMI_MINIMUM_UNITS,-999999)  <> NVL(m_Item_rec.VMI_MINIMUM_UNITS,-999999)) THEN
1361               l_Item_rec.VMI_MINIMUM_UNITS                       := m_Item_rec.VMI_MINIMUM_UNITS;
1362 	      l_update_child_rec := TRUE;
1363 	   END IF;
1364         ELSIF ( l_Attribute_Code = 'VMI_MINIMUM_DAYS') THEN
1365 	   IF (NVL(l_Item_rec.VMI_MINIMUM_DAYS,-999999)  <> NVL(m_Item_rec.VMI_MINIMUM_DAYS,-999999)) THEN
1366               l_Item_rec.VMI_MINIMUM_DAYS                       := m_Item_rec.VMI_MINIMUM_DAYS;
1367 	      l_update_child_rec := TRUE;
1368 	   END IF;
1369         ELSIF ( l_Attribute_Code = 'VMI_MAXIMUM_UNITS') THEN
1370 	   IF (NVL(l_Item_rec.VMI_MAXIMUM_UNITS,-999999)  <> NVL(m_Item_rec.VMI_MAXIMUM_UNITS,-999999)) THEN
1371               l_Item_rec.VMI_MAXIMUM_UNITS                       := m_Item_rec.VMI_MAXIMUM_UNITS;
1372 	      l_update_child_rec := TRUE;
1373 	   END IF;
1374         ELSIF ( l_Attribute_Code = 'VMI_MAXIMUM_DAYS') THEN
1375 	   IF (NVL(l_Item_rec.VMI_MAXIMUM_DAYS,-999999)  <> NVL(m_Item_rec.VMI_MAXIMUM_DAYS,-999999)) THEN
1376               l_Item_rec.VMI_MAXIMUM_DAYS                       := m_Item_rec.VMI_MAXIMUM_DAYS;
1377 	      l_update_child_rec := TRUE;
1378 	   END IF;
1379         ELSIF ( l_Attribute_Code = 'VMI_FIXED_ORDER_QUANTITY') THEN
1380 	   IF (NVL(l_Item_rec.VMI_FIXED_ORDER_QUANTITY,-999999)  <> NVL(m_Item_rec.VMI_FIXED_ORDER_QUANTITY,-999999)) THEN
1381               l_Item_rec.VMI_FIXED_ORDER_QUANTITY               := m_Item_rec.VMI_FIXED_ORDER_QUANTITY;
1382 	      l_update_child_rec := TRUE;
1383 	   END IF;
1384         ELSIF ( l_Attribute_Code = 'SO_AUTHORIZATION_FLAG') THEN
1385 	   IF (NVL(l_Item_rec.SO_AUTHORIZATION_FLAG,-999999)  <> NVL(m_Item_rec.SO_AUTHORIZATION_FLAG,-999999)) THEN
1386               l_Item_rec.SO_AUTHORIZATION_FLAG                       := m_Item_rec.SO_AUTHORIZATION_FLAG;
1387 	      l_update_child_rec := TRUE;
1388 	   END IF;
1389         ELSIF ( l_Attribute_Code = 'CONSIGNED_FLAG')  THEN
1390 	   IF (NVL(l_Item_rec.CONSIGNED_FLAG,-999999)  <> NVL(m_Item_rec.CONSIGNED_FLAG,-999999)) THEN
1391               l_Item_rec.CONSIGNED_FLAG                       := m_Item_rec.CONSIGNED_FLAG;
1392 	      l_update_child_rec := TRUE;
1393 	   END IF;
1394         ELSIF ( l_Attribute_Code = 'ASN_AUTOEXPIRE_FLAG')  THEN
1395 	   IF (NVL(l_Item_rec.ASN_AUTOEXPIRE_FLAG,-999999)  <> NVL(m_Item_rec.ASN_AUTOEXPIRE_FLAG,-999999)) THEN
1396               l_Item_rec.ASN_AUTOEXPIRE_FLAG                       := m_Item_rec.ASN_AUTOEXPIRE_FLAG;
1397 	      l_update_child_rec := TRUE;
1398 	   END IF;
1399         ELSIF ( l_Attribute_Code = 'VMI_FORECAST_TYPE') THEN
1400 	   IF (NVL(l_Item_rec.VMI_FORECAST_TYPE,-999999)  <> NVL(m_Item_rec.VMI_FORECAST_TYPE,-999999)) THEN
1401               l_Item_rec.VMI_FORECAST_TYPE                       := m_Item_rec.VMI_FORECAST_TYPE;
1402 	      l_update_child_rec := TRUE;
1403 	   END IF;
1404         ELSIF ( l_Attribute_Code = 'FORECAST_HORIZON') THEN
1405 	   IF (NVL(l_Item_rec.FORECAST_HORIZON,-999999)  <> NVL(m_Item_rec.FORECAST_HORIZON,-999999)) THEN
1406               l_Item_rec.FORECAST_HORIZON                       := m_Item_rec.FORECAST_HORIZON;
1407 	      l_update_child_rec := TRUE;
1408 	   END IF;
1409         ELSIF ( l_Attribute_Code = 'SOURCE_TYPE') THEN
1410 	   IF (NVL(l_Item_rec.SOURCE_TYPE,-999999)  <> NVL(m_Item_rec.SOURCE_TYPE,-999999)) THEN
1411               l_Item_rec.SOURCE_TYPE                    := m_Item_rec.SOURCE_TYPE;
1412 	      l_update_child_rec := TRUE;
1413 	   END IF;
1414         ELSIF ( l_Attribute_Code = 'SOURCE_ORGANIZATION_ID') THEN
1415 	   IF (NVL(l_Item_rec.SOURCE_ORGANIZATION_ID,-999999)  <> NVL(m_Item_rec.SOURCE_ORGANIZATION_ID,-999999)) THEN
1416               l_Item_rec.SOURCE_ORGANIZATION_ID         := m_Item_rec.SOURCE_ORGANIZATION_ID;
1417 	      l_update_child_rec := TRUE;
1418 	   END IF;
1419         ELSIF ( l_Attribute_Code = 'SOURCE_SUBINVENTORY') THEN
1420 	   IF (NVL(l_Item_rec.SOURCE_SUBINVENTORY,'!')  <> NVL(m_Item_rec.SOURCE_SUBINVENTORY,'!')) THEN
1421               l_Item_rec.SOURCE_SUBINVENTORY            := m_Item_rec.SOURCE_SUBINVENTORY;
1422 	      l_update_child_rec := TRUE;
1423 	   END IF;
1424         ELSIF ( l_Attribute_Code = 'MRP_SAFETY_STOCK_CODE') THEN
1425 	   IF (NVL(l_Item_rec.MRP_SAFETY_STOCK_CODE,-999999)  <> NVL(m_Item_rec.MRP_SAFETY_STOCK_CODE,-999999)) THEN
1426               l_Item_rec.MRP_SAFETY_STOCK_CODE          := m_Item_rec.MRP_SAFETY_STOCK_CODE;
1427 	      l_update_child_rec := TRUE;
1428 	   END IF;
1429         ELSIF ( l_Attribute_Code = 'SAFETY_STOCK_BUCKET_DAYS') THEN
1430 	   IF (NVL(l_Item_rec.SAFETY_STOCK_BUCKET_DAYS,-999999)  <> NVL(m_Item_rec.SAFETY_STOCK_BUCKET_DAYS,-999999)) THEN
1431               l_Item_rec.SAFETY_STOCK_BUCKET_DAYS       := m_Item_rec.SAFETY_STOCK_BUCKET_DAYS;
1432 	      l_update_child_rec := TRUE;
1433 	   END IF;
1434         ELSIF ( l_Attribute_Code = 'MRP_SAFETY_STOCK_PERCENT') THEN
1435 	   IF (NVL(l_Item_rec.MRP_SAFETY_STOCK_PERCENT,-999999)  <> NVL(m_Item_rec.MRP_SAFETY_STOCK_PERCENT,-999999)) THEN
1436               l_Item_rec.MRP_SAFETY_STOCK_PERCENT       := m_Item_rec.MRP_SAFETY_STOCK_PERCENT;
1437 	      l_update_child_rec := TRUE;
1438 	   END IF;
1439         ELSIF ( l_Attribute_Code = 'FIXED_ORDER_QUANTITY') THEN
1440 	   IF (NVL(l_Item_rec.FIXED_ORDER_QUANTITY,-999999)  <> NVL(m_Item_rec.FIXED_ORDER_QUANTITY,-999999)) THEN
1441               l_Item_rec.FIXED_ORDER_QUANTITY           := m_Item_rec.FIXED_ORDER_QUANTITY;
1442 	      l_update_child_rec := TRUE;
1443 	   END IF;
1444         ELSIF ( l_Attribute_Code = 'FIXED_LOT_MULTIPLIER') THEN
1445 	   IF (NVL(l_Item_rec.FIXED_LOT_MULTIPLIER,-999999)  <> NVL(m_Item_rec.FIXED_LOT_MULTIPLIER,-999999)) THEN
1446               l_Item_rec.FIXED_LOT_MULTIPLIER           := m_Item_rec.FIXED_LOT_MULTIPLIER;
1447 	      l_update_child_rec := TRUE;
1448 	   END IF;
1449         ELSIF ( l_Attribute_Code = 'FIXED_DAYS_SUPPLY') THEN
1450 	   IF (NVL(l_Item_rec.FIXED_DAYS_SUPPLY,-999999)  <> NVL(m_Item_rec.FIXED_DAYS_SUPPLY,-999999)) THEN
1451               l_Item_rec.FIXED_DAYS_SUPPLY              := m_Item_rec.FIXED_DAYS_SUPPLY;
1452 	      l_update_child_rec := TRUE;
1453 	   END IF;
1454         ELSIF ( l_Attribute_Code = 'SUBCONTRACTING_COMPONENT') THEN   --Bug: 5396073
1455 	   IF (NVL(l_Item_rec.SUBCONTRACTING_COMPONENT,-999999)  <> NVL(m_Item_rec.SUBCONTRACTING_COMPONENT,-999999)) THEN
1456               l_Item_rec.SUBCONTRACTING_COMPONENT              := m_Item_rec.SUBCONTRACTING_COMPONENT;
1457 	      l_update_child_rec := TRUE;
1458 	   END IF;
1459 
1460             --MPS/MRP Planning
1461         ELSIF ( l_Attribute_Code = 'MRP_PLANNING_CODE') THEN
1462 	   IF (NVL(l_Item_rec.MRP_PLANNING_CODE,-999999)  <> NVL(m_Item_rec.MRP_PLANNING_CODE,-999999)) THEN
1463               l_Item_rec.MRP_PLANNING_CODE              := m_Item_rec.MRP_PLANNING_CODE;
1464 	      l_update_child_rec := TRUE;
1465 	   END IF;
1466         ELSIF ( l_Attribute_Code = 'ATO_FORECAST_CONTROL')  THEN
1467 	   IF (NVL(l_Item_rec.ATO_FORECAST_CONTROL,-999999)  <> NVL(m_Item_rec.ATO_FORECAST_CONTROL,-999999)) THEN
1468               l_Item_rec.ATO_FORECAST_CONTROL           := m_Item_rec.ATO_FORECAST_CONTROL;
1469 	      l_update_child_rec := TRUE;
1470 	   END IF;
1471         ELSIF ( l_Attribute_Code = 'PLANNING_EXCEPTION_SET') THEN
1472 	   IF (NVL(l_Item_rec.PLANNING_EXCEPTION_SET,'!')  <> NVL(m_Item_rec.PLANNING_EXCEPTION_SET,'!')) THEN
1473               l_Item_rec.PLANNING_EXCEPTION_SET         := m_Item_rec.PLANNING_EXCEPTION_SET;
1474 	      l_update_child_rec := TRUE;
1475 	   END IF;
1476         ELSIF ( l_Attribute_Code = 'END_ASSEMBLY_PEGGING_FLAG') THEN
1477 	   IF (NVL(l_Item_rec.END_ASSEMBLY_PEGGING_FLAG,'!')  <> NVL(m_Item_rec.END_ASSEMBLY_PEGGING_FLAG,'!')) THEN
1478               l_Item_rec.END_ASSEMBLY_PEGGING_FLAG      := m_Item_rec.END_ASSEMBLY_PEGGING_FLAG;
1479 	      l_update_child_rec := TRUE;
1480 	   END IF;
1481         ELSIF ( l_Attribute_Code = 'PLANNED_INV_POINT_FLAG') THEN
1482 	   IF (NVL(l_Item_rec.PLANNED_INV_POINT_FLAG,'!')  <> NVL(m_Item_rec.PLANNED_INV_POINT_FLAG,'!')) THEN
1483               l_Item_rec.PLANNED_INV_POINT_FLAG     :=  m_Item_rec.PLANNED_INV_POINT_FLAG;
1484 	      l_update_child_rec := TRUE;
1485 	   END IF;
1486         ELSIF ( l_Attribute_Code = 'CREATE_SUPPLY_FLAG') THEN
1487 	   IF (NVL(l_Item_rec.CREATE_SUPPLY_FLAG,'!')  <> NVL(m_Item_rec.CREATE_SUPPLY_FLAG,'!')) THEN
1488               l_Item_rec.CREATE_SUPPLY_FLAG         :=  m_Item_rec.CREATE_SUPPLY_FLAG;
1489 	      l_update_child_rec := TRUE;
1490 	   END IF;
1491         ELSIF ( l_Attribute_Code = 'EXCLUDE_FROM_BUDGET_FLAG')   THEN
1492 	   IF (NVL(l_Item_rec.EXCLUDE_FROM_BUDGET_FLAG,-999999)  <> NVL(m_Item_rec.EXCLUDE_FROM_BUDGET_FLAG,-999999)) THEN
1493               l_Item_rec.EXCLUDE_FROM_BUDGET_FLAG                       := m_Item_rec.EXCLUDE_FROM_BUDGET_FLAG;
1494 	      l_update_child_rec := TRUE;
1495 	   END IF;
1496         ELSIF ( l_Attribute_Code = 'ROUNDING_CONTROL_TYPE')  THEN
1497 	   IF (NVL(l_Item_rec.ROUNDING_CONTROL_TYPE,-999999)  <> NVL(m_Item_rec.ROUNDING_CONTROL_TYPE,-999999)) THEN
1498               l_Item_rec.ROUNDING_CONTROL_TYPE          := m_Item_rec.ROUNDING_CONTROL_TYPE;
1499 	      l_update_child_rec := TRUE;
1500 	   END IF;
1501         ELSIF ( l_Attribute_Code = 'SHRINKAGE_RATE') THEN
1502 	   IF (NVL(l_Item_rec.SHRINKAGE_RATE,-999999)  <> NVL(m_Item_rec.SHRINKAGE_RATE,-999999)) THEN
1503               l_Item_rec.SHRINKAGE_RATE                 := m_Item_rec.SHRINKAGE_RATE;
1504 	      l_update_child_rec := TRUE;
1505 	   END IF;
1506         ELSIF ( l_Attribute_Code = 'ACCEPTABLE_EARLY_DAYS') THEN
1507 	   IF (NVL(l_Item_rec.ACCEPTABLE_EARLY_DAYS,-999999)  <> NVL(m_Item_rec.ACCEPTABLE_EARLY_DAYS,-999999)) THEN
1508               l_Item_rec.ACCEPTABLE_EARLY_DAYS          := m_Item_rec.ACCEPTABLE_EARLY_DAYS;
1509 	      l_update_child_rec := TRUE;
1510 	   END IF;
1511         ELSIF ( l_Attribute_Code = 'REPETITIVE_PLANNING_FLAG') THEN
1512 	   IF (NVL(l_Item_rec.REPETITIVE_PLANNING_FLAG,'!')  <> NVL(m_Item_rec.REPETITIVE_PLANNING_FLAG,'!')) THEN
1513               l_Item_rec.REPETITIVE_PLANNING_FLAG       := m_Item_rec.REPETITIVE_PLANNING_FLAG;
1514 	      l_update_child_rec := TRUE;
1515 	   END IF;
1516         ELSIF ( l_Attribute_Code = 'OVERRUN_PERCENTAGE') THEN
1517 	   IF (NVL(l_Item_rec.OVERRUN_PERCENTAGE,-999999)  <> NVL(m_Item_rec.OVERRUN_PERCENTAGE,-999999)) THEN
1518               l_Item_rec.OVERRUN_PERCENTAGE             := m_Item_rec.OVERRUN_PERCENTAGE;
1519 	      l_update_child_rec := TRUE;
1520 	   END IF;
1521         ELSIF ( l_Attribute_Code = 'ACCEPTABLE_RATE_INCREASE') THEN
1522 	   IF (NVL(l_Item_rec.ACCEPTABLE_RATE_INCREASE,-999999)  <> NVL(m_Item_rec.ACCEPTABLE_RATE_INCREASE,-999999)) THEN
1523               l_Item_rec.ACCEPTABLE_RATE_INCREASE       := m_Item_rec.ACCEPTABLE_RATE_INCREASE;
1524 	      l_update_child_rec := TRUE;
1525 	   END IF;
1526         ELSIF ( l_Attribute_Code = 'ACCEPTABLE_RATE_DECREASE')  THEN
1527 	   IF (NVL(l_Item_rec.ACCEPTABLE_RATE_DECREASE,-999999)  <> NVL(m_Item_rec.ACCEPTABLE_RATE_DECREASE,-999999)) THEN
1528               l_Item_rec.ACCEPTABLE_RATE_DECREASE       := m_Item_rec.ACCEPTABLE_RATE_DECREASE;
1529 	      l_update_child_rec := TRUE;
1530 	   END IF;
1531         ELSIF ( l_Attribute_Code = 'MRP_CALCULATE_ATP_FLAG') THEN
1532 	   IF (NVL(l_Item_rec.MRP_CALCULATE_ATP_FLAG,'!')  <> NVL(m_Item_rec.MRP_CALCULATE_ATP_FLAG,'!')) THEN
1533               l_Item_rec.MRP_CALCULATE_ATP_FLAG         := m_Item_rec.MRP_CALCULATE_ATP_FLAG;
1534 	      l_update_child_rec := TRUE;
1535 	   END IF;
1536         ELSIF ( l_Attribute_Code = 'AUTO_REDUCE_MPS')  THEN
1537 	   IF (NVL(l_Item_rec.AUTO_REDUCE_MPS,-999999)  <> NVL(m_Item_rec.AUTO_REDUCE_MPS,-999999)) THEN
1538               l_Item_rec.AUTO_REDUCE_MPS                := m_Item_rec.AUTO_REDUCE_MPS;
1539 	      l_update_child_rec := TRUE;
1540 	   END IF;
1541         ELSIF ( l_Attribute_Code = 'PLANNING_TIME_FENCE_CODE') THEN
1542 	   IF (NVL(l_Item_rec.PLANNING_TIME_FENCE_CODE,-999999)  <> NVL(m_Item_rec.PLANNING_TIME_FENCE_CODE,-999999)) THEN
1543               l_Item_rec.PLANNING_TIME_FENCE_CODE       := m_Item_rec.PLANNING_TIME_FENCE_CODE;
1544 	      l_update_child_rec := TRUE;
1545 	   END IF;
1546         ELSIF ( l_Attribute_Code = 'PLANNING_TIME_FENCE_DAYS') THEN
1547 	   IF (NVL(l_Item_rec.PLANNING_TIME_FENCE_DAYS,-999999)  <> NVL(m_Item_rec.PLANNING_TIME_FENCE_DAYS,-999999)) THEN
1548               l_Item_rec.PLANNING_TIME_FENCE_DAYS       := m_Item_rec.PLANNING_TIME_FENCE_DAYS;
1549 	      l_update_child_rec := TRUE;
1550 	   END IF;
1551         ELSIF ( l_Attribute_Code = 'DEMAND_TIME_FENCE_CODE') THEN
1552 	   IF (NVL(l_Item_rec.DEMAND_TIME_FENCE_CODE,-999999)  <> NVL(m_Item_rec.DEMAND_TIME_FENCE_CODE,-999999)) THEN
1553               l_Item_rec.DEMAND_TIME_FENCE_CODE         := m_Item_rec.DEMAND_TIME_FENCE_CODE;
1554 	      l_update_child_rec := TRUE;
1555 	   END IF;
1556         ELSIF ( l_Attribute_Code = 'DEMAND_TIME_FENCE_DAYS') THEN
1557 	   IF (NVL(l_Item_rec.DEMAND_TIME_FENCE_DAYS,-999999)  <> NVL(m_Item_rec.DEMAND_TIME_FENCE_DAYS,-999999)) THEN
1558               l_Item_rec.DEMAND_TIME_FENCE_DAYS         := m_Item_rec.DEMAND_TIME_FENCE_DAYS;
1559 	      l_update_child_rec := TRUE;
1560 	   END IF;
1561         ELSIF ( l_Attribute_Code = 'RELEASE_TIME_FENCE_CODE') THEN
1562 	   IF (NVL(l_Item_rec.RELEASE_TIME_FENCE_CODE,-999999)  <> NVL(m_Item_rec.RELEASE_TIME_FENCE_CODE,-999999)) THEN
1563               l_Item_rec.RELEASE_TIME_FENCE_CODE        := m_Item_rec.RELEASE_TIME_FENCE_CODE;
1564 	      l_update_child_rec := TRUE;
1565 	   END IF;
1566         ELSIF ( l_Attribute_Code = 'RELEASE_TIME_FENCE_DAYS') THEN
1567 	   IF (NVL(l_Item_rec.RELEASE_TIME_FENCE_DAYS,-999999)  <> NVL(m_Item_rec.RELEASE_TIME_FENCE_DAYS,-999999)) THEN
1568               l_Item_rec.RELEASE_TIME_FENCE_DAYS        := m_Item_rec.RELEASE_TIME_FENCE_DAYS;
1569 	      l_update_child_rec := TRUE;
1570 	   END IF;
1571         ELSIF ( l_Attribute_Code = 'SUBSTITUTION_WINDOW_CODE') THEN
1572 	   IF (NVL(l_Item_rec.SUBSTITUTION_WINDOW_CODE,-999999)  <> NVL(m_Item_rec.SUBSTITUTION_WINDOW_CODE,-999999)) THEN
1573               l_Item_rec.SUBSTITUTION_WINDOW_CODE   :=  m_Item_rec.SUBSTITUTION_WINDOW_CODE;
1574 	      l_update_child_rec := TRUE;
1575 	   END IF;
1576         ELSIF ( l_Attribute_Code = 'SUBSTITUTION_WINDOW_DAYS') THEN
1577 	   IF (NVL(l_Item_rec.SUBSTITUTION_WINDOW_DAYS,-999999)  <> NVL(m_Item_rec.SUBSTITUTION_WINDOW_DAYS,-999999)) THEN
1578               l_Item_rec.SUBSTITUTION_WINDOW_DAYS   :=  m_Item_rec.SUBSTITUTION_WINDOW_DAYS;
1579 	      l_update_child_rec := TRUE;
1580 	   END IF;
1581         ELSIF ( l_Attribute_Code = 'DAYS_TGT_INV_SUPPLY') THEN
1582 	   IF (NVL(l_Item_rec.DAYS_TGT_INV_SUPPLY,-999999)  <> NVL(m_Item_rec.DAYS_TGT_INV_SUPPLY,-999999)) THEN
1583               l_Item_rec.DAYS_TGT_INV_SUPPLY                       := m_Item_rec.DAYS_TGT_INV_SUPPLY;
1584 	      l_update_child_rec := TRUE;
1585 	   END IF;
1586         ELSIF ( l_Attribute_Code = 'DAYS_TGT_INV_WINDOW') THEN
1587 	   IF (NVL(l_Item_rec.DAYS_TGT_INV_WINDOW,-999999)  <> NVL(m_Item_rec.DAYS_TGT_INV_WINDOW,-999999)) THEN
1588               l_Item_rec.DAYS_TGT_INV_WINDOW                       := m_Item_rec.DAYS_TGT_INV_WINDOW;
1589 	      l_update_child_rec := TRUE;
1590 	   END IF;
1591         ELSIF ( l_Attribute_Code = 'DAYS_MAX_INV_SUPPLY')  THEN
1592 	   IF (NVL(l_Item_rec.DAYS_MAX_INV_SUPPLY,-999999)  <> NVL(m_Item_rec.DAYS_MAX_INV_SUPPLY,-999999)) THEN
1593               l_Item_rec.DAYS_MAX_INV_SUPPLY                       := m_Item_rec.DAYS_MAX_INV_SUPPLY;
1594 	      l_update_child_rec := TRUE;
1595 	   END IF;
1596         ELSIF ( l_Attribute_Code = 'DAYS_MAX_INV_WINDOW') THEN
1597 	   IF (NVL(l_Item_rec.DAYS_MAX_INV_WINDOW,-999999)  <> NVL(m_Item_rec.DAYS_MAX_INV_WINDOW,-999999)) THEN
1598               l_Item_rec.DAYS_MAX_INV_WINDOW                       := m_Item_rec.DAYS_MAX_INV_WINDOW;
1599 	      l_update_child_rec := TRUE;
1600 	   END IF;
1601         ELSIF ( l_Attribute_Code = 'CRITICAL_COMPONENT_FLAG') THEN
1602 	   IF (NVL(l_Item_rec.CRITICAL_COMPONENT_FLAG,-999999)  <> NVL(m_Item_rec.CRITICAL_COMPONENT_FLAG,-999999)) THEN
1603               l_Item_rec.CRITICAL_COMPONENT_FLAG                       := m_Item_rec.CRITICAL_COMPONENT_FLAG;
1604 	      l_update_child_rec := TRUE;
1605 	   END IF;
1606         ELSIF ( l_Attribute_Code = 'CONTINOUS_TRANSFER') THEN
1607 	   IF (NVL(l_Item_rec.CONTINOUS_TRANSFER,-999999)  <> NVL(m_Item_rec.CONTINOUS_TRANSFER,-999999)) THEN
1608               l_Item_rec.CONTINOUS_TRANSFER                       := m_Item_rec.CONTINOUS_TRANSFER;
1609 	      l_update_child_rec := TRUE;
1610 	   END IF;
1611         ELSIF ( l_Attribute_Code = 'CONVERGENCE') THEN
1612 	   IF (NVL(l_Item_rec.CONVERGENCE,-999999)  <> NVL(m_Item_rec.CONVERGENCE,-999999)) THEN
1613               l_Item_rec.CONVERGENCE                       := m_Item_rec.CONVERGENCE;
1614 	      l_update_child_rec := TRUE;
1615 	   END IF;
1616         ELSIF ( l_Attribute_Code = 'DIVERGENCE') THEN
1617 	   IF (NVL(l_Item_rec.DIVERGENCE,-999999)  <> NVL(m_Item_rec.DIVERGENCE,-999999)) THEN
1618               l_Item_rec.DIVERGENCE                        := m_Item_rec.DIVERGENCE ;
1619 	      l_update_child_rec := TRUE;
1620 	   END IF;
1621         ELSIF ( l_Attribute_Code = 'DRP_PLANNED_FLAG') THEN
1622 	   IF (NVL(l_Item_rec.DRP_PLANNED_FLAG,-999999)  <> NVL(m_Item_rec.DRP_PLANNED_FLAG,-999999)) THEN
1623               l_Item_rec.DRP_PLANNED_FLAG                       := m_Item_rec.DRP_PLANNED_FLAG;
1624 	      l_update_child_rec := TRUE;
1625 	   END IF;
1626         ELSIF ( l_Attribute_Code = 'REPAIR_LEADTIME') THEN   --Bug: 5396073
1627 	   IF (NVL(l_Item_rec.REPAIR_LEADTIME,-999999)  <> NVL(m_Item_rec.REPAIR_LEADTIME,-999999)) THEN
1628               l_Item_rec.REPAIR_LEADTIME                       := m_Item_rec.REPAIR_LEADTIME;
1629 	      l_update_child_rec := TRUE;
1630 	   END IF;
1631         ELSIF ( l_Attribute_Code = 'REPAIR_YIELD') THEN   --Bug: 5396073
1632 	   IF (NVL(l_Item_rec.REPAIR_YIELD,-999999)  <> NVL(m_Item_rec.REPAIR_YIELD,-999999)) THEN
1633               l_Item_rec.REPAIR_YIELD                       := m_Item_rec.REPAIR_YIELD;
1634 	      l_update_child_rec := TRUE;
1635 	   END IF;
1636         ELSIF ( l_Attribute_Code = 'PREPOSITION_POINT') THEN   --Bug: 5396073
1637 	   IF (NVL(l_Item_rec.PREPOSITION_POINT,'!')  <> NVL(m_Item_rec.PREPOSITION_POINT,'!')) THEN
1638               l_Item_rec.PREPOSITION_POINT                       := m_Item_rec.PREPOSITION_POINT;
1639 	      l_update_child_rec := TRUE;
1640 	   END IF;
1641         ELSIF ( l_Attribute_Code = 'REPAIR_PROGRAM') THEN   --Bug: 5396073
1642 	   IF (NVL(l_Item_rec.REPAIR_PROGRAM,-999999)  <> NVL(m_Item_rec.REPAIR_PROGRAM,-999999)) THEN
1643               l_Item_rec.REPAIR_PROGRAM                       := m_Item_rec.REPAIR_PROGRAM;
1644 	      l_update_child_rec := TRUE;
1645 	   END IF;
1646 
1647             --Lead Times
1648         ELSIF ( l_Attribute_Code = 'PREPROCESSING_LEAD_TIME') THEN
1649 	   IF (NVL(l_Item_rec.PREPROCESSING_LEAD_TIME,-999999)  <> NVL(m_Item_rec.PREPROCESSING_LEAD_TIME,-999999)) THEN
1650               l_Item_rec.PREPROCESSING_LEAD_TIME        := m_Item_rec.PREPROCESSING_LEAD_TIME;
1651 	      l_update_child_rec := TRUE;
1652 	   END IF;
1653         ELSIF ( l_Attribute_Code = 'FULL_LEAD_TIME') THEN
1654 	   IF (NVL(l_Item_rec.FULL_LEAD_TIME,-999999)  <> NVL(m_Item_rec.FULL_LEAD_TIME,-999999)) THEN
1655               l_Item_rec.FULL_LEAD_TIME                 := m_Item_rec.FULL_LEAD_TIME ;
1656 	      l_update_child_rec := TRUE;
1657 	   END IF;
1658         ELSIF ( l_Attribute_Code = 'POSTPROCESSING_LEAD_TIME') THEN
1659 	   IF (NVL(l_Item_rec.POSTPROCESSING_LEAD_TIME,-999999)  <> NVL(m_Item_rec.POSTPROCESSING_LEAD_TIME,-999999)) THEN
1660               l_Item_rec.POSTPROCESSING_LEAD_TIME       := m_Item_rec.POSTPROCESSING_LEAD_TIME;
1661 	      l_update_child_rec := TRUE;
1662 	   END IF;
1663         ELSIF ( l_Attribute_Code = 'FIXED_LEAD_TIME') THEN
1664 	   IF (NVL(l_Item_rec.FIXED_LEAD_TIME,-999999)  <> NVL(m_Item_rec.FIXED_LEAD_TIME,-999999)) THEN
1665               l_Item_rec.FIXED_LEAD_TIME                := m_Item_rec.FIXED_LEAD_TIME;
1666 	      l_update_child_rec := TRUE;
1667 	   END IF;
1668         ELSIF ( l_Attribute_Code = 'VARIABLE_LEAD_TIME') THEN
1669 	   IF (NVL(l_Item_rec.VARIABLE_LEAD_TIME,-999999)  <> NVL(m_Item_rec.VARIABLE_LEAD_TIME,-999999)) THEN
1670               l_Item_rec.VARIABLE_LEAD_TIME             := m_Item_rec.VARIABLE_LEAD_TIME             ;
1671 	      l_update_child_rec := TRUE;
1672 	   END IF;
1673         ELSIF ( l_Attribute_Code = 'CUM_MANUFACTURING_LEAD_TIME') THEN
1674 	   IF (NVL(l_Item_rec.CUM_MANUFACTURING_LEAD_TIME,-999999)  <> NVL(m_Item_rec.CUM_MANUFACTURING_LEAD_TIME,-999999)) THEN
1675               l_Item_rec.CUM_MANUFACTURING_LEAD_TIME    := m_Item_rec.CUM_MANUFACTURING_LEAD_TIME    ;
1676 	      l_update_child_rec := TRUE;
1677 	   END IF;
1678         ELSIF ( l_Attribute_Code = 'CUMULATIVE_TOTAL_LEAD_TIME')  THEN
1679 	   IF (NVL(l_Item_rec.CUMULATIVE_TOTAL_LEAD_TIME,-999999)  <> NVL(m_Item_rec.CUMULATIVE_TOTAL_LEAD_TIME,-999999)) THEN
1680               l_Item_rec.CUMULATIVE_TOTAL_LEAD_TIME     := m_Item_rec.CUMULATIVE_TOTAL_LEAD_TIME;
1681 	      l_update_child_rec := TRUE;
1682 	   END IF;
1683         ELSIF ( l_Attribute_Code = 'LEAD_TIME_LOT_SIZE') THEN
1684 	   IF (NVL(l_Item_rec.LEAD_TIME_LOT_SIZE,-999999)  <> NVL(m_Item_rec.LEAD_TIME_LOT_SIZE,-999999)) THEN
1685               l_Item_rec.LEAD_TIME_LOT_SIZE             := m_Item_rec.LEAD_TIME_LOT_SIZE;
1686 	      l_update_child_rec := TRUE;
1687 	   END IF;
1688 
1689 	    --Work In Progress
1690         ELSIF ( l_Attribute_Code = 'BUILD_IN_WIP_FLAG') THEN
1691 	   IF (NVL(l_Item_rec.BUILD_IN_WIP_FLAG,'!')  <> NVL(m_Item_rec.BUILD_IN_WIP_FLAG,'!')) THEN
1692               l_Item_rec.BUILD_IN_WIP_FLAG              := m_Item_rec.BUILD_IN_WIP_FLAG;
1693 	      l_update_child_rec := TRUE;
1694 	   END IF;
1695         ELSIF ( l_Attribute_Code = 'WIP_SUPPLY_TYPE') THEN
1696 	   IF (NVL(l_Item_rec.WIP_SUPPLY_TYPE,-999999)  <> NVL(m_Item_rec.WIP_SUPPLY_TYPE,-999999)) THEN
1697               l_Item_rec.WIP_SUPPLY_TYPE                := m_Item_rec.WIP_SUPPLY_TYPE;
1698 	      l_update_child_rec := TRUE;
1699 	   END IF;
1700         ELSIF ( l_Attribute_Code = 'WIP_SUPPLY_SUBINVENTORY')  THEN
1701 	   IF (NVL(l_Item_rec.WIP_SUPPLY_SUBINVENTORY,'!')  <> NVL(m_Item_rec.WIP_SUPPLY_SUBINVENTORY,'!')) THEN
1702              l_Item_rec.WIP_SUPPLY_SUBINVENTORY        := m_Item_rec.WIP_SUPPLY_SUBINVENTORY;
1703 	      l_update_child_rec := TRUE;
1704 	   END IF;
1705         ELSIF ( l_Attribute_Code = 'WIP_SUPPLY_LOCATOR_ID') THEN
1706 	   IF (NVL(l_Item_rec.WIP_SUPPLY_LOCATOR_ID,-999999)  <> NVL(m_Item_rec.WIP_SUPPLY_LOCATOR_ID,-999999)) THEN
1707               l_Item_rec.WIP_SUPPLY_LOCATOR_ID          := m_Item_rec.WIP_SUPPLY_LOCATOR_ID;
1708 	      l_update_child_rec := TRUE;
1709 	   END IF;
1710         ELSIF ( l_Attribute_Code = 'OVERCOMPLETION_TOLERANCE_TYPE') THEN
1711 	   IF (NVL(l_Item_rec.OVERCOMPLETION_TOLERANCE_TYPE,-999999)  <> NVL(m_Item_rec.OVERCOMPLETION_TOLERANCE_TYPE,-999999) ) THEN
1712               l_Item_rec.OVERCOMPLETION_TOLERANCE_TYPE  := m_Item_rec.OVERCOMPLETION_TOLERANCE_TYPE  ;
1713 	      l_update_child_rec := TRUE;
1714 	   END IF;
1715         ELSIF ( l_Attribute_Code = 'OVERCOMPLETION_TOLERANCE_VALUE') THEN
1716 	   IF (NVL(l_Item_rec.OVERCOMPLETION_TOLERANCE_VALUE,-999999)  <> NVL(m_Item_rec.OVERCOMPLETION_TOLERANCE_VALUE,-999999)) THEN
1717               l_Item_rec.OVERCOMPLETION_TOLERANCE_VALUE := m_Item_rec.OVERCOMPLETION_TOLERANCE_VALUE ;
1718 	      l_update_child_rec := TRUE;
1719 	   END IF;
1720         ELSIF ( l_Attribute_Code = 'INVENTORY_CARRY_PENALTY') THEN
1721 	   IF (NVL(l_Item_rec.INVENTORY_CARRY_PENALTY,-999999)  <> NVL(m_Item_rec.INVENTORY_CARRY_PENALTY,-999999)) THEN
1722               l_Item_rec.INVENTORY_CARRY_PENALTY := m_Item_rec.INVENTORY_CARRY_PENALTY;
1723 	      l_update_child_rec := TRUE;
1724 	   END IF;
1725         ELSIF ( l_Attribute_Code = 'OPERATION_SLACK_PENALTY') THEN
1726 	   IF (NVL(l_Item_rec.OPERATION_SLACK_PENALTY,-999999)  <> NVL(m_Item_rec.OPERATION_SLACK_PENALTY,-999999)) THEN
1727               l_Item_rec.OPERATION_SLACK_PENALTY := m_Item_rec.OPERATION_SLACK_PENALTY;
1728 	      l_update_child_rec := TRUE;
1729 	   END IF;
1730 
1731             --Order Management
1732         ELSIF ( l_Attribute_Code = 'CUSTOMER_ORDER_FLAG') THEN
1733 	   IF (NVL(l_Item_rec.CUSTOMER_ORDER_FLAG,'!')  <> NVL(m_Item_rec.CUSTOMER_ORDER_FLAG,'!')) THEN
1734               l_Item_rec.CUSTOMER_ORDER_FLAG            := m_Item_rec.CUSTOMER_ORDER_FLAG;
1735 	      l_update_child_rec := TRUE;
1736 	   END IF;
1737         ELSIF ( l_Attribute_Code = 'CUSTOMER_ORDER_ENABLED_FLAG') THEN
1738 	   IF (NVL(l_Item_rec.CUSTOMER_ORDER_ENABLED_FLAG,'!')  <> NVL(m_Item_rec.CUSTOMER_ORDER_ENABLED_FLAG,'!')) THEN
1739               l_Item_rec.CUSTOMER_ORDER_ENABLED_FLAG    := m_Item_rec.CUSTOMER_ORDER_ENABLED_FLAG;
1740 	      l_update_child_rec := TRUE;
1741 	   END IF;
1742         ELSIF ( l_Attribute_Code = 'INTERNAL_ORDER_FLAG') THEN
1743 	   IF (NVL(l_Item_rec.INTERNAL_ORDER_FLAG,'!')  <> NVL(m_Item_rec.INTERNAL_ORDER_FLAG,'!')) THEN
1744               l_Item_rec.INTERNAL_ORDER_FLAG            := m_Item_rec.INTERNAL_ORDER_FLAG;
1745 	      l_update_child_rec := TRUE;
1746 	   END IF;
1747         ELSIF ( l_Attribute_Code = 'INTERNAL_ORDER_ENABLED_FLAG') THEN
1748 	    IF (NVL(l_Item_rec.INTERNAL_ORDER_ENABLED_FLAG,'!')  <> NVL(m_Item_rec.INTERNAL_ORDER_ENABLED_FLAG,'!')) THEN
1749               l_Item_rec.INTERNAL_ORDER_ENABLED_FLAG    := m_Item_rec.INTERNAL_ORDER_ENABLED_FLAG;
1750 	      l_update_child_rec := TRUE;
1751 	   END IF;
1752         ELSIF ( l_Attribute_Code = 'SHIPPABLE_ITEM_FLAG') THEN
1753 	   IF (NVL(l_Item_rec.SHIPPABLE_ITEM_FLAG,'!')  <> NVL(m_Item_rec.SHIPPABLE_ITEM_FLAG,'!')) THEN
1754               l_Item_rec.SHIPPABLE_ITEM_FLAG            := m_Item_rec.SHIPPABLE_ITEM_FLAG;
1755 	      l_update_child_rec := TRUE;
1756 	   END IF;
1757         ELSIF ( l_Attribute_Code = 'SO_TRANSACTIONS_FLAG') THEN
1758 	   IF (NVL(l_Item_rec.SO_TRANSACTIONS_FLAG,'!')  <> NVL(m_Item_rec.SO_TRANSACTIONS_FLAG,'!')) THEN
1759               l_Item_rec.SO_TRANSACTIONS_FLAG           := m_Item_rec.SO_TRANSACTIONS_FLAG;
1760 	      l_update_child_rec := TRUE;
1761 	   END IF;
1762         ELSIF ( l_Attribute_Code = 'DEFAULT_SHIPPING_ORG') THEN
1763 	   IF (NVL(l_Item_rec.DEFAULT_SHIPPING_ORG,-999999)  <> NVL(m_Item_rec.DEFAULT_SHIPPING_ORG,-999999)) THEN
1764               l_Item_rec.DEFAULT_SHIPPING_ORG           := m_Item_rec.DEFAULT_SHIPPING_ORG;
1765 	      l_update_child_rec := TRUE;
1766 	   END IF;
1767         ELSIF ( l_Attribute_Code = 'DEFAULT_SO_SOURCE_TYPE') THEN
1768 	    IF (NVL(l_Item_rec.DEFAULT_SO_SOURCE_TYPE,'!')  <> NVL(m_Item_rec.DEFAULT_SO_SOURCE_TYPE,'!')) THEN
1769                l_Item_rec.DEFAULT_SO_SOURCE_TYPE     :=  m_Item_rec.DEFAULT_SO_SOURCE_TYPE;
1770 	       l_update_child_rec := TRUE;
1771 	    END IF;
1772         ELSIF ( l_Attribute_Code = 'PICK_COMPONENTS_FLAG') THEN
1773 	   IF (NVL(l_Item_rec.PICK_COMPONENTS_FLAG,'!')  <> NVL(m_Item_rec.PICK_COMPONENTS_FLAG,'!')) THEN
1774               l_Item_rec.PICK_COMPONENTS_FLAG           := m_Item_rec.PICK_COMPONENTS_FLAG;
1775 	      l_update_child_rec := TRUE;
1776 	   END IF;
1777         ELSIF ( l_Attribute_Code = 'ATP_FLAG')  THEN
1778 	   IF (NVL(l_Item_rec.ATP_FLAG,'!')  <> NVL(m_Item_rec.ATP_FLAG,'!')) THEN
1779               l_Item_rec.ATP_FLAG                       := m_Item_rec.ATP_FLAG;
1780 	      l_update_child_rec := TRUE;
1781 	   END IF;
1782         ELSIF ( l_Attribute_Code = 'REPLENISH_TO_ORDER_FLAG') THEN
1783 	   IF (NVL(l_Item_rec.REPLENISH_TO_ORDER_FLAG,'!')  <> NVL(m_Item_rec.REPLENISH_TO_ORDER_FLAG,'!')) THEN
1784               l_Item_rec.REPLENISH_TO_ORDER_FLAG        := m_Item_rec.REPLENISH_TO_ORDER_FLAG;
1785 	      l_update_child_rec := TRUE;
1786 	   END IF;
1787         ELSIF ( l_Attribute_Code = 'ATP_COMPONENTS_FLAG') THEN
1788 	   IF (NVL(l_Item_rec.ATP_COMPONENTS_FLAG,'!')  <> NVL(m_Item_rec.ATP_COMPONENTS_FLAG,'!')) THEN
1789               l_Item_rec.ATP_COMPONENTS_FLAG            := m_Item_rec.ATP_COMPONENTS_FLAG;
1790 	      l_update_child_rec := TRUE;
1791 	   END IF;
1792         ELSIF ( l_Attribute_Code = 'ATP_RULE_ID') THEN
1793 	   IF (NVL(l_Item_rec.ATP_RULE_ID,-999999)  <> NVL(m_Item_rec.ATP_RULE_ID,-999999)) THEN
1794               l_Item_rec.ATP_RULE_ID                    := m_Item_rec.ATP_RULE_ID;
1795 	      l_update_child_rec := TRUE;
1796 	   END IF;
1797         ELSIF ( l_Attribute_Code = 'SHIP_MODEL_COMPLETE_FLAG') THEN
1798 	   IF (NVL(l_Item_rec.SHIP_MODEL_COMPLETE_FLAG,'!')  <> NVL(m_Item_rec.SHIP_MODEL_COMPLETE_FLAG,'!')) THEN
1799               l_Item_rec.SHIP_MODEL_COMPLETE_FLAG       := m_Item_rec.SHIP_MODEL_COMPLETE_FLAG;
1800 	      l_update_child_rec := TRUE;
1801 	   END IF;
1802         ELSIF ( l_Attribute_Code = 'RETURNABLE_FLAG') THEN
1803 	   IF (NVL(l_Item_rec.RETURNABLE_FLAG,'!')  <> NVL(m_Item_rec.RETURNABLE_FLAG,'!')) THEN
1804               l_Item_rec.RETURNABLE_FLAG                := m_Item_rec.RETURNABLE_FLAG;
1805 	      l_update_child_rec := TRUE;
1806 	   END IF;
1807         ELSIF ( l_Attribute_Code = 'RETURN_INSPECTION_REQUIREMENT') THEN
1808 	   IF (NVL(l_Item_rec.RETURN_INSPECTION_REQUIREMENT,-999999)  <> NVL(m_Item_rec.RETURN_INSPECTION_REQUIREMENT,-999999)) THEN
1809            l_Item_rec.RETURN_INSPECTION_REQUIREMENT  := m_Item_rec.RETURN_INSPECTION_REQUIREMENT;
1810 	   l_update_child_rec := TRUE;
1811 	   END IF;
1812         ELSIF ( l_Attribute_Code = 'FINANCING_ALLOWED_FLAG') THEN
1813 	   IF (NVL(l_Item_rec.FINANCING_ALLOWED_FLAG,'!')  <> NVL(m_Item_rec.FINANCING_ALLOWED_FLAG,'!')) THEN
1814               l_Item_rec.FINANCING_ALLOWED_FLAG := m_Item_rec.FINANCING_ALLOWED_FLAG;
1815 	      l_update_child_rec := TRUE;
1816 	   END IF;
1817         ELSIF ( l_Attribute_Code = 'OVER_SHIPMENT_TOLERANCE') THEN
1818 	   IF (NVL(l_Item_rec.OVER_SHIPMENT_TOLERANCE,-999999)  <> NVL(m_Item_rec.OVER_SHIPMENT_TOLERANCE,-999999)) THEN
1819               l_Item_rec.OVER_SHIPMENT_TOLERANCE        := m_Item_rec.OVER_SHIPMENT_TOLERANCE;
1820 	      l_update_child_rec := TRUE;
1821 	   END IF;
1822         ELSIF ( l_Attribute_Code = 'UNDER_SHIPMENT_TOLERANCE') THEN
1823 	   IF (NVL(l_Item_rec.UNDER_SHIPMENT_TOLERANCE,-999999)  <> NVL(m_Item_rec.UNDER_SHIPMENT_TOLERANCE,-999999)) THEN
1824               l_Item_rec.UNDER_SHIPMENT_TOLERANCE       := m_Item_rec.UNDER_SHIPMENT_TOLERANCE;
1825 	      l_update_child_rec := TRUE;
1826 	   END IF;
1827         ELSIF ( l_Attribute_Code = 'OVER_RETURN_TOLERANCE') THEN
1828 	   IF (NVL(l_Item_rec.OVER_RETURN_TOLERANCE,-999999)  <> NVL(m_Item_rec.OVER_RETURN_TOLERANCE,-999999)) THEN
1829               l_Item_rec.OVER_RETURN_TOLERANCE          := m_Item_rec.OVER_RETURN_TOLERANCE;
1830 	      l_update_child_rec := TRUE;
1831 	   END IF;
1832 	ELSIF ( l_Attribute_Code = 'UNDER_RETURN_TOLERANCE') THEN
1833 	   IF (NVL(l_Item_rec.UNDER_RETURN_TOLERANCE,-999999)  <> NVL(m_Item_rec.UNDER_RETURN_TOLERANCE,-999999)) THEN
1834               l_Item_rec.UNDER_RETURN_TOLERANCE         := m_Item_rec.UNDER_RETURN_TOLERANCE;
1835 	      l_update_child_rec := TRUE;
1836 	   END IF;
1837         ELSIF ( l_Attribute_Code = 'PICKING_RULE_ID') THEN
1838 	   IF (NVL(l_Item_rec.PICKING_RULE_ID,-999999)  <> NVL(m_Item_rec.PICKING_RULE_ID,-999999)) THEN
1839               l_Item_rec.PICKING_RULE_ID                := m_Item_rec.PICKING_RULE_ID;
1840 	      l_update_child_rec := TRUE;
1841 	   END IF;
1842         ELSIF ( l_Attribute_Code = 'VOL_DISCOUNT_EXEMPT_FLAG') THEN
1843 	   IF (NVL(l_Item_rec.VOL_DISCOUNT_EXEMPT_FLAG,'!')  <> NVL(m_Item_rec.VOL_DISCOUNT_EXEMPT_FLAG,'!')) THEN
1844               l_Item_rec.VOL_DISCOUNT_EXEMPT_FLAG := m_Item_rec.VOL_DISCOUNT_EXEMPT_FLAG ;
1845 	      l_update_child_rec := TRUE;
1846 	   END IF;
1847         ELSIF ( l_Attribute_Code = 'COUPON_EXEMPT_FLAG') THEN
1848 	   IF (NVL(l_Item_rec.COUPON_EXEMPT_FLAG,'!')  <> NVL(m_Item_rec.COUPON_EXEMPT_FLAG,'!')) THEN
1849               l_Item_rec.COUPON_EXEMPT_FLAG := m_Item_rec.COUPON_EXEMPT_FLAG ;
1850 	      l_update_child_rec := TRUE;
1851 	   END IF;
1852         ELSIF ( l_Attribute_Code = 'CHARGE_PERIODICITY_CODE') THEN  --Added for Bug: 5355168
1853 	   IF (NVL(l_Item_rec.CHARGE_PERIODICITY_CODE,'!')  <> NVL(m_Item_rec.CHARGE_PERIODICITY_CODE,'!')) THEN
1854               l_Item_rec.CHARGE_PERIODICITY_CODE := m_Item_rec.CHARGE_PERIODICITY_CODE ;
1855 	      l_update_child_rec := TRUE;
1856 	   END IF;
1857 
1858             --Invoicing Attributes
1859         ELSIF ( l_Attribute_Code = 'INVOICEABLE_ITEM_FLAG') THEN
1860 	   IF (NVL(l_Item_rec.INVOICEABLE_ITEM_FLAG,'!')  <> NVL(m_Item_rec.INVOICEABLE_ITEM_FLAG,'!')) THEN
1861               l_Item_rec.INVOICEABLE_ITEM_FLAG          := m_Item_rec.INVOICEABLE_ITEM_FLAG;
1862 	      l_update_child_rec := TRUE;
1863 	   END IF;
1864         ELSIF ( l_Attribute_Code = 'INVOICE_ENABLED_FLAG') THEN
1865 	   IF (NVL(l_Item_rec.INVOICE_ENABLED_FLAG,'!')  <> NVL(m_Item_rec.INVOICE_ENABLED_FLAG,'!')) THEN
1866               l_Item_rec.INVOICE_ENABLED_FLAG           := m_Item_rec.INVOICE_ENABLED_FLAG;
1867 	      l_update_child_rec := TRUE;
1868 	   END IF;
1869         ELSIF ( l_Attribute_Code = 'ACCOUNTING_RULE_ID') THEN
1870 	   IF (NVL(l_Item_rec.ACCOUNTING_RULE_ID,-999999)  <> NVL(m_Item_rec.ACCOUNTING_RULE_ID,-999999)) THEN
1871               l_Item_rec.ACCOUNTING_RULE_ID             := m_Item_rec.ACCOUNTING_RULE_ID;
1872 	      l_update_child_rec := TRUE;
1873 	   END IF;
1874         ELSIF ( l_Attribute_Code = 'INVOICING_RULE_ID') THEN
1875 	   IF (NVL(l_Item_rec.INVOICING_RULE_ID,-999999)  <> NVL(m_Item_rec.INVOICING_RULE_ID,-999999)) THEN
1876               l_Item_rec.INVOICING_RULE_ID              := m_Item_rec.INVOICING_RULE_ID;
1877 	      l_update_child_rec := TRUE;
1878 	   END IF;
1879         ELSIF ( l_Attribute_Code = 'TAX_CODE') THEN
1880 	   IF (NVL(l_Item_rec.TAX_CODE,'!')  <> NVL(m_Item_rec.TAX_CODE,'!')) THEN
1881               l_Item_rec.TAX_CODE                       := m_Item_rec.TAX_CODE;
1882 	      l_update_child_rec := TRUE;
1883 	   END IF;
1884         ELSIF ( l_Attribute_Code = 'SALES_ACCOUNT') THEN
1885 	   IF (NVL(l_Item_rec.SALES_ACCOUNT,-999999)  <> NVL(m_Item_rec.SALES_ACCOUNT,-999999)) THEN
1886               l_Item_rec.SALES_ACCOUNT                  := m_Item_rec.SALES_ACCOUNT;
1887 	      l_update_child_rec := TRUE;
1888 	   END IF;
1889         ELSIF ( l_Attribute_Code = 'PAYMENT_TERMS_ID') THEN
1890 	   IF (NVL(l_Item_rec.PAYMENT_TERMS_ID,-999999)  <> NVL(m_Item_rec.PAYMENT_TERMS_ID,-999999)) THEN
1891              l_Item_rec.PAYMENT_TERMS_ID               := m_Item_rec.PAYMENT_TERMS_ID;
1892 	     l_update_child_rec := TRUE;
1893 	   END IF;
1894 
1895 	    --Service Attributes
1896         ELSIF ( l_Attribute_Code = 'CONTRACT_ITEM_TYPE_CODE') THEN
1897 	    IF (NVL(l_Item_rec.CONTRACT_ITEM_TYPE_CODE,'!')  <> NVL(m_Item_rec.CONTRACT_ITEM_TYPE_CODE,'!')) THEN
1898                l_Item_rec.CONTRACT_ITEM_TYPE_CODE    :=  m_Item_rec.CONTRACT_ITEM_TYPE_CODE;
1899 	       l_update_child_rec := TRUE;
1900 	    END IF;
1901         ELSIF ( l_Attribute_Code = 'COVERAGE_SCHEDULE_ID') THEN
1902 	   IF (NVL(l_Item_rec.COVERAGE_SCHEDULE_ID,-999999)  <> NVL(m_Item_rec.COVERAGE_SCHEDULE_ID,-999999)) THEN
1903               l_Item_rec.COVERAGE_SCHEDULE_ID           := m_Item_rec.COVERAGE_SCHEDULE_ID;
1904 	      l_update_child_rec := TRUE;
1905 	   END IF;
1906         ELSIF ( l_Attribute_Code = 'SERVICE_DURATION_PERIOD_CODE') THEN
1907 	   IF (NVL(l_Item_rec.SERVICE_DURATION_PERIOD_CODE,'!')  <> NVL(m_Item_rec.SERVICE_DURATION_PERIOD_CODE,'!')) THEN
1908               l_Item_rec.SERVICE_DURATION_PERIOD_CODE   := m_Item_rec.SERVICE_DURATION_PERIOD_CODE;
1909 	      l_update_child_rec := TRUE;
1910 	   END IF;
1911         ELSIF ( l_Attribute_Code = 'MATERIAL_BILLABLE_FLAG') THEN
1912 	   IF (NVL(l_Item_rec.MATERIAL_BILLABLE_FLAG,'!')  <> NVL(m_Item_rec.MATERIAL_BILLABLE_FLAG,'!')) THEN
1913               l_Item_rec.MATERIAL_BILLABLE_FLAG         := m_Item_rec.MATERIAL_BILLABLE_FLAG;
1914 	      l_update_child_rec := TRUE;
1915 	   END IF;
1916         ELSIF ( l_Attribute_Code = 'SERV_REQ_ENABLED_CODE') THEN
1917 	    IF (NVL(l_Item_rec.SERV_REQ_ENABLED_CODE,'!')  <> NVL(m_Item_rec.SERV_REQ_ENABLED_CODE,'!')) THEN
1918                l_Item_rec.SERV_REQ_ENABLED_CODE      :=  m_Item_rec.SERV_REQ_ENABLED_CODE;
1919 	       l_update_child_rec := TRUE;
1920 	    END IF;
1921         ELSIF ( l_Attribute_Code = 'COMMS_ACTIVATION_REQD_FLAG') THEN
1922 	   IF (NVL(l_Item_rec.COMMS_ACTIVATION_REQD_FLAG,'!')  <> NVL(m_Item_rec.COMMS_ACTIVATION_REQD_FLAG,'!')) THEN
1923               l_Item_rec.COMMS_ACTIVATION_REQD_FLAG := m_Item_rec.COMMS_ACTIVATION_REQD_FLAG;
1924 	      l_update_child_rec := TRUE;
1925 	   END IF;
1926         ELSIF ( l_Attribute_Code = 'SERV_BILLING_ENABLED_FLAG') THEN
1927 	    IF (NVL(l_Item_rec.SERV_BILLING_ENABLED_FLAG,'!')  <> NVL(m_Item_rec.SERV_BILLING_ENABLED_FLAG,'!')) THEN
1928                l_Item_rec.SERV_BILLING_ENABLED_FLAG  :=  m_Item_rec.SERV_BILLING_ENABLED_FLAG;
1929 	       l_update_child_rec := TRUE;
1930 	    END IF;
1931         ELSIF ( l_Attribute_Code = 'DEFECT_TRACKING_ON_FLAG') THEN
1932 	   IF (NVL(l_Item_rec.DEFECT_TRACKING_ON_FLAG,'!')  <> NVL(m_Item_rec.DEFECT_TRACKING_ON_FLAG,'!')) THEN
1933               l_Item_rec.DEFECT_TRACKING_ON_FLAG := m_Item_rec.DEFECT_TRACKING_ON_FLAG;
1934 	      l_update_child_rec := TRUE;
1935 	   END IF;
1936         ELSIF ( l_Attribute_Code = 'RECOVERED_PART_DISP_CODE') THEN
1937 	   IF (NVL(l_Item_rec.RECOVERED_PART_DISP_CODE,'!')  <> NVL(m_Item_rec.RECOVERED_PART_DISP_CODE,'!')) THEN
1938               l_Item_rec.RECOVERED_PART_DISP_CODE := m_Item_rec.RECOVERED_PART_DISP_CODE ;
1939 	      l_update_child_rec := TRUE;
1940 	   END IF;
1941         ELSIF ( l_Attribute_Code = 'COMMS_NL_TRACKABLE_FLAG') THEN
1942 	   IF (NVL(l_Item_rec.COMMS_NL_TRACKABLE_FLAG,'!')  <> NVL(m_Item_rec.COMMS_NL_TRACKABLE_FLAG,'!')) THEN
1943               l_Item_rec.COMMS_NL_TRACKABLE_FLAG := m_Item_rec.COMMS_NL_TRACKABLE_FLAG;
1944 	      l_update_child_rec := TRUE;
1945 	   END IF;
1946         ELSIF ( l_Attribute_Code = 'ASSET_CREATION_CODE') THEN
1947 	   IF (NVL(l_Item_rec.ASSET_CREATION_CODE,'!')  <> NVL(m_Item_rec.ASSET_CREATION_CODE,'!')) THEN
1948               l_Item_rec.ASSET_CREATION_CODE := m_Item_rec.ASSET_CREATION_CODE ;
1949 	      l_update_child_rec := TRUE;
1950 	   END IF;
1951         ELSIF ( l_Attribute_Code = 'SERVICE_DURATION') THEN
1952 	   IF (NVL(l_Item_rec.SERVICE_DURATION,-999999)  <> NVL(m_Item_rec.SERVICE_DURATION,-999999)) THEN
1953               l_Item_rec.SERVICE_DURATION               := m_Item_rec.SERVICE_DURATION;
1954 	      l_update_child_rec := TRUE;
1955 	   END IF;
1956         ELSIF ( l_Attribute_Code = 'IB_ITEM_INSTANCE_CLASS') THEN
1957 	    IF (NVL(l_Item_rec.IB_ITEM_INSTANCE_CLASS,'!')  <> NVL(m_Item_rec.IB_ITEM_INSTANCE_CLASS,'!')) THEN
1958                l_Item_rec.IB_ITEM_INSTANCE_CLASS     :=  m_Item_rec.IB_ITEM_INSTANCE_CLASS;
1959 	       l_update_child_rec := TRUE;
1960 	    END IF;
1961         ELSIF ( l_Attribute_Code = 'PREVENTIVE_MAINTENANCE_FLAG') THEN
1962 	   IF (NVL(l_Item_rec.PREVENTIVE_MAINTENANCE_FLAG,'!')  <> NVL(m_Item_rec.PREVENTIVE_MAINTENANCE_FLAG,'!')) THEN
1963               l_Item_rec.PREVENTIVE_MAINTENANCE_FLAG    := m_Item_rec.PREVENTIVE_MAINTENANCE_FLAG;
1964 	      l_update_child_rec := TRUE;
1965 	   END IF;
1966         ELSIF ( l_Attribute_Code = 'PRORATE_SERVICE_FLAG') THEN
1967 	   IF (NVL(l_Item_rec.PRORATE_SERVICE_FLAG,'!')  <> NVL(m_Item_rec.PRORATE_SERVICE_FLAG,'!')) THEN
1968               l_Item_rec.PRORATE_SERVICE_FLAG           := m_Item_rec.PRORATE_SERVICE_FLAG;
1969 	      l_update_child_rec := TRUE;
1970 	   END IF;
1971         ELSIF ( l_Attribute_Code = 'WARRANTY_VENDOR_ID') THEN
1972 	   IF (NVL(l_Item_rec.WARRANTY_VENDOR_ID,-999999)  <> NVL(m_Item_rec.WARRANTY_VENDOR_ID,-999999)) THEN
1973               l_Item_rec.WARRANTY_VENDOR_ID             := m_Item_rec.WARRANTY_VENDOR_ID;
1974 	      l_update_child_rec := TRUE;
1975 	   END IF;
1976         ELSIF ( l_Attribute_Code = 'MAX_WARRANTY_AMOUNT') THEN
1977 	   IF (NVL(l_Item_rec.MAX_WARRANTY_AMOUNT,-999999)  <> NVL(m_Item_rec.MAX_WARRANTY_AMOUNT,-999999)) THEN
1978               l_Item_rec.MAX_WARRANTY_AMOUNT            := m_Item_rec.MAX_WARRANTY_AMOUNT;
1979 	      l_update_child_rec := TRUE;
1980 	   END IF;
1981         ELSIF ( l_Attribute_Code = 'RESPONSE_TIME_PERIOD_CODE') THEN
1982 	   IF (NVL(l_Item_rec.RESPONSE_TIME_PERIOD_CODE,'!')  <> NVL(m_Item_rec.RESPONSE_TIME_PERIOD_CODE,'!')) THEN
1983               l_Item_rec.RESPONSE_TIME_PERIOD_CODE      := m_Item_rec.RESPONSE_TIME_PERIOD_CODE;
1984 	      l_update_child_rec := TRUE;
1985 	   END IF;
1986         ELSIF ( l_Attribute_Code = 'RESPONSE_TIME_VALUE') THEN
1987 	   IF (NVL(l_Item_rec.RESPONSE_TIME_VALUE,-999999)  <> NVL(m_Item_rec.RESPONSE_TIME_VALUE,-999999)) THEN
1988               l_Item_rec.RESPONSE_TIME_VALUE            := m_Item_rec.RESPONSE_TIME_VALUE;
1989 	      l_update_child_rec := TRUE;
1990 	   END IF;
1991 
1992 	    --Web Option
1993         ELSIF ( l_Attribute_Code = 'WEB_STATUS') THEN
1994 	   IF (NVL(l_Item_rec.WEB_STATUS,'!')  <> NVL(m_Item_rec.WEB_STATUS,'!')) THEN
1995               l_Item_rec.WEB_STATUS := m_Item_rec.WEB_STATUS ;
1996 	      l_update_child_rec := TRUE;
1997 	   END IF;
1998         ELSIF ( l_Attribute_Code = 'ORDERABLE_ON_WEB_FLAG') THEN
1999 	   IF (NVL(l_Item_rec.ORDERABLE_ON_WEB_FLAG,'!')  <> NVL(m_Item_rec.ORDERABLE_ON_WEB_FLAG,'!')) THEN
2000               l_Item_rec.ORDERABLE_ON_WEB_FLAG := m_Item_rec.ORDERABLE_ON_WEB_FLAG;
2001 	      l_update_child_rec := TRUE;
2002 	   END IF;
2003         ELSIF ( l_Attribute_Code = 'BACK_ORDERABLE_FLAG') THEN
2004 	   IF (NVL(l_Item_rec.BACK_ORDERABLE_FLAG,'!')  <> NVL(m_Item_rec.BACK_ORDERABLE_FLAG,'!')) THEN
2005               l_Item_rec.BACK_ORDERABLE_FLAG := m_Item_rec.BACK_ORDERABLE_FLAG ;
2006 	      l_update_child_rec := TRUE;
2007 	   END IF;
2008         ELSIF ( l_Attribute_Code = 'MINIMUM_LICENSE_QUANTITY') THEN
2009 	    IF (NVL(l_Item_rec.MINIMUM_LICENSE_QUANTITY,-999999)  <> NVL(m_Item_rec.MINIMUM_LICENSE_QUANTITY,-999999)) THEN
2010                l_Item_rec.MINIMUM_LICENSE_QUANTITY          :=  m_Item_rec.MINIMUM_LICENSE_QUANTITY;
2011 	       l_update_child_rec := TRUE;
2012 	    END IF;
2013             --Main Attributes
2014         ELSIF ( l_Attribute_Code = 'SEGMENT1') THEN
2015 	   IF (NVL(l_Item_rec.SEGMENT1,'!')  <> NVL(m_Item_rec.SEGMENT1,'!')) THEN
2016               l_Item_rec.SEGMENT1                       := m_Item_rec.SEGMENT1;
2017 	      l_update_child_rec := TRUE;
2018 	   END IF;
2019         ELSIF ( l_Attribute_Code = 'SEGMENT2') THEN
2020 	   IF (NVL(l_Item_rec.SEGMENT2,'!')  <> NVL(m_Item_rec.SEGMENT2,'!')) THEN
2021               l_Item_rec.SEGMENT2                       := m_Item_rec.SEGMENT2 ;
2022 	      l_update_child_rec := TRUE;
2023 	   END IF;
2024         ELSIF ( l_Attribute_Code = 'SEGMENT3') THEN
2025 	   IF (NVL(l_Item_rec.SEGMENT3,'!')  <> NVL(m_Item_rec.SEGMENT3,'!')) THEN
2026               l_Item_rec.SEGMENT3                       := m_Item_rec.SEGMENT3;
2027 	      l_update_child_rec := TRUE;
2028 	   END IF;
2029         ELSIF ( l_Attribute_Code = 'SEGMENT4') THEN
2030 	   IF (NVL(l_Item_rec.SEGMENT4,'!')  <> NVL(m_Item_rec.SEGMENT4,'!')) THEN
2031               l_Item_rec.SEGMENT4                       := m_Item_rec.SEGMENT4 ;
2032 	      l_update_child_rec := TRUE;
2033 	   END IF;
2034         ELSIF ( l_Attribute_Code = 'SEGMENT5') THEN
2035 	   IF (NVL(l_Item_rec.SEGMENT5,'!')  <> NVL(m_Item_rec.SEGMENT5,'!')) THEN
2036               l_Item_rec.SEGMENT5                       := m_Item_rec.SEGMENT5 ;
2037 	      l_update_child_rec := TRUE;
2038 	   END IF;
2039         ELSIF ( l_Attribute_Code = 'SEGMENT6') THEN
2040 	   IF (NVL(l_Item_rec.SEGMENT6,'!')  <> NVL(m_Item_rec.SEGMENT6,'!')) THEN
2041               l_Item_rec.SEGMENT6                       := m_Item_rec.SEGMENT6 ;
2042 	      l_update_child_rec := TRUE;
2043 	   END IF;
2044         ELSIF ( l_Attribute_Code = 'SEGMENT7') THEN
2045 	   IF (NVL(l_Item_rec.SEGMENT7,'!')  <> NVL(m_Item_rec.SEGMENT7,'!')) THEN
2046               l_Item_rec.SEGMENT7                       := m_Item_rec.SEGMENT7 ;
2047 	      l_update_child_rec := TRUE;
2048 	   END IF;
2049         ELSIF ( l_Attribute_Code = 'SEGMENT8') THEN
2050 	   IF (NVL(l_Item_rec.SEGMENT8,'!')  <> NVL(m_Item_rec.SEGMENT8,'!')) THEN
2051               l_Item_rec.SEGMENT8                       := m_Item_rec.SEGMENT8 ;
2052 	      l_update_child_rec := TRUE;
2053 	   END IF;
2054         ELSIF ( l_Attribute_Code = 'SEGMENT9') THEN
2055 	   IF (NVL(l_Item_rec.SEGMENT9,'!')  <> NVL(m_Item_rec.SEGMENT9,'!')) THEN
2056               l_Item_rec.SEGMENT9                       := m_Item_rec.SEGMENT9 ;
2057 	      l_update_child_rec := TRUE;
2058 	   END IF;
2059         ELSIF ( l_Attribute_Code = 'SEGMENT10') THEN
2060 	   IF (NVL(l_Item_rec.SEGMENT10,'!')  <> NVL(m_Item_rec.SEGMENT10,'!')) THEN
2061               l_Item_rec.SEGMENT10                      := m_Item_rec.SEGMENT10;
2062 	      l_update_child_rec := TRUE;
2063 	   END IF;
2064         ELSIF ( l_Attribute_Code = 'SEGMENT11') THEN
2065 	   IF (NVL(l_Item_rec.SEGMENT11,'!')  <> NVL(m_Item_rec.SEGMENT11,'!')) THEN
2066               l_Item_rec.SEGMENT11                      := m_Item_rec.SEGMENT11 ;
2067 	      l_update_child_rec := TRUE;
2068 	   END IF;
2069         ELSIF ( l_Attribute_Code = 'SEGMENT12') THEN
2070 	   IF (NVL(l_Item_rec.SEGMENT12,'!')  <> NVL(m_Item_rec.SEGMENT12,'!')) THEN
2071               l_Item_rec.SEGMENT12                      := m_Item_rec.SEGMENT12 ;
2072 	      l_update_child_rec := TRUE;
2073 	   END IF;
2074         ELSIF ( l_Attribute_Code = 'SEGMENT13') THEN
2075 	   IF (NVL(l_Item_rec.SEGMENT13,'!')  <> NVL(m_Item_rec.SEGMENT13,'!')) THEN
2076               l_Item_rec.SEGMENT13                      := m_Item_rec.SEGMENT13 ;
2077 	      l_update_child_rec := TRUE;
2078 	   END IF;
2079         ELSIF ( l_Attribute_Code = 'SEGMENT14') THEN
2080 	   IF (NVL(l_Item_rec.SEGMENT14,'!')  <> NVL(m_Item_rec.SEGMENT14,'!')) THEN
2081               l_Item_rec.SEGMENT14                      := m_Item_rec.SEGMENT14;
2082 	      l_update_child_rec := TRUE;
2083 	   END IF;
2084         ELSIF ( l_Attribute_Code = 'SEGMENT15') THEN
2085 	   IF (NVL(l_Item_rec.SEGMENT15,'!')  <> NVL(m_Item_rec.SEGMENT15,'!')) THEN
2086               l_Item_rec.SEGMENT15                      := m_Item_rec.SEGMENT15 ;
2087 	      l_update_child_rec := TRUE;
2088 	   END IF;
2089         ELSIF ( l_Attribute_Code = 'SEGMENT16') THEN
2090 	   IF (NVL(l_Item_rec.SEGMENT16,'!')  <> NVL(m_Item_rec.SEGMENT16,'!')) THEN
2091               l_Item_rec.SEGMENT16                      := m_Item_rec.SEGMENT16 ;
2092 	      l_update_child_rec := TRUE;
2093 	   END IF;
2094         ELSIF ( l_Attribute_Code = 'SEGMENT17') THEN
2095 	   IF (NVL(l_Item_rec.SEGMENT17,'!')  <> NVL(m_Item_rec.SEGMENT17,'!')) THEN
2096               l_Item_rec.SEGMENT17                      := m_Item_rec.SEGMENT17 ;
2097 	      l_update_child_rec := TRUE;
2098 	   END IF;
2099         ELSIF ( l_Attribute_Code = 'SEGMENT18') THEN
2100 	   IF (NVL(l_Item_rec.SEGMENT18,'!')  <> NVL(m_Item_rec.SEGMENT18,'!')) THEN
2101               l_Item_rec.SEGMENT18                      := m_Item_rec.SEGMENT18 ;
2102 	      l_update_child_rec := TRUE;
2103 	   END IF;
2104         ELSIF ( l_Attribute_Code = 'SEGMENT19') THEN
2105 	   IF (NVL(l_Item_rec.SEGMENT19,'!')  <> NVL(m_Item_rec.SEGMENT19,'!')) THEN
2106               l_Item_rec.SEGMENT19                      := m_Item_rec.SEGMENT19 ;
2107 	      l_update_child_rec := TRUE;
2108 	   END IF;
2109         ELSIF ( l_Attribute_Code = 'SEGMENT20') THEN
2110 	   IF (NVL(l_Item_rec.SEGMENT20,'!')  <> NVL(m_Item_rec.SEGMENT20,'!')) THEN
2111               l_Item_rec.SEGMENT20                      := m_Item_rec.SEGMENT20 ;
2112 	      l_update_child_rec := TRUE;
2113 	   END IF;
2114         ELSIF ( l_Attribute_Code = 'DUAL_UOM_CONTROL') THEN
2115 	    IF (NVL(l_Item_rec.DUAL_UOM_CONTROL,-999999)  <> NVL(m_Item_rec.DUAL_UOM_CONTROL,-999999)) THEN
2116                l_Item_rec.DUAL_UOM_CONTROL := m_Item_rec.DUAL_UOM_CONTROL;
2117 	       l_update_child_rec := TRUE;
2118 	    END IF;
2119         ELSIF ( l_Attribute_Code = 'SECONDARY_UOM_CODE') THEN
2120 	    IF (NVL(l_Item_rec.SECONDARY_UOM_CODE,'!')  <> NVL(m_Item_rec.SECONDARY_UOM_CODE,'!')) THEN
2121                l_Item_rec.SECONDARY_UOM_CODE := m_Item_rec.SECONDARY_UOM_CODE;
2122 	       l_update_child_rec := TRUE;
2123 	    END IF;
2124         ELSIF ( l_Attribute_Code = 'DUAL_UOM_DEVIATION_HIGH') THEN
2125 	    IF (NVL(l_Item_rec.DUAL_UOM_DEVIATION_HIGH,-999999)  <> NVL(m_Item_rec.DUAL_UOM_DEVIATION_HIGH,-999999)) THEN
2126                l_Item_rec.DUAL_UOM_DEVIATION_HIGH := m_Item_rec.DUAL_UOM_DEVIATION_HIGH;
2127 	       l_update_child_rec := TRUE;
2128 	    END IF;
2129         ELSIF ( l_Attribute_Code = 'DUAL_UOM_DEVIATION_LOW') THEN
2130 	    IF (NVL(l_Item_rec.DUAL_UOM_DEVIATION_LOW,-999999)  <> NVL(m_Item_rec.DUAL_UOM_DEVIATION_LOW,-999999)) THEN
2131                l_Item_rec.DUAL_UOM_DEVIATION_LOW := m_Item_rec.DUAL_UOM_DEVIATION_LOW;
2132 	       l_update_child_rec := TRUE;
2133 	    END IF;
2134         ELSIF ( l_Attribute_Code = 'ALLOWED_UNITS_LOOKUP_CODE') THEN
2135 	   IF (NVL(l_Item_rec.ALLOWED_UNITS_LOOKUP_CODE,-999999)  <> NVL(m_Item_rec.ALLOWED_UNITS_LOOKUP_CODE,-999999)) THEN
2136               l_Item_rec.ALLOWED_UNITS_LOOKUP_CODE      := m_Item_rec.ALLOWED_UNITS_LOOKUP_CODE;
2137 	      l_update_child_rec := TRUE;
2138 	   END IF;
2139         ELSIF ( l_Attribute_Code = 'TRACKING_QUANTITY_IND') THEN
2140 	    IF NVL(l_Item_rec.TRACKING_QUANTITY_IND,'!')  <> NVL(m_Item_rec.TRACKING_QUANTITY_IND,'!') THEN
2141                l_Item_rec.TRACKING_QUANTITY_IND     :=  m_Item_rec.TRACKING_QUANTITY_IND;
2142 	       l_update_child_rec := TRUE;
2143 	    END IF;
2144         ELSIF ( l_Attribute_Code = 'ONT_PRICING_QTY_SOURCE') THEN
2145 	    IF (NVL(l_Item_rec.ONT_PRICING_QTY_SOURCE,'!')  <> NVL(m_Item_rec.ONT_PRICING_QTY_SOURCE,'!')) THEN
2146                l_Item_rec.ONT_PRICING_QTY_SOURCE    :=  m_Item_rec.ONT_PRICING_QTY_SOURCE;
2147 	       l_update_child_rec := TRUE;
2148 	    END IF;
2149         ELSIF ( l_Attribute_Code = 'SECONDARY_DEFAULT_IND') THEN
2150 	    IF (NVL(l_Item_rec.SECONDARY_DEFAULT_IND,'!')  <> NVL(m_Item_rec.SECONDARY_DEFAULT_IND,'!')) THEN
2151                l_Item_rec.SECONDARY_DEFAULT_IND     :=  m_Item_rec.SECONDARY_DEFAULT_IND;
2152 	       l_update_child_rec := TRUE;
2153 	    END IF;
2154 
2155           --110
2156         ELSIF ( l_Attribute_Code = 'NEW_REVISION_CODE') THEN
2157 	   IF (NVL(l_Item_rec.NEW_REVISION_CODE,'!')  <> NVL(m_Item_rec.NEW_REVISION_CODE,'!')) THEN
2158               l_Item_rec.NEW_REVISION_CODE              := m_Item_rec.NEW_REVISION_CODE;
2159 	      l_update_child_rec := TRUE;
2160 	   END IF;
2161         ELSIF ( l_Attribute_Code = 'BASE_WARRANTY_SERVICE_ID') THEN
2162 	   IF (NVL(l_Item_rec.BASE_WARRANTY_SERVICE_ID,-999999)  <> NVL(m_Item_rec.BASE_WARRANTY_SERVICE_ID,-999999)) THEN
2163               l_Item_rec.BASE_WARRANTY_SERVICE_ID       := m_Item_rec.BASE_WARRANTY_SERVICE_ID;
2164 	      l_update_child_rec := TRUE;
2165 	   END IF;
2166         ELSIF ( l_Attribute_Code = 'PRIMARY_SPECIALIST_ID') THEN
2167 	   IF (NVL(l_Item_rec.PRIMARY_SPECIALIST_ID,-999999)  <> NVL(m_Item_rec.PRIMARY_SPECIALIST_ID,-999999)) THEN
2168               l_Item_rec.PRIMARY_SPECIALIST_ID          := m_Item_rec.PRIMARY_SPECIALIST_ID;
2169 	      l_update_child_rec := TRUE;
2170 	   END IF;
2171         ELSIF ( l_Attribute_Code = 'SECONDARY_SPECIALIST_ID') THEN
2172 	   IF (NVL(l_Item_rec.SECONDARY_SPECIALIST_ID,-999999)  <> NVL(m_Item_rec.SECONDARY_SPECIALIST_ID,-999999)) THEN
2173               l_Item_rec.SECONDARY_SPECIALIST_ID        := m_Item_rec.SECONDARY_SPECIALIST_ID;
2174 	      l_update_child_rec := TRUE;
2175 	   END IF;
2176         ELSIF ( l_Attribute_Code = 'SERVICEABLE_COMPONENT_FLAG') THEN
2177 	   IF (NVL(l_Item_rec.SERVICEABLE_COMPONENT_FLAG,'!')  <> NVL(m_Item_rec.SERVICEABLE_COMPONENT_FLAG,'!')) THEN
2178               l_Item_rec.SERVICEABLE_COMPONENT_FLAG     := m_Item_rec.SERVICEABLE_COMPONENT_FLAG;
2179 	      l_update_child_rec := TRUE;
2180 	   END IF;
2181         ELSIF ( l_Attribute_Code = 'SERVICEABLE_ITEM_CLASS_ID') THEN
2182 	   IF (NVL(l_Item_rec.SERVICEABLE_ITEM_CLASS_ID,-999999)  <> NVL(m_Item_rec.SERVICEABLE_ITEM_CLASS_ID,-999999)) THEN
2183               l_Item_rec.SERVICEABLE_ITEM_CLASS_ID      := m_Item_rec.SERVICEABLE_ITEM_CLASS_ID;
2184 	      l_update_child_rec := TRUE;
2185 	   END IF;
2186         ELSIF ( l_Attribute_Code = 'SERVICEABLE_PRODUCT_FLAG') THEN
2187 	   IF (NVL(l_Item_rec.SERVICEABLE_PRODUCT_FLAG,'!')  <> NVL(m_Item_rec.SERVICEABLE_PRODUCT_FLAG,'!')) THEN
2188               l_Item_rec.SERVICEABLE_PRODUCT_FLAG       := m_Item_rec.SERVICEABLE_PRODUCT_FLAG;
2189 	      l_update_child_rec := TRUE;
2190 	   END IF;
2191         ELSIF ( l_Attribute_Code = 'SERVICE_STARTING_DELAY') THEN
2192 	   IF (NVL(l_Item_rec.SERVICE_STARTING_DELAY,-999999)  <> NVL(m_Item_rec.SERVICE_STARTING_DELAY,-999999)) THEN
2193               l_Item_rec.SERVICE_STARTING_DELAY         := m_Item_rec.SERVICE_STARTING_DELAY;
2194 	      l_update_child_rec := TRUE;
2195 	   END IF;
2196 
2197           --Process Manufacturing Attribute Group
2198         ELSIF ( l_Attribute_Code = 'RECIPE_ENABLED_FLAG') THEN
2199 	   IF (NVL(l_Item_rec.RECIPE_ENABLED_FLAG,'!')  <> NVL(m_Item_rec.RECIPE_ENABLED_FLAG,'!')) THEN
2200               l_Item_rec.RECIPE_ENABLED_FLAG         := m_Item_rec.RECIPE_ENABLED_FLAG;
2201 	      l_update_child_rec := TRUE;
2202 	   END IF;
2203         ELSIF ( l_Attribute_Code = 'CAS_NUMBER') THEN
2204 	   IF (NVL(l_Item_rec.CAS_NUMBER,'!')  <> NVL(m_Item_rec.CAS_NUMBER,'!')) THEN
2205               l_Item_rec.CAS_NUMBER         := m_Item_rec.CAS_NUMBER;
2206 	      l_update_child_rec := TRUE;
2207 	   END IF;
2208         ELSIF ( l_Attribute_Code = 'HAZARDOUS_MATERIAL_FLAG') THEN
2209 	   IF (NVL(l_Item_rec.HAZARDOUS_MATERIAL_FLAG,'!')  <> NVL(m_Item_rec.HAZARDOUS_MATERIAL_FLAG,'!')) THEN
2210               l_Item_rec.HAZARDOUS_MATERIAL_FLAG         := m_Item_rec.HAZARDOUS_MATERIAL_FLAG;
2211 	      l_update_child_rec := TRUE;
2212 	   END IF;
2213         ELSIF ( l_Attribute_Code = 'PROCESS_COSTING_ENABLED_FLAG') THEN
2214 	   IF (NVL(l_Item_rec.PROCESS_COSTING_ENABLED_FLAG,'!')  <> NVL(m_Item_rec.PROCESS_COSTING_ENABLED_FLAG,'!')) THEN
2215               l_Item_rec.PROCESS_COSTING_ENABLED_FLAG         := m_Item_rec.PROCESS_COSTING_ENABLED_FLAG;
2216 	      l_update_child_rec := TRUE;
2217 	   END IF;
2218         ELSIF ( l_Attribute_Code = 'PROCESS_EXECUTION_ENABLED_FLAG') THEN
2219 	   IF (NVL(l_Item_rec.PROCESS_EXECUTION_ENABLED_FLAG,'!')  <> NVL(m_Item_rec.PROCESS_EXECUTION_ENABLED_FLAG,'!')) THEN
2220               l_Item_rec.PROCESS_EXECUTION_ENABLED_FLAG         := m_Item_rec.PROCESS_EXECUTION_ENABLED_FLAG;
2221 	      l_update_child_rec := TRUE;
2222 	   END IF;
2223         ELSIF ( l_Attribute_Code = 'PROCESS_QUALITY_ENABLED_FLAG') THEN
2224 	   IF (NVL(l_Item_rec.PROCESS_QUALITY_ENABLED_FLAG,'!')  <> NVL(m_Item_rec.PROCESS_QUALITY_ENABLED_FLAG,'!')) THEN
2225               l_Item_rec.PROCESS_QUALITY_ENABLED_FLAG         := m_Item_rec.PROCESS_QUALITY_ENABLED_FLAG;
2226 	      l_update_child_rec := TRUE;
2227 	   END IF;
2228         ELSIF ( l_Attribute_Code = 'PROCESS_SUPPLY_LOCATOR_ID') THEN
2229 	   IF (NVL(l_Item_rec.PROCESS_SUPPLY_LOCATOR_ID,-999999)  <> NVL(m_Item_rec.PROCESS_SUPPLY_LOCATOR_ID,-999999)) THEN
2230               l_Item_rec.PROCESS_SUPPLY_LOCATOR_ID         := m_Item_rec.PROCESS_SUPPLY_LOCATOR_ID;
2231 	      l_update_child_rec := TRUE;
2232 	   END IF;
2233         ELSIF ( l_Attribute_Code = 'PROCESS_SUPPLY_SUBINVENTORY') THEN
2234 	   IF (NVL(l_Item_rec.PROCESS_SUPPLY_SUBINVENTORY,'!')  <> NVL(m_Item_rec.PROCESS_SUPPLY_SUBINVENTORY,'!')) THEN
2235               l_Item_rec.PROCESS_SUPPLY_SUBINVENTORY         := m_Item_rec.PROCESS_SUPPLY_SUBINVENTORY;
2236 	      l_update_child_rec := TRUE;
2237 	   END IF;
2238         ELSIF ( l_Attribute_Code = 'PROCESS_YIELD_LOCATOR_ID') THEN
2239 	   IF (NVL(l_Item_rec.PROCESS_YIELD_LOCATOR_ID,-999999)  <> NVL(m_Item_rec.PROCESS_YIELD_LOCATOR_ID,-999999)) THEN
2240               l_Item_rec.PROCESS_YIELD_LOCATOR_ID         := m_Item_rec.PROCESS_YIELD_LOCATOR_ID;
2241 	      l_update_child_rec := TRUE;
2242 	   END IF;
2243         ELSIF ( l_Attribute_Code = 'PROCESS_YIELD_SUBINVENTORY') THEN
2244 	   IF (NVL(l_Item_rec.PROCESS_YIELD_SUBINVENTORY,'!')  <> NVL(m_Item_rec.PROCESS_YIELD_SUBINVENTORY,'!')) THEN
2245               l_Item_rec.PROCESS_YIELD_SUBINVENTORY         := m_Item_rec.PROCESS_YIELD_SUBINVENTORY;
2246 	      l_update_child_rec := TRUE;
2247 	   END IF;
2248 	-- Fix for Bug#6644711
2249         ELSIF ( l_Attribute_Code = 'DEFAULT_MATERIAL_STATUS_ID') THEN
2250 	   IF (NVL(l_Item_rec.DEFAULT_MATERIAL_STATUS_ID,-999999)  <> NVL(m_Item_rec.DEFAULT_MATERIAL_STATUS_ID,-999999)) THEN
2251               l_Item_rec.DEFAULT_MATERIAL_STATUS_ID := m_Item_rec.DEFAULT_MATERIAL_STATUS_ID;
2252 	      l_update_child_rec := TRUE;
2253 	   END IF;
2254       --Start: 5365622
2255         ELSIF ( l_Attribute_Code = 'ITEM_TYPE') THEN
2256 	   IF (NVL(l_Item_rec.ITEM_TYPE,'!')  <> NVL(m_Item_rec.ITEM_TYPE,'!')) THEN
2257               l_Item_rec.ITEM_TYPE       := m_Item_rec.ITEM_TYPE;
2258 	      l_update_child_rec := TRUE;
2259 	   END IF;
2260       -- End: 5365622
2261 
2262         -- Derived Service attribute columns get updated in INV_ITEM_API.Update_Item_Row.
2263         --ELSIF ( l_Attribute_Code = 'SERVICE_ITEM_FLAG'           ) THEN
2264         --    l_Item_rec.SERVICE_ITEM_FLAG          :=  m_Item_rec.SERVICE_ITEM_FLAG;
2265         --ELSIF ( l_Attribute_Code = 'VENDOR_WARRANTY_FLAG'        ) THEN
2266         --    l_Item_rec.VENDOR_WARRANTY_FLAG       :=  m_Item_rec.VENDOR_WARRANTY_FLAG;
2267         --ELSIF ( l_Attribute_Code = 'USAGE_ITEM_FLAG'             ) THEN
2268         --    l_Item_rec.USAGE_ITEM_FLAG            :=  m_Item_rec.USAGE_ITEM_FLAG;
2269         --
2270 
2271 /*11.5.10        ELSIF ( l_Attribute_Code = 'SUBSCRIPTION_DEPEND_FLAG'    ) THEN
2272             l_Item_rec.SUBSCRIPTION_DEPEND_FLAG   :=  m_Item_rec.SUBSCRIPTION_DEPEND_FLAG;
2273 */
2274 
2275 /*11.5.10        ELSIF ( l_Attribute_Code = 'SERV_IMPORTANCE_LEVEL'       ) THEN
2276             l_Item_rec.SERV_IMPORTANCE_LEVEL      :=  m_Item_rec.SERV_IMPORTANCE_LEVEL;
2277 */
2278         ELSIF ( l_Attribute_Code = 'DESC_FLEX' ) THEN
2279            --------------------------------------------------------------------------
2280            -- Currently only Org control level is allowed for descriptive flexfield.
2281            -- When Master control is allowed, add logic to copy ATTRIBUTE[1-15].
2282            --------------------------------------------------------------------------
2283            NULL;
2284         ELSIF ( l_Attribute_Code = 'GLOBAL_DESC_FLEX' ) THEN
2285            NULL;
2286 
2287         ELSE
2288            --------------------------
2289            -- Invalid attribute code
2290            --------------------------
2291            x_return_status := FND_API.g_RET_STS_UNEXP_ERROR;
2292 
2293            FND_MESSAGE.Set_Name ('INV', 'INV_INVALID_ATTRIBUTE_CODE');
2294            FND_MESSAGE.Set_Token ('PACKAGE_NAME', G_PKG_NAME);
2295            FND_MESSAGE.Set_Token ('PROCEDURE_NAME', l_api_name);
2296            FND_MESSAGE.Set_Token ('ATTRIBUTE_CODE', l_Attribute_Code);
2297            FND_MSG_PUB.Add;
2298         --   RETURN;
2299            RAISE FND_API.g_EXC_UNEXPECTED_ERROR;
2300 
2301         END IF;  -- ( l_Attribute_Code = ... )
2302 
2303         -- Copy attributes done by code above.
2304         /*
2305            INV_ITEM_Lib.copy_Attribute
2306            (
2307                p_Attribute_Code  =>  l_Attribute_Code
2308            ,   p_Item_rec        =>  m_Item_rec
2309            ,   x_Item_rec        =>  l_Item_rec
2310            ,   x_return_status   =>  l_return_status
2311            );
2312 
2313            x_return_status := l_return_status;
2314            IF ( l_return_status = FND_API.g_RET_STS_ERROR ) THEN
2315               RAISE FND_API.g_EXC_ERROR;
2316            ELSIF ( l_return_status = FND_API.g_RET_STS_UNEXP_ERROR ) THEN
2317               RAISE FND_API.g_EXC_UNEXPECTED_ERROR;
2318            END IF;
2319         */
2320 
2321      END LOOP;  -- loop through item attributes
2322      l_Item_rec.OPTION_SPECIFIC_SOURCED   :=  m_Item_rec.OPTION_SPECIFIC_SOURCED; --11.5.10
2323      -------------------------------------------
2324 
2325      -- Copy WHO update column information
2326      IF l_update_child_rec = TRUE THEN
2327         l_Item_rec.LAST_UPDATE_DATE  := m_Item_rec.LAST_UPDATE_DATE;
2328         l_Item_rec.LAST_UPDATED_BY   := m_Item_rec.LAST_UPDATED_BY;
2329         l_Item_rec.LAST_UPDATE_LOGIN := m_Item_rec.LAST_UPDATE_LOGIN;
2330      END IF;
2331      -------------------------
2332      -- Org Item validation --
2333      -------------------------
2334 
2335 /*
2336      INV_ITEM_PVT.Validate_Item
2337      (
2338          p_validation_level  =>  p_validation_level
2339      ,   p_Item_rec          =>  l_Item_rec
2340      ,   x_return_status     =>  l_return_status
2341      ,   x_msg_count         =>  x_msg_count
2342      ,   x_msg_data          =>  x_msg_data
2343      );
2344 */
2345      OPEN org_parameters_csr(l_item_rec.organization_id);
2346      FETCH org_parameters_csr INTO l_process_enabled, l_wms_enabled,
2347                                    l_eam_enabled,l_primary_cost_method,
2348 				   l_trading_partner_org;
2349      CLOSE org_parameters_csr;
2350 
2351      INVIDIT3.VMI_Table_Queries(
2352            P_org_id                =>  l_Item_rec.organization_id
2353          , P_item_id               =>  l_Item_rec.inventory_item_id
2354          , X_vmiorconsign_enabled  =>  l_vmiorconsign_enabled
2355          , X_consign_enabled	   =>  l_consign_enabled
2356          );
2357 
2358      IF (l_Item_rec.inventory_item_flag ='N' AND
2359          l_Item_rec.stock_enabled_flag ='Y' ) THEN
2360        fnd_message.SET_NAME('INV', 'INVALID_INV_STK_FLAG_COMB');
2361        FND_MSG_PUB.Add;
2362        l_return_status := FND_API.g_RET_STS_ERROR;
2363      ELSIF (l_Item_rec.stock_enabled_flag ='N' AND
2364             l_Item_rec.mtl_transactions_enabled_flag ='Y' )THEN
2365        fnd_message.SET_NAME('INV', 'INVALID_STK_TRX_FLAG_COMB');
2366        FND_MSG_PUB.Add;
2367        l_return_status := FND_API.g_RET_STS_ERROR;
2368      ELSIF (l_Item_rec.purchasing_item_flag ='N' AND
2369             l_Item_rec.purchasing_enabled_flag ='Y' )THEN
2370        fnd_message.SET_NAME('INV', 'INVALID_PI_PE_FLAG_COMB');
2371        FND_MSG_PUB.Add;
2372        l_return_status := FND_API.g_RET_STS_ERROR;
2373      ELSIF (l_Item_rec.customer_order_flag ='N' AND
2374             l_Item_rec.customer_order_enabled_flag ='Y' )THEN
2375        fnd_message.SET_NAME('INV', 'INVALID_CO_COE_FLAG_COMB');
2376        FND_MSG_PUB.Add;
2377        l_return_status := FND_API.g_RET_STS_ERROR;
2378 
2379      -- Added for Bug 5443289
2380      ELSIF (l_Item_rec.bom_item_type IN (3,5) AND
2381             l_Item_rec.customer_order_flag ='Y' )THEN
2382        fnd_message.SET_NAME('INV', 'INV_CUSTOMER');
2383        FND_MSG_PUB.Add;
2384        l_return_status := FND_API.g_RET_STS_ERROR;
2385      -- End of Bug 5443289
2386 
2387      ELSIF (l_Item_rec.internal_order_flag ='N' AND
2388             l_Item_rec.internal_order_enabled_flag ='Y' )THEN
2389        fnd_message.SET_NAME('INV', 'INVALID_IO_IOE_FLAG_COMB');
2390        FND_MSG_PUB.Add;
2391        l_return_status := FND_API.g_RET_STS_ERROR;
2392 /** Bug: 3546140 Removed for PLM RBOM
2393      ELSIF (l_Item_rec.inventory_item_flag = 'N' AND
2394             l_Item_rec.contract_item_type_code IS NULL AND
2395             l_Item_rec.bom_enabled_flag = 'Y') THEN
2396        fnd_message.SET_NAME ('INV', 'INV_ITEM_MASTER_CTRL_ATTR_ERR');
2397        fnd_message.SET_TOKEN ('ERROR_MESSAGE_NAME', 'INV_BOM_ENABLED', TRUE);
2398        FND_MSG_PUB.Add;
2399        l_return_status := FND_API.g_RET_STS_ERROR;
2400 ***/
2401      ELSIF ( ( l_item_rec.inventory_item_flag = 'N'
2402            OR  l_item_rec.bom_item_type <> 4 )
2403            AND l_Item_rec.build_in_wip_flag ='Y' ) THEN
2404        FND_MESSAGE.Set_Name ('INV', 'INVALID_INV_WIP_FLAG_COMB');
2405        FND_MSG_PUB.Add;
2406        l_return_status := FND_API.g_RET_STS_ERROR;
2407 
2408      ELSIF ( l_Item_rec.EFFECTIVITY_CONTROL = 2 ) AND
2409            ( l_Item_rec.SERIAL_NUMBER_CONTROL_CODE NOT IN (2, 5) ) THEN
2410         fnd_message.SET_NAME('INV', 'ITM-EFFC-INVALID SERIAL CTRL-2');
2411         FND_MSG_PUB.Add;
2412         l_return_status := FND_API.g_RET_STS_ERROR;
2413 
2414      ELSIF (l_Item_rec.serviceable_product_flag = 'Y' AND
2415             nvl(l_Item_rec.comms_nl_trackable_flag,'N') = 'N') THEN
2416        fnd_message.SET_NAME ('INV', 'INV_ITEM_MASTER_CTRL_ATTR_ERR');
2417        fnd_message.SET_TOKEN ('ERROR_MESSAGE_NAME', 'INV_IB_TRACKING_SERVICEABLE', TRUE);
2418        FND_MSG_PUB.Add;
2419        l_return_status := FND_API.g_RET_STS_ERROR;
2420 --Added for 11.5.10 validations
2421      ELSIF ( (l_vmiorconsign_enabled = 1 AND
2422             (NVL(l_Item_rec.outside_operation_flag,'N') = 'Y' OR
2423 	     l_Item_rec.eam_item_type IS NOT NULL OR
2424              NVL(l_Item_rec.mtl_transactions_enabled_flag,'N') = 'N' OR
2425              NVL(l_Item_rec.stock_enabled_flag,'N') = 'N'))
2426             OR
2427 	    (l_consign_enabled = 1 AND NVL(l_Item_rec.inventory_asset_flag,'N') = 'N')
2428             ) THEN
2429                 fnd_message.SET_NAME ('INV', 'INV_INVALID_VMI_COMB');
2430                 FND_MSG_PUB.Add;
2431                 l_return_status := FND_API.g_RET_STS_ERROR;
2432 
2433      /* R12 Attribute validations -Anmurali */
2434      /*           Inventory Attribute Group         */
2435 
2436      /* Changing this validation to exclude Process Org check -Bug 4902120 */
2437      ELSIF ((l_item_rec.bom_enabled_flag = 'Y' OR l_item_rec.bom_item_type IN (1,2)) AND
2438              l_item_rec.tracking_quantity_ind = 'PS') THEN
2439 	 fnd_message.SET_NAME ('INV', 'INV_ITEM_MASTER_CTRL_ATTR_ERR');
2440          fnd_message.SET_TOKEN ('ERROR_MESSAGE_NAME', 'INV_TRACKING_OPM_BOM_ATTR', TRUE);
2441 	 FND_MSG_PUB.Add;
2442          l_return_status := FND_API.g_RET_STS_ERROR;
2443 
2444      ELSIF ( l_item_rec.lot_control_code = 1 AND l_item_rec.grade_control_flag = 'Y' ) THEN
2445          fnd_message.SET_NAME ('INV', 'INV_ITEM_MASTER_CTRL_ATTR_ERR');
2446          fnd_message.SET_TOKEN ('ERROR_MESSAGE_NAME', 'INV_INVALID_GRADE_CONTROL', TRUE);
2447 	 FND_MSG_PUB.Add;
2448          l_return_status := FND_API.g_RET_STS_ERROR;
2449 
2450      ELSIF ( l_item_rec.grade_control_flag = 'N' AND l_item_rec.default_grade IS NOT NULL ) THEN
2451          fnd_message.SET_NAME ('INV', 'INV_ITEM_MASTER_CTRL_ATTR_ERR');
2452          fnd_message.SET_TOKEN ('ERROR_MESSAGE_NAME', 'INV_INVALID_DEFAULT_GRADE_NULL', TRUE);
2453 	 FND_MSG_PUB.Add;
2454          l_return_status := FND_API.g_RET_STS_ERROR;
2455 
2456     ELSIF ( l_item_rec.lot_control_code = 1 AND l_item_rec.lot_divisible_flag = 'Y' ) THEN
2457          fnd_message.SET_NAME ('INV', 'INV_ITEM_MASTER_CTRL_ATTR_ERR');
2458          fnd_message.SET_TOKEN ('ERROR_MESSAGE_NAME', 'INV_INVALID_LOT_DIVISIBLE', TRUE);
2459 	 FND_MSG_PUB.Add;
2460          l_return_status := FND_API.g_RET_STS_ERROR;
2461 
2462     ELSIF ( l_item_rec.lot_control_code = 1 AND l_item_rec.lot_split_enabled = 'Y' ) THEN
2463          fnd_message.SET_NAME ('INV', 'INV_ITEM_MASTER_CTRL_ATTR_ERR');
2464          fnd_message.SET_TOKEN ('ERROR_MESSAGE_NAME', 'INV_INVALID_LOT_SPLIT_ENABLED', TRUE);
2465 	 FND_MSG_PUB.Add;
2466          l_return_status := FND_API.g_RET_STS_ERROR;
2467 
2468     ELSIF ( l_item_rec.lot_control_code = 1 AND l_item_rec.child_lot_flag = 'Y' ) THEN
2469          fnd_message.SET_NAME ('INV', 'INV_ITEM_MASTER_CTRL_ATTR_ERR');
2470          fnd_message.SET_TOKEN ('ERROR_MESSAGE_NAME', 'INV_INVALID_CHILD_LOT_FLAG', TRUE);
2471 	 FND_MSG_PUB.Add;
2472          l_return_status := FND_API.g_RET_STS_ERROR;
2473 
2474 	    /*          Asset Management Attribute Group         */
2475 
2476     ELSIF (( l_item_rec.eam_item_type = 1 OR
2477             (l_item_rec.eam_item_type = 3 AND l_item_rec.serial_number_control_code <> 1 )) AND
2478         NVL(l_item_rec.comms_nl_trackable_flag , 'N') <> 'Y') THEN
2479          fnd_message.SET_NAME ('INV', 'INV_ITEM_MASTER_CTRL_ATTR_ERR');
2480          fnd_message.SET_TOKEN ('ERROR_MESSAGE_NAME', 'INV_EAM_IB_TRACKABLE', TRUE);
2481 	 FND_MSG_PUB.Add;
2482          l_return_status := FND_API.g_RET_STS_ERROR;
2483 
2484     ELSIF ( l_item_rec.eam_item_type = 2 AND l_item_rec.serial_number_control_code <> 1 ) THEN
2485          fnd_message.SET_NAME ('INV', 'INV_ITEM_MASTER_CTRL_ATTR_ERR');
2486          fnd_message.SET_TOKEN ('ERROR_MESSAGE_NAME', 'INV_EAM_ACTIVITY_NEVER_SERIAL', TRUE);
2487 	 FND_MSG_PUB.Add;
2488          l_return_status := FND_API.g_RET_STS_ERROR;
2489 
2490     ELSIF ( l_item_rec.eam_item_type = 1 AND l_item_rec.serial_number_control_code NOT IN (2,5) ) THEN
2491          fnd_message.SET_NAME ('INV', 'INV_ITEM_MASTER_CTRL_ATTR_ERR');
2492          fnd_message.SET_TOKEN ('ERROR_MESSAGE_NAME', 'INV_EAM_ASSET_GRP_NO_SERIAL', TRUE);
2493 	 FND_MSG_PUB.Add;
2494          l_return_status := FND_API.g_RET_STS_ERROR;
2495 
2496     ELSIF ( l_item_rec.eam_item_type = 1 AND l_item_rec.effectivity_control <> 2 ) THEN
2497          fnd_message.SET_NAME ('INV', 'INV_ITEM_MASTER_CTRL_ATTR_ERR');
2498          fnd_message.SET_TOKEN ('ERROR_MESSAGE_NAME', 'INV_EAM_ASSET_UNIT_CONTROL', TRUE);
2499 	 FND_MSG_PUB.Add;
2500          l_return_status := FND_API.g_RET_STS_ERROR;
2501 
2502 	    /*         Purchasing Attribute Group         */
2503 
2504     ELSIF (   l_item_rec.purchasing_tax_code IS NOT NULL AND
2505           NVL(l_item_rec.taxable_flag,'N') <> 'Y') THEN
2506          fnd_message.SET_NAME ('INV', 'INV_ITEM_MASTER_CTRL_ATTR_ERR');
2507          fnd_message.SET_TOKEN ('ERROR_MESSAGE_NAME', 'INV_NOT_TAXABLE_ITEM', TRUE);
2508 	 FND_MSG_PUB.Add;
2509          l_return_status := FND_API.g_RET_STS_ERROR;
2510 
2511     ELSIF ( l_item_rec.outsourced_assembly = 1 AND
2512            (l_process_enabled = 'Y' OR l_wms_enabled = 'Y' OR l_eam_enabled = 'Y') ) THEN
2513          fnd_message.SET_NAME ('INV', 'INV_ITEM_MASTER_CTRL_ATTR_ERR');
2514          fnd_message.SET_TOKEN ('ERROR_MESSAGE_NAME', 'INV_OS_ASMBLY_INVALID_ORG', TRUE);
2515 	 FND_MSG_PUB.Add;
2516          l_return_status := FND_API.g_RET_STS_ERROR;
2517 
2518     ELSIF ( NVL(l_item_rec.release_time_fence_code,6) <> 7 AND
2519             NVL(l_trading_partner_org,'N') = 'Y' AND
2520 	        l_item_rec.outsourced_assembly = 1 ) THEN
2521          fnd_message.SET_NAME ('INV', 'INV_ITEM_MASTER_CTRL_ATTR_ERR');
2522          fnd_message.SET_TOKEN ('ERROR_MESSAGE_NAME', 'INV_OS_ASMBLY_TP_TIME_FENSE', TRUE);
2523 	 FND_MSG_PUB.Add;
2524          l_return_status := FND_API.g_RET_STS_ERROR;
2525     -- Fix for bug#6447581
2526     -- ELSIF ( l_item_rec.outsourced_assembly = 1 AND l_primary_cost_method <> 1) THEN
2527     --     fnd_message.SET_NAME ('INV', 'INV_ITEM_MASTER_CTRL_ATTR_ERR');
2528     --     fnd_message.SET_TOKEN ('ERROR_MESSAGE_NAME', 'INV_OS_ASMBLY_STD_COST_ORG', TRUE);
2529     --	 FND_MSG_PUB.Add;
2530     --     l_return_status := FND_API.g_RET_STS_ERROR;
2531 
2532     ELSIF ( l_item_rec.outsourced_assembly = 1 AND
2533           NOT(l_item_rec.bom_item_type = 4 AND l_item_rec.effectivity_control = 1) ) THEN
2534          fnd_message.SET_NAME ('INV', 'INV_ITEM_MASTER_CTRL_ATTR_ERR');
2535          fnd_message.SET_TOKEN ('ERROR_MESSAGE_NAME', 'INV_OS_ASMBLY_INVALID_BOM_ATTR', TRUE);
2536 	 FND_MSG_PUB.Add;
2537          l_return_status := FND_API.g_RET_STS_ERROR;
2538 
2539     ELSIF ( l_item_rec.outsourced_assembly = 1 AND l_item_rec.outside_operation_flag = 'Y') THEN
2540          fnd_message.SET_NAME ('INV', 'INV_ITEM_MASTER_CTRL_ATTR_ERR');
2541          fnd_message.SET_TOKEN ('ERROR_MESSAGE_NAME', 'INV_OS_ASMBLY_OUTSIDE_OPRN', TRUE);
2542 	 FND_MSG_PUB.Add;
2543          l_return_status := FND_API.g_RET_STS_ERROR;
2544 
2545     ELSIF ( l_item_rec.outsourced_assembly = 1 AND
2546           ( l_item_rec.internal_order_flag ='Y' OR l_item_rec.internal_order_enabled_flag = 'Y' OR
2547 	    l_item_rec.pick_components_flag = 'Y' OR l_item_rec.replenish_to_order_flag = 'Y' ) ) THEN
2548          fnd_message.SET_NAME ('INV', 'INV_ITEM_MASTER_CTRL_ATTR_ERR');
2549          fnd_message.SET_TOKEN ('ERROR_MESSAGE_NAME', 'INV_OS_ASMBLY_INVALID_OM_ATTR', TRUE);
2550 	 FND_MSG_PUB.Add;
2551          l_return_status := FND_API.g_RET_STS_ERROR;
2552 
2553 	       /*           General Planning Attribute Group       */
2554 
2555     ELSIF ( l_item_rec.mrp_safety_stock_code <> 1 AND
2556             l_item_rec.drp_planned_flag = 2 AND
2557 	    l_item_rec.mrp_planning_code IN (6,9) ) THEN
2558          fnd_message.SET_NAME ('INV', 'INV_ITEM_MASTER_CTRL_ATTR_ERR');
2559          fnd_message.SET_TOKEN ('ERROR_MESSAGE_NAME', 'INV_SAFETY_STOCK', TRUE);
2560 	 FND_MSG_PUB.Add;
2561          l_return_status := FND_API.g_RET_STS_ERROR;
2562 
2563     ELSIF ( l_item_rec.subcontracting_component IN (2,3) AND
2564        (NOT (l_process_enabled = 'N' AND
2565             l_wms_enabled     = 'N' AND
2566             l_eam_enabled     = 'N' ) ) ) THEN
2567          fnd_message.SET_NAME ('INV', 'INV_ITEM_MASTER_CTRL_ATTR_ERR');
2568          fnd_message.SET_TOKEN ('ERROR_MESSAGE_NAME', 'INV_OS_ASMBLY_INVALID_ORG', TRUE);
2569 	 FND_MSG_PUB.Add;
2570          l_return_status := FND_API.g_RET_STS_ERROR;
2571 
2572     ELSIF ( l_item_rec.subcontracting_component IN (2,3) AND l_primary_cost_method <> 1 ) THEN
2573          fnd_message.SET_NAME ('INV', 'INV_ITEM_MASTER_CTRL_ATTR_ERR');
2574          fnd_message.SET_TOKEN ('ERROR_MESSAGE_NAME', 'INV_OS_ASMBLY_STD_COST_ORG', TRUE);
2575 	 FND_MSG_PUB.Add;
2576          l_return_status := FND_API.g_RET_STS_ERROR;
2577 
2578      END IF;
2579 
2580                /*              Invoicing Attribute Group              */
2581 	                       --* Added for Bug 5207014
2582 
2583      IF l_Item_rec.TAX_CODE IS NOT NULL THEN
2584 	BEGIN
2585 	/* Fix for bug 7162580- Tax Codes are stored at O.U. level, so added a subquery
2586 	   to fetch the operating_unit */
2587        /*Bug 6843376 Modified the query which fetch the Operating unit */
2588           SELECT 1 INTO l_exists
2589             FROM ZX_OUTPUT_CLASSIFICATIONS_V
2590            WHERE lookup_code  = l_item_rec.TAX_CODE
2591              AND enabled_flag = 'Y'
2592              AND SYSDATE BETWEEN NVL(start_date_active, SYSDATE) and NVL(end_date_active, SYSDATE)
2593              AND org_id IN (-99, (SELECT org_information3 FROM  hr_organization_information
2594                                     WHERE ( ORG_INFORMATION_CONTEXT || '') ='Accounting Information'
2595                                      AND ORGANIZATION_ID=l_Item_rec.organization_id))
2596 	     AND rownum = 1;
2597      	EXCEPTION
2598 	  WHEN NO_DATA_FOUND THEN
2599 	     fnd_message.SET_NAME('INV', 'INV_IOI_INVALID_TAX_CODE_ORG');
2600 	     FND_MSG_PUB.Add;
2601   	     l_return_status := FND_API.g_RET_STS_ERROR;
2602         END;
2603      END IF;
2604 	                        --* End of Bug 5207014
2605 
2606      IF l_Item_rec.PURCHASING_TAX_CODE IS NOT NULL THEN
2607 	BEGIN
2608 	/* Fix for bug 7162580- Tax Codes are stored at O.U. level, so added a subquery
2609 	   to fetch the operating_unit */
2610     /*Bug 6843376 Modified the query which fetch the Operating unit */
2611           SELECT 1 INTO l_exists
2612             FROM ZX_INPUT_CLASSIFICATIONS_V
2613            WHERE tax_type not in ('AWT','OFFSET')
2614              AND enabled_flag = 'Y'
2615              AND sysdate between start_date_active and  nvl(end_date_active,sysdate)
2616              AND lookup_code  = l_Item_rec.PURCHASING_TAX_CODE
2617                AND org_id IN (-99, (SELECT org_information3 FROM  hr_organization_information
2618                                      WHERE ( ORG_INFORMATION_CONTEXT || '') ='Accounting Information'
2619                                       AND ORGANIZATION_ID=l_Item_rec.organization_id))
2620 	       AND rownum = 1;
2621      	EXCEPTION
2622 	  WHEN NO_DATA_FOUND THEN
2623 	     fnd_message.SET_NAME('INV', 'INV_IOI_PUR_TAX_CODE');
2624 	     FND_MSG_PUB.Add;
2625   	     l_return_status := FND_API.g_RET_STS_ERROR;
2626         END;
2627      END IF;
2628 
2629 
2630      -- Check for errors
2631      IF ( l_return_status = FND_API.g_RET_STS_ERROR ) THEN
2632         RAISE FND_API.g_EXC_ERROR;
2633      ELSIF ( l_return_status = FND_API.g_RET_STS_UNEXP_ERROR ) THEN
2634         RAISE FND_API.g_EXC_UNEXPECTED_ERROR;
2635      END IF;
2636 
2637      ---------------------------------
2638      -- Update current org item row --
2639      ---------------------------------
2640      IF l_update_child_rec = TRUE THEN
2641 	Set_Is_Master_Attr_Modified('Y'); /*Bug 6407303, Set the parameter */
2642         INV_ITEM_API.Update_Item_Row
2643         (
2644             p_Item_rec          =>  l_Item_rec
2645         ,   p_update_Item_TL    =>  l_update_Item_TL
2646         ,   p_Lang_Flag         =>  l_Lang_Flag
2647         ,   x_return_status     =>  l_return_status
2648         );
2649      END IF;
2650   END LOOP;  -- loop through org items
2651   ------------------------------------
2652 
2653   END IF;  -- p_Org is master
2654   ----------------------------------- p_Org is master ---
2655 
2656   CLOSE INV_ITEM_API.Item_csr;
2657 
2658   IF ( FND_API.to_Boolean (p_commit) ) THEN
2659      COMMIT WORK;
2660   END IF;
2661 
2662   FND_MSG_PUB.Count_And_Get
2663   (   p_count  =>  x_msg_count
2664   ,   p_data   =>  x_msg_data
2665   );
2666 
2667 EXCEPTION
2668 
2669   WHEN FND_API.g_EXC_ERROR THEN
2670 
2671      IF ( INV_ITEM_API.Item_csr%ISOPEN ) THEN
2672         CLOSE INV_ITEM_API.Item_csr;
2673      END IF;
2674 
2675      ROLLBACK TO Update_Org_Items_PVT;
2676      x_return_status := FND_API.g_RET_STS_ERROR;
2677      FND_MSG_PUB.Count_And_Get
2678      (   p_count  =>  x_msg_count
2679      ,   p_data   =>  x_msg_data
2680      );
2681 
2682   WHEN FND_API.g_EXC_UNEXPECTED_ERROR THEN
2683 
2684      IF ( INV_ITEM_API.Item_csr%ISOPEN ) THEN
2685         CLOSE INV_ITEM_API.Item_csr;
2686      END IF;
2687 
2688      ROLLBACK TO Update_Org_Items_PVT;
2689      x_return_status := FND_API.g_RET_STS_UNEXP_ERROR;
2690      FND_MSG_PUB.Count_And_Get
2691      (   p_count  =>  x_msg_count
2692      ,   p_data   =>  x_msg_data
2693      );
2694 
2695   WHEN others THEN
2696 
2697      IF ( INV_ITEM_API.Item_csr%ISOPEN ) THEN
2698         CLOSE INV_ITEM_API.Item_csr;
2699      END IF;
2700 
2701      ROLLBACK TO Update_Org_Items_PVT;
2702      x_return_status := FND_API.g_RET_STS_UNEXP_ERROR;
2703 
2704      IF FND_MSG_PUB.Check_Msg_Level
2705         ( FND_MSG_PUB.g_MSG_LVL_UNEXP_ERROR )
2706      THEN
2707         FND_MSG_PUB.Add_Exc_Msg
2708         (   p_pkg_name         =>  G_PKG_NAME
2709         ,   p_procedure_name   =>  l_api_name
2710         ,   p_error_text       =>  'UNEXP_ERROR : ' || SQLERRM
2711         );
2712      END IF;
2713 
2714      FND_MSG_PUB.Count_And_Get
2715      (   p_count  =>  x_msg_count
2716      ,   p_data   =>  x_msg_data
2717      );
2718 
2719 END Update_Org_Items;
2720 
2721 
2722 /*------------------------------- Get_Org_Item -------------------------------*/
2723 
2724 PROCEDURE Get_Org_Item
2725 (
2726     p_init_msg_list    IN   VARCHAR2       :=  FND_API.g_FALSE
2727 ,   p_Item_ID          IN   NUMBER
2728 ,   p_Org_ID           IN   NUMBER
2729 ,   p_Language         IN   VARCHAR2	   :=  FND_API.g_MISS_CHAR
2730 ,   x_Item_rec         OUT  NOCOPY  INV_ITEM_API.Item_rec_type
2731 ,   x_return_status    OUT  NOCOPY VARCHAR2
2732 ,   x_msg_count        OUT  NOCOPY NUMBER
2733 ,   x_msg_data         OUT  NOCOPY VARCHAR2
2734 )
2735 IS
2736   l_api_name    CONSTANT  VARCHAR2(30)  :=  'Get_Org_Item';
2737 /*
2738   l_Item_ID         NUMBER ;
2739   l_Org_ID          NUMBER ;
2740 
2741   l_return_status   VARCHAR2(1) ;
2742 */
2743 BEGIN
2744 
2745   -- Initialize message list
2746   --
2747   IF ( FND_API.to_Boolean (p_init_msg_list) ) THEN
2748      FND_MSG_PUB.Initialize;
2749   END IF;
2750 
2751   -- Initialize API return status to success
2752   --
2753   x_return_status := FND_API.g_RET_STS_SUCCESS;
2754 
2755   IF ( p_Item_ID IS NULL ) OR
2756      ( p_Org_ID  IS NULL )
2757   THEN
2758      x_return_status := FND_API.g_RET_STS_UNEXP_ERROR;
2759      fnd_message.SET_NAME( 'INV', 'INV_MISS_OrgItem_ID' );
2760      FND_MSG_PUB.Add;
2761      RETURN;
2762   END IF;
2763 
2764 /*
2765   -- Get the translation row
2766   --
2767   IF ( p_Language <> FND_API.g_MISS_CHAR ) THEN
2768 
2769   END IF;
2770 */
2771 
2772   -----------------------------------
2773   -- Open item query on base table --
2774   -----------------------------------
2775 
2776   OPEN INV_ITEM_API.Item_csr
2777        (
2778            p_Item_ID        =>  p_Item_ID
2779        ,   p_Org_ID         =>  p_Org_ID
2780        ,   p_fetch_Master   =>  FND_API.g_TRUE
2781        ,   p_fetch_Orgs     =>  FND_API.g_FALSE
2782        );
2783 
2784   -- Fetch org item row
2785   --
2786   FETCH INV_ITEM_API.Item_csr INTO x_Item_rec;
2787 
2788   IF ( INV_ITEM_API.Item_csr%NOTFOUND ) THEN
2789      CLOSE INV_ITEM_API.Item_csr;
2790      fnd_message.SET_NAME( 'INV', 'INV_Get_Org_Item_notfound' );
2791      FND_MSG_PUB.Add;
2792      RAISE FND_API.g_EXC_UNEXPECTED_ERROR;
2793   END IF;
2794 
2795   CLOSE INV_ITEM_API.Item_csr;
2796 
2797   FND_MSG_PUB.Count_And_Get
2798   (   p_count  =>  x_msg_count
2799   ,   p_data   =>  x_msg_data
2800   );
2801 
2802 EXCEPTION
2803 
2804   WHEN FND_API.g_EXC_ERROR THEN
2805 
2806      IF ( INV_ITEM_API.Item_csr%ISOPEN ) THEN
2807         CLOSE INV_ITEM_API.Item_csr;
2808      END IF;
2809 
2810      x_return_status := FND_API.g_RET_STS_ERROR;
2811      FND_MSG_PUB.Count_And_Get
2812      (   p_count  =>  x_msg_count
2813      ,   p_data   =>  x_msg_data
2814      );
2815 
2816   WHEN FND_API.g_EXC_UNEXPECTED_ERROR THEN
2817 
2818      IF ( INV_ITEM_API.Item_csr%ISOPEN ) THEN
2819         CLOSE INV_ITEM_API.Item_csr;
2820      END IF;
2821 
2822      x_return_status := FND_API.g_RET_STS_UNEXP_ERROR;
2823      FND_MSG_PUB.Count_And_Get
2824      (   p_count  =>  x_msg_count
2825      ,   p_data   =>  x_msg_data
2826      );
2827 
2828   WHEN others THEN
2829 
2830      IF ( INV_ITEM_API.Item_csr%ISOPEN ) THEN
2831         CLOSE INV_ITEM_API.Item_csr;
2832      END IF;
2833 
2834      x_return_status := FND_API.g_RET_STS_UNEXP_ERROR;
2835 
2836      IF FND_MSG_PUB.Check_Msg_Level
2837         ( FND_MSG_PUB.g_MSG_LVL_UNEXP_ERROR )
2838      THEN
2839         FND_MSG_PUB.Add_Exc_Msg
2840         (   p_pkg_name         =>  G_PKG_NAME
2841         ,   p_procedure_name   =>  l_api_name
2842 --        ,   p_error_text       =>  'UNEXP_ERROR : '
2843         );
2844      END IF;
2845 
2846      FND_MSG_PUB.Count_And_Get
2847      (   p_count  =>  x_msg_count
2848      ,   p_data   =>  x_msg_data
2849      );
2850 
2851 END Get_Org_Item;
2852 
2853 
2854 /*------------------------------ Validate_Item -------------------------------*/
2855 
2856 
2857 -- Item record validation is currently performed within Update_Org_Items.
2858 
2859 /*
2860 PROCEDURE Validate_Item
2861 (
2862     p_validation_level  IN   NUMBER         :=  FND_API.g_VALID_LEVEL_FULL
2863 ,   p_Item_rec          IN   INV_ITEM_API.Item_rec_type
2864 ,   x_return_status     OUT  NOCOPY VARCHAR2
2865 ,   x_msg_count         OUT  NOCOPY NUMBER
2866 ,   x_msg_data          OUT  NOCOPY VARCHAR2
2867 )
2868 IS
2869   l_api_name    CONSTANT  VARCHAR2(30)  :=  'Validate_Item';
2870 
2871   l_Item_rec        INV_ITEM_API.Item_rec_type ;
2872   l_Item_ID         NUMBER ;
2873   l_Org_ID          NUMBER ;
2874 
2875   l_return_status   VARCHAR2(1) ;
2876 BEGIN
2877 
2878   l_Item_ID := p_Item_rec.INVENTORY_ITEM_ID ;
2879   l_Org_ID  := p_Item_rec.ORGANIZATION_ID ;
2880 
2881   -- Initialize API return status to success
2882   --
2883   x_return_status := FND_API.g_RET_STS_SUCCESS;
2884 
2885   IF ( l_Item_ID IS NULL ) OR
2886      ( l_Org_ID  IS NULL )
2887   THEN
2888      x_return_status := FND_API.g_RET_STS_UNEXP_ERROR;
2889      fnd_message.SET_NAME( 'INV', 'INV_MISS_OrgItem_ID' );
2890      FND_MSG_PUB.Add;
2891      RETURN;
2892   END IF;
2893 
2894      --
2895      -- Validate Dependency attributes
2896      --
2897 
2898      INV_ITEM_Validation.Attribute_Dependency
2899      (
2900          p_Item_rec        =>  p_Item_rec
2901      ,   x_return_status   =>  l_return_status
2902      );
2903 
2904      -- Raise an error as soon as the first fault is encountered
2905 
2906      IF ( l_return_status = FND_API.g_RET_STS_ERROR ) THEN
2907         RAISE FND_API.g_EXC_ERROR;
2908      ELSIF ( l_return_status = FND_API.g_RET_STS_UNEXP_ERROR ) THEN
2909         RAISE FND_API.g_EXC_UNEXPECTED_ERROR;
2910      END IF;
2911 
2912      --
2913      -- Validate Effectivity_Control attribute
2914      --
2915 
2916      INV_ITEM_Validation.Effectivity_Control
2917      (
2918          p_Item_rec        =>  p_Item_rec
2919      ,   x_return_status   =>  l_return_status
2920      );
2921 
2922      IF ( l_return_status = FND_API.g_RET_STS_ERROR ) THEN
2923         RAISE FND_API.g_EXC_ERROR;
2924      ELSIF ( l_return_status = FND_API.g_RET_STS_UNEXP_ERROR ) THEN
2925         RAISE FND_API.g_EXC_UNEXPECTED_ERROR;
2926      END IF;
2927 
2928      --
2929      --
2930 
2931   FND_MSG_PUB.Count_And_Get
2932   (   p_count  =>  x_msg_count
2933   ,   p_data   =>  x_msg_data
2934   );
2935 
2936 EXCEPTION
2937 
2938   WHEN FND_API.g_EXC_ERROR THEN
2939      x_return_status := FND_API.g_RET_STS_ERROR;
2940      FND_MSG_PUB.Count_And_Get
2941      (   p_count  =>  x_msg_count
2942      ,   p_data   =>  x_msg_data
2943      );
2944 
2945   WHEN FND_API.g_EXC_UNEXPECTED_ERROR THEN
2946      x_return_status := FND_API.g_RET_STS_UNEXP_ERROR;
2947      FND_MSG_PUB.Count_And_Get
2948      (   p_count  =>  x_msg_count
2949      ,   p_data   =>  x_msg_data
2950      );
2951 
2952   WHEN OTHERS THEN
2953      x_return_status := FND_API.g_RET_STS_UNEXP_ERROR;
2954 
2955      IF FND_MSG_PUB.Check_Msg_Level
2956         ( FND_MSG_PUB.g_MSG_LVL_UNEXP_ERROR )
2957      THEN
2958         FND_MSG_PUB.Add_Exc_Msg
2959         (   p_pkg_name         =>  G_PKG_NAME
2960         ,   p_procedure_name   =>  l_api_name
2961 --        ,   p_error_text       =>  'UNEXP_ERROR : XXX'
2962         );
2963      END IF;
2964 
2965      FND_MSG_PUB.Count_And_Get
2966      (   p_count  =>  x_msg_count
2967      ,   p_data   =>  x_msg_data
2968      );
2969 
2970 END Validate_Item;
2971 */
2972 
2973 PROCEDURE get_segments_string(
2974    P_Segment_Rec     IN     INV_ITEM_API.Item_rec_type
2975   ,P_Segment_String  OUT    NOCOPY VARCHAR2)
2976 IS
2977    l_segment_string VARCHAR2(2000) := NULL ;
2978 BEGIN
2979 
2980    IF P_Segment_Rec.segment1  IS NOT NULL THEN
2981       l_segment_string := l_segment_string || ' AND MSI.SEGMENT1  = '''|| REPLACE(P_Segment_Rec.segment1,'''','''''') ||'''';
2982    ELSE
2983       l_segment_string := l_segment_string || ' AND MSI.SEGMENT1 is NULL';
2984    END IF;
2985    IF P_Segment_Rec.segment2  IS NOT NULL THEN
2986       l_segment_string := l_segment_string || ' AND MSI.SEGMENT2  = '''|| REPLACE(P_Segment_Rec.segment2,'''','''''')||'''';
2987    ELSE
2988       l_segment_string := l_segment_string || ' AND MSI.SEGMENT2 is NULL';
2989    END IF;
2990    IF P_Segment_Rec.segment3  IS NOT NULL THEN
2991       l_segment_string := l_segment_string || ' AND MSI.SEGMENT3  = '''|| REPLACE(P_Segment_Rec.segment3,'''','''''') ||'''';
2992    ELSE
2993       l_segment_string := l_segment_string || ' AND MSI.SEGMENT3 is NULL';
2994    END IF;
2995    IF P_Segment_Rec.segment4  IS NOT NULL THEN
2996       l_segment_string := l_segment_string || ' AND MSI.SEGMENT4  = '''|| REPLACE(P_Segment_Rec.segment4,'''','''''') ||'''';
2997    ELSE
2998       l_segment_string := l_segment_string || ' AND MSI.SEGMENT4 is NULL';
2999    END IF;
3000    IF P_Segment_Rec.segment5  IS NOT NULL THEN
3001       l_segment_string := l_segment_string || ' AND MSI.SEGMENT5  = '''|| REPLACE(P_Segment_Rec.segment5,'''','''''') ||'''';
3002    ELSE
3003       l_segment_string := l_segment_string || ' AND MSI.SEGMENT5 is NULL';
3004    END IF;
3005    IF P_Segment_Rec.segment6  IS NOT NULL THEN
3006       l_segment_string := l_segment_string || ' AND MSI.SEGMENT6  = '''|| REPLACE(P_Segment_Rec.segment6,'''','''''') ||'''';
3007    ELSE
3008       l_segment_string := l_segment_string || ' AND MSI.SEGMENT6 is NULL';
3009    END IF;
3010    IF P_Segment_Rec.segment7  IS NOT NULL THEN
3011       l_segment_string := l_segment_string || ' AND MSI.SEGMENT7  = '''|| REPLACE(P_Segment_Rec.segment7,'''','''''') ||'''';
3012    ELSE
3013       l_segment_string := l_segment_string || ' AND MSI.SEGMENT7 is NULL';
3014    END IF;
3015    IF P_Segment_Rec.segment8  IS NOT NULL THEN
3016       l_segment_string := l_segment_string || ' AND MSI.SEGMENT8  = '''|| REPLACE(P_Segment_Rec.segment8,'''','''''') ||'''';
3017    ELSE
3018       l_segment_string := l_segment_string || ' AND MSI.SEGMENT8 is NULL';
3019    END IF;
3020    IF P_Segment_Rec.segment9  IS NOT NULL THEN
3021       l_segment_string := l_segment_string || ' AND MSI.SEGMENT9  = '''|| REPLACE(P_Segment_Rec.segment9,'''','''''') ||'''';
3022    ELSE
3023       l_segment_string := l_segment_string || ' AND MSI.SEGMENT9 is NULL';
3024    END IF;
3025    IF P_Segment_Rec.segment10 IS NOT NULL THEN
3026       l_segment_string := l_segment_string || ' AND MSI.SEGMENT10 = '''|| REPLACE(P_Segment_Rec.segment10,'''','''''') ||'''';
3027    ELSE
3028       l_segment_string := l_segment_string || ' AND MSI.SEGMENT10 is NULL';
3029    END IF;
3030    IF P_Segment_Rec.segment11 IS NOT NULL THEN
3031       l_segment_string := l_segment_string || ' AND MSI.SEGMENT11 = '''|| REPLACE(P_Segment_Rec.segment11,'''','''''') ||'''';
3032    ELSE
3033       l_segment_string := l_segment_string || ' AND MSI.SEGMENT11 is NULL';
3034    END IF;
3035    IF P_Segment_Rec.segment12 IS NOT NULL THEN
3036       l_segment_string := l_segment_string || ' AND MSI.SEGMENT12 = '''|| REPLACE(P_Segment_Rec.segment12,'''','''''') ||'''';
3037    ELSE
3038       l_segment_string := l_segment_string || ' AND MSI.SEGMENT12 is NULL';
3039    END IF;
3040    IF P_Segment_Rec.segment13 IS NOT NULL THEN
3041       l_segment_string := l_segment_string || ' AND MSI.SEGMENT13 = '''|| REPLACE(P_Segment_Rec.segment13,'''','''''') ||'''';
3042    ELSE
3043       l_segment_string := l_segment_string || ' AND MSI.SEGMENT13 is NULL';
3044    END IF;
3045    IF P_Segment_Rec.segment14 IS NOT NULL THEN
3046       l_segment_string := l_segment_string || ' AND MSI.SEGMENT14 = '''|| REPLACE(P_Segment_Rec.segment14,'''','''''') ||'''';
3047    ELSE
3048       l_segment_string := l_segment_string || ' AND MSI.SEGMENT14 is NULL';
3049    END IF;
3050    IF P_Segment_Rec.segment15 IS NOT NULL THEN
3051       l_segment_string := l_segment_string || ' AND MSI.SEGMENT15 = '''||REPLACE(P_Segment_Rec.segment15,'''','''''') ||'''';
3052    ELSE
3053       l_segment_string := l_segment_string || ' AND MSI.SEGMENT15 is NULL';
3054    END IF;
3055    IF P_Segment_Rec.segment16 IS NOT NULL THEN
3056       l_segment_string := l_segment_string || ' AND MSI.SEGMENT16 = '''|| REPLACE(P_Segment_Rec.segment16,'''','''''') ||'''';
3057    ELSE
3058       l_segment_string := l_segment_string || ' AND MSI.SEGMENT16 is NULL';
3059    END IF;
3060    IF P_Segment_Rec.segment17 IS NOT NULL THEN
3061       l_segment_string := l_segment_string || ' AND MSI.SEGMENT17 = '''|| REPLACE(P_Segment_Rec.segment17,'''','''''') ||'''';
3062    ELSE
3063       l_segment_string := l_segment_string || ' AND MSI.SEGMENT17 is NULL';
3064    END IF;
3065    IF P_Segment_Rec.segment18 IS NOT NULL THEN
3066       l_segment_string := l_segment_string || ' AND MSI.SEGMENT18 = '''|| REPLACE(P_Segment_Rec.segment18,'''','''''') ||'''';
3067    ELSE
3068       l_segment_string := l_segment_string || ' AND MSI.SEGMENT18 is NULL';
3069    END IF;
3070    IF P_Segment_Rec.segment19 IS NOT NULL THEN
3071       l_segment_string := l_segment_string || ' AND MSI.SEGMENT19 = '''|| REPLACE(P_Segment_Rec.segment19,'''','''''') ||'''';
3072    ELSE
3073       l_segment_string := l_segment_string || ' AND MSI.SEGMENT19 is NULL';
3074    END IF;
3075    IF P_Segment_Rec.segment20 IS NOT NULL THEN
3076       l_segment_string := l_segment_string || ' AND MSI.SEGMENT20 = '''|| REPLACE(P_Segment_Rec.segment20,'''','''''') ||'''';
3077    ELSE
3078       l_segment_string := l_segment_string || ' AND MSI.SEGMENT20 is NULL';
3079    END IF;
3080 
3081    P_Segment_String := l_segment_string;
3082 
3083 END get_segments_string;
3084 
3085 
3086 
3087 PROCEDURE Check_Item_Number (
3088    P_Segment_Rec            IN     INV_ITEM_API.Item_rec_type
3089   ,P_Item_Id                IN OUT NOCOPY MTL_SYSTEM_ITEMS.INVENTORY_ITEM_ID%TYPE
3090   ,P_Description            IN OUT NOCOPY MTL_SYSTEM_ITEMS.DESCRIPTION%TYPE
3091   ,P_unit_of_measure        IN OUT NOCOPY MTL_SYSTEM_ITEMS.PRIMARY_UNIT_OF_MEASURE%TYPE
3092   ,P_Item_Catalog_Group_Id  IN OUT NOCOPY MTL_SYSTEM_ITEMS.ITEM_CATALOG_GROUP_ID%TYPE)
3093 IS
3094 
3095    l_sql_stmt         VARCHAR2(3200);
3096    l_segments_string  VARCHAR2(1000);
3097    l_cursor           INTEGER := NULL;
3098    l_rows_processed   INTEGER := NULL;
3099 
3100 BEGIN
3101 
3102    l_sql_stmt := 'SELECT INVENTORY_ITEM_ID,
3103                        	 ITEM_CATALOG_GROUP_ID,
3104 	          	 PRIMARY_UNIT_OF_MEASURE,
3105 		       	 DESCRIPTION
3106 	           FROM	 MTL_SYSTEM_ITEMS_B_KFV MSI,
3107 			 MTL_PARAMETERS P
3108 	           WHERE MSI.ORGANIZATION_ID = P.ORGANIZATION_ID ';
3109 
3110    get_segments_string(P_Segment_Rec    => P_Segment_Rec
3111                       ,P_Segment_String => l_segments_string);
3112 
3113    IF (l_segments_string IS NOT NULL) THEN
3114       l_sql_stmt := l_sql_stmt || l_segments_string;
3115    END IF;
3116 
3117    l_sql_stmt := l_sql_stmt || ' ORDER BY MSI.CREATION_DATE ';
3118 
3119    l_cursor := DBMS_SQL.OPEN_CURSOR;
3120 
3121    DBMS_SQL.PARSE( l_cursor, l_sql_stmt , DBMS_SQL.NATIVE );
3122    DBMS_SQL.DEFINE_COLUMN(l_cursor, 1, P_Item_Id);
3123    DBMS_SQL.DEFINE_COLUMN(l_cursor, 2, P_Item_Catalog_Group_Id);
3124    DBMS_SQL.DEFINE_COLUMN(l_cursor, 3, P_unit_of_measure,25);
3125    DBMS_SQL.DEFINE_COLUMN(l_cursor, 4, P_Description,240);
3126 
3127    l_rows_processed := DBMS_SQL.EXECUTE(l_cursor);
3128 
3129    IF ( DBMS_SQL.FETCH_ROWS(l_cursor) > 0 ) THEN
3130       DBMS_SQL.COLUMN_VALUE(l_cursor, 1, P_Item_Id);
3131       DBMS_SQL.COLUMN_VALUE(l_cursor, 2, P_Item_Catalog_Group_Id);
3132       DBMS_SQL.COLUMN_VALUE(l_cursor, 3, P_unit_of_measure);
3133       DBMS_SQL.COLUMN_VALUE(l_cursor, 4, P_Description);
3134    ELSE
3135       P_Item_Id               := NULL;
3136       P_Description           := NULL;
3137       P_unit_of_measure       := NULL;
3138       P_Item_Catalog_Group_Id := NULL;
3139    END IF;
3140 
3141    DBMS_SQL.CLOSE_CURSOR(l_cursor);
3142 
3143 EXCEPTION
3144    WHEN OTHERS THEN
3145       IF DBMS_SQL.IS_OPEN(l_cursor) THEN
3146          DBMS_SQL.CLOSE_CURSOR(l_cursor);
3147       END IF;
3148       RAISE;
3149 END Check_Item_Number;
3150 
3151 PROCEDURE Insert_Row(P_Item_Rec           IN     INV_ITEM_API.Item_rec_type
3152                     ,x_row_Id             OUT    NOCOPY ROWID)
3153 IS
3154 
3155    CURSOR c_ego_exists IS
3156       SELECT  'Y'
3157       FROM    FND_OBJECTS
3158       WHERE   OBJ_NAME ='EGO_ITEM';
3159 
3160    l_Inventory_Item_ID        NUMBER  :=  P_Item_Rec.INVENTORY_ITEM_ID;
3161    l_Organization_ID          NUMBER  :=  P_Item_Rec.ORGANIZATION_ID;
3162 
3163    l_return_status            VARCHAR2(1);
3164    l_msg_count                NUMBER;
3165    l_msg_data                 VARCHAR2(2000);
3166 
3167    -- Variables holding derived attribute values.
3168 
3169    l_Primary_Unit_of_Measure    VARCHAR2(25);
3170    l_SERVICE_ITEM_FLAG          VARCHAR2(1);
3171    l_VENDOR_WARRANTY_FLAG       VARCHAR2(1);
3172    l_USAGE_ITEM_FLAG            VARCHAR2(1);
3173    l_party_id                   FND_USER.CUSTOMER_ID%TYPE;
3174    l_grant_guid                 fnd_grants.grant_guid%TYPE;
3175    l_ego_exists                 VARCHAR2(1) := 'N';
3176    l_master_org                 VARCHAR2(1); --R12: Business Events
3177    l_mast_organization_id       MTL_SYSTEM_ITEMS.ORGANIZATION_ID%TYPE;
3178 
3179 BEGIN
3180    -- Primary_Unit_of_Measure lookup
3181 
3182    SELECT  unit_of_measure	--* Bug 5192495 reverted Bug 4465182 Select translated unit of measure value
3183    INTO    l_Primary_Unit_of_Measure
3184    FROM    mtl_units_of_measure_vl
3185    WHERE   uom_code = P_Item_Rec.PRIMARY_UOM_CODE;
3186 
3187    -- Get derived attribute values.
3188    -- Service Item, Warranty, Usage flag attributes are dependent on
3189    -- and derived from Contract Item Type; supported for view only.
3190 
3191    IF ( P_Item_Rec.CONTRACT_ITEM_TYPE_CODE = 'SERVICE' ) THEN
3192       l_SERVICE_ITEM_FLAG    := 'Y';
3193       l_VENDOR_WARRANTY_FLAG := 'N';
3194       l_USAGE_ITEM_FLAG      := NULL;
3195    ELSIF ( P_Item_Rec.CONTRACT_ITEM_TYPE_CODE = 'WARRANTY' ) THEN
3196       l_SERVICE_ITEM_FLAG    := 'Y';
3197       l_VENDOR_WARRANTY_FLAG := 'Y';
3198       l_USAGE_ITEM_FLAG      := NULL;
3199    ELSIF ( P_Item_Rec.CONTRACT_ITEM_TYPE_CODE = 'USAGE' ) THEN
3200       l_SERVICE_ITEM_FLAG    := 'N';
3201       l_VENDOR_WARRANTY_FLAG := 'N';
3202       l_USAGE_ITEM_FLAG      := 'Y';
3203    ELSE
3204       l_SERVICE_ITEM_FLAG    := 'N';
3205       l_VENDOR_WARRANTY_FLAG := 'N';
3206       l_USAGE_ITEM_FLAG      := NULL;
3207    END IF;
3208 
3209    INSERT INTO MTL_SYSTEM_ITEMS_B(
3210     DESCRIPTION,
3211     INVENTORY_ITEM_ID,
3212     ORGANIZATION_ID,
3213     SUMMARY_FLAG,
3214     ENABLED_FLAG,
3215 --    START_DATE_ACTIVE,     Commented for Bug: 4457440
3216 --    END_DATE_ACTIVE,       Commented for Bug: 4457440
3217     PRIMARY_UOM_CODE,
3218     PRIMARY_UNIT_OF_MEASURE,
3219     ALLOWED_UNITS_LOOKUP_CODE,
3220     OVERCOMPLETION_TOLERANCE_TYPE,
3221     OVERCOMPLETION_TOLERANCE_VALUE,
3222     EFFECTIVITY_CONTROL,
3223     CHECK_SHORTAGES_FLAG,
3224     FULL_LEAD_TIME,
3225     ORDER_COST,
3226     MRP_SAFETY_STOCK_PERCENT,
3227     MRP_SAFETY_STOCK_CODE,
3228     MIN_MINMAX_QUANTITY,
3229     MAX_MINMAX_QUANTITY,
3230     MINIMUM_ORDER_QUANTITY,
3231     FIXED_ORDER_QUANTITY,
3232     FIXED_DAYS_SUPPLY,
3233     MAXIMUM_ORDER_QUANTITY,
3234     ATP_RULE_ID,
3235     PICKING_RULE_ID,
3236     RESERVABLE_TYPE,
3237     POSITIVE_MEASUREMENT_ERROR,
3238     NEGATIVE_MEASUREMENT_ERROR,
3239     ENGINEERING_ECN_CODE,
3240     ENGINEERING_ITEM_ID,
3241     ENGINEERING_DATE,
3242     SERVICE_STARTING_DELAY,
3243     SERVICEABLE_COMPONENT_FLAG,
3244     SERVICEABLE_PRODUCT_FLAG,
3245     PAYMENT_TERMS_ID,
3246     PREVENTIVE_MAINTENANCE_FLAG,
3247     MATERIAL_BILLABLE_FLAG,
3248     PRORATE_SERVICE_FLAG,
3249     COVERAGE_SCHEDULE_ID,
3250     SERVICE_DURATION_PERIOD_CODE,
3251     SERVICE_DURATION,
3252     INVOICEABLE_ITEM_FLAG,
3253     TAX_CODE,
3254     INVOICE_ENABLED_FLAG,
3255     MUST_USE_APPROVED_VENDOR_FLAG,
3256     OUTSIDE_OPERATION_FLAG,
3257     OUTSIDE_OPERATION_UOM_TYPE,
3258     SAFETY_STOCK_BUCKET_DAYS,
3259     AUTO_REDUCE_MPS,
3260     COSTING_ENABLED_FLAG,
3261     AUTO_CREATED_CONFIG_FLAG,
3262     CYCLE_COUNT_ENABLED_FLAG,
3263     ITEM_TYPE,
3264     MODEL_CONFIG_CLAUSE_NAME,
3265     SHIP_MODEL_COMPLETE_FLAG,
3266     MRP_PLANNING_CODE,
3267     RETURN_INSPECTION_REQUIREMENT,
3268     ATO_FORECAST_CONTROL,
3269     RELEASE_TIME_FENCE_CODE,
3270     RELEASE_TIME_FENCE_DAYS,
3271     CONTAINER_ITEM_FLAG,
3272     VEHICLE_ITEM_FLAG,
3273     MAXIMUM_LOAD_WEIGHT,
3274     MINIMUM_FILL_PERCENT,
3275     CONTAINER_TYPE_CODE,
3276     INTERNAL_VOLUME,
3277    -- PRODUCT_FAMILY_ITEM_ID,   - Bug 4408694
3278     GLOBAL_ATTRIBUTE_CATEGORY,
3279     GLOBAL_ATTRIBUTE1,
3280     GLOBAL_ATTRIBUTE2,
3281     GLOBAL_ATTRIBUTE3,
3282     GLOBAL_ATTRIBUTE4,
3283     GLOBAL_ATTRIBUTE5,
3284     GLOBAL_ATTRIBUTE6,
3285     GLOBAL_ATTRIBUTE7,
3286     GLOBAL_ATTRIBUTE8,
3287     GLOBAL_ATTRIBUTE9,
3288     GLOBAL_ATTRIBUTE10,
3289     GLOBAL_ATTRIBUTE11,
3290     GLOBAL_ATTRIBUTE12,
3291     GLOBAL_ATTRIBUTE13,
3292     GLOBAL_ATTRIBUTE14,
3293     GLOBAL_ATTRIBUTE15,
3294     GLOBAL_ATTRIBUTE16,
3295     GLOBAL_ATTRIBUTE17,
3296     GLOBAL_ATTRIBUTE18,
3297     GLOBAL_ATTRIBUTE19,
3298     GLOBAL_ATTRIBUTE20,
3299     PURCHASING_TAX_CODE,
3300     ATTRIBUTE6,
3301     ATTRIBUTE7,
3302     ATTRIBUTE8,
3303     ATTRIBUTE9,
3304     ATTRIBUTE10,
3305     ATTRIBUTE11,
3306     ATTRIBUTE12,
3307     ATTRIBUTE13,
3308     ATTRIBUTE14,
3309     ATTRIBUTE15,
3310     PURCHASING_ITEM_FLAG,
3311     SHIPPABLE_ITEM_FLAG,
3312     CUSTOMER_ORDER_FLAG,
3313     INTERNAL_ORDER_FLAG,
3314     INVENTORY_ITEM_FLAG,
3315     ENG_ITEM_FLAG,
3316     INVENTORY_ASSET_FLAG,
3317     PURCHASING_ENABLED_FLAG,
3318     CUSTOMER_ORDER_ENABLED_FLAG,
3319     INTERNAL_ORDER_ENABLED_FLAG,
3320     SO_TRANSACTIONS_FLAG,
3321     MTL_TRANSACTIONS_ENABLED_FLAG,
3322     STOCK_ENABLED_FLAG,
3323     BOM_ENABLED_FLAG,
3324     BUILD_IN_WIP_FLAG,
3325     REVISION_QTY_CONTROL_CODE,
3326     ITEM_CATALOG_GROUP_ID,
3327     CATALOG_STATUS_FLAG,
3328     RETURNABLE_FLAG,
3329     DEFAULT_SHIPPING_ORG,
3330     COLLATERAL_FLAG,
3331     TAXABLE_FLAG,
3332     QTY_RCV_EXCEPTION_CODE,
3333     ALLOW_ITEM_DESC_UPDATE_FLAG,
3334     INSPECTION_REQUIRED_FLAG,
3335     RECEIPT_REQUIRED_FLAG,
3336     MARKET_PRICE,
3337     HAZARD_CLASS_ID,
3338     RFQ_REQUIRED_FLAG,
3339     QTY_RCV_TOLERANCE,
3340     LIST_PRICE_PER_UNIT,
3341     UN_NUMBER_ID,
3342     PRICE_TOLERANCE_PERCENT,
3343     ASSET_CATEGORY_ID,
3344     ROUNDING_FACTOR,
3345     UNIT_OF_ISSUE,
3346     ENFORCE_SHIP_TO_LOCATION_CODE,
3347     ALLOW_SUBSTITUTE_RECEIPTS_FLAG,
3348     ALLOW_UNORDERED_RECEIPTS_FLAG,
3349     ALLOW_EXPRESS_DELIVERY_FLAG,
3350     DAYS_EARLY_RECEIPT_ALLOWED,
3351     DAYS_LATE_RECEIPT_ALLOWED,
3352     RECEIPT_DAYS_EXCEPTION_CODE,
3353     RECEIVING_ROUTING_ID,
3354     INVOICE_CLOSE_TOLERANCE,
3355     RECEIVE_CLOSE_TOLERANCE,
3356     AUTO_LOT_ALPHA_PREFIX,
3357     START_AUTO_LOT_NUMBER,
3358     LOT_CONTROL_CODE,
3359     SHELF_LIFE_CODE,
3360     SHELF_LIFE_DAYS,
3361     SERIAL_NUMBER_CONTROL_CODE,
3362     START_AUTO_SERIAL_NUMBER,
3363     AUTO_SERIAL_ALPHA_PREFIX,
3364     SOURCE_TYPE,
3365     SOURCE_ORGANIZATION_ID,
3366     SOURCE_SUBINVENTORY,
3367     EXPENSE_ACCOUNT,
3368     ENCUMBRANCE_ACCOUNT,
3369     RESTRICT_SUBINVENTORIES_CODE,
3370     UNIT_WEIGHT,
3371     WEIGHT_UOM_CODE,
3372     VOLUME_UOM_CODE,
3373     UNIT_VOLUME,
3374     RESTRICT_LOCATORS_CODE,
3375     LOCATION_CONTROL_CODE,
3376     SHRINKAGE_RATE,
3377     ACCEPTABLE_EARLY_DAYS,
3378     PLANNING_TIME_FENCE_CODE,
3379     DEMAND_TIME_FENCE_CODE,
3380     LEAD_TIME_LOT_SIZE,
3381     STD_LOT_SIZE,
3382     CUM_MANUFACTURING_LEAD_TIME,
3383     OVERRUN_PERCENTAGE,
3384     MRP_CALCULATE_ATP_FLAG,
3385     ACCEPTABLE_RATE_INCREASE,
3386     ACCEPTABLE_RATE_DECREASE,
3387     CUMULATIVE_TOTAL_LEAD_TIME,
3388     PLANNING_TIME_FENCE_DAYS,
3389     DEMAND_TIME_FENCE_DAYS,
3390     END_ASSEMBLY_PEGGING_FLAG,
3391     REPETITIVE_PLANNING_FLAG,
3392     PLANNING_EXCEPTION_SET,
3393     BOM_ITEM_TYPE,
3394     PICK_COMPONENTS_FLAG,
3395     REPLENISH_TO_ORDER_FLAG,
3396     BASE_ITEM_ID,
3397     ATP_COMPONENTS_FLAG,
3398     ATP_FLAG,
3399     FIXED_LEAD_TIME,
3400     VARIABLE_LEAD_TIME,
3401     WIP_SUPPLY_LOCATOR_ID,
3402     WIP_SUPPLY_TYPE,
3403     WIP_SUPPLY_SUBINVENTORY,
3404     COST_OF_SALES_ACCOUNT,
3405     SALES_ACCOUNT,
3406     DEFAULT_INCLUDE_IN_ROLLUP_FLAG,
3407     INVENTORY_ITEM_STATUS_CODE,
3408     INVENTORY_PLANNING_CODE,
3409     PLANNER_CODE,
3410     PLANNING_MAKE_BUY_CODE,
3411     FIXED_LOT_MULTIPLIER,
3412     ROUNDING_CONTROL_TYPE,
3413     CARRYING_COST,
3414     POSTPROCESSING_LEAD_TIME,
3415     PREPROCESSING_LEAD_TIME,
3416     BUYER_ID,
3417     ACCOUNTING_RULE_ID,
3418     INVOICING_RULE_ID,
3419     OVER_SHIPMENT_TOLERANCE,
3420     UNDER_SHIPMENT_TOLERANCE,
3421     OVER_RETURN_TOLERANCE,
3422     UNDER_RETURN_TOLERANCE,
3423     EQUIPMENT_TYPE,
3424     RECOVERED_PART_DISP_CODE,
3425     DEFECT_TRACKING_ON_FLAG,
3426     EVENT_FLAG,
3427     ELECTRONIC_FLAG,
3428     DOWNLOADABLE_FLAG,
3429     VOL_DISCOUNT_EXEMPT_FLAG,
3430     COUPON_EXEMPT_FLAG,
3431     COMMS_NL_TRACKABLE_FLAG,
3432     ASSET_CREATION_CODE,
3433     COMMS_ACTIVATION_REQD_FLAG,
3434     ORDERABLE_ON_WEB_FLAG,
3435     BACK_ORDERABLE_FLAG,
3436     WEB_STATUS,
3437     INDIVISIBLE_FLAG,
3438     DIMENSION_UOM_CODE,
3439     UNIT_LENGTH,
3440     UNIT_WIDTH,
3441     UNIT_HEIGHT,
3442     BULK_PICKED_FLAG,
3443     LOT_STATUS_ENABLED,
3444     DEFAULT_LOT_STATUS_ID,
3445     SERIAL_STATUS_ENABLED,
3446     DEFAULT_SERIAL_STATUS_ID,
3447     LOT_SPLIT_ENABLED,
3448     LOT_MERGE_ENABLED,
3449     INVENTORY_CARRY_PENALTY,
3450     OPERATION_SLACK_PENALTY,
3451     FINANCING_ALLOWED_FLAG,
3452     EAM_ITEM_TYPE,
3453     EAM_ACTIVITY_TYPE_CODE,
3454     EAM_ACTIVITY_CAUSE_CODE,
3455     EAM_ACT_NOTIFICATION_FLAG,
3456     EAM_ACT_SHUTDOWN_STATUS,
3457     DUAL_UOM_CONTROL,
3458     SECONDARY_UOM_CODE,
3459     DUAL_UOM_DEVIATION_HIGH,
3460     DUAL_UOM_DEVIATION_LOW,
3461     SERVICE_ITEM_FLAG,
3462     VENDOR_WARRANTY_FLAG,
3463     USAGE_ITEM_FLAG,
3464     CONTRACT_ITEM_TYPE_CODE,
3465     SUBSCRIPTION_DEPEND_FLAG,
3466     SERV_REQ_ENABLED_CODE,
3467     SERV_BILLING_ENABLED_FLAG,
3468     SERV_IMPORTANCE_LEVEL,
3469     PLANNED_INV_POINT_FLAG,
3470     LOT_TRANSLATE_ENABLED,
3471     DEFAULT_SO_SOURCE_TYPE,
3472     CREATE_SUPPLY_FLAG,
3473     SUBSTITUTION_WINDOW_CODE,
3474     SUBSTITUTION_WINDOW_DAYS,
3475     IB_ITEM_INSTANCE_CLASS,
3476     CONFIG_MODEL_TYPE,
3477     --Added as part of 11.5.9 ENH
3478     LOT_SUBSTITUTION_ENABLED,
3479     MINIMUM_LICENSE_QUANTITY,
3480     EAM_ACTIVITY_SOURCE_CODE,
3481     --Added as part of 11.5.10 ENH
3482     TRACKING_QUANTITY_IND ,
3483     ONT_PRICING_QTY_SOURCE,
3484     SECONDARY_DEFAULT_IND ,
3485     OPTION_SPECIFIC_SOURCED,
3486     CONFIG_ORGS,
3487     CONFIG_MATCH,
3488     SEGMENT1,
3489     SEGMENT2,
3490     SEGMENT3,
3491     SEGMENT4,
3492     SEGMENT5,
3493     SEGMENT6,
3494     SEGMENT7,
3495     SEGMENT8,
3496     SEGMENT9,
3497     SEGMENT10,
3498     SEGMENT11,
3499     SEGMENT12,
3500     SEGMENT13,
3501     SEGMENT14,
3502     SEGMENT15,
3503     SEGMENT16,
3504     SEGMENT17,
3505     SEGMENT18,
3506     SEGMENT19,
3507     SEGMENT20,
3508     ATTRIBUTE_CATEGORY,
3509     ATTRIBUTE1,
3510     ATTRIBUTE2,
3511     ATTRIBUTE3,
3512     ATTRIBUTE4,
3513     ATTRIBUTE5,
3514     LIFECYCLE_ID,
3515     CURRENT_PHASE_ID,
3516     CREATION_DATE,
3517     CREATED_BY,
3518     LAST_UPDATE_DATE,
3519     LAST_UPDATED_BY,
3520     LAST_UPDATE_LOGIN ,
3521     VMI_MINIMUM_UNITS,
3522     VMI_MINIMUM_DAYS,
3523     VMI_MAXIMUM_UNITS,
3524     VMI_MAXIMUM_DAYS ,
3525     VMI_FIXED_ORDER_QUANTITY ,
3526     SO_AUTHORIZATION_FLAG ,
3527     CONSIGNED_FLAG   ,
3528     ASN_AUTOEXPIRE_FLAG ,
3529     VMI_FORECAST_TYPE ,
3530     FORECAST_HORIZON  ,
3531     EXCLUDE_FROM_BUDGET_FLAG  ,
3532     DAYS_TGT_INV_SUPPLY  ,
3533     DAYS_TGT_INV_WINDOW  ,
3534     DAYS_MAX_INV_SUPPLY  ,
3535     DAYS_MAX_INV_WINDOW   ,
3536     DRP_PLANNED_FLAG     ,
3537     CRITICAL_COMPONENT_FLAG  ,
3538     CONTINOUS_TRANSFER   ,
3539     CONVERGENCE         ,
3540     DIVERGENCE
3541     /* Start Bug 3713912 */--Added For R12 ENH
3542     ,LOT_DIVISIBLE_FLAG,
3543 GRADE_CONTROL_FLAG,
3544 DEFAULT_GRADE,
3545 CHILD_LOT_FLAG,
3546 PARENT_CHILD_GENERATION_FLAG,
3547 CHILD_LOT_PREFIX,
3548 CHILD_LOT_STARTING_NUMBER,
3549 CHILD_LOT_VALIDATION_FLAG,
3550 COPY_LOT_ATTRIBUTE_FLAG,
3551 RECIPE_ENABLED_FLAG,
3552 PROCESS_QUALITY_ENABLED_FLAG,
3553 PROCESS_EXECUTION_ENABLED_FLAG,
3554 PROCESS_COSTING_ENABLED_FLAG,
3555 PROCESS_SUPPLY_SUBINVENTORY,
3556 PROCESS_SUPPLY_LOCATOR_ID,
3557 PROCESS_YIELD_SUBINVENTORY,
3558 PROCESS_YIELD_LOCATOR_ID,
3559 HAZARDOUS_MATERIAL_FLAG,
3560 CAS_NUMBER,
3561 RETEST_INTERVAL,
3562 EXPIRATION_ACTION_INTERVAL,
3563 EXPIRATION_ACTION_CODE,
3564 MATURITY_DAYS,
3565 HOLD_DAYS,
3566 ATTRIBUTE16,
3567 ATTRIBUTE17,
3568 ATTRIBUTE18,
3569 ATTRIBUTE19,
3570 ATTRIBUTE20,
3571 ATTRIBUTE21,
3572 ATTRIBUTE22,
3573 ATTRIBUTE23,
3574 ATTRIBUTE24,
3575 ATTRIBUTE25,
3576 ATTRIBUTE26,
3577 ATTRIBUTE27,
3578 ATTRIBUTE28,
3579 ATTRIBUTE29,
3580 ATTRIBUTE30,
3581     /* End Bug 3713912 */
3582     CHARGE_PERIODICITY_CODE,
3583     REPAIR_LEADTIME,
3584     REPAIR_YIELD ,
3585     PREPOSITION_POINT,
3586     REPAIR_PROGRAM,
3587     SUBCONTRACTING_COMPONENT,
3588     OUTSOURCED_ASSEMBLY,
3589     /*  Bug 4224512 Updating the object version number - Anmurali */
3590 OBJECT_VERSION_NUMBER,
3591    -- Fix for Bug#6644711
3592    DEFAULT_MATERIAL_STATUS_ID
3593     )
3594    VALUES  (
3595    ltrim(rtrim(P_Item_Rec.DESCRIPTION)),
3596     P_Item_Rec.INVENTORY_ITEM_ID,
3597     P_Item_Rec.ORGANIZATION_ID,
3598     P_Item_Rec.SUMMARY_FLAG,
3599     P_Item_Rec.ENABLED_FLAG,
3600 --    P_Item_Rec.START_DATE_ACTIVE,       Commented for Bug: 4457440
3601 --    P_Item_Rec.END_DATE_ACTIVE,         Commented for Bug: 4457440
3602     P_Item_Rec.PRIMARY_UOM_CODE,
3603     l_Primary_Unit_of_Measure,
3604     P_Item_Rec.ALLOWED_UNITS_LOOKUP_CODE,
3605     P_Item_Rec.OVERCOMPLETION_TOLERANCE_TYPE,
3606     P_Item_Rec.OVERCOMPLETION_TOLERANCE_VALUE,
3607     P_Item_Rec.EFFECTIVITY_CONTROL,
3608     P_Item_Rec.CHECK_SHORTAGES_FLAG,
3609     P_Item_Rec.FULL_LEAD_TIME,
3610     P_Item_Rec.ORDER_COST,
3611     P_Item_Rec.MRP_SAFETY_STOCK_PERCENT,
3612     P_Item_Rec.MRP_SAFETY_STOCK_CODE,
3613     P_Item_Rec.MIN_MINMAX_QUANTITY,
3614     P_Item_Rec.MAX_MINMAX_QUANTITY,
3615     P_Item_Rec.MINIMUM_ORDER_QUANTITY,
3616     P_Item_Rec.FIXED_ORDER_QUANTITY,
3617     P_Item_Rec.FIXED_DAYS_SUPPLY,
3618     P_Item_Rec.MAXIMUM_ORDER_QUANTITY,
3619     P_Item_Rec.ATP_RULE_ID,
3620     P_Item_Rec.PICKING_RULE_ID,
3621     P_Item_Rec.RESERVABLE_TYPE,
3622     P_Item_Rec.POSITIVE_MEASUREMENT_ERROR,
3623     P_Item_Rec.NEGATIVE_MEASUREMENT_ERROR,
3624     P_Item_Rec.ENGINEERING_ECN_CODE,
3625     P_Item_Rec.ENGINEERING_ITEM_ID,
3626     P_Item_Rec.ENGINEERING_DATE,
3627     P_Item_Rec.SERVICE_STARTING_DELAY,
3628     P_Item_Rec.SERVICEABLE_COMPONENT_FLAG,
3629     P_Item_Rec.SERVICEABLE_PRODUCT_FLAG,
3630     P_Item_Rec.PAYMENT_TERMS_ID,
3631     P_Item_Rec.PREVENTIVE_MAINTENANCE_FLAG,
3632     P_Item_Rec.MATERIAL_BILLABLE_FLAG,
3633     P_Item_Rec.PRORATE_SERVICE_FLAG,
3634     P_Item_Rec.COVERAGE_SCHEDULE_ID,
3635     P_Item_Rec.SERVICE_DURATION_PERIOD_CODE,
3636     P_Item_Rec.SERVICE_DURATION,
3637     P_Item_Rec.INVOICEABLE_ITEM_FLAG,
3638     P_Item_Rec.TAX_CODE,
3639     P_Item_Rec.INVOICE_ENABLED_FLAG,
3640     P_Item_Rec.MUST_USE_APPROVED_VENDOR_FLAG,
3641     P_Item_Rec.OUTSIDE_OPERATION_FLAG,
3642     P_Item_Rec.OUTSIDE_OPERATION_UOM_TYPE,
3643     P_Item_Rec.SAFETY_STOCK_BUCKET_DAYS,
3644     P_Item_Rec.AUTO_REDUCE_MPS,
3645     P_Item_Rec.COSTING_ENABLED_FLAG,
3646     P_Item_Rec.AUTO_CREATED_CONFIG_FLAG,
3647     P_Item_Rec.CYCLE_COUNT_ENABLED_FLAG,
3648     P_Item_Rec.ITEM_TYPE,
3649     P_Item_Rec.MODEL_CONFIG_CLAUSE_NAME,
3650     P_Item_Rec.SHIP_MODEL_COMPLETE_FLAG,
3651     P_Item_Rec.MRP_PLANNING_CODE,
3652     P_Item_Rec.RETURN_INSPECTION_REQUIREMENT,
3653     P_Item_Rec.ATO_FORECAST_CONTROL,
3654     P_Item_Rec.RELEASE_TIME_FENCE_CODE,
3655     P_Item_Rec.RELEASE_TIME_FENCE_DAYS,
3656     P_Item_Rec.CONTAINER_ITEM_FLAG,
3657     P_Item_Rec.VEHICLE_ITEM_FLAG,
3658     P_Item_Rec.MAXIMUM_LOAD_WEIGHT,
3659     P_Item_Rec.MINIMUM_FILL_PERCENT,
3660     P_Item_Rec.CONTAINER_TYPE_CODE,
3661     P_Item_Rec.INTERNAL_VOLUME,
3662  --   P_Item_Rec.PRODUCT_FAMILY_ITEM_ID,   - Bug 4408694
3663     P_Item_Rec.GLOBAL_ATTRIBUTE_CATEGORY,
3664     P_Item_Rec.GLOBAL_ATTRIBUTE1,
3665     P_Item_Rec.GLOBAL_ATTRIBUTE2,
3666     P_Item_Rec.GLOBAL_ATTRIBUTE3,
3667     P_Item_Rec.GLOBAL_ATTRIBUTE4,
3668     P_Item_Rec.GLOBAL_ATTRIBUTE5,
3669     P_Item_Rec.GLOBAL_ATTRIBUTE6,
3670     P_Item_Rec.GLOBAL_ATTRIBUTE7,
3671     P_Item_Rec.GLOBAL_ATTRIBUTE8,
3672     P_Item_Rec.GLOBAL_ATTRIBUTE9,
3673     P_Item_Rec.GLOBAL_ATTRIBUTE10,
3674     P_Item_Rec.GLOBAL_ATTRIBUTE11,
3675     P_Item_Rec.GLOBAL_ATTRIBUTE12,
3676     P_Item_Rec.GLOBAL_ATTRIBUTE13,
3677     P_Item_Rec.GLOBAL_ATTRIBUTE14,
3678     P_Item_Rec.GLOBAL_ATTRIBUTE15,
3679     P_Item_Rec.GLOBAL_ATTRIBUTE16,
3680     P_Item_Rec.GLOBAL_ATTRIBUTE17,
3681     P_Item_Rec.GLOBAL_ATTRIBUTE18,
3682     P_Item_Rec.GLOBAL_ATTRIBUTE19,
3683     P_Item_Rec.GLOBAL_ATTRIBUTE20,
3684     P_Item_Rec.PURCHASING_TAX_CODE,
3685     P_Item_Rec.ATTRIBUTE6,
3686     P_Item_Rec.ATTRIBUTE7,
3687     P_Item_Rec.ATTRIBUTE8,
3688     P_Item_Rec.ATTRIBUTE9,
3689     P_Item_Rec.ATTRIBUTE10,
3690     P_Item_Rec.ATTRIBUTE11,
3691     P_Item_Rec.ATTRIBUTE12,
3692     P_Item_Rec.ATTRIBUTE13,
3693     P_Item_Rec.ATTRIBUTE14,
3694     P_Item_Rec.ATTRIBUTE15,
3695     P_Item_Rec.PURCHASING_ITEM_FLAG,
3696     P_Item_Rec.SHIPPABLE_ITEM_FLAG,
3697     P_Item_Rec.CUSTOMER_ORDER_FLAG,
3698     P_Item_Rec.INTERNAL_ORDER_FLAG,
3699     P_Item_Rec.INVENTORY_ITEM_FLAG,
3700     P_Item_Rec.ENG_ITEM_FLAG,
3701     P_Item_Rec.INVENTORY_ASSET_FLAG,
3702     P_Item_Rec.PURCHASING_ENABLED_FLAG,
3703     P_Item_Rec.CUSTOMER_ORDER_ENABLED_FLAG,
3704     P_Item_Rec.INTERNAL_ORDER_ENABLED_FLAG,
3705     P_Item_Rec.SO_TRANSACTIONS_FLAG,
3706     P_Item_Rec.MTL_TRANSACTIONS_ENABLED_FLAG,
3707     P_Item_Rec.STOCK_ENABLED_FLAG,
3708     P_Item_Rec.BOM_ENABLED_FLAG,
3709     P_Item_Rec.BUILD_IN_WIP_FLAG,
3710     P_Item_Rec.REVISION_QTY_CONTROL_CODE,
3711     P_Item_Rec.ITEM_CATALOG_GROUP_ID, --Bug: 2805253 NVL(P_Item_Rec.ITEM_CATALOG_GROUP_ID,1),
3712     P_Item_Rec.CATALOG_STATUS_FLAG,
3713     P_Item_Rec.RETURNABLE_FLAG,
3714     P_Item_Rec.DEFAULT_SHIPPING_ORG,
3715     P_Item_Rec.COLLATERAL_FLAG,
3716     P_Item_Rec.TAXABLE_FLAG,
3717     P_Item_Rec.QTY_RCV_EXCEPTION_CODE,
3718     P_Item_Rec.ALLOW_ITEM_DESC_UPDATE_FLAG,
3719     P_Item_Rec.INSPECTION_REQUIRED_FLAG,
3720     P_Item_Rec.RECEIPT_REQUIRED_FLAG,
3721     P_Item_Rec.MARKET_PRICE,
3722     P_Item_Rec.HAZARD_CLASS_ID,
3723     P_Item_Rec.RFQ_REQUIRED_FLAG,
3724     P_Item_Rec.QTY_RCV_TOLERANCE,
3725     P_Item_Rec.LIST_PRICE_PER_UNIT,
3726     P_Item_Rec.UN_NUMBER_ID,
3727     P_Item_Rec.PRICE_TOLERANCE_PERCENT,
3728     P_Item_Rec.ASSET_CATEGORY_ID,
3729     P_Item_Rec.ROUNDING_FACTOR,
3730     P_Item_Rec.UNIT_OF_ISSUE,
3731     P_Item_Rec.ENFORCE_SHIP_TO_LOCATION_CODE,
3732     P_Item_Rec.ALLOW_SUBSTITUTE_RECEIPTS_FLAG,
3733     P_Item_Rec.ALLOW_UNORDERED_RECEIPTS_FLAG,
3734     P_Item_Rec.ALLOW_EXPRESS_DELIVERY_FLAG,
3735     P_Item_Rec.DAYS_EARLY_RECEIPT_ALLOWED,
3736     P_Item_Rec.DAYS_LATE_RECEIPT_ALLOWED,
3737     P_Item_Rec.RECEIPT_DAYS_EXCEPTION_CODE,
3738     P_Item_Rec.RECEIVING_ROUTING_ID,
3739     P_Item_Rec.INVOICE_CLOSE_TOLERANCE,
3740     P_Item_Rec.RECEIVE_CLOSE_TOLERANCE,
3741     P_Item_Rec.AUTO_LOT_ALPHA_PREFIX,
3742     P_Item_Rec.START_AUTO_LOT_NUMBER,
3743     P_Item_Rec.LOT_CONTROL_CODE,
3744     P_Item_Rec.SHELF_LIFE_CODE,
3745     P_Item_Rec.SHELF_LIFE_DAYS,
3746     P_Item_Rec.SERIAL_NUMBER_CONTROL_CODE,
3747     P_Item_Rec.START_AUTO_SERIAL_NUMBER,
3748     P_Item_Rec.AUTO_SERIAL_ALPHA_PREFIX,
3749     P_Item_Rec.SOURCE_TYPE,
3750     P_Item_Rec.SOURCE_ORGANIZATION_ID,
3751     P_Item_Rec.SOURCE_SUBINVENTORY,
3752     P_Item_Rec.EXPENSE_ACCOUNT,
3753     P_Item_Rec.ENCUMBRANCE_ACCOUNT,
3754     P_Item_Rec.RESTRICT_SUBINVENTORIES_CODE,
3755     P_Item_Rec.UNIT_WEIGHT,
3756     P_Item_Rec.WEIGHT_UOM_CODE,
3757     P_Item_Rec.VOLUME_UOM_CODE,
3758     P_Item_Rec.UNIT_VOLUME,
3759     P_Item_Rec.RESTRICT_LOCATORS_CODE,
3760     P_Item_Rec.LOCATION_CONTROL_CODE,
3761     P_Item_Rec.SHRINKAGE_RATE,
3762     P_Item_Rec.ACCEPTABLE_EARLY_DAYS,
3763     P_Item_Rec.PLANNING_TIME_FENCE_CODE,
3764     P_Item_Rec.DEMAND_TIME_FENCE_CODE,
3765     P_Item_Rec.LEAD_TIME_LOT_SIZE,
3766     P_Item_Rec.STD_LOT_SIZE,
3767     P_Item_Rec.CUM_MANUFACTURING_LEAD_TIME,
3768     P_Item_Rec.OVERRUN_PERCENTAGE,
3769     P_Item_Rec.MRP_CALCULATE_ATP_FLAG,
3770     P_Item_Rec.ACCEPTABLE_RATE_INCREASE,
3771     P_Item_Rec.ACCEPTABLE_RATE_DECREASE,
3772     P_Item_Rec.CUMULATIVE_TOTAL_LEAD_TIME,
3773     P_Item_Rec.PLANNING_TIME_FENCE_DAYS,
3774     P_Item_Rec.DEMAND_TIME_FENCE_DAYS,
3775     P_Item_Rec.END_ASSEMBLY_PEGGING_FLAG,
3776     P_Item_Rec.REPETITIVE_PLANNING_FLAG,
3777     P_Item_Rec.PLANNING_EXCEPTION_SET,
3778     P_Item_Rec.BOM_ITEM_TYPE,
3779     P_Item_Rec.PICK_COMPONENTS_FLAG,
3780     P_Item_Rec.REPLENISH_TO_ORDER_FLAG,
3781     P_Item_Rec.BASE_ITEM_ID,
3782     P_Item_Rec.ATP_COMPONENTS_FLAG,
3783     P_Item_Rec.ATP_FLAG,
3784     P_Item_Rec.FIXED_LEAD_TIME,
3785     P_Item_Rec.VARIABLE_LEAD_TIME,
3786     P_Item_Rec.WIP_SUPPLY_LOCATOR_ID,
3787     P_Item_Rec.WIP_SUPPLY_TYPE,
3788     P_Item_Rec.WIP_SUPPLY_SUBINVENTORY,
3789     P_Item_Rec.COST_OF_SALES_ACCOUNT,
3790     P_Item_Rec.SALES_ACCOUNT,
3791     P_Item_Rec.DEFAULT_INCLUDE_IN_ROLLUP_FLAG,
3792     P_Item_Rec.INVENTORY_ITEM_STATUS_CODE,
3793     P_Item_Rec.INVENTORY_PLANNING_CODE,
3794     P_Item_Rec.PLANNER_CODE,
3795     P_Item_Rec.PLANNING_MAKE_BUY_CODE,
3796     P_Item_Rec.FIXED_LOT_MULTIPLIER,
3797     P_Item_Rec.ROUNDING_CONTROL_TYPE,
3798     P_Item_Rec.CARRYING_COST,
3799     P_Item_Rec.POSTPROCESSING_LEAD_TIME,
3800     P_Item_Rec.PREPROCESSING_LEAD_TIME,
3801     P_Item_Rec.BUYER_ID,
3802     P_Item_Rec.ACCOUNTING_RULE_ID,
3803     P_Item_Rec.INVOICING_RULE_ID,
3804     P_Item_Rec.OVER_SHIPMENT_TOLERANCE,
3805     P_Item_Rec.UNDER_SHIPMENT_TOLERANCE,
3806     P_Item_Rec.OVER_RETURN_TOLERANCE,
3807     P_Item_Rec.UNDER_RETURN_TOLERANCE,
3808     P_Item_Rec.EQUIPMENT_TYPE,
3809     P_Item_Rec.RECOVERED_PART_DISP_CODE,
3810     P_Item_Rec.DEFECT_TRACKING_ON_FLAG,
3811     P_Item_Rec.EVENT_FLAG,
3812     P_Item_Rec.ELECTRONIC_FLAG,
3813     P_Item_Rec.DOWNLOADABLE_FLAG,
3814     P_Item_Rec.VOL_DISCOUNT_EXEMPT_FLAG,
3815     P_Item_Rec.COUPON_EXEMPT_FLAG,
3816     P_Item_Rec.COMMS_NL_TRACKABLE_FLAG,
3817     P_Item_Rec.ASSET_CREATION_CODE,
3818     P_Item_Rec.COMMS_ACTIVATION_REQD_FLAG,
3819     P_Item_Rec.ORDERABLE_ON_WEB_FLAG,
3820     P_Item_Rec.BACK_ORDERABLE_FLAG,
3821     P_Item_Rec.WEB_STATUS,
3822     P_Item_Rec.INDIVISIBLE_FLAG,
3823     P_Item_Rec.DIMENSION_UOM_CODE,
3824     P_Item_Rec.UNIT_LENGTH,
3825     P_Item_Rec.UNIT_WIDTH,
3826     P_Item_Rec.UNIT_HEIGHT,
3827     P_Item_Rec.BULK_PICKED_FLAG,
3828     P_Item_Rec.LOT_STATUS_ENABLED,
3829     P_Item_Rec.DEFAULT_LOT_STATUS_ID,
3830     P_Item_Rec.SERIAL_STATUS_ENABLED,
3831     P_Item_Rec.DEFAULT_SERIAL_STATUS_ID,
3832     P_Item_Rec.LOT_SPLIT_ENABLED,
3833     P_Item_Rec.LOT_MERGE_ENABLED,
3834     P_Item_Rec.INVENTORY_CARRY_PENALTY,
3835     P_Item_Rec.OPERATION_SLACK_PENALTY,
3836     P_Item_Rec.FINANCING_ALLOWED_FLAG,
3837     P_Item_Rec.EAM_ITEM_TYPE,
3838     P_Item_Rec.EAM_ACTIVITY_TYPE_CODE,
3839     P_Item_Rec.EAM_ACTIVITY_CAUSE_CODE,
3840     P_Item_Rec.EAM_ACT_NOTIFICATION_FLAG,
3841     P_Item_Rec.EAM_ACT_SHUTDOWN_STATUS,
3842     P_Item_Rec.DUAL_UOM_CONTROL,
3843     P_Item_Rec.SECONDARY_UOM_CODE,
3844     P_Item_Rec.DUAL_UOM_DEVIATION_HIGH,
3845     P_Item_Rec.DUAL_UOM_DEVIATION_LOW,
3846     l_SERVICE_ITEM_FLAG,
3847     l_VENDOR_WARRANTY_FLAG,
3848     l_USAGE_ITEM_FLAG,
3849     P_Item_Rec.CONTRACT_ITEM_TYPE_CODE,
3850     P_Item_Rec.SUBSCRIPTION_DEPEND_FLAG,
3851     P_Item_Rec.SERV_REQ_ENABLED_CODE,
3852     P_Item_Rec.SERV_BILLING_ENABLED_FLAG,
3853     P_Item_Rec.SERV_IMPORTANCE_LEVEL,
3854     P_Item_Rec.PLANNED_INV_POINT_FLAG,
3855     P_Item_Rec.LOT_TRANSLATE_ENABLED,
3856     P_Item_Rec.DEFAULT_SO_SOURCE_TYPE,
3857     P_Item_Rec.CREATE_SUPPLY_FLAG,
3858     P_Item_Rec.SUBSTITUTION_WINDOW_CODE,
3859     P_Item_Rec.SUBSTITUTION_WINDOW_DAYS,
3860     P_Item_Rec.IB_ITEM_INSTANCE_CLASS,
3861     P_Item_Rec.CONFIG_MODEL_TYPE,
3862     P_Item_Rec.LOT_SUBSTITUTION_ENABLED,
3863     P_Item_Rec.MINIMUM_LICENSE_QUANTITY,
3864     P_Item_Rec.EAM_ACTIVITY_SOURCE_CODE,
3865 -- Added for 11.5.10
3866     P_Item_Rec.TRACKING_QUANTITY_IND ,
3867     P_Item_Rec.ONT_PRICING_QTY_SOURCE,
3868     P_Item_Rec.SECONDARY_DEFAULT_IND ,
3869     P_Item_Rec.OPTION_SPECIFIC_SOURCED,
3870     p_Item_rec.CONFIG_ORGS,
3871     p_Item_rec.CONFIG_MATCH,
3872     P_Item_Rec.SEGMENT1,
3873     P_Item_Rec.SEGMENT2,
3874     P_Item_Rec.SEGMENT3,
3875     P_Item_Rec.SEGMENT4,
3876     P_Item_Rec.SEGMENT5,
3877     P_Item_Rec.SEGMENT6,
3878     P_Item_Rec.SEGMENT7,
3879     P_Item_Rec.SEGMENT8,
3880     P_Item_Rec.SEGMENT9,
3881     P_Item_Rec.SEGMENT10,
3882     P_Item_Rec.SEGMENT11,
3883     P_Item_Rec.SEGMENT12,
3884     P_Item_Rec.SEGMENT13,
3885     P_Item_Rec.SEGMENT14,
3886     P_Item_Rec.SEGMENT15,
3887     P_Item_Rec.SEGMENT16,
3888     P_Item_Rec.SEGMENT17,
3889     P_Item_Rec.SEGMENT18,
3890     P_Item_Rec.SEGMENT19,
3891     P_Item_Rec.SEGMENT20,
3892     P_Item_Rec.ATTRIBUTE_CATEGORY,
3893     P_Item_Rec.ATTRIBUTE1,
3894     P_Item_Rec.ATTRIBUTE2,
3895     P_Item_Rec.ATTRIBUTE3,
3896     P_Item_Rec.ATTRIBUTE4,
3897     P_Item_Rec.ATTRIBUTE5,
3898     P_Item_Rec.LIFECYCLE_ID,
3899     P_Item_Rec.CURRENT_PHASE_ID,
3900     P_Item_Rec.CREATION_DATE,
3901     P_Item_Rec.CREATED_BY,
3902     P_Item_Rec.LAST_UPDATE_DATE,
3903     P_Item_Rec.LAST_UPDATED_BY,
3904     P_Item_Rec.LAST_UPDATE_LOGIN,
3905     P_Item_Rec.VMI_MINIMUM_UNITS,
3906     P_Item_Rec.VMI_MINIMUM_DAYS,
3907     P_Item_Rec.VMI_MAXIMUM_UNITS,
3908     P_Item_Rec.VMI_MAXIMUM_DAYS ,
3909     P_Item_Rec.VMI_FIXED_ORDER_QUANTITY ,
3910     P_Item_Rec.SO_AUTHORIZATION_FLAG ,
3911     P_Item_Rec.CONSIGNED_FLAG   ,
3912     P_Item_Rec.ASN_AUTOEXPIRE_FLAG ,
3913     P_Item_Rec.VMI_FORECAST_TYPE ,
3914     P_Item_Rec.FORECAST_HORIZON  ,
3915     P_Item_Rec.EXCLUDE_FROM_BUDGET_FLAG  ,
3916     P_Item_Rec.DAYS_TGT_INV_SUPPLY  ,
3917     P_Item_Rec.DAYS_TGT_INV_WINDOW  ,
3918     P_Item_Rec.DAYS_MAX_INV_SUPPLY  ,
3919     P_Item_Rec.DAYS_MAX_INV_WINDOW   ,
3920     P_Item_Rec.DRP_PLANNED_FLAG     ,
3921     P_Item_Rec.CRITICAL_COMPONENT_FLAG  ,
3922     P_Item_Rec.CONTINOUS_TRANSFER   ,
3923     P_Item_Rec.CONVERGENCE         ,
3924     P_Item_Rec.DIVERGENCE,
3925     /* Start Bug 3713912 */--Added for R12
3926     P_Item_rec.LOT_DIVISIBLE_FLAG,
3927     P_Item_Rec.GRADE_CONTROL_FLAG,
3928     P_Item_Rec.DEFAULT_GRADE,
3929     P_Item_Rec.CHILD_LOT_FLAG,
3930     P_Item_Rec.PARENT_CHILD_GENERATION_FLAG,
3931     P_Item_Rec.CHILD_LOT_PREFIX,
3932     P_Item_Rec.CHILD_LOT_STARTING_NUMBER,
3933     P_Item_Rec.CHILD_LOT_VALIDATION_FLAG,
3934     P_Item_Rec.COPY_LOT_ATTRIBUTE_FLAG,
3935     P_Item_Rec.RECIPE_ENABLED_FLAG,
3936     P_Item_Rec.PROCESS_QUALITY_ENABLED_FLAG,
3937     P_Item_Rec.PROCESS_EXECUTION_ENABLED_FLAG,
3938     P_Item_Rec.PROCESS_COSTING_ENABLED_FLAG,
3939     P_Item_Rec.PROCESS_SUPPLY_SUBINVENTORY,
3940     P_Item_Rec.PROCESS_SUPPLY_LOCATOR_ID,
3941     P_Item_Rec.PROCESS_YIELD_SUBINVENTORY,
3942     P_Item_Rec.PROCESS_YIELD_LOCATOR_ID,
3943     P_Item_Rec.HAZARDOUS_MATERIAL_FLAG,
3944     P_Item_Rec.CAS_NUMBER,
3945     P_Item_Rec.RETEST_INTERVAL,
3946     P_Item_Rec.EXPIRATION_ACTION_INTERVAL,
3947     P_Item_Rec.EXPIRATION_ACTION_CODE,
3948     P_Item_Rec.MATURITY_DAYS,
3949     P_Item_Rec.HOLD_DAYS,
3950     P_Item_Rec.ATTRIBUTE16,
3951     P_Item_Rec.ATTRIBUTE17,
3952     P_Item_Rec.ATTRIBUTE18,
3953     P_Item_Rec.ATTRIBUTE19,
3954     P_Item_Rec.ATTRIBUTE20,
3955     P_Item_Rec.ATTRIBUTE21,
3956     P_Item_Rec.ATTRIBUTE22,
3957     P_Item_Rec.ATTRIBUTE23,
3958     P_Item_Rec.ATTRIBUTE24,
3959     P_Item_Rec.ATTRIBUTE25,
3960     P_Item_Rec.ATTRIBUTE26,
3961     P_Item_Rec.ATTRIBUTE27,
3962     P_Item_Rec.ATTRIBUTE28,
3963     P_Item_Rec.ATTRIBUTE29,
3964     P_Item_Rec.ATTRIBUTE30,
3965     /* End Bug 3713912 */
3966     p_Item_rec.CHARGE_PERIODICITY_CODE,
3967     p_Item_rec.REPAIR_LEADTIME,
3968     p_Item_rec.REPAIR_YIELD,
3969     p_Item_rec.PREPOSITION_POINT,
3970     p_Item_rec.REPAIR_PROGRAM,
3971     p_Item_rec.SUBCONTRACTING_COMPONENT,
3972     p_Item_rec.OUTSOURCED_ASSEMBLY,
3973    /*  Bug 4224512 Updating the object version number - Anmurali */
3974    1,
3975    -- Fix for Bug#6644711
3976    p_Item_rec.DEFAULT_MATERIAL_STATUS_ID
3977    )
3978     RETURNING ROWID INTO x_row_Id;
3979 
3980    IF (P_Item_Rec.organization_id = Get_Master_Org_ID (P_Item_Rec.organization_id) ) THEN
3981       -- If the Org is master, insert the source language translated columns
3982       -- for child organizations.
3983 
3984       INSERT INTO MTL_SYSTEM_ITEMS_TL(
3985        INVENTORY_ITEM_ID,
3986        ORGANIZATION_ID,
3987        LANGUAGE,
3988        SOURCE_LANG,
3989        DESCRIPTION,
3990        LONG_DESCRIPTION,
3991        LAST_UPDATE_DATE,
3992        LAST_UPDATED_BY,
3993        CREATION_DATE,
3994        CREATED_BY,
3995        LAST_UPDATE_LOGIN )
3996       SELECT
3997        P_Item_Rec.INVENTORY_ITEM_ID,
3998        P_Item_Rec.ORGANIZATION_ID,
3999        L.LANGUAGE_CODE,
4000        USERENV('LANG'),
4001        ltrim(rtrim(P_Item_Rec.DESCRIPTION)),
4002        ltrim(rtrim(P_Item_Rec.LONG_DESCRIPTION)),
4003        P_Item_Rec.LAST_UPDATE_DATE,
4004        P_Item_Rec.LAST_UPDATED_BY,
4005        P_Item_Rec.CREATION_DATE,
4006        P_Item_Rec.CREATED_BY,
4007        P_Item_Rec.LAST_UPDATE_LOGIN
4008       FROM  FND_LANGUAGES  L
4009       WHERE  L.INSTALLED_FLAG in ('I', 'B')
4010       AND  NOT EXISTS
4011          ( SELECT NULL
4012            FROM  MTL_SYSTEM_ITEMS_TL  T
4013            WHERE T.INVENTORY_ITEM_ID = P_Item_Rec.INVENTORY_ITEM_ID
4014            AND   T.ORGANIZATION_ID = P_Item_Rec.ORGANIZATION_ID
4015            AND   T.LANGUAGE = L.LANGUAGE_CODE);
4016    ELSE
4017       -- If the Org is not master, then while creating new child items,
4018       -- copy translated columns from the master item record.
4019       INSERT INTO MTL_SYSTEM_ITEMS_TL  (
4020        INVENTORY_ITEM_ID,
4021        ORGANIZATION_ID,
4022        LANGUAGE,
4023        SOURCE_LANG,
4024        DESCRIPTION,
4025        LONG_DESCRIPTION,
4026        LAST_UPDATE_DATE,
4027        LAST_UPDATED_BY,
4028        CREATION_DATE,
4029        CREATED_BY,
4030        LAST_UPDATE_LOGIN)
4031       SELECT
4032        P_Item_Rec.INVENTORY_ITEM_ID,
4033        P_Item_Rec.ORGANIZATION_ID,
4034        MSI.LANGUAGE,
4035        MSI.SOURCE_LANG,
4036        ltrim(rtrim(MSI.DESCRIPTION)),
4037        ltrim(rtrim(MSI.LONG_DESCRIPTION)),
4038        P_Item_Rec.LAST_UPDATE_DATE,
4039        P_Item_Rec.LAST_UPDATED_BY,
4040        P_Item_Rec.CREATION_DATE,
4041        P_Item_Rec.CREATED_BY,
4042        P_Item_Rec.LAST_UPDATE_LOGIN
4043       FROM
4044        MTL_SYSTEM_ITEMS_TL  MSI,
4045        MTL_PARAMETERS       MP
4046       WHERE
4047           MSI.INVENTORY_ITEM_ID = P_Item_Rec.INVENTORY_ITEM_ID
4048       AND  MSI.ORGANIZATION_ID   = MP.MASTER_ORGANIZATION_ID
4049       AND  MP.ORGANIZATION_ID = P_Item_Rec.ORGANIZATION_ID;
4050    END IF;
4051 
4052    --
4053    -- Finally, send messages to dependent business objects.
4054    --
4055    --Bug: 2718703 checking for ENI product before calling their package
4056    IF ( INV_Item_Util.g_Appl_Inst.ENI <> 0 ) THEN
4057 
4058       EXECUTE IMMEDIATE
4059       ' BEGIN                                                           '||
4060       '    ENI_ITEMS_STAR_PKG.Insert_Items_In_Star(                     '||
4061       '       p_api_version         =>  1.0                             '||
4062       '    ,  p_init_msg_list       =>  FND_API.g_TRUE                  '||
4063       '    ,  p_inventory_item_id   => :l_Inventory_Item_ID             '||
4064       '    ,  p_organization_id     => :l_Organization_ID               '||
4065       '    ,  x_return_status       => :l_return_status                 '||
4066       '    ,  x_msg_count           => :l_msg_count                     '||
4067       '    ,  x_msg_data            => :l_msg_data   );                 '||
4068       ' END;'
4069       USING IN l_Inventory_Item_ID, IN l_Organization_ID, OUT l_return_status, OUT l_msg_count, OUT l_msg_data;
4070 
4071       IF ( l_return_status = FND_API.g_RET_STS_ERROR ) THEN
4072          FND_MESSAGE.Set_Encoded (l_msg_data);
4073          APP_EXCEPTION.Raise_Exception;
4074       ELSIF ( l_return_status = FND_API.g_RET_STS_UNEXP_ERROR ) THEN
4075          FND_MESSAGE.Set_Encoded (l_msg_data);
4076          APP_EXCEPTION.Raise_Exception;
4077       END IF;
4078 
4079    END IF;
4080 
4081    --Bug: 2728939 Calling add grant if EGO is installed
4082    OPEN  c_ego_exists;
4083    FETCH c_ego_exists INTO l_ego_exists;
4084    CLOSE c_ego_exists;
4085 
4086    -- For Internal Users , Customer_Id may not getting populated in FND_USER
4087    -- Hence checking USER_ID from ego_people_v which always return all registered
4088    -- Users (Customer, Internal and Vendor)
4089    -- Bug Fix : 3048453
4090    --3797291: Using fnd_grants API instead of EGO API.
4091    IF (l_ego_exists = 'Y'  AND INV_Item_Util.g_Appl_Inst.EGO <> 0 ) THEN
4092       l_party_id := NULL;
4093       BEGIN
4094 
4095          --4932512 : Replacing ego_people with ego_user
4096          SELECT party_id INTO l_party_id
4097          FROM EGO_USER_V
4098          WHERE USER_ID = FND_GLOBAL.User_ID;
4099 
4100          IF l_party_id IS NOT NULL THEN
4101             FND_GRANTS_PKG.GRANT_FUNCTION(
4102                P_API_VERSION        => 1.0
4103               ,P_MENU_NAME          => 'EGO_ITEM_OWNER'
4104               ,P_OBJECT_NAME        => 'EGO_ITEM'
4105               ,P_INSTANCE_TYPE      => 'INSTANCE'
4106               ,P_INSTANCE_PK1_VALUE => l_Inventory_Item_ID
4107               ,P_INSTANCE_PK2_VALUE => l_Organization_ID
4108               ,P_GRANTEE_KEY        => 'HZ_PARTY:'||TO_CHAR(l_party_id)
4109               ,P_START_DATE         => SYSDATE
4110               ,P_END_DATE           => NULL
4111               ,X_GRANT_GUID         => l_grant_Guid
4112               ,X_SUCCESS            => l_return_status
4113               ,X_ERRORCODE          => l_msg_count);
4114          END IF;
4115       EXCEPTION
4116          WHEN OTHERS THEN
4117             NULL;
4118       END;
4119    END IF;
4120 
4121    /* R12: Business Event Enhancement:
4122    Raise Event if Item got Created successfully */
4123    BEGIN
4124       INV_ITEM_EVENTS_PVT.Raise_Events(
4125            p_event_name        => 'EGO_WF_WRAPPER_PVT.G_ITEM_CREATE_EVENT'
4126           ,p_dml_type          => 'CREATE'
4127           ,p_inventory_item_id => P_Item_Rec.INVENTORY_ITEM_ID
4128           ,p_item_description  => ltrim(rtrim(P_Item_Rec.DESCRIPTION))
4129           ,p_organization_id   => P_Item_Rec.ORGANIZATION_Id );
4130       EXCEPTION
4131           WHEN OTHERS THEN
4132              NULL;
4133    END;
4134 
4135    l_mast_organization_id := Get_Master_Org_ID(P_Item_Rec.organization_id);
4136 
4137    IF (P_Item_Rec.organization_id = l_mast_organization_id ) THEN
4138       l_master_org := 'Y';
4139    ELSE
4140       l_master_org := 'N';
4141    END IF;
4142 
4143    BEGIN
4144      IF l_master_org = 'N' THEN
4145           INV_ITEM_EVENTS_PVT.Invoke_JAI_API(
4146              p_action_type              =>  'ASSIGN'
4147            , p_organization_id          =>  p_item_rec.organization_id
4148            , p_inventory_item_id        =>  p_item_rec.inventory_item_id
4149            , p_source_organization_id   =>  l_mast_organization_id
4150            , p_source_inventory_item_id =>  p_item_rec.inventory_item_id
4151            , p_set_process_id           =>  NULL
4152            , p_called_from              =>  'INVVITM.pls');
4153      END IF;
4154    EXCEPTION
4155         WHEN OTHERS THEN
4156            NULL;
4157    END;
4158    --R12: Business Event Enhancement
4159 END Insert_Row;
4160 
4161 
4162 PROCEDURE Update_Row(P_Item_Rec  IN   INV_ITEM_API.Item_rec_type)
4163 IS
4164 
4165    l_return_status  VARCHAR2(1);
4166    l_msg_count      NUMBER;
4167    l_msg_data       VARCHAR2(2000);
4168 
4169 BEGIN
4170 
4171     INV_ITEM_PVT.Update_Org_Items(
4172       p_init_msg_list     =>  fnd_api.g_TRUE
4173      ,p_commit            =>  fnd_api.g_FALSE
4174      ,p_lock_rows         =>  fnd_api.g_FALSE
4175      ,p_validation_level  =>  fnd_api.g_VALID_LEVEL_FULL
4176      ,p_Item_rec          =>  P_Item_Rec
4177      ,p_validate_Master   =>  fnd_api.g_FALSE
4178      ,x_return_status     =>  l_return_status
4179      ,x_msg_count         =>  l_msg_count
4180      ,x_msg_data          =>  l_msg_data);
4181 
4182      IF ( l_return_status = fnd_api.g_RET_STS_ERROR ) THEN
4183         fnd_message.SET_ENCODED( l_msg_data );
4184         Raise FND_API.g_EXC_UNEXPECTED_ERROR;
4185      ELSIF ( l_return_status = fnd_api.g_RET_STS_UNEXP_ERROR ) THEN
4186         fnd_message.SET_ENCODED( l_msg_data );
4187         Raise FND_API.g_EXC_UNEXPECTED_ERROR;
4188      END IF;
4189 
4190      --
4191      -- Finally, send messages to dependent business objects.
4192      --
4193 END Update_Row;
4194 
4195 --Jalaj Srivastava Bug 5017588
4196 --added to check if sec uom class is mismatched
4197 
4198 PROCEDURE check_mismatch_of_secuom_class(
4199  p_inventory_item_id        IN     NUMBER
4200 ,p_secondary_uom_class      IN     MTL_UNITS_OF_MEASURE.UOM_CLASS%TYPE)
4201 IS
4202   Cursor c_check_sec_uom_class(Vinventory_item_id  mtl_system_items_b.inventory_item_id%TYPE) IS
4203     SELECT  muomv.UOM_CLASS
4204     FROM    MTL_UNITS_OF_MEASURE_VL muomv, mtl_system_items_b msib
4205     WHERE   muomv.uom_code  = msib.secondary_uom_code
4206     AND     msib.inventory_item_id = Vinventory_item_id
4207     AND     msib.secondary_uom_code IS NOT NULL
4208     AND     ROWNUM = 1;
4209 
4210    l_sec_uom_class        MTL_UNITS_OF_MEASURE.UOM_CLASS%TYPE := NULL;
4211 BEGIN
4212   --check for uom class in other orgs
4213   OPEN  c_check_sec_uom_class(Vinventory_item_id => p_inventory_item_id);
4214   FETCH c_check_sec_uom_class INTO l_sec_uom_class;
4215   IF (c_check_sec_uom_class%NOTFOUND) THEN
4216     l_sec_uom_class := NULL;
4217   END IF;
4218   CLOSE c_check_sec_uom_class;
4219   --raise error if item exists anywhere else with a different sec uom class
4220   IF (l_sec_uom_class <> p_secondary_uom_class) THEN
4221     FND_MESSAGE.SET_NAME('INV','INV_SEC_UOM_MISMATCH_CLASS');
4222     Raise FND_API.g_EXC_UNEXPECTED_ERROR;
4223   END IF;
4224 
4225 END check_mismatch_of_secuom_class;
4226 
4227 PROCEDURE Create_Item(
4228  P_Item_Rec                 IN     INV_ITEM_API.Item_rec_type
4229 ,P_Item_Category_Struct_Id  IN     NUMBER
4230 ,P_Inv_Install              IN     NUMBER
4231 ,P_Master_Org_Id            IN     MTL_SYSTEM_ITEMS.ORGANIZATION_ID%TYPE
4232 ,P_Category_Set_Id          IN     NUMBER
4233 ,P_Item_Category_Id         IN     NUMBER
4234 ,P_Event                    IN     VARCHAR2 DEFAULT 'INSERT'
4235 ,x_row_Id                   OUT    NOCOPY ROWID
4236 ,P_Default_Move_Order_Sub_Inv IN VARCHAR2 -- Item Transaction Defaults for 11.5.9
4237 ,P_Default_Receiving_Sub_Inv  IN VARCHAR2
4238 ,P_Default_Shipping_Sub_Inv   IN VARCHAR2)
4239 IS
4240 
4241    Cursor c_get_uom_class(cp_uom  mtl_units_of_measure_vl.unit_of_measure%TYPE
4242                           /* Bug 3713912 */ ,cp_uom_code mtl_units_of_measure_vl.uom_code%TYPE) IS
4243       SELECT  UOM_CLASS
4244       FROM    MTL_UNITS_OF_MEASURE_VL
4245       WHERE   UNIT_OF_MEASURE = cp_uom
4246               OR uom_code = cp_uom_code;
4247 
4248    Cursor c_get_item_count(cp_Org_Id   MTL_SYSTEM_ITEMS.ORGANIZATION_ID%TYPE
4249                           ,cp_Item_Id  MTL_SYSTEM_ITEMS.INVENTORY_ITEM_ID%TYPE)
4250    IS
4251       SELECT  COUNT(1)
4252       FROM    MTL_SYSTEM_ITEMS
4253       WHERE   INVENTORY_ITEM_ID  = cp_Item_Id
4254       AND     ORGANIZATION_ID    = cp_org_id;
4255 
4256    l_item_count       NUMBER :=0;
4257    l_primary_uom      MTL_SYSTEM_ITEMS.PRIMARY_UNIT_OF_MEASURE%TYPE;
4258    l_primary_uom_code MTL_UNITS_OF_MEASURE_VL.UOM_CODE%TYPE;
4259    l_new_item_id      MTL_SYSTEM_ITEMS.INVENTORY_ITEM_ID%TYPE;
4260    l_unit_of_measure  MTL_SYSTEM_ITEMS.PRIMARY_UNIT_OF_MEASURE%TYPE;
4261    l_uom_class        MTL_UNITS_OF_MEASURE.UOM_CLASS%TYPE := NULL;
4262    l_rec_uom_class    MTL_UNITS_OF_MEASURE.UOM_CLASS%TYPE;
4263    l_description      MTL_SYSTEM_ITEMS.DESCRIPTION%TYPE;
4264    l_catalog_grp_id   NUMBER;
4265    l_folder_item_cat_id NUMBER := NULL;
4266    /* Bug 3713912 */
4267    l_rec_sec_uom_class    MTL_UNITS_OF_MEASURE.UOM_CLASS%TYPE;
4268    l_master_org        VARCHAR2(1);
4269 BEGIN
4270   --Jalaj Srivastava Bug 5017588
4271   IF (P_Item_rec.secondary_uom_code IS NOT NULL) THEN
4272     --get the uom class for the current record
4273     OPEN  c_get_uom_class(cp_uom => NULL, cp_uom_code => P_Item_rec.secondary_uom_code);
4274     FETCH c_get_uom_class INTO l_rec_sec_uom_class;
4275     CLOSE c_get_uom_class;
4276   END IF;
4277   --{
4278   IF P_Event <> 'ORG_ASSIGN' THEN
4279      --Item uniqueness procedure
4280       Check_Item_Number (
4281          P_Segment_Rec            => P_Item_Rec
4282         ,P_Item_Id                => l_new_item_id
4283         ,P_Description            => l_description
4284         ,P_unit_of_measure        => l_unit_of_measure
4285         ,P_Item_Catalog_Group_Id  => l_catalog_grp_id);
4286       --{
4287       IF l_new_item_id IS NOT NULL THEN
4288 
4289          --Item exists with same segment combinations
4290          --If in the same org grp raise error otherwise match on catlog and uom class.
4291 
4292          OPEN c_get_item_count(cp_org_id   => P_Item_rec.organization_id
4293                               ,cp_Item_Id  => l_new_item_id);
4294 
4295          FETCH c_get_item_count INTO l_item_count;
4296          CLOSE c_get_item_count;
4297          IF l_item_count > 0 THEN
4298             FND_MESSAGE.SET_NAME('INV','INV_DUPLICATE_ITEM');
4299             Raise FND_API.g_EXC_UNEXPECTED_ERROR;
4300          END IF;
4301          IF l_catalog_grp_id <> P_Item_Rec.item_catalog_group_id THEN
4302             FND_MESSAGE.SET_NAME( 'INV','INV_MISMATCH_CATALOG' );
4303             Raise FND_API.g_EXC_UNEXPECTED_ERROR;
4304          END IF;
4305 
4306          OPEN  c_get_uom_class(cp_uom => l_unit_of_measure, cp_uom_code => NULL);
4307          FETCH c_get_uom_class INTO l_uom_class;
4308          CLOSE c_get_uom_class;
4309          OPEN  c_get_uom_class(cp_uom => P_Item_Rec.primary_unit_of_measure, cp_uom_code => NULL);
4310          FETCH c_get_uom_class INTO l_rec_uom_class;
4311          CLOSE   c_get_uom_class;
4312 
4313          IF l_uom_class <> l_rec_uom_class THEN
4314             FND_MESSAGE.SET_NAME('INV','INV_MISMATCH_CLASS');
4315             Raise FND_API.g_EXC_UNEXPECTED_ERROR;
4316          END IF;
4317          --Jalaj Srivastava Bug 5017588
4318          --check for mismatch of sec uom class.
4319          check_mismatch_of_secuom_class( p_inventory_item_id   => l_new_item_id
4320                                          ,p_secondary_uom_class => l_rec_sec_uom_class);
4321       END IF;--}
4322    --Jalaj Srivastava Bug 5017588
4323    ELSIF P_Event = 'ORG_ASSIGN' THEN
4324      --check for mismatch of sec uom class.
4325      --sec uom may now also be changed via org assignment
4326      --item created as non dual may be defined as dual while doing org assign.
4327      check_mismatch_of_secuom_class( p_inventory_item_id   => P_Item_rec.inventory_item_id
4328                                      ,p_secondary_uom_class => l_rec_sec_uom_class);
4329    END IF;--}
4330 
4331    --Insert the item row
4332    INSERT_ROW(P_Item_Rec          => P_Item_Rec,
4333               x_row_id            => x_row_Id);
4334 
4335    IF P_Event ='ORG_ASSIGN' THEN
4336       l_primary_uom       := NULL;
4337       l_primary_uom_code  := NULL;
4338       l_rec_uom_class     := NULL;
4339    ELSE
4340       INVIDIT3.Set_Inv_Item_id(P_Item_Rec.INVENTORY_ITEM_ID);
4341       l_primary_uom       := P_Item_rec.primary_unit_of_measure;
4342       l_primary_uom_code  := P_Item_rec.primary_uom_code;
4343    END IF;
4344 
4345    IF l_rec_uom_class IS NULL THEN
4346       OPEN  c_get_uom_class(cp_uom => P_Item_Rec.primary_unit_of_measure, cp_uom_code => NULL);
4347       FETCH c_get_uom_class INTO l_rec_uom_class;
4348       CLOSE   c_get_uom_class;
4349    END IF;
4350 
4351    IF P_Item_Category_Struct_Id IS NOT NULL THEN
4352       l_folder_item_cat_id := P_Item_Category_Id;
4353    ELSE
4354       l_folder_item_cat_id := NULL;
4355    END IF;
4356 
4357    INVIDIT2.Table_Inserts (
4358 	X_EVENT                      => P_Event,
4359 	X_ITEM_ID                    => P_Item_Rec.inventory_item_id,
4360 	X_ORG_ID                     => P_Item_rec.organization_id,
4361 	X_MASTER_ORG_ID              => P_Master_Org_Id,
4362 	X_STATUS_CODE                => P_Item_rec.inventory_item_status_code,
4363 	X_INVENTORY_ITEM_FLAG        => P_Item_rec.inventory_item_flag,
4364 	X_PURCHASING_ITEM_FLAG       => P_Item_rec.purchasing_item_flag,
4365 	X_INTERNAL_ORDER_FLAG        => P_Item_rec.internal_order_flag,
4366 	X_MRP_PLANNING_CODE          => P_Item_rec.mrp_planning_code,
4367 	X_SERVICEABLE_PRODUCT_FLAG   => P_Item_rec.serviceable_product_flag,
4368 	X_COSTING_ENABLED_FLAG       => P_Item_rec.costing_enabled_flag,
4369 	X_ENG_ITEM_FLAG              => P_Item_rec.eng_item_flag,
4370 	X_CUSTOMER_ORDER_FLAG        => P_Item_rec.customer_order_flag,
4371 	X_EAM_ITEM_TYPE              => P_Item_rec.eam_item_type,
4372 	X_CONTRACT_ITEM_TYPE_CODE    => P_Item_rec.contract_item_type_code,
4373 	P_FOLDER_CATEGORY_SET_ID     => P_Category_set_id,
4374 	P_FOLDER_ITEM_CATEGORY_ID    => l_folder_item_cat_id,
4375 	X_ALLOWED_UNIT_CODE          => P_Item_rec.allowed_units_lookup_code,
4376 	X_PRIMARY_UOM                => l_primary_uom,
4377 	X_PRIMARY_UOM_CODE           => l_primary_uom_code,
4378 	X_PRIMARY_UOM_CLASS          => l_rec_uom_class,
4379 	X_INV_INSTALL                => P_inv_install,
4380 	X_LAST_UPDATED_BY            => P_Item_rec.last_updated_by,
4381 	X_LAST_UPDATE_LOGIN          => P_Item_rec.last_update_login,
4382 	X_ITEM_CATALOG_GROUP_ID      => -1
4383   ,P_Default_Move_Order_Sub_Inv  => P_Default_Move_Order_Sub_Inv
4384   ,P_Default_Receiving_Sub_Inv   => P_Default_Receiving_Sub_Inv
4385   ,P_Default_Shipping_Sub_Inv    => P_Default_Shipping_Sub_Inv
4386   ,P_Lifecycle_Id                => P_Item_rec.Lifecycle_Id
4387   ,P_Current_Phase_Id            => P_Item_rec.Current_Phase_id);
4388 
4389    --Call ICX APIs
4390    IF (P_Item_Rec.organization_id = P_Master_Org_Id ) THEN
4391       l_master_org := 'Y';
4392    ELSE
4393       l_master_org := 'N';
4394    END IF;
4395 
4396    BEGIN
4397      INV_ITEM_EVENTS_PVT.Invoke_ICX_APIs(
4398            p_entity_type       => 'ITEM'
4399           ,p_dml_type          => 'CREATE'
4400           ,p_inventory_item_id => P_Item_Rec.INVENTORY_ITEM_ID
4401           ,p_item_description  => ltrim(rtrim(P_Item_Rec.DESCRIPTION))
4402           ,p_organization_id   => P_Item_Rec.ORGANIZATION_Id
4403           ,p_master_org_flag   => l_master_org );
4404    EXCEPTION
4405       WHEN OTHERS THEN
4406          NULL;
4407    END;
4408 
4409 EXCEPTION
4410    WHEN FND_API.g_EXC_UNEXPECTED_ERROR THEN
4411       x_row_Id             := NULL;
4412       IF c_get_uom_class%ISOPEN THEN
4413          CLOSE c_get_uom_class;
4414       END IF;
4415       IF c_get_item_count%ISOPEN THEN
4416          CLOSE c_get_item_count;
4417       END IF;
4418       app_exception.raise_exception;
4419 
4420    WHEN OTHERS THEN
4421       x_row_Id             := NULL;
4422       IF c_get_uom_class%ISOPEN THEN
4423          CLOSE c_get_uom_class;
4424       END IF;
4425       IF c_get_item_count%ISOPEN THEN
4426          CLOSE c_get_item_count;
4427       END IF;
4428       app_exception.raise_exception;
4429 
4430 END Create_Item;
4431 
4432 
4433 PROCEDURE Delete_Cost_Details(
4434  P_Item_Id             IN MTL_SYSTEM_ITEMS_B.INVENTORY_ITEM_ID%TYPE
4435 ,P_Org_Id              IN MTL_SYSTEM_ITEMS_B.ORGANIZATION_ID%TYPE
4436 ,P_Asset_Flag          IN MTL_SYSTEM_ITEMS_B.INVENTORY_ASSET_FLAG%TYPE
4437 ,P_Cost_Txn            IN NUMBER
4438 ,P_Last_Updated_By     IN MTL_SYSTEM_ITEMS_B.LAST_UPDATED_BY%TYPE
4439 ,P_Last_Updated_Login  IN MTL_SYSTEM_ITEMS_B.LAST_UPDATE_LOGIN%TYPE)
4440 IS
4441 
4442    l_prim_cost_method 	MTL_PARAMETERS.PRIMARY_COST_METHOD%TYPE;
4443 /* l_profile_exists    BOOLEAN;
4444    l_profile_val        VARCHAR2(240); Bug 4247149*/
4445 
4446 BEGIN
4447    IF NVL(P_cost_txn,-99) <> 1 THEN
4448 
4449       SELECT  	primary_cost_method
4450       INTO      l_prim_cost_method
4451       FROM      mtl_parameters
4452       WHERE	ORGANIZATION_ID = p_org_id;
4453 
4454       UPDATE cst_item_costs
4455       SET    inventory_asset_flag    = decode(P_Asset_Flag,'Y', 1, 2)
4456             ,LAST_UPDATED_BY         = P_Last_Updated_By
4457             ,LAST_UPDATE_DATE        = SYSDATE
4458             ,LAST_UPDATE_LOGIN       = P_Last_Updated_Login
4459             ,PL_MATERIAL             = 0
4460             ,PL_MATERIAL_OVERHEAD    = 0
4461             ,PL_RESOURCE             = 0
4462             ,PL_OUTSIDE_PROCESSING   = 0
4463             ,PL_OVERHEAD             = 0
4464             ,TL_MATERIAL             = 0
4465             ,TL_MATERIAL_OVERHEAD    = 0
4466             ,TL_RESOURCE             = 0
4467             ,TL_OUTSIDE_PROCESSING   = 0
4468             ,TL_OVERHEAD             = 0
4469             ,MATERIAL_COST           = 0
4470             ,MATERIAL_OVERHEAD_COST  = 0
4471             ,RESOURCE_COST           = 0
4472             ,OUTSIDE_PROCESSING_COST = 0
4473             ,OVERHEAD_COST           = 0
4474             ,PL_ITEM_COST            = 0
4475             ,TL_ITEM_COST            = 0
4476             ,ITEM_COST               = 0
4477             ,UNBURDENED_COST         = 0
4478             ,BURDEN_COST             = 0
4479       WHERE  organization_id   = P_Org_Id
4480       AND    inventory_item_id = p_Item_Id
4481       AND    cost_type_id      = l_prim_cost_method;
4482 
4483       UPDATE cst_quantity_layers
4484       SET    LAST_UPDATED_BY         = P_Last_Updated_By
4485             ,LAST_UPDATE_DATE        = SYSDATE
4486             ,LAST_UPDATE_LOGIN       = P_Last_Updated_Login
4487             ,PL_MATERIAL             = 0
4488             ,PL_MATERIAL_OVERHEAD    = 0
4489             ,PL_RESOURCE             = 0
4490             ,PL_OUTSIDE_PROCESSING   = 0
4491             ,PL_OVERHEAD             = 0
4492             ,TL_MATERIAL             = 0
4493             ,TL_MATERIAL_OVERHEAD    = 0
4494             ,TL_RESOURCE             = 0
4495             ,TL_OUTSIDE_PROCESSING   = 0
4496             ,TL_OVERHEAD             = 0
4497             ,MATERIAL_COST           = 0
4498             ,MATERIAL_OVERHEAD_COST  = 0
4499             ,RESOURCE_COST           = 0
4500             ,OUTSIDE_PROCESSING_COST = 0
4501             ,OVERHEAD_COST           = 0
4502             ,PL_ITEM_COST            = 0
4503             ,TL_ITEM_COST            = 0
4504             ,ITEM_COST               = 0
4505             ,UNBURDENED_COST         = 0
4506             ,BURDEN_COST             = 0
4507       WHERE  organization_id   = P_Org_Id
4508       AND    inventory_item_id = P_Item_id;
4509 
4510       DELETE cst_item_cost_details
4511       WHERE  inventory_item_id = P_Item_id
4512       AND    organization_id   = P_Org_Id
4513       AND    cost_type_id      = l_prim_cost_method;
4514 
4515 /*    l_profile_exists := FND_PROFILE.DEFINED('CST_AVG_COSTING_OPTION');
4516 
4517       IF l_profile_exists  THEN
4518         FND_PROFILE.GET ('CST_AVG_COSTING_OPTION',l_profile_val);
4519       END IF; Bug 4247149*/
4520 
4521       IF (l_prim_cost_method IN (2,5,6))
4522 /*         AND l_profile_exists AND (l_profile_val = '2'))  Bug 4247149*/
4523       THEN
4524          DELETE cst_layer_cost_details
4525          WHERE  layer_id IN ( SELECT layer_id
4526 	                      FROM   cst_quantity_layers
4527   		              WHERE  inventory_item_id = P_Item_Id
4528                               AND    organization_id   = P_Org_Id );
4529          IF  (l_prim_cost_method IN (5,6))  THEN
4530       	    CSTPLENG.update_inv_layer_cost(
4531 	         I_ORG_ID   => P_Org_Id
4532 		,I_ITEM_ID  => P_Item_id
4533 		,I_USERID   => P_Last_Updated_By
4534 		,I_LOGIN_ID => P_Last_Updated_Login);
4535          END IF;
4536       END IF;
4537    END IF;
4538 
4539 EXCEPTION
4540    WHEN NO_DATA_FOUND THEN
4541       NULL;
4542 END Delete_Cost_Details;
4543 
4544 PROCEDURE Update_Item(
4545  P_Item_Rec                 IN  INV_ITEM_API.Item_rec_type
4546 ,P_Item_Category_Struct_Id  IN  NUMBER
4547 ,P_Inv_Install              IN  NUMBER
4548 ,P_Master_Org_Id            IN  MTL_SYSTEM_ITEMS.ORGANIZATION_ID%TYPE
4549 ,P_Category_Set_Id          IN  NUMBER
4550 ,P_Item_Category_Id         IN  NUMBER
4551 ,P_Mode                     IN  VARCHAR2
4552 ,P_Updateble_Item           IN  VARCHAR2
4553 ,P_Cost_Txn                 IN  VARCHAR2
4554 ,P_Item_Cost_Details        IN  VARCHAR2
4555 ,P_Inv_Item_status_old      IN  MTL_SYSTEM_ITEMS_FVL.INVENTORY_ITEM_STATUS_CODE%TYPE
4556 ,P_Default_Move_Order_Sub_Inv IN VARCHAR2 -- Item Transaction Defaults for 11.5.9
4557 ,P_Default_Receiving_Sub_Inv  IN VARCHAR2
4558 ,P_Default_Shipping_Sub_Inv   IN VARCHAR2
4559 ) IS
4560 
4561    Cursor c_get_uom_class(cp_uom  mtl_units_of_measure_vl.unit_of_measure%TYPE) IS
4562       SELECT  UOM_CLASS
4563       FROM    MTL_UNITS_OF_MEASURE_VL
4564       WHERE   UNIT_OF_MEASURE = cp_uom;
4565 
4566    l_rec_uom_class         MTL_UNITS_OF_MEASURE.UOM_CLASS%TYPE;
4567    l_folder_item_cat_id    NUMBER := NULL;
4568    l_cst_item_type         MTL_SYSTEM_ITEMS_FVL.PLANNING_MAKE_BUY_CODE%TYPE;
4569    l_Inventory_Item_status MTL_SYSTEM_ITEMS_FVL.INVENTORY_ITEM_STATUS_CODE%TYPE;
4570    l_event	           VARCHAR2(10);
4571    l_return_status         VARCHAR2(1);
4572    l_msg_count             NUMBER;
4573    l_msg_data              VARCHAR2(2000);
4574    l_master_org            VARCHAR2(1); --R12: Business Events
4575 
4576 BEGIN
4577    IF P_Item_Cost_Details = 'D' THEN
4578       Delete_Cost_Details(
4579          P_Item_Id             => P_Item_Rec.inventory_item_id
4580 	,P_Org_Id              => P_Item_rec.organization_id
4581 	,P_Asset_Flag          => P_Item_rec.inventory_asset_flag
4582 	,P_Cost_Txn            => P_Cost_Txn
4583 	,P_Last_Updated_By     => P_Item_Rec.last_updated_by
4584 	,P_Last_Updated_Login  => P_Item_Rec.last_update_login);
4585    END IF;
4586 
4587    IF P_Item_Cost_Details = 'I' THEN
4588       IF P_Item_Rec.planning_make_buy_code IN (1,2) THEN
4589          l_cst_item_type := P_Item_Rec.planning_make_buy_code;
4590       ELSE
4591          l_cst_item_type := 2;
4592       END IF;
4593       Delete_Cost_Details(
4594          P_Item_Id             => P_Item_Rec.inventory_item_id
4595 	,P_Org_Id              => P_Item_rec.organization_id
4596 	,P_Asset_Flag          => P_Item_rec.inventory_asset_flag
4597 	,P_Cost_Txn            => P_Cost_Txn
4598 	,P_Last_Updated_By     => P_Item_Rec.last_updated_by
4599 	,P_Last_Updated_Login  => P_Item_Rec.last_update_login);
4600 
4601      INVIDIT2.Insert_Cost_Details (
4602 	 x_item_id         => P_Item_rec.inventory_item_id
4603 	,x_org_id          => P_Item_rec.organization_id
4604      	,x_inv_install     => P_Inv_Install
4605      	,x_last_updated_by => P_Item_rec.last_updated_by
4606      	,x_cst_item_type   => l_cst_item_type );
4607    END IF;
4608 
4609    INVIDIT3.Set_Inv_Item_id(P_Item_Rec.INVENTORY_ITEM_ID);
4610 
4611    IF P_Mode = 'DEFINE' AND P_Item_rec.costing_enabled_flag = 'Y' THEN
4612       INVIDIT2.Insert_Costing_Category(
4613 	 x_item_id => P_Item_rec.inventory_item_id
4614 	,x_org_id  => P_Item_rec.organization_id);
4615    END IF;
4616 
4617    Update_Row(P_Item_Rec => P_Item_Rec);
4618 
4619    IF P_mode = 'DEFINE' THEN
4620       IF  P_Updateble_Item = 'ALL' THEN
4621       	  UPDATE mtl_system_items_b
4622       	  SET    segment1 = P_Item_rec.segment1
4623   	        ,segment2 = P_Item_rec.segment2
4624 	        ,segment3 = P_Item_rec.segment3
4625 		,segment4 = P_Item_rec.segment4
4626 		,segment5 = P_Item_rec.segment5
4627 		,segment6 = P_Item_rec.segment6
4628 		,segment7 = P_Item_rec.segment7
4629 		,segment8 = P_Item_rec.segment8
4630 		,segment9 = P_Item_rec.segment9
4631 		,segment10 = P_Item_rec.segment10
4632 		,segment11 = P_Item_rec.segment11
4633 		,segment12 = P_Item_rec.segment12
4634 		,segment13 = P_Item_rec.segment13
4635 		,segment14 = P_Item_rec.segment14
4636 		,segment15 = P_Item_rec.segment15
4637 		,segment16 = P_Item_rec.segment16
4638 		,segment17 = P_Item_rec.segment17
4639 		,segment18 = P_Item_rec.segment18
4640 		,segment19 = P_Item_rec.segment19
4641 		,segment20 = P_Item_rec.segment20
4642           WHERE   inventory_item_id =  P_Item_rec.inventory_item_id;
4643        END IF;
4644     END IF;
4645 
4646     IF P_Inv_Item_status_old = P_Item_rec.inventory_item_status_code THEN
4647        l_Inventory_Item_status := NULL;
4648     ELSE
4649        l_Inventory_Item_status := P_Item_rec.inventory_item_status_code;
4650     END IF;
4651 
4652     IF ( P_mode = 'DEFINE' )  THEN
4653        l_event := 'UPDATE';
4654     ELSIF (P_mode = 'UPDATE' )  THEN
4655        l_event := 'ITEM_ORG';
4656     END IF;
4657 
4658    IF l_rec_uom_class IS NULL THEN
4659       OPEN  c_get_uom_class(cp_uom => P_Item_Rec.primary_unit_of_measure);
4660       FETCH c_get_uom_class INTO l_rec_uom_class;
4661       CLOSE   c_get_uom_class;
4662    END IF;
4663 
4664    IF P_Item_Category_Struct_Id IS NOT NULL THEN
4665       l_folder_item_cat_id := P_Item_Category_Id;
4666    ELSE
4667       l_folder_item_cat_id := NULL;
4668    END IF;
4669 
4670    INVIDIT2.Table_Inserts (
4671 	X_EVENT                      => l_event,
4672 	X_ITEM_ID                    => P_Item_Rec.inventory_item_id,
4673 	X_ORG_ID                     => P_Item_rec.organization_id,
4674 	X_MASTER_ORG_ID              => P_Master_Org_Id,
4675 	X_STATUS_CODE                => l_Inventory_Item_status,
4676 	X_INVENTORY_ITEM_FLAG        => P_Item_rec.inventory_item_flag,
4677 	X_PURCHASING_ITEM_FLAG       => P_Item_rec.purchasing_item_flag,
4678 	X_INTERNAL_ORDER_FLAG        => P_Item_rec.internal_order_flag,
4679 	X_MRP_PLANNING_CODE          => P_Item_rec.mrp_planning_code,
4680 	X_SERVICEABLE_PRODUCT_FLAG   => P_Item_rec.serviceable_product_flag,
4681 	X_COSTING_ENABLED_FLAG       => P_Item_rec.costing_enabled_flag,
4682 	X_ENG_ITEM_FLAG              => P_Item_rec.eng_item_flag,
4683 	X_CUSTOMER_ORDER_FLAG        => P_Item_rec.customer_order_flag,
4684 	X_EAM_ITEM_TYPE              => P_Item_rec.eam_item_type,
4685 	X_CONTRACT_ITEM_TYPE_CODE    => P_Item_rec.contract_item_type_code,
4686 	P_FOLDER_CATEGORY_SET_ID     => P_Category_set_id,
4687 	P_FOLDER_ITEM_CATEGORY_ID    => l_folder_item_cat_id,
4688 	X_ALLOWED_UNIT_CODE          => P_Item_rec.allowed_units_lookup_code,
4689 	X_PRIMARY_UOM                => P_Item_rec.primary_unit_of_measure,
4690 	X_PRIMARY_UOM_CODE           => P_Item_rec.primary_uom_code,
4691 	X_PRIMARY_UOM_CLASS          => l_rec_uom_class,
4692 	X_INV_INSTALL                => P_inv_install,
4693 	X_LAST_UPDATED_BY            => P_Item_rec.last_updated_by,
4694 	X_LAST_UPDATE_LOGIN          => P_Item_rec.last_update_login,
4695 	X_ITEM_CATALOG_GROUP_ID      => P_Item_rec.item_catalog_group_id
4696       , P_Default_Move_Order_Sub_Inv => P_Default_Move_Order_Sub_Inv
4697       , P_Default_Receiving_Sub_Inv  => P_Default_Receiving_Sub_Inv
4698       , P_Default_Shipping_Sub_Inv   => P_Default_Shipping_Sub_Inv
4699       , P_Lifecycle_Id                => P_Item_rec.Lifecycle_Id
4700       , P_Current_Phase_Id            => P_Item_rec.Current_Phase_id);
4701 
4702      --Bug: 2803712 Moved the below call from update_row()
4703      --Bug: 2718703 checking for ENI product before calling their package
4704      IF ( INV_Item_Util.g_Appl_Inst.ENI <> 0 ) THEN
4705         EXECUTE IMMEDIATE
4706         ' BEGIN                                                           '||
4707         '    ENI_ITEMS_STAR_PKG.Update_Items_In_Star(                     '||
4708         '       p_api_version         =>  1.0                             '||
4709         '    ,  p_init_msg_list       =>  FND_API.g_TRUE                  '||
4710         '    ,  p_inventory_item_id   => :P_Item_Rec.INVENTORY_ITEM_ID    '||
4711         '    ,  p_organization_id     => :P_Item_Rec.ORGANIZATION_ID      '||
4712         '    ,  x_return_status       => :l_return_status                 '||
4713         '    ,  x_msg_count           => :l_msg_count                     '||
4714         '    ,  x_msg_data            => :l_msg_data   );                 '||
4715         ' END;'
4716         USING IN P_Item_Rec.INVENTORY_ITEM_ID, IN P_Item_Rec.ORGANIZATION_ID, OUT l_return_status, OUT l_msg_count, OUT l_msg_data;
4717 
4718         IF ( l_return_status = FND_API.g_RET_STS_ERROR ) THEN
4719            FND_MESSAGE.Set_Encoded (l_msg_data);
4720            Raise FND_API.g_EXC_UNEXPECTED_ERROR;
4721         ELSIF ( l_return_status = FND_API.g_RET_STS_UNEXP_ERROR ) THEN
4722            FND_MESSAGE.Set_Encoded (l_msg_data);
4723            Raise FND_API.g_EXC_UNEXPECTED_ERROR;
4724         END IF;
4725      END IF;
4726 
4727   /* R12: Business Event Enhancement :
4728   Raise Event if Item got Updated successfully */
4729   BEGIN
4730      INV_ITEM_EVENTS_PVT.Raise_Events(
4731             p_event_name        => 'EGO_WF_WRAPPER_PVT.G_ITEM_UPDATE_EVENT'
4732            ,p_dml_type          => 'UPDATE'
4733            ,p_inventory_item_id => p_Item_rec.INVENTORY_ITEM_ID
4734            ,p_organization_id   => p_Item_rec.ORGANIZATION_ID
4735            ,p_item_description  => p_Item_rec.DESCRIPTION
4736          );
4737      EXCEPTION
4738          WHEN OTHERS THEN
4739             NULL;
4740   END;
4741 
4742   --Call ICX APIs
4743   BEGIN
4744      IF ( p_Master_Org_id = p_Item_rec.ORGANIZATION_ID ) THEN
4745         l_master_org := 'Y';
4746      ELSE
4747         l_master_org := 'N';
4748      END IF;
4749      INV_ITEM_EVENTS_PVT.Invoke_ICX_APIs(
4750            p_entity_type       => 'ITEM'
4751           ,p_dml_type          => 'UPDATE'
4752           ,p_inventory_item_id => P_Item_Rec.INVENTORY_ITEM_ID
4753           ,p_item_description  => P_Item_Rec.DESCRIPTION
4754           ,p_organization_id   => P_Item_Rec.ORGANIZATION_ID
4755           ,p_master_org_flag   => l_master_org );
4756      EXCEPTION
4757          WHEN OTHERS THEN
4758             NULL;
4759   END;
4760   --R12: Business Event Enhancement
4761 
4762 
4763 EXCEPTION
4764    WHEN FND_API.g_EXC_UNEXPECTED_ERROR THEN
4765       IF c_get_uom_class%ISOPEN THEN
4766          CLOSE c_get_uom_class;
4767       END IF;
4768       app_exception.raise_exception;
4769 
4770    WHEN OTHERS THEN
4771       IF c_get_uom_class%ISOPEN THEN
4772          CLOSE c_get_uom_class;
4773       END IF;
4774       app_exception.raise_exception;
4775 END Update_Item;
4776 
4777 -- ------------------ LOCK_ITEM -------------------
4778 PROCEDURE Lock_Item( P_Item_Rec  IN  INV_ITEM_API.Item_rec_type) IS
4779 
4780    CURSOR c_item_details IS
4781     SELECT
4782       PRIMARY_UOM_CODE,
4783       ALLOWED_UNITS_LOOKUP_CODE,
4784       OVERCOMPLETION_TOLERANCE_TYPE,
4785       OVERCOMPLETION_TOLERANCE_VALUE,
4786       EFFECTIVITY_CONTROL,
4787       CHECK_SHORTAGES_FLAG,
4788       FULL_LEAD_TIME,
4789       ORDER_COST,
4790       MRP_SAFETY_STOCK_PERCENT,
4791       MRP_SAFETY_STOCK_CODE,
4792       MIN_MINMAX_QUANTITY,
4793       MAX_MINMAX_QUANTITY,
4794       MINIMUM_ORDER_QUANTITY,
4795       FIXED_ORDER_QUANTITY,
4796       FIXED_DAYS_SUPPLY,
4797       MAXIMUM_ORDER_QUANTITY,
4798       ATP_RULE_ID,
4799       PICKING_RULE_ID,
4800       RESERVABLE_TYPE,
4801       POSITIVE_MEASUREMENT_ERROR,
4802       NEGATIVE_MEASUREMENT_ERROR,
4803       ENGINEERING_ECN_CODE,
4804       ENGINEERING_ITEM_ID,
4805       ENGINEERING_DATE,
4806       SERVICE_STARTING_DELAY,
4807       SERVICEABLE_COMPONENT_FLAG,
4808       SERVICEABLE_PRODUCT_FLAG,
4809       PAYMENT_TERMS_ID,
4810       PREVENTIVE_MAINTENANCE_FLAG,
4811       MATERIAL_BILLABLE_FLAG,
4812       PRORATE_SERVICE_FLAG,
4813       COVERAGE_SCHEDULE_ID,
4814       SERVICE_DURATION_PERIOD_CODE,
4815       SERVICE_DURATION,
4816       INVOICEABLE_ITEM_FLAG,
4817       TAX_CODE,
4818       INVOICE_ENABLED_FLAG,
4819       MUST_USE_APPROVED_VENDOR_FLAG,
4820       OUTSIDE_OPERATION_FLAG,
4821       OUTSIDE_OPERATION_UOM_TYPE,
4822       SAFETY_STOCK_BUCKET_DAYS,
4823       AUTO_REDUCE_MPS,
4824       COSTING_ENABLED_FLAG,
4825       AUTO_CREATED_CONFIG_FLAG,
4826       CYCLE_COUNT_ENABLED_FLAG,
4827       ITEM_TYPE,
4828       MODEL_CONFIG_CLAUSE_NAME,
4829       SHIP_MODEL_COMPLETE_FLAG,
4830       MRP_PLANNING_CODE,
4831       RETURN_INSPECTION_REQUIREMENT,
4832       ATO_FORECAST_CONTROL,
4833       RELEASE_TIME_FENCE_CODE,
4834       RELEASE_TIME_FENCE_DAYS,
4835       CONTAINER_ITEM_FLAG,
4836       VEHICLE_ITEM_FLAG,
4837       MAXIMUM_LOAD_WEIGHT,
4838       MINIMUM_FILL_PERCENT,
4839       CONTAINER_TYPE_CODE,
4840       INTERNAL_VOLUME,
4841       PRODUCT_FAMILY_ITEM_ID,
4842       GLOBAL_ATTRIBUTE_CATEGORY,
4843       GLOBAL_ATTRIBUTE1,
4844       GLOBAL_ATTRIBUTE2,
4845       GLOBAL_ATTRIBUTE3,
4846       GLOBAL_ATTRIBUTE4,
4847       GLOBAL_ATTRIBUTE5,
4848       GLOBAL_ATTRIBUTE6,
4849       GLOBAL_ATTRIBUTE7,
4850       GLOBAL_ATTRIBUTE8,
4851       GLOBAL_ATTRIBUTE9,
4852       GLOBAL_ATTRIBUTE10,
4853       GLOBAL_ATTRIBUTE11,
4854       GLOBAL_ATTRIBUTE12,
4855       GLOBAL_ATTRIBUTE13,
4856       GLOBAL_ATTRIBUTE14,
4857       GLOBAL_ATTRIBUTE15,
4858       GLOBAL_ATTRIBUTE16,
4859       GLOBAL_ATTRIBUTE17,
4860       GLOBAL_ATTRIBUTE18,
4861       GLOBAL_ATTRIBUTE19,
4862       GLOBAL_ATTRIBUTE20,
4863       PURCHASING_TAX_CODE,
4864       ATTRIBUTE6,
4865       ATTRIBUTE7,
4866       ATTRIBUTE8,
4867       ATTRIBUTE9,
4868       ATTRIBUTE10,
4869       ATTRIBUTE11,
4870       ATTRIBUTE12,
4871       ATTRIBUTE13,
4872       ATTRIBUTE14,
4873       ATTRIBUTE15,
4874       PURCHASING_ITEM_FLAG,
4875       SHIPPABLE_ITEM_FLAG,
4876       CUSTOMER_ORDER_FLAG,
4877       INTERNAL_ORDER_FLAG,
4878       INVENTORY_ITEM_FLAG,
4879       ENG_ITEM_FLAG,
4880       INVENTORY_ASSET_FLAG,
4881       PURCHASING_ENABLED_FLAG,
4882       CUSTOMER_ORDER_ENABLED_FLAG,
4883       INTERNAL_ORDER_ENABLED_FLAG,
4884       SO_TRANSACTIONS_FLAG,
4885       MTL_TRANSACTIONS_ENABLED_FLAG,
4886       STOCK_ENABLED_FLAG,
4887       BOM_ENABLED_FLAG,
4888       BUILD_IN_WIP_FLAG,
4889       REVISION_QTY_CONTROL_CODE,
4890       ITEM_CATALOG_GROUP_ID,
4891       CATALOG_STATUS_FLAG,
4892       RETURNABLE_FLAG,
4893       DEFAULT_SHIPPING_ORG,
4894       COLLATERAL_FLAG,
4895       TAXABLE_FLAG,
4896       QTY_RCV_EXCEPTION_CODE,
4897       ALLOW_ITEM_DESC_UPDATE_FLAG,
4898       INSPECTION_REQUIRED_FLAG,
4899       RECEIPT_REQUIRED_FLAG,
4900       MARKET_PRICE,
4901       HAZARD_CLASS_ID,
4902       RFQ_REQUIRED_FLAG,
4903       QTY_RCV_TOLERANCE,
4904       LIST_PRICE_PER_UNIT,
4905       UN_NUMBER_ID,
4906       PRICE_TOLERANCE_PERCENT,
4907       ASSET_CATEGORY_ID,
4908       ROUNDING_FACTOR,
4909       UNIT_OF_ISSUE,
4910       ENFORCE_SHIP_TO_LOCATION_CODE,
4911       ALLOW_SUBSTITUTE_RECEIPTS_FLAG,
4912       ALLOW_UNORDERED_RECEIPTS_FLAG,
4913       ALLOW_EXPRESS_DELIVERY_FLAG,
4914       DAYS_EARLY_RECEIPT_ALLOWED,
4915       DAYS_LATE_RECEIPT_ALLOWED,
4916       RECEIPT_DAYS_EXCEPTION_CODE,
4917       RECEIVING_ROUTING_ID,
4918       INVOICE_CLOSE_TOLERANCE,
4919       RECEIVE_CLOSE_TOLERANCE,
4920       AUTO_LOT_ALPHA_PREFIX,
4921       START_AUTO_LOT_NUMBER,
4922       LOT_CONTROL_CODE,
4923       SHELF_LIFE_CODE,
4924       SHELF_LIFE_DAYS,
4925       SERIAL_NUMBER_CONTROL_CODE,
4926       START_AUTO_SERIAL_NUMBER,
4927       AUTO_SERIAL_ALPHA_PREFIX,
4928       SOURCE_TYPE,
4929       SOURCE_ORGANIZATION_ID,
4930       SOURCE_SUBINVENTORY,
4931       EXPENSE_ACCOUNT,
4932       ENCUMBRANCE_ACCOUNT,
4933       RESTRICT_SUBINVENTORIES_CODE,
4934       UNIT_WEIGHT,
4935       WEIGHT_UOM_CODE,
4936       VOLUME_UOM_CODE,
4937       UNIT_VOLUME,
4938       RESTRICT_LOCATORS_CODE,
4939       LOCATION_CONTROL_CODE,
4940       SHRINKAGE_RATE,
4941       ACCEPTABLE_EARLY_DAYS,
4942       PLANNING_TIME_FENCE_CODE,
4943       DEMAND_TIME_FENCE_CODE,
4944       LEAD_TIME_LOT_SIZE,
4945       STD_LOT_SIZE,
4946       CUM_MANUFACTURING_LEAD_TIME,
4947       OVERRUN_PERCENTAGE,
4948       MRP_CALCULATE_ATP_FLAG,
4949       ACCEPTABLE_RATE_INCREASE,
4950       ACCEPTABLE_RATE_DECREASE,
4951       CUMULATIVE_TOTAL_LEAD_TIME,
4952       PLANNING_TIME_FENCE_DAYS,
4953       DEMAND_TIME_FENCE_DAYS,
4954       END_ASSEMBLY_PEGGING_FLAG,
4955       REPETITIVE_PLANNING_FLAG,
4956       PLANNING_EXCEPTION_SET,
4957       BOM_ITEM_TYPE,
4958       PICK_COMPONENTS_FLAG,
4959       REPLENISH_TO_ORDER_FLAG,
4960       BASE_ITEM_ID,
4961       ATP_COMPONENTS_FLAG,
4962       ATP_FLAG,
4963       FIXED_LEAD_TIME,
4964       VARIABLE_LEAD_TIME,
4965       WIP_SUPPLY_LOCATOR_ID,
4966       WIP_SUPPLY_TYPE,
4967       WIP_SUPPLY_SUBINVENTORY,
4968       COST_OF_SALES_ACCOUNT,
4969       SALES_ACCOUNT,
4970       DEFAULT_INCLUDE_IN_ROLLUP_FLAG,
4971       INVENTORY_ITEM_STATUS_CODE,
4972       INVENTORY_PLANNING_CODE,
4973       PLANNER_CODE,
4974       PLANNING_MAKE_BUY_CODE,
4975       FIXED_LOT_MULTIPLIER,
4976       ROUNDING_CONTROL_TYPE,
4977       CARRYING_COST,
4978       POSTPROCESSING_LEAD_TIME,
4979       PREPROCESSING_LEAD_TIME,
4980       SUMMARY_FLAG,
4981       ENABLED_FLAG,
4982       START_DATE_ACTIVE,
4983       END_DATE_ACTIVE,
4984       BUYER_ID,
4985       ACCOUNTING_RULE_ID,
4986       INVOICING_RULE_ID,
4987       OVER_SHIPMENT_TOLERANCE,
4988       UNDER_SHIPMENT_TOLERANCE,
4989       OVER_RETURN_TOLERANCE,
4990       UNDER_RETURN_TOLERANCE,
4991       EQUIPMENT_TYPE,
4992       RECOVERED_PART_DISP_CODE,
4993       DEFECT_TRACKING_ON_FLAG,
4994       EVENT_FLAG,
4995       ELECTRONIC_FLAG,
4996       DOWNLOADABLE_FLAG,
4997       VOL_DISCOUNT_EXEMPT_FLAG,
4998       COUPON_EXEMPT_FLAG,
4999       COMMS_NL_TRACKABLE_FLAG,
5000       ASSET_CREATION_CODE,
5001       COMMS_ACTIVATION_REQD_FLAG,
5002       ORDERABLE_ON_WEB_FLAG,
5003       BACK_ORDERABLE_FLAG,
5004       WEB_STATUS,
5005       INDIVISIBLE_FLAG
5006     , DIMENSION_UOM_CODE
5007     , UNIT_LENGTH
5008     , UNIT_WIDTH
5009     , UNIT_HEIGHT
5010     , BULK_PICKED_FLAG
5011     , LOT_STATUS_ENABLED
5012     , DEFAULT_LOT_STATUS_ID
5013     , SERIAL_STATUS_ENABLED
5014     , DEFAULT_SERIAL_STATUS_ID
5015     , LOT_SPLIT_ENABLED
5016     , LOT_MERGE_ENABLED
5017     , INVENTORY_CARRY_PENALTY
5018     , OPERATION_SLACK_PENALTY
5019     , FINANCING_ALLOWED_FLAG
5020     , EAM_ITEM_TYPE
5021     , EAM_ACTIVITY_TYPE_CODE
5022     , EAM_ACTIVITY_CAUSE_CODE
5023     , EAM_ACT_NOTIFICATION_FLAG
5024     , EAM_ACT_SHUTDOWN_STATUS
5025     , DUAL_UOM_CONTROL
5026     , SECONDARY_UOM_CODE
5027     , DUAL_UOM_DEVIATION_HIGH
5028     , DUAL_UOM_DEVIATION_LOW
5029     , CONTRACT_ITEM_TYPE_CODE
5030 --    , SUBSCRIPTION_DEPEND_FLAG
5031     ,  SERV_REQ_ENABLED_CODE
5032     ,  SERV_BILLING_ENABLED_FLAG
5033 --    ,  SERV_IMPORTANCE_LEVEL
5034     ,  PLANNED_INV_POINT_FLAG
5035     ,  LOT_TRANSLATE_ENABLED
5036     ,  DEFAULT_SO_SOURCE_TYPE
5037     ,  CREATE_SUPPLY_FLAG
5038     ,  SUBSTITUTION_WINDOW_CODE
5039     ,  SUBSTITUTION_WINDOW_DAYS
5040     ,  IB_ITEM_INSTANCE_CLASS
5041     ,  CONFIG_MODEL_TYPE
5042     --Added as part of 11.5.9 ENH
5043     ,  LOT_SUBSTITUTION_ENABLED
5044     ,  MINIMUM_LICENSE_QUANTITY
5045     ,  EAM_ACTIVITY_SOURCE_CODE
5046     --Added as part of 11.5.10 ENH
5047     ,  TRACKING_QUANTITY_IND
5048     ,  ONT_PRICING_QTY_SOURCE
5049     ,  SECONDARY_DEFAULT_IND
5050     ,  CONFIG_ORGS
5051     ,  CONFIG_MATCH
5052     , SEGMENT1,
5053       SEGMENT2,
5054       SEGMENT3,
5055       SEGMENT4,
5056       SEGMENT5,
5057       SEGMENT6,
5058       SEGMENT7,
5059       SEGMENT8,
5060       SEGMENT9,
5061       SEGMENT10,
5062       SEGMENT11,
5063       SEGMENT12,
5064       SEGMENT13,
5065       SEGMENT14,
5066       SEGMENT15,
5067       SEGMENT16,
5068       SEGMENT17,
5069       SEGMENT18,
5070       SEGMENT19,
5071       SEGMENT20,
5072       ATTRIBUTE_CATEGORY,
5073       ATTRIBUTE1,
5074       ATTRIBUTE2,
5075       ATTRIBUTE3,
5076       ATTRIBUTE4,
5077       ATTRIBUTE5 ,
5078       VMI_MINIMUM_UNITS,
5079       VMI_MINIMUM_DAYS  ,
5080       VMI_MAXIMUM_UNITS  ,
5081       VMI_MAXIMUM_DAYS ,
5082       VMI_FIXED_ORDER_QUANTITY  ,
5083       SO_AUTHORIZATION_FLAG   ,
5084       CONSIGNED_FLAG        ,
5085       ASN_AUTOEXPIRE_FLAG   ,
5086       VMI_FORECAST_TYPE    ,
5087       FORECAST_HORIZON      ,
5088       EXCLUDE_FROM_BUDGET_FLAG  ,
5089       DAYS_TGT_INV_SUPPLY       ,
5090       DAYS_TGT_INV_WINDOW     ,
5091       DAYS_MAX_INV_SUPPLY     ,
5092       DAYS_MAX_INV_WINDOW     ,
5093       DRP_PLANNED_FLAG       ,
5094       CRITICAL_COMPONENT_FLAG   ,
5095       CONTINOUS_TRANSFER       ,
5096       CONVERGENCE             ,
5097       DIVERGENCE
5098     /* Start Bug 3713912 */-- Added for R12
5099     ,LOT_DIVISIBLE_FLAG,
5100 GRADE_CONTROL_FLAG,
5101 DEFAULT_GRADE,
5102 CHILD_LOT_FLAG,
5103 PARENT_CHILD_GENERATION_FLAG,
5104 CHILD_LOT_PREFIX,
5105 CHILD_LOT_STARTING_NUMBER,
5106 CHILD_LOT_VALIDATION_FLAG,
5107 COPY_LOT_ATTRIBUTE_FLAG,
5108 RECIPE_ENABLED_FLAG,
5109 PROCESS_QUALITY_ENABLED_FLAG,
5110 PROCESS_EXECUTION_ENABLED_FLAG,
5111 PROCESS_COSTING_ENABLED_FLAG,
5112 PROCESS_SUPPLY_SUBINVENTORY,
5113 PROCESS_SUPPLY_LOCATOR_ID,
5114 PROCESS_YIELD_SUBINVENTORY,
5115 PROCESS_YIELD_LOCATOR_ID,
5116 HAZARDOUS_MATERIAL_FLAG,
5117 CAS_NUMBER,
5118 RETEST_INTERVAL,
5119 EXPIRATION_ACTION_INTERVAL,
5120 EXPIRATION_ACTION_CODE,
5121 MATURITY_DAYS,
5122 HOLD_DAYS,
5123 ATTRIBUTE16,
5124 ATTRIBUTE17,
5125 ATTRIBUTE18,
5126 ATTRIBUTE19,
5127 ATTRIBUTE20,
5128 ATTRIBUTE21,
5129 ATTRIBUTE22,
5130 ATTRIBUTE23,
5131 ATTRIBUTE24,
5132 ATTRIBUTE25,
5133 ATTRIBUTE26,
5134 ATTRIBUTE27,
5135 ATTRIBUTE28,
5136 ATTRIBUTE29,
5137 ATTRIBUTE30
5138     /* End Bug 3713912 */
5139     ,  CHARGE_PERIODICITY_CODE
5140     ,  REPAIR_LEADTIME
5141     ,  REPAIR_YIELD
5142     ,  PREPOSITION_POINT
5143     ,  REPAIR_PROGRAM
5144     ,  SUBCONTRACTING_COMPONENT
5145     ,  OUTSOURCED_ASSEMBLY
5146     -- Fix for Bug#6644711
5147     ,  DEFAULT_MATERIAL_STATUS_ID
5148     from  MTL_SYSTEM_ITEMS_B
5149     where  INVENTORY_ITEM_ID = P_Item_Rec.inventory_item_id
5150       and  ORGANIZATION_ID   = P_Item_rec.organization_id
5151     for update of INVENTORY_ITEM_ID nowait;
5152 
5153    CURSOR c_get_item_description IS
5154     SELECT
5155       DESCRIPTION,
5156       LONG_DESCRIPTION,
5157       decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
5158     FROM  MTL_SYSTEM_ITEMS_TL
5159     WHERE  INVENTORY_ITEM_ID = P_Item_Rec.inventory_item_id
5160     AND    ORGANIZATION_ID   = P_Item_rec.organization_id
5161     for update of INVENTORY_ITEM_ID nowait;
5162 
5163    recinfo          c_item_details%ROWTYPE;
5164    item_tl          c_get_item_description%ROWTYPE;
5165    l_return_status  VARCHAR2(1);
5166 
5167 BEGIN
5168 
5169    OPEN c_item_details;
5170    FETCH c_item_details INTO recinfo;
5171 
5172    IF (c_item_details%NOTFOUND) THEN
5173       CLOSE c_item_details;
5174       FND_MESSAGE.SET_NAME('FND', 'FORM_RECORD_DELETED');
5175       Raise FND_API.g_EXC_UNEXPECTED_ERROR;
5176    END IF;
5177 
5178    CLOSE c_item_details;
5179 
5180    IF (((recinfo.PRIMARY_UOM_CODE = P_Item_Rec.PRIMARY_UOM_CODE)
5181            OR ((recinfo.PRIMARY_UOM_CODE is null) AND (P_Item_Rec.PRIMARY_UOM_CODE is null)))
5182       AND ((recinfo.ALLOWED_UNITS_LOOKUP_CODE = P_Item_Rec.ALLOWED_UNITS_LOOKUP_CODE)
5183            OR ((recinfo.ALLOWED_UNITS_LOOKUP_CODE is null) AND (P_Item_Rec.ALLOWED_UNITS_LOOKUP_CODE is null)))
5184       AND ((recinfo.OVERCOMPLETION_TOLERANCE_TYPE = P_Item_Rec.OVERCOMPLETION_TOLERANCE_TYPE)
5185            OR ((recinfo.OVERCOMPLETION_TOLERANCE_TYPE is null) AND (P_Item_Rec.OVERCOMPLETION_TOLERANCE_TYPE is null)))
5186       AND ((recinfo.OVERCOMPLETION_TOLERANCE_VALUE = P_Item_Rec.OVERCOMPLETION_TOLERANCE_VALUE)
5187            OR ((recinfo.OVERCOMPLETION_TOLERANCE_VALUE is null) AND (P_Item_Rec.OVERCOMPLETION_TOLERANCE_VALUE is null)))
5188       AND ((recinfo.EFFECTIVITY_CONTROL = P_Item_Rec.EFFECTIVITY_CONTROL)
5189            OR ((recinfo.EFFECTIVITY_CONTROL is null) AND (P_Item_Rec.EFFECTIVITY_CONTROL is null)))
5190       AND ((recinfo.CHECK_SHORTAGES_FLAG = P_Item_Rec.CHECK_SHORTAGES_FLAG)
5191            OR ((recinfo.CHECK_SHORTAGES_FLAG is null) AND (P_Item_Rec.CHECK_SHORTAGES_FLAG is null)))
5192       AND ((recinfo.FULL_LEAD_TIME = P_Item_Rec.FULL_LEAD_TIME)
5193            OR ((recinfo.FULL_LEAD_TIME is null) AND (P_Item_Rec.FULL_LEAD_TIME is null)))
5194       AND ((recinfo.ORDER_COST = P_Item_Rec.ORDER_COST)
5195            OR ((recinfo.ORDER_COST is null) AND (P_Item_Rec.ORDER_COST is null)))
5196       AND ((recinfo.MRP_SAFETY_STOCK_PERCENT = P_Item_Rec.MRP_SAFETY_STOCK_PERCENT)
5197            OR ((recinfo.MRP_SAFETY_STOCK_PERCENT is null) AND (P_Item_Rec.MRP_SAFETY_STOCK_PERCENT is null)))
5198       AND ((recinfo.MRP_SAFETY_STOCK_CODE = P_Item_Rec.MRP_SAFETY_STOCK_CODE)
5199            OR ((recinfo.MRP_SAFETY_STOCK_CODE is null) AND (P_Item_Rec.MRP_SAFETY_STOCK_CODE is null)))
5200       AND ((recinfo.MIN_MINMAX_QUANTITY = P_Item_Rec.MIN_MINMAX_QUANTITY)
5201            OR ((recinfo.MIN_MINMAX_QUANTITY is null) AND (P_Item_Rec.MIN_MINMAX_QUANTITY is null)))
5202       AND ((recinfo.MAX_MINMAX_QUANTITY = P_Item_Rec.MAX_MINMAX_QUANTITY)
5203            OR ((recinfo.MAX_MINMAX_QUANTITY is null) AND (P_Item_Rec.MAX_MINMAX_QUANTITY is null)))
5204       AND ((recinfo.MINIMUM_ORDER_QUANTITY = P_Item_Rec.MINIMUM_ORDER_QUANTITY)
5205            OR ((recinfo.MINIMUM_ORDER_QUANTITY is null) AND (P_Item_Rec.MINIMUM_ORDER_QUANTITY is null)))
5206       AND ((recinfo.FIXED_ORDER_QUANTITY = P_Item_Rec.FIXED_ORDER_QUANTITY)
5207            OR ((recinfo.FIXED_ORDER_QUANTITY is null) AND (P_Item_Rec.FIXED_ORDER_QUANTITY is null)))
5208       AND ((recinfo.FIXED_DAYS_SUPPLY = P_Item_Rec.FIXED_DAYS_SUPPLY)
5209            OR ((recinfo.FIXED_DAYS_SUPPLY is null) AND (P_Item_Rec.FIXED_DAYS_SUPPLY is null)))
5210       AND ((recinfo.MAXIMUM_ORDER_QUANTITY = P_Item_Rec.MAXIMUM_ORDER_QUANTITY)
5211            OR ((recinfo.MAXIMUM_ORDER_QUANTITY is null) AND (P_Item_Rec.MAXIMUM_ORDER_QUANTITY is null)))
5212       AND ((recinfo.ATP_RULE_ID = P_Item_Rec.ATP_RULE_ID)
5213            OR ((recinfo.ATP_RULE_ID is null) AND (P_Item_Rec.ATP_RULE_ID is null)))
5214       AND ((recinfo.PICKING_RULE_ID = P_Item_Rec.PICKING_RULE_ID)
5215            OR ((recinfo.PICKING_RULE_ID is null) AND (P_Item_Rec.PICKING_RULE_ID is null)))
5216       AND ((recinfo.RESERVABLE_TYPE = P_Item_Rec.RESERVABLE_TYPE)
5217            OR ((recinfo.RESERVABLE_TYPE is null) AND (P_Item_Rec.RESERVABLE_TYPE is null)))
5218       AND ((recinfo.POSITIVE_MEASUREMENT_ERROR = P_Item_Rec.POSITIVE_MEASUREMENT_ERROR)
5219            OR ((recinfo.POSITIVE_MEASUREMENT_ERROR is null) AND (P_Item_Rec.POSITIVE_MEASUREMENT_ERROR is null)))
5220       AND ((recinfo.NEGATIVE_MEASUREMENT_ERROR = P_Item_Rec.NEGATIVE_MEASUREMENT_ERROR)
5221            OR ((recinfo.NEGATIVE_MEASUREMENT_ERROR is null) AND (P_Item_Rec.NEGATIVE_MEASUREMENT_ERROR is null)))
5222       AND ((recinfo.ENGINEERING_ECN_CODE = P_Item_Rec.ENGINEERING_ECN_CODE)
5223            OR ((recinfo.ENGINEERING_ECN_CODE is null) AND (P_Item_Rec.ENGINEERING_ECN_CODE is null)))
5224       AND ((recinfo.ENGINEERING_ITEM_ID = P_Item_Rec.ENGINEERING_ITEM_ID)
5225            OR ((recinfo.ENGINEERING_ITEM_ID is null) AND (P_Item_Rec.ENGINEERING_ITEM_ID is null)))
5226       AND ((recinfo.ENGINEERING_DATE = P_Item_Rec.ENGINEERING_DATE)
5227            OR ((recinfo.ENGINEERING_DATE is null) AND (P_Item_Rec.ENGINEERING_DATE is null)))
5228       AND ((recinfo.SERVICE_STARTING_DELAY = P_Item_Rec.SERVICE_STARTING_DELAY)
5229            OR ((recinfo.SERVICE_STARTING_DELAY is null) AND (P_Item_Rec.SERVICE_STARTING_DELAY is null)))
5230       AND ((recinfo.SERVICEABLE_COMPONENT_FLAG = P_Item_Rec.SERVICEABLE_COMPONENT_FLAG)
5231            OR ((recinfo.SERVICEABLE_COMPONENT_FLAG is null) AND (P_Item_Rec.SERVICEABLE_COMPONENT_FLAG is null)))
5232       AND (recinfo.SERVICEABLE_PRODUCT_FLAG = P_Item_Rec.SERVICEABLE_PRODUCT_FLAG)
5233       AND ((recinfo.PAYMENT_TERMS_ID = P_Item_Rec.PAYMENT_TERMS_ID)
5234            OR ((recinfo.PAYMENT_TERMS_ID is null) AND (P_Item_Rec.PAYMENT_TERMS_ID is null)))
5235       AND ((recinfo.PREVENTIVE_MAINTENANCE_FLAG = P_Item_Rec.PREVENTIVE_MAINTENANCE_FLAG)
5236            OR ((recinfo.PREVENTIVE_MAINTENANCE_FLAG is null) AND (P_Item_Rec.PREVENTIVE_MAINTENANCE_FLAG is null)))
5237       AND ((recinfo.MATERIAL_BILLABLE_FLAG = P_Item_Rec.MATERIAL_BILLABLE_FLAG)
5238            OR ((recinfo.MATERIAL_BILLABLE_FLAG is null) AND (P_Item_Rec.MATERIAL_BILLABLE_FLAG is null)))
5239       AND ((recinfo.PRORATE_SERVICE_FLAG = P_Item_Rec.PRORATE_SERVICE_FLAG)
5240            OR ((recinfo.PRORATE_SERVICE_FLAG is null) AND (P_Item_Rec.PRORATE_SERVICE_FLAG is null)))
5241       AND ((recinfo.COVERAGE_SCHEDULE_ID = P_Item_Rec.COVERAGE_SCHEDULE_ID)
5242            OR ((recinfo.COVERAGE_SCHEDULE_ID is null) AND (P_Item_Rec.COVERAGE_SCHEDULE_ID is null)))
5243       AND ((recinfo.SERVICE_DURATION_PERIOD_CODE = P_Item_Rec.SERVICE_DURATION_PERIOD_CODE)
5244            OR ((recinfo.SERVICE_DURATION_PERIOD_CODE is null) AND (P_Item_Rec.SERVICE_DURATION_PERIOD_CODE is null)))
5245       AND ((recinfo.SERVICE_DURATION = P_Item_Rec.SERVICE_DURATION)
5246            OR ((recinfo.SERVICE_DURATION is null) AND (P_Item_Rec.SERVICE_DURATION is null)))
5247       AND (recinfo.INVOICEABLE_ITEM_FLAG = P_Item_Rec.INVOICEABLE_ITEM_FLAG)
5248       AND ((recinfo.TAX_CODE = P_Item_Rec.TAX_CODE)
5249            OR ((recinfo.TAX_CODE is null) AND (P_Item_Rec.TAX_CODE is null)))
5250       AND (recinfo.INVOICE_ENABLED_FLAG = P_Item_Rec.INVOICE_ENABLED_FLAG)
5251       AND (recinfo.MUST_USE_APPROVED_VENDOR_FLAG = P_Item_Rec.MUST_USE_APPROVED_VENDOR_FLAG)
5252       AND (recinfo.OUTSIDE_OPERATION_FLAG = P_Item_Rec.OUTSIDE_OPERATION_FLAG)
5253       AND ((recinfo.OUTSIDE_OPERATION_UOM_TYPE = P_Item_Rec.OUTSIDE_OPERATION_UOM_TYPE)
5254            OR ((recinfo.OUTSIDE_OPERATION_UOM_TYPE is null) AND (P_Item_Rec.OUTSIDE_OPERATION_UOM_TYPE is null)))
5255       AND ((recinfo.SAFETY_STOCK_BUCKET_DAYS = P_Item_Rec.SAFETY_STOCK_BUCKET_DAYS)
5256            OR ((recinfo.SAFETY_STOCK_BUCKET_DAYS is null) AND (P_Item_Rec.SAFETY_STOCK_BUCKET_DAYS is null)))
5257       AND ((recinfo.AUTO_REDUCE_MPS = P_Item_Rec.AUTO_REDUCE_MPS)
5258            OR ((recinfo.AUTO_REDUCE_MPS is null) AND (P_Item_Rec.AUTO_REDUCE_MPS is null)))
5259       AND (recinfo.COSTING_ENABLED_FLAG = P_Item_Rec.COSTING_ENABLED_FLAG)
5260       AND (recinfo.AUTO_CREATED_CONFIG_FLAG = P_Item_Rec.AUTO_CREATED_CONFIG_FLAG)
5261       AND (recinfo.CYCLE_COUNT_ENABLED_FLAG = P_Item_Rec.CYCLE_COUNT_ENABLED_FLAG)
5262       AND ((recinfo.ITEM_TYPE = P_Item_Rec.ITEM_TYPE)
5263            OR ((recinfo.ITEM_TYPE is null) AND (P_Item_Rec.ITEM_TYPE is null)))
5264       AND ((recinfo.SHIP_MODEL_COMPLETE_FLAG = P_Item_Rec.SHIP_MODEL_COMPLETE_FLAG)
5265            OR ((recinfo.SHIP_MODEL_COMPLETE_FLAG is null) AND (P_Item_Rec.SHIP_MODEL_COMPLETE_FLAG is null)))
5266       AND ((recinfo.MRP_PLANNING_CODE = P_Item_Rec.MRP_PLANNING_CODE)
5267            OR ((recinfo.MRP_PLANNING_CODE is null) AND (P_Item_Rec.MRP_PLANNING_CODE is null)))
5268       AND ((recinfo.RETURN_INSPECTION_REQUIREMENT = P_Item_Rec.RETURN_INSPECTION_REQUIREMENT)
5269            OR ((recinfo.RETURN_INSPECTION_REQUIREMENT is null) AND (P_Item_Rec.RETURN_INSPECTION_REQUIREMENT is null)))
5270       AND ((recinfo.ATO_FORECAST_CONTROL = P_Item_Rec.ATO_FORECAST_CONTROL)
5271            OR ((recinfo.ATO_FORECAST_CONTROL is null) AND (P_Item_Rec.ATO_FORECAST_CONTROL is null)))
5272       AND ((recinfo.RELEASE_TIME_FENCE_CODE = P_Item_Rec.RELEASE_TIME_FENCE_CODE)
5273            OR ((recinfo.RELEASE_TIME_FENCE_CODE is null) AND (P_Item_Rec.RELEASE_TIME_FENCE_CODE is null)))
5274       AND ((recinfo.RELEASE_TIME_FENCE_DAYS = P_Item_Rec.RELEASE_TIME_FENCE_DAYS)
5275            OR ((recinfo.RELEASE_TIME_FENCE_DAYS is null) AND (P_Item_Rec.RELEASE_TIME_FENCE_DAYS is null)))
5276       AND ((recinfo.CONTAINER_ITEM_FLAG = P_Item_Rec.CONTAINER_ITEM_FLAG)
5277            OR ((recinfo.CONTAINER_ITEM_FLAG is null) AND (P_Item_Rec.CONTAINER_ITEM_FLAG is null)))
5278       AND ((recinfo.VEHICLE_ITEM_FLAG = P_Item_Rec.VEHICLE_ITEM_FLAG)
5279            OR ((recinfo.VEHICLE_ITEM_FLAG is null) AND (P_Item_Rec.VEHICLE_ITEM_FLAG is null)))
5280       AND ((recinfo.MAXIMUM_LOAD_WEIGHT = P_Item_Rec.MAXIMUM_LOAD_WEIGHT)
5281            OR ((recinfo.MAXIMUM_LOAD_WEIGHT is null) AND (P_Item_Rec.MAXIMUM_LOAD_WEIGHT is null)))
5282       AND ((recinfo.MINIMUM_FILL_PERCENT = P_Item_Rec.MINIMUM_FILL_PERCENT)
5283            OR ((recinfo.MINIMUM_FILL_PERCENT is null) AND (P_Item_Rec.MINIMUM_FILL_PERCENT is null)))
5284       AND ((recinfo.CONTAINER_TYPE_CODE = P_Item_Rec.CONTAINER_TYPE_CODE)
5285            OR ((recinfo.CONTAINER_TYPE_CODE is null) AND (P_Item_Rec.CONTAINER_TYPE_CODE is null)))
5286       AND ((recinfo.INTERNAL_VOLUME = P_Item_Rec.INTERNAL_VOLUME)
5287            OR ((recinfo.INTERNAL_VOLUME is null) AND (P_Item_Rec.INTERNAL_VOLUME is null)))
5288       AND ((recinfo.PRODUCT_FAMILY_ITEM_ID = P_Item_Rec.PRODUCT_FAMILY_ITEM_ID)
5289            OR ((recinfo.PRODUCT_FAMILY_ITEM_ID is null) AND (P_Item_Rec.PRODUCT_FAMILY_ITEM_ID is null)))
5290       AND ((recinfo.GLOBAL_ATTRIBUTE_CATEGORY = P_Item_Rec.GLOBAL_ATTRIBUTE_CATEGORY)
5291            OR ((recinfo.GLOBAL_ATTRIBUTE_CATEGORY is null) AND (P_Item_Rec.GLOBAL_ATTRIBUTE_CATEGORY is null)))
5292       AND ((recinfo.GLOBAL_ATTRIBUTE1 = P_Item_Rec.GLOBAL_ATTRIBUTE1)
5293            OR ((recinfo.GLOBAL_ATTRIBUTE1 is null) AND (P_Item_Rec.GLOBAL_ATTRIBUTE1 is null)))
5294       AND ((recinfo.GLOBAL_ATTRIBUTE2 = P_Item_Rec.GLOBAL_ATTRIBUTE2)
5295            OR ((recinfo.GLOBAL_ATTRIBUTE2 is null) AND (P_Item_Rec.GLOBAL_ATTRIBUTE2 is null)))
5296       AND ((recinfo.GLOBAL_ATTRIBUTE3 = P_Item_Rec.GLOBAL_ATTRIBUTE3)
5297            OR ((recinfo.GLOBAL_ATTRIBUTE3 is null) AND (P_Item_Rec.GLOBAL_ATTRIBUTE3 is null)))
5298       AND ((recinfo.GLOBAL_ATTRIBUTE4 = P_Item_Rec.GLOBAL_ATTRIBUTE4)
5299            OR ((recinfo.GLOBAL_ATTRIBUTE4 is null) AND (P_Item_Rec.GLOBAL_ATTRIBUTE4 is null)))
5300       AND ((recinfo.GLOBAL_ATTRIBUTE5 = P_Item_Rec.GLOBAL_ATTRIBUTE5)
5301            OR ((recinfo.GLOBAL_ATTRIBUTE5 is null) AND (P_Item_Rec.GLOBAL_ATTRIBUTE5 is null)))
5302       AND ((recinfo.GLOBAL_ATTRIBUTE6 = P_Item_Rec.GLOBAL_ATTRIBUTE6)
5303            OR ((recinfo.GLOBAL_ATTRIBUTE6 is null) AND (P_Item_Rec.GLOBAL_ATTRIBUTE6 is null)))
5304       AND ((recinfo.GLOBAL_ATTRIBUTE7 = P_Item_Rec.GLOBAL_ATTRIBUTE7)
5305            OR ((recinfo.GLOBAL_ATTRIBUTE7 is null) AND (P_Item_Rec.GLOBAL_ATTRIBUTE7 is null)))
5306       AND ((recinfo.GLOBAL_ATTRIBUTE8 = P_Item_Rec.GLOBAL_ATTRIBUTE8)
5307            OR ((recinfo.GLOBAL_ATTRIBUTE8 is null) AND (P_Item_Rec.GLOBAL_ATTRIBUTE8 is null)))
5308       AND ((recinfo.GLOBAL_ATTRIBUTE9 = P_Item_Rec.GLOBAL_ATTRIBUTE9)
5309            OR ((recinfo.GLOBAL_ATTRIBUTE9 is null) AND (P_Item_Rec.GLOBAL_ATTRIBUTE9 is null)))
5310       AND ((recinfo.GLOBAL_ATTRIBUTE10 = P_Item_Rec.GLOBAL_ATTRIBUTE10)
5311            OR ((recinfo.GLOBAL_ATTRIBUTE10 is null) AND (P_Item_Rec.GLOBAL_ATTRIBUTE10 is null)))
5312       AND ((recinfo.GLOBAL_ATTRIBUTE11 = P_Item_Rec.GLOBAL_ATTRIBUTE11)
5313            OR ((recinfo.GLOBAL_ATTRIBUTE11 is null) AND (P_Item_Rec.GLOBAL_ATTRIBUTE11 is null)))
5314       AND ((recinfo.GLOBAL_ATTRIBUTE12 = P_Item_Rec.GLOBAL_ATTRIBUTE12)
5315            OR ((recinfo.GLOBAL_ATTRIBUTE12 is null) AND (P_Item_Rec.GLOBAL_ATTRIBUTE12 is null)))
5316       AND ((recinfo.GLOBAL_ATTRIBUTE13 = P_Item_Rec.GLOBAL_ATTRIBUTE13)
5317            OR ((recinfo.GLOBAL_ATTRIBUTE13 is null) AND (P_Item_Rec.GLOBAL_ATTRIBUTE13 is null)))
5318       AND ((recinfo.GLOBAL_ATTRIBUTE14 = P_Item_Rec.GLOBAL_ATTRIBUTE14)
5319            OR ((recinfo.GLOBAL_ATTRIBUTE14 is null) AND (P_Item_Rec.GLOBAL_ATTRIBUTE14 is null)))
5320       AND ((recinfo.GLOBAL_ATTRIBUTE15 = P_Item_Rec.GLOBAL_ATTRIBUTE15)
5321            OR ((recinfo.GLOBAL_ATTRIBUTE15 is null) AND (P_Item_Rec.GLOBAL_ATTRIBUTE15 is null)))
5322       AND ((recinfo.GLOBAL_ATTRIBUTE16 = P_Item_Rec.GLOBAL_ATTRIBUTE16)
5323            OR ((recinfo.GLOBAL_ATTRIBUTE16 is null) AND (P_Item_Rec.GLOBAL_ATTRIBUTE16 is null)))
5324       AND ((recinfo.GLOBAL_ATTRIBUTE17 = P_Item_Rec.GLOBAL_ATTRIBUTE17)
5325            OR ((recinfo.GLOBAL_ATTRIBUTE17 is null) AND (P_Item_Rec.GLOBAL_ATTRIBUTE17 is null)))
5326       AND ((recinfo.GLOBAL_ATTRIBUTE18 = P_Item_Rec.GLOBAL_ATTRIBUTE18)
5327            OR ((recinfo.GLOBAL_ATTRIBUTE18 is null) AND (P_Item_Rec.GLOBAL_ATTRIBUTE18 is null)))
5328       AND ((recinfo.GLOBAL_ATTRIBUTE19 = P_Item_Rec.GLOBAL_ATTRIBUTE19)
5329            OR ((recinfo.GLOBAL_ATTRIBUTE19 is null) AND (P_Item_Rec.GLOBAL_ATTRIBUTE19 is null)))
5330       AND ((recinfo.GLOBAL_ATTRIBUTE20 = P_Item_Rec.GLOBAL_ATTRIBUTE20)
5331            OR ((recinfo.GLOBAL_ATTRIBUTE20 is null) AND (P_Item_Rec.GLOBAL_ATTRIBUTE20 is null)))
5332       AND ((recinfo.PURCHASING_TAX_CODE = P_Item_Rec.PURCHASING_TAX_CODE)
5333            OR ((recinfo.PURCHASING_TAX_CODE is null) AND (P_Item_Rec.PURCHASING_TAX_CODE is null)))
5334       AND ((recinfo.ATTRIBUTE6 = P_Item_Rec.ATTRIBUTE6)
5335            OR ((recinfo.ATTRIBUTE6 is null) AND (P_Item_Rec.ATTRIBUTE6 is null)))
5336       AND ((recinfo.ATTRIBUTE7 = P_Item_Rec.ATTRIBUTE7)
5337            OR ((recinfo.ATTRIBUTE7 is null) AND (P_Item_Rec.ATTRIBUTE7 is null)))
5338       AND ((recinfo.ATTRIBUTE8 = P_Item_Rec.ATTRIBUTE8)
5339            OR ((recinfo.ATTRIBUTE8 is null) AND (P_Item_Rec.ATTRIBUTE8 is null)))
5340       AND ((recinfo.ATTRIBUTE9 = P_Item_Rec.ATTRIBUTE9)
5341            OR ((recinfo.ATTRIBUTE9 is null) AND (P_Item_Rec.ATTRIBUTE9 is null)))
5342       AND ((recinfo.ATTRIBUTE10 = P_Item_Rec.ATTRIBUTE10)
5343            OR ((recinfo.ATTRIBUTE10 is null) AND (P_Item_Rec.ATTRIBUTE10 is null)))
5344       AND ((recinfo.ATTRIBUTE11 = P_Item_Rec.ATTRIBUTE11)
5345            OR ((recinfo.ATTRIBUTE11 is null) AND (P_Item_Rec.ATTRIBUTE11 is null)))
5346       AND ((recinfo.ATTRIBUTE12 = P_Item_Rec.ATTRIBUTE12)
5347            OR ((recinfo.ATTRIBUTE12 is null) AND (P_Item_Rec.ATTRIBUTE12 is null)))
5348       AND ((recinfo.ATTRIBUTE13 = P_Item_Rec.ATTRIBUTE13)
5349            OR ((recinfo.ATTRIBUTE13 is null) AND (P_Item_Rec.ATTRIBUTE13 is null)))
5350       AND ((recinfo.ATTRIBUTE14 = P_Item_Rec.ATTRIBUTE14)
5351            OR ((recinfo.ATTRIBUTE14 is null) AND (P_Item_Rec.ATTRIBUTE14 is null)))
5352       AND ((recinfo.ATTRIBUTE15 = P_Item_Rec.ATTRIBUTE15)
5353            OR ((recinfo.ATTRIBUTE15 is null) AND (P_Item_Rec.ATTRIBUTE15 is null)))
5354       AND (recinfo.PURCHASING_ITEM_FLAG = P_Item_Rec.PURCHASING_ITEM_FLAG)
5355       AND (recinfo.SHIPPABLE_ITEM_FLAG = P_Item_Rec.SHIPPABLE_ITEM_FLAG)
5356       AND (recinfo.CUSTOMER_ORDER_FLAG = P_Item_Rec.CUSTOMER_ORDER_FLAG)
5357       AND (recinfo.INTERNAL_ORDER_FLAG = P_Item_Rec.INTERNAL_ORDER_FLAG)
5358       AND (recinfo.INVENTORY_ITEM_FLAG = P_Item_Rec.INVENTORY_ITEM_FLAG)
5359       AND (recinfo.ENG_ITEM_FLAG = P_Item_Rec.ENG_ITEM_FLAG)
5360       AND (recinfo.INVENTORY_ASSET_FLAG = P_Item_Rec.INVENTORY_ASSET_FLAG)
5361       AND (recinfo.PURCHASING_ENABLED_FLAG = P_Item_Rec.PURCHASING_ENABLED_FLAG)
5362       AND (recinfo.CUSTOMER_ORDER_ENABLED_FLAG = P_Item_Rec.CUSTOMER_ORDER_ENABLED_FLAG)
5363       AND (recinfo.INTERNAL_ORDER_ENABLED_FLAG = P_Item_Rec.INTERNAL_ORDER_ENABLED_FLAG)
5364       AND (recinfo.SO_TRANSACTIONS_FLAG = P_Item_Rec.SO_TRANSACTIONS_FLAG)
5365       AND (recinfo.MTL_TRANSACTIONS_ENABLED_FLAG = P_Item_Rec.MTL_TRANSACTIONS_ENABLED_FLAG)
5366       AND (recinfo.STOCK_ENABLED_FLAG = P_Item_Rec.STOCK_ENABLED_FLAG)
5367       AND (recinfo.BOM_ENABLED_FLAG = P_Item_Rec.BOM_ENABLED_FLAG)
5368       AND (recinfo.BUILD_IN_WIP_FLAG = P_Item_Rec.BUILD_IN_WIP_FLAG)
5369       AND ((recinfo.REVISION_QTY_CONTROL_CODE = P_Item_Rec.REVISION_QTY_CONTROL_CODE)
5370            OR ((recinfo.REVISION_QTY_CONTROL_CODE is null) AND (P_Item_Rec.REVISION_QTY_CONTROL_CODE is null)))
5371       AND ((recinfo.ITEM_CATALOG_GROUP_ID = P_Item_Rec.ITEM_CATALOG_GROUP_ID)
5372            OR ((recinfo.ITEM_CATALOG_GROUP_ID is null) AND (P_Item_Rec.ITEM_CATALOG_GROUP_ID is null)))
5373       AND ((recinfo.CATALOG_STATUS_FLAG = P_Item_Rec.CATALOG_STATUS_FLAG)
5374            OR ((recinfo.CATALOG_STATUS_FLAG is null) AND (P_Item_Rec.CATALOG_STATUS_FLAG is null)))
5375       AND ((recinfo.RETURNABLE_FLAG = P_Item_Rec.RETURNABLE_FLAG)
5376            OR ((recinfo.RETURNABLE_FLAG is null) AND (P_Item_Rec.RETURNABLE_FLAG is null)))
5377       AND ((recinfo.DEFAULT_SHIPPING_ORG = P_Item_Rec.DEFAULT_SHIPPING_ORG)
5378            OR ((recinfo.DEFAULT_SHIPPING_ORG is null) AND (P_Item_Rec.DEFAULT_SHIPPING_ORG is null)))
5379       AND ((recinfo.COLLATERAL_FLAG = P_Item_Rec.COLLATERAL_FLAG)
5380            OR ((recinfo.COLLATERAL_FLAG is null) AND (P_Item_Rec.COLLATERAL_FLAG is null)))
5381       AND ((recinfo.TAXABLE_FLAG = P_Item_Rec.TAXABLE_FLAG)
5382            OR ((recinfo.TAXABLE_FLAG is null) AND (P_Item_Rec.TAXABLE_FLAG is null)))
5383       AND ((recinfo.QTY_RCV_EXCEPTION_CODE = P_Item_Rec.QTY_RCV_EXCEPTION_CODE)
5384            OR ((recinfo.QTY_RCV_EXCEPTION_CODE is null) AND (P_Item_Rec.QTY_RCV_EXCEPTION_CODE is null)))
5385       AND ((recinfo.ALLOW_ITEM_DESC_UPDATE_FLAG = P_Item_Rec.ALLOW_ITEM_DESC_UPDATE_FLAG)
5386            OR ((recinfo.ALLOW_ITEM_DESC_UPDATE_FLAG is null) AND (P_Item_Rec.ALLOW_ITEM_DESC_UPDATE_FLAG is null)))
5387       AND ((recinfo.INSPECTION_REQUIRED_FLAG = P_Item_Rec.INSPECTION_REQUIRED_FLAG)
5388            OR ((recinfo.INSPECTION_REQUIRED_FLAG is null) AND (P_Item_Rec.INSPECTION_REQUIRED_FLAG is null)))
5389       AND ((recinfo.RECEIPT_REQUIRED_FLAG = P_Item_Rec.RECEIPT_REQUIRED_FLAG)
5390            OR ((recinfo.RECEIPT_REQUIRED_FLAG is null) AND (P_Item_Rec.RECEIPT_REQUIRED_FLAG is null)))
5391       AND ((recinfo.MARKET_PRICE = P_Item_Rec.MARKET_PRICE)
5392            OR ((recinfo.MARKET_PRICE is null) AND (P_Item_Rec.MARKET_PRICE is null)))
5393       AND ((recinfo.HAZARD_CLASS_ID = P_Item_Rec.HAZARD_CLASS_ID)
5394            OR ((recinfo.HAZARD_CLASS_ID is null) AND (P_Item_Rec.HAZARD_CLASS_ID is null)))
5395       AND ((recinfo.RFQ_REQUIRED_FLAG = P_Item_Rec.RFQ_REQUIRED_FLAG)
5396            OR ((recinfo.RFQ_REQUIRED_FLAG is null) AND (P_Item_Rec.RFQ_REQUIRED_FLAG is null)))
5397       AND ((recinfo.QTY_RCV_TOLERANCE = P_Item_Rec.QTY_RCV_TOLERANCE)
5398            OR ((recinfo.QTY_RCV_TOLERANCE is null) AND (P_Item_Rec.QTY_RCV_TOLERANCE is null)))
5399       AND ((recinfo.LIST_PRICE_PER_UNIT = P_Item_Rec.LIST_PRICE_PER_UNIT)
5400            OR ((recinfo.LIST_PRICE_PER_UNIT is null) AND (P_Item_Rec.LIST_PRICE_PER_UNIT is null)))
5401       AND ((recinfo.UN_NUMBER_ID = P_Item_Rec.UN_NUMBER_ID)
5402            OR ((recinfo.UN_NUMBER_ID is null) AND (P_Item_Rec.UN_NUMBER_ID is null)))
5403       AND ((recinfo.PRICE_TOLERANCE_PERCENT = P_Item_Rec.PRICE_TOLERANCE_PERCENT)
5404            OR ((recinfo.PRICE_TOLERANCE_PERCENT is null) AND (P_Item_Rec.PRICE_TOLERANCE_PERCENT is null)))
5405       AND ((recinfo.ASSET_CATEGORY_ID = P_Item_Rec.ASSET_CATEGORY_ID)
5406            OR ((recinfo.ASSET_CATEGORY_ID is null) AND (P_Item_Rec.ASSET_CATEGORY_ID is null)))
5407       AND ((recinfo.ROUNDING_FACTOR = P_Item_Rec.ROUNDING_FACTOR)
5408            OR ((recinfo.ROUNDING_FACTOR is null) AND (P_Item_Rec.ROUNDING_FACTOR is null)))
5409       AND ((recinfo.UNIT_OF_ISSUE = P_Item_Rec.UNIT_OF_ISSUE)
5410            OR ((recinfo.UNIT_OF_ISSUE is null) AND (P_Item_Rec.UNIT_OF_ISSUE is null)))
5411       AND ((recinfo.ENFORCE_SHIP_TO_LOCATION_CODE = P_Item_Rec.ENFORCE_SHIP_TO_LOCATION_CODE)
5412            OR ((recinfo.ENFORCE_SHIP_TO_LOCATION_CODE is null) AND (P_Item_Rec.ENFORCE_SHIP_TO_LOCATION_CODE is null)))
5413       AND ((recinfo.ALLOW_SUBSTITUTE_RECEIPTS_FLAG = P_Item_Rec.ALLOW_SUBSTITUTE_RECEIPTS_FLAG)
5414            OR ((recinfo.ALLOW_SUBSTITUTE_RECEIPTS_FLAG is null) AND (P_Item_Rec.ALLOW_SUBSTITUTE_RECEIPTS_FLAG is null)))
5415       AND ((recinfo.ALLOW_UNORDERED_RECEIPTS_FLAG = P_Item_Rec.ALLOW_UNORDERED_RECEIPTS_FLAG)
5416            OR ((recinfo.ALLOW_UNORDERED_RECEIPTS_FLAG is null) AND (P_Item_Rec.ALLOW_UNORDERED_RECEIPTS_FLAG is null)))
5417       AND ((recinfo.ALLOW_EXPRESS_DELIVERY_FLAG = P_Item_Rec.ALLOW_EXPRESS_DELIVERY_FLAG)
5418            OR ((recinfo.ALLOW_EXPRESS_DELIVERY_FLAG is null) AND (P_Item_Rec.ALLOW_EXPRESS_DELIVERY_FLAG is null)))
5419       AND ((recinfo.DAYS_EARLY_RECEIPT_ALLOWED = P_Item_Rec.DAYS_EARLY_RECEIPT_ALLOWED)
5420            OR ((recinfo.DAYS_EARLY_RECEIPT_ALLOWED is null) AND (P_Item_Rec.DAYS_EARLY_RECEIPT_ALLOWED is null)))
5421       AND ((recinfo.DAYS_LATE_RECEIPT_ALLOWED = P_Item_Rec.DAYS_LATE_RECEIPT_ALLOWED)
5422            OR ((recinfo.DAYS_LATE_RECEIPT_ALLOWED is null) AND (P_Item_Rec.DAYS_LATE_RECEIPT_ALLOWED is null)))
5423       AND ((recinfo.RECEIPT_DAYS_EXCEPTION_CODE = P_Item_Rec.RECEIPT_DAYS_EXCEPTION_CODE)
5424            OR ((recinfo.RECEIPT_DAYS_EXCEPTION_CODE is null) AND (P_Item_Rec.RECEIPT_DAYS_EXCEPTION_CODE is null)))
5425       AND ((recinfo.RECEIVING_ROUTING_ID = P_Item_Rec.RECEIVING_ROUTING_ID)
5426            OR ((recinfo.RECEIVING_ROUTING_ID is null) AND (P_Item_Rec.RECEIVING_ROUTING_ID is null)))
5427       AND ((recinfo.INVOICE_CLOSE_TOLERANCE = P_Item_Rec.INVOICE_CLOSE_TOLERANCE)
5428            OR ((recinfo.INVOICE_CLOSE_TOLERANCE is null) AND (P_Item_Rec.INVOICE_CLOSE_TOLERANCE is null)))
5429       AND ((recinfo.RECEIVE_CLOSE_TOLERANCE = P_Item_Rec.RECEIVE_CLOSE_TOLERANCE)
5430            OR ((recinfo.RECEIVE_CLOSE_TOLERANCE is null) AND (P_Item_Rec.RECEIVE_CLOSE_TOLERANCE is null)))
5431       AND ((recinfo.AUTO_LOT_ALPHA_PREFIX = P_Item_Rec.AUTO_LOT_ALPHA_PREFIX)
5432            OR ((recinfo.AUTO_LOT_ALPHA_PREFIX is null) AND (P_Item_Rec.AUTO_LOT_ALPHA_PREFIX is null)))
5433       AND ((recinfo.START_AUTO_LOT_NUMBER = P_Item_Rec.START_AUTO_LOT_NUMBER)
5434            OR ((recinfo.START_AUTO_LOT_NUMBER is null) AND (P_Item_Rec.START_AUTO_LOT_NUMBER is null)))
5435       AND ((recinfo.LOT_CONTROL_CODE = P_Item_Rec.LOT_CONTROL_CODE)
5436            OR ((recinfo.LOT_CONTROL_CODE is null) AND (P_Item_Rec.LOT_CONTROL_CODE is null)))
5437       AND ((recinfo.SHELF_LIFE_CODE = P_Item_Rec.SHELF_LIFE_CODE)
5438            OR ((recinfo.SHELF_LIFE_CODE is null) AND (P_Item_Rec.SHELF_LIFE_CODE is null)))
5439       AND ((recinfo.SHELF_LIFE_DAYS = P_Item_Rec.SHELF_LIFE_DAYS)
5440            OR ((recinfo.SHELF_LIFE_DAYS is null) AND (P_Item_Rec.SHELF_LIFE_DAYS is null)))
5441       AND ((recinfo.SERIAL_NUMBER_CONTROL_CODE = P_Item_Rec.SERIAL_NUMBER_CONTROL_CODE)
5442            OR ((recinfo.SERIAL_NUMBER_CONTROL_CODE is null) AND (P_Item_Rec.SERIAL_NUMBER_CONTROL_CODE is null)))
5443       AND ((recinfo.START_AUTO_SERIAL_NUMBER = P_Item_Rec.START_AUTO_SERIAL_NUMBER)
5444            OR ((recinfo.START_AUTO_SERIAL_NUMBER is null) AND (P_Item_Rec.START_AUTO_SERIAL_NUMBER is null)))
5445       AND ((recinfo.AUTO_SERIAL_ALPHA_PREFIX = P_Item_Rec.AUTO_SERIAL_ALPHA_PREFIX)
5446            OR ((recinfo.AUTO_SERIAL_ALPHA_PREFIX is null) AND (P_Item_Rec.AUTO_SERIAL_ALPHA_PREFIX is null)))
5447       AND ((recinfo.SOURCE_TYPE = P_Item_Rec.SOURCE_TYPE)
5448            OR ((recinfo.SOURCE_TYPE is null) AND (P_Item_Rec.SOURCE_TYPE is null)))
5449       AND ((recinfo.SOURCE_ORGANIZATION_ID = P_Item_Rec.SOURCE_ORGANIZATION_ID)
5450            OR ((recinfo.SOURCE_ORGANIZATION_ID is null) AND (P_Item_Rec.SOURCE_ORGANIZATION_ID is null)))
5451       AND ((recinfo.SOURCE_SUBINVENTORY = P_Item_Rec.SOURCE_SUBINVENTORY)
5452            OR ((recinfo.SOURCE_SUBINVENTORY is null) AND (P_Item_Rec.SOURCE_SUBINVENTORY is null)))
5453       AND ((recinfo.EXPENSE_ACCOUNT = P_Item_Rec.EXPENSE_ACCOUNT)
5454            OR ((recinfo.EXPENSE_ACCOUNT is null) AND (P_Item_Rec.EXPENSE_ACCOUNT is null)))
5455       AND ((recinfo.ENCUMBRANCE_ACCOUNT = P_Item_Rec.ENCUMBRANCE_ACCOUNT)
5456            OR ((recinfo.ENCUMBRANCE_ACCOUNT is null) AND (P_Item_Rec.ENCUMBRANCE_ACCOUNT is null)))
5457       AND ((recinfo.RESTRICT_SUBINVENTORIES_CODE = P_Item_Rec.RESTRICT_SUBINVENTORIES_CODE)
5458            OR ((recinfo.RESTRICT_SUBINVENTORIES_CODE is null) AND (P_Item_Rec.RESTRICT_SUBINVENTORIES_CODE is null)))
5459       AND ((recinfo.UNIT_WEIGHT = P_Item_Rec.UNIT_WEIGHT)
5460            OR ((recinfo.UNIT_WEIGHT is null) AND (P_Item_Rec.UNIT_WEIGHT is null)))
5461       AND ((recinfo.WEIGHT_UOM_CODE = P_Item_Rec.WEIGHT_UOM_CODE)
5462            OR ((recinfo.WEIGHT_UOM_CODE is null) AND (P_Item_Rec.WEIGHT_UOM_CODE is null)))
5463       AND ((recinfo.VOLUME_UOM_CODE = P_Item_Rec.VOLUME_UOM_CODE)
5464            OR ((recinfo.VOLUME_UOM_CODE is null) AND (P_Item_Rec.VOLUME_UOM_CODE is null)))
5465       AND ((recinfo.UNIT_VOLUME = P_Item_Rec.UNIT_VOLUME)
5466            OR ((recinfo.UNIT_VOLUME is null) AND (P_Item_Rec.UNIT_VOLUME is null)))
5467       AND ((recinfo.RESTRICT_LOCATORS_CODE = P_Item_Rec.RESTRICT_LOCATORS_CODE)
5468            OR ((recinfo.RESTRICT_LOCATORS_CODE is null) AND (P_Item_Rec.RESTRICT_LOCATORS_CODE is null)))
5469       AND ((recinfo.LOCATION_CONTROL_CODE = P_Item_Rec.LOCATION_CONTROL_CODE)
5470            OR ((recinfo.LOCATION_CONTROL_CODE is null) AND (P_Item_Rec.LOCATION_CONTROL_CODE is null)))
5471       AND ((recinfo.SHRINKAGE_RATE = P_Item_Rec.SHRINKAGE_RATE)
5472            OR ((recinfo.SHRINKAGE_RATE is null) AND (P_Item_Rec.SHRINKAGE_RATE is null)))
5473       AND ((recinfo.ACCEPTABLE_EARLY_DAYS = P_Item_Rec.ACCEPTABLE_EARLY_DAYS)
5474            OR ((recinfo.ACCEPTABLE_EARLY_DAYS is null) AND (P_Item_Rec.ACCEPTABLE_EARLY_DAYS is null)))
5475       AND ((recinfo.PLANNING_TIME_FENCE_CODE = P_Item_Rec.PLANNING_TIME_FENCE_CODE)
5476            OR ((recinfo.PLANNING_TIME_FENCE_CODE is null) AND (P_Item_Rec.PLANNING_TIME_FENCE_CODE is null)))
5477       AND ((recinfo.DEMAND_TIME_FENCE_CODE = P_Item_Rec.DEMAND_TIME_FENCE_CODE)
5478            OR ((recinfo.DEMAND_TIME_FENCE_CODE is null) AND (P_Item_Rec.DEMAND_TIME_FENCE_CODE is null)))
5479       AND ((recinfo.LEAD_TIME_LOT_SIZE = P_Item_Rec.LEAD_TIME_LOT_SIZE)
5480            OR ((recinfo.LEAD_TIME_LOT_SIZE is null) AND (P_Item_Rec.LEAD_TIME_LOT_SIZE is null)))
5481       AND ((recinfo.STD_LOT_SIZE = P_Item_Rec.STD_LOT_SIZE)
5482            OR ((recinfo.STD_LOT_SIZE is null) AND (P_Item_Rec.STD_LOT_SIZE is null)))
5483       AND ((recinfo.CUM_MANUFACTURING_LEAD_TIME = P_Item_Rec.CUM_MANUFACTURING_LEAD_TIME)
5484            OR ((recinfo.CUM_MANUFACTURING_LEAD_TIME is null) AND (P_Item_Rec.CUM_MANUFACTURING_LEAD_TIME is null)))
5485       AND ((recinfo.OVERRUN_PERCENTAGE = P_Item_Rec.OVERRUN_PERCENTAGE)
5486            OR ((recinfo.OVERRUN_PERCENTAGE is null) AND (P_Item_Rec.OVERRUN_PERCENTAGE is null)))
5487       AND ((recinfo.MRP_CALCULATE_ATP_FLAG = P_Item_Rec.MRP_CALCULATE_ATP_FLAG)
5488            OR ((recinfo.MRP_CALCULATE_ATP_FLAG is null) AND (P_Item_Rec.MRP_CALCULATE_ATP_FLAG is null)))
5489       AND ((recinfo.ACCEPTABLE_RATE_INCREASE = P_Item_Rec.ACCEPTABLE_RATE_INCREASE)
5490            OR ((recinfo.ACCEPTABLE_RATE_INCREASE is null) AND (P_Item_Rec.ACCEPTABLE_RATE_INCREASE is null)))
5491       AND ((recinfo.ACCEPTABLE_RATE_DECREASE = P_Item_Rec.ACCEPTABLE_RATE_DECREASE)
5492            OR ((recinfo.ACCEPTABLE_RATE_DECREASE is null) AND (P_Item_Rec.ACCEPTABLE_RATE_DECREASE is null)))
5493       AND ((recinfo.CUMULATIVE_TOTAL_LEAD_TIME = P_Item_Rec.CUMULATIVE_TOTAL_LEAD_TIME)
5494            OR ((recinfo.CUMULATIVE_TOTAL_LEAD_TIME is null) AND (P_Item_Rec.CUMULATIVE_TOTAL_LEAD_TIME is null)))
5495       AND ((recinfo.PLANNING_TIME_FENCE_DAYS = P_Item_Rec.PLANNING_TIME_FENCE_DAYS)
5496            OR ((recinfo.PLANNING_TIME_FENCE_DAYS is null) AND (P_Item_Rec.PLANNING_TIME_FENCE_DAYS is null)))
5497       AND ((recinfo.DEMAND_TIME_FENCE_DAYS = P_Item_Rec.DEMAND_TIME_FENCE_DAYS)
5498            OR ((recinfo.DEMAND_TIME_FENCE_DAYS is null) AND (P_Item_Rec.DEMAND_TIME_FENCE_DAYS is null)))
5499       AND ((recinfo.END_ASSEMBLY_PEGGING_FLAG = P_Item_Rec.END_ASSEMBLY_PEGGING_FLAG)
5500            OR ((recinfo.END_ASSEMBLY_PEGGING_FLAG is null) AND (P_Item_Rec.END_ASSEMBLY_PEGGING_FLAG is null)))
5501       AND ((recinfo.REPETITIVE_PLANNING_FLAG = P_Item_Rec.REPETITIVE_PLANNING_FLAG)
5502            OR ((recinfo.REPETITIVE_PLANNING_FLAG is null) AND (P_Item_Rec.REPETITIVE_PLANNING_FLAG is null)))
5503       AND ((recinfo.PLANNING_EXCEPTION_SET = P_Item_Rec.PLANNING_EXCEPTION_SET)
5504            OR ((recinfo.PLANNING_EXCEPTION_SET is null) AND (P_Item_Rec.PLANNING_EXCEPTION_SET is null)))
5505       AND (recinfo.BOM_ITEM_TYPE = P_Item_Rec.BOM_ITEM_TYPE)
5506       AND (recinfo.PICK_COMPONENTS_FLAG = P_Item_Rec.PICK_COMPONENTS_FLAG)
5507       AND (recinfo.REPLENISH_TO_ORDER_FLAG = P_Item_Rec.REPLENISH_TO_ORDER_FLAG)
5508       AND ((recinfo.BASE_ITEM_ID = P_Item_Rec.BASE_ITEM_ID)
5509            OR ((recinfo.BASE_ITEM_ID is null) AND (P_Item_Rec.BASE_ITEM_ID is null)))
5510       AND (recinfo.ATP_COMPONENTS_FLAG = P_Item_Rec.ATP_COMPONENTS_FLAG)
5511       AND (recinfo.ATP_FLAG = P_Item_Rec.ATP_FLAG)
5512       AND ((recinfo.FIXED_LEAD_TIME = P_Item_Rec.FIXED_LEAD_TIME)
5513            OR ((recinfo.FIXED_LEAD_TIME is null) AND (P_Item_Rec.FIXED_LEAD_TIME is null)))
5514       AND ((recinfo.VARIABLE_LEAD_TIME = P_Item_Rec.VARIABLE_LEAD_TIME)
5515            OR ((recinfo.VARIABLE_LEAD_TIME is null) AND (P_Item_Rec.VARIABLE_LEAD_TIME is null)))
5516       AND ((recinfo.WIP_SUPPLY_LOCATOR_ID = P_Item_Rec.WIP_SUPPLY_LOCATOR_ID)
5517            OR ((recinfo.WIP_SUPPLY_LOCATOR_ID is null) AND (P_Item_Rec.WIP_SUPPLY_LOCATOR_ID is null)))
5518       AND ((recinfo.WIP_SUPPLY_TYPE = P_Item_Rec.WIP_SUPPLY_TYPE)
5519            OR ((recinfo.WIP_SUPPLY_TYPE is null) AND (P_Item_Rec.WIP_SUPPLY_TYPE is null)))
5520       AND ((recinfo.WIP_SUPPLY_SUBINVENTORY = P_Item_Rec.WIP_SUPPLY_SUBINVENTORY)
5521            OR ((recinfo.WIP_SUPPLY_SUBINVENTORY is null) AND (P_Item_Rec.WIP_SUPPLY_SUBINVENTORY is null)))
5522       AND ((recinfo.COST_OF_SALES_ACCOUNT = P_Item_Rec.COST_OF_SALES_ACCOUNT)
5523            OR ((recinfo.COST_OF_SALES_ACCOUNT is null) AND (P_Item_Rec.COST_OF_SALES_ACCOUNT is null)))
5524       AND ((recinfo.SALES_ACCOUNT = P_Item_Rec.SALES_ACCOUNT)
5525            OR ((recinfo.SALES_ACCOUNT is null) AND (P_Item_Rec.SALES_ACCOUNT is null)))
5526       AND ((recinfo.DEFAULT_INCLUDE_IN_ROLLUP_FLAG = P_Item_Rec.DEFAULT_INCLUDE_IN_ROLLUP_FLAG)
5527            OR ((recinfo.DEFAULT_INCLUDE_IN_ROLLUP_FLAG is null) AND (P_Item_Rec.DEFAULT_INCLUDE_IN_ROLLUP_FLAG is null)))
5528       AND ((recinfo.INVENTORY_ITEM_STATUS_CODE = P_Item_Rec.INVENTORY_ITEM_STATUS_CODE)
5529            OR ((recinfo.INVENTORY_ITEM_STATUS_CODE is null) AND (P_Item_Rec.INVENTORY_ITEM_STATUS_CODE is null)))
5530       AND ((recinfo.INVENTORY_PLANNING_CODE = P_Item_Rec.INVENTORY_PLANNING_CODE)
5531            OR ((recinfo.INVENTORY_PLANNING_CODE is null) AND (P_Item_Rec.INVENTORY_PLANNING_CODE is null)))
5532       AND ((recinfo.PLANNER_CODE = P_Item_Rec.PLANNER_CODE)
5533            OR ((recinfo.PLANNER_CODE is null) AND (P_Item_Rec.PLANNER_CODE is null)))
5534       AND ((recinfo.PLANNING_MAKE_BUY_CODE = P_Item_Rec.PLANNING_MAKE_BUY_CODE)
5535            OR ((recinfo.PLANNING_MAKE_BUY_CODE is null) AND (P_Item_Rec.PLANNING_MAKE_BUY_CODE is null)))
5536       AND ((recinfo.FIXED_LOT_MULTIPLIER = P_Item_Rec.FIXED_LOT_MULTIPLIER)
5537            OR ((recinfo.FIXED_LOT_MULTIPLIER is null) AND (P_Item_Rec.FIXED_LOT_MULTIPLIER is null)))
5538       AND ((recinfo.ROUNDING_CONTROL_TYPE = P_Item_Rec.ROUNDING_CONTROL_TYPE)
5539            OR ((recinfo.ROUNDING_CONTROL_TYPE is null) AND (P_Item_Rec.ROUNDING_CONTROL_TYPE is null)))
5540       AND ((recinfo.CARRYING_COST = P_Item_Rec.CARRYING_COST)
5541            OR ((recinfo.CARRYING_COST is null) AND (P_Item_Rec.CARRYING_COST is null)))
5542       AND ((recinfo.POSTPROCESSING_LEAD_TIME = P_Item_Rec.POSTPROCESSING_LEAD_TIME)
5543            OR ((recinfo.POSTPROCESSING_LEAD_TIME is null) AND (P_Item_Rec.POSTPROCESSING_LEAD_TIME is null)))
5544       AND ((recinfo.PREPROCESSING_LEAD_TIME = P_Item_Rec.PREPROCESSING_LEAD_TIME)
5545            OR ((recinfo.PREPROCESSING_LEAD_TIME is null) AND (P_Item_Rec.PREPROCESSING_LEAD_TIME is null)))
5546       AND (recinfo.SUMMARY_FLAG = P_Item_Rec.SUMMARY_FLAG)
5547       AND (recinfo.ENABLED_FLAG = P_Item_Rec.ENABLED_FLAG)
5548       AND ((recinfo.START_DATE_ACTIVE = P_Item_Rec.START_DATE_ACTIVE)
5549            OR ((recinfo.START_DATE_ACTIVE is null) AND (P_Item_Rec.START_DATE_ACTIVE is null)))
5550       AND ((recinfo.END_DATE_ACTIVE = P_Item_Rec.END_DATE_ACTIVE)
5551            OR ((recinfo.END_DATE_ACTIVE is null) AND (P_Item_Rec.END_DATE_ACTIVE is null)))
5552       AND ((recinfo.BUYER_ID = P_Item_Rec.BUYER_ID)
5553            OR ((recinfo.BUYER_ID is null) AND (P_Item_Rec.BUYER_ID is null)))
5554       AND ((recinfo.ACCOUNTING_RULE_ID = P_Item_Rec.ACCOUNTING_RULE_ID)
5555            OR ((recinfo.ACCOUNTING_RULE_ID is null) AND (P_Item_Rec.ACCOUNTING_RULE_ID is null)))
5556       AND ((recinfo.INVOICING_RULE_ID = P_Item_Rec.INVOICING_RULE_ID)
5557            OR ((recinfo.INVOICING_RULE_ID is null) AND (P_Item_Rec.INVOICING_RULE_ID is null)))
5558       AND ( (recinfo.OVER_SHIPMENT_TOLERANCE = P_Item_Rec.OVER_SHIPMENT_TOLERANCE)
5559            OR ((recinfo.OVER_SHIPMENT_TOLERANCE is null) AND (P_Item_Rec.OVER_SHIPMENT_TOLERANCE is null)) )
5560       AND ( (recinfo.UNDER_SHIPMENT_TOLERANCE = P_Item_Rec.UNDER_SHIPMENT_TOLERANCE)
5561            OR ((recinfo.UNDER_SHIPMENT_TOLERANCE is null) AND (P_Item_Rec.UNDER_SHIPMENT_TOLERANCE is null)) )
5562       AND ( (recinfo.OVER_RETURN_TOLERANCE = P_Item_Rec.OVER_RETURN_TOLERANCE)
5563            OR ((recinfo.OVER_RETURN_TOLERANCE is null) AND (P_Item_Rec.OVER_RETURN_TOLERANCE is null)) )
5564       AND ( (recinfo.UNDER_RETURN_TOLERANCE = P_Item_Rec.UNDER_RETURN_TOLERANCE)
5565            OR ((recinfo.UNDER_RETURN_TOLERANCE is null) AND (P_Item_Rec.UNDER_RETURN_TOLERANCE is null)) )
5566       AND ( (recinfo.EQUIPMENT_TYPE = P_Item_Rec.EQUIPMENT_TYPE)
5567            OR ((recinfo.EQUIPMENT_TYPE is null) AND (P_Item_Rec.EQUIPMENT_TYPE is null)) )
5568       AND ( (recinfo.RECOVERED_PART_DISP_CODE = P_Item_Rec.RECOVERED_PART_DISP_CODE)
5569            OR ((recinfo.RECOVERED_PART_DISP_CODE is null) AND (P_Item_Rec.RECOVERED_PART_DISP_CODE is null)) )
5570       AND ( (recinfo.DEFECT_TRACKING_ON_FLAG = P_Item_Rec.DEFECT_TRACKING_ON_FLAG)
5571            OR ((recinfo.DEFECT_TRACKING_ON_FLAG is null) AND (P_Item_Rec.DEFECT_TRACKING_ON_FLAG is null)) )
5572       AND ( (recinfo.EVENT_FLAG = P_Item_Rec.EVENT_FLAG)
5573            OR ((recinfo.EVENT_FLAG is null) AND (P_Item_Rec.EVENT_FLAG is null)) )
5574       AND ( (recinfo.ELECTRONIC_FLAG = P_Item_Rec.ELECTRONIC_FLAG)
5575            OR ((recinfo.ELECTRONIC_FLAG is null) AND (P_Item_Rec.ELECTRONIC_FLAG is null)) )
5576       AND ( (recinfo.DOWNLOADABLE_FLAG = P_Item_Rec.DOWNLOADABLE_FLAG)
5577            OR ((recinfo.DOWNLOADABLE_FLAG is null) AND (P_Item_Rec.DOWNLOADABLE_FLAG is null)) )
5578       AND ( (recinfo.VOL_DISCOUNT_EXEMPT_FLAG = P_Item_Rec.VOL_DISCOUNT_EXEMPT_FLAG)
5579            OR ((recinfo.VOL_DISCOUNT_EXEMPT_FLAG is null) AND (P_Item_Rec.VOL_DISCOUNT_EXEMPT_FLAG is null)) )
5580       AND ( (recinfo.COUPON_EXEMPT_FLAG = P_Item_Rec.COUPON_EXEMPT_FLAG)
5581            OR ((recinfo.COUPON_EXEMPT_FLAG is null) AND (P_Item_Rec.COUPON_EXEMPT_FLAG is null)) )
5582       AND ( (recinfo.COMMS_NL_TRACKABLE_FLAG = P_Item_Rec.COMMS_NL_TRACKABLE_FLAG)
5583            OR ((recinfo.COMMS_NL_TRACKABLE_FLAG is null) AND (P_Item_Rec.COMMS_NL_TRACKABLE_FLAG is null)) )
5584       AND ( (recinfo.ASSET_CREATION_CODE = P_Item_Rec.ASSET_CREATION_CODE)
5585            OR ((recinfo.ASSET_CREATION_CODE is null) AND (P_Item_Rec.ASSET_CREATION_CODE is null)) )
5586       AND ( (recinfo.COMMS_ACTIVATION_REQD_FLAG = P_Item_Rec.COMMS_ACTIVATION_REQD_FLAG)
5587            OR ((recinfo.COMMS_ACTIVATION_REQD_FLAG is null) AND (P_Item_Rec.COMMS_ACTIVATION_REQD_FLAG is null)) )
5588       AND ( (recinfo.ORDERABLE_ON_WEB_FLAG = P_Item_Rec.ORDERABLE_ON_WEB_FLAG)
5589            OR ((recinfo.ORDERABLE_ON_WEB_FLAG is null) AND (P_Item_Rec.ORDERABLE_ON_WEB_FLAG is null)) )
5590       AND ( (recinfo.BACK_ORDERABLE_FLAG = P_Item_Rec.BACK_ORDERABLE_FLAG)
5591            OR ((recinfo.BACK_ORDERABLE_FLAG is null) AND (P_Item_Rec.BACK_ORDERABLE_FLAG is null)) )
5592       AND ( (recinfo.WEB_STATUS = P_Item_Rec.WEB_STATUS)
5593            OR ((recinfo.WEB_STATUS is null) AND (P_Item_Rec.WEB_STATUS is null)) )
5594       AND ( (recinfo.INDIVISIBLE_FLAG = P_Item_Rec.INDIVISIBLE_FLAG)
5595            OR ((recinfo.INDIVISIBLE_FLAG is null) AND (P_Item_Rec.INDIVISIBLE_FLAG is null)) )
5596       AND ( (recinfo.DIMENSION_UOM_CODE = P_Item_Rec.DIMENSION_UOM_CODE)
5597            OR ((recinfo.DIMENSION_UOM_CODE is null) AND (P_Item_Rec.DIMENSION_UOM_CODE is null)) )
5598       AND ( (recinfo.UNIT_LENGTH = P_Item_Rec.UNIT_LENGTH)
5599            OR ((recinfo.UNIT_LENGTH is null) AND (P_Item_Rec.UNIT_LENGTH is null)) )
5600       AND ( (recinfo.UNIT_WIDTH = P_Item_Rec.UNIT_WIDTH)
5601            OR ((recinfo.UNIT_WIDTH is null) AND (P_Item_Rec.UNIT_WIDTH is null)) )
5602       AND ( (recinfo.UNIT_HEIGHT = P_Item_Rec.UNIT_HEIGHT)
5603            OR ((recinfo.UNIT_HEIGHT is null) AND (P_Item_Rec.UNIT_HEIGHT is null)) )
5604       AND ( (recinfo.BULK_PICKED_FLAG = P_Item_Rec.BULK_PICKED_FLAG)
5605            OR ((recinfo.BULK_PICKED_FLAG is null) AND (P_Item_Rec.BULK_PICKED_FLAG is null)) )
5606       AND ( (recinfo.LOT_STATUS_ENABLED = P_Item_Rec.LOT_STATUS_ENABLED)
5607            OR ((recinfo.LOT_STATUS_ENABLED is null) AND (P_Item_Rec.LOT_STATUS_ENABLED is null)) )
5608       AND ( (recinfo.DEFAULT_LOT_STATUS_ID = P_Item_Rec.DEFAULT_LOT_STATUS_ID)
5609            OR ((recinfo.DEFAULT_LOT_STATUS_ID is null) AND (P_Item_Rec.DEFAULT_LOT_STATUS_ID is null)) )
5610       AND ( (recinfo.SERIAL_STATUS_ENABLED = P_Item_Rec.SERIAL_STATUS_ENABLED)
5611            OR ((recinfo.SERIAL_STATUS_ENABLED is null) AND (P_Item_Rec.SERIAL_STATUS_ENABLED is null)) )
5612       AND ( (recinfo.DEFAULT_SERIAL_STATUS_ID = P_Item_Rec.DEFAULT_SERIAL_STATUS_ID)
5613            OR ((recinfo.DEFAULT_SERIAL_STATUS_ID is null) AND (P_Item_Rec.DEFAULT_SERIAL_STATUS_ID is null)) )
5614       AND ( (recinfo.LOT_SPLIT_ENABLED = P_Item_Rec.LOT_SPLIT_ENABLED)
5615            OR ((recinfo.LOT_SPLIT_ENABLED is null) AND (P_Item_Rec.LOT_SPLIT_ENABLED is null)) )
5616       AND ( (recinfo.LOT_MERGE_ENABLED = P_Item_Rec.LOT_MERGE_ENABLED)
5617            OR ((recinfo.LOT_MERGE_ENABLED is null) AND (P_Item_Rec.LOT_MERGE_ENABLED is null)) )
5618       AND ( (recinfo.INVENTORY_CARRY_PENALTY = P_Item_Rec.INVENTORY_CARRY_PENALTY)
5619            OR ((recinfo.INVENTORY_CARRY_PENALTY is null) AND (P_Item_Rec.INVENTORY_CARRY_PENALTY is null)) )
5620       AND ( (recinfo.OPERATION_SLACK_PENALTY = P_Item_Rec.OPERATION_SLACK_PENALTY)
5621            OR ((recinfo.OPERATION_SLACK_PENALTY is null) AND (P_Item_Rec.OPERATION_SLACK_PENALTY is null)) )
5622       AND ( (recinfo.FINANCING_ALLOWED_FLAG = P_Item_Rec.FINANCING_ALLOWED_FLAG)
5623            OR ((recinfo.FINANCING_ALLOWED_FLAG is null) AND (P_Item_Rec.FINANCING_ALLOWED_FLAG is null)) )
5624       AND ( (recinfo.EAM_ITEM_TYPE = P_Item_Rec.EAM_ITEM_TYPE)
5625            OR ((recinfo.EAM_ITEM_TYPE is null) AND (P_Item_Rec.EAM_ITEM_TYPE is null)) )
5626       AND ( (recinfo.EAM_ACTIVITY_TYPE_CODE = P_Item_Rec.EAM_ACTIVITY_TYPE_CODE)
5627            OR ((recinfo.EAM_ACTIVITY_TYPE_CODE is null) AND (P_Item_Rec.EAM_ACTIVITY_TYPE_CODE is null)) )
5628       AND ( (recinfo.EAM_ACTIVITY_CAUSE_CODE = P_Item_Rec.EAM_ACTIVITY_CAUSE_CODE)
5629            OR ((recinfo.EAM_ACTIVITY_CAUSE_CODE is null) AND (P_Item_Rec.EAM_ACTIVITY_CAUSE_CODE is null)) )
5630       AND ( (recinfo.EAM_ACT_NOTIFICATION_FLAG = P_Item_Rec.EAM_ACT_NOTIFICATION_FLAG)
5631            OR ((recinfo.EAM_ACT_NOTIFICATION_FLAG is null) AND (P_Item_Rec.EAM_ACT_NOTIFICATION_FLAG is null)) )
5632       AND ( (recinfo.EAM_ACT_SHUTDOWN_STATUS = P_Item_Rec.EAM_ACT_SHUTDOWN_STATUS)
5633            OR ((recinfo.EAM_ACT_SHUTDOWN_STATUS is null) AND (P_Item_Rec.EAM_ACT_SHUTDOWN_STATUS is null)) )
5634       AND ( (recinfo.DUAL_UOM_CONTROL = P_Item_Rec.DUAL_UOM_CONTROL)
5635            OR ((recinfo.DUAL_UOM_CONTROL is null) AND (P_Item_Rec.DUAL_UOM_CONTROL is null)) )
5636       AND ( (recinfo.SECONDARY_UOM_CODE = P_Item_Rec.SECONDARY_UOM_CODE)
5637            OR ((recinfo.SECONDARY_UOM_CODE is null) AND (P_Item_Rec.SECONDARY_UOM_CODE is null)) )
5638       AND ( (recinfo.DUAL_UOM_DEVIATION_HIGH = P_Item_Rec.DUAL_UOM_DEVIATION_HIGH)
5639            OR ((recinfo.DUAL_UOM_DEVIATION_HIGH is null) AND (P_Item_Rec.DUAL_UOM_DEVIATION_HIGH is null)) )
5640       AND ( (recinfo.DUAL_UOM_DEVIATION_LOW = P_Item_Rec.DUAL_UOM_DEVIATION_LOW)
5641            OR ((recinfo.DUAL_UOM_DEVIATION_LOW is null) AND (P_Item_Rec.DUAL_UOM_DEVIATION_LOW is null)) )
5642       AND ( (recinfo.CONTRACT_ITEM_TYPE_CODE = P_Item_Rec.CONTRACT_ITEM_TYPE_CODE)
5643            OR ((recinfo.CONTRACT_ITEM_TYPE_CODE is null) AND (P_Item_Rec.CONTRACT_ITEM_TYPE_CODE is null)) )
5644 /*      AND ( (recinfo.SUBSCRIPTION_DEPEND_FLAG = P_Item_Rec.SUBSCRIPTION_DEPEND_FLAG)
5645            OR ((recinfo.SUBSCRIPTION_DEPEND_FLAG is null) AND (P_Item_Rec.SUBSCRIPTION_DEPEND_FLAG is null)) )
5646 */      AND ( (recinfo.SERV_REQ_ENABLED_CODE = P_Item_Rec.SERV_REQ_ENABLED_CODE)
5647            OR ( (recinfo.SERV_REQ_ENABLED_CODE is null) AND (P_Item_Rec.SERV_REQ_ENABLED_CODE is null) ) )
5648       AND ( (recinfo.SERV_BILLING_ENABLED_FLAG = P_Item_Rec.SERV_BILLING_ENABLED_FLAG)
5649            OR ( (recinfo.SERV_BILLING_ENABLED_FLAG is null) AND (P_Item_Rec.SERV_BILLING_ENABLED_FLAG is null) ) )
5650 /*      AND ( (recinfo.SERV_IMPORTANCE_LEVEL = P_Item_Rec.SERV_IMPORTANCE_LEVEL)
5651            OR ( (recinfo.SERV_IMPORTANCE_LEVEL is null) AND (P_Item_Rec.SERV_IMPORTANCE_LEVEL is null) ) )
5652 */      AND ( (recinfo.PLANNED_INV_POINT_FLAG = P_Item_Rec.PLANNED_INV_POINT_FLAG)
5653            OR ( (recinfo.PLANNED_INV_POINT_FLAG is null) AND (P_Item_Rec.PLANNED_INV_POINT_FLAG is null) ) )
5654       AND ( (recinfo.LOT_TRANSLATE_ENABLED = P_Item_Rec.LOT_TRANSLATE_ENABLED)
5655            OR ( (recinfo.LOT_TRANSLATE_ENABLED IS NULL) AND (P_Item_Rec.LOT_TRANSLATE_ENABLED IS NULL) ) )
5656       AND ( recinfo.DEFAULT_SO_SOURCE_TYPE = P_Item_Rec.DEFAULT_SO_SOURCE_TYPE )
5657       AND ( recinfo.CREATE_SUPPLY_FLAG = P_Item_Rec.CREATE_SUPPLY_FLAG )
5658       AND ( (recinfo.SUBSTITUTION_WINDOW_CODE = P_Item_Rec.SUBSTITUTION_WINDOW_CODE)
5659            OR ( (recinfo.SUBSTITUTION_WINDOW_CODE IS NULL) AND (P_Item_Rec.SUBSTITUTION_WINDOW_CODE IS NULL) ) )
5660       AND ( (recinfo.SUBSTITUTION_WINDOW_DAYS = P_Item_Rec.SUBSTITUTION_WINDOW_DAYS)
5661            OR ( (recinfo.SUBSTITUTION_WINDOW_DAYS IS NULL) AND (P_Item_Rec.SUBSTITUTION_WINDOW_DAYS IS NULL) ) )
5662       AND ( (recinfo.IB_ITEM_INSTANCE_CLASS = P_Item_Rec.IB_ITEM_INSTANCE_CLASS)
5663            OR ( (recinfo.IB_ITEM_INSTANCE_CLASS IS NULL) AND (P_Item_Rec.IB_ITEM_INSTANCE_CLASS IS NULL) ) )
5664       AND ( (recinfo.CONFIG_MODEL_TYPE = P_Item_Rec.CONFIG_MODEL_TYPE)
5665            OR ( (recinfo.CONFIG_MODEL_TYPE IS NULL) AND (P_Item_Rec.CONFIG_MODEL_TYPE IS NULL) ) )
5666   --Added as part of 11.5.9 Enh
5667       AND ( (recinfo.LOT_SUBSTITUTION_ENABLED = P_Item_Rec.LOT_SUBSTITUTION_ENABLED)
5668            OR ( (recinfo.LOT_SUBSTITUTION_ENABLED IS NULL) AND (P_Item_Rec.LOT_SUBSTITUTION_ENABLED IS NULL) ) )
5669       AND ( (recinfo.MINIMUM_LICENSE_QUANTITY = P_Item_Rec.MINIMUM_LICENSE_QUANTITY)
5670            OR ( (recinfo.MINIMUM_LICENSE_QUANTITY IS NULL) AND (P_Item_Rec.MINIMUM_LICENSE_QUANTITY IS NULL) ) )
5671       AND ( (recinfo.EAM_ACTIVITY_SOURCE_CODE = P_Item_Rec.EAM_ACTIVITY_SOURCE_CODE)
5672            OR ( (recinfo.EAM_ACTIVITY_SOURCE_CODE IS NULL) AND (P_Item_Rec.EAM_ACTIVITY_SOURCE_CODE IS NULL) ) )
5673   --Added as part of 11.5.10 Enh
5674       AND ( (recinfo.TRACKING_QUANTITY_IND = P_Item_Rec.TRACKING_QUANTITY_IND)
5675            OR ( (recinfo.TRACKING_QUANTITY_IND IS NULL) AND (P_Item_Rec.TRACKING_QUANTITY_IND IS NULL) ) )
5676       AND ( (recinfo.ONT_PRICING_QTY_SOURCE = P_Item_Rec.ONT_PRICING_QTY_SOURCE)
5677            OR ( (recinfo.ONT_PRICING_QTY_SOURCE IS NULL) AND (P_Item_Rec.ONT_PRICING_QTY_SOURCE IS NULL) ) )
5678       AND ( (recinfo.SECONDARY_DEFAULT_IND = P_Item_Rec.SECONDARY_DEFAULT_IND)
5679            OR ( (recinfo.SECONDARY_DEFAULT_IND IS NULL) AND (P_Item_Rec.SECONDARY_DEFAULT_IND IS NULL) ) )
5680       AND ( (recinfo.CONFIG_ORGS = P_Item_Rec.CONFIG_ORGS)
5681            OR ( (recinfo.CONFIG_ORGS IS NULL) AND (P_Item_Rec.CONFIG_ORGS IS NULL) ) )
5682       AND ( (recinfo.CONFIG_MATCH = P_Item_Rec.CONFIG_MATCH)
5683            OR ( (recinfo.CONFIG_MATCH IS NULL) AND (P_Item_Rec.CONFIG_MATCH IS NULL) ) )
5684       AND ((recinfo.SEGMENT1 = P_Item_Rec.SEGMENT1)
5685            OR ((recinfo.SEGMENT1 is null) AND (P_Item_Rec.SEGMENT1 is null)))
5686       AND ((recinfo.SEGMENT2 = P_Item_Rec.SEGMENT2)
5687            OR ((recinfo.SEGMENT2 is null) AND (P_Item_Rec.SEGMENT2 is null)))
5688       AND ((recinfo.SEGMENT3 = P_Item_Rec.SEGMENT3)
5689            OR ((recinfo.SEGMENT3 is null) AND (P_Item_Rec.SEGMENT3 is null)))
5690       AND ((recinfo.SEGMENT4 = P_Item_Rec.SEGMENT4)
5691            OR ((recinfo.SEGMENT4 is null) AND (P_Item_Rec.SEGMENT4 is null)))
5692       AND ((recinfo.SEGMENT5 = P_Item_Rec.SEGMENT5)
5693            OR ((recinfo.SEGMENT5 is null) AND (P_Item_Rec.SEGMENT5 is null)))
5694       AND ((recinfo.SEGMENT6 = P_Item_Rec.SEGMENT6)
5695            OR ((recinfo.SEGMENT6 is null) AND (P_Item_Rec.SEGMENT6 is null)))
5696       AND ((recinfo.SEGMENT7 = P_Item_Rec.SEGMENT7)
5697            OR ((recinfo.SEGMENT7 is null) AND (P_Item_Rec.SEGMENT7 is null)))
5698       AND ((recinfo.SEGMENT8 = P_Item_Rec.SEGMENT8)
5699            OR ((recinfo.SEGMENT8 is null) AND (P_Item_Rec.SEGMENT8 is null)))
5700       AND ((recinfo.SEGMENT9 = P_Item_Rec.SEGMENT9)
5701            OR ((recinfo.SEGMENT9 is null) AND (P_Item_Rec.SEGMENT9 is null)))
5702       AND ((recinfo.SEGMENT10 = P_Item_Rec.SEGMENT10)
5703            OR ((recinfo.SEGMENT10 is null) AND (P_Item_Rec.SEGMENT10 is null)))
5704       AND ((recinfo.SEGMENT11 = P_Item_Rec.SEGMENT11)
5705            OR ((recinfo.SEGMENT11 is null) AND (P_Item_Rec.SEGMENT11 is null)))
5706       AND ((recinfo.SEGMENT12 = P_Item_Rec.SEGMENT12)
5707            OR ((recinfo.SEGMENT12 is null) AND (P_Item_Rec.SEGMENT12 is null)))
5708       AND ((recinfo.SEGMENT13 = P_Item_Rec.SEGMENT13)
5709            OR ((recinfo.SEGMENT13 is null) AND (P_Item_Rec.SEGMENT13 is null)))
5710       AND ((recinfo.SEGMENT14 = P_Item_Rec.SEGMENT14)
5711            OR ((recinfo.SEGMENT14 is null) AND (P_Item_Rec.SEGMENT14 is null)))
5712       AND ((recinfo.SEGMENT15 = P_Item_Rec.SEGMENT15)
5713            OR ((recinfo.SEGMENT15 is null) AND (P_Item_Rec.SEGMENT15 is null)))
5714       AND ((recinfo.SEGMENT16 = P_Item_Rec.SEGMENT16)
5715           OR ((recinfo.SEGMENT16 is null) AND (P_Item_Rec.SEGMENT16 is null)))
5716       AND ((recinfo.SEGMENT17 = P_Item_Rec.SEGMENT17)
5717           OR ((recinfo.SEGMENT17 is null) AND (P_Item_Rec.SEGMENT17 is null)))
5718       AND ((recinfo.SEGMENT18 = P_Item_Rec.SEGMENT18)
5719           OR ((recinfo.SEGMENT18 is null) AND (P_Item_Rec.SEGMENT18 is null)))
5720       AND ((recinfo.SEGMENT19 = P_Item_Rec.SEGMENT19)
5721           OR ((recinfo.SEGMENT19 is null) AND (P_Item_Rec.SEGMENT19 is null)))
5722       AND ((recinfo.SEGMENT20 = P_Item_Rec.SEGMENT20)
5723           OR ((recinfo.SEGMENT20 is null) AND (P_Item_Rec.SEGMENT20 is null)))
5724       AND ((recinfo.ATTRIBUTE_CATEGORY = P_Item_Rec.ATTRIBUTE_CATEGORY)
5725           OR ((recinfo.ATTRIBUTE_CATEGORY is null) AND (P_Item_Rec.ATTRIBUTE_CATEGORY is null)))
5726       AND ((recinfo.ATTRIBUTE1 = P_Item_Rec.ATTRIBUTE1)
5727           OR ((recinfo.ATTRIBUTE1 is null) AND (P_Item_Rec.ATTRIBUTE1 is null)))
5728       AND ((recinfo.ATTRIBUTE2 = P_Item_Rec.ATTRIBUTE2)
5729           OR ((recinfo.ATTRIBUTE2 is null) AND (P_Item_Rec.ATTRIBUTE2 is null)))
5730       AND ((recinfo.ATTRIBUTE3 = P_Item_Rec.ATTRIBUTE3)
5731           OR ((recinfo.ATTRIBUTE3 is null) AND (P_Item_Rec.ATTRIBUTE3 is null)))
5732       AND ((recinfo.ATTRIBUTE4 = P_Item_Rec.ATTRIBUTE4)
5733           OR ((recinfo.ATTRIBUTE4 is null) AND (P_Item_Rec.ATTRIBUTE4 is null)))
5734       AND ((recinfo.ATTRIBUTE5 = P_Item_Rec.ATTRIBUTE5)
5735           OR ((recinfo.ATTRIBUTE5 is null) AND (P_Item_Rec.ATTRIBUTE5 is null))))
5736 /* Start Bug 3713912 */ --Added for R12
5737 AND ((recinfo.LOT_DIVISIBLE_FLAG			 = P_Item_Rec.LOT_DIVISIBLE_FLAG			)
5738  OR ((recinfo.LOT_DIVISIBLE_FLAG			 is null) AND (P_Item_Rec.LOT_DIVISIBLE_FLAG		 is null)))
5739 AND ((recinfo.GRADE_CONTROL_FLAG			 = P_Item_Rec.GRADE_CONTROL_FLAG			)
5740  OR ((recinfo.GRADE_CONTROL_FLAG			 is null) AND (P_Item_Rec.GRADE_CONTROL_FLAG		 is null)))
5741 AND ((recinfo.DEFAULT_GRADE				 = P_Item_Rec.DEFAULT_GRADE				)
5742  OR ((recinfo.DEFAULT_GRADE				 is null) AND (P_Item_Rec.DEFAULT_GRADE			 is null)))
5743 AND ((recinfo.CHILD_LOT_FLAG			 = P_Item_Rec.CHILD_LOT_FLAG			)
5744  OR ((recinfo.CHILD_LOT_FLAG			 is null) AND (P_Item_Rec.CHILD_LOT_FLAG		 is null)))
5745 AND ((recinfo.PARENT_CHILD_GENERATION_FLAG		 = P_Item_Rec.PARENT_CHILD_GENERATION_FLAG		)
5746  OR ((recinfo.PARENT_CHILD_GENERATION_FLAG		 is null) AND (P_Item_Rec.PARENT_CHILD_GENERATION_FLAG	 is null)))
5747 AND ((recinfo.CHILD_LOT_PREFIX			 = P_Item_Rec.CHILD_LOT_PREFIX			)
5748  OR ((recinfo.CHILD_LOT_PREFIX			 is null) AND (P_Item_Rec.CHILD_LOT_PREFIX		 is null)))
5749 AND ((recinfo.CHILD_LOT_STARTING_NUMBER            	 = P_Item_Rec.CHILD_LOT_STARTING_NUMBER            	)
5750  OR ((recinfo.CHILD_LOT_STARTING_NUMBER            	 is null) AND (P_Item_Rec.CHILD_LOT_STARTING_NUMBER             is null)))
5751 AND ((recinfo.CHILD_LOT_VALIDATION_FLAG		 = P_Item_Rec.CHILD_LOT_VALIDATION_FLAG		)
5752  OR ((recinfo.CHILD_LOT_VALIDATION_FLAG		 is null) AND (P_Item_Rec.CHILD_LOT_VALIDATION_FLAG	 is null)))
5753 AND ((recinfo.COPY_LOT_ATTRIBUTE_FLAG		 = P_Item_Rec.COPY_LOT_ATTRIBUTE_FLAG		)
5754  OR ((recinfo.COPY_LOT_ATTRIBUTE_FLAG		 is null) AND (P_Item_Rec.COPY_LOT_ATTRIBUTE_FLAG	 is null)))
5755 AND ((recinfo.RECIPE_ENABLED_FLAG			 = P_Item_Rec.RECIPE_ENABLED_FLAG			)
5756  OR ((recinfo.RECIPE_ENABLED_FLAG			 is null) AND (P_Item_Rec.RECIPE_ENABLED_FLAG		 is null)))
5757 AND ((recinfo.PROCESS_QUALITY_ENABLED_FLAG		 = P_Item_Rec.PROCESS_QUALITY_ENABLED_FLAG		)
5758  OR ((recinfo.PROCESS_QUALITY_ENABLED_FLAG		 is null) AND (P_Item_Rec.PROCESS_QUALITY_ENABLED_FLAG	 is null)))
5759 AND ((recinfo.PROCESS_EXECUTION_ENABLED_FLAG 	 = P_Item_Rec.PROCESS_EXECUTION_ENABLED_FLAG 	)
5760  OR ((recinfo.PROCESS_EXECUTION_ENABLED_FLAG 	 is null) AND (P_Item_Rec.PROCESS_EXECUTION_ENABLED_FLAG  is null)))
5761 AND ((recinfo.PROCESS_COSTING_ENABLED_FLAG		 = P_Item_Rec.PROCESS_COSTING_ENABLED_FLAG		)
5762  OR ((recinfo.PROCESS_COSTING_ENABLED_FLAG		 is null) AND (P_Item_Rec.PROCESS_COSTING_ENABLED_FLAG	 is null)))
5763 AND ((recinfo.PROCESS_SUPPLY_SUBINVENTORY		 = P_Item_Rec.PROCESS_SUPPLY_SUBINVENTORY		)
5764  OR ((recinfo.PROCESS_SUPPLY_SUBINVENTORY		 is null) AND (P_Item_Rec.PROCESS_SUPPLY_SUBINVENTORY	 is null)))
5765 AND ((recinfo.PROCESS_SUPPLY_LOCATOR_ID				 = P_Item_Rec.PROCESS_SUPPLY_LOCATOR_ID				)
5766  OR ((recinfo.PROCESS_SUPPLY_LOCATOR_ID				 is null) AND (P_Item_Rec.PROCESS_SUPPLY_LOCATOR_ID			 is null)))
5767 AND ((recinfo.PROCESS_YIELD_SUBINVENTORY		 = P_Item_Rec.PROCESS_YIELD_SUBINVENTORY		)
5768 OR ((recinfo.PROCESS_YIELD_SUBINVENTORY		 is null) AND (P_Item_Rec.PROCESS_YIELD_SUBINVENTORY	 is null)))
5769 AND ((recinfo.PROCESS_YIELD_LOCATOR_ID				 = P_Item_Rec.PROCESS_YIELD_LOCATOR_ID				)
5770  OR ((recinfo.PROCESS_YIELD_LOCATOR_ID				 is null) AND (P_Item_Rec.PROCESS_YIELD_LOCATOR_ID			 is null)))
5771 AND ((recinfo.HAZARDOUS_MATERIAL_FLAG		 = P_Item_Rec.HAZARDOUS_MATERIAL_FLAG		)
5772  OR ((recinfo.HAZARDOUS_MATERIAL_FLAG		 is null) AND (P_Item_Rec.HAZARDOUS_MATERIAL_FLAG	 is null)))
5773 AND ((recinfo.CAS_NUMBER				 = P_Item_Rec.CAS_NUMBER				)
5774  OR ((recinfo.CAS_NUMBER				 is null) AND (P_Item_Rec.CAS_NUMBER			 is null)))
5775 AND ((recinfo.RETEST_INTERVAL		            	 = P_Item_Rec.RETEST_INTERVAL		            	)
5776  OR ((recinfo.RETEST_INTERVAL		            	 is null) AND (P_Item_Rec.RETEST_INTERVAL		             is null)))
5777 AND ((recinfo.EXPIRATION_ACTION_INTERVAL	            	 = P_Item_Rec.EXPIRATION_ACTION_INTERVAL	            	)
5778  OR ((recinfo.EXPIRATION_ACTION_INTERVAL	            	 is null) AND (P_Item_Rec.EXPIRATION_ACTION_INTERVAL	             is null)))
5779 AND ((recinfo.EXPIRATION_ACTION_CODE		 = P_Item_Rec.EXPIRATION_ACTION_CODE		)
5780  OR ((recinfo.EXPIRATION_ACTION_CODE		 is null) AND (P_Item_Rec.EXPIRATION_ACTION_CODE	 is null)))
5781 AND ((recinfo.MATURITY_DAYS			         	 = P_Item_Rec.MATURITY_DAYS			         	)
5782  OR ((recinfo.MATURITY_DAYS			         	 is null) AND (P_Item_Rec.MATURITY_DAYS			          is null)))
5783 AND ((recinfo.HOLD_DAYS			 	 = P_Item_Rec.HOLD_DAYS			 	)
5784  OR ((recinfo.HOLD_DAYS			 	 is null) AND (P_Item_Rec.HOLD_DAYS			  is null)))
5785 AND ((recinfo.ATTRIBUTE16		  		 = P_Item_Rec.ATTRIBUTE16		  		)
5786  OR ((recinfo.ATTRIBUTE16		  		 is null) AND (P_Item_Rec.ATTRIBUTE16		  	 is null)))
5787 AND ((recinfo.ATTRIBUTE17		  		 = P_Item_Rec.ATTRIBUTE17		  		)
5788  OR ((recinfo.ATTRIBUTE17		  		 is null) AND (P_Item_Rec.ATTRIBUTE17		  	 is null)))
5789 AND ((recinfo.ATTRIBUTE18	  			 = P_Item_Rec.ATTRIBUTE18	  			)
5790  OR ((recinfo.ATTRIBUTE18	  			 is null) AND (P_Item_Rec.ATTRIBUTE18	  		 is null)))
5791 AND ((recinfo.ATTRIBUTE19	  			 = P_Item_Rec.ATTRIBUTE19	  			)
5792  OR ((recinfo.ATTRIBUTE19	  			 is null) AND (P_Item_Rec.ATTRIBUTE19	  		 is null)))
5793 AND ((recinfo.ATTRIBUTE20		  		 = P_Item_Rec.ATTRIBUTE20		  		)
5794  OR ((recinfo.ATTRIBUTE20		  		 is null) AND (P_Item_Rec.ATTRIBUTE20		  	 is null)))
5795 AND ((recinfo.ATTRIBUTE21		  		 = P_Item_Rec.ATTRIBUTE21		  		)
5796  OR ((recinfo.ATTRIBUTE21		  		 is null) AND (P_Item_Rec.ATTRIBUTE21		  	 is null)))
5797 AND ((recinfo.ATTRIBUTE22	  			 = P_Item_Rec.ATTRIBUTE22	  			)
5798  OR ((recinfo.ATTRIBUTE22	  			 is null) AND (P_Item_Rec.ATTRIBUTE22	  		 is null)))
5799 AND ((recinfo.ATTRIBUTE23	  			 = P_Item_Rec.ATTRIBUTE23	  			)
5800  OR ((recinfo.ATTRIBUTE23	  			 is null) AND (P_Item_Rec.ATTRIBUTE23	  		 is null)))
5801 AND ((recinfo.ATTRIBUTE24	  			 = P_Item_Rec.ATTRIBUTE24	  			)
5802  OR ((recinfo.ATTRIBUTE24	  			 is null) AND (P_Item_Rec.ATTRIBUTE24	  		 is null)))
5803 AND ((recinfo.ATTRIBUTE25		  		 = P_Item_Rec.ATTRIBUTE25		  		)
5804  OR ((recinfo.ATTRIBUTE25		  		 is null) AND (P_Item_Rec.ATTRIBUTE25		  	 is null)))
5805 AND ((recinfo.ATTRIBUTE26		  		 = P_Item_Rec.ATTRIBUTE26		  		)
5806  OR ((recinfo.ATTRIBUTE26		  		 is null) AND (P_Item_Rec.ATTRIBUTE26		  	 is null)))
5807 AND ((recinfo.ATTRIBUTE27	  			 = P_Item_Rec.ATTRIBUTE27	  			)
5808  OR ((recinfo.ATTRIBUTE27	  			 is null) AND (P_Item_Rec.ATTRIBUTE27	  		 is null)))
5809 AND ((recinfo.ATTRIBUTE28	  			 = P_Item_Rec.ATTRIBUTE28	  			)
5810  OR ((recinfo.ATTRIBUTE28	  			 is null) AND (P_Item_Rec.ATTRIBUTE28	  		 is null)))
5811 AND ((recinfo.ATTRIBUTE29				 = P_Item_Rec.ATTRIBUTE29				)
5812  OR ((recinfo.ATTRIBUTE29				 is null) AND (P_Item_Rec.ATTRIBUTE29			 is null)))
5813 AND ((recinfo.ATTRIBUTE30		  		 = P_Item_Rec.ATTRIBUTE30		  		)
5814  OR ((recinfo.ATTRIBUTE30		  		 is null) AND (P_Item_Rec.ATTRIBUTE30		  	 is null)))
5815 /* End Bug 3713912 */
5816     AND ((recinfo.CHARGE_PERIODICITY_CODE = p_Item_Rec.CHARGE_PERIODICITY_CODE)
5817            OR (recinfo.CHARGE_PERIODICITY_CODE IS NULL AND  p_Item_Rec.CHARGE_PERIODICITY_CODE IS NULL))
5818     AND ((recinfo.REPAIR_LEADTIME = p_Item_Rec.REPAIR_LEADTIME)
5819            OR(recinfo.REPAIR_LEADTIME IS NULL AND  p_Item_Rec.REPAIR_LEADTIME IS NULL))
5820     AND ((recinfo.REPAIR_YIELD = p_Item_Rec.REPAIR_YIELD)
5821            OR(recinfo.REPAIR_YIELD IS NULL AND  p_Item_Rec.REPAIR_YIELD IS NULL))
5822     AND ((recinfo.PREPOSITION_POINT = p_Item_Rec.PREPOSITION_POINT)
5823            OR(recinfo.PREPOSITION_POINT IS NULL AND  p_Item_Rec.PREPOSITION_POINT IS NULL))
5824     AND ((recinfo.REPAIR_PROGRAM = p_Item_Rec.REPAIR_PROGRAM)
5825            OR(recinfo.REPAIR_PROGRAM IS NULL AND  p_Item_Rec.REPAIR_PROGRAM IS NULL))
5826     AND ((recinfo.SUBCONTRACTING_COMPONENT = p_Item_Rec.SUBCONTRACTING_COMPONENT)
5827            OR(recinfo.SUBCONTRACTING_COMPONENT IS NULL AND  p_Item_Rec.SUBCONTRACTING_COMPONENT IS NULL))
5828     AND ((recinfo.OUTSOURCED_ASSEMBLY = p_Item_Rec.OUTSOURCED_ASSEMBLY)
5829            OR(recinfo.OUTSOURCED_ASSEMBLY IS NULL AND  p_Item_Rec.OUTSOURCED_ASSEMBLY IS NULL))
5830     -- Fix for Bug#6644711
5831     AND ( (recinfo.DEFAULT_MATERIAL_STATUS_ID = P_Item_Rec.DEFAULT_MATERIAL_STATUS_ID)
5832            OR ((recinfo.DEFAULT_MATERIAL_STATUS_ID is null) AND (P_Item_Rec.DEFAULT_MATERIAL_STATUS_ID is null)) )
5833    THEN
5834       NULL;
5835    ELSE
5836       FND_MESSAGE.SET_NAME('FND', 'FORM_RECORD_CHANGED');
5837       Raise FND_API.g_EXC_UNEXPECTED_ERROR;
5838    END IF;
5839 
5840 
5841    FOR item_tl IN c_get_item_description
5842    LOOP
5843       IF (item_tl.BASELANG = 'Y') THEN
5844          IF(((item_tl.DESCRIPTION = P_Item_Rec.DESCRIPTION)
5845               OR ((item_tl.DESCRIPTION is null) AND (P_Item_Rec.DESCRIPTION is null)) )
5846            AND((item_tl.LONG_DESCRIPTION = P_Item_Rec.LONG_DESCRIPTION)
5847               OR ((item_tl.LONG_DESCRIPTION is null) AND (P_Item_Rec.LONG_DESCRIPTION is null))))
5848          THEN
5849            NULL;
5850          ELSE
5851             FND_MESSAGE.SET_NAME('FND', 'FORM_RECORD_CHANGED');
5852             Raise FND_API.g_EXC_UNEXPECTED_ERROR;
5853          END IF;
5854       END IF;
5855    END LOOP;
5856 
5857 
5858   IF ( P_Item_rec.organization_id = Get_Master_Org_ID (P_Item_rec.organization_id) ) THEN
5859      -- Lock organization items
5860      INV_ITEM_PVT.Lock_Org_Items (
5861          p_Item_ID         =>  P_Item_Rec.inventory_item_id
5862      ,   p_Org_ID          =>  P_Item_rec.organization_id
5863      ,   p_lock_Master     =>  fnd_api.g_TRUE
5864      ,   p_lock_Orgs       =>  fnd_api.g_TRUE
5865      ,   x_return_status   =>  l_return_status);
5866 
5867   END IF;
5868 
5869 EXCEPTION
5870    WHEN FND_API.g_EXC_UNEXPECTED_ERROR THEN
5871       IF ( c_item_details%ISOPEN ) THEN
5872         CLOSE c_item_details;
5873       END IF;
5874       IF ( c_get_item_description%ISOPEN ) THEN
5875         CLOSE c_get_item_description ;
5876       END IF;
5877       app_exception.raise_exception;
5878 
5879 END Lock_Item;
5880 
5881 -- ------------------ DELETE_ROW -------------------
5882 
5883 PROCEDURE DELETE_ROW IS
5884 BEGIN
5885   -- DELETE_ROW cannot be used to delete Item records.
5886   RAISE_APPLICATION_ERROR (-20000, 'Cannot delete Item using MTL_SYSTEM_ITEMS_PKG.DELETE_ROW');
5887 END DELETE_ROW;
5888 
5889 -- ------------------- ADD_LANGUAGE --------------------
5890 
5891 PROCEDURE ADD_LANGUAGE IS
5892 BEGIN
5893 
5894 /*   DELETE FROM MTL_SYSTEM_ITEMS_TL T
5895    WHERE  NOT EXISTS ( SELECT NULL
5896                        FROM   MTL_SYSTEM_ITEMS_B  B
5897                        WHERE  B.INVENTORY_ITEM_ID = T.INVENTORY_ITEM_ID
5898                        AND    B.ORGANIZATION_ID   = T.ORGANIZATION_ID);
5899 
5900    UPDATE MTL_SYSTEM_ITEMS_TL T
5901    SET(  DESCRIPTION
5902       ,  LONG_DESCRIPTION) = (SELECT  ltrim(rtrim(B.DESCRIPTION))
5903    			           ,  ltrim(rtrim(B.LONG_DESCRIPTION))
5904 		              FROM  MTL_SYSTEM_ITEMS_TL  B
5905                               WHERE B.INVENTORY_ITEM_ID = T.INVENTORY_ITEM_ID
5906                               AND   B.ORGANIZATION_ID   = T.ORGANIZATION_ID
5907                               AND   B.LANGUAGE          = T.SOURCE_LANG)
5908    WHERE(T.INVENTORY_ITEM_ID
5909       ,  T.ORGANIZATION_ID
5910       ,  T.LANGUAGE) IN (SELECT  SUBT.INVENTORY_ITEM_ID,
5911                                  SUBT.ORGANIZATION_ID,
5912                                  SUBT.LANGUAGE
5913                          FROM    MTL_SYSTEM_ITEMS_TL  SUBB,
5914                                  MTL_SYSTEM_ITEMS_TL  SUBT
5915                          WHERE   SUBB.INVENTORY_ITEM_ID = SUBT.INVENTORY_ITEM_ID
5916                          AND     SUBB.ORGANIZATION_ID = SUBT.ORGANIZATION_ID
5917                          AND     SUBB.LANGUAGE = SUBT.SOURCE_LANG
5918                          AND  (( SUBB.DESCRIPTION <> SUBT.DESCRIPTION
5919                                 or ( SUBB.DESCRIPTION is null and SUBT.DESCRIPTION is not null )
5920                                 or ( SUBB.DESCRIPTION is not null and SUBT.DESCRIPTION is null ) )
5921                          OR   ( SUBB.LONG_DESCRIPTION <> SUBT.LONG_DESCRIPTION
5922                            or ( SUBB.LONG_DESCRIPTION is null and SUBT.LONG_DESCRIPTION is not null )
5923                            or ( SUBB.LONG_DESCRIPTION is not null and SUBT.LONG_DESCRIPTION is null ))));
5924 
5925 */
5926    INSERT INTO MTL_SYSTEM_ITEMS_TL  (
5927     INVENTORY_ITEM_ID,
5928     ORGANIZATION_ID,
5929     DESCRIPTION,
5930     LONG_DESCRIPTION,
5931     LAST_UPDATE_DATE,
5932     LAST_UPDATED_BY,
5933     CREATION_DATE,
5934     CREATED_BY,
5935     LAST_UPDATE_LOGIN,
5936     LANGUAGE,
5937     SOURCE_LANG )
5938    SELECT
5939     B.INVENTORY_ITEM_ID,
5940     B.ORGANIZATION_ID,
5941     ltrim(rtrim(B.DESCRIPTION)),
5942     ltrim(rtrim(B.LONG_DESCRIPTION)),
5943     B.LAST_UPDATE_DATE,
5944     B.LAST_UPDATED_BY,
5945     B.CREATION_DATE,
5946     B.CREATED_BY,
5947     B.LAST_UPDATE_LOGIN,
5948     L.LANGUAGE_CODE,
5949     B.SOURCE_LANG
5950    FROM MTL_SYSTEM_ITEMS_TL  B,
5951         FND_LANGUAGES        L
5952    WHERE L.INSTALLED_FLAG in ('I', 'B')
5953    AND   B.LANGUAGE = userenv('LANG')
5954    AND   NOT EXISTS( SELECT NULL
5955                      FROM   MTL_SYSTEM_ITEMS_TL  T
5956                      WHERE  T.INVENTORY_ITEM_ID = B.INVENTORY_ITEM_ID
5957                      AND    T.ORGANIZATION_ID   = B.ORGANIZATION_ID
5958                      AND    T.LANGUAGE          = L.LANGUAGE_CODE);
5959 
5960    --Commit and call sync index so that iM index is in sync.
5961    COMMIT;
5962    INV_ITEM_PVT.SYNC_IM_INDEX;
5963 END ADD_LANGUAGE;
5964 
5965 
5966 -- ------------------- UPDATE_NLS_TO_ORG --------------------
5967 
5968 PROCEDURE UPDATE_NLS_TO_ORG(
5969    X_INVENTORY_ITEM_ID IN VARCHAR2,
5970    X_ORGANIZATION_ID   IN VARCHAR2,
5971    X_LANGUAGE          IN VARCHAR2,
5972    X_DESCRIPTION       IN VARCHAR2,
5973    X_LONG_DESCRIPTION  IN VARCHAR2) IS
5974 
5975    CURSOR Item_csr IS
5976       SELECT INVENTORY_ITEM_ID
5977             ,ORGANIZATION_ID
5978             ,LANGUAGE
5979             ,SOURCE_LANG
5980             ,DESCRIPTION
5981             ,LONG_DESCRIPTION
5982       FROM   MTL_SYSTEM_ITEMS_TL
5983       WHERE  INVENTORY_ITEM_ID = X_INVENTORY_ITEM_ID
5984       AND  ORGANIZATION_ID IN ( SELECT  ORGANIZATION_ID
5985                                 FROM  MTL_PARAMETERS
5986                                 WHERE  MASTER_ORGANIZATION_ID = X_ORGANIZATION_ID
5987                                 AND  ORGANIZATION_ID         <> X_ORGANIZATION_ID)
5988       AND  LANGUAGE = X_LANGUAGE
5989       FOR UPDATE OF INVENTORY_ITEM_ID;
5990 
5991    l_desc_control              mtl_item_attributes.control_level%type;
5992    l_longdesc_control          mtl_item_attributes.control_level%type;
5993 
5994 BEGIN
5995 
5996    begin
5997       select control_level
5998       into l_desc_control
5999       from mtl_item_attributes
6000       where attribute_name = 'MTL_SYSTEM_ITEMS.DESCRIPTION';
6001    exception
6002       when no_data_found then
6003        l_desc_control := 0;
6004    end;
6005 
6006    begin
6007       select control_level
6008       into l_longdesc_control
6009       from mtl_item_attributes
6010       where attribute_name = 'MTL_SYSTEM_ITEMS.LONG_DESCRIPTION';
6011    exception
6012       when no_data_found then
6013        l_longdesc_control := 0;
6014    end;
6015 
6016      if ((length(x_description)) <> length(rtrim(x_description))) then
6017       fnd_message.Set_Name( 'INV', 'INV_DESCR_TRAILING_SPACES' );
6018        app_exception.raise_exception;
6019     end if;
6020 
6021      if ((length(x_long_description)) <> length(rtrim(x_long_description))) then
6022       fnd_message.Set_Name( 'INV', 'INV_LONGDESCR_TRAILING_SPACES' );
6023        app_exception.raise_exception;
6024         return ;
6025     end if;
6026        /*
6027    update mtl_system_items_tl
6028    set description         = ltrim(rtrim(x_description)),
6029        long_description    = ltrim(rtrim(x_long_description)),
6030        source_lang         = x_language,
6031        last_updated_by     = fnd_profile.value('USER_ID'),
6032        last_update_login   = fnd_profile.value('LOGIN_ID')
6033    WHERE  INVENTORY_ITEM_ID = X_INVENTORY_ITEM_ID
6034     AND  ORGANIZATION_ID =  X_ORGANIZATION_ID;
6035 
6036 */
6037    for c1 in Item_csr
6038    loop
6039       if (l_desc_control = 1) then
6040          update mtl_system_items_tl
6041          set description         = ltrim(rtrim(x_description)),
6042              source_lang         = x_language,
6043              last_update_date    = sysdate,
6044              last_updated_by     = fnd_profile.value('USER_ID'),
6045              last_update_login   = fnd_profile.value('LOGIN_ID')
6046          where CURRENT OF Item_csr;
6047 
6048       end if;
6049 
6050       if (l_longdesc_control = 1) then
6051          update mtl_system_items_tl
6052          set long_description    = ltrim(rtrim(x_long_description)),
6053              source_lang         = x_language,
6054              last_update_date    = sysdate,
6055              last_updated_by     = fnd_profile.value('USER_ID'),
6056              last_update_login   = fnd_profile.value('LOGIN_ID')
6057          where CURRENT OF Item_csr;
6058 
6059       end if;
6060    end loop;
6061    return;
6062 END UPDATE_NLS_TO_ORG;
6063 
6064 --Sync iM index after item creation,updation and org assignment.
6065 PROCEDURE SYNC_IM_INDEX IS
6066 
6067    CURSOR c_ego_exists IS
6068       SELECT  'Y'
6069       FROM    FND_OBJECTS
6070       WHERE   OBJ_NAME ='EGO_ITEM';
6071 
6072    l_ego_exists                 VARCHAR2(1) := 'N';
6073    l_object_exists              VARCHAR2(1) := 'N';
6074 
6075 BEGIN
6076    OPEN  c_ego_exists;
6077    FETCH c_ego_exists INTO l_ego_exists;
6078    CLOSE c_ego_exists;
6079    l_ego_exists := nvl(l_ego_exists,'N');
6080 
6081    IF (l_ego_exists = 'Y'  AND INV_Item_Util.g_Appl_Inst.EGO <> 0 ) THEN
6082       l_object_exists := INV_ITEM_UTIL.Object_Exists
6083                               (p_object_type => 'PACKAGE BODY'
6084                               ,p_object_name => 'EGO_ITEM_TEXT_UTIL');
6085       IF l_object_exists = 'Y' THEN
6086             EXECUTE IMMEDIATE
6087                ' BEGIN                                 '||
6088                '    EGO_ITEM_TEXT_UTIL.SYNC_INDEX;     '||
6089                ' EXCEPTION                             '||
6090                ' WHEN OTHERS THEN                      '||
6091                '    NULL;                              '||
6092                ' END;';
6093       END IF;
6094    END IF;
6095 
6096    -- Call IP Intermedia Sync
6097    INV_ITEM_EVENTS_PVT.Sync_IP_IM_Index;
6098 
6099    EXCEPTION
6100       WHEN OTHERS THEN
6101       IF c_ego_exists%ISOPEN THEN
6102          CLOSE c_ego_exists;
6103       END IF;
6104 END SYNC_IM_INDEX;
6105 
6106 -- Added as part of Bug Fix 3623450 to Check whether the master item record
6107 -- is locked.  Called from item form COPY_ITEM block DONE and COPY button's W-B-P
6108 PROCEDURE Check_Master_Record_Locked( P_Item_Rec  IN  INV_ITEM_API.Item_rec_type) IS
6109 
6110    CURSOR c_item_name IS
6111     SELECT
6112       SEGMENT1
6113     from  MTL_SYSTEM_ITEMS_B
6114     where  INVENTORY_ITEM_ID = P_Item_Rec.inventory_item_id
6115       and  ORGANIZATION_ID   = P_Item_rec.organization_id
6116     for update of INVENTORY_ITEM_ID nowait;
6117 
6118    recinfo          c_item_name%ROWTYPE;
6119    l_return_status  VARCHAR2(1);
6120 
6121 BEGIN
6122 
6123    OPEN c_item_name;
6124    FETCH c_item_name INTO recinfo;
6125 
6126    IF (c_item_name%NOTFOUND) THEN
6127       CLOSE c_item_name;
6128       FND_MESSAGE.SET_NAME('FND', 'FORM_RECORD_DELETED');
6129       Raise FND_API.g_EXC_UNEXPECTED_ERROR;
6130    END IF;
6131 
6132    CLOSE c_item_name;
6133 
6134 EXCEPTION
6135    WHEN FND_API.g_EXC_UNEXPECTED_ERROR THEN
6136       IF ( c_item_name%ISOPEN ) THEN
6137         CLOSE c_item_name;
6138       END IF;
6139       app_exception.raise_exception;
6140 
6141 END Check_Master_Record_Locked;
6142 
6143 /*Bug 6407303 Adding new functions to se and get the value of the attribute G_IS_MASTER_ATTR_MODIFIED  */
6144     FUNCTION Get_Is_Master_Attr_Modified RETURN VARCHAR2 IS
6145      BEGIN
6146          RETURN (G_IS_MASTER_ATTR_MODIFIED);
6147      END  Get_Is_Master_Attr_Modified;
6148 
6149      PROCEDURE Set_Is_Master_Attr_Modified(p_is_master_attr_modified VARCHAR2) IS
6150      BEGIN
6151         G_IS_MASTER_ATTR_MODIFIED := p_is_master_attr_modified;
6152      END  Set_Is_Master_Attr_Modified;
6153 
6154 /*Bug 6407303 */
6155 
6156 END INV_ITEM_PVT;