Index: /trunk/grails-app/domain/InventoryItemPurchase.groovy
===================================================================
--- /trunk/grails-app/domain/InventoryItemPurchase.groovy	(revision 598)
+++ /trunk/grails-app/domain/InventoryItemPurchase.groovy	(revision 599)
@@ -22,5 +22,20 @@
     static constraints = {
         quantity(min:0)
-        purchaseOrderNumber(blank:false, maxSize:50)
+        purchaseOrderNumber(blank:false, maxSize:50, validator: {val, obj ->
+            // For orders the purchaseOrderNumber must be unique for an inventoryItem.
+            if(obj.inventoryItemPurchaseType.id == 1L) {
+                def list = InventoryItemPurchase.withCriteria {
+                    eq('inventoryItem', obj.inventoryItem)
+                    eq('purchaseOrderNumber', obj.purchaseOrderNumber)
+                    eq('inventoryItemPurchaseType', obj.inventoryItemPurchaseType)
+                    if(obj.id)
+                        notEqual('id', obj.id)
+                }
+                if(list.size() > 0)
+                    return 'not.unique.for.inventory.item.order'
+            }
+            // Success.
+            return true
+        })
         invoiceNumber(maxSize:50)
         orderValueAmount(max: new BigDecimal(1000000000000))
Index: /trunk/grails-app/i18n/messages.properties
===================================================================
--- /trunk/grails-app/i18n/messages.properties	(revision 598)
+++ /trunk/grails-app/i18n/messages.properties	(revision 599)
@@ -175,4 +175,5 @@
 inventoryMovement.still.associated=Could not complete operation as inventory movements are still associated with this item.
 
+inventoryItemPurchase.purchaseOrderNumber.not.unique.for.inventory.item.order=Purchase Order Number must be unique for this inventory item order.
 inventoryItemPurchase.invoiceNumber.required=An invoice number must be supplied to approve payment.
 inventoryItemPurchase.delete.failure.received.exists=Could not delete, items have been received.
