Source of file OrderAdmin.php
Size: 5,386 Bytes - Last Modified: 2021-12-24T05:16:53+00:00
/var/www/docs.ssmods.com/process/src/code/admin/OrderAdmin.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173 | <?php /** * Add interface to manage orders through the CMS * * @package Commerce */ class OrderAdmin extends ModelAdmin { private static $url_segment = 'orders'; private static $menu_title = 'Orders'; private static $menu_priority = 4; private static $managed_models = array( 'Order' => array("title" => "Orders"), 'Estimate' => array("title" => "Estimates") ); private static $model_importers = array(); /** * For an order, export all fields by default * */ public function getExportFields() { if ($this->modelClass == 'Order') { $return = array( "OrderNumber" => "#", "Status" => "Status", "Created" => "Created", "Company" => "Company Name", "FirstName" => "First Name(s)", "Surname" => "Surname", "Email" => "Email", "PhoneNumber" => "Phone Number", "ItemSummary" => "Items Ordered", "SubTotal" => "SubTotal", "Postage" => "Postage", "TaxTotal" => "TaxTotal", "Total" => "Total", "Address1" => "Billing Address 1", "Address2" => "Billing Address 2", "City" => "Billing City", "PostCode" => "Billing Post Code", "CountryFull" => "Billing Country", "DeliveryFirstnames"=> "Delivery First Name(s)", "DeliverySurname" => "Delivery Surname", "DeliveryAddress1" => "Delivery Address 1", "DeliveryAddress2" => "Delivery Address 2", "DeliveryCity" => "Delivery City", "DeliveryPostCode" => "Delivery Post Code", "DeliveryCountryFull"=> "Delivery Country", "DiscountAmount" => "Discount Amount", "PostageType" => "Postage Type", "PostageCost" => "Postage Cost", "PostageTax" => "Postage Tax", ); } else { $return = singleton($this->modelClass)->summaryFields(); } $extend = $this->extend("updateExportFields", $return); if ($extend && is_array($extend)) { $return = $extend; } return $return; } public function getEditForm($id = null, $fields = null) { $form = parent::getEditForm($id, $fields); $fields = $form->Fields(); $config = null; // Bulk manager $manager = new GridFieldBulkManager(); $manager->removeBulkAction("bulkEdit"); $manager->removeBulkAction("unLink"); // Manage orders if ($this->modelClass == 'Order') { $gridField = $fields->fieldByName('Order'); $config = $gridField->getConfig(); $manager->addBulkAction( 'cancelled', 'Mark Cancelled', 'OrdersFieldBulkActions' ); $manager->addBulkAction( 'paid', 'Mark Paid', 'OrdersFieldBulkActions' ); $manager->addBulkAction( 'processing', 'Mark Processing', 'OrdersFieldBulkActions' ); $manager->addBulkAction( 'dispatched', 'Mark Dispatched', 'OrdersFieldBulkActions' ); // Update list of items for subsite (if used) if (class_exists('Subsite')) { $list = $gridField ->getList() ->filter(array( 'SubsiteID' => Subsite::currentSubsiteID() )); $gridField->setList($list); } } // Manage Estimates if ($this->modelClass == 'Estimate') { $gridField = $fields->fieldByName('Estimate'); $config = $gridField->getConfig(); // Update list of items for subsite (if used) if (class_exists('Subsite')) { $list = $gridField ->getList() ->filter(array( 'SubsiteID' => Subsite::currentSubsiteID() )); $gridField->setList($list); } } // Set our default detailform and bulk manager if ($config) { $config ->removeComponentsByType('GridFieldDetailForm') ->addComponent($manager) ->addComponent(new OrdersGridFieldDetailForm()); } $this->extend("updateEditForm", $form); return $form; } public function getList() { $list = parent::getList(); // Ensure that we only show Order objects in the order tab if ($this->modelClass == "Order") { $list = $list ->addFilter(array("ClassName" => "Order")); } $this->extend("updateList", $list); return $list; } } |