source: branches/features/purchaseOrders/grails-app/services/PurchaseOrderService.groovy @ 897

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

Cleanup blank PurchaseOrderService serviceMethod().

File size: 1.3 KB
Line 
1class PurchaseOrderService {
2
3    boolean transactional = false
4
5    PurchaseOrderNumber findNextUnusedPurchaseOrderNumber() {
6        def empty = PurchaseOrderNumber.list().find{it.purchaseOrder==null}
7        return empty
8    }
9
10    PurchaseOrder getOrCreatePurchaseOrder(params) {
11        def id = params.purchaseOrderNumber.id
12        if (params.purchaseOrderNumber.id instanceof Long) {
13            id = params.purchaseOrderNumber.id
14        } else {
15            id = params.purchaseOrderNumber.id.toString().toLong()
16        }
17        def pon = PurchaseOrderNumber.get(id)
18        def po = pon?.purchaseOrder
19        if (!po) {
20            po = createPurchaseOrder(pon,params)
21        }
22        return po
23    }
24
25    PurchaseOrder createPurchaseOrder(pon,params) {
26        def supplier = Supplier.get(params.supplier.id)
27        def po = new PurchaseOrder(supplier:supplier)
28        pon.purchaseOrder = po
29        po.purchaseOrderNumber = pon
30        pon.save(failOnError:true) // should cascade to save the PO as well. I wonder why it doesn't.
31        po.save(failOnError:true)
32        return po
33    }
34
35    List<PurchaseOrder> findDraftPurchaseOrderNumbers() {
36        def drafts = PurchaseOrder.list().findAll{it.ordered == null}.collect{it.purchaseOrderNumber}
37        return drafts
38    }
39}
Note: See TracBrowser for help on using the repository browser.