source: trunk/grails-app/controllers/InventoryLocationDetailedController.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 InventoryLocationDetailedController extends BaseController {
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        [ inventoryLocationInstanceList: InventoryLocation.list( params ), inventoryLocationInstanceTotal: InventoryLocation.count() ]
13    }
14
15    def show = {
16        def inventoryLocationInstance = InventoryLocation.get( params.id )
17
18        if(!inventoryLocationInstance) {
19            flash.message = "InventoryLocation not found with id ${params.id}"
20            redirect(action:list)
21        }
22        else { return [ inventoryLocationInstance : inventoryLocationInstance ] }
23    }
24
25    def delete = {
26        def inventoryLocationInstance = InventoryLocation.get( params.id )
27        if(inventoryLocationInstance) {
28            try {
29                inventoryLocationInstance.delete(flush:true)
30                flash.message = "InventoryLocation ${params.id} deleted"
31                redirect(action:list)
32            }
33            catch(org.springframework.dao.DataIntegrityViolationException e) {
34                flash.message = "InventoryLocation ${params.id} could not be deleted"
35                redirect(action:show,id:params.id)
36            }
37        }
38        else {
39            flash.message = "InventoryLocation not found with id ${params.id}"
40            redirect(action:list)
41        }
42    }
43
44    def edit = {
45        def inventoryLocationInstance = InventoryLocation.get( params.id )
46
47        if(!inventoryLocationInstance) {
48            flash.message = "InventoryLocation not found with id ${params.id}"
49            redirect(action:list)
50        }
51        else {
52            return [ inventoryLocationInstance : inventoryLocationInstance ]
53        }
54    }
55
56    def update = {
57        def inventoryLocationInstance = InventoryLocation.get( params.id )
58        if(inventoryLocationInstance) {
59            if(params.version) {
60                def version = params.version.toLong()
61                if(inventoryLocationInstance.version > version) {
62                   
63                    inventoryLocationInstance.errors.rejectValue("version", "inventoryLocation.optimistic.locking.failure", "Another user has updated this InventoryLocation while you were editing.")
64                    render(view:'edit',model:[inventoryLocationInstance:inventoryLocationInstance])
65                    return
66                }
67            }
68            inventoryLocationInstance.properties = params
69            if(!inventoryLocationInstance.hasErrors() && inventoryLocationInstance.save()) {
70                flash.message = "InventoryLocation ${params.id} updated"
71                redirect(action:show,id:inventoryLocationInstance.id)
72            }
73            else {
74                render(view:'edit',model:[inventoryLocationInstance:inventoryLocationInstance])
75            }
76        }
77        else {
78            flash.message = "InventoryLocation not found with id ${params.id}"
79            redirect(action:list)
80        }
81    }
82
83    def create = {
84        def inventoryLocationInstance = new InventoryLocation()
85        inventoryLocationInstance.properties = params
86        return ['inventoryLocationInstance':inventoryLocationInstance]
87    }
88
89    def save = {
90        def inventoryLocationInstance = new InventoryLocation(params)
91        if(!inventoryLocationInstance.hasErrors() && inventoryLocationInstance.save()) {
92            flash.message = "InventoryLocation ${inventoryLocationInstance.id} created"
93            redirect(action:show,id:inventoryLocationInstance.id)
94        }
95        else {
96            render(view:'create',model:[inventoryLocationInstance:inventoryLocationInstance])
97        }
98    }
99}
Note: See TracBrowser for help on using the repository browser.