source: branches/features/purchaseOrders/grails-app/domain/InventoryItemPurchase.groovy @ 891

Last change on this file since 891 was 891, checked in by gav, 13 years ago

Purchase Order first draft as per ticket #30, by John Yesberg.

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