示例#1
0
 public function XrequireDefaultRecords()
 {
     foreach ($this->config()->get('records') as $code => $record) {
         if ($record['IsDev'] && Director::isDev() || $record['IsTest'] && Director::isTest() || $record['IsLive'] && Director::isLive()) {
             if (!($discountType = StreakDiscountType::get_by_code($code))) {
                 $discountType = StreakDiscountType::create();
                 DB::alteration_message("Added discount type '{$code}'", "changed");
             }
             // if the record is using default code then update from config.
             if ($code == self::DefaultCode) {
                 $record['Code'] = $this->config()->get('default_code');
             } else {
                 $record['Code'] = $code;
             }
             $title = $record['Title'];
             // if the record is using default title then update from config as hasn't changed, if different
             // then leave alone
             if ($title == self::DefaultTitle) {
                 $record['Title'] = $this->config()->get('default_title');
             }
             $data = array_diff_key($record, array_flip(array('IsDev', 'IsTest', 'IsLive')));
             $discountType->update($data);
             $discountType->write();
         }
     }
 }
示例#2
0
 /**
 * Returns the one or more active DiscountTypes (site, member, product) in order of preference (or an empty array if none found).
 *
 *@return array
 */
 public function resolveDiscountTypes()
 {
     $discountTypes = array();
     if (StreakConfig::streak_config()->StreakSiteWideDiscountID) {
         $discountTypes['SiteWide'] = StreakDiscountType::get()->byID(StreakConfig::streak_config()->StreakSiteWideDiscountID);
     }
     if (Member::currentUserID()) {
         $discountTypes['Member'] = StreakDiscountType::get()->byID(Member::currentUser()->StreakDiscountTypeID);
     }
     if ($this->owner->StreakDiscountTypeID) {
         $discountTypes['Product'] = $this->owner->StreakDiscountType();
     }
     return array_filter($discountTypes);
 }
示例#3
0
 public function provideConfigFields(FieldList $fields)
 {
     $fields->push(new Select2Field(self::FieldName, 'Site wide discount', StreakDiscountType::get()->map()->toArray()));
 }
示例#4
0
 /**
  * Add discount type field to member
  * @param FieldList $fields
  */
 public function updateCMSFields(FieldList $fields)
 {
     $fields->insertAfter($field = new DropdownField(self::FieldName . 'ID', StreakDiscountType::config()->get('singular_name'), StreakDiscountType::get()->map()->toArray()), 'Email');
     $field->setEmptyString('None');
 }
示例#5
0
 public static function discount_codes($discountOnly = true)
 {
     return StreakDiscountType::get()->setQueriedColumns(array('ID', self::CodeFieldName))->filter(static::ColumnFieldName, true)->distinct(self::CodeFieldName)->map('ID', self::CodeFieldName)->toArray();
 }
示例#6
0
 public static function get_by_code($code)
 {
     return StreakDiscountType::get()->filter('Code', $code)->first();
 }