Source of file Discount.php
Size: 3,147 Bytes - Last Modified: 2021-12-24T05:16:24+00:00
/var/www/docs.ssmods.com/process/src/code/model/Discount.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139 | <?php class Discount extends DataObject { private static $db = array( "Title" => "Varchar", "Type" => "Enum('Fixed,Percentage,Free Shipping','Percentage')", "Code" => "Varchar(299)", "Amount" => "Decimal", "Country" => "Varchar(255)", "Expires" => "Date" ); private static $has_one = array( "Site" => "SiteConfig" ); private static $many_many = array( "Groups" => "Group" ); private static $summary_fields = array( "Title", "Code", "Expires" ); /** * Generate a random string that we can use for the code by default * * @return string */ private static function generateRandomString($length = 10) { $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; $string = ''; for ($i = 0; $i < $length; $i++) { $string .= $characters[rand(0, strlen($characters) - 1)]; } return $string; } /** * Set more complex default data */ public function populateDefaults() { $this->setField('Code', self::generateRandomString()); } /** * Return a URL that allows this code to be added to a cart * automatically * * @return String */ public function AddLink() { $link = Controller::join_links( Director::absoluteBaseURL(), ShoppingCart::config()->url_segment, "usediscount", $this->Code ); return $link; } public function getCMSFields() { $fields = parent::getCMSFields(); if ($this->Code) { $fields->addFieldToTab( "Root.Main", ReadonlyField::create( "DiscountURL", _t("CheckoutAdmin.AddDiscountURL", "Add discount URL"), $this->AddLink() ), "Code" ); } return $fields; } public function onBeforeWrite() { parent::onBeforeWrite(); // Ensure that the code is URL safe $this->Code = Convert::raw2url($this->Code); } public function canView($member = null) { $extended = $this->extendedCan('canView', $member); if ($extended !== null) { return $extended; } return true; } public function canCreate($member = null) { $extended = $this->extendedCan('canCreate', $member); if ($extended !== null) { return $extended; } return true; } public function canEdit($member = null) { $extended = $this->extendedCan('canEdit', $member); if ($extended !== null) { return $extended; } return true; } public function canDelete($member = null) { $extended = $this->extendedCan('canDelete', $member); if ($extended !== null) { return $extended; } return true; } } |