Changeset 605


Ignore:
Timestamp:
Jun 21, 2010, 12:23:21 PM (14 years ago)
Author:
gav
Message:

Domain change, several changes to InventoryItemPurchase.
Update views and logic to suite.

Location:
trunk/grails-app
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • trunk/grails-app/controllers/InventoryItemPurchaseDetailedController.groovy

    r597 r605  
    148148            response.contentType = ConfigurationHolder.config.grails.mime.types[params.format]
    149149            response.setHeader("Content-disposition", "attachment; filename=Purchases.${params.extension}")
    150             List fields = ["purchaseOrderNumber", "dateEntered", "costCode", "quantity", "orderValueAmount", "invoiceNumber",
     150            List fields = ["purchaseOrderNumber", "date", "costCode", "quantity", "orderValueAmount", "invoiceNumber",
    151151                                    "inventoryItemPurchaseType"]
    152             Map labels = ["purchaseOrderNumber": "Order Number", "dateEntered": "Date", "costCode": "Cost Code",
     152            Map labels = ["purchaseOrderNumber": "Order Number", "date": "Date", "costCode": "Cost Code",
    153153                                    "quantity": "Quantity", "orderValueAmount": "Order \$", "invoiceNumber": "Invoice Number",
    154154                                    "inventoryItemPurchaseType": "Type"]
    155             Map formatters = [ dateEntered: dateFmt]
     155            Map formatters = [ date: dateFmt]
    156156            Map parameters = [title: title, separator: ","]
    157157
     
    165165        filterParams.order = params.order ?: "desc"
    166166
     167        // Get some associatedProperty values for filterpane.
     168        def associatedPropertyValues = [:]
     169        def startOfYearRange = dateUtilService.getYearFromDate(dateUtilService.plusYear(new Date(), -10))
     170        def endOfYearRange = dateUtilService.getYearFromDate(dateUtilService.plusYear(new Date(), 10))
     171        associatedPropertyValues.yearRange = startOfYearRange..endOfYearRange
     172
    167173        return[ inventoryItemPurchaseList: inventoryItemPurchaseList,
    168                 inventoryItemPurchaseTotal: inventoryItemPurchaseTotal,
    169                 filterParams: filterParams ]
     174                        inventoryItemPurchaseTotal: inventoryItemPurchaseTotal,
     175                        filterParams: filterParams,
     176                        associatedPropertyValues: associatedPropertyValues ]
    170177
    171178    } // end search()
  • trunk/grails-app/domain/InventoryItemPurchase.groovy

    r599 r605  
    22
    33    Person enteredBy
     4    Person lastUpdatedBy
    45    InventoryItem inventoryItem
    56    CostCode costCode
    67    InventoryItemPurchaseType inventoryItemPurchaseType
     8    Supplier supplier
    79
    8     Date dateEntered = new Date()
     10    Date date = new Date()
     11    Date lastUpdated // autoTimestamp
     12    Date dateCreated // autoTimestamp
     13
    914    Integer quantity
    1015    String purchaseOrderNumber = ''
     
    1217    Currency orderValueCurrency
    1318    String invoiceNumber = ''
     19    String comment = ""
    1420
    1521    Boolean receivedComplete = false
     
    4147        orderValueAmount(max: new BigDecimal(1000000000000))
    4248        orderValueCurrency()
     49        comment(maxSize:255)
     50        lastUpdatedBy(nullable: true)
    4351    }
    4452
  • trunk/grails-app/services/InventoryPurchaseService.groovy

    r600 r605  
    150150                    return fail(code:"inventoryItemPurchase.delete.failure.payment.approved")
    151151
    152                 def startOfDay = dateUtilService.getMidnight(result.inventoryItemPurchaseInstance.dateEntered)
     152                def startOfDay = dateUtilService.getMidnight(result.inventoryItemPurchaseInstance.date)
    153153                def inventoryMovements = InventoryMovement.withCriteria {
    154154                    eq("inventoryItem", result.inventoryItemPurchaseInstance.inventoryItem )
     
    234234            result.inventoryItemPurchaseInstance.properties = params
    235235            result.inventoryItemPurchaseInstance.purchaseOrderNumber = result.inventoryItemPurchaseInstance.purchaseOrderNumber.trim()
     236            result.inventoryItemPurchaseInstance.lastUpdatedBy = authService.currentUser
    236237
    237238            if(result.inventoryItemPurchaseInstance.hasErrors() || !result.inventoryItemPurchaseInstance.save())
     
    315316            // Fetch to prevent lazy initialization error.
    316317            result.inventoryItemPurchaseInstance.inventoryItem.unitOfMeasure
     318            result.inventoryItemPurchaseInstance.inventoryItem.inventoryLocation
    317319
    318320            if(order.hasErrors() || !order.save())
     
    339341
    340342        } // end withTransaction
    341     } // save()
     343    } // receiveSave()
    342344
    343345    def approveInvoicePaymentSave(params) {
  • trunk/grails-app/views/inventoryItemDetailed/show.gsp

    r595 r605  
    448448                                            <g:sortableColumn action="show" property="purchaseOrderNumber"
    449449                                                                                title="Order #" params="[paginate: 'purchases']"  />
    450                                             <g:sortableColumn action="show"  property="dateEntered"
     450                                            <g:sortableColumn action="show"  property="date"
    451451                                                                                title="Date" params="[paginate: 'purchases']" />
    452452                                            <g:sortableColumn action="show"  property="costCode"
     
    479479                                                </td>
    480480                                                <td onclick='window.location = "${request.getContextPath()}/inventoryItemPurchaseDetailed/show/${purchase.id}"'>
    481                                                     <g:formatDate date="${purchase.dateEntered}" format="EEE, dd-MMM-yyyy"/>
     481                                                    <g:formatDate date="${purchase.date}" format="EEE, dd-MMM-yyyy"/>
    482482                                                </td>
    483483                                                <td onclick='window.location = "${request.getContextPath()}/inventoryItemPurchaseDetailed/show/${purchase.id}"'>
  • trunk/grails-app/views/inventoryItemPurchaseDetailed/approveInvoicePayment.gsp

    r597 r605  
    2121                <g:hiddenField name="inventoryItem.id" value="${inventoryItemPurchaseInstance.inventoryItem?.id}" />
    2222                <g:hiddenField name="receivedId" value="${receivedId}" />
     23                <g:hiddenField name="supplier.id" value="${inventoryItemPurchaseInstance.supplier?.id}" />
    2324                <g:hiddenField name="returnTo" value="${params.returnTo}" />
    2425                <div class="dialog">
     
    8889                            </tr>
    8990                       
     91                            <tr class="prop">
     92                                <td valign="top" class="name">
     93                                    <label for="comment">Comment:</label>
     94                                </td>
     95                                <td valign="top" class="value ${hasErrors(bean:inventoryItemPurchaseInstance,field:'comment','errors')}">
     96                                    <textarea rows="5" cols="40" name="comment">${fieldValue(bean:inventoryItemPurchaseInstance, field:'comment')}</textarea>
     97                                </td>
     98                            </tr>
     99                       
    90100                        </tbody>
    91101                    </table>
  • trunk/grails-app/views/inventoryItemPurchaseDetailed/create.gsp

    r595 r605  
    77        <title>Create InventoryItemPurchase</title>
    88        <nav:resources override="true"/>
     9        <resource:dateChooser />
    910    </head>
    1011    <body>
     
    5051                            <tr class="prop">
    5152                                <td valign="top" class="name">
     53                                    <label for="date">Date:</label>
     54                                </td>
     55                                <td valign="top" class="value ${hasErrors(bean:inventoryItemPurchaseInstance,field:'date','errors')}">
     56                                    <richui:dateChooser name="date" format="dd-MM-yyyy" value="${inventoryItemPurchaseInstance.date}" />
     57                                </td>
     58                            </tr>
     59                       
     60                            <tr class="prop">
     61                                <td valign="top" class="name">
    5262                                    <label for="costCode">Cost Code:</label>
    5363                                </td>
     
    5767                                                        name="costCode.id"
    5868                                                        value="${inventoryItemPurchaseInstance?.costCode?.id}"
    59                                                         noSelection="['null':'']"></g:select>
     69                                                        noSelection="['null':/${g.message(code:'default.please.select.text')}/]"></g:select>
    6070                                </td>
    61                             </tr>
     71                            </tr>
     72                       
     73                             <tr class="prop">
     74                                 <td valign="top" class="name">
     75                                    <label for="supplier">Supplier:</label>
     76                                </td>
     77                                <td valign="top" class="value ${hasErrors(bean:inventoryItemPurchaseInstance,field:'supplier','errors')}">
     78                                    <g:select optionKey="id"
     79                                                        from="${ Supplier.findAllByIsActive(true).sort { p1, p2 -> p1.name.compareToIgnoreCase(p2.name) } }"
     80                                                        name="supplier.id"
     81                                                        value="${inventoryItemPurchaseInstance?.supplier?.id}"
     82                                                        noSelection="['null':/${g.message(code:'default.please.select.text')}/]">
     83                                    </g:select>
     84                                    <p><g:link controller="supplierDetailed" action="create">+Add Supplier</g:link></p>
     85                                </td>
     86                            </tr>
    6287                       
    6388                            <tr class="prop">
     
    7398                            <tr class="prop">
    7499                                <td valign="top" class="name">
    75                                     <label for="orderValue">Purchase Order $:</label>
     100                                    <label for="orderValue">Order Value:</label>
    76101                                </td>
    77102                                <td valign="top" class="value">
     
    80105                                                    value="${inventoryItemPurchaseInstance.orderValueAmount}" />
    81106                                    <g:currencySelect name="orderValueCurrency"
    82                                                                         value="${inventoryItemPurchaseInstance.orderValueCurrency}" />
     107                                                                        value="${inventoryItemPurchaseInstance?.orderValueCurrency}"
     108                                                                        from="${grailsApplication.config.currencyList}">
     109                                    </g:currencySelect>
    83110                                </td>
    84                             </tr>
     111                            </tr>
     112                       
     113                            <tr class="prop">
     114                                <td valign="top" class="name">
     115                                    <label for="comment">Comment:</label>
     116                                </td>
     117                                <td valign="top" class="value ${hasErrors(bean:inventoryItemPurchaseInstance,field:'comment','errors')}">
     118                                    <textarea rows="5" cols="40" name="comment">${fieldValue(bean:inventoryItemPurchaseInstance, field:'comment')}</textarea>
     119                                </td>
     120                            </tr>
    85121                       
    86122                        </tbody>
  • trunk/grails-app/views/inventoryItemPurchaseDetailed/edit.gsp

    r600 r605  
    3333                       
    3434                            <tr class="prop">
    35                                 <td valign="top" class="name">Inventory Item Purchase Type:</td>
     35                                <td valign="top" class="name">Purchase Type:</td>
    3636                               
    3737                                <td valign="top" class="value">${inventoryItemPurchaseInstance?.inventoryItemPurchaseType?.encodeAsHTML()}</td>
     
    4141                            <tr class="prop">
    4242                                <td valign="top" class="name">
    43                                     <label for="invoiceNumber">Purchase Order Number:</label>
     43                                    <label for="invoiceNumber">Purchase Order #:</label>
    4444                                </td>
    4545                                <td valign="top" class="value ${hasErrors(bean:inventoryItemPurchaseInstance,field:'purchaseOrderNumber','errors')}">
     
    4747                                </td>
    4848                            </tr>
     49                       
     50                            <tr class="prop">
     51                                <td valign="top" class="name">
     52                                    <label for="date">Date:</label>
     53                                </td>
     54                                <td valign="top" class="value ${hasErrors(bean:inventoryItemPurchaseInstance,field:'date','errors')}">
     55                                    <richui:dateChooser name="date" format="dd-MM-yyyy" value="${inventoryItemPurchaseInstance.date}" />
     56                                </td>
     57                            </tr>
    4958                       
    5059                            <tr class="prop">
     
    5766                                                        name="costCode.id"
    5867                                                        value="${inventoryItemPurchaseInstance?.costCode?.id}" ></g:select>
     68                                </td>
     69                            </tr>
     70                       
     71                             <tr class="prop">
     72                                 <td valign="top" class="name">
     73                                    <label for="supplier">Supplier:</label>
     74                                </td>
     75                                <td valign="top" class="value ${hasErrors(bean:inventoryItemPurchaseInstance,field:'supplier','errors')}">
     76                                    <g:select optionKey="id"
     77                                                        from="${ Supplier.findAllByIsActive(true).sort { p1, p2 -> p1.name.compareToIgnoreCase(p2.name) } }"
     78                                                        name="supplier.id"
     79                                                        value="${inventoryItemPurchaseInstance?.supplier?.id}"
     80                                                        noSelection="['null':/${g.message(code:'default.please.select.text')}/]">
     81                                    </g:select>
     82                                    <p><g:link controller="supplierDetailed" action="create">+Add Supplier</g:link></p>
    5983                                </td>
    6084                            </tr>
     
    7397                                <td valign="top" class="value ${hasErrors(bean:inventoryItemPurchaseInstance,field:'orderValueAmount','errors')}">
    7498                                    <input type="text" id="orderValueAmount" name="orderValueAmount" value="${fieldValue(bean:inventoryItemPurchaseInstance,field:'orderValueAmount')}" />
    75                                     <g:currencySelect name="orderValueCurrency" value="${inventoryItemPurchaseInstance?.orderValueCurrency}" ></g:currencySelect>
     99                                    <g:currencySelect name="orderValueCurrency"
     100                                                                        value="${inventoryItemPurchaseInstance?.orderValueCurrency}"
     101                                                                        from="${grailsApplication.config.currencyList}">
     102                                    </g:currencySelect>
    76103                                </td>
    77104                            </tr>
    78                        
    79                             <tr class="prop">
    80                                 <td valign="top" class="name">
    81                                     <label for="invoiceNumber">Invoice Number:</label>
    82                                 </td>
    83                                 <td valign="top" class="value ${hasErrors(bean:inventoryItemPurchaseInstance,field:'invoiceNumber','errors')}">
    84                                     <input type="text" maxlength="50" id="invoiceNumber" name="invoiceNumber" value="${fieldValue(bean:inventoryItemPurchaseInstance,field:'invoiceNumber')}"/>
    85                                 </td>
    86                             </tr>
     105
     106                            <g:if test="${inventoryItemPurchaseInstance.inventoryItemPurchaseType?.id == 4}">
     107                                <tr class="prop">
     108                                    <td valign="top" class="name">
     109                                        <label for="invoiceNumber">Invoice Number:</label>
     110                                    </td>
     111                                    <td valign="top" class="value ${hasErrors(bean:inventoryItemPurchaseInstance,field:'invoiceNumber','errors')}">
     112                                        <input type="text" maxlength="50" id="invoiceNumber" name="invoiceNumber" value="${fieldValue(bean:inventoryItemPurchaseInstance,field:'invoiceNumber')}"/>
     113                                    </td>
     114                                </tr>
     115                            </g:if>
    87116
    88117                            <g:if test="${inventoryItemPurchaseInstance?.inventoryItemPurchaseType?.id > 0}">
     
    126155                       
    127156                            <tr class="prop">
    128                                 <td valign="top" class="name">Date Entered:</td>
    129                                
    130                                 <td valign="top" class="value">
    131                                     <g:formatDate date="${inventoryItemPurchaseInstance?.dateEntered}" format="EEE, dd-MMM-yyyy @ HH:mm"/>
     157                                <td valign="top" class="name">
     158                                    <label for="comment">Comment:</label>
    132159                                </td>
    133                                
     160                                <td valign="top" class="value ${hasErrors(bean:inventoryItemPurchaseInstance,field:'comment','errors')}">
     161                                    <textarea rows="5" cols="40" name="comment">${fieldValue(bean:inventoryItemPurchaseInstance, field:'comment')}</textarea>
     162                                </td>
    134163                            </tr>
    135164                       
     165                        <tr class="prop">
     166                            <td valign="top" class="name">Entered By:</td>
     167                            <td valign="top" class="value">
     168                                <g:link controller="person" action="show" id="${inventoryItemPurchaseInstance?.enteredBy?.id}">
     169                                    ${inventoryItemPurchaseInstance?.enteredBy?.encodeAsHTML()}
     170                                </g:link>
     171                                    on <g:formatDate date="${inventoryItemPurchaseInstance?.dateCreated}" format="EEE, dd-MMM-yyyy @ HH:mm"/>
     172                            </td>
     173                        </tr>
     174
     175                        <g:if test="${inventoryItemPurchaseInstance.lastUpdatedBy}">
    136176                            <tr class="prop">
    137                                 <td valign="top" class="name">Entered By:</td>
    138                                
    139                                 <td valign="top" class="value"><g:link controller="person" action="show" id="${inventoryItemPurchaseInstance?.enteredBy?.id}">${inventoryItemPurchaseInstance?.enteredBy?.encodeAsHTML()}</g:link></td>
    140                                
     177                                <td valign="top" class="name">Last Updated By:</td>
     178                                <td valign="top" class="value">
     179                                    <g:link controller="person" action="show" id="${inventoryItemPurchaseInstance?.lastUpdatedBy?.id}">
     180                                        ${inventoryItemPurchaseInstance?.lastUpdatedBy.encodeAsHTML()}
     181                                    </g:link>
     182                                    on <g:formatDate date="${inventoryItemPurchaseInstance?.lastUpdated}" format="EEE, dd-MMM-yyyy @ HH:mm"/>
     183                                </td>
    141184                            </tr>
     185                        </g:if >
    142186                       
    143187                        </tbody>
  • trunk/grails-app/views/inventoryItemPurchaseDetailed/receive.gsp

    r600 r605  
    2222                <g:hiddenField name="inventoryItem.id" value="${inventoryItemPurchaseInstance.inventoryItem?.id}" />
    2323                <g:hiddenField name="orderId" value="${orderId}" />
     24                <g:hiddenField name="supplier.id" value="${inventoryItemPurchaseInstance.supplier?.id}" />
    2425                <g:hiddenField name="returnTo" value="${params.returnTo}" />
    2526                <div class="dialog">
     
    6465                            </tr>
    6566                       
     67                             <tr class="prop">
     68                                 <td valign="top" class="name">
     69                                    <label for="supplier">Supplier:</label>
     70                                </td>
     71                                <td valign="top" class="value ${hasErrors(bean:inventoryItemPurchaseInstance,field:'supplier','errors')}">
     72                                    ${inventoryItemPurchaseInstance.supplier}
     73                                </td>
     74                            </tr>
     75                       
    6676                            <tr class="prop">
    6777                                <td valign="top" class="name">
     
    8494                                    ${inventoryItemPurchaseInstance.orderValueCurrency?.encodeAsHTML()}
    8595                                </td>
     96                            </tr>
     97                       
     98                            <tr class="prop">
     99                                <td valign="top" class="name">
     100                                    <label for="comment">Comment:</label>
     101                                </td>
     102                                <td valign="top" class="value ${hasErrors(bean:inventoryItemPurchaseInstance,field:'comment','errors')}">
     103                                    <textarea rows="5" cols="40" name="comment">${fieldValue(bean:inventoryItemPurchaseInstance, field:'comment')}</textarea>
     104                                </td>
    86105                            </tr>
    87                             </tr>
    88106                       
    89107                        </tbody>
  • trunk/grails-app/views/inventoryItemPurchaseDetailed/search.gsp

    r595 r605  
    8383                                <g:sortableColumn property="purchaseOrderNumber"
    8484                                                                    title="Order #" params="${filterParams}"  />
    85                                 <g:sortableColumn property="dateEntered"
     85                                <g:sortableColumn property="date"
    8686                                                                    title="Date" params="${filterParams}" />
    8787                                <g:sortableColumn property="costCode"
     
    114114                                    </td>
    115115                                    <td onclick='window.location = "${request.getContextPath()}/inventoryItemPurchaseDetailed/show/${purchase.id}?returnTo=search"'>
    116                                         <g:formatDate date="${purchase.dateEntered}" format="EEE, dd-MMM-yyyy"/>
     116                                        <g:formatDate date="${purchase.date}" format="EEE, dd-MMM-yyyy"/>
    117117                                    </td>
    118118                                    <td onclick='window.location = "${request.getContextPath()}/inventoryItemPurchaseDetailed/show/${purchase.id}?returnTo=search"'>
     
    193193                                    action="search"
    194194                                    class="overlayPane"
    195                                     excludeProperties="orderValueCurrency"
     195                                    excludeProperties="orderValueCurrency, dateCreated"
    196196                                    associatedProperties="inventoryItemPurchaseType.name"
    197197                                    filterPropertyValues="${['inventoryItemPurchaseType.name':[values:InventoryItemPurchaseType.findAllByIsActive(true)],
    198                                                                                 dateEntered:[years:2020..2000,precision:'day']
     198                                                                                date:[years: associatedPropertyValues.yearRange,precision:'day']
    199199                                                                                ]}"/>
    200200        </div> <!-- end body  -->
  • trunk/grails-app/views/inventoryItemPurchaseDetailed/show.gsp

    r595 r605  
    2626                   
    2727                        <tr class="prop">
    28                             <td valign="top" class="name">Inventory Item Purchase Type:</td>
     28                            <td valign="top" class="name">Purchase Type:</td>
    2929                           
    3030                            <td valign="top" class="value">${inventoryItemPurchaseInstance?.inventoryItemPurchaseType?.encodeAsHTML()}</td>
     
    3333                   
    3434                        <tr class="prop">
    35                             <td valign="top" class="name">Purchase Order Number:</td>
     35                            <td valign="top" class="name">Purchase Order #:</td>
    3636                           
    3737                            <td valign="top" class="value">${fieldValue(bean:inventoryItemPurchaseInstance, field:'purchaseOrderNumber')}</td>
     
    4040                   
    4141                        <tr class="prop">
     42                            <td valign="top" class="name">Date:</td>
     43                            <td valign="top" class="value">
     44                                <g:formatDate date="${inventoryItemPurchaseInstance?.date}" format="EEE, dd-MMM-yyyy"/>
     45                            </td>
     46                        </tr>
     47                   
     48                        <tr class="prop">
    4249                            <td valign="top" class="name">Cost Code:</td>
    4350                           
    4451                            <td valign="top" class="value"><g:link controller="costCodeDetailed" action="show" id="${inventoryItemPurchaseInstance?.costCode?.id}">${inventoryItemPurchaseInstance?.costCode?.encodeAsHTML()}</g:link></td>
     52                           
     53                        </tr>
     54                       
     55                         <tr class="prop">
     56                            <td valign="top" class="name">Supplier:</td>
     57                           
     58                            <td valign="top" class="value"><g:link controller="supplierDetailed" action="show" id="${inventoryItemPurchaseInstance?.supplier?.id}">${inventoryItemPurchaseInstance?.supplier?.encodeAsHTML()}</g:link></td>
    4559                           
    4660                        </tr>
     
    6276                           
    6377                        </tr>
    64                    
    65                         <tr class="prop">
    66                             <td valign="top" class="name">Invoice Number:</td>
    67                            
    68                             <td valign="top" class="value">${fieldValue(bean:inventoryItemPurchaseInstance, field:'invoiceNumber')}</td>
    69                            
    70                         </tr>
     78
     79                        <g:if test="${inventoryItemPurchaseInstance.inventoryItemPurchaseType?.id == 4}">
     80                            <tr class="prop">
     81                                <td valign="top" class="name">Invoice Number:</td>
     82                                <td valign="top" class="value">${fieldValue(bean:inventoryItemPurchaseInstance, field:'invoiceNumber')}</td>
     83                            </tr>
     84                        </g:if>
    7185                       
    7286                        <tr class="prop">
     
    87101                            </td>
    88102                        </tr>
    89                    
     103                       
    90104                        <tr class="prop">
    91                             <td valign="top" class="name">Date Entered:</td>
    92                            
    93                             <td valign="top" class="value">
    94                                 <g:formatDate date="${inventoryItemPurchaseInstance?.dateEntered}" format="EEE, dd-MMM-yyyy @ HH:mm"/>
    95                             </td>
    96                            
     105                            <td valign="top" class="name">Comment:</td>
     106                            <td valign="top" class="value">${fieldValue(bean:inventoryItemPurchaseInstance, field:'comment')}</td>
    97107                        </tr>
    98108                   
    99109                        <tr class="prop">
    100110                            <td valign="top" class="name">Entered By:</td>
    101                            
    102                             <td valign="top" class="value"><g:link controller="person" action="show" id="${inventoryItemPurchaseInstance?.enteredBy?.id}">${inventoryItemPurchaseInstance?.enteredBy?.encodeAsHTML()}</g:link></td>
    103                            
     111                            <td valign="top" class="value">
     112                                <g:link controller="person" action="show" id="${inventoryItemPurchaseInstance?.enteredBy?.id}">
     113                                    ${inventoryItemPurchaseInstance?.enteredBy?.encodeAsHTML()}
     114                                </g:link>
     115                                    on <g:formatDate date="${inventoryItemPurchaseInstance?.dateCreated}" format="EEE, dd-MMM-yyyy @ HH:mm"/>
     116                            </td>
    104117                        </tr>
     118
     119                        <g:if test="${inventoryItemPurchaseInstance.lastUpdatedBy}">
     120                            <tr class="prop">
     121                                <td valign="top" class="name">Last Updated By:</td>
     122                                <td valign="top" class="value">
     123                                    <g:link controller="person" action="show" id="${inventoryItemPurchaseInstance?.lastUpdatedBy?.id}">
     124                                        ${inventoryItemPurchaseInstance?.lastUpdatedBy.encodeAsHTML()}
     125                                    </g:link>
     126                                    on <g:formatDate date="${inventoryItemPurchaseInstance?.lastUpdated}" format="EEE, dd-MMM-yyyy @ HH:mm"/>
     127                                </td>
     128                            </tr>
     129                        </g:if >
    105130                   
    106131                    </tbody>
Note: See TracChangeset for help on using the changeset viewer.