Source of file ContactExtension.php
Size: 2,858 Bytes - Last Modified: 2021-12-23T10:24:32+00:00
/var/www/docs.ssmods.com/process/src/src/extensions/ContactExtension.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 | <?php namespace SilverCommerce\OrdersAdmin\Extensions; use SilverStripe\ORM\DataExtension; use SilverStripe\Forms\FieldList; use SilverStripe\Forms\DropdownField; use SilverStripe\Forms\GridField\GridFieldDetailForm; use SilverStripe\Core\Config\Config; use SilverStripe\Security\Member; use SilverCommerce\OrdersAdmin\Forms\GridField\OrdersDetailForm; use SilverCommerce\OrdersAdmin\Model\Invoice; use SilverCommerce\OrdersAdmin\Model\Estimate; /** * Add additional functions to a contact */ class ContactExtension extends DataExtension { private static $has_many = [ "Invoices" => Invoice::class, "Estimates"=> Estimate::class ]; public function updateCMSFields(FieldList $fields) { // Filter the invoice list $invoices_field = $fields->dataFieldByName("Invoices"); $estimate_field = $fields->dataFieldByName("Estimates"); if ($invoices_field) { $invoices_field ->getConfig() ->removeComponentsByType(GridFieldDetailForm::class) ->addComponent(new OrdersDetailForm()); } if ($estimate_field) { $list = $estimate_field->getList(); $list = $list->filter("ClassName", Estimate::class); $estimate_field->setList($list); $estimate_field ->getConfig() ->removeComponentsByType(GridFieldDetailForm::class) ->addComponent(new OrdersDetailForm()); } } /** * Get all orders that have been generated and are marked * as paid or processing * * @return DataList */ public function OutstandingInvoices() { return $this ->owner ->Invoices() ->filter("Status", Config::inst()->get(Invoice::class, "outstanding_statuses")); } /** * Get all orders that have been generated and are marked * as dispatched or canceled * * @return DataList */ public function HistoricInvoices() { return $this ->owner ->Invoices() ->filter("Status", Config::inst()->get(Invoice::class, "historic_statuses")); } public function canView($member) { // Members can view their own records if ($member && $member->exists() && $member->ID == $this->owner->MemberID) { return true; } } public function canEdit($member) { // Members can edit their own records if ($member && $member->exists() && $member->ID == $this->owner->MemberID) { return true; } } public function canDelete($member) { // Members can delete their own records if ($member && $member->exists() && $member->ID == $this->owner->MemberID) { return true; } } } |