source: trunk/grails-app/domain/InventoryItemPurchase.groovy @ 605

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

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

File size: 1.7 KB
Line 
1class InventoryItemPurchase {
2
3    Person enteredBy
4    Person lastUpdatedBy
5    InventoryItem inventoryItem
6    CostCode costCode
7    InventoryItemPurchaseType inventoryItemPurchaseType
8    Supplier supplier
9
10    Date date = new Date()
11    Date lastUpdated // autoTimestamp
12    Date dateCreated // autoTimestamp
13
14    Integer quantity
15    String purchaseOrderNumber = ''
16    BigDecimal orderValueAmount
17    Currency orderValueCurrency
18    String invoiceNumber = ''
19    String comment = ""
20
21    Boolean receivedComplete = false
22    Boolean invoicePaymentApproved = false
23
24//     hasMany = []
25
26    static belongsTo = [InventoryItem]
27
28    static constraints = {
29        quantity(min:0)
30        purchaseOrderNumber(blank:false, maxSize:50, validator: {val, obj ->
31            // For orders the purchaseOrderNumber must be unique for an inventoryItem.
32            if(obj.inventoryItemPurchaseType.id == 1L) {
33                def list = InventoryItemPurchase.withCriteria {
34                    eq('inventoryItem', obj.inventoryItem)
35                    eq('purchaseOrderNumber', obj.purchaseOrderNumber)
36                    eq('inventoryItemPurchaseType', obj.inventoryItemPurchaseType)
37                    if(obj.id)
38                        notEqual('id', obj.id)
39                }
40                if(list.size() > 0)
41                    return 'not.unique.for.inventory.item.order'
42            }
43            // Success.
44            return true
45        })
46        invoiceNumber(maxSize:50)
47        orderValueAmount(max: new BigDecimal(1000000000000))
48        orderValueCurrency()
49        comment(maxSize:255)
50        lastUpdatedBy(nullable: true)
51    }
52
53    String toString() {
54        "${this.quantity} x ${inventoryItem} - ${this.inventoryItemPurchaseType} "
55    }
56
57}
Note: See TracBrowser for help on using the repository browser.