Пример #1
0
 /**
  * @param $sub_category
  *
  * @return BetssonCategoryLeague|null|static
  * @throws \BetssonSports\Exception
  */
 protected function StoreCategoryLeague($sub_category)
 {
     // Load or store category
     if (!($BetssonCategory = BetssonCategory::findOne(['CategoryID' => intval($sub_category->CategoryID), 'LanguageCode' => $sub_category->LanguageCode]))) {
         $BetssonCategory = new BetssonCategory();
         $BetssonCategory->CategoryID = intval($sub_category->CategoryID);
         $BetssonCategory->LanguageCode = $sub_category->LanguageCode;
     }
     // TODO: temporary fix to prevent errors when Betsson provides no category name
     $BetssonCategory->CategoryName = $sub_category->CategoryName ? $sub_category->CategoryName : 'Not provided';
     $BetssonCategory->CacheDate = $sub_category->CacheDate;
     $BetssonCategory->CacheExpireDate = $sub_category->CacheExpireDate;
     $BetssonCategory->ErrorMessage = $sub_category->ErrorMessage;
     if (!$this->storeDataRecord($BetssonCategory)) {
         return false;
     }
     // Load or store category league
     if (!($BetssonCategoryLeague = BetssonCategoryLeague::findOne(['LeagueID' => intval($sub_category->SubCategoryID), 'LanguageCode' => $sub_category->LanguageCode]))) {
         $BetssonCategoryLeague = new BetssonCategoryLeague();
         $BetssonCategoryLeague->LeagueID = intval($sub_category->SubCategoryID);
         $BetssonCategoryLeague->LanguageCode = $sub_category->LanguageCode;
     }
     $BetssonCategoryLeague->CategoryID = intval($sub_category->CategoryID);
     $BetssonCategoryLeague->LeagueName = $sub_category->SubCategoryName;
     $BetssonCategoryLeague->LeagueURL = $sub_category->SubCategoryURL;
     $BetssonCategoryLeague->CacheDate = gmdate("Y-m-d H:i:s", strtotime($sub_category->CacheDate));
     $BetssonCategoryLeague->CacheExpireDate = gmdate("Y-m-d H:i:s", strtotime($sub_category->CacheExpireDate));
     $BetssonCategoryLeague->ErrorMessage = $sub_category->ErrorMessage;
     if (!$this->storeDataRecord($BetssonCategoryLeague)) {
         return false;
     }
     return true;
 }
Пример #2
0
 /**
  * @return \yii\db\ActiveQuery
  */
 public function getLeagues()
 {
     return $this->hasMany(BetssonCategoryLeague::className(), ['CategoryID' => 'CategoryID'])->inverseOf('category');
 }
 /**
  * @param null|integer $EventID
  * @param null|integer $LeagueID
  * @param null|integer $CategoryID
  *
  * @return array
  */
 public static function getForDropdown($EventID = null, $LeagueID = null, $CategoryID = null)
 {
     $query = static::find()->andFilterWhere([self::tableName() . '.EventID' => $EventID])->orderBy('BetGroupName')->groupBy('BetGroupName');
     if (!is_null($LeagueID) && $LeagueID != '') {
         $query->innerJoinWith('event')->andWhere([BetssonLeagueEvent::tableName() . '.LeagueID' => $LeagueID]);
     }
     if (!is_null($CategoryID) && $CategoryID != '') {
         $query->innerJoinWith('event.league')->andWhere([BetssonCategoryLeague::tableName() . '.CategoryID' => $CategoryID]);
     }
     $models = $query->all();
     return ArrayHelper::map($models, 'BetGroupID', 'BetGroupName');
 }
 /**
  * @return \yii\db\ActiveQuery
  */
 public function getLeague()
 {
     return $this->hasOne(BetssonCategoryLeague::className(), ['LeagueID' => 'LeagueID'])->inverseOf('events');
 }