Index: /trunk/grails-app/controllers/InventoryItemDetailedController.groovy
===================================================================
--- /trunk/grails-app/controllers/InventoryItemDetailedController.groovy	(revision 225)
+++ /trunk/grails-app/controllers/InventoryItemDetailedController.groovy	(revision 226)
@@ -166,5 +166,5 @@
     def useInventoryItem = {
 
-        params.inventoryMovementType = InventoryMovementType.get(1) // used.
+        params.inventoryMovementType = InventoryMovementType.get(1) // Set type to "Used".
         def result = inventoryMovementService.move(params)
 
Index: /trunk/grails-app/controllers/InventoryMovementDetailedController.groovy
===================================================================
--- /trunk/grails-app/controllers/InventoryMovementDetailedController.groovy	(revision 225)
+++ /trunk/grails-app/controllers/InventoryMovementDetailedController.groovy	(revision 226)
@@ -27,8 +27,8 @@
     /**
     * List the inventory movements for an InventoryItem.
-    * @param params.id The id of an existing inventory item.
+    * @param params.inventoryItem.id The id of an existing inventory item.
     */
     def listInventoryMovements = {
-        def inventoryItemInstance = InventoryItem.get(params.id)
+        def inventoryItemInstance = InventoryItem.get(params.inventoryItem.id)
 
         if(!inventoryItemInstance) {
@@ -65,13 +65,16 @@
 
     def create = {
-        if(!params.task?.id) {
-            flash.message = "Please select a task, then the Inventory tab."
-            redirect(controller:"taskDetailed", action:"search")
-        }
         def inventoryMovementInstance = new InventoryMovement()
         inventoryMovementInstance.properties = params
-        return ['inventoryMovementInstance':inventoryMovementInstance]
+        def inventoryMovementTypeList = InventoryMovementType.withCriteria { gt("id", 1L) } // Don't include "Used".
+
+        return ['inventoryMovementInstance': inventoryMovementInstance,
+                        inventoryMovementTypeList: inventoryMovementTypeList]
     }
 
+    /**
+    * Handles all inventory movements except those of type "Used".
+     * The "Used" type is handled directly by InventoryItemDetailedController and useInventoryItem.
+    */
     def save = {
         def result = inventoryMovementService.move(params)
@@ -79,9 +82,15 @@
         if(!result.error) {
             flash.message = "Inventory Movement for ${result.inventoryMovementInstance.inventoryItem.name} created."
-            redirect(controller:"taskDetailed", action:"show", id: result.taskId)
+            if(result.taskId) {
+                redirect(controller:"taskDetailed", action:"show", id: result.taskId)
+                return
+            }
+            redirect(controller:"inventoryItemDetailed", action:"show", id: result.inventoryMovementInstance.inventoryItem.id)
         }
         else {
             if(result.inventoryMovementInstance) {
-                render(view:'create',model:[inventoryMovementInstance:result.inventoryMovementInstance])
+                def inventoryMovementTypeList = InventoryMovementType.withCriteria { gt("id", 1L) } // Don't include "Used".
+                render(view:'create', model:[inventoryMovementInstance: result.inventoryMovementInstance,
+                                                            inventoryMovementTypeList: inventoryMovementTypeList])
             }
             else {
Index: /trunk/grails-app/services/InventoryItemService.groovy
===================================================================
--- /trunk/grails-app/services/InventoryItemService.groovy	(revision 225)
+++ /trunk/grails-app/services/InventoryItemService.groovy	(revision 226)
@@ -19,5 +19,4 @@
         def fail = { Object[] args ->
             if(args.size() == 2) result.errors = [args[0], args[1]]
-            log.debug result.errors
             result.error = true
             return result
@@ -41,6 +40,4 @@
             return fail("inventoryItem", "inventoryItem.notFound")
 
-        log.debug "WTF are we doing here"
-
         def p = [:]
         p.max = result.inventoryMovementListMax = 10
Index: /trunk/grails-app/services/InventoryMovementService.groovy
===================================================================
--- /trunk/grails-app/services/InventoryMovementService.groovy	(revision 225)
+++ /trunk/grails-app/services/InventoryMovementService.groovy	(revision 226)
@@ -117,5 +117,5 @@
             if(result.inventoryMovementInstance.validate()) {
                 def inventoryItem = InventoryItem.lock(result.inventoryMovementInstance.inventoryItem.id)
-                result.taskId = result.inventoryMovementInstance.task.id
+                result.taskId = result.inventoryMovementInstance.task?.id
 
                 if(!inventoryItem) {
Index: /trunk/grails-app/views/inventoryItemDetailed/show.gsp
===================================================================
--- /trunk/grails-app/views/inventoryItemDetailed/show.gsp	(revision 225)
+++ /trunk/grails-app/views/inventoryItemDetailed/show.gsp	(revision 226)
@@ -292,5 +292,5 @@
                             <div class="buttons">
                                 <g:form controller="inventoryMovementDetailed">
-                                    <g:hiddenField name="id" value="${inventoryItemInstance?.id}" />
+                                    <g:hiddenField name="inventoryItem.id" value="${inventoryItemInstance.id}" />
                                     <span class="button"><g:actionSubmit action="create" class="add" value="Create" /></span>
                                 </g:form>
@@ -333,5 +333,5 @@
                             <div class="buttons">
                                 <g:form controller="inventoryMovementDetailed">
-                                    <g:hiddenField name="id" value="${inventoryItemInstance?.id}" />
+                                    <g:hiddenField name="inventoryItem.id" value="${inventoryItemInstance.id}" />
                                     <g:if test="${inventoryMovementListTotal > inventoryMovementListMax}">
                                         Showing ${inventoryMovementListMax} of ${inventoryMovementListTotal}
Index: /trunk/grails-app/views/inventoryMovementDetailed/create.gsp
===================================================================
--- /trunk/grails-app/views/inventoryMovementDetailed/create.gsp	(revision 225)
+++ /trunk/grails-app/views/inventoryMovementDetailed/create.gsp	(revision 226)
@@ -21,9 +21,11 @@
             </div>
             </g:hasErrors>
+
             <g:form action="save" method="post" >
+                <g:hiddenField name="inventoryItem.id" value="${inventoryMovementInstance?.inventoryItem?.id}" />
                 <div class="dialog">
                     <table>
                         <tbody>
-                        
+
                             <tr class="prop">
                                 <td valign="top" class="name">
@@ -31,14 +33,19 @@
                                 </td>
                                 <td valign="top" class="value ${hasErrors(bean:inventoryMovementInstance,field:'inventoryItem','errors')}">
-                                    <g:select optionKey="id" from="${InventoryItem.list()}" name="inventoryItem.id" value="${inventoryMovementInstance?.inventoryItem?.id}" ></g:select>
+                                    <g:link controller="inventoryItemDetailed" action="show" id="${inventoryMovementInstance?.inventoryItem?.id}" >
+                                        <g:fieldValue bean="${inventoryMovementInstance}" field="inventoryItem" />
+                                    </g:link>
                                 </td>
-                            </tr> 
-                        
+                            </tr>
+
                             <tr class="prop">
                                 <td valign="top" class="name">
                                     <label for="quantity">Quantity:</label>
                                 </td>
-                                <td valign="top" class="value ${hasErrors(bean:inventoryMovementInstance,field:'quantity','errors')}">
-                                    <input type="text" id="quantity" name="quantity" value="${fieldValue(bean:inventoryMovementInstance,field:'quantity')}"/>
+                                <td valign="top">
+                                    <input class="medium ${hasErrors(bean:inventoryMovementInstance,field:'quantity','errors')}"
+                                                type="text" id="quantity" name="quantity"
+                                                value="${fieldValue(bean:inventoryMovementInstance,field:'quantity')}"/>
+                                                ${inventoryMovementInstance?.inventoryItem?.unitOfMeasure.encodeAsHTML()}
                                 </td>
                             </tr>
@@ -49,17 +56,17 @@
                                 </td>
                                 <td valign="top" class="value ${hasErrors(bean:inventoryMovementInstance,field:'inventoryMovementType','errors')}">
-                                    <g:select optionKey="id" from="${InventoryMovementType.list()}" name="inventoryMovementType.id" value="${inventoryMovementInstance?.inventoryMovementType?.id}" ></g:select>
+                                    <g:select optionKey="id" from="${inventoryMovementTypeList}" name="inventoryMovementType.id" value="${inventoryMovementInstance?.inventoryMovementType?.id}" ></g:select>
                                 </td>
                             </tr>
 
-                            <g:if test="${inventoryMovementInstance.task}">
+                            <g:if test="${inventoryMovementInstance?.task}">
                                 <tr class="prop">
                                     <td valign="top" class="name">
                                         <label for="taskInstance">Linking with task:</label>
                                     </td>
-                                    <td valign="top" name="inventoryMovementInstance.task" class="value">
+                                    <td valign="top" class="value">
                                         <g:hiddenField name="task.id" value="${inventoryMovementInstance.task.id}" />
                                         <g:link controller="taskDetailed" action="show" id="${inventoryMovementInstance.task.id}" >
-                                            ${inventoryMovementInstance.task}
+                                            ${inventoryMovementInstance.task.encodeAsHTML()}
                                         </g:link>
                                     </td>
@@ -70,72 +77,11 @@
                     </table>
                 </div>
+
                 <div class="buttons">
                     <span class="button"><input class="save" type="submit" value="Create" /></span>
                 </div>
+
             </g:form>
         </div>
-
-
-        <!-- Start Search Pane -->
-        <div class="overlayPane" id="searchPane" style="display:none;">
-            <h2>Quick Search</h2>
-            <g:form method="post" id="searchForm" name="searchForm" >
-                <table>
-                    <tbody>
-
-                        <tr class="prop">
-                            <td valign="top" class="name">
-                                <label>My Tasks:</label>
-                            </td>
-                            <td valign="top" class="value">
-                                <g:link controller="taskDetailed"
-                                                action="search"
-                                                params="[quickSearch: 'searchMyTodays']">
-                                                Today's
-                                </g:link>
-                                <br />
-                                <g:link controller="taskDetailed" 
-                                                action="search"
-                                                params="[quickSearch: 'searchMyInTheLastWeek']">
-                                                In the last week
-                                </g:link>
-                            </td>
-                        </tr>
-
-                        <tr class="prop">
-                            <td valign="top" class="name">
-                                <label>Tasks:</label>
-                            </td>
-                            <td valign="top" class="value">
-                                <g:link controller="taskDetailed"
-                                                action="search"
-                                                params="[quickSearch: 'searchTodays']">
-                                                Today's
-                                </g:link>
-                                <br />
-                                <g:link controller="taskDetailed" 
-                                                action="search"
-                                                params="[quickSearch: 'searchInTheLastWeek']">
-                                                In the last week
-                                </g:link>
-                            </td>
-                        </tr>
-
-                    </tbody>
-                </table>
-                <div class="buttons">
-                    <span class="button">
-                        <input type="button" value="${g.message(code:'fp.tag.filterPane.button.cancel.text', default:'Cancel')}" onclick="return hideElement('searchPane');" />
-                    </span>
-<!--                    <span class="button">
-                        <input type="button" value="${g.message(code:'fp.tag.filterPane.button.clear.text', default:'Clear')}" onclick="return clearFilterPane('searchForm');" />
-                    </span>
-                    <span class="button">
-                        <g:actionSubmit class="search" value="Search" />
-                    </span>-->
-                </div>
-            </g:form>
-        </div> <!-- end search pane -->
-
     </body>
 </html>
