@@ 16-75 (lines=60) @@ | ||
13 | * |
|
14 | **/ |
|
15 | ||
16 | class CurrentOrdersReport extends SS_Report |
|
17 | { |
|
18 | protected $title = 'Current Orders'; |
|
19 | ||
20 | protected $description = 'This shows all orders that are not paid or cancelled.'; |
|
21 | ||
22 | /** |
|
23 | * Return a {@link ComplexTableField} that shows |
|
24 | * all Order instances that are current. |
|
25 | * |
|
26 | * "Current" means all Orders that don't have a |
|
27 | * Status property of "Complete" or "Cancelled". |
|
28 | * |
|
29 | * @return ComplexTableField |
|
30 | */ |
|
31 | public function getReportField() |
|
32 | { |
|
33 | // Get the fields used for the table columns |
|
34 | $fields = Order::get_summary_fields(); |
|
35 | ||
36 | // Add some fields specific to this report |
|
37 | $fields['Invoice'] = ''; |
|
38 | $fields['Print'] = ''; |
|
39 | ||
40 | $table = new TableListField( |
|
41 | 'Orders', |
|
42 | 'Order', |
|
43 | $fields |
|
44 | ); |
|
45 | ||
46 | // Customise the SQL query for Order, because we don't want it querying |
|
47 | // all the fields. Invoice and Printed are dummy fields that just have some |
|
48 | // text in them, which would be automatically queried if we didn't specify |
|
49 | // a custom query. |
|
50 | $query = singleton('Order')->buildSQL("\"Order\".\"Status\" NOT IN ('Complete', 'Cancelled')", '"Order"."Created" DESC'); |
|
51 | $query->groupby[] = '"Order"."Created"'; |
|
52 | $table->setCustomQuery($query); |
|
53 | ||
54 | // Set the links to the Invoice and Print fields allowing a user to view |
|
55 | // another template for viewing an Order instance |
|
56 | $table->setFieldFormatting(array( |
|
57 | 'Invoice' => '<a href=\"OrderReport_Popup/invoice/$ID\">Invoice</a>', |
|
58 | 'Print' => '<a target=\"_blank\" href=\"OrderReport_Popup/index/$ID?print=1\">Print</a>' |
|
59 | )); |
|
60 | ||
61 | $table->setFieldCasting(array( |
|
62 | 'Created' => 'Date', |
|
63 | 'Total' => 'Currency->Nice' |
|
64 | )); |
|
65 | ||
66 | $table->setPermissions(array( |
|
67 | 'edit', |
|
68 | 'show', |
|
69 | 'export', |
|
70 | 'delete', |
|
71 | )); |
|
72 | ||
73 | return $table; |
|
74 | } |
|
75 | } |
|
76 |
@@ 16-74 (lines=59) @@ | ||
13 | * |
|
14 | **/ |
|
15 | ||
16 | class UnprintedOrderReport extends SS_Report |
|
17 | { |
|
18 | protected $title = 'Unprinted Orders'; |
|
19 | ||
20 | protected $description = 'This shows all orders that are complete, but haven\'t been printed yet.'; |
|
21 | ||
22 | /** |
|
23 | * Return a {@link ComplexTableField} that shows |
|
24 | * all Order instances that are not printed. That is, |
|
25 | * Order instances with the property "Printed" value |
|
26 | * set to "0". |
|
27 | * |
|
28 | * @return ComplexTableField |
|
29 | */ |
|
30 | public function getReportField() |
|
31 | { |
|
32 | // Get the fields used for the table columns |
|
33 | $fields = Order::get_summary_fields(); |
|
34 | ||
35 | // Add some fields specific to this report |
|
36 | $fields['Invoice'] = ''; |
|
37 | $fields['Print'] = ''; |
|
38 | ||
39 | $table = new TableListField( |
|
40 | 'Orders', |
|
41 | 'Order', |
|
42 | $fields |
|
43 | ); |
|
44 | ||
45 | // Customise the SQL query for Order, because we don't want it querying |
|
46 | // all the fields. Invoice and Printed are dummy fields that just have some |
|
47 | // text in them, which would be automatically queried if we didn't specify |
|
48 | // a custom query. |
|
49 | $query = singleton('Order')->buildSQL('"Order"."Printed" = 0', '"Order"."Created" DESC'); |
|
50 | $query->groupby[] = '"Order"."Created"'; |
|
51 | $table->setCustomQuery($query); |
|
52 | ||
53 | // Set the links to the Invoice and Print fields allowing a user to view |
|
54 | // another template for viewing an Order instance |
|
55 | $table->setFieldFormatting(array( |
|
56 | 'Invoice' => '<a href=\"OrderReport_Popup/invoice/$ID\">Invoice</a>', |
|
57 | 'Print' => '<a target=\"_blank\" href=\"OrderReport_Popup/index/$ID?print=1\">Print</a>' |
|
58 | )); |
|
59 | ||
60 | $table->setFieldCasting(array( |
|
61 | 'Created' => 'Date', |
|
62 | 'Total' => 'Currency->Nice' |
|
63 | )); |
|
64 | ||
65 | $table->setPermissions(array( |
|
66 | 'edit', |
|
67 | 'show', |
|
68 | 'export', |
|
69 | 'delete', |
|
70 | )); |
|
71 | ||
72 | return $table; |
|
73 | } |
|
74 | } |
|
75 |