source: trunk/grails-app/controllers/InventoryMovementController.groovy @ 175

Last change on this file since 175 was 175, checked in by gav, 14 years ago

Substantial refactor of the Inventory domain.
InventoryItems can now be added to tasks, no quantity adjustments done yet.
Removed StoredItem and with it the ability to store an inventoryItem in multiple places, just too complex right now.
Svn move StoreLocation to InventoryLocation.

File size: 3.9 KB
Line 
1import org.codehaus.groovy.grails.plugins.springsecurity.Secured
2
3class InventoryMovementController extends BaseAppAdminController {
4   
5    def index = { redirect(action:list,params:params) }
6
7    // the delete, save and update actions only accept POST requests
8    static allowedMethods = [delete:'POST', save:'POST', update:'POST']
9
10    def list = {
11        params.max = Math.min( params.max ? params.max.toInteger() : 10,  100)
12        [ inventoryMovementInstanceList: InventoryMovement.list( params ), inventoryMovementInstanceTotal: InventoryMovement.count() ]
13    }
14
15    def show = {
16        def inventoryMovementInstance = InventoryMovement.get( params.id )
17
18        if(!inventoryMovementInstance) {
19            flash.message = "InventoryMovement not found with id ${params.id}"
20            redirect(action:list)
21        }
22        else { return [ inventoryMovementInstance : inventoryMovementInstance ] }
23    }
24
25    def delete = {
26        def inventoryMovementInstance = InventoryMovement.get( params.id )
27        if(inventoryMovementInstance) {
28            try {
29                inventoryMovementInstance.delete(flush:true)
30                flash.message = "InventoryMovement ${params.id} deleted"
31                redirect(action:list)
32            }
33            catch(org.springframework.dao.DataIntegrityViolationException e) {
34                flash.message = "InventoryMovement ${params.id} could not be deleted"
35                redirect(action:show,id:params.id)
36            }
37        }
38        else {
39            flash.message = "InventoryMovement not found with id ${params.id}"
40            redirect(action:list)
41        }
42    }
43
44    def edit = {
45        def inventoryMovementInstance = InventoryMovement.get( params.id )
46
47        if(!inventoryMovementInstance) {
48            flash.message = "InventoryMovement not found with id ${params.id}"
49            redirect(action:list)
50        }
51        else {
52            return [ inventoryMovementInstance : inventoryMovementInstance ]
53        }
54    }
55
56    def update = {
57        def inventoryMovementInstance = InventoryMovement.get( params.id )
58        if(inventoryMovementInstance) {
59            if(params.version) {
60                def version = params.version.toLong()
61                if(inventoryMovementInstance.version > version) {
62                   
63                    inventoryMovementInstance.errors.rejectValue("version", "inventoryMovement.optimistic.locking.failure", "Another user has updated this InventoryMovement while you were editing.")
64                    render(view:'edit',model:[inventoryMovementInstance:inventoryMovementInstance])
65                    return
66                }
67            }
68            inventoryMovementInstance.properties = params
69            if(!inventoryMovementInstance.hasErrors() && inventoryMovementInstance.save()) {
70                flash.message = "InventoryMovement ${params.id} updated"
71                redirect(action:show,id:inventoryMovementInstance.id)
72            }
73            else {
74                render(view:'edit',model:[inventoryMovementInstance:inventoryMovementInstance])
75            }
76        }
77        else {
78            flash.message = "InventoryMovement not found with id ${params.id}"
79            redirect(action:list)
80        }
81    }
82
83    def create = {
84        def inventoryMovementInstance = new InventoryMovement()
85        inventoryMovementInstance.properties = params
86        return ['inventoryMovementInstance':inventoryMovementInstance]
87    }
88
89    def save = {
90        def inventoryMovementInstance = new InventoryMovement(params)
91        if(!inventoryMovementInstance.hasErrors() && inventoryMovementInstance.save()) {
92            flash.message = "InventoryMovement ${inventoryMovementInstance.id} created"
93            redirect(action:show,id:inventoryMovementInstance.id)
94        }
95        else {
96            render(view:'create',model:[inventoryMovementInstance:inventoryMovementInstance])
97        }
98    }
99}
Note: See TracBrowser for help on using the repository browser.