DBA Data[Home] [Help]

PACKAGE BODY: APPS.INV_ITEM_PVT

Source


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