Source of file Customer.php
Size: 1,855 Bytes - Last Modified: 2021-12-24T06:40:39+00:00
/var/www/docs.ssmods.com/process/src/src/model/Customer.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 | <?php namespace Cita\eCommerce\Model; use SilverStripe\Security\Member; use SilverStripe\Forms\TextareaField; use SilverStripe\Forms\TextField; use Cita\eCommerce\Model\Order; use Cita\eCommerce\Model\Address; use SilverStripe\Security\Group; class Customer extends Member { /** * Defines the database table name * @var string */ private static $table_name = 'Cita_eCommerce_Customer'; /** * Has_many relationship * @var array */ private static $has_many = [ 'Orders' => Order::class, 'Addresses' => Address::class ]; /** * CMS Fields * @return FieldList */ public function getCMSFields() { $fields = parent::getCMSFields(); $fields->removeByName([ 'Locale', 'FailedLoginCount', 'DirectGroups', 'Permissions' ]); return $fields; } // call this upon sign in public function grantDiscountToCart() { if ($group = $this->Groups()->first()) { if ($group->Discount()->exists()) { if ($recent_cart = $this->Orders()->first()) { $recent_cart->DiscountID = $group->DiscountID; $recent_cart->write(); } } } } /** * Event handler called after writing to the database. */ public function onAfterWrite() { parent::onAfterWrite(); $this->addToGroupByCode('customers', 'Customers'); } public function requireDefaultRecords() { if (empty(Group::get()->filter(['Code' => 'customers'])->first())) { $group = Group::create(); $group->Code = 'customers'; $group->Title = 'Customers'; $group->write(); } } } |