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