Index: trunk/grails-app/controllers/InventoryItemDetailedController.groovy
===================================================================
--- trunk/grails-app/controllers/InventoryItemDetailedController.groovy	(revision 434)
+++ trunk/grails-app/controllers/InventoryItemDetailedController.groovy	(revision 435)
@@ -240,5 +240,11 @@
         if(!result.error) {
             def possibleAlternateItems = inventoryItemService.getPossibleAlternateItems(result.inventoryItemInstance)
-            return [ inventoryItemInstance : result.inventoryItemInstance, possibleAlternateItems: possibleAlternateItems]
+            def suppliers = Supplier.findAllByIsActive(true).sort { p1, p2 -> p1.name.compareToIgnoreCase(p2.name) }
+            def manufacturers = Manufacturer.findAllByIsActive(true).sort { p1, p2 -> p1.name.compareToIgnoreCase(p2.name) }
+
+            return [ inventoryItemInstance : result.inventoryItemInstance,
+                            possibleAlternateItems: possibleAlternateItems,
+                            suppliers: suppliers,
+                            manufacturers: manufacturers]
         }
 
@@ -263,12 +269,21 @@
 
         def possibleAlternateItems = inventoryItemService.getPossibleAlternateItems(result.inventoryItemInstance)
-        render(view:'edit', model:[inventoryItemInstance: result.inventoryItemInstance.attach(), possibleAlternateItems: possibleAlternateItems])
+        def suppliers = Supplier.findAllByIsActive(true).sort { p1, p2 -> p1.name.compareToIgnoreCase(p2.name) }
+        def manufacturers = Manufacturer.findAllByIsActive(true).sort { p1, p2 -> p1.name.compareToIgnoreCase(p2.name) }
+        render(view:'edit', model:[inventoryItemInstance: result.inventoryItemInstance.attach(),
+                                                possibleAlternateItems: possibleAlternateItems,
+                                                suppliers: suppliers,
+                                                manufacturers: manufacturers])
     }
 
     def create = {
         def result = inventoryItemService.create(params)
+        def suppliers = Supplier.findAllByIsActive(true).sort { p1, p2 -> p1.name.compareToIgnoreCase(p2.name) }
+        def manufacturers = Manufacturer.findAllByIsActive(true).sort { p1, p2 -> p1.name.compareToIgnoreCase(p2.name) }
 
         if(!result.error)
-            return [inventoryItemInstance: result.inventoryItemInstance]
+            return [inventoryItemInstance: result.inventoryItemInstance,
+                            suppliers: suppliers,
+                            manufacturers: manufacturers]
 
         //flash.errorMessage = g.message(code: result.error.code, args: result.error.args)
@@ -285,6 +300,11 @@
         }
 
+        def suppliers = Supplier.findAllByIsActive(true).sort { p1, p2 -> p1.name.compareToIgnoreCase(p2.name) }
+        def manufacturers = Manufacturer.findAllByIsActive(true).sort { p1, p2 -> p1.name.compareToIgnoreCase(p2.name) }
+
         //flash.errorMessage = g.message(code: result.error.code, args: result.error.args)
-        render(view:'create', model:[inventoryItemInstance: result.inventoryItemInstance])
+        render(view:'create', model:[inventoryItemInstance: result.inventoryItemInstance,
+                                                    suppliers: suppliers,
+                                                    manufacturers: manufacturers])
     }
 
Index: trunk/grails-app/domain/InventoryItem.groovy
===================================================================
--- trunk/grails-app/domain/InventoryItem.groovy	(revision 434)
+++ trunk/grails-app/domain/InventoryItem.groovy	(revision 435)
@@ -6,4 +6,6 @@
     Period averageDeliveryPeriod
     Picture picture
+    Supplier preferredSupplier
+    Manufacturer preferredManufacturer
     String name
     String description = ""
@@ -28,6 +30,6 @@
                                     spareFor: Asset,
                                     inventoryMovements: InventoryMovement,
-                                    manufacturers: Manufacturer,
-                                    suppliers: Supplier]
+                                    alternateManufacturers: Manufacturer,
+                                    alternateSuppliers: Supplier]
 
 //     static belongsTo = []
@@ -51,4 +53,6 @@
         manufacturersPartNumber(blank:true, nullable:true)
         suppliersPartNumber(blank:true, nullable:true)
+        preferredSupplier(nullable:true)
+        preferredManufacturer(nullable:true)
         averageDeliveryTime(nullable:true)
         averageDeliveryPeriod(nullable:true)
Index: trunk/grails-app/views/inventoryItemDetailed/create.gsp
===================================================================
--- trunk/grails-app/views/inventoryItemDetailed/create.gsp	(revision 434)
+++ trunk/grails-app/views/inventoryItemDetailed/create.gsp	(revision 435)
@@ -147,13 +147,22 @@
                             <tr class="prop">
                                 <td valign="top" class="name">
-                                    <label for="suppliers">Suppliers:</label>
-                                </td>
-                                <td valign="top" class="value ${hasErrors(bean:inventoryItemInstance,field:'suppliers','errors')}">
-                                    <g:select id="suppliers" name="suppliers"
-                                                        from="${ Supplier.list().sort { p1, p2 -> p1.name.compareToIgnoreCase(p2.name) } }"
+                                    <label for="preferredSupplier">Preferred Supplier:</label>
+                                </td>
+                                <td valign="top">
+                                    <g:select optionKey="id" from="${suppliers}" name="preferredSupplier.id" value="${inventoryItemInstance.preferredSupplier?.id}" noSelection="['null':'--None--']"></g:select>
+
+                                    <p><g:link controller="supplierDetailed" action="create">+Add Supplier</g:link></p>
+                                </td>
+                            </tr>
+                        
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label for="alternateSuppliers">Alternate Suppliers:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:inventoryItemInstance,field:'alternateSuppliers','errors')}">
+                                    <g:select id="alternateSuppliers" name="alternateSuppliers"
+                                                        from="${suppliers}"
                                                         size="5" multiple="yes" optionKey="id"
-                                                        value="${inventoryItemInstance?.suppliers?.id}" noSelection="['':'--None--']"/>
-
-                                <p><g:link controller="supplierDetailed" action="create">+Add Supplier</g:link></p>
+                                                        value="${inventoryItemInstance.alternateSuppliers?.id}" noSelection="['':'--None--']"/>
                                 </td>
                             </tr>
@@ -170,13 +179,22 @@
                             <tr class="prop">
                                 <td valign="top" class="name">
-                                    <label for="manufacturers">Manufacturers:</label>
-                                </td>
-                                <td valign="top" class="value ${hasErrors(bean:inventoryItemInstance,field:'manufacturers','errors')}">
-                                    <g:select id="manufacturers" name="manufacturers"
-                                                        from="${ Manufacturer.list().sort { p1, p2 -> p1.name.compareToIgnoreCase(p2.name) } }"
+                                    <label for="preferredManufacturer">Preferred Manufacturer:</label>
+                                </td>
+                                <td valign="top">
+                                    <g:select optionKey="id" from="${manufacturers}" name="preferredManufacturer.id" value="${inventoryItemInstance?.preferredManufacturer?.id}" noSelection="['null':'--None--']"></g:select>
+
+                                    <p><g:link controller="manufacturerDetailed" action="create">+Add Manufacturer</g:link></p>
+                                </td>
+                            </tr>
+                        
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label for="manufacturers">Alternate Manufacturers:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:inventoryItemInstance,field:'alternateManufacturers','errors')}">
+                                    <g:select id="alternateManufacturers" name="alternateManufacturers"
+                                                        from="${manufacturers}"
                                                         size="5" multiple="yes" optionKey="id"
-                                                        value="${inventoryItemInstance?.manufacturers?.id}" noSelection="['':'--None--']" />
-
-                                    <p><g:link controller="manufacturerDetailed" action="create">+Add Manufacturer</g:link></p>
+                                                        value="${inventoryItemInstance.alternateManufacturers?.id}" noSelection="['':'--None--']" />
                                 </td>
                             </tr>
Index: trunk/grails-app/views/inventoryItemDetailed/edit.gsp
===================================================================
--- trunk/grails-app/views/inventoryItemDetailed/edit.gsp	(revision 434)
+++ trunk/grails-app/views/inventoryItemDetailed/edit.gsp	(revision 435)
@@ -184,13 +184,22 @@
                             <tr class="prop">
                                 <td valign="top" class="name">
-                                    <label for="suppliers">Suppliers:</label>
-                                </td>
-                                <td valign="top" class="value ${hasErrors(bean:inventoryItemInstance,field:'suppliers','errors')}">
-                                    <g:select id="suppliers" name="suppliers"
-                                                        from="${ Supplier.list().sort { p1, p2 -> p1.name.compareToIgnoreCase(p2.name) } }"
-                                                        size="5" multiple="yes" optionKey="id"
-                                                        value="${inventoryItemInstance?.suppliers.id}" noSelection="['':'--None--']"/>
-
-                                <p><g:link controller="supplierDetailed" action="create">+Add Supplier</g:link></p>
+                                    <label for="preferredSupplier">Preferred Supplier:</label>
+                                </td>
+                                <td valign="top">
+                                    <g:select optionKey="id" from="${suppliers}" name="preferredSupplier.id" value="${inventoryItemInstance.preferredSupplier?.id}" noSelection="['null':'--None--']"></g:select>
+
+                                    <p><g:link controller="supplierDetailed" action="create">+Add Supplier</g:link></p>
+                                </td>
+                            </tr>
+
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label for="alternateSuppliers">Alternate Suppliers:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:inventoryItemInstance,field:'alternateSuppliers','errors')}">
+                                    <g:select id="alternateSuppliers" name="alternateSuppliers"
+                                                        from="${suppliers}"
+                                                        size="5" multiple="yes" optionKey="id"
+                                                        value="${inventoryItemInstance.alternateSuppliers?.id}" noSelection="['':'--None--']"/>
                                 </td>
                             </tr>
@@ -207,13 +216,22 @@
                             <tr class="prop">
                                 <td valign="top" class="name">
-                                    <label for="manufacturers">Manufacturers:</label>
-                                </td>
-                                <td valign="top" class="value ${hasErrors(bean:inventoryItemInstance,field:'manufacturers','errors')}">
-                                    <g:select id="manufacturers" name="manufacturers"
-                                                        from="${ Manufacturer.list().sort { p1, p2 -> p1.name.compareToIgnoreCase(p2.name) } }"
-                                                        size="5" multiple="yes" optionKey="id"
-                                                        value="${inventoryItemInstance?.manufacturers.id}" noSelection="['':'--None--']"/>
+                                    <label for="preferredManufacturer">Preferred Manufacturer:</label>
+                                </td>
+                                <td valign="top">
+                                    <g:select optionKey="id" from="${manufacturers}" name="preferredManufacturer.id" value="${inventoryItemInstance.preferredManufacturer?.id}" noSelection="['null':'--None--']"></g:select>
 
                                     <p><g:link controller="manufacturerDetailed" action="create">+Add Manufacturer</g:link></p>
+                                </td>
+                            </tr>
+
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label for="manufacturers">Alternate Manufacturers:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:inventoryItemInstance,field:'alternateManufacturers','errors')}">
+                                    <g:select id="alternateManufacturers" name="alternateManufacturers"
+                                                        from="${manufacturers}"
+                                                        size="5" multiple="yes" optionKey="id"
+                                                        value="${inventoryItemInstance.alternateManufacturers?.id}" noSelection="['':'--None--']" />
                                 </td>
                             </tr>
Index: trunk/grails-app/views/inventoryItemDetailed/search.gsp
===================================================================
--- trunk/grails-app/views/inventoryItemDetailed/search.gsp	(revision 434)
+++ trunk/grails-app/views/inventoryItemDetailed/search.gsp	(revision 435)
@@ -166,13 +166,14 @@
                                     action="search"
                                     class="overlayPane"
-                                    excludeProperties=""
+                                    excludeProperties="estimatedUnitPriceCurrency,
+                                                                    averageDeliveryTime"
                                     associatedProperties="inventoryLocation.name,
                                                                             spareFor.name,
-                                                                            manufacturers.name,
-                                                                            suppliers.name"
+                                                                            preferredManufacturer.name,
+                                                                            preferredSupplier.name"
                                     filterPropertyValues="${['inventoryLocation.name':[values:InventoryLocation.list()],
                                                                                 'spareFor.name':[values:Asset.list()],
-                                                                                'manufacturers.name':[values:Manufacturer.list()],
-                                                                                'suppliers.name':[values:Supplier.list()],
+                                                                                'preferredManufacturer.name':[values:Manufacturer.findAllByIsActive(true)],
+                                                                                'preferredSupplier.name':[values:Supplier.findAllByIsActive(true)],
                                                                                 ]}"/>
         </div> <!-- end body div -->
Index: trunk/grails-app/views/inventoryItemDetailed/show.gsp
===================================================================
--- trunk/grails-app/views/inventoryItemDetailed/show.gsp	(revision 434)
+++ trunk/grails-app/views/inventoryItemDetailed/show.gsp	(revision 435)
@@ -243,9 +243,19 @@
 
                                     <tr class="prop">
-                                        <td valign="top" class="name">Suppliers:</td>
+                                        <td valign="top" class="name">Preferred Supplier:</td>
+
+                                        <td  valign="top" style="text-align:left;" class="value">
+                                            <g:link controller="supplierDetailed" action="show" id="${inventoryItemInstance.preferredSupplier?.id}">
+                                                ${inventoryItemInstance.preferredSupplier?.encodeAsHTML()}
+                                            </g:link>
+                                        </td>
+                                    </tr>
+
+                                    <tr class="prop">
+                                        <td valign="top" class="name">Alternate Suppliers:</td>
 
                                         <td  valign="top" style="text-align:left;" class="value">
                                             <ul>
-                                            <g:each var="s" in="${ inventoryItemInstance.suppliers.sort { p1, p2 -> p1.name.compareToIgnoreCase(p2.name) } }">
+                                            <g:each var="s" in="${ inventoryItemInstance.alternateSuppliers.sort { p1, p2 -> p1.name.compareToIgnoreCase(p2.name) } }">
                                                 <li><g:link controller="supplierDetailed" action="show" id="${s.id}">${s?.encodeAsHTML()}</g:link></li>
                                             </g:each>
@@ -268,9 +278,19 @@
 
                                     <tr class="prop">
-                                        <td valign="top" class="name">Manufacturers:</td>
+                                        <td valign="top" class="name">Preferred Manufacturer:</td>
+
+                                        <td  valign="top" style="text-align:left;" class="value">
+                                            <g:link controller="manufacturerDetailed" action="show" id="${inventoryItemInstance.preferredManufacturer?.id}">
+                                                ${inventoryItemInstance.preferredManufacturer?.encodeAsHTML()}
+                                            </g:link>
+                                        </td>
+                                    </tr>
+
+                                    <tr class="prop">
+                                        <td valign="top" class="name">Alternate Manufacturers:</td>
 
                                         <td  valign="top" style="text-align:left;" class="value">
                                             <ul>
-                                            <g:each var="m" in="${ inventoryItemInstance.manufacturers.sort { p1, p2 -> p1.name.compareToIgnoreCase(p2.name) } }">
+                                            <g:each var="m" in="${ inventoryItemInstance.alternateManufacturers.sort { p1, p2 -> p1.name.compareToIgnoreCase(p2.name) } }">
                                                 <li><g:link controller="manufacturerDetailed" action="show" id="${m.id}">${m?.encodeAsHTML()}</g:link></li>
                                             </g:each>
