Changeset 177


Ignore:
Timestamp:
11/02/09 13:17:03 (5 years ago)
Author:
gav
Message:

Inventory movement quantity adjustments now done in a service.
InventoryMovementType now has an incrementsInventory flag, so not dependant on the text name.

Location:
trunk/grails-app
Files:
1 added
12 edited

Legend:

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

    r175 r177  
    22 
    33class InventoryMovementDetailedController extends BaseController { 
     4 
     5    def inventoryMovementService 
    46 
    57    def index = { redirect(action:list,params:params) } 
     
    2426 
    2527    def delete = { 
    26         def inventoryMovementInstance = InventoryMovement.get( params.id ) 
    27         if(inventoryMovementInstance) { 
    28             try { 
    29                 def taskId = inventoryMovementInstance.task?.id 
    30                 inventoryMovementInstance.delete(flush:true) 
    31                 flash.message = "InventoryMovement ${params.id} deleted" 
    32                 redirect(controller:"taskDetailed", action:"show", id:taskId) 
    33             } 
    34             catch(org.springframework.dao.DataIntegrityViolationException e) { 
    35                 flash.message = "InventoryMovement ${params.id} could not be deleted" 
    36                 redirect(action:show,id:params.id) 
    37             } 
     28        def result = inventoryMovementService.reverseMove(params) 
     29 
     30        if(!result.error) { 
     31            flash.message = "InventoryMovement ${params.id} deleted" 
     32            redirect(controller:"taskDetailed", action:"show", id:result.taskId) 
    3833        } 
    3934        else { 
    40             flash.message = "InventoryMovement not found with id ${params.id}" 
    41             redirect(action:list) 
     35            if(result.inventoryMovementInstance) { 
     36                render(view:'show',model:[inventoryMovementInstance:result.inventoryMovementInstance]) 
     37            } 
     38            else { 
     39                flash.message = "Could not delete inventory movement." 
     40                redirect(controller:"taskDetailed", action:"search", id:result.taskId) 
     41            } 
    4242        } 
    4343    } 
     
    5454 
    5555    def save = { 
    56         def inventoryMovementInstance = new InventoryMovement(params) 
    57         if(!inventoryMovementInstance.hasErrors() && inventoryMovementInstance.save()) { 
    58             flash.message = "Inventory Movement for ${inventoryMovementInstance.inventoryItem.name} created." 
    59             redirect(controller:"taskDetailed", action:"show", id: params.task.id) 
     56        def result = inventoryMovementService.move(params) 
     57 
     58        if(!result.error) { 
     59            flash.message = "Inventory Movement for ${result.inventoryMovementInstance.inventoryItem.name} created." 
     60            redirect(controller:"taskDetailed", action:"show", id: result.taskId) 
    6061        } 
    6162        else { 
    62             render(view:'create',model:[inventoryMovementInstance:inventoryMovementInstance]) 
     63            if(result.inventoryMovementInstance) { 
     64                render(view:'create',model:[inventoryMovementInstance:result.inventoryMovementInstance]) 
     65            } 
     66            else { 
     67                flash.message = "Could not create inventory movement." 
     68                redirect(controller:"taskDetailed", action:"search", id:result.taskId) 
     69            } 
     70 
    6371        } 
    6472    } 
     73 
    6574} 
  • trunk/grails-app/controllers/InventoryMovementTypeController.groovy

    r116 r177  
    2727        if(inventoryMovementTypeInstance) { 
    2828            try { 
    29                 inventoryMovementTypeInstance.delete() 
     29                inventoryMovementTypeInstance.delete(flush:true) 
    3030                flash.message = "InventoryMovementType ${params.id} deleted" 
    3131                redirect(action:list) 
     
    7777        else { 
    7878            flash.message = "InventoryMovementType not found with id ${params.id}" 
    79             redirect(action:edit,id:params.id) 
     79            redirect(action:list) 
    8080        } 
    8181    } 
  • trunk/grails-app/domain/InventoryMovement.groovy

    r175 r177  
    88    Date date = new Date() 
    99 
    10 //     static belongsTo = [inventoryItem] 
     10//     static belongsTo = [] 
    1111 
    1212    static constraints = { 
  • trunk/grails-app/domain/InventoryMovementType.groovy

    r116 r177  
    22    String name 
    33    String description = "" 
     4    boolean incrementsInventory = false 
    45    boolean isActive = true 
    56 
    67    static hasMany = [inventoryMovements: InventoryMovement] 
    7      
     8 
    89    static contstraints = { 
    910        name(maxSize:50,unique:true,blank:false) 
    1011        description(maxSize:100) 
     12        incrementsInventory() 
     13        isActive() 
    1114    } 
    1215 
  • trunk/grails-app/i18n/messages.properties

    r175 r177  
    4646task.associatedAssets=Associated Assets 
    4747task.associatedAssets.help=These assets are to be associated with this task, but costs will not be assigned. 
     48 
     49inventoryMovement.quantity.insufficientItemsInStock=Could not complete operation, insufficient items in stock. 
     50inventoryMovement.inventoryItem.notFound=Inventory Item not found. 
    4851 
    4952default.doesnt.match.message=Property [{0}] of class [{1}] with value [{2}] does not match the required pattern [{3}] 
  • trunk/grails-app/services/CreateDataService.groovy

    r175 r177  
    708708 
    709709        // InventoryMovementType #1 
    710         inventoryMovementTypeInstance = new InventoryMovementType(name: "Used") 
     710        inventoryMovementTypeInstance = new InventoryMovementType(name: "Used", 
     711                                                                                                                        incrementsInventory: false) 
    711712        saveAndTest(inventoryMovementTypeInstance) 
    712713 
    713714        // InventoryMovementType #2 
    714         inventoryMovementTypeInstance = new InventoryMovementType(name: "Repaired") 
     715        inventoryMovementTypeInstance = new InventoryMovementType(name: "Repaired", 
     716                                                                                                                        incrementsInventory: true) 
    715717        saveAndTest(inventoryMovementTypeInstance) 
    716718 
    717719        // InventoryMovementType #3 
    718         inventoryMovementTypeInstance = new InventoryMovementType(name: "Purchased") 
     720        inventoryMovementTypeInstance = new InventoryMovementType(name: "Purchase Received", 
     721                                                                                                                        incrementsInventory: true) 
     722        saveAndTest(inventoryMovementTypeInstance) 
     723 
     724        // InventoryMovementType #4 
     725        inventoryMovementTypeInstance = new InventoryMovementType(name: "Correction Increase", 
     726                                                                                                                        incrementsInventory: true) 
     727        saveAndTest(inventoryMovementTypeInstance) 
     728 
     729        // InventoryMovementType #5 
     730        inventoryMovementTypeInstance = new InventoryMovementType(name: "Correction Decrease", 
     731                                                                                                                        incrementsInventory: false) 
    719732        saveAndTest(inventoryMovementTypeInstance) 
    720733    } 
  • trunk/grails-app/views/inventoryMovementDetailed/create.gsp

    r175 r177  
    4141                                <td valign="top" class="value ${hasErrors(bean:inventoryMovementInstance,field:'quantity','errors')}"> 
    4242                                    <input type="text" id="quantity" name="quantity" value="${fieldValue(bean:inventoryMovementInstance,field:'quantity')}"/> 
    43                                     ${inventoryMovementInstance.inventoryItem} 
    4443                                </td> 
    4544                            </tr> 
     
    4746                            <tr class="prop"> 
    4847                                <td valign="top" class="name"> 
    49                                     <label for="inventoryMovementType">Inventory Movement Type:</label> 
     48                                    <label for="inventoryMovementType">Movement Type:</label> 
    5049                                </td> 
    5150                                <td valign="top" class="value ${hasErrors(bean:inventoryMovementInstance,field:'inventoryMovementType','errors')}"> 
  • trunk/grails-app/views/inventoryMovementDetailed/show.gsp

    r175 r177  
    1515            <div class="message">${flash.message}</div> 
    1616            </g:if> 
     17            <g:hasErrors bean="${inventoryMovementInstance}"> 
     18            <div class="errors"> 
     19                <g:renderErrors bean="${inventoryMovementInstance}" as="list" /> 
     20            </div> 
     21            </g:hasErrors> 
    1722            <div class="dialog"> 
    1823                <table> 
  • trunk/grails-app/views/inventoryMovementType/create.gsp

    r151 r177  
    55        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> 
    66        <meta name="layout" content="main" /> 
    7         <title>Create InventoryMovementType</title>          
     7        <title>Create InventoryMovementType</title> 
    88    </head> 
    99    <body> 
    1010        <div class="nav"> 
    11             <span class="menuButton"><a class="home" href="${resource(dir:'')}">Home</a></span> 
    1211            <span class="menuButton"><g:link class="list" action="list">InventoryMovementType List</g:link></span> 
    1312        </div> 
     
    3332                                <td valign="top" class="value ${hasErrors(bean:inventoryMovementTypeInstance,field:'description','errors')}"> 
    3433                                    <input type="text" id="description" name="description" value="${fieldValue(bean:inventoryMovementTypeInstance,field:'description')}"/> 
     34                                </td> 
     35                            </tr>  
     36                         
     37                            <tr class="prop"> 
     38                                <td valign="top" class="name"> 
     39                                    <label for="incrementsInventory">Increments Inventory:</label> 
     40                                </td> 
     41                                <td valign="top" class="value ${hasErrors(bean:inventoryMovementTypeInstance,field:'incrementsInventory','errors')}"> 
     42                                    <g:checkBox name="incrementsInventory" value="${inventoryMovementTypeInstance?.incrementsInventory}" ></g:checkBox> 
    3543                                </td> 
    3644                            </tr>  
  • trunk/grails-app/views/inventoryMovementType/edit.gsp

    r151 r177  
    99    <body> 
    1010        <div class="nav"> 
    11             <span class="menuButton"><a class="home" href="${resource(dir:'')}">Home</a></span> 
    1211            <span class="menuButton"><g:link class="list" action="list">InventoryMovementType List</g:link></span> 
    1312            <span class="menuButton"><g:link class="create" action="create">New InventoryMovementType</g:link></span> 
     
    3635                                <td valign="top" class="value ${hasErrors(bean:inventoryMovementTypeInstance,field:'description','errors')}"> 
    3736                                    <input type="text" id="description" name="description" value="${fieldValue(bean:inventoryMovementTypeInstance,field:'description')}"/> 
     37                                </td> 
     38                            </tr>  
     39                         
     40                            <tr class="prop"> 
     41                                <td valign="top" class="name"> 
     42                                    <label for="incrementsInventory">Increments Inventory:</label> 
     43                                </td> 
     44                                <td valign="top" class="value ${hasErrors(bean:inventoryMovementTypeInstance,field:'incrementsInventory','errors')}"> 
     45                                    <g:checkBox name="incrementsInventory" value="${inventoryMovementTypeInstance?.incrementsInventory}" ></g:checkBox> 
    3846                                </td> 
    3947                            </tr>  
  • trunk/grails-app/views/inventoryMovementType/list.gsp

    r151 r177  
    99    <body> 
    1010        <div class="nav"> 
    11             <span class="menuButton"><a class="home" href="${resource(dir:'')}">Home</a></span> 
    1211            <span class="menuButton"><g:link class="create" action="create">New InventoryMovementType</g:link></span> 
    1312        </div> 
     
    2625                                <g:sortableColumn property="description" title="Description" /> 
    2726                         
     27                                <g:sortableColumn property="incrementsInventory" title="Increments Inventory" /> 
     28                         
    2829                                <g:sortableColumn property="isActive" title="Is Active" /> 
    2930                         
     
    3940                         
    4041                            <td>${fieldValue(bean:inventoryMovementTypeInstance, field:'description')}</td> 
     42                         
     43                            <td>${fieldValue(bean:inventoryMovementTypeInstance, field:'incrementsInventory')}</td> 
    4144                         
    4245                            <td>${fieldValue(bean:inventoryMovementTypeInstance, field:'isActive')}</td> 
  • trunk/grails-app/views/inventoryMovementType/show.gsp

    r151 r177  
    99    <body> 
    1010        <div class="nav"> 
    11             <span class="menuButton"><a class="home" href="${resource(dir:'')}">Home</a></span> 
    1211            <span class="menuButton"><g:link class="list" action="list">InventoryMovementType List</g:link></span> 
    1312            <span class="menuButton"><g:link class="create" action="create">New InventoryMovementType</g:link></span> 
     
    3433                             
    3534                            <td valign="top" class="value">${fieldValue(bean:inventoryMovementTypeInstance, field:'description')}</td> 
     35                             
     36                        </tr> 
     37                     
     38                        <tr class="prop"> 
     39                            <td valign="top" class="name">Increments Inventory:</td> 
     40                             
     41                            <td valign="top" class="value">${fieldValue(bean:inventoryMovementTypeInstance, field:'incrementsInventory')}</td> 
    3642                             
    3743                        </tr> 
Note: See TracChangeset for help on using the changeset viewer.