- Timestamp:
- Nov 28, 2010, 12:32:07 PM (14 years ago)
- Location:
- trunk/grails-app
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/grails-app/controllers/InventoryItemDetailedController.groovy
r720 r727 456 456 457 457 def suppliers = Supplier.findAllByIsActive(true).sort { p1, p2 -> p1.name.compareToIgnoreCase(p2.name) } 458 render(view:'edit', model:[inventoryItemInstance: result.inventoryItemInstance .attach(),458 render(view:'edit', model:[inventoryItemInstance: result.inventoryItemInstance, 459 459 suppliers: suppliers]) 460 460 } -
trunk/grails-app/i18n/messages.properties
r722 r727 231 231 inventory.item.description.help=The inventory item description as it would appear on a reorder. 232 232 inventory.item.comment=Comment 233 inventory.item.comment.help=Additional on site comments. 233 inventory.item.comment.help=Additional on site comments. Which may include additional ordering information, \ 234 search key words and other useful information. 234 235 inventory.item.estimated.unit.price.amount=Unit Price 235 236 inventory.item.estimated.unit.price.amount.help=Estimated reorder price of a single unit. … … 248 249 Often determined by a price break or minimum order quantity. 249 250 inventory.item.is.active=Active 250 inventory.item.is.active.help=Disable to remove from search es.251 inventory.item.is.active.help=Disable to remove from search results. 251 252 inventory.item.is.obsolete=Obsolete 252 253 inventory.item.is.obsolete.help=Enabled indicates that item considered obsolete by the supplier. … … 256 257 inventory.item.inventory.location.help=The location or bin where this item can be found. 257 258 inventory.item.inventory.group=Group 258 inventory.item.inventory.group.help=An easy way to group or place items in various piles for planning.259 inventory.item.inventory.group.help=An easy way to group or place items in various piles to assit with management. 259 260 inventory.item.inventory.type=Type 260 261 inventory.item.inventory.type.help=The type of inventory that this item falls into. … … 265 266 inventory.item.alternate.suppliers.help=List of alternate suppliers that this item may be purchased from. \ 266 267 For example when the preferred supplier has no stock. 268 inventory.item.spare.for=Spare For 269 inventory.item.spare.for.help=List of assets that this item is held as a spare for. 267 270 268 271 # InventoryItem Messages. -
trunk/grails-app/services/InventoryItemService.groovy
r720 r727 70 70 result.showTab = [:] 71 71 switch (params.showTab) { 72 case "showDetailTab":73 result.showTab.detail = new String("true")74 break75 72 case "showMovementTab": 76 73 result.showTab.movement = new String("true") … … 167 164 168 165 result.inventoryItemInstance.properties = params 166 result.inventoryItemInstance.setAlternateSuppliersFromCheckBoxList(params.alternateSuppliers) 167 result.inventoryItemInstance.setSpareForFromCheckBoxList(params.spareFor) 168 169 // Fetch to prevent lazy initialization error. 170 result.inventoryItemInstance.unitOfMeasure 169 171 170 172 if(result.inventoryItemInstance.hasErrors() || !result.inventoryItemInstance.save()) … … 204 206 205 207 result.inventoryItemInstance = new InventoryItem(params) 208 result.inventoryItemInstance.setAlternateSuppliersFromCheckBoxList(params.alternateSuppliers) 209 result.inventoryItemInstance.setSpareForFromCheckBoxList(params.spareFor) 206 210 207 211 if(result.inventoryItemInstance.hasErrors() || !result.inventoryItemInstance.save()) -
trunk/grails-app/views/inventoryItemDetailed/create.gsp
r719 r727 25 25 26 26 <tr class="prop"> 27 <td valign="top" class="name"> 27 <td valign="top" class="groupHeader"> 28 <label for="name">Inventory Item</label> 29 </td> 30 <td valign="top" class="value"> 31 </td> 32 </tr> 33 34 <tr class="prop"> 35 <td valign="top" class="groupName"> 28 36 <label for="name">Name:</label> 29 37 </td> … … 35 43 36 44 <tr class="prop"> 37 <td valign="top" class=" name">45 <td valign="top" class="groupName"> 38 46 <label for="description">Description:</label> 39 47 </td> … … 45 53 46 54 <tr class="prop"> 47 <td valign="top" class=" name">55 <td valign="top" class="groupName"> 48 56 <label for="comment">Comment:</label> 49 57 </td> … … 55 63 56 64 <tr class="prop"> 57 <td valign="top" class="name"> 65 <td valign="top" class="groupName"> 66 <label for="unitOfMeasure">Unit Of Measure:</label> 67 </td> 68 <td valign="top"> 69 <g:select optionKey="id" 70 from="${UnitOfMeasure.findAllByIsActive(true)}" 71 name="unitOfMeasure.id" 72 value="${inventoryItemInstance?.unitOfMeasure?.id}" > 73 </g:select> 74 <g:helpBalloon class="helpballoon" code="inventory.item.unit.of.measure" /> 75 </td> 76 </tr> 77 78 <tr class="prop"> 79 <td valign="top" class="groupName"> 58 80 <label for="inventoryLocation">Inventory Location:</label> 59 81 </td> 60 82 <td valign="top" class="value ${hasErrors(bean:inventoryItemInstance,field:'inventoryLocation','errors')}"> 61 83 <g:select optionKey="id" 62 from="${ InventoryLocation. list().sort { p1, p2 -> p1.toString().compareToIgnoreCase(p2.toString()) } }"84 from="${ InventoryLocation.findAllByIsActive(true).sort { p1, p2 -> p1.toString().compareToIgnoreCase(p2.toString()) } }" 63 85 name="inventoryLocation.id" value="${inventoryItemInstance?.inventoryLocation?.id}" 64 optionValue="${{it.name+ ' in ' + it.inventoryStore}}"> 86 optionValue="${{it.name+ ' in ' + it.inventoryStore}}" 87 noSelection="['null':/${g.message(code:'default.please.select.text')}/]" > 65 88 </g:select> 66 89 <g:helpBalloon class="helpballoon" code="inventory.item.inventory.location" /> … … 71 94 72 95 <tr class="prop"> 73 <td valign="top" class="name"> 96 <td valign="top" class="groupName"> 97 <label for="inventoryGroup">Inventory Group:</label> 98 </td> 99 <td valign="top" class="value ${hasErrors(bean:inventoryItemInstance,field:'inventoryGroup','errors')}"> 100 <g:select optionKey="id" 101 from="${InventoryGroup.findAllByIsActive(true).sort { p1, p2 -> p1.name.compareToIgnoreCase(p2.name) }}" 102 name="inventoryGroup.id" 103 value="${inventoryItemInstance?.inventoryGroup?.id}" 104 noSelection="['null':/${g.message(code:'default.please.select.text')}/]" > 105 </g:select> 106 <g:helpBalloon class="helpballoon" code="inventory.item.inventory.group" /> 107 <p><g:link controller="inventoryGroupDetailed" action="create">+Add Group</g:link></p> 108 </td> 109 </tr> 110 111 <tr class="prop"> 112 <td valign="top" class="groupName"> 113 <label for="inventoryType">Inventory Type:</label> 114 </td> 115 <td valign="top" class="value ${hasErrors(bean:inventoryItemInstance,field:'inventoryType','errors')}"> 116 <g:select optionKey="id" 117 from="${InventoryType.findAllByIsActive(true).sort { p1, p2 -> p1.name.compareToIgnoreCase(p2.name) }}" 118 name="inventoryType.id" 119 value="${inventoryItemInstance?.inventoryType?.id}" 120 noSelection="['null':/${g.message(code:'default.please.select.text')}/]" > 121 </g:select> 122 <g:helpBalloon class="helpballoon" code="inventory.item.inventory.type" /> 123 </td> 124 </tr> 125 126 <tr class="prop"> 127 <td valign="top" class="groupHeader"> 128 <label for="name">Reorder Details</label> 129 </td> 130 <td valign="top" class="value"> 131 </td> 132 </tr> 133 134 <tr class="prop"> 135 <td valign="top" class="groupName"> 136 <label for="enableReorderListing">Enable Reorder Listing:</label> 137 </td> 138 <td valign="top" class="value ${hasErrors(bean:inventoryItemInstance,field:'enableReorderListing','errors')}"> 139 <g:checkBox name="enableReorderListing" value="${inventoryItemInstance?.enableReorderListing}" ></g:checkBox> 140 <g:helpBalloon class="helpballoon" code="inventory.item.enable.reorder.listing" /> 141 </td> 142 </tr> 143 144 <tr class="prop"> 145 <td valign="top" class="groupName"> 74 146 <label for="reorderPoint">Reorder Point:</label> 75 147 </td> … … 79 151 value="${fieldValue(bean:inventoryItemInstance,field:'reorderPoint')}" /> 80 152 <g:helpBalloon class="helpballoon" code="inventory.item.reorder.point" /> 81 <g:select optionKey="id" 82 from="${UnitOfMeasure.list()}" 83 name="unitOfMeasure.id" 84 value="${inventoryItemInstance?.unitOfMeasure?.id}" > 85 </g:select> 86 <g:helpBalloon class="helpballoon" code="inventory.item.unit.of.measure" /> 87 </td> 88 </tr> 89 90 <tr class="prop"> 91 <td valign="top" class="name"> 92 <label for="enableReorderListing">Enable Reorder Listing:</label> 93 </td> 94 <td valign="top" class="value ${hasErrors(bean:inventoryItemInstance,field:'enableReorderListing','errors')}"> 95 <g:checkBox name="enableReorderListing" value="${inventoryItemInstance?.enableReorderListing}" ></g:checkBox> 96 <g:helpBalloon class="helpballoon" code="inventory.item.enable.reorder.listing" /> 97 </td> 98 </tr> 99 100 <tr class="prop"> 101 <td valign="top" class="name"> 102 <label for="inventoryGroup">Inventory Group:</label> 103 </td> 104 <td valign="top" class="value ${hasErrors(bean:inventoryItemInstance,field:'inventoryGroup','errors')}"> 105 <g:select optionKey="id" from="${InventoryGroup.list()}" name="inventoryGroup.id" value="${inventoryItemInstance?.inventoryGroup?.id}" ></g:select> 106 <g:helpBalloon class="helpballoon" code="inventory.item.inventory.group" /> 107 <p><g:link controller="inventoryGroupDetailed" action="create">+Add Group</g:link></p> 108 </td> 109 </tr> 110 111 <tr class="prop"> 112 <td valign="top" class="name"> 113 <label for="inventoryType">Inventory Type:</label> 114 </td> 115 <td valign="top" class="value ${hasErrors(bean:inventoryItemInstance,field:'inventoryType','errors')}"> 116 <g:select optionKey="id" from="${InventoryType.list()}" name="inventoryType.id" value="${inventoryItemInstance?.inventoryType?.id}" ></g:select> 117 <g:helpBalloon class="helpballoon" code="inventory.item.inventory.type" /> 118 </td> 119 </tr> 120 121 <tr class="prop"> 122 <td valign="top" class="name"> 153 </td> 154 </tr> 155 156 <tr class="prop"> 157 <td valign="top" class="groupName"> 158 <label for="reorderQuantity">Reorder Quantity:</label> 159 </td> 160 <td valign="top"> 161 <input class="medium ${hasErrors(bean:inventoryItemInstance,field:'reorderQuantity','errors')}" 162 type="text" id="reorderQuantity" name="reorderQuantity" 163 value="${fieldValue(bean:inventoryItemInstance,field:'reorderQuantity')}" /> 164 <g:helpBalloon class="helpballoon" code="inventory.item.reorder.quantity" /> 165 </td> 166 </tr> 167 168 <tr class="prop"> 169 <td valign="top" class="groupName"> 123 170 <label for="estimatedUnitPriceAmount">Estimated Unit Price:</label> 124 171 </td> … … 136 183 137 184 <tr class="prop"> 138 <td valign="top" class=" name">185 <td valign="top" class="groupName"> 139 186 <label for="suppliersPartNumber">Suppliers Part Number:</label> 140 187 </td> 141 188 <td valign="top" class="value ${hasErrors(bean:inventoryItemInstance,field:'suppliersPartNumber','errors')}"> 142 <input type="text" id="suppliersPartNumber" name="suppliersPartNumber" value="${fieldValue(bean:inventoryItemInstance,field:'suppliersPartNumber')}"/>189 <input type="text" id="suppliersPartNumber" maxlength="50" name="suppliersPartNumber" value="${fieldValue(bean:inventoryItemInstance,field:'suppliersPartNumber')}"/> 143 190 <g:helpBalloon class="helpballoon" code="inventory.item.suppliers.part.number" /> 144 191 </td> … … 146 193 147 194 <tr class="prop"> 148 <td valign="top" class=" name">195 <td valign="top" class="groupName"> 149 196 <label for="preferredSupplier">Preferred Supplier:</label> 150 197 </td> 151 198 <td valign="top"> 152 <g:select optionKey="id" from="${suppliers}" name="preferredSupplier.id" value="${inventoryItemInstance.preferredSupplier?.id}" noSelection="['null':'--None--']"></g:select> 199 <g:select optionKey="id" 200 from="${suppliers}" 201 name="preferredSupplier.id" 202 value="${inventoryItemInstance.preferredSupplier?.id}" 203 noSelection="['null':'--None--']"> 204 </g:select> 153 205 <g:helpBalloon class="helpballoon" code="inventory.item.preferred.supplier" /> 154 206 <p><g:link controller="supplierDetailed" action="create">+Add Supplier</g:link></p> 155 207 </td> 156 208 </tr> 157 158 <tr class="prop"> 159 <td valign="top" class=" name">209 210 <tr class="prop"> 211 <td valign="top" class="groupName"> 160 212 <label for="alternateSuppliers">Alternate Suppliers:</label> 161 213 </td> 162 214 <td valign="top" class="value ${hasErrors(bean:inventoryItemInstance,field:'alternateSuppliers','errors')}"> 163 <g:select id="alternateSuppliers" name="alternateSuppliers"164 from="${suppliers}"165 size="5" multiple="yes" optionKey="id"166 value="${inventoryItemInstance.alternateSuppliers?.id}" noSelection="['':'--None--']"/>167 215 <g:helpBalloon class="helpballoon" code="inventory.item.alternate.suppliers" /> 216 <custom:checkBoxList name="alternateSuppliers" 217 from="${suppliers}" 218 value="${inventoryItemInstance?.alternateSuppliers?.collect{it.id}}" 219 optionKey="id" 220 linkController="supplierDetailed" 221 linkAction="show"/> 222 <g:link controller="supplierDetailed" action="create">+Add Supplier</g:link> 223 </td> 224 </tr> 225 226 <tr class="prop"> 227 <td valign="top" class="groupHeader"> 228 <label for="name">Spare For</label> 229 </td> 230 <td valign="top" class="value"> 231 </td> 232 </tr> 233 234 <tr class="prop"> 235 <td valign="top" class="groupName"> 236 <label for="spareFor">Assets:</label> 237 </td> 238 <td valign="top" class="value ${hasErrors(bean:inventoryItemInstance,field:'spareFor','errors')}"> 239 <g:helpBalloon class="helpballoon" code="inventory.item.spare.for" /> 240 <custom:checkBoxList name="spareFor" 241 from="${Asset.findAllByIsActive(true).sort { p1, p2 -> p1.name.compareToIgnoreCase(p2.name) }}" 242 value="${inventoryItemInstance?.spareFor?.collect{it.id}}" 243 optionKey="id" 244 sortBy="name" 245 linkController="assetDetailed" 246 linkAction="show"/> 247 <g:link controller="assetDetailed" action="create">+Add Asset</g:link> 168 248 </td> 169 249 </tr> -
trunk/grails-app/views/inventoryItemDetailed/edit.gsp
r720 r727 28 28 29 29 <tr class="prop"> 30 <td valign="top" class="name">Picture:</td> 30 <td valign="top" class="groupHeader"> 31 <label>Inventory Item</label> 32 </td> 33 <td valign="top" class="value"> 34 </td> 35 </tr> 36 37 <tr class="prop"> 38 <td valign="top" class="groupName"> 39 <label for="name">Name:</label> 40 </td> 41 <td valign="top" class="value ${hasErrors(bean:inventoryItemInstance,field:'name','errors')}"> 42 <input type="text" 43 class="description" 44 maxlength="50" 45 id="name" 46 name="name" 47 value="${fieldValue(bean:inventoryItemInstance,field:'name')}"/> 48 <g:helpBalloon class="helpballoon" code="inventory.item.name" /> 49 </td> 50 </tr> 51 52 <tr class="prop"> 53 <td valign="top" class="groupName">Picture:</td> 31 54 <td valign="top" class="value"> 32 55 <g:if test="${inventoryItemInstance.picture}" > 33 56 <span class='gallery'> 34 <wa:pictureLightboxAnchor picture="${inventoryItemInstance.picture}" size="${Image. Medium}" lightboxSize="${Image.Large}" target="_blank" title="Show Original" />57 <wa:pictureLightboxAnchor picture="${inventoryItemInstance.picture}" size="${Image.Small}" lightboxSize="${Image.Large}" target="_blank" title="Show Original" /> 35 58 </span> 36 59 <br /> … … 43 66 44 67 <tr class="prop"> 45 <td valign="top" class="name"> 46 <label for="name">Name:</label> 47 </td> 48 <td valign="top"> 49 <input class="description ${hasErrors(bean:inventoryItemInstance,field:'name','errors')}" 50 type="text" maxlength="50" id="name" name="name" 51 value="${fieldValue(bean:inventoryItemInstance,field:'name')}"/> 52 <g:helpBalloon class="helpballoon" code="inventory.item.name" /> 53 </td> 54 </tr> 55 56 <tr class="prop"> 57 <td valign="top" class="name"> 68 <td valign="top" class="groupName"> 58 69 <label for="description">Description:</label> 59 70 </td> … … 65 76 66 77 <tr class="prop"> 67 <td valign="top" class=" name">78 <td valign="top" class="groupName"> 68 79 <label for="comment">Comment:</label> 69 80 </td> … … 75 86 76 87 <tr class="prop"> 77 <td valign="top" class=" name">88 <td valign="top" class="groupName"> 78 89 <label for="unitsInStock">In Stock:</label> 79 90 </td> … … 85 96 86 97 <tr class="prop"> 87 <td valign="top" class=" name">98 <td valign="top" class="groupName"> 88 99 <label for="inventoryLocation">Location:</label> 89 100 </td> 90 101 <td valign="top" class="value ${hasErrors(bean:inventoryItemInstance,field:'inventoryLocation','errors')}"> 91 102 <g:select optionKey="id" 92 from="${ InventoryLocation. list().sort { p1, p2 -> p1.toString().compareToIgnoreCase(p2.toString()) } }"103 from="${ InventoryLocation.findAllByIsActive(true).sort { p1, p2 -> p1.toString().compareToIgnoreCase(p2.toString()) } }" 93 104 name="inventoryLocation.id" 94 105 value="${inventoryItemInstance?.inventoryLocation?.id}" … … 100 111 101 112 <tr class="prop"> 102 <td valign="top" class="name"> 113 <td valign="top" class="groupName"> 114 <label for="inventoryGroup">Inventory Group:</label> 115 </td> 116 <td valign="top" class="value ${hasErrors(bean:inventoryItemInstance,field:'inventoryGroup','errors')}"> 117 <g:select optionKey="id" 118 from="${InventoryGroup.findAllByIsActive(true).sort { p1, p2 -> p1.name.compareToIgnoreCase(p2.name) }}" 119 name="inventoryGroup.id" 120 value="${inventoryItemInstance?.inventoryGroup?.id}" > 121 </g:select> 122 <g:helpBalloon class="helpballoon" code="inventory.item.inventory.group" /> 123 </td> 124 </tr> 125 126 <tr class="prop"> 127 <td valign="top" class="groupName"> 128 <label for="inventoryType">Inventory Type:</label> 129 </td> 130 <td valign="top" class="value ${hasErrors(bean:inventoryItemInstance,field:'inventoryType','errors')}"> 131 <g:select optionKey="id" 132 from="${InventoryType.findAllByIsActive(true).sort { p1, p2 -> p1.name.compareToIgnoreCase(p2.name) }}" 133 name="inventoryType.id" 134 value="${inventoryItemInstance?.inventoryType?.id}" > 135 </g:select> 136 <g:helpBalloon class="helpballoon" code="inventory.item.inventory.type" /> 137 </td> 138 </tr> 139 140 <tr class="prop"> 141 <td valign="top" class="groupHeader"> 142 <label for="name">Reorder Details</label> 143 </td> 144 <td valign="top" class="value"> 145 </td> 146 </tr> 147 148 <tr class="prop"> 149 <td valign="top" class="groupName"> 103 150 <label for="isActive">Active:</label> 104 151 </td> … … 110 157 111 158 <tr class="prop"> 112 <td valign="top" class="name"> 159 <td valign="top" class="groupName"> 160 <label for="isObsolete">Obsolete:</label> 161 </td> 162 <td valign="top" class="value ${hasErrors(bean:inventoryItemInstance,field:'isObsolete','errors')}"> 163 <g:checkBox name="isObsolete" value="${inventoryItemInstance?.isObsolete}" ></g:checkBox> 164 <g:helpBalloon class="helpballoon" code="inventory.item.is.obsolete" /> 165 </td> 166 </tr> 167 168 <tr class="prop"> 169 <td valign="top" class="groupName"> 170 <label for="enableReorderListing">Enable Reorder Listing:</label> 171 </td> 172 <td valign="top" class="value ${hasErrors(bean:inventoryItemInstance,field:'enableReorderListing','errors')}"> 173 <g:checkBox name="enableReorderListing" value="${inventoryItemInstance?.enableReorderListing}" ></g:checkBox> 174 <g:helpBalloon class="helpballoon" code="inventory.item.enable.reorder.listing" /> 175 </td> 176 </tr> 177 178 <tr class="prop"> 179 <td valign="top" class="groupName"> 113 180 <label for="reorderPoint">Reorder Point:</label> 114 181 </td> … … 123 190 124 191 <tr class="prop"> 125 <td valign="top" class=" name">192 <td valign="top" class="groupName"> 126 193 <label for="reorderQuantity">Reorder Quantity:</label> 127 194 </td> … … 136 203 137 204 <tr class="prop"> 138 <td valign="top" class="name"> 139 <label for="enableReorderListing">Enable Reorder Listing:</label> 140 </td> 141 <td valign="top" class="value ${hasErrors(bean:inventoryItemInstance,field:'enableReorderListing','errors')}"> 142 <g:checkBox name="enableReorderListing" value="${inventoryItemInstance?.enableReorderListing}" ></g:checkBox> 143 <g:helpBalloon class="helpballoon" code="inventory.item.enable.reorder.listing" /> 144 </td> 145 </tr> 146 147 <tr class="prop"> 148 <td valign="top" class="name"> 149 <label for="isObsolete">Obsolete:</label> 150 </td> 151 <td valign="top" class="value ${hasErrors(bean:inventoryItemInstance,field:'isObsolete','errors')}"> 152 <g:checkBox name="isObsolete" value="${inventoryItemInstance?.isObsolete}" ></g:checkBox> 153 <g:helpBalloon class="helpballoon" code="inventory.item.is.obsolete" /> 154 </td> 155 </tr> 156 157 <tr class="prop"> 158 <td valign="top" class="name"> 205 <td valign="top" class="groupName"> 159 206 <label for="estimatedUnitPriceAmount">Estimated Unit Price:</label> 160 207 </td> … … 172 219 173 220 <tr class="prop"> 174 <td valign="top" class=" name">221 <td valign="top" class="groupName"> 175 222 <label for="suppliersPartNumber">Suppliers Part Number:</label> 176 223 </td> 177 224 <td valign="top" class="value ${hasErrors(bean:inventoryItemInstance,field:'suppliersPartNumber','errors')}"> 178 <input type="text" id="suppliersPartNumber" name="suppliersPartNumber" value="${fieldValue(bean:inventoryItemInstance,field:'suppliersPartNumber')}"/>225 <input type="text" id="suppliersPartNumber" maxlength="50" name="suppliersPartNumber" value="${fieldValue(bean:inventoryItemInstance,field:'suppliersPartNumber')}"/> 179 226 <g:helpBalloon class="helpballoon" code="inventory.item.suppliers.part.number" /> 180 227 </td> … … 182 229 183 230 <tr class="prop"> 184 <td valign="top" class=" name">231 <td valign="top" class="groupName"> 185 232 <label for="preferredSupplier">Preferred Supplier:</label> 186 233 </td> 187 234 <td valign="top"> 188 <g:select optionKey="id" from="${suppliers}" name="preferredSupplier.id" value="${inventoryItemInstance.preferredSupplier?.id}" noSelection="['null':'--None--']"></g:select> 235 <g:select optionKey="id" 236 from="${suppliers}" 237 name="preferredSupplier.id" 238 value="${inventoryItemInstance.preferredSupplier?.id}" 239 noSelection="['null':'--None--']"> 240 </g:select> 189 241 <g:helpBalloon class="helpballoon" code="inventory.item.preferred.supplier" /> 190 242 <p><g:link controller="supplierDetailed" action="create">+Add Supplier</g:link></p> … … 193 245 194 246 <tr class="prop"> 195 <td valign="top" class=" name">247 <td valign="top" class="groupName"> 196 248 <label for="alternateSuppliers">Alternate Suppliers:</label> 197 249 </td> 198 250 <td valign="top" class="value ${hasErrors(bean:inventoryItemInstance,field:'alternateSuppliers','errors')}"> 199 <g:select id="alternateSuppliers" name="alternateSuppliers"200 from="${suppliers}"201 size="5" multiple="yes" optionKey="id"202 value="${inventoryItemInstance.alternateSuppliers?.id}" noSelection="['':'--None--']"/>203 251 <g:helpBalloon class="helpballoon" code="inventory.item.alternate.suppliers" /> 204 </td> 205 </tr> 206 207 <tr class="prop"> 208 <td valign="top" class="name"> 209 <label for="spareFor">Spare For:</label> 252 <custom:checkBoxList name="alternateSuppliers" 253 from="${suppliers}" 254 value="${inventoryItemInstance?.alternateSuppliers?.collect{it.id}}" 255 optionKey="id" 256 linkController="supplierDetailed" 257 linkAction="show"/> 258 <g:link controller="supplierDetailed" action="create">+Add Supplier</g:link> 259 </td> 260 </tr> 261 262 <tr class="prop"> 263 <td valign="top" class="groupHeader"> 264 <label for="name">Spare For</label> 265 </td> 266 <td valign="top" class="value"> 267 </td> 268 </tr> 269 270 <tr class="prop"> 271 <td valign="top" class="groupName"> 272 <label for="spareFor">Assets:</label> 210 273 </td> 211 274 <td valign="top" class="value ${hasErrors(bean:inventoryItemInstance,field:'spareFor','errors')}"> 212 <g:select name="spareFor" 213 from="${ Asset.list().sort { p1, p2 -> p1.name.compareToIgnoreCase(p2.name) } }" 214 size="5" multiple="yes" optionKey="id" 215 value="${inventoryItemInstance?.spareFor.id}" noSelection="['':'--None--']"/> 216 217 </td> 218 </tr> 219 220 <tr class="prop"> 221 <td valign="top" class="name"> 222 <label for="inventoryGroup">Inventory Group:</label> 223 </td> 224 <td valign="top" class="value ${hasErrors(bean:inventoryItemInstance,field:'inventoryGroup','errors')}"> 225 <g:select optionKey="id" from="${InventoryGroup.list()}" name="inventoryGroup.id" value="${inventoryItemInstance?.inventoryGroup?.id}" ></g:select> 226 <g:helpBalloon class="helpballoon" code="inventory.item.inventory.group" /> 227 </td> 228 </tr> 229 230 <tr class="prop"> 231 <td valign="top" class="name"> 232 <label for="inventoryType">Inventory Type:</label> 233 </td> 234 <td valign="top" class="value ${hasErrors(bean:inventoryItemInstance,field:'inventoryType','errors')}"> 235 <g:select optionKey="id" from="${InventoryType.list()}" name="inventoryType.id" value="${inventoryItemInstance?.inventoryType?.id}" ></g:select> 236 <g:helpBalloon class="helpballoon" code="inventory.item.inventory.type" /> 275 <g:helpBalloon class="helpballoon" code="inventory.item.spare.for" /> 276 <custom:checkBoxList name="spareFor" 277 from="${Asset.findAllByIsActive(true).sort { p1, p2 -> p1.name.compareToIgnoreCase(p2.name) }}" 278 value="${inventoryItemInstance?.spareFor?.collect{it.id}}" 279 optionKey="id" 280 sortBy="name" 281 linkController="assetDetailed" 282 linkAction="show"/> 283 <g:link controller="assetDetailed" action="create">+Add Asset</g:link> 237 284 </td> 238 285 </tr> -
trunk/grails-app/views/inventoryItemDetailed/show.gsp
r720 r727 58 58 <richui:tabLabels> 59 59 <richui:tabLabel selected="${showTab.inventory}" title="Inventory Item" /> 60 <richui:tabLabel selected="${showTab.detail}" title="Detail" />61 60 <g:if test="${!inventoryMovementList.isEmpty()}"> 62 61 <richui:tabLabel selected="${showTab.movement}" title="Movement (${inventoryMovementList.size()})" /> … … 133 132 134 133 <tr class="prop"> 135 <td valign="top" class=" name">Picture:</td>134 <td valign="top" class="groupName">Picture:</td> 136 135 <td valign="top" class="value"> 137 136 <g:if test="${inventoryItemInstance.picture}" > 138 <span class='gallery'><wa:pictureLightboxAnchor picture="${inventoryItemInstance.picture}" size="${Image. Medium}" lightboxSize="${Image.Large}" target="_blank" title="Show Original" /></span>137 <span class='gallery'><wa:pictureLightboxAnchor picture="${inventoryItemInstance.picture}" size="${Image.Small}" lightboxSize="${Image.Large}" target="_blank" title="Show Original" /></span> 139 138 </g:if> 140 139 <g:else> … … 149 148 150 149 <tr class="prop"> 151 <td valign="top" class=" name">Comment:</td>150 <td valign="top" class="groupName">Comment:</td> 152 151 153 152 <td valign="top" class="value">${fieldValue(bean:inventoryItemInstance, field:'comment')}</td> … … 155 154 156 155 <tr class="prop"> 157 <td valign="top" class=" name">In Stock:</td>156 <td valign="top" class="groupName">In Stock:</td> 158 157 159 158 <td valign="top" class="value"> … … 163 162 164 163 <tr class="prop"> 165 <td valign="top" class=" name">Location:</td>164 <td valign="top" class="groupName">Location:</td> 166 165 167 166 <td valign="top" class="value"> … … 174 173 175 174 <tr class="prop"> 176 <td valign="top" class="name">Active:</td> 175 <td valign="top" class="groupName">Inventory Group:</td> 176 <td valign="top" class="value">${inventoryItemInstance.inventoryGroup?.encodeAsHTML()}</td> 177 </tr> 178 179 <tr class="prop"> 180 <td valign="top" class="groupName">Inventory Type:</td> 181 <td valign="top" class="value">${inventoryItemInstance.inventoryType?.encodeAsHTML()}</td> 182 </tr> 183 184 <tr class="prop"> 185 <td valign="top" class="groupHeader"> 186 <label for="name">Reorder Details</label> 187 </td> 188 <td valign="top" class="value"> 189 </td> 190 </tr> 191 192 <tr class="prop"> 193 <td valign="top" class="groupName">Active:</td> 177 194 178 195 <td valign="top" class="value">${fieldValue(bean:inventoryItemInstance, field:'isActive')}</td> … … 180 197 181 198 <tr class="prop"> 182 <td valign="top" class="name">Spare For:</td> 199 <td valign="top" class="groupName">Obsolete:</td> 200 <td valign="top" class="value">${fieldValue(bean:inventoryItemInstance, field:'isObsolete')}</td> 201 </tr> 202 203 <tr class="prop"> 204 <td valign="top" class="groupName">Enable Reorder Listing:</td> 205 <td valign="top" class="value">${fieldValue(bean:inventoryItemInstance, field:'enableReorderListing')}</td> 206 </tr> 207 208 <tr class="prop"> 209 <td valign="top" class="groupName">Reorder Point:</td> 210 <td valign="top" class="value">${fieldValue(bean:inventoryItemInstance, field:'reorderPoint')}</td> 211 </tr> 212 213 <tr class="prop"> 214 <td valign="top" class="groupName">Reorder Quantity:</td> 215 <td valign="top" class="value">${fieldValue(bean:inventoryItemInstance, field:'reorderQuantity')}</td> 216 </tr> 217 218 <tr class="prop"> 219 <td valign="top" class="groupName">Estimated Unit Price:</td> 220 221 <td valign="top" class="value"> 222 <g:if test="${inventoryItemInstance.estimatedUnitPriceAmount}"> 223 ${inventoryItemInstance.estimatedUnitPriceAmount.encodeAsHTML()} 224 ${inventoryItemInstance.estimatedUnitPriceCurrency.encodeAsHTML()} 225 </g:if> 226 </td> 227 </tr> 228 229 <tr class="prop"> 230 <td valign="top" class="groupName">Suppliers Part Number:</td> 231 <td valign="top" class="value">${fieldValue(bean:inventoryItemInstance, field:'suppliersPartNumber')}</td> 232 </tr> 233 234 <tr class="prop"> 235 <td valign="top" class="groupName">Preferred Supplier:</td> 236 237 <td valign="top" style="text-align:left;" class="value"> 238 <g:link controller="supplierDetailed" action="show" id="${inventoryItemInstance.preferredSupplier?.id}"> 239 ${inventoryItemInstance.preferredSupplier?.encodeAsHTML()} 240 </g:link> 241 </td> 242 </tr> 243 244 <tr class="prop"> 245 <td valign="top" class="groupName">Alternate Suppliers:</td> 246 247 <td valign="top" style="text-align:left;" class="value"> 248 <ul> 249 <g:each var="s" in="${ inventoryItemInstance.alternateSuppliers.sort { p1, p2 -> p1.name.compareToIgnoreCase(p2.name) } }"> 250 <li><g:link controller="supplierDetailed" action="show" id="${s.id}">${s?.encodeAsHTML()}</g:link></li> 251 </g:each> 252 </ul> 253 </td> 254 </tr> 255 256 <tr class="prop"> 257 <td valign="top" class="groupHeader"> 258 <label for="name">Spare For</label> 259 </td> 260 <td valign="top" class="value"> 261 </td> 262 </tr> 263 264 <tr class="prop"> 265 <td valign="top" class="groupName">Assets:</td> 183 266 184 267 <td valign="top" style="text-align:left;" class="value"> … … 206 289 </richui:tabContent> 207 290 <!-- End Inventory tab --> 208 209 <!-- Start Detail tab -->210 <richui:tabContent>211 212 <div class="dialog">213 <table>214 <tbody>215 216 <tr class="prop">217 <td valign="top" class="name">Id:</td>218 <td valign="top" class="value">${fieldValue(bean:inventoryItemInstance, field:'id')}</td>219 </tr>220 221 <tr class="prop">222 <td valign="top" class="name">Obsolete:</td>223 <td valign="top" class="value">${fieldValue(bean:inventoryItemInstance, field:'isObsolete')}</td>224 </tr>225 226 <tr class="prop">227 <td valign="top" class="name">Inventory Group:</td>228 <td valign="top" class="value">${inventoryItemInstance.inventoryGroup?.encodeAsHTML()}</td>229 </tr>230 231 <tr class="prop">232 <td valign="top" class="name">Inventory Type:</td>233 <td valign="top" class="value">${inventoryItemInstance.inventoryType?.encodeAsHTML()}</td>234 </tr>235 236 <tr class="prop">237 <td valign="top" class="name">Reorder Point:</td>238 <td valign="top" class="value">${fieldValue(bean:inventoryItemInstance, field:'reorderPoint')}</td>239 </tr>240 241 <tr class="prop">242 <td valign="top" class="name">Enable Reorder Listing:</td>243 <td valign="top" class="value">${fieldValue(bean:inventoryItemInstance, field:'enableReorderListing')}</td>244 </tr>245 246 <tr class="prop">247 <td valign="top" class="name">Reorder Quantity:</td>248 <td valign="top" class="value">${fieldValue(bean:inventoryItemInstance, field:'reorderQuantity')}</td>249 </tr>250 251 <tr class="prop">252 <td valign="top" class="name">Estimated Unit Price:</td>253 254 <td valign="top" class="value">255 <g:if test="${inventoryItemInstance.estimatedUnitPriceAmount}">256 ${inventoryItemInstance.estimatedUnitPriceAmount.encodeAsHTML()}257 ${inventoryItemInstance.estimatedUnitPriceCurrency.encodeAsHTML()}258 </g:if>259 </td>260 </tr>261 262 <tr class="prop">263 <td valign="top" class="name">Suppliers Part Number:</td>264 <td valign="top" class="value">${fieldValue(bean:inventoryItemInstance, field:'suppliersPartNumber')}</td>265 </tr>266 267 <tr class="prop">268 <td valign="top" class="name">Preferred Supplier:</td>269 270 <td valign="top" style="text-align:left;" class="value">271 <g:link controller="supplierDetailed" action="show" id="${inventoryItemInstance.preferredSupplier?.id}">272 ${inventoryItemInstance.preferredSupplier?.encodeAsHTML()}273 </g:link>274 </td>275 </tr>276 277 <tr class="prop">278 <td valign="top" class="name">Alternate Suppliers:</td>279 280 <td valign="top" style="text-align:left;" class="value">281 <ul>282 <g:each var="s" in="${ inventoryItemInstance.alternateSuppliers.sort { p1, p2 -> p1.name.compareToIgnoreCase(p2.name) } }">283 <li><g:link controller="supplierDetailed" action="show" id="${s.id}">${s?.encodeAsHTML()}</g:link></li>284 </g:each>285 </ul>286 </td>287 </tr>288 289 </tbody>290 </table>291 </div>292 <div class="buttons">293 <g:form>294 <g:hiddenField name="id" value="${inventoryItemInstance.id}" />295 <span class="button"><g:actionSubmit class="edit" value="Edit" /></span>296 <span class="button"><g:actionSubmit class="delete" onclick="return confirm('Are you sure?');" value="Delete" /></span>297 </g:form>298 </div>299 </richui:tabContent>300 <!-- End Detail tab -->301 291 302 292 <!-- Start Movement tab -->
Note: See TracChangeset
for help on using the changeset viewer.